Building on MacOS - jhbuild difficulty
John Ralls
jralls at ceridwen.us
Thu Jan 25 19:27:37 EST 2018
I resolved it by selecting 4, then from the shell:
git reset --hard
git checkout master
autoreconf -fis && ./configure --prefix $PREFIX
exit
<back at the jhbuild prompt> 1
Regards,
John Ralls
> On Jan 24, 2018, at 6:10 PM, R. Victor Klassen <rvklassen at gmail.com> wrote:
>
> 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> 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> wrote:
>>>>
>>>>
>>>>
>>>>> On Jan 19, 2018, at 1:46 PM, John Ralls <jralls at ceridwen.us> wrote:
>>>>>
>>>>>
>>>>>
>>>>>> On Jan 18, 2018, at 1:26 PM, R. Victor Klassen <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>, 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>
>>>>>>
>>>>>> 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:> [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'>
>>>>>>
>>>>>> 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