Bug 150622

Summary: [EFL] gnutls-3.3.0 jhbuild module build fails on Ubuntu 15.10
Product: WebKit Reporter: Csaba Osztrogonác <ossy>
Component: New BugsAssignee: Csaba Osztrogonác <ossy>
Status: RESOLVED FIXED    
Severity: Normal CC: gyuyoung.kim, ossy
Priority: P2    
Version: Other   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on:    
Bug Blocks: 150619    
Attachments:
Description Flags
Patch none

Description Csaba Osztrogonác 2015-10-28 05:02:53 PDT
In file included from sha-padlock.c:29:0:
sha-padlock.c: In function 'padlock_sha1_update':
sha-padlock.c:81:46: error: 'struct sha1_ctx' has no member named 'count_high'
  MD_UPDATE(ctx, length, data, SHA1_COMPRESS, MD_INCR(ctx));
                                              ^
sha-padlock.c:81:46: error: 'struct sha1_ctx' has no member named 'count_low'
  MD_UPDATE(ctx, length, data, SHA1_COMPRESS, MD_INCR(ctx));
                                              ^
sha-padlock.c:81:46: error: 'struct sha1_ctx' has no member named 'count_high'
  MD_UPDATE(ctx, length, data, SHA1_COMPRESS, MD_INCR(ctx));
                                              ^
sha-padlock.c:81:46: error: 'struct sha1_ctx' has no member named 'count_low'
  MD_UPDATE(ctx, length, data, SHA1_COMPRESS, MD_INCR(ctx));
                                              ^
sha-padlock.c: In function 'padlock_sha256_update':
sha-padlock.c:88:48: error: 'struct sha256_ctx' has no member named 'count_high'
  MD_UPDATE(ctx, length, data, SHA256_COMPRESS, MD_INCR(ctx));
                                                ^
sha-padlock.c:88:48: error: 'struct sha256_ctx' has no member named 'count_low'
  MD_UPDATE(ctx, length, data, SHA256_COMPRESS, MD_INCR(ctx));
                                                ^
sha-padlock.c:88:48: error: 'struct sha256_ctx' has no member named 'count_high'
  MD_UPDATE(ctx, length, data, SHA256_COMPRESS, MD_INCR(ctx));
                                                ^
sha-padlock.c:88:48: error: 'struct sha256_ctx' has no member named 'count_low'
  MD_UPDATE(ctx, length, data, SHA256_COMPRESS, MD_INCR(ctx));
                                                ^
sha-padlock.c: In function 'padlock_sha1_digest':
sha-padlock.c:143:13: error: 'struct sha1_ctx' has no member named 'count_high'
  high = (ctx->count_high << 9) | (ctx->count_low >> 23);
             ^
sha-padlock.c:143:38: error: 'struct sha1_ctx' has no member named 'count_low'
  high = (ctx->count_high << 9) | (ctx->count_low >> 23);
                                      ^
sha-padlock.c:144:12: error: 'struct sha1_ctx' has no member named 'count_low'
  low = (ctx->count_low << 9) | (ctx->index << 3);
            ^
sha-padlock.c: In function 'padlock_sha256_digest':
sha-padlock.c:165:13: error: 'struct sha256_ctx' has no member named 'count_high'
  high = (ctx->count_high << 9) | (ctx->count_low >> 23);
             ^
sha-padlock.c:165:38: error: 'struct sha256_ctx' has no member named 'count_low'
  high = (ctx->count_high << 9) | (ctx->count_low >> 23);
                                      ^
sha-padlock.c:166:12: error: 'struct sha256_ctx' has no member named 'count_low'
  low = (ctx->count_low << 9) | (ctx->index << 3);
            ^
Makefile:1528: recipe for target 'sha-padlock.lo' failed
make[5]: *** [sha-padlock.lo] Error 1
make[5]: *** Waiting for unfinished jobs....
aes-padlock.c: In function 'padlock_aes_cipher_setkey':
aes-padlock.c:97:22: error: 'struct aes_ctx' has no member named 'nrounds'
   pce->ks.rounds = nc.nrounds;
                      ^
Makefile:1528: recipe for target 'aes-padlock.lo' failed
make[5]: *** [aes-padlock.lo] Error 1
aes-gcm-padlock.c: In function 'aes_gcm_cipher_setkey':
aes-gcm-padlock.c:102:23: error: macro "GCM_SET_KEY" passed 5 arguments, but takes just 4
       keysize, userkey);
                       ^
aes-gcm-padlock.c:101:2: error: 'GCM_SET_KEY' undeclared (first use in this function)
  GCM_SET_KEY(ctx, padlock_aes_set_encrypt_key, padlock_aes_encrypt,
  ^
aes-gcm-padlock.c:101:2: note: each undeclared identifier is reported only once for each function it appears in
Makefile:1528: recipe for target 'aes-gcm-padlock.lo' failed
make[5]: *** [aes-gcm-padlock.lo] Error 1
make[5]: Leaving directory '/home/ossy/WebKit/WebKitBuild/DependenciesEFL/Source/gnutls-3.3.0/lib/accelerated/x86'
Makefile:1397: recipe for target 'all-recursive' failed
make[4]: *** [all-recursive] Error 1
Comment 1 Csaba Osztrogonác 2015-10-28 13:34:19 PDT
http://trac.webkit.org/changeset/182874 added building gnutls as a jhbuild module to be able to build Chromium and WebKitEFL on the same Ubuntu 14.04
machine. 

The problem was that Chromium needed libcups2-dev, which depends on libgnutls-dev which is version 2.12. But to build WebKit, we need libgnutls28-dev
which is version 3.2.11. Of course libgnutls-dev and libgnutls28-dev are in
conflict, it isn't possible to install both of them at the same time, accordingly
it wasn't possible to build Chromium and WebKit on the same 14.04 machine ...
That's why r182874 added gnutls as jhbuild module to be able to have
two different gnutls version.

But 14.04 isn't supported since we need at least GCC 4.9, now the reference
platform is Ubuntu 15.04. libgnutls-dev and libgnutls28-dev are same on
15.04 (gnutls 3.3.8) and 15.10 too (gnutls 3.3.15)
( http://trac.webkit.org/changeset/188912 
https://trac.webkit.org/changeset/187596)

I think the proper fix is dropping gnutls from jhbuild modules 
and adding libgnutls-dev back to install-dependencies script.
Comment 2 Csaba Osztrogonác 2015-10-28 13:39:42 PDT
Created attachment 264240 [details]
Patch

Additionally removed nettle-dev from Tools/efl/install-dependencies, libgnutls-dev pulls it in.
Comment 3 Gyuyoung Kim 2015-10-28 17:58:18 PDT
Comment on attachment 264240 [details]
Patch

Thank you for fixing it.
Comment 4 Csaba Osztrogonác 2015-11-02 02:27:04 PST
Comment on attachment 264240 [details]
Patch

Clearing flags on attachment: 264240

Committed r191883: <http://trac.webkit.org/changeset/191883>
Comment 5 Csaba Osztrogonác 2015-11-02 02:27:11 PST
All reviewed patches have been landed.  Closing bug.
Comment 6 Csaba Osztrogonác 2015-11-02 02:41:47 PST
(In reply to comment #4)
> Comment on attachment 264240 [details]
> Patch
> 
> Clearing flags on attachment: 264240
> 
> Committed r191883: <http://trac.webkit.org/changeset/191883>

It broke the jhbuild step on the EFL buildbot:

configure: error: in `/home/gyuyoung/WebKit-BuildSlave/efl-linux-64-release-wk2/build/WebKitBuild/DependenciesEFL/Source/glib-networking-2.41.4':
configure: error: "No package 'gnutls' found"
See `config.log' for more details


It seems libgnutls-dev package was installed on the EWS, but not on the bot.
Gyuyoung, could you install this package?
Comment 7 Gyuyoung Kim 2015-11-02 04:39:00 PST
(In reply to comment #6)
> (In reply to comment #4)
> > Comment on attachment 264240 [details]
> > Patch
> > 
> > Clearing flags on attachment: 264240
> > 
> > Committed r191883: <http://trac.webkit.org/changeset/191883>
> 
> It broke the jhbuild step on the EFL buildbot:
> 
> configure: error: in
> `/home/gyuyoung/WebKit-BuildSlave/efl-linux-64-release-wk2/build/WebKitBuild/
> DependenciesEFL/Source/glib-networking-2.41.4':
> configure: error: "No package 'gnutls' found"
> See `config.log' for more details
> 
> 
> It seems libgnutls-dev package was installed on the EWS, but not on the bot.
> Gyuyoung, could you install this package?

I just install the pkg now.