blob: 9d606aae944273d1c12b4a74117b90372a45e136 [file] [log] [blame]
==============================
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 <url>
$ 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/<recipe>.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/<recipe>.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