[krbdev.mit.edu #8924] Building python-gssapi 'gssapi.raw.ext_cred_store' extension on SLES 15.1 stops with "gssapi/raw/ext_cred_store.c:1333:8: error: unknown type name ‘gss_key_value_set_desc’"

Roland Felnhofer via RT rt-comment at krbdev.mit.edu
Wed Jul 1 10:03:03 EDT 2020


Wed Jul 01 10:03:03 2020: Request 8924 was acted upon.
 Transaction: Ticket created by roland.felnhofer at chello.at
       Queue: krb5
     Subject: Building python-gssapi 'gssapi.raw.ext_cred_store' extension on SLES 15.1 stops with "gssapi/raw/ext_cred_store.c:1333:8: error: unknown type name ‘gss_key_value_set_desc’" 
       Owner: Nobody
  Requestors: roland.felnhofer at chello.at
      Status: new
 Ticket <URL: https://krbdev.mit.edu/rt/Ticket/Display.html?id=8924 >


What went wrong?

When building python-gssapi ist stops with
"gssapi/raw/ext_cred_store.c:1333:8: error: unknown type name
‘gss_key_value_set_desc’"
How do we reproduce?

$ cd /usr/src/gssapi-1.6.5
$ python3 -mvenv buildenv
$ source buildenv/bin/activate
$ mkdir wheels
$ export PATH=$PATH:$(dirname $(locate -r "krb5-config$"))
$ pip install -U pip wheel setuptools
$ pip wheel -w wheels/ pip wheel setuptools
$ pip wheel -w wheels/ pip wheel gssapi

Component versions (python-gssapi, Kerberos, OS / distro, etc.)

python-gssapi: 1.6.5
OS: SUSE Linux Enterprise Server 15 SP1

$ krb5-config --all
Version: Kerberos 5 release 1.16.3
Vendor: Massachusetts Institute of Technology
Prefix: /usr/lib/mit
Exec_prefix: /usr/lib/mit

Reason:
I found out that in setup.py, between line 103 and 114, tries to detect
the location of 'gssapi_ext.h', by executing 'krb5-config gssapi --prefix'
and adding 'include/gssapi/gssapi_ext.h' to that prefix.

On SLES 15.1 (and other SUSE distributions I assume) the location of the
include files for gssapi are within the regular include path
('/usr/include'). So the full path for the header file is
'/usr/include/gssapi/gssapi_ext.h' and not
'/usr/lib/mit/include/gssapi/gssapi_ext.h' as expected by 'setup.py'

For the time being krb5-config --all should report the following on SUSE:

$ krb5-config --all
Version: Kerberos 5 release 1.16.3
Vendor: Massachusetts Institute of Technology
Prefix: /usr
Exec_prefix: /usr/lib/mit

as ./bin, ./sbin and ./share (which is actually an empty directory) are
located beneath /usr/lib/mit.

Ideally the output of krb5-config should look the following way in future:

$ krb5-config --all
Version: Kerberos 5 release 1.16.3
Vendor: Massachusetts Institute of Technology
Prefix: /usr
Exec_prefix: /usr/lib/mit
Includedir: /usr/include
Libdir: /usr/lib

Looking into the krb5-config script shows the following values:
...
prefix=/usr/lib/mit
exec_prefix=${prefix}
includedir=/usr/include
libdir=/usr/lib
...

Best regards
Roland




More information about the krb5-bugs mailing list