tingbot / tide-electron

📝   Simple IDE for developing Tingbot apps
Other
22 stars 7 forks source link

Unable to upload to tingbot on Fedora 25 #65

Open simpz opened 7 years ago

simpz commented 7 years ago

If I use tide to attempt to upload to the tingbot it fails with:

tbtool: Connecting to Pi...
tbtool: Multibackend cannot be initialized with no backends. If you are seeing this error when trying to use default_backend() please try uninstalling and reinstalling crypto graphy.

Process exited.

I've seen similar in other build reports but don't know enough about Python to figure this out. This is using Tide-0.4.6-134.x86_64 but also failed with the last Tide-0.4.5 RPM.

joerick commented 7 years ago

Hey simpz! Python cryptography isn't actually installed with Tide so tbtool is picking this up from your enviroment. Could you try doing the following?

sudo pip uninstall cryptography
sudo pip install cryptography
simpz commented 7 years ago

I can try that, but it's generally considered the wrong thing to do to move outside the RPM system for installing Python modules (and things like Perl modules etc).

pip uninstall cryptography Uninstalling cryptography-1.5.3: /usr/lib/python2.7/site-packages/cryptography /usr/lib/python2.7/site-packages/cryptography-1.5.3-py2.7.egg-info Proceed (y/n)? y Successfully uninstalled cryptography-1.5.3 You are using pip version 8.1.2, however version 9.0.1 is available. You should consider upgrading via the 'pip install --upgrade pip' command.

The owner of this file was rpm -q -f /usr/lib/python2.7/site-packages/cryptography-1.5.3-py2.7.egg-info python2-cryptography-1.5.3-3.fc25.i686

Is the shipped in Python2-cryptography too old?

pip install cryptography Collecting cryptography Downloading cryptography-1.7.1.tar.gz (420kB)

Running the pip install tries to download a newer version and compile this, fails on some deps, I can probably fix. But an RPM should install automatically all deps needed for it.

But does Tide use the 32 bit Python, therefore 32 bit cryto version? As I still have the 64 bit version installed that is possibly/probably used by built in things:

rpm -q -l python2-cryptography-1.5.3-3.fc25.x86_64 /usr/lib64/python2.7/site-packages/cryptography /usr/lib64/python2.7/site-packages/cryptography-1.5.3-py2.7.egg-info /usr/lib64/python2.7/site-packages/cryptography-1.5.3-py2.7.egg-info/PKG-INFO /usr/lib64/python2.7/site-packages/cryptography-1.5.3-py2.7.egg-info/SOURCES.txt /usr/lib64/python2.7/site-packages/cryptography-1.5.3-py2.7.egg-info/dependency . . etc

joerick commented 7 years ago

On linux, Tide uses the system Python, so whatever it finds on $PATH.

If your distro has an RPM for the package, that would probably be preferable, yeah. So if the pip install doesn't work maybe try that.

simpz commented 7 years ago

That's my point, the system Python is installed (64 bit 2.7.12) and so is python-crytography 64 bit i.e.

/usr/bin/python -V Python 2.7.12

rpm -q -f /usr/bin/python python-2.7.12-7.fc25.x86_64

,and the crypto for this....

rpm -q -l python2-cryptography-1.5.3-3.fc25.x8664 /usr/lib64/python2.7/site-packages/cryptography /usr/lib64/python2.7/site-packages/cryptography-1.5.3-py2.7.egg-info /usr/lib64/python2.7/site-packages/cryptography-1.5.3-py2.7.egg-info/PKG-INFO /usr/lib64/python2.7/site-packages/cryptography-1.5.3-py2.7.egg-info/SOURCES.txt /usr/lib64/python2.7/site-packages/cryptography-1.5.3-py2.7.egg-info/dependency . . etc

So what is my system missing that is stopping Tide tbtool working?

simpz commented 7 years ago

Still can't get this to work, turned up verbosity on this. I surprised this works, on any Linux platform if not Fedora 25. Not sure which RPM distro you have tested this on?

Does this verbose debug help:

tbtool: Connecting to Pi...

INFO:paramiko.transport:Connected (version 2.0, client OpenSSH_6.7p1)
ERROR:paramiko.transport:Unknown exception: Multibackend cannot be initialized with no backe
nds. If you are seeing this error when trying to use default_backend() please try uninstalli
ng and reinstalling cryptography.
ERROR:paramiko.transport:Traceback (most recent call last):
ERROR:paramiko.transport: File "/opt/Tide/resources/vendor/tide-packages/paramiko/transport
.py", line 1774, in run
ERROR:paramiko.transport: self.kex_engine.parse_next(ptype, m)
ERROR:paramiko.transport: File "/opt/Tide/resources/vendor/tide-packages/paramiko/kex_group
1.py", line 75, in parse_next
ERROR:paramiko.transport: return self._parse_kexdh_reply(m)
ERROR:paramiko.transport: File "/opt/Tide/resources/vendor/tide-packages/paramiko/kex_group
1.py", line 111, in _parse_kexdh_reply
ERROR:paramiko.transport: self.transport._verify_key(host_key, sig)
ERROR:paramiko.transport: File "/opt/Tide/resources/vendor/tide-packages/paramiko/transport
.py", line 1619, in _verify_key
ERROR:paramiko.transport: key = self._key_infoself.host_key_type
ERROR:paramiko.transport: File "/opt/Tide/resources/vendor/tide-packages/paramiko/rsakey.py
", line 58, in init
ERROR:paramiko.transport: ).public_key(default_backend())
ERROR:paramiko.transport: File "/usr/lib64/python2.7/site-packages/cryptography/hazmat/back
ends/init.py", line 41, in default_backend
ERROR:paramiko.transport: _default_backend = MultiBackend(_available_backends())
ERROR:paramiko.transport: File "/usr/lib64/python2.7/site-packages/cryptography/hazmat/back
ends/multibackend.py", line 33, in init
ERROR:paramiko.transport: "Multibackend cannot be initialized with no backends. If you "
ERROR:paramiko.transport:ValueError: Multibackend cannot be initialized with no backends. If
you are seeing this error when trying to use default_backend() please try uninstalling and
reinstalling cryptography.
ERROR:paramiko.transport:
tbtool: Multibackend cannot be initialized with no backends. If you are seeing this error when trying to use default_backend() please try uninstalling and reinstalling cryptography.

Process exited.