Building on MacOS - jhbuild difficulty

R. Victor Klassen rvklassen at gmail.com
Wed Jan 24 21:10:22 EST 2018


Easy enough:

make[3]: Nothing to be done for `all-am'.
Making all in openssl
  CC       libxmlsec1_openssl_la-ciphers.lo
  CC       libxmlsec1_openssl_la-digests.lo
  CC       libxmlsec1_openssl_la-evp.lo
  CC       libxmlsec1_openssl_la-hmac.lo
  CC       libxmlsec1_openssl_la-kw_aes.lo
ciphers.c:39:25: error: field has incomplete type 'EVP_CIPHER_CTX' (aka 'struct evp_cipher_ctx_st')
    EVP_CIPHER_CTX      cipherCtx;hmac.c:78:25: error: field has incomplete type 'HMAC_CTX' (aka 'struct hmac_ctx_st')
    HMAC_CTX            hmacCtx;
                        ^
/Users/gnucashdev/gnucash-stable/include/openssl/ossl_typ.h:102:16: note: forward declaration of 'struct hmac_ctx_st'
typedef struct hmac_ctx_st HMAC_CTX;
               ^
digests.c:31:25: error: field has incomplete type 'EVP_MD_CTX' (aka 'struct evp_md_ctx_st')
    EVP_MD_CTX          digestCtx;
                        ^
/Users/gnucashdev/gnucash-stable/include/openssl/ossl_typ.h:92:16: note: forward declaration of 'struct evp_md_ctx_st'
typedef struct evp_md_ctx_st EVP_MD_CTX;
               ^

                        ^
/Users/gnucashdev/gnucash-stable/include/openssl/ossl_typ.h:90:16: note: forward declaration of 'struct evp_cipher_ctx_st'
typedef struct evp_cipher_ctx_st EVP_CIPHER_CTX;
               ^
evp.c:185:11: warning: implicit declaration of function 'CRYPTO_add' is invalid in C99 [-Wimplicit-function-declaration]
    ret = CRYPTO_add(&pKey->references,1,CRYPTO_LOCK_EVP_PKEY);
          ^
digests.c:216:5: warning: implicit declaration of function 'EVP_MD_CTX_cleanup' is invalid in C99 [-Wimplicit-function-declaration]
    EVP_MD_CTX_cleanup(&(ctx->digestCtx));
    ^
hmac.c:236:5: warning: implicit declaration of function 'HMAC_CTX_init' is invalid in C99 [-Wimplicit-function-declaration]
    HMAC_CTX_init(&(ctx->hmacCtx));
    ^
hmac.c:252:5: warning: implicit declaration of function 'HMAC_CTX_cleanup' is invalid in C99 [-Wimplicit-function-declaration]
    HMAC_CTX_cleanup(&(ctx->hmacCtx));
    ^
hmac.c:357:5: warning: 'HMAC_Init' is deprecated [-Wdeprecated-declarations]
    HMAC_Init(&(ctx->hmacCtx),
    ^
/Users/gnucashdev/gnucash-stable/include/openssl/hmac.h:28:1: note: 'HMAC_Init' has been explicitly marked deprecated here
DEPRECATEDIN_1_1_0(__owur int HMAC_Init(HMAC_CTX *ctx, const void *key, int len,
^
/Users/gnucashdev/gnucash-stable/include/openssl/opensslconf.h:130:34: note: expanded from macro 'DEPRECATEDIN_1_1_0'
# define DEPRECATEDIN_1_1_0(f)   DECLARE_DEPRECATED(f)
                                 ^
/Users/gnucashdev/gnucash-stable/include/openssl/opensslconf.h:105:53: note: expanded from macro 'DECLARE_DEPRECATED'
# define DECLARE_DEPRECATED(f)    f __attribute__ ((deprecated));
                                                    ^
evp.c:185:27: error: incomplete definition of type 'struct evp_pkey_st'
    ret = CRYPTO_add(&pKey->references,1,CRYPTO_LOCK_EVP_PKEY);
                      ~~~~^
/Users/gnucashdev/gnucash-stable/include/openssl/ossl_typ.h:93:16: note: forward declaration of 'struct evp_pkey_st'
typedef struct evp_pkey_st EVP_PKEY;
               ^
1 warning and 1 error generated.
1 error generated.
3 warnings and 1 error generated.
make[3]: *** [libxmlsec1_openssl_la-digests.lo] Error 1
make[3]: *** Waiting for unfinished jobs....
make[3]: *** [libxmlsec1_openssl_la-ciphers.lo] Error 1
evp.c:185:42: error: use of undeclared identifier 'CRYPTO_LOCK_EVP_PKEY'
    ret = CRYPTO_add(&pKey->references,1,CRYPTO_LOCK_EVP_PKEY);
                                         ^
evp.c:213:16: error: incomplete definition of type 'struct evp_pkey_st'
    switch(pKey->type) {
           ~~~~^
/Users/gnucashdev/gnucash-stable/include/openssl/ossl_typ.h:93:16: note: forward declaration of 'struct evp_pkey_st'
typedef struct evp_pkey_st EVP_PKEY;
               ^
make[3]: *** [libxmlsec1_openssl_la-hmac.lo] Error 1
evp.c:505:42: error: incomplete definition of type 'struct evp_pkey_st'
    xmlSecAssert2((pKey == NULL) || (pKey->type == EVP_PKEY_DSA), NULL);
                                     ~~~~^
../../include/xmlsec/errors.h:487:15: note: expanded from macro 'xmlSecAssert2'
        if(!( p ) ) { \
              ^
/Users/gnucashdev/gnucash-stable/include/openssl/ossl_typ.h:93:16: note: forward declaration of 'struct evp_pkey_st'
typedef struct evp_pkey_st EVP_PKEY;
               ^
evp.c:507:33: error: incomplete definition of type 'struct evp_pkey_st'
    return((pKey != NULL) ? pKey->pkey.dsa : (DSA*)NULL);
                            ~~~~^
/Users/gnucashdev/gnucash-stable/include/openssl/ossl_typ.h:93:16: note: forward declaration of 'struct evp_pkey_st'
typedef struct evp_pkey_st EVP_PKEY;
               ^
evp.c:523:23: error: incomplete definition of type 'struct evp_pkey_st'
    xmlSecAssert2(pKey->type == EVP_PKEY_DSA, -1);
                  ~~~~^
../../include/xmlsec/errors.h:487:15: note: expanded from macro 'xmlSecAssert2'
        if(!( p ) ) { \
              ^
/Users/gnucashdev/gnucash-stable/include/openssl/ossl_typ.h:93:16: note: forward declaration of 'struct evp_pkey_st'
typedef struct evp_pkey_st EVP_PKEY;
               ^
evp.c:610:46: error: incomplete definition of type 'struct dsa_st'
    if(xmlSecOpenSSLNodeGetBNValue(cur, &(dsa->p)) == NULL) {
                                          ~~~^
/Users/gnucashdev/gnucash-stable/include/openssl/ossl_typ.h:107:16: note: forward declaration of 'struct dsa_st'
typedef struct dsa_st DSA;
               ^
evp.c:633:46: error: incomplete definition of type 'struct dsa_st'
    if(xmlSecOpenSSLNodeGetBNValue(cur, &(dsa->q)) == NULL) {
                                          ~~~^
/Users/gnucashdev/gnucash-stable/include/openssl/ossl_typ.h:107:16: note: forward declaration of 'struct dsa_st'
typedef struct dsa_st DSA;
               ^
evp.c:656:46: error: incomplete definition of type 'struct dsa_st'
    if(xmlSecOpenSSLNodeGetBNValue(cur, &(dsa->g)) == NULL) {
                                          ~~~^
/Users/gnucashdev/gnucash-stable/include/openssl/ossl_typ.h:107:16: note: forward declaration of 'struct dsa_st'
typedef struct dsa_st DSA;
               ^
evp.c:671:50: error: incomplete definition of type 'struct dsa_st'
        if(xmlSecOpenSSLNodeGetBNValue(cur, &(dsa->priv_key)) == NULL) {
                                              ~~~^
/Users/gnucashdev/gnucash-stable/include/openssl/ossl_typ.h:107:16: note: forward declaration of 'struct dsa_st'
typedef struct dsa_st DSA;
               ^
evp.c:695:46: error: incomplete definition of type 'struct dsa_st'
    if(xmlSecOpenSSLNodeGetBNValue(cur, &(dsa->pub_key)) == NULL) {
                                          ~~~^
/Users/gnucashdev/gnucash-stable/include/openssl/ossl_typ.h:107:16: note: forward declaration of 'struct dsa_st'
typedef struct dsa_st DSA;
               ^
evp.c:790:22: error: incomplete definition of type 'struct dsa_st'
    xmlSecAssert2(dsa->p != NULL, -1);
                  ~~~^
../../include/xmlsec/errors.h:487:15: note: expanded from macro 'xmlSecAssert2'
        if(!( p ) ) { \
              ^
/Users/gnucashdev/gnucash-stable/include/openssl/ossl_typ.h:107:16: note: forward declaration of 'struct dsa_st'
typedef struct dsa_st DSA;
               ^
evp.c:801:47: error: incomplete definition of type 'struct dsa_st'
    ret = xmlSecOpenSSLNodeSetBNValue(cur, dsa->p, 1);
                                           ~~~^
/Users/gnucashdev/gnucash-stable/include/openssl/ossl_typ.h:107:16: note: forward declaration of 'struct dsa_st'
typedef struct dsa_st DSA;
               ^
evp.c:813:22: error: incomplete definition of type 'struct dsa_st'
    xmlSecAssert2(dsa->q != NULL, -1);
                  ~~~^
../../include/xmlsec/errors.h:487:15: note: expanded from macro 'xmlSecAssert2'
        if(!( p ) ) { \
              ^
/Users/gnucashdev/gnucash-stable/include/openssl/ossl_typ.h:107:16: note: forward declaration of 'struct dsa_st'
typedef struct dsa_st DSA;
               ^
evp.c:824:47: error: incomplete definition of type 'struct dsa_st'
    ret = xmlSecOpenSSLNodeSetBNValue(cur, dsa->q, 1);
                                           ~~~^
/Users/gnucashdev/gnucash-stable/include/openssl/ossl_typ.h:107:16: note: forward declaration of 'struct dsa_st'
typedef struct dsa_st DSA;
               ^
evp.c:836:22: error: incomplete definition of type 'struct dsa_st'
    xmlSecAssert2(dsa->g != NULL, -1);
                  ~~~^
../../include/xmlsec/errors.h:487:15: note: expanded from macro 'xmlSecAssert2'
        if(!( p ) ) { \
              ^
/Users/gnucashdev/gnucash-stable/include/openssl/ossl_typ.h:107:16: note: forward declaration of 'struct dsa_st'
typedef struct dsa_st DSA;
               ^
evp.c:847:47: error: incomplete definition of type 'struct dsa_st'
    ret = xmlSecOpenSSLNodeSetBNValue(cur, dsa->g, 1);
                                           ~~~^
/Users/gnucashdev/gnucash-stable/include/openssl/ossl_typ.h:107:16: note: forward declaration of 'struct dsa_st'
typedef struct dsa_st DSA;
               ^
evp.c:859:78: error: incomplete definition of type 'struct dsa_st'
    if(((keyInfoCtx->keyReq.keyType & xmlSecKeyDataTypePrivate) != 0) && (dsa->priv_key != NULL)) {
                                                                          ~~~^
/Users/gnucashdev/gnucash-stable/include/openssl/ossl_typ.h:107:16: note: forward declaration of 'struct dsa_st'
typedef struct dsa_st DSA;
               ^
evp.c:870:51: error: incomplete definition of type 'struct dsa_st'
        ret = xmlSecOpenSSLNodeSetBNValue(cur, dsa->priv_key, 1);
                                               ~~~^
/Users/gnucashdev/gnucash-stable/include/openssl/ossl_typ.h:107:16: note: forward declaration of 'struct dsa_st'
typedef struct dsa_st DSA;
               ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]

> On Jan 24, 2018, at 8:36 PM, John Ralls <jralls at ceridwen.us> wrote:
> 
> Since you didn’t share the actual errors I can’t really suggest anything...
> 
> Regards,
> John Ralls
> 
> 
>> On Jan 24, 2018, at 2:57 PM, R. Victor Klassen <rvklassen at gmail.com <mailto:rvklassen at gmail.com>> wrote:
>> 
>> This got me much further.
>> 
>> The next problem was that no matter how many times I re-tried, gnutls would not check out.   I finally pulled it down by hand, extracted it to what appears to be the right place, and then continued from the configure phase - that seemed to work.  The symptom was 30 minutes of waiting while 0 bytes downloaded and then a timeout.  [I must say I would not be patient for 30 minutes of 0 bandwidth].
>> 
>> Continuing on, xmlsec failed to build.  I think the errors were all in evp.c
>> 
>> fatal error: too many errors emitted, stopping now [-ferror-limit=]
>> 1 warning and 20 errors generated.
>> make[3]: *** [libxmlsec1_openssl_la-evp.lo] Error 1
>> make[2]: *** [all-recursive] Error 1
>> make[1]: *** [all-recursive] Error 1
>> make: *** [all] Error 2
>> *** Error during phase build of xmlsec: ########## Error running make -j 5  *** [45/72]
>> 
>> For this one I have no idea what to try next.
>> 
>> 
>>> On Jan 21, 2018, at 12:36 PM, John Ralls <jralls at ceridwen.us <mailto:jralls at ceridwen.us>> wrote:
>>> 
>>> 
>>> 
>>>> On Jan 19, 2018, at 1:46 PM, John Ralls <jralls at ceridwen.us <mailto:jralls at ceridwen.us>> wrote:
>>>> 
>>>> 
>>>> 
>>>>> On Jan 18, 2018, at 1:26 PM, R. Victor Klassen <rvklassen at gmail.com <mailto:rvklassen at gmail.com>> wrote:
>>>>> 
>>>>> After a few years of being too busy to try working on the code base, I thought I’d make another attempt at installing a development  version of GnuCash.  Following the instructions on https://wiki.gnucash.org/wiki/MacOSX/Quartz <https://wiki.gnucash.org/wiki/MacOSX/Quartz> <https://wiki.gnucash.org/wiki/MacOSX/Quartz <https://wiki.gnucash.org/wiki/MacOSX/Quartz>>, I began by creating a new user, to be certain the environment wasn’t polluted by my previous attempt.
>>>>> 
>>>>> I was successful in downloading gtk-osx-build-setup.sh
>>>>> 
>>>>> I then ran it from the command line, and after a half-dozen or so tries, succeeded.   (prior attempts hung at 9% or less complete - I presume this is temporary).  
>>>>> 
>>>>> There were three warnings:
>>>>> 
>>>>> WARNING: aclocal not available (usually part of package 'autoconf')
>>>>> WARNING: automake not available (usually part of package 'automake')
>>>>> WARNING: yelp-tools not available (usually part of package 'yelp-tools')
>>>>> Configuring jhbuild without autotools
>>>>> 
>>>>> Are these a problem?
>>>>> 
>>>>> I then pulled down http://github.com/gnucash/gnucash-on-osx/raw/master/.jhbuildrc-custom <http://github.com/gnucash/gnucash-on-osx/raw/master/.jhbuildrc-custom> <http://github.com/gnucash/gnucash-on-osx/raw/master/.jhbuildrc-custom <http://github.com/gnucash/gnucash-on-osx/raw/master/.jhbuildrc-custom>>
>>>>> 
>>>>> At this point I attempted to uncomment the line 
>>>>> 
>>>>> skip.remove( “bash” ) 
>>>>> 
>>>>> But it wasn’t in there.   So I added it, and when I attempted to run jhbuild it complained.  So I removed the line.  Is this it no longer a relevant instruction?
>>>>> 
>>>>> I then attempted to run 
>>>>> 
>>>>> jhbuild build openssl 
>>>>> 
>>>>> Which yielded the response:
>>>>> 
>>>>> jhbuild build: failed to parse /Users/gnucashdev/Source/jhbuild/modulesets/http:/git.gnome.org/browse/gtk-osx/plain/modulesets-stable/gtk-osx.modules: <http://git.gnome.org/browse/gtk-osx/plain/modulesets-stable/gtk-osx.modules:> <http://git.gnome.org/browse/gtk-osx/plain/modulesets-stable/gtk-osx.modules: <http://git.gnome.org/browse/gtk-osx/plain/modulesets-stable/gtk-osx.modules:>> [Errno 2] No such file or directory: u'/Users/gnucashdev/Source/jhbuild/modulesets/http:/git.gnome.org/browse/gtk-osx/plain/modulesets-stable/gtk-osx.modules' <http://git.gnome.org/browse/gtk-osx/plain/modulesets-stable/gtk-osx.modules'> <http://git.gnome.org/browse/gtk-osx/plain/modulesets-stable/gtk-osx.modules' <http://git.gnome.org/browse/gtk-osx/plain/modulesets-stable/gtk-osx.modules'>>
>>>>> 
>>>>> At which point I am not sure how to proceed.  In particular. I’m not even sure whether this should go to gnucash-devel or gtx-osx-devel
>>>> 
>>>> The jhbuild warnings have to do with jhbuild bootstrapping itself. They're normal.
>>>> 
>>>> skip.remove("bash") isn't needed anymore, .jhbuildrc adds it only when the MacOS version is < 10.11 (i.e. no SIP).
>>>> 
>>>> I merged a PR the other day that updates openssl to 1.1g and that seems to build OK inline so it's no longer necessary to build it separately before everything else.
>>>> 
>>>> All of that aside, something is whacked and I can reproduce the broken moduleset path using an alternate user... but it works fine when I'm me and everything else is the same.
>>>> 
>>> 
>>> I found what was whacked: There was an error in gtk-osx-python.modules and jhbuild has this weird fallback mechanism where instead of reporting an error it tries to load the same moduleset from the jhbuild source directory (~/Source/jhbuild/modulesets), first stripped to the "file part" which sort-of makes sense but then with the whole URI as a filename, which doesn't at all. That of course fails and it's the error that gets reported, which isn't very helpful. My primary user id had an old version of gtk-osx-python.modules in the jhbuild sources so the problem wouldn't reproduce until I re-ran gtk-osx-build-setup.sh, which replaced it with the one in git.
>>> 
>>> Regards,
>>> John Ralls
>>> 
>>> 
>> 
> 



More information about the gnucash-devel mailing list