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