Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package qt6-websockets for openSUSE:Factory 
checked in at 2025-08-29 18:35:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/qt6-websockets (Old)
 and      /work/SRC/openSUSE:Factory/.qt6-websockets.new.1977 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "qt6-websockets"

Fri Aug 29 18:35:40 2025 rev:30 rq:1301736 version:6.9.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/qt6-websockets/qt6-websockets.changes    
2025-06-05 20:33:32.423300448 +0200
+++ /work/SRC/openSUSE:Factory/.qt6-websockets.new.1977/qt6-websockets.changes  
2025-08-29 18:36:17.972861012 +0200
@@ -1,0 +2,6 @@
+Wed Aug 27 07:16:11 UTC 2025 - Christophe Marin <christo...@krop.fr>
+
+- Update to 6.9.2:
+  * https://www.qt.io/blog/qt-6.9.2-released
+
+-------------------------------------------------------------------

Old:
----
  qtwebsockets-everywhere-src-6.9.1.tar.xz

New:
----
  qtwebsockets-everywhere-src-6.9.2.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ qt6-websockets.spec ++++++
--- /var/tmp/diff_new_pack.1vCSro/_old  2025-08-29 18:36:18.824897434 +0200
+++ /var/tmp/diff_new_pack.1vCSro/_new  2025-08-29 18:36:18.824897434 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package qt6-websockets
 #
-# Copyright (c) 2025 SUSE LLC
+# Copyright (c) 2025 SUSE LLC and contributors
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -16,7 +16,7 @@
 #
 
 
-%define real_version 6.9.1
+%define real_version 6.9.2
 %define short_version 6.9
 %define tar_name qtwebsockets-everywhere-src
 %define tar_suffix %{nil}
@@ -27,7 +27,7 @@
 %endif
 #
 Name:           qt6-websockets%{?pkg_suffix}
-Version:        6.9.1
+Version:        6.9.2
 Release:        0
 Summary:        Qt 6 WebSockets library
 License:        LGPL-3.0-only OR (GPL-2.0-only OR GPL-3.0-or-later)

++++++ qtwebsockets-everywhere-src-6.9.1.tar.xz -> 
qtwebsockets-everywhere-src-6.9.2.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtwebsockets-everywhere-src-6.9.1/.QT-ENTERPRISE-LICENSE-AGREEMENT 
new/qtwebsockets-everywhere-src-6.9.2/.QT-ENTERPRISE-LICENSE-AGREEMENT
--- old/qtwebsockets-everywhere-src-6.9.1/.QT-ENTERPRISE-LICENSE-AGREEMENT      
2025-05-29 14:06:51.553365500 +0200
+++ new/qtwebsockets-everywhere-src-6.9.2/.QT-ENTERPRISE-LICENSE-AGREEMENT      
1970-01-01 01:00:00.000000000 +0100
@@ -1,588 +0,0 @@
-Qt Frame Agreement
-Version 2024-02
-
-1. PARTIES OF THIS AGREEMENT
-1.1. This Qt Frame Agreement—comprised of these general terms together with 
the appendices attached hereto, (hereinafter “Agreement”) is made by and 
between: The Qt Company, as defined below (hereinafter ”The Qt Company”) AND 
Customer name (hereinafter “Customer"):___________________ Business Id (e.g. 
VAT or EIN number):___________________
-1.2. The parties above are hereinafter individually referred to as a "Party" 
and collectively as the "Parties".
-
-2. STRUCTURE AND OBJECT OF THE AGREEMENT
-2.1. The Parties have entered into this Agreement to agree on the terms and 
conditions applicable to The Qt Company's delivery of products and services 
("Services") to Customer.
-2.2.  This Agreement is comprised of the following components:
-(i) This Agreement, which contains the general terms applicable to all 
Services,
-(ii) Appendices for each of the Services, containing terms applicable to that 
individual set of Services ("Service Terms"),
-(iii) a Qt Appendix for Pricing, if applicable, which contains pricing for 
specific Services, and
-(iv) other topic-specific appendices, such as Support or Marketing Rights.
-2.3. Any and all Services purchased shall be specified in, and agreed upon 
between, the Parties under a separate purchase order, statement of work, quote, 
or similar document ("Purchase Document"). Each Purchase Document concluded 
under this Agreement shall include a reference to this Agreement and be 
governed by this Agreement.
-
-3. DEFINITIONS
-3.1. "Affiliate" of a Party shall mean an entity (i) which is directly or 
indirectly controlling such Party; (ii) which is under the same direct or 
indirect ownership or control as such Party; or (iii) which is directly or 
indirectly owned or controlled by such Party. For these purposes, an entity 
shall be treated as being controlled by another if that other entity has fifty 
percent (50 %) or more of the votes in such entity, is able to direct its 
affairs and/or to control the composition of its board of directors or 
equivalent body.
-3.2. "Contractor" shall mean third-party consultants, distributors and 
contractors performing services to Customer under an applicable contractual 
arrangement.
-3.3. "Customer" shall mean the individual or legal entity specified in Section 
1 above, that is a Party to this Agreement.
-3.4. "Force Majeure Event" shall have the meaning set forth in Section 11.7.
-3.5. "Licensed Software" shall mean The Qt Company's commercial software 
product which is licensed for use by Customer under this Agreement and 
corresponding Service Terms. Licensed Software shall include, if and to the 
extent applicable and specified in the applicable relevant Service Terms, 
corresponding online or electronic documentation, associated media and printed 
materials, including the source code, and example programs. The Qt Company may 
in the course of its development activities, at its free and absolute 
discretion and without any obligation to send or publish any notifications to  
Customer or in general, make changes, additions or deletions in the components 
and functionalities of the Licensed Software, provided that no such changes, 
additions or deletions will affect the already released version of the Licensed 
Software, but only upcoming version(s). Licensed Software is commercial 
computer software, developed at private expense and offered to the public under 
standard
  commercial terms.
-3.6. "Professional Services" shall mean The Qt Company's professional-, 
consulting-, training- and/or project services delivered to Customer under this 
Agreement and specified in a Purchase Document.
-3.7. "Support" shall mean maintenance and support services provided by The Qt 
Company to assist Customer in using the Licensed Software, as further specified 
in the Appendix for Support Terms.
-3.8. "The Qt Company" shall mean:
-(i) in the event Customer is an entity residing in the United States or a 
legal entity incorporated in or having its headquarters in the United States, 
The Qt Company Inc., a Delaware corporation with its office at 3031 Tisch Way, 
110 Plaza West, San Jose, CA 95128, USA.; or
-(ii) in the event Customer is an entity residing outside of the United States 
or a legal entity incorporated or having its registered office outside of the 
United States, The Qt Company Oy., a Finnish company with its registered office 
at Miestentie 7, 02150 Espoo, Finland.
-
-4. PRICES AND PAYMENT
-4.1. The Qt Company agrees to make Services available to Customer subject to 
the prices set forth in the Appendix for Pricing. In the event that the 
Appendix for Pricing does not include a price for certain Services, the 
applicable price shall be the price agreed by the Parties in the respective 
Purchase Document.
-4.2. All prices are exclusive of value added tax or other taxes, levels, or 
duties. Value added tax as well as other possible public charges imposed by 
authorities shall be added to the prices.
-4.3. All fees under this Agreement are non-cancellable and non-refundable.
-4.4. All fees under this Agreement shall be paid by Customer no later than 
thirty (30) days from the date of the applicable invoice from The Qt Company.
-4.5. Unless otherwise agreed or provided in the respective Service Terms or 
Purchase Document, The Qt Company will invoice fees for:
-4.5.1. Licensed Software and Support in advance upon conclusion of the 
Purchase Document, and
-4.5.2. Professional Services monthly in arrears after the Service has been 
performed.
-4.6. A late payment charge of the lower of: (a) one percent (1%) per month; or 
(b) the highest interest rate stipulated by applicable law, shall be charged on 
any unpaid balances that remain past due and which have not been disputed by 
Customer in good faith within thirty (30) days of receipt of invoice from The 
Qt Company.
-4.7. The Qt Company may either (i) invoice Customer based on existing 
agreement, (ii) request Customer to place a purchase order corresponding to a 
quote by The Qt Company, or (iii) use Customer's stored Credit Card information 
to automatically charge the Customer for the relevant Renewal Term.
-4.8. Unless and to the extent otherwise agreed in the Appendix for Pricing or 
in the Purchase Document, The Qt Company shall be entitled to adjust the prices 
set forth in the Appendix for Pricing by notifying  Customer of the change in 
writing at least sixty (60) days before the effective date of the change. The 
change shall not affect the current pricing term of Services agreed upon before 
the effective date of the change.
-
-5. CONFIDENTIALITY
-5.1. The Parties shall keep confidential, and shall not use or disclose to any 
unauthorized third parties, the existence and content of this Agreement as well 
as any Confidential Information received from the other Party or otherwise 
learned in connection with the Agreement or the performance of the Services, 
without the prior written consent of the other Party. Confidential Information 
shall mean information that is designated as confidential or that would be 
reasonably understood to be confidential given the circumstances of disclosure 
and the nature of the information. The Parties shall not use Confidential 
Information received from the other Party for any other purposes than the 
performance of the Agreement or the fulfilment of their rights and obligations 
hereunder.
-5.2. Each Party shall limit access the other Party's Confidential Information 
only to those of its employees, subcontractors, Contractors, Affiliates or 
financial or legal advisors who necessarily need access to the Confidential 
Information for the proper performance of the Party's rights and obligations 
under the Agreement. Each Party shall ensure that the persons receiving 
Confidential Information of the other Party are bound by confidentiality 
obligations not less restrictive than those stipulated herein.
-5.3. Each Party shall protect the confidentiality of the other Party's 
Confidential Information with at least  the same degree of security as it 
exercises to its own confidential information, but no less than a standard of 
reasonable care.
-5.4. The confidentiality obligation stipulated herein shall not be applied to 
material and information which:
-(iii) has become generally available or otherwise public prior to its 
submission by the other Party;
-(iv) becomes generally available or otherwise public due to a reason other 
than the negligence or omission of the recipient or its personnel or other 
actions in violation of this Agreement or  applicable legislation;
-(v) the Party has lawfully received from a third party without any obligation 
of confidentiality;
-(vi) was lawfully in the possession of the receiving Party prior to receipt of 
the same from the other Party without any obligation of confidentiality related 
thereto;
-(vii) a Party has developed independently without using material or 
information received from the other Party; or
-(viii) a Party must disclose pursuant to law, decree or other order issued by 
competent regulatory or governmental body or other public authority or a 
judicial order, in which case the Party shall, to the extent permitted by 
applicable law, inform the other Party in writing of the disclosure of 
information prior to such disclosure.
-5.5. Each Party shall, upon request of the other Party at any time, including 
upon termination, cancellation or expiry of the Agreement, promptly destroy or 
deliver to the other Party any and all the documents, files, copies and 
material containing Confidential Information of the other Party. 
Notwithstanding the foregoing, a Party may retain one copy of the Confidential 
Information in a secure location, if and solely to the extent required to 
comply with applicable laws or regulations. Any Confidential Information stored 
in electronic back-up form shall be rendered inaccessible and destroyed in 
accordance with standard back-up procedures.
-
-6. INTELLECTUAL PROPERTY RIGHTS
-6.1. Unless and to the extent expressly provided in the respective Service 
Terms, this Agreement carries no assignment or license to the intellectual 
property rights of either Party and all such rights are and shall remain the 
exclusive property of the Party to whom such rights are vested under applicable 
law at the signing of this Agreement or thereafter.
-6.2. Where The Qt Company's delivery includes any materials owned by a third 
party, such third party materials shall be governed in all respects by the 
applicable license terms of such third-party right holders. The Qt Company 
shall duly inform the Customer whenever such third party materials are included 
in the Services and of applicable license terms to be followed by the Customer 
in using such third party materials.
-
-7. FEES AND ORDERING
-7.1. Services Fees. Services Fees are described in the Purchase Document.
-7.2. Ordering Services.
-(i) Customer may purchase Services pursuant to agreed pricing terms or, if no 
specific pricing terms have been agreed upon, at The Qt Company's standard 
pricing terms applicable at the time of purchase.
-(ii) Unless expressly otherwise agreed, any price or other term quoted to 
Customer shall only be valid for the thirty (30) days from the date such price 
has been quoted.
-
-8. LIMITED WARRANTY AND WARRANTY DISCLAIMER
-8.1. The Qt Company hereby represents and warrants that: (i) it has the power 
and authority to grant the rights and licenses granted to Customer under this 
Agreement; (ii) the Licensed Software will operate materially in accordance 
with its specifications (as set forth in the applicable product documentation 
or, where relevant, program description); (iii) Professional Services and 
Support will be performed in a professional, workmanlike manner pursuant to the 
Agreement; and (iv) during the ten years prior to the effective date of this 
Agreement, there have not been any claims alleging that the Licensed Software 
has infringed any intellectual property rights of a third party and, to the 
knowledge of The Qt Company as of the effective date of this Agreement, no such 
infringement exists. These warranties do not apply to issues arising from, or 
relating to, any third-party materials or Customer's use of the Licensed 
Software in violation of applicable law or the terms of this Agreement.
-8.2. Except to the extent set forth above, the Services are delivered to 
Customer "as is" and to the maximum extent permitted by applicable law, 
exclusive of other warranties, whether express, implied, or otherwise.  
Customer's sole and exclusive remedy and The Qt Company's entire liability for 
deficiencies or errors in the Services shall be limited, at The Qt Company's 
option, to correction of the error, replacement of the Services, re-performance 
of the Service  or return of the applicable fees paid for the defective Service 
for the time period during which Customer was not able to utilize the Service 
as agreed.
-
-9. LIMITATION OF LIABILITY
-9.1. EXCEPT FOR (I) CASES OF GROSS NEGLIGENCE OR INTENTIONAL MISCONDUCT, (II) 
A BREACH OR VIOLATION OF THE OTHER PARTY'S INTELLECTUAL PROPERTY RIGHTS, OR 
(III) WHERE REQUIRED BY APPLICABLE LAW, IN NO EVENT SHALL EITHER PARTY BE 
LIABLE TO THE OTHER PARTY FOR ANY LOST PROFITS, LOSS OF DATA, LOSS OF BUSINESS 
OR GOODWILL OR ANY OTHER INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR 
PUNITIVE COST, DAMAGES OR EXPENSE OF ANY KIND, HOWSOEVER ARISING UNDER OR IN 
CONNECTION WITH THIS AGREEMENT.
-9.2. EXCEPT FOR (I) CASES OF GROSS NEGLIGENCE OR INTENTIONAL MISCONDUCT, (II) 
A BREACH OR VIOLATION OF THE OTHER PARTY'S INTELLECTUAL PROPERTY RIGHTS, AND TO 
THE EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT SHALL EITHER PARTY'S TOTAL 
AGGREGATE LIABILITY UNDER THIS AGREEMENT EXCEED THE AGGREGATE FEES PAID OR 
PAYABLE TO THE QT COMPANY BY CUSTOMER FOR THE RESPECTIVE LICENSED SOFTWARE OR 
SERVICE GIVING RISE TO THE LIABILITY. THE FOREGOING LIMITATION WILL NOT APPLY 
TO CUSTOMER'S OBLIGATION TO PAY THE APPLICABLE FEES CORRESPONDING TO ITS  
ACTUAL USE OF LICENSED SOFTWARE OR SERVICES.
-
-10. TERM AND TERMINATION
-10.1. This Agreement shall enter into force upon signing by both Parties and 
is effective as of the last date of signature.
-10.2. This Agreement shall remain in force until further notice and may be 
terminated without cause by either Party by no less than three (3) months' 
prior written notice to the other Party.
-10.3. Termination of a particular Purchase Document and the Services governed 
thereunder shall be stipulated under the applicable Service Terms.
-10.4. Either Party may terminate this Agreement with immediate effect, if the 
other Party:
-(i) commits a material breach of the terms of this Agreement (including 
applicable Service Terms) and has not remedied such breach within a reasonable 
period of time (which shall be no less than thirty (30) days) of the 
non-breaching  Party's written notice specifying the breach, or
-(ii) becomes bankrupt, insolvent or goes into liquidation or debt 
restructuring.
-10.5. Termination of this Agreement shall, as such, have no effect on the 
validity of any Services ordered and agreed prior to the effective date of such 
termination, and such Services shall continue to remain in force pursuant to 
applicable Service Terms (including the terms of this Agreement) for the 
remainder of the duration of the applicable Service validity term.
-
-11. GOVERNING LAW AND DISPUTE RESOLUTION
-11.1. The United Nations Convention on Contracts for the International Sale of 
Goods will not apply to this Agreement.
-11.2. Where this Agreement is concluded with The Qt Company, Inc., a Delaware 
corporation, the Parties agree that this Section 10.2 will apply. This 
Agreement will be governed by, and construed in accordance with the laws of the 
State of California and any controlling United States federal law. Any dispute, 
controversy or claim arising out of or relating to this contract, including the 
formation, interpretation, breach or termination thereof, and whether the 
claims asserted are arbitrable, will be referred to and finally determined by 
arbitration in accordance with the JAMS International Arbitration Rules. The 
tribunal will consist of one arbitrator. The place of arbitration will be San 
Francisco, California, USA. The language to be used in the arbitral proceedings 
will be English. Judgment upon the award rendered by the arbitrator(s) may be 
entered in any court having jurisdiction thereof. This Section 10.2 shall not 
preclude parties from seeking provisional remedies in aid of arbi
 tration from a court of appropriate jurisdiction. Notwithstanding the 
foregoing, any action by The Qt Company solely to collect license or other fees 
hereunder may be brought in any court of competent jurisdiction.
-11.3. Where this Agreement is concluded with The Qt Company, Oy., a Finnish 
company, the parties agree that this Section 10.3 will apply. This Agreement 
shall be construed and interpreted in accordance with the laws of Finland, 
excluding its choice of law provisions. All disputes arising out of or in 
connection with this Agreement shall be finally settled in accordance with the 
laws of Finland, excluding its choice of law provisions.  All disputes arising 
out of or in connection with this Agreement shall be finally settled under the 
Rules of Arbitration of the International Chamber of Commerce by one or more 
arbitrators appointed in accordance with the said Rules. The place of 
arbitration will be Helsinki, Finland. The language to be used in arbitral 
proceedings will be English. This Section 10.3 shall not preclude parties from 
seeking provisional remedies in aid of arbitration from a court of appropriate 
jurisdiction.
-
-12. MISCELLANOUS
-12.1. No Assignment. Customer shall not be entitled to assign or transfer all 
or any of its rights, benefits and obligations under this Agreement except in 
case of sale of relevant business or assets or otherwise with prior written 
consent of The Qt Company, which shall not be unreasonably withheld or delayed. 
The Qt Company shall be entitled to freely assign or transfer any of its 
rights, benefits or obligations under this Agreement.
-12.2. Surviving Sections. Any terms and conditions that by their nature or 
otherwise reasonably should survive termination of this Agreement shall so be 
deemed to survive.
-12.3. Entire Agreement. This Agreement, its Appendices and any applicable 
Purchase Documents constitute the complete agreement between the Parties and 
supersedes all prior or contemporaneous discussions, representations, contracts 
(including prior License Agreements and similar prior agreements), and 
proposals, written or oral, with respect to the subject matters discussed 
herein.
-12.4. Subcontractors. The Qt Company may utilize subcontractors in the 
performance of Services under this Agreement, provided that The Qt Company 
remains responsible for the performance of the Services and compliance with 
this Agreement, as well as ensuring that subcontractors are required to abide 
by relevant restrictions (e.g., confidentiality) set forth in this Agreement.
-12.5. Modifications. No modification of this Agreement shall be effective 
unless contained in a writing executed by an authorized representative of each 
Party. No standard terms and conditions or provisions of any Customer purchase 
order or other ordering form that Customer may use in connection with the 
acquisition of Services will modify or affect this Agreement, the parties agree 
that any such terms and conditions are void with no legal effect.
-12.6. Affiliate Orders. Customer Affiliates may purchase Services via this 
Agreement as follows:
-(i) any purchases by Customer Affiliates from The Qt Company or its Affiliates 
will create a contractual relationship directly between the relevant The Qt 
Company entity and the respective ordering Customer Affiliate;
-(ii) the entry into a Purchase Document between The Qt Company and Customer 
Affiliate creates an agreement between The Qt Company and Customer Affiliate 
and incorporates all terms and conditions of this Agreement as the governing 
agreement between The Qt Company and Customer Affiliate ("Accession 
Agreement"): and
-(iii) Customer Affiliate will be deemed "Customer" under the terms of this 
Agreement and all rights and obligations under such Accession Agreement are 
vested and borne solely by the ordering Customer Affiliate and the relevant The 
Qt Company entity as contracting parties under such Accession Agreement.
-12.7. Force Majeure. Neither Party shall be liable to the other for any delay 
or non-performance of its obligations hereunder in the event and to the extent 
that such delay or non-performance is due to an event of act of God, terrorist 
attack or other similar unforeseeable catastrophic event that prevents either 
Party for fulfilling its obligations under this Agreement and which such Party 
cannot avoid or circumvent ("Force Majeure Event"). If the Force Majeure Event 
results in a delay or non-performance of a Party for a period of three (3) 
months or longer, then either Party shall have the right to terminate the 
relevant Purchase Document and Services thereunder with immediate effect 
without any liability (except for the obligations of payment arising prior to 
the Force Majeure Event) towards the other Party.
-12.8. Notices. Any notice given by one Party to the other shall be deemed 
properly given and deemed received if specifically acknowledged by the 
receiving Party in writing or when successfully delivered to the recipient by 
hand, fax, or special courier during normal business hours on a business day to 
the addresses specified for each Party in this Agreement. Each communication 
and document made or delivered by one Party to the other Party pursuant to this 
Agreement shall be in the English language.
-12.9. Attorney Fees. The prevailing Party in any action to enforce this 
Agreement shall be entitled to recover its attorney's fees and costs in 
connection with such action.
-12.10. Privacy and Security. The Parties commit to and comply with their 
respective applicable obligations under the privacy and security terms set 
forth in the Privacy and Security Appendix and relevant Appendices attached 
hereto.
-12.11. Feedback. Customer agrees that, from time to time, The Qt Company, may 
request feedback from Customer regarding the Services ("Feedback"). Customer 
may choose to provide Feedback and agrees that The Qt Company may freely use, 
copy, disclose, and exploit any Feedback. No Feedback will be considered 
Customer Confidential Information unless explicitly agreed otherwise between 
the Parties.
-12.12. Export Control. Customer acknowledges that the Services, or portions 
thereof, may be subject to export control restrictions under the applicable 
laws of respective countries. Customer shall fully comply with all applicable 
export license restrictions and requirements, economic sanctions restrictions, 
as well as with all laws and regulations relating thereto, and shall procure 
all necessary governmental authorizations, including without limitation, all 
necessary licenses, approvals, permissions, or consents, where necessary (e.g., 
for re-exportation of the Redistributables, Applications and/or Devices, each 
as defined in the relevant Service Terms).
-12.13. Severability. If any provision of this Agreement shall be adjudged by 
any court of competent jurisdiction to be unenforceable or invalid, that 
provision shall be limited or eliminated to the minimum extent necessary so 
that this Agreement shall otherwise remain in full force and effect and 
enforceable.
-
-13. APPENDICES
-13.1. The following appendices form an integral part of this Agreement. In 
case of a discrepancy between this Agreement and any of its Appendices, this 
Agreement shall prevail. In case of discrepancies between the Purchase 
Document(s) and this Agreement or applicable Service Terms, the terms of this 
Agreement or the applicable Service Terms shall prevail, except in cases where 
an express deliberate deviation from the terms of this Agreement or applicable 
Service Terms has been concluded pursuant to Section 2.3 hereof, in which case 
the Purchase Document shall prevail.
-1. Appendix for Qt Development Framework
-2. Appendix for Support Terms https://www.qt.io/terms-conditions/support-terms
-3. Appendix for Privacy and Security Terms 
https://www.qt.io/terms-conditions/privacy-and-security
-
-Appendix for Qt Development Framework
-Version 2025-02, compliant with Qt Frame Agreement 2023-06 or later
-
-1. This Appendix for Qt Development Framework is an integral part of the 
Agreement and specifies the legal terms for the licensing of Licensed Software 
(as defined below) between The Qt Company and Customer. Entry into this 
Appendix governs the use of and supersedes any prior contracts between the 
Parties (including prior License Agreements and similar prior agreements), with 
respect to Licensed Software governed by this Appendix.
-
-2. DEFINITIONS
-2.1. Capitalized words used in this Appendix and not defined below shall have 
the meanings described in the Agreement.
-2.2. “Add-on Products” means The Qt Company’s specific add-on software 
products which are not licensed as part of The Qt Company’s standard Services 
offerings, and are included in the scope of Licensed Software only if 
specifically agreed between the Parties.
-2.3. “Application” means software products created using the Licensed 
Software, which include the Redistributables, or part thereof.
-2.4. “Customer’s Records” means books and records that contain information 
bearing on Customer’s compliance with the Agreement, Customer’s use of Qt 
Community Edition and/or the payments due to The Qt Company under the 
Agreement, including, but not limited to user information, assembly and/or 
build logs, portions of Licensed Software used, sales records and distribution 
records.
-2.5. “Data Protection Legislation” means the General Data Protection 
Regulation (EU 2016/679) (GDPR) and any national implementing laws, regulations 
and secondary legislation, as may be amended or updated from time to time, as 
well as any other data protection laws or regulations applicable in the 
relevant territory.
-2.6. “Deployment Platforms” means target operating systems and/or hardware 
specified in the License Certificate, on which the Redistributables can be 
distributed pursuant to the terms and conditions of this Appendix.
-2.7. “Designated User(s)” means the employee(s) of Customer or Customer’s 
Affiliates acting within the scope of their employment or Customer’s 
Contractors acting within the scope of their services on behalf of Customer.
-2.8. “Development License” means the license needed by Customer for each 
Designated User to use Licensed Software under the license grant in Section 5 
of this Appendix. Development Licenses are available per respective Licensed 
Software product; each product having its designated scope and purpose of use.
-2.9. “Development Platforms” means the host operating system(s) specified in 
the License Certificate, on which Licensed Software can be used under the 
Development License.
-2.10. “Devices” means
-(i) hardware or compute units that are manufactured and/or distributed by the 
Customer, its Affiliates, Contractors, or End Customer, and incorporate or 
include Licensed Software; or
-(ii) Applications which provide Substantial Functionality (as defined below) 
by communicating, integrating, or otherwise interacting in any way with a 
hardware or compute unit, regardless of whether the Application is provided 
together with the hardware or compute unit, or separate therefrom.
-For the purpose of defining a Device, “Substantial Functionality” means that a 
normal, intended or specified operation of a hardware or compute unit is 
dependent on or limited by the Application.
-Devices covered by this Appendix are specified in the Pricing Appendix or 
Purchase Document. Customer’s end product may contain more than one Device and 
require more than one Distribution License per end product.
-2.11. “Distribution License(s)” means a royalty-bearing license required for 
any kind of sale, trade, exchange, loan, lease, rental or other distribution by 
or on behalf of Customer to a third party (including Affiliates) of a Device 
pursuant to Section 5.3 of this Appendix. Use of Distribution Licenses is valid 
for the agreed period (either in perpetuity or for a period defined in the 
Purchase Document(s)), sold separately for each type of Device, and cannot be 
used for other types of Devices.
-2.12. “Distribution License Packs” means set of prepaid Distribution Licenses 
as defined in The Qt Company’s standard price list, quote, Pricing Appendix or 
in the Purchase Document, as applicable.
-2.13. “End Customer” means Customer’s customer(s) to whom Customer, directly 
or indirectly, distributes copies of the Redistributables as integrated or 
incorporated into Applications or Devices.
-2.14. “Evaluation License Term” means a time period specified in the License 
Certificate for Customer to use the relevant Licensed Software for evaluation 
purposes according to Section 5.5 of this Appendix.
-2.15. “Intellectual Property Rights” means patents (including utility models), 
design patents, and designs (whether or not capable of registration), chip 
topography rights and other like protection, copyrights, trademarks, service 
marks, trade names, logos or other words or symbols, any other form of 
statutory protection of any kind and applications for any of the foregoing, as 
well as any trade secrets.
-2.16. “License Certificate” means a certificate generated by The Qt Company 
for each Designated User upon their download of the Licensed Software, which 
will be available under the respective Designated User’s Qt Account at 
account.qt.io. License Certificates specify relevant information pertaining to 
the Licensed Software purchased by Customer and the license to the Licensed 
Software.
-2.17. “License Fee” means the fee charged to Customer for rights granted under 
this Appendix.
-2.18. “Licensed Software” means the specified product(s) of Qt Software which 
Customer has purchased, and which is provided to Customer under the terms of 
this Appendix and Agreement (including its Exhibits). Licensed Software shall 
include corresponding online or electronic documentation, associated media and 
printed materials, including source code (where applicable), example programs 
and documentation. Licensed Software does not include Third Party Software (as 
defined in Section 6) or Qt Community Edition. The Qt Company may, in the 
course of its development activities, at its free and absolute discretion and 
without any obligation to send or publish any notifications, make changes, 
additions or deletions in the components and functionalities of the Licensed 
Software, provided that no such changes, additions or deletions will affect the 
already released version of the Licensed Software, but only upcoming version(s).
-2.19. “License Term” means the agreed validity period of the Development 
License during which the relevant Licensed Software can be used pursuant to 
this Appendix. The agreed License Term, as ordered and paid for by Customer, is 
stated in the applicable License Certificate.
-2.20. “Modified Software” has the meaning set forth below in Section 4.
-2.21. “Permitted Software” means third party products that are generally 
available to the public, which may include parts of Qt Community Edition or be 
developed using Qt Community Edition.
-2.22. “Pre-Release Code” has the meaning set forth in Section 7.
-2.23. “Prohibited Combination” means any effort to use, combine, incorporate, 
link or integrate Licensed Software with any software created with or 
incorporating Qt Community Edition, or use Licensed Software for creation of 
any such software.
-2.24. “Qt Community Edition” means the open source version of Qt Software 
primarily available under the terms of the GNU Lesser General Public License, 
version 2.1 or later (“LGPL”) or the GNU General Public License, version 2.0 or 
later (“GPL”). For clarity, Qt Community Edition shall not be provided, 
governed or used under this Appendix.
-2.25. “Qt Software” means the development and design software of The Qt 
Company, which The Qt Company makes available under commercial and/or open 
source licenses as either the “Licensed Software” or the “Qt Community Edition”.
-2.26. “Redistributables" means the portions of Licensed Software set forth in 
Exhibit 1 that may be distributed pursuant to this Appendix in object code form 
only, including any relevant documentation. Where relevant, any reference to 
Licensed Software in this Appendix includes and refers to Redistributables.
-2.27. “Renewal Term” means an extension of the previous License Term as agreed 
between the Parties.
-2.28. “Submitted Modified Software” has the meaning set forth in Section 4.2 
of this Appendix.
-2.29. “Third-Party Software" has the meaning set forth in Section 6 of this 
Appendix.
-2.30. “Updates” means a release or version of the Licensed Software containing 
bug fixes, error corrections and other changes that are generally made 
available to users of the Licensed Software that have contracted for Support. 
Updates are generally depicted as a change to the digits following the decimal 
in the Licensed Software version number. The Qt Company shall make Updates 
available to Customer under the Support. Updates shall be considered as part of 
the Licensed Software hereunder.
-2.31. “Upgrades” means a release or version of the Licensed Software 
containing enhancements and new features and are generally depicted as a change 
to the first digit of the Licensed Software version number. In the event that 
Upgrades are provided to Customer under this Appendix, they shall be considered 
as part of the Licensed Software.
-
-3. OWNERSHIP
-3.1. Ownership of The Qt Company
-3.1.1. The Licensed Software is protected by copyright laws and international 
copyright treaties, as well as other intellectual property laws and treaties. 
The Licensed Software is licensed, not sold.
-3.1.2. All of The Qt Company's Intellectual Property Rights are and shall 
remain the exclusive property of The Qt Company or its respective licensors. No 
rights to The Qt Company’s Intellectual Property Rights are assigned or granted 
to Customer under this Appendix, except when and solely to the extent expressly 
specified herein.
-3.2. Ownership of Customer
-3.2.1. All of Customer’s Intellectual Property Rights are and shall remain the 
exclusive property of Customer or its licensors respectively.
-3.2.2. Except to the extent set forth in this Appendix, all Intellectual 
Property Rights to the Modified Software, Applications and Devices (except to 
Redistributables included therein) shall remain with Customer.
-
-4. MODIFIED SOFTWARE
-4.1. Customer may create bug-fixes, error corrections, patches or 
modifications to the Licensed Software (“Modified Software”). To the extent 
that Customer’s Modified Software breaks source or binary compatibility or 
other functionality with the Licensed Software, Customer acknowledges that The 
Qt Company’s ability to provide Support may be prevented or limited and 
Customer’s ability to make use of Updates may be restricted.
-4.2. Customer may, at its sole and absolute discretion, choose to submit 
Modified Software to The Qt Company (“Submitted Modified Software”) in 
connection with Customer’s Support request, service request or otherwise. In 
the event Customer does so, then, Customer hereby grants The Qt Company a 
sublicensable, assignable, irrevocable, perpetual, worldwide, non-exclusive, 
royalty-free and fully paid-up license, under all of Customer’s Intellectual 
Property Rights, to reproduce, adapt, translate, modify, and prepare derivative 
works of, publicly display, publicly perform, sublicense, make available and 
distribute such Submitted Modified Software as The Qt Company sees fit at its 
free and absolute discretion.
-
-5. LICENSES GRANTED
-5.1. Development with Licensed Software
-5.1.1. Subject to the terms of the Agreement, The Qt Company grants to 
Customer a worldwide, non-exclusive, non-transferable license, valid for each 
License Term, to use, modify and copy the Licensed Software by Designated Users 
on the Development Platforms for the sole purposes of designing, developing, 
demonstrating and testing Application(s) and/or Devices, and to provide 
support, maintenance, updates, and other services related to such Applications 
and Devices to End Customers. Each Application or Device can only include, 
incorporate or integrate contributions by Designated Users who are duly 
licensed for the applicable Development Platform(s) and Deployment Platform(s) 
(i.e. have a current and valid Development License for the appropriate Licensed 
Software and only use one type of Development License per Customer Application 
or Device(s)).
-5.1.2. Customer may install copies of the Licensed Software on five (5) 
computers per Designated User, provided that only Designated Users who have a 
valid Development License may use the Licensed Software.
-5.1.3. Customer may designate another Designated User to replace a 
then-current Designated User by notifying The Qt Company in writing, where such 
replacement is due to termination of employment, long-term absence or other 
permanent reason affecting Designated User’s need for Licensed Software.
-5.1.4. Upon expiry of the initially agreed License Term, the respective 
License Term shall be automatically extended by one or more Renewal Term(s), 
unless and until either Party notifies the other Party in writing, that it does 
not wish to continue the License Term, such notification to be provided to the 
other Party no less than thirty (30) days before expiry of the respective 
License Term. The Qt Company shall, in good time before the due date for the 
above notification, remind the Customer of the coming Renewal Term. Unless 
otherwise agreed between the Parties, Renewal Term shall be equal to the length 
of the previous License Term, but no longer than thirty-six (36) months.
-5.1.5. Any such Renewal Term shall be subject to License Fees agreed between 
the Parties or, if no advance agreement exists, subject to The Qt Company’s 
standard list pricing applicable at the commencement date of any such Renewal 
Term.
-5.2. Distribution of Applications. Subject to the terms of the Agreement, The 
Qt Company grants Customer a worldwide, non-exclusive, non-transferable, 
perpetual, royalty-free and revocable (for Customer’s material breach of the 
Agreement) right and license to:
-(i) distribute, by itself or through its Contractors, Applications for use on 
the Deployment Platforms; and
-(ii) grant End Customers perpetual sublicenses to Redistributables used in 
Applications solely to the extent necessary for End Customers to use the 
Applications as intended.
-5.3. Distribution of Devices
-5.3.1. Subject to the terms of the Agreement, The Qt Company grants Customer a 
worldwide, non-exclusive, non-transferable, revocable (for Customer’s material 
breach of the Agreement), royalty-bearing right and license to:
-(i) distribute (including through its Contractors), Devices for use on the 
Deployment Platforms; and
-(ii) grant End Customers perpetual sublicenses to Redistributables used in 
Devices, solely to the extent necessary for End Customers to use the Devices as 
intended.
-5.3.2. Right to distribute the Devices requires that:
-(i) the Devices are created, updated and maintained under a current and valid 
Development License,
-(ii) Customer has purchased corresponding Distribution Licenses before 
distribution of any Devices to End Customers, and
-(iii) the Distribution Licenses are valid for distribution at the date of 
distribution.
-5.4. Further Requirements
-5.4.1. The licenses granted in this Section 5 by The Qt Company to Customer 
are conditional and subject to Customer's compliance with the following terms:
-(i)  Customer acknowledges that The Qt Company has separate products for the 
purpose of Applications and Devices respectively, where development and 
distribution of Devices is only allowed using the correct designated product. 
Customer shall ensure and bear the burden of proof that Customer is using a 
correct product entitling Customer to development and distribution of Devices;
-(ii) Customer shall not remove or alter any copyright, trademark or other 
proprietary rights notice(s) contained in any portion of the Licensed Software;
-(iii)  Applications must add primary and material functionality to Licensed 
Software so as not to compete with the Licensed Software;
-(iv)   Applications may not pass on functionality which in any way makes it 
possible for others to create software with Licensed Software; provided however 
that Customer may use Licensed Software’s scripting and QML ("Qt Quick") 
functionality solely in order to enable scripting, themes and styles that 
augment the functionality and appearance of the Application(s) without adding 
primary and substantial functionality to the Application(s);
-(v) Customer shall not use Licensed Software in any manner or for any purpose 
that infringes, misappropriates or otherwise violates any Intellectual Property 
Right or right of any third party, or that violates any applicable law;
-(vi) Customer shall not use The Qt Company's or any of its suppliers' names, 
logos, or trademarks to market Applications, except that Customer may use 
“Built with Qt” logo to indicate that an Application or Device was developed 
using Licensed Software;
-(vii) Customer shall not distribute, sublicense or disclose source code of 
Licensed Software to any third party (provided however that Customer may 
appoint employee(s) of Contractors and Affiliates as Designated Users to use 
Licensed Software pursuant to this Appendix).
-(viii) Customer shall not grant the End Customers a right to: (a) make copies 
of the Redistributables except when and to the extent required to use the 
Applications and/or Devices for their intended purpose; (b) modify the 
Redistributables or create derivative works thereof; (c) decompile, disassemble 
or otherwise reverse engineer Redistributables; or (d) redistribute any copy or 
portion of the Redistributables to any third party, except as part of the 
onward sale of the Application or Device on which the Redistributables are 
installed;
-(ix) Customer shall not and shall cause that its Affiliates, Contractors or 
End Customers shall not, use Licensed Software in any Prohibited Combination, 
unless Customer has received specific advance written permission from The Qt 
Company to do so. Without the written permission of The Qt Company, any and all 
distribution by Customer of a hardware device or product: a) which incorporates 
or integrates any part of Licensed Software or Qt Community Edition; or b) 
where material functionality is provided by software built with Licensed 
Software or Qt Community Edition or otherwise depends on Licensed Software or 
Qt Community Edition, shall be considered to be Device distribution under this 
Appendix and shall be dependent on Customer’s compliance thereof (including but 
not limited to the obligation to pay applicable License Fees for such 
distribution). Notwithstanding the foregoing, Customer is entitled to use and 
combine Licensed Software with Permitted Software;
-(x) Customer shall cause all of its Affiliates, Contractors and End Customers 
entitled to make use of the licenses granted under this Appendix, to be 
contractually bound to comply with the relevant terms hereof and not to use the 
Licensed Software beyond the terms hereof nor for any purposes other than 
operating within the scope of their services for Customer. Customer shall be 
responsible for any and all actions and omissions of its Designated Users, 
Affiliates, Contractors, and End Customers relating to the Licensed Software 
and use thereof (including but not limited to payment of all applicable License 
Fees);
-(xi) Except when and to the extent explicitly provided in this Section 5, 
Customer shall not transfer, publish, disclose, display or otherwise make 
available the Licensed Software; and
-(xii) Customer shall not attempt or enlist a third party to conduct or attempt 
to conduct any of the above.
-5.4.2. The above terms shall not be applicable if and solely to the extent 
they conflict with any mandatory provisions of applicable laws.
-5.4.3. Any use of Licensed Software beyond the provisions of this Appendix is 
strictly prohibited and requires, at a minimum an additional license from The 
Qt Company (e.g. certain additional rights may be granted under a software 
development kit “SDK” agreement with regard to limitations of Section 5.4.1 iv, 
vii or viii).
-5.5. Evaluation License
-5.5.1. Subject to the terms of this Appendix, The Qt Company grants to 
Customer a worldwide, non-exclusive, non-transferable license, valid for the 
Evaluation License Term to use the relevant Licensed Software product solely 
for Customer’s internal use to evaluate and determine whether the Licensed 
Software meets Customer's business requirements, specifically excluding any 
commercial use of the Licensed Software or any derived work thereof.
-5.5.2. Upon the expiry of the Evaluation License Term, Customer must either 
discontinue use of the relevant Licensed Software or acquire a commercial 
Development License.
-
-6. THIRD-PARTY SOFTWARE. The Licensed Software may provide links or access to 
third party libraries or code (collectively "Third-Party Software") to 
implement various functions. Third-Party Software does not, however, comprise 
part of the Licensed Software, but is provided to Customer complimentary and 
use thereof is discretionary for Customer. Third-Party Software will be listed 
in the ".../src/3rdparty" source tree delivered with the Licensed Software or 
documented in the Licensed Software, as such may be amended from time to time. 
Customer acknowledges that use or distribution of Third-Party Software is in 
all respects subject to applicable license terms of applicable third-party 
right holders.
-
-7. PRE-RELEASE CODE
-7.1. The Licensed Software may contain pre-release code and functionality, or 
sample code marked or otherwise stated with appropriate designation such as 
“Technology Preview”, “Alpha”, “Beta”, “Experimental”, “Sample”, “Example” etc. 
(“Pre-Release Code”).
-7.2. Such Pre-Release Code may be provided complimentary for Customer (e.g., 
to provide experimental support or information for new platforms or preliminary 
versions of one or more new functionalities). Pre-Release Code may not be at 
the level of performance and compatibility of a final, generally available, 
product offering. Pre-Release Code may not operate correctly, may contain 
errors and may be substantially modified by The Qt Company prior to a 
commercial product release, if any. The Qt Company is under no obligation to 
make Pre-Release Code commercially available or provide any Support or Updates 
relating thereto. To the maximum extent permitted by law, the Qt assumes no 
liability whatsoever regarding any Pre-Release Code and any use thereof is 
exclusively at Customer’s own risk and expense.
-7.3. Unless Licensed Software specifies different license terms for the 
respective Pre-Release Code, Customer is entitled to use such Pre-Release Code 
pursuant to Section 5 of this Appendix.
-
-8. SUPPORT. Support is provided according to agreed support level and subject 
to applicable requirements and restrictions, as specified in the Appendix for 
Support Terms.
-
-9. FEES AND ORDERING: DISTRIBUTION LICENSES
-9.1. Unless otherwise agreed in writing, Distribution Licenses shall be 
purchased by way of Distribution License Packs. Further Distribution License 
parameters may be set forth in the applicable Pricing Appendix.
-9.2. Upon due payment of the ordered Distribution Licenses, Customer will have 
an account of Distribution Licenses available for distributing Devices during 
the validity period of the respective Distribution Licenses in accordance with 
this Agreement.
-9.3. Each time Customer distributes a Device, one Distribution License is used 
and Customer’s account of available Distribution Licenses is decreased 
accordingly.
-
-10. RECORD-KEEPING AND REPORTING OBLIGATIONS; AUDIT RIGHTS
-10.1. Customer’s Record-keeping
-10.1.1. Customer shall at all times during the term of the Agreement or 
validity of any of the licenses hereunder, whichever is later, and for a period 
of two (2) years thereafter, maintain Customer’s Records in an accurate and 
up-to-date form. Customer’s Records shall be adequate to reasonably enable The 
Qt Company to determine Customer’s compliance with the provisions of the 
Agreement. The records shall conform to general good accounting practices.
-10.1.2. Customer shall, within thirty (30) days from receiving The Qt 
Company’s request to that effect, deliver to The Qt Company a report based on 
Customer’s Records, such report to contain information, in sufficient detail, 
on: (i) number and identity of users working with Licensed Software or Qt 
Community Edition, (ii) Devices distributed by Customer during the most recent 
calendar quarter and/or any other term specified by The Qt Company, and (iii) 
any other information pertaining to Customer’s compliance with the terms of the 
Agreement (e.g. information on products and/or projects relating to use of 
Licensed Software), as The Qt Company may reasonably require from time to time.
-10.2. The Qt Company’s Audit Rights
-10.2.1. The Qt Company or an independent auditor acting on behalf of The Qt 
Company may, upon at least thirty (30) days’ prior written notice and at The Qt 
Company expense, audit Customer with respect to Customer’s use of the Licensed 
Software, but not more frequently than once during each six (6) month period. 
Such audit may be conducted by mail, electronic means or through an in-person 
visit to Customer’s place of business. Any possible in-person audit shall be 
conducted during regular business hours at Customer's facilities, shall not 
unreasonably interfere with Customer's business activities and shall be limited 
in scope to verify Customer’s compliance with the terms of the Agreement. The 
Qt Company or its independent auditor shall be entitled to inspect Customer’s 
Records and conduct necessary interviews of Customer’s relevant employees and 
Contractors. All Customer’s Records and use thereof shall be subject to the 
obligation of confidentiality under the Agreement
 .
-10.2.2. If an audit reveals that Customer is using the Licensed Software 
beyond the scope of the licenses Customer has paid for, Customer shall pay to 
The Qt Company any amounts owed for such unauthorized use within thirty (30) 
days from receipt of the corresponding invoice from The Qt Company.
-10.2.3. In addition, in the event the audit reveals a material violation of 
the terms of the Agreement (without limitation, either (i) underpayment of more 
than 10% of License Fees or 10,000 Euros (whichever is more) or (ii) 
distribution of products, which include or result from Prohibited Combination, 
shall be deemed a material violation for purposes of this section), then 
Customer shall pay The Qt Company's reasonable cost of conducting such audit.
-
-11. TERMINATION
-11.1. Termination of Licenses
-11.1.1. The Qt Company may terminate Customer’s rights to any and all Licensed 
Software (including access to Support), if Customer:
-(i) commits a material breach of the Agreement (including this Appendix) and 
has not remedied the breach within a reasonable period of time (which shall be 
no less than thirty (30) days) of The Qt Company’s written notice specifying 
the breach, or
-(ii) becomes bankrupt, insolvent or goes into liquidation or debt 
restructuring.
-11.1.2. Suspension of rights: Instead of termination, The Qt Company reserves 
the right to suspend or withhold grants of any and all rights to the Licensed 
Software (including Support), should Customer fail to make payment in timely 
fashion or otherwise violate or is reasonably suspected of violating its 
obligations under the Agreement and/or this Appendix, and where such violation 
or breach is not cured within ten (10) business days following The Qt Company’s 
written notice thereof.
-11.2. Parties´ Rights and Duties upon Termination
-11.2.1. Upon expiry or termination of the Development Licenses, Customer shall 
cease and shall cause all Designated Users (including those of its Affiliates’ 
and Contractors’) to cease using the relevant Licensed Software.
-11.2.2. Upon such expiry or termination of Development Licenses, Customer 
shall destroy or return to The Qt Company all copies of the respective Licensed 
Software and all related materials and will certify the same by Customer’s duly 
authorized officer to The Qt Company upon its request, provided however that 
Customer may retain and utilize such copies of the Licensed Software to the 
extent required to provide Customer’s continued support to End Customers, for 
archiving purposes or as is required under applicable law.
-11.2.3. Upon expiry of Distribution Licenses, Customer shall cease (including 
via its Affiliates and Contractors) distribution of Devices.
-11.2.4. If Customer’s distribution rights for Applications and Devices 
hereunder are terminated by The Qt Company due to Customer’s material breach, 
then Customer must cease any distribution of Applications and Devices as of the 
effective date of termination.
-11.2.5. Expiry or termination of any of Customer’s licenses hereunder for any 
reason whatsoever shall not:
-(i) relieve Customer of its obligation to pay any License Fees accrued or 
payable to The Qt Company prior to the effective date of termination, and 
Customer shall pay to The Qt Company all such fees within thirty (30) days from 
the effective date of termination of the licenses;
-(ii) relieve Customer of its obligation to ensure that Customer’s actions or 
inactions do not cause Applications and Devices (including those already 
distributed) to fall out of compliance with the terms of the Agreement; nor
-(iii) affect any rights of End Customer to continue use of Applications and 
Devices (and therein incorporated Redistributables) received by the End 
Customer before the date of such expiry or termination of Customer’s rights.
-11.3. Extension of Rights under Special Circumstances. In the event that, 
during the applicable License Term, The Qt Company is declared bankrupt under a 
final, non-cancellable decision by relevant court of law, and the Agreement is 
not, at the date of expiry of the Development License(s), assigned to a party 
who has assumed The Qt Company’s position as a legitimate licensor of Licensed 
Software under the Agreement, then all valid Development Licenses possessed by 
Customer at such date of expiry, and which Customer has not notified for 
expiry, shall be extended to be valid in perpetuity under the terms of the 
Agreement. Any such extension shall not apply to The Qt Company’s Support 
obligations.
-
-EXHIBIT 1, Licensed Software
-
-The modules and tools are specific to each product version respectively and 
may vary from version to version. Modules and tools included in the latest 
publicly available version of the respective product at any given time are 
listed in Exhibit 1 of the latest version of the Qt Frame Agreement available 
at https://www.qt.io/terms-conditions/qt-dev-framework/exhibit-1. If a new 
version of Licensed Software does not include a module or tool present in an 
older version which Customer is entitled to use under a valid license from The 
Qt Company, then Customer will continue to have such right during the validity 
of Customer’s license to relevant Licensed Software. In the event a new version 
of the Licensed Software adds modules or tools to any previous version(s), 
Customer’s rights will extend to cover also such additional modules and tools.
-
-Licensed Software: Developer modules and tools
-The modules and/or tools that are included in the latest publicly available 
version of the respective product at the effective date of this Appendix, Qt 
for Application Development Professional (ADP), Qt for Application Development 
Enterprise (ADE), Qt for Device Creation Professional (DCP), Qt for Device 
Creation Enterprise (DCE), - are marked with ‘X’ in the below table. Parts of 
the product that are permitted for distribution in object-code form only 
(“Redistributables”) are marked with ‘R’ in the below table.
-+-----------------------------------------------------------------------------+
-|   Modules / Tools                   |   ADP   |   ADE   |   DCP   |   DCE   |
-+-----------------------------------------------------------------------------+
-|Active Qt                            |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt 3D                                |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt5 Core Compatibility APIs          |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt Android Extras                    |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt Bluetooth                         |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt Canvas 3D                         |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt Charts                            |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt Concurrent                        |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt Core                              |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt Data Visualization                |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt D-Bus                             |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt for Python                        |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt for WebAssembly                   |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt Gamepad                           |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt Graphical Effects                 |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt GUI                               |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt Help                              |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt Image Formats                     |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt Location                          |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt Lottie Animation                  |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt Mac Extras                        |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt Multimedia                        |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt Multimedia Widgets                |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt Network                           |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt Network Authorization             |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt NFC                               |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt OpenGL                            |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt PDF                               |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt Platform Headers                  |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt Positioning                       |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt Print Support                     |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt Purchasing                        |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt QML                               |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt Quick                             |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt Quick 3D                          |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt Quick Controls 1                  |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt Quick Controls                    |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt Quick Dialogs                     |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt Quick Extras                      |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt Quick Layouts                     |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt Quick Test                        |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt Quick Timeline                    |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt Quick WebGL                       |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt Quick Widgets                     |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt Remote Objects                    |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt Script                            |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt Script Tools                      |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt SCXML                             |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt Sensors                           |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt Serial Bus                        |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt Serial Port                       |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt Shader Tools                      |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt Speech                            |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt State Machine                     |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt SQL                               |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt SVG                               |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt Test                              |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt UI Tools                          |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt Virtual Keyboard                  |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt Wayland Compositor                |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt WebChannel                        |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt WebEngine                         |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt WebSockets                        |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt WebView                           |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt Widgets                           |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt Windows Extras                    |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt X11 Extras                        |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt XML                               |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt XML Patterns                      |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt Designer (Qt Widget Designer)     |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt Linguist                          |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt Assistant                         |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|lupdate                              |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|lrelease                             |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|lrelease                             |   X,R   |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt MQTT                              |         |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt KNX                               |         |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt OPC UA                            |         |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt CoAP                              |         |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt Insight Tracker                   |         |   X,R   |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Boot 2 Qt stacks                     |         |         |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt OTA                               |         |         |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Device Utilities                     |         |         |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt Debugging Bridge (QDB) Daemon     |         |         |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt Quick Ultralite Controls          |         |         |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt Quick Ultralite                   |         |         |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt Safe Renderer (QSR)               |         |         |   X,R   |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt Application Manager               |         |         |         |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt Interface Framework               |         |         |         |   X,R   |
-+-----------------------------------------------------------------------------+
-|Neptune Reference UI                 |         |         |         |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt for Android Automotive OS(QAA)    |         |         |         |   X,R   |
-+-----------------------------------------------------------------------------+
-|Qt Creator                           |    X    |    X    |    X    |    X    |
-+-----------------------------------------------------------------------------+
-|Qt Design Studio (Professional)      |    X    |    X    |    X    |    X    |
-+-----------------------------------------------------------------------------+
-|androiddeployqt                      |    X    |    X    |    X    |    X    |
-+-----------------------------------------------------------------------------+
-|androidtestrunner                    |    X    |    X    |    X    |    X    |
-+-----------------------------------------------------------------------------+
-|canbusutil                           |    X    |    X    |    X    |    X    |
-+-----------------------------------------------------------------------------+
-|dumpcpp                              |    X    |    X    |    X    |    X    |
-+-----------------------------------------------------------------------------+
-|dumpdoc                              |    X    |    X    |    X    |    X    |
-+-----------------------------------------------------------------------------+
-|fixqt4headers.pl                     |    X    |    X    |    X    |    X    |
-+-----------------------------------------------------------------------------+
-|idc                                  |    X    |    X    |    X    |    X    |
-+-----------------------------------------------------------------------------+
-|moc                                  |    X    |    X    |    X    |    X    |
-+-----------------------------------------------------------------------------+
-|pixeltool                            |    X    |    X    |    X    |    X    |
-+-----------------------------------------------------------------------------+
-|qdbus                                |    X    |    X    |    X    |    X    |
-+-----------------------------------------------------------------------------+
-|qdbuscpp2xml                         |    X    |    X    |    X    |    X    |
-+-----------------------------------------------------------------------------+
-|qdbusviewer                          |    X    |    X    |    X    |    X    |
-+-----------------------------------------------------------------------------+
-|qdbusxml2cpp                         |    X    |    X    |    X    |    X    |
-+-----------------------------------------------------------------------------+
-|qdistancefieldgenerator              |    X    |    X    |    X    |    X    |
-+-----------------------------------------------------------------------------+
-|qdoc                                 |    X    |    X    |    X    |    X    |
-+-----------------------------------------------------------------------------+
-|qhelpgenerator                       |    X    |    X    |    X    |    X    |
-+-----------------------------------------------------------------------------+
-|qlalr                                |    X    |    X    |    X    |    X    |
-+-----------------------------------------------------------------------------+
-|qmake                                |    X    |    X    |    X    |    X    |
-+-----------------------------------------------------------------------------+
-|qml                                  |    X    |    X    |    X    |    X    |
-+-----------------------------------------------------------------------------+
-|qmlcachegen                          |    X    |    X    |    X    |    X    |
-+-----------------------------------------------------------------------------+
-|qmldom                               |    X    |    X    |    X    |    X    |
-+-----------------------------------------------------------------------------+
-|qmleasing                            |    X    |    X    |    X    |    X    |
-+-----------------------------------------------------------------------------+
-|qmlformat                            |    X    |    X    |    X    |    X    |
-+-----------------------------------------------------------------------------+
-|qmllint                              |    X    |    X    |    X    |    X    |
-+-----------------------------------------------------------------------------+
-|qmlpreview                           |    X    |    X    |    X    |    X    |
-+-----------------------------------------------------------------------------+
-|qmlprofiler                          |    X    |    X    |    X    |    X    |
-+-----------------------------------------------------------------------------+
-|qmlscene                             |    X    |    X    |    X    |    X    |
-+-----------------------------------------------------------------------------+
-|qmltestrunner                        |    X    |    X    |    X    |    X    |
-+-----------------------------------------------------------------------------+
-|qmltime                              |    X    |    X    |    X    |    X    |
-+-----------------------------------------------------------------------------+
-|qmlviewer                            |    X    |    X    |    X    |    X    |
-+-----------------------------------------------------------------------------+
-|qtdiag                               |    X    |    X    |    X    |    X    |
-+-----------------------------------------------------------------------------+
-|qtpaths                              |    X    |    X    |    X    |    X    |
-+-----------------------------------------------------------------------------+
-|qtplugininfo                         |    X    |    X    |    X    |    X    |
-+-----------------------------------------------------------------------------+
-|qvkgen                               |    X    |    X    |    X    |    X    |
-+-----------------------------------------------------------------------------+
-|rcc                                  |    X    |    X    |    X    |    X    |
-+-----------------------------------------------------------------------------+
-|tracegen                             |    X    |    X    |    X    |    X    |
-+-----------------------------------------------------------------------------+
-|uic                                  |    X    |    X    |    X    |    X    |
-+-----------------------------------------------------------------------------+
-|windeployqt                          |    X    |    X    |    X    |    X    |
-+-----------------------------------------------------------------------------+
-|Target toolchains                    |         |         |    X    |    X    |
-+-----------------------------------------------------------------------------+
-|Qt Debugging Bridge (QDB) Host Tools |         |         |    X    |    X    |
-+-----------------------------------------------------------------------------+
-|qtconfig-gui                         |         |         |    X    |    X    |
-+-----------------------------------------------------------------------------+
-|Qt Emulator                          |         |         |    X    |    X    |
-+-----------------------------------------------------------------------------+
-|Qt Creator VxWorks plugin            |         |         |    X    |    X    |
-+-----------------------------------------------------------------------------+
-|qulrcc                               |         |         |    X    |    X    |
-+-----------------------------------------------------------------------------+
-|qmlinterfacegenerator                |         |         |    X    |    X    |
-+-----------------------------------------------------------------------------+
-|qmltocpp                             |         |         |    X    |    X    |
-+-----------------------------------------------------------------------------+
-|qulfontcompiler                      |         |         |    X    |    X    |
-+-----------------------------------------------------------------------------+
-|qmlprojectexporter                   |         |         |    X    |    X    |
-+-----------------------------------------------------------------------------+
-|Qt Deployment Server                 |         |         |    X    |    X    |
-+-----------------------------------------------------------------------------+
-|Qt Creator plugin for                |         |         |         |         |
-|Qt Application Manager               |         |         |    X    |    X    |
-+-----------------------------------------------------------------------------+
-
-Rights for Application and Device use cases
-Following table summarizes the rights afforded by different products of the 
Licensed Software to create and distribute Applications and Devices as defined 
in this Appendix (X marks for rights):
-+-----------------------------------------------------------------------------+
-|                                     |   Applications    |      Devices      |
-+-----------------------------------------------------------------------------+
-|ADP                                  |         X         |                   |
-+-----------------------------------------------------------------------------+
-|ADE                                  |         X         |                   |
-+-----------------------------------------------------------------------------+
-|DCP                                  |         X         |         X         |
-+-----------------------------------------------------------------------------+
-|DCE                                  |         X         |         X         |
-+-----------------------------------------------------------------------------+
-
-Redistributables and Tools - Data collection
-Customer is responsible for Customer’s use of Licensed Software, including the 
developer modules and tools. Any use of modules and tools by Customer to track, 
access, process, or otherwise handle data (including telemetry data) is the 
responsibility of Customer and must be done in compliance with applicable laws. 
If Customer uses the Licensed Software to perform any operation or set of 
operations on personal data, The Qt Company has no access or visibility into 
such operations by Customer. The Qt Company in no way acts as a data processor 
to Customer.
-
-Licensed Software: Designer tools and modules
-The modules and/or tools that are included in the respective product Qt for 
Design Studio Professional (DSP), Qt for Design Studio Enterprise (DSE) - are 
marked with X in the below table.
-+-----------------------------------------------------------------------------+
-|                                     |        DSP        |        DSE        |
-+-----------------------------------------------------------------------------+
-|Qt Design Studio                     |         X         |         X         |
-+-----------------------------------------------------------------------------+
-|Qt Design Bridges                    |                   |         X         |
-+-----------------------------------------------------------------------------+
-|QML Live on host                     |         X         |         X         |
-+-----------------------------------------------------------------------------+
-|QML Live on target                   |                   |         X         |
-+-----------------------------------------------------------------------------+
-|Variant Management                   |                   |         X         |
-+-----------------------------------------------------------------------------+
-|Shader creation tools                |                   |         X         |
-+-----------------------------------------------------------------------------+
-|Profiling tools                      |                   |         X         |
-+-----------------------------------------------------------------------------+
-|Simulink support                     |                   |         X         |
-+-----------------------------------------------------------------------------+
-Designer tools include no Redistributables. Both DSP and DSE can be used to 
create an user interface for use cases covered by ADP, ADE, DCP and DCE.
-
-EXHIBIT 2 – Small Business Terms
-
-1. This Exhibit applies to entities that qualify as a Qualified Small Business 
(defined below) and provides additional terms and conditions applicable to 
small business pricing and licensing. In the event that Customer is a Qualified 
Small Business and there is any conflict between the terms of this Exhibit and 
any other terms of the Agreement, the terms in this Exhibit shall take 
precedence.
-2. APPLICABILITY FOR SMALL BUSINESS LICENSES. Any small business discounts 
applied require that Customer (including any Customer Affiliates or group 
entities) has an annual revenue (including annual capital funding) below 1 
Million EUR, or the equivalent thereof, as approved by The Qt Company (each, a 
“Qualified Small Business”). The annual revenue, including funding, must be 
evidenced upon request by business records and approved by The Qt Company in 
its reasonable discretion.
-3. SUPPORT. Support is limited to: (i) Install Support; and (ii) for any other 
Standard Support issue, five (5) support tickets annually.
-4. LIMITATION ON NUMBER OF SMALL BUSINESS DEVELOPER LICENSES. Qualified Small 
Business discounts and purchasing structure may be applied to a maximum of 
three discounted developer licenses (either ADE or DCP) per Qualified Small 
Business. Any additional licenses purchased will be at The Qt Company list 
price in effect at the time.
-5. LIMITATION FOR NUMBER OF INSTALLATIONS. Customer may install copies of the 
Licensed Software on two (2) computers per Designated User, provided that only 
the Designated Users who have a valid Development License may use the Licensed 
Software.
-6. CONDITIONAL WAIVER OF DISTRIBUTION LICENSES. For Qualified Small 
Businesses, the Agreement requirements to purchase Distribution Licenses for 
Devices shall apply only when Customer ceases to be a Qualified Small Business 
(e.g., when annual revenue thresholds are bypassed).
-7. ADDITIONAL TERMS FOR RENEWALS. The initial subscription purchase term for 
Qualified Small Business Licenses is twelve (12) months. Upon expiration of the 
initial twelve (12) month term, Customer’s Qualified Small Business Licenses 
may be renewed with applicable Qualified Small Business pricing so long as 
Customer remains a Qualified Small Business and accepts The Qt Company’s terms 
and conditions at the time of renewal. If Customer ceases to be a Qualified 
Small Business, renewal pricing shall be at The Qt Company list price in effect 
at the time of renewal, or as agreed in writing between the parties.
-8. ADDITIONAL AUDIT RIGHTS. In addition to the audit rights set forth in the 
Agreement, The Qt Company reserves the right to audit Customer financial 
records in order to determine whether Customer is a Qualified Small Business.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qtwebsockets-everywhere-src-6.9.1/.cmake.conf 
new/qtwebsockets-everywhere-src-6.9.2/.cmake.conf
--- old/qtwebsockets-everywhere-src-6.9.1/.cmake.conf   2025-05-29 
02:19:37.000000000 +0200
+++ new/qtwebsockets-everywhere-src-6.9.2/.cmake.conf   2025-08-18 
01:36:16.000000000 +0200
@@ -1,4 +1,4 @@
-set(QT_REPO_MODULE_VERSION "6.9.1")
+set(QT_REPO_MODULE_VERSION "6.9.2")
 set(QT_REPO_MODULE_PRERELEASE_VERSION_SEGMENT "alpha1")
 set(QT_EXTRA_INTERNAL_TARGET_DEFINES "QT_NO_AS_CONST=1")
 list(APPEND QT_EXTRA_INTERNAL_TARGET_DEFINES "QT_NO_FOREACH=1")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qtwebsockets-everywhere-src-6.9.1/.tag 
new/qtwebsockets-everywhere-src-6.9.2/.tag
--- old/qtwebsockets-everywhere-src-6.9.1/.tag  2025-05-29 02:19:37.000000000 
+0200
+++ new/qtwebsockets-everywhere-src-6.9.2/.tag  2025-08-18 01:36:16.000000000 
+0200
@@ -1 +1 @@
-aed12a0013dffe3e0cd564fb23e83299affda941
+9f5916fb7af335f173b63bc33b35954a0ae81348
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qtwebsockets-everywhere-src-6.9.1/dependencies.yaml 
new/qtwebsockets-everywhere-src-6.9.2/dependencies.yaml
--- old/qtwebsockets-everywhere-src-6.9.1/dependencies.yaml     2025-05-29 
02:19:37.000000000 +0200
+++ new/qtwebsockets-everywhere-src-6.9.2/dependencies.yaml     2025-08-18 
01:36:16.000000000 +0200
@@ -1,7 +1,7 @@
 dependencies:
   ../qtbase:
-    ref: 2ad23cd72d5f122f88ce95792a4323d639c27d25
+    ref: 6f0d27d2e4ba5fa6562f738aaaf8eaf98ebf51e7
     required: true
   ../qtdeclarative:
-    ref: 1e6adc3d5f1f4cbbb77b41911395782dff43cccd
+    ref: b653aebb2175203d86199b1d320fd10f939df3fc
     required: false
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtwebsockets-everywhere-src-6.9.1/src/imports/qmlwebsockets/qmlwebsockets_plugin.cpp
 
new/qtwebsockets-everywhere-src-6.9.2/src/imports/qmlwebsockets/qmlwebsockets_plugin.cpp
--- 
old/qtwebsockets-everywhere-src-6.9.1/src/imports/qmlwebsockets/qmlwebsockets_plugin.cpp
    2025-05-29 02:19:37.000000000 +0200
+++ 
new/qtwebsockets-everywhere-src-6.9.2/src/imports/qmlwebsockets/qmlwebsockets_plugin.cpp
    2025-08-18 01:36:16.000000000 +0200
@@ -1,5 +1,6 @@
 // Copyright (C) 2016 Kurt Pattyn <pattyn.k...@gmail.com>.
 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR 
GPL-2.0-only OR GPL-3.0-only
+// Qt-Security score:significant reason:default
 
 #include "qmlwebsockets_plugin.h"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtwebsockets-everywhere-src-6.9.1/src/imports/qmlwebsockets/qmlwebsockets_plugin.h
 
new/qtwebsockets-everywhere-src-6.9.2/src/imports/qmlwebsockets/qmlwebsockets_plugin.h
--- 
old/qtwebsockets-everywhere-src-6.9.1/src/imports/qmlwebsockets/qmlwebsockets_plugin.h
      2025-05-29 02:19:37.000000000 +0200
+++ 
new/qtwebsockets-everywhere-src-6.9.2/src/imports/qmlwebsockets/qmlwebsockets_plugin.h
      2025-08-18 01:36:16.000000000 +0200
@@ -1,5 +1,6 @@
 // Copyright (C) 2016 Kurt Pattyn <pattyn.k...@gmail.com>.
 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR 
GPL-2.0-only OR GPL-3.0-only
+// Qt-Security score:significant reason:default
 
 #ifndef QMLWEBSOCKET_PLUGIN_H
 #define QMLWEBSOCKET_PLUGIN_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtwebsockets-everywhere-src-6.9.1/src/imports/qmlwebsockets/qqmlwebsocket.cpp
 
new/qtwebsockets-everywhere-src-6.9.2/src/imports/qmlwebsockets/qqmlwebsocket.cpp
--- 
old/qtwebsockets-everywhere-src-6.9.1/src/imports/qmlwebsockets/qqmlwebsocket.cpp
   2025-05-29 02:19:37.000000000 +0200
+++ 
new/qtwebsockets-everywhere-src-6.9.2/src/imports/qmlwebsockets/qqmlwebsocket.cpp
   2025-08-18 01:36:16.000000000 +0200
@@ -1,5 +1,6 @@
 // Copyright (C) 2016 Kurt Pattyn <pattyn.k...@gmail.com>.
 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR 
GPL-2.0-only OR GPL-3.0-only
+// Qt-Security score:significant reason:default
 
 /*!
     \qmltype WebSocket
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtwebsockets-everywhere-src-6.9.1/src/imports/qmlwebsockets/qqmlwebsocket.h 
new/qtwebsockets-everywhere-src-6.9.2/src/imports/qmlwebsockets/qqmlwebsocket.h
--- 
old/qtwebsockets-everywhere-src-6.9.1/src/imports/qmlwebsockets/qqmlwebsocket.h 
    2025-05-29 02:19:37.000000000 +0200
+++ 
new/qtwebsockets-everywhere-src-6.9.2/src/imports/qmlwebsockets/qqmlwebsocket.h 
    2025-08-18 01:36:16.000000000 +0200
@@ -1,5 +1,6 @@
 // Copyright (C) 2016 Kurt Pattyn <pattyn.k...@gmail.com>.
 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR 
GPL-2.0-only OR GPL-3.0-only
+// Qt-Security score:significant reason:default
 
 #ifndef QQMLWEBSOCKET_H
 #define QQMLWEBSOCKET_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtwebsockets-everywhere-src-6.9.1/src/imports/qmlwebsockets/qqmlwebsocketserver.cpp
 
new/qtwebsockets-everywhere-src-6.9.2/src/imports/qmlwebsockets/qqmlwebsocketserver.cpp
--- 
old/qtwebsockets-everywhere-src-6.9.1/src/imports/qmlwebsockets/qqmlwebsocketserver.cpp
     2025-05-29 02:19:37.000000000 +0200
+++ 
new/qtwebsockets-everywhere-src-6.9.2/src/imports/qmlwebsockets/qqmlwebsocketserver.cpp
     2025-08-18 01:36:16.000000000 +0200
@@ -1,5 +1,6 @@
 // Copyright (C) 2016 Klarälvdalens Datakonsult AB, a KDAB Group company, 
i...@kdab.com, author Milian Wolff <milian.wo...@kdab.com>
 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR 
GPL-2.0-only OR GPL-3.0-only
+// Qt-Security score:significant reason:default
 
 #include "qqmlwebsocketserver.h"
 #include "qqmlwebsocket.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtwebsockets-everywhere-src-6.9.1/src/imports/qmlwebsockets/qqmlwebsocketserver.h
 
new/qtwebsockets-everywhere-src-6.9.2/src/imports/qmlwebsockets/qqmlwebsocketserver.h
--- 
old/qtwebsockets-everywhere-src-6.9.1/src/imports/qmlwebsockets/qqmlwebsocketserver.h
       2025-05-29 02:19:37.000000000 +0200
+++ 
new/qtwebsockets-everywhere-src-6.9.2/src/imports/qmlwebsockets/qqmlwebsocketserver.h
       2025-08-18 01:36:16.000000000 +0200
@@ -1,5 +1,6 @@
 // Copyright (C) 2016 Klarälvdalens Datakonsult AB, a KDAB Group company, 
i...@kdab.com, author Milian Wolff <milian.wo...@kdab.com>
 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR 
GPL-2.0-only OR GPL-3.0-only
+// Qt-Security score:significant reason:default
 
 #ifndef QQMLWEBSOCKETSERVER_H
 #define QQMLWEBSOCKETSERVER_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtwebsockets-everywhere-src-6.9.1/src/websockets/doc/src/overview.qdoc 
new/qtwebsockets-everywhere-src-6.9.2/src/websockets/doc/src/overview.qdoc
--- old/qtwebsockets-everywhere-src-6.9.1/src/websockets/doc/src/overview.qdoc  
2025-05-29 02:19:37.000000000 +0200
+++ new/qtwebsockets-everywhere-src-6.9.2/src/websockets/doc/src/overview.qdoc  
2025-08-18 01:36:16.000000000 +0200
@@ -22,7 +22,7 @@
 
 \section1 How does it Work?
 
-\image websockets-pictorial-representation.jpg
+\image websockets-pictorial-representation.jpg WebSocket protocal flow diagram
 
 As you can see in the pictorial representation, WebSocket-based solution
 consists of a client-side and server-side. The native client-side support for
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtwebsockets-everywhere-src-6.9.1/src/websockets/qdefaultmaskgenerator_p.cpp
 
new/qtwebsockets-everywhere-src-6.9.2/src/websockets/qdefaultmaskgenerator_p.cpp
--- 
old/qtwebsockets-everywhere-src-6.9.1/src/websockets/qdefaultmaskgenerator_p.cpp
    2025-05-29 02:19:37.000000000 +0200
+++ 
new/qtwebsockets-everywhere-src-6.9.2/src/websockets/qdefaultmaskgenerator_p.cpp
    2025-08-18 01:36:16.000000000 +0200
@@ -1,5 +1,6 @@
 // Copyright (C) 2016 Kurt Pattyn <pattyn.k...@gmail.com>.
 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR 
GPL-2.0-only OR GPL-3.0-only
+// Qt-Security score:significant reason:default
 /*!
     \class QDefaultMaskGenerator
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtwebsockets-everywhere-src-6.9.1/src/websockets/qdefaultmaskgenerator_p.h 
new/qtwebsockets-everywhere-src-6.9.2/src/websockets/qdefaultmaskgenerator_p.h
--- 
old/qtwebsockets-everywhere-src-6.9.1/src/websockets/qdefaultmaskgenerator_p.h  
    2025-05-29 02:19:37.000000000 +0200
+++ 
new/qtwebsockets-everywhere-src-6.9.2/src/websockets/qdefaultmaskgenerator_p.h  
    2025-08-18 01:36:16.000000000 +0200
@@ -1,5 +1,6 @@
 // Copyright (C) 2016 Kurt Pattyn <pattyn.k...@gmail.com>.
 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR 
GPL-2.0-only OR GPL-3.0-only
+// Qt-Security score:significant reason:default
 
 #ifndef QDEFAULTMASKGENERATOR_P_H
 #define QDEFAULTMASKGENERATOR_P_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtwebsockets-everywhere-src-6.9.1/src/websockets/qmaskgenerator.cpp 
new/qtwebsockets-everywhere-src-6.9.2/src/websockets/qmaskgenerator.cpp
--- old/qtwebsockets-everywhere-src-6.9.1/src/websockets/qmaskgenerator.cpp     
2025-05-29 02:19:37.000000000 +0200
+++ new/qtwebsockets-everywhere-src-6.9.2/src/websockets/qmaskgenerator.cpp     
2025-08-18 01:36:16.000000000 +0200
@@ -1,5 +1,6 @@
 // Copyright (C) 2016 Kurt Pattyn <pattyn.k...@gmail.com>.
 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR 
GPL-2.0-only OR GPL-3.0-only
+// Qt-Security score:significant reason:default
 
 /*!
     \class QMaskGenerator
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtwebsockets-everywhere-src-6.9.1/src/websockets/qmaskgenerator.h 
new/qtwebsockets-everywhere-src-6.9.2/src/websockets/qmaskgenerator.h
--- old/qtwebsockets-everywhere-src-6.9.1/src/websockets/qmaskgenerator.h       
2025-05-29 02:19:37.000000000 +0200
+++ new/qtwebsockets-everywhere-src-6.9.2/src/websockets/qmaskgenerator.h       
2025-08-18 01:36:16.000000000 +0200
@@ -1,5 +1,6 @@
 // Copyright (C) 2016 Kurt Pattyn <pattyn.k...@gmail.com>.
 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR 
GPL-2.0-only OR GPL-3.0-only
+// Qt-Security score:significant reason:default
 
 #ifndef QMASKGENERATOR_H
 #define QMASKGENERATOR_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtwebsockets-everywhere-src-6.9.1/src/websockets/qwebsocket.cpp 
new/qtwebsockets-everywhere-src-6.9.2/src/websockets/qwebsocket.cpp
--- old/qtwebsockets-everywhere-src-6.9.1/src/websockets/qwebsocket.cpp 
2025-05-29 02:19:37.000000000 +0200
+++ new/qtwebsockets-everywhere-src-6.9.2/src/websockets/qwebsocket.cpp 
2025-08-18 01:36:16.000000000 +0200
@@ -1,5 +1,6 @@
 // Copyright (C) 2016 Kurt Pattyn <pattyn.k...@gmail.com>.
 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR 
GPL-2.0-only OR GPL-3.0-only
+// Qt-Security score:significant reason:default
 
 /*!
     \class QWebSocket
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtwebsockets-everywhere-src-6.9.1/src/websockets/qwebsocket.h 
new/qtwebsockets-everywhere-src-6.9.2/src/websockets/qwebsocket.h
--- old/qtwebsockets-everywhere-src-6.9.1/src/websockets/qwebsocket.h   
2025-05-29 02:19:37.000000000 +0200
+++ new/qtwebsockets-everywhere-src-6.9.2/src/websockets/qwebsocket.h   
2025-08-18 01:36:16.000000000 +0200
@@ -1,5 +1,6 @@
 // Copyright (C) 2016 Kurt Pattyn <pattyn.k...@gmail.com>.
 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR 
GPL-2.0-only OR GPL-3.0-only
+// Qt-Security score:significant reason:default
 
 #ifndef QWEBSOCKET_H
 #define QWEBSOCKET_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtwebsockets-everywhere-src-6.9.1/src/websockets/qwebsocket_p.cpp 
new/qtwebsockets-everywhere-src-6.9.2/src/websockets/qwebsocket_p.cpp
--- old/qtwebsockets-everywhere-src-6.9.1/src/websockets/qwebsocket_p.cpp       
2025-05-29 02:19:37.000000000 +0200
+++ new/qtwebsockets-everywhere-src-6.9.2/src/websockets/qwebsocket_p.cpp       
2025-08-18 01:36:16.000000000 +0200
@@ -1,5 +1,6 @@
 // Copyright (C) 2016 Kurt Pattyn <pattyn.k...@gmail.com>.
 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR 
GPL-2.0-only OR GPL-3.0-only
+// Qt-Security score:critical reason:network-protocol
 
 #include "qwebsocket.h"
 #include "qwebsocket_p.h"
@@ -390,8 +391,8 @@
 {
     if (Q_UNLIKELY(!m_pSocket))
         return;
+    Q_Q(QWebSocket);
     if (!m_isClosingHandshakeSent) {
-        Q_Q(QWebSocket);
         m_closeCode = closeCode;
         // 125 is the maximum length of a control frame, and 2 bytes are used 
for the close code:
         const QByteArray reasonUtf8 = reason.toUtf8().left(123);
@@ -418,7 +419,24 @@
 
         Q_EMIT q->aboutToClose();
     }
-    m_pSocket->close();
+    static constexpr auto closeTimerName = "_closeTimer"_L1;
+    if (!m_isClosingHandshakeReceived) {
+        QTimer *closeTimer = new QTimer(q);
+        closeTimer->setObjectName(closeTimerName);
+        closeTimer->setInterval(3000);
+        closeTimer->setSingleShot(true);
+        QObject::connect(q, &QWebSocket::disconnected, closeTimer, 
&QTimer::stop);
+        QObject::connect(q, &QWebSocket::disconnected, closeTimer, 
&QTimer::deleteLater);
+        QObject::connect(closeTimer, &QTimer::timeout, m_pSocket, 
&QTcpSocket::close);
+        QObject::connect(closeTimer, &QTimer::timeout, closeTimer, 
&QTimer::deleteLater);
+        closeTimer->start();
+    } else {
+        m_pSocket->close();
+        if (QTimer *closeTimer = q->findChild<QTimer *>(closeTimerName)) {
+            closeTimer->stop();
+            delete closeTimer;
+        }
+    }
 }
 
 /*!
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtwebsockets-everywhere-src-6.9.1/src/websockets/qwebsocket_p.h 
new/qtwebsockets-everywhere-src-6.9.2/src/websockets/qwebsocket_p.h
--- old/qtwebsockets-everywhere-src-6.9.1/src/websockets/qwebsocket_p.h 
2025-05-29 02:19:37.000000000 +0200
+++ new/qtwebsockets-everywhere-src-6.9.2/src/websockets/qwebsocket_p.h 
2025-08-18 01:36:16.000000000 +0200
@@ -1,6 +1,6 @@
 // Copyright (C) 2016 Kurt Pattyn <pattyn.k...@gmail.com>.
 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR 
GPL-2.0-only OR GPL-3.0-only
-
+// Qt-Security score:significant reason:default
 #ifndef QWEBSOCKET_P_H
 #define QWEBSOCKET_P_H
 //
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtwebsockets-everywhere-src-6.9.1/src/websockets/qwebsocket_wasm_p.cpp 
new/qtwebsockets-everywhere-src-6.9.2/src/websockets/qwebsocket_wasm_p.cpp
--- old/qtwebsockets-everywhere-src-6.9.1/src/websockets/qwebsocket_wasm_p.cpp  
2025-05-29 02:19:37.000000000 +0200
+++ new/qtwebsockets-everywhere-src-6.9.2/src/websockets/qwebsocket_wasm_p.cpp  
2025-08-18 01:36:16.000000000 +0200
@@ -1,5 +1,6 @@
 // Copyright (C) 2018 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
+// Qt-Security score:critical reason:network-protocol
 
 #include "qwebsocket_p.h"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtwebsockets-everywhere-src-6.9.1/src/websockets/qwebsocketcorsauthenticator.cpp
 
new/qtwebsockets-everywhere-src-6.9.2/src/websockets/qwebsocketcorsauthenticator.cpp
--- 
old/qtwebsockets-everywhere-src-6.9.1/src/websockets/qwebsocketcorsauthenticator.cpp
        2025-05-29 02:19:37.000000000 +0200
+++ 
new/qtwebsockets-everywhere-src-6.9.2/src/websockets/qwebsocketcorsauthenticator.cpp
        2025-08-18 01:36:16.000000000 +0200
@@ -1,5 +1,6 @@
 // Copyright (C) 2016 Kurt Pattyn <pattyn.k...@gmail.com>.
 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR 
GPL-2.0-only OR GPL-3.0-only
+// Qt-Security score:significant reason:default
 
 /*!
     \class QWebSocketCorsAuthenticator
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtwebsockets-everywhere-src-6.9.1/src/websockets/qwebsocketcorsauthenticator.h
 
new/qtwebsockets-everywhere-src-6.9.2/src/websockets/qwebsocketcorsauthenticator.h
--- 
old/qtwebsockets-everywhere-src-6.9.1/src/websockets/qwebsocketcorsauthenticator.h
  2025-05-29 02:19:37.000000000 +0200
+++ 
new/qtwebsockets-everywhere-src-6.9.2/src/websockets/qwebsocketcorsauthenticator.h
  2025-08-18 01:36:16.000000000 +0200
@@ -1,5 +1,6 @@
 // Copyright (C) 2016 Kurt Pattyn <pattyn.k...@gmail.com>.
 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR 
GPL-2.0-only OR GPL-3.0-only
+// Qt-Security score:significant reason:default
 #ifndef QWEBSOCKETCORSAUTHENTICATOR_H
 #define QWEBSOCKETCORSAUTHENTICATOR_H
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtwebsockets-everywhere-src-6.9.1/src/websockets/qwebsocketcorsauthenticator_p.h
 
new/qtwebsockets-everywhere-src-6.9.2/src/websockets/qwebsocketcorsauthenticator_p.h
--- 
old/qtwebsockets-everywhere-src-6.9.1/src/websockets/qwebsocketcorsauthenticator_p.h
        2025-05-29 02:19:37.000000000 +0200
+++ 
new/qtwebsockets-everywhere-src-6.9.2/src/websockets/qwebsocketcorsauthenticator_p.h
        2025-08-18 01:36:16.000000000 +0200
@@ -1,5 +1,6 @@
 // Copyright (C) 2016 Kurt Pattyn <pattyn.k...@gmail.com>.
 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR 
GPL-2.0-only OR GPL-3.0-only
+// Qt-Security score:significant reason:default
 #ifndef QWEBSOCKETCORSAUTHENTICATOR_P_H
 #define QWEBSOCKETCORSAUTHENTICATOR_P_H
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtwebsockets-everywhere-src-6.9.1/src/websockets/qwebsocketdataprocessor.cpp
 
new/qtwebsockets-everywhere-src-6.9.2/src/websockets/qwebsocketdataprocessor.cpp
--- 
old/qtwebsockets-everywhere-src-6.9.1/src/websockets/qwebsocketdataprocessor.cpp
    2025-05-29 02:19:37.000000000 +0200
+++ 
new/qtwebsockets-everywhere-src-6.9.2/src/websockets/qwebsocketdataprocessor.cpp
    2025-08-18 01:36:16.000000000 +0200
@@ -1,5 +1,6 @@
 // Copyright (C) 2016 Kurt Pattyn <pattyn.k...@gmail.com>.
 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR 
GPL-2.0-only OR GPL-3.0-only
+// Qt-Security score:critical reason:network-protocol
 /*!
     \class QWebSocketDataProcessor
     The class QWebSocketDataProcessor is responsible for reading, validating 
and
@@ -44,11 +45,8 @@
     m_isControlFrame(false),
     m_hasMask(false),
     m_mask(0),
-    m_binaryMessage(),
-    m_textMessage(),
     m_payloadLength(0),
-    m_decoder(QStringDecoder(QStringDecoder::Utf8, 
QStringDecoder::Flag::Stateless
-        | QStringDecoder::Flag::ConvertInvalidToNull)),
+    m_decoder(QStringDecoder(QStringDecoder::Utf8, 
QStringDecoder::Flag::ConvertInvalidToNull)),
     m_waitTimer(new QChronoTimer(this))
 {
     clear();
@@ -184,6 +182,18 @@
                 bool isFinalFrame = frame.isFinalFrame();
                 if (m_opCode == QWebSocketProtocol::OpCodeText) {
                     QString frameTxt = m_decoder(frame.payload());
+                    if (frame.isFinalFrame()) {
+                        // ### We lack API on the QStringDecoder to check if 
there is an incomplete
+                        // sequence inside its state object. But we need to 
make sure we are not
+                        // passing on an empty, or potentially corrupted 
message to our users.
+                        // By forcing the decoder to process a 0-byte we force 
it to evaluate the
+                        // current state as the full sequence, making it 
process it as an error if
+                        // it's not complete.
+                        frameTxt += m_decoder(QByteArrayView("\0", 1));
+                        // As a downside, we then always have to remove the 
0-byte that we just
+                        // added:
+                        frameTxt.chop(1);
+                    }
                     if (Q_UNLIKELY(m_decoder.hasError())) {
                         clear();
                         Q_EMIT 
errorEncountered(QWebSocketProtocol::CloseCodeWrongDatatype,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtwebsockets-everywhere-src-6.9.1/src/websockets/qwebsocketdataprocessor_p.h
 
new/qtwebsockets-everywhere-src-6.9.2/src/websockets/qwebsocketdataprocessor_p.h
--- 
old/qtwebsockets-everywhere-src-6.9.1/src/websockets/qwebsocketdataprocessor_p.h
    2025-05-29 02:19:37.000000000 +0200
+++ 
new/qtwebsockets-everywhere-src-6.9.2/src/websockets/qwebsocketdataprocessor_p.h
    2025-08-18 01:36:16.000000000 +0200
@@ -1,5 +1,6 @@
 // Copyright (C) 2016 Kurt Pattyn <pattyn.k...@gmail.com>.
 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR 
GPL-2.0-only OR GPL-3.0-only
+// Qt-Security score:significant reason:default
 
 #ifndef QWEBSOCKETDATAPROCESSOR_P_H
 #define QWEBSOCKETDATAPROCESSOR_P_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtwebsockets-everywhere-src-6.9.1/src/websockets/qwebsocketframe.cpp 
new/qtwebsockets-everywhere-src-6.9.2/src/websockets/qwebsocketframe.cpp
--- old/qtwebsockets-everywhere-src-6.9.1/src/websockets/qwebsocketframe.cpp    
2025-05-29 02:19:37.000000000 +0200
+++ new/qtwebsockets-everywhere-src-6.9.2/src/websockets/qwebsocketframe.cpp    
2025-08-18 01:36:16.000000000 +0200
@@ -1,5 +1,6 @@
 // Copyright (C) 2016 Kurt Pattyn <pattyn.k...@gmail.com>.
 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR 
GPL-2.0-only OR GPL-3.0-only
+// Qt-Security score:critical reason:network-protocol
 
 /*!
     \class QWebSocketFrame
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtwebsockets-everywhere-src-6.9.1/src/websockets/qwebsocketframe_p.h 
new/qtwebsockets-everywhere-src-6.9.2/src/websockets/qwebsocketframe_p.h
--- old/qtwebsockets-everywhere-src-6.9.1/src/websockets/qwebsocketframe_p.h    
2025-05-29 02:19:37.000000000 +0200
+++ new/qtwebsockets-everywhere-src-6.9.2/src/websockets/qwebsocketframe_p.h    
2025-08-18 01:36:16.000000000 +0200
@@ -1,5 +1,6 @@
 // Copyright (C) 2016 Kurt Pattyn <pattyn.k...@gmail.com>.
 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR 
GPL-2.0-only OR GPL-3.0-only
+// Qt-Security score:critical reason:network-protocol
 
 #ifndef QWEBSOCKETFRAME_P_H
 #define QWEBSOCKETFRAME_P_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtwebsockets-everywhere-src-6.9.1/src/websockets/qwebsockethandshakeoptions.cpp
 
new/qtwebsockets-everywhere-src-6.9.2/src/websockets/qwebsockethandshakeoptions.cpp
--- 
old/qtwebsockets-everywhere-src-6.9.1/src/websockets/qwebsockethandshakeoptions.cpp
 2025-05-29 02:19:37.000000000 +0200
+++ 
new/qtwebsockets-everywhere-src-6.9.2/src/websockets/qwebsockethandshakeoptions.cpp
 2025-08-18 01:36:16.000000000 +0200
@@ -1,5 +1,6 @@
 // Copyright (C) 2022 Menlo Systems GmbH, author Arno Rehn 
<a.r...@menlosystems.com>.
 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR 
GPL-2.0-only OR GPL-3.0-only
+// Qt-Security score:significant reason:default
 
 #include "qwebsockethandshakeoptions_p.h"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtwebsockets-everywhere-src-6.9.1/src/websockets/qwebsockethandshakeoptions.h
 
new/qtwebsockets-everywhere-src-6.9.2/src/websockets/qwebsockethandshakeoptions.h
--- 
old/qtwebsockets-everywhere-src-6.9.1/src/websockets/qwebsockethandshakeoptions.h
   2025-05-29 02:19:37.000000000 +0200
+++ 
new/qtwebsockets-everywhere-src-6.9.2/src/websockets/qwebsockethandshakeoptions.h
   2025-08-18 01:36:16.000000000 +0200
@@ -1,6 +1,6 @@
 // Copyright (C) 2022 Menlo Systems GmbH, author Arno Rehn 
<a.r...@menlosystems.com>.
 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR 
GPL-2.0-only OR GPL-3.0-only
-
+// Qt-Security score:significant reason:default
 
 #ifndef QWEBSOCKETHANDSHAKEOPTIONS_H
 #define QWEBSOCKETHANDSHAKEOPTIONS_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtwebsockets-everywhere-src-6.9.1/src/websockets/qwebsockethandshakeoptions_p.h
 
new/qtwebsockets-everywhere-src-6.9.2/src/websockets/qwebsockethandshakeoptions_p.h
--- 
old/qtwebsockets-everywhere-src-6.9.1/src/websockets/qwebsockethandshakeoptions_p.h
 2025-05-29 02:19:37.000000000 +0200
+++ 
new/qtwebsockets-everywhere-src-6.9.2/src/websockets/qwebsockethandshakeoptions_p.h
 2025-08-18 01:36:16.000000000 +0200
@@ -1,5 +1,6 @@
 // Copyright (C) 2022 Menlo Systems GmbH, author Arno Rehn 
<a.r...@menlosystems.com>.
 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR 
GPL-2.0-only OR GPL-3.0-only
+// Qt-Security score:significant reason:default
 
 #ifndef QWEBSOCKETHANDSHAKEOPTIONS_P_H
 #define QWEBSOCKETHANDSHAKEOPTIONS_P_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtwebsockets-everywhere-src-6.9.1/src/websockets/qwebsockethandshakerequest.cpp
 
new/qtwebsockets-everywhere-src-6.9.2/src/websockets/qwebsockethandshakerequest.cpp
--- 
old/qtwebsockets-everywhere-src-6.9.1/src/websockets/qwebsockethandshakerequest.cpp
 2025-05-29 02:19:37.000000000 +0200
+++ 
new/qtwebsockets-everywhere-src-6.9.2/src/websockets/qwebsockethandshakerequest.cpp
 2025-08-18 01:36:16.000000000 +0200
@@ -1,5 +1,6 @@
 // Copyright (C) 2016 Kurt Pattyn <pattyn.k...@gmail.com>.
 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR 
GPL-2.0-only OR GPL-3.0-only
+// Qt-Security score:critical reason:network-protocol
 
 #include "qwebsockethandshakerequest_p.h"
 #include "qwebsocketprotocol.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtwebsockets-everywhere-src-6.9.1/src/websockets/qwebsockethandshakerequest_p.h
 
new/qtwebsockets-everywhere-src-6.9.2/src/websockets/qwebsockethandshakerequest_p.h
--- 
old/qtwebsockets-everywhere-src-6.9.1/src/websockets/qwebsockethandshakerequest_p.h
 2025-05-29 02:19:37.000000000 +0200
+++ 
new/qtwebsockets-everywhere-src-6.9.2/src/websockets/qwebsockethandshakerequest_p.h
 2025-08-18 01:36:16.000000000 +0200
@@ -1,5 +1,6 @@
 // Copyright (C) 2016 Kurt Pattyn <pattyn.k...@gmail.com>.
 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR 
GPL-2.0-only OR GPL-3.0-only
+// Qt-Security score:significant reason:default
 
 #ifndef QWEBSOCKETHANDSHAKEREQUEST_P_H
 #define QWEBSOCKETHANDSHAKEREQUEST_P_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtwebsockets-everywhere-src-6.9.1/src/websockets/qwebsockethandshakeresponse.cpp
 
new/qtwebsockets-everywhere-src-6.9.2/src/websockets/qwebsockethandshakeresponse.cpp
--- 
old/qtwebsockets-everywhere-src-6.9.1/src/websockets/qwebsockethandshakeresponse.cpp
        2025-05-29 02:19:37.000000000 +0200
+++ 
new/qtwebsockets-everywhere-src-6.9.2/src/websockets/qwebsockethandshakeresponse.cpp
        2025-08-18 01:36:16.000000000 +0200
@@ -1,5 +1,6 @@
 // Copyright (C) 2016 Kurt Pattyn <pattyn.k...@gmail.com>.
 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR 
GPL-2.0-only OR GPL-3.0-only
+// Qt-Security score:critical reason:network-protocol
 
 #include "qwebsockethandshakeresponse_p.h"
 #include "qwebsockethandshakerequest_p.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtwebsockets-everywhere-src-6.9.1/src/websockets/qwebsockethandshakeresponse_p.h
 
new/qtwebsockets-everywhere-src-6.9.2/src/websockets/qwebsockethandshakeresponse_p.h
--- 
old/qtwebsockets-everywhere-src-6.9.1/src/websockets/qwebsockethandshakeresponse_p.h
        2025-05-29 02:19:37.000000000 +0200
+++ 
new/qtwebsockets-everywhere-src-6.9.2/src/websockets/qwebsockethandshakeresponse_p.h
        2025-08-18 01:36:16.000000000 +0200
@@ -1,5 +1,6 @@
 // Copyright (C) 2016 Kurt Pattyn <pattyn.k...@gmail.com>.
 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR 
GPL-2.0-only OR GPL-3.0-only
+// Qt-Security score:significant reason:default
 
 #ifndef QWEBSOCKETHANDSHAKERESPONSE_P_H
 #define QWEBSOCKETHANDSHAKERESPONSE_P_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtwebsockets-everywhere-src-6.9.1/src/websockets/qwebsocketprotocol.cpp 
new/qtwebsockets-everywhere-src-6.9.2/src/websockets/qwebsocketprotocol.cpp
--- old/qtwebsockets-everywhere-src-6.9.1/src/websockets/qwebsocketprotocol.cpp 
2025-05-29 02:19:37.000000000 +0200
+++ new/qtwebsockets-everywhere-src-6.9.2/src/websockets/qwebsocketprotocol.cpp 
2025-08-18 01:36:16.000000000 +0200
@@ -1,5 +1,6 @@
 // Copyright (C) 2016 Kurt Pattyn <pattyn.k...@gmail.com>.
 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR 
GPL-2.0-only OR GPL-3.0-only
+// Qt-Security score:significant reason:default
 
 #include "qwebsocketprotocol_p.h"
 #include <QtCore/QString>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtwebsockets-everywhere-src-6.9.1/src/websockets/qwebsocketprotocol.h 
new/qtwebsockets-everywhere-src-6.9.2/src/websockets/qwebsocketprotocol.h
--- old/qtwebsockets-everywhere-src-6.9.1/src/websockets/qwebsocketprotocol.h   
2025-05-29 02:19:37.000000000 +0200
+++ new/qtwebsockets-everywhere-src-6.9.2/src/websockets/qwebsocketprotocol.h   
2025-08-18 01:36:16.000000000 +0200
@@ -1,5 +1,6 @@
 // Copyright (C) 2016 Kurt Pattyn <pattyn.k...@gmail.com>.
 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR 
GPL-2.0-only OR GPL-3.0-only
+// Qt-Security score:significant reason:default
 
 #ifndef QWEBSOCKETPROTOCOL_H
 #define QWEBSOCKETPROTOCOL_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtwebsockets-everywhere-src-6.9.1/src/websockets/qwebsocketprotocol_p.h 
new/qtwebsockets-everywhere-src-6.9.2/src/websockets/qwebsocketprotocol_p.h
--- old/qtwebsockets-everywhere-src-6.9.1/src/websockets/qwebsocketprotocol_p.h 
2025-05-29 02:19:37.000000000 +0200
+++ new/qtwebsockets-everywhere-src-6.9.2/src/websockets/qwebsocketprotocol_p.h 
2025-08-18 01:36:16.000000000 +0200
@@ -1,5 +1,6 @@
 // Copyright (C) 2016 Kurt Pattyn <pattyn.k...@gmail.com>.
 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR 
GPL-2.0-only OR GPL-3.0-only
+// Qt-Security score:significant reason:default
 
 #ifndef QWEBSOCKETPROTOCOL_P_H
 #define QWEBSOCKETPROTOCOL_P_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtwebsockets-everywhere-src-6.9.1/src/websockets/qwebsockets_global.h 
new/qtwebsockets-everywhere-src-6.9.2/src/websockets/qwebsockets_global.h
--- old/qtwebsockets-everywhere-src-6.9.1/src/websockets/qwebsockets_global.h   
2025-05-29 02:19:37.000000000 +0200
+++ new/qtwebsockets-everywhere-src-6.9.2/src/websockets/qwebsockets_global.h   
2025-08-18 01:36:16.000000000 +0200
@@ -1,5 +1,6 @@
 // Copyright (C) 2016 Kurt Pattyn <pattyn.k...@gmail.com>.
 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR 
GPL-2.0-only OR GPL-3.0-only
+// Qt-Security score:significant reason: default
 
 #ifndef QWEBSOCKETSGLOBAL_H
 #define QWEBSOCKETSGLOBAL_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtwebsockets-everywhere-src-6.9.1/src/websockets/qwebsocketserver.cpp 
new/qtwebsockets-everywhere-src-6.9.2/src/websockets/qwebsocketserver.cpp
--- old/qtwebsockets-everywhere-src-6.9.1/src/websockets/qwebsocketserver.cpp   
2025-05-29 02:19:37.000000000 +0200
+++ new/qtwebsockets-everywhere-src-6.9.2/src/websockets/qwebsocketserver.cpp   
2025-08-18 01:36:16.000000000 +0200
@@ -1,5 +1,6 @@
 // Copyright (C) 2016 Kurt Pattyn <pattyn.k...@gmail.com>.
 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR 
GPL-2.0-only OR GPL-3.0-only
+// Qt-Security score:significant reason:default
 
 /*!
     \class QWebSocketServer
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtwebsockets-everywhere-src-6.9.1/src/websockets/qwebsocketserver.h 
new/qtwebsockets-everywhere-src-6.9.2/src/websockets/qwebsocketserver.h
--- old/qtwebsockets-everywhere-src-6.9.1/src/websockets/qwebsocketserver.h     
2025-05-29 02:19:37.000000000 +0200
+++ new/qtwebsockets-everywhere-src-6.9.2/src/websockets/qwebsocketserver.h     
2025-08-18 01:36:16.000000000 +0200
@@ -1,5 +1,6 @@
 // Copyright (C) 2016 Kurt Pattyn <pattyn.k...@gmail.com>.
 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR 
GPL-2.0-only OR GPL-3.0-only
+// Qt-Security score:significant reason:default
 
 #ifndef QWEBSOCKETSERVER_H
 #define QWEBSOCKETSERVER_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtwebsockets-everywhere-src-6.9.1/src/websockets/qwebsocketserver_p.cpp 
new/qtwebsockets-everywhere-src-6.9.2/src/websockets/qwebsocketserver_p.cpp
--- old/qtwebsockets-everywhere-src-6.9.1/src/websockets/qwebsocketserver_p.cpp 
2025-05-29 02:19:37.000000000 +0200
+++ new/qtwebsockets-everywhere-src-6.9.2/src/websockets/qwebsocketserver_p.cpp 
2025-08-18 01:36:16.000000000 +0200
@@ -1,5 +1,6 @@
 // Copyright (C) 2016 Kurt Pattyn <pattyn.k...@gmail.com>.
 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR 
GPL-2.0-only OR GPL-3.0-only
+// Qt-Security score:critical reason:network-protocol
 
 #include "qwebsocketserver.h"
 #include "qwebsocketserver_p.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtwebsockets-everywhere-src-6.9.1/src/websockets/qwebsocketserver_p.h 
new/qtwebsockets-everywhere-src-6.9.2/src/websockets/qwebsocketserver_p.h
--- old/qtwebsockets-everywhere-src-6.9.1/src/websockets/qwebsocketserver_p.h   
2025-05-29 02:19:37.000000000 +0200
+++ new/qtwebsockets-everywhere-src-6.9.2/src/websockets/qwebsocketserver_p.h   
2025-08-18 01:36:16.000000000 +0200
@@ -1,5 +1,6 @@
 // Copyright (C) 2016 Kurt Pattyn <pattyn.k...@gmail.com>.
 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR 
GPL-2.0-only OR GPL-3.0-only
+// Qt-Security score:significant reason:default
 
 #ifndef QWEBSOCKETSERVER_P_H
 #define QWEBSOCKETSERVER_P_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtwebsockets-everywhere-src-6.9.1/tests/auto/websockets/qwebsocket/tst_qwebsocket.cpp
 
new/qtwebsockets-everywhere-src-6.9.2/tests/auto/websockets/qwebsocket/tst_qwebsocket.cpp
--- 
old/qtwebsockets-everywhere-src-6.9.1/tests/auto/websockets/qwebsocket/tst_qwebsocket.cpp
   2025-05-29 02:19:37.000000000 +0200
+++ 
new/qtwebsockets-everywhere-src-6.9.2/tests/auto/websockets/qwebsocket/tst_qwebsocket.cpp
   2025-08-18 01:36:16.000000000 +0200
@@ -163,6 +163,7 @@
     void incomingFrameTooLong();
     void testingFrameAndMessageSizeApi();
     void customHeader();
+    void splitUtf8Sequence();
 };
 
 tst_QWebSocket::tst_QWebSocket()
@@ -1398,6 +1399,33 @@
     QVERIFY(connectedSpy.wait());
 }
 
+void tst_QWebSocket::splitUtf8Sequence()
+{
+    EchoServer echoServer;
+    QWebSocket socket;
+    socket.setOutgoingFrameSize(10ull);
+    // prepare payload, just a bunch of bytes and a sequence at the end that 
will be split across
+    // two frames
+    QString payload;
+    constexpr qsizetype Overhead = 2; // overhead for this message
+    payload.reserve(qsizetype(socket.outgoingFrameSize() - Overhead) + 2);
+    payload.assign(qsizetype(socket.outgoingFrameSize() - Overhead) - 1, u'a');
+    payload += u"🙂";
+    QSignalSpy socketConnectedSpy(&socket, &QWebSocket::connected);
+    QSignalSpy serverConnectedSpy(&echoServer, 
qOverload<QUrl>(&EchoServer::newConnection));
+    QSignalSpy messageReceivedSpy(&socket, &QWebSocket::textMessageReceived);
+    QSignalSpy errorOccurredSpy(&socket, &QWebSocket::errorOccurred);
+    const QUrl url = QUrl(u"ws://127.0.0.1:"_s + 
QString::number(echoServer.port()));
+    socket.open(url);
+    QTRY_COMPARE(socketConnectedSpy.size(), 1);
+    QTRY_COMPARE(serverConnectedSpy.size(), 1);
+    qint64 bytesWritten = socket.sendTextMessage(payload);
+    QCOMPARE(bytesWritten, payload.size() + Overhead);
+    QTRY_COMPARE(messageReceivedSpy.size(), 1);
+    QTRY_COMPARE(errorOccurredSpy.size(), 0);
+    QCOMPARE(messageReceivedSpy.at(0).at(0).toString(), payload);
+}
+
 QTEST_MAIN(tst_QWebSocket)
 
 #include "tst_qwebsocket.moc"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtwebsockets-everywhere-src-6.9.1/tests/auto/websockets/qwebsocketserver/tst_qwebsocketserver.cpp
 
new/qtwebsockets-everywhere-src-6.9.2/tests/auto/websockets/qwebsocketserver/tst_qwebsocketserver.cpp
--- 
old/qtwebsockets-everywhere-src-6.9.1/tests/auto/websockets/qwebsocketserver/tst_qwebsocketserver.cpp
       2025-05-29 02:19:37.000000000 +0200
+++ 
new/qtwebsockets-everywhere-src-6.9.2/tests/auto/websockets/qwebsocketserver/tst_qwebsocketserver.cpp
       2025-08-18 01:36:16.000000000 +0200
@@ -94,6 +94,7 @@
     void tst_scheme(); // qtbug-55927
     void tst_handleConnection();
     void tst_handshakeTimeout(); // qtbug-63312, qtbug-57026
+    void gentleClose();
     void multipleFrames();
 
 private:
@@ -861,6 +862,37 @@
     }
 }
 
+void tst_QWebSocketServer::gentleClose()
+{
+    QWebSocketServer server("gentleClose", QWebSocketServer::NonSecureMode);
+    QSignalSpy serverConnectionSpy(&server, &QWebSocketServer::newConnection);
+    QVERIFY(server.listen());
+
+    QWebSocket client;
+    QSignalSpy connectedSpy(&client, &QWebSocket::connected);
+    QSignalSpy clientDisconnectedSpy(&client, &QWebSocket::disconnected);
+    QSignalSpy clientErrorSpy(&client, &QWebSocket::errorOccurred);
+    client.open(server.serverUrl());
+
+    QVERIFY(serverConnectionSpy.wait());
+    QVERIFY(connectedSpy.wait());
+    QWebSocket *serverSocket = server.nextPendingConnection();
+    QSignalSpy disconnectedSpy(serverSocket, &QWebSocket::disconnected);
+    QSignalSpy serverErrorSpy(serverSocket, &QWebSocket::errorOccurred);
+
+    client.close(QWebSocketProtocol::CloseCodeNormal);
+
+    QVERIFY(disconnectedSpy.wait());
+    QVERIFY(clientDisconnectedSpy.wait());
+
+    QVERIFY(client.closeCode() != QWebSocketProtocol::CloseCodeGoingAway);
+    QVERIFY(serverSocket->closeCode() != 
QWebSocketProtocol::CloseCodeGoingAway);
+    QVERIFY(client.error() != QAbstractSocket::RemoteHostClosedError);
+    QVERIFY(serverSocket->error() != QAbstractSocket::RemoteHostClosedError);
+    QCOMPARE(clientErrorSpy.count(), 0);
+    QCOMPARE(serverErrorSpy.count(), 0);
+}
+
 void tst_QWebSocketServer::multipleFrames()
 {
     QWebSocketServer server(QString(), QWebSocketServer::NonSecureMode);

Reply via email to