Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

pip installs broken with recent pycurl #18

Closed
AlanCoding opened this issue Apr 15, 2019 · 2 comments
Closed

pip installs broken with recent pycurl #18

AlanCoding opened this issue Apr 15, 2019 · 2 comments

Comments

@AlanCoding
Copy link

If I install this using a clean CentOS container, I get an error like this:

(buildit) bash-4.2# pip install ovirt-engine-sdk-python
Collecting ovirt-engine-sdk-python
  Downloading https://files.pythonhosted.org/packages/53/06/4faf279a5e58c7a6a28fcc865ba3b5b69c39ee786a5043ab1ccfb5d8c75e/ovirt-engine-sdk-python-4.3.0.tar.gz (324kB)
    100% |████████████████████████████████| 327kB 11.3MB/s 
Collecting pycurl>=7.19.0 (from ovirt-engine-sdk-python)
  Downloading https://files.pythonhosted.org/packages/e8/e4/0dbb8735407189f00b33d84122b9be52c790c7c3b25286826f4e1bdb7bde/pycurl-7.43.0.2.tar.gz (214kB)
    100% |████████████████████████████████| 215kB 2.9MB/s 
    Complete output from command python setup.py egg_info:
    Using curl-config (libcurl 7.29.0)
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-install-wxpyxljc/pycurl/setup.py", line 913, in <module>
        ext = get_extension(sys.argv, split_extension_source=split_extension_source)
      File "/tmp/pip-install-wxpyxljc/pycurl/setup.py", line 582, in get_extension
        ext_config = ExtensionConfiguration(argv)
      File "/tmp/pip-install-wxpyxljc/pycurl/setup.py", line 99, in __init__
        self.configure()
      File "/tmp/pip-install-wxpyxljc/pycurl/setup.py", line 316, in configure_unix
        specify the SSL backend manually.''')
    __main__.ConfigurationError: Curl is configured to use SSL, but we have not been able to determine which SSL backend it is using. Please see PycURL documentation for how to specify the SSL backend manually.
    
    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-wxpyxljc/pycurl/

This does not happen if I install pip install 7.43.0.1 before hand. As you can see, libcurl is there. You might interpret this error as needing to specify what SSL backend should be used, in which case maybe that should be in the install docs of this library. However, it gets more complicated.

That error was converted to a warning in development version of pycurl. So the same error will not happen with 7.43.0.3, whenever it comes out.

(awx) bash-4.2# pip install git+https://github.com/pycurl/pycurl.git
Collecting git+https://github.com/pycurl/pycurl.git
  Cloning https://github.com/pycurl/pycurl.git to /tmp/pip-req-build-b403wmgs
requests-oauthlib 1.2.0 has requirement oauthlib>=3.0.0, but you'll have oauthlib 2.0.6 which is incompatible.
jupyter-console 6.0.0 has requirement prompt-toolkit<2.1.0,>=2.0.0, but you'll have prompt-toolkit 1.0.15 which is incompatible.
Installing collected packages: pycurl
  Running setup.py install for pycurl ... error
    Complete output from command /venv/awx/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-req-build-b403wmgs/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-286kwky3/install-record.txt --single-version-externally-managed --compile --install-headers /venv/awx/include/site/python3.6/pycurl:
    Using curl-config (libcurl 7.29.0)
    Not using an SSL library
    running install
    running build
    running build_py
    creating build
    creating build/lib.linux-x86_64-3.6
    creating build/lib.linux-x86_64-3.6/curl
    copying python/curl/__init__.py -> build/lib.linux-x86_64-3.6/curl
    running build_ext
    building 'pycurl' extension
    creating build/temp.linux-x86_64-3.6
    creating build/temp.linux-x86_64-3.6/src
    gcc -pthread -Wno-unused-result -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -DPYCURL_VERSION="7.43.0.2" -DHAVE_CURL_SSL=1 -I/venv/awx/include -I/usr/include/python3.6m -c src/docstrings.c -o build/temp.linux-x86_64-3.6/src/docstrings.o
    gcc: error: src/docstrings.c: No such file or directory
    gcc: fatal error: no input files
    compilation terminated.
    Warning: libcurl is configured to use SSL, but we have not been able to determine which SSL backend it is using. If your Curl is built against OpenSSL, LibreSSL, BoringSSL, GnuTLS or NSS please specify the SSL backend manually. For other SSL backends please ignore this message.error: command 'gcc' failed with exit status 4
    
    ----------------------------------------
Command "/venv/awx/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-req-build-b403wmgs/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-286kwky3/install-record.txt --single-version-externally-managed --compile --install-headers /venv/awx/include/site/python3.6/pycurl" failed with error code 1 in /tmp/pip-req-build-b403wmgs/
You are using pip version 10.0.1, however version 19.0.3 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

From this ovirt library, I would like to get some idea of what versions of pycurl can be used, and then have those formalized in the setup.py requirements for the purpose of dependency resolution.

@imjoey
Copy link
Member

imjoey commented Apr 16, 2019

Hi @AlanCoding , thanks for reporting. The version of pycurl depended on by this library is 7.19.0 or above, so 7.43.0.2 and 7.43.0.1 are both ok. After looking into ansible/awx#3682 and pycurl/pycurl#526, IMHO, explicitly specifying pycurl to 7.43.0.1 is probably a good choice.
Just FYI, this repository is just a mirror, so going to https://bugzilla.redhat.com/ for issue tracking is recommended.

@AlanCoding
Copy link
Author

Thanks, I'll leave this closed because it's not in the right place

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants