{"action":"created","issue":{"url":"https://api.github.com/repos/wercker/step-s3sync/issues/11","labels_url":"https://api.github.com/repos/wercker/step-s3sync/issues/11/labels{/name}","comments_url":"https://api.github.com/repos/wercker/step-s3sync/issues/11/comments","events_url":"https://api.github.com/repos/wercker/step-s3sync/issues/11/events","html_url":"https://github.com/wercker/step-s3sync/issues/11","id":67363112,"number":11,"title":"Better portable way of distributing s3cmd","user":{"login":"hatchan","id":202981,"avatar_url":"https://avatars.githubusercontent.com/u/202981?v=3","gravatar_id":"","url":"https://api.github.com/users/hatchan","html_url":"https://github.com/hatchan","followers_url":"https://api.github.com/users/hatchan/followers","following_url":"https://api.github.com/users/hatchan/following{/other_user}","gists_url":"https://api.github.com/users/hatchan/gists{/gist_id}","starred_url":"https://api.github.com/users/hatchan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hatchan/subscriptions","organizations_url":"https://api.github.com/users/hatchan/orgs","repos_url":"https://api.github.com/users/hatchan/repos","events_url":"https://api.github.com/users/hatchan/events{/privacy}","received_events_url":"https://api.github.com/users/hatchan/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/wercker/step-s3sync/labels/bug","name":"bug","color":"fc2929"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-04-09T13:33:55Z","updated_at":"2015-06-15T06:34:25Z","closed_at":null,"body":"Which brings me to this issue: we need a better portable way of distributing s3cmd:\r\n\r\n- We can look into making pyinstaller work (see section below which detail current problems)\r\n- We can ditch the idea of making it portable, and just install using pip.\r\n- ...? \r\n\r\nI'm not a expert on Python, heck I don't event know how to write it. So I'm hoping one of the Python experts can take over this issue, /cc @flenter @termie \r\n\r\npyinstaller\r\n=======\r\nCurrently we use [pyinstaller][pyinstaller] to create a single execatable which we can distribute with this step.\r\n\r\nUnfortunately it is not as portable as hoped. As we're running into some errors when running it on other distro's:\r\n\r\n```\r\n/pipeline/s3sync-b8a6c8b4-2b18-4ece-a212-09ba14106974/s3cmd sync --acl-public  --verbose ./ s3://wercker-development/sentcli/fix_ewok/\r\nError loading Python lib '/tmp/_MEIU7vwjr/libpython2.7.so.1.0': /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14' not found (required by /tmp/_MEIU7vwjr/libpython2.7.so.1.0)\r\n```\r\n\r\nThe [FAQ][faq] mentions this regarding to libc problems:\r\n\r\n> __Under Linux, I get runtime dynamic linker errors, related to libc. What should I do?__\r\n> The executable that PyInstaller builds is not fully static, in that it still depends on the system libc. Under Linux, the ABI of GLIBC is backward compatible, but not forward compatible. So if you link against a newer GLIBC, you can't run the resulting executable on an older system. The supplied binary bootloader should work with older GLIBC. However, the libpython.so and other dynamic libraries still depends on the newer GLIBC. The solution is to compile the Python interpreter with its modules (and also probably bootloader) on the oldest system you have around, so that it gets linked with the oldest version of GLIBC.\r\n\r\npip\r\n===\r\nThis step will install s3cmd using pip. \r\n\r\nThis however means we require to install software in the container. Which might not be desirable. Further more, it requires pip to be installed. \r\n\r\n[pyinstaller]: https://github.com/pyinstaller/pyinstaller/wiki\r\n[faq]: https://github.com/pyinstaller/pyinstaller/wiki/FAQ#misc"},"comment":{"url":"https://api.github.com/repos/wercker/step-s3sync/issues/comments/111949772","html_url":"https://github.com/wercker/step-s3sync/issues/11#issuecomment-111949772","issue_url":"https://api.github.com/repos/wercker/step-s3sync/issues/11","id":111949772,"user":{"login":"fireproofsocks","id":303735,"avatar_url":"https://avatars.githubusercontent.com/u/303735?v=3","gravatar_id":"","url":"https://api.github.com/users/fireproofsocks","html_url":"https://github.com/fireproofsocks","followers_url":"https://api.github.com/users/fireproofsocks/followers","following_url":"https://api.github.com/users/fireproofsocks/following{/other_user}","gists_url":"https://api.github.com/users/fireproofsocks/gists{/gist_id}","starred_url":"https://api.github.com/users/fireproofsocks/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fireproofsocks/subscriptions","organizations_url":"https://api.github.com/users/fireproofsocks/orgs","repos_url":"https://api.github.com/users/fireproofsocks/repos","events_url":"https://api.github.com/users/fireproofsocks/events{/privacy}","received_events_url":"https://api.github.com/users/fireproofsocks/received_events","type":"User","site_admin":false},"created_at":"2015-06-15T06:34:25Z","updated_at":"2015-06-15T06:34:25Z","body":"Wouldn't it be a bit easier / more useful to install the aws cli tool?  "}}