diff --git a/.gitmodules b/.gitmodules index f8c07ce3887..621a5cd7592 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,40 +1,40 @@ [submodule "qtbase"] path = qtbase url = ../qtbase.git - branch = dev + branch = 6.9 status = essential [submodule "qtsvg"] depends = qtbase path = qtsvg url = ../qtsvg.git - branch = dev + branch = 6.9 status = addon [submodule "qtdeclarative"] depends = qtbase recommends = qtimageformats qtshadertools qtsvg qtlanguageserver path = qtdeclarative url = ../qtdeclarative.git - branch = dev + branch = 6.9 status = essential [submodule "qtactiveqt"] depends = qtbase path = qtactiveqt url = ../qtactiveqt.git - branch = dev + branch = 6.9 status = addon [submodule "qtmultimedia"] depends = qtbase qtshadertools recommends = qtdeclarative qtquick3d path = qtmultimedia url = ../qtmultimedia.git - branch = dev + branch = 6.9 status = addon [submodule "qttools"] depends = qtbase recommends = qtdeclarative qtactiveqt path = qttools url = ../qttools.git - branch = dev + branch = 6.9 status = essential [submodule "qtxmlpatterns"] depends = qtbase @@ -47,7 +47,7 @@ depends = qttools path = qttranslations url = ../qttranslations.git - branch = dev + branch = 6.9 status = essential priority = 30 [submodule "qtdoc"] @@ -55,7 +55,7 @@ recommends = qtmultimedia qtshadertools qtwebengine path = qtdoc url = ../qtdoc.git - branch = dev + branch = 6.9 status = essential priority = 40 [submodule "qtrepotools"] @@ -68,7 +68,7 @@ depends = qtbase path = qtqa url = ../qtqa.git - branch = dev + branch = 6.9 status = essential priority = 50 [submodule "qtlocation"] @@ -76,21 +76,21 @@ recommends = qtdeclarative path = qtlocation url = ../qtlocation.git - branch = dev + branch = 6.9 status = preview [submodule "qtpositioning"] depends = qtbase recommends = qtdeclarative qtserialport path = qtpositioning url = ../qtpositioning.git - branch = dev + branch = 6.9 status = addon [submodule "qtsensors"] depends = qtbase recommends = qtdeclarative path = qtsensors url = ../qtsensors.git - branch = dev + branch = 6.9 status = addon [submodule "qtsystems"] depends = qtbase @@ -117,61 +117,61 @@ recommends = qtdeclarative path = qtconnectivity url = ../qtconnectivity.git - branch = dev + branch = 6.9 status = addon [submodule "qtwayland"] depends = qtbase recommends = qtdeclarative path = qtwayland url = ../qtwayland.git - branch = dev + branch = 6.9 status = addon [submodule "qt3d"] depends = qtbase recommends = qtdeclarative qtshadertools qtmultimedia path = qt3d url = ../qt3d.git - branch = dev + branch = 6.9 status = deprecated [submodule "qtimageformats"] depends = qtbase path = qtimageformats url = ../qtimageformats.git - branch = dev + branch = 6.9 status = addon [submodule "qtserialbus"] depends = qtbase recommends = qtserialport path = qtserialbus url = ../qtserialbus.git - branch = dev + branch = 6.9 status = addon [submodule "qtserialport"] depends = qtbase path = qtserialport url = ../qtserialport.git - branch = dev + branch = 6.9 status = addon [submodule "qtwebsockets"] depends = qtbase recommends = qtdeclarative path = qtwebsockets url = ../qtwebsockets.git - branch = dev + branch = 6.9 status = addon [submodule "qtwebchannel"] depends = qtbase recommends = qtdeclarative qtwebsockets path = qtwebchannel url = ../qtwebchannel.git - branch = dev + branch = 6.9 status = addon [submodule "qtwebengine"] depends = qtdeclarative recommends = qtwebchannel qttools qtpositioning path = qtwebengine url = ../qtwebengine.git - branch = dev + branch = 6.9 status = addon priority = 10 [submodule "qtcanvas3d"] @@ -185,28 +185,28 @@ recommends = qtwebengine path = qtwebview url = ../qtwebview.git - branch = dev + branch = 6.9 status = addon [submodule "qtcharts"] depends = qtbase recommends = qtdeclarative qtmultimedia path = qtcharts url = ../qtcharts.git - branch = dev + branch = 6.9 status = addon [submodule "qtdatavis3d"] depends = qtbase recommends = qtdeclarative qtmultimedia path = qtdatavis3d url = ../qtdatavis3d.git - branch = dev + branch = 6.9 status = addon [submodule "qtvirtualkeyboard"] depends = qtbase qtdeclarative qtsvg recommends = qtmultimedia path = qtvirtualkeyboard url = ../qtvirtualkeyboard.git - branch = dev + branch = 6.9 status = addon [submodule "qtgamepad"] depends = qtbase @@ -219,27 +219,27 @@ depends = qtbase qtdeclarative path = qtscxml url = ../qtscxml.git - branch = dev + branch = 6.9 status = addon [submodule "qtspeech"] depends = qtbase qtmultimedia recommends = qtdeclarative path = qtspeech url = ../qtspeech.git - branch = dev + branch = 6.9 status = addon [submodule "qtnetworkauth"] depends = qtbase path = qtnetworkauth url = ../qtnetworkauth.git - branch = dev + branch = 6.9 status = addon [submodule "qtremoteobjects"] depends = qtbase recommends = qtdeclarative path = qtremoteobjects url = ../qtremoteobjects.git - branch = dev + branch = 6.9 status = addon [submodule "qtwebglplugin"] depends = qtbase qtwebsockets @@ -252,88 +252,88 @@ depends = qtbase qtdeclarative path = qtlottie url = ../qtlottie.git - branch = dev + branch = 6.9 status = addon [submodule "qtquicktimeline"] depends = qtbase qtdeclarative path = qtquicktimeline url = ../qtquicktimeline - branch = dev + branch = 6.9 status = addon [submodule "qtquick3d"] depends = qtbase qtdeclarative qtshadertools recommends = qtquicktimeline path = qtquick3d url = ../qtquick3d.git - branch = dev + branch = 6.9 status = addon [submodule "qtshadertools"] depends = qtbase path = qtshadertools url = ../qtshadertools.git - branch = dev + branch = 6.9 status = addon [submodule "qt5compat"] depends = qtbase qtdeclarative path = qt5compat url = ../qt5compat.git - branch = dev + branch = 6.9 status = deprecated [submodule "qtcoap"] depends = qtbase path = qtcoap url = ../qtcoap.git - branch = dev + branch = 6.9 status = addon [submodule "qtmqtt"] depends = qtbase qtdeclarative recommends = qtwebsockets path = qtmqtt url = ../qtmqtt.git - branch = dev + branch = 6.9 status = addon [submodule "qtopcua"] depends = qtbase qtdeclarative path = qtopcua url = ../qtopcua.git - branch = dev + branch = 6.9 status = addon [submodule "qtlanguageserver"] depends = qtbase path = qtlanguageserver url = ../qtlanguageserver.git - branch = dev + branch = 6.9 status = preview [submodule "qthttpserver"] depends = qtbase recommends = qtwebsockets path = qthttpserver url = ../qthttpserver.git - branch = dev + branch = 6.9 status = addon [submodule "qtquick3dphysics"] depends = qtbase qtdeclarative qtquick3d qtshadertools path = qtquick3dphysics url = ../qtquick3dphysics.git - branch = dev + branch = 6.9 status = addon [submodule "qtgrpc"] depends = qtbase recommends = qtdeclarative path = qtgrpc url = ../qtgrpc.git - branch = dev + branch = 6.9 status = addon [submodule "qtquickeffectmaker"] depends = qtbase qtdeclarative qtshadertools recommends = qtquick3d path = qtquickeffectmaker url = ../qtquickeffectmaker.git - branch = dev + branch = 6.9 status = addon [submodule "qtgraphs"] depends = qtbase qtdeclarative qtquick3d path = qtgraphs url = ../qtgraphs.git - branch = dev + branch = 6.9 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("${repo_relative_url_with_namespace}" normalized_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("${submodule_url}" submodule_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("${mirror}" mirror) 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("${base_git_path}" base_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..fe1cd1c9afe 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', @@ -87,7 +87,7 @@ Configurations: Id: 'ubuntu-24.04-x64' Template: 'qtci-linux-Ubuntu-24.04-x86_64-50' Compiler: 'GCC' - Features: ['Sccache', 'UseConfigure', 'DoNotRunTests'] + Features: ['Sccache', 'UseConfigure', 'DoNotRunTests', 'GenerateSBOM', 'VerifySBOM', 'DocsGenerationV2'] Configure arguments: '-nomake examples -release -force-debug-info -separate-debug-info -headersclean -qt-libjpeg -qt-libpng -qt-pcre -qt-harfbuzz -qt-doubleconversion -no-libudev -bundled-xcb-xinput' Environment variables: [ 'CMAKE_ARGS=-DOpenGL_GL_PREFERENCE=LEGACY', @@ -99,49 +99,28 @@ 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', 'InsignificantTests'] 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}}', 'CMAKE_ARGS=-DOPENSSL_ROOT_DIR={{.Env.OPENSSL_HOME}}', 'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE' ] -- - Id: 'sles-15_sp5-static' - Template: 'qtci-linux-SLES-15_SP5-x86_64-50' - 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' - Environment variables: [ - 'CMAKE_ARGS=-DOPENSSL_ROOT_DIR={{.Env.OPENSSL_HOME}}', - 'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}}' - ] - Id: 'sles-15_sp6-static' - Template: 'qtci-linux-SLES-15_SP6-x86_64-51' + Template: 'qtci-linux-SLES-15_SP6-x86_64-52' 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 +130,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 +142,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,23 +154,53 @@ 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}}\..', 'NON_QTBASE_CMAKE_ARGS= -DFEATURE_clangcpp=OFF -DFFMPEG_DIR={{.Env.FFMPEG_DIR_MSVC_ARM64}} -DQT_DEPLOY_FFMPEG=TRUE', 'Protobuf_ROOT={{.Env.Protobuf_ROOT_msvc}}', ] +- + Id: 'windows-11_23h2-arm64-msvc2022' + Template: 'qtci-windows-11_23H2-aarch64-53' + Compiler: 'MSVC2022' + Features: ['Packaging', 'DebugAndRelease', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM', 'InsignificantTests', 'DoNotAbortTestingOnFirstFailure'] + Configure arguments: '-debug-and-release -force-debug-info -headersclean -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_arm64}}\..', + 'NON_QTBASE_CMAKE_ARGS= -DFEATURE_clangcpp=OFF -DFFMPEG_DIR={{.Env.FFMPEG_DIR_MSVC_ARM64}} -DQT_DEPLOY_FFMPEG=TRUE', + 'Protobuf_ROOT={{.Env.Protobuf_ROOT_msvc}}', + ] - 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'] - Platform dependency: 'windows-11_23H2-msvc2022' + Features: ['Sccache', 'DoNotRunTests', 'TargetBuildOnly', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM'] + Platform dependency: 'windows-10_22h2-mingw13' Environment variables: [ + 'Path={{.Env.MINGW_PATH}}\bin;{{.Env.Path}}', + 'TARGET_CONFIGURE_ARGS=-debug-and-release -force-debug-info -platform win32-arm64-msvc -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-psql -no-sql-mimer -no-feature-run-opengl-tests', + 'TARGET_CMAKE_ARGS=-DFEATURE_msvc_obj_debug_info=ON -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_ROOT_DIR_x64_arm64}} -DQT_FORCE_BUILD_TOOLS=ON', + 'NON_QTBASE_TARGET_CMAKE_ARGS=-DFEATURE_native_grpc=OFF -DFFMPEG_DIR={{.Env.FFMPEG_DIR_MSVC_ARM64}} -DQT_DEPLOY_FFMPEG=TRUE', + 'OPENSSL_CONF_x64={{.Env.OPENSSL_CONF_x64_arm64}}', + 'OPENSSL_INCLUDE_x64={{.Env.OPENSSL_INCLUDE_x64_arm64}}', + 'OPENSSL_LIB_x64={{.Env.OPENSSL_LIB_x64_arm64}}', + 'LLVM_INSTALL_DIR={{.Env.LLVM_INSTALL_DIR_msvc_arm64}}', + 'Protobuf_ROOT={{.Env.Protobuf_ROOT_msvc}}', + ] +- + Id: 'windows-11_23H2-msvc2022-arm64-23H2' + Template: 'qtci-windows-11_23H2-x86_64-54' + Compiler: 'MSVC2022' + Target arch: 'arm64' + Features: ['Sccache', 'Packaging', 'DoNotRunTests', 'TargetBuildOnly', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM'] + Platform dependency: 'windows-10_22h2-mingw13' + Environment variables: [ + 'Path={{.Env.MINGW_PATH}}\bin;{{.Env.Path}}', 'TARGET_CONFIGURE_ARGS=-debug-and-release -force-debug-info -platform win32-arm64-msvc -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-psql -no-sql-mimer', 'TARGET_CMAKE_ARGS=-DFEATURE_msvc_obj_debug_info=ON -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_ROOT_DIR_x64_arm64}}', 'NON_QTBASE_TARGET_CMAKE_ARGS=-DFEATURE_native_grpc=OFF -DFFMPEG_DIR={{.Env.FFMPEG_DIR_MSVC_ARM64}} -DQT_DEPLOY_FFMPEG=TRUE', @@ -200,11 +209,25 @@ Configurations: 'OPENSSL_LIB_x64={{.Env.OPENSSL_LIB_x64_arm64}}', 'Protobuf_ROOT={{.Env.Protobuf_ROOT_msvc}}', ] +- + Id: 'windows-11-x86_64-arm64-tests' + Template: 'qtci-windows-11_22H2-aarch64-55' + Compiler: 'MSVC2022' + Features: ['TestOnly'] + Configure arguments: '-no-opengl -cross-compiled' + Platform dependency: 'windows-11_23H2-msvc2022-arm64' +- + Id: 'windows-11-x86_64-arm64-tests-23H2' + Template: 'qtci-windows-11_23H2-aarch64-53' + Compiler: 'MSVC2022' + Features: ['TestOnly', 'InsignificantTests', 'DoNotAbortTestingOnFirstFailure'] + Configure arguments: '-cross-compiled' + Platform dependency: 'windows-11_23H2-msvc2022-arm64-23H2' - 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 +239,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 +249,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 +270,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 +283,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 +296,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 +333,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=bookworm-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 +355,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..a8680a48b4a 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' @@ -24,6 +24,19 @@ Configurations: 'NON_QTBASE_CMAKE_ARGS=-DCMAKE_BUILD_TYPE=Release -DFEATURE_native_grpc=OFF -DFEATURE_clangcpp=OFF -DFEATURE_qdoc=OFF', 'Protobuf_ROOT={{.Env.Protobuf_ROOT_msvc}}', ] +- + Id: 'windows-11_23h2-arm64-msvc2022-minimal-static-test' + Template: 'qtci-windows-11_23H2-aarch64-53' + 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' + Environment variables: [ + 'CMAKE_ARGS=-DFEATURE_msvc_obj_debug_info=ON -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_INCLUDE_arm64}}\..', + 'NON_QTBASE_CMAKE_ARGS=-DCMAKE_BUILD_TYPE=Release -DFEATURE_native_grpc=OFF -DFEATURE_clangcpp=OFF -DFEATURE_qdoc=OFF', + 'VCPKG_HOST_TRIPLET=arm64-windows-qt', + 'VCPKG_TARGET_TRIPLET=arm64-windows-qt', + 'Protobuf_ROOT={{.Env.Protobuf_ROOT_msvc}}', + ] - Id: 'rhel-8.10-minimal-static-test' Template: 'qtci-linux-RHEL-8.10-x86_64-51' @@ -53,9 +66,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..e1f9cfe2054 100644 --- a/coin/platform_configs/cmake_platforms_static_tests.yaml +++ b/coin/platform_configs/cmake_platforms_static_tests.yaml @@ -1,28 +1,19 @@ Version: 2 Configurations: -- - Id: 'sles-15_sp5-minimal-static' - Template: 'qtci-linux-SLES-15_SP5-x86_64-50' - Compiler: 'GCC' - Features: ['PinCores', '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}}' - ] - Id: 'sles-15_sp6-minimal-static' - Template: 'qtci-linux-SLES-15_SP6-x86_64-51' + Template: 'qtci-linux-SLES-15_SP6-x86_64-52' Compiler: 'GCC' - Features: ['Sccache', 'MinimalStaticTests', 'UseConfigure', 'InsignificantTests'] + 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}}' ] - 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 +25,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..2a7a39551f8 100644 --- a/coin/platform_configs/cmake_platforms_target_android.yaml +++ b/coin/platform_configs/cmake_platforms_target_android.yaml @@ -10,14 +10,14 @@ Configurations: Platform dependency: 'macos-universal-on-x86_64' Features: ['Packaging', 'Sccache', 'WarningsAreErrors', 'DisableTests', '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 arm64-v8a', - '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=-DQT_ADDITIONAL_HOST_PACKAGES_PREFIX_PATH=/usr/local -DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID_ARM64}} -DQT_DEPLOY_FFMPEG=TRUE -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include', - 'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_DEFAULT}}' + 'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_LATEST}} -android-sdk {{.Env.ANDROID_SDK_ROOT}} -android-abis arm64-v8a', + 'TARGET_CMAKE_ARGS=-DCMAKE_C_COMPILER_FRONTEND_VARIANT=GNU -DCMAKE_CXX_COMPILER_FRONTEND_VARIANT=GNU -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_ANDROID_HOME_LATEST}} -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON', + 'NON_QTBASE_TARGET_CMAKE_ARGS=-DQT_ADDITIONAL_HOST_PACKAGES_PREFIX_PATH=/usr/local -DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID_ARM64_NDK_LATEST}} -DQT_DEPLOY_FFMPEG=TRUE -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include', + 'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_LATEST}}' ] - 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' @@ -26,10 +26,10 @@ Configurations: Features: ['Packaging', 'Sccache', 'WarningsAreErrors', 'DisableTests', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM'] Environment variables: [ 'Path={{.Env.MINGW_PATH}}\bin;{{.Env.Path}}', - 'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_DEFAULT}} -android-sdk {{.Env.ANDROID_SDK_ROOT}} -android-abis armeabi-v7a -no-feature-pkg-config', - '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=-DQT_ADDITIONAL_HOST_PACKAGES_PREFIX_PATH={{.Env.Protobuf_ROOT_mingw}} -DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID_ARMV7}} -DQT_DEPLOY_FFMPEG=TRUE -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR={{.Env.Protobuf_ROOT_msvc}}/include', - 'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_DEFAULT}}' + 'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_LATEST}} -android-sdk {{.Env.ANDROID_SDK_ROOT}} -android-abis armeabi-v7a -no-feature-pkg-config', + 'TARGET_CMAKE_ARGS=-DCMAKE_C_COMPILER_FRONTEND_VARIANT=GNU -DCMAKE_CXX_COMPILER_FRONTEND_VARIANT=GNU -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_ANDROID_HOME_LATEST}} -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON', + 'NON_QTBASE_TARGET_CMAKE_ARGS=-DQT_ADDITIONAL_HOST_PACKAGES_PREFIX_PATH={{.Env.Protobuf_ROOT_mingw}} -DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID_ARMV7_NDK_LATEST}} -DQT_DEPLOY_FFMPEG=TRUE -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR={{.Env.Protobuf_ROOT_msvc}}/include', + 'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_LATEST}}' ] - Id: 'android-9-x86-on-linux' @@ -39,44 +39,43 @@ 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', - 'NON_QTBASE_TARGET_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID_X86}} -DQT_DEPLOY_FFMPEG=TRUE -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include', - 'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_DEFAULT}}', + 'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_LATEST}} -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_LATEST}} -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON', + 'NON_QTBASE_TARGET_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID_X86_NDK_LATEST}} -DQT_DEPLOY_FFMPEG=TRUE -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include', + 'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_LATEST}}', 'ANDROID_EMULATOR=emulator_x86_api_28' ] - - Id: 'android-14-x86_64-on-linux' + Id: 'android-15-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'] + 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', - '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' + 'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_LATEST}} -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_LATEST}} -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON', + 'NON_QTBASE_TARGET_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID_X86_64_NDK_LATEST}} -DQT_DEPLOY_FFMPEG=TRUE -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include', + 'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_LATEST}}', + 'ANDROID_EMULATOR=emulator_x86_64_api_35' ] - - Id: 'android-15-x86_64-on-linux' + Id: 'android-16-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', 'InsignificantTests'] + Features: ['Sccache', 'WarningsAreErrors', 'AndroidTestRun', 'VMSize8', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM', 'InsignificantTests'] 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_35' + 'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_LATEST}} -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_LATEST}} -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON', + 'NON_QTBASE_TARGET_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID_X86_64_NDK_LATEST}} -DQT_DEPLOY_FFMPEG=TRUE -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include', + 'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_LATEST}}', + 'ANDROID_EMULATOR=emulator_x86_64_api_36' ] - 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_developer.yaml b/coin/platform_configs/linux_android_tests_developer.yaml index 3488a44d73b..248b1f7be7c 100644 --- a/coin/platform_configs/linux_android_tests_developer.yaml +++ b/coin/platform_configs/linux_android_tests_developer.yaml @@ -10,8 +10,8 @@ Configurations: Platform dependency: 'rhel-8.10' Features: ['Packaging', 'Sccache', 'AndroidTestRun', 'UseConfigure'] Environment variables: [ - 'TARGET_CONFIGURE_ARGS=-nomake examples -debug -developer-build -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}}', + 'TARGET_CONFIGURE_ARGS=-nomake examples -debug -developer-build -android-ndk {{.Env.ANDROID_NDK_ROOT_LATEST}} -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_LATEST}}', 'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID}}', 'NON_QTBASE_TARGET_CMAKE_ARGS=', 'ANDROID_EMULATOR=emulator_x86_api_28'] 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..e3d2dfbd6c3 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 @@ -111,25 +109,23 @@ Configurations: # Build on recent macOS version with latest Xcode - - Id: 'macos-14-x86_64-developer-build' - Template: 'qtci-macos-14-x86_64-105' + Id: 'macos-x86_64-developer-build' + Template: 'qtci-macos-15-x86_64-103' Compiler: 'Clang' Features: ['Sccache', 'DoNotRunTests', 'WarningsAreErrors', 'UseConfigure', 'StandaloneExamples'] Configure arguments: '-developer-build -release -force-asserts -force-debug-info -no-pch -no-framework -qtnamespace TestNamespace -make examples' 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' - Template: 'qtci-macos-14-arm-106' + Id: 'macos-arm64-developer-build' + Template: 'qtci-macos-15-arm-104' Compiler: 'Clang' Features: ['DoNotRunTests', 'WarningsAreErrors', 'UseConfigure'] 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', ] @@ -139,16 +135,16 @@ Configurations: Template: 'qtci-macos-13-arm-107' Compiler: 'Clang' Features: ['TestOnly'] - Platform dependency: 'macos-14-arm64-developer-build' + Platform dependency: 'macos-arm64-developer-build' - Id: 'macos-14-arm64-developer-build-tests' Template: 'qtci-macos-14-arm-106' Compiler: 'Clang' Features: ['TestOnly'] - Platform dependency: 'macos-14-arm64-developer-build' + Platform dependency: 'macos-arm64-developer-build' - Id: 'macos-15-arm64-developer-build-tests' Template: 'qtci-macos-15-arm-104' Compiler: 'Clang' Features: ['TestOnly', 'InsignificantTests'] - Platform dependency: 'macos-14-arm64-developer-build' + Platform dependency: 'macos-arm64-developer-build' diff --git a/coin/platform_configs/nightly_android_namespace.yaml b/coin/platform_configs/nightly_android_namespace.yaml new file mode 100644 index 00000000000..42322185f6d --- /dev/null +++ b/coin/platform_configs/nightly_android_namespace.yaml @@ -0,0 +1,33 @@ +Version: 2 +Include: [ + cmake_platforms.yaml: [ + 'rhel-8.10' + ], + cmake_platforms_target_android.yaml: [ + 'android-15-x86_64-on-linux', + 'android-9-x86-on-linux' + ] +] +Configurations: [] +# Android nightly to check for -qtnamespace errors/issues +Overrides: +- + Id: 'android-15-x86_64-on-linux' + Features: ['Sccache', 'AndroidTestRun', 'VMSize8', 'UseConfigure'] + Environment variables: [ + 'TARGET_CONFIGURE_ARGS=-qtnamespace TestNamespace -nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_LATEST}} -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_LATEST}} -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON', + 'NON_QTBASE_TARGET_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID_X86_64_NDK_LATEST}} -DQT_DEPLOY_FFMPEG=TRUE -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include', + 'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_LATEST}}', + 'ANDROID_EMULATOR=emulator_x86_64_api_35' + ] +- + Id: 'android-9-x86-on-linux' + Features: ['Sccache', 'AndroidTestRun', 'VMSize8', 'UseConfigure'] + Environment variables: [ + 'TARGET_CONFIGURE_ARGS=-qtnamespace TestNamespace -nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_LATEST}} -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_LATEST}} -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON', + 'NON_QTBASE_TARGET_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID_X86_NDK_LATEST}} -DQT_DEPLOY_FFMPEG=TRUE -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include', + 'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_LATEST}}', + 'ANDROID_EMULATOR=emulator_x86_api_28' + ] diff --git a/coin/platform_configs/nightly_android_ndk1.yaml b/coin/platform_configs/nightly_android_ndk1.yaml new file mode 100644 index 00000000000..4ae4c9fc97a --- /dev/null +++ b/coin/platform_configs/nightly_android_ndk1.yaml @@ -0,0 +1,58 @@ +Version: 2 +Include: [ + cmake_platforms.yaml: [ + 'rhel-8.10', + 'windows-10_22h2-mingw13' + ], + cmake_platforms_target_android.yaml: [ + 'android-15-x86_64-on-linux', + 'android-9-x86-on-linux', + 'android-armv7-on-windows', + 'android-arm64-on-macos' + ], + macos.yaml: [ + 'macos-universal-on-arm64' + ] +] +Configurations: [] +# Android nightly to check for older (but still supported for the branch) NDKs +Overrides: +- + Id: 'android-15-x86_64-on-linux' + Features: ['Sccache', 'AndroidTestRun', 'VMSize8', 'UseConfigure', 'WarningsAreErrors'] + Environment variables: [ + 'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_NIGHTLY1}} -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_NIGHTLY1}} -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON', + 'NON_QTBASE_TARGET_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID_X86_64_NDK_NIGHTLY1}} -DQT_DEPLOY_FFMPEG=TRUE -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include', + 'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_NIGHTLY1}}', + 'ANDROID_EMULATOR=emulator_x86_64_api_35' + ] +- + Id: 'android-9-x86-on-linux' + Features: ['Sccache', 'AndroidTestRun', 'VMSize8', 'UseConfigure', 'WarningsAreErrors'] + Environment variables: [ + 'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_NIGHTLY1}} -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_NIGHTLY1}} -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON', + 'NON_QTBASE_TARGET_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID_X86_NDK_NIGHTLY1}} -DQT_DEPLOY_FFMPEG=TRUE -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include', + 'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_NIGHTLY1}}', + 'ANDROID_EMULATOR=emulator_x86_api_28' + ] +- + Id: 'android-armv7-on-windows' + Features: ['Sccache', 'WarningsAreErrors', 'DisableTests', 'UseConfigure'] + Environment variables: [ + 'Path={{.Env.MINGW_PATH}}\bin;{{.Env.Path}}', + 'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_NIGHTLY1}} -android-sdk {{.Env.ANDROID_SDK_ROOT}} -android-abis armeabi-v7a -no-feature-pkg-config', + 'TARGET_CMAKE_ARGS=-DCMAKE_C_COMPILER_FRONTEND_VARIANT=GNU -DCMAKE_CXX_COMPILER_FRONTEND_VARIANT=GNU -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_ANDROID_HOME_NIGHTLY1}} -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON', + 'NON_QTBASE_TARGET_CMAKE_ARGS=-DQT_ADDITIONAL_HOST_PACKAGES_PREFIX_PATH={{.Env.Protobuf_ROOT_mingw}} -DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID_ARMV7_NDK_NIGHTLY1}} -DQT_DEPLOY_FFMPEG=TRUE -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR={{.Env.Protobuf_ROOT_msvc}}/include', + 'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_NIGHTLY1}}' + ] +- + Id: 'android-arm64-on-macos' + Features: ['Sccache', 'WarningsAreErrors', 'DisableTests', 'UseConfigure'] + Environment variables: [ + 'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_NIGHTLY1}} -android-sdk {{.Env.ANDROID_SDK_ROOT}} -android-abis arm64-v8a', + 'TARGET_CMAKE_ARGS=-DCMAKE_C_COMPILER_FRONTEND_VARIANT=GNU -DCMAKE_CXX_COMPILER_FRONTEND_VARIANT=GNU -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_ANDROID_HOME_NIGHTLY1}} -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON', + 'NON_QTBASE_TARGET_CMAKE_ARGS=-DQT_ADDITIONAL_HOST_PACKAGES_PREFIX_PATH=/usr/local -DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID_ARM64_NDK_NIGHTLY1}} -DQT_DEPLOY_FFMPEG=TRUE -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include', + 'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_NIGHTLY1}}' + ] diff --git a/coin/platform_configs/nightly_android_ndk2.yaml b/coin/platform_configs/nightly_android_ndk2.yaml new file mode 100644 index 00000000000..2441d047e75 --- /dev/null +++ b/coin/platform_configs/nightly_android_ndk2.yaml @@ -0,0 +1,58 @@ +Version: 2 +Include: [ + cmake_platforms.yaml: [ + 'rhel-8.10', + 'windows-10_22h2-mingw13' + ], + cmake_platforms_target_android.yaml: [ + 'android-15-x86_64-on-linux', + 'android-9-x86-on-linux', + 'android-armv7-on-windows', + 'android-arm64-on-macos' + ], + macos.yaml: [ + 'macos-universal-on-arm64' + ] +] +Configurations: [] +# Android nightly to check for older (but still supported for the branch) NDKs +Overrides: +- + Id: 'android-15-x86_64-on-linux' + Features: ['Sccache', 'AndroidTestRun', 'VMSize8', 'UseConfigure', 'WarningsAreErrors'] + Environment variables: [ + 'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_NIGHTLY2}} -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_NIGHTLY2}} -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON', + 'NON_QTBASE_TARGET_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID_X86_64_NDK_NIGHTLY2}} -DQT_DEPLOY_FFMPEG=TRUE -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include', + 'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_NIGHTLY2}}', + 'ANDROID_EMULATOR=emulator_x86_64_api_35' + ] +- + Id: 'android-9-x86-on-linux' + Features: ['Sccache', 'AndroidTestRun', 'VMSize8', 'UseConfigure', 'WarningsAreErrors'] + Environment variables: [ + 'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_NIGHTLY2}} -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_NIGHTLY2}} -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON', + 'NON_QTBASE_TARGET_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID_X86_NDK_NIGHTLY2}} -DQT_DEPLOY_FFMPEG=TRUE -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include', + 'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_NIGHTLY2}}', + 'ANDROID_EMULATOR=emulator_x86_api_28' + ] +- + Id: 'android-armv7-on-windows' + Features: ['Sccache', 'WarningsAreErrors', 'DisableTests', 'UseConfigure'] + Environment variables: [ + 'Path={{.Env.MINGW_PATH}}\bin;{{.Env.Path}}', + 'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_NIGHTLY2}} -android-sdk {{.Env.ANDROID_SDK_ROOT}} -android-abis armeabi-v7a -no-feature-pkg-config', + 'TARGET_CMAKE_ARGS=-DCMAKE_C_COMPILER_FRONTEND_VARIANT=GNU -DCMAKE_CXX_COMPILER_FRONTEND_VARIANT=GNU -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_ANDROID_HOME_NIGHTLY2}} -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON', + 'NON_QTBASE_TARGET_CMAKE_ARGS=-DQT_ADDITIONAL_HOST_PACKAGES_PREFIX_PATH={{.Env.Protobuf_ROOT_mingw}} -DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID_ARMV7_NDK_NIGHTLY2}} -DQT_DEPLOY_FFMPEG=TRUE -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR={{.Env.Protobuf_ROOT_msvc}}/include', + 'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_NIGHTLY2}}' + ] +- + Id: 'android-arm64-on-macos' + Features: ['Sccache', 'WarningsAreErrors', 'DisableTests', 'UseConfigure'] + Environment variables: [ + 'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_NIGHTLY2}} -android-sdk {{.Env.ANDROID_SDK_ROOT}} -android-abis arm64-v8a', + 'TARGET_CMAKE_ARGS=-DCMAKE_C_COMPILER_FRONTEND_VARIANT=GNU -DCMAKE_CXX_COMPILER_FRONTEND_VARIANT=GNU -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_ANDROID_HOME_NIGHTLY2}} -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON', + 'NON_QTBASE_TARGET_CMAKE_ARGS=-DQT_ADDITIONAL_HOST_PACKAGES_PREFIX_PATH=/usr/local -DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID_ARM64_NDK_NIGHTLY2}} -DQT_DEPLOY_FFMPEG=TRUE -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include', + 'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_NIGHTLY2}}' + ] 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..0c2c952d43f 100644 --- a/coin/platform_configs/qtsaferenderer-runtime.yaml +++ b/coin/platform_configs/qtsaferenderer-runtime.yaml @@ -8,9 +8,7 @@ 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", "windows-10_22h2-msvc2022", "rhel-8.10", diff --git a/coin/platform_configs/qtsaferenderer.yaml b/coin/platform_configs/qtsaferenderer.yaml index ed3db97f0c2..153e5aefc90 100644 --- a/coin/platform_configs/qtsaferenderer.yaml +++ b/coin/platform_configs/qtsaferenderer.yaml @@ -8,9 +8,7 @@ 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", "windows-10_22h2-msvc2022", "rhel-8.10", @@ -49,7 +47,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/qtwayland.yaml b/coin/platform_configs/qtwayland.yaml index dff594bf182..7e8e4a89d83 100644 --- a/coin/platform_configs/qtwayland.yaml +++ b/coin/platform_configs/qtwayland.yaml @@ -3,18 +3,4 @@ Include: [ cmake_platforms.yaml, address_sanitizer_platforms.yaml ] -Configurations: -# Test on Ubuntu 24.04 ARM64 Wayland -- - Id: 'ubuntu-24.04-arm64-developer-build-wayland-tests' - Template: 'qtci-linux-Ubuntu-24.04-aarch64-50' - Compiler: 'GCC' - Features: ['TestOnly', 'RunDependencyTests', 'InsignificantTests'] - Platform dependency: 'ubuntu-24.04-arm64-developer-build' -# Test on Ubuntu 24.04 x64 Wayland -- - Id: 'ubuntu-24.04-x64-wayland-tests' - Template: 'qtci-linux-Ubuntu-24.04-x86_64-50' - Compiler: 'GCC' - Features: ['TestOnly', 'RunDependencyTests', 'InsignificantTests'] - Platform dependency: 'ubuntu-24.04-x64' +Configurations: [] 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..05dec9e2c96 100644 --- a/coin/platform_configs/tqtc-android-automotive.yaml +++ b/coin/platform_configs/tqtc-android-automotive.yaml @@ -1,10 +1,9 @@ Version: 2 Include: [ cmake_platforms.yaml: [ + "documentation-warnings", "rhel-8.10", 'windows-10_22h2-mingw13', - 'ubuntu-22.04-developer-build', - 'ubuntu-22.04-developer-build-x11-tests' ], macos.yaml: [ 'macos-universal-on-x86_64' @@ -13,8 +12,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: - @@ -27,8 +27,8 @@ Configurations: Platform dependency: 'rhel-8.10' Features: ['Packaging', 'Sccache', 'WarningsAreErrors', 'AndroidTestRun', 'VMSize8', 'UseConfigure'] 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}}', + 'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_LATEST}} -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_LATEST}}', 'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID}}', 'NON_QTBASE_TARGET_CMAKE_ARGS= -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include', 'ANDROID_EMULATOR=automotive_emulator_x86_64_api_34' @@ -43,8 +43,8 @@ Configurations: Platform dependency: 'rhel-8.10' Features: ['Packaging', 'Sccache', 'WarningsAreErrors', 'AndroidTestRun', 'VMSize8', 'UseConfigure'] 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}}', + 'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_LATEST}} -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_LATEST}}', 'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID}}', 'NON_QTBASE_TARGET_CMAKE_ARGS= -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include', 'ANDROID_EMULATOR=automotive_emulator_x86_64_api_29' 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-linux-SLES-15_SP6-x86_64/README_MANUAL_INSTALLATIONS b/coin/pre-provisioning/qtci-linux-SLES-15_SP6-x86_64/README_MANUAL_INSTALLATIONS index 3a4dbd345d9..d4c82c0214c 100644 --- a/coin/pre-provisioning/qtci-linux-SLES-15_SP6-x86_64/README_MANUAL_INSTALLATIONS +++ b/coin/pre-provisioning/qtci-linux-SLES-15_SP6-x86_64/README_MANUAL_INSTALLATIONS @@ -78,3 +78,10 @@ chmod 755 ./coin-setup run ./coin-setup sudo reboot now + +# Select login session type +After reboot into user qt: +- log out +- select session type "Gnome Classic" in session selector on the login sreen (gear wheel on bottom right) +- reboot again with sudo reboot now +- verify that auto login lands in normal desktop 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-aarch64/README_MANUAL_INSTALLATIONS b/coin/pre-provisioning/qtci-windows-11_23H2-aarch64/README_MANUAL_INSTALLATIONS new file mode 100644 index 00000000000..01bb28ff1cc --- /dev/null +++ b/coin/pre-provisioning/qtci-windows-11_23H2-aarch64/README_MANUAL_INSTALLATIONS @@ -0,0 +1,90 @@ +# Follow manual pre-setup from intra to install Windows 11 ARM and virtio drivers: +# "How to create a Windows 11 ARM tier1 image using Qemu" + +# Configure Windows after pre-setup +* Enable Remote Desktop: + - Settings - System - Remote Desktop - On + - Note: Display settings cannot be changed by remote +* Resolution set to 1280x800 + - System > Display > Custom scaling > Advanced display + - 1024 x 768 is unchangable by default +* Coin-setup: + - Download from https://[Coin_IP_from_build_logs]/coin/setup --> Windows Setup ARM64 .exe + - Open PowerShell as Administrator + - Run Windows Setup ARM64 .exe + - Verify from output that all these are OK + - Installing Boostrap agent + - Disabling fast boot + - Disabling firewall + - Disabling UAC + - Enabling autologin + - Automatic login + - Disabling windows updates +* Turn off Windows defender: + - Microsoft Defender Antivirus turned off: Open 'gpedit.msc': 'Computer Configuration' - 'Administrative Templates' - 'Windows Components' - 'Microsoft Defender Antivirus' + - Edit 'Turn off Microsoft Defender Antivirus' > 'Enabled' > 'Apply' + - Reboot on Safe mode: + - Open msconfig - Boot tab - enable “Safe boot“ - apply - restart + - In Safe mode: + - Take Ownership of Defender: + - Open properties - Right click "C:\Program Files\Windows Defender\Platform" and select 'Properties' + - Open Security tab - Advanced - Owner: Change - Advanced - Find now - Select Administrators - Ok - Ok - Apply + - Close 'Platform Properties' window for actions to take effect and open 'Properties' again + - This should get 'Disable inheritance' available for the next step + - Remove all Permissions: Permissions tab - Select 'Disable inheritance' + - Remove all entries + -Select 'Remove all inherited permissions from this object' + -Select 'Replace all child object permi…' - Apply + - Disable Windows defender also from RegEdit: + - Open regedit - Navigate to 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services' + - Change the following folders the key Start to 4 + - Sense (Windows defender advanced threat protection) + - WdBoot (Windows defender boot) + - WdFilter (Microsoft antimalware file system filter driver) + - WdNisDrv (Windows Defender Network Inspection Driver) + - WdNisSvc (Windows Defender Network Inspection Service) + - WinDefend (Windows Defender Antivirus Service) + - mpssvc (Windows Defender Firewall) + - NOTE! Without these step windows defender can't be disabled! + - Reboot back to normal mode +* Background defrag disabled: 'Defragment And Optimize Drives' - 'change settings' - unchecked "run on a schedule" + - Run in terminal: 'schtasks /Delete /TN "Microsoft\Windows\Defrag\ScheduledDefrag"' + - (Running optimize drivers doesn't seem to fix the status, if there's a 10% space optimization recommended) +* Time: + - Settings - System - Date & time - Time zone: '(UTC) Coordinated Universal Time' + - Settings - System - Date & time - "Set the time automatically: Off" +* Regional format: + - Settings - Time & language - Language and region - regional format - English (United States) +* Power saver: + - Settings - System - Power - Screen and sleep: set 'When plugged in, turn off my screen after' to 'never' +* Windows search disabled: + - 'C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools\Services' - 'Windows search' - stop & disable +* Sysmain disabled: + - 'C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools\Services' - 'SysMain' - stop & disable +* Windows update: + - Settings - Windows Update - run available updates + - (Windows update2025-06 Cumulative Update for Windows 11 Version 23H2 for arm64-based Systems (KB5060999)) + - After reboot disable windows updates: + - 'C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools\Services' - 'Windows update' - stop & disable +* Turn windows features on or off -> Check the "SMB 1.0/CIFS File Sharing Support" +* Disable Windows Restore Points: Search 'Create a restore point' -> 'System Protection' tab -> Configure C: drive -> Disable & Delete restore points. +* Disable widgets: Right click the task bar -> 'Taskbar settings' -> toggle off anything related to widgets. +* (Restart Windows: shutdown /r) +* Google Chrome installed for RTA +* Virus & threat protection settings: + * Check that there's no active antivirus providers +* Run .NET runtime optimization service: open terminal and run: + Start-Process -NoNewWindow -FilePath "C:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319\ngen.exe" -ArgumentList ExecuteQueuedItems -Wait + - It may be needed to rerun after installing Visual Studio. Just run it until it prints: + "All compilation targets are up to date." +* Activate Windows + +# Next +Install Visual Studio 2022 by following msvc2022.txt + +Proceed to install pre-provisioning scripts manually to Tier1 image + * Copying scripts happens easiest via Remote Desktop + * Ensure to have sourced scripts e.g. helpers.ps1 included + * If running scripts is restricted: Use these to allow scripts in Tier1 + * Get-ExecutionPolicy -List # To check the status + * Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force diff --git a/coin/pre-provisioning/qtci-windows-11_23H2-aarch64/disable-clean-manager.ps1 b/coin/pre-provisioning/qtci-windows-11_23H2-aarch64/disable-clean-manager.ps1 new file mode 100644 index 00000000000..45ce141f787 --- /dev/null +++ b/coin/pre-provisioning/qtci-windows-11_23H2-aarch64/disable-clean-manager.ps1 @@ -0,0 +1,8 @@ +# This script will disable automatic disk cleanup + +. "$PSScriptRoot\..\..\provisioning\common\windows\helpers.ps1" + +Run-Executable "reg.exe" "ADD `"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\StorageSense\Parameters\StoragePolicy`" /V 04 /T REG_dWORD /D 0 /F" + +# Maintenance task used by the system to launch a silent auto disk cleanup when running low on free disk space. +DisableSchedulerTask "DiskCleanup\SilentCleanup" diff --git a/coin/pre-provisioning/qtci-windows-11_23H2-aarch64/disable-defragment.ps1 b/coin/pre-provisioning/qtci-windows-11_23H2-aarch64/disable-defragment.ps1 new file mode 100644 index 00000000000..f8834f35fac --- /dev/null +++ b/coin/pre-provisioning/qtci-windows-11_23H2-aarch64/disable-defragment.ps1 @@ -0,0 +1,42 @@ +# 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 + +# Windows 7 does not have Get-ScheduledTask and Unregister-ScheduledTask +# thus needing its own version. +Write-Host "Disabling defragmentation" +$version = Get-CimInstance Win32_OperatingSystem | Select-Object -ExpandProperty Caption +if ($version -like '*Windows 7*'){ + $pi = New-Object System.Diagnostics.ProcessStartInfo + $pi.FileName = "C:\Windows\System32\schtasks.exe" + $pi.RedirectStandardError = $true + $pi.UseShellExecute = $false + $pi.Arguments = "/Delete /TN `"\Microsoft\Windows\Defrag\ScheduledDefrag`" /F" + $prog = New-Object System.Diagnostics.Process + $prog.StartInfo = $pi + $prog.Start() | Out-Null + $err = $prog.StandardError.ReadToEnd() + $prog.WaitForExit() + if ($prog.ExitCode -eq 0){ + Write-Host "Scheduled defragmentation removed" + } else { + if ($err -like '*cannot find the file*'){ + Write-Host "No scheduled defragmentation task found" + exit 0 + } else { + Write-Host "Error while deleting scheduled defragmentation task: $err" + } + } +} +else { + try { + $state = (Get-ScheduledTask -ErrorAction Stop -TaskName "ScheduledDefrag").State + Write-Host "Scheduled defragmentation task found in state: $state" + } + catch { + Write-Host "No scheduled defragmentation task found" + exit 0 + } + Write-Host "Unregistering scheduled defragmentation task" + Unregister-ScheduledTask -ErrorAction Stop -Confirm:$false -TaskName ScheduledDefrag + Write-Host "Scheduled Defragmentation task was cancelled" +} diff --git a/coin/pre-provisioning/qtci-windows-11_23H2-aarch64/disable-ntp.ps1 b/coin/pre-provisioning/qtci-windows-11_23H2-aarch64/disable-ntp.ps1 new file mode 100644 index 00000000000..226517633d4 --- /dev/null +++ b/coin/pre-provisioning/qtci-windows-11_23H2-aarch64/disable-ntp.ps1 @@ -0,0 +1,4 @@ +. "$PSScriptRoot\..\..\provisioning\common\windows\helpers.ps1" + +# Disable the NTP from syncing +Run-Executable "w32tm.exe" "/config /syncfromflags:NO" diff --git a/coin/pre-provisioning/qtci-windows-11_23H2-aarch64/disable-schedule-tasks.ps1 b/coin/pre-provisioning/qtci-windows-11_23H2-aarch64/disable-schedule-tasks.ps1 new file mode 100644 index 00000000000..88b8387955e --- /dev/null +++ b/coin/pre-provisioning/qtci-windows-11_23H2-aarch64/disable-schedule-tasks.ps1 @@ -0,0 +1,72 @@ +. "$PSScriptRoot\..\..\provisioning\common\windows\helpers.ps1" + +# This script will remove unneeded Tasks from Task Scheduler + +# Application Experience 'Microsoft Compatibility Appraiser' - "Collects program telemetry information if opted-in to the Microsoft Customer Experience Improvement Program." +DisableSchedulerTask "Application Experience\Microsoft Compatibility Appraiser" + +# Application Experience 'ProgramDataUpdater' - "Collects program telemetry information if opted-in to the Microsoft Customer Experience Improvement Program" +DisableSchedulerTask "Application Experience\ProgramDataUpdater" + +# Autochk 'Proxy' - "This task collects and uploads autochk SQM data if opted-in to the Microsoft Customer Experience Improvement Program." +DisableSchedulerTask "Autochk\Proxy" + +# Chkdsk 'ProactiveScan' - "NTFS Volume Health Scan" +DisableSchedulerTask "Chkdsk\ProactiveScan" + +# Chkdsk 'SyspartRepair' +DeleteSchedulerTask "Chkdsk\SyspartRepair" + +# Customer Experience Improvement Program 'Consolidator' - "If the user has consented to participate in the Windows Customer Experience Improvement Program, this job collects and sends usage data to Microsoft." +DisableSchedulerTask "Customer Experience Improvement Program\Consolidator" + +# Customer Experience Improvement Program 'sbCeip' - "The USB CEIP (Customer Experience Improvement Program) task collects Universal Serial Bus related statistics and information about your machine and sends it to the Windows Device Connectivity engineering group at Microsoft. The information received is used to help improve the reliability, stability, and overall functionality of USB in Windows. If the user has not consented to participate in Windows CEIP, this task does not do anything." +DisableSchedulerTask "Customer Experience Improvement Program\UsbCeip" + +# Device Information 'Device' +DisableSchedulerTask "Device Information\Device" + +# Diagnosis 'Scheduled' - "The Windows Scheduled Maintenance Task performs periodic maintenance of the computer system by fixing problems automatically or reporting them through Security and Maintenance." +DisableSchedulerTask "Diagnosis\Scheduled" + +# DiskDiagnostic 'Microsoft-Windows-DiskDiagnosticDataCollector' - "The Windows Disk Diagnostic reports general disk and system information to Microsoft for users participating in the Customer Experience Program." +DisableSchedulerTask "DiskDiagnostic\Microsoft-Windows-DiskDiagnosticDataCollector" + +# ExploitGuard 'ExploitGuard MDM policy Refresh' - "Task for applying changes to the machine's Exploit Protection settings." +DisableSchedulerTask "ExploitGuard\ExploitGuard MDM policy Refresh" + +# Feedback/Siuf 'DmClient' +DisableSchedulerTask "Feedback\Siuf\DmClient" + +# Feedback/Siuf 'DmClient'OnScenarioDownload' +DisableSchedulerTask "Feedback\Siuf\DmClientOnScenarioDownload" + +# File Classification Infrastructure 'Property Definition Sync' +DisableSchedulerTask "File Classification Infrastructure\Property Definition Sync" + +# InstallService 'ScanForUpdates' +DisableSchedulerTask "InstallService\ScanForUpdates" + +# InstallService 'ScanForUpdatesAsUser' +DisableSchedulerTask "InstallService\ScanForUpdatesAsUser" + +# LanguageComponentsInstaller 'Installation' - "Install language components that match the user's language list." +DisableSchedulerTask "LanguageComponentsInstaller\Installation" + +# LanguageComponentsInstaller 'ReconcileLanguageResources' - "Install language components that match the user's language list." +DisableSchedulerTask "LanguageComponentsInstaller\ReconcileLanguageResources" + +# PI 'Secure-Boot-Update' - "This task updates the Secure Boot variables." +DisableSchedulerTask "PI\Secure-Boot-Update" + +# PI 'Sqm-Tasks' - "This task gathers information about the Trusted Platform Module (TPM), Secure Boot, and Measured Boot." +DisableSchedulerTask "PI\Sqm-Tasks" + +# Power Efficiency Diagnotics 'AnalyzeSystem' - "This task analyzes the system looking for conditions that may cause high energy use." +DisableSchedulerTask "PushToInstall\Registration" + +# Servicing 'StartComponentCleanup' +DisableSchedulerTask "Servicing\StartComponentCleanup" + +# SoftwareProtectionPlatform 'SvcRestartTaskNetwork' - "This task restarts the Software Protection Platform service when a new network is detected" +DisableSchedulerTask "SoftwareProtectionPlatform\SvcRestartTaskNetwork" diff --git a/coin/pre-provisioning/qtci-windows-11_23H2-aarch64/disable-smart-app-control.ps1 b/coin/pre-provisioning/qtci-windows-11_23H2-aarch64/disable-smart-app-control.ps1 new file mode 100644 index 00000000000..27c7d07891d --- /dev/null +++ b/coin/pre-provisioning/qtci-windows-11_23H2-aarch64/disable-smart-app-control.ps1 @@ -0,0 +1,4 @@ +# Disable Smart app control +# Smart app control makes installations extremely slow after defender is disabled. +reg.exe ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CI\Policy" /V VerifiedAndReputablePolicyState /T REG_dWORD /D 0 /F +# Verify: Settings -> Privacy & security -> Windows security -> App & browser control -> Smart App Control settings -> Off diff --git a/coin/pre-provisioning/qtci-windows-11_23H2-aarch64/disable-update-orchestrator.ps1 b/coin/pre-provisioning/qtci-windows-11_23H2-aarch64/disable-update-orchestrator.ps1 new file mode 100644 index 00000000000..72473d8f6ff --- /dev/null +++ b/coin/pre-provisioning/qtci-windows-11_23H2-aarch64/disable-update-orchestrator.ps1 @@ -0,0 +1,13 @@ +# Disable UpdateOrchestrator + +$name = "UpdateOrchestrator" +$path = "C:\Windows\System32\Tasks\Microsoft\Windows\$name" + +takeown /F $path /A /R +icacls $path /grant Administrators:F /T +del "$path\Schedule Scan" +del "$path\Schedule Scan Static Task" +del "$path\USO_UxBroker" + +# Disable Update orchestrator service +reg.exe ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\UsoSvc" /V Start /T REG_dWORD /D 4 /F diff --git a/coin/pre-provisioning/qtci-windows-11_23H2-aarch64/disable-windefender.ps1 b/coin/pre-provisioning/qtci-windows-11_23H2-aarch64/disable-windefender.ps1 new file mode 100644 index 00000000000..36258f638e0 --- /dev/null +++ b/coin/pre-provisioning/qtci-windows-11_23H2-aarch64/disable-windefender.ps1 @@ -0,0 +1,21 @@ +# 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 + +# Turning off win defender. +# +# If disabled manually, windows will automatically enable it after +# some period of time. Disabling it speeds up the builds. +# NOTE! Windows Defender Antivirus needs to be turned off! +# Open 'gpedit.msc': 'Computer Configuration' - 'Administrative Templates' - 'Windows Components' - 'Windows Defender Antivirus' +# Edit 'Turn off Windows Defender Antivirus' > 'Enabled' > 'Apply' + +. "$PSScriptRoot\..\..\provisioning\common\windows\helpers.ps1" + +Run-Executable "reg.exe" "ADD `"HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender`" /V DisableAntiSpyware /T REG_dWORD /D 1 /F" +Run-Executable "reg.exe" "ADD `"HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender`" /V DisableRoutinelyTakingAction /T REG_dWORD /D 1 /F" + +# Disable 'QueueReporting' - "Windows Error Reporting task to process queued reports." +DisableSchedulerTask "Windows Error Reporting\QueueReporting" + +# Disable WindowsUpdate from Task Scheduler +DisableSchedulerTask "WindowsUpdate\Scheduled Start" diff --git a/coin/pre-provisioning/qtci-windows-11_23H2-aarch64/disable-windows-file-protector.ps1 b/coin/pre-provisioning/qtci-windows-11_23H2-aarch64/disable-windows-file-protector.ps1 new file mode 100644 index 00000000000..f1d09fb5b9e --- /dev/null +++ b/coin/pre-provisioning/qtci-windows-11_23H2-aarch64/disable-windows-file-protector.ps1 @@ -0,0 +1,4 @@ +# Disable Windows File Protection +# Windows File Protection feature in Microsoft Windows prevents programs from replacing critical Windows system files. + +reg.exe ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /V SFCDisable /T REG_dWORD /D 0xffffff9d /F diff --git a/coin/pre-provisioning/qtci-windows-11_23H2-aarch64/disable-windows-update-medic.ps1 b/coin/pre-provisioning/qtci-windows-11_23H2-aarch64/disable-windows-update-medic.ps1 new file mode 100644 index 00000000000..6accbd3ba79 --- /dev/null +++ b/coin/pre-provisioning/qtci-windows-11_23H2-aarch64/disable-windows-update-medic.ps1 @@ -0,0 +1,25 @@ +# Windows Update Medic Service (WaaSMedicSvc)'PerformRemediation' helps recover update-related services to the supported configuration. +# WaasMedicSvc keeps re-starting Windows Update, even if it disabled manually. +# Even Admin user don't have privileged to disable PerformRemediation from Task Scheduler which means that WaaSMedicSvc.dll need's to be removed from the system + +$limit = (Get-Date).AddMinutes(20) +$path = "C:\Windows\System32\WaaSMedicSvc.dll" + +DO { + takeown /F $path + icacls $path /grant Administrators:f + Write-host "Deleting $path" + + Try { + del $path + } + Catch [System.UnauthorizedAccessException] { + Write-host "Access to the path '$path' is denied." + Continue + } + + if ((Get-Date) -gt $limit) { + exit 1 + } + +}while (Test-Path -Path "$path") diff --git a/coin/pre-provisioning/qtci-windows-11_23H2-aarch64/disable-windows-updates.ps1 b/coin/pre-provisioning/qtci-windows-11_23H2-aarch64/disable-windows-updates.ps1 new file mode 100644 index 00000000000..62e19814cc8 --- /dev/null +++ b/coin/pre-provisioning/qtci-windows-11_23H2-aarch64/disable-windows-updates.ps1 @@ -0,0 +1,24 @@ +# Copyright (C) 2017 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 automatic Windows updates + +$service = get-service wuauserv +if (-not $service) { + Write-Host "Windows Update service not found." + exit 0 +} + +if ($service.Status -eq "Stopped") { + Write-Host "Windows Update service already stopped." +} else { + Write-Host "Stopping Windows Update service." + Stop-Service -Name "wuauserv" -Force +} + +$startup = Get-WmiObject Win32_Service | Where-Object {$_.Name -eq "wuauserv"} | Select -ExpandProperty "StartMode" +if ($startup -ne "Disabled") { + set-service wuauserv -startup disabled +} else { + Write-Host "Windows Update service startup already disabled." +} diff --git a/coin/pre-provisioning/qtci-windows-11_23H2-aarch64/msvc2022.txt b/coin/pre-provisioning/qtci-windows-11_23H2-aarch64/msvc2022.txt new file mode 100644 index 00000000000..3a5bd3ecbdd --- /dev/null +++ b/coin/pre-provisioning/qtci-windows-11_23H2-aarch64/msvc2022.txt @@ -0,0 +1,81 @@ +### Visual Studio Professional 2022 Official release ### +Visual Studio Professional 2022 version 17.14.7 was installed manually using installer: http://ci-files01-hki.ci.qt.io/input/windows/vs_professional__msvc2022_1339502178.1525841376.exe +This VS installer 17.14.7 version sets (Latest) MSVC version as: 14.44.35207 + +Installed MSVC-2022 Components: + +.NET Framework 4.8.1 targeting pack +.NET Framework 4.8.1 SDK +.NET Framework 4.8 targeting pack +.NET Framework 4.8 SDK +.NET Native +.NET Portable Library targeting pack +CLR data types for SQL Server +Data sources for SQL Server support +SQL Server Command Linne Utilities +SQL Server Data Tools +SQL Server Express 2019 LocalDB +SQL Server ODBC Driver +ClickOnce Publishing +Developer Analytics tools +NuGet package manager +Text Template Transformation +C# and Visual Basic Roslyn compilers +C++ 2022 Redistributable Update +C++ Cmake tools for Windows +C++/CLI support for v143 build tools (14.44-17.14) +C++/CLI support for v143 build tools (Latest) +MSBuild +MSVC v143 - VS 2022 C++ ARM64/ARM64EC build tools (Latest) +MSVC v143 - VS 2022 C++ ARM64/ARM64EC build tools (v14.44-17.14) +.NET profiling tools +C++ profiling tools +JavaScript diagnostics +Just-In-Time debugger +C# and Visual Basic +C++ core features +JavaScript and TypeScript language support +Razor Language Services +Image and 3D model editors +C++ ATL for latest v143 build tools (ARM) +C++ ATL for latest v143 build tools (ARM64/ARM64EC) +TypeScript Server +Windows 10 SDK (10.0.18362.0) +Windows 10 SDK (10.0.19041.0) +Windows 10 SDK (10.0.20348.0) +Windows 11 SDK (10.0.22000.0) +Windows 11 SDK (10.0.22621.0) +Windows 11 SDK (10.0.26100.3916) # This was available --> installed for COIN-1206 (see later comment) +Windows Universal C Runtime + +Windows SDK (10.0.26100.1742) has been earlier downloaded for WoA 22h2 and installed from: +https://developer.microsoft.com/en-us/windows/downloads/windows-sdk/ +# COIN-1206 + +These Components were not found for WoA: + +Connectivity and publishing tools +Graphics debugger and GPU profiler for DirectX +TypeScript 4.7 SDK + +# NOTE! Workloads were added during installation! + +############################################################ +### Visual Studio 2022 build tools ### + + Visual studio 2022 build tools version 17.14.7 was installed manually using installer: "http://ci-files01-hki.ci.qt.io/input/windows/vs_BuildTools_msvc2022.exe" + * Only default installation, no additional selections + +# NOTE! Installing Visual Studio on ARM-powered device is not supported + * Otherwise Visual Studio might be slow or unusable + * Installer recommends "remote targeting" which is suitable for cross-platform development + * VS 2022 build tools has been installed as it is - VS has ARM support since 17.4, but not full support with some workloads + * https://learn.microsoft.com/en-us/visualstudio/install/visual-studio-on-arm-devices?view=vs-2022#supported-workloads + +############################################################ +### Debugging tools ### + +* Check that debugging tools are installed in all installed Windows SDK versions + * Modify 'Windows Software Development Kit - Windows ' from 'Add or remove programs' + - Add feature 'Debugging Tools for Windows' +############################################################ 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_emulator_launcher.sh b/coin/provisioning/common/linux/android_emulator_launcher.sh index 351a04f9f62..bd89fe1a3bc 100755 --- a/coin/provisioning/common/linux/android_emulator_launcher.sh +++ b/coin/provisioning/common/linux/android_emulator_launcher.sh @@ -25,13 +25,12 @@ function check_for_android_device } # WARNING: On the very first boot of the emulator it happens that the device -# "finishes" booting and getprop shows bootanim=stopped and -# boot_completed=1. But sometimes not all packages have been installed (`pm -# list packages` shows only 16 packages installed), and after around half a -# minute the boot animation starts spinning (bootanim=running) again despite -# boot_completed=1 all the time. After some minutes the boot animation stops -# again and the list of packages contains 80 packages. Only then the device is -# fully booted, and only then is dev.bootcomplete=1. +# "finishes" booting and getprop shows boot_completed=1. But sometimes not all +# packages have been installed (`pm list packages` shows only 16 packages +# installed), and after around half a minute the boot animation starts spinning +# again despite boot_completed=1 all the time. After some minutes the boot +# animation stops again and the list of packages contains 80 packages. +# Only then the device is fully booted, and only then is dev.bootcomplete=1. # # To reproduce the emulator booting as the first time, you have to delete the # cached images found inside $HOME/.android/avd/{avd_name}.avd/ especially the @@ -39,11 +38,10 @@ function check_for_android_device function check_if_fully_booted { # The "getprop" command separates lines with \r\n so we trim them - bootanim=$( timeout 1 "$ADB_EXEC" shell getprop init.svc.bootanim | tr -d '\r\n') boot_completed=$(timeout 1 "$ADB_EXEC" shell getprop sys.boot_completed | tr -d '\r\n') bootcomplete=$( timeout 1 "$ADB_EXEC" shell getprop dev.bootcomplete | tr -d '\r\n') - echo "bootanim=$bootanim boot_completed=$boot_completed bootcomplete=$bootcomplete" - [ "$bootanim" = stopped ] && [ "$boot_completed" = 1 ] && [ "$bootcomplete" = 1 ] + echo "boot_completed=$boot_completed bootcomplete=$bootcomplete" + [ "$boot_completed" = 1 ] && [ "$bootcomplete" = 1 ] } for counter in $(seq ${EMULATOR_MAX_RETRIES}) diff --git a/coin/provisioning/common/linux/android_linux.sh b/coin/provisioning/common/linux/android_linux.sh index 96b67a17ce2..178133d59ac 100755 --- a/coin/provisioning/common/linux/android_linux.sh +++ b/coin/provisioning/common/linux/android_linux.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# Copyright (C) 2022 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 # This script install Android sdk and ndk. @@ -24,19 +24,21 @@ basePath="http://ci-files01-hki.ci.qt.io/input/android" toolsVersion="2.1" toolsFile="commandlinetools-linux-6609375_latest.zip" -ndkVersionLatest="r26b" -ndkVersionDefault=$ndkVersionLatest -sdkBuildToolsVersion="34.0.0" -sdkApiLevel="android-34" - +sdkBuildToolsVersion="35.0.1" +sdkApiLevel="android-35" toolsSha1="9172381ff070ee2a416723c1989770cf4b0d1076" -ndkSha1Latest="fdf33d9f6c1b3f16e5459d53a82c7d2201edbcc4" -ndkSha1Default=$ndkSha1Latest -# Android 14 avd zip -android14SystemZipName="android14system_UE1A_230829_036.tar.gz" -android14SystemZipSha="ede80c6901e8fad1895c97a86542b8e072bb1ee5" -android14SystemPath="$basePath/$android14SystemZipName" +ndkVersionLatest="r27c" +ndkSha1Latest="090e8083a715fdb1a3e402d0763c388abb03fb4e" + +# Non-latest (but still supported by the qt/qt5 branch) NDKs are installed for nightly targets in: +# coin/platform_configs/nightly_android.yaml + +ndkVersionNightly1=$ndkVersionLatest # Same version = skip NDK install for nightly +ndkSha1Nightly1=$ndkSha1Latest + +ndkVersionNightly2=$ndkVersionLatest +ndkSha1Nightly2=$ndkSha1Latest # Android Automotive max SDK level image sdkApiLevelAutomotiveMax="android-34" @@ -74,17 +76,22 @@ function InstallNdk() { androidNdkRoot="${targetFolder}/${zipBase}" } -InstallNdk $ndkVersionDefault $ndkSha1Default -SetEnvVar "ANDROID_NDK_ROOT_DEFAULT" "$androidNdkRoot" +InstallNdk $ndkVersionLatest $ndkSha1Latest +SetEnvVar "ANDROID_NDK_ROOT_LATEST" "$androidNdkRoot" -if [ "$ndkVersionDefault" != "$ndkVersionLatest" ]; then - InstallNdk $ndkVersionLatest $ndkSha1Latest +if [ "$ndkVersionNightly1" != "$ndkVersionLatest" ]; then + InstallNdk $ndkVersionNightly1 $ndkSha1Nightly1 + SetEnvVar "ANDROID_NDK_ROOT_NIGHTLY1" "$androidNdkRoot" +fi + +if [ "$ndkVersionNightly2" != "$ndkVersionLatest" ]; then + InstallNdk $ndkVersionNightly2 $ndkSha1Nightly2 + SetEnvVar "ANDROID_NDK_ROOT_NIGHTLY2" "$androidNdkRoot" fi -SetEnvVar "ANDROID_NDK_ROOT_LATEST" "$androidNdkRoot" # To be used by vcpkg -SetEnvVar "ANDROID_NDK_HOME" "$targetFolder/android-ndk-$ndkVersionDefault" -export ANDROID_NDK_HOME="$targetFolder/android-ndk-$ndkVersionDefault" +SetEnvVar "ANDROID_NDK_HOME" "$targetFolder/android-ndk-$ndkVersionLatest" +export ANDROID_NDK_HOME="$targetFolder/android-ndk-$ndkVersionLatest" echo "Changing ownership of Android files." if uname -a |grep -q "el7"; then @@ -136,12 +143,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 +169,35 @@ 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" + +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 "Download and unzip Android 16 System Image for insignificant" +insignificantMaxVersionFileName="x86_64-36_r06.zip" +insignificantMaxVersionDestination="$sdkTargetFolder/system-images/android-36/google_apis/" +insignificantMaxVersionFilePath="$insignificantMaxVersionDestination/$insignificantMaxVersionFileName" +insignificantMaxVersionCiUrl="$basePath/system-images/google_apis/$insignificantMaxVersionFileName" +insignificantMaxVersionUrl="https://dl.google.com/android/repository/sys-img/google_apis/$insignificantMaxVersionFileName" +insignificantMaxVersionSha1="a9b0b4a0488e0c6c380f5485507950f011388511" -echo "Extract stored Android 14 Beta $android14SystemZipName" -DownloadURL "$android14SystemPath" "$android14SystemPath" "$android14SystemZipSha" \ - "/tmp/$android14SystemZipName" -sudo tar -xzf "/tmp/$android14SystemZipName" -C "$sdkTargetFolder/system-images" +mkdir -p "$insignificantMaxVersionDestination" +DownloadURL "$insignificantMaxVersionCiUrl" "$insignificantMaxVersionUrl" "$insignificantMaxVersionSha1" "$insignificantMaxVersionFilePath" + +echo "Unzipping the Android 16 insignicant to $insignificantMaxVersionDestination" +sudo unzip -o -q "$insignificantMaxVersionFilePath" -d "$insignificantMaxVersionDestination" +rm "$insignificantMaxVersionFilePath" echo "Checking the contents of Android SDK again..." ls -l "$sdkTargetFolder" @@ -176,12 +205,12 @@ 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" +echo "no" | ./avdmanager create avd -n emulator_x86_64_api_36 -c 2048M -f \ + -k "system-images;android-36;google_apis;x86_64" + echo "Install maximum supported SDK level image for Android Automotive $sdkApiLevelAutomotiveMax" DownloadURL "$androidAutomotiveMaxUrl" "$androidAutomotiveMaxUrl" "$androidAutomotiveMaxSha" \ "/tmp/${sdkApiLevelAutomotiveMax}_automotive.tar.gz" @@ -211,7 +240,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/apt_wait_loop.sh b/coin/provisioning/common/linux/apt_wait_loop.sh index 60d5d5edb38..b7d4da5dfe2 100755 --- a/coin/provisioning/common/linux/apt_wait_loop.sh +++ b/coin/provisioning/common/linux/apt_wait_loop.sh @@ -5,9 +5,13 @@ set -ex function waitLoop { + while sudo fuser /var/lib/dpkg/lock >/dev/null 2>&1; do + echo "Waiting for other software managers to finish... 1/2" + sleep 0.5 + done -while sudo fuser /var/lib/dpkg/lock >/dev/null 2>&1 ; do - echo "Waiting for other software managers to finish..." - sleep 0.5 -done + while sudo fuser /var/lib/apt/lists/lock >/dev/null 2>&1; do + echo "Waiting for other software managers to finish... 2/2" + sleep 0.5 + done } 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_${VXWORKS_BUILD_VER}.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_${VXWORKS_BUILD_VER}.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_${VXWORKS_BUILD_VER}.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_${VXWORKS_BUILD_VER}.tar.gz" AltUrl="" -sha1="1943696ead5d13fba92a5af416bd3f599395fe24" +sha1="2fa12dac1f1460019a418da49b095c743a9fe282" targetFolder="/opt/" InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$sha1" "$targetFolder" "" diff --git a/coin/provisioning/common/linux/vxworks_qemu_launcher.sh b/coin/provisioning/common/linux/vxworks_qemu_launcher.sh index 2c345150f1b..d6dc4886570 100755 --- a/coin/provisioning/common/linux/vxworks_qemu_launcher.sh +++ b/coin/provisioning/common/linux/vxworks_qemu_launcher.sh @@ -35,6 +35,7 @@ elif [ "$TYPE" = "intel" ]; then -smp 8 \ -m 8G \ -cpu "Skylake-Client" \ + -enable-kvm \ -monitor none \ -nographic \ -serial null \ diff --git a/coin/provisioning/common/macos/android.sh b/coin/provisioning/common/macos/android.sh index b7dc953f8f3..eafaee815f8 100755 --- a/coin/provisioning/common/macos/android.sh +++ b/coin/provisioning/common/macos/android.sh @@ -20,11 +20,16 @@ toolsVersion="2.1" # toolsFile dertermines tools version toolsFile="commandlinetools-mac-6609375_latest.zip" -ndkVersionLatest="r26b" -ndkVersionDefault="$ndkVersionLatest" -sdkBuildToolsVersion="34.0.0" +# Non-latest (but still supported by the qt/qt5 branch) NDKs are installed for nightly targets in: +# coin/platform_configs/nightly_android.yaml + +ndkVersionLatest="r27c" +ndkVersionNightly1="$ndkVersionLatest" # If same version as latest = skip NDK install for nightly +ndkVersionNightly2="$ndkVersionLatest" + +sdkBuildToolsVersion="35.0.1" # this is compile sdk version -sdkApiLevel="android-34" +sdkApiLevel="android-35" toolsSourceFile="$basePath/$toolsFile" @@ -40,8 +45,18 @@ function InstallNdk() { } -InstallNdk $ndkVersionDefault InstallNdk $ndkVersionLatest +SetEnvVar "ANDROID_NDK_ROOT_LATEST" "$targetFolder/android-ndk-$ndkVersionLatest" + +if [ "$ndkVersionNightly1" != "$ndkVersionLatest" ]; then + InstallNdk $ndkVersionNightly1 + SetEnvVar "ANDROID_NDK_ROOT_NIGHTLY1" "$targetFolder/android-ndk-$ndkVersionNightly1" +fi + +if [ "$ndkVersionNightly2" != "$ndkVersionLatest" ]; then + InstallNdk $ndkVersionNightly2 + SetEnvVar "ANDROID_NDK_ROOT_NIGHTLY2" "$targetFolder/android-ndk-$ndkVersionNightly2" +fi echo "Unzipping Android Tools to '$sdkTargetFolder'" sudo unzip -q "$toolsSourceFile" -d "$sdkTargetFolder" @@ -65,8 +80,6 @@ echo "Checking the contents of Android SDK..." ls -l "$sdkTargetFolder" SetEnvVar "ANDROID_SDK_ROOT" "$sdkTargetFolder" -SetEnvVar "ANDROID_NDK_ROOT_DEFAULT" "$targetFolder/android-ndk-$ndkVersionDefault" -SetEnvVar "ANDROID_NDK_ROOT_LATEST" "$targetFolder/android-ndk-$ndkVersionLatest" SetEnvVar "ANDROID_NDK_HOST" "darwin-x86_64" SetEnvVar "ANDROID_API_VERSION" "$sdkApiLevel" @@ -74,5 +87,7 @@ cat << EOT >>~/versions.txt Android SDK tools = $toolsVersion Android SDK Build Tools = $sdkBuildToolsVersion Android SDK API level = $sdkApiLevel -Android NDK = $ndkVersionDefault +Android NDK latest = $ndkVersionLatest +Android NDK nightly1 = $ndkVersionNightly1 +Android NDK nightly2 = $ndkVersionNightly2 EOT diff --git a/coin/provisioning/common/macos/disable_spotlight.sh b/coin/provisioning/common/macos/disable_spotlight.sh index b4907ca0d65..82ca3d7ff21 100755 --- a/coin/provisioning/common/macos/disable_spotlight.sh +++ b/coin/provisioning/common/macos/disable_spotlight.sh @@ -12,6 +12,13 @@ disableSpotlight() { sudo mdutil -E / } +fixUnknownIndexingState() { + echo "Fix unknown indexing state by enabling indexing back one by one" + sudo mdutil -i on / || return 1 + sudo mdutil -i on /System/Volumes/Preboot || return 1 + sudo mdutil -i on /System/Volumes/Data || return 1 +} + # Disabling spotlight tends to be flaky, add some retry for i in $(seq 1 5) do @@ -22,7 +29,8 @@ do echo "Spotlight disabled" break else - echo "Failed to disable spotlight, $i retry..." + echo "Failed to disable spotlight, $i run fix and retry..." + fixUnknownIndexingState sleep 2 fi done diff --git a/coin/provisioning/common/macos/docker.sh b/coin/provisioning/common/macos/docker.sh index 7ae9cdd50a9..ad4aebb21c4 100755 --- a/coin/provisioning/common/macos/docker.sh +++ b/coin/provisioning/common/macos/docker.sh @@ -23,7 +23,7 @@ DownloadURL "$urlCache" "$urlOccifical" "$sha" "/tmp/Docker_${chip}.dmg" sudo hdiutil attach "/tmp/Docker_${chip}.dmg" sudo /Volumes/Docker/Docker.app/Contents/MacOS/install --accept-license --user qt -sudo hdiutil detach /Volumes/Docker +sudo hdiutil detach /Volumes/Docker -force # Add registry mirror for docker images mkdir "$HOME/.docker" diff --git a/coin/provisioning/common/macos/homebrew.sh b/coin/provisioning/common/macos/homebrew.sh index 4f3a93ba8b1..4c50e1f607f 100755 --- a/coin/provisioning/common/macos/homebrew.sh +++ b/coin/provisioning/common/macos/homebrew.sh @@ -1,23 +1,82 @@ #!/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.6.8" +DEFAULT_PKG_VERSION_CHECKSUM="91157b34fcc58eeaf4149f2f2b3063f2904a3d5e5cc3bf84d3c79627ba26afd9" +DEFAULT_GIT_VERSION="bce07c53def3dbe54aa14a88adfc63eb7ba91f48" +DEFAULT_GIT_VERSION_CHECKSUM="c95d3a95a38f9c2cb122335a2101d49af196a1c5" + 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 / + + 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" | CI=1 /tmp/homebrew_install.sh); } 2> /dev/null + rm -f "/Users/qt/pw" +} + +if [ "$INSTALLTYPE" == "GIT" ]; then + installGit +else + installPkg +fi +ARCH_TYPE=$(arch) +# Add homebrew to PATH +if [ "$ARCH_TYPE" == "arm64" ]; then + SetEnvVar "PATH" "/opt/homebrew/bin:\$PATH" +else + SetEnvVar "PATH" "/usr/local/bin:\$PATH" +fi -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..65d7ed6b85e --- /dev/null +++ b/coin/provisioning/common/macos/install-ffmpeg-macos.sh @@ -0,0 +1,69 @@ +#!/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 +# Can take an optional final parameter to control installation directory + +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") +default_prefix="/usr/local/$ffmpeg_name" +prefix="${2:-$default_prefix}" + +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$prefix/lib" + sudo mkdir -p "$prefix" + sudo mv "$install_dir$prefix" "$prefix/../" +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$prefix/lib" + "$fix_relative_dependencies" "$x86_64_install_dir$prefix/lib" + + sudo rm -rf "$prefix" # 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" "$prefix" 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..e6891ca1ee3 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 @@ -9,14 +9,21 @@ set -ex # shellcheck source=../unix/SetEnvVar.sh source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh" -brew install --formula "${BASH_SOURCE%/*}/libiodbc.rb" "$@" +# HOMEBREW_DIR depends on acrhitecture +ARCH_TYPE=$(arch) +if [ "$ARCH_TYPE" == "arm64" ]; then + HOMEBREW_DIR="/opt/homebrew/Library/Taps/local/homebrew-libiodbc/Formula" +else + HOMEBREW_DIR="/usr/local/Homebrew/Library/Taps/local/homebrew-libiodbc/Formula" +fi -# CPLUS_INCLUDE_PATH is set so clang and configure can find libiodbc +brew tap-new local/libiodbc +cp "${BASH_SOURCE%/*}/libiodbc.rb" "$HOMEBREW_DIR/" +brew install local/libiodbc/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..e7c8d8dd878 100755 --- a/coin/provisioning/common/shared/fix_ffmpeg_dependencies.sh +++ b/coin/provisioning/common/shared/fix_ffmpeg_dependencies.sh @@ -2,23 +2,48 @@ # 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 -x +set -euox pipefail lib_dir="$1/lib" additional_suffix="${2:-}" set_rpath="${3:-yes}" +# readelf and patchelf are prerequisite tools for this script. Check +# that they are available. if [ "$(uname -s)" = "Darwin" ]; then # Under Homebrew, binutils package is not symlinked into PATH. # This lets us use readelf provided by Homebrew. - readelf() { "$(brew --prefix binutils)/bin/readelf" "$@"; } + readelf_homebrew_path="$(brew --prefix binutils)/bin/readelf" + if [[ ! -x "$readelf_homebrew_path" ]]; then + echo "Found no valid readelf executable. It is possible it was not correctly installed through Homebrew." + exit 1 + fi + readelf() { "$readelf_homebrew_path" "$@"; } +fi + +if ! command -v readelf; then + echo "Found no valid readelf command. It is possible it was not correctly installed." + exit 1 +fi + +if ! command -v patchelf; then + echo "Found no valid patchelf command. It is possible it was not correctly installed." + exit 1 +fi + +# Get patchelf version +patchelf_version=$(patchelf --version 2>/dev/null | awk '{print $2}') +if [[ "$patchelf_version" == "0.18.0" ]]; then + echo "WARNING: patchelf version 0.18.0 is known to have issues with Android." >&2 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 +55,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/shared/sbom_requirements.txt b/coin/provisioning/common/shared/sbom_requirements.txt index 8eaf1238c8b..9a7a28da937 100644 --- a/coin/provisioning/common/shared/sbom_requirements.txt +++ b/coin/provisioning/common/shared/sbom_requirements.txt @@ -4,3 +4,4 @@ ntia-conformance-checker sbomaudit sbom2doc reuse +cyclonedx-python-lib==11.0.0 diff --git a/coin/provisioning/common/shared/testserver/californium/Dockerfile b/coin/provisioning/common/shared/testserver/californium/Dockerfile index 81d27f9bdef..14ba2e04712 100644 --- a/coin/provisioning/common/shared/testserver/californium/Dockerfile +++ b/coin/provisioning/common/shared/testserver/californium/Dockerfile @@ -4,12 +4,13 @@ RUN apt-get update && apt-get -y install $packages # Get californium-based CoAP test server WORKDIR /root/src -ADD californium-*.tar.gz . +ADD californium-3.8.0.tar.gz . RUN mv californium-* californium WORKDIR /root/src/californium ADD qt_changes.patch ./ RUN patch -p1 < qt_changes.patch -RUN mvn clean install -q -DskipTests +ADD californium-m2deps-3.8.0.tar.gz /root +RUN mvn clean install -o -q -DskipTests WORKDIR / EXPOSE 5683/udp 5684/udp diff --git a/coin/provisioning/common/shared/testserver/docker_images.sh b/coin/provisioning/common/shared/testserver/docker_images.sh index e4782a72396..68d57633d9c 100755 --- a/coin/provisioning/common/shared/testserver/docker_images.sh +++ b/coin/provisioning/common/shared/testserver/docker_images.sh @@ -60,6 +60,16 @@ DownloadURL \ 24f8ca393f26c922739462e4586b8ced1ff75f99bfa795defa34a967b5a4a5a0 \ californium-3.8.0.tar.gz mv californium-3.8.0.tar.gz "$SERVER_PATH/californium/" +# Download cached maven dependencies for californium. +# The dependency archive is built by +# "mvn dependency:go-offline -DskipTests -Dos.detected.classifier=linux-x86_64" +# and archived from /root/.m2 +DownloadURL \ + http://ci-files01-hki.ci.qt.io/input/docker/californium-m2deps-3.8.0.tar.gz \ + http://ci-files01-hki.ci.qt.io/input/docker/californium-m2deps-3.8.0.tar.gz \ + e2fade7dde3cca02bb910eed99a5d8b5cb8ff945240c65bf06ce50411d70d3f2 \ + californium-m2deps-3.8.0.tar.gz +mv californium-m2deps-3.8.0.tar.gz "$SERVER_PATH/californium/" echo 'Building the docker images...' 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/${tarBallPackage}" 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..ec4c71e8231 100755 --- a/coin/provisioning/common/unix/install-ffmpeg-android.sh +++ b/coin/provisioning/common/unix/install-ffmpeg-android.sh @@ -4,123 +4,149 @@ # 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" -target_dir="$HOME" -app_prefix="" -ffmpeg_source_dir="$target_dir/$ffmpeg_name" +source "${BASH_SOURCE%/*}/../unix/ffmpeg-installation-utils.sh" -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) + +assert_envvar_is_populated_dir() { + local envvar="$1" + local value="${!envvar}" + if [ -z "$value" ] || [ ! -d "$value" ] || [ -z "$(find "$value" -mindepth 1 -type f | head -n 1)" ]; then + echo "Environment variable '$envvar' is unset, not a directory, or the directory is empty." + exit 1 + fi +} 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 + local ndk_root=$3 + local openssl_android_path=$4 + + sudo mkdir -p "$target_dir" + + local openssl_include="$openssl_android_path/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_path/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_path/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_path/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_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_latest="FFMPEG_DIR_ANDROID_X86_NDK_LATEST" + envvar_nightly1="FFMPEG_DIR_ANDROID_X86_NDK_NIGHTLY1" + envvar_nightly2="FFMPEG_DIR_ANDROID_X86_NDK_NIGHTLY2" 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_latest="FFMPEG_DIR_ANDROID_X86_64_NDK_LATEST" + envvar_nightly1="FFMPEG_DIR_ANDROID_X86_64_NDK_NIGHTLY1" + envvar_nightly2="FFMPEG_DIR_ANDROID_X86_64_NDK_NIGHTLY2" 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_latest="FFMPEG_DIR_ANDROID_ARM64_NDK_LATEST" + envvar_nightly1="FFMPEG_DIR_ANDROID_ARM64_NDK_NIGHTLY1" + envvar_nightly2="FFMPEG_DIR_ANDROID_ARM64_NDK_NIGHTLY2" +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" +assert_envvar_is_populated_dir "ANDROID_NDK_ROOT_LATEST" +assert_envvar_is_populated_dir "OPENSSL_ANDROID_HOME_LATEST" +build_ffmpeg_android "$target_arch" "$target_dir/latest" "$ANDROID_NDK_ROOT_LATEST" "$OPENSSL_ANDROID_HOME_LATEST" +set_ffmpeg_dir_env_var "$envvar_latest" "$target_dir/latest" + +if [ "${ANDROID_NDK_ROOT_NIGHTLY1}" ]; then + assert_envvar_is_populated_dir "ANDROID_NDK_ROOT_NIGHTLY1" + assert_envvar_is_populated_dir "OPENSSL_ANDROID_HOME_NIGHTLY1" + build_ffmpeg_android "$target_arch" "$target_dir/nightly1" "$ANDROID_NDK_ROOT_NIGHTLY1" "$OPENSSL_ANDROID_HOME_NIGHTLY1" + set_ffmpeg_dir_env_var "$envvar_nightly1" "$target_dir/nightly1" +fi + +if [ "${ANDROID_NDK_ROOT_NIGHTLY2}" ]; then + assert_envvar_is_populated_dir "ANDROID_NDK_ROOT_NIGHTLY2" + assert_envvar_is_populated_dir "OPENSSL_ANDROID_HOME_NIGHTLY2" + build_ffmpeg_android "$target_arch" "$target_dir/nightly2" "$ANDROID_NDK_ROOT_NIGHTLY2" "$OPENSSL_ANDROID_HOME_NIGHTLY2" + set_ffmpeg_dir_env_var "$envvar_nightly2" "$target_dir/nightly2" +fi diff --git a/coin/provisioning/common/unix/install-ffmpeg-ios.sh b/coin/provisioning/common/unix/install-ffmpeg-ios.sh index 21e4d7d8013..cbf00c74648 100755 --- a/coin/provisioning/common/unix/install-ffmpeg-ios.sh +++ b/coin/provisioning/common/unix/install-ffmpeg-ios.sh @@ -5,104 +5,168 @@ # 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" -prefix="/usr/local/ios/ffmpeg" +# Must match or be lower than the minimum iOS version supported by the version of Qt that is +# is currently being built. +readonly MINIMUM_IOS_VERSION="16.0" -if [ ! -d "$ffmpeg_source_dir" ]; -then - InstallFromCompressedFileFromURL "$url_cached" "$url_public" "$sha1" "$target_dir" -fi +source "${BASH_SOURCE%/*}/../unix/ffmpeg-installation-utils.sh" -ffmpeg_config_options=$(cat "${BASH_SOURCE%/*}/../shared/ffmpeg_config_options.txt") +ffmpeg_source_dir=$(download_ffmpeg) +ffmpeg_config_options=$(get_ffmpeg_config_options "shared") +prefix="/usr/local/ios/ffmpeg" +dylib_regex="^@rpath/.*\.dylib$" 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 \ + 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=$MINIMUM_IOS_VERSION" + elif [ "$target_platform" == "x86_64-simulator" ]; then + target_sdk="iphonesimulator" + target_cpu_arch="x86_64" + minos="-mios-simulator-version-min=$MINIMUM_IOS_VERSION" + elif [ "$target_platform" == "arm64-iphoneos" ]; then + target_sdk="iphoneos" + target_cpu_arch="arm64" + minos="-miphoneos-version-min=$MINIMUM_IOS_VERSION" + else + echo "Error when building FFmpeg for iOS. Unknown parameter given for target_platform: '${target_platform}'" + exit 1 + fi + + local build_dir="$ffmpeg_source_dir/build_ios/$target_platform" + sudo mkdir -p "$build_dir" + pushd "$build_dir" + + # 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() { - for dir in "$@"; do - echo "Processing files in $dir ..." - pushd "$dir" >/dev/null - find . -type l -name '*.*.dylib' | while read -r f; do - dst="${f:1}" - dstdir="$(dirname "$dst")" - sudo mkdir -p "$dstdir" - - if [[ ! -f "$dst" ]]; then - echo "/dev/null 2>&1; then - echo "Lipoing $dir/$f into $dst" - sudo lipo -create -output "$dst" "$dst" "$f" - elif ! diff "$f" "$dst"; then - echo "Error: File $f in $dir doesn't match destination $dst" - exit 1 - fi - done - echo "LS" - popd >/dev/null +build_info_plist() { + local file_path="$1" + local framework_name="$2" + local framework_id="$3" + + local minimum_version_key="MinimumOSVersion" + 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_IOS_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$prefix" + 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 cp -r $1$prefix/include $prefix - echo "LS 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$prefix/framework/${framework_name}.framework" + local fw_b="$ffmpeg_source_dir/build_ios/${target_platform_b}/installed$prefix/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" -build_ffmpeg_ios "arm64" +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 + +# xcframeworks are already installed directly into the target output directory. +# We need to install headers +sudo cp -r "$ffmpeg_source_dir/build_ios/arm64-iphoneos/installed$prefix/include" $prefix +# The set_ffmpeg_dir_env_var requires the presence of the "lib" subfolder in order to validate +# our FFmpeg install. On iOS we don't use this subfolder, we only rely on the "framework" subfolder. +# So we create a dummy "lib" folder to pass the check. +sudo mkdir -p "${prefix}/lib" -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..ce15d239798 100755 --- a/coin/provisioning/common/unix/install-patchelf.sh +++ b/coin/provisioning/common/unix/install-patchelf.sh @@ -4,6 +4,8 @@ source "${BASH_SOURCE%/*}/../unix/InstallFromCompressedFileFromURL.sh" +# version 0.18.0 doesn't work correctly for Android binaries, so we use 0.17.2 +# See patchelf bugreport: https://github.com/NixOS/patchelf/issues/576. 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..1f4ee37acf1 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" + # 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_${version}-based-mac.7z" - url_cached="http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-release_${version}-based-mac.7z" - sha1="9ea511576645ef4abee6d4c27550406e929334d5" + url="https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-llvmorg-${version}-macos-universal.7z" + url_cached="http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-llvmorg-${version}-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_${version}-based-linux-Rhel9.2-gcc10.0-x86_64.7z" - url_cached="http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-release_${version}-based-linux-Rhel9.2-gcc10.0-x86_64.7z" - sha1="32c29d8df726b035e0a97e767c5c3e392aa331e1" + url="https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-llvmorg-${version}-linux-Rhel9.4-gcc11.4-x86_64.7z" + url_cached="http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-llvmorg-${version}-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_${version}-based-linux-Debian11.6-gcc10.0-arm64.7z" - url_cached="http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-release_${version}-based-linux-Debian11.6-gcc10.0-arm64.7z" - sha1="8d876f60c2fe9c55e18fbac0be2acb70bd20d5d1" + url="https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-llvmorg-${version}-linux-Debian11.6-gcc10.0-arm64.7z" + url_cached="http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-llvmorg-${version}-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_${version}-based-linux-Ubuntu24.04-gcc11.2-arm64.7z" - url_cached="http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-release_${version}-based-linux-Ubuntu24.04-gcc11.2-arm64.7z" - sha1="5a7bda4fbd2c52ae66557034591d977ba617482c" + url="https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-llvmorg-${version}-linux-Ubuntu24.04-gcc11.2-arm64.7z" + url_cached="http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-llvmorg-${version}-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_${version}-based-linux-Ubuntu22.04-gcc11.2-x86_64.7z" - url_cached="http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-release_${version}-based-linux-Ubuntu22.04-gcc11.2-x86_64.7z" - sha1="b9f8735a148342174d7d763b5475175cd0827441" + url="https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-llvmorg-${version}-linux-Ubuntu22.04-gcc11.2-x86_64.7z" + url_cached="http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-llvmorg-${version}-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_${version}-based-linux-Rhel8.8-gcc10.0-x86_64.7z" - url_cached="http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-release_${version}-based-linux-Rhel8.8-gcc10.0-x86_64.7z" - sha1="a51c5562c9b071250e7971390d55ef21924271ca" + url="https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-llvmorg-${version}-linux-Rhel8.10-gcc10.0-x86_64.7z" + url_cached="http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-llvmorg-${version}-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 deleted file mode 100755 index 0ad79315e09..00000000000 --- a/coin/provisioning/common/unix/openssl_3_for_android.sh +++ /dev/null @@ -1,76 +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 install prebuilt OpenSSL which was built against Android NDK 25. -# OpenSSL build will fail with Android NDK 22, because it's missing platforms and sysroot directories - -set -ex -# shellcheck source=../unix/DownloadURL.sh -source "${BASH_SOURCE%/*}/../unix/DownloadURL.sh" -# shellcheck source=../unix/SetEnvVar.sh -source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh" - -version="3.0.7" -ndkVersionLatest="r26b" -ndkVersionDefault=$ndkVersionLatest -prebuiltOpensslNdkShaLatest="ea925d5a5b696916fb3650403a2eb3189c52b5ce" -prebuiltOpensslNdkShaDefault=$prebuiltOpensslNdkShaLatest - -: <<'EOB' SOURCE BUILD INSTRUCTIONS - Openssl prebuilt was made using Android NDK 25 -# 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. -if uname -a |grep -q "Ubuntu"; then - # shellcheck disable=SC1090 - grep -e "^export" "$HOME/.profile" > $exports_file && source $exports_file - rm -rf "$exports_file" -else - # shellcheck disable=SC1090 - grep -e "^export" "$HOME/.bashrc" > $exports_file && source $exports_file - rm -rf "$exports_file" -fi - -# ANDROID_NDK_ROOT is required during Configure -export ANDROID_NDK_ROOT=/opt/android/android-ndk-r26b - -officialUrl="https://www.openssl.org/source/openssl-$version.tar.gz" -cachedUrl="http://ci-files01-hki.ci.qt.io/input/openssl/openssl-$version.tar.gz" -targetFile="/tmp/openssl-$version.tar.gz" -sha="f20736d6aae36bcbfa9aba0d358c71601833bf27" -opensslHome="${HOME}/openssl/android/openssl-${version}" -DownloadURL "$cachedUrl" "$officialUrl" "$sha" "$targetFile" -mkdir -p "${HOME}/openssl/android/" -tar -xzf "$targetFile" -C "${HOME}/openssl/android/" -if uname -a |grep -q "Darwin"; then - TOOLCHAIN=${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/darwin-x86_64/bin -else - TOOLCHAIN=${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/linux-x86_64/bin -fi -cd "$opensslHome" -PATH=$TOOLCHAIN:$PATH CC=clang ./Configure android-arm -PATH=$TOOLCHAIN:$PATH CC=clang make build_generated -EOB - -function InstallPrebuiltOpenssl() { - - ndkVersion=$1 - sha=$2 - - opensslHome="${HOME}/prebuilt-openssl-${version}-for-android-ndk-${ndkVersion}" - if [[ ! -d ${opensslHome} ]]; then - prebuiltUrl="http://ci-files01-hki.ci.qt.io/input/openssl/prebuilt-openssl-${version}-for-android-ndk-${ndkVersion}.zip" - targetFile="/tmp/prebuilt-openssl-${version}-for-android-ndk-${ndkVersion}.zip" - - DownloadURL "$prebuiltUrl" "$prebuiltUrl" "$sha" "$targetFile" - unzip -o "$targetFile" -d "${HOME}" - sudo rm -f "$targetFile" - fi -} - -InstallPrebuiltOpenssl $ndkVersionDefault $prebuiltOpensslNdkShaDefault -SetEnvVar "OPENSSL_ANDROID_HOME_DEFAULT" "$opensslHome" -InstallPrebuiltOpenssl $ndkVersionLatest $prebuiltOpensslNdkShaLatest -SetEnvVar "OPENSSL_ANDROID_HOME_LATEST" "$opensslHome" - -echo "OpenSSL for Android = $version" >> ~/versions.txt diff --git a/coin/provisioning/common/unix/openssl_for_android.sh b/coin/provisioning/common/unix/openssl_for_android.sh index d555e0ccd9b..ef1bdc2b8b2 100755 --- a/coin/provisioning/common/unix/openssl_for_android.sh +++ b/coin/provisioning/common/unix/openssl_for_android.sh @@ -1,5 +1,5 @@ #!/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 # This script install prebuilt OpenSSL which was built against Android NDK 25. @@ -11,13 +11,19 @@ source "${BASH_SOURCE%/*}/../unix/DownloadURL.sh" # shellcheck source=../unix/SetEnvVar.sh source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh" -version="3.0.7" -ndkVersionLatest="r26b" -ndkVersionDefault=$ndkVersionLatest -prebuiltOpensslNdkShaLatest="ea925d5a5b696916fb3650403a2eb3189c52b5ce" -prebuiltOpensslNdkShaDefault=$prebuiltOpensslNdkShaLatest +sslVersionForLatest="3.0.7" +ndkVersionLatest="r27c" +prebuiltOpensslShaLatest="733cff853b6ee7738e78b90f46b5f028c8490e1e" -: <<'EOB' SOURCE BUILD INSTRUCTIONS - Openssl prebuilt was made using Android NDK r26b +ndkVersionNightly1=$ndkVersionLatest +sslVersionForNightly1=$sslVersionForLatest +prebuiltOpensslShaNightly1=$prebuiltOpensslShaLatest + +ndkVersionNightly2=$ndkVersionLatest +sslVersionForNightly2=$sslVersionForLatest +prebuiltOpensslShaNightly2=$prebuiltOpensslShaLatest + +: <<'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. @@ -31,11 +37,11 @@ else rm -rf "$exports_file" fi -officialUrl="https://www.openssl.org/source/openssl-$version.tar.gz" -cachedUrl="http://ci-files01-hki.ci.qt.io/input/openssl/openssl-$version.tar.gz" -targetFile="/tmp/openssl-$version.tar.gz" +officialUrl="https://www.openssl.org/source/openssl-$sslVersionForLatest.tar.gz" +cachedUrl="http://ci-files01-hki.ci.qt.io/input/openssl/openssl-$sslVersionForLatest.tar.gz" +targetFile="/tmp/openssl-$sslVersionForLatest.tar.gz" sha="f20736d6aae36bcbfa9aba0d358c71601833bf27" -opensslHome="${HOME}/openssl/android/openssl-${version}" +opensslHome="${HOME}/openssl/android/openssl-${sslVersionForLatest}" DownloadURL "$cachedUrl" "$officialUrl" "$sha" "$targetFile" mkdir -p "${HOME}/openssl/android/" tar -xzf "$targetFile" -C "${HOME}/openssl/android/" @@ -53,11 +59,12 @@ function InstallPrebuiltOpenssl() { ndkVersion=$1 sha=$2 + sslVersion=$3 - opensslHome="${HOME}/prebuilt-openssl-${version}-for-android-ndk-${ndkVersion}" + opensslHome="${HOME}/prebuilt-openssl-${sslVersion}-for-android-ndk-${ndkVersion}" if [[ ! -d ${opensslHome} ]]; then - prebuiltUrl="http://ci-files01-hki.ci.qt.io/input/openssl/prebuilt-openssl-${version}-for-android-ndk-${ndkVersion}.zip" - targetFile="/tmp/prebuilt-openssl-${version}-for-android-ndk-${ndkVersion}.zip" + prebuiltUrl="http://ci-files01-hki.ci.qt.io/input/openssl/prebuilt-openssl-${sslVersion}-for-android-ndk-${ndkVersion}.zip" + targetFile="/tmp/prebuilt-openssl-${sslVersion}-for-android-ndk-${ndkVersion}.zip" DownloadURL "$prebuiltUrl" "$prebuiltUrl" "$sha" "$targetFile" unzip -o "$targetFile" -d "${HOME}" @@ -65,9 +72,18 @@ function InstallPrebuiltOpenssl() { fi } -InstallPrebuiltOpenssl $ndkVersionDefault $prebuiltOpensslNdkShaDefault -SetEnvVar "OPENSSL_ANDROID_HOME_DEFAULT" "$opensslHome" -InstallPrebuiltOpenssl $ndkVersionLatest $prebuiltOpensslNdkShaLatest -SetEnvVar "OPENSSL_ANDROID_HOME_LATEST" "$opensslHome" +if [ "$ndkVersionNightly1" != "$ndkVersionLatest" ]; then + InstallPrebuiltOpenssl $ndkVersionNightly1 $prebuiltOpensslShaNightly1 $sslVersionForNightly1 + SetEnvVar "OPENSSL_ANDROID_HOME_NIGHTLY1" "$opensslHome" + echo "OpenSSL for Android $ndkVersionNightly1 = $sslVersionForNightly1" >> ~/versions.txt +fi -echo "OpenSSL for Android = $version" >> ~/versions.txt +if [ "$ndkVersionNightly2" != "$ndkVersionLatest" ]; then + InstallPrebuiltOpenssl $ndkVersionNightly2 $prebuiltOpensslShaNightly2 $sslVersionForNightly2 + SetEnvVar "OPENSSL_ANDROID_HOME_NIGHTLY2" "$opensslHome" + echo "OpenSSL for Android $ndkVersionNightly2 = $sslVersionForNightly2" >> ~/versions.txt +fi + +InstallPrebuiltOpenssl $ndkVersionLatest $prebuiltOpensslShaLatest $sslVersionForLatest +SetEnvVar "OPENSSL_ANDROID_HOME_LATEST" "$opensslHome" +echo "OpenSSL for Android $ndkVersionLatest = $sslVersionForLatest" >> ~/versions.txt 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..88811f12536 100644 --- a/coin/provisioning/common/windows/android-openssl.ps1 +++ b/coin/provisioning/common/windows/android-openssl.ps1 @@ -1,4 +1,4 @@ -# 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 # Requires: 7z, perl and msys @@ -15,26 +15,38 @@ if (Is64BitWinHost) { # Msys need to be installed to target machine # 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_default = "$ndk_version_latest" -$openssl_compressed = Get-DownloadLocation ("openssl-${openssl_version}.tar.gz") -$openssl_sha1 = "f20736d6aae36bcbfa9aba0d358c71601833bf27" -$prebuilt_sha1_ndk_latest = "ea925d5a5b696916fb3650403a2eb3189c52b5ce" -$prebuilt_sha1_ndk_default = "$prebuilt_sha1_ndk_latest" -$destination_prefix = "C:\Utils\prebuilt-openssl-${openssl_version}-for-android-ndk" +$openssl_version_latest = "3.0.7" +$ndk_version_latest = "r27c" +$prebuilt_ssl_sha1_latest = "733cff853b6ee7738e78b90f46b5f028c8490e1e" +$openssl_sha1_latest = "f20736d6aae36bcbfa9aba0d358c71601833bf27" -function Install($1, $2) { - $ndk_version = $1 - $prebuilt_sha1 = $2 +$openssl_version_nightly1 = $openssl_version_latest +$ndk_version_nightly1 = $ndk_version_latest +$prebuilt_ssl_sha1_nightly1 = $prebuilt_ssl_sha1_latest +$openssl_sha1_nightly1 = $openssl_sha1_latest - # msys unix style paths - $openssl_path = "/c/Utils/openssl-android-master" - $ndk_path = "/c/Utils/Android/android-ndk-${ndk_version}" - $cc_path = "$ndk_path/toolchains/llvm/prebuilt/windows-x86_64/bin" +$openssl_version_nightly2 = $openssl_version_latest +$ndk_version_nightly2 = $ndk_version_latest +$prebuilt_ssl_sha1_nightly2 = $prebuilt_ssl_sha1_latest +$openssl_sha1_nightly2 = $openssl_sha1_latest - $prebuilt_url_openssl = "\\ci-files01-hki.ci.qt.io\provisioning\openssl\prebuilt-openssl-${openssl_version}-for-android-ndk-${ndk_version}.zip" - $prebuilt_zip_openssl = Get-DownloadLocation ("prebuilt-openssl-${openssl_version}-for-android-ndk-${ndk_version}.zip") +function Install($1, $2, $3, $4) { + + $openssl_version = $1 + $ndk_version = $2 + $prebuilt_sha1 = $3 + $openssl_sha1 = $4 + + Write-Host "Installing OpenSSL ${openssl_version} for Android NDK ${ndk_version}" + + $openssl_compressed = Get-DownloadLocation ("openssl-${openssl_version}.tar.gz") + # msys unix style paths + $openssl_path = "/c/Utils/openssl-android-master" + $ndk_path = "/c/Utils/Android/android-ndk-${ndk_version}" + $cc_path = "$ndk_path/toolchains/llvm/prebuilt/windows-x86_64/bin" + + $prebuilt_url_openssl = "\\ci-files01-hki.ci.qt.io\provisioning\openssl\prebuilt-openssl-${openssl_version}-for-android-ndk-${ndk_version}.zip" + $prebuilt_zip_openssl = Get-DownloadLocation ("prebuilt-openssl-${openssl_version}-for-android-ndk-${ndk_version}.zip") if ((Test-Path $prebuilt_url_openssl)) { Write-Host "Install prebuilt OpenSSL for Android" @@ -69,34 +81,36 @@ 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" - - $make_install = Start-Process -NoNewWindow -Wait -PassThru -ErrorAction Stop -FilePath "$msys_bash" -ArgumentList ("-lc", "`"yes | pacman -S make`"") - CheckExitCode $make_install + $make_install = Start-Process -NoNewWindow -Wait -PassThru -ErrorAction Stop -FilePath "$msys_bash" -ArgumentList ("-lc", "`"yes | pacman -S make`"") + CheckExitCode $make_install - $configure = Start-Process -NoNewWindow -Wait -PassThru -ErrorAction Stop -FilePath "$msys_bash" -ArgumentList ("-lc", "`"pushd $openssl_path; ANDROID_NDK_ROOT=$ndk_path PATH=${cc_path}:`$PATH CC=clang $openssl_path/Configure shared android-arm`"") - CheckExitCode $configure + $configure = Start-Process -NoNewWindow -Wait -PassThru -ErrorAction Stop -FilePath "$msys_bash" -ArgumentList ("-lc", "`"pushd $openssl_path; ANDROID_NDK_ROOT=$ndk_path PATH=${cc_path}:`$PATH CC=clang $openssl_path/Configure shared android-arm`"") + CheckExitCode $configure - $make = Start-Process -NoNewWindow -Wait -PassThru -ErrorAction Stop -FilePath "$msys_bash" -ArgumentList ("-lc", "`"pushd $openssl_path; ANDROID_NDK_ROOT=$ndk_path PATH=${cc_path}:`$PATH CC=clang make -f $openssl_path/Makefile build_generated`"") - CheckExitCode $make + $make = Start-Process -NoNewWindow -Wait -PassThru -ErrorAction Stop -FilePath "$msys_bash" -ArgumentList ("-lc", "`"pushd $openssl_path; ANDROID_NDK_ROOT=$ndk_path PATH=${cc_path}:`$PATH CC=clang make -f $openssl_path/Makefile build_generated`"") + CheckExitCode $make - Pop-Location - Remove-item C:\Utils\tmp -Recurse -Confirm:$false + Pop-Location + Remove-item C:\Utils\tmp -Recurse -Confirm:$false } + return "C:\Utils\prebuilt-openssl-${openssl_version}-for-android-ndk-${ndk_version}" + } # Install NDK Default version -Install $ndk_version_default $prebuilt_sha1_ndk_default - -if (Test-Path -Path ${destination_prefix}-${ndk_version_latest}) { - Write-Host "OpenSSL for Android Latest version is the same than Default. Installation done." -} else { - # Install NDK Latest version - Install $ndk_version_latest $prebuilt_sha1_ndk_latest +$ndk_ssl_path = Install $openssl_version_latest $ndk_version_latest $prebuilt_ssl_sha1_latest $openssl_sha1_latest +Set-EnvironmentVariable "OPENSSL_ANDROID_HOME_LATEST" "$ndk_ssl_path" +Write-Output "Android OpenSSL $openssl_version_latest for NDK $ndk_version_latest" >> ~/versions.txt + +if ($ndk_version_nightly1 -ne $ndk_version_latest) { + $ndk_ssl_path = Install $openssl_version_nightly1 $ndk_version_nightly1 $prebuilt_ssl_sha1_nightly1 $openssl_sha1_nightly1 + Set-EnvironmentVariable "OPENSSL_ANDROID_HOME_NIGHTLY1" "$ndk_ssl_path" + Write-Output "Android OpenSSL $openssl_version_nightly1 for NDK $ndk_version_nightly1" >> ~/versions.txt } -Set-EnvironmentVariable "OPENSSL_ANDROID_HOME_DEFAULT" "${destination_prefix}-${ndk_version_default}" -Set-EnvironmentVariable "OPENSSL_ANDROID_HOME_LATEST" "${destination_prefix}-${ndk_version_latest}" -Write-Output "Android OpenSSL = $openssl_version" >> ~/versions.txt +if ($ndk_version_nightly2 -ne $ndk_version_latest) { + $ndk_ssl_path = Install $openssl_version_nightly2 $ndk_version_nightly2 $prebuilt_ssl_sha1_nightly2 $openssl_sha1_nightly2 + Set-EnvironmentVariable "OPENSSL_ANDROID_HOME_NIGHTLY2" "$ndk_ssl_path" + Write-Output "Android OpenSSL $openssl_version_nightly2 for NDK $ndk_version_nightly2" >> ~/versions.txt +} diff --git a/coin/provisioning/common/windows/android.ps1 b/coin/provisioning/common/windows/android.ps1 index b594238c9f5..d67b86f17a4 100644 --- a/coin/provisioning/common/windows/android.ps1 +++ b/coin/provisioning/common/windows/android.ps1 @@ -1,4 +1,4 @@ -# Copyright (C) 2022 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 . "$PSScriptRoot\helpers.ps1" @@ -10,28 +10,40 @@ # That's why we need to use Andoid-21 API version in Qt 5.9. # NDK -$ndkVersionLatest = "r26b" -$ndkVersionDefault = $ndkVersionLatest -$ndkChecksumLatest = "17453c61a59e848cffb8634f2c7b322417f1732e" -$ndkChecksumDefault = $ndkChecksumLatest +$ndkZip = "C:\Windows\Temp\android_ndk.zip" + +$ndkVersionLatest = "r27c" +$ndkChecksumLatest = "ac5f7762764b1f15341094e148ad4f847d050c38" $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" -$ndkCachedUrlDefault = "\\ci-files01-hki.ci.qt.io\provisioning\android\android-ndk-$ndkVersionDefault-windows.zip" -$ndkOfficialUrlDefault = "https://dl.google.com/android/repository/android-ndk-$ndkVersionDefault-windows.zip" -$ndkZip = "C:\Windows\Temp\android_ndk.zip" + +# Non-latest (but still supported by the qt/qt5 branch) NDKs are installed for nightly targets in: +# coin/platform_configs/nightly_android.yaml + +$ndkVersionNightly1 = $ndkVersionLatest # Same version = skip NDK install for nightly +$ndkChecksumNightly1 = $ndkChecksumLatest +$ndkCachedUrlNightly1 = "\\ci-files01-hki.ci.qt.io\provisioning\android\android-ndk-$ndkVersionNightly1-windows.zip" +$ndkOfficialUrlNightly1 = "https://dl.google.com/android/repository/android-ndk-$ndkVersionNightly1-windows.zip" + +$ndkVersionNightly2 = $ndkVersionLatest +$ndkChecksumNightly2 = $ndkChecksumLatest +$ndkCachedUrlNightly2 = "\\ci-files01-hki.ci.qt.io\provisioning\android\android-ndk-$ndkVersionNightly2-windows.zip" +$ndkOfficialUrlNightly2 = "https://dl.google.com/android/repository/android-ndk-$ndkVersionNightly2-windows.zip" # SDK $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" $cmdFolder = "c:\Utils\Android\cmdline-tools" $sdkZip = "c:\Windows\Temp\$toolsFile" +New-Item -ItemType Directory -Path C:\Utils\Android\ +New-Item -ItemType Directory -Path C:\Windows\Temp\android_extract function Install($1, $2, $3, $4) { $cacheUrl = $1 @@ -50,21 +62,24 @@ function Install($1, $2, $3, $4) { return "C:\Utils\Android\$baseDirectory" } -New-Item -ItemType Directory -Path C:\Utils\Android\ -New-Item -ItemType Directory -Path C:\Windows\Temp\android_extract -Write-Host "Installing Android NDK $ndkVersionDefault" -$ndkFolderDefault = Install $ndkCachedUrlDefault $ndkZip $ndkChecksumDefault $ndkOfficialUrlDefault -Set-EnvironmentVariable "ANDROID_NDK_ROOT_DEFAULT" $ndkFolderDefault +Write-Host "Installing Android NDK $nkdVersionLatest" +$ndkFolderLatest = Install $ndkCachedUrlLatest $ndkZip $ndkChecksumLatest $ndkOfficialUrlLatest +Set-EnvironmentVariable "ANDROID_NDK_ROOT_LATEST" $ndkFolderLatest # To be used by vcpkg -Set-EnvironmentVariable "ANDROID_NDK_HOME" $ndkFolderDefault -$env:ANDROID_NDK_HOME = "$ndkFolderDefault" - -if ($ndkVersionDefault -eq $ndkVersionLatest) { - Write-Host "Android Latest version is the same than Default. NDK installation done." -} else { - Write-Host "Installing Android NDK $nkdVersionLatest" - $ndkFolderLatest = Install $ndkCachedUrlLatest $ndkZip $ndkChecksumLatest $ndkOfficialUrlLatest - Set-EnvironmentVariable "ANDROID_NDK_ROOT_LATEST" $ndkFolderLatest +Set-EnvironmentVariable "ANDROID_NDK_HOME" $ndkFolderLatest + +if ($ndkVersionNightly1 -ne $ndkVersionLatest) { + Write-Host "Installing Android NDK $ndkVersionNightly1" + $ndkFolderNightly = Install $ndkCachedUrlNightly1 $ndkZip $ndkChecksumNightly1 $ndkOfficialUrlNightly1 + Set-EnvironmentVariable "ANDROID_NDK_ROOT_NIGHTLY1" $ndkFolderNightly + Write-Output "Android NDK = $ndkVersionNightly1" >> ~/versions.txt +} + +if ($ndkVersionNightly2 -ne $ndkVersionLatest) { + Write-Host "Installing Android NDK $ndkVersionNightly2" + $ndkFolderNightly = Install $ndkCachedUrlNightly2 $ndkZip $ndkChecksumNightly2 $ndkOfficialUrlNightly2 + Set-EnvironmentVariable "ANDROID_NDK_ROOT_NIGHTLY2" $ndkFolderNightly + Write-Output "Android NDK = $ndkVersionNightly2" >> ~/versions.txt } $toolsFolder = Install $toolsCachedUrl $sdkZip $toolsChecksum $toolsOfficialUrl @@ -103,4 +118,4 @@ cmd /c "dir C:\Utils\android" Write-Output "Android SDK tools= $toolsVersion" >> ~/versions.txt Write-Output "Android SDK Build Tools = $sdkBuildToolsVersion" >> ~/versions.txt Write-Output "Android SDK Api Level = $sdkApiLevel" >> ~/versions.txt -Write-Output "Android NDK = $ndkVersionDefault" >> ~/versions.txt +Write-Output "Android NDK = $ndkVersionLatest" >> ~/versions.txt 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-netadapterlso.ps1 b/coin/provisioning/common/windows/disable-netadapterlso.ps1 deleted file mode 100644 index 29c1bbbd086..00000000000 --- a/coin/provisioning/common/windows/disable-netadapterlso.ps1 +++ /dev/null @@ -1,3 +0,0 @@ -Get-NetAdapter | Disable-NetAdapterLso -Start-Sleep -s 15 # Give windows some time to adjust network settings -Get-NetAdapter 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/disable-windows-mdns.ps1 b/coin/provisioning/common/windows/disable-windows-mdns.ps1 new file mode 100644 index 00000000000..db8c4330d40 --- /dev/null +++ b/coin/provisioning/common/windows/disable-windows-mdns.ps1 @@ -0,0 +1,27 @@ +# 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 device discovery services related to Windows mDNS multicast + +. "$PSScriptRoot\helpers.ps1" + +# Miracast / Wireless Display +$regPath2 = "HKLM:\Software\Policies\Microsoft\Windows\Connect" +New-Item -Path $regPath2 -Force | Out-Null +Set-ItemProperty -Path $regPath2 -Name "DisableWirelessDisplay" -Type DWord -Value 1 + +# Function Discovery Resource Publication, printer/service publisher +Stop-Service -Name FDResPub +Set-Service -Name FDResPub -StartupType Disabled + +# Windows Media Player Network Sharing Service +Stop-Service -Name WMPNetworkSvc -Force +Set-Service -Name WMPNetworkSvc -StartupType Disabled + +# Function Discovery Provider Host +Stop-Service -Name fdPHost +Set-Service -Name fdPHost -StartupType Disabled + +# Windows Connect Now +Stop-Service -Name wcncsvc +Set-Service -Name wcncsvc -StartupType Disabled 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_${zipVersion}.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/helpers.ps1 b/coin/provisioning/common/windows/helpers.ps1 index ad01c499489..35583b3b31a 100644 --- a/coin/provisioning/common/windows/helpers.ps1 +++ b/coin/provisioning/common/windows/helpers.ps1 @@ -189,6 +189,8 @@ function Set-EnvironmentVariable Write-Host "Setting environment variable `"$($Key)`" to `"$($Value)`"" [Environment]::SetEnvironmentVariable($Key, $Value, [EnvironmentVariableTarget]::Machine) + # Make the envvar immediately available to subsequent scripts run in the same session. + [Environment]::SetEnvironmentVariable($Key, $Value, [EnvironmentVariableTarget]::Process) } function Is64BitWinHost @@ -358,7 +360,7 @@ function EnterVSDevShell { Write-Host "Enter VisualStudio developer shell (-host_arch=$HostArch -arch=$Arch -VsInstallPath='$VSPath')" try { Import-Module "$VSPath\Common7\Tools\Microsoft.VisualStudio.DevShell.dll" - Enter-VsDevShell -VsInstallPath $VSPath -DevCmdArguments "-host_arch=$HostArch -arch=$Arch -no_logo" + Enter-VsDevShell -SkipAutomaticLocation -VsInstallPath $VSPath -DevCmdArguments "-host_arch=$HostArch -arch=$Arch -no_logo" } catch { Write-Host "Failed to enter VisualStudio DevShell" return $false @@ -380,3 +382,22 @@ function Invoke-MtCommand { & $Env:SystemRoot\system32\cmd.exe /c $cmdLine | Write-Output Remove-Item $tempFile } + +function Invoke-NMake { + param([string[]]$NmakeArgs) + # Temporarily remove MAKE flags for NMAKE process + $old = @{ + MAKEFLAGS = (Get-Item Env:MAKEFLAGS -ErrorAction Ignore).Value + MFLAGS = (Get-Item Env:MFLAGS -ErrorAction Ignore).Value + MAKE = (Get-Item Env:MAKE -ErrorAction Ignore).Value + NMAKEFLAGS = (Get-Item Env:NMAKEFLAGS -ErrorAction Ignore).Value + } + foreach ($n in $old.Keys) {Remove-Item "Env:$n" -ErrorAction SilentlyContinue} + try {& nmake @NmakeArgs} + finally { + foreach ($n in $old.Keys) { + if ($old[$n]) {Set-EnvironmentVariable -Key "$n" -Value $old[$n]} + else {Remove-Item "Env:$n" -ErrorAction SilentlyContinue} + } + } +} diff --git a/coin/provisioning/common/windows/install-ffmpeg.ps1 b/coin/provisioning/common/windows/install-ffmpeg.ps1 index f2c36417878..7f0ee7cbd15 100644 --- a/coin/provisioning/common/windows/install-ffmpeg.ps1 +++ b/coin/provisioning/common/windows/install-ffmpeg.ps1 @@ -2,13 +2,14 @@ # SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only . "$PSScriptRoot\helpers.ps1" +. "$PSScriptRoot\zlib-helpers.ps1" # 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" @@ -29,6 +30,52 @@ function GetFfmpegDefaultConfiguration { return $defaultConfiguration } +# Returns the absolute installation path of FFmpeg for this build +# variant. +function ResolveFFmpegInstallDir { + param( + [Parameter(Mandatory = $true)] + [ValidateNotNullOrEmpty()] + [string]$buildSystem, + + [Parameter(Mandatory = $false)] + [ValidateNotNullOrEmpty()] + [string]$ndkVer + ) + + if ($ndkVer) { + $prefix = "installed-ndk-$ndkVer" + } else { + $prefix = "installed" + } + + return "C:\$ffmpeg_name\build\$buildSystem\$prefix" +} + +# Returns the absolute installation path of FFmpeg for this build +# variant. Returns a path that is compatible with MSYS. +# +# TODO: There is some code duplications here. Make a helper function +# that translates native Windows paths into MSYS compatible paths. +function ResolveFFmpegInstallDirMsys { + param( + [Parameter(Mandatory = $true)] + [ValidateNotNullOrEmpty()] + [string]$buildSystem, + + [Parameter(Mandatory = $false)] + [ValidateNotNullOrEmpty()] + [string]$ndkVer + ) + if ($ndkVer) { + $prefix = "installed-ndk-$ndkVer" + } else { + $prefix = "installed" + } + + return "/c/$ffmpeg_name/build/$buildSystem/$prefix" +} + function InstallFfmpeg { Param ( [string]$config, @@ -37,7 +84,8 @@ function InstallFfmpeg { [string]$additionalPath, [string]$ffmpegDirEnvVar, [string]$toolchain, - [bool]$shared + [bool]$shared, + [string]$ndk_ver # Optional param for installing each ffmpeg build with different Android NDK ) Write-Host "Configure and compile FFmpeg for $buildSystem with configuration: $config" @@ -50,9 +98,17 @@ function InstallFfmpeg { $env:MSYS2_PATH_TYPE = "inherit" $env:MSYSTEM = $msystem + if ($ndk_ver) { + $installDir = ResolveFFmpegInstallDir -buildSystem $buildSystem -ndkVer $ndk_ver + $installDirForMsys = ResolveFFmpegInstallDirMsys -buildSystem $buildSystem -ndkVer $ndk_ver + } else { + $installDir = ResolveFFmpegInstallDir -buildSystem $buildSystem + $installDirForMsys = ResolveFFmpegInstallDirMsys -buildSystem $buildSystem + } + $cmd = "cd /c/$ffmpeg_name" $cmd += " && mkdir -p build/$buildSystem && cd build/$buildSystem" - $cmd += " && ../../configure --prefix=installed $config" + $cmd += " && ../../configure --prefix=$installDirForMsys $config" if ($toolchain) { $cmd += " --toolchain=$toolchain" } @@ -72,7 +128,7 @@ function InstallFfmpeg { return $false } - Set-EnvironmentVariable $ffmpegDirEnvVar "C:\$ffmpeg_name\build\$buildSystem\installed" + Set-EnvironmentVariable $ffmpegDirEnvVar $installDir return $true } @@ -105,6 +161,13 @@ function InstallMsvcFfmpeg { } } + $zlibPath = GetZlibPathByString -TargetArchitecture $arch + $zlibPath = $zlibPath -replace '\\', '/' + + $config += " --enable-zlib" + $config += " --extra-cflags=`"-I$zlibPath`"" + $config += " --extra-ldflags=`"-LIBPATH:$zlibPath`"" + $result = EnterVSDevShell -HostArch $hostArch -Arch $arch if (-Not $result) { return $false @@ -138,16 +201,21 @@ function InstallLlvmMingwFfmpeg { } function InstallAndroidArmv7 { + param ( + [string]$ndk_root, + [string]$ffmpeg_dir_android_envvar_name, + [string]$ndk_version, + [string]$android_openssl_path # OpenSSL is built for Android using NDK, NDK versions for OpenSSL+FFmpeg should match + ) $shared=$true $target_toolchain_arch="armv7a-linux-androideabi" $target_arch="armv7-a" $target_cpu="armv7-a" $api_version="24" - $ndkVersionLatest = "r26b" - $ndkFolderLatest = "/c/Utils/Android/android-ndk-$ndkVersionLatest" + $ndk_dir = $ndk_root -replace '\\', '/' -replace '^C:', '/c' - $toolchain="${ndkFolderLatest}/toolchains/llvm/prebuilt/windows-x86_64" + $toolchain="${ndk_dir}/toolchains/llvm/prebuilt/windows-x86_64" $toolchain_bin="${toolchain}/bin" $sysroot="${toolchain}/sysroot" $cxx="${toolchain_bin}/${target_toolchain_arch}${api_version}-clang++" @@ -157,8 +225,7 @@ function InstallAndroidArmv7 { $ranlib="${toolchain_bin}/llvm-ranlib.exe" $nm="${toolchain_bin}/llvm-nm.exe" $strip="${toolchain_bin}/llvm-strip.exe" - $openssl_path = [System.Environment]::GetEnvironmentVariable("OPENSSL_ANDROID_HOME_DEFAULT", [System.EnvironmentVariableTarget]::Machine) - $openssl_path = $openssl_path.Replace("\", "/") + $openssl_path = $android_openssl_path.Replace("\", "/") New-Item -ItemType SymbolicLink -Path ${openssl_path}/armeabi-v7a/libcrypto.so -Target ${openssl_path}/armeabi-v7a/libcrypto_3.so New-Item -ItemType SymbolicLink -Path ${openssl_path}/armeabi-v7a/libssl.so -Target ${openssl_path}/armeabi-v7a/libssl_3.so @@ -167,12 +234,12 @@ function InstallAndroidArmv7 { $config += " --enable-cross-compile --target-os=android --enable-jni --enable-mediacodec --enable-openssl --enable-pthreads --enable-neon --disable-asm --disable-indev=android_camera" $config += " --arch=$target_arch --cpu=${target_cpu} --sysroot=${sysroot} --sysinclude=${sysroot}/usr/include/" $config += " --cc=${cc} --cxx=${cxx} --ar=${ar} --ranlib=${ranlib}" - $config += " --extra-cflags=-I$envOPENSSL_ANDROID_HOME_DEFAULT/include --extra-ldflags=-L$env:OPENSSL_ANDROID_HOME_DEFAULT/armeabi-v7a" + $config += " --extra-cflags=-I${android_openssl_path}/include --extra-ldflags=-L${android_openssl_path}/armeabi-v7a" $config += " --extra-cflags=-I${openssl_path}/include --extra-ldflags=-L${openssl_path}/armeabi-v7a" $config += " --strip=$strip" - - $result= InstallFfmpeg -config $config -buildSystem "android-arm" -msystem "ANDROID_CLANG" -ffmpegDirEnvVar "FFMPEG_DIR_ANDROID_ARMV7" -shared $shared + $buildSystem = "android-arm" + $result= InstallFfmpeg -config $config -buildSystem $buildSystem -msystem "ANDROID_CLANG" -ffmpegDirEnvVar $ffmpeg_dir_android_envvar_name -shared $shared -ndk_ver $ndk_version Remove-Item -Path ${openssl_path}/armeabi-v7a/libcrypto.so Remove-Item -Path ${openssl_path}/armeabi-v7a/libssl.so @@ -198,9 +265,14 @@ function InstallAndroidArmv7 { Start-Process -NoNewWindow -Wait -PassThru -ErrorAction Stop -FilePath $msys -ArgumentList ("-lc", "`"cd C:/patchelf-0.17.2 && ./bootstrap.sh && ./configure && make install`"") - $command = "${PSScriptRoot}/../shared/fix_ffmpeg_dependencies.sh C:/${ffmpeg_name}/build/android-arm/installed/ _armeabi-v7a no" + $installDirForMsys = ResolveFFmpegInstallDirMsys -buildSystem $buildSystem -ndkVer $ndk_version + $command = "${PSScriptRoot}/../shared/fix_ffmpeg_dependencies.sh ${installDirForMsys} _armeabi-v7a no" $command = $command.Replace("\", "/") - Start-Process -NoNewWindow -Wait -PassThru -ErrorAction Stop -FilePath $msys -ArgumentList ("-lc", "`"$command`"") + $patchResult = Start-Process -NoNewWindow -Wait -PassThru -ErrorAction Stop -FilePath $msys -ArgumentList ("-lc", "`"$command`"") + if ($patchResult.ExitCode) { + Write-Host "fix_ffmpeg_dependencies.sh did not finish successfully" + return $false + } return $result } @@ -209,7 +281,20 @@ function InstallFfmpegsAMD64 { $hostArch = "amd64" $mingwRes = InstallMingwFfmpeg $llvmMingwRes = InstallLlvmMingwFfmpeg - $androidArmV7Res = InstallAndroidArmv7 + if ($env:ANDROID_NDK_ROOT_LATEST) { + Write-Host "Install ffmpeg using latest supported Android NDK" + $androidArmV7Res = InstallAndroidArmv7 -ndk_root $env:ANDROID_NDK_ROOT_LATEST -ffmpeg_dir_android_envvar_name "FFMPEG_DIR_ANDROID_ARMV7_NDK_LATEST" -ndk_version "latest" -android_openssl_path $env:OPENSSL_ANDROID_HOME_LATEST + } else { + throw "Error: env.var ANDROID_NDK_ROOT_LATEST is not set for FFmpeg" + } + if ($env:ANDROID_NDK_ROOT_NIGHTLY1) { + Write-Host "Install ffmpeg using older Android NDK for nightly1" + InstallAndroidArmv7 -ndk_root $env:ANDROID_NDK_ROOT_NIGHTLY1 -ffmpeg_dir_android_envvar_name "FFMPEG_DIR_ANDROID_ARMV7_NDK_NIGHTLY1" -ndk_version "nightly1" -android_openssl_path $env:OPENSSL_ANDROID_HOME_NIGHTLY1 + } + if ($env:ANDROID_NDK_ROOT_NIGHTLY2) { + Write-Host "Install ffmpeg using older Android NDK for nightly2" + InstallAndroidArmv7 -ndk_root $env:ANDROID_NDK_ROOT_NIGHTLY2 -ffmpeg_dir_android_envvar_name "FFMPEG_DIR_ANDROID_ARMV7_NDK_NIGHTLY2" -ndk_version "nightly2" -android_openssl_path $env:OPENSSL_ANDROID_HOME_NIGHTLY2 + } $msvcRes = InstallMsvcFfmpeg -hostArch $hostArch -isArm64 $false $msvcArm64Res = InstallMsvcFfmpeg -hostArch $hostArch -isArm64 $true 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/install-vcpkg.ps1 b/coin/provisioning/common/windows/install-vcpkg.ps1 index ee42557ddad..bc847a1200c 100644 --- a/coin/provisioning/common/windows/install-vcpkg.ps1 +++ b/coin/provisioning/common/windows/install-vcpkg.ps1 @@ -55,11 +55,7 @@ if(![System.IO.File]::Exists("$vcpkgRoot\vcpkg.exe")){ # Disable telemetry Set-Content -Value "" -Path "$vcpkgRoot\vcpkg.disable-metrics" -Force -# Setting VCPKG_ROOT using Set-EnvironmentVariable makes the variable only -# available during build time. In order to make it available during the -# provisioning, we need to directly set it via $env:VCPKG_ROOT as well. Set-EnvironmentVariable "VCPKG_ROOT" "$vcpkgRoot" -$env:VCPKG_ROOT = "$vcpkgRoot" # Set a source for vcpkg Binary and Asset Cache # The `coin/provisioning/common/windows/mount-vcpkg-cache-drive.ps1` script is diff --git a/coin/provisioning/common/windows/libclang.ps1 b/coin/provisioning/common/windows/libclang.ps1 index 615c496bef2..7693ed6eb41 100644 --- a/coin/provisioning/common/windows/libclang.ps1 +++ b/coin/provisioning/common/windows/libclang.ps1 @@ -1,11 +1,12 @@ param( [string]$archVer="32", - [string]$toolchain="vs2019", - [bool]$setDefault=$true + [string]$toolchain="vs2022", + [bool]$setDefault=$true, + [bool]$useArchInToolchainSuffix=$false ) . "$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 +25,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`_$archVer.7z" - $script:CachedUrl = "http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-release_$libclang_version-based-windows-$toolchain`_$archVer.7z" + $script:OfficialUrl = "https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-llvmorg-$libclang_version-windows-$toolchain`_$archVer.7z" + $script:CachedUrl = "http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-llvmorg-$libclang_version-windows-$toolchain`_$archVer.7z" Download $OfficialUrl $CachedUrl $zip Verify-Checksum $zip $sha1 @@ -38,20 +39,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 +52,7 @@ if ( $toolchain -eq "vs2019" ) { if ( $toolchain -eq "mingw" ) { if ( $archVer -eq "64" ) { - $sha1 = "a23cbb0822cf2eb8d1cecf26e8614ef37a7611e3" + $sha1 = "2180859572dd6ad2029ecffffcc785cba334e037" } else { $sha1 = "" @@ -72,7 +63,7 @@ if ( $toolchain -eq "mingw" ) { if ( $toolchain -eq "llvm-mingw" ) { if ( $archVer -eq "64" ) { - $sha1 = "9c34f99eb575b42c2befe27829c08e6d3f01ae58" + $sha1 = "3e917d002f363c225e5ee2b7d8999a3cabd8b467" } else { $sha1 = "" @@ -81,6 +72,9 @@ if ( $toolchain -eq "llvm-mingw" ) { $toolchainSuffix = "llvm_mingw" } +if ( $useArchInToolchainSuffix ) { + $toolchainSuffix += "_$archVer" +} install $sha1 $baseDestination-$archVer 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/common/windows/zlib-helpers.ps1 b/coin/provisioning/common/windows/zlib-helpers.ps1 new file mode 100644 index 00000000000..ea3a9ba64be --- /dev/null +++ b/coin/provisioning/common/windows/zlib-helpers.ps1 @@ -0,0 +1,80 @@ +# 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 + +. "$PSScriptRoot\helpers.ps1" + +function CpuArchToString { + param ( + [Parameter(Mandatory)] + [CpuArch] $Architecture + ) + + $arhitecture = switch ($Architecture) { + ([CpuArch]::arm64) { + 'arm64' + } + ([CpuArch]::x64) { + 'amd64' + } + default { + throw "Unsupported architecture: '$Architecture'" + } + } + + return $arhitecture +} + +function StringToCpuArch { + param ( + [Parameter(Mandatory)] + [string] $Architecture + ) + + $arhitecture = switch ($Architecture) { + 'arm64' { + [CpuArch]::arm64 + } + 'amd64' { + [CpuArch]::x64 + } + default { + throw "Unsupported architecture: '$Architecture'" + } + } + + return $arhitecture +} + +function GetZlibEnvironmentVariableName { + param ( + [Parameter(Mandatory)] + [CpuArch] $TargetArchitecture + ) + + $architecture = CpuArchToString -Architecture $TargetArchitecture + $environmentVariableName = "ZLIB_PATH_$architecture".ToUpper() + + return $environmentVariableName +} + +function GetZlibPathByCpuArch { + param ( + [Parameter(Mandatory)] + [CpuArch] $TargetArchitecture + ) + + $environmentVariableName = GetZlibEnvironmentVariableName -TargetArchitecture $TargetArchitecture + + return [System.Environment]::GetEnvironmentVariable($environmentVariableName, [System.EnvironmentVariableTarget]::Machine) +} + +function GetZlibPathByString { + param ( + [Parameter(Mandatory)] + [string] $TargetArchitecture + ) + + $targetArchitecture = StringToCpuArch -Architecture $TargetArchitecture + + return GetZlibPathByCpuArch -TargetArchitecture $targetArchitecture +} diff --git a/coin/provisioning/common/windows/zlib.ps1 b/coin/provisioning/common/windows/zlib.ps1 new file mode 100644 index 00000000000..87c59690e64 --- /dev/null +++ b/coin/provisioning/common/windows/zlib.ps1 @@ -0,0 +1,203 @@ +# 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 performs manual copying and patching of the zlib source to support +# multi-architecture builds on Windows using Microsoft's nmake and Makefile.msc. +# +# Reasons for this approach: +# +# 1. In-source build system: +# zlib's build system (Makefile.msc) writes all build artifacts directly into the source +# directory. To allow concurrent builds for different architectures (e.g., x64 and arm64), +# we copy the relevant source files into per-architecture build directories to isolate artifacts. +# +# 2. Incompatible linker base address: +# The default Makefile.msc contains a hardcoded image base address ('-base:0x5A4C0000') for the +# linker. This is invalid for ARM64 targets, which require base addresses above 4 GB. The script +# patches this line out to prevent linker errors. +# +# 3. Broken #include in zconf.h: +# Based on FFmpeg documentation (https://ffmpeg.org/platform.html#Microsoft-Visual-C_002b_002b-or-Intel-C_002b_002b-Compiler-for-Windows), +# zconf.h may erroneously include '', which doesn't exist on Windows. While Visual Studio 2022 +# builds tolerate this, we patch it out to ensure compatibility with older toolchains. +# +# These workarounds allow us to run reproducible, architecture-specific builds in CI without modifying +# the original source tree or requiring upstream changes. + +. "$PSScriptRoot\helpers.ps1" +. "$PSScriptRoot\zlib-helpers.ps1" + +$VERSION='1.3.1' +$SHA1='f535367b1a11e2f9ac3bec723fb007fbc0d189e5' + +$WIN32_DIRECTORY='win32' +$MAKEFILE="$WIN32_DIRECTORY\Makefile.msc" + +function BuildZlib { + param ( + [Parameter(Mandatory)] + [CpuArch] $HostArchitecture, + [Parameter(Mandatory)] + [CpuArch] $TargetArchitecture + ) + + PrepareBuildEnvironment -HostArchitecture $HostArchitecture -TargetArchitecture $TargetArchitecture + Invoke-NMake -NmakeArgs @('/f', "$MAKEFILE") +} + +function CopySource { + param ( + [Parameter(Mandatory)] + [CpuArch] $TargetArchitecture + ) + + $testDirectory='test' + + $buildDirectory = GetBuildDirectory -TargetArchitecture $TargetArchitecture + $win32BuildDirectory = "$buildDirectory\$WIN32_DIRECTORY" + $testBuildDirectory = "$buildDirectory\$testDirectory" + + New-Item -Path $buildDirectory -ItemType 'Directory' + New-Item -Path $win32BuildDirectory -ItemType 'Directory' + New-Item -Path $testBuildDirectory -ItemType 'Directory' + + Copy-Item '*' -Include '*.c','*.h' -Destination $buildDirectory + Copy-Item "$WIN32_DIRECTORY\*" -Include '*.def','*.msc','*.rc' -Destination $win32BuildDirectory + Copy-Item "$testDirectory\*" -Include '*.c' -Destination $testBuildDirectory +} + +function GetBuildDirectory { + param ( + [Parameter(Mandatory)] + [CpuArch] $TargetArchitecture + ) + + $architectureDirectory = CpuArchToString -Architecture $TargetArchitecture + + return "build\$architectureDirectory" +} + +function GetSource { + $unzipDirectory = "C:\" + $zlibName="zlib-$VERSION" + + $zlibDirectory = "$unzipDirectory$zlibName" + + $urlCached="http://ci-files01-hki.ci.qt.io/input/zlib/zlib-$VERSION.tar.gz" + $urlPublic="https://github.com/madler/zlib/releases/download/v$VERSION/zlib-$VERSION.tar.gz" + + $downloadPath = "C:\Windows\Temp\$zlibName.tar.gz" + + Write-Host "Fetching zlib $VERSION..." + + Download $urlPublic $urlCached $downloadPath + Verify-Checksum $downloadPath $SHA1 + Extract-tar_gz $downloadPath $unzipDirectory + Remove $downloadPath + + return $zlibDirectory +} + +function GetTargetArchitectures { + param ( + [Parameter(Mandatory)] + [CpuArch] $HostArchitecture + ) + + $targetArhitectures = @([CpuArch]::arm64) + + if ($HostArchitecture -eq [CpuArch]::x64) { + $targetArhitectures += [CpuArch]::x64 + } + + return $targetArhitectures +} + +function PatchMakefile { + $pattern = '-base:\s*0x[0-9A-Fa-f]+' + + (Get-Content $MAKEFILE) | ForEach-Object { + $_ -replace $pattern, '' + } | Set-Content $MAKEFILE +} + +function PatchSource { + PatchZconf + PatchMakefile +} + +function PatchZconf { + $zconf = 'zconf.h' + $pattern = '#\s*include\s*' + + (Get-Content $zconf) | Where-Object { + $_ -notmatch $pattern + } | Set-Content $zconf +} + +function PrepareBuild { + param ( + [Parameter(Mandatory)] + [CpuArch] $TargetArchitecture + ) + + CopySource -TargetArchitecture $TargetArchitecture +} + +function PrepareBuildEnvironment { + param ( + [Parameter(Mandatory)] + [CpuArch] $HostArchitecture, + [Parameter(Mandatory)] + [CpuArch] $TargetArchitecture + ) + + $hostArhitecture = CpuArchToString -Architecture $HostArchitecture + $targetArhitecture = CpuArchToString -Architecture $TargetArchitecture + + if (-not $(EnterVSDevShell -HostArch $hostArhitecture -Arch $targetArhitecture)) { + throw "Failed to prepare build environment for ${hostArhitecture}_${targetArhitecture}" + } +} + +function SetZlibEnvironmentVariable { + param ( + [Parameter(Mandatory)] + [CpuArch] $TargetArchitecture, + [Parameter(Mandatory)] + [string] $ZlibDirectory + ) + + $buildDirectory = GetBuildDirectory -TargetArchitecture $TargetArchitecture + $environmentVariableName = GetZlibEnvironmentVariableName -TargetArchitecture $TargetArchitecture + $environmentVariableValue = "$ZlibDirectory\$buildDirectory" + + Set-EnvironmentVariable $environmentVariableName $environmentVariableValue +} + +$zlibDirectory = GetSource +$hostArchitecture = Get-CpuArchitecture +$targetArchitectures = GetTargetArchitectures -HostArchitecture $hostArchitecture + +Push-Location $zlibDirectory + +try { + foreach ($targetArchitecture in $targetArchitectures) { + PrepareBuild -TargetArchitecture $targetArchitecture + + $buildDirectory = GetBuildDirectory -TargetArchitecture $targetArchitecture + Push-Location $buildDirectory + + try { + PatchSource + BuildZlib -HostArchitecture $hostArchitecture -TargetArchitecture $targetArchitecture + SetZlibEnvironmentVariable -TargetArchitecture $targetArchitecture -ZlibDirectory $zlibDirectory + } + finally { + Pop-Location + } + } +} +finally { + Pop-Location +} 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/02-apt.sh b/coin/provisioning/qtci-linux-Debian-11.6-aarch64/02-apt.sh index a6ecb6ad501..73003785865 100755 --- a/coin/provisioning/qtci-linux-Debian-11.6-aarch64/02-apt.sh +++ b/coin/provisioning/qtci-linux-Debian-11.6-aarch64/02-apt.sh @@ -21,9 +21,9 @@ done echo "Using public repositories for now. Repo-clones isn't set yet for Debian use" # (ping -c 3 repo-clones.ci.qt.io && set_internal_repo) || echo "Internal package repository not found. Using public repositories." -echo "deb http://deb.debian.org/debian bullseye-backports main" | sudo tee -a /etc/apt/sources.list -echo "deb-src http://deb.debian.org/debian bullseye-backports main" | sudo tee -a /etc/apt/sources.list +echo "deb https://archive.debian.org/debian bullseye-backports main" | sudo tee -a /etc/apt/sources.list +echo "deb-src https://archive.debian.org/debian bullseye-backports main" | sudo tee -a /etc/apt/sources.list # Make sure needed ca-certificates are available installPackages+=(ca-certificates) # Git is not needed by builds themselves, but is nice to have @@ -145,6 +145,7 @@ installPackages+=(libbluetooth-dev) installPackages+=(dkms) # Needed for qtspeech installPackages+=(libspeechd-dev) +installPackages+=(flite1-dev) #Pypdf for PDF reading in RTA tests installPackages+=(python3-pypdf2) # Needed for b2qt @@ -248,6 +249,8 @@ installPackages+=(zlib1g-dev) installPackages+=(libusb-1.0-0-dev) # password management support for Qt Creator installPackages+=(libsecret-1-dev) +installPackages+=(debian-archive-keyring) + echo "Running update for apt" waitLoop diff --git a/coin/provisioning/qtci-linux-Debian-11.6-aarch64/92-sbuild.sh b/coin/provisioning/qtci-linux-Debian-11.6-aarch64/92-sbuild.sh index 8991bcca15c..f4c9b3d9eba 100755 --- a/coin/provisioning/qtci-linux-Debian-11.6-aarch64/92-sbuild.sh +++ b/coin/provisioning/qtci-linux-Debian-11.6-aarch64/92-sbuild.sh @@ -41,8 +41,8 @@ EOF sudo sbuild-adduser "$LOGNAME" newgrp sbuild -# Create chroot for debian stable -sudo sbuild-createchroot --include=eatmydata,ccache,gnupg,ca-certificates stable /srv/chroot/stable-arm64 +# Create chroot for debian bookworm +sudo sbuild-createchroot --include=eatmydata,ccache,gnupg,ca-certificates bookworm /srv/chroot/stable-arm64 echo "Create chroot for Ubuntu Jammy" # First we need update the deboostrap scripts @@ -60,5 +60,5 @@ sudo sbuild-createchroot --include=gnupg,ca-certificates jammy /srv/chroot/jammy echo "Done creating chroot for Ubuntu Jammy" # Update chroot. -sudo sbuild-update -udcar stable +sudo sbuild-update -udcar bookworm sudo sbuild-update -udcar jammy 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..46c03e35217 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) @@ -67,8 +69,9 @@ installPackages+=(libva-devel) installPackages+=(gtk3-devel) # libusb1 for tqtc-boot2qt/qdb installPackages+=(libusbx-devel) -# speech-dispatcher-devel for QtSpeech, otherwise it has no backend on Linux +# speech-dispatcher-devel / flite-devel for QtSpeech installPackages+=(speech-dispatcher-devel) +installPackages+=(flite-devel) # Python for pyside installPackages+=(python3.11) installPackages+=(python3.11-pip) @@ -86,7 +89,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 @@ -117,6 +119,7 @@ installPackages+=(libxkbcommon-devel) installPackages+=(libxkbcommon-x11-devel) # xcb-util-* libraries installPackages+=(xcb-util) +installPackages+=(xcb-util-devel) installPackages+=(xcb-util-image-devel) installPackages+=(xcb-util-keysyms-devel) installPackages+=(xcb-util-wm-devel) @@ -154,6 +157,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 +172,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 +180,12 @@ 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 + +glibcVersion="$(ldd --version |grep -Eo '[0-9]+\.[0-9]+(\.[0-9]+)?' |head -n 1)" +echo "glibc = $glibcVersion" >> 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..7f33493bc0b 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,11 @@ 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 + +glibcVersion="$(ldd --version |grep -Eo '[0-9]+\.[0-9]+(\.[0-9]+)?' |head -n 1)" +echo "glibc = $glibcVersion" >> 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..9ba239bfee3 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,11 @@ 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 + +glibcVersion="$(ldd --version |grep -Eo '[0-9]+\.[0-9]+(\.[0-9]+)?' |head -n 1)" +echo "glibc = $glibcVersion" >> 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..59478dc2df7 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,11 @@ 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 + +glibcVersion="$(ldd --version |grep -Eo '[0-9]+\.[0-9]+(\.[0-9]+)?' |head -n 1)" +echo "glibc = $glibcVersion" >> 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..33c82efeef5 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) @@ -67,8 +69,9 @@ installPackages+=(libva-devel) installPackages+=(gtk3-devel) # libusb1 for tqtc-boot2qt/qdb installPackages+=(libusbx-devel) -# speech-dispatcher-devel for QtSpeech, otherwise it has no backend on Linux +# speech-dispatcher-devel / flite-devel for QtSpeech installPackages+=(speech-dispatcher-devel) +installPackages+=(flite-devel) # Python 3.8 for pyside. Qt for Python support for Python 3.6 will be deprecated in within pyside6.3 installPackages+=(python3.11) installPackages+=(python3.11-pip) @@ -177,6 +180,12 @@ 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 + +glibcVersion="$(ldd --version |grep -Eo '[0-9]+\.[0-9]+(\.[0-9]+)?' |head -n 1)" +echo "glibc = $glibcVersion" >> 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..8a7a6cb74ab 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,11 @@ 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 + +glibcVersion="$(ldd --version |grep -Eo '[0-9]+\.[0-9]+(\.[0-9]+)?' |head -n 1)" +echo "glibc = $glibcVersion" >> 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/50-openssl_for_android_linux.sh b/coin/provisioning/qtci-linux-RHEL-9.0-x86_64/50-openssl_for_android_linux.sh index 36aa6983a34..c3e51d23064 100755 --- a/coin/provisioning/qtci-linux-RHEL-9.0-x86_64/50-openssl_for_android_linux.sh +++ b/coin/provisioning/qtci-linux-RHEL-9.0-x86_64/50-openssl_for_android_linux.sh @@ -4,4 +4,4 @@ set -ex # shellcheck source=../common/unix/openssl_for_android.sh -source "${BASH_SOURCE%/*}/../common/unix/openssl_3_for_android.sh" +source "${BASH_SOURCE%/*}/../common/unix/openssl_for_android.sh" 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..beb5a3781b7 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) @@ -72,8 +74,9 @@ installPackages+=(yasm) installPackages+=(gtk3-devel) # libusb1 for tqtc-boot2qt/qdb installPackages+=(libusbx-devel) -# speech-dispatcher-devel for QtSpeech, otherwise it has no backend on Linux +# speech-dispatcher-devel / flite-devel for QtSpeech installPackages+=(speech-dispatcher-devel) +installPackages+=(flite-devel) # Python 2 devel and pip. python-pip requires the EPEL repository to be added # Python 2 no longer supported # installPackages+=(python2-devel python2-pip) @@ -198,6 +201,12 @@ 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 + +glibcVersion="$(ldd --version |grep -Eo '[0-9]+\.[0-9]+(\.[0-9]+)?' |head -n 1)" +echo "glibc = $glibcVersion" >> 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/50-openssl_for_android_linux.sh b/coin/provisioning/qtci-linux-RHEL-9.2-x86_64/50-openssl_for_android_linux.sh index a71ba0a7b40..8cb78e85613 100755 --- a/coin/provisioning/qtci-linux-RHEL-9.2-x86_64/50-openssl_for_android_linux.sh +++ b/coin/provisioning/qtci-linux-RHEL-9.2-x86_64/50-openssl_for_android_linux.sh @@ -4,4 +4,4 @@ set -ex # shellcheck source=../common/unix/openssl_for_android.sh -source "${BASH_SOURCE%/*}/../common/unix/openssl_3_for_android.sh" +source "${BASH_SOURCE%/*}/../common/unix/openssl_for_android.sh" 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..2e3f13a39bc 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) @@ -72,8 +74,9 @@ installPackages+=(yasm) installPackages+=(gtk3-devel) # libusb1 for tqtc-boot2qt/qdb installPackages+=(libusbx-devel) -# speech-dispatcher-devel for QtSpeech, otherwise it has no backend on Linux +# speech-dispatcher-devel / flite-devel for QtSpeech installPackages+=(speech-dispatcher-devel) +installPackages+=(flite-devel) # Python 2 devel and pip. python-pip requires the EPEL repository to be added # Python 2 no longer supported # installPackages+=(python2-devel python2-pip) @@ -125,6 +128,7 @@ installPackages+=(libxkbcommon-devel) installPackages+=(libxkbcommon-x11-devel) # xcb-util-* libraries installPackages+=(xcb-util) +installPackages+=(xcb-util-devel) installPackages+=(xcb-util-image-devel) installPackages+=(xcb-util-keysyms-devel) installPackages+=(xcb-util-wm-devel) @@ -167,6 +171,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 +204,12 @@ 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 + +glibcVersion="$(ldd --version |grep -Eo '[0-9]+\.[0-9]+(\.[0-9]+)?' |head -n 1)" +echo "glibc = $glibcVersion" >> 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/50-openssl_for_android_linux.sh b/coin/provisioning/qtci-linux-RHEL-9.4-x86_64/50-openssl_for_android_linux.sh index a71ba0a7b40..8cb78e85613 100644 --- a/coin/provisioning/qtci-linux-RHEL-9.4-x86_64/50-openssl_for_android_linux.sh +++ b/coin/provisioning/qtci-linux-RHEL-9.4-x86_64/50-openssl_for_android_linux.sh @@ -4,4 +4,4 @@ set -ex # shellcheck source=../common/unix/openssl_for_android.sh -source "${BASH_SOURCE%/*}/../common/unix/openssl_3_for_android.sh" +source "${BASH_SOURCE%/*}/../common/unix/openssl_for_android.sh" 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..29f33982bc0 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,8 @@ 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 + +glibcVersion="$(ldd --version |grep -Eo '[0-9]+\.[0-9]+(\.[0-9]+)?' |head -n 1)" +echo "glibc = $glibcVersion" >> 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..2a3b61cf2e9 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,8 +110,14 @@ 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 +glibcVersion="$(ldd --version |grep -Eo '[0-9]+\.[0-9]+(\.[0-9]+)?' |head -n 1)" +echo "glibc = $glibcVersion" >> versions.txt + OpenSSLVersion="$(openssl-3 version |cut -b 9-14)" echo "System's OpenSSL = $OpenSSLVersion" >> ~/versions.txt 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..bd318fb9d81 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 @@ -8,15 +8,15 @@ sudo zypper -nq install elfutils binutils sudo zypper addrepo --no-gpgcheck https://download.opensuse.org/repositories/devel:gcc/SLE-15/devel:gcc.repo sudo zypper refresh -sudo zypper -nq install --force-resolution gcc10 gcc10-c++ +sudo zypper -nq install --force-resolution gcc11 gcc11-c++ # Make sure needed ca-certificates are available sudo zypper -nq install ca-certificates -sudo /usr/sbin/update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 1 \ - --slave /usr/bin/g++ g++ /usr/bin/g++-10 \ - --slave /usr/bin/cc cc /usr/bin/gcc-10 \ - --slave /usr/bin/c++ c++ /usr/bin/g++-10 +sudo /usr/sbin/update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 1 \ + --slave /usr/bin/g++ g++ /usr/bin/g++-11 \ + --slave /usr/bin/cc cc /usr/bin/gcc-11 \ + --slave /usr/bin/c++ c++ /usr/bin/g++-11 sudo zypper -nq install git ninja make patch wget tar @@ -113,8 +113,14 @@ 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 +glibcVersion="$(ldd --version |grep -Eo '[0-9]+\.[0-9]+(\.[0-9]+)?' |head -n 1)" +echo "glibc = $glibcVersion" >> versions.txt + OpenSSLVersion="$(openssl version |cut -b 9-14)" echo "System's OpenSSL = $OpenSSLVersion" >> ~/versions.txt 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..8f42f803818 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,12 @@ 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 + +glibcVersion="$(ldd --version |grep -Eo '[0-9]+\.[0-9]+(\.[0-9]+)?' |head -n 1)" +echo "glibc = $glibcVersion" >> versions.txt + OpenSSLVersion="$(openssl version |cut -b 9-14)" echo "OpenSSL = $OpenSSLVersion" >> ~/versions.txt 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..ce0e520640c 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,11 @@ 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 + +glibcVersion="$(ldd --version |grep -Eo '[0-9]+\.[0-9]+(\.[0-9]+)?' |head -n 1)" +echo "glibc = $glibcVersion" >> 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/92-sbuild.sh b/coin/provisioning/qtci-linux-Ubuntu-22.04-x86_64/92-sbuild.sh index b178d71a14a..f8546395b3b 100755 --- a/coin/provisioning/qtci-linux-Ubuntu-22.04-x86_64/92-sbuild.sh +++ b/coin/provisioning/qtci-linux-Ubuntu-22.04-x86_64/92-sbuild.sh @@ -39,8 +39,13 @@ EOF sudo sbuild-adduser "$LOGNAME" newgrp sbuild +# For debian repo we need to update the bookworm release pgp key +mkdir -p /home/qt/.debian_key_ring +wget https://ftp-master.debian.org/keys/archive-key-12.asc -O /home/qt/.debian_key_ring/archive-key-12.asc +gpg --no-default-keyring --keyring=/home/qt/.debian_key_ring/debian_chroot.gpg --import /home/qt/.debian_key_ring/archive-key-12.asc + # Create chroot -sudo sbuild-createchroot --include=eatmydata,ccache,gnupg,ca-certificates stable /srv/chroot/stable-amd64 +sudo sbuild-createchroot --include=eatmydata,ccache,gnupg,ca-certificates bookworm /srv/chroot/stable-amd64 http://deb.debian.org/debian --keyring=/home/qt/.debian_key_ring/debian_chroot.gpg # For ubuntu 22.04 echo "Create chroot for Ubuntu Jammy" @@ -49,7 +54,7 @@ sudo sbuild-createchroot --include=eatmydata,gnupg,ca-certificates jammy /srv/ch echo "Done creating chroot for Ubuntu Jammy" # Update chroot. -sudo sbuild-update -udcar stable +sudo sbuild-update -udcar bookworm 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..a8e206aa342 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 @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# Copyright (C) 2022 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 required packages with APT @@ -20,15 +20,14 @@ function set_internal_repo { sudo mv /etc/apt/apt.conf.d/50appstream{,.disabled} sudo tee "/etc/apt/sources.list.d/ubuntu.list" > /dev/null <<-EOC - deb [arch=aarch64] http://repo-clones.ci.qt.io/apt-mirror/mirror/ubuntu/ noble main restricted universe multiverse - deb [arch=aarch64] http://repo-clones.ci.qt.io/apt-mirror/mirror/ubuntu/ noble-updates main restricted universe multiverse - deb [arch=aarch64] http://repo-clones.ci.qt.io/apt-mirror/mirror/ubuntu/ noble-backports main restricted universe - deb [arch=aarch64] http://repo-clones.ci.qt.io/apt-mirror/mirror/ubuntu/ noble-security main restricted universe multiverse + deb [trusted=yes] http://repo-clones-apt.ci.qt.io:8080 noble-arm64 main restricted universe multiverse + deb [trusted=yes] http://repo-clones-apt.ci.qt.io:8080 noble-updates-arm64 main restricted universe multiverse + deb [trusted=yes] http://repo-clones-apt.ci.qt.io:8080 noble-backports-arm64 main restricted universe + deb [trusted=yes] http://repo-clones-apt.ci.qt.io:8080 noble-security-arm64 main restricted universe multiverse EOC } -#(ping -c 3 repo-clones.ci.qt.io && set_internal_repo) || echo "Internal package repository not found. Using public repositories." -echo "Internal package repository not loading Translation en package (QTQAINFRA-6297). Using public repositories." +(ping -c 3 repo-clones-apt.ci.qt.io && set_internal_repo) || echo "Internal package repository not found. Using public repositories." # Make sure needed ca-certificates are available sudo apt-get install --reinstall ca-certificates @@ -179,6 +178,7 @@ installPackages+=(libopenal-dev) installPackages+=(libbluetooth-dev) # Needed for qtspeech installPackages+=(libspeechd-dev) +installPackages+=(flite1-dev) #Pypdf for PDF reading in RTA tests installPackages+=(python3-pypdf2) # Needed for b2qt @@ -260,5 +260,11 @@ 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 + +glibcVersion="$(ldd --version |grep -Eo '[0-9]+\.[0-9]+(\.[0-9]+)?' |head -n 1)" +echo "glibc = $glibcVersion" >> 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-aarch64/90-squish.sh b/coin/provisioning/qtci-linux-Ubuntu-24.04-aarch64/41-install-golang.sh old mode 100644 new mode 100755 similarity index 52% rename from coin/provisioning/qtci-linux-Ubuntu-22.04-aarch64/90-squish.sh rename to coin/provisioning/qtci-linux-Ubuntu-24.04-aarch64/41-install-golang.sh index f803ccc1fa1..6b72bc47515 --- a/coin/provisioning/qtci-linux-Ubuntu-22.04-aarch64/90-squish.sh +++ b/coin/provisioning/qtci-linux-Ubuntu-24.04-aarch64/41-install-golang.sh @@ -1,6 +1,7 @@ #!/usr/bin/env bash -#Copyright (C) 2023 The Qt Company Ltd +#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 -BASEDIR=$(dirname "$0") -"$BASEDIR/../common/unix/squishInstall.sh" +set -ex + +source "${BASH_SOURCE%/*}/../common/linux/install-golang.sh" diff --git a/coin/provisioning/qtci-linux-Debian-11.6-aarch64/90-squish.sh b/coin/provisioning/qtci-linux-Ubuntu-24.04-aarch64/41-install-upx.sh old mode 100644 new mode 100755 similarity index 53% rename from coin/provisioning/qtci-linux-Debian-11.6-aarch64/90-squish.sh rename to coin/provisioning/qtci-linux-Ubuntu-24.04-aarch64/41-install-upx.sh index f803ccc1fa1..0bccc01efac --- a/coin/provisioning/qtci-linux-Debian-11.6-aarch64/90-squish.sh +++ b/coin/provisioning/qtci-linux-Ubuntu-24.04-aarch64/41-install-upx.sh @@ -1,6 +1,7 @@ #!/usr/bin/env bash -#Copyright (C) 2023 The Qt Company Ltd +#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 -BASEDIR=$(dirname "$0") -"$BASEDIR/../common/unix/squishInstall.sh" +set -ex + +source "${BASH_SOURCE%/*}/../common/linux/install-upx.sh" 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..6a169acdb35 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 @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# Copyright (C) 2022 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 required packages with APT @@ -20,18 +20,16 @@ function set_internal_repo { sudo mv /etc/apt/apt.conf.d/50appstream{,.disabled} sudo tee "/etc/apt/sources.list.d/ubuntu.list" > /dev/null <<-EOC - deb [arch=amd64] http://repo-clones.ci.qt.io/apt-mirror/mirror/ubuntu/ noble main restricted universe multiverse - deb [arch=amd64] http://repo-clones.ci.qt.io/apt-mirror/mirror/ubuntu/ noble-updates main restricted universe multiverse - deb [arch=amd64] http://repo-clones.ci.qt.io/apt-mirror/mirror/ubuntu/ noble-backports main restricted universe - deb [arch=amd64] http://repo-clones.ci.qt.io/apt-mirror/mirror/ubuntu/ noble-security main restricted universe multiverse - deb [arch=i386] http://repo-clones.ci.qt.io/apt-mirror/mirror/ubuntu/ noble main restricted - deb [arch=i386] http://repo-clones.ci.qt.io/apt-mirror/mirror/ubuntu/ noble-updates main restricted - deb [arch=i386] http://repo-clones.ci.qt.io/apt-mirror/mirror/ubuntu/ noble universe + deb [arch=amd64 trusted=yes] http://repo-clones-apt.ci.qt.io:8080 noble-amd64 main restricted universe multiverse + deb [arch=amd64 trusted=yes] http://repo-clones-apt.ci.qt.io:8080 noble-updates-amd64 main restricted universe multiverse + deb [arch=amd64 trusted=yes] http://repo-clones-apt.ci.qt.io:8080 noble-backports-amd64 main restricted universe + deb [arch=amd64 trusted=yes] http://repo-clones-apt.ci.qt.io:8080 noble-security-amd64 main restricted universe multiverse + deb [arch=i386 trusted=yes] http://repo-clones-apt.ci.qt.io:8080 noble-i386 main restricted universe multiverse + deb [arch=i386 trusted=yes] http://repo-clones-apt.ci.qt.io:8080 noble-updates-i386 main restricted universe multiverse EOC } -#(ping -c 3 repo-clones.ci.qt.io && set_internal_repo) || echo "Internal package repository not found. Using public repositories." -echo "Internal package repository not loading Translation en package (QTQAINFRA-6297). Using public repositories." +(ping -c 3 repo-clones-apt.ci.qt.io && set_internal_repo) || echo "Internal package repository not found. Using public repositories." # Make sure needed ca-certificates are available sudo apt-get install --reinstall ca-certificates @@ -186,6 +184,7 @@ installPackages+=(virtualbox) installPackages+=(dkms) # Needed for qtspeech installPackages+=(libspeechd-dev) +installPackages+=(flite1-dev) #Pypdf for PDF reading in RTA tests installPackages+=(python3-pypdf2) # Needed for b2qt @@ -271,5 +270,11 @@ 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 + +glibcVersion="$(ldd --version |grep -Eo '[0-9]+\.[0-9]+(\.[0-9]+)?' |head -n 1)" +echo "glibc = $glibcVersion" >> 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/70-qnx800.sh b/coin/provisioning/qtci-linux-Ubuntu-24.04-x86_64/70-qnx800.sh new file mode 100755 index 00000000000..45d9e43e1d6 --- /dev/null +++ b/coin/provisioning/qtci-linux-Ubuntu-24.04-x86_64/70-qnx800.sh @@ -0,0 +1,9 @@ +#!/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/linux/qnx_800.sh +source "${BASH_SOURCE%/*}/../common/linux/qnx_800.sh" + 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..ff9a9b25c15 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,8 +69,11 @@ 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 +glibcVersion="$(ldd --version |grep -Eo '[0-9]+\.[0-9]+(\.[0-9]+)?' |head -n 1)" +echo "glibc = $glibcVersion" >> versions.txt + OpenSSLVersion="$(openssl version |cut -b 9-14)" echo "OpenSSL = $OpenSSLVersion" >> ~/versions.txt 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..c1ca4c45f01 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,8 +75,11 @@ 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 +glibcVersion="$(ldd --version |grep -Eo '[0-9]+\.[0-9]+(\.[0-9]+)?' |head -n 1)" +echo "glibc = $glibcVersion" >> versions.txt + OpenSSLVersion="$(openssl-3 version |cut -b 9-14)" echo "OpenSSL = $OpenSSLVersion" >> ~/versions.txt 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..bdbc923c9b3 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,8 +91,11 @@ 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 +glibcVersion="$(ldd --version |grep -Eo '[0-9]+\.[0-9]+(\.[0-9]+)?' |head -n 1)" +echo "glibc = $glibcVersion" >> versions.txt + OpenSSLVersion="$(openssl-3 version |cut -b 9-14)" echo "System's OpenSSL = $OpenSSLVersion" >> ~/versions.txt 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/03-enable-repos.sh b/coin/provisioning/qtci-linux-openSUSE-15.6-x86_64/03-enable-repos.sh index 239bfea95cb..cd66199b34b 100644 --- a/coin/provisioning/qtci-linux-openSUSE-15.6-x86_64/03-enable-repos.sh +++ b/coin/provisioning/qtci-linux-openSUSE-15.6-x86_64/03-enable-repos.sh @@ -8,5 +8,6 @@ sudo sed -i "s#baseurl=.*#baseurl=http://repo-clones.ci.qt.io/repos/opensuse/dis sudo sed -i "s#baseurl=.*#baseurl=http://repo-clones.ci.qt.io/repos/opensuse/distribution/leap/15.6/repo/non-oss/#g" /etc/zypp/repos.d/repo-non-oss.repo sudo sed -i "s#baseurl=.*#baseurl=http://repo-clones.ci.qt.io/repos/opensuse/update/leap/15.6/oss/#g" /etc/zypp/repos.d/repo-update.repo sudo sed -i "s#baseurl=.*#baseurl=http://repo-clones.ci.qt.io/repos/opensuse/update/leap/15.6/non-oss/#g" /etc/zypp/repos.d/repo-update-non-oss.repo +sudo sed -i "s#baseurl=.*#baseurl=http://repo-clones.ci.qt.io/repos/codecs.opensuse.org/openh264/openSUSE_Leap/#g" /etc/zypp/repos.d/repo-openh264.repo sudo zypper lr -u 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..e0e94253f17 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 @@ -52,7 +52,7 @@ sudo zypper -nq install libxml2-devel libxslt-devel sudo zypper -nq install yasm # GStreamer (qtwebkit and qtmultimedia), pulseaudio (qtmultimedia) -sudo zypper -nq install gstreamer-devel gstreamer-plugins-base-devel libpulse-devel pipewire-devel gstreamer-1.20-plugin-openh264 +sudo zypper -nq install gstreamer-devel gstreamer-plugins-base-devel libpulse-devel pipewire-devel gstreamer-plugin-openh264 # cups sudo zypper -nq install cups-devel @@ -87,8 +87,14 @@ 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)" +glibcVersion="$(ldd --version |grep -Eo '[0-9]+\.[0-9]+(\.[0-9]+)?' |head -n 1)" +echo "glibc = $glibcVersion" >> versions.txt + +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/${chromeVersion}.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/${chromeVersion}.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..f6d17e499be 100755 --- a/coin/provisioning/qtci-macos-12-arm/30-android.sh +++ b/coin/provisioning/qtci-macos-12-arm/30-android.sh @@ -1,64 +1,8 @@ #!/usr/bin/env bash -# Copyright (C) 2020 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 install Android sdk and ndk. - -# It also runs update for SDK API, latest SDK tools, latest platform-tools and build-tools version +#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 -ex -# shellcheck source=../common/unix/SetEnvVar.sh -source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.sh" - -targetFolder="/opt/android" -sdkTargetFolder="$targetFolder/sdk" - -basePath="/net/ci-files01-hki.ci.qt.io/hdd/www/input/android" - -toolsVersion="2.1" -# toolsFile dertermines tools version -toolsFile="commandlinetools-mac-6609375_latest.zip" - -ndkVersion="r26b" -ndkFile="android-ndk-$ndkVersion-darwin.zip" -sdkBuildToolsVersion="34.0.0" -# this is compile sdk version -sdkApiLevel="android-34" - -toolsSourceFile="$basePath/$toolsFile" -ndkSourceFile="$basePath/$ndkFile" - -echo "Unzipping Android NDK to '$targetFolder'" -sudo unzip -q "$ndkSourceFile" -d "$targetFolder" -echo "Unzipping Android Tools to '$sdkTargetFolder'" -sudo unzip -q "$toolsSourceFile" -d "$sdkTargetFolder" - -echo "Changing ownership of Android files." -sudo chown -R qt:wheel "$targetFolder" - -# Run the following command under `eval` or `sh -c` so that the shell properly splits it -sdkmanager_no_progress_bar_cmd="tr '\r' '\n' | grep -v '^\[[ =]*\]'" - -sudo mkdir "$sdkTargetFolder/cmdline-tools" -sudo mv "$sdkTargetFolder/tools" "$sdkTargetFolder/cmdline-tools" - -echo "Running SDK manager for platforms;$sdkApiLevel, platform-tools and build-tools;$sdkBuildToolsVersion." -(echo "y"; echo "y") | "$sdkTargetFolder/cmdline-tools/tools/bin/sdkmanager" "--sdk_root=$sdkTargetFolder" \ - "platforms;$sdkApiLevel" "platform-tools" "build-tools;$sdkBuildToolsVersion" \ - | eval "$sdkmanager_no_progress_bar_cmd" - -echo "Checking the contents of Android SDK..." -ls -l "$sdkTargetFolder" - -SetEnvVar "ANDROID_SDK_ROOT" "$sdkTargetFolder" -SetEnvVar "ANDROID_NDK_ROOT" "$targetFolder/android-ndk-$ndkVersion" -SetEnvVar "ANDROID_NDK_HOST" "darwin-x86_64" -SetEnvVar "ANDROID_API_VERSION" "$sdkApiLevel" - -cat << EOB >> ~/versions.txt -Android SDK tools = $toolsVersion -Android SDK Build Tools = $sdkBuildToolsVersion -Android SDK API level = $sdkApiLevel -Android NDK = $ndkVersion -EOB +# shellcheck source=../common/macos/android.sh +source "${BASH_SOURCE%/*}/../common/macos/android.sh" 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..f6d17e499be 100755 --- a/coin/provisioning/qtci-macos-13-arm/30-android.sh +++ b/coin/provisioning/qtci-macos-13-arm/30-android.sh @@ -1,64 +1,8 @@ #!/usr/bin/env bash -# Copyright (C) 2020 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 install Android sdk and ndk. - -# It also runs update for SDK API, latest SDK tools, latest platform-tools and build-tools version +#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 -ex -# shellcheck source=../common/unix/SetEnvVar.sh -source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.sh" - -targetFolder="/opt/android" -sdkTargetFolder="$targetFolder/sdk" - -basePath="/net/ci-files01-hki.ci.qt.io/hdd/www/input/android" - -toolsVersion="2.1" -# toolsFile dertermines tools version -toolsFile="commandlinetools-mac-6609375_latest.zip" - -ndkVersion="r26b" -ndkFile="android-ndk-$ndkVersion-darwin.zip" -sdkBuildToolsVersion="34.0.0" -# this is compile sdk version -sdkApiLevel="android-34" - -toolsSourceFile="$basePath/$toolsFile" -ndkSourceFile="$basePath/$ndkFile" - -echo "Unzipping Android NDK to '$targetFolder'" -sudo unzip -q "$ndkSourceFile" -d "$targetFolder" -echo "Unzipping Android Tools to '$sdkTargetFolder'" -sudo unzip -q "$toolsSourceFile" -d "$sdkTargetFolder" - -echo "Changing ownership of Android files." -sudo chown -R qt:wheel "$targetFolder" - -# Run the following command under `eval` or `sh -c` so that the shell properly splits it -sdkmanager_no_progress_bar_cmd="tr '\r' '\n' | grep -v '^\[[ =]*\]'" - -sudo mkdir "$sdkTargetFolder/cmdline-tools" -sudo mv "$sdkTargetFolder/tools" "$sdkTargetFolder/cmdline-tools" - -echo "Running SDK manager for platforms;$sdkApiLevel, platform-tools and build-tools;$sdkBuildToolsVersion." -(echo "y"; echo "y") | "$sdkTargetFolder/cmdline-tools/tools/bin/sdkmanager" "--sdk_root=$sdkTargetFolder" \ - "platforms;$sdkApiLevel" "platform-tools" "build-tools;$sdkBuildToolsVersion" \ - | eval "$sdkmanager_no_progress_bar_cmd" - -echo "Checking the contents of Android SDK..." -ls -l "$sdkTargetFolder" - -SetEnvVar "ANDROID_SDK_ROOT" "$sdkTargetFolder" -SetEnvVar "ANDROID_NDK_ROOT" "$targetFolder/android-ndk-$ndkVersion" -SetEnvVar "ANDROID_NDK_HOST" "darwin-x86_64" -SetEnvVar "ANDROID_API_VERSION" "$sdkApiLevel" - -cat << EOB >> ~/versions.txt -Android SDK tools = $toolsVersion -Android SDK Build Tools = $sdkBuildToolsVersion -Android SDK API level = $sdkApiLevel -Android NDK = $ndkVersion -EOB +# shellcheck source=../common/macos/android.sh +source "${BASH_SOURCE%/*}/../common/macos/android.sh" 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/27-binutils.sh b/coin/provisioning/qtci-macos-14-arm/27-binutils.sh new file mode 100755 index 00000000000..c4c74e7b214 --- /dev/null +++ b/coin/provisioning/qtci-macos-14-arm/27-binutils.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash +#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 -ex + +# binutils is installed with an error: The formula built, but is not symlinked into /usr/local +# To avoid stopping the configuration due to this problem, "|| true" is added. +brew install binutils || true diff --git a/coin/provisioning/qtci-macos-14-arm/28-patchelf.sh b/coin/provisioning/qtci-macos-14-arm/28-patchelf.sh new file mode 100755 index 00000000000..a2a91e16bcc --- /dev/null +++ b/coin/provisioning/qtci-macos-14-arm/28-patchelf.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash +#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 -ex + +source "${BASH_SOURCE%/*}/../common/unix/install-patchelf.sh" 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/27-binutils.sh b/coin/provisioning/qtci-macos-14-x86_64/27-binutils.sh new file mode 100755 index 00000000000..c4c74e7b214 --- /dev/null +++ b/coin/provisioning/qtci-macos-14-x86_64/27-binutils.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash +#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 -ex + +# binutils is installed with an error: The formula built, but is not symlinked into /usr/local +# To avoid stopping the configuration due to this problem, "|| true" is added. +brew install binutils || true 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/27-binutils.sh b/coin/provisioning/qtci-macos-15-x86_64/27-binutils.sh new file mode 100755 index 00000000000..c4c74e7b214 --- /dev/null +++ b/coin/provisioning/qtci-macos-15-x86_64/27-binutils.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash +#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 -ex + +# binutils is installed with an error: The formula built, but is not symlinked into /usr/local +# To avoid stopping the configuration due to this problem, "|| true" is added. +brew install binutils || true 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/00-disable-netadapterlso.ps1 b/coin/provisioning/qtci-windows-10-x86/00-disable-netadapterlso.ps1 deleted file mode 100644 index d20f1402601..00000000000 --- a/coin/provisioning/qtci-windows-10-x86/00-disable-netadapterlso.ps1 +++ /dev/null @@ -1 +0,0 @@ -. "$PSScriptRoot\..\common\windows\disable-netadapterlso.ps1" 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/01-disable-windows-mdns.ps1 b/coin/provisioning/qtci-windows-10-x86/01-disable-windows-mdns.ps1 new file mode 100644 index 00000000000..bffb9f0548d --- /dev/null +++ b/coin/provisioning/qtci-windows-10-x86/01-disable-windows-mdns.ps1 @@ -0,0 +1,5 @@ +# 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 + +# QTQAINFRA-6761 +. "$PSScriptRoot\..\common\windows\disable-windows-mdns.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/00-disable-netadapterlso.ps1 b/coin/provisioning/qtci-windows-10-x86_64/00-disable-netadapterlso.ps1 deleted file mode 100644 index d20f1402601..00000000000 --- a/coin/provisioning/qtci-windows-10-x86_64/00-disable-netadapterlso.ps1 +++ /dev/null @@ -1 +0,0 @@ -. "$PSScriptRoot\..\common\windows\disable-netadapterlso.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-x86_64/01-disable-windows-mdns.ps1 b/coin/provisioning/qtci-windows-10-x86_64/01-disable-windows-mdns.ps1 new file mode 100644 index 00000000000..bffb9f0548d --- /dev/null +++ b/coin/provisioning/qtci-windows-10-x86_64/01-disable-windows-mdns.ps1 @@ -0,0 +1,5 @@ +# 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 + +# QTQAINFRA-6761 +. "$PSScriptRoot\..\common\windows\disable-windows-mdns.ps1" diff --git a/coin/provisioning/qtci-windows-10-x86_64/89-zlib.ps1 b/coin/provisioning/qtci-windows-10-x86_64/89-zlib.ps1 new file mode 100644 index 00000000000..90751c34830 --- /dev/null +++ b/coin/provisioning/qtci-windows-10-x86_64/89-zlib.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\zlib.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/00-disable-netadapterlso.ps1 b/coin/provisioning/qtci-windows-10_21H2-x86_64/00-disable-netadapterlso.ps1 deleted file mode 100644 index d20f1402601..00000000000 --- a/coin/provisioning/qtci-windows-10_21H2-x86_64/00-disable-netadapterlso.ps1 +++ /dev/null @@ -1 +0,0 @@ -. "$PSScriptRoot\..\common\windows\disable-netadapterlso.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_21H2-x86_64/01-disable-windows-mdns.ps1 b/coin/provisioning/qtci-windows-10_21H2-x86_64/01-disable-windows-mdns.ps1 new file mode 100644 index 00000000000..bffb9f0548d --- /dev/null +++ b/coin/provisioning/qtci-windows-10_21H2-x86_64/01-disable-windows-mdns.ps1 @@ -0,0 +1,5 @@ +# 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 + +# QTQAINFRA-6761 +. "$PSScriptRoot\..\common\windows\disable-windows-mdns.ps1" diff --git a/coin/provisioning/qtci-windows-10_21H2-x86_64/89-zlib.ps1 b/coin/provisioning/qtci-windows-10_21H2-x86_64/89-zlib.ps1 new file mode 100644 index 00000000000..90751c34830 --- /dev/null +++ b/coin/provisioning/qtci-windows-10_21H2-x86_64/89-zlib.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\zlib.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/00-disable-netadapterlso.ps1 b/coin/provisioning/qtci-windows-10_22H2-x86_64/00-disable-netadapterlso.ps1 deleted file mode 100644 index d20f1402601..00000000000 --- a/coin/provisioning/qtci-windows-10_22H2-x86_64/00-disable-netadapterlso.ps1 +++ /dev/null @@ -1 +0,0 @@ -. "$PSScriptRoot\..\common\windows\disable-netadapterlso.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/01-disable-windows-mdns.ps1 b/coin/provisioning/qtci-windows-10_22H2-x86_64/01-disable-windows-mdns.ps1 new file mode 100644 index 00000000000..bffb9f0548d --- /dev/null +++ b/coin/provisioning/qtci-windows-10_22H2-x86_64/01-disable-windows-mdns.ps1 @@ -0,0 +1,5 @@ +# 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 + +# QTQAINFRA-6761 +. "$PSScriptRoot\..\common\windows\disable-windows-mdns.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-10_22H2-x86_64/89-zlib.ps1 b/coin/provisioning/qtci-windows-10_22H2-x86_64/89-zlib.ps1 new file mode 100644 index 00000000000..90751c34830 --- /dev/null +++ b/coin/provisioning/qtci-windows-10_22H2-x86_64/89-zlib.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\zlib.ps1" 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/00-disable-netadapterlso.ps1 b/coin/provisioning/qtci-windows-11_21H2-x86_64/00-disable-netadapterlso.ps1 deleted file mode 100644 index d20f1402601..00000000000 --- a/coin/provisioning/qtci-windows-11_21H2-x86_64/00-disable-netadapterlso.ps1 +++ /dev/null @@ -1 +0,0 @@ -. "$PSScriptRoot\..\common\windows\disable-netadapterlso.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/01-disable-windows-mdns.ps1 b/coin/provisioning/qtci-windows-11_21H2-x86_64/01-disable-windows-mdns.ps1 new file mode 100644 index 00000000000..bffb9f0548d --- /dev/null +++ b/coin/provisioning/qtci-windows-11_21H2-x86_64/01-disable-windows-mdns.ps1 @@ -0,0 +1,5 @@ +# 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 + +# QTQAINFRA-6761 +. "$PSScriptRoot\..\common\windows\disable-windows-mdns.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_21H2-x86_64/89-zlib.ps1 b/coin/provisioning/qtci-windows-11_21H2-x86_64/89-zlib.ps1 new file mode 100644 index 00000000000..90751c34830 --- /dev/null +++ b/coin/provisioning/qtci-windows-11_21H2-x86_64/89-zlib.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\zlib.ps1" 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/00-disable-netadapterlso.ps1 b/coin/provisioning/qtci-windows-11_22H2-aarch64/00-disable-netadapterlso.ps1 deleted file mode 100644 index d20f1402601..00000000000 --- a/coin/provisioning/qtci-windows-11_22H2-aarch64/00-disable-netadapterlso.ps1 +++ /dev/null @@ -1 +0,0 @@ -. "$PSScriptRoot\..\common\windows\disable-netadapterlso.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-aarch64/01-disable-windows-mdns.ps1 b/coin/provisioning/qtci-windows-11_22H2-aarch64/01-disable-windows-mdns.ps1 new file mode 100644 index 00000000000..bffb9f0548d --- /dev/null +++ b/coin/provisioning/qtci-windows-11_22H2-aarch64/01-disable-windows-mdns.ps1 @@ -0,0 +1,5 @@ +# 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 + +# QTQAINFRA-6761 +. "$PSScriptRoot\..\common\windows\disable-windows-mdns.ps1" diff --git a/coin/provisioning/qtci-windows-11_22H2-aarch64/89-zlib.ps1 b/coin/provisioning/qtci-windows-11_22H2-aarch64/89-zlib.ps1 new file mode 100644 index 00000000000..90751c34830 --- /dev/null +++ b/coin/provisioning/qtci-windows-11_22H2-aarch64/89-zlib.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\zlib.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/00-disable-netadapterlso.ps1 b/coin/provisioning/qtci-windows-11_22H2-x86_64/00-disable-netadapterlso.ps1 deleted file mode 100644 index d20f1402601..00000000000 --- a/coin/provisioning/qtci-windows-11_22H2-x86_64/00-disable-netadapterlso.ps1 +++ /dev/null @@ -1 +0,0 @@ -. "$PSScriptRoot\..\common\windows\disable-netadapterlso.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/01-disable-windows-mdns.ps1 b/coin/provisioning/qtci-windows-11_22H2-x86_64/01-disable-windows-mdns.ps1 new file mode 100644 index 00000000000..bffb9f0548d --- /dev/null +++ b/coin/provisioning/qtci-windows-11_22H2-x86_64/01-disable-windows-mdns.ps1 @@ -0,0 +1,5 @@ +# 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 + +# QTQAINFRA-6761 +. "$PSScriptRoot\..\common\windows\disable-windows-mdns.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_22H2-x86_64/89-zlib.ps1 b/coin/provisioning/qtci-windows-11_22H2-x86_64/89-zlib.ps1 new file mode 100644 index 00000000000..90751c34830 --- /dev/null +++ b/coin/provisioning/qtci-windows-11_22H2-x86_64/89-zlib.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\zlib.ps1" diff --git a/coin/provisioning/qtci-windows-11_23H2-aarch64/00-certificate-updates.ps1 b/coin/provisioning/qtci-windows-11_23H2-aarch64/00-certificate-updates.ps1 new file mode 100644 index 00000000000..3691baf20b7 --- /dev/null +++ b/coin/provisioning/qtci-windows-11_23H2-aarch64/00-certificate-updates.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\certificate-updates.ps1" diff --git a/coin/provisioning/qtci-windows-11_23H2-aarch64/00-install-sevenzip.ps1 b/coin/provisioning/qtci-windows-11_23H2-aarch64/00-install-sevenzip.ps1 new file mode 100644 index 00000000000..a9044256862 --- /dev/null +++ b/coin/provisioning/qtci-windows-11_23H2-aarch64/00-install-sevenzip.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\install-sevenzip.ps1" diff --git a/coin/provisioning/qtci-windows-11_23H2-aarch64/01-allow-remote-desktop-access.ps1 b/coin/provisioning/qtci-windows-11_23H2-aarch64/01-allow-remote-desktop-access.ps1 new file mode 100644 index 00000000000..af05e838e2b --- /dev/null +++ b/coin/provisioning/qtci-windows-11_23H2-aarch64/01-allow-remote-desktop-access.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\allow-remote-desktop-access.ps1" diff --git a/coin/provisioning/qtci-windows-11_23H2-aarch64/01-change-resolution.ps1 b/coin/provisioning/qtci-windows-11_23H2-aarch64/01-change-resolution.ps1 new file mode 100644 index 00000000000..c1e73a62dc9 --- /dev/null +++ b/coin/provisioning/qtci-windows-11_23H2-aarch64/01-change-resolution.ps1 @@ -0,0 +1,28 @@ +$x_value = "1280" +$y_value = "800" + +Function ChangeResolution { + Param ( + [string]$driver + ) + + $path = "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\Configuration" + + reg.exe ADD "$path\$driver\00\" /V PrimSurfSize.cx /T REG_dWORD /D $x_value /F + reg.exe ADD "$path\$driver\00\" /V PrimSurfSize.cy /T REG_dWORD /D $y_value /F + reg.exe ADD "$path\$driver\00\00" /V DwmClipBox.bottom /T REG_dWORD /D $y_value /F + reg.exe ADD "$path\$driver\00\00" /V DwmClipBox.right /T REG_dWORD /D $x_value /F + reg.exe ADD "$path\$driver\00\00" /V PrimSurfSize.cx /T REG_dWORD /D $x_value /F + reg.exe ADD "$path\$driver\00\00" /V PrimSurfSize.cy /T REG_dWORD /D $y_value /F + reg.exe ADD "$path\$driver\00\00" /V ActiveSize.cy /T REG_dWORD /D $y_value /F + reg.exe ADD "$path\$driver\00\00" /V ActiveSize.cx /T REG_dWORD /D $x_value /F + +} + +Write-Host "Changing the resolution to ${x_value}x${y_value}" +ChangeResolution "MSBDD_NOEDID_1234_1111_00000000_00020000_0^E3701873EC28AFCFF631E725354CDC2D" +ChangeResolution "MSBDD_NOEDID_15AD_0405_00000000_000F0000_0^C13AE38966E73205F75BFACA84EB83A5" +ChangeResolution "MSBDD_RHT12340_2A_07DE_3A_1234_1111_00000000_00020000_0^EC6E4468E7627A114F1F86EA72F3C134" +ChangeResolution "MSBDD_RHT12340_2A_07DE_3D_1234_1111_00000000_00010000_0^4189234F4C5A30C0FE2E08AED7E5F516" +ChangeResolution "MSBDD_RHT12340_2A_07DE_3D_1234_1111_00000000_00020000_0^0E45B5CD7061674FC90A8064A6FE81F4" +ChangeResolution "MSNILNOEDID_1414_008D_FFFFFFFF_FFFFFFFF_0^030B4FCE00727AC1593E5B6FD18648D6" diff --git a/coin/provisioning/qtci-windows-11_23H2-aarch64/01-disable-notifications.ps1 b/coin/provisioning/qtci-windows-11_23H2-aarch64/01-disable-notifications.ps1 new file mode 100644 index 00000000000..ada20147db3 --- /dev/null +++ b/coin/provisioning/qtci-windows-11_23H2-aarch64/01-disable-notifications.ps1 @@ -0,0 +1,9 @@ +# Windows 'Notifications & actions' +# Disable 'Get notifications from apps and other senders' +reg.exe ADD "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\PushNotifications" /V ToastEnabled /T REG_dWORD /D 0 /F + +# Disable 'Show me the Windows welcome experience after udpates and occasionally when I sign in to highlight what's new and suggested' +reg.exe ADD "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /V SubscribedContent-310093Enabled /T REG_dWORD /D 0 /F + +# Disable 'Get tips, tricks and suggestions as you use Windows' +reg.exe ADD "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /V SubscribedContent-338389Enabled /T REG_dWORD /D 0 /F diff --git a/coin/provisioning/qtci-windows-11_23H2-aarch64/01-disable-runtimebroker.ps1 b/coin/provisioning/qtci-windows-11_23H2-aarch64/01-disable-runtimebroker.ps1 new file mode 100644 index 00000000000..8ae8190d23d --- /dev/null +++ b/coin/provisioning/qtci-windows-11_23H2-aarch64/01-disable-runtimebroker.ps1 @@ -0,0 +1,4 @@ +# Disable RunTime Broker +# The RunTime Broker is a Windows system process, which helps to manage app permissions on your pc between Windows apps and ensures apps are behaving themselves. +# Coordinates execution of background work for WinRT application. If this service is stopped or disabled, then background work might not be triggered. +reg.exe ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TimeBrokerSvc" /V Start /T REG_dWORD /D 4 /F diff --git a/coin/provisioning/qtci-windows-11_23H2-aarch64/01-disable-windows-delivery-optimization.ps1 b/coin/provisioning/qtci-windows-11_23H2-aarch64/01-disable-windows-delivery-optimization.ps1 new file mode 100644 index 00000000000..908df46fde4 --- /dev/null +++ b/coin/provisioning/qtci-windows-11_23H2-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_23H2-aarch64/01-disable-windows-mdns.ps1 b/coin/provisioning/qtci-windows-11_23H2-aarch64/01-disable-windows-mdns.ps1 new file mode 100644 index 00000000000..bffb9f0548d --- /dev/null +++ b/coin/provisioning/qtci-windows-11_23H2-aarch64/01-disable-windows-mdns.ps1 @@ -0,0 +1,5 @@ +# 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 + +# QTQAINFRA-6761 +. "$PSScriptRoot\..\common\windows\disable-windows-mdns.ps1" diff --git a/coin/provisioning/qtci-windows-11_23H2-aarch64/01-disable-windows-telemetry.ps1 b/coin/provisioning/qtci-windows-11_23H2-aarch64/01-disable-windows-telemetry.ps1 new file mode 100644 index 00000000000..3f5a75f47cb --- /dev/null +++ b/coin/provisioning/qtci-windows-11_23H2-aarch64/01-disable-windows-telemetry.ps1 @@ -0,0 +1,7 @@ +# Disable Connected User Experiences and Telemetry service +# The Connected User Experiences and Telemetry service enables features that support in-application and connected user experiences. +# Additionally, this service manages the event driven collection and transmission of diagnostic and usage information +# (used to improve the experience and quality of the Windows Platform) when the diagnostics and usage privacy option settings are enabled under Feedback and Diagnostics. +reg.exe ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Data Collection" /V AllowTelemetry /T REG_dWORD /D 0 /F +stop-service diagtrack +set-service diagtrack -startuptype disabled diff --git a/coin/provisioning/qtci-windows-11_23H2-aarch64/01-enable-guest-logon.ps1 b/coin/provisioning/qtci-windows-11_23H2-aarch64/01-enable-guest-logon.ps1 new file mode 100644 index 00000000000..3cf989d37b6 --- /dev/null +++ b/coin/provisioning/qtci-windows-11_23H2-aarch64/01-enable-guest-logon.ps1 @@ -0,0 +1,2 @@ +# Allow SMB client guest logons to SMB server. +reg.exe ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters" /V AllowInsecureGuestAuth /T REG_dWORD /D 1 /F diff --git a/coin/provisioning/qtci-windows-11_23H2-aarch64/01-install_telegraf.ps1 b/coin/provisioning/qtci-windows-11_23H2-aarch64/01-install_telegraf.ps1 new file mode 100644 index 00000000000..77fa8cbfe69 --- /dev/null +++ b/coin/provisioning/qtci-windows-11_23H2-aarch64/01-install_telegraf.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\install_telegraf.ps1" diff --git a/coin/provisioning/qtci-windows-11_23H2-aarch64/01-set-proxy.ps1 b/coin/provisioning/qtci-windows-11_23H2-aarch64/01-set-proxy.ps1 new file mode 100644 index 00000000000..13b1ec602ec --- /dev/null +++ b/coin/provisioning/qtci-windows-11_23H2-aarch64/01-set-proxy.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\set-proxy.ps1" diff --git a/coin/provisioning/qtci-windows-11_23H2-aarch64/02-disable-autoreboot.ps1 b/coin/provisioning/qtci-windows-11_23H2-aarch64/02-disable-autoreboot.ps1 new file mode 100644 index 00000000000..73430b76117 --- /dev/null +++ b/coin/provisioning/qtci-windows-11_23H2-aarch64/02-disable-autoreboot.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\disable-autoreboot.ps1" diff --git a/coin/provisioning/qtci-windows-11_23H2-aarch64/02-disable-sleep.ps1 b/coin/provisioning/qtci-windows-11_23H2-aarch64/02-disable-sleep.ps1 new file mode 100644 index 00000000000..5bf811efb22 --- /dev/null +++ b/coin/provisioning/qtci-windows-11_23H2-aarch64/02-disable-sleep.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\disable-sleep.ps1" diff --git a/coin/provisioning/qtci-windows-11_23H2-aarch64/03-nodejs.ps1 b/coin/provisioning/qtci-windows-11_23H2-aarch64/03-nodejs.ps1 new file mode 100644 index 00000000000..6032e94565e --- /dev/null +++ b/coin/provisioning/qtci-windows-11_23H2-aarch64/03-nodejs.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\nodejs.ps1" diff --git a/coin/provisioning/qtci-windows-11_23H2-aarch64/05-enable-devmode.ps1 b/coin/provisioning/qtci-windows-11_23H2-aarch64/05-enable-devmode.ps1 new file mode 100644 index 00000000000..01e6f8b0baf --- /dev/null +++ b/coin/provisioning/qtci-windows-11_23H2-aarch64/05-enable-devmode.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\win10-enable-devmode.ps1" diff --git a/coin/provisioning/qtci-windows-11_23H2-aarch64/05-wsearch-off.ps1 b/coin/provisioning/qtci-windows-11_23H2-aarch64/05-wsearch-off.ps1 new file mode 100644 index 00000000000..eed6b734f55 --- /dev/null +++ b/coin/provisioning/qtci-windows-11_23H2-aarch64/05-wsearch-off.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\wsearch-off.ps1" diff --git a/coin/provisioning/qtci-windows-11_23H2-aarch64/06-longpath.ps1 b/coin/provisioning/qtci-windows-11_23H2-aarch64/06-longpath.ps1 new file mode 100644 index 00000000000..6561d57b1e9 --- /dev/null +++ b/coin/provisioning/qtci-windows-11_23H2-aarch64/06-longpath.ps1 @@ -0,0 +1,2 @@ +. "$PSScriptRoot\..\common\windows\longpath.ps1" + diff --git a/coin/provisioning/qtci-windows-11_23H2-aarch64/06-mesa_llvmpipe.ps1 b/coin/provisioning/qtci-windows-11_23H2-aarch64/06-mesa_llvmpipe.ps1 new file mode 100644 index 00000000000..1b1a07e9f6f --- /dev/null +++ b/coin/provisioning/qtci-windows-11_23H2-aarch64/06-mesa_llvmpipe.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\mesa_llvmpipe.ps1" diff --git a/coin/provisioning/qtci-windows-11_23H2-aarch64/06-ninja.ps1 b/coin/provisioning/qtci-windows-11_23H2-aarch64/06-ninja.ps1 new file mode 100644 index 00000000000..ba571a1efb9 --- /dev/null +++ b/coin/provisioning/qtci-windows-11_23H2-aarch64/06-ninja.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\ninja.ps1" diff --git a/coin/provisioning/qtci-windows-11_23H2-aarch64/08-install-git.ps1 b/coin/provisioning/qtci-windows-11_23H2-aarch64/08-install-git.ps1 new file mode 100644 index 00000000000..38106de75e6 --- /dev/null +++ b/coin/provisioning/qtci-windows-11_23H2-aarch64/08-install-git.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\install-git.ps1" diff --git a/coin/provisioning/qtci-windows-11_23H2-aarch64/08-install-jdk.ps1 b/coin/provisioning/qtci-windows-11_23H2-aarch64/08-install-jdk.ps1 new file mode 100644 index 00000000000..15065b55c71 --- /dev/null +++ b/coin/provisioning/qtci-windows-11_23H2-aarch64/08-install-jdk.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\install-jdk.ps1" diff --git a/coin/provisioning/qtci-windows-11_23H2-aarch64/08-libclang.ps1 b/coin/provisioning/qtci-windows-11_23H2-aarch64/08-libclang.ps1 new file mode 100644 index 00000000000..516adaf0643 --- /dev/null +++ b/coin/provisioning/qtci-windows-11_23H2-aarch64/08-libclang.ps1 @@ -0,0 +1,2 @@ +# Do not set the default LLVM_INSTALL_DIR for mingw, leave it with msvc for compat +. "$PSScriptRoot\..\common\windows\libclang.ps1" arm64 vs2022 diff --git a/coin/provisioning/qtci-windows-11_23H2-aarch64/08-python3.ps1 b/coin/provisioning/qtci-windows-11_23H2-aarch64/08-python3.ps1 new file mode 100644 index 00000000000..74cb6997fff --- /dev/null +++ b/coin/provisioning/qtci-windows-11_23H2-aarch64/08-python3.ps1 @@ -0,0 +1,9 @@ +# Parameters: +# - Arch 32/64 +# - installer sha1 +# - install target dir +# - version +# - Optional true/false if set as default with PYTHON3/PIP3_PATH variables, default false + +# Downloading https://www.python.org/ftp/python/3.11.9/python-3.11.9-arm64.exe +. "$PSScriptRoot\..\common\windows\python3.ps1" 64 "9e0487af5f0472978b7b6d4f4d3d8fd56865ff97" "C:\Python311_64" "3.11.9" $true diff --git a/coin/provisioning/qtci-windows-11_23H2-aarch64/09-install-dependencywalker.ps1 b/coin/provisioning/qtci-windows-11_23H2-aarch64/09-install-dependencywalker.ps1 new file mode 100644 index 00000000000..331de489564 --- /dev/null +++ b/coin/provisioning/qtci-windows-11_23H2-aarch64/09-install-dependencywalker.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\install-dependencywalker.ps1" diff --git a/coin/provisioning/qtci-windows-11_23H2-aarch64/09-install-openssh.ps1 b/coin/provisioning/qtci-windows-11_23H2-aarch64/09-install-openssh.ps1 new file mode 100644 index 00000000000..9de844da181 --- /dev/null +++ b/coin/provisioning/qtci-windows-11_23H2-aarch64/09-install-openssh.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\install-openssh.ps1" diff --git a/coin/provisioning/qtci-windows-11_23H2-aarch64/09-install-sed.ps1 b/coin/provisioning/qtci-windows-11_23H2-aarch64/09-install-sed.ps1 new file mode 100644 index 00000000000..b3c8fded3c8 --- /dev/null +++ b/coin/provisioning/qtci-windows-11_23H2-aarch64/09-install-sed.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\install-sed.ps1" diff --git a/coin/provisioning/qtci-windows-11_23H2-aarch64/09-openssl-arm64.ps1 b/coin/provisioning/qtci-windows-11_23H2-aarch64/09-openssl-arm64.ps1 new file mode 100644 index 00000000000..c1bbf27107f --- /dev/null +++ b/coin/provisioning/qtci-windows-11_23H2-aarch64/09-openssl-arm64.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\openssl-arm64.ps1" diff --git a/coin/provisioning/qtci-windows-11_23H2-aarch64/09-openssl.ps1 b/coin/provisioning/qtci-windows-11_23H2-aarch64/09-openssl.ps1 new file mode 100644 index 00000000000..db3013e0559 --- /dev/null +++ b/coin/provisioning/qtci-windows-11_23H2-aarch64/09-openssl.ps1 @@ -0,0 +1,4 @@ +# Windows ARM has own common script +# - "$PSScriptRoot\..\common\windows\openssl-arm64.ps1" +# - need to check should these be combined or excluded +#. "$PSScriptRoot\..\common\windows\openssl.ps1" diff --git a/coin/provisioning/qtci-windows-11_23H2-aarch64/09-set-network-test-server.ps1 b/coin/provisioning/qtci-windows-11_23H2-aarch64/09-set-network-test-server.ps1 new file mode 100644 index 00000000000..7918fabfadc --- /dev/null +++ b/coin/provisioning/qtci-windows-11_23H2-aarch64/09-set-network-test-server.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\set-network-test-server.ps1" diff --git a/coin/provisioning/qtci-windows-11_23H2-aarch64/09-vulkansdk.ps1 b/coin/provisioning/qtci-windows-11_23H2-aarch64/09-vulkansdk.ps1 new file mode 100644 index 00000000000..54a3d563dfc --- /dev/null +++ b/coin/provisioning/qtci-windows-11_23H2-aarch64/09-vulkansdk.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\vulkansdk.ps1" diff --git a/coin/provisioning/qtci-windows-11_23H2-aarch64/10-install-msys2.ps1 b/coin/provisioning/qtci-windows-11_23H2-aarch64/10-install-msys2.ps1 new file mode 100644 index 00000000000..be9a36349c8 --- /dev/null +++ b/coin/provisioning/qtci-windows-11_23H2-aarch64/10-install-msys2.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\install-msys2.ps1" diff --git a/coin/provisioning/qtci-windows-11_23H2-aarch64/12-install-golang.ps1 b/coin/provisioning/qtci-windows-11_23H2-aarch64/12-install-golang.ps1 new file mode 100644 index 00000000000..c68f16a154e --- /dev/null +++ b/coin/provisioning/qtci-windows-11_23H2-aarch64/12-install-golang.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\install-golang.ps1" diff --git a/coin/provisioning/qtci-windows-11_23H2-aarch64/22-mqtt_broker.ps1 b/coin/provisioning/qtci-windows-11_23H2-aarch64/22-mqtt_broker.ps1 new file mode 100644 index 00000000000..71deb0d48e3 --- /dev/null +++ b/coin/provisioning/qtci-windows-11_23H2-aarch64/22-mqtt_broker.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\mqtt_broker.ps1" diff --git a/coin/provisioning/qtci-windows-11_23H2-aarch64/23-winrtrunner.ps1 b/coin/provisioning/qtci-windows-11_23H2-aarch64/23-winrtrunner.ps1 new file mode 100644 index 00000000000..078f862ef37 --- /dev/null +++ b/coin/provisioning/qtci-windows-11_23H2-aarch64/23-winrtrunner.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\winrtrunner.ps1" diff --git a/coin/provisioning/qtci-windows-11_23H2-aarch64/25-llvm-mingw.ps1 b/coin/provisioning/qtci-windows-11_23H2-aarch64/25-llvm-mingw.ps1 new file mode 100644 index 00000000000..9ce91521328 --- /dev/null +++ b/coin/provisioning/qtci-windows-11_23H2-aarch64/25-llvm-mingw.ps1 @@ -0,0 +1,20 @@ +# 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 + +. "$PSScriptRoot\..\common\windows\helpers.ps1" + +# This script installs LLVM-Mingw by mstorsjo +# https://github.com/mstorsjo/llvm-mingw/releases/tag/20240320 + +$zip = Get-DownloadLocation "llvm-mingw-20240320-ucrt-aarch64.zip" +$url_cache = "http://ci-files01-hki.ci.qt.io/input/windows/llvm-mingw-20240320-ucrt-aarch64.zip" +$url_official = "https://github.com/mstorsjo/llvm-mingw/releases/download/20240320/llvm-mingw-20240320-ucrt-aarch64.zip" + +Download $url_official $url_cache $zip +Verify-Checksum $zip "1ea4870551a6aaf0d51332be1ea10ce776ee3b42" +Extract-7Zip $zip C:\ + +Rename-Item C:\llvm-mingw-20240320-ucrt-aarch64 C:\llvm-mingw + +Write-Output "llvm-mingw = 18.1.2" >> ~/versions.txt +Remove-Item -Path $zip diff --git a/coin/provisioning/qtci-windows-11_23H2-aarch64/29-libusb.ps1 b/coin/provisioning/qtci-windows-11_23H2-aarch64/29-libusb.ps1 new file mode 100644 index 00000000000..6035912d0aa --- /dev/null +++ b/coin/provisioning/qtci-windows-11_23H2-aarch64/29-libusb.ps1 @@ -0,0 +1,3 @@ + + +. "$PSScriptRoot\..\common\windows\libusb.ps1" diff --git a/coin/provisioning/qtci-windows-11_23H2-aarch64/35-install-breakpad.ps1 b/coin/provisioning/qtci-windows-11_23H2-aarch64/35-install-breakpad.ps1 new file mode 100644 index 00000000000..9360a326cf5 --- /dev/null +++ b/coin/provisioning/qtci-windows-11_23H2-aarch64/35-install-breakpad.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\install-breakpad.ps1" diff --git a/coin/provisioning/qtci-windows-11_23H2-aarch64/36-install-gnuwin32.ps1 b/coin/provisioning/qtci-windows-11_23H2-aarch64/36-install-gnuwin32.ps1 new file mode 100644 index 00000000000..0e2abbac2e7 --- /dev/null +++ b/coin/provisioning/qtci-windows-11_23H2-aarch64/36-install-gnuwin32.ps1 @@ -0,0 +1,2 @@ +. "$PSScriptRoot\..\common\windows\install-gnuwin32.ps1" + diff --git a/coin/provisioning/qtci-windows-11_23H2-aarch64/60-jom.ps1 b/coin/provisioning/qtci-windows-11_23H2-aarch64/60-jom.ps1 new file mode 100644 index 00000000000..b246ce25669 --- /dev/null +++ b/coin/provisioning/qtci-windows-11_23H2-aarch64/60-jom.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\jom.ps1" diff --git a/coin/provisioning/qtci-windows-11_23H2-aarch64/70-cmake.ps1 b/coin/provisioning/qtci-windows-11_23H2-aarch64/70-cmake.ps1 new file mode 100644 index 00000000000..73dc7bc291c --- /dev/null +++ b/coin/provisioning/qtci-windows-11_23H2-aarch64/70-cmake.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\cmake.ps1" diff --git a/coin/provisioning/qtci-windows-11_23H2-aarch64/85-disable_quickedit_powershell.ps1 b/coin/provisioning/qtci-windows-11_23H2-aarch64/85-disable_quickedit_powershell.ps1 new file mode 100644 index 00000000000..547e15a88c8 --- /dev/null +++ b/coin/provisioning/qtci-windows-11_23H2-aarch64/85-disable_quickedit_powershell.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\disable-quickedit.ps1" diff --git a/coin/provisioning/qtci-windows-11_23H2-aarch64/89-zlib.ps1 b/coin/provisioning/qtci-windows-11_23H2-aarch64/89-zlib.ps1 new file mode 100644 index 00000000000..90751c34830 --- /dev/null +++ b/coin/provisioning/qtci-windows-11_23H2-aarch64/89-zlib.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\zlib.ps1" diff --git a/coin/provisioning/qtci-windows-11_23H2-aarch64/90-3dstudio_3rdparty.ps1 b/coin/provisioning/qtci-windows-11_23H2-aarch64/90-3dstudio_3rdparty.ps1 new file mode 100644 index 00000000000..114f52f99ff --- /dev/null +++ b/coin/provisioning/qtci-windows-11_23H2-aarch64/90-3dstudio_3rdparty.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\3dstudio_3rdparty.ps1" diff --git a/coin/provisioning/qtci-windows-11_23H2-aarch64/90-install-dotnet.ps1 b/coin/provisioning/qtci-windows-11_23H2-aarch64/90-install-dotnet.ps1 new file mode 100644 index 00000000000..a2ecfba2b81 --- /dev/null +++ b/coin/provisioning/qtci-windows-11_23H2-aarch64/90-install-dotnet.ps1 @@ -0,0 +1,2 @@ +. "$PSScriptRoot\..\common\windows\install-dotnet.ps1" + diff --git a/coin/provisioning/qtci-windows-11_23H2-aarch64/90-install-ffmpeg.ps1 b/coin/provisioning/qtci-windows-11_23H2-aarch64/90-install-ffmpeg.ps1 new file mode 100644 index 00000000000..cd8df72f926 --- /dev/null +++ b/coin/provisioning/qtci-windows-11_23H2-aarch64/90-install-ffmpeg.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\install-ffmpeg.ps1" diff --git a/coin/provisioning/qtci-windows-11_23H2-aarch64/90-install-notepad++.ps1 b/coin/provisioning/qtci-windows-11_23H2-aarch64/90-install-notepad++.ps1 new file mode 100644 index 00000000000..455d92bf0e3 --- /dev/null +++ b/coin/provisioning/qtci-windows-11_23H2-aarch64/90-install-notepad++.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\install-notepad++.ps1" diff --git a/coin/provisioning/qtci-windows-11_23H2-aarch64/90-install-stm32cubeprogrammer.ps1 b/coin/provisioning/qtci-windows-11_23H2-aarch64/90-install-stm32cubeprogrammer.ps1 new file mode 100644 index 00000000000..25c2bb4229a --- /dev/null +++ b/coin/provisioning/qtci-windows-11_23H2-aarch64/90-install-stm32cubeprogrammer.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\install-stm32cubeprogrammer.ps1" diff --git a/coin/provisioning/qtci-windows-11_23H2-aarch64/90-libusb.ps1 b/coin/provisioning/qtci-windows-11_23H2-aarch64/90-libusb.ps1 new file mode 100644 index 00000000000..29a1cfa4001 --- /dev/null +++ b/coin/provisioning/qtci-windows-11_23H2-aarch64/90-libusb.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\libusb.ps1" diff --git a/coin/provisioning/qtci-windows-11_23H2-aarch64/90-python-modules.ps1 b/coin/provisioning/qtci-windows-11_23H2-aarch64/90-python-modules.ps1 new file mode 100644 index 00000000000..adf9e30b530 --- /dev/null +++ b/coin/provisioning/qtci-windows-11_23H2-aarch64/90-python-modules.ps1 @@ -0,0 +1,5 @@ +. "$PSScriptRoot\..\common\windows\helpers.ps1" + +# Needed by packaging scripts +$scriptsPath = [System.Environment]::GetEnvironmentVariable('PIP3_PATH', [System.EnvironmentVariableTarget]::Machine) +Run-Executable "$scriptsPath\pip3.exe" "install bs4" diff --git a/coin/provisioning/qtci-windows-11_23H2-aarch64/90-squish.ps1 b/coin/provisioning/qtci-windows-11_23H2-aarch64/90-squish.ps1 new file mode 100644 index 00000000000..ff758845941 --- /dev/null +++ b/coin/provisioning/qtci-windows-11_23H2-aarch64/90-squish.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\squishInstall.ps1" diff --git a/coin/provisioning/qtci-windows-11_23H2-aarch64/91-install-azure-tool.ps1 b/coin/provisioning/qtci-windows-11_23H2-aarch64/91-install-azure-tool.ps1 new file mode 100644 index 00000000000..f1d5acc390e --- /dev/null +++ b/coin/provisioning/qtci-windows-11_23H2-aarch64/91-install-azure-tool.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\install-azure-tool.ps1" diff --git a/coin/provisioning/qtci-windows-11_23H2-aarch64/96-disable-windows-module-installer.ps1 b/coin/provisioning/qtci-windows-11_23H2-aarch64/96-disable-windows-module-installer.ps1 new file mode 100644 index 00000000000..fb8ec54157a --- /dev/null +++ b/coin/provisioning/qtci-windows-11_23H2-aarch64/96-disable-windows-module-installer.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\disable-windows-module-installer.ps1" diff --git a/coin/provisioning/qtci-windows-11_23H2-aarch64/98-unset-proxy.ps1 b/coin/provisioning/qtci-windows-11_23H2-aarch64/98-unset-proxy.ps1 new file mode 100644 index 00000000000..0c25a0fb1aa --- /dev/null +++ b/coin/provisioning/qtci-windows-11_23H2-aarch64/98-unset-proxy.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\unset-proxy.ps1" diff --git a/coin/provisioning/qtci-windows-11_23H2-aarch64/99-share-test-folders.ps1 b/coin/provisioning/qtci-windows-11_23H2-aarch64/99-share-test-folders.ps1 new file mode 100644 index 00000000000..576fcfdc373 --- /dev/null +++ b/coin/provisioning/qtci-windows-11_23H2-aarch64/99-share-test-folders.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\share-test-folders.ps1" diff --git a/coin/provisioning/qtci-windows-11_23H2-aarch64/99-version.ps1 b/coin/provisioning/qtci-windows-11_23H2-aarch64/99-version.ps1 new file mode 100644 index 00000000000..36e498bcf95 --- /dev/null +++ b/coin/provisioning/qtci-windows-11_23H2-aarch64/99-version.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\version.ps1" 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/00-disable-netadapterlso.ps1 b/coin/provisioning/qtci-windows-11_23H2-x86_64/00-disable-netadapterlso.ps1 deleted file mode 100644 index d20f1402601..00000000000 --- a/coin/provisioning/qtci-windows-11_23H2-x86_64/00-disable-netadapterlso.ps1 +++ /dev/null @@ -1 +0,0 @@ -. "$PSScriptRoot\..\common\windows\disable-netadapterlso.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/01-disable-windows-mdns.ps1 b/coin/provisioning/qtci-windows-11_23H2-x86_64/01-disable-windows-mdns.ps1 new file mode 100644 index 00000000000..bffb9f0548d --- /dev/null +++ b/coin/provisioning/qtci-windows-11_23H2-x86_64/01-disable-windows-mdns.ps1 @@ -0,0 +1,5 @@ +# 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 + +# QTQAINFRA-6761 +. "$PSScriptRoot\..\common\windows\disable-windows-mdns.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..da1548663e1 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,5 @@ # 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" arm64 vs2022 $False $True +. "$PSScriptRoot\..\common\windows\libclang.ps1" 64 vs2022 diff --git a/coin/provisioning/qtci-windows-11_23H2-x86_64/89-zlib.ps1 b/coin/provisioning/qtci-windows-11_23H2-x86_64/89-zlib.ps1 new file mode 100644 index 00000000000..90751c34830 --- /dev/null +++ b/coin/provisioning/qtci-windows-11_23H2-x86_64/89-zlib.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\zlib.ps1" 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/coin/provisioning/qtci-windows-11_24H2-x86_64/01-disable-windows-mdns.ps1 b/coin/provisioning/qtci-windows-11_24H2-x86_64/01-disable-windows-mdns.ps1 new file mode 100644 index 00000000000..bffb9f0548d --- /dev/null +++ b/coin/provisioning/qtci-windows-11_24H2-x86_64/01-disable-windows-mdns.ps1 @@ -0,0 +1,5 @@ +# 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 + +# QTQAINFRA-6761 +. "$PSScriptRoot\..\common\windows\disable-windows-mdns.ps1" diff --git a/coin/provisioning/qtci-windows-11_24H2-x86_64/89-zlib.ps1 b/coin/provisioning/qtci-windows-11_24H2-x86_64/89-zlib.ps1 new file mode 100644 index 00000000000..90751c34830 --- /dev/null +++ b/coin/provisioning/qtci-windows-11_24H2-x86_64/89-zlib.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\windows\zlib.ps1" diff --git a/coin/provisioning/qtci-windows-8.1-x86/00-disable-netadapterlso.ps1 b/coin/provisioning/qtci-windows-8.1-x86/00-disable-netadapterlso.ps1 deleted file mode 100644 index d20f1402601..00000000000 --- a/coin/provisioning/qtci-windows-8.1-x86/00-disable-netadapterlso.ps1 +++ /dev/null @@ -1 +0,0 @@ -. "$PSScriptRoot\..\common\windows\disable-netadapterlso.ps1" diff --git a/coin/provisioning/qtci-windows-8.1-x86_64/00-disable-netadapterlso.ps1 b/coin/provisioning/qtci-windows-8.1-x86_64/00-disable-netadapterlso.ps1 deleted file mode 100644 index d20f1402601..00000000000 --- a/coin/provisioning/qtci-windows-8.1-x86_64/00-disable-netadapterlso.ps1 +++ /dev/null @@ -1 +0,0 @@ -. "$PSScriptRoot\..\common\windows\disable-netadapterlso.ps1" diff --git a/qt3d b/qt3d index 219dd44a26c..cb3a834c136 160000 --- a/qt3d +++ b/qt3d @@ -1 +1 @@ -Subproject commit 219dd44a26cf4323c1a3ba1c7a48ac5f1596b5ba +Subproject commit cb3a834c136c631ec8a3cebdb69002201aa7d71a diff --git a/qt5compat b/qt5compat index 9e0fc26d8e0..896c2d6ba9e 160000 --- a/qt5compat +++ b/qt5compat @@ -1 +1 @@ -Subproject commit 9e0fc26d8e087379ef3f860460c066274368c012 +Subproject commit 896c2d6ba9eb2cea2a874594527be521e53cb409 diff --git a/qtactiveqt b/qtactiveqt index bea80dcdbc1..fb02728e90d 160000 --- a/qtactiveqt +++ b/qtactiveqt @@ -1 +1 @@ -Subproject commit bea80dcdbc1ca1580f7214debf0790415fba9bc2 +Subproject commit fb02728e90d633f8046a646b0f7ec92fd645b5ff diff --git a/qtbase b/qtbase index 9cb0d48aae8..3beff274025 160000 --- a/qtbase +++ b/qtbase @@ -1 +1 @@ -Subproject commit 9cb0d48aae81c5436bda783b64721d0b77bc3f6c +Subproject commit 3beff274025f5336ab1a71861b43baee660202cd diff --git a/qtcharts b/qtcharts index f4aa9dffcfe..c4096e14801 160000 --- a/qtcharts +++ b/qtcharts @@ -1 +1 @@ -Subproject commit f4aa9dffcfed508f1e7fb7a0f95cb0873ecd47c7 +Subproject commit c4096e148015db8fee2572ecb18be2b6ea72ac93 diff --git a/qtcoap b/qtcoap index 24c6d918810..b3b54d8e03d 160000 --- a/qtcoap +++ b/qtcoap @@ -1 +1 @@ -Subproject commit 24c6d9188107d0834b44b91517f58656a495d495 +Subproject commit b3b54d8e03d6bd97b98f62c1a02ffeef193db542 diff --git a/qtconnectivity b/qtconnectivity index d401180fc4b..75d30261780 160000 --- a/qtconnectivity +++ b/qtconnectivity @@ -1 +1 @@ -Subproject commit d401180fc4bc59a4dbe279cd4cdf3f4325d6e210 +Subproject commit 75d30261780cb79494361a666c764c80eabde60b diff --git a/qtdatavis3d b/qtdatavis3d index 3e7d0a477a0..84cb068c0fa 160000 --- a/qtdatavis3d +++ b/qtdatavis3d @@ -1 +1 @@ -Subproject commit 3e7d0a477a0fe97e8de7669b8d4460c8280c2887 +Subproject commit 84cb068c0faf70de96cbe8b32301a9625a855f00 diff --git a/qtdeclarative b/qtdeclarative index f5673f1e0e1..cfb54920746 160000 --- a/qtdeclarative +++ b/qtdeclarative @@ -1 +1 @@ -Subproject commit f5673f1e0e139fab33a456275b015fe4e5ca3986 +Subproject commit cfb549207463158863de0be5f31de3c50cccfd83 diff --git a/qtdoc b/qtdoc index 7d49bbdf128..ea19548fb27 160000 --- a/qtdoc +++ b/qtdoc @@ -1 +1 @@ -Subproject commit 7d49bbdf12829df94719f5a53de9f20f76b7502b +Subproject commit ea19548fb2724f6334376253238779c3f178ca2d diff --git a/qtgraphs b/qtgraphs index 59085abc657..f950c42b54b 160000 --- a/qtgraphs +++ b/qtgraphs @@ -1 +1 @@ -Subproject commit 59085abc6574fdfd222bc9e9b0473093e5344360 +Subproject commit f950c42b54b30c5fa78dd81668150a44d48ffca9 diff --git a/qtgrpc b/qtgrpc index bfd24967bc2..ce77d0f2bbf 160000 --- a/qtgrpc +++ b/qtgrpc @@ -1 +1 @@ -Subproject commit bfd24967bc26373f4920e3505cd3d4fd28e70687 +Subproject commit ce77d0f2bbf7a2e57d1226504c8f4260343f0a3c diff --git a/qthttpserver b/qthttpserver index 45c60e30e0a..0dfbbd9b33b 160000 --- a/qthttpserver +++ b/qthttpserver @@ -1 +1 @@ -Subproject commit 45c60e30e0a4a411162365cf01aafc1b0cba201c +Subproject commit 0dfbbd9b33bb2c1117eeb3a0bf716963fc386417 diff --git a/qtimageformats b/qtimageformats index 08d1bb47494..ca41b1670cd 160000 --- a/qtimageformats +++ b/qtimageformats @@ -1 +1 @@ -Subproject commit 08d1bb474949c2d4f886928198bcf4cbf70ce724 +Subproject commit ca41b1670cdec269b23441f7dec9e3f49d84e5fd diff --git a/qtlanguageserver b/qtlanguageserver index 5f998f06ebd..9ea97905c73 160000 --- a/qtlanguageserver +++ b/qtlanguageserver @@ -1 +1 @@ -Subproject commit 5f998f06ebd2aeedad839eb33b303fb44a10aaa9 +Subproject commit 9ea97905c738e867671987442019d1a2c765961e diff --git a/qtlocation b/qtlocation index ea636dd72f8..555aeef78b1 160000 --- a/qtlocation +++ b/qtlocation @@ -1 +1 @@ -Subproject commit ea636dd72f823c20c988b05230b7fbf5ea4aca4d +Subproject commit 555aeef78b1e8e99b5a03f43ac4b1303199b90cd diff --git a/qtlottie b/qtlottie index 0fd4a8f813e..1a82663c62a 160000 --- a/qtlottie +++ b/qtlottie @@ -1 +1 @@ -Subproject commit 0fd4a8f813e0a0395de2b4374935fe6023d3afce +Subproject commit 1a82663c62ac33fe69094dd277abb28da03c6f85 diff --git a/qtmqtt b/qtmqtt index aeac9f7e171..2d89f5687ff 160000 --- a/qtmqtt +++ b/qtmqtt @@ -1 +1 @@ -Subproject commit aeac9f7e171205bb9c47eb6479cfd3d31768f312 +Subproject commit 2d89f5687ff898a4d5135a5e307d3a1502e10547 diff --git a/qtmultimedia b/qtmultimedia index f68eef36f23..0c75d8166d8 160000 --- a/qtmultimedia +++ b/qtmultimedia @@ -1 +1 @@ -Subproject commit f68eef36f234acfa4e99e1c8ba1d9ed8119a8f44 +Subproject commit 0c75d8166d810b38e0c577b871ab51b36abbc3c5 diff --git a/qtnetworkauth b/qtnetworkauth index 2f263f7028d..4347eb52f89 160000 --- a/qtnetworkauth +++ b/qtnetworkauth @@ -1 +1 @@ -Subproject commit 2f263f7028d2933c5e536c16f5622349053e682d +Subproject commit 4347eb52f89d25c64c24617160064228bd982b2e diff --git a/qtopcua b/qtopcua index 7055c65fc10..ead72b76066 160000 --- a/qtopcua +++ b/qtopcua @@ -1 +1 @@ -Subproject commit 7055c65fc10b2fdec80fe957768bdf27f7874ce1 +Subproject commit ead72b76066f700bb2dacdb3005ae93266f0267a diff --git a/qtpositioning b/qtpositioning index 7db6885dce3..215d568f547 160000 --- a/qtpositioning +++ b/qtpositioning @@ -1 +1 @@ -Subproject commit 7db6885dce399ad7ef47493c612127b71d3b229d +Subproject commit 215d568f547bf614ca3de47b698155ad43e46712 diff --git a/qtquick3d b/qtquick3d index 575612ae6be..960a94263ae 160000 --- a/qtquick3d +++ b/qtquick3d @@ -1 +1 @@ -Subproject commit 575612ae6be6811226e794e68009db046d7ad780 +Subproject commit 960a94263ae4362066125b611016415a1746fa28 diff --git a/qtquick3dphysics b/qtquick3dphysics index 85f5ad2048d..c3c977b9c2c 160000 --- a/qtquick3dphysics +++ b/qtquick3dphysics @@ -1 +1 @@ -Subproject commit 85f5ad2048d5fa11a0d9086cdb6a1dce549b44de +Subproject commit c3c977b9c2c4ad6adfb392d2d9c39ec7744e07e0 diff --git a/qtquickeffectmaker b/qtquickeffectmaker index e1847e589af..f8f46d31b5e 160000 --- a/qtquickeffectmaker +++ b/qtquickeffectmaker @@ -1 +1 @@ -Subproject commit e1847e589affcc420c69cbf028f361276aa292a0 +Subproject commit f8f46d31b5ebe698b9e21370035287cba7cf1467 diff --git a/qtquicktimeline b/qtquicktimeline index 9e0a9979f2f..d0a46c11589 160000 --- a/qtquicktimeline +++ b/qtquicktimeline @@ -1 +1 @@ -Subproject commit 9e0a9979f2fe9eeead3c16311d0e3b8d6d5bbb8d +Subproject commit d0a46c11589664ab0d5b4a4f902b6fef9458aecd diff --git a/qtremoteobjects b/qtremoteobjects index 392a215a2ad..1c0d57b91ff 160000 --- a/qtremoteobjects +++ b/qtremoteobjects @@ -1 +1 @@ -Subproject commit 392a215a2ad716b9cc60311da2d8b09af149753e +Subproject commit 1c0d57b91ff97b8301faaf173e73448aee362cdd diff --git a/qtrepotools b/qtrepotools index c29a3c2801d..07e83fe9511 160000 --- a/qtrepotools +++ b/qtrepotools @@ -1 +1 @@ -Subproject commit c29a3c2801d99b128ab68aab6a829d96c231d281 +Subproject commit 07e83fe951143178260eee045010700da6351416 diff --git a/qtscxml b/qtscxml index 253845885a6..0c519645200 160000 --- a/qtscxml +++ b/qtscxml @@ -1 +1 @@ -Subproject commit 253845885a6e293f0c4dbbd3d53131afd7b88f9c +Subproject commit 0c519645200683f811d4daf9c0d6e0c97e527359 diff --git a/qtsensors b/qtsensors index 9a2f543f523..1e5a9498562 160000 --- a/qtsensors +++ b/qtsensors @@ -1 +1 @@ -Subproject commit 9a2f543f523bfe3519c4b7d2c56b03393d21fe88 +Subproject commit 1e5a9498562f53a8d9ca3b1ea84e3d7298ad04ef diff --git a/qtserialbus b/qtserialbus index 19335acb872..8bd84238773 160000 --- a/qtserialbus +++ b/qtserialbus @@ -1 +1 @@ -Subproject commit 19335acb87270d0768609b2e6bf708c7deac14ec +Subproject commit 8bd84238773963de4a23952a14cd9e2704ea3b34 diff --git a/qtserialport b/qtserialport index 125813ab104..3fcf3ea9a40 160000 --- a/qtserialport +++ b/qtserialport @@ -1 +1 @@ -Subproject commit 125813ab104a417ea168eeda8842ca1a51a4453e +Subproject commit 3fcf3ea9a4066850ed6266601188df799bb0dfdc diff --git a/qtshadertools b/qtshadertools index ce3904c1b29..515306bd5d3 160000 --- a/qtshadertools +++ b/qtshadertools @@ -1 +1 @@ -Subproject commit ce3904c1b29b8960b623dee229f7fabdc7d14bd0 +Subproject commit 515306bd5d39e014ca218a78326fc2b0b411a426 diff --git a/qtspeech b/qtspeech index da727c8dcc7..1b3826d85a0 160000 --- a/qtspeech +++ b/qtspeech @@ -1 +1 @@ -Subproject commit da727c8dcc725c0f213e17cf68b2e7616d87ae66 +Subproject commit 1b3826d85a0e5d937000b9bac6dcb817f73cc7ad diff --git a/qtsvg b/qtsvg index f4de0d25d1f..da99c2b9d34 160000 --- a/qtsvg +++ b/qtsvg @@ -1 +1 @@ -Subproject commit f4de0d25d1faeb131b5fd6d37bd2ab2cbd27ab47 +Subproject commit da99c2b9d34b4f4ae46cf1ea60c03a6ffa659689 diff --git a/qttools b/qttools index 3557f0897aa..dd8ee454c40 160000 --- a/qttools +++ b/qttools @@ -1 +1 @@ -Subproject commit 3557f0897aa2624b633a0bb83f1970245de37e1f +Subproject commit dd8ee454c408f4896633b3fb1d32eea92da8aa8e diff --git a/qttranslations b/qttranslations index 437e02421dd..63072696b4d 160000 --- a/qttranslations +++ b/qttranslations @@ -1 +1 @@ -Subproject commit 437e02421ddfad8ad0480f4ccf20b1abf647acbd +Subproject commit 63072696b4d89b016fca12161c591d20eb3a36a6 diff --git a/qtvirtualkeyboard b/qtvirtualkeyboard index 8a59f19d1b0..af5d77ae22c 160000 --- a/qtvirtualkeyboard +++ b/qtvirtualkeyboard @@ -1 +1 @@ -Subproject commit 8a59f19d1b0b56fa3430927e4800d278e8d53746 +Subproject commit af5d77ae22cd75573d307e38a252c8b59d1aa2d2 diff --git a/qtwayland b/qtwayland index a8018eced50..eb179094291 160000 --- a/qtwayland +++ b/qtwayland @@ -1 +1 @@ -Subproject commit a8018eced508e2afffba4dfb20d04a23a184d7f9 +Subproject commit eb17909429141f0ff675cf0ade973d92ca779913 diff --git a/qtwebchannel b/qtwebchannel index a13deb0fbd2..13790cec1ea 160000 --- a/qtwebchannel +++ b/qtwebchannel @@ -1 +1 @@ -Subproject commit a13deb0fbd2f0af0c23311b83c3783ab27140a56 +Subproject commit 13790cec1eafd95a24e9c0f27113f04fd204e2f3 diff --git a/qtwebengine b/qtwebengine index bee04d31444..7179c08a57b 160000 --- a/qtwebengine +++ b/qtwebengine @@ -1 +1 @@ -Subproject commit bee04d31444c6dc2976beee9ad7d974f83633e41 +Subproject commit 7179c08a57b6d5b2297ccfec09327649b5882c8e diff --git a/qtwebsockets b/qtwebsockets index 508323d5093..fca11f017e9 160000 --- a/qtwebsockets +++ b/qtwebsockets @@ -1 +1 @@ -Subproject commit 508323d509354719754e12008b70199fe018d62b +Subproject commit fca11f017e9738ead936c8fcbbac0118bdb7d661 diff --git a/qtwebview b/qtwebview index ac1a751e6f6..6a41c6e2759 160000 --- a/qtwebview +++ b/qtwebview @@ -1 +1 @@ -Subproject commit ac1a751e6f60748dc2a6bdf54569610fdc432efb +Subproject commit 6a41c6e27594d3274e2415028573b90a7726dcb7 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()