2021-10-06  Philippe Normand  <pnormand@igalia.com>

        [Flatpak SDK] Add apitrace
        https://bugs.webkit.org/show_bug.cgi?id=230967

        Reviewed by Carlos Alberto Lopez Perez.

        APITrace can be used to debug GL calls.

        * elements/sdk-platform.bst:
        * elements/sdk/apitrace.bst: Added.

2021-09-29  Philippe Normand  <pnormand@igalia.com>

        [Flatpak SDK] Add bwrap and xdg-dbus-proxy
        https://bugs.webkit.org/show_bug.cgi?id=230456

        Reviewed by Sergio Villar Senin.

        These are needed in order to enable the Bubblewrap launcher in WPE/GTK at build time.
        
        * elements/sdk-platform.bst:
        * elements/sdk/bubblewrap.bst: Added.
        * elements/sdk/xdg-dbus-proxy.bst: Added.

2021-09-29  Philippe Normand  <pnormand@igalia.com>

        [Flatpak SDK] rr replay is broken
        https://bugs.webkit.org/show_bug.cgi?id=230952

        Reviewed by Sergio Villar Senin.

        * patches/rr/0001-cmake-Look-for-resources-in-cmake-s-install-lib-dir.patch: As lib
        resources and bin resources don't necessarily share the same parent directory, one lookup
        function is needed for each use-case.

2021-09-29  Philippe Normand  <pnormand@igalia.com>

        [Flatpak SDK] rr unable to locate librrpage.so
        https://bugs.webkit.org/show_bug.cgi?id=230942

        Reviewed by Sergio Villar Senin.

        Look for resources in cmake's install lib dir.

        * elements/sdk/rr.bst:
        * patches/rr/0001-cmake-Look-for-resources-in-cmake-s-install-lib-dir.patch: Added.

2021-09-28  Philippe Normand  <pnormand@igalia.com>

        [Flatpak SDK] Update libsoup3 and friends
        https://bugs.webkit.org/show_bug.cgi?id=230891

        Reviewed by Michael Catanzaro.

        * elements/sdk/glib.bst: Bump to 2.70, the most recent stable version.
        * elements/sdk/libsoup3.bst: Bump to 3.0.0.
        * elements/sdk/rr.bst: Drive-by update to latest master.
        * elements/sdk/wpebackend-fdo.bst: Update to 1.10.0.

2021-09-11  Philippe Normand  <pnormand@igalia.com>

        [Flatpak SDK] Update to FDO 21.08
        https://bugs.webkit.org/show_bug.cgi?id=229918

        Reviewed by Carlos Alberto Lopez Perez.

        Highlights:

        - GCC 11.2
        - clang 12
        - ICU 69.1
        - Mesa as extension again
        - Ruby 3 (as side effect we now ship the webrick gem)
        - Our SDK branch number is now the same as FDO SDK
        - Some of our recipes no longer needed because maintained in FDO SDK

        The actual runtime upgrade will happen after https://bugs.webkit.org/show_bug.cgi?id=229919
        lands.

        * Pipfile: Update to bst 1.6.3.
        * Pipfile.lock: Ditto
        * elements/flatpak/sdk.bst: Remove rust extension as in parent SDK and re-add GL extension.
        * elements/freedesktop-sdk.bst: Bump to 21.08, remove vendored patches
        * elements/qt5/qtbase.bst: Fix libdrm dependency, we no longer ship this recipe.
        * elements/qt5/qtwayland.bst: Ditto.
        * elements/sdk-build-depends/libusb.bst: Removed.
        * elements/sdk-build-depends/rapidjson.bst: Fix build for GCC-11
        * elements/sdk-platform.bst: Add openssl in runtime, since it moved out of bootstrap in
        parent SDK. Sync list of recipes, order alphabetically.
        * elements/sdk/cargo-c.bst: Switch to internal rustc component.
        * elements/sdk/gst-plugin-closedcaption.bst: Ditto.
        * elements/sdk/gst-plugin-dav1d.bst: Ditto.
        * elements/sdk/gst-plugins-bad.bst: Sync dependencies.
        * elements/sdk/gst-plugins-base.bst: Add a few build fix patches, sync dependencies.
        * elements/sdk/gst-plugins-good.bst: Ditto.
        * elements/sdk/gtk+-3.bst: Bump to 3.24.30 + build fix patch.
        * elements/sdk/icecc.bst: Bump to 1.3.1, sync dependencies.
        * elements/sdk/libdrm.bst: Removed.
        * elements/sdk/libgcrypt.bst: Bump to 1.8.8.
        * elements/sdk/libsoup.bst: Removed.
        * elements/sdk/libsoup3.bst: Sync dependencies.
        * elements/sdk/libzstd.bst: Removed.
        * elements/sdk/lzo2.bst: Removed.
        * elements/sdk/mesa.bst: Removed.
        * elements/sdk/monado.bst: Ditto.
        * elements/sdk/nghttp2.bst: Removed.
        * elements/sdk/openjpeg.bst: Removed.
        * elements/sdk/openxr.bst: Build with clang to avoid std filesystem issues with GCC.
        * elements/sdk/pycairo.bst: Removed.
        * elements/sdk/pygobject.bst: Removed.
        * elements/sdk/python2.bst: Bump to 2.7.18.
        * elements/sdk/ruby-webrick.bst: Added.
        * elements/sdk/sccache.bst: Switch to internal rustc component.
        * elements/sdk/xorg-server.bst: Sync dependencies.
        * elements/test-infra/httpd.bst: Ditto.
        * patches/fdo-0001-dav1d-Bump-to-version-0.8.2.patch: Removed.
        * patches/fdo-0001-libvpx-Enable-high-bit-depth-support.patch: Removed.
        * patches/fdo-0001-pango-Bump-to-1.47.patch: Removed.
        * patches/gst-plugins-base-0001-gst-don-t-use-volatile-to-mean-atomic.patch: Added.
        * patches/gst-plugins-base-0001-gstgl-Fix-build-when-Meson-0.58.0rc1.patch: Added.
        * patches/gst-plugins-good-0001-gst-don-t-use-volatile-to-mean-atomic.patch: Added.
        * patches/gtk-gcc11-build-fix.patch: Added.
        * patches/mesa/0001-i915-Prevent-invalid-framebuffer-usage.patch: Removed.
        * patches/mesa/0002-i965-Prevent-invalid-framebuffer-usage.patch: Removed.
        * patches/mesa/mesa_libdrm_deps.patch: Removed.
        * patches/nettle-no-debug.diff: Removed.
        * project.conf: Sync our branch with parent SDK.

2021-08-05  Adrian Perez de Castro  <aperez@igalia.com>

        [Flatpak SDK] Update libwpe to 1.11.1
        https://bugs.webkit.org/show_bug.cgi?id=228793

        Reviewed by Alejandro G. Castro.

        * elements/sdk/libwpe.bst: Bump to version 1.11.1, which includes the
        new fullscreen API support.

2021-07-28  Philippe Normand  <pnormand@igalia.com>

        [Flatpak SDK] Dependencies update - July 2021 round
        https://bugs.webkit.org/show_bug.cgi?id=228275

        Reviewed by Adrian Perez de Castro.

        * elements/freedesktop-sdk.bst: Update to latest 20.08 junction version.
        * elements/qt5/qtbase.bst: Switch to KDE 5.15 branch.
        * elements/qt5/qtdeclarative.bst: Ditto.
        * elements/qt5/qtquickcontrols.bst: Ditto.
        * elements/qt5/qtquickcontrols2.bst: Ditto.
        * elements/qt5/qtwayland.bst: Ditto.
        * elements/qt5/qtx11extras.bst: Ditto.
        * elements/sdk-build-depends/rapidjson.bst: Update to latest git snapshot.
        * elements/sdk-platform.bst: Add virtualenv, needed for WPT tests.
        * elements/sdk/ccls.bst: Update to latest release.
        * elements/sdk/clangd.bst: Bump to version 12.
        * elements/sdk/ffmpeg.bst: Bump to version 4.4.
        * elements/sdk/openjpeg.bst: Bump to version 2.4.
        * elements/sdk/rr.bst: Update to latest git snapshot.
        * elements/sdk/x264.bst: Ditto. Snapshot tarballs were discontinued years ago.
        * patches/qtbase-make-sure-to-correctly-construct-base-platform-theme.patch: Removed.
        * patches/qtbase-revert-correct-handling-for-xdg-runtime-dir.patch: Removed.
        * patches/qtbase-revert-qstandardpaths-dont-change-permissions-on-xdg-runtime-dir.patch: Added.
        * patches/qtdeclarative-use-python3.patch: Removed.
        * project.conf:

2021-07-09  Carlos Garcia Campos  <cgarcia@igalia.com>

        [Flatpak SDK] Update to libsoup3 2.99.9
        https://bugs.webkit.org/show_bug.cgi?id=227833

        Reviewed by Michael Catanzaro.

        It requires new glib and glib-networking too.

        * elements/sdk/glib-networking.bst:
        * elements/sdk/glib.bst:
        * elements/sdk/libsoup3.bst:

2021-06-21  Philippe Normand  <pnormand@igalia.com>

        [Flatpak SDK] Update to FDO 20.08.13 release
        https://bugs.webkit.org/show_bug.cgi?id=227176

        Reviewed by Žan Doberšek.

        This release contains libvpx 1.10.0 which we need since the libwebrtc bump to M92. The
        current version we have has ABI incompatible with what libwebrtc expects and this issue was
        hidden by r277036 which pulls in the bundled libvpx headers...

        * elements/freedesktop-sdk.bst:
        * patches/fdo-0001-meson-Bump-to-0.56.1.patch: Removed.

2021-06-07  Philippe Normand  <pnormand@igalia.com>

        Unreviewed, fix libsoup3 build in Flatpak SDK

        * elements/sdk/libsoup3.bst:

2021-06-07  Carlos Garcia Campos  <cgarcia@igalia.com>

        [Flatpak SDK] Update to libsoup3 2.99.8
        https://bugs.webkit.org/show_bug.cgi?id=226712

        Reviewed by Philippe Normand.

        * elements/sdk/libsoup3.bst:

2021-06-03  Miguel Gomez  <magomez@igalia.com>

        REGRESSION(r275755): [GStreamer] Crashes on surfaceless i965 platforms
        https://bugs.webkit.org/show_bug.cgi?id=226581

        Reviewed by Philippe Normand.

        Vendor potential fix for https://gitlab.freedesktop.org/mesa/mesa/-/issues/778.

        * elements/sdk/mesa.bst:
        * patches/mesa/0002-i965-Prevent-invalid-framebuffer-usage.patch: Added.

2021-05-31  Carlos Garcia Campos  <cgarcia@igalia.com>

        [Flatpak SDK] Update to libsoup3 2.99.7
        https://bugs.webkit.org/show_bug.cgi?id=226457

        Reviewed by Philippe Normand.

        * elements/sdk/libsoup3.bst:

2021-05-24  Carlos Garcia Campos  <cgarcia@igalia.com>

        [Flatpak SDK] Update to libsoup3 2.99.6
        https://bugs.webkit.org/show_bug.cgi?id=226166

        Reviewed by Philippe Normand.

        * elements/sdk/libsoup3.bst:

2021-05-20  Adrian Perez de Castro  <aperez@igalia.com>

        [Flatpak SDK] Remove PHP packages
        https://bugs.webkit.org/show_bug.cgi?id=226037

        Reviewed by Philippe Normand.

        Remove the PHP package from the SDK now that the layout tests do not use PHP.

        * elements/test-infra.bst: Remove php.bst from the element list.
        * elements/test-infra/php.bst: Removed.

2021-05-13  Lauro Moura  <lmoura@igalia.com>

        [Flatpak SDK] Update WPEBackend-fdo to 1.8.4
        https://bugs.webkit.org/show_bug.cgi?id=225735

        Reviewed by Adrian Perez de Castro.

        * elements/sdk/wpebackend-fdo.bst:

2021-05-07  Carlos Garcia Campos  <cgarcia@igalia.com>

        [Flatpak SDK] Update to libsoup3 2.99.5
        https://bugs.webkit.org/show_bug.cgi?id=225504

        Reviewed by Philippe Normand.

        * elements/sdk/libsoup3.bst:

2021-05-07  Philippe Normand  <pnormand@igalia.com>

        [WPE] TestWebExtensions web-process-crashed is flaky failing after latest WPE libs update
        https://bugs.webkit.org/show_bug.cgi?id=225503

        Reviewed by Carlos Garcia Campos.

        The update to 1.9.91 triggers critical warnings in tests. Might be fixed by
        https://github.com/Igalia/WPEBackend-fdo/pull/158 which is not merged yet.

        * elements/sdk/wpebackend-fdo.bst: Downgrade to latest stable release until the bug is fixed.

2021-05-05  Philippe Normand  <pnormand@igalia.com>

        [Flatpak SDK] Update libwpe and wpebackend-fdo
        https://bugs.webkit.org/show_bug.cgi?id=225358

        Reviewed by Adrian Perez de Castro.

        * elements/sdk/libwpe.bst: Update to version 1.10.
        * elements/sdk/wpebackend-fdo.bst: Update to 1.9.91, soon to be 1.10.

2021-04-27  Philippe Normand  <pnormand@igalia.com>

        [Flatpak SDK] Direct AVIF loading does not work.
        https://bugs.webkit.org/show_bug.cgi?id=222867

        Reviewed by Michael Catanzaro.

        * elements/sdk-platform.bst:
        * elements/sdk/intltool.bst: Removed.
        * elements/sdk/shared-mime-info.bst: Bump to version 2.1 which has support for detecting AVIF bitstreams.

2021-04-22  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK][WPE] Bump libsoup3 version to 2.99.4
        https://bugs.webkit.org/show_bug.cgi?id=224925

        Reviewed by Philippe Normand.

        * elements/sdk/libsoup3.bst:

2021-04-17  Philippe Normand  <pnormand@igalia.com>

        REGRESSION(r275755): [GStreamer] Crashes on surfaceless i915 platforms
        https://bugs.webkit.org/show_bug.cgi?id=224416

        Reviewed by Adrian Perez de Castro.

        Vendor potential fix for https://gitlab.freedesktop.org/mesa/mesa/-/issues/778.

        * elements/sdk/mesa.bst:
        * patches/mesa/0001-i915-Prevent-invalid-framebuffer-usage.patch: Added.

2021-04-12  Philippe Normand  <pnormand@igalia.com>

        Unreviewed, update libsoup 2.99.3 ref

        * elements/sdk/libsoup3.bst: Previous ref had 2.99.2 version set in meson.build.

2021-04-09  Philippe Normand  <pnormand@igalia.com>

        [Flatpak SDK] Update to libsoup 2.99.3
        https://bugs.webkit.org/show_bug.cgi?id=224361

        Reviewed by Carlos Garcia Campos.

        * elements/sdk/libsoup3.bst:

2021-04-07  Lauro Moura  <lmoura@igalia.com>

        [Flatpak SDK] Bump GTK4 to 4.2
        https://bugs.webkit.org/show_bug.cgi?id=224263

        Reviewed by Carlos Garcia Campos.

        * elements/sdk/gtk.bst: Bump and remove merged patch.
        * patches/gtk-clipboard-Fix-a-crash-when-GdkContentProviderUnion-d.patch: Removed.

2021-04-06  Philippe Normand  <pnormand@igalia.com>

        [Flatpak SDK] Enable high bit depth in libvpx
        https://bugs.webkit.org/show_bug.cgi?id=224049

        Reviewed by Adrian Perez de Castro.

        10 and 12-bit formats are needed for profile 2 and 3 VP9 decoding.

        * elements/freedesktop-sdk.bst:
        * patches/fdo-0001-libvpx-Enable-high-bit-depth-support.patch: Added.

2021-04-05  Philippe Normand  <pnormand@igalia.com>

        [Flatpak SDK] Update dav1d and libavif
        https://bugs.webkit.org/show_bug.cgi?id=224177

        Reviewed by Adrian Perez de Castro.

        * elements/freedesktop-sdk.bst: Update dav1d to version 0.8.2.
        * elements/sdk/libavif.bst: Update to version 0.9.0.
        * patches/fdo-0001-dav1d-Bump-to-version-0.8.2.patch: Added.

2021-04-05  Philippe Normand  <pnormand@igalia.com>

        [Flatpak SDK] Backport GStreamer fakeaudiosink
        https://bugs.webkit.org/show_bug.cgi?id=224053

        Reviewed by Adrian Perez de Castro.

        This audio sink will be used for the media layout and API tests.
        
        * elements/sdk/gst-plugins-bad.bst:
        * patches/gst-plugins-bad-0001-debugutils-Add-fakeaudiosink-element.patch: Added.

2021-03-27  Lauro Moura  <lmoura@igalia.com>

        [Flatpak SDK] Backport GTK4 Clipboard fix for GdkContentProviderUnion
        https://bugs.webkit.org/show_bug.cgi?id=223813

        Reviewed by Philippe Normand.

        From https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/3346

        Will fix some clipbaoard crashes.

        * elements/sdk/gtk.bst:
        * patches/gtk-clipboard-Fix-a-crash-when-GdkContentProviderUnion-d.patch: Added.

2021-03-25  Philippe Normand  <pnormand@igalia.com>

        [Flatpak SDK] Update to GStreamer 1.18.4
        https://bugs.webkit.org/show_bug.cgi?id=223644

        Reviewed by Adrian Perez de Castro.

        * elements/sdk/gst-libav.bst:
        * elements/sdk/gst-plugins-bad.bst:
        * elements/sdk/gst-plugins-base.bst:
        * elements/sdk/gst-plugins-good.bst:
        * elements/sdk/gst-plugins-ugly.bst:
        * elements/sdk/gstreamer.bst:
        * patches/gst-plugins-base-0001-videodecoder-Fix-racy-critical-when-pool-negotiation.patch: Removed.

2021-03-24  Philippe Normand  <pnormand@igalia.com>

        [Flatpak SDK] Add nghttp2 client library
        https://bugs.webkit.org/show_bug.cgi?id=223585

        Reviewed by Carlos Garcia Campos.

        * elements/sdk-platform.bst:
        * elements/sdk/nghttp2.bst: Added.

2021-03-11  Philippe Normand  <pnormand@igalia.com>

        [Flatpak SDK] Update libsoup3
        https://bugs.webkit.org/show_bug.cgi?id=223066

        Reviewed by Carlos Garcia Campos.

        * elements/sdk/libsoup3.bst: Bump to version 2.99.2.

2021-02-26  Philippe Normand  <pnormand@igalia.com>

        [Flatpak SDK] Add recipe for libsoup3
        https://bugs.webkit.org/show_bug.cgi?id=222419

        Reviewed by Carlos Garcia Campos.

        LibSoup3 is parallel-installable with libsoup2, for now we want to keep libsoup2 in the SDK,
        at least until porting to libsoup3 has progressed enough.

        * elements/sdk-platform.bst:
        * elements/sdk/glib.bst: Bump to latest 2.67 release.
        * elements/sdk/gtk+-3.bst: Bump to latest 3.24 release, not strictly needed but I was driving by.
        * elements/sdk/libsoup3.bst: Added.

2021-02-24  Philippe Normand  <pnormand@igalia.com>

        [Flatpak SDK] Update to sccache 0.2.15
        https://bugs.webkit.org/show_bug.cgi?id=222271

        Reviewed by Adrian Perez de Castro.

        * elements/sdk/sccache.bst: Bump to latest stable release. The previous version broke in the
        SDK update, timing out when starting the local server.
        * patches/sccache-no-selenium.patch: Removed.

2021-02-22  Philippe Normand  <pnormand@igalia.com>

        [Flatpak SDK] Add Monado for XR runtime support
        https://bugs.webkit.org/show_bug.cgi?id=220738

        Reviewed by Žan Doberšek.

        * elements/sdk-platform.bst:
        * elements/sdk/eigen.bst: Added.
        * elements/sdk/monado.bst: Added.

2021-02-22  Philippe Normand  <pnormand@igalia.com>

        [Flatpak SDK] Update to GStreamer 1.18.3 and backport one patch from upcoming 1.18.4
        https://bugs.webkit.org/show_bug.cgi?id=222033

        Reviewed by Žan Doberšek.

        The backported patch fixes a racy crash in media/media-source/media-source-webm.html, where
        the player would be destroyed quickly after being created.

        * elements/freedesktop-sdk.bst: Update junction.
        * elements/sdk/gst-libav.bst: Bump to 1.18.3
        * elements/sdk/gst-plugins-bad.bst: Ditto.
        * elements/sdk/gst-plugins-base.bst: Ditto and backport patch from 1.18.4.
        * elements/sdk/gst-plugins-good.bst: Bump to 1.18.3
        * elements/sdk/gstreamer.bst: Ditto.
        * patches/gst-plugins-base-0001-videodecoder-Fix-racy-critical-when-pool-negotiation.patch: Added.

2021-01-15  Philippe Normand  <pnormand@igalia.com>

        [Flatpak SDK] Cargo recipes improvements
        https://bugs.webkit.org/show_bug.cgi?id=220656

        Reviewed by Adrian Perez de Castro.

        * elements/freedesktop-sdk.bst: Update junction.
        * elements/sdk/cargo-c.bst: Properly separate build command from install command.
        * elements/sdk/gst-plugin-closedcaption.bst: Ditto.
        * elements/sdk/gst-plugin-dav1d.bst: Ditto.

2021-01-15  Philippe Normand  <pnormand@igalia.com>

        [Flatpak SDK] Update GStreamer and Mesa
        https://bugs.webkit.org/show_bug.cgi?id=220237

        Reviewed by Adrian Perez de Castro.

        This patch updates several SDK components:

        - GStreamer 1.18.0 -> 1.18.2
        - Mesa 20.1.10 -> 20.3.2

        Additionally some libdrm-related cleanups are included, since we have our own version of
        this component, it is better to use it everywhere instead of the upstream SDK version, to
        avoid collisions.

        This patch also updates the pipenv dependencies used by Buildstream.

        * Pipfile.lock:
        * elements/freedesktop-sdk.bst:
        * elements/qt5/qtbase.bst:
        * elements/qt5/qtwayland.bst:
        * elements/sdk/gst-libav.bst:
        * elements/sdk/gst-plugins-bad.bst:
        * elements/sdk/gst-plugins-base.bst:
        * elements/sdk/gst-plugins-good.bst:
        * elements/sdk/gst-plugins-ugly.bst:
        * elements/sdk/gstreamer.bst:
        * elements/sdk/mesa.bst:
        * elements/sdk/xorg-server.bst:
        * patches/mesa/0004-mesa-clear-texture-s-views-when-texture-is-remove.patch: Removed.
        * patches/mesa/mesa_libdrm_deps.patch:

2021-01-15  Philippe Normand  <pnormand@igalia.com>

        [Flatpak SDK] Updates for gst-build and gst-plugins-rs support
        https://bugs.webkit.org/show_bug.cgi?id=220418

        Reviewed by Adrian Perez de Castro.

        This patch:

        - bumps from Meson 0.55.3 to Meson 0.56.1 in the FDO junction
        - includes cargo-c in the SDK, this is a new dependency for gst-build (only if
          gst-plugins-rs is enabled though)
        - includes the latest release of the rsclosedcaption GStreamer plugin in the SDK. This
          plugin includes several elements (ccconverter, cea608tott) that will be useful in order to
          support CEA608 rendering in WebKit GStreamer ports.

        * elements/freedesktop-sdk.bst:
        * elements/sdk-platform.bst:
        * elements/sdk/cargo-c.bst: Added.
        * elements/sdk/gst-plugin-closedcaption.bst: Added.
        * files/gst-plugin-closedcaption/Cargo.lock: Added.
        * patches/fdo-0001-meson-Bump-to-0.56.1.patch: Added.

2021-01-07  Lauro Moura  <lmoura@igalia.com>

        [Flatpak SDK] Update GTK4 to 4.0.0
        https://bugs.webkit.org/show_bug.cgi?id=219983

        Reviewed by Philippe Normand.

        * elements/sdk/gtk.bst: Bump to 4.0.0

2020-12-22  Lauro Moura  <lmoura@igalia.com>

        [Flapak SDK] Allow setting custom SDK repository locations and other small fixes
        https://bugs.webkit.org/show_bug.cgi?id=219884

        Reviewed by Philippe Normand.

        - Allow inheriting the RSYNC info from envvar for local testing.
        - Add a 'dry-push-repo' command to be able to perform push-repo dry-runs.

        * Makefile:

2020-12-14  Lauro Moura  <lmoura@igalia.com>

        [Flatpak SDK] Update GTK4 to 3.99.5
        https://bugs.webkit.org/show_bug.cgi?id=219781

        Reviewed by Philippe Normand.

        Looks like there was a mishap tagging the GTK RC, as the tag present
        in their repo is 3.99.5.1 instead of 3.99.5.

        * elements/sdk/glib.bst: Bump to 2.66 to reflect the bumped
        requirement by GTK.
        * elements/sdk/gtk.bst: Bump to 3.99.5.1

2020-11-27  Lauro Moura  <lmoura@igalia.com>

        [Flatpak SDK] Update GTK4 to 3.99.4
        https://bugs.webkit.org/show_bug.cgi?id=219269

        Reviewed by Philippe Normand.

        * elements/sdk/gtk.bst: Update to track tags instead of individual commits and
        specify 3.99.4 as the latest tag. Also added new meson flags to disable the ffmpeg
        media backend and cloud printing after GTK changed some more options into features[1]

        [1] https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/2708

2020-11-27  Philippe Normand  <pnormand@igalia.com>

        [Flatpak SDK] Add clangd
        https://bugs.webkit.org/show_bug.cgi?id=219302

        Reviewed by Adrian Perez de Castro.

        clangd can be used as an alternative to ccls in IDEs supporting the LSP protocol.

        * elements/sdk-platform.bst:
        * elements/sdk/clangd.bst: Added.
        * project.conf:

2020-11-27  Philippe Normand  <pnormand@igalia.com>

        [Flatpak SDK] Update ccls
        https://bugs.webkit.org/show_bug.cgi?id=219303

        Reviewed by Adrian Perez de Castro.

        * elements/sdk/ccls.bst: Update to latest release, 0.20201025.

2020-11-27  Philippe Normand  <pnormand@igalia.com>

        [Flatpak SDK] Add cmake-lsp recipe
        https://bugs.webkit.org/show_bug.cgi?id=219234

        Reviewed by Adrian Perez de Castro.

        Add CMake LSP server for use in IDEs.
        
        * elements/sdk-platform.bst:
        * elements/sdk/cmake-lsp.bst: Added.
        * elements/sdk/pygls.bst: Added.
        * project.conf:

2020-11-16  Philippe Normand  <pnormand@igalia.com>

        [Flatpak SDK] Update rr
        https://bugs.webkit.org/show_bug.cgi?id=218973

        Reviewed by Žan Doberšek.

        * elements/sdk/rr.bst: Update for new git repository location and bump to version 5.4.x.

