{"action":"created","issue":{"url":"https://api.github.com/repos/meteor/meteor/issues/2595","labels_url":"https://api.github.com/repos/meteor/meteor/issues/2595/labels{/name}","comments_url":"https://api.github.com/repos/meteor/meteor/issues/2595/comments","events_url":"https://api.github.com/repos/meteor/meteor/issues/2595/events","html_url":"https://github.com/meteor/meteor/issues/2595","id":42832660,"number":2595,"title":"Unipackages don't seem to preserve +x executable flag on files...","user":{"login":"awatson1978","id":675910,"avatar_url":"https://avatars.githubusercontent.com/u/675910?v=3","gravatar_id":"","url":"https://api.github.com/users/awatson1978","html_url":"https://github.com/awatson1978","followers_url":"https://api.github.com/users/awatson1978/followers","following_url":"https://api.github.com/users/awatson1978/following{/other_user}","gists_url":"https://api.github.com/users/awatson1978/gists{/gist_id}","starred_url":"https://api.github.com/users/awatson1978/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/awatson1978/subscriptions","organizations_url":"https://api.github.com/users/awatson1978/orgs","repos_url":"https://api.github.com/users/awatson1978/repos","events_url":"https://api.github.com/users/awatson1978/events{/privacy}","received_events_url":"https://api.github.com/users/awatson1978/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/meteor/meteor/labels/Project:Isobuild","name":"Project:Isobuild","color":"f7c6c7"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2014-09-16T00:13:07Z","updated_at":"2015-02-04T04:17:21Z","closed_at":null,"body":"The old github-based package management system preserved chmod file permissions, whereas the Unipackage system doesn't.  Bug reproduction as follows:  \r\n\r\n````sh\r\n# clone the selenium nightwatch package into a local directory\r\ngit clone http://github.com/awatson1978/clinical-nightwatch.git\r\n\r\n# confirm that files are marked with +x\r\nls -la\r\n-rwxr-xr-x   1 username  wheel   266 Sep 15 20:01 launch_nightwatch_from_app_root.sh\r\n-rwxr-xr-x   1 username  wheel   601 Sep 15 20:01 launch_nightwatch_from_package.sh\r\n\r\n# create a new application\r\ncd ..\r\nmeteor create newapp\r\ncd newapp\r\n\r\n# install the clinical:nightwatch package\r\nmeteor add clinical:nightwatch\r\n\r\n# launch the app to create .meteor/local/build directory\r\nmeteor\r\n\r\n# open a second terminal, and confirm that files don't have +x executable flag set\r\nls -la .meteor/local/build/programs/server/assets/packages/clinical_nightwatch\r\n-r--r--r--   1 root  wheel   266 Sep 15 19:59 launch_nightwatch_from_app_root.sh\r\n-r--r--r--   1 root  wheel   601 Sep 15 19:59 launch_nightwatch_from_package.sh\r\n\r\n# then run the launcher - it will fail\r\ncd .meteor/local/build/programs/server/assets/packages/clinical_nightwatch\r\nsudo launch_nightwatch_from_package.sh\r\n\r\n# set the executable flag\r\nsudo chmod +x launch_nightwatch_from_package.sh\r\n\r\n# try running the file again\r\nsudo launch_nightwatch_from_package.sh\r\n\r\n# nightwatch should launch the selenium server (and fail to find tests, but that's a different issue...)\r\n````\r\n\r\nThis is related to the Velocity project and relevant to any packages that launch external scripts, such as Selenium/Nightwatch, PhantomJS, etc."},"comment":{"url":"https://api.github.com/repos/meteor/meteor/issues/comments/72788096","html_url":"https://github.com/meteor/meteor/issues/2595#issuecomment-72788096","issue_url":"https://api.github.com/repos/meteor/meteor/issues/2595","id":72788096,"user":{"login":"glasser","id":16724,"avatar_url":"https://avatars.githubusercontent.com/u/16724?v=3","gravatar_id":"","url":"https://api.github.com/users/glasser","html_url":"https://github.com/glasser","followers_url":"https://api.github.com/users/glasser/followers","following_url":"https://api.github.com/users/glasser/following{/other_user}","gists_url":"https://api.github.com/users/glasser/gists{/gist_id}","starred_url":"https://api.github.com/users/glasser/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/glasser/subscriptions","organizations_url":"https://api.github.com/users/glasser/orgs","repos_url":"https://api.github.com/users/glasser/repos","events_url":"https://api.github.com/users/glasser/events{/privacy}","received_events_url":"https://api.github.com/users/glasser/received_events","type":"User","site_admin":false},"created_at":"2015-02-04T04:17:21Z","updated_at":"2015-02-04T04:17:21Z","body":"I don't think that there is an intention to preserve permissions on server-side static assets.  The only documented APIs for accessing them are Assets.getText and Assets.getBinary, for which permissions are irrelevant anyway.\r\n\r\nA possible future improvement to the Assets API that provides supported filesystem access to assets might want to include this feature, though."}}