[Webkit-unassigned] [Bug 280523] New: [Tools][GTK][WPE] generate-bundle: Improve the generic bundle with a C wrapper and support for GTK4

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Fri Sep 27 09:49:42 PDT 2024


https://bugs.webkit.org/show_bug.cgi?id=280523

            Bug ID: 280523
           Summary: [Tools][GTK][WPE] generate-bundle: Improve the generic
                    bundle with a C wrapper and support for GTK4
           Product: WebKit
           Version: WebKit Nightly Build
          Hardware: Unspecified
                OS: Unspecified
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: Tools / Tests
          Assignee: webkit-unassigned at lists.webkit.org
          Reporter: clopez at igalia.com

We want to stop providing distro-specific bundles at https://webkitgtk.org/built-products/x86_64/release/nightly because:

 - Supporting old distros becomes increasingly hard as time advances because the constant desire/need of WebKit developers to use new compiler and library versions
 - Supporting X distros with distro-specific bundles means X times the work to maintain the bundle

We have a solution that generates a bundle that is distro-agnostic because it bundles WebKit and all the libraries needed to run it, including libc itself.
So this bundle doesn't use anything from the system where it runs other than the kernel. So it is basically like a container but without using container technologies. That way anyone can run it unprivileged (just unpack and execute)

The issue so far with this bundle was that the script wrapping the binaries was written in shell, so it was requiring a shell interpreter from the host so this lead to crashes when using webdriver because of:

 1. WebDriver starts with its own custom environment (LD_LIBRAY_PATH, etc)
 2. WebDriver calls to execute the MiniBrowser wrapper
 3. The MiniBrowser wrapper is a shell script, so it calls the host shell and then it crashes because of the environment where it is executed


The solution to that that I come with is to stop using a script in shell and provide a wrapper in C that can be built statically.

And so far so good, I did extensive testing with this new wrapper, I created a battery of tests with WebDriver (that I will upload on another bug) and I ran this battery of tests on 15 very different distributions (from Alpine to Ubuntu 20 to Fedora-last or gentoo, arch, etc) and on all of them worked without issues.

Another thing that I'm changing here is supporting GTK4 for the WebKitGTK bundle. GTK3 support is removed because we will always want to provide bundles with the last nightly and seems that is going to be GTK4 from now on.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20240927/3102494d/attachment-0001.htm>


More information about the webkit-unassigned mailing list