Access to https:// branch with pycurl without SSL support fails horribly
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Bazaar |
Fix Released
|
Undecided
|
Vincent Ladeuil |
Bug Description
cURL library and PyCurl could be built in 2 forms: with SSL or without
such support. Old version (<0.14) of standalone bzr.exe bundle inside
pycurl library without SSL support and therefore access to https://
branch fails with ugly traceback:
Traceback (most recent call last):
File "bzrlib\
File "bzrlib\
File "bzrlib\
File "bzrlib\
File "bzrlib\
File "bzrlib\
File "bzrlib\
File "bzrlib\
File "bzrlib\
File "bzrlib\
File "bzrlib\
File "bzrlib\
File "bzrlib\
File "bzrlib\
error: (1, 'libcurl was built with SSL disabled, https: not supported!')
bzr 0.12.0 on python 2.4.4.final.0 (win32)
arguments: ['D:\\Bazaar\
Because user could has any version of pycurl, bzr should explicitly check
for presence of SSL support. This check could be done via version string
of pycurl. String version (pycurl.version) has full info about built-in
libraries. E.g.:
PyCurl: libcurl/7.13.2
vs.
PyCurl: libcurl/7.15.5 OpenSSL/0.9.8c zlib/1.2.3 c-ares/1.3.1
So bzr should use check as following:
import pycurl
version = pycurl.version
if 'SSL' in version:
register_
Changed in bzr: | |
assignee: | nobody → v-ladeuil |
Changed in bzr: | |
status: | Unconfirmed → Confirmed |
Changed in bzr: | |
status: | Fix Committed → Fix Released |
On (15/02/07 10:32), Alexander Belchenko wrote: transport( 'https+ pycurl: //', ...)
> Public bug reported:
>
> cURL library and PyCurl could be built in 2 forms: with SSL or without
> such support. Old version (<0.14) of standalone bzr.exe bundle inside
> pycurl library without SSL support and therefore access to https://
> branch fails with ugly traceback:
>
>
> Because user could has any version of pycurl, bzr should explicitly check
> for presence of SSL support. This check could be done via version string
> of pycurl. String version (pycurl.version) has full info about built-in
> libraries. E.g.:
>
> PyCurl: libcurl/7.13.2
> vs.
> PyCurl: libcurl/7.15.5 OpenSSL/0.9.8c zlib/1.2.3 c-ares/1.3.1
>
> So bzr should use check as following:
>
> import pycurl
> version = pycurl.version
> if 'SSL' in version:
> register_
>
I like the idea, but the fix isn't quite general enough.
>>> print pycurl.version
libcurl/7.15.5 GnuTLS/1.4.4 zlib/1.2.3 libidn/0.6.5
so "'SSL' in version or 'TLS'" should be sufficient I think.
I have no idea how to write a test for this though.
Thanks,
James
-- jameswestby. net/ M*edCX/ .A:n*N! >|&7U.L# 9E)Tu)T0> AM - secp256r1/nistp256
James Westby -- GPG Key ID: B577FE13 -- http://
seccure key - (3+)k7|