Changes between Version 15 and Version 16 of WebKitGTK/GCCRequirement


Ignore:
Timestamp:
Dec 7, 2021 6:38:45 AM (2 years ago)
Author:
Lauro Moura
Comment:

Update versions

Legend:

Unmodified
Added
Removed
Modified
  • WebKitGTK/GCCRequirement

    v15 v16  
    11WebKit is a complex C++ library that often requires relatively new versions of GCC to build. Older versions of GCC tend to have bugs that prevent code from compiling successfully, which tend to be fixed in newer versions of GCC, and which are often encountered in practice by WebKit developers. Apple also likes to be able to use new C++ features, which are often not present in older versions of GCC, relatively early.
    22
    3 We are aware that Linux distributions and embedded systems vendors like to be able to compile everything with the same system build toolchain, which may be very old, so we have compromised with Apple to develop a [[DependenciesPolicy]] that attempts to balance the interests of both WebKit distributors and developers. We intend to support some system compiler in the latest Ubuntu LTS and Debian stable releases until one year after the subsequent release, but, depending on the age of the release, this might be some version of Clang rather than GCC. We no longer provide any timeline as to how long a particular version of GCC may be supported, as this decision will be made by WebKit developers on a case-by-case basis. However, we will always support the version of libstdc++ available in these releases until one year after the subsequent release. Preserving compatibility with older standard library versions is necessary to allow updates on older systems, even if a newer compiler is used to build those updates. In general, you can expect a new standard library version to be supported by WebKit for approximately three to four years, in accordance with the dependencies policy.
     3We are aware that Linux distributions and embedded systems vendors like to be able to compile everything with the same system build toolchain, which may be very old, so we have compromised with Apple to develop a [[DependenciesPolicy]] that attempts to balance the interests of both WebKit distributors and developers. We intend to support some system compilers in the latest Ubuntu LTS and Debian stable releases until one year after the subsequent release, but, depending on the age of the release, this might be some version of Clang rather than GCC. We no longer provide any timeline as to how long a particular version of GCC may be supported, as this decision will be made by WebKit developers on a case-by-case basis. However, we will always support the version of libstdc++ available in these releases until one year after the subsequent release. Preserving compatibility with older standard library versions is necessary to allow updates on older systems, even if a newer compiler is used to build those updates. In general, you can expect a new standard library version to be supported by WebKit for approximately three to four years, in accordance with the dependencies policy.
    44
    55This policy means that WebKit may require a new version of GCC sooner than you might prefer. Because Apple does not use GCC to develop WebKit, and because of the relatively high number of compatibility issues caused by supporting GCC, we should be grateful that it is still possible to build WebKit with GCC at all. Unless you are able to upgrade your systems to newer GCCs on a regular basis, it is expected that your system GCC may not be new enough to build WebKit. We urge you to consider building with a different compiler if your system compiler is too old. Embedded systems vendors may choose to deploy WebKit in a container if updating the host's libstdc++ is undesirable. If you choose to stop building new versions of WebKit as a result of an increased GCC or libstdc++ version requirement, your users will be left vulnerable to numerous security vulnerabilities that are fixed in newer versions.
    66
    7 = Outlook as of July 2019 =
     7= Outlook as of December 2021 =
    88
    9 Interpreting the [[DependenciesPolicy]] as of July 2019, we conclude that Ubuntu 18.04 will remain supported until April 2021, one year after the release of Ubuntu 20.04. We also conclude that Debian Buster will remain supported until one year after the release of Debian Bullseye, which doesn't have a set release date but is likely to occur during the second half of 2021. Therefore, Debian Buster will likely be supported until the second half of 2022. Knowing the versions of GCC, Clang, and libstdc++ provided by Ubuntu 18.04 and Debian Buster, we conclude:
     9Interpreting the [[DependenciesPolicy]] as of December 2021, we conclude that WebKitGTK will support:
    1010
    11  * (GCC 7 OR Clang 6) AND libstdc++ 7, the versions in Ubuntu 18.04, will be supported until April 2021
    12  * (GCC 8 OR Clang 7) AND libstdc++ 8, the versions in Debian Buster, will be supported until, roughly, late 2022
    1311
    14 This policy affects trunk, so the first stable branch to require the new dependencies would be later than that date:
     12||= OS Release =||= End of Life =||= GCC version =||= Clang version =||= libstdc++ version =||
     13|| Ubuntu 20.04 focal || April 2023 (1y after Ubuntu 22.04) || [[https://packages.ubuntu.com/search?suite=focal&section=all&arch=any&keywords=gcc&searchon=names|9 and 10 (through `universe`)]] || [[https://packages.ubuntu.com/search?keywords=clang&searchon=names&suite=focal&section=all|10]] || [[https://packages.ubuntu.com/search?suite=focal&section=all&arch=any&keywords=libstdc%2B%2B&searchon=names|10]] ||
     14|| Debian 10 Buster || August 2022 (y after Debian 11 Bullseye) || [[https://packages.debian.org/buster/gcc|8]] || [[https://packages.debian.org/search?keywords=clang&searchon=names&suite=oldstable&section=all|7]] || [[https://packages.debian.org/buster/libstdc++6|8]] ||
    1515
    16  * WebKitGTK or WPE WebKit 2.24 (released March 2019) both support GCC 6
    17  * WebKitGTK or WPE WebKit 2.26 (scheduled for September 2019) will be the first release to require GCC 7 (due to a one-time compromise with Apple to end support for Debian Stretch early)
    18  * WebKitGTK or WPE WebKit 2.34 (scheduled for September 2021) is expected to be the first release to require libstdc++ 8
    19  * WebKitGTK or WPE WebKit 2.38 (scheduled for September 2022) or 2.40 (scheduled for March 2023) is expected to be the first release to require libstdc++ 9
     16
     17This policy affects the trunk. For the already released versions, these are the minimum supported GCC versions:
     18
     19||= Release =||= Date =||= Required GCC version =||
     20|| 2.36 (trunk) || Unreleased || 8.3 ||
     21|| 2.34 || September 2021 || 7.3 ||
     22|| 2.32 || March 2021 || 7.3 ||
     23|| 2.30 || September 2020 || 7.3 ||
     24|| 2.28 || March 2020 || 7.3 ||
     25|| 2.26 || September 2019 || 7.3 ||
     26|| 2.24 || March 2019 || 6.0 ||
     27
     28More info about WebKitGTK stable release in the [[WebKitGTK/StableRelease]] page.