Skip to content

Errors while trying to build for Debian (Buster, Stretch, Jessie) #10

@steffen64g

Description

@steffen64g

I'm using the git head of jwt-cpp to provide a Debian package, consisting of the three header files only; then I'm attempting to build scitokens-cpp from release tarball 0.3.0, in a clean sandbox while fulfilling the obvious build requirements

Build-Depends: debhelper (>= 9),                                                                                                                                                                                                                                                                                                                                           
        cmake,                                                                                                                                                                                                                                                                                                                                                             
        libsqlite3-dev,                                                                                                                                                                                                                                                                                                                                                    
        libssl-dev,                                                                                                                                                                                                                                                                                                                                                        
        libcurl4-openssl-dev | libcurl4-gnutls-dev,                                                                                                                                                                                                                                                                                                                        
        uuid-dev,                                                                                                                                                                                                                                                                                                                                                          
        jwt-cpp,                                                                                                                                                                                                                                                                                                                                                           
        pkg-config                                                                                                                                                                                                                                                                                                                                                         

I get different results, all causing the build to fail.

Buster:

[  8%] Building CXX object CMakeFiles/SciTokens.dir/src/scitokens.cpp.o                                                                                                                                                                                                                                                                                                    
/usr/bin/c++  -DSciTokens_EXPORTS -I/build/scitokens-cpp-0.3.0  -g -O2 -fdebug-prefix-map=/build/scitokens-cpp-0.3.0=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -Werror -std=c++11 -fPIC   -o CMakeFiles/SciTokens.dir/src/scitokens.cpp.o -c /build/scitokens-cpp-0.3.0/src/scitokens.cpp                          
In file included from /build/scitokens-cpp-0.3.0/src/scitokens.cpp:7:                                                                                                                                                                                                                                                                                                      
/build/scitokens-cpp-0.3.0/src/scitokens_internal.h: In member function 'bool scitokens::Enforcer::test(const scitokens::SciToken&, const string&, const string&)':                                                                                                                                                                                                        
/build/scitokens-cpp-0.3.0/src/scitokens_internal.h:382:23: error: catching polymorphic type 'class std::runtime_error' by value [-Werror=catch-value=]                                                                                                                                                                                                                    
         } catch (std::runtime_error) {                                                                                                                                                                                                                                                                                                                                    
                       ^~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                       
/build/scitokens-cpp-0.3.0/src/scitokens.cpp: In function 'int validator_validate(Validator, SciToken, char**)':                                                                                                                                                                                                                                                           
/build/scitokens-cpp-0.3.0/src/scitokens.cpp:219:29: error: catching polymorphic type 'class std::exception' by value [-Werror=catch-value=]                                                                                                                                                                                                                               
     } catch (std::exception exc) {                                                                                                                                                                                                                                                                                                                                        
                             ^~~                                                                                                                                                                                                                                                                                                                                           
cc1plus: all warnings being treated as errors                                                                                                                                                                                                                                                                                                                              
make[3]: *** [CMakeFiles/SciTokens.dir/build.make:66: CMakeFiles/SciTokens.dir/src/scitokens.cpp.o] Error 1                                                                                                                                                                                                                                                                

Stretch:

[ 16%] Building CXX object CMakeFiles/SciTokens.dir/src/scitokens_internal.cpp.o                                                                                                                                                                                                                                                                                           
/usr/bin/c++   -DSciTokens_EXPORTS -I/build/scitokens-cpp-0.3.0  -g -O2 -fdebug-prefix-map=/build/scitokens-cpp-0.3.0=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -Werror -std=c++11 -fPIC   -o CMakeFiles/SciTokens.dir/src/scitokens_internal.cpp.o -c /build/scitokens-cpp-0.3.0/src/scitokens_internal.cpp       
/build/scitokens-cpp-0.3.0/src/scitokens_internal.cpp: In function 'std::__cxx11::string {anonymous}::rs256_from_coords(const string&, const string&)':                                                                                                                                                                                                                    
/build/scitokens-cpp-0.3.0/src/scitokens_internal.cpp:241:8: error: invalid use of incomplete type 'struct rsa_st'                                                                                                                                                                                                                                                         
     rsa->e = e_bignum.get();                                                                                                                                                                                                                                                                                                                                              
        ^~                                                                                                                                                                                                                                                                                                                                                                 
In file included from /usr/include/openssl/evp.h:14:0,                                                                                                                                                                                                                                                                                                                     
                 from /usr/include/jwt-cpp/jwt.h:9,                                                                                                                                                                                                                                                                                                                        
                 from /build/scitokens-cpp-0.3.0/src/scitokens_internal.cpp:7:                                                                                                                                                                                                                                                                                             
/usr/include/openssl/ossl_typ.h:110:16: note: forward declaration of 'struct rsa_st'                                                                                                                                                                                                                                                                                       
 typedef struct rsa_st RSA;                                                                                                                                                                                                                                                                                                                                                
                ^~~~~~                                                                                                                                                                                                                                                                                                                                                     
/build/scitokens-cpp-0.3.0/src/scitokens_internal.cpp:242:8: error: invalid use of incomplete type 'struct rsa_st'                                                                                                                                                                                                                                                         
     rsa->n = n_bignum.get();                                                                                                                                                                                                                                                                                                                                              
        ^~                                                                                                                                                                                                                                                                                                                                                                 
In file included from /usr/include/openssl/evp.h:14:0,                                                                                                                                                                                                                                                                                                                     
                 from /usr/include/jwt-cpp/jwt.h:9,                                                                                                                                                                                                                                                                                                                        
                 from /build/scitokens-cpp-0.3.0/src/scitokens_internal.cpp:7:                                                                                                                                                                                                                                                                                             
/usr/include/openssl/ossl_typ.h:110:16: note: forward declaration of 'struct rsa_st'                                                                                                                                                                                                                                                                                       
 typedef struct rsa_st RSA;                                                                                                                                                                                                                                                                                                                                                
                ^~~~~~                                                                                                                                                                                                                                                                                                                                                     
/build/scitokens-cpp-0.3.0/src/scitokens_internal.cpp:243:8: error: invalid use of incomplete type 'struct rsa_st'                                                                                                                                                                                                                                                         
     rsa->d = nullptr;                                                                                                                                                                                                                                                                                                                                                     
        ^~                                                                                                                                                                                                                                                                                                                                                                 
In file included from /usr/include/openssl/evp.h:14:0,                                                                                                                                                                                                                                                                                                                     
                 from /usr/include/jwt-cpp/jwt.h:9,                                                                                                                                                                                                                                                                                                                        
                 from /build/scitokens-cpp-0.3.0/src/scitokens_internal.cpp:7:                                                                                                                                                                                                                                                                                             
/usr/include/openssl/ossl_typ.h:110:16: note: forward declaration of 'struct rsa_st'                                                                                                                                                                                                                                                                                       
 typedef struct rsa_st RSA;                                                                                                                                                                                                                                                                                                                                                
                ^~~~~~                                                                                                                                                                                                                                                                                                                                                     
/build/scitokens-cpp-0.3.0/src/scitokens_internal.cpp: At global scope:                                                                                                                                                                                                                                                                                                    
/build/scitokens-cpp-0.3.0/src/scitokens_internal.cpp:303:5: error: 'int {anonymous}::empty_validator(const char*, char**)' defined but not used [-Werror=unused-function]                                                                                                                                                                                                 
 int empty_validator(const char *, char **) {                                                                                                                                                                                                                                                                                                                              
     ^~~~~~~~~~~~~~~                                                                                                                                                                                                                                                                                                                                                       
cc1plus: all warnings being treated as errors                                                                                                                                                                                                                                                                                                                              
CMakeFiles/SciTokens.dir/build.make:89: recipe for target 'CMakeFiles/SciTokens.dir/src/scitokens_internal.cpp.o' failed                                                                                                                                                                                                                                                   

Jessie:

[ 16%] Building CXX object CMakeFiles/SciTokens.dir/src/scitokens_internal.cpp.o                                                                                                                                                                                                                                                                                           
/usr/bin/c++   -DSciTokens_EXPORTS -I/build/scitokens-cpp-0.3.0  -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2  -Wall -Werror -std=c++11 -fPIC   -o CMakeFiles/SciTokens.dir/src/scitokens_internal.cpp.o -c /build/scitokens-cpp-0.3.0/src/scitokens_internal.cpp                                                                  
/build/scitokens-cpp-0.3.0/src/scitokens_internal.cpp:303:5: error: 'int {anonymous}::empty_validator(const char*, char**)' defined but not used [-Werror=unused-function]                                                                                                                                                                                                 
 int empty_validator(const char *, char **) {                                                                                                                                                                                                                                                                                                                              
     ^                                                                                                                                                                                                                                                                                                                                                                     
cc1plus: all warnings being treated as errors                                                                                                                                                                                                                                                                                                                              
CMakeFiles/SciTokens.dir/build.make:89: recipe for target 'CMakeFiles/SciTokens.dir/src/scitokens_internal.cpp.o' failed                                                                                                                                                                                                                                                   

Any suggestions how to proceed?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions