diff --git a/.gitmodules b/.gitmodules index f8c07ce3887..d96a475dc37 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,40 +1,40 @@ [submodule "qtbase"] path = qtbase url = ../qtbase.git - branch = dev + branch = 6.9.1 status = essential [submodule "qtsvg"] depends = qtbase path = qtsvg url = ../qtsvg.git - branch = dev + branch = 6.9.1 status = addon [submodule "qtdeclarative"] depends = qtbase recommends = qtimageformats qtshadertools qtsvg qtlanguageserver path = qtdeclarative url = ../qtdeclarative.git - branch = dev + branch = 6.9.1 status = essential [submodule "qtactiveqt"] depends = qtbase path = qtactiveqt url = ../qtactiveqt.git - branch = dev + branch = 6.9.1 status = addon [submodule "qtmultimedia"] depends = qtbase qtshadertools recommends = qtdeclarative qtquick3d path = qtmultimedia url = ../qtmultimedia.git - branch = dev + branch = 6.9.1 status = addon [submodule "qttools"] depends = qtbase recommends = qtdeclarative qtactiveqt path = qttools url = ../qttools.git - branch = dev + branch = 6.9.1 status = essential [submodule "qtxmlpatterns"] depends = qtbase @@ -47,7 +47,7 @@ depends = qttools path = qttranslations url = ../qttranslations.git - branch = dev + branch = 6.9.1 status = essential priority = 30 [submodule "qtdoc"] @@ -55,7 +55,7 @@ recommends = qtmultimedia qtshadertools qtwebengine path = qtdoc url = ../qtdoc.git - branch = dev + branch = 6.9.1 status = essential priority = 40 [submodule "qtrepotools"] @@ -68,7 +68,7 @@ depends = qtbase path = qtqa url = ../qtqa.git - branch = dev + branch = 6.9.1 status = essential priority = 50 [submodule "qtlocation"] @@ -76,21 +76,21 @@ recommends = qtdeclarative path = qtlocation url = ../qtlocation.git - branch = dev + branch = 6.9.1 status = preview [submodule "qtpositioning"] depends = qtbase recommends = qtdeclarative qtserialport path = qtpositioning url = ../qtpositioning.git - branch = dev + branch = 6.9.1 status = addon [submodule "qtsensors"] depends = qtbase recommends = qtdeclarative path = qtsensors url = ../qtsensors.git - branch = dev + branch = 6.9.1 status = addon [submodule "qtsystems"] depends = qtbase @@ -117,61 +117,61 @@ recommends = qtdeclarative path = qtconnectivity url = ../qtconnectivity.git - branch = dev + branch = 6.9.1 status = addon [submodule "qtwayland"] depends = qtbase recommends = qtdeclarative path = qtwayland url = ../qtwayland.git - branch = dev + branch = 6.9.1 status = addon [submodule "qt3d"] depends = qtbase recommends = qtdeclarative qtshadertools qtmultimedia path = qt3d url = ../qt3d.git - branch = dev + branch = 6.9.1 status = deprecated [submodule "qtimageformats"] depends = qtbase path = qtimageformats url = ../qtimageformats.git - branch = dev + branch = 6.9.1 status = addon [submodule "qtserialbus"] depends = qtbase recommends = qtserialport path = qtserialbus url = ../qtserialbus.git - branch = dev + branch = 6.9.1 status = addon [submodule "qtserialport"] depends = qtbase path = qtserialport url = ../qtserialport.git - branch = dev + branch = 6.9.1 status = addon [submodule "qtwebsockets"] depends = qtbase recommends = qtdeclarative path = qtwebsockets url = ../qtwebsockets.git - branch = dev + branch = 6.9.1 status = addon [submodule "qtwebchannel"] depends = qtbase recommends = qtdeclarative qtwebsockets path = qtwebchannel url = ../qtwebchannel.git - branch = dev + branch = 6.9.1 status = addon [submodule "qtwebengine"] depends = qtdeclarative recommends = qtwebchannel qttools qtpositioning path = qtwebengine url = ../qtwebengine.git - branch = dev + branch = 6.9.1 status = addon priority = 10 [submodule "qtcanvas3d"] @@ -185,28 +185,28 @@ recommends = qtwebengine path = qtwebview url = ../qtwebview.git - branch = dev + branch = 6.9.1 status = addon [submodule "qtcharts"] depends = qtbase recommends = qtdeclarative qtmultimedia path = qtcharts url = ../qtcharts.git - branch = dev + branch = 6.9.1 status = addon [submodule "qtdatavis3d"] depends = qtbase recommends = qtdeclarative qtmultimedia path = qtdatavis3d url = ../qtdatavis3d.git - branch = dev + branch = 6.9.1 status = addon [submodule "qtvirtualkeyboard"] depends = qtbase qtdeclarative qtsvg recommends = qtmultimedia path = qtvirtualkeyboard url = ../qtvirtualkeyboard.git - branch = dev + branch = 6.9.1 status = addon [submodule "qtgamepad"] depends = qtbase @@ -219,27 +219,27 @@ depends = qtbase qtdeclarative path = qtscxml url = ../qtscxml.git - branch = dev + branch = 6.9.1 status = addon [submodule "qtspeech"] depends = qtbase qtmultimedia recommends = qtdeclarative path = qtspeech url = ../qtspeech.git - branch = dev + branch = 6.9.1 status = addon [submodule "qtnetworkauth"] depends = qtbase path = qtnetworkauth url = ../qtnetworkauth.git - branch = dev + branch = 6.9.1 status = addon [submodule "qtremoteobjects"] depends = qtbase recommends = qtdeclarative path = qtremoteobjects url = ../qtremoteobjects.git - branch = dev + branch = 6.9.1 status = addon [submodule "qtwebglplugin"] depends = qtbase qtwebsockets @@ -252,88 +252,88 @@ depends = qtbase qtdeclarative path = qtlottie url = ../qtlottie.git - branch = dev + branch = 6.9.1 status = addon [submodule "qtquicktimeline"] depends = qtbase qtdeclarative path = qtquicktimeline url = ../qtquicktimeline - branch = dev + branch = 6.9.1 status = addon [submodule "qtquick3d"] depends = qtbase qtdeclarative qtshadertools recommends = qtquicktimeline path = qtquick3d url = ../qtquick3d.git - branch = dev + branch = 6.9.1 status = addon [submodule "qtshadertools"] depends = qtbase path = qtshadertools url = ../qtshadertools.git - branch = dev + branch = 6.9.1 status = addon [submodule "qt5compat"] depends = qtbase qtdeclarative path = qt5compat url = ../qt5compat.git - branch = dev + branch = 6.9.1 status = deprecated [submodule "qtcoap"] depends = qtbase path = qtcoap url = ../qtcoap.git - branch = dev + branch = 6.9.1 status = addon [submodule "qtmqtt"] depends = qtbase qtdeclarative recommends = qtwebsockets path = qtmqtt url = ../qtmqtt.git - branch = dev + branch = 6.9.1 status = addon [submodule "qtopcua"] depends = qtbase qtdeclarative path = qtopcua url = ../qtopcua.git - branch = dev + branch = 6.9.1 status = addon [submodule "qtlanguageserver"] depends = qtbase path = qtlanguageserver url = ../qtlanguageserver.git - branch = dev + branch = 6.9.1 status = preview [submodule "qthttpserver"] depends = qtbase recommends = qtwebsockets path = qthttpserver url = ../qthttpserver.git - branch = dev + branch = 6.9.1 status = addon [submodule "qtquick3dphysics"] depends = qtbase qtdeclarative qtquick3d qtshadertools path = qtquick3dphysics url = ../qtquick3dphysics.git - branch = dev + branch = 6.9.1 status = addon [submodule "qtgrpc"] depends = qtbase recommends = qtdeclarative path = qtgrpc url = ../qtgrpc.git - branch = dev + branch = 6.9.1 status = addon [submodule "qtquickeffectmaker"] depends = qtbase qtdeclarative qtshadertools recommends = qtquick3d path = qtquickeffectmaker url = ../qtquickeffectmaker.git - branch = dev + branch = 6.9.1 status = addon [submodule "qtgraphs"] depends = qtbase qtdeclarative qtquick3d path = qtgraphs url = ../qtgraphs.git - branch = dev + branch = 6.9.1 status = addon diff --git a/.gitreview b/.gitreview new file mode 100644 index 00000000000..69388ea438a --- /dev/null +++ b/.gitreview @@ -0,0 +1,4 @@ +[gerrit] +host=codereview.qt-project.org +project=qt/qt5 +defaultbranch=dev diff --git a/CMakeLists.txt b/CMakeLists.txt index b163500cc21..0247f67e418 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,9 +16,13 @@ project(Qt VERSION "${QT_REPO_MODULE_VERSION}" DESCRIPTION "Qt Libraries" HOMEPAGE_URL "https://qt.io/" - LANGUAGES CXX C ASM + LANGUAGES CXX C ) +if(UNIX AND NOT ANDROID) + enable_language(ASM) +endif() + qt_internal_top_level_setup_after_project() list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") diff --git a/LICENSES/BSD-3-Clause.txt b/LICENSES/BSD-3-Clause.txt new file mode 100644 index 00000000000..b91bbd89468 --- /dev/null +++ b/LICENSES/BSD-3-Clause.txt @@ -0,0 +1,9 @@ +Copyright (c) . + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/LICENSES/GFDL-1.3-no-invariants-only.txt b/LICENSES/GFDL-1.3-no-invariants-only.txt new file mode 100644 index 00000000000..857214dd845 --- /dev/null +++ b/LICENSES/GFDL-1.3-no-invariants-only.txt @@ -0,0 +1,451 @@ + + GNU Free Documentation License + Version 1.3, 3 November 2008 + + + Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. + + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +0. PREAMBLE + +The purpose of this License is to make a manual, textbook, or other +functional and useful document "free" in the sense of freedom: to +assure everyone the effective freedom to copy and redistribute it, +with or without modifying it, either commercially or noncommercially. +Secondarily, this License preserves for the author and publisher a way +to get credit for their work, while not being considered responsible +for modifications made by others. + +This License is a kind of "copyleft", which means that derivative +works of the document must themselves be free in the same sense. It +complements the GNU General Public License, which is a copyleft +license designed for free software. + +We have designed this License in order to use it for manuals for free +software, because free software needs free documentation: a free +program should come with manuals providing the same freedoms that the +software does. But this License is not limited to software manuals; +it can be used for any textual work, regardless of subject matter or +whether it is published as a printed book. We recommend this License +principally for works whose purpose is instruction or reference. + + +1. APPLICABILITY AND DEFINITIONS + +This License applies to any manual or other work, in any medium, that +contains a notice placed by the copyright holder saying it can be +distributed under the terms of this License. Such a notice grants a +world-wide, royalty-free license, unlimited in duration, to use that +work under the conditions stated herein. The "Document", below, +refers to any such manual or work. Any member of the public is a +licensee, and is addressed as "you". You accept the license if you +copy, modify or distribute the work in a way requiring permission +under copyright law. + +A "Modified Version" of the Document means any work containing the +Document or a portion of it, either copied verbatim, or with +modifications and/or translated into another language. + +A "Secondary Section" is a named appendix or a front-matter section of +the Document that deals exclusively with the relationship of the +publishers or authors of the Document to the Document's overall +subject (or to related matters) and contains nothing that could fall +directly within that overall subject. (Thus, if the Document is in +part a textbook of mathematics, a Secondary Section may not explain +any mathematics.) The relationship could be a matter of historical +connection with the subject or with related matters, or of legal, +commercial, philosophical, ethical or political position regarding +them. + +The "Invariant Sections" are certain Secondary Sections whose titles +are designated, as being those of Invariant Sections, in the notice +that says that the Document is released under this License. If a +section does not fit the above definition of Secondary then it is not +allowed to be designated as Invariant. The Document may contain zero +Invariant Sections. If the Document does not identify any Invariant +Sections then there are none. + +The "Cover Texts" are certain short passages of text that are listed, +as Front-Cover Texts or Back-Cover Texts, in the notice that says that +the Document is released under this License. A Front-Cover Text may +be at most 5 words, and a Back-Cover Text may be at most 25 words. + +A "Transparent" copy of the Document means a machine-readable copy, +represented in a format whose specification is available to the +general public, that is suitable for revising the document +straightforwardly with generic text editors or (for images composed of +pixels) generic paint programs or (for drawings) some widely available +drawing editor, and that is suitable for input to text formatters or +for automatic translation to a variety of formats suitable for input +to text formatters. A copy made in an otherwise Transparent file +format whose markup, or absence of markup, has been arranged to thwart +or discourage subsequent modification by readers is not Transparent. +An image format is not Transparent if used for any substantial amount +of text. A copy that is not "Transparent" is called "Opaque". + +Examples of suitable formats for Transparent copies include plain +ASCII without markup, Texinfo input format, LaTeX input format, SGML +or XML using a publicly available DTD, and standard-conforming simple +HTML, PostScript or PDF designed for human modification. Examples of +transparent image formats include PNG, XCF and JPG. Opaque formats +include proprietary formats that can be read and edited only by +proprietary word processors, SGML or XML for which the DTD and/or +processing tools are not generally available, and the +machine-generated HTML, PostScript or PDF produced by some word +processors for output purposes only. + +The "Title Page" means, for a printed book, the title page itself, +plus such following pages as are needed to hold, legibly, the material +this License requires to appear in the title page. For works in +formats which do not have any title page as such, "Title Page" means +the text near the most prominent appearance of the work's title, +preceding the beginning of the body of the text. + +The "publisher" means any person or entity that distributes copies of +the Document to the public. + +A section "Entitled XYZ" means a named subunit of the Document whose +title either is precisely XYZ or contains XYZ in parentheses following +text that translates XYZ in another language. (Here XYZ stands for a +specific section name mentioned below, such as "Acknowledgements", +"Dedications", "Endorsements", or "History".) To "Preserve the Title" +of such a section when you modify the Document means that it remains a +section "Entitled XYZ" according to this definition. + +The Document may include Warranty Disclaimers next to the notice which +states that this License applies to the Document. These Warranty +Disclaimers are considered to be included by reference in this +License, but only as regards disclaiming warranties: any other +implication that these Warranty Disclaimers may have is void and has +no effect on the meaning of this License. + +2. VERBATIM COPYING + +You may copy and distribute the Document in any medium, either +commercially or noncommercially, provided that this License, the +copyright notices, and the license notice saying this License applies +to the Document are reproduced in all copies, and that you add no +other conditions whatsoever to those of this License. You may not use +technical measures to obstruct or control the reading or further +copying of the copies you make or distribute. However, you may accept +compensation in exchange for copies. If you distribute a large enough +number of copies you must also follow the conditions in section 3. + +You may also lend copies, under the same conditions stated above, and +you may publicly display copies. + + +3. COPYING IN QUANTITY + +If you publish printed copies (or copies in media that commonly have +printed covers) of the Document, numbering more than 100, and the +Document's license notice requires Cover Texts, you must enclose the +copies in covers that carry, clearly and legibly, all these Cover +Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on +the back cover. Both covers must also clearly and legibly identify +you as the publisher of these copies. The front cover must present +the full title with all words of the title equally prominent and +visible. You may add other material on the covers in addition. +Copying with changes limited to the covers, as long as they preserve +the title of the Document and satisfy these conditions, can be treated +as verbatim copying in other respects. + +If the required texts for either cover are too voluminous to fit +legibly, you should put the first ones listed (as many as fit +reasonably) on the actual cover, and continue the rest onto adjacent +pages. + +If you publish or distribute Opaque copies of the Document numbering +more than 100, you must either include a machine-readable Transparent +copy along with each Opaque copy, or state in or with each Opaque copy +a computer-network location from which the general network-using +public has access to download using public-standard network protocols +a complete Transparent copy of the Document, free of added material. +If you use the latter option, you must take reasonably prudent steps, +when you begin distribution of Opaque copies in quantity, to ensure +that this Transparent copy will remain thus accessible at the stated +location until at least one year after the last time you distribute an +Opaque copy (directly or through your agents or retailers) of that +edition to the public. + +It is requested, but not required, that you contact the authors of the +Document well before redistributing any large number of copies, to +give them a chance to provide you with an updated version of the +Document. + + +4. MODIFICATIONS + +You may copy and distribute a Modified Version of the Document under +the conditions of sections 2 and 3 above, provided that you release +the Modified Version under precisely this License, with the Modified +Version filling the role of the Document, thus licensing distribution +and modification of the Modified Version to whoever possesses a copy +of it. In addition, you must do these things in the Modified Version: + +A. Use in the Title Page (and on the covers, if any) a title distinct + from that of the Document, and from those of previous versions + (which should, if there were any, be listed in the History section + of the Document). You may use the same title as a previous version + if the original publisher of that version gives permission. +B. List on the Title Page, as authors, one or more persons or entities + responsible for authorship of the modifications in the Modified + Version, together with at least five of the principal authors of the + Document (all of its principal authors, if it has fewer than five), + unless they release you from this requirement. +C. State on the Title page the name of the publisher of the + Modified Version, as the publisher. +D. Preserve all the copyright notices of the Document. +E. Add an appropriate copyright notice for your modifications + adjacent to the other copyright notices. +F. Include, immediately after the copyright notices, a license notice + giving the public permission to use the Modified Version under the + terms of this License, in the form shown in the Addendum below. +G. Preserve in that license notice the full lists of Invariant Sections + and required Cover Texts given in the Document's license notice. +H. Include an unaltered copy of this License. +I. Preserve the section Entitled "History", Preserve its Title, and add + to it an item stating at least the title, year, new authors, and + publisher of the Modified Version as given on the Title Page. If + there is no section Entitled "History" in the Document, create one + stating the title, year, authors, and publisher of the Document as + given on its Title Page, then add an item describing the Modified + Version as stated in the previous sentence. +J. Preserve the network location, if any, given in the Document for + public access to a Transparent copy of the Document, and likewise + the network locations given in the Document for previous versions + it was based on. These may be placed in the "History" section. + You may omit a network location for a work that was published at + least four years before the Document itself, or if the original + publisher of the version it refers to gives permission. +K. For any section Entitled "Acknowledgements" or "Dedications", + Preserve the Title of the section, and preserve in the section all + the substance and tone of each of the contributor acknowledgements + and/or dedications given therein. +L. Preserve all the Invariant Sections of the Document, + unaltered in their text and in their titles. Section numbers + or the equivalent are not considered part of the section titles. +M. Delete any section Entitled "Endorsements". Such a section + may not be included in the Modified Version. +N. Do not retitle any existing section to be Entitled "Endorsements" + or to conflict in title with any Invariant Section. +O. Preserve any Warranty Disclaimers. + +If the Modified Version includes new front-matter sections or +appendices that qualify as Secondary Sections and contain no material +copied from the Document, you may at your option designate some or all +of these sections as invariant. To do this, add their titles to the +list of Invariant Sections in the Modified Version's license notice. +These titles must be distinct from any other section titles. + +You may add a section Entitled "Endorsements", provided it contains +nothing but endorsements of your Modified Version by various +parties--for example, statements of peer review or that the text has +been approved by an organization as the authoritative definition of a +standard. + +You may add a passage of up to five words as a Front-Cover Text, and a +passage of up to 25 words as a Back-Cover Text, to the end of the list +of Cover Texts in the Modified Version. Only one passage of +Front-Cover Text and one of Back-Cover Text may be added by (or +through arrangements made by) any one entity. If the Document already +includes a cover text for the same cover, previously added by you or +by arrangement made by the same entity you are acting on behalf of, +you may not add another; but you may replace the old one, on explicit +permission from the previous publisher that added the old one. + +The author(s) and publisher(s) of the Document do not by this License +give permission to use their names for publicity for or to assert or +imply endorsement of any Modified Version. + + +5. COMBINING DOCUMENTS + +You may combine the Document with other documents released under this +License, under the terms defined in section 4 above for modified +versions, provided that you include in the combination all of the +Invariant Sections of all of the original documents, unmodified, and +list them all as Invariant Sections of your combined work in its +license notice, and that you preserve all their Warranty Disclaimers. + +The combined work need only contain one copy of this License, and +multiple identical Invariant Sections may be replaced with a single +copy. If there are multiple Invariant Sections with the same name but +different contents, make the title of each such section unique by +adding at the end of it, in parentheses, the name of the original +author or publisher of that section if known, or else a unique number. +Make the same adjustment to the section titles in the list of +Invariant Sections in the license notice of the combined work. + +In the combination, you must combine any sections Entitled "History" +in the various original documents, forming one section Entitled +"History"; likewise combine any sections Entitled "Acknowledgements", +and any sections Entitled "Dedications". You must delete all sections +Entitled "Endorsements". + + +6. COLLECTIONS OF DOCUMENTS + +You may make a collection consisting of the Document and other +documents released under this License, and replace the individual +copies of this License in the various documents with a single copy +that is included in the collection, provided that you follow the rules +of this License for verbatim copying of each of the documents in all +other respects. + +You may extract a single document from such a collection, and +distribute it individually under this License, provided you insert a +copy of this License into the extracted document, and follow this +License in all other respects regarding verbatim copying of that +document. + + +7. AGGREGATION WITH INDEPENDENT WORKS + +A compilation of the Document or its derivatives with other separate +and independent documents or works, in or on a volume of a storage or +distribution medium, is called an "aggregate" if the copyright +resulting from the compilation is not used to limit the legal rights +of the compilation's users beyond what the individual works permit. +When the Document is included in an aggregate, this License does not +apply to the other works in the aggregate which are not themselves +derivative works of the Document. + +If the Cover Text requirement of section 3 is applicable to these +copies of the Document, then if the Document is less than one half of +the entire aggregate, the Document's Cover Texts may be placed on +covers that bracket the Document within the aggregate, or the +electronic equivalent of covers if the Document is in electronic form. +Otherwise they must appear on printed covers that bracket the whole +aggregate. + + +8. TRANSLATION + +Translation is considered a kind of modification, so you may +distribute translations of the Document under the terms of section 4. +Replacing Invariant Sections with translations requires special +permission from their copyright holders, but you may include +translations of some or all Invariant Sections in addition to the +original versions of these Invariant Sections. You may include a +translation of this License, and all the license notices in the +Document, and any Warranty Disclaimers, provided that you also include +the original English version of this License and the original versions +of those notices and disclaimers. In case of a disagreement between +the translation and the original version of this License or a notice +or disclaimer, the original version will prevail. + +If a section in the Document is Entitled "Acknowledgements", +"Dedications", or "History", the requirement (section 4) to Preserve +its Title (section 1) will typically require changing the actual +title. + + +9. TERMINATION + +You may not copy, modify, sublicense, or distribute the Document +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense, or distribute it is void, and +will automatically terminate your rights under this License. + +However, if you cease all violation of this License, then your license +from a particular copyright holder is reinstated (a) provisionally, +unless and until the copyright holder explicitly and finally +terminates your license, and (b) permanently, if the copyright holder +fails to notify you of the violation by some reasonable means prior to +60 days after the cessation. + +Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + +Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, receipt of a copy of some or all of the same material does +not give you any rights to use it. + + +10. FUTURE REVISIONS OF THIS LICENSE + +The Free Software Foundation may publish new, revised versions of the +GNU Free Documentation License from time to time. Such new versions +will be similar in spirit to the present version, but may differ in +detail to address new problems or concerns. See +https://www.gnu.org/licenses/. + +Each version of the License is given a distinguishing version number. +If the Document specifies that a particular numbered version of this +License "or any later version" applies to it, you have the option of +following the terms and conditions either of that specified version or +of any later version that has been published (not as a draft) by the +Free Software Foundation. If the Document does not specify a version +number of this License, you may choose any version ever published (not +as a draft) by the Free Software Foundation. If the Document +specifies that a proxy can decide which future versions of this +License can be used, that proxy's public statement of acceptance of a +version permanently authorizes you to choose that version for the +Document. + +11. RELICENSING + +"Massive Multiauthor Collaboration Site" (or "MMC Site") means any +World Wide Web server that publishes copyrightable works and also +provides prominent facilities for anybody to edit those works. A +public wiki that anybody can edit is an example of such a server. A +"Massive Multiauthor Collaboration" (or "MMC") contained in the site +means any set of copyrightable works thus published on the MMC site. + +"CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0 +license published by Creative Commons Corporation, a not-for-profit +corporation with a principal place of business in San Francisco, +California, as well as future copyleft versions of that license +published by that same organization. + +"Incorporate" means to publish or republish a Document, in whole or in +part, as part of another Document. + +An MMC is "eligible for relicensing" if it is licensed under this +License, and if all works that were first published under this License +somewhere other than this MMC, and subsequently incorporated in whole or +in part into the MMC, (1) had no cover texts or invariant sections, and +(2) were thus incorporated prior to November 1, 2008. + +The operator of an MMC Site may republish an MMC contained in the site +under CC-BY-SA on the same site at any time before August 1, 2009, +provided the MMC is eligible for relicensing. + + +ADDENDUM: How to use this License for your documents + +To use this License in a document you have written, include a copy of +the License in the document and put the following copyright and +license notices just after the title page: + + Copyright (c) YEAR YOUR NAME. + Permission is granted to copy, distribute and/or modify this document + under the terms of the GNU Free Documentation License, Version 1.3 + or any later version published by the Free Software Foundation; + with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. + A copy of the license is included in the section entitled "GNU + Free Documentation License". + +If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, +replace the "with...Texts." line with this: + + with the Invariant Sections being LIST THEIR TITLES, with the + Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. + +If you have Invariant Sections without Cover Texts, or some other +combination of the three, merge those two alternatives to suit the +situation. + +If your document contains nontrivial examples of program code, we +recommend releasing these examples in parallel under your choice of +free software license, such as the GNU General Public License, +to permit their use in free software. diff --git a/README.md b/README.md index ccf35c370c0..37f54aff81e 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ Windows: 1. Open a command prompt. 2. Ensure that the following tools can be found in the path: - * Supported compiler (Visual Studio 2019 or later, or MinGW-builds gcc 11.2 or later) + * Supported compiler (Visual Studio 2022 or later, or MinGW-builds gcc 13.1 or later) * Python 3 ([https://www.python.org/downloads/windows/] or from Microsoft Store) ``` diff --git a/REUSE.toml b/REUSE.toml new file mode 100644 index 00000000000..aa22c746707 --- /dev/null +++ b/REUSE.toml @@ -0,0 +1,39 @@ +version = 1 + +[[annotations]] +path = ["tests/**"] +comment = "tests" +precedence = "closest" +SPDX-FileCopyrightText = "Copyright (C) 2024 The Qt Company Ltd." +SPDX-License-Identifier = "LicenseRef-Qt-Commercial OR GPL-3.0-only" + +[[annotations]] +path = ["coin/**", "cmake/**", "**.pro", "**.qrc", "**CMakeLists.txt", ".cmake.conf", "**.yaml", + "coin/axivion/ci_config_linux.json", + "**.cfg", "**.plist", "**.pri", "**.prf", "configure.json"] +precedence = "closest" +comment = "build system" +SPDX-FileCopyrightText = "Copyright (C) 2024 The Qt Company Ltd." +SPDX-License-Identifier = "BSD-3-Clause" + +[[annotations]] +path = [".tag", "**/.gitattributes", "**.gitignore", + ".gitmodules"] +precedence = "closest" +comment = "version control system. Licensed as build system" +SPDX-FileCopyrightText = "Copyright (C) 2024 The Qt Company Ltd." +SPDX-License-Identifier = "BSD-3-Clause" + +[[annotations]] +path = ["**README*", "CONTRIBUTING.md", ".commit-template", ".github/pull_request_template.md"] +comment = "documentation" +precedence = "closest" +SPDX-FileCopyrightText = "Copyright (C) 2024 The Qt Company Ltd." +SPDX-License-Identifier = "LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only" + +[[annotations]] +path = ["**.toml", "licenseRule.json"] +comment = "documentation" +precedence = "override" +SPDX-FileCopyrightText = "Copyright (C) 2024 The Qt Company Ltd." +SPDX-License-Identifier = "LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only" diff --git a/_clang-format b/_clang-format index 2fa7c0b0656..4d05baac1e8 100644 --- a/_clang-format +++ b/_clang-format @@ -1,7 +1,5 @@ # Copyright (C) 2016 Olivier Goffart -# -# You may use this file under the terms of the 3-clause BSD license. -# See the file LICENSE from this package for details. +# SPDX-License-Identifier: BSD-3-Clause # This is the clang-format configuration style to be used by Qt, # based on the rules from https://wiki.qt.io/Qt_Coding_Style and diff --git a/cmake/3rdparty/cmake/Copyright.txt b/cmake/3rdparty/cmake/Copyright.txt deleted file mode 100644 index 2074109b019..00000000000 --- a/cmake/3rdparty/cmake/Copyright.txt +++ /dev/null @@ -1,136 +0,0 @@ -CMake - Cross Platform Makefile Generator -Copyright 2000-2024 Kitware, Inc. and Contributors -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -* Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - -* Neither the name of Kitware, Inc. nor the names of Contributors - may be used to endorse or promote products derived from this - software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ------------------------------------------------------------------------------- - -The following individuals and institutions are among the Contributors: - -* Aaron C. Meadows -* Adriaan de Groot -* Aleksey Avdeev -* Alexander Neundorf -* Alexander Smorkalov -* Alexey Sokolov -* Alex Merry -* Alex Turbov -* Andreas Pakulat -* Andreas Schneider -* André Rigland Brodtkorb -* Axel Huebl, Helmholtz-Zentrum Dresden - Rossendorf -* Benjamin Eikel -* Bjoern Ricks -* Brad Hards -* Christopher Harvey -* Christoph Grüninger -* Clement Creusot -* Daniel Blezek -* Daniel Pfeifer -* Dawid Wróbel -* Enrico Scholz -* Eran Ifrah -* Esben Mose Hansen, Ange Optimization ApS -* Geoffrey Viola -* Google Inc -* Gregor Jasny -* Helio Chissini de Castro -* Ilya Lavrenov -* Insight Software Consortium -* Intel Corporation -* Jan Woetzel -* Jordan Williams -* Julien Schueller -* Kelly Thompson -* Konstantin Podsvirov -* Laurent Montel -* Mario Bensi -* Martin Gräßlin -* Mathieu Malaterre -* Matthaeus G. Chajdas -* Matthias Kretz -* Matthias Maennich -* Michael Hirsch, Ph.D. -* Michael Stürmer -* Miguel A. Figueroa-Villanueva -* Mike Durso -* Mike Jackson -* Mike McQuaid -* Nicolas Bock -* Nicolas Despres -* Nikita Krupen'ko -* NVIDIA Corporation -* OpenGamma Ltd. -* Patrick Stotko -* Per Øyvind Karlsen -* Peter Collingbourne -* Petr Gotthard -* Philip Lowman -* Philippe Proulx -* Raffi Enficiaud, Max Planck Society -* Raumfeld -* Roger Leigh -* Rolf Eike Beer -* Roman Donchenko -* Roman Kharitonov -* Ruslan Baratov -* Sebastian Holtermann -* Stephen Kelly -* Sylvain Joubert -* The Qt Company Ltd. -* Thomas Sondergaard -* Tobias Hunger -* Todd Gamblin -* Tristan Carel -* University of Dundee -* Vadim Zhukov -* Will Dicharry - -See version control history for details of individual contributions. - -The above copyright and license notice applies to distributions of -CMake in source and binary form. Third-party software packages supplied -with CMake under compatible licenses provide their own copyright notices -documented in corresponding subdirectories or source files. - ------------------------------------------------------------------------------- - -CMake was initially developed by Kitware with the following sponsorship: - - * National Library of Medicine at the National Institutes of Health - as part of the Insight Segmentation and Registration Toolkit (ITK). - - * US National Labs (Los Alamos, Livermore, Sandia) ASC Parallel - Visualization Initiative. - - * National Alliance for Medical Image Computing (NAMIC) is funded by the - National Institutes of Health through the NIH Roadmap for Medical Research, - Grant U54 EB005149. - - * Kitware, Inc. diff --git a/cmake/3rdparty/cmake/QtIRRunCMake.cmake b/cmake/3rdparty/cmake/QtIRRunCMake.cmake deleted file mode 100644 index dd6a10de1cd..00000000000 --- a/cmake/3rdparty/cmake/QtIRRunCMake.cmake +++ /dev/null @@ -1,349 +0,0 @@ -# Distributed under the OSI-approved BSD 3-Clause License. See accompanying -# file Copyright.txt or https://cmake.org/licensing for details. -# -# Original file location was Tests/RunCMake/RunCMake.cmake - -foreach( - arg - IN ITEMS - RunCMake_GENERATOR - RunCMake_SOURCE_DIR - RunCMake_BINARY_DIR - ) - if(NOT DEFINED ${arg}) - message(FATAL_ERROR "${arg} not given!") - endif() -endforeach() - -function(run_cmake test) - if(DEFINED ENV{RunCMake_TEST_FILTER}) - set(test_and_variant "${test}${RunCMake_TEST_VARIANT_DESCRIPTION}") - if(NOT test_and_variant MATCHES "$ENV{RunCMake_TEST_FILTER}") - return() - endif() - unset(test_and_variant) - endif() - - set(top_src "${RunCMake_SOURCE_DIR}") - set(top_bin "${RunCMake_BINARY_DIR}") - if(EXISTS ${top_src}/${test}-result.txt) - file(READ ${top_src}/${test}-result.txt expect_result) - string(REGEX REPLACE "\n+$" "" expect_result "${expect_result}") - elseif(DEFINED RunCMake_TEST_EXPECT_RESULT) - set(expect_result "${RunCMake_TEST_EXPECT_RESULT}") - else() - set(expect_result 0) - endif() - - string(TOLOWER ${CMAKE_HOST_SYSTEM_NAME} platform_name) - #remove all additional bits from cygwin/msys name - if(platform_name MATCHES cygwin) - set(platform_name cygwin) - endif() - if(platform_name MATCHES msys) - set(platform_name msys) - endif() - - foreach(o IN ITEMS stdout stderr config) - if(RunCMake-${o}-file AND EXISTS ${top_src}/${RunCMake-${o}-file}) - file(READ ${top_src}/${RunCMake-${o}-file} expect_${o}) - string(REGEX REPLACE "\n+$" "" expect_${o} "${expect_${o}}") - elseif(EXISTS ${top_src}/${test}-${o}-${platform_name}.txt) - file(READ ${top_src}/${test}-${o}-${platform_name}.txt expect_${o}) - string(REGEX REPLACE "\n+$" "" expect_${o} "${expect_${o}}") - elseif(EXISTS ${top_src}/${test}-${o}.txt) - file(READ ${top_src}/${test}-${o}.txt expect_${o}) - string(REGEX REPLACE "\n+$" "" expect_${o} "${expect_${o}}") - elseif(DEFINED RunCMake_TEST_EXPECT_${o}) - string(REGEX REPLACE "\n+$" "" expect_${o} "${RunCMake_TEST_EXPECT_${o}}") - else() - unset(expect_${o}) - endif() - endforeach() - foreach(o IN ITEMS stdout stderr config) - if(DEFINED RunCMake_TEST_NOT_EXPECT_${o}) - string(REGEX REPLACE "\n+$" "" not_expect_${o} "${RunCMake_TEST_NOT_EXPECT_${o}}") - endif() - endforeach() - if (NOT expect_stderr) - if (NOT RunCMake_DEFAULT_stderr) - set(RunCMake_DEFAULT_stderr "^$") - endif() - set(expect_stderr ${RunCMake_DEFAULT_stderr}) - endif() - - if (NOT RunCMake_TEST_SOURCE_DIR) - set(RunCMake_TEST_SOURCE_DIR "${top_src}") - endif() - if(NOT RunCMake_TEST_BINARY_DIR) - set(RunCMake_TEST_BINARY_DIR "${top_bin}/${test}-build") - endif() - if(NOT RunCMake_TEST_NO_CLEAN) - file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}") - endif() - file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}") - if(RunCMake-prep-file AND EXISTS ${top_src}/${RunCMake-prep-file}) - include(${top_src}/${RunCMake-prep-file}) - else() - include(${top_src}/${test}-prep.cmake OPTIONAL) - endif() - if(RunCMake_TEST_OUTPUT_MERGE) - set(actual_stderr_var actual_stdout) - set(actual_stderr "") - else() - set(actual_stderr_var actual_stderr) - endif() - if(DEFINED RunCMake_TEST_TIMEOUT) - set(maybe_timeout TIMEOUT ${RunCMake_TEST_TIMEOUT}) - else() - set(maybe_timeout "") - endif() - if(RunCMake-stdin-file AND EXISTS ${top_src}/${RunCMake-stdin-file}) - set(maybe_input_file INPUT_FILE ${top_src}/${RunCMake-stdin-file}) - elseif(EXISTS ${top_src}/${test}-stdin.txt) - set(maybe_input_file INPUT_FILE ${top_src}/${test}-stdin.txt) - else() - set(maybe_input_file "") - endif() - if(NOT RunCMake_TEST_COMMAND) - if(NOT DEFINED RunCMake_TEST_OPTIONS) - set(RunCMake_TEST_OPTIONS "") - endif() - if(APPLE) - list(APPEND RunCMake_TEST_OPTIONS -DCMAKE_POLICY_DEFAULT_CMP0025=NEW) - endif() - if(RunCMake_TEST_LCC AND NOT RunCMake_TEST_NO_CMP0129) - list(APPEND RunCMake_TEST_OPTIONS -DCMAKE_POLICY_DEFAULT_CMP0129=NEW) - endif() - if(RunCMake_MAKE_PROGRAM) - list(APPEND RunCMake_TEST_OPTIONS "-DCMAKE_MAKE_PROGRAM=${RunCMake_MAKE_PROGRAM}") - endif() - set(RunCMake_TEST_COMMAND ${CMAKE_COMMAND}) - if(NOT RunCMake_TEST_NO_SOURCE_DIR) - list(APPEND RunCMake_TEST_COMMAND "${RunCMake_TEST_SOURCE_DIR}") - endif() - list(APPEND RunCMake_TEST_COMMAND -G "${RunCMake_GENERATOR}") - if(RunCMake_GENERATOR_PLATFORM) - list(APPEND RunCMake_TEST_COMMAND -A "${RunCMake_GENERATOR_PLATFORM}") - endif() - if(RunCMake_GENERATOR_TOOLSET) - list(APPEND RunCMake_TEST_COMMAND -T "${RunCMake_GENERATOR_TOOLSET}") - endif() - if(RunCMake_GENERATOR_INSTANCE) - list(APPEND RunCMake_TEST_COMMAND "-DCMAKE_GENERATOR_INSTANCE=${RunCMake_GENERATOR_INSTANCE}") - endif() - list(APPEND RunCMake_TEST_COMMAND - -DRunCMake_TEST=${test} - --no-warn-unused-cli - ) - else() - set(RunCMake_TEST_OPTIONS "") - endif() - if(NOT DEFINED RunCMake_TEST_RAW_ARGS) - set(RunCMake_TEST_RAW_ARGS "") - endif() - if(NOT RunCMake_TEST_COMMAND_WORKING_DIRECTORY) - set(RunCMake_TEST_COMMAND_WORKING_DIRECTORY "${RunCMake_TEST_BINARY_DIR}") - endif() - string(CONCAT _code [[execute_process( - COMMAND ${RunCMake_TEST_COMMAND} - ${RunCMake_TEST_OPTIONS} - ]] "${RunCMake_TEST_RAW_ARGS}\n" [[ - WORKING_DIRECTORY "${RunCMake_TEST_COMMAND_WORKING_DIRECTORY}" - OUTPUT_VARIABLE actual_stdout - ERROR_VARIABLE ${actual_stderr_var} - RESULT_VARIABLE actual_result - ENCODING UTF8 - ${maybe_timeout} - ${maybe_input_file} - )]]) - if(DEFINED ENV{PWD}) - set(old_pwd "$ENV{PWD}") - else() - set(old_pwd) - endif() - # Emulate a shell using this directory. - set(ENV{PWD} "${RunCMake_TEST_COMMAND_WORKING_DIRECTORY}") - cmake_language(EVAL CODE "${_code}") - if(DEFINED old_pwd) - set(ENV{PWD} "${old_pwd}") - else() - set(ENV{PWD}) - endif() - set(msg "") - if(NOT "${actual_result}" MATCHES "${expect_result}") - string(APPEND msg "Result is [${actual_result}], not [${expect_result}].\n") - endif() - set(config_file "${RunCMake_TEST_COMMAND_WORKING_DIRECTORY}/CMakeFiles/CMakeConfigureLog.yaml") - if(EXISTS "${config_file}") - file(READ "${config_file}" actual_config) - else() - set(actual_config "") - endif() - - # Special case: remove ninja no-op line from stderr, but not stdout. - # Test cases that look for it should use RunCMake_TEST_OUTPUT_MERGE. - string(REGEX REPLACE "(^|\r?\n)ninja: no work to do\\.\r?\n" "\\1" actual_stderr "${actual_stderr}") - - # Remove incidental content from both stdout and stderr. - string(CONCAT ignore_line_regex - "(^|\n)((==[0-9]+==" - "|BullseyeCoverage" - "|[a-z]+\\([0-9]+\\) malloc:" - "|clang[^:]*: warning: the object size sanitizer has no effect at -O0, but is explicitly enabled:" - "|flang-new: warning: argument unused during compilation: .-flang-experimental-exec." - "|icp?x: remark: Note that use of .-g. without any optimization-level option will turn off most compiler optimizations" - "|ifx: remark #10440: Note that use of a debug option without any optimization-level option will turnoff most compiler optimizations" - "|lld-link: warning: procedure symbol record for .* refers to PDB item index [0-9A-Fa-fx]+ which is not a valid function ID record" - "|Error kstat returned" - "|Hit xcodebuild bug" - "|Recompacting log\\.\\.\\." - - "|LICENSE WARNING:" - "|Your license to use PGI[^\n]*expired" - "|Please obtain a new version at" - "|contact PGI Sales at" - "|ic(p?c|l): remark #10441: The Intel\\(R\\) C\\+\\+ Compiler Classic \\(ICC\\) is deprecated" - - "|[^\n]*install_name_tool: warning: changes being made to the file will invalidate the code signature in:" - "|[^\n]*(createItemModels|_NSMainThread|Please file a bug at)" - "|[^\n]*xcodebuild[^\n]*DVTAssertions: Warning" - "|[^\n]*xcodebuild[^\n]*DVTCoreDeviceEnabledState: DVTCoreDeviceEnabledState_Disabled set via user default" - "|[^\n]*xcodebuild[^\n]*DVTPlugInManager" - "|[^\n]*xcodebuild[^\n]*DVTSDK: Warning: SDK path collision for path" - "|[^\n]*xcodebuild[^\n]*Requested but did not find extension point with identifier" - "|[^\n]*xcodebuild[^\n]*nil host used in call to allows.*HTTPSCertificateForHost" - "|[^\n]*xcodebuild[^\n]*warning: file type[^\n]*is based on missing file type" - "|[^\n]*objc[^\n]*: Class [^\n]* One of the two will be used. Which one is undefined." - "|[^\n]*is a member of multiple groups" - "|[^\n]*offset in archive not a multiple of 8" - "|[^\n]*from Time Machine by path" - "|[^\n]*Bullseye Testing Technology" - ${RunCMake_TEST_EXTRA_IGNORE_LINE_REGEX} - ")[^\n]*\n)+" - ) - if(RunCMake_IGNORE_POLICY_VERSION_DEPRECATION) - string(REGEX REPLACE [[ -^CMake Deprecation Warning at [^ -]*CMakeLists.txt:1 \(cmake_minimum_required\): - Compatibility with CMake < 3\.5 will be removed from a future version of - CMake. - - Update the VERSION argument value or use a \.\.\. suffix to tell - CMake that the project does not need compatibility with older versions\. -+ -]] "" actual_stderr "${actual_stderr}") - endif() - foreach(o IN ITEMS stdout stderr config) - string(REGEX REPLACE "\r\n" "\n" actual_${o} "${actual_${o}}") - string(REGEX REPLACE "${ignore_line_regex}" "\\1" actual_${o} "${actual_${o}}") - string(REGEX REPLACE "\n+$" "" actual_${o} "${actual_${o}}") - if(DEFINED expect_${o}) - if(NOT "${actual_${o}}" MATCHES "${expect_${o}}") - string(APPEND msg "${o} does not match that expected.\n") - endif() - endif() - if(DEFINED not_expect_${o}) - if("${actual_${o}}" MATCHES "${not_expect_${o}}") - string(APPEND msg "${o} matches that not expected.\n") - endif() - endif() - endforeach() - unset(RunCMake_TEST_FAILED) - if(RunCMake-check-file AND EXISTS ${top_src}/${RunCMake-check-file}) - include(${top_src}/${RunCMake-check-file}) - else() - include(${top_src}/${test}-check.cmake OPTIONAL) - endif() - if(RunCMake_TEST_FAILED) - set(msg "${RunCMake_TEST_FAILED}\n${msg}") - endif() - if(msg) - string(REPLACE ";" "\" \"" command "\"${RunCMake_TEST_COMMAND}\"") - if(RunCMake_TEST_OPTIONS) - string(REPLACE ";" "\" \"" options "\"${RunCMake_TEST_OPTIONS}\"") - string(APPEND command " ${options}") - endif() - if(RunCMake_TEST_RAW_ARGS) - string(APPEND command " ${RunCMake_TEST_RAW_ARGS}") - endif() - string(APPEND msg "Command was:\n command> ${command}\n") - endif() - if(msg) - foreach(o IN ITEMS stdout stderr config) - if(DEFINED expect_${o}) - string(REGEX REPLACE "\n" "\n expect-${o}> " expect_${o} " expect-${o}> ${expect_${o}}") - string(APPEND msg "Expected ${o} to match:\n${expect_${o}}\n") - endif() - if(NOT o STREQUAL "config" OR DEFINED expect_${o}) - string(REGEX REPLACE "\n" "\n actual-${o}> " actual_${o} " actual-${o}> ${actual_${o}}") - string(APPEND msg "Actual ${o}:\n${actual_${o}}\n") - endif() - endforeach() - message(SEND_ERROR "${test}${RunCMake_TEST_VARIANT_DESCRIPTION} - FAILED:\n${msg}") - else() - message(STATUS "${test}${RunCMake_TEST_VARIANT_DESCRIPTION} - PASSED") - endif() -endfunction() - -function(run_cmake_command test) - set(RunCMake_TEST_COMMAND "${ARGN}") - run_cmake(${test}) -endfunction() - -function(run_cmake_script test) - set(RunCMake_TEST_COMMAND ${CMAKE_COMMAND} ${ARGN} -P ${RunCMake_SOURCE_DIR}/${test}.cmake) - run_cmake(${test}) -endfunction() - -function(run_cmake_with_options test) - set(RunCMake_TEST_OPTIONS "${ARGN}") - run_cmake(${test}) -endfunction() - -function(run_cmake_with_raw_args test args) - set(RunCMake_TEST_RAW_ARGS "${args}") - run_cmake(${test}) -endfunction() - -function(ensure_files_match expected_file actual_file) - if(NOT EXISTS "${expected_file}") - message(FATAL_ERROR "Expected file does not exist:\n ${expected_file}") - endif() - if(NOT EXISTS "${actual_file}") - message(FATAL_ERROR "Actual file does not exist:\n ${actual_file}") - endif() - file(READ "${expected_file}" expected_file_content) - file(READ "${actual_file}" actual_file_content) - if(NOT "${expected_file_content}" STREQUAL "${actual_file_content}") - message(FATAL_ERROR "Actual file content does not match expected:\n - \n - expected file: ${expected_file}\n - expected content:\n - ${expected_file_content}\n - \n - actual file: ${actual_file}\n - actual content:\n - ${actual_file_content}\n - ") - endif() -endfunction() - -# Get the user id on unix if possible. -function(get_unix_uid var) - set("${var}" "" PARENT_SCOPE) - if(UNIX) - set(ID "id") - if(CMAKE_SYSTEM_NAME STREQUAL "SunOS" AND EXISTS "/usr/xpg4/bin/id") - set (ID "/usr/xpg4/bin/id") - endif() - execute_process(COMMAND ${ID} -u $ENV{USER} OUTPUT_VARIABLE uid ERROR_QUIET - RESULT_VARIABLE status OUTPUT_STRIP_TRAILING_WHITESPACE) - if(status EQUAL 0) - set("${var}" "${uid}" PARENT_SCOPE) - endif() - endif() -endfunction() - -# Protect RunCMake tests from calling environment. -unset(ENV{MAKEFLAGS}) diff --git a/cmake/3rdparty/cmake/QtIRTestHelpers.cmake b/cmake/3rdparty/cmake/QtIRTestHelpers.cmake deleted file mode 100644 index 804e20f0f44..00000000000 --- a/cmake/3rdparty/cmake/QtIRTestHelpers.cmake +++ /dev/null @@ -1,39 +0,0 @@ -# Distributed under the OSI-approved BSD 3-Clause License. See accompanying -# file Copyright.txt or https://cmake.org/licensing for details. -# -# Original file location was Tests/RunCMake/CMakeLists.txt - -macro(add_RunCMake_test test) - set(TEST_ARGS ${ARGN}) - if ("${ARGV1}" STREQUAL "TEST_DIR") - if ("${ARGV2}" STREQUAL "") - message(FATAL_ERROR "Invalid args") - endif() - set(Test_Dir ${ARGV2}) - list(REMOVE_AT TEST_ARGS 0) - list(REMOVE_AT TEST_ARGS 0) - else() - set(Test_Dir ${test}) - endif() - if(CMAKE_C_COMPILER_ID STREQUAL "LCC") - list(APPEND TEST_ARGS -DRunCMake_TEST_LCC=1) - endif() - add_test(NAME RunCMake.${test} COMMAND ${CMAKE_CMAKE_COMMAND} - -DCMAKE_MODULE_PATH=${CMAKE_CURRENT_SOURCE_DIR} - -DRunCMake_GENERATOR_IS_MULTI_CONFIG=${_isMultiConfig} - -DRunCMake_GENERATOR=${CMAKE_GENERATOR} - -DRunCMake_GENERATOR_INSTANCE=${CMAKE_GENERATOR_INSTANCE} - -DRunCMake_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM} - -DRunCMake_GENERATOR_TOOLSET=${CMAKE_GENERATOR_TOOLSET} - -DRunCMake_MAKE_PROGRAM=${CMake_TEST_EXPLICIT_MAKE_PROGRAM} - -DRunCMake_SOURCE_DIR=${CMAKE_CURRENT_SOURCE_DIR}/${Test_Dir} - -DRunCMake_BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR}/${test} - ${${test}_ARGS} - ${TEST_ARGS} - -P "${CMAKE_CURRENT_SOURCE_DIR}/${Test_Dir}/RunCMakeTest.cmake" - ) - set_tests_properties("RunCMake.${test}" PROPERTIES LABELS "CMake;run") - if(${test} MATCHES ^CMP) - set_property(TEST "RunCMake.${test}" APPEND PROPERTY LABELS "policy") - endif() -endmacro() diff --git a/cmake/3rdparty/cmake/qt_attribution.json b/cmake/3rdparty/cmake/qt_attribution.json deleted file mode 100644 index 8ba8a1e73ac..00000000000 --- a/cmake/3rdparty/cmake/qt_attribution.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "Id": "cmake-test-modules", - "Name": "cmake-test-modules", - "QDocModule": "qtcore", - "QtUsage": "Used as part of the build system.", - "QtParts" : [ "tests" ], - - "Description": "CMake helpers for running CMake tests.", - "Homepage": "https://cmake.org/", - "Version": "3.29.0", - - "License": "BSD 3-Clause \"New\" or \"Revised\" License", - "LicenseId": "BSD-3-Clause", - "LicenseFile": "Copyright.txt", - "Copyright": "Copyright © 2000-2024 Kitware, Inc. and Contributors" -} diff --git a/cmake/QtIRGitHelpers.cmake b/cmake/QtIRGitHelpers.cmake index 288f4ac78fb..d851b65a31e 100644 --- a/cmake/QtIRGitHelpers.cmake +++ b/cmake/QtIRGitHelpers.cmake @@ -93,9 +93,15 @@ function(qt_ir_run_git_submodule_init submodules working_directory) qt_ir_setup_commit_template("${working_directory}" "${working_directory}") endfunction() -# Add gerrit remotes to the repository. -function(qt_ir_add_git_remotes repo_name working_directory) - set(gerrit_ssh_base "ssh://@USER@codereview.qt-project.org@PORT@/qt/") +# Add gerrit remotes to the repository located in the working_directory. +# repo_relative_url is the relative URL of the repository. +# Examples: +# - qt5 +# - qttools.git +# - ../playground/qlitehtml.git +# - ../qt/qttools-litehtml.git +function(qt_ir_add_git_remotes repo_relative_url working_directory) + set(gerrit_ssh_base "ssh://@USER@codereview.qt-project.org@PORT@/") set(gerrit_repo_url "${gerrit_ssh_base}") qt_ir_get_option_value(codereview-username username) @@ -110,7 +116,10 @@ function(qt_ir_add_git_remotes repo_name working_directory) string(REPLACE "@PORT@" "" gerrit_repo_url "${gerrit_repo_url}") endif() - string(APPEND gerrit_repo_url "${repo_name}") + set(namespace "qt") + set(repo_relative_url_with_namespace "${namespace}/${repo_relative_url}") + qt_ir_normalize_git_url("http://github.com/$%7Brepo_relative_url_with_namespace%7D%22%20normalized_url) + string(APPEND gerrit_repo_url "${normalized_url}") qt_ir_execute_process_and_log_and_handle_error( COMMAND_ARGS git config remote.gerrit.url "${gerrit_repo_url}" @@ -193,15 +202,21 @@ function(qt_ir_clone_one_submodule submodule_name) set(submodule_base_git_path "${${prefix}_${submodule_name}_base_git_path}") set(submodule_url "${submodule_base_git_path}") - qt_ir_has_url_scheme("${submodule_url}" has_url_scheme) + qt_ir_parse_git_url( + URL "${submodule_url}" + OUT_VAR_HAS_URL_SCHEME has_url_scheme + ) + if(NOT has_url_scheme AND arg_BASE_URL) set(submodule_url "${arg_BASE_URL}${submodule_url}") + qt_ir_normalize_git_url("http://github.com/$%7Bsubmodule_url%7D%22%20submodule_url) endif() qt_ir_get_mirror(mirror_url) set(mirror "") if(NOT has_url_scheme AND mirror_url AND (should_clone OR arg_FETCH)) set(mirror "${mirror_url}${submodule_base_git_path}") + qt_ir_normalize_git_url("http://github.com/$%7Bmirror%7D%22%20mirror) endif() set(mirror_or_original_url "${submodule_url}") diff --git a/cmake/QtIRHelpers.cmake b/cmake/QtIRHelpers.cmake index 678848f6cbf..c305ae803b2 100644 --- a/cmake/QtIRHelpers.cmake +++ b/cmake/QtIRHelpers.cmake @@ -8,7 +8,6 @@ macro(qt_ir_include_all_helpers) include(QtIROptionsHelpers) include(QtIRParsingHelpers) include(QtIRProcessHelpers) - include(QtIRTestHelpers) include(QtTopLevelHelpers) endmacro() diff --git a/cmake/QtIRParsingHelpers.cmake b/cmake/QtIRParsingHelpers.cmake index d7d3f20e9d3..04a344234f5 100644 --- a/cmake/QtIRParsingHelpers.cmake +++ b/cmake/QtIRParsingHelpers.cmake @@ -40,18 +40,79 @@ function(qt_ir_get_git_config_contents out_var) set(${out_var} "${git_output}" PARENT_SCOPE) endfunction() -# Checks whether the given url has a scheme like https:// or is just a -# relative path. -function(qt_ir_has_url_scheme url out_var) - string(REGEX MATCH "^[a-z][a-z0-9+\-.]*://" has_url_scheme "${url}") +# Parses a git repo url to: +# - check if the given url has a scheme like https:// or git:// or is just a +# relative path with no scheme (possibly containing '../' segments) +# - extracts the scheme if it exists +# - extracts the url without the scheme +function(qt_ir_parse_git_url) + set(options "") + set(oneValueArgs + URL + OUT_VAR_HAS_URL_SCHEME + OUT_VAR_SCHEME + OUT_VAR_URL_WITHOUT_SCHEME + ) + set(multiValueArgs "") + cmake_parse_arguments(arg "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) - if(has_url_scheme) - set(${out_var} TRUE PARENT_SCOPE) + string(REGEX MATCH "^([a-z][a-z0-9+\-.]*://)(.+)" url_scheme_match "${arg_URL}") + + if(url_scheme_match) + set(has_url_scheme TRUE) + set(scheme "${CMAKE_MATCH_1}") + set(url_without_scheme "${CMAKE_MATCH_2}") else() - set(${out_var} FALSE PARENT_SCOPE) + set(has_url_scheme FALSE) + set(scheme "") + set(url_without_scheme "${url}") + endif() + + if(arg_OUT_VAR_HAS_URL_SCHEME) + set(${arg_OUT_VAR_HAS_URL_SCHEME} "${has_url_scheme}" PARENT_SCOPE) + endif() + + if(arg_OUT_VAR_SCHEME) + set(${arg_OUT_VAR_SCHEME} "${scheme}" PARENT_SCOPE) + endif() + + if(arg_OUT_VAR_URL_WITHOUT_SCHEME) + set(${arg_OUT_VAR_URL_WITHOUT_SCHEME} "${url_without_scheme}" PARENT_SCOPE) endif() endfunction() +# Normalizes a url that contains '../' path segments. +# Removes the '../' segments and the directories that they precede. +# Example: +# git://code.qt.io/qt/../playground/qlitehtml.git +# will be normalized to: +# git://code.qt.io/playground/qlitehtml.git +function(qt_ir_normalize_git_url url out_var) + # The exact perl code was while ($base =~ s,(?!\.\./)[^/]+/\.\./,,g) {} + # That got rid of ../ and ../../ in the path, but it broke down + # when more than two '../' segments were present. + # + # In CMake, we instead parse the url to get the non-scheme suffix, + # use get_filename_component(ABSOLUTE) to resolve the url as if it was a relative path + # and then re-add the scheme if it was present. + qt_ir_parse_git_url( + URL "${url}" + OUT_VAR_HAS_URL_SCHEME has_url_scheme + OUT_VAR_SCHEME url_scheme + OUT_VAR_URL_WITHOUT_SCHEME url_without_scheme + ) + + # Note the empty BASE_DIR is important, otherwise the path is relative to + # ${CMAKE_CURRENT_SOURCE_DIR}. + get_filename_component(normalized_url "${url_without_scheme}" ABSOLUTE BASE_DIR "") + + if(has_url_scheme) + string(PREPEND normalized_url "${url_scheme}") + endif() + + set(${out_var} "${normalized_url}" PARENT_SCOPE) +endfunction() + # Parses a key-value line from a .git/config or .gitmodules file macro(qt_ir_parse_git_key_value) string(REGEX REPLACE "^submodule\\.([^.=]+)\\.([^.=]+)=(.*)$" "\\1;\\2;\\3" @@ -79,14 +140,22 @@ endmacro() # url_value # the url where to clone a repo from # in perl script it was called $base -# e.g. '../qtbase.git', 'https://code.qt.io/playground/qlitehtml.git' +# Examples: +# - '../qtbase.git' +# - 'https://code.qt.io/playground/qlitehtml.git' +# - '../../playground/qlitehtml.git' # parent_repo_base_git_path # the base git path of the parent of the submodule # it is either a relative dir or a full url # in the perl script it was called $my_repo_base, # it was passed as first arg to git_clone_all_submodules, # it was passed the value of $subbases{$module} when doing recursive submodule cloning -# e.g. 'qt5', 'tqtc-qt5', 'qtdeclarative.git', 'https://code.qt.io/playground/qlitehtml.git' +# Examples: +# - 'qt5' +# - 'tqtc-qt5' +# - 'qtdeclarative.git' +# - 'qttools.git' +# - 'https://code.qt.io/playground/qlitehtml.git' # # Outputs # @@ -94,21 +163,21 @@ endmacro() # just the value of ${url_value} # ${out_var_prefix}_${submodule_name}_base_git_path # the whole url if it has a scheme, otherwise it's the value of -# ${url_value} relative to ${parent_repo_base_git_path}, so all the ../ are collapsed -# e.g. 'qtdeclarative.git' -# 'https://code.qt.io/playground/qlitehtml.git', +# ${url_value} relative to ${parent_repo_base_git_path}, so some of the '../' segments +# are collapsed depending on how many path segments are available in +# ${parent_repo_base_git_path}. +# Examples: +# - 'qtdeclarative.git' +# - 'https://code.qt.io/playground/qlitehtml.git' +# - '../playground/qlitehtml.git' macro(qt_ir_parse_git_url_key out_var_prefix submodule_name url_value parent_repo_base_git_path) - qt_ir_has_url_scheme("${url_value}" has_url_scheme) + qt_ir_parse_git_url( + URL "${url_value}" + OUT_VAR_HAS_URL_SCHEME has_url_scheme + ) if(NOT has_url_scheme) set(base_git_path "${parent_repo_base_git_path}/${url_value}") - - # The exact code perl code was while ($base =~ s,(?!\.\./)[^/]+/\.\./,,g) {} - # That got rid of ../ and ../../ in the path, but it broke down - # when more than two ../ were present. - # We just use ABSOLUTE to resolve the path and get rid of all ../ - # Note the empty BASE_DIR is important, otherwise the path is relative to - # ${CMAKE_CURRENT_SOURCE_DIR}. - get_filename_component(base_git_path "${base_git_path}" ABSOLUTE BASE_DIR "") + qt_ir_normalize_git_url("http://github.com/$%7Bbase_git_path%7D%22%20base_git_path) else() set(base_git_path "${url_value}") endif() diff --git a/cmake/QtIRScript.cmake b/cmake/QtIRScript.cmake index fc5ffba9c3d..bd2b97c7f23 100644 --- a/cmake/QtIRScript.cmake +++ b/cmake/QtIRScript.cmake @@ -7,7 +7,6 @@ cmake_minimum_required(VERSION 3.16) macro(qt_ir_setup_include_paths) list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}" - "${CMAKE_CURRENT_LIST_DIR}/3rdparty/cmake" ) include(QtIRHelpers) endmacro() diff --git a/cmake/QtTopLevelConfigureScript.cmake b/cmake/QtTopLevelConfigureScript.cmake index 304bf7b751d..b0f92fa38f1 100644 --- a/cmake/QtTopLevelConfigureScript.cmake +++ b/cmake/QtTopLevelConfigureScript.cmake @@ -7,7 +7,6 @@ cmake_minimum_required(VERSION 3.16) macro(qt_tl_setup_include_paths) list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}" - "${CMAKE_CURRENT_LIST_DIR}/3rdparty/cmake" ) include(QtTopLevelHelpers) endmacro() diff --git a/coin/instructions/coin_qt_configure.yaml b/coin/instructions/coin_qt_configure.yaml index c165025642c..a8aebd7df56 100644 --- a/coin/instructions/coin_qt_configure.yaml +++ b/coin/instructions/coin_qt_configure.yaml @@ -47,3 +47,20 @@ instructions: condition: property property: features contains_value: UseConfigure +disable_if: + condition: or + conditions: + - condition: property + property: target.osVersion + in_values: [Android_ANY, QEMU, IOS_ANY, QNX_710, WebAssembly, INTEGRITY, VxWorks] + - condition: and + conditions: + - condition: property + property: target.os + equals_value: Windows + - condition: property + property: target.arch + not_equals_property: host.arch + - condition: property + property: features + not_contains_value: "DebianPackaging" diff --git a/coin/platform_configs/address_sanitizer_platforms.yaml b/coin/platform_configs/address_sanitizer_platforms.yaml index d42ebfbb838..587e6ce359f 100644 --- a/coin/platform_configs/address_sanitizer_platforms.yaml +++ b/coin/platform_configs/address_sanitizer_platforms.yaml @@ -1,20 +1,10 @@ Version: 2 Configurations: -- - Id: 'opensuse-15.5-host-asan' - Template: 'qtci-linux-openSUSE-15.5-x86_64-52' - Compiler: 'GCC' - Features: ['PinCores', 'Sccache', 'WarningsAreErrors', 'UseConfigure', 'UseAddressSanitizer'] - Configure arguments: '-nomake examples -developer-build' - Environment variables: [ - 'CMAKE_ARGS=-DOPENSSL_ROOT_DIR={{.Env.OPENSSL_HOME}}', - 'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE' - ] - Id: 'opensuse-15.6-host-asan' Template: 'qtci-linux-openSUSE-15.6-x86_64-51' Compiler: 'GCC' - Features: ['Sccache', 'WarningsAreErrors', 'UseConfigure', 'UseAddressSanitizer', 'InsignificantTests'] + Features: ['Sccache', 'WarningsAreErrors', 'UseConfigure', 'UseAddressSanitizer'] Configure arguments: '-nomake examples -developer-build' Environment variables: [ 'CMAKE_ARGS=-DOPENSSL_ROOT_DIR={{.Env.OPENSSL_HOME}}', diff --git a/coin/platform_configs/cmake_platforms.yaml b/coin/platform_configs/cmake_platforms.yaml index 91f02d252bb..885fd245214 100644 --- a/coin/platform_configs/cmake_platforms.yaml +++ b/coin/platform_configs/cmake_platforms.yaml @@ -30,13 +30,13 @@ Configurations: Id: 'ubuntu-22.04-developer-build-x11-tests' Template: 'qtci-linux-Ubuntu-22.04-x86_64-51' Compiler: 'GCC' - Features: ['PinCores', 'Sccache', 'TestOnly'] + Features: ['Sccache', 'TestOnly'] Platform dependency: 'ubuntu-22.04-developer-build' - Id: 'ubuntu-22.04-x11-tests' Template: 'qtci-linux-Ubuntu-22.04-x86_64-51' Compiler: 'GCC' - Features: ['PinCores', 'Sccache', 'TestOnly'] + Features: ['Sccache', 'TestOnly'] Platform dependency: 'ubuntu-22.04' # Build on Ubuntu 24.04 ARM64 Wayland and test on offscreen and Wayland later - @@ -65,7 +65,7 @@ Configurations: Id: 'ubuntu-24.04-arm64-offscreen-tests' Template: 'qtci-linux-Ubuntu-24.04-aarch64-50' Compiler: 'GCC' - Features: ['PinCores', 'TestOnly'] + Features: ['TestOnly'] Environment variables: [ 'CMAKE_ARGS=-DOpenGL_GL_PREFERENCE=LEGACY', 'QT_QPA_OFFSCREEN_NO_GLX=1', @@ -99,30 +99,19 @@ Configurations: Id: 'ubuntu-24.04-x64-developer-build-x11-tests' Template: 'qtci-linux-Ubuntu-24.04-x86_64-51' Compiler: 'GCC' - Features: ['PinCores', 'Sccache', 'TestOnly', 'InsignificantTests'] + Features: ['Sccache', 'TestOnly', 'InsignificantTests'] Platform dependency: 'ubuntu-24.04-x64-developer-build' - Id: 'ubuntu-24.04-x64-x11-tests' Template: 'qtci-linux-Ubuntu-24.04-x86_64-51' Compiler: 'GCC' - Features: ['PinCores', 'Sccache', 'TestOnly', 'InsignificantTests'] + Features: ['Sccache', 'TestOnly'] Platform dependency: 'ubuntu-24.04-x64' -- - Id: 'opensuse-15.5-developer-build' - Template: 'qtci-linux-openSUSE-15.5-x86_64-52' - Compiler: 'GCC' - Features: ['PinCores', 'Sccache', 'WarningsAreErrors', 'UseConfigure'] - Configure arguments: '-nomake examples -developer-build' - Environment variables: [ - 'PATH={{.Env.CMAKE_MIN_SUPPORTED_BIN_PATH}}:{{.Env.PATH}}', - 'CMAKE_ARGS=-DOPENSSL_ROOT_DIR={{.Env.OPENSSL_HOME}}', - 'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE' - ] - Id: 'opensuse-15.6-developer-build' Template: 'qtci-linux-openSUSE-15.6-x86_64-51' Compiler: 'GCC' - Features: ['Sccache', 'WarningsAreErrors', 'UseConfigure', 'InsignificantTests'] + Features: ['Sccache', 'WarningsAreErrors', 'UseConfigure'] Configure arguments: '-nomake examples -developer-build' Environment variables: [ 'PATH={{.Env.CMAKE_MIN_SUPPORTED_BIN_PATH}}:{{.Env.PATH}}', @@ -131,7 +120,7 @@ Configurations: ] - Id: 'sles-15_sp5-static' - Template: 'qtci-linux-SLES-15_SP5-x86_64-50' + Template: 'qtci-linux-SLES-15_SP5-x86_64-51' Compiler: 'GCC' Features: ['Sccache', 'DisableTests', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM'] Configure arguments: '-nomake examples -static -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-psql -no-sql-mimer' @@ -151,9 +140,9 @@ Configurations: ] - Id: 'windows-10_22h2-msvc2022' - Template: 'qtci-windows-10_22H2-x86_64-52' + Template: 'qtci-windows-10_22H2-x86_64-53' Compiler: 'MSVC2022' - Features: ['PinCores', 'Sccache', "DebugAndRelease", 'UseConfigure', 'GenerateSBOM', 'VerifySBOM'] + Features: ['Sccache', "DebugAndRelease", 'UseConfigure', 'GenerateSBOM', 'VerifySBOM'] Configure arguments: '-debug-and-release -force-debug-info -headersclean -nomake examples -qt-zlib' Environment variables: [ 'CMAKE_ARGS=-DFEATURE_msvc_obj_debug_info=ON -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_INCLUDE_x64}}\.. -DPostgreSQL_ROOT={{.Env.POSTGRESQL_LIB_x64}}\.. -DMySQL_ROOT={{.Env.ENV_MySQL_ROOT}} -DMySQL_LIBRARY_DIR={{.Env.ENV_MySQL_LIBRARY_DIR}}', @@ -163,9 +152,9 @@ Configurations: ] - Id: 'windows-11_23H2-msvc2022' - Template: 'qtci-windows-11_23H2-x86_64-53' + Template: 'qtci-windows-11_23H2-x86_64-54' Compiler: 'MSVC2022' - Features: ['PinCores', 'Sccache', "DebugAndRelease", 'UseConfigure', 'Packaging', 'GenerateSBOM', 'VerifySBOM'] + Features: ['Sccache', "DebugAndRelease", 'UseConfigure', 'Packaging', 'GenerateSBOM', 'VerifySBOM'] Configure arguments: '-debug-and-release -force-debug-info -headersclean -nomake examples -qt-zlib' Environment variables: [ 'CMAKE_ARGS=-DFEATURE_msvc_obj_debug_info=ON -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_INCLUDE_x64}}\.. -DPostgreSQL_ROOT={{.Env.POSTGRESQL_LIB_x64}}\..', @@ -175,9 +164,9 @@ Configurations: ] - Id: 'windows-11_22h2-arm64-msvc2022' - Template: 'qtci-windows-11_22H2-aarch64-54' + Template: 'qtci-windows-11_22H2-aarch64-55' Compiler: 'MSVC2022' - Features: ['PinCores', 'Packaging', 'DebugAndRelease', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM'] + Features: ['Packaging', 'DebugAndRelease', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM'] Configure arguments: '-debug-and-release -force-debug-info -headersclean -nomake examples -qt-zlib -no-opengl -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-psql -no-sql-mimer' Environment variables: [ 'CMAKE_ARGS=-DFEATURE_msvc_obj_debug_info=ON -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_INCLUDE_arm64}}\..', @@ -186,7 +175,7 @@ Configurations: ] - Id: 'windows-11_23H2-msvc2022-arm64' - Template: 'qtci-windows-11_23H2-x86_64-53' + Template: 'qtci-windows-11_23H2-x86_64-54' Compiler: 'MSVC2022' Target arch: 'arm64' Features: ['Sccache', 'DisableTests', 'TargetBuildOnly', 'Packaging', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM'] @@ -202,9 +191,9 @@ Configurations: ] - Id: 'windows-11_23H2-msvc2022-developer-build' - Template: 'qtci-windows-11_23H2-x86_64-53' + Template: 'qtci-windows-11_23H2-x86_64-54' Compiler: 'MSVC2022' - Features: ['PinCores', 'Sccache', 'DebugAndRelease', 'WarningsAreErrors', 'UseConfigure', 'StandaloneExamples'] + Features: ['Sccache', 'DebugAndRelease', 'WarningsAreErrors', 'UseConfigure', 'StandaloneExamples'] Configure arguments: '-debug-and-release -force-asserts -make examples -developer-build -force-debug-info -qt-zlib -c++std c++20' Environment variables: [ 'CMAKE_ARGS=-DFEATURE_msvc_obj_debug_info=ON -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_INCLUDE_x64}}\.. -DMySQL_ROOT={{.Env.ENV_MySQL_ROOT}} -DMySQL_LIBRARY_DIR={{.Env.ENV_MySQL_LIBRARY_DIR}}', @@ -216,7 +205,7 @@ Configurations: Id: 'rhel-8.10' Template: 'qtci-linux-RHEL-8.10-x86_64-51' Compiler: 'GCC' - Features: ['PinCores', 'Packaging', 'Sccache', 'UseConfigure', 'InstallQt5Dependencies', 'GenerateSBOM', 'VerifySBOM'] + Features: ['Packaging', 'Sccache', 'UseConfigure', 'InstallQt5Dependencies', 'GenerateSBOM', 'VerifySBOM'] Configure arguments: '-nomake examples -release -force-debug-info -headersclean -separate-debug-info -qt-libjpeg -qt-libpng -qt-pcre -qt-harfbuzz -qt-doubleconversion -no-libudev -bundled-xcb-xinput' Environment variables: [ 'CMAKE_ARGS=-DOpenGL_GL_PREFERENCE=LEGACY -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_HOME}}', @@ -226,7 +215,7 @@ Configurations: Id: 'rhel-9.4' Template: 'qtci-linux-RHEL-9.4-x86_64-50' Compiler: 'GCC' - Features: ['PinCores', 'Sccache', 'UseConfigure', 'InstallQt5Dependencies', 'GenerateSBOM', 'VerifySBOM'] + Features: ['Sccache', 'UseConfigure', 'InstallQt5Dependencies', 'GenerateSBOM', 'VerifySBOM'] Configure arguments: '-nomake examples -release -force-debug-info -headersclean -separate-debug-info -qt-libjpeg -qt-libpng -qt-pcre -qt-harfbuzz -qt-doubleconversion -no-libudev -bundled-xcb-xinput' Environment variables: [ 'CMAKE_ARGS=-DOpenGL_GL_PREFERENCE=LEGACY', @@ -247,9 +236,9 @@ Configurations: ] - Id: 'windows-10_22h2-mingw13' - Template: 'qtci-windows-10_22H2-x86_64-52' + Template: 'qtci-windows-10_22H2-x86_64-53' Compiler: 'Mingw' - Features: ['PinCores', 'Packaging', 'Sccache', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM'] + Features: ['Packaging', 'Sccache', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM'] Configure arguments: '-release -force-debug-info -separate-debug-info -nomake examples' Environment variables: [ 'Path={{.Env.MINGW_PATH}}\bin;{{.Env.Path}}', @@ -260,9 +249,9 @@ Configurations: ] - Id: 'windows-11_23H2-llvm' - Template: 'qtci-windows-11_23H2-x86_64-53' + Template: 'qtci-windows-11_23H2-x86_64-54' Compiler: 'Clang' - Features: ['PinCores', 'Packaging','Sccache', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM'] + Features: ['Packaging','Sccache', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM'] Configure arguments: '-release -force-debug-info -separate-debug-info -nomake examples' Environment variables: [ 'Path=C:\llvm-mingw\bin;{{.Env.Path}}', @@ -273,9 +262,9 @@ Configurations: ] - Id: 'windows-11_23H2-mingw13-developer-build' - Template: 'qtci-windows-11_23H2-x86_64-53' + Template: 'qtci-windows-11_23H2-x86_64-54' Compiler: 'Mingw' - Features: ['PinCores', 'Sccache', 'WarningsAreErrors', 'UseConfigure', 'StandaloneExamples'] + Features: ['Sccache', 'WarningsAreErrors', 'UseConfigure', 'StandaloneExamples'] Configure arguments: '-developer-build -release -force-asserts -force-debug-info -separate-debug-info -make examples' Environment variables: [ 'Path={{.Env.MINGW_PATH}}\bin;{{.Env.Path}}', @@ -310,7 +299,19 @@ Configurations: 'COIN_EXTRA_DEBIAN_REPO=deb http://archive.ubuntu.com/ubuntu/ jammy main universe multiverse', 'COIN_SKIP_DEBIAN_MODULES=qt5 qtqa qtactiveqt qtdoc qtwebengine qtwebview', ] - +- + Id: 'bookworm-gles-arm64-debian-pkg-packaging' + Template: 'qtci-linux-Debian-11.6-aarch64-50' + Compiler: 'GCC' + Features: ['Packaging','DebianPackaging','DisableTests', 'Insignificant'] + Environment variables: [ + 'DEBIAN_RULES_REF=6.9_gles', + 'COIN_TARGET_DIST=tqtc-bookworm', + 'COIN_EXTRA_DEBIAN_PACKAGES={{.Env.HOME}}/debian_packages/', + 'COIN_SBUILD_CHROOT=stable-arm64-sbuild', + 'COIN_EXTRA_DEBIAN_REPO=deb http://deb.debian.org/debian/ bookworm main', + 'COIN_SKIP_DEBIAN_MODULES=qt5 qtqa qtactiveqt qtdoc qtwebengine qtwebview', + ] - # This configuration runs for every submodule, using externally # built qdoc and qattributionscanner binaries, to ensure that no @@ -320,6 +321,6 @@ Configurations: Id: 'documentation-warnings' Template: 'qtci-linux-Ubuntu-22.04-x86_64-51' Compiler: 'GCC' - Features: ['PinCores', 'Sccache', 'TestOnly', 'TestDocs', 'DoNotRunTestsButCreateTestWorkItem', 'DocsGenerationV2'] + Features: ['Sccache', 'TestOnly', 'TestDocs', 'DoNotRunTestsButCreateTestWorkItem', 'DocsGenerationV2'] Platform dependency: 'ubuntu-22.04' diff --git a/coin/platform_configs/cmake_platforms_qemu.yaml b/coin/platform_configs/cmake_platforms_qemu.yaml index dc42483d07c..8e64879aeb0 100644 --- a/coin/platform_configs/cmake_platforms_qemu.yaml +++ b/coin/platform_configs/cmake_platforms_qemu.yaml @@ -7,7 +7,7 @@ Configurations: Target arch: 'armv7' Compiler: 'GCC' Platform dependency: 'ubuntu-22.04' - Features: ['PinCores', 'Sccache', 'UseConfigure', 'InsignificantTests', 'StandaloneExamples'] + Features: ['Sccache', 'UseConfigure', 'InsignificantTests', 'StandaloneExamples'] Environment variables: [ 'TARGET_CONFIGURE_ARGS=-release -force-asserts -force-debug-info -developer-build -no-warnings-are-errors -make examples -qt-harfbuzz -device linux-imx7-g++ -device-option "CROSS_COMPILE={{.Env.QEMUARMV7_TOOLCHAIN_CROSS_COMPILE}}" -device-option "DISTRO_OPTS=hard-float boot2qt" -no-feature-forkfd_pidfd', 'TARGET_CMAKE_ARGS=-DCMAKE_TOOLCHAIN_FILE={{.Env.QEMUARMV7_TOOLCHAIN_FILE}} -DQT_FORCE_BUILD_TOOLS=ON', @@ -24,7 +24,7 @@ Configurations: Target arch: 'arm64' Compiler: 'GCC' Platform dependency: 'ubuntu-22.04' - Features: ['PinCores', 'Sccache', 'UseConfigure', 'InsignificantTests'] + Features: ['Sccache', 'UseConfigure', 'InsignificantTests'] Environment variables: [ 'TARGET_CONFIGURE_ARGS=-release -force-asserts -force-debug-info -developer-build -no-warnings-are-errors -nomake examples -qt-harfbuzz -device linux-generic-g++ -device-option "CROSS_COMPILE={{.Env.QEMUARM64_TOOLCHAIN_CROSS_COMPILE}}" -device-option "DISTRO_OPTS=boot2qt" -no-feature-forkfd_pidfd', 'TARGET_CMAKE_ARGS=-DCMAKE_TOOLCHAIN_FILE={{.Env.QEMUARM64_TOOLCHAIN_FILE}} -DQT_FORCE_BUILD_TOOLS=ON', diff --git a/coin/platform_configs/cmake_platforms_qemu_qnx710.yaml b/coin/platform_configs/cmake_platforms_qemu_qnx710.yaml index a783cf8eaab..1dc43a8a64d 100644 --- a/coin/platform_configs/cmake_platforms_qemu_qnx710.yaml +++ b/coin/platform_configs/cmake_platforms_qemu_qnx710.yaml @@ -8,13 +8,14 @@ Configurations: Compiler: 'GCC' Target compiler: 'QCC' Platform dependency: 'ubuntu-22.04' - Features: ['PinCores', 'Packaging', 'VMSize8', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM'] + Features: ['Packaging', 'VMSize8', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM'] Environment variables: [ 'TARGET_CONFIGURE_ARGS=-release -force-debug-info -developer-build -no-dbus -nomake examples', 'TARGET_CMAKE_ARGS=-DCMAKE_TOOLCHAIN_FILE={{.Env.QNX_710}}/qnx-toolchain-x8664.cmake -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON', 'QT_CMAKE_DIR=/opt/cmake-3.30.5/bin', 'QNX_TEST_ENV=LD_LIBRARY_PATH={{.Env.QNX_QEMU_LD_LIBRARY_PATH}} QSG_RHI_BACKEND=software QT_QPA_PLATFORM=offscreen QTEST_ENVIRONMENT=ci', 'NON_QTBASE_TARGET_CMAKE_ARGS= -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include', + 'QNX_QEMU={{.Env.QNX_710_QEMU}}', ] - Id: 'qnx-710-arm64-on-linux' diff --git a/coin/platform_configs/cmake_platforms_qemu_vxworks_tests_static.yaml b/coin/platform_configs/cmake_platforms_qemu_vxworks_tests_static.yaml index 278196f0e3e..86a49720da2 100644 --- a/coin/platform_configs/cmake_platforms_qemu_vxworks_tests_static.yaml +++ b/coin/platform_configs/cmake_platforms_qemu_vxworks_tests_static.yaml @@ -8,7 +8,7 @@ Configurations: Compiler: 'Clang' Target compiler: 'Clang' Platform dependency: 'vxworks-imx6-buildtest' - Features: ['PinCores', 'VMSize8', 'UseConfigure', 'BuildTestsInTest', 'TestOnly'] + Features: ['VMSize8', 'UseConfigure', 'BuildTestsInTest', 'TestOnly', 'InsignificantTests'] Environment variables: [ 'WIND_CC_SYSROOT=/opt/fsl_imx6_2_0_6_2_VSB', 'VXWORKS_TEST_LIBS_PATH=/opt/fsl_imx6_2_0_6_2_VSB/usr/lib/common;/opt/fsl_imx6_2_0_6_2_VSB/usr/root/llvm/bin;/opt/fsl_imx6_2_0_6_2_VSB/usr/3pp/develop/usr/lib;/home/qt/work/install/target/lib', @@ -23,7 +23,7 @@ Configurations: Compiler: 'Clang' Target compiler: 'Clang' Platform dependency: 'vxworks-x86_64-buildtest' - Features: ['PinCores', 'VMSize8', 'UseConfigure', 'BuildTestsInTest', 'TestOnly', 'InsignificantTests'] + Features: ['VMSize8', 'UseConfigure', 'BuildTestsInTest', 'TestOnly', 'InsignificantTests'] Environment variables: [ 'WIND_CC_SYSROOT=/opt/itl_generic_skylake_VSB', 'VXWORKS_TEST_LIBS_PATH=/opt/itl_generic_skylake_VSB/usr/lib/common;/opt/itl_generic_skylake_VSB/usr/root/llvm/bin;/opt/itl_generic_skylake_VSB/usr/3pp/develop/usr/lib;/home/qt/work/install/target/lib', diff --git a/coin/platform_configs/cmake_platforms_static_release.yaml b/coin/platform_configs/cmake_platforms_static_release.yaml index 6bd5f994edb..08d8fe614a3 100644 --- a/coin/platform_configs/cmake_platforms_static_release.yaml +++ b/coin/platform_configs/cmake_platforms_static_release.yaml @@ -3,7 +3,7 @@ Configurations: - Id: 'windows-11_23H2-msvc2022-minimal-static-test' - Template: 'qtci-windows-11_23H2-x86_64-53' + Template: 'qtci-windows-11_23H2-x86_64-54' Compiler: 'MSVC2022' Features: ['Sccache', 'UseConfigure', 'Packaging', 'MinimalStaticTests'] Configure arguments: '-static -release -headersclean -nomake examples -qt-libjpeg -no-icu -qt-doubleconversion -qt-zlib -c++std c++20 -no-feature-sql-psql' @@ -15,7 +15,7 @@ Configurations: ] - Id: 'windows-11_22h2-arm64-msvc2022-minimal-static-test' - Template: 'qtci-windows-11_22H2-aarch64-53' + Template: 'qtci-windows-11_22H2-aarch64-55' Compiler: 'MSVC2022' Features: ['UseConfigure', 'InsignificantTests', 'Packaging', 'MinimalStaticTests'] Configure arguments: '-static -release -headersclean -nomake examples -qt-libjpeg -no-icu -qt-doubleconversion -qt-zlib -c++std c++17 -no-sql-psql' @@ -53,9 +53,8 @@ Configurations: Features: ['Packaging', 'Sccache', 'DoNotRunTests', 'WarningsAreErrors', 'UseConfigure', 'MinimalStaticTests'] Configure arguments: '-static -nomake examples -release -no-framework -no-icu -qt-doubleconversion -no-feature-sql-psql' Environment variables: [ - 'CMAKE_ARGS=-DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DODBC_ROOT=/usr/local/opt/libiodbc -DPostgreSQL_ROOT={{.Env.POSTGRESQLBINPATH}}/.. -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_DIR}}', + 'CMAKE_ARGS=-DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_DIR}}', 'NON_QTBASE_CMAKE_ARGS=-DCMAKE_BUILD_TYPE=Release -DFEATURE_gds=OFF -DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DFEATURE_native_grpc=OFF', - 'Protobuf_ROOT=/usr/local/lib/cmake/protobuf' ] - diff --git a/coin/platform_configs/cmake_platforms_static_tests.yaml b/coin/platform_configs/cmake_platforms_static_tests.yaml index ac5dbd22e12..8053d8c995b 100644 --- a/coin/platform_configs/cmake_platforms_static_tests.yaml +++ b/coin/platform_configs/cmake_platforms_static_tests.yaml @@ -2,9 +2,9 @@ Version: 2 Configurations: - Id: 'sles-15_sp5-minimal-static' - Template: 'qtci-linux-SLES-15_SP5-x86_64-50' + Template: 'qtci-linux-SLES-15_SP5-x86_64-51' Compiler: 'GCC' - Features: ['PinCores', 'Sccache', 'MinimalStaticTests', 'UseConfigure'] + Features: ['Sccache', 'MinimalStaticTests', 'UseConfigure'] Configure arguments: '-nomake examples -static -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-psql -no-sql-mimer' Environment variables: [ 'CMAKE_ARGS=-DOPENSSL_ROOT_DIR={{.Env.OPENSSL_HOME}}' @@ -20,9 +20,9 @@ Configurations: ] - Id: 'windows-11_23H2-minimal-static' - Template: 'qtci-windows-11_23H2-x86_64-53' + Template: 'qtci-windows-11_23H2-x86_64-54' Compiler: 'MSVC2022' - Features: ['PinCores', 'Sccache', 'MinimalStaticTests', 'UseConfigure'] + Features: ['Sccache', 'MinimalStaticTests', 'UseConfigure'] Configure arguments: '-release -force-debug-info -static -nomake examples -qt-zlib -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-psql -no-sql-mimer' Environment variables: [ 'CMAKE_ARGS=-DFEATURE_msvc_obj_debug_info=ON -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_INCLUDE_x64}}\..', @@ -34,5 +34,5 @@ Configurations: Id: 'macos-minimal-static' Template: 'qtci-macos-14-arm-106' Compiler: 'Clang' - Features: ['PinCores', 'Sccache', 'MinimalStaticTests', 'UseConfigure'] + Features: ['Sccache', 'MinimalStaticTests', 'UseConfigure'] Configure arguments: '-nomake examples -release -force-debug-info -static -no-framework' diff --git a/coin/platform_configs/cmake_platforms_target_android.yaml b/coin/platform_configs/cmake_platforms_target_android.yaml index 32a50fda397..369bd5339c1 100644 --- a/coin/platform_configs/cmake_platforms_target_android.yaml +++ b/coin/platform_configs/cmake_platforms_target_android.yaml @@ -17,7 +17,7 @@ Configurations: ] - Id: 'android-armv7-on-windows' - Template: 'qtci-windows-10_22H2-x86_64-52' + Template: 'qtci-windows-10_22H2-x86_64-53' Target os: 'Android_ANY' Target arch: 'armv7' Compiler: 'Mingw' @@ -39,7 +39,7 @@ Configurations: Compiler: 'GCC' Target compiler: 'Clang' Platform dependency: 'rhel-8.10' - Features: ['PinCores', 'Packaging', 'Sccache', 'WarningsAreErrors', 'AndroidTestRun', 'VMSize8', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM'] + Features: ['Packaging', 'Sccache', 'WarningsAreErrors', 'AndroidTestRun', 'VMSize8', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM'] Environment variables: [ 'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_DEFAULT}} -android-sdk {{.Env.ANDROID_SDK_ROOT}} -android-abis x86', 'TARGET_CMAKE_ARGS=-DCMAKE_C_COMPILER_FRONTEND_VARIANT=GNU -DCMAKE_CXX_COMPILER_FRONTEND_VARIANT=GNU -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_ANDROID_HOME_DEFAULT}} -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON', @@ -47,22 +47,6 @@ Configurations: 'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_DEFAULT}}', 'ANDROID_EMULATOR=emulator_x86_api_28' ] -- - Id: 'android-14-x86_64-on-linux' - Template: 'qtci-linux-RHEL-8.10-x86_64-51' - Target os: 'Android_ANY' - Target arch: 'x86_64' - Compiler: 'GCC' - Target compiler: 'Clang' - Platform dependency: 'rhel-8.10' - Features: ['PinCores', 'Packaging', 'Sccache', 'WarningsAreErrors', 'AndroidTestRun', 'VMSize8', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM'] - Environment variables: [ - 'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_DEFAULT}} -android-sdk {{.Env.ANDROID_SDK_ROOT}} -android-abis x86_64', - 'TARGET_CMAKE_ARGS=-DCMAKE_C_COMPILER_FRONTEND_VARIANT=GNU -DCMAKE_CXX_COMPILER_FRONTEND_VARIANT=GNU -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_ANDROID_HOME_DEFAULT}} -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON', - 'NON_QTBASE_TARGET_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID_X86_64}} -DQT_DEPLOY_FFMPEG=TRUE -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include', - 'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_DEFAULT}}', - 'ANDROID_EMULATOR=emulator_x86_64_api_34' - ] - Id: 'android-15-x86_64-on-linux' Template: 'qtci-linux-RHEL-8.10-x86_64-51' @@ -71,7 +55,7 @@ Configurations: Compiler: 'GCC' Target compiler: 'Clang' Platform dependency: 'rhel-8.10' - Features: ['PinCores', 'Packaging', 'Sccache', 'WarningsAreErrors', 'AndroidTestRun', 'VMSize8', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM', 'InsignificantTests'] + Features: ['Packaging', 'Sccache', 'WarningsAreErrors', 'AndroidTestRun', 'VMSize8', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM'] Environment variables: [ 'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_DEFAULT}} -android-sdk {{.Env.ANDROID_SDK_ROOT}} -android-abis x86_64', 'TARGET_CMAKE_ARGS=-DCMAKE_C_COMPILER_FRONTEND_VARIANT=GNU -DCMAKE_CXX_COMPILER_FRONTEND_VARIANT=GNU -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_ANDROID_HOME_DEFAULT}} -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON', diff --git a/coin/platform_configs/cmake_platforms_wasm.yaml b/coin/platform_configs/cmake_platforms_wasm.yaml index 4ee7839ef1d..57d7a4c81df 100644 --- a/coin/platform_configs/cmake_platforms_wasm.yaml +++ b/coin/platform_configs/cmake_platforms_wasm.yaml @@ -2,36 +2,25 @@ Version: 2 Configurations: - Id: 'webassembly-linux-thread-asyncify' - Template: 'qtci-linux-openSUSE-15.5-x86_64-52' - Target os: 'WebAssembly' - Compiler: 'GCC' - Platform dependency: 'opensuse-15.5-developer-build' - Features: ['Sccache', 'DoNotRunTests', 'UseConfigure'] - Environment variables: [ - 'EM_CONFIG={{.Env.EMSDK}}/.emscripten', - "TARGET_CONFIGURE_ARGS=-release -platform wasm-emscripten -nomake examples -feature-thread \ - -feature-exceptions -DQT_QMAKE_DEVICE_OPTIONS=\"QT_EMSCRIPTEN_ASYNCIFY=1\"" - ] -- - Id: 'webassembly-linux-thread-asyncify-openSUSE-15.6' Template: 'qtci-linux-openSUSE-15.6-x86_64-51' Target os: 'WebAssembly' Compiler: 'GCC' Platform dependency: 'opensuse-15.6-developer-build' - Features: ['Sccache', 'DoNotRunTests', 'UseConfigure'] + Features: ['DoNotRunTests', 'UseConfigure'] Environment variables: [ 'EM_CONFIG={{.Env.EMSDK}}/.emscripten', "TARGET_CONFIGURE_ARGS=-release -platform wasm-emscripten -nomake examples -feature-thread \ - -DQT_QMAKE_DEVICE_OPTIONS=\"QT_EMSCRIPTEN_ASYNCIFY=1\"" + -feature-exceptions -DQT_QMAKE_DEVICE_OPTIONS=\"QT_EMSCRIPTEN_ASYNCIFY=1\"", + 'HEADLESS_CHROME_FOR_TESTING=true' ] - Id: 'webassembly-windows' - Template: 'qtci-windows-10_22H2-x86_64-52' + Template: 'qtci-windows-10_22H2-x86_64-53' Target os: 'WebAssembly' Compiler: 'Mingw' Target compiler: 'Clang' Platform dependency: 'windows-10_22h2-mingw13' - Features: ['Packaging', 'Sccache', 'DisableTests', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM'] + Features: ['Packaging','DisableTests', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM'] Environment variables: [ 'Path={{.Env.EMSDK_PATH}};{{.Env.MINGW_PATH}}\bin;{{.Env.Path}}', 'EM_CONFIG={{.Env.EMSDK}}/.emscripten', @@ -41,24 +30,11 @@ Configurations: ] - Id: 'webassembly-linux-thread' - Template: 'qtci-linux-openSUSE-15.5-x86_64-52' - Target os: 'WebAssembly' - Compiler: 'GCC' - Platform dependency: 'opensuse-15.5-developer-build' - Features: ['Packaging', 'Sccache', 'DisableTests', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM'] - Environment variables: [ - 'EM_CONFIG={{.Env.EMSDK}}/.emscripten', - 'TARGET_CONFIGURE_ARGS=-release -platform wasm-emscripten -nomake examples -feature-thread', - 'NON_QTBASE_TARGET_CMAKE_ARGS=-DQT_ADDITIONAL_HOST_PACKAGES_PREFIX_PATH=/usr/local -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include', - 'TARGET_CMAKE_ARGS=-DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON' - ] -- - Id: 'webassembly-linux-thread-openSUSE-15.6' Template: 'qtci-linux-openSUSE-15.6-x86_64-51' Target os: 'WebAssembly' Compiler: 'GCC' Platform dependency: 'opensuse-15.6-developer-build' - Features: ['Sccache', 'DisableTests', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM'] + Features: ['Packaging', 'DisableTests', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM'] Environment variables: [ 'EM_CONFIG={{.Env.EMSDK}}/.emscripten', 'TARGET_CONFIGURE_ARGS=-release -platform wasm-emscripten -nomake examples -feature-thread', @@ -67,24 +43,11 @@ Configurations: ] - Id: 'webassembly-linux-shared' - Template: 'qtci-linux-openSUSE-15.5-x86_64-52' - Target os: 'WebAssembly' - Compiler: 'GCC' - Platform dependency: 'opensuse-15.5-developer-build' - Features: ['Sccache', 'DisableTests', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM'] - Environment variables: [ - 'EM_CONFIG={{.Env.EMSDK}}/.emscripten', - 'TARGET_CONFIGURE_ARGS=-release -platform wasm-emscripten -no-feature-thread -nomake tests -nomake examples -shared', - 'NON_QTBASE_TARGET_CMAKE_ARGS=-DQT_ADDITIONAL_HOST_PACKAGES_PREFIX_PATH=/usr/local -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include', - 'TARGET_CMAKE_ARGS=-DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON' - ] -- - Id: 'webassembly-linux-shared-openSUSE-15.6' Template: 'qtci-linux-openSUSE-15.6-x86_64-51' Target os: 'WebAssembly' Compiler: 'GCC' Platform dependency: 'opensuse-15.6-developer-build' - Features: ['Sccache', 'DisableTests', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM'] + Features: ['DisableTests', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM'] Environment variables: [ 'EM_CONFIG={{.Env.EMSDK}}/.emscripten', 'TARGET_CONFIGURE_ARGS=-release -platform wasm-emscripten -no-feature-thread -nomake tests -nomake examples -shared', diff --git a/coin/platform_configs/ios-tests.yaml b/coin/platform_configs/ios-tests.yaml index f05645e95d0..1cfb652f77e 100644 --- a/coin/platform_configs/ios-tests.yaml +++ b/coin/platform_configs/ios-tests.yaml @@ -2,13 +2,13 @@ Version: 2 Configurations: - Id: "ios-tests-on-macos" - Template: 'qtci-macos-13-x86_64-103' + Template: 'qtci-macos-14-arm-106' Target os: 'IOS_ANY' Target arch: 'arm64' Compiler: 'Clang' Target compiler: 'Clang' Platform dependency: 'macos-universal-on-x86_64' - Features: ['PinCores', 'Sccache', 'DebugAndRelease', 'MinimalStaticTests', 'UseConfigure'] + Features: ['Sccache', 'DebugAndRelease', 'MinimalStaticTests', 'UseConfigure'] Environment variables: [ 'TARGET_CONFIGURE_ARGS=-debug-and-release -nomake examples -platform macx-ios-clang' ] diff --git a/coin/platform_configs/linux_android_tests_multi_abi.yaml b/coin/platform_configs/linux_android_tests_multi_abi.yaml index 18af40abaa1..8188a2ba93c 100644 --- a/coin/platform_configs/linux_android_tests_multi_abi.yaml +++ b/coin/platform_configs/linux_android_tests_multi_abi.yaml @@ -10,10 +10,9 @@ Configurations: Platform dependency: [ 'rhel-8.10', 'android-9-x86-on-linux', - 'android-14-x86_64-on-linux' + 'android-15-x86_64-on-linux' ] Features: [ - 'PinCores', 'Sccache', 'WarningsAreErrors', 'AndroidTestRun', @@ -23,7 +22,7 @@ Configurations: Environment variables: [ 'QT_CI_ARTIFACT_ID_PATH_Android-host=QT_CI_ARTIFACT_ID_PATH_rhel-8.10', 'QT_CI_ARTIFACT_ID_PATH_Android-x86=QT_CI_ARTIFACT_ID_PATH_android-9-x86-on-linux', - 'QT_CI_ARTIFACT_ID_PATH_Android-x86_64=QT_CI_ARTIFACT_ID_PATH_android-14-x86_64-on-linux', + 'QT_CI_ARTIFACT_ID_PATH_Android-x86_64=QT_CI_ARTIFACT_ID_PATH_android-15-x86_64-on-linux', 'COMMON_TARGET_TEST_CMAKE_ARGS=-DQT_ANDROID_ABIS="x86;x86_64"', 'ANDROID_EMULATOR=emulator_x86_api_28' ] diff --git a/coin/platform_configs/macos.yaml b/coin/platform_configs/macos.yaml index ee848796c17..12d03ad4076 100644 --- a/coin/platform_configs/macos.yaml +++ b/coin/platform_configs/macos.yaml @@ -9,15 +9,14 @@ Configurations: - Id: 'macos-universal-on-x86_64' - Template: 'qtci-macos-14-x86_64-105' + Template: 'qtci-macos-15-x86_64-103' Compiler: 'Clang' Target arch: 'x86_64-arm64' Features: ['Packaging', 'Sccache', 'DoNotRunTests', 'WarningsAreErrors', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM'] Configure arguments: '-nomake examples -release -force-debug-info -separate-debug-info -headersclean -framework' Environment variables: [ - 'CMAKE_ARGS=-DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DODBC_ROOT=/usr/local/opt/libiodbc -DPostgreSQL_ROOT={{.Env.POSTGRESQLBINPATH}}/.. -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_DIR}}', + 'CMAKE_ARGS=-DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_DIR}}', 'NON_QTBASE_CMAKE_ARGS=-DFEATURE_gds=OFF -DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE -DINPUT_headersclean=ON -DQT_FEATURE_open62541_security=OFF', - 'Protobuf_ROOT=/usr/local/lib/cmake/protobuf' ] - @@ -29,7 +28,6 @@ Configurations: Configure arguments: '-nomake examples -release -force-debug-info -separate-debug-info -headersclean -framework' Environment variables: [ 'CMAKE_ARGS=-DCMAKE_OSX_ARCHITECTURES="x86_64;arm64"', - 'Protobuf_ROOT=/usr/local/lib/cmake/protobuf', 'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE -DINPUT_headersclean=ON', ] @@ -53,7 +51,7 @@ Configurations: Id: 'macos-15-x86_64-tests' Template: 'qtci-macos-15-x86_64-103' Compiler: 'Clang' - Features: ['Sccache', 'TestOnly', 'Packaging', 'InsignificantTests'] + Features: ['Sccache', 'TestOnly', 'Packaging'] Platform dependency: 'macos-universal-on-x86_64' # And arm64 @@ -74,7 +72,7 @@ Configurations: Id: 'macos-15-arm64-tests' Template: 'qtci-macos-15-arm-104' Compiler: 'Clang' - Features: ['TestOnly', 'Packaging', 'InsignificantTests'] + Features: ['TestOnly', 'Packaging'] Platform dependency: 'macos-universal-on-x86_64' # Test the universal packaging built on arm64 @@ -119,7 +117,6 @@ Configurations: Environment variables: [ 'CMAKE_ARGS=-DOPENSSL_ROOT_DIR={{.Env.OPENSSL_DIR}}', 'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE', - 'Protobuf_ROOT=/usr/local/lib/cmake/protobuf', ] - Id: 'macos-14-arm64-developer-build' @@ -129,7 +126,6 @@ Configurations: Configure arguments: '-developer-build -nomake examples -debug -framework' Environment variables: [ 'CMAKE_ARGS=-DOPENSSL_ROOT_DIR={{.Env.OPENSSL_DIR}}', - 'Protobuf_ROOT=/usr/local/lib/cmake/protobuf', 'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE', ] diff --git a/coin/platform_configs/nightly_qnx710_host_windows.yaml b/coin/platform_configs/nightly_qnx710_host_windows.yaml index a4e1bed2022..134283082ef 100644 --- a/coin/platform_configs/nightly_qnx710_host_windows.yaml +++ b/coin/platform_configs/nightly_qnx710_host_windows.yaml @@ -1,21 +1,22 @@ Version: 2 Include: [ cmake_platforms.yaml: [ - windows-10_22h2-msvc2019-developer-build + windows-10_22h2-mingw13 ] ] Configurations: - Id: 'qnx-710-arm64-on-windows' - Template: 'qtci-windows-10_22H2-x86_64-52' + Template: 'qtci-windows-10_22H2-x86_64-53' Target os: 'QNX_710' Target arch: 'arm64' - Compiler: 'MSVC2019' + Compiler: 'Mingw' Target compiler: 'QCC' - Platform dependency: 'windows-10_22h2-msvc2019-developer-build' + Platform dependency: 'windows-10_22h2-mingw13' Features: ['DisableTests', 'UseConfigure'] Environment variables: [ + 'Path={{.Env.MINGW_PATH}}\bin;{{.Env.Path}}', 'TARGET_CONFIGURE_ARGS=-release -force-debug-info -no-dbus -nomake examples -no-pch', - 'TARGET_CMAKE_ARGS=-DCMAKE_TOOLCHAIN_FILE={{.Env.QNX_710}}\qnx-toolchain-aarch64le.cmake -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON -G "Ninja"', - 'NON_QTBASE_TARGET_CMAKE_ARGS=-DCMAKE_BUILD_WITH_INSTALL_RPATH=ON' + 'TARGET_CMAKE_ARGS=-DCMAKE_TOOLCHAIN_FILE={{.Env.QNX_710}}\qnx-toolchain-aarch64le.cmake -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON', + 'NON_QTBASE_TARGET_CMAKE_ARGS=-DCMAKE_BUILD_WITH_INSTALL_RPATH=ON -DQT_ADDITIONAL_HOST_PACKAGES_PREFIX_PATH={{.Env.Protobuf_ROOT_mingw}} -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR={{.Env.Protobuf_ROOT_mingw}}/include' ] diff --git a/coin/platform_configs/nightly_unity_builds.yaml b/coin/platform_configs/nightly_unity_builds.yaml index 73bb0b13d51..7743c714936 100644 --- a/coin/platform_configs/nightly_unity_builds.yaml +++ b/coin/platform_configs/nightly_unity_builds.yaml @@ -2,7 +2,7 @@ Version: 2 Configurations: - Id: 'windows-11_23H2-msvc2022-unity-build' - Template: 'qtci-windows-11_23H2-x86_64-53' + Template: 'qtci-windows-11_23H2-x86_64-54' Compiler: 'MSVC2022' Features: ['Sccache', 'Debug', 'UseConfigure', 'DoNotRunTests'] Configure arguments: '-debug -force-debug-info -headersclean -make examples -qt-zlib' @@ -53,6 +53,5 @@ Configurations: Configure arguments: '-make examples -debug -force-debug-info -separate-debug-info -headersclean -framework' Environment variables: [ 'CMAKE_ARGS=-DCMAKE_OSX_ARCHITECTURES="x86_64;arm64"', - 'Protobuf_ROOT=/usr/local/lib/cmake/protobuf', 'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE -DINPUT_headersclean=ON -DQT_UNITY_BUILD=ON', ] diff --git a/coin/platform_configs/precheck.yaml b/coin/platform_configs/precheck.yaml index 04010258194..c32948295bc 100644 --- a/coin/platform_configs/precheck.yaml +++ b/coin/platform_configs/precheck.yaml @@ -9,7 +9,7 @@ Include: [ "ios-universal" ], macos.yaml: [ - "macos-14-arm64-developer-build", + "macos-arm64-developer-build", "macos-14-arm64-developer-build-tests", ], cmake_platforms_target_android.yaml: [ diff --git a/coin/platform_configs/qmake2cmake.yaml b/coin/platform_configs/qmake2cmake.yaml index 9ffcbaee45f..deabdf009b8 100644 --- a/coin/platform_configs/qmake2cmake.yaml +++ b/coin/platform_configs/qmake2cmake.yaml @@ -2,7 +2,7 @@ Version: 2 Module only: True Configurations: - - Template: 'qtci-windows-10_22H2-x86_64-52' + Template: 'qtci-windows-10_22H2-x86_64-53' Compiler: 'MSVC2019' Features: ['DisableTests'] - diff --git a/coin/platform_configs/qt-creator.yaml b/coin/platform_configs/qt-creator.yaml index c30819a54f3..9091821a654 100644 --- a/coin/platform_configs/qt-creator.yaml +++ b/coin/platform_configs/qt-creator.yaml @@ -2,7 +2,7 @@ Version: 2 Module only: True Configurations: - - Template: 'qtci-windows-10_22H2-x86_64-52' + Template: 'qtci-windows-11_23H2-x86_64-54' Compiler: 'MSVC2022' Features: ['Sccache', 'DebugAndRelease'] Configure arguments: '' @@ -15,7 +15,7 @@ Configurations: Configure arguments: '' Environment variables: [] - - Template: 'qtci-linux-Debian-11.6-aarch64-50' + Template: 'qtci-linux-Ubuntu-24.04-aarch64-50' Compiler: 'GCC' Features: ['Sccache', 'DebugAndRelease'] Configure arguments: '' @@ -28,7 +28,7 @@ Configurations: Environment variables: [] # without tests - - Template: 'qtci-windows-10_22H2-x86_64-52' + Template: 'qtci-windows-11_23H2-x86_64-54' Compiler: 'MSVC2022' Features: ['Sccache', 'DebugAndRelease', 'DisableTests'] Configure arguments: '' @@ -36,7 +36,7 @@ Configurations: Environment script: ['%ProgramFiles%\Microsoft Visual Studio\2022\Professional\VC\Auxiliary\Build\vcvarsall.bat', 'amd64'] # oldest Qt version - - Template: 'qtci-windows-10_22H2-x86_64-52' + Template: 'qtci-windows-11_23H2-x86_64-54' Compiler: 'MSVC2022' Features: ['Sccache', 'DebugAndRelease', 'OldestQt'] Configure arguments: '' diff --git a/coin/platform_configs/qtbase.yaml b/coin/platform_configs/qtbase.yaml index eea3b14164c..e55ab01f97c 100644 --- a/coin/platform_configs/qtbase.yaml +++ b/coin/platform_configs/qtbase.yaml @@ -15,9 +15,6 @@ Include: [ Configurations: [] Overrides: # Make VxWorks tests insignificant. -- - Id: 'vxworks-imx6-tests' - Features: ['PinCores', 'VMSize8', 'UseConfigure', 'BuildTestsInTest', 'TestOnly', 'InsignificantTests'] - Id: 'vxworks-x86_64-tests' - Features: ['PinCores', 'VMSize8', 'UseConfigure', 'BuildTestsInTest', 'TestOnly', 'InsignificantTests'] + Features: ['VMSize8', 'UseConfigure', 'BuildTestsInTest', 'TestOnly', 'InsignificantTests'] diff --git a/coin/platform_configs/qtcharts.yaml b/coin/platform_configs/qtcharts.yaml index f38904c857e..80f720d7ca4 100644 --- a/coin/platform_configs/qtcharts.yaml +++ b/coin/platform_configs/qtcharts.yaml @@ -10,7 +10,7 @@ Overrides: # Make VxWorks tests insignificant. - Id: 'vxworks-imx6-tests' - Features: ['PinCores', 'VMSize8', 'UseConfigure', 'BuildTestsInTest', 'TestOnly', 'InsignificantTests'] + Features: ['VMSize8', 'UseConfigure', 'BuildTestsInTest', 'TestOnly', 'InsignificantTests'] - Id: 'vxworks-x86_64-tests' - Features: ['PinCores', 'VMSize8', 'UseConfigure', 'BuildTestsInTest', 'TestOnly', 'InsignificantTests'] + Features: ['VMSize8', 'UseConfigure', 'BuildTestsInTest', 'TestOnly', 'InsignificantTests'] diff --git a/coin/platform_configs/qtdeclarative.yaml b/coin/platform_configs/qtdeclarative.yaml index f444fd1c5df..d0fe0e60772 100644 --- a/coin/platform_configs/qtdeclarative.yaml +++ b/coin/platform_configs/qtdeclarative.yaml @@ -14,7 +14,7 @@ Overrides: # Make VxWorks tests insignificant. - Id: 'vxworks-imx6-tests' - Features: ['PinCores', 'VMSize8', 'UseConfigure', 'BuildTestsInTest', 'TestOnly', 'InsignificantTests'] + Features: ['VMSize8', 'UseConfigure', 'BuildTestsInTest', 'TestOnly', 'InsignificantTests'] - Id: 'vxworks-x86_64-tests' - Features: ['PinCores', 'VMSize8', 'UseConfigure', 'BuildTestsInTest', 'TestOnly', 'InsignificantTests'] + Features: ['VMSize8', 'UseConfigure', 'BuildTestsInTest', 'TestOnly', 'InsignificantTests'] diff --git a/coin/platform_configs/qtgraphs.yaml b/coin/platform_configs/qtgraphs.yaml index 4f61e54aa13..be582f53341 100644 --- a/coin/platform_configs/qtgraphs.yaml +++ b/coin/platform_configs/qtgraphs.yaml @@ -6,8 +6,3 @@ Include: [ address_sanitizer_platforms.yaml ] Configurations: [] -Overrides: -# Make VxWorks arm tests insignificant. -- - Id: 'vxworks-imx6-tests' - Features: ['PinCores', 'VMSize8', 'UseConfigure', 'BuildTestsInTest', 'TestOnly', 'InsignificantTests'] diff --git a/coin/platform_configs/qtgrpc.yaml b/coin/platform_configs/qtgrpc.yaml index e6108d6209d..f2967349845 100644 --- a/coin/platform_configs/qtgrpc.yaml +++ b/coin/platform_configs/qtgrpc.yaml @@ -6,8 +6,3 @@ Include: [ address_sanitizer_platforms.yaml ] Configurations: [] -Overrides: -# Make VxWorks arm tests insignificant. -- - Id: 'vxworks-imx6-tests' - Features: ['PinCores', 'VMSize8', 'UseConfigure', 'BuildTestsInTest', 'TestOnly', 'InsignificantTests'] diff --git a/coin/platform_configs/qtimageformats.yaml b/coin/platform_configs/qtimageformats.yaml index 086990d78cd..ff56d2d5f15 100644 --- a/coin/platform_configs/qtimageformats.yaml +++ b/coin/platform_configs/qtimageformats.yaml @@ -11,4 +11,4 @@ Overrides: # Make VxWorks x86_64 tests insignificant. - Id: 'vxworks-x86_64-tests' - Features: ['PinCores', 'VMSize8', 'UseConfigure', 'BuildTestsInTest', 'TestOnly', 'InsignificantTests'] + Features: ['VMSize8', 'UseConfigure', 'BuildTestsInTest', 'TestOnly', 'InsignificantTests'] diff --git a/coin/platform_configs/qtquick3d.yaml b/coin/platform_configs/qtquick3d.yaml index fac4ba008f5..a055d59bcc5 100644 --- a/coin/platform_configs/qtquick3d.yaml +++ b/coin/platform_configs/qtquick3d.yaml @@ -11,4 +11,4 @@ Overrides: # Make VxWorks x86_64 tests insignificant. - Id: 'vxworks-x86_64-tests' - Features: ['PinCores', 'VMSize8', 'UseConfigure', 'BuildTestsInTest', 'TestOnly', 'InsignificantTests'] + Features: ['VMSize8', 'UseConfigure', 'BuildTestsInTest', 'TestOnly', 'InsignificantTests'] diff --git a/coin/platform_configs/qtsaferenderer-runtime.yaml b/coin/platform_configs/qtsaferenderer-runtime.yaml index f33170f1763..3a3e93ff21f 100644 --- a/coin/platform_configs/qtsaferenderer-runtime.yaml +++ b/coin/platform_configs/qtsaferenderer-runtime.yaml @@ -8,7 +8,6 @@ Include: [ cmake_platforms.yaml: [ "ubuntu-22.04", "ubuntu-22.04-developer-build", - "opensuse-15.5-developer-build", "opensuse-15.6-developer-build", "sles-15_sp5-static", "sles-15_sp6-static", diff --git a/coin/platform_configs/qtsaferenderer.yaml b/coin/platform_configs/qtsaferenderer.yaml index ed3db97f0c2..d0da81c1ab3 100644 --- a/coin/platform_configs/qtsaferenderer.yaml +++ b/coin/platform_configs/qtsaferenderer.yaml @@ -8,7 +8,6 @@ Include: [ cmake_platforms.yaml: [ "ubuntu-22.04", "ubuntu-22.04-developer-build", - "opensuse-15.5-developer-build", "opensuse-15.6-developer-build", "sles-15_sp5-static", "sles-15_sp6-static", @@ -49,7 +48,7 @@ Configurations: ] - Id: 'Windows-MSVC2022_Static' - Template: 'qtci-windows-10_22H2-x86_64-52' + Template: 'qtci-windows-10_22H2-x86_64-53' Compiler: 'MSVC2022' Features: ['Packaging', 'Sccache', 'UseConfigure', 'MinimalStaticTests'] Configure arguments: '-release -headersclean -nomake examples -qt-zlib -static -no-icu -no-sql-mysql -no-sql-odbc -no-sql-psql' diff --git a/coin/platform_configs/qtvirtualkeyboard.yaml b/coin/platform_configs/qtvirtualkeyboard.yaml index e20587af14a..34b1acbf6c0 100644 --- a/coin/platform_configs/qtvirtualkeyboard.yaml +++ b/coin/platform_configs/qtvirtualkeyboard.yaml @@ -10,7 +10,7 @@ Overrides: # Make VxWorks tests insignificant. - Id: 'vxworks-imx6-tests' - Features: ['PinCores', 'VMSize8', 'UseConfigure', 'BuildTestsInTest', 'TestOnly', 'InsignificantTests'] + Features: ['VMSize8', 'UseConfigure', 'BuildTestsInTest', 'TestOnly', 'InsignificantTests'] - Id: 'vxworks-x86_64-tests' - Features: ['PinCores', 'VMSize8', 'UseConfigure', 'BuildTestsInTest', 'TestOnly', 'InsignificantTests'] + Features: ['VMSize8', 'UseConfigure', 'BuildTestsInTest', 'TestOnly', 'InsignificantTests'] diff --git a/coin/platform_configs/qtwebkit.yaml b/coin/platform_configs/qtwebkit.yaml index 7230a74973e..d63d2c6bb96 100644 --- a/coin/platform_configs/qtwebkit.yaml +++ b/coin/platform_configs/qtwebkit.yaml @@ -1,7 +1,7 @@ Version: 2 Configurations: - - Template: 'qtci-windows-10_22H2-x86_64-52' + Template: 'qtci-windows-10_22H2-x86_64-53' Compiler: 'Mingw' Environment variables: ['PATH=C:\MINGW1120_i686\mingw32\bin;$PATH'] Features: ['Packaging', UseLegacyInstructions'] diff --git a/coin/platform_configs/tqtc-android-automotive.yaml b/coin/platform_configs/tqtc-android-automotive.yaml index 2d2bfa765ef..ae0d1bf0cf8 100644 --- a/coin/platform_configs/tqtc-android-automotive.yaml +++ b/coin/platform_configs/tqtc-android-automotive.yaml @@ -1,6 +1,7 @@ Version: 2 Include: [ cmake_platforms.yaml: [ + "documentation-warnings", "rhel-8.10", 'windows-10_22h2-mingw13', 'ubuntu-22.04-developer-build', @@ -13,8 +14,9 @@ Include: [ 'android-arm64-on-macos', 'android-armv7-on-windows', 'android-9-x86-on-linux', - 'android-14-x86_64-on-linux' - ] + 'android-15-x86_64-on-linux' + ], + offline_documentation.yaml ] Configurations: - diff --git a/coin/platform_configs/wasm_qtbase_tests.yaml b/coin/platform_configs/wasm_qtbase_tests.yaml index 36c897a79cc..ff2e5001208 100644 --- a/coin/platform_configs/wasm_qtbase_tests.yaml +++ b/coin/platform_configs/wasm_qtbase_tests.yaml @@ -2,15 +2,8 @@ Version: 2 Configurations: - Id: 'webassembly-linux-thread-asyncify-tests' - Template: 'qtci-linux-openSUSE-15.5-x86_64-52' - Target os: 'WebAssembly' - Compiler: 'GCC' - Features: ['PinCores', 'Sccache', 'TestOnly'] - Platform dependency: 'webassembly-linux-thread-asyncify' -- - Id: 'webassembly-linux-thread-asyncify-tests-openSUSE-15.6' Template: 'qtci-linux-openSUSE-15.6-x86_64-51' Target os: 'WebAssembly' Compiler: 'GCC' Features: ['Sccache', 'TestOnly'] - Platform dependency: 'webassembly-linux-thread-asyncify-openSUSE-15.6' + Platform dependency: 'webassembly-linux-thread-asyncify' diff --git a/coin/pre-provisioning/qtci-windows-10_22H2-x86_64/msvc2022.txt b/coin/pre-provisioning/qtci-windows-10_22H2-x86_64/msvc2022.txt index 09764b39602..1953083eb06 100644 --- a/coin/pre-provisioning/qtci-windows-10_22H2-x86_64/msvc2022.txt +++ b/coin/pre-provisioning/qtci-windows-10_22H2-x86_64/msvc2022.txt @@ -56,6 +56,10 @@ Windows 10 SDK (10.0.22000.0) Windows 10 SDK (10.0.22621.0) Windows Universal C Runtime +Windows SDK (10.0.26100.1742) was later downloaded and installed from: +https://developer.microsoft.com/en-us/windows/downloads/windows-sdk/ +# COIN-1206 + # NOTE! Work loads were added during installation! ############################################################ diff --git a/coin/pre-provisioning/qtci-windows-11_22H2-aarch64/msvc2022.txt b/coin/pre-provisioning/qtci-windows-11_22H2-aarch64/msvc2022.txt index 331a2615511..18c4e8882d6 100644 --- a/coin/pre-provisioning/qtci-windows-11_22H2-aarch64/msvc2022.txt +++ b/coin/pre-provisioning/qtci-windows-11_22H2-aarch64/msvc2022.txt @@ -56,6 +56,10 @@ Windows 11 SDK (10.0.22000.0) Windows 11 SDK (10.0.22621.0) Windows Universal C Runtime +Windows SDK (10.0.26100.1742) was later downloaded and installed from: +https://developer.microsoft.com/en-us/windows/downloads/windows-sdk/ +# COIN-1206 + # NOTE! Work loads were added during installation! ############################################################ diff --git a/coin/pre-provisioning/qtci-windows-11_23H2-x86_64/msvc2022.txt b/coin/pre-provisioning/qtci-windows-11_23H2-x86_64/msvc2022.txt index a5a0c41284c..2a13096667b 100644 --- a/coin/pre-provisioning/qtci-windows-11_23H2-x86_64/msvc2022.txt +++ b/coin/pre-provisioning/qtci-windows-11_23H2-x86_64/msvc2022.txt @@ -57,6 +57,10 @@ Windows 11 SDK (10.0.22000.0) Windows 11 SDK (10.0.22621.0) Windows Universal C Runtime +Windows SDK (10.0.26100.1742) was later downloaded and installed from: +https://developer.microsoft.com/en-us/windows/downloads/windows-sdk/ +# COIN-1206 + # NOTE! Work loads were added during installation! ############################################################ diff --git a/coin/provisioning/common/linux/android/gradle_project/app/build.gradle b/coin/provisioning/common/linux/android/gradle_project/app/build.gradle index 7f6b66acc9a..207c2dc8bf8 100644 --- a/coin/provisioning/common/linux/android/gradle_project/app/build.gradle +++ b/coin/provisioning/common/linux/android/gradle_project/app/build.gradle @@ -4,12 +4,12 @@ plugins { android { namespace 'com.example.gradle_project' - compileSdk 34 + compileSdk 35 defaultConfig { applicationId "com.example.gradle_project" minSdk 28 - targetSdk 34 + targetSdk 35 versionCode 1 versionName "1.0" } diff --git a/coin/provisioning/common/linux/android/gradle_project/gradle/libs.versions.toml b/coin/provisioning/common/linux/android/gradle_project/gradle/libs.versions.toml index f45e66b0903..5e65aa4e2f8 100644 --- a/coin/provisioning/common/linux/android/gradle_project/gradle/libs.versions.toml +++ b/coin/provisioning/common/linux/android/gradle_project/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -agp = "8.6.0" +agp = "8.8.0" core = "1.13.1" appcompat = "1.6.1" material = "1.11.0" @@ -15,4 +15,3 @@ constraintlayout = { group = "androidx.constraintlayout", name = "constraintlayo androidApplication = { id = "com.android.application", version.ref = "agp" } [bundles] - diff --git a/coin/provisioning/common/linux/android_linux.sh b/coin/provisioning/common/linux/android_linux.sh index 96b67a17ce2..90156b1ebc1 100755 --- a/coin/provisioning/common/linux/android_linux.sh +++ b/coin/provisioning/common/linux/android_linux.sh @@ -24,20 +24,15 @@ basePath="http://ci-files01-hki.ci.qt.io/input/android" toolsVersion="2.1" toolsFile="commandlinetools-linux-6609375_latest.zip" -ndkVersionLatest="r26b" +ndkVersionLatest="r27c" ndkVersionDefault=$ndkVersionLatest -sdkBuildToolsVersion="34.0.0" -sdkApiLevel="android-34" +sdkBuildToolsVersion="35.0.1" +sdkApiLevel="android-35" toolsSha1="9172381ff070ee2a416723c1989770cf4b0d1076" -ndkSha1Latest="fdf33d9f6c1b3f16e5459d53a82c7d2201edbcc4" +ndkSha1Latest="090e8083a715fdb1a3e402d0763c388abb03fb4e" ndkSha1Default=$ndkSha1Latest -# Android 14 avd zip -android14SystemZipName="android14system_UE1A_230829_036.tar.gz" -android14SystemZipSha="ede80c6901e8fad1895c97a86542b8e072bb1ee5" -android14SystemPath="$basePath/$android14SystemZipName" - # Android Automotive max SDK level image sdkApiLevelAutomotiveMax="android-34" androidAutomotiveMaxUrl="$basePath/${sdkApiLevelAutomotiveMax}_automotive.tar.gz" @@ -136,12 +131,12 @@ cd "$sdkTargetFolder/cmdline-tools/tools/bin" ./sdkmanager --install "emulator" --sdk_root="$sdkTargetFolder" \ | eval "$sdkmanager_no_progress_bar_cmd" -echo "Download and unzip Android Emulator version 34.1.19" -emulatorFileName="emulator-linux_x64-11525734.zip" +echo "Download and unzip Android Emulator version 35.2.10" +emulatorFileName="emulator-linux_x64-12414864.zip" emulatorCiUrl="https://ci-files01-hki.ci.qt.io/input/android/$emulatorFileName" emulatorUrl="http://dl.google.com/android/repository/$emulatorFileName" emulatorTargetFile="$sdkTargetFolder/$emulatorFileName" -emulatorSha1="d6cc94109b081c5f6042dcb71a453144f7e62ce7" +emulatorSha1="41dd213d120f727d8c3840347d234b135793ba10" DownloadURL "$emulatorCiUrl" "$emulatorUrl" "$emulatorSha1" "$emulatorTargetFile" echo "Unzipping the Android Emulator to '$sdkTargetFolder'" sudo unzip -o -q "$emulatorTargetFile" -d "$sdkTargetFolder" @@ -162,13 +157,20 @@ echo "Unzipping the Android 9 to $minVersionDestination" sudo unzip -o -q "$minVersionFilePath" -d "$minVersionDestination" rm "$minVersionFilePath" -echo "y" | ./sdkmanager --install "system-images;android-35;google_apis;x86_64" \ - | eval "$sdkmanager_no_progress_bar_cmd" +echo "Download and unzip Android 15 System Image" +maxVersionFileName="x86_64-35_r08.zip" +maxVersionDestination="$sdkTargetFolder/system-images/android-35/google_apis/" +maxVersionFilePath="$maxVersionDestination/$maxVersionFileName" +maxVersionCiUrl="$basePath/system-images/google_apis/$maxVersionFileName" +maxVersionUrl="https://dl.google.com/android/repository/sys-img/google_apis/$maxVersionFileName" +maxVersionSha1="d79169884cabc6680cb29d32c2112ad46c858c1b" -echo "Extract stored Android 14 Beta $android14SystemZipName" -DownloadURL "$android14SystemPath" "$android14SystemPath" "$android14SystemZipSha" \ - "/tmp/$android14SystemZipName" -sudo tar -xzf "/tmp/$android14SystemZipName" -C "$sdkTargetFolder/system-images" +mkdir -p "$maxVersionDestination" +DownloadURL "$maxVersionCiUrl" "$maxVersionUrl" "$maxVersionSha1" "$maxVersionFilePath" + +echo "Unzipping the Android 15 to $maxVersionDestination" +sudo unzip -o -q "$maxVersionFilePath" -d "$maxVersionDestination" +rm "$maxVersionFilePath" echo "Checking the contents of Android SDK again..." ls -l "$sdkTargetFolder" @@ -176,9 +178,6 @@ ls -l "$sdkTargetFolder" echo "no" | ./avdmanager create avd -n emulator_x86_api_28 -c 2048M -f \ -k "system-images;android-28;google_apis;x86" -echo "no" | ./avdmanager create avd -n emulator_x86_64_api_34 -c 2048M -f \ - -k "system-images;android-34;google_apis;x86_64" - echo "no" | ./avdmanager create avd -n emulator_x86_64_api_35 -c 2048M -f \ -k "system-images;android-35;google_apis;x86_64" @@ -211,7 +210,7 @@ cp -r "${scripts_dir_name}/android/gradle_project" /tmp/gradle_project cd /tmp/gradle_project # Get Gradle files from qtbase qtbaseGradleUrl="https://code.qt.io/cgit/qt/qtbase.git/plain/src/3rdparty/gradle" -commit_sha="8436455e2740000a817e0b8154e13f47e6abb68c" +commit_sha="e5f79573fe2f21cf7bea8f63386f39bb18b351f0" curl "$qtbaseGradleUrl/gradle.properties?h=$commit_sha" > gradle.properties curl "$qtbaseGradleUrl/gradlew?h=$commit_sha" > gradlew curl "$qtbaseGradleUrl/gradlew.bat?h=$commit_sha" > gradlew.bat diff --git a/coin/provisioning/common/linux/cmake_min_supported.sh b/coin/provisioning/common/linux/cmake_min_supported.sh index 4c64299bb24..7113fe47581 100755 --- a/coin/provisioning/common/linux/cmake_min_supported.sh +++ b/coin/provisioning/common/linux/cmake_min_supported.sh @@ -9,13 +9,13 @@ source "${BASH_SOURCE%/*}/../unix/InstallFromCompressedFileFromURL.sh" # shellcheck source=../unix/SetEnvVar.sh source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh" -majorminorversion="3.16" -version="3.16.8" -PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/cmake/cmake-$version-Linux-x86_64.tar.gz" -AltUrl="https://cmake.org/files/v$majorminorversion/cmake-$version-Linux-x86_64.tar.gz" -SHA1="a4d2f96f475ccc8e1ae1d97cf6c8ce39abaa9d7c" +majorminorversion="3.22" +version="3.22.6" +PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/cmake/cmake-$version-linux-x86_64.tar.gz" +AltUrl="https://cmake.org/files/v$majorminorversion/cmake-$version-linux-x86_64.tar.gz" +SHA1="4a5ba17568d108d295719850dd584e775583f61b" targetFolder="/opt/cmake-$version" -appPrefix="cmake-$version-Linux-x86_64" +appPrefix="cmake-$version-linux-x86_64" InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$SHA1" "$targetFolder" "$appPrefix" diff --git a/coin/provisioning/common/linux/configure-gnome-shell.sh b/coin/provisioning/common/linux/configure-gnome-shell.sh new file mode 100755 index 00000000000..ff1f4d655ba --- /dev/null +++ b/coin/provisioning/common/linux/configure-gnome-shell.sh @@ -0,0 +1,17 @@ +#!/usr/bin/env bash +# Copyright (C) 2024 The Qt Company Ltd +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +# This script modifies GNOME based Linux configurations + +set -ex + +# Desktop +echo "Disable blank screen power saving (timeout 0 = never)" +gsettings set org.gnome.desktop.session idle-delay 0 +echo "Disable Automatic screen lock when screensaver goes active" +gsettings set org.gnome.desktop.screensaver lock-enabled false +echo "Disable window animations." +gsettings set org.gnome.desktop.interface enable-animations false +echo "Disable hot corner feature" +gsettings set org.gnome.desktop.interface enable-hot-corners false diff --git a/coin/provisioning/common/linux/install-ffmpeg-linux.sh b/coin/provisioning/common/linux/install-ffmpeg-linux.sh new file mode 100755 index 00000000000..583c0b3a031 --- /dev/null +++ b/coin/provisioning/common/linux/install-ffmpeg-linux.sh @@ -0,0 +1,99 @@ +#!/usr/bin/env bash +# Copyright (C) 2024 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +# This script builds and installs FFmpeg static or shared (default) libs +set -ex + +source "${BASH_SOURCE%/*}/../unix/ffmpeg-installation-utils.sh" + +build_type=$(get_ffmpeg_build_type "$1") + +ffmpeg_source_dir=$(download_ffmpeg) +ffmpeg_name=$(basename "$ffmpeg_source_dir") +ffmpeg_config_options=$(get_ffmpeg_config_options "$build_type") +prefix="/usr/local/$ffmpeg_name" +pkgconfig_path="$PKG_CONFIG_PATH" + +install_ff_nvcodec_headers() { + local nv_codec_version="11.1" # use 11.1 to ensure compatibility with 470 nvidia drivers; might be upated to 12.0 + local nv_codec_url_public="https://github.com/FFmpeg/nv-codec-headers/archive/refs/heads/sdk/$nv_codec_version.zip" + local nv_codec_url_cached="http://ci-files01-hki.ci.qt.io/input/ffmpeg/nv-codec-headers/nv-codec-headers-sdk-$nv_codec_version.zip" + local nv_codec_sha1="ceb4966ab01b2e41f02074675a8ac5b331bf603e" + #nv_codec_sha1="4f30539f8dd31945da4c3da32e66022f9ca59c08" // 12.0 + local target_dir="$HOME" + local nv_codec_dir="$target_dir/nv-codec-headers-sdk-$nv_codec_version" + + if [ ! -d "$nv_codec_dir" ]; then + source "${BASH_SOURCE%/*}/../unix/InstallFromCompressedFileFromURL.sh" + InstallFromCompressedFileFromURL "$nv_codec_url_cached" "$nv_codec_url_public" "$nv_codec_sha1" "$target_dir" "" + fi + + sudo make -C "$nv_codec_dir" install -j + + # Might be not detected by default on RHEL + pkgconfig_path="$pkgconfig_path:/usr/local/lib/pkgconfig" +} + +fix_openssl3_pc_files() { + # On RHEL 8, openssl3 pc files are libopenssl3.pc, libssl3.pc, libcrypto3.pc, + # and FFmpeg cannot find them. Instead, it finds FFmpeg 1.x.x if it's installed. + # The function fixes the files with copying them to a custom directory + + # assign to 'local' to ignore failure exit codes + local -r openssl3_pcfiledir=$(pkg-config --variable=pcfiledir openssl3) + if [ -z "$openssl3_pcfiledir" ]; then + return + fi + + local pcfiles=("libssl" "libcrypto" "openssl") + + for pcfile in "${pcfiles[@]}"; do + if [ ! -f "$openssl3_pcfiledir/${pcfile}3.pc" ]; then + echo "pkgconfig has found openssl3 but the file $openssl3_pcfiledir/${pcfile}3.pc does't exist" + return + fi + done + + local new_pkgconfig_dir="$ffmpeg_source_dir/openssl3_pkgconfig" + mkdir -p "$new_pkgconfig_dir" + + for pcfile in "${pcfiles[@]}"; do + sed -E '/^Requires(\.private)?:/s/ (libssl|libcrypto)3/ \1/g;' "$openssl3_pcfiledir/${pcfile}3.pc" > "$new_pkgconfig_dir/${pcfile}.pc" + done + + pkgconfig_path="$new_pkgconfig_dir:$pkgconfig_path" +} + +build_ffmpeg() { + local build_dir="$ffmpeg_source_dir/build" + mkdir -p "$build_dir" + pushd "$build_dir" + + # shellcheck disable=SC2086 + PKG_CONFIG_PATH="$pkgconfig_path" "$ffmpeg_source_dir/configure" $ffmpeg_config_options --prefix="$prefix" + # shellcheck disable= + + # on RHEL patchelf is not visible under sudo, so we install to a temporary directory + make install DESTDIR="$build_dir/installed" -j + popd +} + + +ffmpeg_config_options+=" --enable-openssl" +fix_openssl3_pc_files +echo "pkg-config openssl version: $(pkg-config --modversion openssl)" + +install_ff_nvcodec_headers + +build_ffmpeg + +output_dir="$ffmpeg_source_dir/build/installed/$prefix" + +if [ "$build_type" == "shared" ]; then + fix_dependencies="${BASH_SOURCE%/*}/../shared/fix_ffmpeg_dependencies.sh" + "$fix_dependencies" "$output_dir" +fi + +sudo mv "$output_dir" "/usr/local" +set_ffmpeg_dir_env_var "FFMPEG_DIR" "$prefix" diff --git a/coin/provisioning/common/linux/qnx_710.sh b/coin/provisioning/common/linux/qnx_710.sh index 41d2d103509..874e7b4a932 100755 --- a/coin/provisioning/common/linux/qnx_710.sh +++ b/coin/provisioning/common/linux/qnx_710.sh @@ -26,12 +26,12 @@ DownloadAndExtract () { aarch64le_toolchain="${BASH_SOURCE%/*}/../shared/cmake_toolchain_files/qnx-toolchain-aarch64le.cmake" armv7le_toolchain="${BASH_SOURCE%/*}/../shared/cmake_toolchain_files/qnx-toolchain-armv7le.cmake" x8664_toolchain="${BASH_SOURCE%/*}/../shared/cmake_toolchain_files/qnx-toolchain-x8664.cmake" -QNX_qemu_bld_files_dir="${BASH_SOURCE%/*}/qnx_qemu_build_files/" +QNX_qemu_bld_files_dir="${BASH_SOURCE%/*}/qnx_qemu_build_files/710/" targetFolder="/opt/" folderName="qnx710" targetPath="$targetFolder$folderName" -qemuTargetPath="$HOME/QNX" +qemuTargetPath="$HOME/QNX710" qemuIpAddress="172.31.1.10" export qemuNetwork="172.31.1.1" qemuSSHuser="root" @@ -81,7 +81,7 @@ fi # Set env variables SetEnvVar "QNX_710" "$targetPath" -SetEnvVar "QNX_QEMU" "$qemuTargetPath" +SetEnvVar "QNX_710_QEMU" "$qemuTargetPath" SetEnvVar "QNX_QEMU_IPADDR" "$qemuIpAddress" SetEnvVar "QNX_QEMU_SSH" "$qemuSSHurl" SetEnvVar "QNX_QEMU_LD_LIBRARY_PATH" "$qemuLDpath" diff --git a/coin/provisioning/common/linux/qnx_800.sh b/coin/provisioning/common/linux/qnx_800.sh index 52545d416ae..77730602a62 100755 --- a/coin/provisioning/common/linux/qnx_800.sh +++ b/coin/provisioning/common/linux/qnx_800.sh @@ -26,12 +26,12 @@ DownloadAndExtract () { aarch64le_toolchain="${BASH_SOURCE%/*}/../shared/cmake_toolchain_files/qnx-toolchain-aarch64le.cmake" armv7le_toolchain="${BASH_SOURCE%/*}/../shared/cmake_toolchain_files/qnx-toolchain-armv7le.cmake" x8664_toolchain="${BASH_SOURCE%/*}/../shared/cmake_toolchain_files/qnx-toolchain-x8664.cmake" -QNX_qemu_bld_files_dir="${BASH_SOURCE%/*}/qnx_qemu_build_files/" +QNX_qemu_bld_files_dir="${BASH_SOURCE%/*}/qnx_qemu_build_files/800/" targetFolder="/opt/" folderName="qnx800" targetPath="$targetFolder$folderName" -qemuTargetPath="$HOME/QNX" +qemuTargetPath="$HOME/QNX800" qemuIpAddress="172.31.1.10" export qemuNetwork="172.31.1.1" qemuSSHuser="root" @@ -43,9 +43,9 @@ if [ ! -d "$targetFolder" ]; then fi # QNX SDP -sourceFile="http://ci-files01-hki.ci.qt.io/input/qnx/qnx800-linux-20240510.tar.xz" +sourceFile="http://ci-files01-hki.ci.qt.io/input/qnx/qnx800-windows-linux-20240930.tar.xz" targetFile="qnx800.tar.xz" -sha1="93245a5bc11b88563328f0763573942fd25b5e18" +sha1="a86d6e001e4ad46f50ed430fb85e8230e730751b" DownloadAndExtract "$sourceFile" "$sha1" "$targetFile" "$targetFolder" sudo cp "$aarch64le_toolchain" "$targetPath" @@ -81,5 +81,11 @@ fi # Set env variables SetEnvVar "QNX_800" "$targetPath" +SetEnvVar "QNX_800_QEMU" "$qemuTargetPath" +# These are common defines with QNX710 +SetEnvVar "QNX_QEMU_IPADDR" "$qemuIpAddress" +SetEnvVar "QNX_QEMU_SSH" "$qemuSSHurl" +SetEnvVar "QNX_QEMU_LD_LIBRARY_PATH" "$qemuLDpath" + echo "QNX SDP = 8.0.0" >> ~/versions.txt diff --git a/coin/provisioning/common/linux/qnx_qemu_build_files/local/misc_files/etc/hosts b/coin/provisioning/common/linux/qnx_qemu_build_files/710/local/misc_files/etc/hosts similarity index 100% rename from coin/provisioning/common/linux/qnx_qemu_build_files/local/misc_files/etc/hosts rename to coin/provisioning/common/linux/qnx_qemu_build_files/710/local/misc_files/etc/hosts diff --git a/coin/provisioning/common/linux/qnx_qemu_build_files/local/misc_files/etc/resolv.conf b/coin/provisioning/common/linux/qnx_qemu_build_files/710/local/misc_files/etc/resolv.conf similarity index 100% rename from coin/provisioning/common/linux/qnx_qemu_build_files/local/misc_files/etc/resolv.conf rename to coin/provisioning/common/linux/qnx_qemu_build_files/710/local/misc_files/etc/resolv.conf diff --git a/coin/provisioning/common/linux/qnx_qemu_build_files/local/opt_scripts/opt_nfs_qt b/coin/provisioning/common/linux/qnx_qemu_build_files/710/local/opt_scripts/opt_nfs_qt similarity index 100% rename from coin/provisioning/common/linux/qnx_qemu_build_files/local/opt_scripts/opt_nfs_qt rename to coin/provisioning/common/linux/qnx_qemu_build_files/710/local/opt_scripts/opt_nfs_qt diff --git a/coin/provisioning/common/linux/qnx_qemu_build_files/local/options b/coin/provisioning/common/linux/qnx_qemu_build_files/710/local/options similarity index 100% rename from coin/provisioning/common/linux/qnx_qemu_build_files/local/options rename to coin/provisioning/common/linux/qnx_qemu_build_files/710/local/options diff --git a/coin/provisioning/common/linux/qnx_qemu_build_files/local/snippets/data_files.custom b/coin/provisioning/common/linux/qnx_qemu_build_files/710/local/snippets/data_files.custom similarity index 100% rename from coin/provisioning/common/linux/qnx_qemu_build_files/local/snippets/data_files.custom rename to coin/provisioning/common/linux/qnx_qemu_build_files/710/local/snippets/data_files.custom diff --git a/coin/provisioning/common/linux/qnx_qemu_build_files/local/snippets/ifs_env.custom b/coin/provisioning/common/linux/qnx_qemu_build_files/710/local/snippets/ifs_env.custom similarity index 100% rename from coin/provisioning/common/linux/qnx_qemu_build_files/local/snippets/ifs_env.custom rename to coin/provisioning/common/linux/qnx_qemu_build_files/710/local/snippets/ifs_env.custom diff --git a/coin/provisioning/common/linux/qnx_qemu_build_files/local/snippets/passwd_file.builtin b/coin/provisioning/common/linux/qnx_qemu_build_files/710/local/snippets/passwd_file.builtin similarity index 100% rename from coin/provisioning/common/linux/qnx_qemu_build_files/local/snippets/passwd_file.builtin rename to coin/provisioning/common/linux/qnx_qemu_build_files/710/local/snippets/passwd_file.builtin diff --git a/coin/provisioning/common/linux/qnx_qemu_build_files/local/snippets/post_start.custom b/coin/provisioning/common/linux/qnx_qemu_build_files/710/local/snippets/post_start.custom similarity index 100% rename from coin/provisioning/common/linux/qnx_qemu_build_files/local/snippets/post_start.custom rename to coin/provisioning/common/linux/qnx_qemu_build_files/710/local/snippets/post_start.custom diff --git a/coin/provisioning/common/linux/qnx_qemu_build_files/local/snippets/shadow_file.builtin b/coin/provisioning/common/linux/qnx_qemu_build_files/710/local/snippets/shadow_file.builtin similarity index 100% rename from coin/provisioning/common/linux/qnx_qemu_build_files/local/snippets/shadow_file.builtin rename to coin/provisioning/common/linux/qnx_qemu_build_files/710/local/snippets/shadow_file.builtin diff --git a/coin/provisioning/common/linux/qnx_qemu_build_files/local/snippets/system_files.custom b/coin/provisioning/common/linux/qnx_qemu_build_files/710/local/snippets/system_files.custom similarity index 100% rename from coin/provisioning/common/linux/qnx_qemu_build_files/local/snippets/system_files.custom rename to coin/provisioning/common/linux/qnx_qemu_build_files/710/local/snippets/system_files.custom diff --git a/coin/provisioning/common/linux/qnx_qemu_build_files/local/snippets/uids.custom b/coin/provisioning/common/linux/qnx_qemu_build_files/710/local/snippets/uids.custom similarity index 100% rename from coin/provisioning/common/linux/qnx_qemu_build_files/local/snippets/uids.custom rename to coin/provisioning/common/linux/qnx_qemu_build_files/710/local/snippets/uids.custom diff --git a/coin/provisioning/common/linux/qnx_qemu_build_files/800/local/misc_files/etc/hosts b/coin/provisioning/common/linux/qnx_qemu_build_files/800/local/misc_files/etc/hosts new file mode 100644 index 00000000000..58b8d5a131d --- /dev/null +++ b/coin/provisioning/common/linux/qnx_qemu_build_files/800/local/misc_files/etc/hosts @@ -0,0 +1,19 @@ +# Need to add all testserver names statically +# as current Docker uses Multicast DNS (mDNS) (avahi) +# Which does not work with QNX qemu +172.31.1.1 apache2 apache2.test-net.qt.local +172.31.1.1 squid squid.test-net.qt.local +172.31.1.1 vsftpd vsftpd.test-net.qt.local +172.31.1.1 ftp-proxy ftp-proxy.test-net.qt.local +172.31.1.1 danted danted.test-net.qt.local +172.31.1.1 cyrus cyrus.test-net.qt.local +172.31.1.1 echo echo.test-net.qt.local +172.31.1.1 iptables iptables.test-net.qt.local + +# For network test server which is still used on some test +# like networkselftest for local dns resolution +172.31.1.1 qt-test-server + +# QtCoap testservers +172.31.1.1 californium californium.test-net.qt.local +172.31.1.1 freecoap freecoap.test-net.qt.local diff --git a/coin/provisioning/common/linux/qnx_qemu_build_files/800/local/misc_files/etc/resolv.conf b/coin/provisioning/common/linux/qnx_qemu_build_files/800/local/misc_files/etc/resolv.conf new file mode 100644 index 00000000000..6765c11f7c6 --- /dev/null +++ b/coin/provisioning/common/linux/qnx_qemu_build_files/800/local/misc_files/etc/resolv.conf @@ -0,0 +1,2 @@ +search test-net.qt.local +nameserver 172.31.1.1 diff --git a/coin/provisioning/common/linux/qnx_qemu_build_files/800/local/opt_scripts/opt_nfs_qt b/coin/provisioning/common/linux/qnx_qemu_build_files/800/local/opt_scripts/opt_nfs_qt new file mode 100755 index 00000000000..13db322b852 --- /dev/null +++ b/coin/provisioning/common/linux/qnx_qemu_build_files/800/local/opt_scripts/opt_nfs_qt @@ -0,0 +1,46 @@ +#!/bin/bash + +function brief() +{ + echo "--nfs=[|no]" +} + +function help() +{ + brief + cat <" will be mounted at + + The default is no. +EOF +} + +function validate() { + exit 0 +} + +function configure() +{ + if [ "$OPT_NFS_QT" != no ]; then + cat >output/option_files/post_start.opt_nfs < Starting NFS" +STARTU_P(fs_nfs3_t,__FS_NFS3_ID__) fs-nfs3 -t 172.31.1.1:$OPT_NFS_QT $OPT_NFS_QT +EOF + fi + + exit 0 +} + +case "$1" in + brief) + brief;; + help) + help;; + validate) + validate;; + configure) + configure;; + default) + echo no;; +esac diff --git a/coin/provisioning/common/linux/qnx_qemu_build_files/800/local/options b/coin/provisioning/common/linux/qnx_qemu_build_files/800/local/options new file mode 100644 index 00000000000..bf1a413eb22 --- /dev/null +++ b/coin/provisioning/common/linux/qnx_qemu_build_files/800/local/options @@ -0,0 +1,88 @@ +OPT_ABLELOCK='no' +DEF_OPT_ABLELOCK='no' +OPT_ARCH='x86_64' +DEF_OPT_ARCH='x86_64' +OPT_ASLR='yes' +DEF_OPT_ASLR='yes' +OPT_CERTICOM='no' +DEF_OPT_CERTICOM='no' +OPT_CRYPTODEV='no' +DEF_OPT_CRYPTODEV='no' +OPT_DATA_INODES='3000' +DEF_OPT_DATA_INODES='3000' +OPT_DATA_SIZE='512' +DEF_OPT_DATA_SIZE='60' +OPT_EXTRA_DIRS='none' +DEF_OPT_EXTRA_DIRS='none' +OPT_GRAPHICS='no' +DEF_OPT_GRAPHICS='no' +OPT_GUEST='none' +DEF_OPT_GUEST='none' +OPT_HOSTNAME='qnx_QEMU_CI' +DEF_OPT_HOSTNAME='noname' +OPT_IP='172.31.1.69' +DEF_OPT_IP='dhcp' +OPT_MACADDR='52:54:00:f1:c4:92' +DEF_OPT_MACADDR='generate' +OPT_NFS='no' +DEF_OPT_NFS='no' +OPT_NFS_QT='/home/qt/work' +DEF_OPT_NFS_QT='/home/qt/work' +OPT_PATHTRUST='no' +DEF_OPT_PATHTRUST='no' +OPT_PERL='no' +DEF_OPT_PERL='no' +OPT_POLICY='none' +DEF_OPT_POLICY='none' +OPT_PYTHON='no' +DEF_OPT_PYTHON='no' +OPT_QAUDIT='no' +DEF_OPT_QAUDIT='no' +OPT_QFIM='no' +DEF_OPT_QFIM='no' +OPT_QTD='no' +DEF_OPT_QTD='no' +OPT_QVM='no' +DEF_OPT_QVM='no' +OPT_REPOS='$QNX_STAGE_nto:$QNX_TARGET' +DEF_OPT_REPOS='$QNX_STAGE_nto:$QNX_TARGET' +OPT_ROOT='no' +DEF_OPT_ROOT='no' +OPT_SAFE='no' +DEF_OPT_SAFE='no' +OPT_SECPOL='no' +DEF_OPT_SECPOL='no' +OPT_SECURE_DATA='no' +DEF_OPT_SECURE_DATA='no' +OPT_SECURE_PROCFS='yes' +DEF_OPT_SECURE_PROCFS='yes' +OPT_SLM='no' +DEF_OPT_SLM='no' +OPT_SSHD_PREGEN='yes' +DEF_OPT_SSHD_PREGEN='yes' +OPT_SSH_IDENT='prompt' +DEF_OPT_SSH_IDENT='prompt' +OPT_SYS_INODES='1000' +DEF_OPT_SYS_INODES='1000' +OPT_SYS_SIZE='20' +DEF_OPT_SYS_SIZE='20' +OPT_TCG='no' +DEF_OPT_TCG='no' +OPT_TELNET='no' +DEF_OPT_TELNET='no' +OPT_TOMCRYPT='no' +DEF_OPT_TOMCRYPT='no' +OPT_TOYBOX='no' +DEF_OPT_TOYBOX='no' +OPT_TYPE='qemu' +DEF_OPT_TYPE='qemu' +OPT_TZ='UTC0' +DEF_OPT_TZ='UTC0' +OPT_UNION='yes' +DEF_OPT_UNION='yes' +OPT_USB='no' +DEF_OPT_USB='no' +OPT_VALGRIND='no' +DEF_OPT_VALGRIND='no' +OPT_ZONEINFO='no' +DEF_OPT_ZONEINFO='no' diff --git a/coin/provisioning/common/linux/qnx_qemu_build_files/800/local/snippets/data_files.custom b/coin/provisioning/common/linux/qnx_qemu_build_files/800/local/snippets/data_files.custom new file mode 100644 index 00000000000..cba74f1f812 --- /dev/null +++ b/coin/provisioning/common/linux/qnx_qemu_build_files/800/local/snippets/data_files.custom @@ -0,0 +1,25 @@ +# local/snippets/data_files.custom +# Placeholder for local list of files to add to data partition + +home/root/.ssh/environment = { +TERM=qansi +PATH=__IFS_PATH__:/system/xbin:. +#LD_LIBRARY_PATH=__PROC_LIB__:/home/qt/work/install/target/lib +#QSG_RHI_BACKEND=software +#QT_QPA_PLATFORM=offscreen +} + +[uid=0 gid=0 dperms=755 type=dir] var/share +var/share/zoneinfo=usr/share/zoneinfo + +[uid=0 gid=0 dperms=755 type=dir] var/share/fonts +var/etc/fontconfig/fonts.conf=etc/fontconfig/fonts.conf +var/share/fonts=usr/share/fonts + +var/etc/hosts=local/misc_files/etc/hosts +var/etc/resolv.conf=local/misc_files/etc/resolv.conf +var/etc/nsswitch.conf=etc/nsswitch.conf + +[uid=0 gid=0 dperms=755 type=dir] var/etc/ssl/certs +var/share/ca-certificates=local/misc_files/ca-certificates +var/etc/ssl/certs=local/misc_files/etc/ssl/certs diff --git a/coin/provisioning/common/linux/qnx_qemu_build_files/800/local/snippets/ifs_env.custom b/coin/provisioning/common/linux/qnx_qemu_build_files/800/local/snippets/ifs_env.custom new file mode 100644 index 00000000000..0ae7a4dc0f3 --- /dev/null +++ b/coin/provisioning/common/linux/qnx_qemu_build_files/800/local/snippets/ifs_env.custom @@ -0,0 +1,12 @@ +# Add root HOME env variable +procmgr_symlink /data/home/root/ /home/root +HOME=/home/root + +# Needed for timezone related tests +TZ=Europe/Oslo +procmgr_symlink /data/var/share /usr/share +procmgr_symlink /data/var/share/zoneinfo/Europe/Oslo /data/var/etc/localtime + +# fontconfig +#procmgr_symlink /data/var/etc/fontconfig/fonts.conf /etc/fontconfig/fonts.conf +#procmgr_symlink /data/var/share/fonts /usr/share/fonts diff --git a/coin/provisioning/common/linux/qnx_qemu_build_files/800/local/snippets/passwd_file.builtin b/coin/provisioning/common/linux/qnx_qemu_build_files/800/local/snippets/passwd_file.builtin new file mode 100644 index 00000000000..142fd04ebe2 --- /dev/null +++ b/coin/provisioning/common/linux/qnx_qemu_build_files/800/local/snippets/passwd_file.builtin @@ -0,0 +1,3 @@ +root:x:0:0:Superuser:/data/home/root:/bin/sh +sshd:x:15:6:sshd:/data/var/chroot/sshd:/bin/false +qnxuser:x:__QNXUSER_UID__:__QNXUSER_GID__:User9:/data/home/qnxuser:/bin/sh diff --git a/coin/provisioning/common/linux/qnx_qemu_build_files/800/local/snippets/post_start.custom b/coin/provisioning/common/linux/qnx_qemu_build_files/800/local/snippets/post_start.custom new file mode 100644 index 00000000000..4c0a65527f4 --- /dev/null +++ b/coin/provisioning/common/linux/qnx_qemu_build_files/800/local/snippets/post_start.custom @@ -0,0 +1,29 @@ +# local/snippets/post_start.custom +# Commands executed from post_startup.sh. Executed at the end of system startup whether slm is in use +# or not +# +# To allow resource managers to be run properly with and without security policies, command lines +# should be written in one of the following forms: +# +# START(resmgr_t) resmgr DROPROOT(resmgr_uid) +# STARTU(resmgr_t, resmgr_uid) resmgr +# Where resmgr_t is the security type name (arbitrary but usually the name of the resmgr with _t appended), +# and resmgr_uid is the id to use for both uid and gid. DROPROOT is used only in cases where the +# resource manager supports a -U option for switching to non-root. +echo "---> Starting Filesystem event manager (fsevmgr)" +STARTU_P(fsevmg_t,__FSEVMG_ID__) fsevmgr -d -F __DEVB_ID__ -N __DEVB_ID__ + +echo "---> Remove large fonts" +rm -rf /data/var/share/fonts/NotoSansCJK* +rm -rf /data/var/share/fonts/NotoSansMonoCJK* +echo "---> Create fontconfig cache" +fc-cache & + +echo "---> Restart ssh daemon" +slay sshd +/system/xbin/sshd -f /system/data/etc/ssh/sshd_config + +# Add default route so QNX knows where to send +# requests for unknown network +echo "---> Add default route" +route add default 172.31.1.1 diff --git a/coin/provisioning/common/linux/qnx_qemu_build_files/800/local/snippets/shadow_file.builtin b/coin/provisioning/common/linux/qnx_qemu_build_files/800/local/snippets/shadow_file.builtin new file mode 100644 index 00000000000..e362b971492 --- /dev/null +++ b/coin/provisioning/common/linux/qnx_qemu_build_files/800/local/snippets/shadow_file.builtin @@ -0,0 +1,2 @@ +root::1475759054:0:0 +qnxuser:@S@f0J4xZibUbKllVqPMzetauCHLRi+9C8wTsxYXE5r7Pfhda5FI7zkObEmKogy01pAX5f/1niG2S2eLXbLs3xoww==@YjBmOTQwNzZiNzYwMzY3N2RkMGQ1NTZmNzA5MDFhMWY=:1476890273:0:0 diff --git a/coin/provisioning/common/linux/qnx_qemu_build_files/800/local/snippets/system_files.custom b/coin/provisioning/common/linux/qnx_qemu_build_files/800/local/snippets/system_files.custom new file mode 100644 index 00000000000..b7e8e28078e --- /dev/null +++ b/coin/provisioning/common/linux/qnx_qemu_build_files/800/local/snippets/system_files.custom @@ -0,0 +1,65 @@ +# local/snippets/system_files.custom +# Placeholder for local list of files to add to system partition + +[perms=444] data/etc/ssh/sshd_config={ +HostKey /data/var/ssh/ssh_host_rsa_key +HostKey /data/var/ssh/ssh_host_ed25519_key +AuthorizedKeysFile .ssh/authorized_keys +PermitUserEnvironment yes +AuthenticationMethods none +PermitEmptyPasswords yes +PermitRootLogin yes +PidFile none +Subsystem sftp /system/xbin/sftp-server +} + +# libraries Qt requires +lib/libicuuc.so.67=usr/lib/libicuuc.so.67 +lib/libicudata.so.67=usr/lib/libicudata.so.67 +lib/libicui18n.so.67=usr/lib/libicui18n.so.67 +lib/libGLESv2.so.1=usr/lib/libGLESv2.so.1 +lib/libEGL.so.1=usr/lib/libEGL.so.1 +lib/libz.so.2=usr/lib/libz.so.2 +lib/libzstd.so.1=usr/lib/libzstd.so.1 +lib/libxml2.so.2=usr/lib/libxml2.so.2 +lib/libfreetype.so.24=usr/lib/libfreetype.so.24 +lib/libbz2.so.1=usr/lib/libbz2.so.1 +lib/liblzma.so.5=usr/lib/liblzma.so.5 +lib/libdbus-1.so=usr/lib//libdbus-1.so +lib/libdbus-1.so.22=usr/lib//libdbus-1.so.22 +lib/libbacktrace.so.1=lib/libbacktrace.so.1 +lib/libm.so.3=lib/libm.so.3 + +############################################# +### Image support +############################################# +etc/system/config/img.conf=etc/system/config/img.conf +lib/libpng16.so.16=usr/lib/libpng16.so.16 +lib/libjpeg.so.9=lib/libjpeg.so.9 +lib/libimg.so.1=lib/libimg.so.1 +lib/dll/img_codec_bmp.so=lib/dll/img_codec_bmp.so +lib/dll/img_codec_gif.so=lib/dll/img_codec_gif.so +lib/dll/img_codec_jpg.so=lib/dll/img_codec_jpg.so +lib/dll/img_codec_png.so=lib/dll/img_codec_png.so +lib/dll/img_codec_sgi.so=lib/dll/img_codec_sgi.so +lib/dll/img_codec_tga.so=lib/dll/img_codec_tga.so +lib/dll/img_codec_tif.so=lib/dll/img_codec_tif.so + +# for inotify +xbin/fsevmgr=sbin/fsevmgr + +############################################## +### Sreen support +############################################## +lib/libscreen.so.1=usr/lib/libscreen.so.1 + +# for fontconfig +lib/libfontconfig.so.1=usr/lib/libfontconfig.so.1 +xbin/fc-cache=bin/fc-cache +xbin/fc-match=local/misc_files/fc-match + +# network +lib/libssl.so=usr/lib/libssl.so +xbin/nslookup=usr/bin/nslookup +xbin/unbound=sbin/unbound +xbin/curl=usr/bin/curl diff --git a/coin/provisioning/common/linux/qnx_qemu_build_files/800/local/snippets/uids.custom b/coin/provisioning/common/linux/qnx_qemu_build_files/800/local/snippets/uids.custom new file mode 100644 index 00000000000..9787971c024 --- /dev/null +++ b/coin/provisioning/common/linux/qnx_qemu_build_files/800/local/snippets/uids.custom @@ -0,0 +1 @@ +#define __FSEVMG_ID__ 50 diff --git a/coin/provisioning/common/linux/vx_works.sh b/coin/provisioning/common/linux/vx_works.sh index f53968eb64e..5f9ff0123dc 100755 --- a/coin/provisioning/common/linux/vx_works.sh +++ b/coin/provisioning/common/linux/vx_works.sh @@ -21,12 +21,12 @@ InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$sha1" "$targetFolder" SetEnvVar "VXWORKS_HOME" "/opt/vxworks" SetEnvVar "VXWORKS_SSH" "WindRiver@172.31.1.10" -VXWORKS_BUILD_VER="07-11-2024" +VXWORKS_BUILD_VER="18-12-2024" ######### VXworks toolchain ######### # Installs to /opt/fsl_imx6_2_0_6_2_VSB PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/vxworks/vxworks_arm_vsb_$%7BVXWORKS_BUILD_VER%7D.tar.gz" AltUrl="" -sha1="f4745e9b84a781fe2c0a44abee189fcdf1c2c100" +sha1="6b5a264d08a9d34b03ff13cb28e690c5c5178569" targetFolder="/opt/" InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$sha1" "$targetFolder" "" SetEnvVar "WIND_CC_SYSROOT" "/opt/fsl_imx6_2_0_6_2_VSB" @@ -35,20 +35,20 @@ SetEnvVar "WIND_CC_SYSROOT" "/opt/fsl_imx6_2_0_6_2_VSB" # Installs to /opt/fsl_imx6_2_0_6_2_VIP_QEMU PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/vxworks/vxworks_arm_vip_$%7BVXWORKS_BUILD_VER%7D.tar.gz" AltUrl="" -sha1="186d7da071005d67d898a56cf57b7bec664bb89e" +sha1="117af91a6c93ac89727f8d8bfe4cf840ce4485c9" targetFolder="/opt/" InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$sha1" "$targetFolder" "" # Installs to /opt/itl_generic_skylake_VSB PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/vxworks/vxworks_intel_vsb_$%7BVXWORKS_BUILD_VER%7D.tar.gz" AltUrl="" -sha1="d5b76b92099dff0304ab97901ff1ad683dd6153d" +sha1="c1b2f2e2903540e8005237ce3641fc043ced0ddf" targetFolder="/opt/" InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$sha1" "$targetFolder" "" # Installs to /opt/itl_generic_skylake_VIP_QEMU PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/vxworks/vxworks_intel_vip_$%7BVXWORKS_BUILD_VER%7D.tar.gz" AltUrl="" -sha1="1943696ead5d13fba92a5af416bd3f599395fe24" +sha1="2fa12dac1f1460019a418da49b095c743a9fe282" targetFolder="/opt/" InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$sha1" "$targetFolder" "" diff --git a/coin/provisioning/common/macos/android.sh b/coin/provisioning/common/macos/android.sh index b7dc953f8f3..57671748a97 100755 --- a/coin/provisioning/common/macos/android.sh +++ b/coin/provisioning/common/macos/android.sh @@ -20,11 +20,11 @@ toolsVersion="2.1" # toolsFile dertermines tools version toolsFile="commandlinetools-mac-6609375_latest.zip" -ndkVersionLatest="r26b" +ndkVersionLatest="r27c" ndkVersionDefault="$ndkVersionLatest" -sdkBuildToolsVersion="34.0.0" +sdkBuildToolsVersion="35.0.1" # this is compile sdk version -sdkApiLevel="android-34" +sdkApiLevel="android-35" toolsSourceFile="$basePath/$toolsFile" diff --git a/coin/provisioning/common/macos/homebrew.sh b/coin/provisioning/common/macos/homebrew.sh index 4f3a93ba8b1..8f68209c2ff 100755 --- a/coin/provisioning/common/macos/homebrew.sh +++ b/coin/provisioning/common/macos/homebrew.sh @@ -1,23 +1,71 @@ #!/bin/bash -#Copyright (C) 2023 The Qt Company Ltd +#Copyright (C) 2025 The Qt Company Ltd #SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only # Will install homebrew package manager for macOS. # WARNING: Requires commandlinetools - set -e +INSTALLTYPE="$1" +VERSION="$2" +CHECKSUM="$3" + +DEFAULT_PKG_VERSION="4.4.21" +DEFAULT_PKG_VERSION_CHECKSUM="cd83c4123d5db7d07eb3042f1c785ed7f599183c5c542040bc6abfa722583861" +DEFAULT_GIT_VERSION="deb02e27d99fd2cb27ae16760e3a5272b612fded" +DEFAULT_GIT_VERSION_CHECKSUM="a30b9fbf0d5c2cff3eb1d0643cceee30d8ba6ea1bb7bcabf60d3188bd62e6ba6" + source "$(dirname "$0")"/../../common/unix/DownloadURL.sh +source "$(dirname "$0")"/../../common/unix/SetEnvVar.sh + +installPkg() { + if [ "$VERSION" == "" ]; then + VERSION="$DEFAULT_PKG_VERSION" + CHECKSUM="$DEFAULT_PKG_VERSION_CHECKSUM" + fi + DownloadURL \ + "http://ci-files01-hki.ci.qt.io/input/mac/homebrew/$VERSION/Homebrew-$VERSION.pkg" \ + "https://github.com/Homebrew/brew/releases/download/$VERSION/Homebrew-$VERSION.pkg" \ + "$CHECKSUM" \ + "/tmp/Homebrew-$VERSION.pkg" + + sudo installer -pkg "/tmp/Homebrew-$VERSION.pkg" -target / + # Add homebrew to PATH + SetEnvVar "PATH" "/opt/homebrew/bin:\$PATH" + + echo "Homebrew = $VERSION" >> ~/versions.txt +} + +installGit() { + if [ "$VERSION" == "" ]; then + VERSION="$DEFAULT_GIT_VERSION" + CHECKSUM="$DEFAULT_GIT_VERSION_CHECKSUM" + fi + + export HOMEBREW_BREW_GIT_REMOTE="https://git.intra.qt.io/external-repository-mirrors/homebrew/brew.git" # put your Git mirror of Homebrew/brew here + export HOMEBREW_CORE_GIT_REMOTE="https://git.intra.qt.io/external-repository-mirrors/homebrew/homebrew-core.git" # put your Git mirror of Homebrew/homebrew-core here + DownloadURL \ + "https://git.intra.qt.io/external-repository-mirrors/homebrew/install/-/raw/$VERSION/install.sh" \ + "https://git.intra.qt.io/external-repository-mirrors/homebrew/install/-/raw/$VERSION/install.sh" \ + $CHECKSUM \ + /tmp/homebrew_install.sh + DownloadURL "http://ci-files01-hki.ci.qt.io/input/semisecure/sign/pw" "http://ci-files01-hki.ci.qt.io/input/semisecure/sign/pw" "aae58d00d0a1b179a09f21cfc67f9d16fb95ff36" "/Users/qt/pw" + { pw=$(cat "/Users/qt/pw"); } 2> /dev/null + sudo chmod 755 /tmp/homebrew_install.sh + { (echo "$pw" | /tmp/homebrew_install.sh); } 2> /dev/null + rm -f "/Users/qt/pw" +} -DownloadURL \ - http://ci-files01-hki.ci.qt.io/input/mac/homebrew-install.c744a716f9845988d01e6e238eee7117b8c366c9.rb \ - https://raw.githubusercontent.com/Homebrew/install/c744a716f9845988d01e6e238eee7117b8c366c9/install \ - b9782cc0b550229de77b429b56ffce04157e60486ab9df00461ccf3dad565b0a \ - /tmp/homebrew_install -/usr/bin/ruby /tmp/homebrew_install /dev/null -sudo chmod 755 /tmp/homebrew_install.sh -{ (echo "$pw" | /tmp/homebrew_install.sh); } 2> /dev/null -rm -f "/Users/qt/pw" - -# No need to manually do `brew update`, the homebrew installer script does it. -### brew update - -SetEnvVar "PATH" "\$PATH:/opt/homebrew/bin" diff --git a/coin/provisioning/common/macos/install-ffmpeg-macos.sh b/coin/provisioning/common/macos/install-ffmpeg-macos.sh new file mode 100755 index 00000000000..4fc8f1c41bb --- /dev/null +++ b/coin/provisioning/common/macos/install-ffmpeg-macos.sh @@ -0,0 +1,66 @@ +#!/usr/bin/env bash +# Copyright (C) 2024 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +# This script builds and installs FFmpeg shared libs + +set -ex + +os="$1" + +if [ "$os" != "macos" ] && [ "$os" != "macos-universal" ]; then + >&2 echo "invalid os paremeter: $os" + exit 1 +fi + +source "${BASH_SOURCE%/*}/../unix/ffmpeg-installation-utils.sh" + +ffmpeg_source_dir=$(download_ffmpeg) +ffmpeg_name=$(basename "$ffmpeg_source_dir") +ffmpeg_config_options=$(get_ffmpeg_config_options "shared") +prefix="/usr/local/$ffmpeg_name" + +build_ffmpeg() { + local arch="$1" + local build_dir="$ffmpeg_source_dir/build/$arch" + mkdir -p "$build_dir" + pushd "$build_dir" + + # shellcheck disable=SC2086 + if [ -n "$arch" ]; then + local cc="clang -arch $arch" + "$ffmpeg_source_dir/configure" $ffmpeg_config_options --prefix="$prefix" --enable-cross-compile --arch="$arch" --cc="$cc" + else + "$ffmpeg_source_dir/configure" $ffmpeg_config_options --prefix="$prefix" + fi + # shellcheck disable= + + make install DESTDIR="$build_dir/installed" -j4 + popd +} + +brew install yasm +export MACOSX_DEPLOYMENT_TARGET=12 +fix_relative_dependencies="${BASH_SOURCE%/*}/../macos/fix_relative_dependencies.sh" + +if [ "$os" == "macos" ]; then + build_ffmpeg + + install_dir="$ffmpeg_source_dir/build/installed" + "$fix_relative_dependencies" "$install_dir/usr/local/$ffmpeg_name/lib" + sudo mv "$install_dir/usr/local/$ffmpeg_name" "/usr/local" +else + build_ffmpeg "arm64" + build_ffmpeg "x86_64" + + arm64_install_dir="$ffmpeg_source_dir/build/arm64/installed" + x86_64_install_dir="$ffmpeg_source_dir/build/x86_64/installed" + + "$fix_relative_dependencies" "$arm64_install_dir/usr/local/$ffmpeg_name/lib" + "$fix_relative_dependencies" "$x86_64_install_dir/usr/local/$ffmpeg_name/lib" + + sudo rm -rf "/usr/local/$ffmpeg_name" # lipo fails upon 2nd run + sudo "${BASH_SOURCE%/*}/../macos/makeuniversal.sh" "$arm64_install_dir" "$x86_64_install_dir" +fi + +set_ffmpeg_dir_env_var "FFMPEG_DIR" "/usr/local/$ffmpeg_name" diff --git a/coin/provisioning/common/macos/install-simulator-runtime.sh b/coin/provisioning/common/macos/install-simulator-runtime.sh new file mode 100755 index 00000000000..b3d6981339e --- /dev/null +++ b/coin/provisioning/common/macos/install-simulator-runtime.sh @@ -0,0 +1,25 @@ +#!/usr/bin/env bash +# Copyright (C) 2024 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only +# shellcheck source=../unix/DownloadURL.sh +source "${BASH_SOURCE%/*}/../unix/DownloadURL.sh" +set -ex + +function InstallSimulatorRuntime { + url=$1 + url_alt=$2 + expectedSha1=$3 + packageName=$4 + version=$5 + + DownloadURL "$url" "$url_alt" "$expectedSha1" "/tmp/$packageName" + echo "Installing" + # macOS 14 / Xcode 15 has a different install command + if [[ $OSTYPE == "darwin23" ]]; then + xcrun simctl runtime add "/tmp/$packageName" + else + xcodebuild -importPlatform "/tmp/$packageName" + fi + + echo "Simulator Runtime = $version" >> ~/versions.txt +} diff --git a/coin/provisioning/common/macos/libiodbc.sh b/coin/provisioning/common/macos/libiodbc.sh index 059758c8a22..e33ce98ce03 100755 --- a/coin/provisioning/common/macos/libiodbc.sh +++ b/coin/provisioning/common/macos/libiodbc.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# Copyright (C) 2018 The Qt Company Ltd. +# Copyright (C) 2025 The Qt Company Ltd. # SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only # Install libiodbc @@ -11,12 +11,9 @@ source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh" brew install --formula "${BASH_SOURCE%/*}/libiodbc.rb" "$@" -# CPLUS_INCLUDE_PATH is set so clang and configure can find libiodbc - read -r -a arr <<< "$(brew list --versions libiodbc)" version=${arr[1]} -SetEnvVar "CPLUS_INCLUDE_PATH" "/usr/local/Cellar/libiodbc/$version/include${CPLUS_INCLUDE_PATH:+:}${CPLUS_INCLUDE_PATH}" -SetEnvVar "LIBRARY_PATH" "/usr/local/Cellar/libiodbc/$version/lib${LIBRARY_PATH:+:}${LIBRARY_PATH}" +SetEnvVar "ODBC_ROOT" "$(brew --prefix libiodbc)" echo "libiodbc = $version" >> ~/versions.txt diff --git a/coin/provisioning/common/macos/postgresql.sh b/coin/provisioning/common/macos/postgresql.sh index 8980d28eccf..e146b018fec 100755 --- a/coin/provisioning/common/macos/postgresql.sh +++ b/coin/provisioning/common/macos/postgresql.sh @@ -37,5 +37,5 @@ umount "$mountpoint" echo "Removing $packageName" rm "/tmp/$packageName" -SetEnvVar "POSTGRESQLBINPATH" "/Applications/Postgres.app/Contents/Versions/$psqlVersion/bin" +SetEnvVar "PostgreSQL_ROOT" "/Applications/Postgres.app/Contents/Versions/$psqlVersion" echo "PostgreSQL = $psqlVersion ($psqlAppVersion)" >> ~/versions.txt diff --git a/coin/provisioning/common/shared/cmake_toolchain_files/qnx-toolchain-aarch64le.cmake b/coin/provisioning/common/shared/cmake_toolchain_files/qnx-toolchain-aarch64le.cmake index d787d555126..1ceca7c5565 100644 --- a/coin/provisioning/common/shared/cmake_toolchain_files/qnx-toolchain-aarch64le.cmake +++ b/coin/provisioning/common/shared/cmake_toolchain_files/qnx-toolchain-aarch64le.cmake @@ -25,5 +25,6 @@ set(CMAKE_CXX_COMPILER_TARGET ${_qnx_toolchain_arch}) set(CMAKE_STRIP $ENV{QNX_HOST}/usr/bin/ntoaarch64-strip) set(CMAKE_AR $ENV{QNX_HOST}/usr/bin/ntoaarch64-ar) +set(CMAKE_OBJCOPY $ENV{QNX_HOST}/usr/bin/ntoaarch64-objcopy) set(CMAKE_SYSROOT $ENV{QNX_TARGET}) diff --git a/coin/provisioning/common/shared/cmake_toolchain_files/qnx-toolchain-armv7le.cmake b/coin/provisioning/common/shared/cmake_toolchain_files/qnx-toolchain-armv7le.cmake index d270530b815..5bbdd1dbbec 100644 --- a/coin/provisioning/common/shared/cmake_toolchain_files/qnx-toolchain-armv7le.cmake +++ b/coin/provisioning/common/shared/cmake_toolchain_files/qnx-toolchain-armv7le.cmake @@ -25,5 +25,6 @@ set(CMAKE_CXX_COMPILER_TARGET ${_qnx_toolchain_arch}) set(CMAKE_STRIP $ENV{QNX_HOST}/usr/bin/ntoarmv7-strip) set(CMAKE_AR $ENV{QNX_HOST}/usr/bin/ntoarmv7-ar) +set(CMAKE_OBJCOPY $ENV{QNX_HOST}/usr/bin/ntoarmv7-objcopy) set(CMAKE_SYSROOT $ENV{QNX_TARGET}) diff --git a/coin/provisioning/common/shared/cmake_toolchain_files/qnx-toolchain-x8664.cmake b/coin/provisioning/common/shared/cmake_toolchain_files/qnx-toolchain-x8664.cmake index a7bb7b5e1c4..a83160418a6 100644 --- a/coin/provisioning/common/shared/cmake_toolchain_files/qnx-toolchain-x8664.cmake +++ b/coin/provisioning/common/shared/cmake_toolchain_files/qnx-toolchain-x8664.cmake @@ -25,5 +25,6 @@ set(CMAKE_CXX_COMPILER_TARGET ${_qnx_toolchain_arch}) set(CMAKE_STRIP $ENV{QNX_HOST}/usr/bin/ntox86_64-strip) set(CMAKE_AR $ENV{QNX_HOST}/usr/bin/ntox86_64-ar) +set(CMAKE_OBJCOPY $ENV{QNX_HOST}/usr/bin/ntox86_64-objcopy) set(CMAKE_SYSROOT $ENV{QNX_TARGET}) diff --git a/coin/provisioning/common/shared/fix_ffmpeg_dependencies.sh b/coin/provisioning/common/shared/fix_ffmpeg_dependencies.sh index f3972f07221..bfc04a911d5 100755 --- a/coin/provisioning/common/shared/fix_ffmpeg_dependencies.sh +++ b/coin/provisioning/common/shared/fix_ffmpeg_dependencies.sh @@ -15,10 +15,12 @@ if [ "$(uname -s)" = "Darwin" ]; then fi ffmpeg_libs=("avcodec" "avdevice" "avfilter" "avformat" "avutil" "swresample" "swscale") +stub_prefix="Qt6FFmpegStub-" for lib_name in "${ffmpeg_libs[@]}"; do lib_path="$lib_dir/lib$lib_name.so" pkg_config_file_path="$lib_dir/pkgconfig/lib$lib_name.pc" + stubs_required_versions="" if [ ! -f "$lib_path" ]; then echo "FFmpeg lib $lib_path hasn't been found" @@ -30,21 +32,46 @@ for lib_name in "${ffmpeg_libs[@]}"; do exit 1 fi + read_needed_deps() { + readelf -d "$lib_path" | grep '(NEEDED)' + } + while read -r line; do if [[ $line =~ .*\[(lib((ssl|crypto|va|va-x11|va-drm)(_3)?\.so(\.[0-9]+)*))\].* ]]; then - stub_name="libQt6FFmpegStub-${BASH_REMATCH[2]}" - if [[ ${BASH_REMATCH[4]} == "_3" ]]; then + stub_name="lib$stub_prefix${BASH_REMATCH[2]}" + android_ssl_suffix=${BASH_REMATCH[4]} + soversion=${BASH_REMATCH[5]} + + if [ -n "$android_ssl_suffix" ] && [ -n "$soversion" ]; then + >&2 echo "both, android_ssl_suffix $android_ssl_suffix and soversion $soversion are found" + continue + fi + + if [[ "$android_ssl_suffix" == "_3" ]]; then stub_name="${stub_name/_3/}" # Remove "_3" from stub_name + stubs_required_versions+=" ${stub_name/.so/ = 3}," + elif [[ -n "$soversion" ]]; then + stubs_required_versions+=" ${stub_name/.so./ = }," fi + if [[ -n "$additional_suffix" ]]; then stub_name="${stub_name%%.*}${additional_suffix}.${stub_name#*.}" # Add additional_suffix fi - patchelf --replace-needed "${BASH_REMATCH[1]}" "${stub_name}" $lib_path + + patchelf --replace-needed "${BASH_REMATCH[1]}" "${stub_name}" "$lib_path" fi - done <<< "$(readelf -d $lib_path | grep '(NEEDED)' )" + done <<< "$(read_needed_deps)" + + sed_cmd="/^Libs.private:/s/ -l(va|va-x11|va-drm|ssl|crypto)/ -l$stub_prefix\\1/g;" + if [[ -n "$stubs_required_versions" ]]; then + stubs_required_versions="${stubs_required_versions%?}" # remove the last comma + sed_cmd+="s/(^Requires.private:[^,]*(,)?.*$)/\\1\\2$stubs_required_versions/g;" + fi - sed -i.bak -E '/^Libs.private:/s/ -l(va|va-x11|va-drm|ssl|crypto)/ -lQt6FFmpegStub-\1/g;' $pkg_config_file_path && rm -f ${pkg_config_file_path}.bak + # sed -i doesn't work without parameter on macOS 13 + sed -i.bak -E "$sed_cmd" "$pkg_config_file_path" && rm -f "${pkg_config_file_path}.bak" if [[ "$set_rpath" == "yes" ]]; then - patchelf --set-rpath '$ORIGIN' $lib_path + # shellcheck disable=SC2016 + patchelf --set-rpath '$ORIGIN' "$lib_path" fi done diff --git a/coin/provisioning/common/unix/InstallFromCompressedFileFromURL.sh b/coin/provisioning/common/unix/InstallFromCompressedFileFromURL.sh index c1358fddc52..12a04f0c0b9 100755 --- a/coin/provisioning/common/unix/InstallFromCompressedFileFromURL.sh +++ b/coin/provisioning/common/unix/InstallFromCompressedFileFromURL.sh @@ -27,6 +27,9 @@ function InstallFromCompressedFileFromURL { DownloadURL "$url" "$url_alt" "$expectedSha1" "$targetFile" echo "Uncompress $targetFile" case $extension in + "tgz") + tar -xzf "$targetFile" --directory "$targetDirectory" + ;; "tar.gz") tar -xzf "$targetFile" --directory "$targetDirectory" ;; diff --git a/coin/provisioning/common/unix/emsdk.sh b/coin/provisioning/common/unix/emsdk.sh index b85105b5594..cd689708568 100755 --- a/coin/provisioning/common/unix/emsdk.sh +++ b/coin/provisioning/common/unix/emsdk.sh @@ -8,21 +8,21 @@ source "${BASH_SOURCE%/*}/SetEnvVar.sh" # shellcheck source=./DownloadURL.sh source "${BASH_SOURCE%/*}/DownloadURL.sh" -version="3.1.56" +version="3.1.70" versionNode="v16.20.0" tarBallVersion="${version//./_}" -if uname -a |grep -q Darwin; then +if uname -a | grep -q Darwin; then tarBallPackage="emsdk_macos_${tarBallVersion}.tar.gz" - sha="24c49db971da4fd7c68f6b71984c3d7775fdfb84" + sha="eafd7b96ab12d84183d2eaa62e8d39bb12c252bf" else tarBallPackage="emsdk_linux_${tarBallVersion}.tar.gz" - sha="410c93bb2ab3b244190c2cb5f0ff1ce5d6ac4eb5" + sha="047a3da9048edc71fb56af544c4bb2448d6c0644" fi cacheUrl="https://ci-files01-hki.ci.qt.io/input/emsdk/$%7BtarBallPackage%7D" target="/tmp/${tarBallPackage}" mkdir -p /opt -cd /opt +cd /opt || exit echo "URL: $cacheUrl" if DownloadURL "$cacheUrl" "" "$sha" "$target"; then @@ -31,13 +31,16 @@ if DownloadURL "$cacheUrl" "" "$sha" "$target"; then else echo "Emsdk isn't cached. Cloning it" sudo git clone https://github.com/emscripten-core/emsdk.git - cd emsdk - sudo ./emsdk install "$version" + cd emsdk || exit + if ! sudo ./emsdk install "$version"; then + echo "Error: emsdk installation failed" + exit 1 + fi sudo ./emsdk activate "$version" fi # platform-specific toolchain and node binaries. urls obtained from "emsdk install" -if uname -a |grep -q Darwin; then +if uname -a | grep -q Darwin; then pathNodeExecutable="node-$versionNode-darwin-x64/bin/node" else pathNodeExecutable="node-$versionNode-linux-x64/bin/node" diff --git a/coin/provisioning/common/unix/ffmpeg-installation-utils.sh b/coin/provisioning/common/unix/ffmpeg-installation-utils.sh new file mode 100755 index 00000000000..9588ca17527 --- /dev/null +++ b/coin/provisioning/common/unix/ffmpeg-installation-utils.sh @@ -0,0 +1,67 @@ +#!/usr/bin/env bash +# Copyright (C) 2024 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +download_ffmpeg() { + local version="${1:-n7.1.1}" + local sha1="${2:-479291e8555fe036ca760f95cea829a21e9b8365}" + + local ffmpeg_name="FFmpeg-$version" + local target_dir="$HOME" + local ffmpeg_source_dir="$target_dir/$ffmpeg_name" + + if [ ! -d "$ffmpeg_source_dir" ]; then + local url_public="https://github.com/FFmpeg/FFmpeg/archive/refs/tags/$version.tar.gz" + local url_cached="http://ci-files01-hki.ci.qt.io/input/ffmpeg/$version.tar.gz" + local app_prefix="" + + source "${BASH_SOURCE%/*}/../unix/InstallFromCompressedFileFromURL.sh" + InstallFromCompressedFileFromURL "$url_cached" "$url_public" "$sha1" "$target_dir" "$app_prefix" > /dev/null + fi + + echo "$ffmpeg_source_dir" +} + +get_ffmpeg_config_options() { + local build_type="$1" + local result + + result=$(cat "${BASH_SOURCE%/*}/../shared/ffmpeg_config_options.txt") + + if [ "$build_type" != "static" ]; then + result+=" --enable-shared --disable-static" + fi + + echo "$result" +} + + +get_ffmpeg_build_type() { + local result="${1:-shared}" + + if [ "$result" != "static" ] && [ "$result" != "shared" ]; then + >&2 echo "Invalid build_type: $result. The shared build type will be used." + result="shared" + fi + + echo "$result" +} + +set_ffmpeg_dir_env_var() { + local envvar="$1" + local dir="$2" + + if [ ! -d "$dir" ]; then + >&2 echo "the FFmpeg dir $dir doesn't exist" + exit 1 + fi + + # minimal validity check, more checks can be added + if [ ! -d "$dir/include" ] || [ ! -d "$dir/lib" ]; then + >&2 echo "The FFmpeg dir $dir is not valid" + exit 1 + fi + + source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh" + SetEnvVar "$envvar" "$dir" +} diff --git a/coin/provisioning/common/unix/install-ffmpeg-android.sh b/coin/provisioning/common/unix/install-ffmpeg-android.sh index 9eab75d88ed..8a855d31148 100755 --- a/coin/provisioning/common/unix/install-ffmpeg-android.sh +++ b/coin/provisioning/common/unix/install-ffmpeg-android.sh @@ -4,123 +4,117 @@ # This script will build and install FFmpeg shared libs set -ex -os="$1" - -# shellcheck source=../unix/InstallFromCompressedFileFromURL.sh -source "${BASH_SOURCE%/*}/../unix/InstallFromCompressedFileFromURL.sh" -# shellcheck source=../unix/SetEnvVar.sh -source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh" -version="n7.0.2" -url_public="https://github.com/FFmpeg/FFmpeg/archive/refs/tags/$version.tar.gz" -sha1="e017c72dd84a9bac1519eaa33c203b82dd850bc0" -url_cached="http://ci-files01-hki.ci.qt.io/input/ffmpeg/$version.tar.gz" -ffmpeg_name="FFmpeg-$version" +source "${BASH_SOURCE%/*}/../unix/ffmpeg-installation-utils.sh" -target_dir="$HOME" -app_prefix="" -ffmpeg_source_dir="$target_dir/$ffmpeg_name" - -if [ ! -d "$ffmpeg_source_dir" ]; -then - InstallFromCompressedFileFromURL "$url_cached" "$url_public" "$sha1" "$target_dir" "$app_prefix" -fi +os="$1" +# Optional parameter to set output installation directory. Useful for local builds. +target_install_dir_param="$2" +build_type=$(get_ffmpeg_build_type) +ffmpeg_source_dir=$(download_ffmpeg) build_ffmpeg_android() { - - target_arch=$1 - target_dir=$2 - shared="${3:-no}" - - sudo mkdir -p "$target_dir" - - openssl_include="$OPENSSL_ANDROID_HOME_DEFAULT/include" - openssl_libs="" - libs_prefix="" - if [ "$target_arch" == "x86_64" ]; then - target_toolchain_arch="x86_64-linux-android" - target_arch=x86_64 - target_cpu=x86-64 - openssl_libs="$OPENSSL_ANDROID_HOME_DEFAULT/x86_64" - libs_prefix="_x86_64" - elif [ "$target_arch" == "x86" ]; then - target_toolchain_arch="i686-linux-android" - target_arch=x86 - target_cpu=i686 - openssl_libs="$OPENSSL_ANDROID_HOME_DEFAULT/x86" - libs_prefix="_x86" - elif [ "$target_arch" == "arm64" ]; then - target_toolchain_arch="aarch64-linux-android" - target_arch=aarch64 - target_cpu=armv8-a - openssl_libs="$OPENSSL_ANDROID_HOME_DEFAULT/arm64-v8a" - libs_prefix="_arm64-v8a" - fi - - ln -Ffs "${openssl_libs}/libcrypto_3.so" "${openssl_libs}/libcrypto.so" - ln -Ffs "${openssl_libs}/libssl_3.so" "${openssl_libs}/libssl.so" - - api_version=24 - - ndk_root=$ANDROID_NDK_ROOT_DEFAULT - if uname -a |grep -q "Darwin"; then - ndk_host=darwin-x86_64 - else - ndk_host=linux-x86_64 - fi - - toolchain=${ndk_root}/toolchains/llvm/prebuilt/${ndk_host} - toolchain_bin=${toolchain}/bin - sysroot=${toolchain}/sysroot - cxx=${toolchain_bin}/${target_toolchain_arch}${api_version}-clang++ - cc=${toolchain_bin}/${target_toolchain_arch}${api_version}-clang - ar=${toolchain_bin}/llvm-ar - ranlib=${toolchain_bin}/llvm-ranlib - - ffmpeg_config_options=$(cat "${BASH_SOURCE%/*}/../shared/ffmpeg_config_options.txt") - ffmpeg_config_options+=" --enable-cross-compile --target-os=android --enable-jni --enable-mediacodec --enable-openssl --enable-pthreads --enable-neon --disable-asm --disable-indev=android_camera" - if [[ "$shared" == "yes" ]]; then - ffmpeg_config_options+=" --enable-shared --disable-static" - fi - ffmpeg_config_options+=" --arch=$target_arch --cpu=${target_cpu} --sysroot=${sysroot} --sysinclude=${sysroot}/usr/include/" - ffmpeg_config_options+=" --cc=${cc} --cxx=${cxx} --ar=${ar} --ranlib=${ranlib}" - ffmpeg_config_options+=" --extra-cflags=-I${openssl_include} --extra-ldflags=-L${openssl_libs}" - - local build_dir="$ffmpeg_source_dir/build/$target_arch" - sudo mkdir -p "$build_dir" - pushd "$build_dir" - - # shellcheck disable=SC2086 - sudo "$ffmpeg_source_dir/configure" $ffmpeg_config_options --prefix="$target_dir" - - sudo make install -j4 - - popd - - rm -f "${openssl_libs}/libcrypto.so" - rm -f "${openssl_libs}/libssl.so" - - if [[ "$shared" == "yes" ]]; then - fix_dependencies="${BASH_SOURCE%/*}/../shared/fix_ffmpeg_dependencies.sh" - sudo "${fix_dependencies}" "${target_dir}" "${libs_prefix}" "no" - fi + local target_arch=$1 + local target_dir=$2 + + sudo mkdir -p "$target_dir" + + local openssl_include="$OPENSSL_ANDROID_HOME_DEFAULT/include" + local openssl_libs + local libs_prefix + local target_cpu + local target_toolchain_arch + + if [ "$target_arch" == "x86_64" ]; then + target_toolchain_arch="x86_64-linux-android" + target_arch=x86_64 + target_cpu=x86-64 + openssl_libs="$OPENSSL_ANDROID_HOME_DEFAULT/x86_64" + libs_prefix="_x86_64" + elif [ "$target_arch" == "x86" ]; then + target_toolchain_arch="i686-linux-android" + target_arch=x86 + target_cpu=i686 + openssl_libs="$OPENSSL_ANDROID_HOME_DEFAULT/x86" + libs_prefix="_x86" + elif [ "$target_arch" == "arm64" ]; then + target_toolchain_arch="aarch64-linux-android" + target_arch=aarch64 + target_cpu=armv8-a + openssl_libs="$OPENSSL_ANDROID_HOME_DEFAULT/arm64-v8a" + libs_prefix="_arm64-v8a" + fi + + ln -Ffs "${openssl_libs}/libcrypto_3.so" "${openssl_libs}/libcrypto.so" + ln -Ffs "${openssl_libs}/libssl_3.so" "${openssl_libs}/libssl.so" + + local api_version=24 + + local ndk_root=$ANDROID_NDK_ROOT_DEFAULT + local ndk_host + if uname -a |grep -q "Darwin"; then + ndk_host=darwin-x86_64 + else + ndk_host=linux-x86_64 + fi + + local toolchain=${ndk_root}/toolchains/llvm/prebuilt/${ndk_host} + local toolchain_bin=${toolchain}/bin + local sysroot=${toolchain}/sysroot + local cxx=${toolchain_bin}/${target_toolchain_arch}${api_version}-clang++ + local cc=${toolchain_bin}/${target_toolchain_arch}${api_version}-clang + local ar=${toolchain_bin}/llvm-ar + local ranlib=${toolchain_bin}/llvm-ranlib + local ffmpeg_config_options + + ffmpeg_config_options=$(get_ffmpeg_config_options $build_type) + ffmpeg_config_options+=" --enable-cross-compile --target-os=android --enable-jni --enable-mediacodec --enable-openssl --enable-pthreads --enable-neon --disable-asm --disable-indev=android_camera" + ffmpeg_config_options+=" --arch=$target_arch --cpu=${target_cpu} --sysroot=${sysroot} --sysinclude=${sysroot}/usr/include/" + ffmpeg_config_options+=" --cc=${cc} --cxx=${cxx} --ar=${ar} --ranlib=${ranlib}" + ffmpeg_config_options+=" --extra-cflags=-I${openssl_include} --extra-ldflags=-L${openssl_libs}" + + local build_dir="$ffmpeg_source_dir/build_android/$target_arch" + mkdir -p "$build_dir" + pushd "$build_dir" + + # shellcheck disable=SC2086 + sudo "$ffmpeg_source_dir/configure" $ffmpeg_config_options --prefix="$target_dir" + # shellcheck disable= + + sudo make install -j4 + + popd + + rm -f "${openssl_libs}/libcrypto.so" + rm -f "${openssl_libs}/libssl.so" + + if [[ "$build_type" == "shared" ]]; then + local fix_dependencies="${BASH_SOURCE%/*}/../shared/fix_ffmpeg_dependencies.sh" + sudo "${fix_dependencies}" "${target_dir}" "${libs_prefix}" "no" + fi } if [ "$os" == "android-x86" ]; then - target_arch=x86 - target_dir="/usr/local/android/ffmpeg-x86" - - SetEnvVar "FFMPEG_DIR_ANDROID_X86" "$target_dir" + target_arch=x86 + target_dir="/usr/local/android/ffmpeg-x86" + envvar="FFMPEG_DIR_ANDROID_X86" elif [ "$os" == "android-x86_64" ]; then - target_arch=x86_64 - target_dir="/usr/local/android/ffmpeg-x86_64" - - SetEnvVar "FFMPEG_DIR_ANDROID_X86_64" "$target_dir" + target_arch=x86_64 + target_dir="/usr/local/android/ffmpeg-x86_64" + envvar="FFMPEG_DIR_ANDROID_X86_64" elif [ "$os" == "android-arm64" ]; then - target_arch=arm64 - target_dir="/usr/local/android/ffmpeg-arm64" + target_arch=arm64 + target_dir="/usr/local/android/ffmpeg-arm64" + envvar="FFMPEG_DIR_ANDROID_ARM64" +else + >&2 echo "Unhandled android os param: $os" + exit 1 +fi - SetEnvVar "FFMPEG_DIR_ANDROID_ARM64" "$target_dir" +# If parameter is set, use it as the target output directory. +if [ ! -z $target_install_dir_param ]; then + target_dir=$target_install_dir_param fi -build_ffmpeg_android "$target_arch" "$target_dir" "yes" +build_ffmpeg_android "$target_arch" "$target_dir" +set_ffmpeg_dir_env_var "$envvar" "$target_dir" diff --git a/coin/provisioning/common/unix/install-ffmpeg-ios.sh b/coin/provisioning/common/unix/install-ffmpeg-ios.sh index 21e4d7d8013..c35cf1d06d5 100755 --- a/coin/provisioning/common/unix/install-ffmpeg-ios.sh +++ b/coin/provisioning/common/unix/install-ffmpeg-ios.sh @@ -5,71 +5,55 @@ # This script will build and install FFmpeg static libs set -ex -# shellcheck source=../unix/InstallFromCompressedFileFromURL.sh -source "${BASH_SOURCE%/*}/../unix/InstallFromCompressedFileFromURL.sh" -# shellcheck source=../unix/SetEnvVar.sh -source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh" - -version="n7.0.2" -url_public="https://github.com/FFmpeg/FFmpeg/archive/refs/tags/$version.tar.gz" -sha1="e017c72dd84a9bac1519eaa33c203b82dd850bc0" -url_cached="http://ci-files01-hki.ci.qt.io/input/ffmpeg/$version.tar.gz" -ffmpeg_name="FFmpeg-$version" - -target_dir="$HOME" -ffmpeg_source_dir="$target_dir/$ffmpeg_name" +source "${BASH_SOURCE%/*}/../unix/ffmpeg-installation-utils.sh" + +ffmpeg_source_dir=$(download_ffmpeg) +ffmpeg_config_options=$(get_ffmpeg_config_options "shared") prefix="/usr/local/ios/ffmpeg" +dylib_regex="^@rpath/.*\.dylib$" -if [ ! -d "$ffmpeg_source_dir" ]; -then - InstallFromCompressedFileFromURL "$url_cached" "$url_public" "$sha1" "$target_dir" -fi +build_ffmpeg_ios() { + local target_platform=$1 + local target_cpu_arch="" + if [ "$target_platform" == "arm64-simulator" ]; then + target_sdk="iphonesimulator" + target_cpu_arch="arm64" + minos="-mios-simulator-version-min=16.0" + elif [ "$target_platform" == "x86_64-simulator" ]; then + target_sdk="iphonesimulator" + target_cpu_arch="x86_64" + minos="-mios-simulator-version-min=16.0" + elif [ "$target_platform" == "arm64-iphoneos" ]; then + target_sdk="iphoneos" + target_cpu_arch="arm64" + minos="-miphoneos-version-min=16.0" + else + echo "Error when building FFmpeg for iOS. Unknown parameter given for target_platform: '${target_platform}'" + exit 1 + fi -ffmpeg_config_options=$(cat "${BASH_SOURCE%/*}/../shared/ffmpeg_config_options.txt") + local build_dir="$ffmpeg_source_dir/build_ios/$target_platform" + sudo mkdir -p "$build_dir" + pushd "$build_dir" -build_ffmpeg_ios() { - local target_arch=$1 - - if [ "$target_arch" == "x86_64" ]; then - target_sdk="iphonesimulator" - target_arch="x86_64" - minos="-mios-simulator-version-min=13.0" - else - target_sdk="iphoneos" - target_arch="arm64" - minos="-miphoneos-version-min=13.0" - fi - - local build_dir="$ffmpeg_source_dir/build_ios/$target_arch" - sudo mkdir -p "$build_dir" - pushd "$build_dir" - - # shellcheck disable=SC2086 - sudo "$ffmpeg_source_dir/configure" $ffmpeg_config_options \ + # shellcheck disable=SC2086 + sudo "$ffmpeg_source_dir/configure" $ffmpeg_config_options \ --sysroot="$(xcrun --sdk "$target_sdk" --show-sdk-path)" \ - --enable-cross-compile \ - --enable-optimizations \ - --prefix=$prefix \ - --arch=$target_arch \ - --cc="xcrun --sdk ${target_sdk} clang -arch $target_arch" \ - --cxx="xcrun --sdk ${target_sdk} clang++ -arch $target_arch" \ - --ar="$(xcrun --sdk ${target_sdk} --find ar)" \ - --ranlib="$(xcrun --sdk ${target_sdk} --find ranlib)" \ - --strip="$(xcrun --sdk ${target_sdk} --find strip)" \ - --nm="$(xcrun --sdk ${target_sdk} --find nm)" \ - --target-os=darwin \ - --extra-cflags="$minos" \ - --extra-cxxflags="$minos" \ - --enable-cross-compile \ - --enable-shared \ - --disable-static \ - --install-name-dir='@rpath/Frameworks' \ - --enable-swscale \ - --enable-pthreads \ - --disable-audiotoolbox - - sudo make install DESTDIR="$build_dir/installed" -j - popd + --enable-cross-compile \ + --enable-optimizations \ + --prefix=$prefix \ + --arch=$target_cpu_arch \ + --cc="xcrun --sdk ${target_sdk} clang -arch $target_cpu_arch" \ + --cxx="xcrun --sdk ${target_sdk} clang++ -arch $target_cpu_arch" \ + --target-os=darwin \ + --extra-ldflags="$minos" \ + --enable-shared \ + --disable-static \ + --install-name-dir='@rpath' \ + --disable-audiotoolbox + + sudo make install DESTDIR="$build_dir/installed" -j4 + popd } install_ffmpeg() { @@ -98,11 +82,110 @@ install_ffmpeg() { popd >/dev/null done sudo cp -r $1$prefix/include $prefix - echo "LS done." } -build_ffmpeg_ios "x86_64" -build_ffmpeg_ios "arm64" +build_info_plist() { + local file_path="$1" + local framework_name="$2" + local framework_id="$3" + + local minimum_version_key="MinimumOSVersion" + local minimum_os_version="16.0" + local supported_platforms="iPhoneOS" + + # TODO: This should be filled out with the actual version of FFmpeg that we are + # deploying. + info_plist=" + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${framework_name} + CFBundleIdentifier + ${framework_id} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${framework_name} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 7.0.2 + CFBundleVersion + 7.0.2 + CFBundleSignature + ???? + ${minimum_version_key} + ${minimum_os_version} + CFBundleSupportedPlatforms + + ${supported_platforms} + + NSPrincipalClass + + +" + echo $info_plist | sudo tee ${file_path} 1>/dev/null +} + +create_framework() { + # Create a 'traditional' framework from the corresponding dylib. + local framework_name="$1" + local platform="$2" # For now it's either arm64 or arm64-simulator, see below. + local ffmpeg_library_path="$ffmpeg_source_dir/build_ios/${platform}/installed/usr/local/ios/ffmpeg" + local framework_complete_path="${ffmpeg_library_path}/framework/${framework_name}.framework/${framework_name}" + + sudo mkdir -p "${ffmpeg_library_path}/framework/${framework_name}.framework" + sudo cp "${ffmpeg_library_path}/lib/${framework_name}.dylib" "${ffmpeg_library_path}/framework/${framework_name}.framework/${framework_name}" + + # Fix LC_ID_DYLIB (to be libavcodec.framework/libavcodec instead of @rpath/libavcodec.xx.yy.dylib + sudo install_name_tool -id @rpath/${framework_name}.framework/${framework_name} "${framework_complete_path}" + + build_info_plist "${ffmpeg_library_path}/framework/${framework_name}.framework/Info.plist" "${framework_name}" "io.qt.ffmpegkit."${framework_name} + + # Fix all FFmpeg-related LC_LOAD_DYLIB, similar to how we fixed LC_ID_DYLIB above: + otool -L "$framework_complete_path" | awk '/\t/ {print $1}' | egrep "$dylib_regex" | while read -r dependency_path; do + found_name=$(tmp=${dependency_path/*\/}; echo ${tmp/\.*}) + if [ "$found_name" != "$framework_name" ] + then + sudo install_name_tool -change "$dependency_path" @rpath/${found_name}.framework/${found_name} "${framework_complete_path}" + fi + done + #sudo mkdir -p "$prefix/framework/" + #sudo cp -r "${ffmpeg_library_path}/framework/${framework_name}.framework" "$prefix/framework/" +} + +create_xcframework() { + # Create 'traditional' framework from the corresponding dylib, + # also creating + local framework_name="$1" + local target_platform_a="$2" + local target_platform_b="$3" + + local fw_a="$ffmpeg_source_dir/build_ios/${target_platform_a}/installed/usr/local/ios/ffmpeg/framework/${framework_name}.framework" + local fw_b="$ffmpeg_source_dir/build_ios/${target_platform_b}/installed/usr/local/ios/ffmpeg/framework/${framework_name}.framework" + + sudo mkdir -p "$prefix/framework/" + sudo xcodebuild -create-xcframework -framework $fw_a -framework $fw_b -output "${prefix}/framework/${framework_name}.xcframework" +} + +build_ffmpeg_ios "x86_64-simulator" +build_ffmpeg_ios "arm64-iphoneos" + +ffmpeg_libs="libavcodec libavformat libavutil libswresample libswscale" + +for name in $ffmpeg_libs; do + create_framework $name "arm64-iphoneos" + create_framework $name "x86_64-simulator" +done + +# Create corresponding (xc)frameworks containing both arm64 and arm64-simulator frameworks: +for name in $ffmpeg_libs; do + create_xcframework $name "arm64-iphoneos" "x86_64-simulator" +done + +install_ffmpeg "$ffmpeg_source_dir/build_ios/x86_64-simulator/installed" "$ffmpeg_source_dir/build_ios/arm64-iphoneos/installed" -install_ffmpeg "$ffmpeg_source_dir/build_ios/x86_64/installed" "$ffmpeg_source_dir/build_ios/arm64/installed" -SetEnvVar "FFMPEG_DIR_IOS" $prefix +set_ffmpeg_dir_env_var "FFMPEG_DIR_IOS" $prefix diff --git a/coin/provisioning/common/unix/install-ffmpeg.sh b/coin/provisioning/common/unix/install-ffmpeg.sh deleted file mode 100755 index 6d20f9d5ce6..00000000000 --- a/coin/provisioning/common/unix/install-ffmpeg.sh +++ /dev/null @@ -1,156 +0,0 @@ -#!/usr/bin/env bash -# Copyright (C) 2023 The Qt Company Ltd. -# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only - -# This script will build and install FFmpeg static libs -set -ex -os="$1" -build_type="$2" - -if [ ! -n "$build_type" ] && [ "$build_type" != "static" ] && [ "$build_type" != "shared" ]; then - >&2 echo "Invalid build_type: $build_type. The shared build type will be used." - build_type="shared" -fi - -# shellcheck source=../unix/InstallFromCompressedFileFromURL.sh -source "${BASH_SOURCE%/*}/../unix/InstallFromCompressedFileFromURL.sh" -# shellcheck source=../unix/SetEnvVar.sh -source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh" - -version="n7.0.2" -url_public="https://github.com/FFmpeg/FFmpeg/archive/refs/tags/$version.tar.gz" -sha1="e017c72dd84a9bac1519eaa33c203b82dd850bc0" -url_cached="http://ci-files01-hki.ci.qt.io/input/ffmpeg/$version.tar.gz" -ffmpeg_name="FFmpeg-$version" - -target_dir="$HOME" -app_prefix="" -ffmpeg_source_dir="$target_dir/$ffmpeg_name" - -if [ ! -d "$ffmpeg_source_dir" ] -then - InstallFromCompressedFileFromURL "$url_cached" "$url_public" "$sha1" "$target_dir" "$app_prefix" -fi - -ffmpeg_config_options=$(cat "${BASH_SOURCE%/*}/../shared/ffmpeg_config_options.txt") -if [ "$build_type" != "static" ]; then - ffmpeg_config_options+=" --enable-shared --disable-static" -fi - -install_ff_nvcodec_headers() { - nv_codec_version="11.1" # use 11.1 to ensure compatibility with 470 nvidia drivers; might be upated to 12.0 - nv_codec_url_public="https://github.com/FFmpeg/nv-codec-headers/archive/refs/heads/sdk/$nv_codec_version.zip" - nv_codec_url_cached="http://ci-files01-hki.ci.qt.io/input/ffmpeg/nv-codec-headers/nv-codec-headers-sdk-$nv_codec_version.zip" - nv_codec_sha1="ceb4966ab01b2e41f02074675a8ac5b331bf603e" - #nv_codec_sha1="4f30539f8dd31945da4c3da32e66022f9ca59c08" // 12.0 - nv_codec_dir="$target_dir/nv-codec-headers-sdk-$nv_codec_version" - if [ ! -d "$nv_codec_dir" ] - then - InstallFromCompressedFileFromURL "$nv_codec_url_cached" "$nv_codec_url_public" "$nv_codec_sha1" "$target_dir" "" - fi - - sudo make -C "$nv_codec_dir" install -j - - # Might be not detected by default on RHEL - export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig" -} - -fix_openssl3_pc_files() { - # On RHEL 8, openssl3 pc files are libopenssl3.pc, libssl3.pc, libcrypto3.pc, - # and FFmpeg cannot find them. Instead, it finds FFmpeg 1.x.x if it's installed. - # The function fixes the files with copying them to a custom directory - - local openssl3_pcfiledir=$(pkg-config --variable=pcfiledir openssl3) - if [ ! -n "$openssl3_pcfiledir" ]; then - return - fi - - local pcfiles=("libssl" "libcrypto" "openssl") - - for pcfile in ${pcfiles[@]}; do - if [ ! -f "$openssl3_pcfiledir/${pcfile}3.pc" ]; then - echo "pkgconfig has found openssl3 but the file $openssl3_pcfiledir/${pcfile}3.pc does't exist" - return - fi - done - - local new_pkgconfig_dir="$ffmpeg_source_dir/openssl3_pkgconfig" - mkdir -p $new_pkgconfig_dir - - for pcfile in ${pcfiles[@]}; do - sed -E '/^Requires(\.private)?:/s/ (libssl|libcrypto)3/ \1/g;' "$openssl3_pcfiledir/${pcfile}3.pc" > "$new_pkgconfig_dir/${pcfile}.pc" - done - - export PKG_CONFIG_PATH="$new_pkgconfig_dir:$PKG_CONFIG_PATH" -} - -build_ffmpeg() { - local arch="$1" - local prefix="$2" - local build_dir="$ffmpeg_source_dir/build/$arch" - mkdir -p "$build_dir" - pushd "$build_dir" - - if [ -z "$prefix" ] - then prefix="/usr/local/$ffmpeg_name" - fi - - if [ -n "$arch" ] - then cc="clang -arch $arch" - fi - - # shellcheck disable=SC2086 - if [ -n "$arch" ] - then "$ffmpeg_source_dir/configure" $ffmpeg_config_options --prefix="$prefix" --enable-cross-compile --arch="$arch" --cc="$cc" - else "$ffmpeg_source_dir/configure" $ffmpeg_config_options --prefix="$prefix" - fi - make install DESTDIR="$build_dir/installed" -j4 - popd -} - -if [ "$os" == "linux" ]; then - install_ff_nvcodec_headers - - ffmpeg_config_options+=" --enable-openssl" - fix_openssl3_pc_files - echo "pkg-config openssl version: $(pkg-config --modversion openssl)" - - build_ffmpeg - - output_dir="$ffmpeg_source_dir/build/installed/usr/local/$ffmpeg_name" - - if [ "$build_type" != "static" ]; then - fix_dependencies="${BASH_SOURCE%/*}/../shared/fix_ffmpeg_dependencies.sh" - "$fix_dependencies" "$output_dir" - fi - - sudo mv "$output_dir" "/usr/local" - SetEnvVar "FFMPEG_DIR" "/usr/local/$ffmpeg_name" - -elif [ "$os" == "macos" ] || [ "$os" == "macos-universal" ]; then - brew install yasm - export MACOSX_DEPLOYMENT_TARGET=12 - fix_relative_dependencies="${BASH_SOURCE%/*}/../macos/fix_relative_dependencies.sh" - - if [ "$os" == "macos" ]; then - build_ffmpeg - install_dir="$ffmpeg_source_dir/build/installed" - "$fix_relative_dependencies" "$install_dir/usr/local/$ffmpeg_name/lib" - sudo mv "$install_dir/usr/local/$ffmpeg_name" "/usr/local" - else - build_ffmpeg "arm64" - build_ffmpeg "x86_64" - - arm64_install_dir="$ffmpeg_source_dir/build/arm64/installed" - x86_64_install_dir="$ffmpeg_source_dir/build/x86_64/installed" - - "$fix_relative_dependencies" "$arm64_install_dir/usr/local/$ffmpeg_name/lib" - "$fix_relative_dependencies" "$x86_64_install_dir/usr/local/$ffmpeg_name/lib" - - sudo "${BASH_SOURCE%/*}/../macos/makeuniversal.sh" "$arm64_install_dir" "$x86_64_install_dir" - fi - - SetEnvVar "FFMPEG_DIR" "/usr/local/$ffmpeg_name" -fi - - diff --git a/coin/provisioning/common/unix/install-patchelf.sh b/coin/provisioning/common/unix/install-patchelf.sh index 3779478a935..44ad9b882d5 100755 --- a/coin/provisioning/common/unix/install-patchelf.sh +++ b/coin/provisioning/common/unix/install-patchelf.sh @@ -4,6 +4,7 @@ source "${BASH_SOURCE%/*}/../unix/InstallFromCompressedFileFromURL.sh" +# version 0.18.0 doesn't work correctly for Android binaries, so we use 0.17.2 patchelf_version="0.17.2" url_cached="https://ci-files01-hki.ci.qt.io/input/android/patchelf/$patchelf_version.tar.gz" diff --git a/coin/provisioning/common/unix/install_protobuf.sh b/coin/provisioning/common/unix/install_protobuf.sh index 110d8b9c4b6..9bb31c1f4b8 100755 --- a/coin/provisioning/common/unix/install_protobuf.sh +++ b/coin/provisioning/common/unix/install_protobuf.sh @@ -92,6 +92,8 @@ cmake "$targetDir" -G"Ninja Multi-Config" \ ninja all:all sudo env "PATH=$PATH" ninja install:all +SetEnvVar "protobuf_ROOT" "$installPrefix/lib/cmake/protobuf" + # Refresh shared library cache if OS isn't macOS if uname -a |grep -qv "Darwin"; then sudo ldconfig diff --git a/coin/provisioning/common/unix/libclang.sh b/coin/provisioning/common/unix/libclang.sh index b720fcf7c3c..b7761b465d9 100755 --- a/coin/provisioning/common/unix/libclang.sh +++ b/coin/provisioning/common/unix/libclang.sh @@ -20,38 +20,38 @@ PROVISIONING_DIR="$(dirname "$0")/../../" # shellcheck source=./common.sourced.sh source "$PROVISIONING_DIR"/common/unix/common.sourced.sh -libclang_version="18.1.7" +libclang_version="20.1.0" if uname -a |grep -q Darwin; then version=$libclang_version - url="https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-release_$%7Bversion%7D-based-mac.7z" - url_cached="http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-release_$%7Bversion%7D-based-mac.7z" - sha1="9ea511576645ef4abee6d4c27550406e929334d5" + url="https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-llvmorg-$%7Bversion%7D-macos-universal.7z" + url_cached="http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-llvmorg-$%7Bversion%7D-macos-universal.7z" + sha1="a0061a2b7a7411323ae3d81fdb2071ad522ddd5f" elif test -f /etc/redhat-release && grep "Red Hat" /etc/redhat-release | grep "9" ; then version=$libclang_version - url="https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-release_$%7Bversion%7D-based-linux-Rhel9.2-gcc10.0-x86_64.7z" - url_cached="http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-release_$%7Bversion%7D-based-linux-Rhel9.2-gcc10.0-x86_64.7z" - sha1="32c29d8df726b035e0a97e767c5c3e392aa331e1" + url="https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-llvmorg-$%7Bversion%7D-linux-Rhel9.4-gcc11.4-x86_64.7z" + url_cached="http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-llvmorg-$%7Bversion%7D-linux-Rhel9.4-gcc11.4-x86_64.7z" + sha1="041036bb2b360c18448c993671507bbb16b9b76d" elif test "$PROVISIONING_OS_ID" == "debian" && test "$PROVISIONING_ARCH" == "arm64" ; then version=$libclang_version - url="https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-release_$%7Bversion%7D-based-linux-Debian11.6-gcc10.0-arm64.7z" - url_cached="http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-release_$%7Bversion%7D-based-linux-Debian11.6-gcc10.0-arm64.7z" - sha1="8d876f60c2fe9c55e18fbac0be2acb70bd20d5d1" + url="https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-llvmorg-$%7Bversion%7D-linux-Debian11.6-gcc10.0-arm64.7z" + url_cached="http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-llvmorg-$%7Bversion%7D-linux-Debian11.6-gcc10.0-arm64.7z" + sha1="ad3244f76cb5dab8e3d5dfe839e21a9bac3039e9" elif test "$PROVISIONING_OS_ID" == "ubuntu" && test "$PROVISIONING_ARCH" == "arm64" ; then version=$libclang_version - url="https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-release_$%7Bversion%7D-based-linux-Ubuntu24.04-gcc11.2-arm64.7z" - url_cached="http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-release_$%7Bversion%7D-based-linux-Ubuntu24.04-gcc11.2-arm64.7z" - sha1="5a7bda4fbd2c52ae66557034591d977ba617482c" + url="https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-llvmorg-$%7Bversion%7D-linux-Ubuntu24.04-gcc11.2-arm64.7z" + url_cached="http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-llvmorg-$%7Bversion%7D-linux-Ubuntu24.04-gcc11.2-arm64.7z" + sha1="bde39a28872cc618983d231ffd1df2c104ff1992" elif test "$PROVISIONING_OS_ID" == "ubuntu" && test "$PROVISIONING_ARCH" == "x86_64" ; then version=$libclang_version - url="https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-release_$%7Bversion%7D-based-linux-Ubuntu22.04-gcc11.2-x86_64.7z" - url_cached="http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-release_$%7Bversion%7D-based-linux-Ubuntu22.04-gcc11.2-x86_64.7z" - sha1="b9f8735a148342174d7d763b5475175cd0827441" + url="https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-llvmorg-$%7Bversion%7D-linux-Ubuntu22.04-gcc11.2-x86_64.7z" + url_cached="http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-llvmorg-$%7Bversion%7D-linux-Ubuntu22.04-gcc11.2-x86_64.7z" + sha1="3f5e5214cf31adfb01be21fcf4f27b9adf8f13b0" else version=$libclang_version - url="https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-release_$%7Bversion%7D-based-linux-Rhel8.8-gcc10.0-x86_64.7z" - url_cached="http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-release_$%7Bversion%7D-based-linux-Rhel8.8-gcc10.0-x86_64.7z" - sha1="a51c5562c9b071250e7971390d55ef21924271ca" + url="https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-llvmorg-$%7Bversion%7D-linux-Rhel8.10-gcc10.0-x86_64.7z" + url_cached="http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-llvmorg-$%7Bversion%7D-linux-Rhel8.10-gcc10.0-x86_64.7z" + sha1="1fdc23ae0fce48ed82508b1bad0c68d2e5a30c8b" fi zip="/tmp/libclang.7z" diff --git a/coin/provisioning/common/unix/openssl_3_for_android.sh b/coin/provisioning/common/unix/openssl_3_for_android.sh index 0ad79315e09..a49da77f15d 100755 --- a/coin/provisioning/common/unix/openssl_3_for_android.sh +++ b/coin/provisioning/common/unix/openssl_3_for_android.sh @@ -12,12 +12,12 @@ source "${BASH_SOURCE%/*}/../unix/DownloadURL.sh" source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh" version="3.0.7" -ndkVersionLatest="r26b" +ndkVersionLatest="r27c" ndkVersionDefault=$ndkVersionLatest -prebuiltOpensslNdkShaLatest="ea925d5a5b696916fb3650403a2eb3189c52b5ce" +prebuiltOpensslNdkShaLatest="733cff853b6ee7738e78b90f46b5f028c8490e1e" prebuiltOpensslNdkShaDefault=$prebuiltOpensslNdkShaLatest -: <<'EOB' SOURCE BUILD INSTRUCTIONS - Openssl prebuilt was made using Android NDK 25 +: <<'EOB' SOURCE BUILD INSTRUCTIONS - Openssl prebuilt was made using Android NDK r27c # Source built requires GCC and Perl to be in PATH. Rhel "requires yum install perl-IPC-Cmd" exports_file="/tmp/export.sh" # source previously made environmental variables. @@ -32,7 +32,7 @@ else fi # ANDROID_NDK_ROOT is required during Configure -export ANDROID_NDK_ROOT=/opt/android/android-ndk-r26b +export ANDROID_NDK_ROOT=/opt/android/android-ndk-r27c officialUrl="https://www.openssl.org/source/openssl-$version.tar.gz" cachedUrl="http://ci-files01-hki.ci.qt.io/input/openssl/openssl-$version.tar.gz" diff --git a/coin/provisioning/common/unix/openssl_for_android.sh b/coin/provisioning/common/unix/openssl_for_android.sh index d555e0ccd9b..c7ea14021ff 100755 --- a/coin/provisioning/common/unix/openssl_for_android.sh +++ b/coin/provisioning/common/unix/openssl_for_android.sh @@ -12,12 +12,12 @@ source "${BASH_SOURCE%/*}/../unix/DownloadURL.sh" source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh" version="3.0.7" -ndkVersionLatest="r26b" +ndkVersionLatest="r27c" ndkVersionDefault=$ndkVersionLatest -prebuiltOpensslNdkShaLatest="ea925d5a5b696916fb3650403a2eb3189c52b5ce" +prebuiltOpensslNdkShaLatest="733cff853b6ee7738e78b90f46b5f028c8490e1e" prebuiltOpensslNdkShaDefault=$prebuiltOpensslNdkShaLatest -: <<'EOB' SOURCE BUILD INSTRUCTIONS - Openssl prebuilt was made using Android NDK r26b +: <<'EOB' SOURCE BUILD INSTRUCTIONS - Openssl prebuilt was made using Android NDK r27c # Source built requires GCC and Perl to be in PATH. Rhel "requires yum install perl-IPC-Cmd" exports_file="/tmp/export.sh" # source previously made environmental variables. diff --git a/coin/provisioning/common/unix/squishInstall.sh b/coin/provisioning/common/unix/squishInstall.sh index 5f9dc48b0c8..1741cda3aea 100755 --- a/coin/provisioning/common/unix/squishInstall.sh +++ b/coin/provisioning/common/unix/squishInstall.sh @@ -11,8 +11,8 @@ set -ex # This script will fetch and extract pre-buildt squish package for Linux and Mac. # Squish is need by Release Test Automation (RTA) -version="8.0.0" -qtBranch="67x" +version="8.1.0" +qtBranch="68x" installFolder="/opt" squishFolder="$installFolder/squish" preBuildCacheUrl="ci-files01-hki.ci.qt.io:/hdd/www/input/squish/jenkins_build/stable" @@ -24,14 +24,14 @@ testSuiteUrl="ci-files01-hki.ci.qt.io:/hdd/www/input/squish/coin/suite_test_squi testSuiteLocal="/tmp/squish_test_suite" if uname -a |grep -q Darwin; then compressedFolder="prebuild-squish-$version-$qtBranch-mac-x64.tar.gz" - sha1="8ae422b44af9b8e5f0d15cdca08df99973b8699a" + sha1="03a0c713d0d328667df2e7804f2e4d507707b849" else if [ "$PROVISIONING_ARCH" = arm64 ] ; then compressedFolder="prebuild-squish-$version-$qtBranch-linux-arm64.tar.gz" - sha1="06d542579271f88b1527d6ddca2bfd4eaf2dade5" + sha1="f6a2eb69faed64f13b164fb8d056182c41d2952c" else compressedFolder="prebuild-squish-$version-$qtBranch-linux-x64.tar.gz" - sha1="db5c48f359b46a460551cdf9362c63f557cbc04f" + sha1="b798417ddf4b668306cb90d551df906828644152" fi fi diff --git a/coin/provisioning/common/windows/android-openssl.ps1 b/coin/provisioning/common/windows/android-openssl.ps1 index 3542c907691..5c431a26536 100644 --- a/coin/provisioning/common/windows/android-openssl.ps1 +++ b/coin/provisioning/common/windows/android-openssl.ps1 @@ -16,11 +16,11 @@ if (Is64BitWinHost) { # More info and building instructions can be found from http://doc.qt.io/qt-5/opensslsupport.html $openssl_version = "3.0.7" -$ndk_version_latest = "r26b" +$ndk_version_latest = "r27c" $ndk_version_default = "$ndk_version_latest" $openssl_compressed = Get-DownloadLocation ("openssl-${openssl_version}.tar.gz") $openssl_sha1 = "f20736d6aae36bcbfa9aba0d358c71601833bf27" -$prebuilt_sha1_ndk_latest = "ea925d5a5b696916fb3650403a2eb3189c52b5ce" +$prebuilt_sha1_ndk_latest = "733cff853b6ee7738e78b90f46b5f028c8490e1e" $prebuilt_sha1_ndk_default = "$prebuilt_sha1_ndk_latest" $destination_prefix = "C:\Utils\prebuilt-openssl-${openssl_version}-for-android-ndk" @@ -70,7 +70,7 @@ function Install($1, $2) { } # ANDROID_NDK_ROOT needs to be in environment variables before running this script - # Set-EnvironmentVariable "ANDROID_NDK_ROOT" "C:\Utils\Android\android-ndk-r26b" + # Set-EnvironmentVariable "ANDROID_NDK_ROOT" "C:\Utils\Android\android-ndk-r27c" $make_install = Start-Process -NoNewWindow -Wait -PassThru -ErrorAction Stop -FilePath "$msys_bash" -ArgumentList ("-lc", "`"yes | pacman -S make`"") CheckExitCode $make_install diff --git a/coin/provisioning/common/windows/android.ps1 b/coin/provisioning/common/windows/android.ps1 index b594238c9f5..5b2039d1136 100644 --- a/coin/provisioning/common/windows/android.ps1 +++ b/coin/provisioning/common/windows/android.ps1 @@ -10,9 +10,9 @@ # That's why we need to use Andoid-21 API version in Qt 5.9. # NDK -$ndkVersionLatest = "r26b" +$ndkVersionLatest = "r27c" $ndkVersionDefault = $ndkVersionLatest -$ndkChecksumLatest = "17453c61a59e848cffb8634f2c7b322417f1732e" +$ndkChecksumLatest = "ac5f7762764b1f15341094e148ad4f847d050c38" $ndkChecksumDefault = $ndkChecksumLatest $ndkCachedUrlLatest = "\\ci-files01-hki.ci.qt.io\provisioning\android\android-ndk-$ndkVersionLatest-windows.zip" $ndkOfficialUrlLatest = "https://dl.google.com/android/repository/android-ndk-$ndkVersionLatest-windows.zip" @@ -24,8 +24,8 @@ $ndkZip = "C:\Windows\Temp\android_ndk.zip" $toolsVersion = "2.1" $toolsFile = "commandlinetools-win-6609375_latest.zip" $sdkApi = "ANDROID_API_VERSION" -$sdkApiLevel = "android-34" -$sdkBuildToolsVersion = "34.0.0" +$sdkApiLevel = "android-35" +$sdkBuildToolsVersion = "35.0.1" $toolsCachedUrl= "\\ci-files01-hki.ci.qt.io\provisioning\android\$toolsFile" $toolsOfficialUrl = "https://dl.google.com/android/repository/$toolsFile" $toolsChecksum = "e2e19c2ff584efa87ef0cfdd1987f92881323208" diff --git a/coin/provisioning/common/windows/certificate-updates.ps1 b/coin/provisioning/common/windows/certificate-updates.ps1 new file mode 100644 index 00000000000..f22a97a479b --- /dev/null +++ b/coin/provisioning/common/windows/certificate-updates.ps1 @@ -0,0 +1,12 @@ +# Copyright (C) 2025 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +# This script updates Windows Root Certifications which are usually updated weekly by Windows update + +. "$PSScriptRoot\helpers.ps1" + +$sstCerts = "C:\Windows\Temp\certificates.sst" +Run-Executable "certutil.exe" "-generateSSTFromWU $sstCerts" +$sstCertsPath = (Get-ChildItem -Path $sstCerts) +$sstCertsPath | Import-Certificate -CertStoreLocation "Cert:\LocalMachine\Root" | Out-String | Measure-Object -Line +Remove-Item -Path $sstCerts diff --git a/coin/provisioning/common/windows/disable-windows-delivery-optimization.ps1 b/coin/provisioning/common/windows/disable-windows-delivery-optimization.ps1 new file mode 100644 index 00000000000..9ea7b0f96f1 --- /dev/null +++ b/coin/provisioning/common/windows/disable-windows-delivery-optimization.ps1 @@ -0,0 +1,8 @@ +# Copyright (C) 2025 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +# This script disables the Delivery Optimization service + +. "$PSScriptRoot\helpers.ps1" + +Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\DoSvc" -Name "Start" -Value 4 diff --git a/coin/provisioning/common/windows/emsdk.ps1 b/coin/provisioning/common/windows/emsdk.ps1 index b0870e8d04e..5d8db6dfb39 100644 --- a/coin/provisioning/common/windows/emsdk.ps1 +++ b/coin/provisioning/common/windows/emsdk.ps1 @@ -5,14 +5,15 @@ # This script will install emscripten needed by WebAssembly -$version = "3.1.56" +$version = "3.1.70" $zipVersion = $version -replace '\.', "_" $temp = "$env:tmp" $cacheUrl = "https://ci-files01-hki.ci.qt.io/input/emsdk/emsdk_windows_$%7BzipVersion%7D.zip" -$sha = "ab376d218f1a66302c36770977948f74f0576a42" +$sha = "4d05e378575cb3d74e2740b121730ba1f5822f27" -# Make sure python is in the path -Prepend-Path "C:\Python27" +# Python used for '.\emsdk install' +$pythonPath = [System.Environment]::GetEnvironmentVariable("PYTHON3_PATH", "Machine") +Prepend-Path $pythonPath cd "C:\\Utils" $installLocationEmsdk = "C:\\Utils\\emsdk" @@ -24,11 +25,18 @@ try { cd $installLocationEmsdk .\emsdk activate $version } catch { - Write-Host "Can't find cached emsdk. Cloning it" + Write-Host "Can't find cached emsdk or another error occurred. Cloning it" + Write-Host "Error details: $_" + C:\PROGRA~1\Git\bin\git clone https://github.com/emscripten-core/emsdk.git cd $installLocationEmsdk - .\emsdk install $version - .\emsdk activate $version + + try { + .\emsdk install $version + .\emsdk activate $version + } catch { + throw "emsdk installation failed: $_" + } } $versionWinPython = $($Env:EMSDK_PYTHON -split ('python\\') -split ('_64bit'))[1] diff --git a/coin/provisioning/common/windows/install-ffmpeg.ps1 b/coin/provisioning/common/windows/install-ffmpeg.ps1 index f2c36417878..ee8c2f2fc4c 100644 --- a/coin/provisioning/common/windows/install-ffmpeg.ps1 +++ b/coin/provisioning/common/windows/install-ffmpeg.ps1 @@ -6,9 +6,9 @@ # This script will install FFmpeg $msys = "C:\Utils\msys64\usr\bin\bash" -$version="n7.0.2" +$version="n7.1.1" $url_public="https://github.com/FFmpeg/FFmpeg/archive/refs/tags/$version.tar.gz" -$sha1="e017c72dd84a9bac1519eaa33c203b82dd850bc0" +$sha1="479291e8555fe036ca760f95cea829a21e9b8365" $url_cached="http://ci-files01-hki.ci.qt.io/input/ffmpeg/$version.tar.gz" $ffmpeg_name="FFmpeg-$version" @@ -144,7 +144,7 @@ function InstallAndroidArmv7 { $target_cpu="armv7-a" $api_version="24" - $ndkVersionLatest = "r26b" + $ndkVersionLatest = "r27c" $ndkFolderLatest = "/c/Utils/Android/android-ndk-$ndkVersionLatest" $toolchain="${ndkFolderLatest}/toolchains/llvm/prebuilt/windows-x86_64" diff --git a/coin/provisioning/common/windows/install-sevenzip.ps1 b/coin/provisioning/common/windows/install-sevenzip.ps1 index 47a34e2be9d..dad34d90b42 100644 --- a/coin/provisioning/common/windows/install-sevenzip.ps1 +++ b/coin/provisioning/common/windows/install-sevenzip.ps1 @@ -5,24 +5,24 @@ # This script installs 7-Zip -$version = "23.01" -$nonDottedVersion = "2301" +$version = "24.09" +$nonDottedVersion = "2409" $cpu_arch = Get-CpuArchitecture switch ($cpu_arch) { arm64 { $arch = "-arm64" - $sha1 = "be65c2ea6119c04945c66b13413892f2bb03d9a7" + $sha1 = "2f5aaa22a4a591b01a1b06c17565233f0cd70429" Break } x64 { $arch = "-x64" - $sha1 = "7DF28D340D7084647921CC25A8C2068BB192BDBB" + $sha1 = "28b53835fe92c3fa6e0c422fc3b17c6bc1cb27e0" Break } x86 { $arch = "" - $sha1 = "D5D00E6EA8B8E68CE7A704FD478DC950E543C25C" + $sha1 = "2135a90a9f6c3202c32a87b1c5cf805ce294a497" Break } default { diff --git a/coin/provisioning/common/windows/libclang.ps1 b/coin/provisioning/common/windows/libclang.ps1 index 615c496bef2..18f6bdef546 100644 --- a/coin/provisioning/common/windows/libclang.ps1 +++ b/coin/provisioning/common/windows/libclang.ps1 @@ -1,11 +1,11 @@ param( [string]$archVer="32", - [string]$toolchain="vs2019", + [string]$toolchain="vs2022", [bool]$setDefault=$true ) . "$PSScriptRoot\helpers.ps1" -$libclang_version="18.1.7" +$libclang_version="20.1.0" Write-Output "libClang = $libclang_version" >> ~/versions.txt # PySide versions following 5.6 use a C++ parser based on Clang (http://clang.org/). @@ -24,8 +24,8 @@ function install() { $zip = "c:\users\qt\downloads\libclang.7z" - $script:OfficialUrl = "https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-release_$libclang_version-based-windows-$toolchain%60_$archVer.7z" - $script:CachedUrl = "http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-release_$libclang_version-based-windows-$toolchain%60_$archVer.7z" + $script:OfficialUrl = "https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-llvmorg-$libclang_version-windows-$toolchain%60_$archVer.7z" + $script:CachedUrl = "http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-llvmorg-$libclang_version-windows-$toolchain%60_$archVer.7z" Download $OfficialUrl $CachedUrl $zip Verify-Checksum $zip $sha1 @@ -38,20 +38,10 @@ $toolchainSuffix = "" if ( $toolchain -eq "vs2022" ) { if ( $archVer -eq "64" ) { - $sha1 = "7e51f0eabdfe8eea17aaf1dce7b2ffe1ea064f66" + $sha1 = "60c840e627b5bb03663f00db17bf249b37936428" } elseif ( $archVer -eq "arm64" ) { - $sha1 = "986d4d0f253de505ef499345238c101dac1ca3a6" - } - else { - $sha1 = "" - } - $toolchainSuffix = "msvc" -} - -if ( $toolchain -eq "vs2019" ) { - if ( $archVer -eq "64" ) { - $sha1 = "8e0862386caef7e4537599ef980eeb6ebee8767f" + $sha1 = "68ead0e3135dfccae21b226f187fc305803ede3d" } else { $sha1 = "" @@ -61,7 +51,7 @@ if ( $toolchain -eq "vs2019" ) { if ( $toolchain -eq "mingw" ) { if ( $archVer -eq "64" ) { - $sha1 = "a23cbb0822cf2eb8d1cecf26e8614ef37a7611e3" + $sha1 = "2180859572dd6ad2029ecffffcc785cba334e037" } else { $sha1 = "" @@ -72,7 +62,7 @@ if ( $toolchain -eq "mingw" ) { if ( $toolchain -eq "llvm-mingw" ) { if ( $archVer -eq "64" ) { - $sha1 = "9c34f99eb575b42c2befe27829c08e6d3f01ae58" + $sha1 = "3e917d002f363c225e5ee2b7d8999a3cabd8b467" } else { $sha1 = "" diff --git a/coin/provisioning/common/windows/squishInstall.ps1 b/coin/provisioning/common/windows/squishInstall.ps1 index 4766d2e964b..38532a34ece 100644 --- a/coin/provisioning/common/windows/squishInstall.ps1 +++ b/coin/provisioning/common/windows/squishInstall.ps1 @@ -6,8 +6,8 @@ # This script will pre-installed squish package for Windows. # Squish is need by Release Test Automation (RTA) -$version = "8.0.0" -$qtBranch = "67x" +$version = "8.1.0" +$qtBranch = "68x" $targetDir = "C:\Utils\squish" $squishPackage = "C:\Utils\rta_squish" $squishUrl = "\\ci-files01-hki.ci.qt.io\provisioning\squish\jenkins_build\stable" @@ -33,7 +33,7 @@ if (($OSVersion -eq "Windows 10 Enterprise") -or ($OSVersion -eq "Windows 10 Pro # In Windows 11 case $OSVersion is 'Windows 10 Pro' $winVersion = "win10" if (Is64BitWinHost) { - $sha1 = "0f863c261f854ec38032815298f5636e99779bff" + $sha1 = "e7497b925b9a0aa17628344dbdacd6b3acd41c3b" } } else { $winVersion = "n/a" diff --git a/coin/provisioning/common/windows/version.ps1 b/coin/provisioning/common/windows/version.ps1 index 7f701f637de..127393fd6be 100644 --- a/coin/provisioning/common/windows/version.ps1 +++ b/coin/provisioning/common/windows/version.ps1 @@ -4,3 +4,6 @@ Write-Host '*****************************************************' Write-Host '******************** Get-PSDrive ********************' Get-PSDrive Write-Host '*****************************************************' +Write-Host '******************** Path Content *******************' +$env:Path -split ';' +Write-Host '*****************************************************' diff --git a/coin/provisioning/common/windows/vulkansdk.ps1 b/coin/provisioning/common/windows/vulkansdk.ps1 index aeeff69669f..57fd63a1987 100644 --- a/coin/provisioning/common/windows/vulkansdk.ps1 +++ b/coin/provisioning/common/windows/vulkansdk.ps1 @@ -6,13 +6,36 @@ # This script will install Vulkan SDK # Original Download page: https://vulkan.lunarg.com/sdk/home#windows -$version = "1.2.182.0" +$cpu_arch = Get-CpuArchitecture +Write-Host "Installing $cpu_arch Vulkan SDK" +$version = "1.2.182.0" # TODO: Update to newest 1.3.296.0 +switch ($cpu_arch) { + arm64 { + $version = "1.3.296.0" + $externalUrl = "https://sdk.lunarg.com/sdk/download/$version/warm/InstallVulkanARM64-$version.exe" + $internalUrl = "\\ci-files01-hki.ci.qt.io\provisioning\windows\InstallVulkanARM64-$version.exe" + $sha1 = "7d47d8dd10c09d363e6103925c4a032abf7b2c02" + $installArgs = "--accept-licenses --default-answer --confirm-command install" + Break + } + x64 { + $externalUrl = "https://sdk.lunarg.com/sdk/download/$version/windows/VulkanSDK-$version-Installer.exe" + $internalUrl = "\\ci-files01-hki.ci.qt.io\provisioning\windows\VulkanSDK-$version-Installer.exe" + $sha1 = "1b662f338bfbfdd00fb9b0c09113eacb94f68a0e" + $installArgs = "/S" + Break + } + default { + throw "Unknown architecture $cpu_arch" + } +} + $vulkanPackage = "C:\Windows\Temp\vulkan-installer-$version.exe" -$sha1 = "1b662f338bfbfdd00fb9b0c09113eacb94f68a0e" -Download "https://sdk.lunarg.com/sdk/download/1.2.182.0/windows/VulkanSDK-$version-Installer.exe" "\\ci-files01-hki.ci.qt.io\provisioning\windows\VulkanSDK-$version-Installer.exe" $vulkanPackage + +Download "$externalUrl" "$internalUrl" "$vulkanPackage" Verify-Checksum "$vulkanPackage" "$sha1" -Run-Executable $vulkanPackage "/S" +Run-Executable "$vulkanPackage" "$installArgs" Write-Host "Cleaning $vulkanPackage.." Remove "$vulkanPackage" diff --git a/coin/provisioning/qtci-linux-Debian-11.6-aarch64/01-systemsetup.sh b/coin/provisioning/qtci-linux-Debian-11.6-aarch64/01-systemsetup.sh index f0288905a2b..169de531886 100755 --- a/coin/provisioning/qtci-linux-Debian-11.6-aarch64/01-systemsetup.sh +++ b/coin/provisioning/qtci-linux-Debian-11.6-aarch64/01-systemsetup.sh @@ -6,6 +6,7 @@ set -ex +BASEDIR=$(dirname "$0") # shellcheck source=../common/unix/check_and_set_proxy.sh source "${BASH_SOURCE%/*}/../common/unix/check_and_set_proxy.sh" @@ -13,12 +14,9 @@ NTS_IP=10.212.2.216 echo "Set timezone to UTC." sudo timedatectl set-timezone Etc/UTC -echo "Timeout for blanking the screen (0 = never)" -gsettings set org.gnome.desktop.session idle-delay 0 -echo "Prevents screen lock when screesaver goes active." -gsettings set org.gnome.desktop.screensaver lock-enabled false -echo "Disable window animations." -gsettings set org.gnome.desktop.interface enable-animations false + +"$BASEDIR/../common/linux/configure-gnome-shell.sh" + echo "Set grub timeout to 0" sudo sed -i 's|GRUB_TIMEOUT=10|GRUB_TIMEOUT=0|g' /etc/default/grub sudo update-grub diff --git a/coin/provisioning/qtci-linux-Debian-11.6-aarch64/90-squish.sh b/coin/provisioning/qtci-linux-Debian-11.6-aarch64/90-squish.sh deleted file mode 100644 index f803ccc1fa1..00000000000 --- a/coin/provisioning/qtci-linux-Debian-11.6-aarch64/90-squish.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env bash -#Copyright (C) 2023 The Qt Company Ltd -#SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only -BASEDIR=$(dirname "$0") -"$BASEDIR/../common/unix/squishInstall.sh" - diff --git a/coin/provisioning/qtci-linux-RHEL-8.10-x86_64/01-systemsetup.sh b/coin/provisioning/qtci-linux-RHEL-8.10-x86_64/01-systemsetup.sh index 1645670e613..4f9e20dc9c3 100644 --- a/coin/provisioning/qtci-linux-RHEL-8.10-x86_64/01-systemsetup.sh +++ b/coin/provisioning/qtci-linux-RHEL-8.10-x86_64/01-systemsetup.sh @@ -9,8 +9,6 @@ BASEDIR=$(dirname "$0") # shellcheck source=../common/shared/network_test_server_ip.txt source "$BASEDIR/../common/shared/network_test_server_ip.txt" -echo "Disable window animations." -gsettings set org.gnome.desktop.interface enable-animations false echo "Set Network Test Server address to $network_test_server_ip in /etc/hosts" echo "$network_test_server_ip qt-test-server qt-test-server.qt-test-net" | sudo tee -a /etc/hosts echo "Set DISPLAY" @@ -20,10 +18,8 @@ export DISPLAY=:0 # Set timezone to UTC. sudo timedatectl set-timezone Etc/UTC -# disable Automatic screen lock -gsettings set org.gnome.desktop.screensaver lock-enabled false -# disable blank screen power saving -gsettings set org.gnome.desktop.session idle-delay 0 + +"$BASEDIR/../common/linux/configure-gnome-shell.sh" # Set Wayland enable as false. echo "Setting Wayland enable as false" diff --git a/coin/provisioning/qtci-linux-RHEL-8.10-x86_64/04-install-packages.sh b/coin/provisioning/qtci-linux-RHEL-8.10-x86_64/04-install-packages.sh index 42b62022d91..62a37bd974c 100644 --- a/coin/provisioning/qtci-linux-RHEL-8.10-x86_64/04-install-packages.sh +++ b/coin/provisioning/qtci-linux-RHEL-8.10-x86_64/04-install-packages.sh @@ -12,6 +12,8 @@ sudo yum -y remove PackageKit gnome-software sudo yum -y update installPackages=() +# Make sure needed ca-certificates are available +installPackages+=(ca-certificates) installPackages+=(git) installPackages+=(zlib-devel) installPackages+=(glib2-devel) @@ -86,7 +88,6 @@ installPackages+=(libXtst-devel) installPackages+=(libxshmfence-devel) installPackages+=(nspr-devel) installPackages+=(nss-devel) -installPackages+=(python3-html5lib) installPackages+=(libatomic) installPackages+=(mesa-libgbm-devel-21.3.4-1.el8.x86_64) # For Android builds @@ -154,6 +155,8 @@ installPackages+=(zip) installPackages+=(perl-IPC-Cmd) # password management support for Qt Creator installPackages+=(libsecret-devel) +# For tst_license.pl with all the machines generating SBOM +installPackages+=(perl-JSON) sudo yum -y install "${installPackages[@]}" @@ -167,7 +170,7 @@ sudo pip config --user set global.index https://ci-files01-hki.ci.qt.io/input/py sudo pip config --user set global.extra-index-url https://pypi.org/simple/ sudo pip3 install virtualenv wheel -sudo python3.11 -m pip install virtualenv wheel +sudo python3.11 -m pip install virtualenv wheel html5lib sudo python3.11 -m pip install -r "${BASH_SOURCE%/*}/../common/shared/sbom_requirements.txt" # For now we don't set QT_SBOM_PYTHON_APPS_PATH here, and rely on the build system to find the # system python3.11. @@ -175,6 +178,9 @@ sudo python3.11 -m pip install -r "${BASH_SOURCE%/*}/../common/shared/sbom_requi sudo /usr/bin/pip3 install wheel sudo /usr/bin/pip3 install dataclasses +gccVersion="$(gcc --version |grep -Eo '[0-9]+\.[0-9]+(\.[0-9]+)?' |head -n 1)" +echo "GCC = $gccVersion" >> versions.txt + OpenSSLVersion="$(openssl3 version |cut -b 9-14)" echo "System's OpenSSL = $OpenSSLVersion" >> ~/versions.txt diff --git a/coin/provisioning/qtci-linux-RHEL-8.10-x86_64/90-install-ffmpeg.sh b/coin/provisioning/qtci-linux-RHEL-8.10-x86_64/90-install-ffmpeg.sh index 2c805227332..8dcbdf7c925 100644 --- a/coin/provisioning/qtci-linux-RHEL-8.10-x86_64/90-install-ffmpeg.sh +++ b/coin/provisioning/qtci-linux-RHEL-8.10-x86_64/90-install-ffmpeg.sh @@ -2,7 +2,6 @@ #Copyright (C) 2023 The Qt Company Ltd #SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only -# TODO: investigate why the FFmpeg plugin can't find shared FFmpeg on rhel-8.8 / 8.10 -source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg.sh" "linux" +source "${BASH_SOURCE%/*}/../common/linux/install-ffmpeg-linux.sh" source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg-android.sh" "android-x86_64" source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg-android.sh" "android-x86" diff --git a/coin/provisioning/qtci-linux-RHEL-8.2-x86_64/01-systemsetup.sh b/coin/provisioning/qtci-linux-RHEL-8.2-x86_64/01-systemsetup.sh index b39fe793556..46c10f9e0fb 100755 --- a/coin/provisioning/qtci-linux-RHEL-8.2-x86_64/01-systemsetup.sh +++ b/coin/provisioning/qtci-linux-RHEL-8.2-x86_64/01-systemsetup.sh @@ -8,8 +8,6 @@ BASEDIR=$(dirname "$0") # shellcheck source=../common/shared/network_test_server_ip.txt source "$BASEDIR/../common/shared/network_test_server_ip.txt" -echo "Disable window animations." -gsettings set org.gnome.desktop.interface enable-animations false echo "Set Network Test Server address to $network_test_server_ip in /etc/hosts" echo "$network_test_server_ip qt-test-server qt-test-server.qt-test-net" | sudo tee -a /etc/hosts echo "Set DISPLAY" @@ -19,10 +17,8 @@ export DISPLAY=:0 # Set timezone to UTC. sudo timedatectl set-timezone Etc/UTC -# disable Automatic screen lock -gsettings set org.gnome.desktop.screensaver lock-enabled false -# disable blank screen power saving -gsettings set org.gnome.desktop.session idle-delay 0 + +"$BASEDIR/../common/linux/configure-gnome-shell.sh" # Set Wayland enable as false. echo "Setting Wayland enable as false" diff --git a/coin/provisioning/qtci-linux-RHEL-8.2-x86_64/04-install-packages.sh b/coin/provisioning/qtci-linux-RHEL-8.2-x86_64/04-install-packages.sh index 4abf653f53a..f852a9df4ee 100755 --- a/coin/provisioning/qtci-linux-RHEL-8.2-x86_64/04-install-packages.sh +++ b/coin/provisioning/qtci-linux-RHEL-8.2-x86_64/04-install-packages.sh @@ -11,6 +11,8 @@ sudo yum -y remove PackageKit gnome-software sudo yum -y update installPackages=() +# Make sure needed ca-certificates are available +installPackages+=(ca-certificates) installPackages+=(git) installPackages+=(zlib-devel) installPackages+=(glib2-devel) @@ -140,5 +142,8 @@ sudo pip3 install virtualenv wheel sudo /usr/bin/pip3 install wheel +gccVersion="$(gcc --version |grep -Eo '[0-9]+\.[0-9]+(\.[0-9]+)?' |head -n 1)" +echo "GCC = $gccVersion" >> versions.txt + OpenSSLVersion="$(openssl version |cut -b 9-14)" echo "OpenSSL = $OpenSSLVersion" >> ~/versions.txt diff --git a/coin/provisioning/qtci-linux-RHEL-8.2-x86_64/90-install-ffmpeg.sh b/coin/provisioning/qtci-linux-RHEL-8.2-x86_64/90-install-ffmpeg.sh index 61da9b7b3a4..882680b7fa0 100755 --- a/coin/provisioning/qtci-linux-RHEL-8.2-x86_64/90-install-ffmpeg.sh +++ b/coin/provisioning/qtci-linux-RHEL-8.2-x86_64/90-install-ffmpeg.sh @@ -1,3 +1,3 @@ #!/usr/bin/env bash -source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg.sh" "linux" +source "${BASH_SOURCE%/*}/../common/linux/install-ffmpeg-linux.sh" diff --git a/coin/provisioning/qtci-linux-RHEL-8.4-x86_64/01-systemsetup.sh b/coin/provisioning/qtci-linux-RHEL-8.4-x86_64/01-systemsetup.sh index 46b321dda8e..bd7a63504b9 100755 --- a/coin/provisioning/qtci-linux-RHEL-8.4-x86_64/01-systemsetup.sh +++ b/coin/provisioning/qtci-linux-RHEL-8.4-x86_64/01-systemsetup.sh @@ -8,8 +8,6 @@ BASEDIR=$(dirname "$0") # shellcheck source=../common/shared/network_test_server_ip.txt source "$BASEDIR/../common/shared/network_test_server_ip.txt" -echo "Disable window animations." -gsettings set org.gnome.desktop.interface enable-animations false echo "Set Network Test Server address to $network_test_server_ip in /etc/hosts" echo "$network_test_server_ip qt-test-server qt-test-server.qt-test-net" | sudo tee -a /etc/hosts echo "Set DISPLAY" @@ -19,10 +17,8 @@ export DISPLAY=:0 # Set timezone to UTC. sudo timedatectl set-timezone Etc/UTC -# disable Automatic screen lock -gsettings set org.gnome.desktop.screensaver lock-enabled false -# disable blank screen power saving -gsettings set org.gnome.desktop.session idle-delay 0 + +"$BASEDIR/../common/linux/configure-gnome-shell.sh" # Set Wayland enable as false. echo "Setting Wayland enable as false" diff --git a/coin/provisioning/qtci-linux-RHEL-8.4-x86_64/04-install-packages.sh b/coin/provisioning/qtci-linux-RHEL-8.4-x86_64/04-install-packages.sh index 7057c9f8a92..30c045fd4eb 100755 --- a/coin/provisioning/qtci-linux-RHEL-8.4-x86_64/04-install-packages.sh +++ b/coin/provisioning/qtci-linux-RHEL-8.4-x86_64/04-install-packages.sh @@ -11,6 +11,8 @@ sudo yum -y remove PackageKit gnome-software sudo yum -y update installPackages=() +# Make sure needed ca-certificates are available +installPackages+=(ca-certificates) installPackages+=(git) installPackages+=(zlib-devel) installPackages+=(glib2-devel) @@ -152,5 +154,8 @@ sudo python3.8 -m pip install virtualenv wheel sudo /usr/bin/pip3 install wheel +gccVersion="$(gcc --version |grep -Eo '[0-9]+\.[0-9]+(\.[0-9]+)?' |head -n 1)" +echo "GCC = $gccVersion" >> versions.txt + OpenSSLVersion="$(openssl3 version |cut -b 9-14)" echo "OpenSSL = $OpenSSLVersion" >> ~/versions.txt diff --git a/coin/provisioning/qtci-linux-RHEL-8.4-x86_64/90-install-ffmpeg.sh b/coin/provisioning/qtci-linux-RHEL-8.4-x86_64/90-install-ffmpeg.sh index 333885a384e..90c52cd361b 100755 --- a/coin/provisioning/qtci-linux-RHEL-8.4-x86_64/90-install-ffmpeg.sh +++ b/coin/provisioning/qtci-linux-RHEL-8.4-x86_64/90-install-ffmpeg.sh @@ -2,6 +2,6 @@ #Copyright (C) 2023 The Qt Company Ltd #SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only -source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg.sh" "linux" +source "${BASH_SOURCE%/*}/../common/linux/install-ffmpeg-linux.sh" source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg-android.sh" "android-x86" source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg-android.sh" "android-x86_64" diff --git a/coin/provisioning/qtci-linux-RHEL-8.6-x86_64/01-systemsetup.sh b/coin/provisioning/qtci-linux-RHEL-8.6-x86_64/01-systemsetup.sh index 1645670e613..4f9e20dc9c3 100755 --- a/coin/provisioning/qtci-linux-RHEL-8.6-x86_64/01-systemsetup.sh +++ b/coin/provisioning/qtci-linux-RHEL-8.6-x86_64/01-systemsetup.sh @@ -9,8 +9,6 @@ BASEDIR=$(dirname "$0") # shellcheck source=../common/shared/network_test_server_ip.txt source "$BASEDIR/../common/shared/network_test_server_ip.txt" -echo "Disable window animations." -gsettings set org.gnome.desktop.interface enable-animations false echo "Set Network Test Server address to $network_test_server_ip in /etc/hosts" echo "$network_test_server_ip qt-test-server qt-test-server.qt-test-net" | sudo tee -a /etc/hosts echo "Set DISPLAY" @@ -20,10 +18,8 @@ export DISPLAY=:0 # Set timezone to UTC. sudo timedatectl set-timezone Etc/UTC -# disable Automatic screen lock -gsettings set org.gnome.desktop.screensaver lock-enabled false -# disable blank screen power saving -gsettings set org.gnome.desktop.session idle-delay 0 + +"$BASEDIR/../common/linux/configure-gnome-shell.sh" # Set Wayland enable as false. echo "Setting Wayland enable as false" diff --git a/coin/provisioning/qtci-linux-RHEL-8.6-x86_64/04-install-packages.sh b/coin/provisioning/qtci-linux-RHEL-8.6-x86_64/04-install-packages.sh index de8b2017fa6..2114aa5f9cf 100755 --- a/coin/provisioning/qtci-linux-RHEL-8.6-x86_64/04-install-packages.sh +++ b/coin/provisioning/qtci-linux-RHEL-8.6-x86_64/04-install-packages.sh @@ -12,6 +12,8 @@ sudo yum -y remove PackageKit gnome-software sudo yum -y update installPackages=() +# Make sure needed ca-certificates are available +installPackages+=(ca-certificates) installPackages+=(git) installPackages+=(zlib-devel) installPackages+=(glib2-devel) @@ -162,5 +164,8 @@ sudo python3.8 -m pip install virtualenv wheel sudo /usr/bin/pip3 install wheel sudo /usr/bin/pip3 install dataclasses +gccVersion="$(gcc --version |grep -Eo '[0-9]+\.[0-9]+(\.[0-9]+)?' |head -n 1)" +echo "GCC = $gccVersion" >> versions.txt + OpenSSLVersion="$(openssl3 version |cut -b 9-14)" echo "OpenSSL = $OpenSSLVersion" >> ~/versions.txt diff --git a/coin/provisioning/qtci-linux-RHEL-8.6-x86_64/90-install-ffmpeg.sh b/coin/provisioning/qtci-linux-RHEL-8.6-x86_64/90-install-ffmpeg.sh index a3252c08edd..1184e5a5ada 100755 --- a/coin/provisioning/qtci-linux-RHEL-8.6-x86_64/90-install-ffmpeg.sh +++ b/coin/provisioning/qtci-linux-RHEL-8.6-x86_64/90-install-ffmpeg.sh @@ -2,5 +2,5 @@ #Copyright (C) 2023 The Qt Company Ltd #SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only -source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg.sh" "linux" +source "${BASH_SOURCE%/*}/../common/linux/install-ffmpeg-linux.sh" source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg-android.sh" "android-x86_64" diff --git a/coin/provisioning/qtci-linux-RHEL-8.8-x86_64/01-systemsetup.sh b/coin/provisioning/qtci-linux-RHEL-8.8-x86_64/01-systemsetup.sh index 1645670e613..4f9e20dc9c3 100755 --- a/coin/provisioning/qtci-linux-RHEL-8.8-x86_64/01-systemsetup.sh +++ b/coin/provisioning/qtci-linux-RHEL-8.8-x86_64/01-systemsetup.sh @@ -9,8 +9,6 @@ BASEDIR=$(dirname "$0") # shellcheck source=../common/shared/network_test_server_ip.txt source "$BASEDIR/../common/shared/network_test_server_ip.txt" -echo "Disable window animations." -gsettings set org.gnome.desktop.interface enable-animations false echo "Set Network Test Server address to $network_test_server_ip in /etc/hosts" echo "$network_test_server_ip qt-test-server qt-test-server.qt-test-net" | sudo tee -a /etc/hosts echo "Set DISPLAY" @@ -20,10 +18,8 @@ export DISPLAY=:0 # Set timezone to UTC. sudo timedatectl set-timezone Etc/UTC -# disable Automatic screen lock -gsettings set org.gnome.desktop.screensaver lock-enabled false -# disable blank screen power saving -gsettings set org.gnome.desktop.session idle-delay 0 + +"$BASEDIR/../common/linux/configure-gnome-shell.sh" # Set Wayland enable as false. echo "Setting Wayland enable as false" diff --git a/coin/provisioning/qtci-linux-RHEL-8.8-x86_64/04-install-packages.sh b/coin/provisioning/qtci-linux-RHEL-8.8-x86_64/04-install-packages.sh index 14dec198219..b2477251e3d 100755 --- a/coin/provisioning/qtci-linux-RHEL-8.8-x86_64/04-install-packages.sh +++ b/coin/provisioning/qtci-linux-RHEL-8.8-x86_64/04-install-packages.sh @@ -12,6 +12,8 @@ sudo yum -y remove PackageKit gnome-software sudo yum -y update installPackages=() +# Make sure needed ca-certificates are available +installPackages+=(ca-certificates) installPackages+=(git) installPackages+=(zlib-devel) installPackages+=(glib2-devel) @@ -177,6 +179,9 @@ sudo /usr/bin/pip3 install wheel sudo /usr/bin/pip3 install dataclasses # No sbom_requirements.txt, because it requires Python 3.9 for poetry_core -> spdx_tools and we have 3.8 +gccVersion="$(gcc --version |grep -Eo '[0-9]+\.[0-9]+(\.[0-9]+)?' |head -n 1)" +echo "GCC = $gccVersion" >> versions.txt + OpenSSLVersion="$(openssl3 version |cut -b 9-14)" echo "System's OpenSSL = $OpenSSLVersion" >> ~/versions.txt diff --git a/coin/provisioning/qtci-linux-RHEL-8.8-x86_64/90-install-ffmpeg.sh b/coin/provisioning/qtci-linux-RHEL-8.8-x86_64/90-install-ffmpeg.sh index 08d455cf5f2..8dcbdf7c925 100755 --- a/coin/provisioning/qtci-linux-RHEL-8.8-x86_64/90-install-ffmpeg.sh +++ b/coin/provisioning/qtci-linux-RHEL-8.8-x86_64/90-install-ffmpeg.sh @@ -2,7 +2,6 @@ #Copyright (C) 2023 The Qt Company Ltd #SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only -# TODO: investigate why the FFmpeg plugin can't find shared FFmpeg on rhel-8.8 -source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg.sh" "linux" +source "${BASH_SOURCE%/*}/../common/linux/install-ffmpeg-linux.sh" source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg-android.sh" "android-x86_64" source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg-android.sh" "android-x86" diff --git a/coin/provisioning/qtci-linux-RHEL-9.0-x86_64/01-systemsetup.sh b/coin/provisioning/qtci-linux-RHEL-9.0-x86_64/01-systemsetup.sh index de6abd0a977..41171ca2b82 100755 --- a/coin/provisioning/qtci-linux-RHEL-9.0-x86_64/01-systemsetup.sh +++ b/coin/provisioning/qtci-linux-RHEL-9.0-x86_64/01-systemsetup.sh @@ -17,16 +17,11 @@ export DISPLAY=:0 # Set timezone to UTC. sudo timedatectl set-timezone Etc/UTC -# disable Automatic screen lock -gsettings set org.gnome.desktop.screensaver lock-enabled false -# disable blank screen power saving -gsettings set org.gnome.desktop.session idle-delay 0 -# Disable hot corner feature -gsettings set org.gnome.desktop.interface enable-hot-corners false -# Disable windows key from showing the GNOME Shell Activities overlay + +"$BASEDIR/../common/linux/configure-gnome-shell.sh" + +echo "Disable windows key from showing the GNOME Shell Activities overlay" gsettings set org.gnome.mutter overlay-key "" -echo "Disable window animations." -gsettings set org.gnome.desktop.interface enable-animations false # Set Wayland enable as false. echo "Setting Wayland enable as false" diff --git a/coin/provisioning/qtci-linux-RHEL-9.0-x86_64/04-install-packages.sh b/coin/provisioning/qtci-linux-RHEL-9.0-x86_64/04-install-packages.sh index 77837171dec..2942dd8af54 100755 --- a/coin/provisioning/qtci-linux-RHEL-9.0-x86_64/04-install-packages.sh +++ b/coin/provisioning/qtci-linux-RHEL-9.0-x86_64/04-install-packages.sh @@ -11,6 +11,8 @@ sudo yum -y remove PackageKit gnome-software sudo yum -y update installPackages=() +# Make sure needed ca-certificates are available +installPackages+=(ca-certificates) installPackages+=(git) installPackages+=(zlib-devel) installPackages+=(glib2-devel) @@ -166,5 +168,8 @@ sudo /usr/bin/pip3 install wheel # Make FindPython3.cmake to find python3 sudo ln -s /usr/bin/python3 /usr/local/bin/python3 +gccVersion="$(gcc --version |grep -Eo '[0-9]+\.[0-9]+(\.[0-9]+)?' |head -n 1)" +echo "GCC = $gccVersion" >> versions.txt + OpenSSLVersion="$(openssl version |cut -b 9-14)" echo "OpenSSL = $OpenSSLVersion" >> ~/versions.txt diff --git a/coin/provisioning/qtci-linux-RHEL-9.0-x86_64/90-install-ffmpeg.sh b/coin/provisioning/qtci-linux-RHEL-9.0-x86_64/90-install-ffmpeg.sh index 61da9b7b3a4..882680b7fa0 100755 --- a/coin/provisioning/qtci-linux-RHEL-9.0-x86_64/90-install-ffmpeg.sh +++ b/coin/provisioning/qtci-linux-RHEL-9.0-x86_64/90-install-ffmpeg.sh @@ -1,3 +1,3 @@ #!/usr/bin/env bash -source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg.sh" "linux" +source "${BASH_SOURCE%/*}/../common/linux/install-ffmpeg-linux.sh" diff --git a/coin/provisioning/qtci-linux-RHEL-9.2-x86_64/01-systemsetup.sh b/coin/provisioning/qtci-linux-RHEL-9.2-x86_64/01-systemsetup.sh index 4fd0b9e71eb..128d6afb4e8 100755 --- a/coin/provisioning/qtci-linux-RHEL-9.2-x86_64/01-systemsetup.sh +++ b/coin/provisioning/qtci-linux-RHEL-9.2-x86_64/01-systemsetup.sh @@ -17,16 +17,11 @@ export DISPLAY=:0 # Set timezone to UTC. sudo timedatectl set-timezone Etc/UTC -# disable Automatic screen lock -gsettings set org.gnome.desktop.screensaver lock-enabled false -# disable blank screen power saving -gsettings set org.gnome.desktop.session idle-delay 0 -# Disable hot corner feature -gsettings set org.gnome.desktop.interface enable-hot-corners false -# Disable windows key from showing the GNOME Shell Activities overlay + +"$BASEDIR/../common/linux/configure-gnome-shell.sh" + +echo "Disable windows key from showing the GNOME Shell Activities overlay" gsettings set org.gnome.mutter overlay-key "" -echo "Disable window animations." -gsettings set org.gnome.desktop.interface enable-animations false # Set Wayland enable as false. echo "Setting Wayland enable as false" diff --git a/coin/provisioning/qtci-linux-RHEL-9.2-x86_64/04-install-packages.sh b/coin/provisioning/qtci-linux-RHEL-9.2-x86_64/04-install-packages.sh index 8b1739632c2..ed091f0e1e0 100755 --- a/coin/provisioning/qtci-linux-RHEL-9.2-x86_64/04-install-packages.sh +++ b/coin/provisioning/qtci-linux-RHEL-9.2-x86_64/04-install-packages.sh @@ -11,6 +11,8 @@ sudo yum -y remove PackageKit gnome-software sudo yum -y update installPackages=() +# Make sure needed ca-certificates are available +installPackages+=(ca-certificates) installPackages+=(git) installPackages+=(zlib-devel) installPackages+=(glib2-devel) @@ -198,6 +200,9 @@ SetEnvVar "SBOM_PYTHON_APPS_PATH" "/usr/local/bin" # Make FindPython3.cmake to find python3 sudo ln -s /usr/bin/python3 /usr/local/bin/python3 +gccVersion="$(gcc --version |grep -Eo '[0-9]+\.[0-9]+(\.[0-9]+)?' |head -n 1)" +echo "GCC = $gccVersion" >> versions.txt + OpenSSLVersion="$(openssl version |cut -b 9-14)" echo "System's OpenSSL = $OpenSSLVersion" >> ~/versions.txt diff --git a/coin/provisioning/qtci-linux-RHEL-9.2-x86_64/90-install-ffmpeg.sh b/coin/provisioning/qtci-linux-RHEL-9.2-x86_64/90-install-ffmpeg.sh index 61da9b7b3a4..882680b7fa0 100755 --- a/coin/provisioning/qtci-linux-RHEL-9.2-x86_64/90-install-ffmpeg.sh +++ b/coin/provisioning/qtci-linux-RHEL-9.2-x86_64/90-install-ffmpeg.sh @@ -1,3 +1,3 @@ #!/usr/bin/env bash -source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg.sh" "linux" +source "${BASH_SOURCE%/*}/../common/linux/install-ffmpeg-linux.sh" diff --git a/coin/provisioning/qtci-linux-RHEL-9.4-x86_64/01-systemsetup.sh b/coin/provisioning/qtci-linux-RHEL-9.4-x86_64/01-systemsetup.sh index 4fd0b9e71eb..128d6afb4e8 100644 --- a/coin/provisioning/qtci-linux-RHEL-9.4-x86_64/01-systemsetup.sh +++ b/coin/provisioning/qtci-linux-RHEL-9.4-x86_64/01-systemsetup.sh @@ -17,16 +17,11 @@ export DISPLAY=:0 # Set timezone to UTC. sudo timedatectl set-timezone Etc/UTC -# disable Automatic screen lock -gsettings set org.gnome.desktop.screensaver lock-enabled false -# disable blank screen power saving -gsettings set org.gnome.desktop.session idle-delay 0 -# Disable hot corner feature -gsettings set org.gnome.desktop.interface enable-hot-corners false -# Disable windows key from showing the GNOME Shell Activities overlay + +"$BASEDIR/../common/linux/configure-gnome-shell.sh" + +echo "Disable windows key from showing the GNOME Shell Activities overlay" gsettings set org.gnome.mutter overlay-key "" -echo "Disable window animations." -gsettings set org.gnome.desktop.interface enable-animations false # Set Wayland enable as false. echo "Setting Wayland enable as false" diff --git a/coin/provisioning/qtci-linux-RHEL-9.4-x86_64/04-install-packages.sh b/coin/provisioning/qtci-linux-RHEL-9.4-x86_64/04-install-packages.sh index 8b1739632c2..15d5c3fe55d 100644 --- a/coin/provisioning/qtci-linux-RHEL-9.4-x86_64/04-install-packages.sh +++ b/coin/provisioning/qtci-linux-RHEL-9.4-x86_64/04-install-packages.sh @@ -11,6 +11,8 @@ sudo yum -y remove PackageKit gnome-software sudo yum -y update installPackages=() +# Make sure needed ca-certificates are available +installPackages+=(ca-certificates) installPackages+=(git) installPackages+=(zlib-devel) installPackages+=(glib2-devel) @@ -167,6 +169,8 @@ installPackages+=(perl-IPC-Cmd) installPackages+=(libsecret-devel) # For Firebird in RTA installPackages+=(libtommath-devel) +# For tst_license.pl with all the machines generating SBOM +installPackages+=(perl-JSON) sudo yum -y install "${installPackages[@]}" @@ -198,6 +202,9 @@ SetEnvVar "SBOM_PYTHON_APPS_PATH" "/usr/local/bin" # Make FindPython3.cmake to find python3 sudo ln -s /usr/bin/python3 /usr/local/bin/python3 +gccVersion="$(gcc --version |grep -Eo '[0-9]+\.[0-9]+(\.[0-9]+)?' |head -n 1)" +echo "GCC = $gccVersion" >> versions.txt + OpenSSLVersion="$(openssl version |cut -b 9-14)" echo "System's OpenSSL = $OpenSSLVersion" >> ~/versions.txt diff --git a/coin/provisioning/qtci-linux-RHEL-9.4-x86_64/90-install-ffmpeg.sh b/coin/provisioning/qtci-linux-RHEL-9.4-x86_64/90-install-ffmpeg.sh index 61da9b7b3a4..882680b7fa0 100644 --- a/coin/provisioning/qtci-linux-RHEL-9.4-x86_64/90-install-ffmpeg.sh +++ b/coin/provisioning/qtci-linux-RHEL-9.4-x86_64/90-install-ffmpeg.sh @@ -1,3 +1,3 @@ #!/usr/bin/env bash -source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg.sh" "linux" +source "${BASH_SOURCE%/*}/../common/linux/install-ffmpeg-linux.sh" diff --git a/coin/provisioning/qtci-linux-SLES-15_SP4-x86_64/01-systemsetup.sh b/coin/provisioning/qtci-linux-SLES-15_SP4-x86_64/01-systemsetup.sh index 834843897dc..6fd3c07752d 100755 --- a/coin/provisioning/qtci-linux-SLES-15_SP4-x86_64/01-systemsetup.sh +++ b/coin/provisioning/qtci-linux-SLES-15_SP4-x86_64/01-systemsetup.sh @@ -12,13 +12,8 @@ source "${BASH_SOURCE%/*}/../common/unix/check_and_set_proxy.sh" echo "Set timezone to UTC." sudo timedatectl set-timezone Etc/UTC -echo "Timeout for blanking the screen (0 = never)" -gsettings set org.gnome.desktop.session idle-delay 0 -echo "Prevents screen lock when screesaver goes active." -gsettings set org.gnome.desktop.screensaver lock-enabled false -gsettings set org.gnome.desktop.lockdown disable-lock-screen 'true' -echo "Disable window animations." -gsettings set org.gnome.desktop.interface enable-animations false + +"$BASEDIR/../common/linux/configure-gnome-shell.sh" sudo sed -i 's|GRUB_TIMEOUT=8|GRUB_TIMEOUT=0|g' /etc/default/grub sudo grub2-mkconfig -o /boot/grub2/grub.cfg diff --git a/coin/provisioning/qtci-linux-SLES-15_SP4-x86_64/02-zypperpackages.sh b/coin/provisioning/qtci-linux-SLES-15_SP4-x86_64/02-zypperpackages.sh index a9fab9bd669..5c492e5f581 100755 --- a/coin/provisioning/qtci-linux-SLES-15_SP4-x86_64/02-zypperpackages.sh +++ b/coin/provisioning/qtci-linux-SLES-15_SP4-x86_64/02-zypperpackages.sh @@ -99,5 +99,5 @@ sudo zypper -nq install nodejs16 # OpenSSL 3 sudo zypper -nq install openssl-3 -gccVersion="$(gcc --version |grep gcc |cut -b 17-23)" +gccVersion="$(gcc --version |grep -Eo '[0-9]+\.[0-9]+(\.[0-9]+)?' |head -n 1)" echo "GCC = $gccVersion" >> versions.txt diff --git a/coin/provisioning/qtci-linux-SLES-15_SP4-x86_64/90-install-ffmpeg.sh b/coin/provisioning/qtci-linux-SLES-15_SP4-x86_64/90-install-ffmpeg.sh index 27ff04dc6cf..bafe9daf8f8 100755 --- a/coin/provisioning/qtci-linux-SLES-15_SP4-x86_64/90-install-ffmpeg.sh +++ b/coin/provisioning/qtci-linux-SLES-15_SP4-x86_64/90-install-ffmpeg.sh @@ -1,3 +1,3 @@ #!/usr/bin/env bash -source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg.sh" "linux" "static" +source "${BASH_SOURCE%/*}/../common/linux/install-ffmpeg-linux.sh" "static" diff --git a/coin/provisioning/qtci-linux-SLES-15_SP5-x86_64/01-systemsetup.sh b/coin/provisioning/qtci-linux-SLES-15_SP5-x86_64/01-systemsetup.sh index 4ecddc9d87c..4fb3c37d34e 100644 --- a/coin/provisioning/qtci-linux-SLES-15_SP5-x86_64/01-systemsetup.sh +++ b/coin/provisioning/qtci-linux-SLES-15_SP5-x86_64/01-systemsetup.sh @@ -12,13 +12,8 @@ source "${BASH_SOURCE%/*}/../common/unix/check_and_set_proxy.sh" echo "Set timezone to UTC." sudo timedatectl set-timezone Etc/UTC -echo "Timeout for blanking the screen (0 = never)" -gsettings set org.gnome.desktop.session idle-delay 0 -echo "Prevents screen lock when screesaver goes active." -gsettings set org.gnome.desktop.screensaver lock-enabled false -gsettings set org.gnome.desktop.lockdown disable-lock-screen 'true' -echo "Disable window animations." -gsettings set org.gnome.desktop.interface enable-animations false + +"$BASEDIR/../common/linux/configure-gnome-shell.sh" sudo sed -i 's|GRUB_TIMEOUT=8|GRUB_TIMEOUT=0|g' /etc/default/grub sudo grub2-mkconfig -o /boot/grub2/grub.cfg diff --git a/coin/provisioning/qtci-linux-SLES-15_SP5-x86_64/02-zypperpackages.sh b/coin/provisioning/qtci-linux-SLES-15_SP5-x86_64/02-zypperpackages.sh index e94a883903c..c6d687a8ca1 100644 --- a/coin/provisioning/qtci-linux-SLES-15_SP5-x86_64/02-zypperpackages.sh +++ b/coin/provisioning/qtci-linux-SLES-15_SP5-x86_64/02-zypperpackages.sh @@ -110,7 +110,10 @@ sudo zypper -nq install cifs-utils # For Firebird in RTA sudo zypper -nq install libtommath-devel -gccVersion="$(gcc --version |grep gcc |cut -b 17-23)" +# For tst_license.pl with all the machines generating SBOM +sudo zypper -nq install perl-JSON + +gccVersion="$(gcc --version |grep -Eo '[0-9]+\.[0-9]+(\.[0-9]+)?' |head -n 1)" echo "GCC = $gccVersion" >> versions.txt OpenSSLVersion="$(openssl-3 version |cut -b 9-14)" diff --git a/coin/provisioning/qtci-linux-SLES-15_SP5-x86_64/90-install-ffmpeg.sh b/coin/provisioning/qtci-linux-SLES-15_SP5-x86_64/90-install-ffmpeg.sh index cd65475bc72..9af69cadc59 100644 --- a/coin/provisioning/qtci-linux-SLES-15_SP5-x86_64/90-install-ffmpeg.sh +++ b/coin/provisioning/qtci-linux-SLES-15_SP5-x86_64/90-install-ffmpeg.sh @@ -2,4 +2,4 @@ # Copyright (C) 2023 The Qt Company Ltd # SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only -source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg.sh" "linux" "static" +source "${BASH_SOURCE%/*}/../common/linux/install-ffmpeg-linux.sh" "static" diff --git a/coin/provisioning/qtci-linux-SLES-15_SP6-x86_64/01-systemsetup.sh b/coin/provisioning/qtci-linux-SLES-15_SP6-x86_64/01-systemsetup.sh index bec34ae3987..096cdeb6829 100644 --- a/coin/provisioning/qtci-linux-SLES-15_SP6-x86_64/01-systemsetup.sh +++ b/coin/provisioning/qtci-linux-SLES-15_SP6-x86_64/01-systemsetup.sh @@ -14,13 +14,14 @@ source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.sh" echo "Set timezone to UTC." sudo timedatectl set-timezone Etc/UTC -echo "Timeout for blanking the screen (0 = never)" -gsettings set org.gnome.desktop.session idle-delay 0 -echo "Prevents screen lock when screesaver goes active." -gsettings set org.gnome.desktop.screensaver lock-enabled false -gsettings set org.gnome.desktop.lockdown disable-lock-screen 'true' -echo "Disable window animations." -gsettings set org.gnome.desktop.interface enable-animations false + +"$BASEDIR/../common/linux/configure-gnome-shell.sh" + +echo "Disable windows key from showing the GNOME Shell Activities overlay" +gsettings set org.gnome.mutter overlay-key "" + +# Disable windows key from showing the GNOME Shell Activities overlay +gsettings set org.gnome.mutter overlay-key "" sudo sed -i 's|GRUB_TIMEOUT=8|GRUB_TIMEOUT=0|g' /etc/default/grub sudo grub2-mkconfig -o /boot/grub2/grub.cfg diff --git a/coin/provisioning/qtci-linux-SLES-15_SP6-x86_64/02-zypperpackages.sh b/coin/provisioning/qtci-linux-SLES-15_SP6-x86_64/02-zypperpackages.sh index 4a5e6e2b01e..2a6bfda6753 100644 --- a/coin/provisioning/qtci-linux-SLES-15_SP6-x86_64/02-zypperpackages.sh +++ b/coin/provisioning/qtci-linux-SLES-15_SP6-x86_64/02-zypperpackages.sh @@ -113,7 +113,10 @@ sudo zypper -nq install cifs-utils # For Firebird in RTA sudo zypper -nq install libtommath-devel -gccVersion="$(gcc --version |grep gcc |cut -b 17-23)" +# For tst_license.pl with all the machines generating SBOM +sudo zypper -nq install perl-JSON + +gccVersion="$(gcc --version |grep -Eo '[0-9]+\.[0-9]+(\.[0-9]+)?' |head -n 1)" echo "GCC = $gccVersion" >> versions.txt OpenSSLVersion="$(openssl version |cut -b 9-14)" diff --git a/coin/provisioning/qtci-linux-SLES-15_SP6-x86_64/90-install-ffmpeg.sh b/coin/provisioning/qtci-linux-SLES-15_SP6-x86_64/90-install-ffmpeg.sh index 08a2ea94164..b21dcc1b840 100644 --- a/coin/provisioning/qtci-linux-SLES-15_SP6-x86_64/90-install-ffmpeg.sh +++ b/coin/provisioning/qtci-linux-SLES-15_SP6-x86_64/90-install-ffmpeg.sh @@ -2,4 +2,4 @@ # Copyright (C) 2024 The Qt Company Ltd # SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only -source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg.sh" "linux" "static" +source "${BASH_SOURCE%/*}/../common/linux/install-ffmpeg-linux.sh" "static" diff --git a/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/01-systemsetup.sh b/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/01-systemsetup.sh index ecad2f9eef4..8751074cc40 100755 --- a/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/01-systemsetup.sh +++ b/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/01-systemsetup.sh @@ -6,6 +6,7 @@ set -ex +BASEDIR=$(dirname "$0") # shellcheck source=../common/unix/check_and_set_proxy.sh source "${BASH_SOURCE%/*}/../common/unix/check_and_set_proxy.sh" @@ -13,12 +14,9 @@ NTS_IP=10.212.2.216 echo "Set timezone to UTC." sudo timedatectl set-timezone Etc/UTC -echo "Timeout for blanking the screen (0 = never)" -gsettings set org.gnome.desktop.session idle-delay 0 -echo "Prevents screen lock when screesaver goes active." -gsettings set org.gnome.desktop.screensaver lock-enabled false -echo "Disable window animations." -gsettings set org.gnome.desktop.interface enable-animations false + +"$BASEDIR/../common/linux/configure-gnome-shell.sh" + echo "Set grub timeout to 0" sudo sed -i 's|GRUB_TIMEOUT=10|GRUB_TIMEOUT=0|g' /etc/default/grub sudo update-grub diff --git a/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/90-install-ffmpeg.sh b/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/90-install-ffmpeg.sh index 61da9b7b3a4..882680b7fa0 100755 --- a/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/90-install-ffmpeg.sh +++ b/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/90-install-ffmpeg.sh @@ -1,3 +1,3 @@ #!/usr/bin/env bash -source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg.sh" "linux" +source "${BASH_SOURCE%/*}/../common/linux/install-ffmpeg-linux.sh" diff --git a/coin/provisioning/qtci-linux-Ubuntu-20.04-x86_64/01-systemsetup.sh b/coin/provisioning/qtci-linux-Ubuntu-20.04-x86_64/01-systemsetup.sh index f0288905a2b..169de531886 100755 --- a/coin/provisioning/qtci-linux-Ubuntu-20.04-x86_64/01-systemsetup.sh +++ b/coin/provisioning/qtci-linux-Ubuntu-20.04-x86_64/01-systemsetup.sh @@ -6,6 +6,7 @@ set -ex +BASEDIR=$(dirname "$0") # shellcheck source=../common/unix/check_and_set_proxy.sh source "${BASH_SOURCE%/*}/../common/unix/check_and_set_proxy.sh" @@ -13,12 +14,9 @@ NTS_IP=10.212.2.216 echo "Set timezone to UTC." sudo timedatectl set-timezone Etc/UTC -echo "Timeout for blanking the screen (0 = never)" -gsettings set org.gnome.desktop.session idle-delay 0 -echo "Prevents screen lock when screesaver goes active." -gsettings set org.gnome.desktop.screensaver lock-enabled false -echo "Disable window animations." -gsettings set org.gnome.desktop.interface enable-animations false + +"$BASEDIR/../common/linux/configure-gnome-shell.sh" + echo "Set grub timeout to 0" sudo sed -i 's|GRUB_TIMEOUT=10|GRUB_TIMEOUT=0|g' /etc/default/grub sudo update-grub diff --git a/coin/provisioning/qtci-linux-Ubuntu-20.04-x86_64/90-install-ffmpeg.sh b/coin/provisioning/qtci-linux-Ubuntu-20.04-x86_64/90-install-ffmpeg.sh index 61da9b7b3a4..882680b7fa0 100755 --- a/coin/provisioning/qtci-linux-Ubuntu-20.04-x86_64/90-install-ffmpeg.sh +++ b/coin/provisioning/qtci-linux-Ubuntu-20.04-x86_64/90-install-ffmpeg.sh @@ -1,3 +1,3 @@ #!/usr/bin/env bash -source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg.sh" "linux" +source "${BASH_SOURCE%/*}/../common/linux/install-ffmpeg-linux.sh" diff --git a/coin/provisioning/qtci-linux-Ubuntu-22.04-aarch64/01-disable-updates.sh b/coin/provisioning/qtci-linux-Ubuntu-22.04-aarch64/01-disable-updates.sh new file mode 100644 index 00000000000..2a64a3ee56f --- /dev/null +++ b/coin/provisioning/qtci-linux-Ubuntu-22.04-aarch64/01-disable-updates.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash +# Copyright (C) 2023 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +set -ex + +# Disable updates +echo "Disabling auto-upgrades" +sudo sed -i 's/"1"/"0"/g' /etc/apt/apt.conf.d/20auto-upgrades diff --git a/coin/provisioning/qtci-linux-Ubuntu-22.04-aarch64/01-disable_auto_suspend.sh b/coin/provisioning/qtci-linux-Ubuntu-22.04-aarch64/01-disable_auto_suspend.sh deleted file mode 100755 index 8ad69bfaf3b..00000000000 --- a/coin/provisioning/qtci-linux-Ubuntu-22.04-aarch64/01-disable_auto_suspend.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh -#Copyright (C) 2023 The Qt Company Ltd -#SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only - -sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target - diff --git a/coin/provisioning/qtci-linux-Ubuntu-22.04-aarch64/01-systemsetup.sh b/coin/provisioning/qtci-linux-Ubuntu-22.04-aarch64/01-systemsetup.sh index f0288905a2b..169de531886 100755 --- a/coin/provisioning/qtci-linux-Ubuntu-22.04-aarch64/01-systemsetup.sh +++ b/coin/provisioning/qtci-linux-Ubuntu-22.04-aarch64/01-systemsetup.sh @@ -6,6 +6,7 @@ set -ex +BASEDIR=$(dirname "$0") # shellcheck source=../common/unix/check_and_set_proxy.sh source "${BASH_SOURCE%/*}/../common/unix/check_and_set_proxy.sh" @@ -13,12 +14,9 @@ NTS_IP=10.212.2.216 echo "Set timezone to UTC." sudo timedatectl set-timezone Etc/UTC -echo "Timeout for blanking the screen (0 = never)" -gsettings set org.gnome.desktop.session idle-delay 0 -echo "Prevents screen lock when screesaver goes active." -gsettings set org.gnome.desktop.screensaver lock-enabled false -echo "Disable window animations." -gsettings set org.gnome.desktop.interface enable-animations false + +"$BASEDIR/../common/linux/configure-gnome-shell.sh" + echo "Set grub timeout to 0" sudo sed -i 's|GRUB_TIMEOUT=10|GRUB_TIMEOUT=0|g' /etc/default/grub sudo update-grub diff --git a/coin/provisioning/qtci-linux-Ubuntu-22.04-aarch64/02-apt.sh b/coin/provisioning/qtci-linux-Ubuntu-22.04-aarch64/02-apt.sh index 8395b22ae05..56c4c1a5b0c 100755 --- a/coin/provisioning/qtci-linux-Ubuntu-22.04-aarch64/02-apt.sh +++ b/coin/provisioning/qtci-linux-Ubuntu-22.04-aarch64/02-apt.sh @@ -63,6 +63,9 @@ sudo DEBIAN_FRONTEND=noninteractive apt-get -q -y -o DPkg::Lock::Timeout=300 ins source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.sh" # SetEnvVar "PATH" "/usr/lib/nodejs-mozilla/bin:\$PATH" +gccVersion="$(gcc --version |grep -Eo '[0-9]+\.[0-9]+(\.[0-9]+)?' |head -n 1)" +echo "GCC = $gccVersion" >> versions.txt + OpenSSLVersion="$(openssl version |cut -b 9-14)" echo "OpenSSL = $OpenSSLVersion" >> ~/versions.txt diff --git a/coin/provisioning/qtci-linux-Ubuntu-22.04-aarch64/90-squish.sh b/coin/provisioning/qtci-linux-Ubuntu-22.04-aarch64/90-squish.sh deleted file mode 100644 index f803ccc1fa1..00000000000 --- a/coin/provisioning/qtci-linux-Ubuntu-22.04-aarch64/90-squish.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env bash -#Copyright (C) 2023 The Qt Company Ltd -#SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only -BASEDIR=$(dirname "$0") -"$BASEDIR/../common/unix/squishInstall.sh" - diff --git a/coin/provisioning/qtci-linux-Ubuntu-22.04-x86_64/01-systemsetup.sh b/coin/provisioning/qtci-linux-Ubuntu-22.04-x86_64/01-systemsetup.sh index f0288905a2b..169de531886 100755 --- a/coin/provisioning/qtci-linux-Ubuntu-22.04-x86_64/01-systemsetup.sh +++ b/coin/provisioning/qtci-linux-Ubuntu-22.04-x86_64/01-systemsetup.sh @@ -6,6 +6,7 @@ set -ex +BASEDIR=$(dirname "$0") # shellcheck source=../common/unix/check_and_set_proxy.sh source "${BASH_SOURCE%/*}/../common/unix/check_and_set_proxy.sh" @@ -13,12 +14,9 @@ NTS_IP=10.212.2.216 echo "Set timezone to UTC." sudo timedatectl set-timezone Etc/UTC -echo "Timeout for blanking the screen (0 = never)" -gsettings set org.gnome.desktop.session idle-delay 0 -echo "Prevents screen lock when screesaver goes active." -gsettings set org.gnome.desktop.screensaver lock-enabled false -echo "Disable window animations." -gsettings set org.gnome.desktop.interface enable-animations false + +"$BASEDIR/../common/linux/configure-gnome-shell.sh" + echo "Set grub timeout to 0" sudo sed -i 's|GRUB_TIMEOUT=10|GRUB_TIMEOUT=0|g' /etc/default/grub sudo update-grub diff --git a/coin/provisioning/qtci-linux-Ubuntu-22.04-x86_64/02-apt.sh b/coin/provisioning/qtci-linux-Ubuntu-22.04-x86_64/02-apt.sh index 92128c1db6d..e4dade0d5b3 100755 --- a/coin/provisioning/qtci-linux-Ubuntu-22.04-x86_64/02-apt.sh +++ b/coin/provisioning/qtci-linux-Ubuntu-22.04-x86_64/02-apt.sh @@ -242,6 +242,8 @@ installPackages+=(patchelf) # For Firebird in RTA installPackages+=(libtommath-dev) +# For tst_license.pl with all the machines generating SBOM +installPackages+=(libjson-perl) echo "Running update for apt" waitLoop @@ -263,5 +265,8 @@ source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.sh" # hence the explicit assignment to SBOM_PYTHON_APPS_PATH. SetEnvVar "SBOM_PYTHON_APPS_PATH" "/home/qt/.local/bin" +gccVersion="$(gcc --version |grep -Eo '[0-9]+\.[0-9]+(\.[0-9]+)?' |head -n 1)" +echo "GCC = $gccVersion" >> versions.txt + OpenSSLVersion="$(openssl version |cut -b 9-14)" echo "System's OpenSSL = $OpenSSLVersion" >> ~/versions.txt diff --git a/coin/provisioning/qtci-linux-Ubuntu-22.04-x86_64/90-install-ffmpeg.sh b/coin/provisioning/qtci-linux-Ubuntu-22.04-x86_64/90-install-ffmpeg.sh index 61da9b7b3a4..882680b7fa0 100755 --- a/coin/provisioning/qtci-linux-Ubuntu-22.04-x86_64/90-install-ffmpeg.sh +++ b/coin/provisioning/qtci-linux-Ubuntu-22.04-x86_64/90-install-ffmpeg.sh @@ -1,3 +1,3 @@ #!/usr/bin/env bash -source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg.sh" "linux" +source "${BASH_SOURCE%/*}/../common/linux/install-ffmpeg-linux.sh" diff --git a/coin/provisioning/qtci-linux-Ubuntu-22.04-x86_64/93-axivion-bauhaus-suite.sh b/coin/provisioning/qtci-linux-Ubuntu-22.04-x86_64/93-axivion-bauhaus-suite.sh index ba9e8fbf954..6a0c4127858 100755 --- a/coin/provisioning/qtci-linux-Ubuntu-22.04-x86_64/93-axivion-bauhaus-suite.sh +++ b/coin/provisioning/qtci-linux-Ubuntu-22.04-x86_64/93-axivion-bauhaus-suite.sh @@ -22,18 +22,18 @@ DownloadAndExtract () { # Axivion Bauhaus Suite -sourceFile="http://ci-files01-hki.ci.qt.io/input/axivion/bauhaus-suite-7_8_4-x86_64-gnu_linux.tar.gz" -targetFile="bauhaus-suite-7_8_4-x86_64-gnu_linux.tar.gz" -sha1="519f84237a4f55700dfb34767ba5bb342f142012" +sourceFile="http://ci-files01-hki.ci.qt.io/input/axivion/bauhaus-suite-7_9_1-x86_64-gnu_linux.tar.gz" +targetFile="bauhaus-suite-7_9_1-x86_64-gnu_linux.tar.gz" +sha1="43d18d55087ce02009b850553405af55ba4e37e2" cd "$HOME" DownloadAndExtract "$sourceFile" "$sha1" "$targetFile" "$HOME" mkdir "$HOME/.bauhaus" cd "$HOME/.bauhaus" -wget http://ci-files01-hki.ci.qt.io/input/axivion/Qt_Evaluation_QSR_INTERN_20250118.key +wget http://ci-files01-hki.ci.qt.io/input/axivion/QT_11427439_2025-10-07.key cd "$HOME" #Axivion configuration cp -r "${BASH_SOURCE%/*}/../common/linux/axivion/" "$HOME/" -echo "Axivion Bauhaus Suite = 7.8.4" >> ~/versions.txt +echo "Axivion Bauhaus Suite = 7.9.1" >> ~/versions.txt diff --git a/coin/provisioning/qtci-linux-Ubuntu-24.04-aarch64/01-systemsetup.sh b/coin/provisioning/qtci-linux-Ubuntu-24.04-aarch64/01-systemsetup.sh index f0288905a2b..fdbfe546e9b 100644 --- a/coin/provisioning/qtci-linux-Ubuntu-24.04-aarch64/01-systemsetup.sh +++ b/coin/provisioning/qtci-linux-Ubuntu-24.04-aarch64/01-systemsetup.sh @@ -6,6 +6,7 @@ set -ex +BASEDIR=$(dirname "$0") # shellcheck source=../common/unix/check_and_set_proxy.sh source "${BASH_SOURCE%/*}/../common/unix/check_and_set_proxy.sh" @@ -13,12 +14,12 @@ NTS_IP=10.212.2.216 echo "Set timezone to UTC." sudo timedatectl set-timezone Etc/UTC -echo "Timeout for blanking the screen (0 = never)" -gsettings set org.gnome.desktop.session idle-delay 0 -echo "Prevents screen lock when screesaver goes active." -gsettings set org.gnome.desktop.screensaver lock-enabled false -echo "Disable window animations." -gsettings set org.gnome.desktop.interface enable-animations false + +"$BASEDIR/../common/linux/configure-gnome-shell.sh" + +echo "Disable windows key from showing the GNOME Shell Activities overlay" +gsettings set org.gnome.mutter overlay-key "" + echo "Set grub timeout to 0" sudo sed -i 's|GRUB_TIMEOUT=10|GRUB_TIMEOUT=0|g' /etc/default/grub sudo update-grub diff --git a/coin/provisioning/qtci-linux-Ubuntu-24.04-aarch64/02-apt.sh b/coin/provisioning/qtci-linux-Ubuntu-24.04-aarch64/02-apt.sh index a87a6e37b11..5f318010b47 100644 --- a/coin/provisioning/qtci-linux-Ubuntu-24.04-aarch64/02-apt.sh +++ b/coin/provisioning/qtci-linux-Ubuntu-24.04-aarch64/02-apt.sh @@ -260,5 +260,8 @@ source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.sh" # hence the explicit assignment to SBOM_PYTHON_APPS_PATH. SetEnvVar "SBOM_PYTHON_APPS_PATH" "/home/qt/.local/bin" +gccVersion="$(gcc --version |grep -Eo '[0-9]+\.[0-9]+(\.[0-9]+)?' |head -n 1)" +echo "GCC = $gccVersion" >> versions.txt + OpenSSLVersion="$(openssl version |cut -b 9-14)" echo "System's OpenSSL = $OpenSSLVersion" >> ~/versions.txt diff --git a/coin/provisioning/qtci-linux-Ubuntu-24.04-aarch64/90-install-ffmpeg.sh b/coin/provisioning/qtci-linux-Ubuntu-24.04-aarch64/90-install-ffmpeg.sh index 61da9b7b3a4..882680b7fa0 100644 --- a/coin/provisioning/qtci-linux-Ubuntu-24.04-aarch64/90-install-ffmpeg.sh +++ b/coin/provisioning/qtci-linux-Ubuntu-24.04-aarch64/90-install-ffmpeg.sh @@ -1,3 +1,3 @@ #!/usr/bin/env bash -source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg.sh" "linux" +source "${BASH_SOURCE%/*}/../common/linux/install-ffmpeg-linux.sh" diff --git a/coin/provisioning/qtci-linux-Ubuntu-24.04-x86_64/01-systemsetup.sh b/coin/provisioning/qtci-linux-Ubuntu-24.04-x86_64/01-systemsetup.sh index f0288905a2b..fdbfe546e9b 100644 --- a/coin/provisioning/qtci-linux-Ubuntu-24.04-x86_64/01-systemsetup.sh +++ b/coin/provisioning/qtci-linux-Ubuntu-24.04-x86_64/01-systemsetup.sh @@ -6,6 +6,7 @@ set -ex +BASEDIR=$(dirname "$0") # shellcheck source=../common/unix/check_and_set_proxy.sh source "${BASH_SOURCE%/*}/../common/unix/check_and_set_proxy.sh" @@ -13,12 +14,12 @@ NTS_IP=10.212.2.216 echo "Set timezone to UTC." sudo timedatectl set-timezone Etc/UTC -echo "Timeout for blanking the screen (0 = never)" -gsettings set org.gnome.desktop.session idle-delay 0 -echo "Prevents screen lock when screesaver goes active." -gsettings set org.gnome.desktop.screensaver lock-enabled false -echo "Disable window animations." -gsettings set org.gnome.desktop.interface enable-animations false + +"$BASEDIR/../common/linux/configure-gnome-shell.sh" + +echo "Disable windows key from showing the GNOME Shell Activities overlay" +gsettings set org.gnome.mutter overlay-key "" + echo "Set grub timeout to 0" sudo sed -i 's|GRUB_TIMEOUT=10|GRUB_TIMEOUT=0|g' /etc/default/grub sudo update-grub diff --git a/coin/provisioning/qtci-linux-Ubuntu-24.04-x86_64/02-apt.sh b/coin/provisioning/qtci-linux-Ubuntu-24.04-x86_64/02-apt.sh index de40cfeed37..be9d3e0417f 100644 --- a/coin/provisioning/qtci-linux-Ubuntu-24.04-x86_64/02-apt.sh +++ b/coin/provisioning/qtci-linux-Ubuntu-24.04-x86_64/02-apt.sh @@ -271,5 +271,8 @@ source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.sh" # hence the explicit assignment to SBOM_PYTHON_APPS_PATH. SetEnvVar "SBOM_PYTHON_APPS_PATH" "/home/qt/.local/bin" +gccVersion="$(gcc --version |grep -Eo '[0-9]+\.[0-9]+(\.[0-9]+)?' |head -n 1)" +echo "GCC = $gccVersion" >> versions.txt + OpenSSLVersion="$(openssl version |cut -b 9-14)" echo "System's OpenSSL = $OpenSSLVersion" >> ~/versions.txt diff --git a/coin/provisioning/qtci-linux-Ubuntu-24.04-x86_64/90-install-ffmpeg.sh b/coin/provisioning/qtci-linux-Ubuntu-24.04-x86_64/90-install-ffmpeg.sh index 61da9b7b3a4..882680b7fa0 100644 --- a/coin/provisioning/qtci-linux-Ubuntu-24.04-x86_64/90-install-ffmpeg.sh +++ b/coin/provisioning/qtci-linux-Ubuntu-24.04-x86_64/90-install-ffmpeg.sh @@ -1,3 +1,3 @@ #!/usr/bin/env bash -source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg.sh" "linux" +source "${BASH_SOURCE%/*}/../common/linux/install-ffmpeg-linux.sh" diff --git a/coin/provisioning/qtci-linux-openSUSE-15.3-x86_64/01-systemsetup.sh b/coin/provisioning/qtci-linux-openSUSE-15.3-x86_64/01-systemsetup.sh index 1108ba0276d..a2194e2d396 100755 --- a/coin/provisioning/qtci-linux-openSUSE-15.3-x86_64/01-systemsetup.sh +++ b/coin/provisioning/qtci-linux-openSUSE-15.3-x86_64/01-systemsetup.sh @@ -15,11 +15,11 @@ sudo btrfs quota disable / sed -i '$ a\[Daemon\]\nAutolock=false\nLockOnResume=false' ~/.config/kscreenlockerrc +"$BASEDIR/../common/linux/configure-gnome-shell.sh" + sudo sed -i 's|GRUB_TIMEOUT=8|GRUB_TIMEOUT=0|g' /etc/default/grub sudo grub2-mkconfig -o /boot/grub2/grub.cfg -echo "Disable window animations." -gsettings set org.gnome.desktop.interface enable-animations false echo "Set Network Test Server address to $network_test_server_ip in /etc/hosts" echo "$network_test_server_ip qt-test-server qt-test-server.qt-test-net" | sudo tee -a /etc/hosts echo "Set DISPLAY" diff --git a/coin/provisioning/qtci-linux-openSUSE-15.3-x86_64/04-zypperpackages.sh b/coin/provisioning/qtci-linux-openSUSE-15.3-x86_64/04-zypperpackages.sh index 25bea45b298..3d82dade54c 100755 --- a/coin/provisioning/qtci-linux-openSUSE-15.3-x86_64/04-zypperpackages.sh +++ b/coin/provisioning/qtci-linux-openSUSE-15.3-x86_64/04-zypperpackages.sh @@ -69,7 +69,7 @@ sudo zypper -nq install autoconf libcurl-devel libexpat-devel # Java sudo zypper -nq install java-17-openjdk -gccVersion="$(gcc --version |grep gcc |cut -b 17-23)" +gccVersion="$(gcc --version |grep -Eo '[0-9]+\.[0-9]+(\.[0-9]+)?' |head -n 1)" echo "GCC = $gccVersion" >> versions.txt OpenSSLVersion="$(openssl version |cut -b 9-14)" diff --git a/coin/provisioning/qtci-linux-openSUSE-15.3-x86_64/90-install-ffmpeg.sh b/coin/provisioning/qtci-linux-openSUSE-15.3-x86_64/90-install-ffmpeg.sh index 61da9b7b3a4..882680b7fa0 100755 --- a/coin/provisioning/qtci-linux-openSUSE-15.3-x86_64/90-install-ffmpeg.sh +++ b/coin/provisioning/qtci-linux-openSUSE-15.3-x86_64/90-install-ffmpeg.sh @@ -1,3 +1,3 @@ #!/usr/bin/env bash -source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg.sh" "linux" +source "${BASH_SOURCE%/*}/../common/linux/install-ffmpeg-linux.sh" diff --git a/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/01-systemsetup.sh b/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/01-systemsetup.sh index d60ccd7f420..61f68eb95a8 100755 --- a/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/01-systemsetup.sh +++ b/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/01-systemsetup.sh @@ -15,11 +15,11 @@ sudo btrfs quota disable / sed -i '$ a\[Daemon\]\nAutolock=false\nLockOnResume=false' ~/.config/kscreenlockerrc +"$BASEDIR/../common/linux/configure-gnome-shell.sh" + sudo sed -i 's|GRUB_TIMEOUT=8|GRUB_TIMEOUT=0|g' /etc/default/grub sudo grub2-mkconfig -o /boot/grub2/grub.cfg -echo "Disable window animations." -gsettings set org.gnome.desktop.interface enable-animations false echo "Set Network Test Server address to $network_test_server_ip in /etc/hosts" echo "$network_test_server_ip qt-test-server qt-test-server.qt-test-net" | sudo tee -a /etc/hosts echo "Set DISPLAY" diff --git a/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/04-zypperpackages.sh b/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/04-zypperpackages.sh index 5ee179e33e6..eab1d584ae1 100755 --- a/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/04-zypperpackages.sh +++ b/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/04-zypperpackages.sh @@ -75,7 +75,7 @@ sudo zypper -nq install valgrind-devel # Java sudo zypper -nq install java-17-openjdk -gccVersion="$(gcc --version |grep gcc |cut -b 17-23)" +gccVersion="$(gcc --version |grep -Eo '[0-9]+\.[0-9]+(\.[0-9]+)?' |head -n 1)" echo "GCC = $gccVersion" >> versions.txt OpenSSLVersion="$(openssl-3 version |cut -b 9-14)" diff --git a/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/90-install-ffmpeg.sh b/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/90-install-ffmpeg.sh index 61da9b7b3a4..882680b7fa0 100755 --- a/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/90-install-ffmpeg.sh +++ b/coin/provisioning/qtci-linux-openSUSE-15.4-x86_64/90-install-ffmpeg.sh @@ -1,3 +1,3 @@ #!/usr/bin/env bash -source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg.sh" "linux" +source "${BASH_SOURCE%/*}/../common/linux/install-ffmpeg-linux.sh" diff --git a/coin/provisioning/qtci-linux-openSUSE-15.5-x86_64/01-systemsetup.sh b/coin/provisioning/qtci-linux-openSUSE-15.5-x86_64/01-systemsetup.sh index 01c8a0483c2..da2900c0167 100755 --- a/coin/provisioning/qtci-linux-openSUSE-15.5-x86_64/01-systemsetup.sh +++ b/coin/provisioning/qtci-linux-openSUSE-15.5-x86_64/01-systemsetup.sh @@ -14,11 +14,11 @@ sudo btrfs quota disable / sed -i '$ a\[Daemon\]\nAutolock=false\nLockOnResume=false' ~/.config/kscreenlockerrc +"$BASEDIR/../common/linux/configure-gnome-shell.sh" + sudo sed -i 's|GRUB_TIMEOUT=8|GRUB_TIMEOUT=0|g' /etc/default/grub sudo grub2-mkconfig -o /boot/grub2/grub.cfg -echo "Disable window animations." -gsettings set org.gnome.desktop.interface enable-animations false echo "Set Network Test Server address to $network_test_server_ip in /etc/hosts" echo "$network_test_server_ip qt-test-server qt-test-server.qt-test-net" | sudo tee -a /etc/hosts echo "Set DISPLAY" diff --git a/coin/provisioning/qtci-linux-openSUSE-15.5-x86_64/04-zypperpackages.sh b/coin/provisioning/qtci-linux-openSUSE-15.5-x86_64/04-zypperpackages.sh index 10c0d7de98a..69f3b420d6e 100755 --- a/coin/provisioning/qtci-linux-openSUSE-15.5-x86_64/04-zypperpackages.sh +++ b/coin/provisioning/qtci-linux-openSUSE-15.5-x86_64/04-zypperpackages.sh @@ -91,7 +91,7 @@ sudo zypper -nq install libtommath-devel # Java sudo zypper -nq install java-17-openjdk -gccVersion="$(gcc --version |grep gcc |cut -b 17-23)" +gccVersion="$(gcc --version |grep -Eo '[0-9]+\.[0-9]+(\.[0-9]+)?' |head -n 1)" echo "GCC = $gccVersion" >> versions.txt OpenSSLVersion="$(openssl-3 version |cut -b 9-14)" diff --git a/coin/provisioning/qtci-linux-openSUSE-15.5-x86_64/90-install-ffmpeg.sh b/coin/provisioning/qtci-linux-openSUSE-15.5-x86_64/90-install-ffmpeg.sh index 61da9b7b3a4..882680b7fa0 100755 --- a/coin/provisioning/qtci-linux-openSUSE-15.5-x86_64/90-install-ffmpeg.sh +++ b/coin/provisioning/qtci-linux-openSUSE-15.5-x86_64/90-install-ffmpeg.sh @@ -1,3 +1,3 @@ #!/usr/bin/env bash -source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg.sh" "linux" +source "${BASH_SOURCE%/*}/../common/linux/install-ffmpeg-linux.sh" diff --git a/coin/provisioning/qtci-linux-openSUSE-15.6-x86_64/01-systemsetup.sh b/coin/provisioning/qtci-linux-openSUSE-15.6-x86_64/01-systemsetup.sh index 5891a40c222..e5eb34804d3 100644 --- a/coin/provisioning/qtci-linux-openSUSE-15.6-x86_64/01-systemsetup.sh +++ b/coin/provisioning/qtci-linux-openSUSE-15.6-x86_64/01-systemsetup.sh @@ -19,8 +19,8 @@ sed -i '$ a\[Daemon\]\nAutolock=false\nLockOnResume=false' ~/.config/kscreenlock sudo sed -i 's|GRUB_TIMEOUT=8|GRUB_TIMEOUT=0|g' /etc/default/grub sudo grub2-mkconfig -o /boot/grub2/grub.cfg -echo "Disable window animations." -gsettings set org.gnome.desktop.interface enable-animations false +"$BASEDIR/../common/linux/configure-gnome-shell.sh" + echo "Set Network Test Server address to $network_test_server_ip in /etc/hosts" echo "$network_test_server_ip qt-test-server qt-test-server.qt-test-net" | sudo tee -a /etc/hosts echo "Set DISPLAY" diff --git a/coin/provisioning/qtci-linux-openSUSE-15.6-x86_64/04-zypperpackages.sh b/coin/provisioning/qtci-linux-openSUSE-15.6-x86_64/04-zypperpackages.sh index dd722e4ebc5..e3c5cf9e0ab 100644 --- a/coin/provisioning/qtci-linux-openSUSE-15.6-x86_64/04-zypperpackages.sh +++ b/coin/provisioning/qtci-linux-openSUSE-15.6-x86_64/04-zypperpackages.sh @@ -87,8 +87,11 @@ sudo zypper -nq install libtommath-devel # Java sudo zypper -nq install java-17-openjdk -gccVersion="$(gcc --version |grep gcc |cut -b 17-23)" +# For tst_license.pl with all the machines generating SBOM +sudo zypper -nq install perl-JSON + +gccVersion="$(gcc --version |grep -Eo '[0-9]+\.[0-9]+(\.[0-9]+)?' |head -n 1)" echo "GCC = $gccVersion" >> versions.txt -OpenSSLVersion="$(openssl-3 version |cut -b 9-14)" +OpenSSLVersion="$(openssl version |cut -b 9-14)" echo "System's OpenSSL = $OpenSSLVersion" >> ~/versions.txt diff --git a/coin/provisioning/qtci-linux-openSUSE-15.6-x86_64/80-install-chrome.sh b/coin/provisioning/qtci-linux-openSUSE-15.6-x86_64/80-install-chrome.sh index ba54c2c5a7b..7901ea1a468 100644 --- a/coin/provisioning/qtci-linux-openSUSE-15.6-x86_64/80-install-chrome.sh +++ b/coin/provisioning/qtci-linux-openSUSE-15.6-x86_64/80-install-chrome.sh @@ -10,14 +10,14 @@ source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.sh" # shellcheck source=../common/unix/DownloadURL.sh source "${BASH_SOURCE%/*}/../common/unix/DownloadURL.sh" -chromeVersion="chrome-for-testing-115" -sha="7242ece1055bdbf503527f8e87c4b5da37c3c60e" -chromeUrl="https://ci-files01-hki.ci.qt.io/input/wasm/chrome/$%7BchromeVersion%7D.tar.gz" -target="/tmp/chrome-for-testing-115.tar.gz" +chromeVersion="chrome-for-testing-131" +sha="006d8e0438980d5ca8809af6f036e2b802b13cc8" +cachedChromeUrl="https://ci-files01-hki.ci.qt.io/input/wasm/chrome/$%7BchromeVersion%7D.zip" +officialChromeUrl="https://storage.googleapis.com/chrome-for-testing-public/131.0.6778.204/linux64/chrome-linux64.zip" +target="/tmp/${chromeVersion}.zip" -DownloadURL "$chromeUrl" "" "$sha" "$target" -sudo tar -xzf "$target" -C "${HOME}" +DownloadURL "$cachedChromeUrl" "$officialChromeUrl" "$sha" "$target" +sudo unzip -q "$target" -d "${HOME}" sudo rm -f "$target" - -SetEnvVar "BROWSER_FOR_WASM" "${HOME}/${chromeVersion}/chrome" -SetEnvVar "CHROMEDRIVER_PATH" "${HOME}/${chromeVersion}/chromedriver" +chromePath="${HOME}/chrome-linux64/chrome" +SetEnvVar "BROWSER_FOR_WASM" "${chromePath}" diff --git a/coin/provisioning/qtci-linux-openSUSE-15.6-x86_64/90-install-ffmpeg.sh b/coin/provisioning/qtci-linux-openSUSE-15.6-x86_64/90-install-ffmpeg.sh index 61da9b7b3a4..882680b7fa0 100644 --- a/coin/provisioning/qtci-linux-openSUSE-15.6-x86_64/90-install-ffmpeg.sh +++ b/coin/provisioning/qtci-linux-openSUSE-15.6-x86_64/90-install-ffmpeg.sh @@ -1,3 +1,3 @@ #!/usr/bin/env bash -source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg.sh" "linux" +source "${BASH_SOURCE%/*}/../common/linux/install-ffmpeg-linux.sh" diff --git a/coin/provisioning/qtci-macos-10.15-x86_64/25-homebrew.sh b/coin/provisioning/qtci-macos-10.15-x86_64/25-homebrew.sh index b26d81daf7a..54321000859 100755 --- a/coin/provisioning/qtci-macos-10.15-x86_64/25-homebrew.sh +++ b/coin/provisioning/qtci-macos-10.15-x86_64/25-homebrew.sh @@ -1,8 +1,12 @@ #!/usr/bin/env bash -#Copyright (C) 2023 The Qt Company Ltd +#Copyright (C) 2025 The Qt Company Ltd #SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only -set -e +set -ex + +INSTALLTYPE="GIT" BASEDIR=$(dirname "$0") -"$BASEDIR/../common/macos/homebrew.sh" +# Usage "$BASEDIR/../common/macos/homebrew.sh" "$INSTALLTYPE" "$HOMEBREW_VERSION" "$HOMEBREW_HASH" +# Specify HOMEBREW_VERSION and HOMEBREW_HASH only if defaults set in homebrew.sh are not suitable for this platform +"$BASEDIR/../common/macos/homebrew.sh" "$INSTALLTYPE" diff --git a/coin/provisioning/qtci-macos-10.15-x86_64/25-postgresql.sh b/coin/provisioning/qtci-macos-10.15-x86_64/25-postgresql.sh index 95460b553ba..2c1e4b8faf0 100755 --- a/coin/provisioning/qtci-macos-10.15-x86_64/25-postgresql.sh +++ b/coin/provisioning/qtci-macos-10.15-x86_64/25-postgresql.sh @@ -22,5 +22,5 @@ appPrefix="" InstallAppFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$SHA1" "$appPrefix" -SetEnvVar "POSTGRESQLBINPATH" "/Applications/Postgres.app/Contents/Versions/9.6/bin" +SetEnvVar "PostgreSQL_ROOT" "/Applications/Postgres.app/Contents/Versions/9.6" echo "PostgreSQL = $psqlVersion" >> ~/versions.txt diff --git a/coin/provisioning/qtci-macos-10.15-x86_64/30-android.sh b/coin/provisioning/qtci-macos-10.15-x86_64/30-android.sh index 3ae2cbf6cbf..e164cb9545a 100755 --- a/coin/provisioning/qtci-macos-10.15-x86_64/30-android.sh +++ b/coin/provisioning/qtci-macos-10.15-x86_64/30-android.sh @@ -20,11 +20,11 @@ toolsVersion="2.1" # toolsFile dertermines tools version toolsFile="commandlinetools-mac-6609375_latest.zip" -ndkVersion="r26b" +ndkVersion="r27c" ndkFile="android-ndk-$ndkVersion-darwin.zip" -sdkBuildToolsVersion="34.0.0" +sdkBuildToolsVersion="35.0.1" # this is compile sdk version -sdkApiLevel="android-34" +sdkApiLevel="android-35" toolsSourceFile="$basePath/$toolsFile" ndkSourceFile="$basePath/$ndkFile" diff --git a/coin/provisioning/qtci-macos-10.15-x86_64/90-install-ffmpeg.sh b/coin/provisioning/qtci-macos-10.15-x86_64/90-install-ffmpeg.sh index 4a41cb74d3c..fd9cfbf7666 100755 --- a/coin/provisioning/qtci-macos-10.15-x86_64/90-install-ffmpeg.sh +++ b/coin/provisioning/qtci-macos-10.15-x86_64/90-install-ffmpeg.sh @@ -4,4 +4,4 @@ set -ex -source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg.sh" "macos" +source "${BASH_SOURCE%/*}/../common/macos/install-ffmpeg-macos.sh" diff --git a/coin/provisioning/qtci-macos-11-arm/23-homebrew.sh b/coin/provisioning/qtci-macos-11-arm/23-homebrew.sh index c63771140e6..54321000859 100755 --- a/coin/provisioning/qtci-macos-11-arm/23-homebrew.sh +++ b/coin/provisioning/qtci-macos-11-arm/23-homebrew.sh @@ -1,12 +1,12 @@ #!/usr/bin/env bash -# Copyright (C) 2023 The Qt Company Ltd. -# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only +#Copyright (C) 2025 The Qt Company Ltd +#SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only -# Will install homebrew package manager for macOS. -# WARNING: Requires commandlinetools +set -ex - -set -e +INSTALLTYPE="GIT" BASEDIR=$(dirname "$0") -"$BASEDIR/../common/macos/homebrew_for_arm_mac.sh" +# Usage "$BASEDIR/../common/macos/homebrew.sh" "$INSTALLTYPE" "$HOMEBREW_VERSION" "$HOMEBREW_HASH" +# Specify HOMEBREW_VERSION and HOMEBREW_HASH only if defaults set in homebrew.sh are not suitable for this platform +"$BASEDIR/../common/macos/homebrew.sh" "$INSTALLTYPE" diff --git a/coin/provisioning/qtci-macos-11-arm/30-android.sh b/coin/provisioning/qtci-macos-11-arm/30-android.sh index 3ae2cbf6cbf..e164cb9545a 100755 --- a/coin/provisioning/qtci-macos-11-arm/30-android.sh +++ b/coin/provisioning/qtci-macos-11-arm/30-android.sh @@ -20,11 +20,11 @@ toolsVersion="2.1" # toolsFile dertermines tools version toolsFile="commandlinetools-mac-6609375_latest.zip" -ndkVersion="r26b" +ndkVersion="r27c" ndkFile="android-ndk-$ndkVersion-darwin.zip" -sdkBuildToolsVersion="34.0.0" +sdkBuildToolsVersion="35.0.1" # this is compile sdk version -sdkApiLevel="android-34" +sdkApiLevel="android-35" toolsSourceFile="$basePath/$toolsFile" ndkSourceFile="$basePath/$ndkFile" diff --git a/coin/provisioning/qtci-macos-11-arm/90-install-ffmpeg.sh b/coin/provisioning/qtci-macos-11-arm/90-install-ffmpeg.sh index 23cb13e141c..d5e9d5d0ff2 100755 --- a/coin/provisioning/qtci-macos-11-arm/90-install-ffmpeg.sh +++ b/coin/provisioning/qtci-macos-11-arm/90-install-ffmpeg.sh @@ -4,4 +4,4 @@ set -ex -source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg.sh" "macos-universal" +source "${BASH_SOURCE%/*}/../common/macos/install-ffmpeg-macos.sh" "macos-universal" diff --git a/coin/provisioning/qtci-macos-11-x86_64/25-homebrew.sh b/coin/provisioning/qtci-macos-11-x86_64/25-homebrew.sh index f83960f43be..54321000859 100755 --- a/coin/provisioning/qtci-macos-11-x86_64/25-homebrew.sh +++ b/coin/provisioning/qtci-macos-11-x86_64/25-homebrew.sh @@ -1,28 +1,12 @@ #!/usr/bin/env bash -# Copyright (C) 2021 The Qt Company Ltd. -# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only +#Copyright (C) 2025 The Qt Company Ltd +#SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only -# Will install homebrew package manager for macOS. -# WARNING: Requires commandlinetools +set -ex +INSTALLTYPE="GIT" -set -e - -. "$(dirname "$0")"/../common/unix/DownloadURL.sh - - -DownloadURL \ - http://ci-files01-hki.ci.qt.io/input/mac/homebrew/a822f0d0f1838c07e86b356fcd2bf93c7a11c2aa/install.sh \ - https://raw.githubusercontent.com/Homebrew/install/c744a716f9845988d01e6e238eee7117b8c366c9/install \ - 3210da71e12a699ab3bba43910a6d5fc64b92000 \ - /tmp/homebrew_install.sh - -DownloadURL "http://ci-files01-hki.ci.qt.io/input/semisecure/sign/pw" "http://ci-files01-hki.ci.qt.io/input/semisecure/sign/pw" "aae58d00d0a1b179a09f21cfc67f9d16fb95ff36" "/Users/qt/pw" -{ pw=$(cat "/Users/qt/pw"); } 2> /dev/null -sudo chmod 755 /tmp/homebrew_install.sh -{ (echo "$pw" | /tmp/homebrew_install.sh); } 2> /dev/null -rm -f "/Users/qt/pw" - -# No need to manually do `brew update`, the homebrew installer script does it. -### brew update - +BASEDIR=$(dirname "$0") +# Usage "$BASEDIR/../common/macos/homebrew.sh" "$INSTALLTYPE" "$HOMEBREW_VERSION" "$HOMEBREW_HASH" +# Specify HOMEBREW_VERSION and HOMEBREW_HASH only if defaults set in homebrew.sh are not suitable for this platform +"$BASEDIR/../common/macos/homebrew.sh" "$INSTALLTYPE" diff --git a/coin/provisioning/qtci-macos-11-x86_64/30-android.sh b/coin/provisioning/qtci-macos-11-x86_64/30-android.sh index 11bcf7ad809..b1568e4d368 100755 --- a/coin/provisioning/qtci-macos-11-x86_64/30-android.sh +++ b/coin/provisioning/qtci-macos-11-x86_64/30-android.sh @@ -20,11 +20,11 @@ toolsVersion="2.1" # toolsFile dertermines tools version toolsFile="commandlinetools-mac-6609375_latest.zip" -ndkVersion="r26b" +ndkVersion="r27c" ndkFile="android-ndk-$ndkVersion-darwin.zip" -sdkBuildToolsVersion="34.0.0" +sdkBuildToolsVersion="35.0.1" # this is compile sdk version -sdkApiLevel="android-34" +sdkApiLevel="android-35" toolsSourceFile="$basePath/$toolsFile" ndkSourceFile="$basePath/$ndkFile" diff --git a/coin/provisioning/qtci-macos-11-x86_64/90-install-ffmpeg.sh b/coin/provisioning/qtci-macos-11-x86_64/90-install-ffmpeg.sh index 23cb13e141c..d5e9d5d0ff2 100755 --- a/coin/provisioning/qtci-macos-11-x86_64/90-install-ffmpeg.sh +++ b/coin/provisioning/qtci-macos-11-x86_64/90-install-ffmpeg.sh @@ -4,4 +4,4 @@ set -ex -source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg.sh" "macos-universal" +source "${BASH_SOURCE%/*}/../common/macos/install-ffmpeg-macos.sh" "macos-universal" diff --git a/coin/provisioning/qtci-macos-12-arm/23-homebrew.sh b/coin/provisioning/qtci-macos-12-arm/23-homebrew.sh index c63771140e6..54321000859 100755 --- a/coin/provisioning/qtci-macos-12-arm/23-homebrew.sh +++ b/coin/provisioning/qtci-macos-12-arm/23-homebrew.sh @@ -1,12 +1,12 @@ #!/usr/bin/env bash -# Copyright (C) 2023 The Qt Company Ltd. -# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only +#Copyright (C) 2025 The Qt Company Ltd +#SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only -# Will install homebrew package manager for macOS. -# WARNING: Requires commandlinetools +set -ex - -set -e +INSTALLTYPE="GIT" BASEDIR=$(dirname "$0") -"$BASEDIR/../common/macos/homebrew_for_arm_mac.sh" +# Usage "$BASEDIR/../common/macos/homebrew.sh" "$INSTALLTYPE" "$HOMEBREW_VERSION" "$HOMEBREW_HASH" +# Specify HOMEBREW_VERSION and HOMEBREW_HASH only if defaults set in homebrew.sh are not suitable for this platform +"$BASEDIR/../common/macos/homebrew.sh" "$INSTALLTYPE" diff --git a/coin/provisioning/qtci-macos-12-arm/30-android.sh b/coin/provisioning/qtci-macos-12-arm/30-android.sh index 6259b71ed12..acd2d4b9e88 100755 --- a/coin/provisioning/qtci-macos-12-arm/30-android.sh +++ b/coin/provisioning/qtci-macos-12-arm/30-android.sh @@ -20,11 +20,11 @@ toolsVersion="2.1" # toolsFile dertermines tools version toolsFile="commandlinetools-mac-6609375_latest.zip" -ndkVersion="r26b" +ndkVersion="r27c" ndkFile="android-ndk-$ndkVersion-darwin.zip" -sdkBuildToolsVersion="34.0.0" +sdkBuildToolsVersion="35.0.1" # this is compile sdk version -sdkApiLevel="android-34" +sdkApiLevel="android-35" toolsSourceFile="$basePath/$toolsFile" ndkSourceFile="$basePath/$ndkFile" diff --git a/coin/provisioning/qtci-macos-12-arm/90-install-ffmpeg.sh b/coin/provisioning/qtci-macos-12-arm/90-install-ffmpeg.sh index 4d4169bb657..e6b40aa1d8a 100755 --- a/coin/provisioning/qtci-macos-12-arm/90-install-ffmpeg.sh +++ b/coin/provisioning/qtci-macos-12-arm/90-install-ffmpeg.sh @@ -4,6 +4,6 @@ set -ex -source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg.sh" "macos-universal" +source "${BASH_SOURCE%/*}/../common/macos/install-ffmpeg-macos.sh" "macos-universal" #source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg-android.sh" "android-arm64" source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg-ios.sh" diff --git a/coin/provisioning/qtci-macos-12-x86_64/25-homebrew.sh b/coin/provisioning/qtci-macos-12-x86_64/25-homebrew.sh index f83960f43be..54321000859 100755 --- a/coin/provisioning/qtci-macos-12-x86_64/25-homebrew.sh +++ b/coin/provisioning/qtci-macos-12-x86_64/25-homebrew.sh @@ -1,28 +1,12 @@ #!/usr/bin/env bash -# Copyright (C) 2021 The Qt Company Ltd. -# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only +#Copyright (C) 2025 The Qt Company Ltd +#SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only -# Will install homebrew package manager for macOS. -# WARNING: Requires commandlinetools +set -ex +INSTALLTYPE="GIT" -set -e - -. "$(dirname "$0")"/../common/unix/DownloadURL.sh - - -DownloadURL \ - http://ci-files01-hki.ci.qt.io/input/mac/homebrew/a822f0d0f1838c07e86b356fcd2bf93c7a11c2aa/install.sh \ - https://raw.githubusercontent.com/Homebrew/install/c744a716f9845988d01e6e238eee7117b8c366c9/install \ - 3210da71e12a699ab3bba43910a6d5fc64b92000 \ - /tmp/homebrew_install.sh - -DownloadURL "http://ci-files01-hki.ci.qt.io/input/semisecure/sign/pw" "http://ci-files01-hki.ci.qt.io/input/semisecure/sign/pw" "aae58d00d0a1b179a09f21cfc67f9d16fb95ff36" "/Users/qt/pw" -{ pw=$(cat "/Users/qt/pw"); } 2> /dev/null -sudo chmod 755 /tmp/homebrew_install.sh -{ (echo "$pw" | /tmp/homebrew_install.sh); } 2> /dev/null -rm -f "/Users/qt/pw" - -# No need to manually do `brew update`, the homebrew installer script does it. -### brew update - +BASEDIR=$(dirname "$0") +# Usage "$BASEDIR/../common/macos/homebrew.sh" "$INSTALLTYPE" "$HOMEBREW_VERSION" "$HOMEBREW_HASH" +# Specify HOMEBREW_VERSION and HOMEBREW_HASH only if defaults set in homebrew.sh are not suitable for this platform +"$BASEDIR/../common/macos/homebrew.sh" "$INSTALLTYPE" diff --git a/coin/provisioning/qtci-macos-12-x86_64/90-install-ffmpeg.sh b/coin/provisioning/qtci-macos-12-x86_64/90-install-ffmpeg.sh index dfdc1022c27..c36eda4526b 100755 --- a/coin/provisioning/qtci-macos-12-x86_64/90-install-ffmpeg.sh +++ b/coin/provisioning/qtci-macos-12-x86_64/90-install-ffmpeg.sh @@ -4,6 +4,6 @@ set -ex -source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg.sh" "macos-universal" +source "${BASH_SOURCE%/*}/../common/macos/install-ffmpeg-macos.sh" "macos-universal" source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg-android.sh" "android-arm64" source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg-ios.sh" diff --git a/coin/provisioning/qtci-macos-13-arm/23-homebrew.sh b/coin/provisioning/qtci-macos-13-arm/23-homebrew.sh index 4983540c2c3..0c4ee4fc6a5 100755 --- a/coin/provisioning/qtci-macos-13-arm/23-homebrew.sh +++ b/coin/provisioning/qtci-macos-13-arm/23-homebrew.sh @@ -1,16 +1,12 @@ #!/usr/bin/env bash -# Copyright (C) 2023 The Qt Company Ltd. -# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only +#Copyright (C) 2025 The Qt Company Ltd +#SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only -# Will install homebrew package manager for macOS. -# WARNING: Requires commandlinetools +set -ex - -set -e +INSTALLTYPE="PKG" BASEDIR=$(dirname "$0") -"$BASEDIR/../common/macos/homebrew_for_arm_mac.sh" -# Can we force reading bash env this late? -echo "if [ -f ~/.bashrc ]; then - . ~/.bashrc -fi" >> .profile +# Usage "$BASEDIR/../common/macos/homebrew.sh" "$INSTALLTYPE" "$HOMEBREW_VERSION" "$HOMEBREW_HASH" +# Specify HOMEBREW_VERSION and HOMEBREW_HASH only if defaults set in homebrew.sh are not suitable for this platform +"$BASEDIR/../common/macos/homebrew.sh" "$INSTALLTYPE" diff --git a/coin/provisioning/qtci-macos-13-arm/30-android.sh b/coin/provisioning/qtci-macos-13-arm/30-android.sh index 6259b71ed12..acd2d4b9e88 100755 --- a/coin/provisioning/qtci-macos-13-arm/30-android.sh +++ b/coin/provisioning/qtci-macos-13-arm/30-android.sh @@ -20,11 +20,11 @@ toolsVersion="2.1" # toolsFile dertermines tools version toolsFile="commandlinetools-mac-6609375_latest.zip" -ndkVersion="r26b" +ndkVersion="r27c" ndkFile="android-ndk-$ndkVersion-darwin.zip" -sdkBuildToolsVersion="34.0.0" +sdkBuildToolsVersion="35.0.1" # this is compile sdk version -sdkApiLevel="android-34" +sdkApiLevel="android-35" toolsSourceFile="$basePath/$toolsFile" ndkSourceFile="$basePath/$ndkFile" diff --git a/coin/provisioning/qtci-macos-13-arm/90-install-ffmpeg.sh b/coin/provisioning/qtci-macos-13-arm/90-install-ffmpeg.sh index 4d4169bb657..e6b40aa1d8a 100755 --- a/coin/provisioning/qtci-macos-13-arm/90-install-ffmpeg.sh +++ b/coin/provisioning/qtci-macos-13-arm/90-install-ffmpeg.sh @@ -4,6 +4,6 @@ set -ex -source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg.sh" "macos-universal" +source "${BASH_SOURCE%/*}/../common/macos/install-ffmpeg-macos.sh" "macos-universal" #source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg-android.sh" "android-arm64" source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg-ios.sh" diff --git a/coin/provisioning/qtci-macos-13-x86_64/25-homebrew.sh b/coin/provisioning/qtci-macos-13-x86_64/25-homebrew.sh index 237dc5076f3..0c4ee4fc6a5 100755 --- a/coin/provisioning/qtci-macos-13-x86_64/25-homebrew.sh +++ b/coin/provisioning/qtci-macos-13-x86_64/25-homebrew.sh @@ -1,28 +1,12 @@ #!/usr/bin/env bash -# Copyright (C) 2022 The Qt Company Ltd. -# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only +#Copyright (C) 2025 The Qt Company Ltd +#SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only -# Will install homebrew package manager for macOS. -# WARNING: Requires commandlinetools +set -ex +INSTALLTYPE="PKG" -set -e - -. "$(dirname "$0")"/../common/unix/DownloadURL.sh - - -DownloadURL \ - http://ci-files01-hki.ci.qt.io/input/mac/homebrew/a822f0d0f1838c07e86b356fcd2bf93c7a11c2aa/install.sh \ - https://raw.githubusercontent.com/Homebrew/install/c744a716f9845988d01e6e238eee7117b8c366c9/install \ - 3210da71e12a699ab3bba43910a6d5fc64b92000 \ - /tmp/homebrew_install.sh - -DownloadURL "http://ci-files01-hki.ci.qt.io/input/semisecure/sign/pw" "http://ci-files01-hki.ci.qt.io/input/semisecure/sign/pw" "aae58d00d0a1b179a09f21cfc67f9d16fb95ff36" "/Users/qt/pw" -{ pw=$(cat "/Users/qt/pw"); } 2> /dev/null -sudo chmod 755 /tmp/homebrew_install.sh -{ (echo "$pw" | /tmp/homebrew_install.sh); } 2> /dev/null -rm -f "/Users/qt/pw" - -# No need to manually do `brew update`, the homebrew installer script does it. -### brew update - +BASEDIR=$(dirname "$0") +# Usage "$BASEDIR/../common/macos/homebrew.sh" "$INSTALLTYPE" "$HOMEBREW_VERSION" "$HOMEBREW_HASH" +# Specify HOMEBREW_VERSION and HOMEBREW_HASH only if defaults set in homebrew.sh are not suitable for this platform +"$BASEDIR/../common/macos/homebrew.sh" "$INSTALLTYPE" diff --git a/coin/provisioning/qtci-macos-13-x86_64/90-install-ffmpeg.sh b/coin/provisioning/qtci-macos-13-x86_64/90-install-ffmpeg.sh index dfdc1022c27..c36eda4526b 100755 --- a/coin/provisioning/qtci-macos-13-x86_64/90-install-ffmpeg.sh +++ b/coin/provisioning/qtci-macos-13-x86_64/90-install-ffmpeg.sh @@ -4,6 +4,6 @@ set -ex -source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg.sh" "macos-universal" +source "${BASH_SOURCE%/*}/../common/macos/install-ffmpeg-macos.sh" "macos-universal" source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg-android.sh" "android-arm64" source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg-ios.sh" diff --git a/coin/provisioning/qtci-macos-14-arm/22-install-simulator-runtime.sh b/coin/provisioning/qtci-macos-14-arm/22-install-simulator-runtime.sh new file mode 100755 index 00000000000..69e3a52d13b --- /dev/null +++ b/coin/provisioning/qtci-macos-14-arm/22-install-simulator-runtime.sh @@ -0,0 +1,14 @@ +#!/usr/bin/env bash +# Copyright (C) 2024 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +set -ex + +# shellcheck source=../common/macos/install-simulator-runtime.sh +source "${BASH_SOURCE%/*}/../common/macos/install-simulator-runtime.sh" +version="17.4" +packageName=iOS_"$version"_Simulator_Runtime.dmg +url="http://ci-files01-hki.ci.qt.io/input/mac/$packageName" +sha1="7b930c544403806f3a4f99bb48e80f4ef1533f50" + +InstallSimulatorRuntime $url $url $sha1 $packageName $version diff --git a/coin/provisioning/qtci-macos-14-arm/23-homebrew.sh b/coin/provisioning/qtci-macos-14-arm/23-homebrew.sh index 4983540c2c3..0c4ee4fc6a5 100755 --- a/coin/provisioning/qtci-macos-14-arm/23-homebrew.sh +++ b/coin/provisioning/qtci-macos-14-arm/23-homebrew.sh @@ -1,16 +1,12 @@ #!/usr/bin/env bash -# Copyright (C) 2023 The Qt Company Ltd. -# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only +#Copyright (C) 2025 The Qt Company Ltd +#SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only -# Will install homebrew package manager for macOS. -# WARNING: Requires commandlinetools +set -ex - -set -e +INSTALLTYPE="PKG" BASEDIR=$(dirname "$0") -"$BASEDIR/../common/macos/homebrew_for_arm_mac.sh" -# Can we force reading bash env this late? -echo "if [ -f ~/.bashrc ]; then - . ~/.bashrc -fi" >> .profile +# Usage "$BASEDIR/../common/macos/homebrew.sh" "$INSTALLTYPE" "$HOMEBREW_VERSION" "$HOMEBREW_HASH" +# Specify HOMEBREW_VERSION and HOMEBREW_HASH only if defaults set in homebrew.sh are not suitable for this platform +"$BASEDIR/../common/macos/homebrew.sh" "$INSTALLTYPE" diff --git a/coin/provisioning/qtci-macos-14-arm/30-android.sh b/coin/provisioning/qtci-macos-14-arm/30-android.sh index 6259b71ed12..acd2d4b9e88 100755 --- a/coin/provisioning/qtci-macos-14-arm/30-android.sh +++ b/coin/provisioning/qtci-macos-14-arm/30-android.sh @@ -20,11 +20,11 @@ toolsVersion="2.1" # toolsFile dertermines tools version toolsFile="commandlinetools-mac-6609375_latest.zip" -ndkVersion="r26b" +ndkVersion="r27c" ndkFile="android-ndk-$ndkVersion-darwin.zip" -sdkBuildToolsVersion="34.0.0" +sdkBuildToolsVersion="35.0.1" # this is compile sdk version -sdkApiLevel="android-34" +sdkApiLevel="android-35" toolsSourceFile="$basePath/$toolsFile" ndkSourceFile="$basePath/$ndkFile" diff --git a/coin/provisioning/qtci-macos-14-arm/90-install-ffmpeg.sh b/coin/provisioning/qtci-macos-14-arm/90-install-ffmpeg.sh index 4d4169bb657..e6b40aa1d8a 100755 --- a/coin/provisioning/qtci-macos-14-arm/90-install-ffmpeg.sh +++ b/coin/provisioning/qtci-macos-14-arm/90-install-ffmpeg.sh @@ -4,6 +4,6 @@ set -ex -source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg.sh" "macos-universal" +source "${BASH_SOURCE%/*}/../common/macos/install-ffmpeg-macos.sh" "macos-universal" #source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg-android.sh" "android-arm64" source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg-ios.sh" diff --git a/coin/provisioning/qtci-macos-14-x86_64/22-install-simulator-runtime.sh b/coin/provisioning/qtci-macos-14-x86_64/22-install-simulator-runtime.sh new file mode 100755 index 00000000000..69e3a52d13b --- /dev/null +++ b/coin/provisioning/qtci-macos-14-x86_64/22-install-simulator-runtime.sh @@ -0,0 +1,14 @@ +#!/usr/bin/env bash +# Copyright (C) 2024 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +set -ex + +# shellcheck source=../common/macos/install-simulator-runtime.sh +source "${BASH_SOURCE%/*}/../common/macos/install-simulator-runtime.sh" +version="17.4" +packageName=iOS_"$version"_Simulator_Runtime.dmg +url="http://ci-files01-hki.ci.qt.io/input/mac/$packageName" +sha1="7b930c544403806f3a4f99bb48e80f4ef1533f50" + +InstallSimulatorRuntime $url $url $sha1 $packageName $version diff --git a/coin/provisioning/qtci-macos-14-x86_64/25-homebrew.sh b/coin/provisioning/qtci-macos-14-x86_64/25-homebrew.sh index 7ff457b710f..0c4ee4fc6a5 100755 --- a/coin/provisioning/qtci-macos-14-x86_64/25-homebrew.sh +++ b/coin/provisioning/qtci-macos-14-x86_64/25-homebrew.sh @@ -1,26 +1,12 @@ #!/usr/bin/env bash -# Copyright (C) 2023 The Qt Company Ltd. -# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only +#Copyright (C) 2025 The Qt Company Ltd +#SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only -# Will install homebrew package manager for macOS. -# WARNING: Requires commandlinetools +set -ex +INSTALLTYPE="PKG" -set -e - -. "$(dirname "$0")"/../common/unix/DownloadURL.sh - -DownloadURL \ - http://ci-files01-hki.ci.qt.io/input/mac/homebrew/d8f6c666d20a3d42e007ceec161a06651ad92ba331a24a3de62912edb129a522/install.sh \ - http://ci-files01-hki.ci.qt.io/input/mac/homebrew/d8f6c666d20a3d42e007ceec161a06651ad92ba331a24a3de62912edb129a522/install.sh \ - d8f6c666d20a3d42e007ceec161a06651ad92ba331a24a3de62912edb129a522 \ - /tmp/homebrew_install.sh - -DownloadURL "http://ci-files01-hki.ci.qt.io/input/semisecure/sign/pw" "http://ci-files01-hki.ci.qt.io/input/semisecure/sign/pw" "aae58d00d0a1b179a09f21cfc67f9d16fb95ff36" "/Users/qt/pw" -{ pw=$(cat "/Users/qt/pw"); } 2> /dev/null -sudo chmod 755 /tmp/homebrew_install.sh -{ (echo "$pw" | /tmp/homebrew_install.sh); } 2> /dev/null -rm -f "/Users/qt/pw" - -# No need to manually do `brew update`, the homebrew installer script does it. -### brew update +BASEDIR=$(dirname "$0") +# Usage "$BASEDIR/../common/macos/homebrew.sh" "$INSTALLTYPE" "$HOMEBREW_VERSION" "$HOMEBREW_HASH" +# Specify HOMEBREW_VERSION and HOMEBREW_HASH only if defaults set in homebrew.sh are not suitable for this platform +"$BASEDIR/../common/macos/homebrew.sh" "$INSTALLTYPE" diff --git a/coin/provisioning/qtci-macos-14-x86_64/90-install-ffmpeg.sh b/coin/provisioning/qtci-macos-14-x86_64/90-install-ffmpeg.sh index dfdc1022c27..c36eda4526b 100755 --- a/coin/provisioning/qtci-macos-14-x86_64/90-install-ffmpeg.sh +++ b/coin/provisioning/qtci-macos-14-x86_64/90-install-ffmpeg.sh @@ -4,6 +4,6 @@ set -ex -source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg.sh" "macos-universal" +source "${BASH_SOURCE%/*}/../common/macos/install-ffmpeg-macos.sh" "macos-universal" source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg-android.sh" "android-arm64" source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg-ios.sh" diff --git a/coin/provisioning/qtci-macos-15-arm/06-crashreporter.sh b/coin/provisioning/qtci-macos-15-arm/06-crashreporter.sh index cb7c0774d94..b66bbc38afa 100755 --- a/coin/provisioning/qtci-macos-15-arm/06-crashreporter.sh +++ b/coin/provisioning/qtci-macos-15-arm/06-crashreporter.sh @@ -5,3 +5,8 @@ set -ex defaults write com.apple.CrashReporter DialogType server + +# shellcheck source=../common/unix/SetEnvVar.sh +source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.sh" + +SetEnvVar "SWIFT_BACKTRACE" "enable=yes,output-to=stderr,preset=medium,interactive=false" diff --git a/coin/provisioning/qtci-macos-15-arm/22-install-simulator-runtime.sh b/coin/provisioning/qtci-macos-15-arm/22-install-simulator-runtime.sh new file mode 100755 index 00000000000..470bae9011b --- /dev/null +++ b/coin/provisioning/qtci-macos-15-arm/22-install-simulator-runtime.sh @@ -0,0 +1,14 @@ +#!/usr/bin/env bash +# Copyright (C) 2024 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +set -ex + +# shellcheck source=../common/macos/install-simulator-runtime.sh +source "${BASH_SOURCE%/*}/../common/macos/install-simulator-runtime.sh" +version="18.0" +packageName=iOS_"$version"_Simulator_Runtime.dmg +url="http://ci-files01-hki.ci.qt.io/input/mac/$packageName" +sha1="f29778313459b3a2a497ffd711b9dfa212241183" + +InstallSimulatorRuntime $url $url $sha1 $packageName $version diff --git a/coin/provisioning/qtci-macos-15-arm/23-homebrew.sh b/coin/provisioning/qtci-macos-15-arm/23-homebrew.sh index 4983540c2c3..0c4ee4fc6a5 100755 --- a/coin/provisioning/qtci-macos-15-arm/23-homebrew.sh +++ b/coin/provisioning/qtci-macos-15-arm/23-homebrew.sh @@ -1,16 +1,12 @@ #!/usr/bin/env bash -# Copyright (C) 2023 The Qt Company Ltd. -# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only +#Copyright (C) 2025 The Qt Company Ltd +#SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only -# Will install homebrew package manager for macOS. -# WARNING: Requires commandlinetools +set -ex - -set -e +INSTALLTYPE="PKG" BASEDIR=$(dirname "$0") -"$BASEDIR/../common/macos/homebrew_for_arm_mac.sh" -# Can we force reading bash env this late? -echo "if [ -f ~/.bashrc ]; then - . ~/.bashrc -fi" >> .profile +# Usage "$BASEDIR/../common/macos/homebrew.sh" "$INSTALLTYPE" "$HOMEBREW_VERSION" "$HOMEBREW_HASH" +# Specify HOMEBREW_VERSION and HOMEBREW_HASH only if defaults set in homebrew.sh are not suitable for this platform +"$BASEDIR/../common/macos/homebrew.sh" "$INSTALLTYPE" diff --git a/coin/provisioning/qtci-macos-15-arm/25-python.sh b/coin/provisioning/qtci-macos-15-arm/25-python.sh index 36bbc0e14ab..37c61881cc8 100755 --- a/coin/provisioning/qtci-macos-15-arm/25-python.sh +++ b/coin/provisioning/qtci-macos-15-arm/25-python.sh @@ -18,4 +18,9 @@ SetEnvVar "PIP3_PATH" "/Users/qt/.pyenv/versions/3.9.7/bin/" # Use 3.9 as a default python SetEnvVar "PATH" "\$PYTHON3_PATH:\$PATH" +# Provisioning during installation says: +# 'The script sbom2doc is installed in '$HOME/.local/bin' which is not on PATH.' +# hence the explicit assignment to SBOM_PYTHON_APPS_PATH. +SetEnvVar "SBOM_PYTHON_APPS_PATH" "/Users/qt/.local/bin" + echo "python3 = 3.9.7" >> ~/versions.txt diff --git a/coin/provisioning/qtci-macos-15-arm/30-android.sh b/coin/provisioning/qtci-macos-15-arm/30-android.sh index 6259b71ed12..acd2d4b9e88 100755 --- a/coin/provisioning/qtci-macos-15-arm/30-android.sh +++ b/coin/provisioning/qtci-macos-15-arm/30-android.sh @@ -20,11 +20,11 @@ toolsVersion="2.1" # toolsFile dertermines tools version toolsFile="commandlinetools-mac-6609375_latest.zip" -ndkVersion="r26b" +ndkVersion="r27c" ndkFile="android-ndk-$ndkVersion-darwin.zip" -sdkBuildToolsVersion="34.0.0" +sdkBuildToolsVersion="35.0.1" # this is compile sdk version -sdkApiLevel="android-34" +sdkApiLevel="android-35" toolsSourceFile="$basePath/$toolsFile" ndkSourceFile="$basePath/$ndkFile" diff --git a/coin/provisioning/qtci-macos-15-arm/90-install-ffmpeg.sh b/coin/provisioning/qtci-macos-15-arm/90-install-ffmpeg.sh index 4d4169bb657..e6b40aa1d8a 100755 --- a/coin/provisioning/qtci-macos-15-arm/90-install-ffmpeg.sh +++ b/coin/provisioning/qtci-macos-15-arm/90-install-ffmpeg.sh @@ -4,6 +4,6 @@ set -ex -source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg.sh" "macos-universal" +source "${BASH_SOURCE%/*}/../common/macos/install-ffmpeg-macos.sh" "macos-universal" #source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg-android.sh" "android-arm64" source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg-ios.sh" diff --git a/coin/provisioning/qtci-macos-15-x86_64/06-crashreporter.sh b/coin/provisioning/qtci-macos-15-x86_64/06-crashreporter.sh index cb7c0774d94..b66bbc38afa 100755 --- a/coin/provisioning/qtci-macos-15-x86_64/06-crashreporter.sh +++ b/coin/provisioning/qtci-macos-15-x86_64/06-crashreporter.sh @@ -5,3 +5,8 @@ set -ex defaults write com.apple.CrashReporter DialogType server + +# shellcheck source=../common/unix/SetEnvVar.sh +source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.sh" + +SetEnvVar "SWIFT_BACKTRACE" "enable=yes,output-to=stderr,preset=medium,interactive=false" diff --git a/coin/provisioning/qtci-macos-15-x86_64/22-install-simulator-runtime.sh b/coin/provisioning/qtci-macos-15-x86_64/22-install-simulator-runtime.sh new file mode 100755 index 00000000000..470bae9011b --- /dev/null +++ b/coin/provisioning/qtci-macos-15-x86_64/22-install-simulator-runtime.sh @@ -0,0 +1,14 @@ +#!/usr/bin/env bash +# Copyright (C) 2024 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +set -ex + +# shellcheck source=../common/macos/install-simulator-runtime.sh +source "${BASH_SOURCE%/*}/../common/macos/install-simulator-runtime.sh" +version="18.0" +packageName=iOS_"$version"_Simulator_Runtime.dmg +url="http://ci-files01-hki.ci.qt.io/input/mac/$packageName" +sha1="f29778313459b3a2a497ffd711b9dfa212241183" + +InstallSimulatorRuntime $url $url $sha1 $packageName $version diff --git a/coin/provisioning/qtci-macos-15-x86_64/25-homebrew.sh b/coin/provisioning/qtci-macos-15-x86_64/25-homebrew.sh index 7ff457b710f..0c4ee4fc6a5 100755 --- a/coin/provisioning/qtci-macos-15-x86_64/25-homebrew.sh +++ b/coin/provisioning/qtci-macos-15-x86_64/25-homebrew.sh @@ -1,26 +1,12 @@ #!/usr/bin/env bash -# Copyright (C) 2023 The Qt Company Ltd. -# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only +#Copyright (C) 2025 The Qt Company Ltd +#SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only -# Will install homebrew package manager for macOS. -# WARNING: Requires commandlinetools +set -ex +INSTALLTYPE="PKG" -set -e - -. "$(dirname "$0")"/../common/unix/DownloadURL.sh - -DownloadURL \ - http://ci-files01-hki.ci.qt.io/input/mac/homebrew/d8f6c666d20a3d42e007ceec161a06651ad92ba331a24a3de62912edb129a522/install.sh \ - http://ci-files01-hki.ci.qt.io/input/mac/homebrew/d8f6c666d20a3d42e007ceec161a06651ad92ba331a24a3de62912edb129a522/install.sh \ - d8f6c666d20a3d42e007ceec161a06651ad92ba331a24a3de62912edb129a522 \ - /tmp/homebrew_install.sh - -DownloadURL "http://ci-files01-hki.ci.qt.io/input/semisecure/sign/pw" "http://ci-files01-hki.ci.qt.io/input/semisecure/sign/pw" "aae58d00d0a1b179a09f21cfc67f9d16fb95ff36" "/Users/qt/pw" -{ pw=$(cat "/Users/qt/pw"); } 2> /dev/null -sudo chmod 755 /tmp/homebrew_install.sh -{ (echo "$pw" | /tmp/homebrew_install.sh); } 2> /dev/null -rm -f "/Users/qt/pw" - -# No need to manually do `brew update`, the homebrew installer script does it. -### brew update +BASEDIR=$(dirname "$0") +# Usage "$BASEDIR/../common/macos/homebrew.sh" "$INSTALLTYPE" "$HOMEBREW_VERSION" "$HOMEBREW_HASH" +# Specify HOMEBREW_VERSION and HOMEBREW_HASH only if defaults set in homebrew.sh are not suitable for this platform +"$BASEDIR/../common/macos/homebrew.sh" "$INSTALLTYPE" diff --git a/coin/provisioning/qtci-macos-15-x86_64/90-install-ffmpeg.sh b/coin/provisioning/qtci-macos-15-x86_64/90-install-ffmpeg.sh index dfdc1022c27..c36eda4526b 100755 --- a/coin/provisioning/qtci-macos-15-x86_64/90-install-ffmpeg.sh +++ b/coin/provisioning/qtci-macos-15-x86_64/90-install-ffmpeg.sh @@ -4,6 +4,6 @@ set -ex -source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg.sh" "macos-universal" +source "${BASH_SOURCE%/*}/../common/macos/install-ffmpeg-macos.sh" "macos-universal" source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg-android.sh" "android-arm64" source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg-ios.sh" diff --git a/coin/provisioning/qtci-windows-10-x86/01-disable-windows-delivery-optimization.ps1 b/coin/provisioning/qtci-windows-10-x86/01-disable-windows-delivery-optimization.ps1 new file mode 100644 index 00000000000..908df46fde4 --- /dev/null +++ b/coin/provisioning/qtci-windows-10-x86/01-disable-windows-delivery-optimization.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\disable-windows-delivery-optimization.ps1" diff --git a/coin/provisioning/qtci-windows-10-x86_64/00-certificate-updates.ps1 b/coin/provisioning/qtci-windows-10-x86_64/00-certificate-updates.ps1 new file mode 100644 index 00000000000..3691baf20b7 --- /dev/null +++ b/coin/provisioning/qtci-windows-10-x86_64/00-certificate-updates.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\certificate-updates.ps1" diff --git a/coin/provisioning/qtci-windows-10-x86_64/01-disable-windows-delivery-optimization.ps1 b/coin/provisioning/qtci-windows-10-x86_64/01-disable-windows-delivery-optimization.ps1 new file mode 100644 index 00000000000..908df46fde4 --- /dev/null +++ b/coin/provisioning/qtci-windows-10-x86_64/01-disable-windows-delivery-optimization.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\disable-windows-delivery-optimization.ps1" diff --git a/coin/provisioning/qtci-windows-10_21H2-x86_64/00-certificate-updates.ps1 b/coin/provisioning/qtci-windows-10_21H2-x86_64/00-certificate-updates.ps1 new file mode 100644 index 00000000000..3691baf20b7 --- /dev/null +++ b/coin/provisioning/qtci-windows-10_21H2-x86_64/00-certificate-updates.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\certificate-updates.ps1" diff --git a/coin/provisioning/qtci-windows-10_21H2-x86_64/01-disable-windows-delivery-optimization.ps1 b/coin/provisioning/qtci-windows-10_21H2-x86_64/01-disable-windows-delivery-optimization.ps1 new file mode 100644 index 00000000000..908df46fde4 --- /dev/null +++ b/coin/provisioning/qtci-windows-10_21H2-x86_64/01-disable-windows-delivery-optimization.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\disable-windows-delivery-optimization.ps1" diff --git a/coin/provisioning/qtci-windows-10_22H2-x86_64/00-certificate-updates.ps1 b/coin/provisioning/qtci-windows-10_22H2-x86_64/00-certificate-updates.ps1 new file mode 100644 index 00000000000..3691baf20b7 --- /dev/null +++ b/coin/provisioning/qtci-windows-10_22H2-x86_64/00-certificate-updates.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\certificate-updates.ps1" diff --git a/coin/provisioning/qtci-windows-10_22H2-x86_64/01-disable-windows-delivery-optimization.ps1 b/coin/provisioning/qtci-windows-10_22H2-x86_64/01-disable-windows-delivery-optimization.ps1 new file mode 100644 index 00000000000..908df46fde4 --- /dev/null +++ b/coin/provisioning/qtci-windows-10_22H2-x86_64/01-disable-windows-delivery-optimization.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\disable-windows-delivery-optimization.ps1" diff --git a/coin/provisioning/qtci-windows-10_22H2-x86_64/08-libclang.ps1 b/coin/provisioning/qtci-windows-10_22H2-x86_64/08-libclang.ps1 index 88247275d9b..e6c78345381 100644 --- a/coin/provisioning/qtci-windows-10_22H2-x86_64/08-libclang.ps1 +++ b/coin/provisioning/qtci-windows-10_22H2-x86_64/08-libclang.ps1 @@ -1,4 +1,4 @@ # Do not set the default LLVM_INSTALL_DIR for mingw, leave it with msvc for compat . "$PSScriptRoot\..\common\windows\libclang.ps1" 64 mingw $False . "$PSScriptRoot\..\common\windows\libclang.ps1" 64 llvm-mingw $False -. "$PSScriptRoot\..\common\windows\libclang.ps1" 64 vs2019 +. "$PSScriptRoot\..\common\windows\libclang.ps1" 64 vs2022 diff --git a/coin/provisioning/qtci-windows-11_21H2-x86_64/00-certificate-updates.ps1 b/coin/provisioning/qtci-windows-11_21H2-x86_64/00-certificate-updates.ps1 new file mode 100644 index 00000000000..3691baf20b7 --- /dev/null +++ b/coin/provisioning/qtci-windows-11_21H2-x86_64/00-certificate-updates.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\certificate-updates.ps1" diff --git a/coin/provisioning/qtci-windows-11_21H2-x86_64/01-disable-windows-delivery-optimization.ps1 b/coin/provisioning/qtci-windows-11_21H2-x86_64/01-disable-windows-delivery-optimization.ps1 new file mode 100644 index 00000000000..908df46fde4 --- /dev/null +++ b/coin/provisioning/qtci-windows-11_21H2-x86_64/01-disable-windows-delivery-optimization.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\disable-windows-delivery-optimization.ps1" diff --git a/coin/provisioning/qtci-windows-11_21H2-x86_64/08-libclang.ps1 b/coin/provisioning/qtci-windows-11_21H2-x86_64/08-libclang.ps1 index 7681f01a44e..daa06f93c36 100644 --- a/coin/provisioning/qtci-windows-11_21H2-x86_64/08-libclang.ps1 +++ b/coin/provisioning/qtci-windows-11_21H2-x86_64/08-libclang.ps1 @@ -1,3 +1,3 @@ # Do not set the default LLVM_INSTALL_DIR for mingw, leave it with msvc for compat . "$PSScriptRoot\..\common\windows\libclang.ps1" 64 mingw $False -. "$PSScriptRoot\..\common\windows\libclang.ps1" 64 vs2019 +. "$PSScriptRoot\..\common\windows\libclang.ps1" 64 vs2022 diff --git a/coin/provisioning/qtci-windows-11_22H2-aarch64/00-certificate-updates.ps1 b/coin/provisioning/qtci-windows-11_22H2-aarch64/00-certificate-updates.ps1 new file mode 100644 index 00000000000..3691baf20b7 --- /dev/null +++ b/coin/provisioning/qtci-windows-11_22H2-aarch64/00-certificate-updates.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\certificate-updates.ps1" diff --git a/coin/provisioning/qtci-windows-11_22H2-aarch64/01-disable-windows-delivery-optimization.ps1 b/coin/provisioning/qtci-windows-11_22H2-aarch64/01-disable-windows-delivery-optimization.ps1 new file mode 100644 index 00000000000..908df46fde4 --- /dev/null +++ b/coin/provisioning/qtci-windows-11_22H2-aarch64/01-disable-windows-delivery-optimization.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\disable-windows-delivery-optimization.ps1" diff --git a/coin/provisioning/qtci-windows-11_22H2-x86_64/00-certificate-updates.ps1 b/coin/provisioning/qtci-windows-11_22H2-x86_64/00-certificate-updates.ps1 new file mode 100644 index 00000000000..3691baf20b7 --- /dev/null +++ b/coin/provisioning/qtci-windows-11_22H2-x86_64/00-certificate-updates.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\certificate-updates.ps1" diff --git a/coin/provisioning/qtci-windows-11_22H2-x86_64/01-disable-windows-delivery-optimization.ps1 b/coin/provisioning/qtci-windows-11_22H2-x86_64/01-disable-windows-delivery-optimization.ps1 new file mode 100644 index 00000000000..908df46fde4 --- /dev/null +++ b/coin/provisioning/qtci-windows-11_22H2-x86_64/01-disable-windows-delivery-optimization.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\disable-windows-delivery-optimization.ps1" diff --git a/coin/provisioning/qtci-windows-11_22H2-x86_64/08-libclang.ps1 b/coin/provisioning/qtci-windows-11_22H2-x86_64/08-libclang.ps1 index 88247275d9b..e6c78345381 100644 --- a/coin/provisioning/qtci-windows-11_22H2-x86_64/08-libclang.ps1 +++ b/coin/provisioning/qtci-windows-11_22H2-x86_64/08-libclang.ps1 @@ -1,4 +1,4 @@ # Do not set the default LLVM_INSTALL_DIR for mingw, leave it with msvc for compat . "$PSScriptRoot\..\common\windows\libclang.ps1" 64 mingw $False . "$PSScriptRoot\..\common\windows\libclang.ps1" 64 llvm-mingw $False -. "$PSScriptRoot\..\common\windows\libclang.ps1" 64 vs2019 +. "$PSScriptRoot\..\common\windows\libclang.ps1" 64 vs2022 diff --git a/coin/provisioning/qtci-windows-11_23H2-x86_64/00-certificate-updates.ps1 b/coin/provisioning/qtci-windows-11_23H2-x86_64/00-certificate-updates.ps1 new file mode 100644 index 00000000000..3691baf20b7 --- /dev/null +++ b/coin/provisioning/qtci-windows-11_23H2-x86_64/00-certificate-updates.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\certificate-updates.ps1" diff --git a/coin/provisioning/qtci-windows-11_23H2-x86_64/01-disable-windows-delivery-optimization.ps1 b/coin/provisioning/qtci-windows-11_23H2-x86_64/01-disable-windows-delivery-optimization.ps1 new file mode 100644 index 00000000000..908df46fde4 --- /dev/null +++ b/coin/provisioning/qtci-windows-11_23H2-x86_64/01-disable-windows-delivery-optimization.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\disable-windows-delivery-optimization.ps1" diff --git a/coin/provisioning/qtci-windows-11_23H2-x86_64/08-libclang.ps1 b/coin/provisioning/qtci-windows-11_23H2-x86_64/08-libclang.ps1 index 88247275d9b..e6c78345381 100644 --- a/coin/provisioning/qtci-windows-11_23H2-x86_64/08-libclang.ps1 +++ b/coin/provisioning/qtci-windows-11_23H2-x86_64/08-libclang.ps1 @@ -1,4 +1,4 @@ # Do not set the default LLVM_INSTALL_DIR for mingw, leave it with msvc for compat . "$PSScriptRoot\..\common\windows\libclang.ps1" 64 mingw $False . "$PSScriptRoot\..\common\windows\libclang.ps1" 64 llvm-mingw $False -. "$PSScriptRoot\..\common\windows\libclang.ps1" 64 vs2019 +. "$PSScriptRoot\..\common\windows\libclang.ps1" 64 vs2022 diff --git a/coin/provisioning/qtci-windows-11_24H2-x86_64/01-disable-windows-delivery-optimization.ps1 b/coin/provisioning/qtci-windows-11_24H2-x86_64/01-disable-windows-delivery-optimization.ps1 new file mode 100644 index 00000000000..908df46fde4 --- /dev/null +++ b/coin/provisioning/qtci-windows-11_24H2-x86_64/01-disable-windows-delivery-optimization.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\disable-windows-delivery-optimization.ps1" diff --git a/qt3d b/qt3d index 219dd44a26c..09a38a10379 160000 --- a/qt3d +++ b/qt3d @@ -1 +1 @@ -Subproject commit 219dd44a26cf4323c1a3ba1c7a48ac5f1596b5ba +Subproject commit 09a38a10379ff3e5962fc6daaa655281fa8c7014 diff --git a/qt5compat b/qt5compat index 9e0fc26d8e0..770c24999fa 160000 --- a/qt5compat +++ b/qt5compat @@ -1 +1 @@ -Subproject commit 9e0fc26d8e087379ef3f860460c066274368c012 +Subproject commit 770c24999fa0f9e039312d6f845400e43e92a441 diff --git a/qtactiveqt b/qtactiveqt index bea80dcdbc1..f7b02afce69 160000 --- a/qtactiveqt +++ b/qtactiveqt @@ -1 +1 @@ -Subproject commit bea80dcdbc1ca1580f7214debf0790415fba9bc2 +Subproject commit f7b02afce69f8d0cdb998d5cb509cd335b5c8008 diff --git a/qtbase b/qtbase index 9cb0d48aae8..1cd79cf4293 160000 --- a/qtbase +++ b/qtbase @@ -1 +1 @@ -Subproject commit 9cb0d48aae81c5436bda783b64721d0b77bc3f6c +Subproject commit 1cd79cf4293176f24f80100e888feba3deccd0ff diff --git a/qtcharts b/qtcharts index f4aa9dffcfe..771699cd28a 160000 --- a/qtcharts +++ b/qtcharts @@ -1 +1 @@ -Subproject commit f4aa9dffcfed508f1e7fb7a0f95cb0873ecd47c7 +Subproject commit 771699cd28aee17a6e11759555ed63ae1a069dd6 diff --git a/qtcoap b/qtcoap index 24c6d918810..5c39865fb87 160000 --- a/qtcoap +++ b/qtcoap @@ -1 +1 @@ -Subproject commit 24c6d9188107d0834b44b91517f58656a495d495 +Subproject commit 5c39865fb87340f138b9c91b033827c2e7e141ea diff --git a/qtconnectivity b/qtconnectivity index d401180fc4b..d0fe9b2cc64 160000 --- a/qtconnectivity +++ b/qtconnectivity @@ -1 +1 @@ -Subproject commit d401180fc4bc59a4dbe279cd4cdf3f4325d6e210 +Subproject commit d0fe9b2cc6488a455fa4ab88f01a922390655f52 diff --git a/qtdatavis3d b/qtdatavis3d index 3e7d0a477a0..98316ac4a79 160000 --- a/qtdatavis3d +++ b/qtdatavis3d @@ -1 +1 @@ -Subproject commit 3e7d0a477a0fe97e8de7669b8d4460c8280c2887 +Subproject commit 98316ac4a79b8e569b497ab023b01ae248a452f2 diff --git a/qtdeclarative b/qtdeclarative index f5673f1e0e1..fd062db0c3a 160000 --- a/qtdeclarative +++ b/qtdeclarative @@ -1 +1 @@ -Subproject commit f5673f1e0e139fab33a456275b015fe4e5ca3986 +Subproject commit fd062db0c3aa77072831b84714d30125f2dc4732 diff --git a/qtdoc b/qtdoc index 7d49bbdf128..9e782af09c6 160000 --- a/qtdoc +++ b/qtdoc @@ -1 +1 @@ -Subproject commit 7d49bbdf12829df94719f5a53de9f20f76b7502b +Subproject commit 9e782af09c6764c75f810cb5e533113c8b3a8616 diff --git a/qtgraphs b/qtgraphs index 59085abc657..20901b68421 160000 --- a/qtgraphs +++ b/qtgraphs @@ -1 +1 @@ -Subproject commit 59085abc6574fdfd222bc9e9b0473093e5344360 +Subproject commit 20901b68421f859444cadd7c18b22088c51fdfeb diff --git a/qtgrpc b/qtgrpc index bfd24967bc2..c735e9dabf4 160000 --- a/qtgrpc +++ b/qtgrpc @@ -1 +1 @@ -Subproject commit bfd24967bc26373f4920e3505cd3d4fd28e70687 +Subproject commit c735e9dabf443121f93d5d2f3ee4b74a654ed238 diff --git a/qthttpserver b/qthttpserver index 45c60e30e0a..b6bfa8701e9 160000 --- a/qthttpserver +++ b/qthttpserver @@ -1 +1 @@ -Subproject commit 45c60e30e0a4a411162365cf01aafc1b0cba201c +Subproject commit b6bfa8701e920712d938b35ca72500b3cd9f90d4 diff --git a/qtimageformats b/qtimageformats index 08d1bb47494..f258639972c 160000 --- a/qtimageformats +++ b/qtimageformats @@ -1 +1 @@ -Subproject commit 08d1bb474949c2d4f886928198bcf4cbf70ce724 +Subproject commit f258639972ca686e7760c093acaee0d99c2d06e1 diff --git a/qtlanguageserver b/qtlanguageserver index 5f998f06ebd..c0a002c0dd5 160000 --- a/qtlanguageserver +++ b/qtlanguageserver @@ -1 +1 @@ -Subproject commit 5f998f06ebd2aeedad839eb33b303fb44a10aaa9 +Subproject commit c0a002c0dd5be1c2e0f58cb74638b8ecbad501f9 diff --git a/qtlocation b/qtlocation index ea636dd72f8..13da97abf12 160000 --- a/qtlocation +++ b/qtlocation @@ -1 +1 @@ -Subproject commit ea636dd72f823c20c988b05230b7fbf5ea4aca4d +Subproject commit 13da97abf12facbcbdfb589c791cb6d9dccd8cea diff --git a/qtlottie b/qtlottie index 0fd4a8f813e..73c5cc0e560 160000 --- a/qtlottie +++ b/qtlottie @@ -1 +1 @@ -Subproject commit 0fd4a8f813e0a0395de2b4374935fe6023d3afce +Subproject commit 73c5cc0e5604bc62a5d84a47e884cf15b7ea04e1 diff --git a/qtmqtt b/qtmqtt index aeac9f7e171..31110f1d109 160000 --- a/qtmqtt +++ b/qtmqtt @@ -1 +1 @@ -Subproject commit aeac9f7e171205bb9c47eb6479cfd3d31768f312 +Subproject commit 31110f1d109d291119800c78316f752eb8eab4f4 diff --git a/qtmultimedia b/qtmultimedia index f68eef36f23..782facfb198 160000 --- a/qtmultimedia +++ b/qtmultimedia @@ -1 +1 @@ -Subproject commit f68eef36f234acfa4e99e1c8ba1d9ed8119a8f44 +Subproject commit 782facfb19840785a1de999e3289d283bea5c26b diff --git a/qtnetworkauth b/qtnetworkauth index 2f263f7028d..5fbcc3c929e 160000 --- a/qtnetworkauth +++ b/qtnetworkauth @@ -1 +1 @@ -Subproject commit 2f263f7028d2933c5e536c16f5622349053e682d +Subproject commit 5fbcc3c929e7a3a4fbc8ff816102afc515224d3e diff --git a/qtopcua b/qtopcua index 7055c65fc10..cf0a5e8366e 160000 --- a/qtopcua +++ b/qtopcua @@ -1 +1 @@ -Subproject commit 7055c65fc10b2fdec80fe957768bdf27f7874ce1 +Subproject commit cf0a5e8366ec6c38d73c2f1fb0e857de7f39cfbc diff --git a/qtpositioning b/qtpositioning index 7db6885dce3..38e19632132 160000 --- a/qtpositioning +++ b/qtpositioning @@ -1 +1 @@ -Subproject commit 7db6885dce399ad7ef47493c612127b71d3b229d +Subproject commit 38e19632132deee729899692a6da36ee7a616907 diff --git a/qtquick3d b/qtquick3d index 575612ae6be..8ebb75383b2 160000 --- a/qtquick3d +++ b/qtquick3d @@ -1 +1 @@ -Subproject commit 575612ae6be6811226e794e68009db046d7ad780 +Subproject commit 8ebb75383b24d1ec94193522ae9efb926c726943 diff --git a/qtquick3dphysics b/qtquick3dphysics index 85f5ad2048d..d70c07d0d79 160000 --- a/qtquick3dphysics +++ b/qtquick3dphysics @@ -1 +1 @@ -Subproject commit 85f5ad2048d5fa11a0d9086cdb6a1dce549b44de +Subproject commit d70c07d0d7967cefc52f6389c916073b4a1bda9f diff --git a/qtquickeffectmaker b/qtquickeffectmaker index e1847e589af..5c5efc45c5c 160000 --- a/qtquickeffectmaker +++ b/qtquickeffectmaker @@ -1 +1 @@ -Subproject commit e1847e589affcc420c69cbf028f361276aa292a0 +Subproject commit 5c5efc45c5ce5a113b242f219e2ee1800ac8014c diff --git a/qtquicktimeline b/qtquicktimeline index 9e0a9979f2f..de7db89c382 160000 --- a/qtquicktimeline +++ b/qtquicktimeline @@ -1 +1 @@ -Subproject commit 9e0a9979f2fe9eeead3c16311d0e3b8d6d5bbb8d +Subproject commit de7db89c382a231f728e76a37e2892f451e7c07d diff --git a/qtremoteobjects b/qtremoteobjects index 392a215a2ad..8dee3c096ea 160000 --- a/qtremoteobjects +++ b/qtremoteobjects @@ -1 +1 @@ -Subproject commit 392a215a2ad716b9cc60311da2d8b09af149753e +Subproject commit 8dee3c096ea3b5980c13e7a8cd486395e6bd2f0d diff --git a/qtrepotools b/qtrepotools index c29a3c2801d..c4da0dbfd0c 160000 --- a/qtrepotools +++ b/qtrepotools @@ -1 +1 @@ -Subproject commit c29a3c2801d99b128ab68aab6a829d96c231d281 +Subproject commit c4da0dbfd0c0eb5ce15b2f0cca52502f8fba5007 diff --git a/qtscxml b/qtscxml index 253845885a6..d5e8100c78b 160000 --- a/qtscxml +++ b/qtscxml @@ -1 +1 @@ -Subproject commit 253845885a6e293f0c4dbbd3d53131afd7b88f9c +Subproject commit d5e8100c78b586f613b61fbe0c9b7febbd6645c7 diff --git a/qtsensors b/qtsensors index 9a2f543f523..1405df066f8 160000 --- a/qtsensors +++ b/qtsensors @@ -1 +1 @@ -Subproject commit 9a2f543f523bfe3519c4b7d2c56b03393d21fe88 +Subproject commit 1405df066f8358a0a97c161c7858259163b3fda0 diff --git a/qtserialbus b/qtserialbus index 19335acb872..9796502b62d 160000 --- a/qtserialbus +++ b/qtserialbus @@ -1 +1 @@ -Subproject commit 19335acb87270d0768609b2e6bf708c7deac14ec +Subproject commit 9796502b62d828f1a50bb66c4dd7bad3cf33e79b diff --git a/qtserialport b/qtserialport index 125813ab104..22d53f98c25 160000 --- a/qtserialport +++ b/qtserialport @@ -1 +1 @@ -Subproject commit 125813ab104a417ea168eeda8842ca1a51a4453e +Subproject commit 22d53f98c2511282708039dae9cebc40ff5358a7 diff --git a/qtshadertools b/qtshadertools index ce3904c1b29..c5fde1d72bd 160000 --- a/qtshadertools +++ b/qtshadertools @@ -1 +1 @@ -Subproject commit ce3904c1b29b8960b623dee229f7fabdc7d14bd0 +Subproject commit c5fde1d72bdae34b6d14167bc7fed25059df0d38 diff --git a/qtspeech b/qtspeech index da727c8dcc7..36f7c39e7f5 160000 --- a/qtspeech +++ b/qtspeech @@ -1 +1 @@ -Subproject commit da727c8dcc725c0f213e17cf68b2e7616d87ae66 +Subproject commit 36f7c39e7f503d558400f0fa75f0142fdecf8c75 diff --git a/qtsvg b/qtsvg index f4de0d25d1f..b95666442ed 160000 --- a/qtsvg +++ b/qtsvg @@ -1 +1 @@ -Subproject commit f4de0d25d1faeb131b5fd6d37bd2ab2cbd27ab47 +Subproject commit b95666442eda3ca367da9436e442176686f1a1c9 diff --git a/qttools b/qttools index 3557f0897aa..ddd2a63f949 160000 --- a/qttools +++ b/qttools @@ -1 +1 @@ -Subproject commit 3557f0897aa2624b633a0bb83f1970245de37e1f +Subproject commit ddd2a63f94956e6c2022c3af55f23b820f4a93ab diff --git a/qttranslations b/qttranslations index 437e02421dd..c49dfd1a6e5 160000 --- a/qttranslations +++ b/qttranslations @@ -1 +1 @@ -Subproject commit 437e02421ddfad8ad0480f4ccf20b1abf647acbd +Subproject commit c49dfd1a6e575974ec2c54751d9c9653e399bedb diff --git a/qtvirtualkeyboard b/qtvirtualkeyboard index 8a59f19d1b0..2670d2053df 160000 --- a/qtvirtualkeyboard +++ b/qtvirtualkeyboard @@ -1 +1 @@ -Subproject commit 8a59f19d1b0b56fa3430927e4800d278e8d53746 +Subproject commit 2670d2053df43373c4815165eddebaf5d478a8d8 diff --git a/qtwayland b/qtwayland index a8018eced50..019931a946d 160000 --- a/qtwayland +++ b/qtwayland @@ -1 +1 @@ -Subproject commit a8018eced508e2afffba4dfb20d04a23a184d7f9 +Subproject commit 019931a946d23d9089cd8cf0c7389aef95345058 diff --git a/qtwebchannel b/qtwebchannel index a13deb0fbd2..5fef7a82f56 160000 --- a/qtwebchannel +++ b/qtwebchannel @@ -1 +1 @@ -Subproject commit a13deb0fbd2f0af0c23311b83c3783ab27140a56 +Subproject commit 5fef7a82f56fb0bafe6e08cbe7c8428a1e411952 diff --git a/qtwebengine b/qtwebengine index bee04d31444..bc3d7530820 160000 --- a/qtwebengine +++ b/qtwebengine @@ -1 +1 @@ -Subproject commit bee04d31444c6dc2976beee9ad7d974f83633e41 +Subproject commit bc3d7530820a20a4e2cb21002d96aff4e9da4cf0 diff --git a/qtwebsockets b/qtwebsockets index 508323d5093..57aa7190d08 160000 --- a/qtwebsockets +++ b/qtwebsockets @@ -1 +1 @@ -Subproject commit 508323d509354719754e12008b70199fe018d62b +Subproject commit 57aa7190d08d646e16ace43610f957471d3d7fd7 diff --git a/qtwebview b/qtwebview index ac1a751e6f6..f270767a84a 160000 --- a/qtwebview +++ b/qtwebview @@ -1 +1 @@ -Subproject commit ac1a751e6f60748dc2a6bdf54569610fdc432efb +Subproject commit f270767a84a465474deb5b4a2d1bdeafa0687f62 diff --git a/tests/manual/RunCMake/Common.cmake b/tests/manual/RunCMake/Common.cmake index c4e782d765d..63418cfda45 100644 --- a/tests/manual/RunCMake/Common.cmake +++ b/tests/manual/RunCMake/Common.cmake @@ -3,15 +3,23 @@ set(top_repo_dir_path "${CMAKE_CURRENT_LIST_DIR}/../../..") get_filename_component(top_repo_dir_path "${top_repo_dir_path}" ABSOLUTE) +if(NOT IS_DIRECTORY ${top_repo_dir_path}/qtbase/cmake/3rdparty/cmake) + message(FATAL_ERROR + "qtbase submodule is not initialized or it is missing the QtRunCMakeTestHelpers.\n" + " Cannot run these tests without them." + ) +endif() macro(qt_ir_setup_test_include_paths) set(ir_script_path "${top_repo_dir_path}/cmake") list(APPEND CMAKE_MODULE_PATH "${ir_script_path}" - "${ir_script_path}/3rdparty/cmake" + "${top_repo_dir_path}/qtbase/cmake/3rdparty/cmake" ) include(QtIRHelpers) qt_ir_include_all_helpers() + # RunCMakeTestHelpers from qtbase/cmake/3rdparty/cmake + include(QtRunCMakeTestHelpers) endmacro() qt_ir_setup_test_include_paths()