[qt5] Update to 5.15.17 (#46368)

This commit is contained in:
Osyotr 2025-07-16 08:52:07 +03:00 committed by GitHub
parent 6fd3d7ae1b
commit 4cce41a079
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
99 changed files with 713 additions and 760 deletions

View File

@ -1,6 +1,6 @@
{
"name": "qt5-3d",
"version": "5.15.16",
"version": "5.15.17",
"description": "Qt 3D provides functionality for near-realtime simulation systems with support for 2D and 3D rendering in both Qt C++ and Qt Quick applications.",
"license": null,
"dependencies": [

View File

@ -1,6 +1,6 @@
{
"name": "qt5-activeqt",
"version": "5.15.16",
"version": "5.15.17",
"description": "Active Qt is a helper framework that enables the developer to access and use ActiveX controls and COM objects provided by any ActiveX server. It also makes it possible to make the developer's own Qt applications available as COM servers on Windows.",
"license": null,
"supports": "windows",

View File

@ -1,6 +1,6 @@
{
"name": "qt5-androidextras",
"version": "5.15.16",
"version": "5.15.17",
"description": "The Qt Android Extras module provided a set of classes and functions that were specific to Android applications written with Qt. This module helped developers to integrate various Android-specific features and services into their Qt applications.",
"license": null,
"supports": "android",

View File

@ -1,55 +1,57 @@
# Every update requires an update of these hashes and the version within the control file of each of the 32 ports.
# So it is probably better to have a central location for these hashes and let the ports update via a script
set(QT_MAJOR_MINOR_VER 5.15)
set(QT_PATCH_VER 16)
set(QT_PATCH_VER 17)
set(QT_UPDATE_VERSION OFF) # Switch to update qt and not build qt. Creates a file cmake/qt_new_hashes.cmake in qt5-base with the new hashes.
set(QT_PORT_LIST base 3d activeqt charts connectivity datavis3d declarative gamepad graphicaleffects imageformats location macextras mqtt multimedia networkauth
set(QT_PORT_LIST base 3d activeqt charts connectivity datavis3d declarative gamepad graphicaleffects imageformats location macextras multimedia networkauth
purchasing quickcontrols quickcontrols2 remoteobjects script scxml sensors serialport speech svg tools virtualkeyboard webchannel websockets
webview winextras xmlpatterns doc x11extras androidextras translations serialbus webengine webglplugin wayland)
set(QT_HASH_qt5-3d bdb13bd73a8b706eae8ad07d506ca21469a138dadb47b604a23ebe4640b593cba1353efa081a51a6d869a3d75e1b2b25c432bc7bc4621991f2fd2f5d18914fc6)
set(QT_HASH_qt5-activeqt 682044800cf359ac24abfde94e45db7ca31c3c0162ca14d952990377e03dcaba490f02ec59b015fc77e6c2bce19bd65ff9fd4a19d960d549dcc4574ccaba2561)
set(QT_HASH_qt5-androidextras 257e7eb264df7cff6076a1e57bcf0ed23291cbd00ff1da8acee2993088b336ca5cba28c60691ece1c9a1afa869421388681cf0e9606f54ff38211991c6deaa36)
set(QT_HASH_qt5-base 190581c7df9763c2550466f884784d6f38817a087ab44fe57b99c1d1ac2ea3bae94ced8a6d0873a7999e523d63831d135cd7407812c8814ac4ef957840b7058e)
set(QT_HASH_qt5-charts f57df425e767ad5e18d5bf2439c137c0b656acf4ae998d42a41e59acf8a7b3d6733ef1c4ee4b11e1d54801df1550af5ee53cb190f05db223568b31fb4fcaa96d)
set(QT_HASH_qt5-connectivity a927d74f37bfec9f55a13077786cbec56f34145fb744bb2e0f9096acdb1b4c57e24b6bc60cfb775e6c18e352e6ddd9d085268ce2e810fabe8bca54cc3edf5282)
set(QT_HASH_qt5-datavis3d ec2425d4f5d3c8b26f1682f8d3e236ad4885194946e3720c54e5afdc3c8d8cb4322cd83aa381b7c1802f6348d1cdbfc4abf7c928686ef3e4c52d223fa2a314f5)
set(QT_HASH_qt5-declarative be492d95d11ab13e13d27ca2024b5b5860d515d0b66c6d1c201bdba155841996bfdb3b813313dc75578228b6d3e661220dcc5db037624fe73d6e5e1c3ec84aa7)
set(QT_HASH_qt5-doc c9988a6c82d5fd3f61c0df1a8b16db4f087fe7f75d968aaa472f08e8a481e6ec69b56c13776000248ceab386004ba2441282db92be2be691da965d50f9a176f7)
set(QT_HASH_qt5-gamepad 4651355c59d1977c7895d4bb751a9aa66088fb6173713f90e7a188ef4e314e00971ec285f5a6779cb2b23bcb61a9555c9f44892f44c44429fc4e54c9f7ff517a)
set(QT_HASH_qt5-graphicaleffects 25f2940428bed7b85f5ae16df286f8effc30ef9f68f6db5c559b18d247e8f391ba8c7e00a927024b0c84593648391fa63d16a23f1e8ae237b198fd3a1e7aa818)
set(QT_HASH_qt5-imageformats 922c513f1d3e46b37cd87aadd06c993128c428773aad12e8fd252258840b969996e911248530b135400e43538783d8fc1c69b4fab53ab526fc5d38478d11e6a9)
set(QT_HASH_qt5-location 321a8e68f731a97c7ef0209d6db0ff4891dd14dc43e14f5c4c5ac763069c7f17298fbc6410326df9265ccd631372cdba662fc82e26a324936d371c8572e19a48)
set(QT_HASH_qt5-macextras c04cb4fc8f6f68d360bba50e2c1b061e6cc164f958725fa53951bcf54ea366128a5aa195d705510e743f890e6321e05f4ad2a4afa24194cf0d4c14ae7eb2b684)
set(QT_HASH_qt5-mqtt 1a737a5e2bb4a2ae32652ca2ccfb09b40a62a1e92f683a86ee456eefb670c06f722dd324346606da32c5839be334fcc9143aa4a279ad5631ee2e61307e71d15f)
set(QT_HASH_qt5-multimedia a848affbc38a532455a34bdf887948210ff9794dae312115be0622246993324902b81209c2cac89ca5db63e6fcc29690f47c1255b1b7c4de68bf6ad5a6ecc5e7)
set(QT_HASH_qt5-networkauth cbf112c1f9c03f6cf78de148da44639393a3a2df56116e85d51d674cb31c37ea45823c44b9839af021c1c7e7733eefd646fbaae52459088b03e3b00fd30b1d49)
set(QT_HASH_qt5-purchasing b8dd83106ded528b7fd60bd29e0d68147de782e0303affede7127ef6d48b80c0f1645dc926d6d8b45d6fdde3a519bd604850766e66d79d7fba8e4807b87578af)
set(QT_HASH_qt5-quickcontrols 530cdddab279497c9edfcecbd97f1db35054bf9fd3321a5306808447f2616062076ee98f05164f7b8a7cc3cb03fd9eec4f7fba050344db00edaeb5925677cc84)
set(QT_HASH_qt5-quickcontrols2 0b98b92eaf250a5f1d2a742c431ca95888a5985908f4fc97495ac18927338b67b23b88a3f8f87aba79dd9e96b5381313b303e2c3827939caa401671c2169eddf)
set(QT_HASH_qt5-remoteobjects 7e08a482f91e4fa6ada03ba8c24697151527df74ba7110bdff1bddc6a6a25828cfcace5fc025db60c8e61e3b1a05668871e4b5a9674c1bd090c7c6bd3a096fd6)
set(QT_HASH_qt5-script 6f209db647823084c3a9894e25e65b3161d3e14f2dc06f79c2503a319bb7449259450e8845fb76461a75be7faa1ad18fec8c4724da2754e626d7797717915e0c)
set(QT_HASH_qt5-scxml fbfb054e07767975fc44a41cc015fd12aa15cec5abda1fd3f01425eaa1fd191c529f49dd5a97b6bdf9b83e841d069e1b3190f35d396c0ea5e44d5df66337102d)
set(QT_HASH_qt5-sensors 2bd63e07a996f5377bda885e7218fc218fc981bf2a637b3d939ae5913bbffe2a797716b0aaa63e61c7e1384f07712de8683787590649a8f01a424b7f4526502b)
set(QT_HASH_qt5-serialbus 7153d0d14545394c4217d0fff62b508358335f87cfa873955f7a6618773fb796231636fd73d681f6105e3d7f6ed1b18ffd59b831c6053afc91ea625b584cec7a)
set(QT_HASH_qt5-serialport d386d528aacce7d4e015110d814e852511db83a3648bc68116e4d300168ac826e83a145d9dd38e4a40ec2d4fd48ba89ac1eb9558afb895f7b39271ad760f2b17)
set(QT_HASH_qt5-speech d0ff73b35e6d94751a31b77bcdc084623d947ace092bdddc98f29d79bf932425fd5adbef74edceb4e8dc9065bfda49efa651cef63c72fcb42171ff083b29b335)
set(QT_HASH_qt5-svg 227b6b4f0d6ad7d9405c0bceabadfab28e591b4b02d7575de0ee7679280fc7115ec04751a8e839af5e9958e1800e6d4529bf8bae2251b579abbc688fdb99b9e8)
set(QT_HASH_qt5-tools 5e81de37a5d429dd14d254a0257e6d1ca37c04a92b506d13d918fd3eb799c026978d3d673f6db0f393b598f520cf3a5d647c66de76308f9de9ac5c6951ed9f6b)
set(QT_HASH_qt5-translations 9702390b89696211b1d85a11143e3432231085c2d96b298ea584f43e8db215bf5cdb5fb5355c8c4d900d1f761dfd3dc0d5c16df2ed0cca483557f8b867e3b2ac)
set(QT_HASH_qt5-virtualkeyboard af7ca963784773b94bfed000cabf5dbfb6363211d6b2601ccb6aed26eccd2eaa1e34dc8e7a6f1bbc678432f4086284df82c66e8da1c7fc7c8f5ec37983f687b9)
set(QT_HASH_qt5-wayland 9ce2bca54aa0e17be17383fccd6caca721db5b54f8905ec86cf871ed0e2414e6bc86878b9cc5167c322153467076b2afdcd6163a8fb2feb6b19cef11c3a29247)
set(QT_HASH_qt5-webchannel 106c72c0f49e79d92b4aa2aed235f57aef358aecdc0f30eb9b5ab2c28a56ab44df709143d2755ea5f35026e5aa3994d187da14838a2a542e878d6f5b70a7fe1b)
set(QT_HASH_qt5-webengine 6bfa7aba34cd5537e6a9e69f03504da1414625315565f053c1ce1fa2875f9b327b5a73e7e9bc8f69c706732f8917ecb6c88bc958ddd4e5848c225b4129cda404)
set(QT_HASH_qt5-webglplugin caf3cc278fa0486339f8a4f75ba9c0183452b55030d4c7cac8214bc38a1e9f9318a8c832935a593b53eea9d342eeae015763a7dd47a92e91f62afed1f540147d)
set(QT_HASH_qt5-websockets 9bb15c9277f96acee0d5a49e961483706c0d6c709c587400c402b7864fe2635cf688222448bdabd5ef53568e6d8c1c32e54a9410301eede0507b975989f30b2b)
set(QT_HASH_qt5-webview 2d6761a6b01a8791dae785f829f429f336b8ba42f0675226ab09a05a7f4e170a3bc569e92e845b9416f4a0eef93f87d2e34c0a18eed025847445bb794e457982)
set(QT_HASH_qt5-winextras 9af7c7eb9f2e37052c9a866d2902ba931be16eeaa43f7430326a5e7c1c9b65fc8c11dc2ba31379d1893939f800954e0079027d08f1e79a19acaf384cd8a9c4b4)
set(QT_HASH_qt5-x11extras edfb4e43214be861c5df71675ac9209b75ba3164c0caf5ec975528d60358a49707567ba4d1862ecb91e1c37d8169ef311426977962f02f2477c5d5ad7d5f4184)
set(QT_HASH_qt5-xmlpatterns ae603468dcb399f99b3843afcbd13ca05baed2ee42e12154be5c2c64ab18c1daddc003af01cf948e57c8654b65e8890101e45b412431ad930f7d697e4b806564)
set(QT_HASH_qt5-quicktimeline 0d27b672a76fdb6ba531bc823792bbcda2f286cebf9b64332651544344c1d78c9d397d40b3ccd426cea4dea6ea0971cc142ce0258a1f5a92a2239b39aef79054)
set(QT_HASH_qt5-quick3d 58abd8036ca59b00a73a7c08cc1b95c039bfd806d45d556e63db65abc97c2b3c8a7aeb4aabf3d1f58a854378a66c5092eff8b0fe45b7027189adf7239dcaa547)
# qt5-mqtt archive is not included in 5.15.17 release, updated separately
# list(APPEND QT_PORT_LIST mqtt)
set(QT_HASH_qt5-3d 94a88bf418f572a07b1ad25d6ca090525e7fe004c9f2d6ca7495e509fd150822bf5d49b66bed3660e492213bf54aff4e8772eeea0f42c24ef4f8c17f2655e2bc)
set(QT_HASH_qt5-activeqt 9089830042c01c990d85b842eafad8cb0c13606b90d310cf5f9e1e030e237c7ad362393ead31d7b6c507fd4623f08f17cb54abb1a21e24a0e42685ffcb3eab45)
set(QT_HASH_qt5-androidextras 9c950a43b8a13a702ee68a3adaa7d5f5666773762b9d8eb45d4202ad5ba016dcd6513d2feaffad0e284b5db4ca9f4e406e2a5408a304fb62bf2fc11952ed2fb9)
set(QT_HASH_qt5-base bd99bc25aee1c10d4161867654f3992c4e811b33337523bb702e3d2f63fb9a0d9118c43701ae791999c71761b86cdee1b6e5a1c520e47b52acbfe2156ce12621)
set(QT_HASH_qt5-charts 2b83853dba30c0fe23967a9eaae4a3bfe3f06608f994dd6f3cbac4cc2ac41856382105a539ee6596710a9cc51f88919229d31a3f90b4dde74a44e7c94e404845)
set(QT_HASH_qt5-connectivity 47617b29f963e05a6e65d9f5a685f6d20bdbd726c631c056c4a0e6037134b08bb956d9f705bee20ec73e0ec87117437acc2d52fe16e0f42ad312c887cc92c97b)
set(QT_HASH_qt5-datavis3d 4be0b0d17242227a9050839fffa84e3aa62e4d87e08aef51ac4ce98c9a8dd11ee2505e950f9ef244958db813b096cdcd2e1d2692a6066eba563c68a7a88f3a9e)
set(QT_HASH_qt5-declarative 7dbe9edfb43ab0b65bcf22c8b3226de851a210c8004b0c82dd346da5aa1ca4b8df0ca56ac78273d9d472252d8b756b62cc8e1d6432b048af947d51f4e9fef701)
set(QT_HASH_qt5-doc cfd9912ceb70f15fc92eaa79fb89f9274ea9ecacd0e707ffabe7cd21f32a9301151aa10e3724a7a9970ea9238c72fe0f664dee55b9911b38e3c96e4fa4d3a5d3)
set(QT_HASH_qt5-gamepad 321b00ccded43fd513c971bf5bafc5d6533db1d208047d52a2d208fc659cf783262ace1118f9393c5ffbb955c32cd32598296555f3d70079bb4837ef1d46c0ab)
set(QT_HASH_qt5-graphicaleffects 0745a3c928af94978f8d3d6748f6a09ad9b8086113371ef7c2729c0a6ab403a3dbdd34b0a4c53d8665e1bf6ddd47f8fbe4d346eab34c41515b9beff707b844a9)
set(QT_HASH_qt5-imageformats f73224594b3c1eb5b0da93143e21b13fa899d14bf93037022ded61c8e3594d5cce452b9090c9c522e5167baa22e8df45deb7b74f73af3451738efd7460d7a9e8)
set(QT_HASH_qt5-location 8ba1f386ce45201dbd3616a328ab256553c93da3bbb99fbe20b7b93419860f3a5612261258895e58b2621b8e05c8a841f3e9cb436384091e02e6a14b72a2be31)
set(QT_HASH_qt5-macextras 2ce07bf16e697e8e55a8237c84ae9e638f9d6305669e71408cc1985e2d225516c20c7985676e96b0c3e846848a70615fa4e4d626d57b3f280d12917106e45ea0)
set(QT_HASH_qt5-multimedia 75cfe80d2a4555769557742a0609be96b7c064aa8f2e28efb4dcf88a121dcd95080a1077f300dd20777519db2b75247f7021d4f5b7cd5a98a78919b35509fc49)
set(QT_HASH_qt5-networkauth 3f1442c91b36d461646a49bdc27c61253e4ad6a909a19f452e101cd3e9428a3cced4408216a5f80d6662101ba9f9f0d5a0c721adc9bd1e203f66bebc9e03ea64)
set(QT_HASH_qt5-purchasing 483ebd1d025da3fa431ecf74204262a27929fe2c03e56ba790b2555b817658663ac9cba2cfd76674d7959ade2da4f1d86f2f7d6492b5cd1d26e56e7197893aba)
set(QT_HASH_qt5-quick3d 34c3f60eb1c86bab19af85c99b084d7a9825f19c5a9b2ba55da967739f3b1887ff3c811fbd546e7281f33ce11669ac61ec660e4da9218744c5215385b0062683)
set(QT_HASH_qt5-quickcontrols b4c736db1f31d8f660f87283e477430a02eb4141cfb6ce9e9523a6df8a852d6d26734c6f68e2b06c654fa9da671ad9ac5527c305022e7cd59adb3354f2c5b89b)
set(QT_HASH_qt5-quickcontrols2 c5c0277e26ef96e7012e7e2eac6027ce0f1b18fa6149f7f431a7c6911c70959bf94f5ee45e4f25065835c7e0ee5fc3e6436e4b0bfd0099505215173c920a80db)
set(QT_HASH_qt5-quicktimeline a5158e8a21544d2f091193cf95e7f3bed1b66910e94b2268b6a1cb032f6f82a3705a8f938afcb228e1afe84e918f6d5707060416f3a598fa45c0810c21af59d2)
set(QT_HASH_qt5-remoteobjects e7af570d1f7d292929d2a1c328047d8293e722081f3d0beb6046cc44081e4395400a2db1238b6fd06a3de1f2f0b0725854088564f76e4870a71a1e4403ab805c)
set(QT_HASH_qt5-script 8acfb38df7a1d925210179423347f478780ed651b2da63e9547c1d48984b9ca759cd258da8d813307f9843d746ede4942850dcf5c26b61fcaf49e8b67dd3b427)
set(QT_HASH_qt5-scxml 1f2b393ab5bf9e1466a2d2b7f192656f3cc26dc2a94c4b4599734ac90a80186bcb9bdc0a57b929b2d4f07ef14b362401278be06657f41d859e1eaf7baef871b0)
set(QT_HASH_qt5-sensors 9404c642e654333630a203523a6cd96050fe891c55ecc29ae8828d586889025bba881a5267425e242cac1cfbaafa0a0e4cdc1a2108ebc287522c09820f97ad71)
set(QT_HASH_qt5-serialbus 91740db5cf9c018802575eec9774847e1118164f7f14a680c8dd3858383a2d7d9b1d9f0ea0ceb66ff2a05d2cd53b75d4a3fa99f88e10b3ffe7441a6fa9c70723)
set(QT_HASH_qt5-serialport cd31c7f15dd0f43edc38a287b8630ce4e45215bf572191765ea886182b539a1f99056dd1d17f596643df944e4745c72b273f2010a6b52370c367ff5e8519823d)
set(QT_HASH_qt5-speech 584fa104ee41b93cb7344ccdd3d0dc6cbfac6a7db623888b062479715f90205ea0aa4eea1c529eca80f7ebac955ba7e1b530eff49f30696fe180cb353ac12a60)
set(QT_HASH_qt5-svg 8994b995ecceffd386b10f0776dca81c776232af0742017f40df35149eac5160d7c62e92f2fea28082d9fe5ed91754af37eb3d49d8602750d5d0c349931a8e70)
set(QT_HASH_qt5-tools 053ff805a95516753dca0d2bfa392469c7ea763b7a99755c6e7a3c6d59afd4bc704ef9a3edfc81bd7ea8c0c37cbd11447201f075a2353774ae177cbba88ea679)
set(QT_HASH_qt5-translations b13dabbebf380ff57e7c9cf9cfe3edfa38c888b4dda7359b5326606ca76fbb86cc742420eb30c507c322b9c9e7f05f9d92f1a792e9d2530886493c7dae2df087)
set(QT_HASH_qt5-virtualkeyboard 584c63f5c79122452ce9e424187ec76daa8263f16da14c08de6026e81c8cfe93cece62101fe1a57a07f4905bc743340a295f7669bd9f739c7c156935aa585ff8)
set(QT_HASH_qt5-wayland b14c7e0b7a58ae258bd440b68ee7322bfa918d95bf8fac4509e7e2636c21e4576a022a6707383eda37ace1943dccb0eacd9eccacd04806494d2f44a0c59b0dec)
set(QT_HASH_qt5-webchannel 6d616f4143ee34eeab361eba86d2bcdd1a502b6290813ad0053163cd4ee1d1e7f2a0903b82d8632050bdab710d28c7b06d6a3bcf30ce1db398dcb78ebe014389)
set(QT_HASH_qt5-webengine f3f8a6e9b43e9a58a0b44777fd3333a621365f7cfe323207dfafdefe41f572a58b03ae9c00ab57cbd554d9d71c09d071b93841557099205d4b6dc474921bbfdf)
set(QT_HASH_qt5-webglplugin 8642312b0805fec4ab860fb0889887ac4f4a8e87016253249f6de1c2064acc7622c7ec5230816b732713499c8cad59f5dee0485ce3efd750d349ab2ae0da0337)
set(QT_HASH_qt5-websockets 59afb4a8992b3fd1ca50f26a5ae13b0ffd79ac321475963cfdc7e64ef7a1a070b8eee1052d1cff26fa0c3bda1d8bbb2849e8e84b4c15f1b4ba936cb54a6f4014)
set(QT_HASH_qt5-webview d1bb3be0df0a9c3a8bdbd26af3210925f0c8f0985ba702736e79d8a9e0bb49369ec2450376b56369d199763fdcfe7b1f009c985c600d77370029682448304387)
set(QT_HASH_qt5-winextras bfcdeedb17354b43108fc938ad42526bda2c216030b00a07c9d52412d50c831db772691239faf849971c5e28704289221fd8c53aba85e7fef7240195b5d6333b)
set(QT_HASH_qt5-x11extras f66ea15f8eddd75aa396f3b4aba2f9acdb69fe1330c45b973c9e445a089a923ba6290edc5d9608e72ddd0dde9a55f7205ee539abe7846222a9905566133a2700)
set(QT_HASH_qt5-xmlpatterns 45c01b5b0d0345f0dffd0855eb05e8824462dbef729b8c26aa0561d1366395ae3586e03a8f1ce16965bfe57c510b7332c41d7706fc4d5a9683cde58ca77b86cb)
if(QT_UPDATE_VERSION)
message(STATUS "Running Qt in automatic version port update mode!")

View File

@ -1,38 +0,0 @@
From ea63c28efc1d2ecb467b83a34923d12462efa96f Mon Sep 17 00:00:00 2001
From: Marc Mutz <marc.mutz@qt.io>
Date: Tue, 12 Dec 2023 20:51:56 +0100
Subject: [PATCH] HPack: fix a Yoda Condition
Putting the variable on the LHS of a relational operation makes the
expression easier to read. In this case, we find that the whole
expression is nonsensical as an overflow protection, because if
name.size() + value.size() overflows, the result will exactly _not_
be > max() - 32, because UB will have happened.
To be fixed in a follow-up commit.
As a drive-by, add parentheses around the RHS.
Change-Id: I35ce598884c37c51b74756b3bd2734b9aad63c09
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
(cherry picked from commit 658607a34ead214fbacbc2cca44915655c318ea9)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
(cherry picked from commit 4f7efd41740107f90960116700e3134f5e433867)
(cherry picked from commit 13c16b756900fe524f6d9534e8a07aa003c05e0c)
(cherry picked from commit 1d4788a39668fb2dc5912a8d9c4272dc40e99f92)
(cherry picked from commit 87de75b5cc946d196decaa6aef4792a6cac0b6db)
---
diff --git a/src/network/access/http2/hpacktable.cpp b/src/network/access/http2/hpacktable.cpp
index 834214f..ab166a6 100644
--- a/src/network/access/http2/hpacktable.cpp
+++ b/src/network/access/http2/hpacktable.cpp
@@ -63,7 +63,7 @@
// 32 octets of overhead."
const unsigned sum = unsigned(name.size() + value.size());
- if (std::numeric_limits<unsigned>::max() - 32 < sum)
+ if (sum > (std::numeric_limits<unsigned>::max() - 32))
return HeaderSize();
return HeaderSize(true, quint32(sum + 32));
}

View File

@ -1,59 +0,0 @@
From 23c3fc483e8b6e21012a61f0bea884446f727776 Mon Sep 17 00:00:00 2001
From: Marc Mutz <marc.mutz@qt.io>
Date: Tue, 12 Dec 2023 22:08:07 +0100
Subject: [PATCH] HPack: fix incorrect integer overflow check
This code never worked:
For the comparison with max() - 32 to trigger, on 32-bit platforms (or
Qt 5) signed interger overflow would have had to happen in the
addition of the two sizes. The compiler can therefore remove the
overflow check as dead code.
On Qt 6 and 64-bit platforms, the signed integer addition would be
very unlikely to overflow, but the following truncation to uint32
would yield the correct result only in a narrow 32-value window just
below UINT_MAX, if even that.
Fix by using the proper tool, qAddOverflow.
Manual conflict resolutions:
- qAddOverflow doesn't exist in Qt 5, use private add_overflow
predecessor API instead
Change-Id: I7599f2e75ff7f488077b0c60b81022591005661c
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
(cherry picked from commit ee5da1f2eaf8932aeca02ffea6e4c618585e29e3)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
(cherry picked from commit debeb8878da2dc706ead04b6072ecbe7e5313860)
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
(cherry picked from commit 811b9eef6d08d929af8708adbf2a5effb0eb62d7)
(cherry picked from commit f931facd077ce945f1e42eaa3bead208822d3e00)
(cherry picked from commit 9ef4ca5ecfed771dab890856130e93ef5ceabef5)
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
---
diff --git a/src/network/access/http2/hpacktable.cpp b/src/network/access/http2/hpacktable.cpp
index ab166a6..de91fc0 100644
--- a/src/network/access/http2/hpacktable.cpp
+++ b/src/network/access/http2/hpacktable.cpp
@@ -40,6 +40,7 @@
#include "hpacktable_p.h"
#include <QtCore/qdebug.h>
+#include <QtCore/private/qnumeric_p.h>
#include <algorithm>
#include <cstddef>
@@ -62,7 +63,9 @@
// for counting the number of references to the name and value would have
// 32 octets of overhead."
- const unsigned sum = unsigned(name.size() + value.size());
+ size_t sum;
+ if (add_overflow(size_t(name.size()), size_t(value.size()), &sum))
+ return HeaderSize();
if (sum > (std::numeric_limits<unsigned>::max() - 32))
return HeaderSize();
return HeaderSize(true, quint32(sum + 32));

View File

@ -1,197 +0,0 @@
diff --git a/src/gui/util/qktxhandler.cpp b/src/gui/util/qktxhandler.cpp
index 0d98e97453..6a79e55109 100644
--- a/src/gui/util/qktxhandler.cpp
+++ b/src/gui/util/qktxhandler.cpp
@@ -73,7 +73,7 @@ struct KTXHeader {
quint32 bytesOfKeyValueData;
};
-static const quint32 headerSize = sizeof(KTXHeader);
+static constexpr quint32 qktxh_headerSize = sizeof(KTXHeader);
// Currently unused, declared for future reference
struct KTXKeyValuePairItem {
@@ -103,11 +103,36 @@ struct KTXMipmapLevel {
*/
};
-bool QKtxHandler::canRead(const QByteArray &suffix, const QByteArray &block)
+static bool qAddOverflow(quint32 v1, quint32 v2, quint32 *r) {
+ // unsigned additions are well-defined
+ *r = v1 + v2;
+ return v1 > quint32(v1 + v2);
+}
+
+// Returns the nearest multiple of 4 greater than or equal to 'value'
+static bool nearestMultipleOf4(quint32 value, quint32 *result)
+{
+ constexpr quint32 rounding = 4;
+ *result = 0;
+ if (qAddOverflow(value, rounding - 1, result))
+ return true;
+ *result &= ~(rounding - 1);
+ return false;
+}
+
+// Returns a slice with prechecked bounds
+static QByteArray safeSlice(const QByteArray& array, quint32 start, quint32 length)
{
- Q_UNUSED(suffix)
+ quint32 end = 0;
+ if (qAddOverflow(start, length, &end) || end > quint32(array.length()))
+ return {};
+ return QByteArray(array.data() + start, length);
+}
- return (qstrncmp(block.constData(), ktxIdentifier, KTX_IDENTIFIER_LENGTH) == 0);
+bool QKtxHandler::canRead(const QByteArray &suffix, const QByteArray &block)
+{
+ Q_UNUSED(suffix);
+ return block.startsWith(QByteArray::fromRawData(ktxIdentifier, KTX_IDENTIFIER_LENGTH));
}
QTextureFileData QKtxHandler::read()
@@ -115,42 +140,97 @@ QTextureFileData QKtxHandler::read()
if (!device())
return QTextureFileData();
- QByteArray buf = device()->readAll();
- const quint32 dataSize = quint32(buf.size());
- if (dataSize < headerSize || !canRead(QByteArray(), buf)) {
- qCDebug(lcQtGuiTextureIO, "Invalid KTX file %s", logName().constData());
+ const QByteArray buf = device()->readAll();
+ if (size_t(buf.size()) > std::numeric_limits<quint32>::max()) {
+ qWarning(lcQtGuiTextureIO, "Too big KTX file %s", logName().constData());
+ return QTextureFileData();
+ }
+
+ if (!canRead(QByteArray(), buf)) {
+ qWarning(lcQtGuiTextureIO, "Invalid KTX file %s", logName().constData());
+ return QTextureFileData();
+ }
+
+ if (buf.size() < qsizetype(qktxh_headerSize)) {
+ qWarning(lcQtGuiTextureIO, "Invalid KTX header size in %s", logName().constData());
return QTextureFileData();
}
- const KTXHeader *header = reinterpret_cast<const KTXHeader *>(buf.constData());
- if (!checkHeader(*header)) {
- qCDebug(lcQtGuiTextureIO, "Unsupported KTX file format in %s", logName().constData());
+ KTXHeader header;
+ memcpy(&header, buf.data(), qktxh_headerSize);
+ if (!checkHeader(header)) {
+ qWarning(lcQtGuiTextureIO, "Unsupported KTX file format in %s", logName().constData());
return QTextureFileData();
}
QTextureFileData texData;
texData.setData(buf);
- texData.setSize(QSize(decode(header->pixelWidth), decode(header->pixelHeight)));
- texData.setGLFormat(decode(header->glFormat));
- texData.setGLInternalFormat(decode(header->glInternalFormat));
- texData.setGLBaseInternalFormat(decode(header->glBaseInternalFormat));
-
- texData.setNumLevels(decode(header->numberOfMipmapLevels));
- quint32 offset = headerSize + decode(header->bytesOfKeyValueData);
- const int maxLevels = qMin(texData.numLevels(), 32); // Cap iterations in case of corrupt file.
- for (int i = 0; i < maxLevels; i++) {
- if (offset + sizeof(KTXMipmapLevel) > dataSize) // Corrupt file; avoid oob read
- break;
- const KTXMipmapLevel *level = reinterpret_cast<const KTXMipmapLevel *>(buf.constData() + offset);
- quint32 levelLen = decode(level->imageSize);
- texData.setDataOffset(offset + sizeof(KTXMipmapLevel::imageSize), i);
- texData.setDataLength(levelLen, i);
- offset += sizeof(KTXMipmapLevel::imageSize) + levelLen + (3 - ((levelLen + 3) % 4));
+ texData.setSize(QSize(decode(header.pixelWidth), decode(header.pixelHeight)));
+ texData.setGLFormat(decode(header.glFormat));
+ texData.setGLInternalFormat(decode(header.glInternalFormat));
+ texData.setGLBaseInternalFormat(decode(header.glBaseInternalFormat));
+
+ texData.setNumLevels(decode(header.numberOfMipmapLevels));
+
+ const quint32 bytesOfKeyValueData = decode(header.bytesOfKeyValueData);
+ quint32 headerKeyValueSize;
+ if (qAddOverflow(qktxh_headerSize, bytesOfKeyValueData, &headerKeyValueSize)) {
+ qWarning(lcQtGuiTextureIO, "Overflow in size of key value data in header of KTX file %s",
+ logName().constData());
+ return QTextureFileData();
+ }
+
+ if (headerKeyValueSize >= quint32(buf.size())) {
+ qWarning(lcQtGuiTextureIO, "OOB request in KTX file %s", logName().constData());
+ return QTextureFileData();
+ }
+
+ // Technically, any number of levels is allowed but if the value is bigger than
+ // what is possible in KTX V2 (and what makes sense) we return an error.
+ // maxLevels = log2(max(width, height, depth))
+ const int maxLevels = (sizeof(quint32) * 8)
+ - qCountLeadingZeroBits(std::max(
+ { header.pixelWidth, header.pixelHeight, header.pixelDepth }));
+
+ if (texData.numLevels() > maxLevels) {
+ qWarning(lcQtGuiTextureIO, "Too many levels in KTX file %s", logName().constData());
+ return QTextureFileData();
+ }
+
+ quint32 offset = headerKeyValueSize;
+ for (int level = 0; level < texData.numLevels(); level++) {
+ const auto imageSizeSlice = safeSlice(buf, offset, sizeof(quint32));
+ if (imageSizeSlice.isEmpty()) {
+ qWarning(lcQtGuiTextureIO, "OOB request in KTX file %s", logName().constData());
+ return QTextureFileData();
+ }
+
+ const quint32 imageSize = decode(qFromUnaligned<quint32>(imageSizeSlice.data()));
+ offset += sizeof(quint32); // overflow checked indirectly above
+
+ texData.setDataOffset(offset, level);
+ texData.setDataLength(imageSize, level);
+
+ // Add image data and padding to offset
+ quint32 padded = 0;
+ if (nearestMultipleOf4(imageSize, &padded)) {
+ qWarning(lcQtGuiTextureIO, "Overflow in KTX file %s", logName().constData());
+ return QTextureFileData();
+ }
+
+ quint32 offsetNext;
+ if (qAddOverflow(offset, padded, &offsetNext)) {
+ qWarning(lcQtGuiTextureIO, "OOB request in KTX file %s", logName().constData());
+ return QTextureFileData();
+ }
+
+ offset = offsetNext;
}
if (!texData.isValid()) {
- qCDebug(lcQtGuiTextureIO, "Invalid values in header of KTX file %s", logName().constData());
+ qWarning(lcQtGuiTextureIO, "Invalid values in header of KTX file %s",
+ logName().constData());
return QTextureFileData();
}
@@ -191,7 +271,7 @@ bool QKtxHandler::checkHeader(const KTXHeader &header)
(decode(header.numberOfFaces) == 1));
}
-quint32 QKtxHandler::decode(quint32 val)
+quint32 QKtxHandler::decode(quint32 val) const
{
return inverseEndian ? qbswap<quint32>(val) : val;
}
diff --git a/src/gui/util/qktxhandler_p.h b/src/gui/util/qktxhandler_p.h
index f831e59d95..cdf1b2eaf8 100644
--- a/src/gui/util/qktxhandler_p.h
+++ b/src/gui/util/qktxhandler_p.h
@@ -68,7 +68,7 @@ public:
private:
bool checkHeader(const KTXHeader &header);
- quint32 decode(quint32 val);
+ quint32 decode(quint32 val) const;
bool inverseEndian = false;
};

View File

@ -0,0 +1,156 @@
From 16918c1df3e709df2a97281e3825d94c84edb668 Mon Sep 17 00:00:00 2001
From: Christian Ehrlicher <ch.ehrlicher@gmx.de>
Date: Tue, 06 Aug 2024 22:39:44 +0200
Subject: [PATCH] XML/QDom: speedup encodeText()
The code copied the whole string, then replaced parts inline, at
the cost of relocating everything beyond, at each replacement.
Instead, copy character by character (in chunks where possible)
and append replacements as we skip what they replace.
Manual conflict resolution for 6.5:
- This is a manual cherry-pick. The original change was only
picked to 6.8, but the quadratic behavior is present in Qt 5, too.
- Changed Task-number to Fixes: because this is the real fix;
the QString change, 315210de916d060c044c01e53ff249d676122b1b,
was unrelated to the original QTBUG-127549.
Manual conflcit resolution for 5.15:
- Kept/re-added QTextCodec::canEncode() check
- Ported from Qt 6 to 5, to wit:
- qsizetype -> int
- QStringView::first/sliced(n) -> left/mid(n)
(these functions are clearly called in-range, so the widened
contract of the Qt 5 functions doesn't matter)
- Ported from C++17- and C++14-isms to C++11:
- replaced polymorphic lambda with a normal one (this requires
rewriting the !canEncode() branch to use QByteArray/QLatin1String
instead of QString)
- As a drive-by, corrected the indentation of the case labels to
horizontally align existing code (and follow Qt style)
Fixes: QTBUG-127549
Change-Id: I368482859ed0c4127f1eec2919183711b5488ada
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
(cherry picked from commit 2ce08e3671b8d18b0284447e5908ce15e6e8f80f)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
(cherry picked from commit 225e235cf966a44af23dbe9aaaa2fd20ab6430ee)
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
(cherry picked from commit 905a5bd421efff6a1d90b6140500d134d32ca745)
---
diff --git a/src/xml/dom/qdom.cpp b/src/xml/dom/qdom.cpp
index 872221c..bf70477 100644
--- a/src/xml/dom/qdom.cpp
+++ b/src/xml/dom/qdom.cpp
@@ -3676,59 +3676,67 @@
const QTextCodec *const codec = s.codec();
Q_ASSERT(codec);
#endif
- QString retval(str);
- int len = retval.length();
- int i = 0;
+ QString retval;
+ int start = 0;
+ auto appendToOutput = [&](int cur, QLatin1String replacement)
+ {
+ if (start < cur) {
+ retval.reserve(str.size() + replacement.size());
+ retval.append(QStringView(str).left(cur).mid(start));
+ }
+ // Skip over str[cur], replaced by replacement
+ start = cur + 1;
+ retval.append(replacement);
+ };
- while (i < len) {
- const QChar ati(retval.at(i));
-
- if (ati == QLatin1Char('<')) {
- retval.replace(i, 1, QLatin1String("&lt;"));
- len += 3;
- i += 4;
- } else if (encodeQuotes && (ati == QLatin1Char('"'))) {
- retval.replace(i, 1, QLatin1String("&quot;"));
- len += 5;
- i += 6;
- } else if (ati == QLatin1Char('&')) {
- retval.replace(i, 1, QLatin1String("&amp;"));
- len += 4;
- i += 5;
- } else if (ati == QLatin1Char('>') && i >= 2 && retval[i - 1] == QLatin1Char(']') && retval[i - 2] == QLatin1Char(']')) {
- retval.replace(i, 1, QLatin1String("&gt;"));
- len += 3;
- i += 4;
- } else if (performAVN &&
- (ati == QChar(0xA) ||
- ati == QChar(0xD) ||
- ati == QChar(0x9))) {
- const QString replacement(QLatin1String("&#x") + QString::number(ati.unicode(), 16) + QLatin1Char(';'));
- retval.replace(i, 1, replacement);
- i += replacement.length();
- len += replacement.length() - 1;
- } else if (encodeEOLs && ati == QChar(0xD)) {
- retval.replace(i, 1, QLatin1String("&#xd;")); // Replace a single 0xD with a ref for 0xD
- len += 4;
- i += 5;
- } else {
+ const int len = str.size();
+ for (int cur = 0; cur < len; ++cur) {
+ switch (const char16_t ati = str[cur].unicode()) {
+ case u'<':
+ appendToOutput(cur, QLatin1String("&lt;"));
+ break;
+ case u'"':
+ if (encodeQuotes)
+ appendToOutput(cur, QLatin1String("&quot;"));
+ break;
+ case u'&':
+ appendToOutput(cur, QLatin1String("&amp;"));
+ break;
+ case u'>':
+ if (cur >= 2 && str[cur - 1] == u']' && str[cur - 2] == u']')
+ appendToOutput(cur, QLatin1String("&gt;"));
+ break;
+ case u'\r':
+ if (performAVN || encodeEOLs)
+ appendToOutput(cur, QLatin1String("&#xd;")); // \r == 0x0d
+ break;
+ case u'\n':
+ if (performAVN)
+ appendToOutput(cur, QLatin1String("&#xa;")); // \n == 0x0a
+ break;
+ case u'\t':
+ if (performAVN)
+ appendToOutput(cur, QLatin1String("&#x9;")); // \t == 0x09
+ break;
+ default:
#if QT_CONFIG(textcodec)
if(codec->canEncode(ati))
- ++i;
+ ; // continue
else
#endif
{
// We have to use a character reference to get it through.
- const ushort codepoint(ati.unicode());
- const QString replacement(QLatin1String("&#x") + QString::number(codepoint, 16) + QLatin1Char(';'));
- retval.replace(i, 1, replacement);
- i += replacement.length();
- len += replacement.length() - 1;
+ const QByteArray replacement = "&#x" + QByteArray::number(uint{ati}, 16) + ';';
+ appendToOutput(cur, QLatin1String{replacement});
}
+ break;
}
}
-
- return retval;
+ if (start > 0) {
+ retval.append(QStringView(str).left(len).mid(start));
+ return retval;
+ }
+ return str;
}
void QDomAttrPrivate::save(QTextStream& s, int, int) const

View File

@ -0,0 +1,61 @@
From 3d20cd0105c2ae06605c5078e7675e200f1a001a Mon Sep 17 00:00:00 2001
From: Mårten Nordheim <marten.nordheim@qt.io>
Date: Mon, 17 Mar 2025 14:22:11 +0100
Subject: [PATCH] QFileSystemEngine/Win: Use GetTempPath2 when available
Because the documentation for GetTempPath nows says apps should call
GetTempPath2.[0]
Starting with Windows 11[1], and recently Windows 10[2],
GetTempPath2 was added. The difference being that elevated
processes are returned a different directory. Usually
'C:\Windows\SystemTemp'.
Currently temporary files of an elevated process may be placed in a
world write-able location. GetTempPath2, by default, but can be
overridden, places it in a directory that's only accessible by SYSTEM
and administrators.
[0] https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-gettemppathw#remarks
[1] https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-gettemppath2w
(Minimum supported client - Windows 11 Build 22000)
[2] https://blogs.windows.com/windows-insider/2025/03/13/releasing-windows-10-build-19045-5674-to-the-release-preview-channel/
(This update enables system processes to store temporary files ...)
[ChangeLog][QtCore][Important Behavior Changes] On
Windows, generating temporary directories for processes with elevated
privileges may now return a different path with a stricter
set of permissions. Please consult Microsoft's documentation from when
they made the same change for the .NET framework:
https://support.microsoft.com/en-us/topic/gettemppath-changes-in-windows-february-cumulative-update-preview-4cc631fb-9d97-4118-ab6d-f643cd0a7259
Change-Id: I5caf11151fb2f711bbc5599231f140598b3c9d03
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
(cherry picked from commit 69633bcb58e681bac5bff3744e5a2352788dc36c)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
(cherry picked from commit 6a684a53b371ec483b27bf243af24819be63f85f)
(cherry picked from commit bbeccc0c22e520f46f0b33e281fa5ac85ac9c727)
(cherry picked from commit 59d7eb9bbb4f13cccbd9323fd995a8c108b56e60)
---
diff --git a/src/corelib/io/qfilesystemengine_win.cpp b/src/corelib/io/qfilesystemengine_win.cpp
index 75c661f..37a400f 100644
--- a/src/corelib/io/qfilesystemengine_win.cpp
+++ b/src/corelib/io/qfilesystemengine_win.cpp
@@ -1390,7 +1390,15 @@
QString ret;
#ifndef Q_OS_WINRT
wchar_t tempPath[MAX_PATH];
- const DWORD len = GetTempPath(MAX_PATH, tempPath);
+ using GetTempPathPrototype = DWORD (WINAPI *)(DWORD, LPWSTR);
+ // We try to resolve GetTempPath2 and use that, otherwise fall back to GetTempPath:
+ static GetTempPathPrototype getTempPathW = []() {
+ const HMODULE kernel32 = GetModuleHandleW(L"kernel32.dll");
+ if (auto *func = QFunctionPointer(GetProcAddress(kernel32, "GetTempPath2W")))
+ return GetTempPathPrototype(func);
+ return GetTempPath;
+ }();
+ const DWORD len = getTempPathW(MAX_PATH, tempPath);
if (len) { // GetTempPath() can return short names, expand.
wchar_t longTempPath[MAX_PATH];
const DWORD longLen = GetLongPathName(tempPath, longTempPath, MAX_PATH);

View File

@ -0,0 +1,20 @@
diff --git a/src/corelib/io/qdataurl.cpp b/src/corelib/io/qdataurl.cpp
index f14d399301f..83e59e3ac00 100644
--- a/src/corelib/io/qdataurl.cpp
+++ b/src/corelib/io/qdataurl.cpp
@@ -76,10 +76,11 @@ Q_CORE_EXPORT bool qDecodeDataUrl(const QUrl &uri, QString &mimeType, QByteArray
}
if (data.toLower().startsWith("charset")) {
- int i = 7; // strlen("charset")
- while (data.at(i) == ' ')
- ++i;
- if (data.at(i) == '=')
+ int prefixSize = 7; // strlen("charset")
+ QLatin1String copy(data.constData() + prefixSize, data.size() - prefixSize);
+ while (copy.startsWith(QLatin1String(" ")))
+ copy = copy.mid(1);
+ if (copy.startsWith(QLatin1String("=")))
data.prepend("text/plain;");
}

View File

@ -1,29 +0,0 @@
diff --git a/src/gui/configure.json b/src/gui/configure.json
index c51e3ceee..7f7e206b6 100644
--- a/src/gui/configure.json
+++ b/src/gui/configure.json
@@ -239,9 +239,9 @@
"headers": "ft2build.h",
"sources": [
{ "type": "pkgConfig", "args": "freetype2" },
- { "type": "freetype", "libs": "-lfreetype", "condition": "!config.wasm" },
+ { "type": "freetype", "libs": "-lbreakfreetypeautofind", "condition": "!config.wasm" },
{ "libs": "-s USE_FREETYPE=1", "condition": "config.wasm" },
- { "libs": "-lfreetype" }
+ { "libs": "-lbreakfreetypeautofind" }
],
"use": [
{ "lib": "zlib", "condition": "features.system-zlib" }
@@ -262,7 +262,10 @@
"headers": "fontconfig/fontconfig.h",
"sources": [
- { "type": "pkgConfig", "args": "fontconfig" },
+ { "type": "pkgConfig", "args": "breakfontconfig" },
- { "type": "freetype", "libs": "-lfontconfig" }
+ { "type": "freetype", "libs": "-lbreakautofind" },
+ { "libs": "-lfontconfig -lexpat" },
+ { "libs": "-llibfontconfig -llibexpat" },
+ "-lfontconfig"
],
"use": "freetype"
},

View File

@ -0,0 +1,13 @@
diff --git a/mkspecs/features/win32/windows_vulkan_sdk.prf b/mkspecs/features/win32/windows_vulkan_sdk.prf
index 9a749516b..242f47504 100644
--- a/mkspecs/features/win32/windows_vulkan_sdk.prf
+++ b/mkspecs/features/win32/windows_vulkan_sdk.prf
@@ -1,7 +1,7 @@
isEmpty(QMAKE_INCDIR_VULKAN) {
# Pick up the VULKAN_SDK env var set by the LunarG SDK so that the Vulkan
# headers are found out-of-the-box on typical Windows setups.
- QMAKE_INCDIR_VULKAN = $$(VULKAN_SDK)/include
+ # QMAKE_INCDIR_VULKAN = $$(VULKAN_SDK)/include
# Do not add default include paths as that can knock std headers
# out of their stride due to their usage of #include_next.

View File

@ -52,16 +52,16 @@ endif()
qt_download_submodule( OUT_SOURCE_PATH SOURCE_PATH
PATCHES
# CVE fixes from https://download.qt.io/official_releases/qt/5.15/
patches/0001-CVE-2023-51714-qtbase-5.15.diff
patches/0002-CVE-2023-51714-qtbase-5.15.diff
patches/CVE-2024-25580-qtbase-5.15.diff
patches/CVE-2024-39936-qtbase-5.15.patch
patches/CVE-2025-4211-qtbase-5.15.diff
patches/CVE-2025-5455-qtbase-5.15.patch
patches/CVE-2025-30348-qtbase-5.15.diff
patches/winmain_pro.patch #Moves qtmain to manual-link
patches/windows_prf.patch #fixes the qtmain dependency due to the above move
patches/qt_app.patch #Moves the target location of qt5 host apps to always install into the host dir.
patches/gui_configure.patch #Patches the gui configure.json to break freetype/fontconfig autodetection because it does not include its dependencies.
patches/xlib.patch #Patches Xlib check to actually use Pkgconfig instead of makeSpec only
patches/vulkan-windows.diff #Forces QMake to use vulkan from vcpkg instead of VULKAN_SDK system variable
patches/egl.patch #Fix egl detection logic.
patches/qtbug_96392.patch #Backport fix for QTBUG-96392
patches/mysql_plugin_include.patch #Fix include path of mysql plugin
@ -109,10 +109,8 @@ list(APPEND CORE_OPTIONS
-system-zlib
-system-libjpeg
-system-libpng
-system-freetype
-system-pcre
-system-doubleconversion
-system-harfbuzz
-no-angle # Qt does not need to build angle. VCPKG will build angle!
-no-glib
-no-feature-gssapi
@ -144,6 +142,13 @@ else()
list(APPEND CORE_OPTIONS -no-openssl)
endif()
if("cups" IN_LIST FEATURES)
message(WARNING "${PORT} feature 'cups' requires libcups2-dev from system package manger.")
list(APPEND CORE_OPTIONS -cups)
else()
list(APPEND CORE_OPTIONS -no-cups)
endif()
if ("vulkan" IN_LIST FEATURES)
list(APPEND CORE_OPTIONS --vulkan=yes)
else()
@ -170,23 +175,9 @@ find_library(MYSQL_DEBUG NAMES libmysql libmysqld mysqlclient mysqlclientd PATHS
find_library(PCRE2_RELEASE NAMES pcre2-16 pcre2-16-static PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH)
find_library(PCRE2_DEBUG NAMES pcre2-16 pcre2-16-static pcre2-16d pcre2-16-staticd PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH)
find_library(FREETYPE_RELEASE NAMES freetype PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH) #zlib, bzip2, libpng
find_library(FREETYPE_DEBUG NAMES freetype freetyped PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH)
find_library(DOUBLECONVERSION_RELEASE NAMES double-conversion PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH)
find_library(DOUBLECONVERSION_DEBUG NAMES double-conversion PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH)
find_library(BROTLI_COMMON_RELEASE NAMES brotlicommon brotlicommon-static PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH)
find_library(BROTLI_COMMON_DEBUG NAMES brotlicommon brotlicommon-static brotlicommond brotlicommon-staticd PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH)
find_library(BROTLI_DEC_RELEASE NAMES brotlidec brotlidec-static PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH)
find_library(BROTLI_DEC_DEBUG NAMES brotlidec brotlidec-static brotlidecd brotlidec-staticd PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH)
find_library(ICUUC_RELEASE NAMES icuuc libicuuc PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH)
find_library(ICUUC_DEBUG NAMES icuucd libicuucd icuuc libicuuc PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH)
# Was installed in WSL but not on CI machine
# find_library(ICULX_RELEASE NAMES iculx libiculx PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH)
# find_library(ICULX_DEBUG NAMES iculxd libiculxd iculx libiculx PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH)
find_library(ICUIO_RELEASE NAMES icuio libicuio PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH)
find_library(ICUIO_DEBUG NAMES icuiod libicuiod icuio libicuio PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH)
find_library(ICUIN_RELEASE NAMES icui18n libicui18n icuin PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH)
@ -200,48 +191,48 @@ if(VCPKG_TARGET_IS_WINDOWS)
set(ICU_DEBUG "${ICU_DEBUG} -ladvapi32" )
endif()
find_library(FONTCONFIG_RELEASE NAMES fontconfig PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH)
find_library(FONTCONFIG_DEBUG NAMES fontconfig PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH)
find_library(EXPAT_RELEASE NAMES expat PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH)
find_library(EXPAT_DEBUG NAMES expat PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH)
#Dependent libraries
find_library(ZSTD_RELEASE NAMES zstd PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH)
find_library(ZSTD_DEBUG NAMES zstd PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH)
find_library(BZ2_RELEASE bz2 PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH)
find_library(BZ2_DEBUG bz2 bz2d PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH)
find_library(SSL_RELEASE ssl ssleay32 PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH)
find_library(SSL_DEBUG ssl ssleay32 ssld ssleay32d PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH)
find_library(EAY_RELEASE libeay32 crypto libcrypto PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH)
find_library(EAY_DEBUG libeay32 crypto libcrypto libeay32d cryptod libcryptod PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH)
set(FREETYPE_RELEASE_ALL "${FREETYPE_RELEASE} ${BZ2_RELEASE} ${LIBPNG_RELEASE} ${ZLIB_RELEASE} ${BROTLI_DEC_RELEASE} ${BROTLI_COMMON_RELEASE}")
set(FREETYPE_DEBUG_ALL "${FREETYPE_DEBUG} ${BZ2_DEBUG} ${LIBPNG_DEBUG} ${ZLIB_DEBUG} ${BROTLI_DEC_DEBUG} ${BROTLI_COMMON_DEBUG}")
# If HarfBuzz is built with GLib enabled, it must be statically link
x_vcpkg_pkgconfig_get_modules(PREFIX harfbuzz MODULES harfbuzz LIBRARIES)
set(RELEASE_OPTIONS
"LIBJPEG_LIBS=${JPEG_RELEASE}"
"ZLIB_LIBS=${ZLIB_RELEASE}"
"LIBPNG_LIBS=${LIBPNG_RELEASE} ${ZLIB_RELEASE}"
"PCRE2_LIBS=${PCRE2_RELEASE}"
"FREETYPE_LIBS=${FREETYPE_RELEASE_ALL}"
"QMAKE_LIBS_PRIVATE+=${BZ2_RELEASE}"
"QMAKE_LIBS_PRIVATE+=${LIBPNG_RELEASE} ${ZLIB_RELEASE}"
"QMAKE_LIBS_PRIVATE+=${ZSTD_RELEASE}"
)
set(DEBUG_OPTIONS
"LIBJPEG_LIBS=${JPEG_DEBUG}"
"ZLIB_LIBS=${ZLIB_DEBUG}"
"LIBPNG_LIBS=${LIBPNG_DEBUG} ${ZLIB_DEBUG}"
"PCRE2_LIBS=${PCRE2_DEBUG}"
"FREETYPE_LIBS=${FREETYPE_DEBUG_ALL}"
"QMAKE_LIBS_PRIVATE+=${BZ2_DEBUG}"
"QMAKE_LIBS_PRIVATE+=${LIBPNG_DEBUG} ${ZLIB_DEBUG}"
"QMAKE_LIBS_PRIVATE+=${ZSTD_DEBUG}"
)
x_vcpkg_pkgconfig_get_modules(PREFIX freetype MODULES freetype2 LIBRARIES)
list(APPEND CORE_OPTIONS -system-freetype)
list(APPEND RELEASE_OPTIONS "FREETYPE_LIBS=${freetype_LIBRARIES_RELEASE}")
list(APPEND DEBUG_OPTIONS "FREETYPE_LIBS=${freetype_LIBRARIES_DEBUG}")
x_vcpkg_pkgconfig_get_modules(PREFIX harfbuzz MODULES harfbuzz LIBRARIES)
if(VCPKG_TARGET_IS_OSX)
string(APPEND harfbuzz_LIBRARIES_RELEASE " -framework ApplicationServices")
string(APPEND harfbuzz_LIBRARIES_DEBUG " -framework ApplicationServices")
endif()
list(APPEND CORE_OPTIONS -system-harfbuzz)
list(APPEND RELEASE_OPTIONS "HARFBUZZ_LIBS=${harfbuzz_LIBRARIES_RELEASE}")
list(APPEND DEBUG_OPTIONS "HARFBUZZ_LIBS=${harfbuzz_LIBRARIES_DEBUG}")
if(NOT VCPKG_TARGET_IS_WINDOWS)
list(APPEND CORE_OPTIONS -fontconfig)
x_vcpkg_pkgconfig_get_modules(PREFIX fontconfig MODULES fontconfig LIBRARIES)
list(APPEND RELEASE_OPTIONS "FONTCONFIG_LIBS=${fontconfig_LIBRARIES_RELEASE}")
list(APPEND DEBUG_OPTIONS "FONTCONFIG_LIBS=${fontconfig_LIBRARIES_DEBUG}")
endif()
if("sqlite3plugin" IN_LIST FEATURES)
list(APPEND CORE_OPTIONS -system-sqlite)
x_vcpkg_pkgconfig_get_modules(PREFIX sqlite3 MODULES sqlite3 LIBRARIES)
@ -251,6 +242,15 @@ else()
list(APPEND CORE_OPTIONS -no-sql-sqlite)
endif()
if("zstd" IN_LIST FEATURES)
list(APPEND CORE_OPTIONS -zstd)
x_vcpkg_pkgconfig_get_modules(PREFIX libzstd MODULES libzstd LIBRARIES)
list(APPEND RELEASE_OPTIONS "QMAKE_LIBS_PRIVATE+=${libzstd_LIBRARIES_RELEASE}")
list(APPEND DEBUG_OPTIONS "QMAKE_LIBS_PRIVATE+=${libzstd_LIBRARIES_DEBUG}")
else()
list(APPEND CORE_OPTIONS -no-zstd)
endif()
if("icu" IN_LIST FEATURES)
list(APPEND CORE_OPTIONS -icu)
@ -281,13 +281,6 @@ if(VCPKG_TARGET_IS_WINDOWS)
list(APPEND CORE_OPTIONS -opengl dynamic) # other possible option without moving angle dlls: "-opengl desktop". "-opengel es2" only works with commented patch
endif()
set(ADDITIONAL_WINDOWS_LIBS "-lws2_32 -lsecur32 -ladvapi32 -lshell32 -lcrypt32 -luser32 -lgdi32")
list(APPEND RELEASE_OPTIONS
"HARFBUZZ_LIBS=${harfbuzz_LIBRARIES_RELEASE}"
)
list(APPEND DEBUG_OPTIONS
"HARFBUZZ_LIBS=${harfbuzz_LIBRARIES_DEBUG}"
)
if(WITH_OPENSSL)
list(APPEND RELEASE_OPTIONS "OPENSSL_LIBS=${SSL_RELEASE} ${EAY_RELEASE} ${ADDITIONAL_WINDOWS_LIBS}")
@ -301,15 +294,7 @@ if(VCPKG_TARGET_IS_WINDOWS)
list(APPEND DEBUG_OPTIONS "PSQL_LIBS=${PSQL_DEBUG} ${PSQL_PORT_DEBUG} ${PSQL_COMMON_DEBUG} ${SSL_DEBUG} ${EAY_DEBUG} ${ADDITIONAL_WINDOWS_LIBS} -lwldap32")
endif()
elseif(VCPKG_TARGET_IS_LINUX)
list(APPEND CORE_OPTIONS -fontconfig -xcb-xlib -xcb -linuxfb)
list(APPEND RELEASE_OPTIONS
"HARFBUZZ_LIBS=${harfbuzz_LIBRARIES_RELEASE}"
"FONTCONFIG_LIBS=${FONTCONFIG_RELEASE} ${FREETYPE_RELEASE} ${EXPAT_RELEASE} -luuid"
)
list(APPEND DEBUG_OPTIONS
"HARFBUZZ_LIBS=${harfbuzz_LIBRARIES_DEBUG}"
"FONTCONFIG_LIBS=${FONTCONFIG_DEBUG} ${FREETYPE_DEBUG} ${EXPAT_DEBUG} -luuid"
)
list(APPEND CORE_OPTIONS -xcb-xlib -xcb -linuxfb)
if(WITH_OPENSSL)
list(APPEND RELEASE_OPTIONS "OPENSSL_LIBS=${SSL_RELEASE} ${EAY_RELEASE} -ldl -lpthread")
@ -329,7 +314,6 @@ elseif(VCPKG_TARGET_IS_OSX)
list(APPEND RELEASE_OPTIONS -R ${CURRENT_INSTALLED_DIR}/lib)
endif()
list(APPEND CORE_OPTIONS -fontconfig)
if("${VCPKG_TARGET_ARCHITECTURE}" MATCHES "arm64")
FILE(READ "${SOURCE_PATH}/mkspecs/common/macx.conf" _tmp_contents)
string(REPLACE "QMAKE_APPLE_DEVICE_ARCHS = x86_64" "QMAKE_APPLE_DEVICE_ARCHS = arm64" _tmp_contents ${_tmp_contents})
@ -383,14 +367,6 @@ elseif(VCPKG_TARGET_IS_OSX)
string(REPLACE "QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.13" "QMAKE_MACOSX_DEPLOYMENT_TARGET = ${VCPKG_OSX_DEPLOYMENT_TARGET}" _tmp_contents ${_tmp_contents})
file(WRITE "${SOURCE_PATH}/mkspecs/common/macx.conf" ${_tmp_contents})
#list(APPEND QT_PLATFORM_CONFIGURE_OPTIONS HOST_PLATFORM ${TARGET_MKSPEC})
list(APPEND RELEASE_OPTIONS
"HARFBUZZ_LIBS=${harfbuzz_LIBRARIES_RELEASE} -framework ApplicationServices"
"FONTCONFIG_LIBS=${FONTCONFIG_RELEASE} ${FREETYPE_RELEASE} ${EXPAT_RELEASE} -liconv"
)
list(APPEND DEBUG_OPTIONS
"HARFBUZZ_LIBS=${harfbuzz_LIBRARIES_DEBUG} -framework ApplicationServices"
"FONTCONFIG_LIBS=${FONTCONFIG_DEBUG} ${FREETYPE_DEBUG} ${EXPAT_DEBUG} -liconv"
)
if(WITH_OPENSSL)
list(APPEND RELEASE_OPTIONS "OPENSSL_LIBS=${SSL_RELEASE} ${EAY_RELEASE} -ldl -lpthread")

View File

@ -1,7 +1,6 @@
{
"name": "qt5-base",
"version": "5.15.16",
"port-version": 5,
"version": "5.15.17",
"description": "Qt Base provides the basic non-GUI functionality required by all Qt applications.",
"homepage": "https://www.qt.io/",
"license": null,
@ -20,8 +19,21 @@
"name": "fontconfig",
"platform": "!windows"
},
"freetype",
"harfbuzz",
{
"name": "freetype",
"default-features": false,
"features": [
"png",
"zlib"
]
},
{
"name": "harfbuzz",
"default-features": false,
"features": [
"freetype"
]
},
"libjpeg-turbo",
"libpng",
{
@ -45,13 +57,16 @@
"name": "vcpkg-pkgconfig-get-modules",
"host": true
},
"zlib",
"zstd"
"zlib"
],
"default-features": [
"openssl"
],
"features": {
"cups": {
"description": "Provides support for the Common Unix Printing System",
"supports": "linux | osx"
},
"icu": {
"description": "Enable ICU support",
"dependencies": [
@ -67,7 +82,14 @@
"mysqlplugin": {
"description": "Build the sql plugin for connecting to mysql databases",
"dependencies": [
"libmysql"
"libmysql",
{
"name": "qt5-base",
"default-features": false,
"features": [
"zstd"
]
}
]
},
"openssl": {
@ -96,6 +118,12 @@
"dependencies": [
"vulkan"
]
},
"zstd": {
"description": "Zstandard support",
"dependencies": [
"zstd"
]
}
}
}

View File

@ -1,6 +1,6 @@
{
"name": "qt5-charts",
"version": "5.15.16",
"version": "5.15.17",
"description": "The Qt Charts module provides a set of easy to use chart components.",
"license": null,
"dependencies": [

View File

@ -1,6 +1,6 @@
{
"name": "qt5-connectivity",
"version": "5.15.16",
"version": "5.15.17",
"description": "The Qt Connectivity module provides access to Bluetooth and NFC hardware.",
"license": null,
"dependencies": [

View File

@ -1,6 +1,6 @@
{
"name": "qt5-datavis3d",
"version": "5.15.16",
"version": "5.15.17",
"description": "The Qt Data Visualization module provides a way to visualize data in 3D as bar, scatter, and surface graphs.",
"license": null,
"dependencies": [

View File

@ -1,6 +1,6 @@
{
"name": "qt5-declarative",
"version": "5.15.16",
"version": "5.15.17",
"description": "Qt Declarative (Quick 2)",
"license": null,
"dependencies": [

View File

@ -1,6 +1,6 @@
{
"name": "qt5-doc",
"version": "5.15.16",
"version": "5.15.17",
"description": "The Qt documentation.",
"license": null,
"supports": "native",

View File

@ -1,6 +1,6 @@
{
"name": "qt5-gamepad",
"version": "5.15.16",
"version": "5.15.17",
"description": "Qt Gamepad is an add-on library that enables Qt applications to support the use of gamepad hardware and in some cases remote control equipment.",
"license": null,
"dependencies": [

View File

@ -1,6 +1,6 @@
{
"name": "qt5-graphicaleffects",
"version": "5.15.16",
"version": "5.15.17",
"description": "The Qt Graphical Effects module provides a set of QML types for adding visually impressive and configurable effects to user interfaces.",
"license": null,
"dependencies": [

View File

@ -1,6 +1,6 @@
{
"name": "qt5-imageformats",
"version": "5.15.16",
"version": "5.15.17",
"description": "The Qt Image Formats add-on module provides optional support for other image file formats.",
"license": null,
"dependencies": [

View File

@ -1,6 +1,6 @@
{
"name": "qt5-location",
"version": "5.15.16",
"version": "5.15.17",
"description": "The Qt Location API helps you create viable mapping solutions using the data available from some of the popular location services.",
"license": null,
"dependencies": [

View File

@ -1,6 +1,6 @@
{
"name": "qt5-macextras",
"version": "5.15.16",
"version": "5.15.17",
"description": "Qt Mac Extras provide classes and functions that enable you to use miscellaneous functionality specific to the macOS and iOS operating systems.",
"license": null,
"supports": "osx",

View File

@ -1,2 +1,31 @@
include(${CURRENT_INSTALLED_DIR}/share/qt5/qt_port_functions.cmake)
qt_submodule_installation(PATCHES ${_qis_PATCHES})
include("${CURRENT_INSTALLED_DIR}/share/qt5/qt_port_functions.cmake")
# No binary package for this port.
# qt_submodule_installation()
if(QT_UPDATE_VERSION)
set(VCPKG_USE_HEAD_VERSION ON)
endif()
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO qt/qtmqtt
REF 0b4955ce8b692409c3deded57892eb61e75be428
HEAD_REF "v${QT_MAJOR_MINOR_VER}.${QT_PATCH_VER}"
SHA512 4a16c277f338874c9606254f34c74c434a2f4df1767bd465822d1388f325de8c788d8ed184e1c340e092a358add6655e8d20d59a027f111d1882fcae6433320e
)
if(QT_UPDATE_VERSION)
message(STATUS "New qtmqtt ref: ${VCPKG_HEAD_VERSION}")
endif()
# qt module builds from a git repository require a .git entry to invoke syncqt
file(WRITE "${SOURCE_PATH}/.git" "repocontent")
# syncqt is a perl script
vcpkg_find_acquire_program(PERL)
get_filename_component(perl_exe_path "${PERL}" DIRECTORY)
vcpkg_add_to_path("${perl_exe_path}")
qt_build_submodule("${SOURCE_PATH}")
qt_install_copyright("${SOURCE_PATH}")

View File

@ -1,6 +1,6 @@
{
"name": "qt5-mqtt",
"version": "5.15.16",
"version": "5.15.17",
"description": "Qt MQTT enables you to create applications and devices that can communicate over the MQ telemetry transport (MQTT) protocol.",
"license": null,
"dependencies": [

View File

@ -1,6 +1,6 @@
{
"name": "qt5-multimedia",
"version": "5.15.16",
"version": "5.15.17",
"description": "Qt Multimedia is an essential module that provides a rich set of QML types and C++ classes to handle multimedia content. It also provides necessary APIs to access the camera and radio functionality.",
"license": null,
"dependencies": [

View File

@ -1,53 +0,0 @@
diff --git a/src/oauth/qabstractoauth.cpp b/src/oauth/qabstractoauth.cpp
index f1ed2af..05b189a 100644
--- a/src/oauth/qabstractoauth.cpp
+++ b/src/oauth/qabstractoauth.cpp
@@ -37,7 +37,6 @@
#include <QtCore/qurl.h>
#include <QtCore/qpair.h>
#include <QtCore/qstring.h>
-#include <QtCore/qdatetime.h>
#include <QtCore/qurlquery.h>
#include <QtCore/qjsondocument.h>
#include <QtCore/qmessageauthenticationcode.h>
@@ -46,6 +45,9 @@
#include <QtNetwork/qnetworkaccessmanager.h>
#include <QtNetwork/qnetworkreply.h>
+#include <QtCore/qrandom.h>
+#include <QtCore/private/qlocking_p.h>
+
#include <random>
Q_DECLARE_METATYPE(QAbstractOAuth::Error)
@@ -290,15 +292,19 @@ void QAbstractOAuthPrivate::setStatus(QAbstractOAuth::Status newStatus)
}
}
+static QBasicMutex prngMutex;
+Q_GLOBAL_STATIC_WITH_ARGS(std::mt19937, prng, (*QRandomGenerator::system()))
+
QByteArray QAbstractOAuthPrivate::generateRandomString(quint8 length)
{
- const char characters[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
- static std::mt19937 randomEngine(QDateTime::currentDateTime().toMSecsSinceEpoch());
+ constexpr char characters[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
std::uniform_int_distribution<int> distribution(0, sizeof(characters) - 2);
QByteArray data;
data.reserve(length);
+ auto lock = qt_unique_lock(prngMutex);
for (quint8 i = 0; i < length; ++i)
- data.append(characters[distribution(randomEngine)]);
+ data.append(characters[distribution(*prng)]);
+ lock.unlock();
return data;
}
@@ -614,6 +620,7 @@ void QAbstractOAuth::resourceOwnerAuthorization(const QUrl &url, const QVariantM
}
/*!
+ \threadsafe
Generates a random string which could be used as state or nonce.
The parameter \a length determines the size of the generated
string.

View File

@ -1,5 +1,2 @@
include(${CURRENT_INSTALLED_DIR}/share/qt5/qt_port_functions.cmake)
qt_submodule_installation(PATCHES
# CVE fixes from https://download.qt.io/official_releases/qt/5.15/
patches/CVE-2024-36048-qtnetworkauth-5.15.diff
)
include("${CURRENT_INSTALLED_DIR}/share/qt5/qt_port_functions.cmake")
qt_submodule_installation()

View File

@ -1,6 +1,6 @@
{
"name": "qt5-networkauth",
"version": "5.15.16",
"version": "5.15.17",
"description": "Qt Network Authorization provides a set of APIs that enable Qt applications to obtain limited access to online accounts and HTTP services without exposing users' passwords.",
"license": null,
"dependencies": [

View File

@ -1,6 +1,6 @@
{
"name": "qt5-purchasing",
"version": "5.15.16",
"version": "5.15.17",
"description": "Qt Purchasing is an add-on library that enables Qt applications to support in-app purchases. It is a cross-platform library that currently supports purchases made to the Mac App Store on OS X, App Store on iOS, and Google Play on Android.",
"license": null,
"dependencies": [

View File

@ -1,6 +1,6 @@
{
"name": "qt5-quickcontrols",
"version": "5.15.16",
"version": "5.15.17",
"description": "The Qt Quick Controls module provides a set of controls that can be used to build complete interfaces in Qt Quick.",
"license": null,
"dependencies": [

View File

@ -1,6 +1,6 @@
{
"name": "qt5-quickcontrols2",
"version": "5.15.16",
"version": "5.15.17",
"description": "Qt Quick Controls provides a set of controls that can be used to build complete interfaces in Qt Quick.",
"license": null,
"dependencies": [

View File

@ -1,6 +1,6 @@
{
"name": "qt5-remoteobjects",
"version": "5.15.16",
"version": "5.15.17",
"description": "Qt Remote Objects (QtRO) is an Inter-Process Communication (IPC) module developed for Qt. This module extends Qt's existing functionalities to enable information exchange between processes or computers, easily.",
"license": null,
"dependencies": [

View File

@ -1,6 +1,6 @@
{
"name": "qt5-script",
"version": "5.15.16",
"version": "5.15.17",
"description": "Qt Script provides support for application scripting with ECMAScript.",
"license": null,
"dependencies": [

View File

@ -1,6 +1,6 @@
{
"name": "qt5-scxml",
"version": "5.15.16",
"version": "5.15.17",
"description": "The Qt SCXML module provides classes for embedding state machines created from State Chart XML (SCXML) files in Qt applications.",
"license": null,
"dependencies": [

View File

@ -1,6 +1,6 @@
{
"name": "qt5-sensors",
"version": "5.15.16",
"version": "5.15.17",
"description": "The Qt Sensors API provides access to sensor hardware via QML and C++ interfaces. The Qt Sensors API also provides a motion gesture recognition API for devices.",
"license": null,
"dependencies": [

View File

@ -1,6 +1,6 @@
{
"name": "qt5-serialbus",
"version": "5.15.16",
"version": "5.15.17",
"description": "The Qt Serial Bus API provides classes and functions to access the various industrial serial buses and protocols, such as CAN, ModBus, and others.",
"license": null,
"dependencies": [

View File

@ -1,6 +1,6 @@
{
"name": "qt5-serialport",
"version": "5.15.16",
"version": "5.15.17",
"description": "Qt5 Serial Port - provides access to hardware and virtual serial ports",
"license": null,
"dependencies": [

View File

@ -1,6 +1,6 @@
{
"name": "qt5-speech",
"version": "5.15.16",
"version": "5.15.17",
"description": "The Qt Speech module enables a Qt application to support accessibility features such as text-to-speech, which is useful for end-users who are visually challenged or cannot access the application for whatever reason.",
"license": null,
"dependencies": [

View File

@ -1,6 +1,6 @@
{
"name": "qt5-svg",
"version": "5.15.16",
"version": "5.15.17",
"description": "Qt SVG provides classes for rendering and displaying SVG drawings in widgets and on other paint devices.",
"license": null,
"dependencies": [

View File

@ -1,7 +1,6 @@
{
"name": "qt5-tools",
"version": "5.15.16",
"port-version": 1,
"version": "5.15.17",
"description": "A collection of tools and utilities that come with the Qt framework to assist developers in the creation, management, and deployment of Qt applications.",
"license": null,
"dependencies": [

View File

@ -1,6 +1,6 @@
{
"name": "qt5-translations",
"version": "5.15.16",
"version": "5.15.17",
"description": "Qt translations.",
"license": null,
"dependencies": [

View File

@ -1,6 +1,6 @@
{
"name": "qt5-virtualkeyboard",
"version": "5.15.16",
"version": "5.15.17",
"description": "The Qt Virtual Keyboard project provides an input framework and reference keyboard frontend for Qt 5 on Linux Desktop/X11, Windows Desktop, and Boot2Qt targets.",
"license": null,
"dependencies": [

View File

@ -1,6 +1,6 @@
{
"name": "qt5-wayland",
"version": "5.15.16",
"version": "5.15.17",
"description": "QtWayland is a Qt 5 module that wraps the functionality of Wayland.",
"license": null,
"supports": "linux",

View File

@ -1,6 +1,6 @@
{
"name": "qt5-webchannel",
"version": "5.15.16",
"version": "5.15.17",
"description": "Qt WebChannel enables peer-to-peer communication between a server (QML/C++ application) and a client (HTML/JavaScript or QML application).",
"license": null,
"dependencies": [

View File

@ -1,150 +0,0 @@
From f62990fb134b7e610502b6804945debaa51960a5 Mon Sep 17 00:00:00 2001
From: Koji Ishii <kojii@chromium.org>
Date: Fri, 9 Feb 2024 18:47:02 +0000
Subject: [PATCH] Support ICU 74 in `LazyTextBreakIterator`
This patch extends the `kBreakAllLineBreakClassTable` table
for 5 new LineBreak classes in ICU 74.
They are for Brahmic scripts, which "line breaks can occur at
the boundaries of any orthographic syllable"[1]. The
`break-all` has no additional break opportunities that all
entries are `0`.
This patch also adds `0` for 3 classes added in ICU 58[2],
instead of doing so in code, to make future additions
possible.
[1] https://unicode.org/reports/tr14/#BreakOpportunities
[2] https://chromiumcodereview.appspot.com/2440923002
Bug: 324419151
Change-Id: I8002edb927280f63b5b668b09076cc71feaeac3e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5279337
Auto-Submit: Koji Ishii <kojii@chromium.org>
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1258643}
---
.../platform/text/text_break_iterator.cc | 98 ++++++++++---------
1 file changed, 53 insertions(+), 45 deletions(-)
diff --git a/src/3rdparty/chromium/third_party/blink/renderer/platform/text/text_break_iterator.cc b/third_party/blink/renderer/platform/text/text_break_iterator.cc
index 703dc23990754..38ab94a0a460b 100644
--- a/src/3rdparty/chromium/third_party/blink/renderer/platform/text/text_break_iterator.cc
+++ b/src/3rdparty/chromium/third_party/blink/renderer/platform/text/text_break_iterator.cc
@@ -161,11 +161,7 @@ static const unsigned char kAsciiLineBreakTable[][(kAsciiLineBreakTableLastChar
};
// clang-format on
-#if U_ICU_VERSION_MAJOR_NUM >= 58
-#define BA_LB_COUNT (U_LB_COUNT - 3)
-#else
#define BA_LB_COUNT U_LB_COUNT
-#endif
// Line breaking table for CSS word-break: break-all. This table differs from
// asciiLineBreakTable in:
// - Indices are Line Breaking Classes defined in UAX#14 Unicode Line Breaking
@@ -174,47 +170,59 @@ static const unsigned char kAsciiLineBreakTable[][(kAsciiLineBreakTableLastChar
// normal line break, not "prohibit break."
// clang-format off
static const unsigned char kBreakAllLineBreakClassTable[][BA_LB_COUNT / 8 + 1] = {
- // XX AI AL B2 BA BB BK CB CL CM CR EX GL HY ID IN IS LF NS NU OP PO PR QU SA SG SP SY ZW NL WJ H2 H3 JL JT JV CP CJ HL RI
- { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // XX
- { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 1, 0, 1, 0), B(1, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0) }, // AI
- { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 1, 0, 1, 0), B(1, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0) }, // AL
- { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // B2
- { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 1, 0, 1, 0), B(1, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0) }, // BA
- { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // BB
- { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // BK
- { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // CB
- { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 0, 0, 1, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0) }, // CL
- { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // CM
- { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // CR
- { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 0, 1, 1, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0) }, // EX
- { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // GL
- { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 1, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // HY
- { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // ID
- { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // IN
- { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0) }, // IS
- { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // LF
- { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // NS
- { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 1, 0, 1, 0), B(1, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0) }, // NU
- { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // OP
- { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 0, 1, 1, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0) }, // PO
- { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // PR
- { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // QU
- { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 1, 0, 1, 0), B(1, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0) }, // SA
- { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // SG
- { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // SP
- { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 1, 0, 1, 0), B(1, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0) }, // SY
- { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // ZW
- { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // NL
- { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // WJ
- { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // H2
- { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // H3
- { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // JL
- { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // JT
- { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // JV
- { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 0, 0, 1, 0), B(1, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0) }, // CP
- { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // CJ
- { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 1, 0, 1, 0), B(1, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0) }, // HL
- { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // RI
+ // XX AI AL B2 BA BB BK CB CL CM CR EX GL HY ID IN IS LF NS NU OP PO PR QU SA SG SP SY ZW NL WJ H2 H3 JL JT JV CP CJ HL RI EB EM ZWJ AK AP AS VF VI
+ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // XX
+ { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 1, 0, 1, 0), B(1, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // AI
+ { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 1, 0, 1, 0), B(1, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // AL
+ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // B2
+ { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 1, 0, 1, 0), B(1, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // BA
+ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // BB
+ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // BK
+ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // CB
+ { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 0, 0, 1, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // CL
+ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // CM
+ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // CR
+ { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 0, 1, 1, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // EX
+ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // GL
+ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 1, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // HY
+ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // ID
+ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // IN
+ { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // IS
+ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // LF
+ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // NS
+ { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 1, 0, 1, 0), B(1, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // NU
+ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // OP
+ { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 0, 1, 1, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // PO
+ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // PR
+ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // QU
+ { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 1, 0, 1, 0), B(1, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // SA
+ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // SG
+ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // SP
+ { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 1, 0, 1, 0), B(1, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // SY
+ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // ZW
+ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // NL
+ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // WJ
+ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // H2
+ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // H3
+ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // JL
+ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // JT
+ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // JV
+ { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 0, 0, 1, 0), B(1, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // CP
+ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // CJ
+ { B(0, 1, 1, 0, 1, 0, 0, 0), B(0, 0, 0, 0, 0, 1, 0, 0), B(0, 0, 0, 1, 1, 0, 1, 0), B(1, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 1, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // HL
+ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // RI
+ // Added in ICU 58.
+ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // EB
+ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // EM
+ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // ZWJ
+#if U_ICU_VERSION_MAJOR_NUM >= 74
+ // Added in ICU 74. https://icu.unicode.org/download/74
+ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // AK
+ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // AP
+ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // AS
+ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // VF
+ { B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0), B(0, 0, 0, 0, 0, 0, 0, 0) }, // VI
+#endif // U_ICU_VERSION_MAJOR_NUM >= 74
};
// clang-format on
--
2.39.3

View File

@ -19,12 +19,12 @@ include("${CURRENT_INSTALLED_DIR}/share/qt5/qt_port_functions.cmake")
vcpkg_find_acquire_program(FLEX)
vcpkg_find_acquire_program(BISON)
vcpkg_find_acquire_program(GPERF)
vcpkg_find_acquire_program(PYTHON2)
vcpkg_find_acquire_program(PYTHON3)
vcpkg_find_acquire_program(NINJA)
set(NODEJS "${CURRENT_HOST_INSTALLED_DIR}/tools/node/node${VCPKG_HOST_EXECUTABLE_SUFFIX}")
get_filename_component(FLEX_DIR "${FLEX}" DIRECTORY )
get_filename_component(BISON_DIR "${BISON}" DIRECTORY )
get_filename_component(PYTHON2_DIR "${PYTHON2}" DIRECTORY )
get_filename_component(PYTHON2_DIR "${PYTHON3}" DIRECTORY )
get_filename_component(GPERF_DIR "${GPERF}" DIRECTORY )
get_filename_component(NINJA_DIR "${NINJA}" DIRECTORY )
get_filename_component(NODEJS_DIR "${NODEJS}" DIRECTORY )
@ -40,7 +40,7 @@ endif()
vcpkg_add_to_path(PREPEND "${FLEX_DIR}")
vcpkg_add_to_path(PREPEND "${BISON_DIR}")
vcpkg_add_to_path(PREPEND "${PYTHON2_DIR}")
vcpkg_add_to_path(PREPEND "${PYTHON3_DIR}")
vcpkg_add_to_path(PREPEND "${GPERF_DIR}")
vcpkg_add_to_path(PREPEND "${NINJA_DIR}")
vcpkg_add_to_path(PREPEND "${NODEJS_DIR}")
@ -58,16 +58,16 @@ if(ninja_version VERSION_GREATER_EQUAL "1.12.1")
)
endif()
set(PATCHES common.pri.patch
gl.patch
build_1.patch
0001-Support-ICU-74-in-LazyTextBreakIterator.patch
workaround-protobuf-issue.patch
0001-Fix-jumbo-build-error-due-to-ResolveColor-redefiniti.patch
fix-spellcheck-buildflags.patch
)
set(PATCHES
common.pri.patch
gl.patch
build_1.patch
workaround-protobuf-issue.patch
0001-Fix-jumbo-build-error-due-to-ResolveColor-redefiniti.patch
fix-spellcheck-buildflags.patch
)
set(OPTIONS)
set(OPTIONS "-webengine-python-version" "python3")
if("proprietary-codecs" IN_LIST FEATURES)
list(APPEND OPTIONS "-webengine-proprietary-codecs")
endif()

View File

@ -1,7 +1,6 @@
{
"name": "qt5-webengine",
"version": "5.15.16",
"port-version": 3,
"version": "5.15.17",
"description": "Qt WebEngine provides functionality for rendering regions of dynamic web content.",
"license": null,
"supports": "!static",

View File

@ -1,6 +1,6 @@
{
"name": "qt5-webglplugin",
"version": "5.15.16",
"version": "5.15.17",
"description": "The Qt WebGL Plugin module enables Qt applications to be run in web browsers through WebGL streaming.",
"license": null,
"dependencies": [

View File

@ -1,6 +1,6 @@
{
"name": "qt5-websockets",
"version": "5.15.16",
"version": "5.15.17",
"description": "The Qt WebSockets module provides C++ and QML interfaces that enable Qt applications to act as a server that can process WebSocket requests, or a client that can consume data received from the server, or both.",
"license": null,
"dependencies": [

View File

@ -1,6 +1,6 @@
{
"name": "qt5-webview",
"version": "5.15.16",
"version": "5.15.17",
"description": "Qt WebView provides a way to display web content in a QML application without necessarily including a full web browser stack by using native APIs where it makes sense.",
"license": null,
"dependencies": [

View File

@ -1,6 +1,6 @@
{
"name": "qt5-winextras",
"version": "5.15.16",
"version": "5.15.17",
"description": "Qt Windows Extras provide classes and functions that enable you to use miscellaneous Windows-specific functions. For example, you can convert Qt objects to Windows object handles and manipulate DWM glass frames.",
"license": null,
"supports": "windows",

View File

@ -1,6 +1,6 @@
{
"name": "qt5-x11extras",
"version": "5.15.16",
"version": "5.15.17",
"description": "Qt X11 Extras enables the Qt programmer to write applications for the Linux/X11 platform.",
"license": null,
"supports": "!windows",

View File

@ -1,6 +1,6 @@
{
"name": "qt5-xmlpatterns",
"version": "5.15.16",
"version": "5.15.17",
"description": "The Qt XML Patterns module provides support for XPath, XQuery, XSLT, and XML Schema validation.",
"license": null,
"dependencies": [

View File

@ -1,7 +1,6 @@
{
"name": "qt5",
"version": "5.15.16",
"port-version": 1,
"version": "5.15.17",
"description": "A cross-platform application and UI framework.",
"homepage": "https://www.qt.io/",
"license": null,

View File

@ -411,7 +411,7 @@ qt-advanced-docking-system(android)=fail
qt5-base(arm & windows & !uwp)=fail
qt5-canvas3d=skip # Skip deprecated Qt module (remove after 1 year or longer due to vcpkg upgrade not handling removed ports correctly)
qt5-wayland:x64-osx=fail # Missing system libraries
qt5-webengine = fail # Missing prerequisites for CI success
qt5-webengine(!(arm & windows) & !uwp) = fail # Missing prerequisites for CI success
qt5-x11extras(osx)=fail # Missing system libraries
qt5-x11extras(windows)=fail # Missing libraries
qtmultimedia(android)=fail
@ -1660,9 +1660,9 @@ qt3d(uwp) = cascade
qt5:arm64-uwp = cascade
qt5:arm64-windows = cascade
qt5:x64-uwp = cascade
qt5[all,essentials,script,tools,translations,wayland,webengine]:x86-windows = cascade
qt5[all,wayland,webengine]:x86-windows = cascade
qt5[wayland]:arm64-osx = cascade
qt5[wayland,tools,script,translations,essentials,webengine]:x64-windows = cascade
qt5[wayland,webengine]:x64-windows = cascade
qt5[wayland,webengine]:x64-windows-static = cascade
qt5[wayland,webengine]:x64-windows-static-md = cascade
qt5[webengine]:arm64-osx = cascade
@ -1704,8 +1704,6 @@ qt5-remoteobjects:arm64-uwp = cascade
qt5-remoteobjects:x64-uwp = cascade
qt5-script:arm64-uwp = cascade
qt5-script:x64-uwp = cascade
qt5-script:x64-windows = cascade
qt5-script:x86-windows = cascade
qt5-scxml:arm64-uwp = cascade
qt5-scxml:arm64-windows = cascade
qt5-scxml:x64-uwp = cascade
@ -1721,16 +1719,13 @@ qt5-svg:arm64-uwp = cascade
qt5-svg:x64-uwp = cascade
qt5-tools:arm64-uwp = cascade
qt5-tools:x64-uwp = cascade
qt5-tools:x64-windows = cascade
qt5-tools:x86-windows = cascade
qt5-translations:arm64-uwp = cascade
qt5-translations:x64-uwp = cascade
qt5-translations:x64-windows = cascade
qt5-translations:x86-windows = cascade
qt5-virtualkeyboard:arm64-uwp = cascade
qt5-virtualkeyboard:x64-uwp = cascade
qt5-webchannel:arm64-uwp = cascade
qt5-webchannel:x64-uwp = cascade
qt5-webengine((arm & windows) | uwp) = cascade
qt5-webglplugin:arm64-uwp = cascade
qt5-webglplugin:x64-uwp = cascade
qt5-websockets:arm64-uwp = cascade
@ -2168,8 +2163,8 @@ poco[core,mariadb,mysql] = options # You can not install mariadb and mysql at th
ppqsort[openmp](osx) = feature-fails # No openmp on osx
qt3d[animation] = options # is a requirement, see https://github.com/microsoft/vcpkg/issues/31336
qt3d[extras] = options # is a requirement, see https://github.com/microsoft/vcpkg/issues/31336
qt5-base[cups](linux) = feature-fails # requires CUPS system libs
qt5-base[vulkan](osx) = feature-fails # needs MolkenVK
qt5-base[vulkan](windows) = feature-fails # needs configuration
qt5compat[iconv](!uwp) = feature-fails # requires qtbase without icu
qtbase[cups](linux) = feature-fails # requires CUPS system libs
qtbase[gles3](android) = feature-fails

View File

@ -7729,67 +7729,67 @@
"port-version": 0
},
"qt5": {
"baseline": "5.15.16",
"port-version": 1
"baseline": "5.15.17",
"port-version": 0
},
"qt5-3d": {
"baseline": "5.15.16",
"baseline": "5.15.17",
"port-version": 0
},
"qt5-activeqt": {
"baseline": "5.15.16",
"baseline": "5.15.17",
"port-version": 0
},
"qt5-androidextras": {
"baseline": "5.15.16",
"baseline": "5.15.17",
"port-version": 0
},
"qt5-base": {
"baseline": "5.15.16",
"port-version": 5
"baseline": "5.15.17",
"port-version": 0
},
"qt5-canvas3d": {
"baseline": "0",
"port-version": 3
},
"qt5-charts": {
"baseline": "5.15.16",
"baseline": "5.15.17",
"port-version": 0
},
"qt5-connectivity": {
"baseline": "5.15.16",
"baseline": "5.15.17",
"port-version": 0
},
"qt5-datavis3d": {
"baseline": "5.15.16",
"baseline": "5.15.17",
"port-version": 0
},
"qt5-declarative": {
"baseline": "5.15.16",
"baseline": "5.15.17",
"port-version": 0
},
"qt5-doc": {
"baseline": "5.15.16",
"baseline": "5.15.17",
"port-version": 0
},
"qt5-gamepad": {
"baseline": "5.15.16",
"baseline": "5.15.17",
"port-version": 0
},
"qt5-graphicaleffects": {
"baseline": "5.15.16",
"baseline": "5.15.17",
"port-version": 0
},
"qt5-imageformats": {
"baseline": "5.15.16",
"baseline": "5.15.17",
"port-version": 0
},
"qt5-location": {
"baseline": "5.15.16",
"baseline": "5.15.17",
"port-version": 0
},
"qt5-macextras": {
"baseline": "5.15.16",
"baseline": "5.15.17",
"port-version": 0
},
"qt5-modularscripts": {
@ -7797,19 +7797,19 @@
"port-version": 1
},
"qt5-mqtt": {
"baseline": "5.15.16",
"baseline": "5.15.17",
"port-version": 0
},
"qt5-multimedia": {
"baseline": "5.15.16",
"baseline": "5.15.17",
"port-version": 0
},
"qt5-networkauth": {
"baseline": "5.15.16",
"baseline": "5.15.17",
"port-version": 0
},
"qt5-purchasing": {
"baseline": "5.15.16",
"baseline": "5.15.17",
"port-version": 0
},
"qt5-quick3d": {
@ -7817,11 +7817,11 @@
"port-version": 0
},
"qt5-quickcontrols": {
"baseline": "5.15.16",
"baseline": "5.15.17",
"port-version": 0
},
"qt5-quickcontrols2": {
"baseline": "5.15.16",
"baseline": "5.15.17",
"port-version": 0
},
"qt5-quicktimeline": {
@ -7829,83 +7829,83 @@
"port-version": 0
},
"qt5-remoteobjects": {
"baseline": "5.15.16",
"baseline": "5.15.17",
"port-version": 0
},
"qt5-script": {
"baseline": "5.15.16",
"baseline": "5.15.17",
"port-version": 0
},
"qt5-scxml": {
"baseline": "5.15.16",
"baseline": "5.15.17",
"port-version": 0
},
"qt5-sensors": {
"baseline": "5.15.16",
"baseline": "5.15.17",
"port-version": 0
},
"qt5-serialbus": {
"baseline": "5.15.16",
"baseline": "5.15.17",
"port-version": 0
},
"qt5-serialport": {
"baseline": "5.15.16",
"baseline": "5.15.17",
"port-version": 0
},
"qt5-speech": {
"baseline": "5.15.16",
"baseline": "5.15.17",
"port-version": 0
},
"qt5-svg": {
"baseline": "5.15.16",
"baseline": "5.15.17",
"port-version": 0
},
"qt5-tools": {
"baseline": "5.15.16",
"port-version": 1
"baseline": "5.15.17",
"port-version": 0
},
"qt5-translations": {
"baseline": "5.15.16",
"baseline": "5.15.17",
"port-version": 0
},
"qt5-virtualkeyboard": {
"baseline": "5.15.16",
"baseline": "5.15.17",
"port-version": 0
},
"qt5-wayland": {
"baseline": "5.15.16",
"baseline": "5.15.17",
"port-version": 0
},
"qt5-webchannel": {
"baseline": "5.15.16",
"baseline": "5.15.17",
"port-version": 0
},
"qt5-webengine": {
"baseline": "5.15.16",
"port-version": 3
"baseline": "5.15.17",
"port-version": 0
},
"qt5-webglplugin": {
"baseline": "5.15.16",
"baseline": "5.15.17",
"port-version": 0
},
"qt5-websockets": {
"baseline": "5.15.16",
"baseline": "5.15.17",
"port-version": 0
},
"qt5-webview": {
"baseline": "5.15.16",
"baseline": "5.15.17",
"port-version": 0
},
"qt5-winextras": {
"baseline": "5.15.16",
"baseline": "5.15.17",
"port-version": 0
},
"qt5-x11extras": {
"baseline": "5.15.16",
"baseline": "5.15.17",
"port-version": 0
},
"qt5-xmlpatterns": {
"baseline": "5.15.16",
"baseline": "5.15.17",
"port-version": 0
},
"qt5compat": {

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "451358dcd8293f8fb38d088d6cf7f3e0c7be4d0a",
"version": "5.15.17",
"port-version": 0
},
{
"git-tree": "085d0f12be25c63d602297656677a3f5e55b2506",
"version": "5.15.16",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "f0f79c438e1be5143564116b83a0dcf784d7e7b3",
"version": "5.15.17",
"port-version": 0
},
{
"git-tree": "f991091bd4940f169301aa1c95eab8c6063faf54",
"version": "5.15.16",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "0f22b29126cee3109ca2b378d5451c8f2d0f48d3",
"version": "5.15.17",
"port-version": 0
},
{
"git-tree": "4080b98e7deb0dbe056edbf68e13fc1a224a5095",
"version": "5.15.16",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "e2c35de318d30fc18437711fc0b0e6fdd9f6bb90",
"version": "5.15.17",
"port-version": 0
},
{
"git-tree": "73ae35018b097dabc064a6c7683af16d006f18f5",
"version": "5.15.16",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "19f66b34007cedfb495dfd5e0571c363a45be5e6",
"version": "5.15.17",
"port-version": 0
},
{
"git-tree": "103d0efe617761c996e7dd7ac259a47c54bdd537",
"version": "5.15.16",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "a0c206f69bf495e8234137c888dbe196927b999f",
"version": "5.15.17",
"port-version": 0
},
{
"git-tree": "e1427560b36df1131cc3a5e401ad155e29fa940f",
"version": "5.15.16",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "c433ff45bfeab7168f8c3c86b456c0fa51a7c9a8",
"version": "5.15.17",
"port-version": 0
},
{
"git-tree": "85a014e6d432d04e4b417b48ca48b19a75303ab9",
"version": "5.15.16",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "d86693f2a66ae2a488f1664f79831907983f1dd5",
"version": "5.15.17",
"port-version": 0
},
{
"git-tree": "b221e8a2b8b92a7321a3e497dbe9dbf7af0872c8",
"version": "5.15.16",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "0caca6302e45db532ce3ebb6a49edbe55d012267",
"version": "5.15.17",
"port-version": 0
},
{
"git-tree": "b5e19e4bfd58d8360153eee05cea98c8940737ca",
"version": "5.15.16",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "c34c2d8f0011e509c17795f7c269bf4b8b16d314",
"version": "5.15.17",
"port-version": 0
},
{
"git-tree": "c0c5f9452a34705d1921b74845b136ae9350ad82",
"version": "5.15.16",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "65798a0ba62b7453d2e4112ff0a5579cf2c4fa5c",
"version": "5.15.17",
"port-version": 0
},
{
"git-tree": "2f470153ac34334631257a09143562dbbb5683c4",
"version": "5.15.16",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "5de7ac2cf0e66524c59db9a411ff9f7ee4811b45",
"version": "5.15.17",
"port-version": 0
},
{
"git-tree": "ec7911ed48d7606ddbb183272057ad8d268c9293",
"version": "5.15.16",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "daca43cb0f4a73337690ca6e8852cb302d66130d",
"version": "5.15.17",
"port-version": 0
},
{
"git-tree": "bd04e516a9dd43e1089611fe978f1fdf7103e839",
"version": "5.15.16",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "3c95f19c0ed81bde29ba04b13393ab7503c3e0ca",
"version": "5.15.17",
"port-version": 0
},
{
"git-tree": "6ef9c410db63859557242c57fc0ae75138e42307",
"version": "5.15.16",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "f119de078120f64a669d7f897af6f9be0a214fd5",
"version": "5.15.17",
"port-version": 0
},
{
"git-tree": "923780f633eeb31f4f7b850a6280909bcff37952",
"version": "5.15.16",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "fdadbd54c3afcd33692be23ce1745bbc8e5203b9",
"version": "5.15.17",
"port-version": 0
},
{
"git-tree": "83530203612f2cb5b1fb3b2a988bef85d06ef43d",
"version": "5.15.16",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "8c9344d60cfdc2f237c5d49fd67708f412793711",
"version": "5.15.17",
"port-version": 0
},
{
"git-tree": "833e30171f4535651d788a510a4206f137b4271a",
"version": "5.15.16",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "2cdd278a77e8913ad158bead2289eddd7e4fa49e",
"version": "5.15.17",
"port-version": 0
},
{
"git-tree": "955d76b06035970ca1533d19a5a03e95b2324e76",
"version": "5.15.16",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "db450ae4bfe05286f9f36361d0e702c2feea7ae2",
"version": "5.15.17",
"port-version": 0
},
{
"git-tree": "46cc1a78b410f6ef6c6c63bcb64233e35841de44",
"version": "5.15.16",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "9ab212fa50eccd420fb5c17527a6d686399b60ac",
"version": "5.15.17",
"port-version": 0
},
{
"git-tree": "90297e8ad722045df958c28347b29a312ab27755",
"version": "5.15.16",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "6d966279feac0edd1fe814ccf7df3b2f82b92288",
"version": "5.15.17",
"port-version": 0
},
{
"git-tree": "e9a4992d99db03ee67f9b559b940186da082d941",
"version": "5.15.16",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "de3b51bb156101996153538b4b8d8b3d8ebb307a",
"version": "5.15.17",
"port-version": 0
},
{
"git-tree": "58a1f546036451e132628a09ae7b44172b390bb6",
"version": "5.15.16",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "b0c52f6b4ef9119367a5866ff4859721bc7b830a",
"version": "5.15.17",
"port-version": 0
},
{
"git-tree": "574b7a4e7470fe1176e62d39bca5c32e8c5e24fc",
"version": "5.15.16",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "eb4173335b0146cdc4c861587a0bdc5b015a26d8",
"version": "5.15.17",
"port-version": 0
},
{
"git-tree": "0fa3488f59c586350479848bc63cf04fa4ae30b1",
"version": "5.15.16",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "49bfbf6d4d3db2a872cc04630620064589af3df1",
"version": "5.15.17",
"port-version": 0
},
{
"git-tree": "13b0e0d275a794621c7f7900d8dd2ec38cbbed13",
"version": "5.15.16",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "fbc9af0c0600fd716c0264ecefc3032fcacffbb2",
"version": "5.15.17",
"port-version": 0
},
{
"git-tree": "8d8151331fb566580b7a145b43cb5860d4592a1d",
"version": "5.15.16",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "5203d09677488455e6441eb10f212529f8b89a30",
"version": "5.15.17",
"port-version": 0
},
{
"git-tree": "cc4794ae54e576001b5cd93c5c204e41e3618459",
"version": "5.15.16",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "fb56b0e565d1f165a127c641255216da24925a14",
"version": "5.15.17",
"port-version": 0
},
{
"git-tree": "b463bc31d7785958fafec93f49db574b737ee61a",
"version": "5.15.16",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "718839eb66c9ec8b6fae3bc50cfc263e63f874c2",
"version": "5.15.17",
"port-version": 0
},
{
"git-tree": "2b361c851974436c968f0f17e7a7e544ab9f64cc",
"version": "5.15.16",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "28428dcdcdfeed6529ccb3b374c5eb49fb9e59fd",
"version": "5.15.17",
"port-version": 0
},
{
"git-tree": "5bfe13e093858096972a7ae2fd3cf95e9dfbee05",
"version": "5.15.16",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "8b59bed7fce0c717bf421aa172a8c9bc76a90297",
"version": "5.15.17",
"port-version": 0
},
{
"git-tree": "cbf61dcc7c0dbdb9b41f5bae9e58c174bd1f2f96",
"version": "5.15.16",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "d6f93e1f06a3101c5f37e75c139d6fb5b9b24aaa",
"version": "5.15.17",
"port-version": 0
},
{
"git-tree": "fdf5bce00a34c9062509900ce9ba89fde6982533",
"version": "5.15.16",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "a3c7908a0cb4f6e0ce71e1c9628a7c308dbd2690",
"version": "5.15.17",
"port-version": 0
},
{
"git-tree": "7f98e1ba5729665bff689a7e3e115788493c3edf",
"version": "5.15.16",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "9beec0928dbddfb61010e6d52eb3025200f6a61c",
"version": "5.15.17",
"port-version": 0
},
{
"git-tree": "477c867612027fd5469b5279a37f4d22969bfdfd",
"version": "5.15.16",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "e505f8e87f19483a8db3e8b282a28edd4ccb8d87",
"version": "5.15.17",
"port-version": 0
},
{
"git-tree": "3c20a85d4bba9b9ec194798189a7259ba0cacbab",
"version": "5.15.16",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "f4a35eea94ef19ea4f531dc71379056699a38e0c",
"version": "5.15.17",
"port-version": 0
},
{
"git-tree": "74b2f0b75ad4f77ad3068bc48e4b9017ba198a80",
"version": "5.15.16",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "4d207991c04c3dc9746f3880decdc3a42f136f0d",
"version": "5.15.17",
"port-version": 0
},
{
"git-tree": "b5a59890aebeb8b5ef987524572d80a060a7528f",
"version": "5.15.16",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "327ad09e02d9667a571bd659319c234953952cd1",
"version": "5.15.17",
"port-version": 0
},
{
"git-tree": "693e3b4ebe95a20e971fd18aa892c156a105b1aa",
"version": "5.15.16",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "46735e910f4bea3a68e3299236b0d6d3d57148b3",
"version": "5.15.17",
"port-version": 0
},
{
"git-tree": "5dd90361394b224e8a91870c630ec37a7087d4f2",
"version": "5.15.16",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "7c9a57d9b380c4cd4a57c5401e11b59db7401e13",
"version": "5.15.17",
"port-version": 0
},
{
"git-tree": "5590c19f8610655055402eae3a9414885b0a9dec",
"version": "5.15.16",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "0c89fd4343530bfc5cff234572a0238e7c95241e",
"version": "5.15.17",
"port-version": 0
},
{
"git-tree": "544f7aa5b583b45b1900d0b775d06920257b0634",
"version": "5.15.16",