xmendez/wfuzz

Can't install from source, missing curl-config method.

erichamers opened this issue · 3 comments

Context

Please check:

  • [ x ] I've read the docs for Wfuzz

Please describe your local environment:

Wfuzz version: N/A

Python version: Python 3.9.0

OS: Ubuntu

Report

What is the current behavior?

When trying to install wfuzz from source with pip install ., I get the following error:

    ERROR: Command errored out with exit status 1:
     command: /home/eric/.pyenv/versions/3.9.0/bin/python3.9 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-4ibrz2pe/pycurl/setup.py'"'"'; __file__='"'"'/tmp/pip-install-4ibrz2pe/pycurl/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-tri24n3w
         cwd: /tmp/pip-install-4ibrz2pe/pycurl/
    Complete output (22 lines):
    Traceback (most recent call last):
      File "/tmp/pip-install-4ibrz2pe/pycurl/setup.py", line 236, in configure_unix
        p = subprocess.Popen((self.curl_config(), '--version'),
      File "/home/eric/.pyenv/versions/3.9.0/lib/python3.9/subprocess.py", line 947, in __init__
        self._execute_child(args, executable, preexec_fn, close_fds,
      File "/home/eric/.pyenv/versions/3.9.0/lib/python3.9/subprocess.py", line 1819, in _execute_child
        raise child_exception_type(errno_num, err_msg, err_filename)
    FileNotFoundError: [Errno 2] No such file or directory: 'curl-config'
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-install-4ibrz2pe/pycurl/setup.py", line 988, in <module>
        ext = get_extension(sys.argv, split_extension_source=split_extension_source)
      File "/tmp/pip-install-4ibrz2pe/pycurl/setup.py", line 649, in get_extension
        ext_config = ExtensionConfiguration(argv)
      File "/tmp/pip-install-4ibrz2pe/pycurl/setup.py", line 101, in __init__
        self.configure()
      File "/tmp/pip-install-4ibrz2pe/pycurl/setup.py", line 241, in configure_unix
        raise ConfigurationError(msg)
    __main__.ConfigurationError: Could not run curl-config: [Errno 2] No such file or directory: 'curl-config'

What is the expected or desired behavior?

Complete the installation without any errors.

Please provide steps to reproduce, including exact wfuzz command executed and output:

git clone https://github.com/xmendez/wfuzz.git
cd wfuzz
pip install .

Extra Info: Same error occurs when install with python setup.py install

Adding dependencies fixed it.

sudo apt install libcurl4-openssl-dev libssl-dev

While this is true (that installing the dependencies fixes it) this is a very sub-optimal solution. It means that any upstream project has to pass the requirement for build tools onto its users. I am a dev for BBOT and we would very much prefer to replace our FFUF module with wfuzz for a variety of reasons, but it is difficult to justify adding a build tools dependency for one module, assuming we could even make that work with our dependency system.

It is disappointing nobody dug into this any deeper, particularly on the pycurl side because is it looks like the pycurl project fell out of maintenance a little bit, and just needed to so some relatively simple github config changes to get their pipeline working again, which would have automatically built the wheels and published them to pypi. I left them a message over there, but even if they fix all of that you guys would have to change your current pin up to a version with new wheels, so it would need to be a coordinated effort.

We are tracking the upstream issue here: pycurl/pycurl#738