============================== The WebKit Linux Developer SDK ============================== This is aimed to replace the JHBuild setup, as announced in `webkit-dev`_. Most of the time developers won't need to manually build the SDK, they will download already-built versions of it. Rebuilding the SDK is needed when you have to update WebKit test dependencies or add new dependencies to the SDK. To build the SDK, run: :: $ Tools/Scripts/webkit-flatpak-sdk --build This can take hours and use gigabytes of your hard-drive. To build a single recipe, use something like: :: $ Tools/Scripts/bst-wrapper build sdk/gtk.bst To enter the Buildstream SDK shell and debug stuff when hacking on a specific dependency: :: $ Tools/Scripts/bst-wrapper shell sdk/gtk.bst To test your changes in WebKit: :: $ Tools/Scripts/webkit-flatpak -u --repo=$PWD/Tools/buildstream/repo $ Tools/Scripts/run-minibrowser --gtk --flatpak-repo=$PWD/Tools/buildstream/repo $ Tools/Scripts/run-webkit-tests --gtk --repo=$PWD/Tools/buildstream/repo ... bst-wrapper has the same options as bst itself, documented on the `Buildstream website`_. Recipe version updates should follow this procedure: - For recipes tracking git tags (with the `git_tag` source kind), you can manually update the branch or tag name referenced in the `track` value (see rr.bst for example). and then run `bst-wrapper track sdk/.bst`. If the recipe tracks git master, no manual update is needed, just run the track command. - For recipes tracking tarballs, update the `url` value and run `bst-wrapper track sdk/.bst`. Another nice feature of Buildstream is `workspace`, where you can make changes to recipes: :: $ Tools/Scripts/bst-wrapper workspace open sdk/openxr.bst ~/Projects/openxr # hack hack hack in ~/Projects/openxr/ $ Tools/Scripts/bst-wrapper build sdk/openxr.bst # Once you are happy, format changes from your workspace with git: $ cd ~/Projects/openxr $ git commit -a ... $ git format-patch -1 $ mv *.patch ~/WebKit/Tools/buildstream/patches/ # finally add patches as sources in openxr.bst # and close the workspace $ Tools/Scripts/bst-wrapper workspace close sdk/openxr.bst $ rm -fr ~/Projects/openxr Internally the bst-wrapper will install Buildstream and a few other python dependencies in a local virtualenv managed by pipenv. This is all abstracted though, in theory direct access to the pipenv environment shouldn't be needed. .. _webkit-dev: https://lists.webkit.org/pipermail/webkit-dev/2020-March/031147.html .. _Buildstream website: https://docs.buildstream.build/1.4.2/index.html