[Bug 1752] Fedora-Core wine 20030911 does not compile

Wine Bugs wine-bugs at winehq.com
Thu Oct 2 03:31:34 CDT 2003


http://bugs.winehq.com/show_bug.cgi?id=1752





------- Additional Comments From traxtopel at hotpop.com  2003-02-10 03:31 -------
<Traxtopel> checking openssl/ssl.h presence... yes
<Traxtopel> checking for openssl/ssl.h... yes
<Traxtopel> configure:13973: checking for openssl/ssl.h
<Traxtopel> ac_cv_header_openssl_ssl_h=yes
<papineau> So in include/config.h, HAVE_OPENSSL_SSL_H is defined?
<Traxtopel> nope 
<Traxtopel> #undef HAVE_OPENSSL_SSL_H
<papineau> config.h or config.h.in? It's supposed to be commented in config.h if
absent
<Traxtopel> sorry wrong by me
<Traxtopel> iys defined
<Traxtopel> I opened the template
<Traxtopel> #define HAVE_OPENSSL_SSL_H 1
<Traxtopel> thats in include/config.h
<papineau> So your openssl is detected and usable...
<Traxtopel> well, wine seems to think so
<Traxtopel> but something makes it bail out
<papineau> Next thing could be to try to compile cookie.c with -E rather than
-c, and check the output to verify what's the problem with kssl.h
<Traxtopel> where does cookie get compile from?
<papineau> dlls/wininet
<Traxtopel> ok got it
<papineau> Where's your krb5.h? /usr/kerberos/include/krb5h?
<Traxtopel> /usr/include/krb5.h
<papineau> That explains why mine is not found (bummer). It comes from package
krb5-devel?
<Traxtopel> yep
<Traxtopel> I guess I can symlink it
<papineau> The problem is not that it's not found
<papineau> Well, doesn't seem to.
<Traxtopel> can I add an extra path somewhere
<papineau> Your krb5.h is found, no need to add a path.
<Traxtopel> ah ok
<Traxtopel> misread what u said
<Traxtopel> I notice in redhat 9 it is in  /usr/kerberos/
<papineau> In dlls/wininet, do make, then copy the gcc line while changing the
-c to -E and the output to cookie.i.
<Traxtopel> hmm I will need to restart it, I did a make clean
<papineau> You don't need everything, just a couple.
<papineau> Begin with dlls/wininet, it'll tell you what you need (probably
tools/wrc and libs)
<Traxtopel> ok let me look
<Traxtopel> ok that went clean
<Traxtopel> using th -E
<papineau> Ok.
<papineau> It's the result of the first pass of gcc, replacing all macros etc.
and before actually compiling anything.
<papineau> Open the output file and search for kssl.h
<Traxtopel> ah ok
<Traxtopel> typedef struct kssl_ctx_st
<Traxtopel>         {
<Traxtopel>                                 /*      used by:    disposition:   
        */
<Traxtopel>         char *service_name;     /*      C,S         default ok
(kssl)       */
<Traxtopel>         char *service_host;     /*      C           input, REQUIRED
        */
<Traxtopel>         char *client_princ;     /*      S           output from krb5
ticket */
<Traxtopel>         char *keytab_file;      /*      S           NULL
(/etc/krb5.keytab) */
<Traxtopel>         char *cred_cache;       /*      C           NULL (default) 
        */
<Traxtopel>         krb5_enctype enctype;
<Traxtopel>         int length;
<Traxtopel>         krb5_octet FAR *key;
<Traxtopel>         } KSSL_CTX;
<Traxtopel>                                                                    
                              
<Traxtopel> #define KSSL_CLIENT     1
<Traxtopel> #define KSSL_SERVER     2
<Traxtopel> #define KSSL_SERVICE    3
<Traxtopel> #define KSSL_KEYTAB     4
<Traxtopel>                                                                    
                              
<Traxtopel> #define KSSL_CTX_OK     0
<Traxtopel> #define KSSL_CTX_ERR    1
<Traxtopel> #define KSSL_NOMEM      2
<Traxtopel>                                                                    
                              
<Traxtopel> krb5_error_code kssl_ctx_setstring(KSSL_CTX *kssl_ctx, int which,
char *text);
<Traxtopel> KSSL_CTX *kssl_ctx_new(void);
<Traxtopel> oops sorry
<Traxtopel> #define KSSL_ERR_MAX    255
<Traxtopel> typedef struct kssl_err_st  {
<Traxtopel>         int  reason;
<Traxtopel>         char text[KSSL_ERR_MAX+1];
<Traxtopel>         } KSSL_ERR;
<Traxtopel>                                                                    
                              
<Traxtopel>                                                                    
                              
<Traxtopel> **              (1) Kerberos session key to SSL, and
<Traxtopel> **              (2)     Config data between application and SSL lib
<Traxtopel> */
<Traxtopel> typedef struct kssl_ctx_st
<Traxtopel>         {
<Traxtopel>                                 /*      used by:    disposition:   
        */
<Traxtopel>         char *service_name;     /*      C,S         default ok
(kssl)       */
<Traxtopel>         char *service_host;     /*      C           input, REQUIRED
        */
<Traxtopel>         char *client_princ;     /*      S           output from krb5
ticket */
<Traxtopel>         char *keytab_file;      /*      S           NULL
(/etc/krb5.keytab) */
<Traxtopel>         char *cred_cache;       /*      C           NULL (default) 
        */
<Traxtopel>         krb5_enctype enctype;
<Traxtopel>         int length;
<Traxtopel>         krb5_octet FAR *key;
<Traxtopel>         } KSSL_CTX;
<Traxtopel>                                                                    
                              
<Traxtopel> #define KSSL_CLIENT     1
<Traxtopel> #define KSSL_SERVER     2
<Traxtopel> #define KSSL_SERVICE    3
<Traxtopel> #define KSSL_KEYTAB     4
<Traxtopel>                                                                    
                              
<Traxtopel> #define KSSL_CTX_OK     0
<Traxtopel> #define KSSL_CTX_ERR    1
<Traxtopel> #define KSSL_NOMEM      2
<Traxtopel>                                                                    
                              
<Traxtopel> krb5_error_code kssl_ctx_setstring(KSSL_CTX *kssl_ctx, int which,
char *text);
<Traxtopel> missed a bit
<papineau> What I want is the lines in cookie.o resulting from kssl.h being
included.
<papineau> There are no comments, no #define, no macros
<papineau> They all have already been processed
<Traxtopel> typedef struct kssl_err_st {
<Traxtopel>         int reason;
<Traxtopel>         char text[255 +1];
<Traxtopel>         } KSSL_ERR;
<Traxtopel>                                                                    
                              
<Traxtopel>                                                                    
                              
<Traxtopel>                                                                    
                              
<Traxtopel>                                                                    
                              
<Traxtopel>                                                                    
                              
<Traxtopel>                                                                    
                              
<Traxtopel> typedef struct kssl_ctx_st
<Traxtopel>         {
<Traxtopel>                                                                    
                              
<Traxtopel>         char *service_name;
<Traxtopel>         char *service_host;
<Traxtopel>         char *client_princ;
<Traxtopel>         char *keytab_file;
<Traxtopel>         char *cred_cache;
<Traxtopel>         krb5_enctype enctype;
<Traxtopel>         int length;
<Traxtopel>         krb5_octet do_not_use_this_in_wine *key;
<Traxtopel>         } KSSL_CTX;
<Traxtopel> # 149 "/usr/include/openssl/kssl.h" 3 4
<Traxtopel> krb5_error_code kssl_ctx_setstring(KSSL_CTX *kssl_ctx, int which,
char *text);
<Traxtopel> KSSL_CTX *kssl_ctx_new(void);
<Traxtopel> KSSL_CTX *kssl_ctx_free(KSSL_CTX *kssl_ctx);
<Traxtopel> void kssl_ctx_show(KSSL_CTX *kssl_ctx);
<Traxtopel> krb5_error_code kssl_ctx_setprinc(KSSL_CTX *kssl_ctx, int which,
<Traxtopel> is that more like it?
<papineau> That's what I want to see, yes
<papineau> See the do_not_use_this_in_wine?
<Traxtopel> ah yes
<Traxtopel> so something with  krb5_octet
<papineau> It's the definition of FAR, because one of the wine headers defined
it that way
<papineau> So there's an incompatibilty between your version of ssl with
kerberos and wine
<Traxtopel> and if I disable the  krb5_octet in the header
<Traxtopel> or all of them
<papineau> Resolution could involve passing --without-ssl to wine's ./configure,
or defining OPENSSL_NO_KRB5
<papineau> The problem is not with krb5_octet per see, but with a keyword used
by ssl w/ krb5 which Wine forbids
<Traxtopel> do u want the bugzilla number to add the info to
<papineau> Go ahead
<Traxtopel> it uses its owns methods
<Traxtopel> one sec
<Traxtopel> http://bugs.winehq.com/show_bug.cgi?id=1752
<Traxtopel> 1752
<Traxtopel> ok, thanks you have been a great help
<papineau> The final resolution will probably involve either an #undef FAR just
before including ssl.h in cookie.c (you can try that right away) (but that's a
hack), or 
<Traxtopel> ok I will try it
<papineau> getting openssl kerberos to not use FAR at all
<Traxtopel> first I will see if wine compiles/works without ssl
<Traxtopel> hehe
<papineau> Good luck!

-- 
Configure bugmail: http://bugs.winehq.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.



More information about the wine-bugs mailing list