{"action":"created","issue":{"url":"https://api.github.com/repos/saltstack/salt/issues/30958","repository_url":"https://api.github.com/repos/saltstack/salt","labels_url":"https://api.github.com/repos/saltstack/salt/issues/30958/labels{/name}","comments_url":"https://api.github.com/repos/saltstack/salt/issues/30958/comments","events_url":"https://api.github.com/repos/saltstack/salt/issues/30958/events","html_url":"https://github.com/saltstack/salt/pull/30958","id":131788443,"number":30958,"title":"RFC: Update salt codebase to use alternately-named pycrypto and tornado","user":{"login":"terminalmage","id":328598,"avatar_url":"https://avatars.githubusercontent.com/u/328598?v=3","gravatar_id":"","url":"https://api.github.com/users/terminalmage","html_url":"https://github.com/terminalmage","followers_url":"https://api.github.com/users/terminalmage/followers","following_url":"https://api.github.com/users/terminalmage/following{/other_user}","gists_url":"https://api.github.com/users/terminalmage/gists{/gist_id}","starred_url":"https://api.github.com/users/terminalmage/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/terminalmage/subscriptions","organizations_url":"https://api.github.com/users/terminalmage/orgs","repos_url":"https://api.github.com/users/terminalmage/repos","events_url":"https://api.github.com/users/terminalmage/events{/privacy}","received_events_url":"https://api.github.com/users/terminalmage/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/saltstack/salt/labels/Pending%20Discussion","name":"Pending Discussion","color":"c7def8"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2016-02-05T23:28:39Z","updated_at":"2016-02-06T02:35:45Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/saltstack/salt/pulls/30958","html_url":"https://github.com/saltstack/salt/pull/30958","diff_url":"https://github.com/saltstack/salt/pull/30958.diff","patch_url":"https://github.com/saltstack/salt/pull/30958.patch"},"body":"In order to keep the repo.saltstack.com yum repos from forcing users to upgrade\npython-crypto and python-tornado, salt-pack has been updated with packages\nwhich patch the pycrypto and tornado source code to rename them and allow our\nrepos to provide an RPM that can be installed alongside the one from EPEL, and\nused in place of them.\n\nThe renamed pycrypto imports as ``Crypto_salt`` instead of ``Crypto``, while\nthe renamed tornado imports as ``tornado_salt`` instead of ``tornado``.\n\nThis pull request makes the needed changes to the Salt codebase to look for\nthese alternately-named Python modules first, and fall back to plain-old\n``Crypto`` or ``tornado`` when they aren't available.\n\nPycrypto is pretty easy, the parts we use are classes imported from a module,\nso we can do a ``from Crypto_salt.Submodule import Someclass``, and in the\nevent of an ImportError fall back to ``from Crypto.Submodule import Someclass``.\n\nTornado is a bit more complex. Most of tornado's functionality is in submodules\nunderneath the tornado namespace, and are typicall loaded as\n``tornado.modname``. This requires each of these to be loaded under a common\nname (i.e. ``tornado_salt.netutil`` or ``tornado.netutil`` would be loaded as\n``tornado_netutil``), and then all references to ``tornado.netutil`` in that\nfile must also be updated to ``tornado_netutil``.\n\nReferences:\n  - [python-crypto-salt build files](https://github.com/saltstack/salt-pack/tree/master/file_roots/pkg/python-crypto-salt/2_6_1)\n  - [python-tornado-salt build files](https://github.com/saltstack/salt-pack/tree/master/file_roots/pkg/python-tornado-salt/4_2_1)"},"comment":{"url":"https://api.github.com/repos/saltstack/salt/issues/comments/180660984","html_url":"https://github.com/saltstack/salt/pull/30958#issuecomment-180660984","issue_url":"https://api.github.com/repos/saltstack/salt/issues/30958","id":180660984,"user":{"login":"terminalmage","id":328598,"avatar_url":"https://avatars.githubusercontent.com/u/328598?v=3","gravatar_id":"","url":"https://api.github.com/users/terminalmage","html_url":"https://github.com/terminalmage","followers_url":"https://api.github.com/users/terminalmage/followers","following_url":"https://api.github.com/users/terminalmage/following{/other_user}","gists_url":"https://api.github.com/users/terminalmage/gists{/gist_id}","starred_url":"https://api.github.com/users/terminalmage/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/terminalmage/subscriptions","organizations_url":"https://api.github.com/users/terminalmage/orgs","repos_url":"https://api.github.com/users/terminalmage/repos","events_url":"https://api.github.com/users/terminalmage/events{/privacy}","received_events_url":"https://api.github.com/users/terminalmage/received_events","type":"User","site_admin":false},"created_at":"2016-02-06T02:35:45Z","updated_at":"2016-02-06T02:35:45Z","body":"Just pushed a few fixes for syntax and other errors."}}