Opened 3 years ago

Closed 3 years ago

#17160 closed bug (fixed)

HaikuWebKit build fails on 64 bit

Reported by: vidrep Owned by: pulkomandy
Priority: normal Milestone: Unscheduled
Component: Kits/Web Kit Version: R1/beta3
Keywords: Cc:
Blocked By: Blocking:
Platform: All

Description (last modified by vidrep)

Latest (August 01, 2021) commit fails to build on 64 bit Haiku. Build log attached.

Attachments (1)

HaikuWebKit-x86_64.log (2.2 KB ) - added by vidrep 3 years ago.

Download all attachments as: .zip

Change History (12)

by vidrep, 3 years ago

Attachment: HaikuWebKit-x86_64.log added

comment:1 by vidrep, 3 years ago

If they would be helpful, I can also attach the CMakeError.log and CMakeOutput.log

comment:2 by vidrep, 3 years ago

Description: modified (diff)

comment:3 by pulkomandy, 3 years ago

30	  Could NOT find LibGcrypt: Found unsuitable version "", but required is at
31	  least "1.7.0" (found /boot/system/develop/lib/libgcrypt.so)

There is something not working right with the way webkit detects libgcrypt. There are more changes to this detection in later versions of webkit, I hope this issue will be solved by their next release.

comment:4 by waddlesplash, 3 years ago

WebKit has an OpenSSL crypto backend now, right? Can we use that instead?

comment:5 by pulkomandy, 3 years ago

I tried to enable it when I noticed issues with the GCrypt cmakelists, but it does not compile at all and refers to include files that don't exist in our version of OpenSSL (X509.h while we only have x509.h with lowercase x, and some other files I already forgot the name of, that don't exist at all in our version). Not sure which version of openssl or fork it was based on.

So, at the moment, we can't use it, further investigation is needed.

comment:6 by waddlesplash, 3 years ago

Maybe it was just written on a case-insensitive filesystem? Or maybe it is using the OpenSSL 3 API?

comment:7 by pulkomandy, 3 years ago

That's what I suspected first, but for the other headers after I manually changed X509.h to x509.h, it was not the case (pun intended). The needed headers just didn't exist at all.

I think it was this: https://commondatastorage.googleapis.com/chromium-boringssl-docs/hkdf.h.html so at least boringssl has it. That's probably what it was implemented against.

But then here's what Google says about boringssl:

Although BoringSSL is an open source project, it is not intended for general use, as OpenSSL is. We don't recommend that third parties depend upon it. Doing so is likely to be frustrating because there are no guarantees of API or ABI stability.

Seems like we shouldn't be using that in Haiku.

OpenSSL appears to have an hkdf implementation in a header file named kdf.h: https://www.openssl.org/docs/man1.1.0/man3/EVP_PKEY_CTX_set_hkdf_md.html

comment:8 by madmax, 3 years ago

It looks like an instance left in a rename: just correct the case of LIBGCRYPT_INCLUDE_DIR and it seems to compile again (mine has not finished but it well past the config part).

Upstream already has https://github.com/WebKit/WebKit/commit/585c0909a6ced586952e28ac73e485d8da02f7b1 with more corrections.

comment:9 by pulkomandy, 3 years ago

I will just wait for the next upstream release and merge that. Unless there is an emergency here?

in reply to:  9 comment:10 by madmax, 3 years ago

Replying to pulkomandy:

Unless there is an emergency here?

Nah. Just noting the solution for vidrep or anyone that wants to compile it now.

comment:11 by vidrep, 3 years ago

Resolution: fixed
Status: newclosed

Issue was resolved with latest WebKit update. Closing as fixed.

Note: See TracTickets for help on using tickets.