jborean93 / pykrb5

Python krb5 API interface
MIT License
17 stars 8 forks source link

missing __init__.py and metadata #16

Closed Thermi closed 2 years ago

Thermi commented 2 years ago

When trying to build the wheel the following issues occur:

adding 'UNKNOWN-0.0.0.dist-info/LICENSE'
adding 'UNKNOWN-0.0.0.dist-info/METADATA'
adding 'UNKNOWN-0.0.0.dist-info/WHEEL'
adding 'UNKNOWN-0.0.0.dist-info/top_level.txt'
adding 'UNKNOWN-0.0.0.dist-info/RECORD'

Also the init.py file is missing from the wheel (because it's probably not in the setup.py) and so the package can not be used because all the imports from the shared object are not available.

jborean93 commented 2 years ago

How are you building the wheel, at least in CI it works fine for the macOS ones that are there

image

When running it manually it works for me

image

Thermi commented 2 years ago

I did it with python setup.py bdist_wheel as described in the README but that didn't work. Only building via pip works for me here, I can reproduce it on both Arch Linux and Alpine Linux. Building via pip build . works, then one can install the built wheel.

jborean93 commented 2 years ago

Ah my apologies I need to update the README as that's old information. Using the build module is the correct method to generate the wheel as it uses the standard PEP 517 hooks.

python -m pip install build
python -m build
Thermi commented 2 years ago

that's not working for me here because I am tasked with packaging it and thus I can't install any dependencies with pip. I need to use the existing ones that are installed. If I tell build to not isolate it once again fails to get the medatada and doesn't find dependencies either:

* Getting dependencies for sdist...                                                                                              [74/13152]
Using krb5-config at 'krb5-config'                                                                                                         
Using libkrb5.so as Kerberos module for platform checks                                                                                    
Compiling src/krb5/_ccache.pyx                                                                                                             
Compiling src/krb5/_ccache_mit.pyx                               
Compiling src/krb5/_ccache_match.pyx                                                                                                       
Compiling src/krb5/_ccache_support_switch.pyx                                                                                              
Compiling src/krb5/_cccol.pyx
Compiling src/krb5/_context.pyx                                      
Compiling src/krb5/_context_mit.pyx                                  
Compiling src/krb5/_creds.pyx
Compiling src/krb5/_creds_opt.pyx                                    
Skipping src/krb5/_creds_opt_heimdal.pyx as it is not supported by the selected Kerberos implementation.                                   
Compiling src/krb5/_creds_opt_mit.pyx                                
Compiling src/krb5/_creds_opt_set_in_ccache.pyx
Compiling src/krb5/_creds_opt_set_pac_request.pyx     
Compiling src/krb5/_exceptions.pyx       
Compiling src/krb5/_keyblock.pyx                                     
Compiling src/krb5/_kt.pyx                                           
Compiling src/krb5/_kt_mit.pyx  
Skipping src/krb5/_kt_heimdal.pyx as it is not supported by the selected Kerberos implementation.                                          
Compiling src/krb5/_kt_have_content.pyx
Compiling src/krb5/_principal.pyx                                    
Skipping src/krb5/_principal_heimdal.pyx as it is not supported by the selected Kerberos implementation.                                   
Compiling src/krb5/_string.pyx                                       
Compiling src/krb5/_string_mit.pyx 
Compiling src/krb5/_ccache.pyx because it changed.
Compiling src/krb5/_ccache_mit.pyx because it changed.
Compiling src/krb5/_ccache_match.pyx because it changed.
Compiling src/krb5/_ccache_support_switch.pyx because it changed.
Compiling src/krb5/_cccol.pyx because it changed.
Compiling src/krb5/_context.pyx because it changed.
Compiling src/krb5/_context_mit.pyx because it changed.
Compiling src/krb5/_creds.pyx because it changed.
Compiling src/krb5/_creds_opt.pyx because it changed.
Compiling src/krb5/_creds_opt_mit.pyx because it changed.
Compiling src/krb5/_creds_opt_set_in_ccache.pyx because it changed.
Compiling src/krb5/_creds_opt_set_pac_request.pyx because it changed.                                                                      
Compiling src/krb5/_exceptions.pyx because it changed.
Compiling src/krb5/_keyblock.pyx because it changed.
Compiling src/krb5/_kt.pyx because it changed.
Compiling src/krb5/_kt_mit.pyx because it changed.
Compiling src/krb5/_kt_have_content.pyx because it changed.
Compiling src/krb5/_principal.pyx because it changed.
Compiling src/krb5/_string.pyx because it changed.
Compiling src/krb5/_string_mit.pyx because it changed.
[ 1/20] Cythonizing src/krb5/_ccache.pyx
[ 2/20] Cythonizing src/krb5/_ccache_match.pyx
[ 3/20] Cythonizing src/krb5/_ccache_mit.pyx
[ 4/20] Cythonizing src/krb5/_ccache_support_switch.pyx
[ 5/20] Cythonizing src/krb5/_cccol.pyx
[ 6/20] Cythonizing src/krb5/_context.pyx
[ 7/20] Cythonizing src/krb5/_context_mit.pyx
[ 8/20] Cythonizing src/krb5/_creds.pyx
[ 9/20] Cythonizing src/krb5/_creds_opt.pyx
[10/20] Cythonizing src/krb5/_creds_opt_mit.pyx
[11/20] Cythonizing src/krb5/_creds_opt_set_in_ccache.pyx
[12/20] Cythonizing src/krb5/_creds_opt_set_pac_request.pyx
[13/20] Cythonizing src/krb5/_exceptions.pyx
[14/20] Cythonizing src/krb5/_keyblock.pyx
[15/20] Cythonizing src/krb5/_kt.pyx
[16/20] Cythonizing src/krb5/_kt_have_content.pyx
[17/20] Cythonizing src/krb5/_kt_mit.pyx
[18/20] Cythonizing src/krb5/_principal.pyx
[19/20] Cythonizing src/krb5/_string.pyx
[20/20] Cythonizing src/krb5/_string_mit.pyx
running egg_info
creating UNKNOWN.egg-info
writing UNKNOWN.egg-info/PKG-INFO
writing dependency_links to UNKNOWN.egg-info/dependency_links.txt
writing top-level names to UNKNOWN.egg-info/top_level.txt
writing manifest file 'UNKNOWN.egg-info/SOURCES.txt'
reading manifest file 'UNKNOWN.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no previously-included files found matching '.coverage'
warning: no previously-included files found matching '.gitignore'
warning: no previously-included files found matching '.pre-commit-config.yaml'
warning: no previously-included files matching '*.pyc' found under directory 'tests'
adding license file 'LICENSE'
writing manifest file 'UNKNOWN.egg-info/SOURCES.txt'

ERROR Missing dependencies:
        Cython >= 0.29.29, < 3.0.0 
        setuptools >= 61.0.0
jborean93 commented 2 years ago

If you don't use build isolation then you need to install the dependencies manually. Either use build isolation and have build install them for you automatically or disable isolation and ensure the dependencies are present yourself. The error message seems quite clear on what you need to build the wheel.

jborean93 commented 2 years ago

README has been updated with the new instructions https://github.com/jborean93/pykrb5/commit/a61096753da525abbe2e1f8fc696e0359643d4e4.

Thermi commented 2 years ago

Yeah that much is clear. I am doing that.

jborean93 commented 2 years ago

Is there still a problem here, I've updated the readme to remove the old instructions and the new ones should work, as long as you have the dependencies installed.