Skip to content

Mrack cannot be installed via pip if gssapi is not present on a system #38

@pvoborni

Description

@pvoborni

Tried build in readthedocs and it fails with:

$ /home/docs/checkouts/readthedocs.org/user_builds/mrack/envs/stable/bin/python -m pip install --exists-action=w --no-cache-dir -r requirements.txt
Collecting beaker-client>=27
  Downloading beaker_client-28.0-py3-none-any.whl (168 kB)
Collecting boto3
  Downloading boto3-1.15.16-py2.py3-none-any.whl (129 kB)
Collecting click
  Downloading click-7.1.2-py2.py3-none-any.whl (82 kB)
Collecting pyyaml
  Downloading PyYAML-5.3.1.tar.gz (269 kB)
Collecting asyncopenstackclient
  Downloading AsyncOpenStackClient-0.8.1.tar.gz (23 kB)
Collecting beaker-common
  Downloading beaker_common-28.0-py3-none-any.whl (42 kB)
Collecting PrettyTable
  Downloading prettytable-1.0.1-py2.py3-none-any.whl (22 kB)
Requirement already satisfied: Jinja2 in /home/docs/checkouts/readthedocs.org/user_builds/mrack/envs/stable/lib/python3.7/site-packages (from beaker-client>=27->-r requirements.txt (line 1)) (2.11.2)
Collecting gssapi
  Downloading gssapi-1.6.9.tar.gz (1.1 MB)
    ERROR: Command errored out with exit status 1:
     command: /home/docs/checkouts/readthedocs.org/user_builds/mrack/envs/stable/bin/python -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-9rb3067q/gssapi/setup.py'"'"'; __file__='"'"'/tmp/pip-install-9rb3067q/gssapi/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-_ydqr8vm
         cwd: /tmp/pip-install-9rb3067q/gssapi/
    Complete output (13 lines):
    /bin/sh: 1: krb5-config: not found
    In distributed package, building from C files...
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-install-9rb3067q/gssapi/setup.py", line 87, in <module>
        link_args = shlex.split(get_output('krb5-config --libs gssapi'))
      File "/tmp/pip-install-9rb3067q/gssapi/setup.py", line 34, in get_output
        res = subprocess.check_output(*args, shell=True, **kwargs)
      File "/home/docs/.pyenv/versions/3.7.3/lib/python3.7/subprocess.py", line 395, in check_output
        **kwargs).stdout
      File "/home/docs/.pyenv/versions/3.7.3/lib/python3.7/subprocess.py", line 487, in run
        output=stdout, stderr=stderr)
    subprocess.CalledProcessError: Command 'krb5-config --libs gssapi' returned non-zero exit status 127.
    ----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

In pythongssapi/requests-gssapi#14 is said that gssapi is expected to be on a system when python-gssapi is being pulled in.

I think we should make beaker-client requirement optional (e.g. via extras_require ) / to be explicitly pulled in + beaker should not be registered as a provider if it is not present.

Metadata

Metadata

Assignees

No one assigned

    Labels

    unexpected behaviorReporting of unexpected behaviors like tracebacks etc.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions