diff options
author | Anuj Solanki <anuj603362@gmail.com> | 2024-07-03 17:28:05 +0200 |
---|---|---|
committer | Jan-Simon Moeller <jsmoeller@linuxfoundation.org> | 2024-08-30 11:53:02 +0000 |
commit | 8607d696eca482e025a9ca30ee992707211d1f11 (patch) | |
tree | ca4342a7db0465199119d1c24bf3e824a0f0a1c3 /meta-offline-voice-agent | |
parent | 65f1ec44778eaa59c2c74bf5fbb22a670b6231a0 (diff) |
Integrate Whisper AI into AGL Voice Agent and Update Dependencies
V1:
- Removed the following recipes from meta-offline-voiceagent:
- python3-scipy
- python3-scikit-learn
- python3-openblas
- python3-lapack
- python3-numpy
- Updated to use meta-python-ai layer for:
- python3-scipy
- python3-scikit-learn
- python3-openblas
- python3-lapack
- python3-numpy
- python3-pytorch
- Added all the required recipes for Whisper AI:
- Included recipes for Whisper AI base and tiny model
- Updated recipes for:
- python3-uvloop
- python3-python-crfsuite
V2:
- Remove vulkan from DISTRO_FEATURES as it has become coditional
at upstream
- Fix flutter_voiceassistant service
- Update recipe of llvmlite to include the wheel for aarch64 also.
V3:
- Fix llvmlite recipe and some patches
- Removes rasa and its dependencies
- Fix agl-service-voiceagent.service
Bug-AGL: SPEC-5200
Change-Id: I429e7d4b98fbbe1a4f8c1341ac8918d7d177b382
Signed-off-by: Anuj Solanki <anuj603362@gmail.com>
Diffstat (limited to 'meta-offline-voice-agent')
69 files changed, 4989 insertions, 1162 deletions
diff --git a/meta-offline-voice-agent/README.md b/meta-offline-voice-agent/README.md index 739654c0..c3cc3098 100644 --- a/meta-offline-voice-agent/README.md +++ b/meta-offline-voice-agent/README.md @@ -24,6 +24,7 @@ This layer is currently in development and integrates the Vosk, Snips (Inference ## External Dependencies This layer depends on the following external layers: - [meta-tensorflow](https://git.yoctoproject.org/meta-tensorflow) +- [meta-python-ai](https://github.com/zboszor/meta-python-ai/tree/scarthgap) ## Working Features The following features are currently working in the `meta-offline-voice-agent` layer: @@ -82,6 +83,7 @@ Currently, the following targets are fully supported: - QEMU x86-64 (work in progress) ## Maintainers +- Anuj Solanki <anuj603362@gmail.com> - Malik Talha <talhamalik727x@gmail.com> - Aman Arora <aman.arora9848@gmail.com> diff --git a/meta-offline-voice-agent/conf/layer.conf b/meta-offline-voice-agent/conf/layer.conf index 83ed05d4..8d231608 100644 --- a/meta-offline-voice-agent/conf/layer.conf +++ b/meta-offline-voice-agent/conf/layer.conf @@ -16,3 +16,6 @@ BBFILES_DYNAMIC += " \ agldemo:${LAYERDIR}/dynamic-layers/meta-agl-demo/*/*/*.bb \ agldemo:${LAYERDIR}/dynamic-layers/meta-agl-demo/*/*/*.bbappend \ " + +# add ISSL license +LICENSE_PATH += "${LAYERDIR}/licenses" diff --git a/meta-offline-voice-agent/licenses/EULA b/meta-offline-voice-agent/licenses/EULA new file mode 100644 index 00000000..549f78e1 --- /dev/null +++ b/meta-offline-voice-agent/licenses/EULA @@ -0,0 +1,392 @@ +Intel End User License Agreement for Developer Tools (Version October 2021) + +IMPORTANT NOTICE - PLEASE READ AND AGREE BEFORE DOWNLOADING, INSTALLING, COPYING +OR USING + +This Agreement is between you, or the company or other legal entity that you +represent and warrant you have the legal authority to bind, (each, "You" or +"Your") and Intel Corporation and its subsidiaries (collectively, "Intel") +regarding Your use of the Materials. By downloading, installing, copying or +using the Materials, You agree to be bound by the terms of this Agreement. If +You do not agree to the terms of this Agreement, or do not have legal authority +or required age to agree to them, do not download, install, copy or use the +Materials. + +1. LICENSE DEFINITIONS. + + A. "Cloud Provider" means a third party service provider offering a cloud-based + platform, infrastructure, application or storage services, such as Microsoft + Azure or Amazon Web Services, which You may only utilize to host the + Materials subject to the restrictions set forth in Section 2.3 B. + + B. "Derivative Work" means a derivative work, as defined in 17 U.S.C. 101, of + the Source Code. + + C. "Executable Code" means computer programming code in binary form suitable + for machine execution by a processor without the intervening steps of + interpretation or compilation. + + D. "Materials" mean the software, documentation, the software product serial + number, and other collateral, including any updates, made available to You + by Intel under this Agreement. Materials include Redistributables, + Executable Code, Source Code, Sample Source Code, and Pre-Release Materials, + but do not include Third Party Software. + + E. "Pre-Release Materials" mean the Materials, or portions of the Materials, + that are identified (in the product release notes, on Intel's download + website for the Materials or elsewhere) or labeled as pre-release, + prototype, alpha or beta code and, as such, are deemed to be pre-release + code (i) which may not be fully functional or tested and may contain bugs or + errors; (ii) which Intel may substantially modify in its development of a + production version; or (iii) for which Intel makes no assurances that it + will ever develop or make a production version generally available. + Pre-Release Materials are subject to the terms of Section 3.2. + + F. "Reciprocal Open Source Software" means any software that is subject to a + license which requires that (i) it must be distributed in source code form; + (ii) it must be licensed under the same open source license terms; and (iii) + its derivative works must be licensed under the same open source license + terms. Examples of this type of license are the GNU General Public License + or the Mozilla Public License. + + G. "Redistributables" mean the files (if any) listed in the "redist.txt," + "redist-rt.txt" or similarly-named text files that may be included in the + Materials. Redistributables include Sample Source Code. + + H. "Sample Source Code" means those portions of the Materials that are Source + Code and are identified as sample code. Sample Source Code may not have been + tested or validated by Intel and is provided purely as a programming example. + + I. "Source Code" means the software portion of the Materials provided in human + readable format. + + J. "Third Party Software" mean the files (if any) listed in the + "third-party-software.txt" or other similarly-named text file that may be + included in the Materials for the applicable software. Third Party Software + is subject to the terms of Section 2.2. + + K. "Your Product" means one or more applications, products or projects + developed by or for You using the Materials. + +2. LICENSE GRANTS. + +2.1 License to the Materials. Subject to the terms and conditions of this + Agreement, Intel grants You a non-exclusive, worldwide, non-assignable, + non-sublicensable, limited right and license under its copyrights, to: + + A. reproduce internally a reasonable number of copies of the Materials for Your + personal or business use; + + B. use the Materials solely for Your personal or business use to develop Your + Product, in accordance with the documentation included as part of the + Materials; + + C. modify or create Derivative Works only of the Redistributables, or any + portions, that are provided to You in Source Code; + + D. distribute (directly and through Your distributors, resellers, and other + channel partners, if applicable), the Redistributables, including any + modifications to or Derivative Works of the Redistributables or any portions + made pursuant to Section 2.1.C subject to the following conditions: + + (1) Any distribution of the Redistributables must only be as part of Your + Product which must add significant primary functionality different than + that of the Redistributables themselves; + + (2) You must only distribute the Redistributables originally provided to You + by Intel only in Executable Code subject to a license agreement that + prohibits reverse engineering, decompiling or disassembling the + Redistributables; + + (3) This distribution right includes a limited right to sublicense only the + Intel copyrights in the Redistributables and only to the extent necessary + to perform, display, and distribute the Redistributables (including Your + modifications and Derivative Works of the Redistributables provided in + Source Code) solely as incorporated in Your Product; and + + (4) You: (i) will be solely responsible to Your customers for any update, + support obligation or other obligation or liability which may arise from + the distribution of Your Product, (ii) will not make any statement that + Your Product is "certified" or that its performance is guaranteed by Intel + or its suppliers, (iii) will not use Intel's or its suppliers' names or + trademarks to market Your Product, (iv) will comply with any additional + restrictions which are included in the text files with the + Redistributables and in Section 3 below, (v) will indemnify, hold + harmless, and defend Intel and its suppliers from and against any claims + or lawsuits, costs, damages, and expenses, including attorney's fees, that + arise or result from (a) Your modifications or Derivative Works of the + Materials or (b) Your distribution of Your Product. + +2.2 Third Party Software. Third Party Software, even if included with the + distribution of the Materials, may be governed by separate license terms, + including without limitation, third party license terms, open source + software notices and terms, and/or other Intel software license terms. These + separate license terms solely govern Your use of the Third Party Software. + +2.3 Third Party Use. + + A. If You are an entity, Your contractors may use the Materials under the + license specified in Section 2, provided: (i) their use of the Materials is + solely on behalf of and in support of Your business, (ii) they agree to the + terms and conditions of this Agreement, and (iii) You are solely responsible + for their use, misuse or disclosure of the Materials. + + B. You may utilize a Cloud Provider to host the Materials for You, provided: + (i) the Cloud Provider may only host the Materials for Your exclusive use + and may not use the Materials for any other purpose whatsoever, including the + restriction set forth in Section 3.1(xi); (ii) the Cloud Provider's use of + the Materials must be solely on behalf of and in support of Your Product, and + (iii) You will indemnify, hold harmless, and defend Intel and its suppliers + from and against any claims or lawsuits, costs, damages, and expenses, + including attorney's fees, that arise or result from Your Cloud Provider's + use, misuse or disclosure of the Materials. + +3. LICENSE CONDITIONS. + +3.1 Restrictions. Except as expressly provided in this Agreement, You may NOT: + (i) use, reproduce, disclose, distribute, or publicly display the + Materials; (ii) share, publish, rent or lease the Materials to any third + party; (iii) assign this Agreement or transfer the Materials; (iv) modify, + adapt, or translate the Materials in whole or in part; (v) reverse engineer, + decompile, or disassemble the Materials, or otherwise attempt to derive the + source code for the software; (vi) work around any technical limitations in + the Materials; (vii) distribute, sublicense or transfer any Source Code, + modifications or Derivative Works of any Source Code to any third party; + (viii) remove, minimize, block or modify any notices of Intel or its + suppliers in the Materials; (ix) include the Redistributables in malicious, + deceptive, or unlawful programs or products or use the Materials in any way + that is against the law; (x) modify, create a Derivative Work, link, or + distribute the Materials so that any part of it becomes Reciprocal Open + Source Software; (xi) use the Materials directly or indirectly for SaaS + services or service bureau purposes (i.e., a service that allows use of or + access to the Materials by a third party as part of that service, such as + the salesforce.com service business model). + +3.2 Pre-Release Materials. If You receive Pre-Release Materials, You may + reproduce a reasonable number of copies and use the Pre-Release Materials + for evaluation and testing purposes only. You may not (i) modify or + incorporate the Pre-Release Materials into Your Product; (ii) continue to + use the Pre-Release Materials once a commercial version is released; or + (iii) disclose to any third party any benchmarks, performance results, or + other information relating to the Pre-Release Materials. Intel may waive + these restrictions in writing at its sole discretion; however, if You decide + to use the Pre-Release Materials in Your Product (even with Intel's waiver), + You acknowledge and agree that You are fully responsible for any and all + issues that result from such use. + +3.3 Safety-Critical, and Life-Saving Applications; Indemnity. The Materials may + provide information relevant to safety-critical applications + ("Safety-Critical Applications") to allow compliance with functional safety + standards or requirements. You acknowledge and agree that safety is Your + responsibility. To the extent You use the Materials to create, or as part + of, products used in Safety-Critical Applications, it is Your responsibility + to design, manage, and ensure that there are system-level safeguards to + anticipate, monitor, and control system failures, and You agree that You are + solely responsible for all applicable regulatory standards and + safety-related requirements concerning Your use of the Materials in Safety + Critical Applications. + + Should You use the Materials for Safety-Critical Applications or in any type + of a system or application in which the failure of the Materials could + create a situation where personal injury or death may occur (e.g., medical + systems, life-sustaining or life-saving systems) ("Life-Saving + Applications"), You agree to indemnify, defend, and hold Intel and its + representatives harmless against any claims or lawsuits, costs, damages, and + expenses, including reasonable attorney fees, arising in any way out of Your + use of the Materials in Safety-Critical Applications or Life-Saving + Applications and claims of product liability, personal injury or death + associated with those applications; even if such claims allege that Intel + was negligent or strictly liable regarding the design or manufacture of the + Materials or its failure to warn regarding the Materials. + +3.4 Media Format Codecs and Digital Rights Management. You acknowledge and agree + that Your use of the Materials or distribution of the Redistributables with + Your Product as permitted by this Agreement may require You to procure + license(s) from third parties that may hold intellectual property rights + applicable to any media decoding, encoding or transcoding technology (e.g., + the use of an audio or video codec) and/or digital rights management + capabilities of the Materials, if any. Should any such additional licenses + be required, You are solely responsible for obtaining any such licenses and + agree to obtain any such licenses at Your own expense. + +4. DATA COLLECTION AND PRIVACY. + +4.1 Data Collection. The Materials may generate and collect anonymous data + and/or provisioning data about the Materials and/or the development + environment and transmit the data to Intel as a one-time event during + installation. Optional data may also be collected by the Materials, however, + You will be provided notice of the request to collect optional data and no + optional data will be collected without Your consent. All data collection by + Intel is performed pursuant to relevant privacy laws, including notice and + consent requirements. + +4.2 Intel's Privacy Notice. Intel is committed to respecting Your privacy. To + learn more about Intel's privacy practices, please visit + http://www.intel.com/privacy. + +5. OWNERSHIP. Title to the Materials and all copies remain with Intel or its + suppliers. The Materials are protected by intellectual property rights, + including without limitation, United States copyright laws and international + treaty provisions. You will not remove any copyright or other proprietary + notices from the Materials. Except as expressly provided herein, no license + or right is granted to You directly or by implication, inducement, estoppel + or otherwise; specifically, Intel does not grant any express or implied right + to You under Intel patents, copyrights, trademarks, or trade secrets. + +6. NO WARRANTY AND NO SUPPORT. + +6.1 No Warranty. Disclaimer. Intel disclaims all warranties of any kind and the + terms and remedies provided in this Agreement are instead of any other + warranty or condition, express, implied or statutory, including those + regarding merchantability, fitness for any particular purpose, + non-infringement or any warranty arising out of any course of dealing, usage + of trade, proposal, specification or sample. Intel does not assume (and does + not authorize any person to assume on its behalf) any liability. + +6.2 No Support; Priority Support. Intel may make changes to the Materials, or to + items referenced therein, at any time without notice, but is not obligated + to support, update or provide training for the Materials under the terms of + this Agreement. Intel offers free community and paid priority support + options. More information on these support options can be found at: + https://software.intel.com/content/www/us/en/develop/support/priority-support.html. + +7. LIMITATION OF LIABILITY. + +7.1 Intel will not be liable for any of the following losses or damages (whether + such losses or damages were foreseen, foreseeable, known or otherwise): (i) + loss of revenue; (ii) loss of actual or anticipated profits; (iii) loss of + the use of money; (iv) loss of anticipated savings; (v) loss of business; + (vi) loss of opportunity; (vii) loss of goodwill; (viii) loss of use of the + Materials; (ix) loss of reputation; (x) loss of, damage to, or corruption of + data; or (xi) any indirect, incidental, special or consequential loss of + damage however caused (including loss or damage of the type specified in + this Section 7). + +7.2 Intel's total cumulative liability to You, including for direct damages for + claims relating to this Agreement, and whether for breach of contract, + negligence, or for any other reason, will not exceed $100. + +7.3 You acknowledge that the limitations of liability provided in this Section 7 + are an essential part of this Agreement. You agree that the limitations of + liability provided in this Agreement with respect to Intel will be conveyed + to and made binding upon any customer of Yours that acquires the + Redistributables. + +8. USER SUBMISSIONS. Should you provide Intel with comments, modifications, + corrections, enhancements or other input ("Feedback") related to the + Materials, Intel will be free to use, disclose, reproduce, license or + otherwise distribute or exploit the Feedback in its sole discretion without + any obligations or restrictions of any kind, including without limitation, + intellectual property rights or licensing obligations. If You wish to provide + Intel with information that You intend to be treated as confidential + information, Intel requires that such confidential information be provided + pursuant to a non-disclosure agreement ("NDA"); please contact Your Intel + representative to ensure the proper NDA is in place. + +9. NON-DISCLOSURE. Information provided by Intel to You may include information + marked as confidential. You must treat such information as confidential under + the terms of the applicable NDA between Intel and You. If You have not + entered into an NDA with Intel, You must not disclose, distribute or make use + of any information marked as confidential, except as expressly authorized in + writing by Intel. Intel retains all rights in and to its confidential + information specifications, designs, engineering details, discoveries, + inventions, patents, copyrights, trademarks, trade secrets, and other + proprietary rights relating to the Materials. Any breach by You of the + confidentiality obligations provided for in this Section 9 will cause + irreparable injury to Intel for which money damages may be inadequate to + compensate Intel for losses arising from such a breach. Intel may obtain + equitable relief, including injunctive relief, if You breach or threaten to + breach Your confidentiality obligations. + +10. TERM AND TERMINATION. This Agreement becomes effective on the date You + accept this Agreement and will continue until terminated as provided for in + this Agreement. The term for any Pre-Release Materials terminates upon + release of a commercial version. This Agreement will terminate if You are in + breach of any of its terms and conditions. Upon termination, You will + promptly destroy the Materials and all copies. In the event of termination of + this Agreement, Your license to any Redistributables distributed by You in + accordance with the terms and conditions of this Agreement, prior to the + effective date of such termination, will survive any such termination of this + Agreement. Sections 1, 2.1.D(4)(v), 2.2, 2.3.A(iii), 2.3.B(iii), 3.3, 5, 6, + 7, 8, 9, 10 (with respect to these survival provisions in the last sentence), + and 12 will survive expiration or termination of this Agreement. + +11. U.S. GOVERNMENT RESTRICTED RIGHTS. The technical data and computer software + covered by this license is a "Commercial Item," as such term is defined by + the FAR 2.101 (48 C.F.R. 2.101) and is "commercial computer software" and + "commercial computer software documentation" as specified under FAR 12.212 + (48 C.F.R. 12.212) or DFARS 227.7202 (48 C.F.R. 227.7202), as applicable. + This commercial computer software and related documentation is provided to + end users for use by and on behalf of the U.S. Government with only those + rights as are granted to all other end users pursuant to the terms and + conditions of this Agreement. + +12. GENERAL PROVISIONS. + +12.1 ENTIRE AGREEMENT. This Agreement contains the complete and exclusive + agreement and understanding between the parties concerning the subject + matter of this Agreement, and supersedes all prior and contemporaneous + proposals, agreements, understanding, negotiations, representations, + warranties, conditions, and communications, oral or written, between the + parties relating to the same subject matter. Each party acknowledges and + agrees that in entering into this Agreement it has not relied on, and will + not be entitled to rely on, any oral or written representations, + warranties, conditions, understanding, or communications between the + parties that are not expressly set forth in this Agreement. The express + provisions of this Agreement control over any course of performance, course + of dealing, or usage of the trade inconsistent with any of the provisions + of this Agreement. The provisions of this Agreement will prevail + notwithstanding any different, conflicting, or additional provisions that + may appear on any purchase order, acknowledgement, invoice, or other + writing issued by either party in connection with this Agreement. No + modification or amendment to this Agreement will be effective unless in + writing and signed by authorized representatives of each party, and must + specifically identify this Agreement by its title and version (e.g., "Intel + End User License Agreement for Developer Tools (Version October 2021)"); + except that Intel may make changes to this Agreement as it distributes new + versions of the Materials. When changes are made, Intel will make a new + version of the Agreement available on its website. If You received a copy + of this Agreement translated into another language, the English language + version of this Agreement will prevail in the event of any conflict between + versions. + +12.2 EXPORT. You acknowledge that the Materials and all related technical + information are subject to export controls and you agree to comply with all + laws and regulations of the United States and other applicable governments + governing export, re-export, import, transfer, distribution, and use of the + Materials. In particular, but without limitation, the Materials may not be + exported or re-exported (i) into any U.S. embargoed countries or (ii) to + any person or entity listed on a denial order published by the U.S. + government or any other applicable governments. By using the Materials, You + represent and warrant that You are not located in any such country or on + any such list. You also agree that You will not use the Materials for, or + sell or transfer them to a third party who is known or suspected to be + involved in, any purposes prohibited by the U.S. government or other + applicable governments, including, without limitation, the development, + design, manufacture, or production of nuclear, missile, chemical or + biological weapons. + +12.3 GOVERNING LAW, JURISDICTION, AND VENUE. All disputes arising out of or + related to this Agreement, whether based on contract, tort, or any other + legal or equitable theory, will in all respects be governed by, and + construed and interpreted under, the laws of the United States of America + and the State of Delaware, without reference to conflict of laws + principles. The parties agree that the United Nations Convention on + Contracts for the International Sale of Goods (1980) is specifically + excluded from and will not apply to this Agreement. All disputes arising + out of or related to this Agreement, whether based on contract, tort, or + any other legal or equitable theory, will be subject to the exclusive + jurisdiction of the courts of the State of Delaware or of the Federal + courts sitting in that State. Each party submits to the personal + jurisdiction of those courts and waives all objections to that jurisdiction + and venue for those disputes. + +12.4 SEVERABILITY. The parties intend that if a court holds that any provision + or part of this Agreement is invalid or unenforceable under applicable law, + the court will modify the provision to the minimum extent necessary to make + it valid and enforceable, or if it cannot be made valid and enforceable, + the parties intend that the court will sever and delete the provision or + part from this Agreement. Any change to or deletion of a provision or part + of this Agreement under this Section will not affect the validity or + enforceability of the remainder of this Agreement, which will continue in + full force and effect. diff --git a/meta-offline-voice-agent/licenses/INTELoneAPIDPCEULA b/meta-offline-voice-agent/licenses/INTELoneAPIDPCEULA new file mode 100644 index 00000000..580d059a --- /dev/null +++ b/meta-offline-voice-agent/licenses/INTELoneAPIDPCEULA @@ -0,0 +1,1815 @@ +<html>
+
+<head>
+<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
+<meta name=Generator content="Microsoft Word 15 (filtered)">
+<style>
+<!--
+ /* Font Definitions */
+ @font-face
+ {font-family:"Cambria Math";
+ panose-1:2 4 5 3 5 4 6 3 2 4;}
+@font-face
+ {font-family:Calibri;
+ panose-1:2 15 5 2 2 2 4 3 2 4;}
+@font-face
+ {font-family:Consolas;
+ panose-1:2 11 6 9 2 2 4 3 2 4;}
+@font-face
+ {font-family:Tahoma;
+ panose-1:2 11 6 4 3 5 4 4 2 4;}
+ /* Style Definitions */
+ p.MsoNormal, li.MsoNormal, div.MsoNormal
+ {margin-top:0in;
+ margin-right:0in;
+ margin-bottom:8.0pt;
+ margin-left:0in;
+ line-height:107%;
+ font-size:11.0pt;
+ font-family:"Calibri",sans-serif;}
+p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
+ {mso-style-link:"Plain Text Char";
+ margin:0in;
+ font-size:10.5pt;
+ font-family:Consolas;}
+span.PlainTextChar
+ {mso-style-name:"Plain Text Char";
+ mso-style-link:"Plain Text";
+ font-family:Consolas;}
+.MsoChpDefault
+ {font-family:"Calibri",sans-serif;}
+.MsoPapDefault
+ {margin-bottom:8.0pt;
+ line-height:107%;}
+@page WordSection1
+ {size:8.5in 11.0in;
+ margin:1.0in 75.1pt 1.0in 75.05pt;}
+div.WordSection1
+ {page:WordSection1;}
+-->
+</style>
+
+</head>
+
+<body lang=EN-US style='word-wrap:break-word'>
+
+<div class=WordSection1>
+
+<p class=MsoPlainText><span style='font-size:10.0pt;font-family:"Arial",sans-serif'>
+<p align="center"><b>Licensing Information for Intel(R) Software Development Tools</b></p>
+<br>
+The following list of Intel(R) Software Development Tools and associated licenses
+is for reference only. The controlling license for your Intel(R) Software
+Development Tools will be bundled with the distribution of the tool.<br>
+<br>
+Additionally, third party software, even if included with the distribution of
+the Intel(R) Software Development Tools, may be governed by separate license
+terms, including without limitation, third party license terms, open source
+software notices and terms, and/or other Intel software license terms. These
+separate license terms solely govern your use of the third party software.
+Additional information on third party software can be found in the Section
+entitled 'Toolkits for oneAPI and Associated Third Party Program Files.'<br>
+<br>
+<br>
+<p><b>Intel(R) Software Development Tools Licensed under the Intel End User License
+Agreement for Developer Tools (Version April 2023)</b></p>
+<ul>
+<li>Intel(R) Advisor</li>
+<li>Intel(R) DPC++ Compatibility Tool</li>
+<li>Intel(R) Fortran Compiler</li>
+<li>Intel(R) Inspector</li>
+<li>Intel(R) oneAPI DPC++/C++ Compiler</li>
+<li>Intel(R) Software Installer</li>
+<li>Intel(R) Trace Analyzer and Collector</li>
+<li>Intel(R) VTune(TM) Profiler</li>
+</ul>
+<p><b>Intel(R) Software Development Tools Licensed under the Intel Simplified Software
+License (Version October 2022)</b></p>
+<ul>
+ <li>Intel(R) Distribution for Python*</li>
+ <li>Intel(R) Integrated Performance Primitives (Intel(R) IPP)</li>
+ <li>Intel(R) Integrated Performance Primitives Cryptography (Intel(R) IPP Cryptography)</li>
+ <li>Intel(R) oneAPI Math Kernel Library (oneMKL)</li>
+ <li>Intel(R) MPI Library</li>
+ <li>Intel(R) oneAPI Collective Communications Library (oneCCL) (also available under Apache 2.0)</li>
+ <li>Intel(R) oneAPI Data Analytics Library (oneDAL) (also available under Apache 2.0)</li>
+ <li>Intel(R) oneAPI Threading Building Blocks (oneTBB) (also available under Apache 2.0)</li>
+</ul>
+<p><b>Intel(R) Software Development Tools Licensed under Open Source Licenses Apache
+License, Version 2.0</b></p>
+<ul>
+ <li>Intel(R) Distribution of Modin*</li>
+ <li>Intel(R) Embree</li>
+ <li>Intel(R) Neural Compressor</li>
+ <li>Intel(R) oneAPI Collective Communications Library (oneCCL)</li>
+ <li>Intel(R) oneAPI Data Analytics Library (oneDAL)</li>
+ <li>Intel(R) oneAPI Deep Neural Network Library (oneDNN)</li>
+ <li>Intel(R) oneAPI Threading Building Blocks (oneTBB)</li>
+ <li>Intel(R) Open Image Denoise</li>
+ <li>Intel(R) Open Path Guiding Library (Intel(R) Open PGL)</li>
+ <li>Intel(R) Open Volume Kernel Library (Intel(R) Open VKL)</li>
+ <li>Intel(R) Optimization for TensorFlow*</li>
+ <li>Intel(R) OSPRay</li>
+ <li>Intel(R) OSPRay Studio</li>
+ <li>Rendering Toolkit Utilities</li>
+</ul>
+<p><b>Apache License, Version 2.0 with LLVM Exception</b></p>
+<ul>
+ <li>Intel(R) oneAPI DPC++ Library (oneDPL)</li>
+ <li>Intel(R) oneAPI DPC++/C++ Compiler</li>
+</ul>
+<p><b>3-Clause BSD</b></p>
+<ul>
+ <li>Diagnostics Utility for oneAPI</li>
+ <li>Intel(R) Implicit SPMD Program Compiler (Intel(R) ISPC)</li>
+ <li>Intel(R) Optimization for PyTorch*</li>
+</ul>
+<p><b>Eclipse Public License - v 2.0</b></p>
+<ul>
+ <li>Intel(R) Dev Utilities</li>
+</ul>
+<p><b>The GNU General Public License v3.0</b></p>
+<ul>
+ <li>Intel(R) Distribution for GDB*</li>
+</ul>
+<br>
+<br>
+<p align="center"><b>License Text Files (subject to change)</p></b>
+<p><b><u>Intel End User License Agreement for Developer Tools (Version April 2023)</u></b></p>
+<b>IMPORTANT NOTICE - PLEASE READ AND AGREE BEFORE DOWNLOADING, INSTALLING, COPYING
+OR USING</b><br>
+<br>
+This Agreement is between you, or the company or other legal entity that you represent and warrant
+you have the legal authority to bind, (each, <b>"You"</b> or <b>"Your"</b>) and Intel Corporation and its subsidiaries
+(collectively, <b>"Intel"</b>) regarding Your use of the Materials. By downloading, installing, copying or using
+the Materials, You agree to be bound by the terms of this Agreement. If You do not agree to the terms of
+this Agreement, or do not have legal authority or required age to agree to them, do not download, install,
+copy or use the Materials.<br>
+<br>
+1. <b>LICENSE DEFINITIONS.</b><br>
+<br>
+A. <b>"Cloud Provider"</b> means a third party service provider offering a cloud-based platform,
+infrastructure, application or storage services, such as Microsoft Azure, Google Cloud or Amazon
+Web Services, which You may only utilize to host the Materials subject to the restrictions set forth
+in Section 2.3 B.<br>
+<br>
+B. <b>"Derivative Work"</b> means a derivative work, as defined in 17 U.S.C. � 101, of the Source Code.<br>
+<br>
+C. <b>"Executable Code"</b> means computer programming code in binary form suitable for machine
+execution by a processor without the intervening steps of interpretation or compilation.<br>
+<br>
+D. <b>"Materials"</b> mean the software, documentation, the software product serial number or product
+keys, and other collateral, including any updates, made available to You by Intel under this
+Agreement. Materials include Redistributables, Executable Code, Source Code, Sample Source
+Code, and Pre-Release Materials, but do not include Third Party Software.<br>
+<br>
+E. <b>"Pre-Release Materials"</b> mean the Materials, or portions of the Materials, that are identified (in
+the product release notes, on Intel�s download website for the Materials or elsewhere) or labeled
+as pre-release, prototype, alpha or beta code and, as such, are deemed to be pre-release code (i)
+which may not be fully functional or tested and may contain bugs or errors; (ii) which Intel may
+substantially modify in its development of a production version; or (iii) for which Intel makes no
+assurances that it will ever develop or make a production version generally available. Pre-Release
+Materials are subject to the terms of Section 3.2 and not Section 2.1.<br>
+<br>
+F. <b>"Reciprocal Open Source Software"</b> means any software that is subject to a license which requires
+that (i) it must be distributed in source code form; (ii) it must be licensed under the same open
+source license terms; and (iii) its derivative works must be licensed under the same open source
+license terms. Examples of this type of license are the GNU General Public License or the Mozilla
+Public License.<br>
+<br>
+G. <b>"Redistributables"</b> mean the files (if any) listed in the
+"redist.txt," "redist-rt.txt" or similarly-named text files that may be included in the
+Materials. Redistributables include Sample Source Code.<br>
+<br>
+H. <b>"Sample Source Code"</b> means those portions of the Materials that are Source Code and are
+identified as sample code. Sample Source Code may not have been tested or validated by Intel
+and is provided purely as a programming example.<br>
+<br>
+I. <b>"Source Code"</b> means the software portion of the Materials provided in human readable format.<br>
+<br>
+J. <b>"Third Party Software"</b> mean the files (if any) listed in the "third-party-software.txt" or other
+similarly-named text file that may be included in the Materials for the applicable software. Third
+Party Software is subject to the terms of Section 2.2.<br>
+<br>
+K. <b>"Your Product"</b> means one or more applications, products or projects developed by or for You
+using the Materials.<br>
+<br>
+2. <b>LICENSE GRANTS.</b><br>
+<br>
+2.1 <b><u>License to the Materials.</u></b> Subject to the terms and conditions of this Agreement, Intel grants You a
+non-exclusive, worldwide, non-assignable, non-sublicensable, limited right and license under its
+copyrights, to:<br>
+<br>
+A. reproduce internally a reasonable number of copies of the Materials for Your personal or business
+use;<br>
+<br>
+B. use the Materials solely for Your personal or business use to develop Your Product, in accordance
+with the documentation included as part of the Materials; <br>
+<br>
+C. modify or create Derivative Works only of the Redistributables, or any portions, that are provided
+to You in Source Code;<br>
+<br>
+D. distribute (directly and through Your distributors, resellers, and other channel partners, if
+applicable), the Redistributables, including any modifications to or Derivative Works of the
+Redistributables or any portions made pursuant to Section 2.1.C subject to the following
+conditions:<br>
+<br>
+(1) Any distribution of the Redistributables must only be as part of Your Product which must add
+significant primary functionality different than that of the Redistributables themselves;<br>
+<br>
+(2) You must only distribute the Redistributables originally provided to You by Intel only in
+Executable Code subject to a license agreement that prohibits reverse engineering,
+decompiling or disassembling the Redistributables;<br>
+<br>
+(3) This distribution right includes a limited right to sublicense only the Intel copyrights in the
+Redistributables and only to the extent necessary to perform, display, and distribute the Redistributables (including Your modifications and Derivative Works of the Redistributables
+provided in Source Code) solely as incorporated in Your Product; and<br>
+<br>
+(4) You: (i) will be solely responsible to Your customers for any update, support obligation or
+other obligation or liability which may arise from the distribution of Your Product, (ii) will
+not make any statement that Your Product is "certified" or that its performance is
+guaranteed by Intel or its suppliers, (iii) will not use Intel's or its suppliers� names or
+trademarks to market Your Product, (iv) will comply with any additional restrictions which
+are included in the text files with the Redistributables and in Section 3 below, (v) will
+indemnify, hold harmless, and defend Intel and its suppliers from and against any claims or
+lawsuits, costs, damages, and expenses, including attorney's fees, that arise or result from
+(a) Your modifications or Derivative Works of the Materials or (b) Your distribution of Your
+Product.<br>
+<br>
+2.2 <b><u>Third Party Software.</u></b> Third Party Software, even if included with the distribution of the Materials,
+may be governed by separate license terms, including without limitation, third party license terms,
+open source software notices and terms, and/or other Intel software license terms. These separate
+license terms solely govern Your use of the Third Party Software.<br>
+<br>
+2.3 <b><u>Third Party Use.</u></b><br>
+<br>
+A. If You are an entity, Your contractors may use the Materials under the license specified in Section
+2, provided: (i) their use of the Materials is solely on behalf of and in support of Your business, (ii)
+they agree to the terms and conditions of this Agreement, and (iii) You are solely responsible for
+their use, misuse or disclosure of the Materials.<br>
+<br>
+B. You may utilize a Cloud Provider to host the Materials for You, provided: (i) the Cloud Provider
+may only host the Materials for Your exclusive use and may not use the Materials for any other
+purpose whatsoever, including the restriction set forth in Section 3.1(xi); (ii) the Cloud Provider�s
+use of the Materials must be solely on behalf of and in support of Your Product, and (iii) You will
+indemnify, hold harmless, and defend Intel and its suppliers from and against any claims or
+lawsuits, costs, damages, and expenses, including attorney's fees, that arise or result from Your
+Cloud Provider�s use, misuse or disclosure of the Materials.<br>
+<br>
+3. <b>LICENSE CONDITIONS.</b><br>
+<br>
+3.1 <b><u>Restrictions.</u></b> Except as expressly provided in this Agreement, You may NOT: (i) use, reproduce,
+disclose, distribute, or publicly display the Materials; (ii) share, publish, rent or lease the Materials to
+any third party; (iii) assign this Agreement or transfer the Materials; (iv) modify, adapt, alter, or
+translate the Materials in whole or in part, including during execution; (v) reverse engineer,
+decompile, or disassemble the Materials, or otherwise attempt to derive the source code or operation
+of the Materials; (vi) work around any technical limitations in the Materials; (vii) distribute, sublicense
+or transfer any Source Code, modifications or Derivative Works of any Source Code to any third party;
+(viii) remove, minimize, block or modify any notices of Intel or its suppliers in the Materials; (ix) include
+the Redistributables in malicious, deceptive, or unlawful programs or products or use the Materials in
+any way that is against the law; (x) modify, create a Derivative Work, link, or distribute the Materials
+so that any part of it becomes Reciprocal Open Source Software; (xi) use the Materials directly or
+indirectly for SaaS services or service bureau purposes (i.e., a service that allows use of or access to the Materials
+by a third party as part of that service, such as the salesforce.com service business model).<br>
+<br>
+3.2 <b><u>Pre-Release Materials.</u></b> If You receive Pre-Release Materials, You may reproduce a reasonable number
+of copies and use the Pre-Release Materials for evaluation and testing purposes only. You may not (i)
+modify or incorporate the Pre-Release Materials into Your Product; (ii) continue to use the PreRelease Materials once a
+commercial version is released; or (iii) disclose to any third party any benchmarks, performance results, or other information
+relating to the Pre-Release Materials. Intel may waive these restrictions in writing at its sole discretion; however, if You decide
+ to use the PreRelease Materials in Your Product (even with Intel�s waiver), You acknowledge and agree that You are fully responsible
+ for any and all issues that result from such use.<br>
+<br>
+3.3 <b><u>Safety-Critical, and Life-Saving Applications; Indemnity.</u></b> The Materials may provide information
+relevant to safety-critical applications (<b>"Safety-Critical Applications"</b>) to allow compliance with
+functional safety standards or requirements. <b>You acknowledge and agree that safety is Your
+responsibility. To the extent You use the Materials to create, or as part of, products used in Safety-Critical Applications,
+ it is Your responsibility to design, manage, and ensure that there are systemlevel safeguards to anticipate, monitor, and
+ control system failures, and You agree that You are solely responsible for all applicable regulatory standards and safety-related requirements
+concerning Your use of the Materials in Safety Critical Applications.</b><br>
+<br>
+Should You use the Materials for Safety-Critical Applications or in any type of a system or application
+in which the failure of the Materials could create a situation where personal injury or death may occur
+(e.g., medical systems, life-sustaining or life-saving systems) (<b>"Life-Saving Applications"</b>), You agree
+to indemnify, defend, and hold Intel and its representatives harmless against any claims or lawsuits,
+costs, damages, and expenses, including reasonable attorney fees, arising in any way out of Your use
+of the Materials in Safety-Critical Applications or Life-Saving Applications and claims of product
+liability, personal injury or death associated with those applications; even if such claims allege that
+Intel was negligent or strictly liable regarding the design or manufacture of the Materials or its failure
+to warn regarding the Materials.<br>
+<br>
+3.4 <b><u>Media Format Codecs and Digital Rights Management.</u></b> You acknowledge and agree that Your use of
+the Materials or distribution of the Redistributables with Your Product as permitted by this Agreement
+may require You to procure license(s) from third parties that may hold intellectual property rights
+applicable to any media decoding, encoding or transcoding technology (e.g., the use of an audio or
+video codec) and/or digital rights management capabilities of the Materials, if any. Should any such
+additional licenses be required, You are solely responsible for obtaining any such licenses and agree
+to obtain any such licenses at Your own expense.<br>
+<br>
+4. <b>DATA COLLECTION AND PRIVACY.</b><br>
+<br>
+4.1 <b><u>Data Collection.</u></b> The Materials may collect anonymous data and/or optional data (which may include
+other anonymous and/or non-anonymous data) about the Materials and/or Your development
+environment and transmit that data to Intel; however, optional data will not be transmitted to Intel
+without Your permission. All data collection by Intel is performed pursuant to relevant privacy laws,
+including notice and consent requirements.<br>
+<br>
+4.2 <b><u>Intel�s Privacy Notice.</u></b> Intel is committed to respecting Your privacy. To learn more about Intel�s
+privacy practices, please visit
+<a href="http://www.intel.com/privacy">http://www.intel.com/privacy</a>.<br>
+<br>
+5. <b>OWNERSHIP.</b> Title to the Materials and all copies remain with Intel or its suppliers. The Materials are
+protected by intellectual property rights, including without limitation, United States copyright laws
+and international treaty provisions. You will not remove any copyright or other proprietary notices
+from the Materials. Except as expressly provided herein, no license or right is granted to You directly
+or by implication, inducement, estoppel or otherwise; specifically, Intel does not grant any express or
+implied right to You under Intel patents, copyrights, trademarks, or trade secrets.<br>
+<br>
+6. <b>NO WARRANTY AND NO SUPPORT.</b><br>
+<br>
+6.1 <b><u>No Warranty.</u> Disclaimer. Intel disclaims all warranties of any kind and the
+terms and remedies provided in this Agreement are instead of any other
+warranty or condition, express, implied or statutory, including those
+regarding merchantability, fitness for any particular purpose,
+non-infringement or any warranty arising out of any course of dealing, usage
+of trade, proposal, specification or sample. Intel does not assume (and does
+not authorize any person to assume on its behalf) any liability.</b><br>
+<br>
+6.2 <b><u>No Support; Priority Support.</u></b> Intel may make changes to the Materials, or to items referenced
+therein, at any time without notice, but is not obligated to support, update or provide training for the
+Materials under the terms of this Agreement. Intel offers free community and paid priority support
+options. More information on these support options can be found at:
+<a href="https://software.intel.com/content/www/us/en/develop/support/priority-support.html">
+https://software.intel.com/content/www/us/en/develop/support/priority-support.html</a>.<br>
+<br>
+7. <b>LIMITATION OF LIABILITY.</b><br>
+<br>
+7.1 <b>Intel will not be liable for any of the following losses or damages (whether such losses or damages
+were foreseen, foreseeable, known or otherwise): (i) loss of revenue; (ii) loss of actual or
+anticipated profits; (iii) loss of the use of money; (iv) loss of anticipated savings; (v) loss of business;
+(vi) loss of opportunity; (vii) loss of goodwill; (viii) loss of use of the Materials; (ix) loss of reputation;
+(x) loss of, damage to, or corruption of data; or (xi) any indirect, incidental, special or consequential
+loss of damage however caused (including loss or damage of the type specified in this Section 7).</b><br>
+<br>
+7.2 <b>Intel�s total cumulative liability to You, including for direct damages for claims relating to this
+Agreement, and whether for breach of contract, negligence, or for any other reason, will not exceed
+$100.</b><br>
+<br>
+7.3 <b>You acknowledge that the limitations of liability provided in this Section 7 are an essential part of
+this Agreement. You agree that the limitations of liability provided in this Agreement with respect
+to Intel will be conveyed to and made binding upon any customer of Yours that acquires the
+Redistributables.</b><br>
+<br>
+8. <b>USER SUBMISSIONS.</b> Should you provide Intel with comments, modifications, corrections,
+enhancements or other input (<b>"Feedback"</b>) related to the Materials, Intel will be free to use, disclose,
+reproduce, license or otherwise distribute or exploit the Feedback in its sole discretion without any
+obligations or restrictions of any kind, including without limitation, intellectual property rights or
+licensing obligations. If You wish to provide Intel with information that You intend to be treated as
+confidential information, Intel requires that such confidential information be provided pursuant to a
+non-disclosure agreement (<b>"NDA"</b>); please contact Your Intel representative to ensure the proper
+NDA is in place.<br>
+<br>
+9. <b>NON-DISCLOSURE.</b> Information provided by Intel to You may include information marked as
+confidential. You must treat such information as confidential under the terms of the applicable NDA
+between Intel and You. If You have not entered into an NDA with Intel, You must not disclose,
+distribute or make use of any information marked as confidential, except as expressly authorized in
+writing by Intel. Intel retains all rights in and to its confidential information specifications, designs,
+engineering details, discoveries, inventions, patents, copyrights, trademarks, trade secrets, and other
+proprietary rights relating to the Materials. Any breach by You of the confidentiality obligations
+provided for in this Section 9 will cause irreparable injury to Intel for which money damages may be
+inadequate to compensate Intel for losses arising from such a breach. Intel may obtain equitable
+relief, including injunctive relief, if You breach or threaten to breach Your confidentiality obligations.<br>
+<br>
+10. <b>TERM AND TERMINATION.</b> This Agreement becomes effective on the date You accept this Agreement
+and will continue until terminated as provided for in this Agreement. This Agreement will terminate
+immediately if You are in breach of any of its terms and conditions. The term for Pre-Release Materials
+terminates immediately upon release of a commercial version or at any time upon notice from Intel.
+Upon termination, You will promptly destroy the Materials and all copies. In the event of termination
+of this Agreement, Your license to any Redistributables distributed by You in accordance with the
+terms and conditions of this Agreement, prior to the effective date of such termination, will survive
+any such termination of this Agreement. Sections 1, 2.1.D(4)(v), 2.2, 2.3.A(iii), 2.3.B(iii), 3.3, 5, 6, 7, 8,
+9, 10 (with respect to these survival provisions in the last sentence), and 12 will survive expiration or
+termination of this Agreement.<br>
+<br>
+11. <b>U.S. GOVERNMENT RESTRICTED RIGHTS.</b> The technical data and computer software covered by this
+license is a "Commercial Item," as such term is defined by the FAR 2.101 (48 C.F.R. 2.101) and is
+"commercial computer software" and "commercial computer software documentation" as specified
+under FAR 12.212 (48 C.F.R. 12.212) or DFARS 227.7202 (48 C.F.R. 227.7202), as applicable. This
+commercial computer software and related documentation is provided to end users for use by and
+on behalf of the U.S. Government with only those rights as are granted to all other end users pursuant
+to the terms and conditions of this Agreement.<br>
+<br>
+12.<b> GENERAL PROVISIONS</b><br>
+<br>
+12.1 <b>ENTIRE AGREEMENT.</b> This Agreement contains the complete and exclusive agreement and
+understanding between the parties concerning the subject matter of this Agreement, and
+supersedes all prior and contemporaneous proposals, agreements, understanding, negotiations,
+representations, warranties, conditions, and communications, oral or written, between the parties
+relating to the same subject matter. Each party acknowledges and agrees that in entering into this
+Agreement it has not relied on, and will not be entitled to rely on, any oral or written
+representations, warranties, conditions, understanding, or communications between the parties
+that are not expressly set forth in this Agreement. The express provisions of this Agreement control
+over any course of performance, course of dealing, or usage of the trade inconsistent with any of
+the provisions of this Agreement. The provisions of this Agreement will prevail notwithstanding any
+different, conflicting, or additional provisions that may appear on any purchase order,
+acknowledgement, invoice, or other writing issued by either party in connection with this
+Agreement. No modification or amendment to this Agreement will be effective unless in writing and
+signed by authorized representatives of each party, and must specifically identify this Agreement
+by its title and version (e.g., "Intel End User License Agreement for Developer Tools (Version April
+2023)"). If You received a copy of this Agreement translated into another language, the English
+language version of this Agreement will prevail in the event of any conflict between versions.<br>
+<br>
+12.2 <b>TRADE COMPLIANCE.</b> You must comply with all applicable laws and regulations of the U.S. and other
+countries governing the export, re-export, import, transfer, distribution, use, and servicing
+("<b>Export</b>") of the Materials and all related materials provided by Intel. In particular, but without
+limitation, You must not, without first obtaining all authorizations required by all applicable laws
+and regulations, Export Materials or any related materials (a) to any prohibited or restricted entity
+or country; or (b) for the development, design, manufacture, or production of nuclear, missile,
+chemical, or biological weapons, or for any other purpose prohibited by all applicable governments.
+Upon Intel�s request, You will provide export classifications for all Materials and technical data. Intel
+will not be obligated to perform any of its obligations under this Agreement if performance would
+result in violation of any applicable trade or sanctions controls or restrictions. No failure or delay on
+the part of Intel to exercise any right under this clause will operate as a waiver of this clause.<br>
+<br>
+12.3 <b>GOVERNING LAW, JURISDICTION, AND VENUE.</b> All disputes arising out of or related to this
+Agreement, whether based on contract, tort, or any other legal or equitable theory, will in all
+respects be governed by, and construed and interpreted under, the laws of the United States of
+America and the State of Delaware, without reference to conflict of laws principles. The parties
+agree that the United Nations Convention on Contracts for the International Sale of Goods (1980)
+is specifically excluded from and will not apply to this Agreement. All disputes arising out of or
+related to this Agreement, whether based on contract, tort, or any other legal or equitable theory,
+will be subject to the exclusive jurisdiction of the courts of the State of Delaware or of the Federal
+courts sitting in that State. Each party submits to the personal jurisdiction of those courts and waives
+all objections to that jurisdiction and venue for those disputes.<br>
+<br>
+12.4 <b>SEVERABILITY.</b> The parties intend that if a court holds that any provision or part of this Agreement
+is invalid or unenforceable under applicable law, the court will modify the provision to the minimum
+extent necessary to make it valid and enforceable, or if it cannot be made valid and enforceable,
+the parties intend that the court will sever and delete the provision or part from this Agreement.
+Any change to or deletion of a provision or part of this Agreement under this Section will not affect
+the validity or enforceability of the remainder of this Agreement, which will continue in full force
+and effect.<br>
<br>
+<br>
+<p><b>Intel Simplified Software License (Version October 2022)</b></p>
+Use and Redistribution.<span style='mso-spacerun:yes'> </span>You may use and
+redistribute the software, which is provided in binary form only,(the "Software"), without modification,
+provided the following conditions are met:<br>
+<br>
+* Redistributions must reproduce the above copyright notice and these terms of use in the Software and in the documentation and/or other materials provided with the distribution.<br>
+* Neither the name of Intel nor the names of its suppliers may be used to endorse or promote products derived from this Software without specific prior written permission.<br>
+* No reverse engineering, decompilation, or disassembly of the Software is permitted, nor any modification or alteration of the Software or its operation at any time, including during execution.<br>
+<br>
+No other licenses.<span style='mso-spacerun:yes'> </span>Except as provided in the preceding section, Intel grants no licenses or other rights by implication, estoppel or otherwise to, patent, copyright, trademark, trade name, service mark or other intellectual property licenses or rights of Intel.<br>
+<br>
+Third party software.<span style='mso-spacerun:yes'> </span> "Third Party Software" means the files (if any) listed in the "third-party-software.txt" or other similarly-named text file that may be included with the Software. Third Party Software, even if included with the distribution of the Software, may be governed by separate license terms, including without limitation, third party license terms, open source software notices and terms, and/or other Intel software license terms. These separate license terms solely govern Your use of the Third Party Software.<br>
+<br>
+DISCLAIMER.<span style='mso-spacerun:yes'> </span>THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT ARE DISCLAIMED. THIS SOFTWARE IS NOT INTENDED FOR USE IN SYSTEMS OR APPLICATIONS WHERE FAILURE OF THE SOFTWARE MAY CAUSE PERSONAL INJURY OR DEATH AND YOU AGREE THAT YOU ARE FULLY RESPONSIBLE FOR ANY CLAIMS, COSTS, DAMAGES, EXPENSES, AND ATTORNEYS' FEES ARISING OUT OF ANY SUCH USE, EVEN IF ANY CLAIM ALLEGES THAT INTEL WAS NEGLIGENT REGARDING THE DESIGN OR MANUFACTURE OF THE SOFTWARE.<br>
+<br>
+LIMITATION OF LIABILITY. IN NO EVENT WILL INTEL BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.<br>
+<br>
+No support.<span style='mso-spacerun:yes'> </span> Intel may make changes to the Software, at any time without notice, and is not obligated to support, update or provide training for the Software.<br>
+<br>
+Termination.<span style='mso-spacerun:yes'> </span>Your right to use the Software is terminated in the event of your breach of this license.<br>
+<br>
+Feedback.<span style='mso-spacerun:yes'> </span>Should you provide Intel with comments, modifications, corrections, enhancements or other input ("Feedback") related to the Software, Intel will be free to use, disclose, reproduce, license or otherwise distribute or exploit the Feedback in its sole discretion without any obligations or restrictions of any kind, including without limitation, intellectual property rights or licensing obligations.<br>
+<br>
+Compliance with laws.<span style='mso-spacerun:yes'> </span>You agree to comply with all relevant laws and regulations governing your use, transfer, import or export (or prohibition thereof) of the Software.<br>
+<br>
+Governing law.<span style='mso-spacerun:yes'> </span>All disputes will be governed by the laws of the United States of America and the State of Delaware without reference to conflict of law principles and subject to the exclusive jurisdiction of the state or federal courts sitting in the State of Delaware, and each party agrees that it submits to the personal jurisdiction and venue of those courts and waives any objections. THE UNITED NATIONS CONVENTION ON CONTRACTS FOR THE INTERNATIONAL SALE OF GOODS (1980) IS SPECIFICALLY EXCLUDED AND WILL NOT APPLY TO THE SOFTWARE.<br>
+<br>
+<br>
+<p><b>Apache License</b><br>
+<br>
+Version 2.0, January 2004<br>
+<br>
+<a href="http://www.apache.org/licenses/">http://www.apache.org/licenses/</a></p>
+TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION<br>
+<br>
+ 1. Definitions.<br>
+<br>
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.<br>
+<br>
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.<br>
+<br>
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.<br>
+<br>
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.<br>
+<br>
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.<br>
+<br>
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.<br>
+<br>
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).<br>
+<br>
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.<br>
+<br>
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."<br>
+<br>
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.<br>
+<br>
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.<br>
+<br>
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.<br>
+<br>
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:<br>
+<br>
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and<br>
+<br>
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and<br>
+<br>
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and<br>
+<br>
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.<br>
+<br>
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.<br>
+<br>
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.<br>
+<br>
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.<br>
+<br>
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.<br>
+<br>
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.<br>
+<br>
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.<br>
+<br>
+ END OF TERMS AND CONDITIONS<br>
+<br>
+ APPENDIX: How to apply the Apache License to your work.<br>
+<br>
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+ Copyright 2017, The TensorFlow Authors.<br>
+<br>
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at<br>
+<br>
+ http://www.apache.org/licenses/LICENSE-2.0<br>
+<br>
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.<br>
+<br>
+<br>
+<p><b>LLVM Exceptions to the Apache 2.0 License</b></p>
+As an exception, if, as a result of your compiling your source code, portions of
+this Software are embedded into an Object form of such source code, you may
+redistribute such embedded portions in such Object form without complying with
+the conditions of Sections 4(a), 4(b) and 4(d) of the License.<br>
+<br>
+In addition, if you combine or link compiled forms of this Software with
+software that is licensed under the GPLv2 ("Combined Software") and if a court
+of competent jurisdiction determines that the patent provision (Section 3), the
+indemnity provision (Section 9) or other Section of the License conflicts with
+the conditions of the GPLv2, you may retroactively and prospectively choose to
+deem waived or otherwise exclude such Section(s) of the License, but only in
+their entirety and only with respect to the Combined Software.<br>
+<br>
+<br>
+<p><b>3-Clause BSD license</b></p>
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:<br>
+<br>
+1. Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.<br>
+<br>
+2. Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.<br>
+<br>
+3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.<br>
+<br>
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGE.<br>
+<br>
+<br>
+<p><b>Eclipse Public License - v 2.0</b></p>
+THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
+PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION
+OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.<br>
+<br>
+1. DEFINITIONS<br>
+<br>
+"Contribution" means:<br>
+<br>
+a) in the case of the initial Contributor, the initial content
+Distributed under this Agreement, and<br>
+<br>
+b) in the case of each subsequent Contributor:<br>
+i) changes to the Program, and<br>
+ii) additions to the Program;<br>
+where such changes and/or additions to the Program originate from
+and are Distributed by that particular Contributor. A Contribution
+"originates" from a Contributor if it was added to the Program by
+such Contributor itself or anyone acting on such Contributor's behalf.
+Contributions do not include changes or additions to the Program that
+are not Modified Works.<br>
+<br>
+"Contributor" means any person or entity that Distributes the
+Program.<br>
+<br>
+"Licensed Patents" mean patent claims licensable by a Contributor
+which
+are necessarily infringed by the use or sale of its Contribution alone
+or when combined with the Program.<br>
+<br>
+"Program" means the Contributions Distributed in accordance with
+this Agreement.<br>
+<br>
+"Recipient" means anyone who receives the Program under this
+Agreement or any Secondary License (as applicable), including Contributors.<br>
+<br>
+"Derivative Works" shall mean any work, whether in Source Code or
+other
+form, that is based on (or derived from) the Program and for which the
+editorial revisions, annotations, elaborations, or other modifications
+represent, as a whole, an original work of authorship.<br>
+<br>
+"Modified Works" shall mean any work in Source Code or other form
+that
+7results from an addition to, deletion from, or modification of the
+contents of the Program, including, for purposes of clarity any new file
+in Source Code form that contains any contents of the Program. Modified
+Works shall not include works that contain only declarations,
+interfaces, types, classes, structures, or files of the Program solely
+in each case in order to link to, bind by name, or subclass the Program
+or Modified Works thereof.<br>
+<br>
+"Distribute" means the acts of a) distributing or b) making
+available
+in any manner that enables the transfer of a copy.<br>
+<br>
+"Source Code" means the form of a Program preferred for making
+modifications, including but not limited to software source code,
+documentation source, and configuration files.<br>
+<br>
+"Secondary License" means either the GNU General Public License,
+Version 2.0, or any later versions of that license, including any
+exceptions or additional permissions as identified by the initial<br>
+Contributor.<br>
+<br>
+2. GRANT OF RIGHTS<br>
+<br>
+a) Subject to the terms of this Agreement, each Contributor hereby
+grants Recipient a non-exclusive, worldwide, royalty-free copyright
+license to reproduce, prepare Derivative Works of, publicly display,
+publicly perform, Distribute and sublicense the Contribution of such
+Contributor, if any, and such Derivative Works.<br>
+<br>
+b) Subject to the terms of this Agreement, each Contributor hereby
+grants Recipient a non-exclusive, worldwide, royalty-free patent
+license under Licensed Patents to make, use, sell, offer to sell,
+import and otherwise transfer the Contribution of such Contributor,
+if any, in Source Code or other form. This patent license shall
+apply to the combination of the Contribution and the Program if, at
+the time the Contribution is added by the Contributor, such addition
+of the Contribution causes such combination to be covered by the
+Licensed Patents. The patent license shall not apply to any other
+combinations which include the Contribution. No hardware per se is
+licensed hereunder.<br>
+<br>
+c) Recipient understands that although each Contributor grants the
+licenses to its Contributions set forth herein, no assurances are
+provided by any Contributor that the Program does not infringe the
+patent or other intellectual property rights of any other entity.
+Each Contributor disclaims any liability to Recipient for claims
+brought by any other entity based on infringement of intellectual
+property rights or otherwise. As a condition to exercising the
+rights and licenses granted hereunder, each Recipient hereby
+assumes sole responsibility to secure any other intellectual
+property rights needed, if any. For example, if a third party
+patent license is required to allow Recipient to Distribute the
+Program, it is Recipient's responsibility to acquire that license
+before distributing the Program.<br>
+<br>
+d) Each Contributor represents that to its knowledge it has
+sufficient copyright rights in its Contribution, if any, to grant
+the copyright license set forth in this Agreement.<br>
+<br>
+e) Notwithstanding the terms of any Secondary License, no
+Contributor makes additional grants to any Recipient (other than
+those set forth in this Agreement) as a result of such Recipient's
+receipt of the Program under the terms of a Secondary License
+(if permitted under the terms of Section 3).<br>
+<br>
+3. REQUIREMENTS<br>
+<br>
+3.1 If a Contributor Distributes the Program in any form, then:<br>
+<br>
+a) the Program must also be made available as Source Code, in
+accordance with section 3.2, and the Contributor must accompany
+the Program with a statement that the Source Code for the Program
+is available under this Agreement, and informs Recipients how to
+obtain it in a reasonable manner on or through a medium customarily
+used for software exchange; and<br>
+<br>
+b) the Contributor may Distribute the Program under a license
+different than this Agreement, provided that such license:<br>
+i) effectively disclaims on behalf of all other Contributors all
+warranties and conditions, express and implied, including
+warranties or conditions of title and non-infringement, and
+implied warranties or conditions of merchantability and fitness
+for a particular purpose;<br>
+<br>
+ii) effectively excludes on behalf of all other Contributors all
+liability for damages, including direct, indirect, special,
+incidental and consequential damages, such as lost profits;<br>
+<br>
+iii) does not attempt to limit or alter the recipients' rights
+in the Source Code under section 3.2; and<br>
+<br>
+iv) requires any subsequent distribution of the Program by any
+party to be under a license that satisfies the requirements
+of this section 3.<br>
+<br>
+3.2 When the Program is Distributed as Source Code:<br>
+<br>
+a) it must be made available under this Agreement, or if the
+Program (i) is combined with other material in a separate file or
+files made available under a Secondary License, and (ii) the initial
+Contributor attached to the Source Code the notice described in
+Exhibit A of this Agreement, then the Program may be made available
+under the terms of such Secondary Licenses, and<br>
+<br>
+b) a copy of this Agreement must be included with each copy of
+the Program.<br>
+<br>
+3.3 Contributors may not remove or alter any copyright, patent,
+trademark, attribution notices, disclaimers of warranty, or limitations
+of liability ("notices") contained within the Program from any copy
+of
+the Program which they Distribute, provided that Contributors may add
+their own appropriate notices.<br>
+<br>
+4. COMMERCIAL DISTRIBUTION<br>
+<br>
+Commercial distributors of software may accept certain responsibilities
+with respect to end users, business partners and the like. While this
+license is intended to facilitate the commercial use of the Program,
+the Contributor who includes the Program in a commercial product
+offering should do so in a manner which does not create potential
+liability for other Contributors. Therefore, if a Contributor includes
+the Program in a commercial product offering, such Contributor
+("Commercial Contributor") hereby agrees to defend and indemnify
+every
+other Contributor ("Indemnified Contributor") against any
+losses,
+damages and costs (collectively "Losses") arising from claims,
+lawsuits
+and other legal actions brought by a third party against the Indemnified
+Contributor to the extent caused by the acts or omissions of such
+Commercial Contributor in connection with its distribution of the Program
+in a commercial product offering. The obligations in this section do not
+apply to any claims or Losses relating to any actual or alleged
+intellectual property infringement. In order to qualify, an Indemnified
+Contributor must: a) promptly notify the Commercial Contributor in
+writing of such claim, and b) allow the Commercial Contributor to
+control,
+and cooperate with the Commercial Contributor in, the defense and any
+related settlement negotiations. The Indemnified Contributor may
+participate in any such claim at its own expense.<br>
+<br>
+For example, a Contributor might include the Program in a commercial
+product offering, Product X. That Contributor is then a Commercial
+Contributor. If that Commercial Contributor then makes performance
+claims, or offers warranties related to Product X, those performance
+claims and warranties are such Commercial Contributor's responsibility
+alone. Under this section, the Commercial Contributor would have to
+defend claims against the other Contributors related to those performance
+claims and warranties, and if a court requires any other Contributor to
+pay any damages as a result, the Commercial Contributor must pay
+those damages.<br>
+<br>
+5. NO WARRANTY<br>
+<br>
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT
+PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN "AS
+IS"
+BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR
+IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF
+TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR
+PURPOSE. Each Recipient is solely responsible for determining the
+appropriateness of using and distributing the Program and assumes all
+risks associated with its exercise of rights under this Agreement,
+including but not limited to the risks and costs of program errors,
+compliance with applicable laws, damage to or loss of data, programs
+or equipment, and unavailability or interruption of operations.<br>
+<br>
+6. DISCLAIMER OF LIABILITY<br>
+<br>
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT
+PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS
+SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST
+PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE
+EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.<br>
+<br>
+7. GENERAL<br>
+<br>
+If any provision of this Agreement is invalid or unenforceable under
+applicable law, it shall not affect the validity or enforceability of
+the remainder of the terms of this Agreement, and without further
+action by the parties hereto, such provision shall be reformed to the
+minimum extent necessary to make such provision valid and enforceable.<br>
+<br>
+If Recipient institutes patent litigation against any entity
+(including a cross-claim or counterclaim in a lawsuit) alleging that the
+Program itself (excluding combinations of the Program with other software
+or hardware) infringes such Recipient's patent(s), then such Recipient's
+rights granted under Section 2(b) shall terminate as of the date such
+litigation is filed.<br>
+<br>
+All Recipient's rights under this Agreement shall terminate if it
+fails to comply with any of the material terms or conditions of this
+Agreement and does not cure such failure in a reasonable period of
+time after becoming aware of such noncompliance. If all Recipient's
+rights under this Agreement terminate, Recipient agrees to cease use
+and distribution of the Program as soon as reasonably practicable.
+However, Recipient's obligations under this Agreement and any licenses
+granted by Recipient relating to the Program shall continue and survive.<br>
+<br>
+Everyone is permitted to copy and distribute copies of this Agreement,
+but in order to avoid inconsistency the Agreement is copyrighted and
+may only be modified in the following manner. The Agreement Steward
+reserves the right to publish new versions (including revisions) of
+this Agreement from time to time. No one other than the Agreement
+Steward has the right to modify this Agreement. The Eclipse Foundation
+is the initial Agreement Steward. The Eclipse Foundation may assign the
+responsibility to serve as the Agreement Steward to a suitable separate
+entity. Each new version of the Agreement will be given a distinguishing
+version number. The Program (including Contributions) may always be
+Distributed subject to the version of the Agreement under which it was
+received. In addition, after a new version of the Agreement is published,
+Contributor may elect to Distribute the Program (including its
+Contributions) under the new version.<br>
+<br>
+Except as expressly stated in Sections 2(a) and 2(b) above, Recipient
+receives no rights or licenses to the intellectual property of any
+Contributor under this Agreement, whether expressly, by implication,
+estoppel or otherwise. All rights in the Program not expressly granted
+under this Agreement are reserved. Nothing in this Agreement is intended
+to be enforceable by any entity that is not a Contributor or Recipient.
+No third-party beneficiary rights are created under this Agreement.<br>
+<br>
+Exhibit A - Form of Secondary Licenses Notice<br>
+<br>
+"This Source Code may also be made available under the following
+Secondary Licenses when the conditions for such availability set forth
+in the Eclipse Public License, v. 2.0 are satisfied: {name license(s),
+version(s), and exceptions or additional permissions here}."<br>
+<br>
+Simply including a copy of this Agreement, including this Exhibit A
+is not sufficient to license the Source Code under Secondary Licenses.<br>
+<br>
+If it is not possible or desirable to put the notice in a particular
+file, then You may include the notice in a location (such as a LICENSE
+file in a relevant directory) where a recipient would be likely to
+look for such a notice.<br>
+<br>
+You may add additional accurate notices of copyright ownership.<br>
+<br>
+<br>
+<p><b>GNU GENERAL PUBLIC LICENSE</b><br>
+Version 3, 29 June 2007<br>
+Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/></p>
+Everyone is permitted to copy and distribute verbatim copies
+of this license document, but changing it is not allowed.<br>
+<p>Preamble<p/>
+The GNU General Public License is a free, copyleft license for
+software and other kinds of works.<br>
+<br>
+The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
+your programs, too.<br>
+<br>
+When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.<br>
+<br>
+To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.<br>
+<br>
+For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.<br>
+<br>
+Developers that use the GNU GPL protect your rights with two steps:<br>
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.<br>
+<br>
+For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.<br>
+<br>
+Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.<br>
+<br>
+Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.<br>
+<br>
+The precise terms and conditions for copying, distribution and
+modification follow.<br>
+<p>TERMS AND CONDITIONS<p/>
+0. Definitions.<br>
+<br>
+"This License" refers to version 3 of the GNU General Public
+License.<br>
+<br>
+"Copyright" also means copyright-like laws that apply to other kinds
+of
+works, such as semiconductor masks.<br>
+<br>
+"The Program" refers to any copyrightable work licensed under
+this
+License. Each licensee is addressed as "you". "Licensees"
+and
+"recipients" may be individuals or organizations.<br>
+<br>
+To "modify" a work means to copy from or adapt all or part of the
+work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of
+the
+earlier work or a work "based on" the earlier work.<br>
+<br>
+A "covered work" means either the unmodified Program or a work
+based
+on the Program.<br>
+<br>
+To "propagate" a work means to do anything with it that,
+without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.<br>
+<br>
+To "convey" a work means any kind of propagation that enables
+other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.<br>
+<br>
+An interactive user interface displays "Appropriate Legal
+Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.<br>
+<br>
+1. Source Code.<br>
+<br>
+The "source code" for a work means the preferred form of the
+work
+for making modifications to it. "Object code" means any
+non-source
+form of a work.<br>
+<br>
+A "Standard Interface" means an interface that either is an
+official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.<br>
+<br>
+The "System Libraries" of an executable work include anything,
+other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential
+component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.<br>
+<br>
+The "Corresponding Source" for a work in object code form means
+all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.<br>
+<br>
+The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.<br>
+<br>
+The Corresponding Source for a work in source code form is that
+same work.<br>
+<br>
+2. Basic Permissions.<br>
+<br>
+All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.<br>
+<br>
+You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.<br>
+<br>
+Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.<br>
+<br>
+3. Protecting Users' Legal Rights From Anti-Circumvention Law.<br>
+<br>
+No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.<br>
+<br>
+When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.<br>
+<br>
+4. Conveying Verbatim Copies.<br>
+<br>
+You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.<br>
+<br>
+You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.<br>
+<br>
+5. Conveying Modified Source Versions.<br>
+<br>
+You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:<br>
+<br>
+a) The work must carry prominent notices stating that you modified
+it, and giving a relevant date.<br>
+<br>
+b) The work must carry prominent notices stating that it is
+released under this License and any conditions added under section
+7. This requirement modifies the requirement in section 4 to
+"keep intact all notices".<br>
+<br>
+c) You must license the entire work, as a whole, under this
+License to anyone who comes into possession of a copy. This
+License will therefore apply, along with any applicable section 7
+additional terms, to the whole of the work, and all its parts,
+regardless of how they are packaged. This License gives no
+permission to license the work in any other way, but it does not
+invalidate such permission if you have separately received it.<br>
+<br>
+d) If the work has interactive user interfaces, each must display
+Appropriate Legal Notices; however, if the Program has interactive
+interfaces that do not display Appropriate Legal Notices, your
+work need not make them do so.<br>
+<br>
+A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are
+not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.<br>
+<br>
+6. Conveying Non-Source Forms.<br>
+<br>
+You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:<br>
+<br>
+a) Convey the object code in, or embodied in, a physical product
+(including a physical distribution medium), accompanied by the
+Corresponding Source fixed on a durable physical medium
+customarily used for software interchange.<br>
+<br>
+b) Convey the object code in, or embodied in, a physical product
+(including a physical distribution medium), accompanied by a
+written offer, valid for at least three years and valid for as
+long as you offer spare parts or customer support for that product
+model, to give anyone who possesses the object code either (1) a
+copy of the Corresponding Source for all the software in the
+product that is covered by this License, on a durable physical
+medium customarily used for software interchange, for a price no
+more than your reasonable cost of physically performing this
+conveying of source, or (2) access to copy the
+Corresponding Source from a network server at no charge.<br>
+<br>
+c) Convey individual copies of the object code with a copy of the
+written offer to provide the Corresponding Source. This
+alternative is allowed only occasionally and noncommercially, and
+only if you received the object code with such an offer, in accord
+with subsection 6b.<br>
+<br>
+d) Convey the object code by offering access from a designated
+place (gratis or for a charge), and offer equivalent access to the
+Corresponding Source in the same way through the same place at no
+further charge. You need not require recipients to copy the
+Corresponding Source along with the object code. If the place to
+copy the object code is a network server, the Corresponding Source
+may be on a different server (operated by you or a third party)
+that supports equivalent copying facilities, provided you maintain
+clear directions next to the object code saying where to find the
+Corresponding Source. Regardless of what server hosts the
+Corresponding Source, you remain obligated to ensure that it is
+available for as long as needed to satisfy these requirements.<br>
+<br>
+e) Convey the object code using peer-to-peer transmission, provided
+you inform other peers where the object code and Corresponding
+Source of the work are being offered to the general public at no
+charge under subsection 6d.<br>
+<br>
+A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.<br>
+<br>
+A "User Product" is either (1) a "consumer product", which
+means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to
+a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.<br>
+<br>
+"Installation Information" for a User Product means any
+methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.<br>
+<br>
+If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).<br>
+<br>
+The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.<br>
+<br>
+Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.<br>
+<br>
+7. Additional Terms.<br>
+<br>
+"Additional permissions" are terms that supplement the terms of
+this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.<br>
+<br>
+When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.<br>
+<br>
+Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:<br>
+<br>
+a) Disclaiming warranty or limiting liability differently from the
+terms of sections 15 and 16 of this License; or<br>
+<br>
+b) Requiring preservation of specified reasonable legal notices or
+author attributions in that material or in the Appropriate Legal
+Notices displayed by works containing it; or<br>
+<br>
+c) Prohibiting misrepresentation of the origin of that material, or
+requiring that modified versions of such material be marked in
+reasonable ways as different from the original version; or<br>
+<br>
+d) Limiting the use for publicity purposes of names of licensors or
+authors of the material; or<br>
+<br>
+e) Declining to grant rights under trademark law for use of some
+trade names, trademarks, or service marks; or<br>
+<br>
+f) Requiring indemnification of licensors and authors of that
+material by anyone who conveys the material (or modified versions of<br>
+it) with contractual assumptions of liability to the recipient, for
+any liability that these contractual assumptions directly impose on
+those licensors and authors.<br>
+<br>
+All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as
+you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.<br>
+<br>
+If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.<br>
+<br>
+Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.<br>
+<br>
+8. Termination.<br>
+<br>
+You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).<br>
+<br>
+However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.<br>
+<br>
+Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.<br>
+<br>
+Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.<br>
+<br>
+9. Acceptance Not Required for Having Copies.<br>
+<br>
+You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.<br>
+<br>
+10. Automatic Licensing of Downstream Recipients.<br>
+<br>
+Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.<br>
+<br>
+An "entity transaction" is a transaction transferring control of
+an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.<br>
+<br>
+You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.<br>
+<br>
+11. Patents.<br>
+<br>
+A "contributor" is a copyright holder who authorizes use under
+this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor
+version".<br>
+<br>
+A contributor's "essential patent claims" are all patent
+claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to
+grant
+patent sublicenses in a manner consistent with the requirements of
+this License.<br>
+<br>
+Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.<br>
+<br>
+In the following three paragraphs, a "patent license" is any
+express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to
+a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.<br>
+<br>
+If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you
+have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.<br>
+<br>
+If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.<br>
+<br>
+A patent license is "discriminatory" if it does not include
+within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.<br>
+<br>
+Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.<br>
+<br>
+12. No Surrender of Others' Freedom.<br>
+<br>
+If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may
+not convey it at all. For example, if you agree to terms that obligate
+you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.<br>
+<br>
+13. Use with the GNU Affero General Public License.<br>
+<br>
+Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.<br>
+<br>
+14. Revised Versions of this License.<br>
+<br>
+The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.<br>
+<br>
+Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have
+the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.<br>
+<br>
+If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.<br>
+<br>
+Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.<br>
+<br>
+15. Disclaimer of Warranty.<br>
+<br>
+THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT
+WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.<br>
+<br>
+16. Limitation of Liability.<br>
+<br>
+IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING
+ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR
+THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.<br>
+<br>
+17. Interpretation of Sections 15 and 16.<br>
+<br>
+If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.<br>
+<p>END OF TERMS AND CONDITIONS<p/>
+<p>How to Apply These Terms to Your New Programs<p/>
+If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these
+terms.<br>
+<br>
+To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is
+found.<br>
+<br>
+<one line to give the program's name and a brief idea of what it
+does.><br>
+Copyright (C) <year> <name of author><br>
+<br>
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.<br>
+<br>
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.<br>
+<br>
+You should have received a copy of the GNU General Public License
+along with this program. If not, see
+<http://www.gnu.org/licenses/>.<br>
+<br>
+Also add information on how to contact you by electronic and paper mail.<br>
+<br>
+If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:<br>
+<br>
+<program> Copyright (C) <year> <name of author><br>
+This program comes with ABSOLUTELY NO WARRANTY; for details type `show
+w'.<br>
+This is free software, and you are welcome to redistribute it
+under certain conditions; type `show c' for details.<br>
+<br>
+The hypothetical commands `show w' and `show c' should show the
+appropriate
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about
+box".<br>
+<br>
+You should also get your employer (if you work as a programmer) or
+school,
+if any, to sign a "copyright disclaimer" for the program, if
+necessary.<br>
+For more information on this, and how to apply and follow the GNU GPL,
+see
+<http://www.gnu.org/licenses/>.<br>
+<br>
+The GNU General Public License does not permit incorporating your
+program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications
+with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+<http://www.gnu.org/philosophy/why-not-lgpl.html>.<br>
+<br>
+<br>
+<p><b>MIT License</b></p>
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation the
+rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is furnished
+to do so, subject to the following conditions:<br>
+<br>
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.<br>
+<br>
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
+EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.<br>
+<br>
+<br>
+
+<p><b>Toolkits for oneAPI and Associated Third Party Program File Locations</b></p>
+<p><i><u>Note</u></i>: All paths are relative to the Intel(R) oneAPI Toolkits installation
+directory, which defaults to: /opt/intel/oneapi</p>
+
+<p><b>Intel(R) oneAPI Base Toolkit (Base Kit):</b></p>
+<ul>
+ <li>Intel(R) oneAPI DPC++/C++ Compiler <install_dir>/share/doc/compiler/licensing/c/third-party-programs.txt</li>
+ <li>Intel(R) oneAPI DPC++ Library (oneDPL) <install_dir>/share/doc/dpl/licensing/third-party-programs.txt</li>
+ <li>Intel(R) oneAPI Math Kernel Library (oneMKL) <install_dir>/share/doc/mkl/licensing/third-party-programs.txt</li>
+ <li>Intel(R) oneAPI Threading Building Blocks (oneTBB) <install_dir>/share/doc/tbb/licensing/third-party-programs.txt</li>
+ <li>Intel(R) oneAPI Data Analytics Library (oneDAL) <install_dir>/share/doc/dal/licensing/third-party-programs.txt</li>
+ <li>Intel(R) oneAPI Collective Communications Library (oneCCL) <install_dir>/share/doc/ccl/licensing/third-party-programs.txt</li>
+ <li>Intel(R) oneAPI Deep Neural Network Library (oneDNN) <install_dir>/share/doc/dnnl/THIRD-PARTY-PROGRAMS</li>
+ <li>Intel(R) DPC++ Compatibility Tool <install_dir>/share/doc/dpct/licensing/third-party-programs.txt</li>
+ <li>Intel(R) Distribution for GDB* <install_dir>/share/doc/debugger/licensing/third-party-programs.txt</li>
+ <li>Intel(R) Integrated Performance Primitives (Intel(R) IPP) <install_dir>/share/doc/ipp/licensing/third-party-programs.txt</li>
+ <li>Intel(R) Integrated Performance Primitives Cryptography (Intel(R) IPP Cryptography) <install_dir>/share/doc/ippcp/licensing/third-party-programs.txt</li>
+ <li>Intel(R) VTune(TM) Profiler <install_dir>/vtune_profiler/latest/licensing/third-party-programs.txt</li>
+ <li>Intel(R) Advisor <install_dir>/advisor/latest/licensing/third-party-programs.txt</li>
+ <li>Intel(R) Dev Utilities <install_dir>/share/doc/dev-utilities/licensing/third-party-programs.txt</li>
+ <li>Diagnostics Utility for oneAPI <install_dir>/share/doc/diagnostics/licensing/third-party-programs.txt</li>
+ <li>Intel(R) Software Installer <install_dir>/installer/third-party-programs.txt</li>
+</ul>
+<p><b>Intel(R) HPC Toolkit (HPC Kit):</b></p>
+<ul>
+ <li>Intel(R) oneAPI DPC++/C++ Compiler <install_dir>/share/doc/compiler/licensing/c/third-party-programs.txt</li>
+ <li>Intel(R) Fortran Compiler <install_dir>/share/doc/compiler/licensing/fortran/third-party-programs.txt</li>
+ <li>Intel(R) MPI Library <install_dir>/share/doc/mpi/third-party-programs.txt</li>
+ <li>Intel(R) Dev Utilities <install_dir>/share/doc/dev-utilities/licensing/third-party-programs.txt</li>
+ <li>Diagnostics Utility for oneAPI <install_dir>/share/doc/diagnostics/licensing/third-party-programs.txt</li>
+ <li>Intel(R) Software Installer <install_dir>/installer/third-party-programs.txt</li>
+</ul>
+<p><b>Intel(R) Rendering Toolkit (Render Kit):</b></p>
+<ul>
+ <li>Intel(R) Embree <install_dir>/share/doc/embree/licensing/third-party-programs.txt</li>
+ <li>Intel(R) OSPRay <install_dir>/share/doc/ospray/licensing/third-party-programs.txt</li>
+ <li>Intel(R) Open Image Denoise <install_dir>/share/doc/oidn/licensing/third-party-programs.txt</li>
+ <li>Intel(R) Open Path Guiding Library (Intel(R) Open PGL) <install_dir>/share/doc/openpgl/licensing/third-party-programs.txt</li>
+ <li>Intel(R) Open Volume Kernel Library (Intel(R) Open VKL) <install_dir>/share/doc/openvkl/licensing/third-party-programs.txt</li>
+ <li>Intel(R) OSPRay Studio <install_dir>/share/doc/ospray_studio/licensing/third-party-programs.txt</li>
+ <li>Intel(R) Implicit SPMD Program Compiler (Intel(R) ISPC) <install_dir>/share/doc/ispc/licensing/third-party-programs.txt</li>
+ <li>Rendering Toolkit Utilities <install_dir>/share/doc/rkutil/licensing/third-party-programs.txt</li>
+ <li>Intel(R) Software Installer <install_dir>/installer/third-party-programs.txt</li>
+</ul>
+<p><b>AI Tools:</b></p>
+<ul>
+ <li>Intel(R) Distribution for Python* <install_dir>/intelpython/latest/licensing/third-party-programs.txt</li>
+ <li>Intel(R) Distribution of Modin* <install_dir>/modin/latest/licensing/third_party_programs.txt</li>
+ <li>Intel(R) Optimization for TensorFlow* <install_dir>/tensorflow/latest/licensing/tensorflow/third-party-programs.txt</li>
+ <li>Intel(R) Optimization for PyTorch* <install_dir>/pytorch/latest/licensing/third-party-programs.txt</li>
+ <li>Intel(R) Neural Compressor <install_dir>/neural-compressor/latest/licensing/third-party-programs.txt</li>
+ <li>Intel(R) Dev Utilities <install_dir>/share/doc/dev-utilities/licensing/third-party-programs.txt</li>
+ <li>Intel(R) Software Installer <install_dir>/installer/third-party-programs.txt</li>
+</ul>
+</span></p>
+
+</div>
+
+</body>
+
+</html>
diff --git a/meta-offline-voice-agent/licenses/ISSL b/meta-offline-voice-agent/licenses/ISSL new file mode 100644 index 00000000..a6a45b28 --- /dev/null +++ b/meta-offline-voice-agent/licenses/ISSL @@ -0,0 +1,71 @@ +Intel Simplified Software License (Version October 2022) + +Use and Redistribution. You may use and redistribute the software, which +is provided in binary form only, (the “Software”), without modification, +provided the following conditions are met: + +* Redistributions must reproduce the above copyright notice and these terms + of use in the Software and in the documentation and/or other materials + provided with the distribution. +* Neither the name of Intel nor the names of its suppliers may be used to + endorse or promote products derived from this Software without specific + prior written permission. +* No reverse engineering, decompilation, or disassembly of the Software is + permitted, nor any modification or alteration of the Software or its + operation at any time, including during execution. + +No other licenses. Except as provided in the preceding section, Intel grants no +licenses or other rights by implication, estoppel or otherwise to, patent, +copyright, trademark, trade name, service mark or other intellectual property +licenses or rights of Intel. + +Third party software. “Third Party Software” means the files (if any) listed in +the “third-party-software.txt” or other similarly-named text file that may be +included with the Software. Third Party Software, even if included with the +distribution of the Software, may be governed by separate license terms, +including without limitation, third party license terms, open source software +notices and terms, and/or other Intel software license terms. These separate +license terms solely govern Your use of the Third Party Software. + +DISCLAIMER. THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED +WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT ARE +DISCLAIMED. THIS SOFTWARE IS NOT INTENDED FOR USE IN SYSTEMS OR APPLICATIONS +WHERE FAILURE OF THE SOFTWARE MAY CAUSE PERSONAL INJURY OR DEATH AND YOU AGREE +THAT YOU ARE FULLY RESPONSIBLE FOR ANY CLAIMS, COSTS, DAMAGES, EXPENSES, AND +ATTORNEYS’ FEES ARISING OUT OF ANY SUCH USE, EVEN IF ANY CLAIM ALLEGES THAT +INTEL WAS NEGLIGENT REGARDING THE DESIGN OR MANUFACTURE OF THE SOFTWARE. + +LIMITATION OF LIABILITY. IN NO EVENT WILL INTEL BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +No support. Intel may make changes to the Software, at any time without notice, +and is not obligated to support, update or provide training for the Software. + +Termination. Your right to use the Software is terminated in the event of your +breach of this license. + +Feedback. Should you provide Intel with comments, modifications, corrections, +enhancements or other input (“Feedback”) related to the Software, Intel will be +free to use, disclose, reproduce, license or otherwise distribute or exploit the +Feedback in its sole discretion without any obligations or restrictions of any +kind, including without limitation, intellectual property rights or licensing +obligations. + +Compliance with laws. You agree to comply with all relevant laws and regulations +governing your use, transfer, import or export (or prohibition thereof) of the +Software. + +Governing law. All disputes will be governed by the laws of the United States of +America and the State of Delaware without reference to conflict of law +principles and subject to the exclusive jurisdiction of the state or federal +courts sitting in the State of Delaware, and each party agrees that it submits +to the personal jurisdiction and venue of those courts and waives any +objections. THE UNITED NATIONS CONVENTION ON CONTRACTS FOR THE INTERNATIONAL +SALE OF GOODS (1980) IS SPECIFICALLY EXCLUDED AND WILL NOT APPLY TO THE +SOFTWARE. diff --git a/meta-offline-voice-agent/licenses/LICENSE b/meta-offline-voice-agent/licenses/LICENSE new file mode 100644 index 00000000..d2555259 --- /dev/null +++ b/meta-offline-voice-agent/licenses/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 OpenAI + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/meta-offline-voice-agent/recipes-assistant/voiceagent-app/files/agl-app-flutter@flutter_voiceassistant.service b/meta-offline-voice-agent/recipes-assistant/voiceagent-app/files/agl-app-flutter@flutter_voiceassistant.service new file mode 100644 index 00000000..101326b3 --- /dev/null +++ b/meta-offline-voice-agent/recipes-assistant/voiceagent-app/files/agl-app-flutter@flutter_voiceassistant.service @@ -0,0 +1,9 @@ +[Unit] +Description=flutter_voiceassistant + +[Service] +Type=simple +User=agl-driver +EnvironmentFile=/etc/default/flutter +Environment=XDG_RUNTIME_DIR=/run/user/1001/ +ExecStart=/usr/bin/flutter-auto --b=/flutter/flutter_voiceassistant/${FLUTTER_VERSION}/${FLUTTER_RUNTIME} --xdg-shell-app-id=flutter_voiceassistant diff --git a/meta-offline-voice-agent/recipes-assistant/voiceagent-app/flutter-voiceassistant_git.bb b/meta-offline-voice-agent/recipes-assistant/voiceagent-app/flutter-voiceassistant_git.bb index edcb9fe4..67263790 100644 --- a/meta-offline-voice-agent/recipes-assistant/voiceagent-app/flutter-voiceassistant_git.bb +++ b/meta-offline-voice-agent/recipes-assistant/voiceagent-app/flutter-voiceassistant_git.bb @@ -8,12 +8,13 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=4202492ed9afcab3aaecc4a9ec32adb2" SRC_URI = "\ git://gerrit.automotivelinux.org/gerrit/apps/flutter-speechrecognition-demo;protocol=https;branch=${AGL_BRANCH} \ - " - + file://agl-app-flutter@flutter_voiceassistant.service \ +" + SRCREV = "${AUTOREV}" S = "${WORKDIR}/git" -inherit agl-app flutter-app +inherit agl-app flutter-app # flutter-app ############# @@ -25,4 +26,10 @@ FLUTTER_BUILD_ARGS = "bundle -v" ######### AGL_APP_TEMPLATE = "agl-app-flutter" AGL_APP_ID = "flutter_voiceassistant" -AGL_APP_NAME = "Voice Assistant"
\ No newline at end of file +AGL_APP_NAME = "Voice Assistant" + +do_install:append() { + install -D -m 0644 ${WORKDIR}/agl-app-flutter@flutter_voiceassistant.service ${D}${systemd_system_unitdir}/agl-app-flutter@flutter_voiceassistant.service +} + +FILES:${PN} += "${datadir} " diff --git a/meta-offline-voice-agent/recipes-assistant/voiceagent-service/agl-service-voiceagent_git.bb b/meta-offline-voice-agent/recipes-assistant/voiceagent-service/agl-service-voiceagent_git.bb index 7b6139d2..e1f1cc50 100644 --- a/meta-offline-voice-agent/recipes-assistant/voiceagent-service/agl-service-voiceagent_git.bb +++ b/meta-offline-voice-agent/recipes-assistant/voiceagent-service/agl-service-voiceagent_git.bb @@ -30,6 +30,7 @@ SYSTEMD_SERVICE:${PN} = "agl-service-voiceagent.service" do_compile:prepend() { # Generate proto files and move them to 'generated/' directory python3 -m grpc_tools.protoc -I${S}/agl_service_voiceagent/protos --python_out=${S}/agl_service_voiceagent/generated --grpc_python_out=${S}/agl_service_voiceagent/generated voice_agent.proto + python3 -m grpc_tools.protoc -I${S}/agl_service_voiceagent/protos --python_out=${S}/agl_service_voiceagent/generated --grpc_python_out=${S}/agl_service_voiceagent/generated audio_processing.proto # Replace all placeholders with actual values sed -i 's|PYTHON_DIR|${PYTHON_SITEPACKAGES_DIR}|g' ${S}/agl_service_voiceagent/config.ini @@ -62,9 +63,9 @@ RDEPENDS:${PN} += " \ python3-grpcio-tools \ python3-pygobject \ kuksa-client \ - python3-rasa \ python3-snips-inference-agl \ vosk \ + whisper \ " -FILES:${PN} += "/usr/share/nlu/"
\ No newline at end of file +FILES:${PN} += "/usr/share/nlu/" diff --git a/meta-offline-voice-agent/recipes-assistant/voiceagent-service/files/agl-service-voiceagent.service b/meta-offline-voice-agent/recipes-assistant/voiceagent-service/files/agl-service-voiceagent.service index 54139431..b4d738f8 100644 --- a/meta-offline-voice-agent/recipes-assistant/voiceagent-service/files/agl-service-voiceagent.service +++ b/meta-offline-voice-agent/recipes-assistant/voiceagent-service/files/agl-service-voiceagent.service @@ -1,11 +1,10 @@ [Unit] Description=AGL Voice Agent Service After=network.target -Requires=rasa-service.service [Service] ExecStart=/usr/bin/voiceagent-service run-server --default Restart=always [Install] -WantedBy=multi-user.target
\ No newline at end of file +WantedBy=multi-user.target diff --git a/meta-offline-voice-agent/recipes-blas/openblas/files/0001-Modify-makefile-for-yocto.patch b/meta-offline-voice-agent/recipes-blas/openblas/files/0001-Modify-makefile-for-yocto.patch deleted file mode 100644 index 4adb7939..00000000 --- a/meta-offline-voice-agent/recipes-blas/openblas/files/0001-Modify-makefile-for-yocto.patch +++ /dev/null @@ -1,44 +0,0 @@ -From bc9476ad859b7e582b89f532f5e84771d6e026d2 Mon Sep 17 00:00:00 2001 -From: Yongjoo Ahn <yongjoo1.ahn@samsung.com> -Date: Fri, 16 Oct 2020 14:22:38 +0900 -Subject: [PATCH] Modify makefile for yocto - -- Modify makefile for yocto make build support - -Signed-off-by: Yongjoo Ahn <yongjoo1.ahn@samsung.com> ---- - Makefile.install | 4 ++-- - Makefile.system | 2 +- - 2 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/Makefile.install b/Makefile.install -index dad869f4..1bfdb94b 100644 ---- a/Makefile.install -+++ b/Makefile.install -@@ -128,8 +128,8 @@ endif - - #Generating openblas.pc - @echo Generating openblas.pc in "$(DESTDIR)$(OPENBLAS_PKGCONFIG_DIR)" -- @echo 'libdir='$(OPENBLAS_LIBRARY_DIR) > "$(DESTDIR)$(OPENBLAS_PKGCONFIG_DIR)/openblas.pc" -- @echo 'includedir='$(OPENBLAS_INCLUDE_DIR) >> "$(DESTDIR)$(OPENBLAS_PKGCONFIG_DIR)/openblas.pc" -+ @echo 'libdir='$(libdir) > "$(DESTDIR)$(OPENBLAS_PKGCONFIG_DIR)/openblas.pc" -+ @echo 'includedir='$(includedir) >> "$(DESTDIR)$(OPENBLAS_PKGCONFIG_DIR)/openblas.pc" - @echo 'openblas_config= USE_64BITINT='$(USE_64BITINT) 'DYNAMIC_ARCH='$(DYNAMIC_ARCH) 'DYNAMIC_OLDER='$(DYNAMIC_OLDER) 'NO_CBLAS='$(NO_CBLAS) 'NO_LAPACK='$(NO_LAPACK) 'NO_LAPACKE='$(NO_LAPACKE) 'NO_AFFINITY='$(NO_AFFINITY) 'USE_OPENMP='$(USE_OPENMP) $(CORE) 'MAX_THREADS='$(NUM_THREADS)>> "$(DESTDIR)$(OPENBLAS_PKGCONFIG_DIR)/openblas.pc" - @echo 'version='$(VERSION) >> "$(DESTDIR)$(OPENBLAS_PKGCONFIG_DIR)/openblas.pc" - @echo 'extralib='$(EXTRALIB) >> "$(DESTDIR)$(OPENBLAS_PKGCONFIG_DIR)/openblas.pc" -diff --git a/Makefile.system b/Makefile.system -index 8d78b420..4d1eab68 100644 ---- a/Makefile.system -+++ b/Makefile.system -@@ -1184,7 +1184,7 @@ endif - - KERNELDIR = $(TOPDIR)/kernel/$(ARCH) - --include $(TOPDIR)/Makefile.$(ARCH) -+# include $(TOPDIR)/Makefile.$(ARCH) - - CCOMMON_OPT += -UASMNAME -UASMFNAME -UNAME -UCNAME -UCHAR_NAME -UCHAR_CNAME - CCOMMON_OPT += -DASMNAME=$(FU)$(*F) -DASMFNAME=$(FU)$(*F)$(BU) -DNAME=$(*F)$(BU) -DCNAME=$(*F) -DCHAR_NAME=\"$(*F)$(BU)\" -DCHAR_CNAME=\"$(*F)\" --- -2.17.1 - diff --git a/meta-offline-voice-agent/recipes-blas/openblas/openblas-native_0.3.20.bb b/meta-offline-voice-agent/recipes-blas/openblas/openblas-native_0.3.20.bb deleted file mode 100644 index ac14656f..00000000 --- a/meta-offline-voice-agent/recipes-blas/openblas/openblas-native_0.3.20.bb +++ /dev/null @@ -1,111 +0,0 @@ -# -# Copyright (c) 2016 Intel Corporation. All rights reserved. -# Copyright (c) 2019 Luxoft Sweden AB -# -# SPDX-License-Identifier: MIT -# - -DESCRIPTION = "OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version." -SUMMARY = "OpenBLAS : An optimized BLAS library" -AUTHOR = "Alexander Leiva <norxander@gmail.com>" -HOMEPAGE = "http://www.openblas.net/" -SECTION = "libs" -LICENSE = "BSD-3-Clause" - -DEPENDS += "make libgfortran patchelf-native" - -LIC_FILES_CHKSUM = "file://LICENSE;md5=5adf4792c949a00013ce25d476a2abc0" - -SRC_URI = "git://github.com/xianyi/OpenBLAS.git;protocol=https;branch=develop" - -S = "${WORKDIR}/git" -SRCREV = "0b678b19dc03f2a999d6e038814c4c50b9640a4e" - -# Used for TARGET=... , documented in TargetList.txt -BLAS_X86_ARCH ?= "ATOM" -BLAS_AARCH32_ARCH ?= "CORTEXA9" -BLAS_AARCH64_ARCH ?= "ARMV8" -BLAS_ARM_ARCH ?= "ARMV7" - -def map_arch(a, d): - import re - if re.match('i.86$', a): return d.getVar('BLAS_X86_ARCH') - elif re.match('x86_64$', a): return d.getVar('BLAS_X86_ARCH') - elif re.match('aarch32$', a): return d.getVar('BLAS_AARCH32_ARCH') - elif re.match('aarch64$', a): return d.getVar('BLAS_AARCH64_ARCH') - elif re.match('arm$', a): return d.getVar('BLAS_ARM_ARCH') - return a - -def map_bits(a, d): - import re - if re.match('i.86$', a): return 32 - elif re.match('x86_64$', a): return 64 - elif re.match('aarch32$', a): return 32 - elif re.match('aarch64$', a): return 64 - elif re.match('arm$', a): return 32 - return 32 - -def map_extra_options(a, d): - import re - if re.match('arm$', a): return '-mfpu=neon-vfpv4 -mfloat-abi=hard' - return '' - -PACKAGECONFIG[lapack] = "" -PACKAGECONFIG[lapacke] = "" -PACKAGECONFIG[cblas] = "" -PACKAGECONFIG[affinity] = "" -PACKAGECONFIG[openmp] = "" -PACKAGECONFIG[dynarch] = "" - -PACKAGECONFIG ??= "openmp" - -inherit native - -do_compile () { - oe_runmake HOSTCC="${BUILD_CC}" \ - CC="${TARGET_PREFIX}gcc ${TOOLCHAIN_OPTIONS} ${@map_extra_options(d.getVar('TARGET_ARCH', True), d)}" \ - PREFIX=${exec_prefix} \ - CROSS=1 \ - CROSS_SUFFIX=${HOST_PREFIX} \ - NO_STATIC=1 \ - ${@bb.utils.contains('PACKAGECONFIG', 'lapack', 'NO_LAPACK=0', 'NO_LAPACK=1', d)} \ - ${@bb.utils.contains('PACKAGECONFIG', 'lapacke', 'NO_LAPACKE=0', 'NO_LAPACKE=1', d)} \ - ${@bb.utils.contains('PACKAGECONFIG', 'cblas', 'NO_CBLAS=0', 'NO_CBLAS=1', d)} \ - ${@bb.utils.contains('PACKAGECONFIG', 'affinity', 'NO_AFFINITY=0', 'NO_AFFINITY=1', d)} \ - ${@bb.utils.contains('PACKAGECONFIG', 'openmp', 'USE_OPENMP=1', 'USE_OPENMP=0', d)} \ - ${@bb.utils.contains('PACKAGECONFIG', 'dynarch', 'DYNAMIC_ARCH=1', 'DYNAMIC_ARCH=0', d)} \ - BINARY='${@map_bits(d.getVar('TARGET_ARCH', True), d)}' \ - TARGET='${@map_arch(d.getVar('TARGET_ARCH', True), d)}' -} - -do_install() { - oe_runmake HOSTCC="${BUILD_CC}" \ - CC="${TARGET_PREFIX}gcc ${TOOLCHAIN_OPTIONS}" \ - PREFIX=${exec_prefix} \ - CROSS=1 \ - CROSS_SUFFIX=${HOST_PREFIX} \ - NO_STATIC=1 \ - ${@bb.utils.contains('PACKAGECONFIG', 'lapack', 'NO_LAPACK=0', 'NO_LAPACK=1', d)} \ - ${@bb.utils.contains('PACKAGECONFIG', 'lapacke', 'NO_LAPACKE=0', 'NO_LAPACKE=1', d)} \ - ${@bb.utils.contains('PACKAGECONFIG', 'cblas', 'NO_CBLAS=0', 'NO_CBLAS=1', d)} \ - ${@bb.utils.contains('PACKAGECONFIG', 'affinity', 'NO_AFFINITY=0', 'NO_AFFINITY=1', d)} \ - ${@bb.utils.contains('PACKAGECONFIG', 'openmp', 'USE_OPENMP=1', 'USE_OPENMP=0', d)} \ - ${@bb.utils.contains('PACKAGECONFIG', 'dynarch', 'DYNAMIC_ARCH=1', 'DYNAMIC_ARCH=0', d)} \ - BINARY='${@map_bits(d.getVar('TARGET_ARCH', True), d)}' \ - TARGET='${@map_arch(d.getVar('TARGET_ARCH', True), d)}' \ - DESTDIR=${D} \ - install - - - rm -rf ${D}${bindir} - - cd ${D}${libdir} - cp -ar libopenblas*r*.so libblas.so.3 - patchelf --set-soname libblas.so.3 libblas.so.3 - ln -s libblas.so.3 libblas.so -} - -FILES:${PN} = "${libdir}/lib*" -FILES:${PN}-dev = "${includedir} ${libdir}/lib${PN}.a ${libdir}/libblas.a ${libdir}/cmake ${libdir}/pkgconfig ${libdir}/libopenblas.so ${libdir}/libblas.so" - -DEPENDS:remove:class-native = "libgfortran" diff --git a/meta-offline-voice-agent/recipes-blas/openblas/openblas_git.bb b/meta-offline-voice-agent/recipes-blas/openblas/openblas_git.bb deleted file mode 100644 index 7f105e26..00000000 --- a/meta-offline-voice-agent/recipes-blas/openblas/openblas_git.bb +++ /dev/null @@ -1,64 +0,0 @@ -DESCRIPTION = "OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version." -SUMMARY = "OpenBLAS : An optimized BLAS library" -HOMEPAGE = "http://www.openblas.net/" -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://LICENSE;md5=5adf4792c949a00013ce25d476a2abc0" - -SRC_URI = "\ - git://github.com/xianyi/OpenBLAS;protocol=https;branch=develop \ -" - -# tag 0.3.20 -SRCREV = "0b678b19dc03f2a999d6e038814c4c50b9640a4e" -S = "${WORKDIR}/git" - -DEPENDS += "libgfortran" - -def map_arch(d): - import re - arch = d.getVar('TARGET_ARCH', True) - if re.match('i.86$', arch): return 'ATOM' - elif re.match('x86_64$', arch): return 'ATOM' - elif re.match('aarch32$', arch): return 'CORTEXA9' - elif re.match('aarch64$', arch): return 'ARMV8' - return 'CORTEXA15' - -def map_bits(d): - import re - arch = d.getVar('TARGET_ARCH', True) - if re.match('i.86$', arch): return 32 - elif re.match('x86_64$', arch): return 64 - elif re.match('aarch32$', arch): return 32 - elif re.match('aarch64$', arch): return 64 - return 32 - -EXTRA_OEMAKE = "\ - BUILD_WITHOUT_LAPACK=OFF \ - HOSTCC=${BUILD_CC} \ - CROSS=1 \ - CROSS_SUFFIX=${TARGET_PREFIX} \ - BINARY=${@map_bits(d)} \ - TARGET=${@map_arch(d)} \ - OPENBLAS_LIBRARY_DIR=${D}${libdir} \ - DYNAMIC_ARCH=ON \ - BUILD_STATIC_LIBS=ON \ - USE_LOCKING=1 \ - USE_THREAD=0 \ -" - -do_install() { - oe_runmake PREFIX=${D}${prefix} install - rm -rf ${D}${bindir} ${D}${libdir}/cmake - - # fixup pkgconfig file - sed -i -e "s#libdir=/.*#libdir=${libdir}#" ${D}${libdir}/pkgconfig/openblas.pc - sed -i -e "s#includedir=/.*#includedir=${includedir}#" ${D}${libdir}/pkgconfig/openblas.pc - - cat ${D}${libdir}/pkgconfig/openblas.pc - - # Create symlink from libblas.so to libopenblas.so.0, required by scipy - ln -s libopenblas.so.0 ${D}${libdir}/libblas.so -} - -FILES:${PN} = "${libdir}/*" -FILES:${PN}-dev = "${includedir} ${libdir}/libopenblas.so ${libdir}/libblas.so" diff --git a/meta-offline-voice-agent/recipes-devtools/recipes-intel/files/0001-Add-new-DG2-device-IDs-194.patch b/meta-offline-voice-agent/recipes-devtools/recipes-intel/files/0001-Add-new-DG2-device-IDs-194.patch new file mode 100644 index 00000000..825c1f18 --- /dev/null +++ b/meta-offline-voice-agent/recipes-devtools/recipes-intel/files/0001-Add-new-DG2-device-IDs-194.patch @@ -0,0 +1,37 @@ +From 8729d66800995a9b7e693bd78249932bd12383e1 Mon Sep 17 00:00:00 2001 +From: John Machado <john.machado@intel.com> +Date: Mon, 25 Mar 2024 11:13:27 +0530 +Subject: [PATCH] Add new DG2 device IDs (#194) + +Upstream-Status: Backport [https://github.com/intel/gmmlib/commit/dcc4b85ea3728c848b62fbb164c00f43b519b6fb] + +Signed-off-by: Hoe, Sheng Yang <sheng.yang.hoe@intel.com> +--- + Source/inc/common/igfxfmid.h | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/Source/inc/common/igfxfmid.h b/Source/inc/common/igfxfmid.h +index 7969779..8e2c955 100644 +--- a/Source/inc/common/igfxfmid.h ++++ b/Source/inc/common/igfxfmid.h +@@ -1932,6 +1932,8 @@ typedef enum __NATIVEGTTYPE + #define DEV_ID_56BB 0x56BB + #define DEV_ID_56BC 0x56BC + #define DEV_ID_56BD 0x56BD ++#define DEV_ID_56BE 0x56BE ++#define DEV_ID_56BF 0x56BF + #define DEV_ID_56C0 0x56C0 + #define DEV_ID_56C1 0x56C1 + +@@ -1992,6 +1994,8 @@ typedef enum __NATIVEGTTYPE + ( d == DEV_ID_5690 ) || \ + ( d == DEV_ID_5691 ) || \ + ( d == DEV_ID_5692 ) || \ ++ ( d == DEV_ID_56BE ) || \ ++ ( d == DEV_ID_56BF ) || \ + ( d == DEV_ID_56C0 ) || \ + ( d == DEV_ID_4F80 ) || \ + ( d == DEV_ID_4F81 ) || \ +-- +2.34.1 + diff --git a/meta-offline-voice-agent/recipes-devtools/recipes-intel/files/0001-BiF-CMakeLists.txt-remove-opt-from-DEPENDS.patch b/meta-offline-voice-agent/recipes-devtools/recipes-intel/files/0001-BiF-CMakeLists.txt-remove-opt-from-DEPENDS.patch new file mode 100644 index 00000000..377081fd --- /dev/null +++ b/meta-offline-voice-agent/recipes-devtools/recipes-intel/files/0001-BiF-CMakeLists.txt-remove-opt-from-DEPENDS.patch @@ -0,0 +1,35 @@ +From 3d71670f8ad5b54d434c2f5f71713bb1d5433ae4 Mon Sep 17 00:00:00 2001 +From: Anuj Mittal <anuj.mittal@intel.com> +Date: Tue, 12 Oct 2021 23:46:42 +0800 +Subject: [PATCH] BiF/CMakeLists.txt: remove opt from DEPENDS + +Otherwise it starts failing with: + +| ninja: error: 'IGC/VectorCompiler/lib/BiF/opt', needed by 'IGC/VectorCompiler/lib/BiF/VCBiFPrintfOCL32.opt.bc', missing and no known rule to make it + +We don't need to explicitly make sure opt is built when +using prebuilt binaries. + +Upstream-Status: Inappropriate + +Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> +--- + IGC/VectorCompiler/lib/BiF/cmake/Functions.cmake | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/IGC/VectorCompiler/lib/BiF/cmake/Functions.cmake b/IGC/VectorCompiler/lib/BiF/cmake/Functions.cmake +index d20d7f887..882e09fea 100644 +--- a/IGC/VectorCompiler/lib/BiF/cmake/Functions.cmake ++++ b/IGC/VectorCompiler/lib/BiF/cmake/Functions.cmake +@@ -109,7 +109,7 @@ function(vc_build_bif TARGET RES_FILE CMCL_SRC_PATH BIF_NAME PTR_BIT_SIZE) + COMMENT "vc_build_bif: Translating CMCL builtins: ${BIF_CLANG_BC_NAME_FINAL} -> ${BIF_OPT_BC_NAME}" + COMMAND CMCLTranslatorTool -o ${BIF_CMCL_BC_NAME} ${BIF_CLANG_BC_NAME_FINAL} + COMMAND ${LLVM_OPT_EXE} ${IGC_LLVM_DEPENDENT_OPT_FLAGS} --O2 -o ${BIF_OPT_BC_NAME} ${BIF_CMCL_BC_NAME} +- DEPENDS CMCLTranslatorTool ${LLVM_OPT_EXE} ${BIF_CLANG_BC_PATH_FINAL} ++ DEPENDS CMCLTranslatorTool ${BIF_CLANG_BC_PATH_FINAL} + BYPRODUCTS ${BIF_OPT_BC_PATH} + SOURCES ${CMCL_SRC_PATH}) + set(${RES_FILE} ${BIF_OPT_BC_NAME} PARENT_SCOPE) +-- +2.43.2 + diff --git a/meta-offline-voice-agent/recipes-devtools/recipes-intel/files/0001-Introduce-ARL-H-support-172.patch b/meta-offline-voice-agent/recipes-devtools/recipes-intel/files/0001-Introduce-ARL-H-support-172.patch new file mode 100644 index 00000000..ab4cb178 --- /dev/null +++ b/meta-offline-voice-agent/recipes-devtools/recipes-intel/files/0001-Introduce-ARL-H-support-172.patch @@ -0,0 +1,42 @@ +From 2b267b72d6aaa922861b120da9c1543161797046 Mon Sep 17 00:00:00 2001 +From: John Machado <john.machado@intel.com> +Date: Fri, 9 Feb 2024 13:10:18 +0530 +Subject: [PATCH] Introduce ARL-H support (#172) + +Upstream-Status: Backport [https://github.com/intel/gmmlib/commit/544a8be6f66631e085c86c453aafd78b0e7f5179] +Signed-off-by: Lim Siew Hoon <siew.hoon.lim@intel.com> +--- + Source/inc/common/igfxfmid.h | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +diff --git a/Source/inc/common/igfxfmid.h b/Source/inc/common/igfxfmid.h +index 99fc624..19aa505 100644 +--- a/Source/inc/common/igfxfmid.h ++++ b/Source/inc/common/igfxfmid.h +@@ -1966,6 +1966,11 @@ typedef enum __NATIVEGTTYPE + // ARL-S + #define DEV_ID_7D67 0x7D67 + ++// ARL-H ++#define DEV_ID_7D41 0x7D41 ++#define DEV_ID_7D51 0x7D51 ++#define DEV_ID_7DD1 0x7DD1 ++ + #define MGM_HAS 0 + + //#define SDG_HAS 1 //Reserve place for Springdale-G HAS +@@ -2012,6 +2017,11 @@ typedef enum __NATIVEGTTYPE + // Macro to identify ARL-S Device ID + #define GFX_IS_ARL_S(d) ( ( d == DEV_ID_7D67 ) ) + ++// Macro to identify ARL-H Device ID ++#define GFX_IS_ARL_H(d) ( ( d == DEV_ID_7D41 ) || \ ++ ( d == DEV_ID_7D51 ) || \ ++ ( d == DEV_ID_7DD1 )) ++ + //we define the highest cap and lower cap of stepping IDs + #define SI_REV_ID(lo,hi) (lo | hi<<16) + +-- +2.40.1 + diff --git a/meta-offline-voice-agent/recipes-devtools/recipes-intel/files/0001-external-SPIRV-Tools-change-path-to-tools-and-header.patch b/meta-offline-voice-agent/recipes-devtools/recipes-intel/files/0001-external-SPIRV-Tools-change-path-to-tools-and-header.patch new file mode 100644 index 00000000..dca75e22 --- /dev/null +++ b/meta-offline-voice-agent/recipes-devtools/recipes-intel/files/0001-external-SPIRV-Tools-change-path-to-tools-and-header.patch @@ -0,0 +1,31 @@ +From e69a3181482e5f442756a61c7b683914072884f1 Mon Sep 17 00:00:00 2001 +From: Anuj Mittal <anuj.mittal@intel.com> +Date: Mon, 9 Jan 2023 11:43:05 +0800 +Subject: [PATCH] external/SPIRV-Tools: change path to tools and headers + +We clone the SPIRV headers and tools in a different directory to ensure +file path substitutions take place. + +Upstream-Status: Inappropriate + +Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> + +--- + external/SPIRV-Tools/CMakeLists.txt | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/external/SPIRV-Tools/CMakeLists.txt b/external/SPIRV-Tools/CMakeLists.txt +index 9afa5746c..7ca24d5dc 100644 +--- a/external/SPIRV-Tools/CMakeLists.txt ++++ b/external/SPIRV-Tools/CMakeLists.txt +@@ -43,8 +43,8 @@ else() #By default use build from sources + message(STATUS "[SPIRV-Tools] : Building from source") + message(STATUS "[SPIRV-Tools] : Current source dir: ${CMAKE_CURRENT_SOURCE_DIR}") + +- set(SPIRV-Headers_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../SPIRV-Headers") # used in subdirectory +- set(SPIRV-Tools_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../SPIRV-Tools") ++ set(SPIRV-Headers_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../SPIRV-Headers") # used in subdirectory ++ set(SPIRV-Tools_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../SPIRV-Tools") + + set(SPIRV-Tools_OUTPUT_DIR "${IGC_OPTION__OUTPUT_DIR}/external/SPIRV-Tools/build") + set(IGC_BUILD__SPIRV-Headers_DIR "${SPIRV-Headers_SOURCE_DIR}") diff --git a/meta-offline-voice-agent/recipes-devtools/recipes-intel/files/0001-fix-tblgen.patch b/meta-offline-voice-agent/recipes-devtools/recipes-intel/files/0001-fix-tblgen.patch new file mode 100644 index 00000000..39443931 --- /dev/null +++ b/meta-offline-voice-agent/recipes-devtools/recipes-intel/files/0001-fix-tblgen.patch @@ -0,0 +1,24 @@ +From 5648568e597acd0fed82aac3e6aef0f95a1b78d1 Mon Sep 17 00:00:00 2001 +From: Anuj Mittal <anuj.mittal@intel.com> +Date: Thu, 19 May 2022 22:50:09 +0800 +Subject: [PATCH] fix tblgen + +Upstream-Status: Inappropriate [OE specific] + +--- + IGC/cmake/igc_llvm.cmake | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/IGC/cmake/igc_llvm.cmake b/IGC/cmake/igc_llvm.cmake +index 10322533c..9020cb3c8 100644 +--- a/IGC/cmake/igc_llvm.cmake ++++ b/IGC/cmake/igc_llvm.cmake +@@ -52,7 +52,7 @@ else() + set(LLVM_OPT_EXE "opt" CACHE STRING "") + + set(LLVM_TABLEGEN_EXE "llvm-tblgen") +- if(CMAKE_CROSSCOMPILING) ++ if(TRUE) + if(DEFINED LLVM_TABLEGEN) + set(LLVM_TABLEGEN_EXE ${LLVM_TABLEGEN}) + else() diff --git a/meta-offline-voice-agent/recipes-devtools/recipes-intel/files/0003-Improve-Reproducibility-for-src-package.patch b/meta-offline-voice-agent/recipes-devtools/recipes-intel/files/0003-Improve-Reproducibility-for-src-package.patch new file mode 100644 index 00000000..650130a8 --- /dev/null +++ b/meta-offline-voice-agent/recipes-devtools/recipes-intel/files/0003-Improve-Reproducibility-for-src-package.patch @@ -0,0 +1,34 @@ +From 0559332abd04b6c8bc70171d201f43d2e4735336 Mon Sep 17 00:00:00 2001 +From: Lee Chee Yang <chee.yang.lee@intel.com> +Date: Wed, 2 Sep 2020 08:28:35 +0800 +Subject: [PATCH] Improve Reproducibility for src package + +Improve reproducibility for intel-graphics-compiler-src package. +needs to pass build path as environment variable to the build. +this only works on bison 3.7 onward, hence check for bison version +before adding the flags. +Upstream-Status: Inappropriate [applying --file-prefix-map in such way does not work for upstream] +Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com> + +--- + visa/CMakeLists.txt | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/visa/CMakeLists.txt b/visa/CMakeLists.txt +index 6be467587..930c386a6 100644 +--- a/visa/CMakeLists.txt ++++ b/visa/CMakeLists.txt +@@ -123,8 +123,11 @@ endif() + set(bison_output_file ${CMAKE_CURRENT_BINARY_DIR}/CISA.tab.cpp) + set(flex_output_file ${CMAKE_CURRENT_BINARY_DIR}/lex.CISA.cpp) + +-BISON_TARGET(CISAParser CISA.y ${bison_output_file} COMPILE_FLAGS "-vt -p CISA") +-FLEX_TARGET(CISAScanner CISA.l ${flex_output_file} COMPILE_FLAGS "-PCISA ${WIN_FLEX_FLAG}") ++if(BISON_VERSION VERSION_GREATER_EQUAL "3.7.0") ++ set(BISON_EXTRA_FLAGS " --file-prefix-map=$ENV{B}=/igc/ ") ++endif() ++BISON_TARGET(CISAParser CISA.y ${bison_output_file} COMPILE_FLAGS "-l -vt -p CISA ${BISON_EXTRA_FLAGS} ") ++FLEX_TARGET(CISAScanner CISA.l ${flex_output_file} COMPILE_FLAGS "-PCISA -L ${WIN_FLEX_FLAG} ") + ADD_FLEX_BISON_DEPENDENCY(CISAScanner CISAParser) + set(CISAScanner_dependencies) + diff --git a/meta-offline-voice-agent/recipes-devtools/recipes-intel/files/intel-oneapi-runtime.conf b/meta-offline-voice-agent/recipes-devtools/recipes-intel/files/intel-oneapi-runtime.conf new file mode 100644 index 00000000..5faf9854 --- /dev/null +++ b/meta-offline-voice-agent/recipes-devtools/recipes-intel/files/intel-oneapi-runtime.conf @@ -0,0 +1,4 @@ +/opt/intel/oneapi/lib +/opt/intel/oneapi/lib/intel64 +/opt/intel/oneapi/lib/ia32 +/opt/intel/oneapi/lib/emu diff --git a/meta-offline-voice-agent/recipes-devtools/recipes-intel/gmmlib_22.3.15.bb b/meta-offline-voice-agent/recipes-devtools/recipes-intel/gmmlib_22.3.15.bb new file mode 100644 index 00000000..875fbaf5 --- /dev/null +++ b/meta-offline-voice-agent/recipes-devtools/recipes-intel/gmmlib_22.3.15.bb @@ -0,0 +1,27 @@ +SUMMARY = "Intel(R) Graphics Memory Management Library" +DESCRIPTION = "The Intel(R) Graphics Memory Management Library provides \ +device specific and buffer management for the Intel(R) Graphics \ +Compute Runtime for OpenCL(TM) and the Intel(R) Media Driver for VAAPI." + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE.md;md5=465fe90caea3edd6a2cecb3f0c28a654" + +SRC_URI = " \ + git://github.com/intel/gmmlib.git;protocol=https;branch=master \ + file://0001-Introduce-ARL-H-support-172.patch \ + file://0001-Add-new-DG2-device-IDs-194.patch \ + " + +SRCREV = "5fb4180e22695ad4e3c155cf680119913c9f44bc" + +S = "${WORKDIR}/git" + +COMPATIBLE_HOST:x86-x32 = "null" + +UPSTREAM_CHECK_GITTAGREGEX = "^intel-gmmlib-(?P<pver>(\d+(\.\d+)+))$" + +inherit pkgconfig cmake + +EXTRA_OECMAKE += "-DRUN_TEST_SUITE=OFF" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-offline-voice-agent/recipes-devtools/recipes-intel/intel-compute-runtime/allow-to-find-cpp-generation-tool.patch b/meta-offline-voice-agent/recipes-devtools/recipes-intel/intel-compute-runtime/allow-to-find-cpp-generation-tool.patch new file mode 100644 index 00000000..265fcfa2 --- /dev/null +++ b/meta-offline-voice-agent/recipes-devtools/recipes-intel/intel-compute-runtime/allow-to-find-cpp-generation-tool.patch @@ -0,0 +1,51 @@ +From a6361d635e5f3046853883f3ac06fb175116933c Mon Sep 17 00:00:00 2001 +From: Dongwon Kim <dongwon.kim@intel.com> +Date: Sat, 21 Aug 2021 16:09:39 -0700 +Subject: [PATCH] Build not able to locate cpp_generation_tool. + +Upstream-Status: Inappropriate [oe specific] + +Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com> +Signed-off-by: Dongwon Kim <dongwon.kim@intel.com> +--- + shared/source/built_ins/kernels/CMakeLists.txt | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/shared/source/built_ins/kernels/CMakeLists.txt b/shared/source/built_ins/kernels/CMakeLists.txt +index ed85a37c52..f7c9e79137 100644 +--- a/shared/source/built_ins/kernels/CMakeLists.txt ++++ b/shared/source/built_ins/kernels/CMakeLists.txt +@@ -107,9 +107,9 @@ function(compile_builtin core_type platform_it builtin bits builtin_options mode + ) + add_custom_command( + OUTPUT ${OUTPUT_FILE_CPP} +- COMMAND $<TARGET_FILE:cpp_generate_tool> --file ${BINARY_OUTPUT}.bin --output ${OUTPUT_FILE_CPP} --array ${mode}_${BASENAME} --device ${RELEASE_FILENAME} ++ COMMAND cpp_generate_tool --file ${BINARY_OUTPUT}.bin --output ${OUTPUT_FILE_CPP} --array ${mode}_${BASENAME} --device ${RELEASE_FILENAME} + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} +- DEPENDS ${OUTPUT_FILES_BINARIES} $<TARGET_FILE:cpp_generate_tool> ++ DEPENDS ${OUTPUT_FILES_BINARIES} cpp_generate_tool + ) + list(APPEND BUILTINS_COMMANDS "${OUTPUT_FILE_CPP}") + else() +@@ -159,9 +159,9 @@ function(generate_cpp_spirv builtin) + ) + add_custom_command( + OUTPUT ${OUTPUT_FILE_CPP} +- COMMAND $<TARGET_FILE:cpp_generate_tool> --file ${GENERATED_SPV_INPUT} --output ${OUTPUT_FILE_CPP} --array ${BASENAME} ++ COMMAND cpp_generate_tool --file ${GENERATED_SPV_INPUT} --output ${OUTPUT_FILE_CPP} --array ${BASENAME} + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} +- DEPENDS ${GENERATED_SPV_INPUT} $<TARGET_FILE:cpp_generate_tool> ++ DEPENDS ${GENERATED_SPV_INPUT} cpp_generate_tool + ) + set(OUTPUT_LIST_CPP_FILES ${OUTPUT_LIST_CPP_FILES} ${OUTPUT_FILE_CPP} PARENT_SCOPE) + else() +@@ -277,4 +277,4 @@ if(NOT "${OUTPUT_LIST_CPP_FILES}" STREQUAL "") + ) + endif() + +-apply_macro_for_each_core_type("SUPPORTED") +\ No newline at end of file ++apply_macro_for_each_core_type("SUPPORTED") +-- +2.43.2 + diff --git a/meta-offline-voice-agent/recipes-devtools/recipes-intel/intel-compute-runtime/disable-werror.patch b/meta-offline-voice-agent/recipes-devtools/recipes-intel/intel-compute-runtime/disable-werror.patch new file mode 100644 index 00000000..20d9b847 --- /dev/null +++ b/meta-offline-voice-agent/recipes-devtools/recipes-intel/intel-compute-runtime/disable-werror.patch @@ -0,0 +1,16 @@ +Upstream-Status: Inappropriate +Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index d52e089778..bc0cf35014 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -727,7 +727,7 @@ if(NOT MSVC) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-noexcept-type") # Added for gtest + endif() + endif() +- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror -Werror=vla") ++ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror=vla") + + if(USE_SANITIZE_UB) + check_cxx_compiler_flag(-fsanitize=undefined COMPILER_SUPPORTS_UNDEFINED_BEHAVIOR_SANITIZER) diff --git a/meta-offline-voice-agent/recipes-devtools/recipes-intel/intel-compute-runtime/external-ocloc.patch b/meta-offline-voice-agent/recipes-devtools/recipes-intel/intel-compute-runtime/external-ocloc.patch new file mode 100644 index 00000000..5f93b7b6 --- /dev/null +++ b/meta-offline-voice-agent/recipes-devtools/recipes-intel/intel-compute-runtime/external-ocloc.patch @@ -0,0 +1,40 @@ +From 1f58c22992ddea4167b01b44448528de427f50d5 Mon Sep 17 00:00:00 2001 +From: Dongwon Kim <dongwon.kim@intel.com> +Date: Wed, 2 Mar 2022 15:52:45 -0800 +Subject: [PATCH] external ocloc + +Upstream-Status: Inappropriate + +Signed-off-by: Dongwon Kim <dongwon.kim@intel.com> +--- + cmake/ocloc_cmd_prefix.cmake | 14 ++++++++------ + 1 file changed, 8 insertions(+), 6 deletions(-) + +diff --git a/cmake/ocloc_cmd_prefix.cmake b/cmake/ocloc_cmd_prefix.cmake +index 2b44330831..03067c9df0 100644 +--- a/cmake/ocloc_cmd_prefix.cmake ++++ b/cmake/ocloc_cmd_prefix.cmake +@@ -4,12 +4,14 @@ + # SPDX-License-Identifier: MIT + # + +-if(WIN32) +- set(ocloc_cmd_prefix ocloc) +-else() +- if(DEFINED NEO__IGC_LIBRARY_PATH) +- set(ocloc_cmd_prefix ${CMAKE_COMMAND} -E env "LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${NEO__IGC_LIBRARY_PATH}:$<TARGET_FILE_DIR:ocloc_lib>" $<TARGET_FILE:ocloc>) ++if(NOT DEFINED ocloc_cmd_prefix) ++ if(WIN32) ++ set(ocloc_cmd_prefix ocloc) + else() +- set(ocloc_cmd_prefix ${CMAKE_COMMAND} -E env "LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$<TARGET_FILE_DIR:ocloc_lib>" $<TARGET_FILE:ocloc>) ++ if(DEFINED NEO__IGC_LIBRARY_PATH) ++ set(ocloc_cmd_prefix LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${NEO__IGC_LIBRARY_PATH}:$<TARGET_FILE_DIR:ocloc_lib> $<TARGET_FILE:ocloc>) ++ else() ++ set(ocloc_cmd_prefix LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$<TARGET_FILE_DIR:ocloc_lib> $<TARGET_FILE:ocloc>) ++ endif() + endif() + endif() +-- +2.37.3 + diff --git a/meta-offline-voice-agent/recipes-devtools/recipes-intel/intel-compute-runtime_24.13.29138.7.bb b/meta-offline-voice-agent/recipes-devtools/recipes-intel/intel-compute-runtime_24.13.29138.7.bb new file mode 100644 index 00000000..5214d5cf --- /dev/null +++ b/meta-offline-voice-agent/recipes-devtools/recipes-intel/intel-compute-runtime_24.13.29138.7.bb @@ -0,0 +1,64 @@ +SUMMARY = "The Intel(R) Graphics Compute Runtime for OpenCL(TM)" +DESCRIPTION = "The Intel(R) Graphics Compute Runtime for OpenCL(TM) \ +is an open source project to converge Intel's development efforts \ +on OpenCL(TM) compute stacks supporting the GEN graphics hardware \ +architecture." + +LICENSE = "MIT & Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE.md;md5=eca6ec6997e18db166db7109cdbe611c \ + file://third_party/opencl_headers/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" + +SRC_URI = "git://github.com/intel/compute-runtime.git;protocol=https;branch=releases/24.13 \ + file://disable-werror.patch \ + file://allow-to-find-cpp-generation-tool.patch \ + file://external-ocloc.patch \ + " + +SRCREV = "7131387cdbb02d480a225c70daef913a6c024a6e" + +S = "${WORKDIR}/git" + +DEPENDS += " intel-graphics-compiler gmmlib libva qemu-native" + +RDEPENDS:${PN} += " intel-graphics-compiler gmmlib" + +inherit cmake pkgconfig qemu + +COMPATIBLE_HOST = '(x86_64).*-linux' +COMPATIBLE_HOST:libc-musl = "null" + +EXTRA_OECMAKE = " \ + -DIGC_DIR=${STAGING_INCDIR}/igc \ + -DBUILD_TYPE=Release \ + -DSKIP_UNIT_TESTS=1 \ + -DCCACHE_ALLOWED=FALSE \ + -DNEO_DISABLE_LD_LLD=ON \ + -DNEO_DISABLE_LD_GOLD=ON \ + " + +EXTRA_OECMAKE:append:class-target = " \ + -Docloc_cmd_prefix=ocloc \ + -DCMAKE_CROSSCOMPILING_EMULATOR=${WORKDIR}/qemuwrapper \ + " + +PACKAGECONFIG ??= "" +PACKAGECONFIG[levelzero] = "-DBUILD_WITH_L0=ON, -DBUILD_WITH_L0=OFF, level-zero" + +do_configure:prepend:class-target () { + # Write out a qemu wrapper that will be used by cmake. + qemu_binary="${@qemu_wrapper_cmdline(d, d.getVar('STAGING_DIR_HOST'), [d.expand('${B}/bin'),d.expand('${STAGING_DIR_HOST}${libdir}'),d.expand('${STAGING_DIR_HOST}${base_libdir}')])}" + cat > ${WORKDIR}/qemuwrapper << EOF +#!/bin/sh +$qemu_binary "\$@" +EOF + chmod +x ${WORKDIR}/qemuwrapper +} + +FILES:${PN} += " \ + ${libdir}/intel-opencl/libigdrcl.so \ + ${libdir}/libocloc.so \ + " + +FILES:${PN}-dev = "${includedir}" + +UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)" diff --git a/meta-offline-voice-agent/recipes-devtools/recipes-intel/intel-graphics-compiler_1.0.16510.2.bb b/meta-offline-voice-agent/recipes-devtools/recipes-intel/intel-graphics-compiler_1.0.16510.2.bb new file mode 100644 index 00000000..24eb97bd --- /dev/null +++ b/meta-offline-voice-agent/recipes-devtools/recipes-intel/intel-graphics-compiler_1.0.16510.2.bb @@ -0,0 +1,75 @@ +SUMMARY = "The Intel(R) Graphics Compiler for OpenCL(TM)" +DESCRIPTION = "The Intel(R) Graphics Compiler for OpenCL(TM) is an \ +llvm based compiler for OpenCL(TM) targeting Intel Gen graphics \ +hardware architecture." + +LICENSE = "MIT & Apache-2.0" +LIC_FILES_CHKSUM = "file://IGC/BiFModule/Implementation/ExternalLibraries/libclc/LICENSE.TXT;md5=311cfc1a5b54bab8ed34a0b5fba4373e \ + file://LICENSE.md;md5=488d74376edf2765f6e78d271543dde3 \ + file://NOTICES.txt;md5=b81a52411c84df3419f20bad4d755880" + +SRC_URI = "git://github.com/intel/intel-graphics-compiler.git;protocol=https;name=igc;branch=releases/igc-1.0.16510 \ + git://github.com/intel/vc-intrinsics.git;protocol=https;destsuffix=git/vc-intrinsics;name=vc;nobranch=1 \ + git://github.com/KhronosGroup/SPIRV-Tools.git;protocol=https;destsuffix=git/SPIRV-Tools;name=spirv-tools;branch=main \ + git://github.com/KhronosGroup/SPIRV-Headers.git;protocol=https;destsuffix=git/SPIRV-Headers;name=spirv-headers;branch=main \ + file://0003-Improve-Reproducibility-for-src-package.patch \ + file://0001-BiF-CMakeLists.txt-remove-opt-from-DEPENDS.patch \ + file://0001-external-SPIRV-Tools-change-path-to-tools-and-header.patch \ + " + +SRC_URI:append:class-native = " file://0001-fix-tblgen.patch" + +SRCREV_igc = "c2495d45f37fadd963ad22eb0cc1a8235a306775" +SRCREV_vc = "f9c34404d0ea9abad83875a10bd48d88cea90ebd" +SRCREV_spirv-tools = "f0cc85efdbbe3a46eae90e0f915dc1509836d0fc" +SRCREV_spirv-headers = "1c6bb2743599e6eb6f37b2969acc0aef812e32e3" + +SRCREV_FORMAT = "igc_vc_spirv-tools_spirv-headers" + +# Used to replace with relative path in reproducibility patch +export B + +S = "${WORKDIR}/git" + +inherit cmake pkgconfig qemu python3native + +CXXFLAGS:append = " -Wno-error=nonnull" + +COMPATIBLE_HOST = '(x86_64).*-linux' +COMPATIBLE_HOST:libc-musl = "null" + +DEPENDS += " flex-native bison-native clang clang-cross-x86_64 opencl-clang qemu-native python3-mako-native" + +RDEPENDS:${PN} += "opencl-clang" + +PACKAGECONFIG ??= "vc" +PACKAGECONFIG[vc] = "-DIGC_BUILD__VC_ENABLED=ON -DIGC_OPTION__LINK_KHRONOS_SPIRV_TRANSLATOR=ON -DIGC_OPTION__SPIRV_TRANSLATOR_MODE=Prebuilds,-DIGC_BUILD__VC_ENABLED=OFF," + +EXTRA_OECMAKE = " \ + -DIGC_OPTION__LLVM_PREFERRED_VERSION=${LLVMVERSION} \ + -DVC_INTRINSICS_SRC="${S}/vc-intrinsics" \ + -DIGC_OPTION__LLVM_MODE=Prebuilds \ + -DLLVM_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-tblgen \ + -DLLVM_LINK_EXE=${STAGING_BINDIR_NATIVE}/llvm-link \ + -DCLANG_EXE=${STAGING_BINDIR_NATIVE}/clang \ + -DCMAKE_CROSSCOMPILING_EMULATOR=${WORKDIR}/qemuwrapper \ + " + +do_configure:prepend:class-target () { + # Write out a qemu wrapper that will be used by cmake. + qemu_binary="${@qemu_wrapper_cmdline(d, d.getVar('STAGING_DIR_HOST'), [d.expand('${STAGING_DIR_HOST}${libdir}'),d.expand('${STAGING_DIR_HOST}${base_libdir}')])}" + cat > ${WORKDIR}/qemuwrapper << EOF +#!/bin/sh +$qemu_binary "\$@" +EOF + chmod +x ${WORKDIR}/qemuwrapper +} + +UPSTREAM_CHECK_GITTAGREGEX = "^igc-(?P<pver>(?!19\..*)\d+(\.\d+)+)$" + +FILES:${PN} += " \ + ${libdir}/igc/NOTICES.txt \ + " + +# libigc.so contains buildpaths +INSANE_SKIP:${PN} += "buildpaths" diff --git a/meta-offline-voice-agent/recipes-devtools/recipes-intel/intel-oneapi-dpcpp-cpp-runtime_2024.0.0-49819.bb b/meta-offline-voice-agent/recipes-devtools/recipes-intel/intel-oneapi-dpcpp-cpp-runtime_2024.0.0-49819.bb new file mode 100644 index 00000000..c48fdca4 --- /dev/null +++ b/meta-offline-voice-agent/recipes-devtools/recipes-intel/intel-oneapi-dpcpp-cpp-runtime_2024.0.0-49819.bb @@ -0,0 +1,54 @@ +SUMMARY = "Intel® oneAPI DPC++/C++ Compiler runtime files" +DESCRIPTION = "The Intel® oneAPI DPC++/C++ Compiler provides optimizations \ +that help your applications run faster on Intel® 64 architectures with support \ +for the latest C, C++, and SYCL language standards. This compiler produces \ +optimized code that can run significantly faster by taking advantage of the \ +ever-increasing core count and vector register width in Intel® Xeon® processors \ +and compatible processors." + +HOMEPAGE = "https://www.intel.com/content/www/us/en/developer/tools/oneapi/dpc-compiler.html" + +LICENSE="INTELoneAPIDPCEULA" + +COMPILERMAINVER = "2024.0" + +LIC_FILES_CHKSUM = " \ + file://opt/intel/oneapi/licensing/${COMPILERMAINVER}/licensing/${COMPILERMAINVER}/license.htm;md5=5ff64c6ff3ef98089ed69360e7a84c39 \ + " +COMPILERDOTVER = "2024.0.0-49406" +DEVUTILITVERSION = "2024.0-2024.0.0-49320" +SRC_URI = " \ + https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-compiler-dpcpp-cpp-runtime-${COMPILERMAINVER}-${PV}_amd64.deb;subdir=${BPN};name=dpcpp-runtime \ + https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-compiler-dpcpp-cpp-common-${COMPILERMAINVER}-${PV}_all.deb;subdir=${BPN};name=dpcpp-common \ + https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-compiler-shared-runtime-${COMPILERMAINVER}-${PV}_amd64.deb;subdir=${BPN};name=compiler-shared-runtime \ + https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-common-vars-${COMPILERDOTVER}_all.deb;subdir=${BPN};name=common-vars \ + https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-openmp-${COMPILERMAINVER}-${PV}_amd64.deb;subdir=${BPN};name=openmp \ + https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-openmp-common-${COMPILERMAINVER}-${PV}_all.deb;subdir=${BPN};name=openmp-common \ + https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-common-licensing-${COMPILERMAINVER}-${COMPILERDOTVER}_all.deb;subdir=${BPN};name=license \ + https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-dev-utilities-${DEVUTILITVERSION}_amd64.deb;subdir=${BPN};name=dev-utils \ + " + +SRC_URI[dpcpp-runtime.sha256sum] = "e24f0ba69daf3f66ceaf23d5e632f183cdb90bac69f65407fdb4407fc9034f33" +SRC_URI[dpcpp-common.sha256sum] = "f5a3db6a725598224edf1099260955aee3e36beadcaed2af5b8b453e873a82fa" +SRC_URI[compiler-shared-runtime.sha256sum] = "bce010cbe076259ddd3feb8e69792869e22fccd5b4e2c9af9e815826f2c1a394" +SRC_URI[common-vars.sha256sum] = "368553c99db1b52060b8225355336778be0b00e5991d0f769c42f891c6328750" +SRC_URI[openmp.sha256sum] = "154ff1e81adfdc872ba1d47bd860de70d62188417c7128422435dfd0ceca62fe" +SRC_URI[openmp-common.sha256sum] = "8217001d78311cbef97dd139e684c6767932b532309c3843ba57d7894d15c07d" +SRC_URI[license.sha256sum] = "9f9c8a12fc0bc82ab5b71e118e66745eff23f42224eba304068225b366cd74b6" +SRC_URI[dev-utils.sha256sum] = "c675d960a5abca361cead9217d6e74adee499ee0a095c4e44092bd710b304d50" + +S = "${WORKDIR}/${BPN}" + +inherit bin_package + +RDEPENDS:${PN} += "virtual-opencl-icd zlib tbb level-zero-loader bash tcsh" +SKIP_FILEDEPS:${PN} = '1' + +INHIBIT_PACKAGE_STRIP = "1" +INHIBIT_PACKAGE_DEBUG_SPLIT = "1" + +# doesn't have GNU_HASH (didn't pass LDFLAGS?) +INSANE_SKIP:${PN} += "textrel dev-so dev-elf ldflags already-stripped staticdev rpaths arch useless-rpaths file-rdeps" + +FILES_SOLIBSDEV = "" +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-offline-voice-agent/recipes-devtools/recipes-intel/intel-oneapi-dpcpp-cpp_2024.0.0-49819.bb b/meta-offline-voice-agent/recipes-devtools/recipes-intel/intel-oneapi-dpcpp-cpp_2024.0.0-49819.bb new file mode 100644 index 00000000..71bffa4a --- /dev/null +++ b/meta-offline-voice-agent/recipes-devtools/recipes-intel/intel-oneapi-dpcpp-cpp_2024.0.0-49819.bb @@ -0,0 +1,45 @@ +SUMMARY = "Intel® oneAPI DPC++/C++ Compiler" +DESCRIPTION = "The Intel® oneAPI DPC++/C++ Compiler provides optimizations \ +that help your applications run faster on Intel® 64 architectures with support \ +for the latest C, C++, and SYCL language standards. This compiler produces \ +optimized code that can run significantly faster by taking advantage of the \ +ever-increasing core count and vector register width in Intel® Xeon® processors \ +and compatible processors." + +HOMEPAGE = "https://www.intel.com/content/www/us/en/developer/tools/oneapi/dpc-compiler.html" + +LICENSE="INTELoneAPIDPCEULA" + +COMPILERMAINVER = "2024.0" + +LIC_FILES_CHKSUM = " \ + file://opt/intel/oneapi/compiler/${COMPILERMAINVER}/share/doc/compiler/credist.txt;md5=b41f55af9f479b9570fc35b955d5ba1a \ + " + +SRC_URI = " \ + https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-dpcpp-cpp-${COMPILERMAINVER}-${PV}_amd64.deb;subdir=${BPN};name=icx-compiler \ + https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-compiler-shared-${COMPILERMAINVER}-${PV}_amd64.deb;subdir=${BPN};name=compiler-linker \ + https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-compiler-shared-common-${COMPILERMAINVER}-${PV}_all.deb;subdir=${BPN};name=shared-common \ + " + +SRC_URI[icx-compiler.sha256sum] = "0dcbac766d5a1519d4cf393f5a85e71d19024fef65f77638f3f849796b62cd82" +SRC_URI[compiler-linker.sha256sum] = "e00faea6d797934d62143e4aa70b727ce30f80fdf30769d22122b3051140c236" +SRC_URI[shared-common.sha256sum] = "cf490a4a790f349da79e618359598d3b32312ca3b2639e5d4c84e1cfa2745558" + +S = "${WORKDIR}/${BPN}" + +inherit bin_package + +RDEPENDS:${PN} += "intel-oneapi-dpcpp-cpp-runtime" +SKIP_FILEDEPS:${PN} = '1' + +INHIBIT_PACKAGE_STRIP = "1" +INHIBIT_PACKAGE_DEBUG_SPLIT = "1" + +# doesn't have GNU_HASH (didn't pass LDFLAGS?) +INSANE_SKIP:${PN} += "textrel dev-so dev-elf ldflags already-stripped file-rdeps staticdev rpaths arch useless-rpaths" + +FILES_SOLIBSDEV = "" + +EXCLUDE_FROM_SHLIBS = "1" +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-offline-voice-agent/recipes-devtools/recipes-intel/intel-oneapi-mkl_2024.0.0-49656.bb b/meta-offline-voice-agent/recipes-devtools/recipes-intel/intel-oneapi-mkl_2024.0.0-49656.bb new file mode 100644 index 00000000..e3e93028 --- /dev/null +++ b/meta-offline-voice-agent/recipes-devtools/recipes-intel/intel-oneapi-mkl_2024.0.0-49656.bb @@ -0,0 +1,74 @@ +SUMMARY = "Intel® oneAPI Math Kernel Library (oneMKL)" +DESCRIPTION = "The Intel® oneAPI Math Kernel Library (oneMKL) is a computing \ + math library of highly optimized and extensively parallelized routines \ + for applications that require maximum performance. oneMKL contains \ + the high-performance optimizations from the full Intel® Math Kernel Library \ + for CPU architectures (with C/Fortran programming language interfaces)\ + and adds to them a set of DPC++ programming language interfaces for \ + achieving performance on various CPU architectures \ + and Intel Graphics Technology for certain key functionalities." +HOMEPAGE = "https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/onemkl.html" + +LICENSE = "ISSL" + +MKLMAINVER = "2024.0" + +LIC_FILES_CHKSUM = " \ + file://opt/intel/oneapi/mkl/${MKLMAINVER}/share/doc/mkl/licensing/license.txt;md5=8510d21bf355a76e378c3216c3929ccd \ + file://opt/intel/oneapi/mkl/${MKLMAINVER}/share/doc/mkl/licensing/third-party-programs-benchmarks.txt;md5=cb98e1a1f14c05ea85a979ea8982e7a4 \ + file://opt/intel/oneapi/mkl/${MKLMAINVER}/share/doc/mkl/licensing/third-party-programs-ipp.txt;md5=a4b2bf15e38f5c1267cdafed18bc0b09 \ + file://opt/intel/oneapi/mkl/${MKLMAINVER}/share/doc/mkl/licensing/third-party-programs-openmp.txt;md5=6b3c1aa2a11393060074c0346ce21e49 \ + file://opt/intel/oneapi/mkl/${MKLMAINVER}/share/doc/mkl/licensing/third-party-programs-safestring.txt;md5=c3aeee91c6d35a0f0753aed6c2633b82 \ + file://opt/intel/oneapi/mkl/${MKLMAINVER}/share/doc/mkl/licensing/third-party-programs.txt;md5=27de873e4084d62530fe828406b33ca9 \ + " + +SRC_URI = " \ + https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-mkl-${MKLMAINVER}-${PV}_amd64.deb;subdir=${BPN};name=runtime \ + https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-mkl-common-devel-${MKLMAINVER}-${PV}_all.deb;subdir=${BPN};name=common-devel \ + https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-mkl-devel-${MKLMAINVER}-${PV}_amd64.deb;subdir=${BPN};name=devel \ + https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-mkl-common-${MKLMAINVER}-${PV}_all.deb;subdir=${BPN};name=common-vars \ + " + +SRC_URI[runtime.sha256sum] = "10a86e24051d6ef4a80fd839c570e629190638a3c0ac9bcca99ab855f534b959" +SRC_URI[common-devel.sha256sum] = "adbf0ea946f63946d29b7f9c750c38a42ea7a65d8c81655b268aa2c7bb908192" +SRC_URI[devel.sha256sum] = "fab2a6f15e18bfd9b4d425f2703e4e98928c57f52c4feebc9ed886f097062e84" +SRC_URI[common-vars.sha256sum] = "ec2b67813739fa4a2895f63479a41acba2174afe2d0cb8a0c1c9119d1317d8ef" + +S = "${WORKDIR}/${BPN}" + +inherit bin_package + +do_install:append () { + install -d ${D}${bindir} + (cd ${D}${bindir} ; ln -s ../../opt/intel/oneapi/mkl/${MKLMAINVER}/bin/* .) + install -d ${D}${libdir} + (cd ${D}${libdir} ; ln -s ../../opt/intel/oneapi/mkl/${MKLMAINVER}/lib/intel64/*.so* .) + (cd ${D}${libdir} ; ln -s ../../opt/intel/oneapi/mkl/${MKLMAINVER}/lib/intel64/*.a* .) + install -d ${D}${libdir}/pkgconfig + (cd ${D}${libdir}/pkgconfig ; ln -s ../../../opt/intel/oneapi/mkl/${MKLMAINVER}/lib/pkgconfig/* .) + install -d ${D}${libdir}/cmake + (cd ${D}${libdir}/cmake ; ln -s ../../../opt/intel/oneapi/mkl/${MKLMAINVER}/lib/cmake/* .) + + install -d ${D}${includedir} + find ${D}/opt/intel/oneapi/mkl/${MKLMAINVER}/include/ -mindepth 1 -maxdepth 1 -type d -printf '%f\n' | while read srcdir; do + install -d ${D}${includedir}/$srcdir + (cd ${D}${includedir} ; ln -s ../../opt/intel/oneapi/mkl/${MKLMAINVER}/include/$srcdir/* ./$srcdir/) + done + + find ${D}/opt/intel/oneapi/mkl/${MKLMAINVER}/include/ -mindepth 1 -maxdepth 1 -type f -printf '%f\n' | while read srcfile; do + (cd ${D}${includedir} ; ln -s ../../opt/intel/oneapi/mkl/${MKLMAINVER}/include/$srcfile .) + done +} + +AUTO_LIBNAME_PKGS = "" +INHIBIT_PACKAGE_STRIP = "1" +INHIBIT_PACKAGE_DEBUG_SPLIT = "1" + +RDEPENDS:${PN} += "bash tbb intel-oneapi-dpcpp-cpp-runtime setup-intel-oneapi-env virtual-opencl-icd" +INSANE_SKIP:${PN} = "ldflags textrel dev-so staticdev arch already-stripped" + +FILES:${PN}-staticdev += "/opt/intel/oneapi/mkl/${MKLMAINVER}/lib/*.a*" + +SKIP_FILEDEPS:${PN} = '1' + +SYSROOT_DIRS += "/opt" diff --git a/meta-offline-voice-agent/recipes-devtools/recipes-intel/level-zero_1.15.8.bb b/meta-offline-voice-agent/recipes-devtools/recipes-intel/level-zero_1.15.8.bb new file mode 100644 index 00000000..8bade9f4 --- /dev/null +++ b/meta-offline-voice-agent/recipes-devtools/recipes-intel/level-zero_1.15.8.bb @@ -0,0 +1,33 @@ +SUMMARY = "oneAPI Level Zero Specification Headers and Loader" +HOMEPAGE = "https://github.com/oneapi-src/level-zero" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=97957beb2f7808ffa247e5d93e6442cc" + +SRC_URI = "git://github.com/oneapi-src/level-zero.git;protocol=https;branch=master" +SRCREV = "1685d01497428ca4d8b99200972b64685424d5c9" +S = "${WORKDIR}/git" + +inherit cmake +DEPENDS += "opencl-headers" + +UPSTREAM_CHECK_GITTAGREGEX = "^v(?P<pver>(\d+(\.\d+)+))$" + +PACKAGES =+ "${PN}-headers ${PN}-samples ${PN}-loader" + +do_install:append () { + install -d ${D}${bindir} ${D}${libdir} + install -m 755 ${B}/bin/zello* ${D}${bindir} + + oe_libinstall -C lib libze_null ${D}${libdir} +} + + +FILES:${PN}-headers = "${includedir}" +FILES:${PN}-samples = "${bindir} ${libdir}/libze_null* ${libdir}/libze_validation*" +FILES:${PN}-loader = "${libdir}" + +# PN-loader (non -dev/-dbg/nativesdk- package) contains symlink .so +INSANE_SKIP:${PN}-loader = "dev-so" +INSANE_SKIP:${PN}-samples = "dev-so" +ALLOW_EMPTY:${PN} = "1" +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-offline-voice-agent/recipes-devtools/recipes-intel/onednn.bb b/meta-offline-voice-agent/recipes-devtools/recipes-intel/onednn.bb new file mode 100644 index 00000000..48d2e6b2 --- /dev/null +++ b/meta-offline-voice-agent/recipes-devtools/recipes-intel/onednn.bb @@ -0,0 +1,62 @@ +HOMEPAGE = "https://www.oneapi.com" +SUMMARY = "Deep Neural Network Library" +DESCRIPTION = "This software is a user mode library that accelerates\ +deep-learning applications and frameworks on Intel architecture." +LICENSE = "Apache-2.0 & BSD-3-Clause & BSL-1.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=3b64000f6e7d52516017622a37a94ce9 \ + file://tests/gtests/gtest/LICENSE;md5=cbbd27594afd089daa160d3a16dd515a \ + file://src/cpu/x64/xbyak/COPYRIGHT;md5=3b9bf048d063d54cdb28964db558bcc7 \ + file://src/common/ittnotify/LICENSE.BSD;md5=e671ff178b24a95a382ba670503c66fb \ + " +SECTION = "lib" + +inherit pkgconfig cmake ptest + +DNN_BRANCH = "rls-v${@'.'.join(d.getVar('PV').split('.')[0:2])}" + +S = "${WORKDIR}/git" +#SRCREV = "f5ff0a6de16c130053bec1a1aec3a9b826c66f78" + +SRCREV = "25596d25116d3fd523f1ac5e32e44cb5e8295a9e" + +SRC_URI = "git://github.com/oneapi-src/oneDNN.git;branch=main;protocol=https \ + file://run-ptest \ + " + +UPSTREAM_CHECK_GITTAGREGEX = "^v(?P<pver>(\d+(\.\d+)+))$" + +CVE_PRODUCT = "intel:math_kernel_library" + +COMPATIBLE_HOST = '(x86_64).*-linux' +COMPATIBLE_HOST:libc-musl = 'null' + +EXTRA_OECMAKE += " \ + -DDNNL_LIBRARY_TYPE=SHARED \ + -DDNNL_BUILD_EXAMPLES=ON \ + -DDNNL_BUILD_TESTS=ON \ + -DDNNL_CPU_RUNTIME=OMP \ + -DDNNL_ARCH_OPT_FLAGS="" \ + -DCMAKE_SKIP_RPATH=ON \ + -DONEDNN_BUILD_GRAPH=OFF \ + " + +PACKAGECONFIG ??= "gpu" +#PACKAGECONFIG[gpu] = "-DDNNL_GPU_RUNTIME=OCL, , opencl-headers virtual/opencl-icd, intel-compute-runtime" + +PACKAGECONFIG[gpu] = "-DDNNL_GPU_RUNTIME=OCL, , opencl-headers virtual/opencl-icd" + +do_install:append () { + install -d ${D}${bindir}/mkl-dnn/tests/benchdnn/inputs + install -m 0755 ${B}/tests/benchdnn/benchdnn ${D}${bindir}/mkl-dnn/tests/benchdnn + cp -r ${B}/tests/benchdnn/inputs/* ${D}${bindir}/mkl-dnn/tests/benchdnn/inputs +} + +do_install_ptest () { + install -d ${D}${PTEST_PATH}/tests + install -m 0755 ${B}/tests/api-c ${D}${PTEST_PATH}/tests + install -m 0755 ${B}/tests/test_c_symbols-c ${D}${PTEST_PATH}/tests +} + +PACKAGES =+ "${PN}-test" + +FILES:${PN}-test = "${bindir}/mkl-dnn/*" diff --git a/meta-offline-voice-agent/recipes-devtools/recipes-intel/onednn/run-ptest b/meta-offline-voice-agent/recipes-devtools/recipes-intel/onednn/run-ptest new file mode 100755 index 00000000..82d4df58 --- /dev/null +++ b/meta-offline-voice-agent/recipes-devtools/recipes-intel/onednn/run-ptest @@ -0,0 +1,15 @@ +#!/bin/sh + +cd tests +./api-c +if [ $? -eq 0 ]; then + echo 'PASS: api-c' +else + echo 'FAIL: api-c' +fi +./test_c_symbols-c +if [ $? -eq 0 ]; then + echo 'PASS: test_c_symbols-c' +else + echo 'FAIL: test_c_symbols-c' +fi diff --git a/meta-offline-voice-agent/recipes-devtools/recipes-intel/setup-intel-oneapi-env_2023.0.0-25370.bb b/meta-offline-voice-agent/recipes-devtools/recipes-intel/setup-intel-oneapi-env_2023.0.0-25370.bb new file mode 100644 index 00000000..e590b4ce --- /dev/null +++ b/meta-offline-voice-agent/recipes-devtools/recipes-intel/setup-intel-oneapi-env_2023.0.0-25370.bb @@ -0,0 +1,20 @@ +SUMMARY = "Intel® oneAPI runtime libraries environment set up" +DESCRIPTION = "Recipe to set up the environment for Intel® oneAPI runtime libraries \ +via configuration file in ld.so.conf.d directory." + +LICENSE = "EULA" +LIC_FILES_CHKSUM = "file://${THISDIR}/../../licenses/EULA;md5=7bfc91523de2e84e7131d0eacf2827d4" + +SRC_URI = "file://intel-oneapi-runtime.conf" + +do_install() { + mkdir -p ${D}${sysconfdir}/ld.so.conf.d/ + install -m 644 ${WORKDIR}/intel-oneapi-runtime.conf ${D}${sysconfdir}/ld.so.conf.d/ +} + +pkg_postinst_ontarget:${PN}() { +if [ x"$D" = "x" ]; then + if [ -x /sbin/ldconfig ]; then /sbin/ldconfig ; fi +fi +} +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-offline-voice-agent/recipes-lapack/lapack/lapack_%.bbappend b/meta-offline-voice-agent/recipes-lapack/lapack/lapack_%.bbappend deleted file mode 100644 index d5cd8e7c..00000000 --- a/meta-offline-voice-agent/recipes-lapack/lapack/lapack_%.bbappend +++ /dev/null @@ -1,11 +0,0 @@ -DEPENDS += "openblas" -DEPENDS:remove:class-native = "libgfortran" - -EXTRA_OECMAKE:append = " -DCBLAS=ON" -EXTRA_OECMAKE += " -DUSE_OPTIMIZED_BLAS=1" - -do_install:append() { - rm -f ${D}${includedir}/cblas.h -} - -BBCLASSEXTEND = "native" diff --git a/meta-offline-voice-agent/recipes-multimedia/ffmpeg/ffmpeg/av1_ordering_info.patch b/meta-offline-voice-agent/recipes-multimedia/ffmpeg/ffmpeg/av1_ordering_info.patch new file mode 100644 index 00000000..3d34e322 --- /dev/null +++ b/meta-offline-voice-agent/recipes-multimedia/ffmpeg/ffmpeg/av1_ordering_info.patch @@ -0,0 +1,90 @@ +From cafb4c554845332eeb33284cf6498049997dc67e Mon Sep 17 00:00:00 2001 +From: Mark Thompson <sw@jkqxz.net> +Date: Wed, 20 Mar 2024 20:35:28 +0000 +Subject: [PATCH] lavc/cbs_av1: Save more frame ordering information + +This is wanted by the Vulkan decoder. + +Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> +Upstream-Status: Backport [https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/ecdc94b97f809d5f2b88640842fd0541951ad295] +--- + libavcodec/cbs_av1.h | 5 +++++ + libavcodec/cbs_av1_syntax_template.c | 25 +++++++++++++++++++++---- + 2 files changed, 26 insertions(+), 4 deletions(-) + +diff --git a/libavcodec/cbs_av1.h b/libavcodec/cbs_av1.h +index a5402f069d..a027013bc7 100644 +--- a/libavcodec/cbs_av1.h ++++ b/libavcodec/cbs_av1.h +@@ -427,6 +427,8 @@ typedef struct AV1ReferenceFrameState { + int bit_depth; // RefBitDepth + int order_hint; // RefOrderHint + ++ int saved_order_hints[AV1_TOTAL_REFS_PER_FRAME]; // SavedOrderHints[ref] ++ + int8_t loop_filter_ref_deltas[AV1_TOTAL_REFS_PER_FRAME]; + int8_t loop_filter_mode_deltas[2]; + uint8_t feature_enabled[AV1_MAX_SEGMENTS][AV1_SEG_LVL_MAX]; +@@ -464,6 +466,9 @@ typedef struct CodedBitstreamAV1Context { + int tile_rows; + int tile_num; + ++ int order_hints[AV1_TOTAL_REFS_PER_FRAME]; // OrderHints ++ int ref_frame_sign_bias[AV1_TOTAL_REFS_PER_FRAME]; // RefFrameSignBias ++ + AV1ReferenceFrameState ref[AV1_NUM_REF_FRAMES]; + + // AVOptions +diff --git a/libavcodec/cbs_av1_syntax_template.c b/libavcodec/cbs_av1_syntax_template.c +index 3be1f2d30f..2979c5d98f 100644 +--- a/libavcodec/cbs_av1_syntax_template.c ++++ b/libavcodec/cbs_av1_syntax_template.c +@@ -1414,6 +1414,8 @@ static int FUNC(uncompressed_header)(CodedBitstreamContext *ctx, RWContext *rw, + priv->ref[i].valid = 0; + priv->ref[i].order_hint = 0; + } ++ for (i = 0; i < AV1_REFS_PER_FRAME; i++) ++ priv->order_hints[i + AV1_REF_FRAME_LAST] = 0; + } + + flag(disable_cdf_update); +@@ -1568,11 +1570,20 @@ static int FUNC(uncompressed_header)(CodedBitstreamContext *ctx, RWContext *rw, + else + flag(use_ref_frame_mvs); + +- infer(allow_intrabc, 0); +- } ++ for (i = 0; i < AV1_REFS_PER_FRAME; i++) { ++ int ref_frame = AV1_REF_FRAME_LAST + i; ++ int hint = priv->ref[current->ref_frame_idx[i]].order_hint; ++ priv->order_hints[ref_frame] = hint; ++ if (!seq->enable_order_hint) { ++ priv->ref_frame_sign_bias[ref_frame] = 0; ++ } else { ++ priv->ref_frame_sign_bias[ref_frame] = ++ cbs_av1_get_relative_dist(seq, hint, ++ current->order_hint) > 0; ++ } ++ } + +- if (!frame_is_intra) { +- // Derive reference frame sign biases. ++ infer(allow_intrabc, 0); + } + + if (seq->reduced_still_picture_header || current->disable_cdf_update) +@@ -1674,6 +1685,12 @@ update_refs: + .bit_depth = priv->bit_depth, + .order_hint = priv->order_hint, + }; ++ ++ for (int j = 0; j < AV1_REFS_PER_FRAME; j++) { ++ priv->ref[i].saved_order_hints[j + AV1_REF_FRAME_LAST] = ++ priv->order_hints[j + AV1_REF_FRAME_LAST]; ++ } ++ + memcpy(priv->ref[i].loop_filter_ref_deltas, current->loop_filter_ref_deltas, + sizeof(current->loop_filter_ref_deltas)); + memcpy(priv->ref[i].loop_filter_mode_deltas, current->loop_filter_mode_deltas, +-- +2.25.1 diff --git a/meta-offline-voice-agent/recipes-multimedia/ffmpeg/ffmpeg/vulkan_av1_stable_API.patch b/meta-offline-voice-agent/recipes-multimedia/ffmpeg/ffmpeg/vulkan_av1_stable_API.patch new file mode 100644 index 00000000..74db148b --- /dev/null +++ b/meta-offline-voice-agent/recipes-multimedia/ffmpeg/ffmpeg/vulkan_av1_stable_API.patch @@ -0,0 +1,1382 @@ +From ecdc94b97f809d5f2b88640842fd0541951ad295 Mon Sep 17 00:00:00 2001 +From: Lynne <dev@lynne.ee> +Date: Fri, 19 Jan 2024 10:49:02 +1000 +Subject: [PATCH] vulkan_av1: port to the new stable API + +Co-Authored-by: Dave Airlie <airlied@redhat.com> +Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> +Upstream-Status: Backport [https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/ecdc94b97f809d5f2b88640842fd0541951ad295] +--- + configure | 4 +- + libavcodec/Makefile | 5 +- + libavcodec/vulkan_av1.c | 514 ++++++++++-------- + libavcodec/vulkan_decode.c | 31 +- + libavcodec/vulkan_decode.h | 2 +- + libavcodec/vulkan_video.h | 2 - + .../vulkan_video_codec_av1std_decode_mesa.h | 36 -- + libavcodec/vulkan_video_codec_av1std_mesa.h | 403 -------------- + libavutil/hwcontext_vulkan.c | 2 +- + libavutil/vulkan_functions.h | 2 +- + libavutil/vulkan_loader.h | 2 +- + 11 files changed, 306 insertions(+), 697 deletions(-) + delete mode 100644 libavcodec/vulkan_video_codec_av1std_decode_mesa.h + delete mode 100644 libavcodec/vulkan_video_codec_av1std_mesa.h + +diff --git a/configure b/configure +index e853deb51d..9fa639fca6 100755 +--- a/configure ++++ b/configure +@@ -7300,8 +7300,8 @@ enabled vdpau && + "in maintaining it." + + if enabled vulkan; then +- check_pkg_config_header_only vulkan "vulkan >= 1.3.255" "vulkan/vulkan.h" "defined VK_VERSION_1_3" || +- check_cpp_condition vulkan "vulkan/vulkan.h" "defined(VK_VERSION_1_4) || (defined(VK_VERSION_1_3) && VK_HEADER_VERSION >= 255)" ++ check_pkg_config_header_only vulkan "vulkan >= 1.3.277" "vulkan/vulkan.h" "defined VK_VERSION_1_3" || ++ check_cpp_condition vulkan "vulkan/vulkan.h" "defined(VK_VERSION_1_4) || (defined(VK_VERSION_1_3) && VK_HEADER_VERSION >= 277)" + fi + + if disabled vulkan; then +diff --git a/libavcodec/Makefile b/libavcodec/Makefile +index 7ef2e03ca6..9ce6d445c1 100644 +--- a/libavcodec/Makefile ++++ b/libavcodec/Makefile +@@ -1258,8 +1258,7 @@ SKIPHEADERS += %_tablegen.h \ + aacenc_quantization.h \ + aacenc_quantization_misc.h \ + bitstream_template.h \ +- vulkan_video_codec_av1std.h \ +- $(ARCH)/vpx_arith.h \ ++ $(ARCH)/vpx_arith.h \ + + SKIPHEADERS-$(CONFIG_AMF) += amfenc.h + SKIPHEADERS-$(CONFIG_D3D11VA) += d3d11va.h dxva2_internal.h +@@ -1280,7 +1279,7 @@ SKIPHEADERS-$(CONFIG_QSVENC) += qsvenc.h + SKIPHEADERS-$(CONFIG_VAAPI) += vaapi_decode.h vaapi_hevc.h vaapi_encode.h + SKIPHEADERS-$(CONFIG_VDPAU) += vdpau.h vdpau_internal.h + SKIPHEADERS-$(CONFIG_VIDEOTOOLBOX) += videotoolbox.h vt_internal.h +-SKIPHEADERS-$(CONFIG_VULKAN) += vulkan.h vulkan_video.h vulkan_decode.h vulkan_video_codec_av1std_decode.h ++SKIPHEADERS-$(CONFIG_VULKAN) += vulkan.h vulkan_video.h vulkan_decode.h + SKIPHEADERS-$(CONFIG_V4L2_M2M) += v4l2_buffers.h v4l2_context.h v4l2_m2m.h + SKIPHEADERS-$(CONFIG_ZLIB) += zlib_wrapper.h + +diff --git a/libavcodec/vulkan_av1.c b/libavcodec/vulkan_av1.c +index 5afd5353cc..c9e398eaec 100644 +--- a/libavcodec/vulkan_av1.c ++++ b/libavcodec/vulkan_av1.c +@@ -36,33 +36,47 @@ const FFVulkanDecodeDescriptor ff_vk_dec_av1_desc = { + typedef struct AV1VulkanDecodePicture { + FFVulkanDecodePicture vp; + +- /* Workaround for a spec issue. +- *Can be removed once no longer needed, and threading can be enabled. */ ++ /* TODO: investigate if this can be removed to make decoding completely ++ * independent. */ + FFVulkanDecodeContext *dec; + +- StdVideoAV1MESATile tiles[MAX_TILES]; +- StdVideoAV1MESATileList tile_list; +- const uint32_t *tile_offsets; ++ uint32_t tile_sizes[MAX_TILES]; + + /* Current picture */ +- VkVideoDecodeAV1DpbSlotInfoMESA vkav1_ref; +- StdVideoAV1MESAFrameHeader av1_frame_header; +- VkVideoDecodeAV1PictureInfoMESA av1_pic_info; ++ StdVideoDecodeAV1ReferenceInfo std_ref; ++ VkVideoDecodeAV1DpbSlotInfoKHR vkav1_ref; ++ uint16_t width_in_sbs_minus1[64]; ++ uint16_t height_in_sbs_minus1[64]; ++ uint16_t mi_col_starts[64]; ++ uint16_t mi_row_starts[64]; ++ StdVideoAV1TileInfo tile_info; ++ StdVideoAV1Quantization quantization; ++ StdVideoAV1Segmentation segmentation; ++ StdVideoAV1LoopFilter loop_filter; ++ StdVideoAV1CDEF cdef; ++ StdVideoAV1LoopRestoration loop_restoration; ++ StdVideoAV1GlobalMotion global_motion; ++ StdVideoAV1FilmGrain film_grain; ++ StdVideoDecodeAV1PictureInfo std_pic_info; ++ VkVideoDecodeAV1PictureInfoKHR av1_pic_info; + + /* Picture refs */ + const AV1Frame *ref_src [AV1_NUM_REF_FRAMES]; +- VkVideoDecodeAV1DpbSlotInfoMESA vkav1_refs[AV1_NUM_REF_FRAMES]; ++ StdVideoDecodeAV1ReferenceInfo std_refs [AV1_NUM_REF_FRAMES]; ++ VkVideoDecodeAV1DpbSlotInfoKHR vkav1_refs[AV1_NUM_REF_FRAMES]; + + uint8_t frame_id_set; + uint8_t frame_id; ++ uint8_t ref_frame_sign_bias_mask; + } AV1VulkanDecodePicture; + + static int vk_av1_fill_pict(AVCodecContext *avctx, const AV1Frame **ref_src, + VkVideoReferenceSlotInfoKHR *ref_slot, /* Main structure */ + VkVideoPictureResourceInfoKHR *ref, /* Goes in ^ */ +- VkVideoDecodeAV1DpbSlotInfoMESA *vkav1_ref, /* Goes in ^ */ ++ StdVideoDecodeAV1ReferenceInfo *vkav1_std_ref, ++ VkVideoDecodeAV1DpbSlotInfoKHR *vkav1_ref, /* Goes in ^ */ + const AV1Frame *pic, int is_current, int has_grain, +- int dpb_slot_index) ++ int *saved_order_hints) + { + FFVulkanDecodeContext *dec = avctx->internal->hwaccel_priv_data; + AV1VulkanDecodePicture *hp = pic->hwaccel_picture_private; +@@ -73,31 +87,42 @@ static int vk_av1_fill_pict(AVCodecContext *avctx, const AV1Frame **ref_src, + if (err < 0) + return err; + +- *vkav1_ref = (VkVideoDecodeAV1DpbSlotInfoMESA) { +- .sType = VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_DPB_SLOT_INFO_MESA, +- .frameIdx = hp->frame_id, ++ *vkav1_std_ref = (StdVideoDecodeAV1ReferenceInfo) { ++ .flags = (StdVideoDecodeAV1ReferenceInfoFlags) { ++ .disable_frame_end_update_cdf = pic->raw_frame_header->disable_frame_end_update_cdf, ++ .segmentation_enabled = pic->raw_frame_header->segmentation_enabled, ++ }, ++ .frame_type = pic->raw_frame_header->frame_type, ++ .OrderHint = pic->raw_frame_header->order_hint, ++ .RefFrameSignBias = hp->ref_frame_sign_bias_mask, + }; + +- for (unsigned i = 0; i < 7; i++) { +- const int idx = pic->raw_frame_header->ref_frame_idx[i]; +- vkav1_ref->ref_order_hint[i] = pic->raw_frame_header->ref_order_hint[idx]; +- } ++ if (saved_order_hints) ++ for (int i = 0; i < AV1_TOTAL_REFS_PER_FRAME; i++) ++ vkav1_std_ref->SavedOrderHints[i] = saved_order_hints[i]; ++ ++ *vkav1_ref = (VkVideoDecodeAV1DpbSlotInfoKHR) { ++ .sType = VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_DPB_SLOT_INFO_KHR, ++ .pStdReferenceInfo = vkav1_std_ref, ++ }; + +- vkav1_ref->disable_frame_end_update_cdf = pic->raw_frame_header->disable_frame_end_update_cdf; ++ vkav1_std_ref->flags.disable_frame_end_update_cdf = pic->raw_frame_header->disable_frame_end_update_cdf; ++ vkav1_std_ref->flags.segmentation_enabled = pic->raw_frame_header->segmentation_enabled; ++ vkav1_std_ref->frame_type = pic->raw_frame_header->frame_type; + + *ref = (VkVideoPictureResourceInfoKHR) { + .sType = VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR, + .codedOffset = (VkOffset2D){ 0, 0 }, + .codedExtent = (VkExtent2D){ pic->f->width, pic->f->height }, + .baseArrayLayer = ((has_grain || dec->dedicated_dpb) && dec->layered_dpb) ? +- dpb_slot_index : 0, ++ hp->frame_id : 0, + .imageViewBinding = vkpic->img_view_ref, + }; + + *ref_slot = (VkVideoReferenceSlotInfoKHR) { + .sType = VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR, + .pNext = vkav1_ref, +- .slotIndex = dpb_slot_index, ++ .slotIndex = hp->frame_id, + .pPictureResource = ref, + }; + +@@ -115,15 +140,40 @@ static int vk_av1_create_params(AVCodecContext *avctx, AVBufferRef **buf) + + const AV1RawSequenceHeader *seq = s->raw_seq; + +- StdVideoAV1MESASequenceHeader av1_sequence_header; +- VkVideoDecodeAV1SessionParametersAddInfoMESA av1_params_info; +- VkVideoDecodeAV1SessionParametersCreateInfoMESA av1_params; ++ StdVideoAV1SequenceHeader av1_sequence_header; ++ StdVideoAV1TimingInfo av1_timing_info; ++ StdVideoAV1ColorConfig av1_color_config; ++ VkVideoDecodeAV1SessionParametersCreateInfoKHR av1_params; + VkVideoSessionParametersCreateInfoKHR session_params_create; + + int err; + +- av1_sequence_header = (StdVideoAV1MESASequenceHeader) { +- .flags = (StdVideoAV1MESASequenceHeaderFlags) { ++ av1_timing_info = (StdVideoAV1TimingInfo) { ++ .flags = (StdVideoAV1TimingInfoFlags) { ++ .equal_picture_interval = seq->timing_info.equal_picture_interval, ++ }, ++ .num_units_in_display_tick = seq->timing_info.num_units_in_display_tick, ++ .time_scale = seq->timing_info.time_scale, ++ .num_ticks_per_picture_minus_1 = seq->timing_info.num_ticks_per_picture_minus_1, ++ }; ++ ++ av1_color_config = (StdVideoAV1ColorConfig) { ++ .flags = (StdVideoAV1ColorConfigFlags) { ++ .mono_chrome = seq->color_config.mono_chrome, ++ .color_range = seq->color_config.color_range, ++ .separate_uv_delta_q = seq->color_config.separate_uv_delta_q, ++ }, ++ .BitDepth = seq->color_config.twelve_bit ? 12 : ++ seq->color_config.high_bitdepth ? 10 : 8, ++ .subsampling_x = seq->color_config.subsampling_x, ++ .subsampling_y = seq->color_config.subsampling_y, ++ .color_primaries = seq->color_config.color_primaries, ++ .transfer_characteristics = seq->color_config.transfer_characteristics, ++ .matrix_coefficients = seq->color_config.matrix_coefficients, ++ }; ++ ++ av1_sequence_header = (StdVideoAV1SequenceHeader) { ++ .flags = (StdVideoAV1SequenceHeaderFlags) { + .still_picture = seq->still_picture, + .reduced_still_picture_header = seq->reduced_still_picture_header, + .use_128x128_superblock = seq->use_128x128_superblock, +@@ -152,34 +202,15 @@ static int vk_av1_create_params(AVCodecContext *avctx, AVBufferRef **buf) + .delta_frame_id_length_minus_2 = seq->delta_frame_id_length_minus_2, + .additional_frame_id_length_minus_1 = seq->additional_frame_id_length_minus_1, + .order_hint_bits_minus_1 = seq->order_hint_bits_minus_1, +- .timing_info = (StdVideoAV1MESATimingInfo) { +- .flags = (StdVideoAV1MESATimingInfoFlags) { +- .equal_picture_interval = seq->timing_info.equal_picture_interval, +- }, +- .num_units_in_display_tick = seq->timing_info.num_units_in_display_tick, +- .time_scale = seq->timing_info.time_scale, +- .num_ticks_per_picture_minus_1 = seq->timing_info.num_ticks_per_picture_minus_1, +- }, +- .color_config = (StdVideoAV1MESAColorConfig) { +- .flags = (StdVideoAV1MESAColorConfigFlags) { +- .mono_chrome = seq->color_config.mono_chrome, +- .color_range = seq->color_config.color_range, +- .separate_uv_delta_q = seq->color_config.separate_uv_delta_q, +- }, +- .bit_depth = seq->color_config.twelve_bit ? 12 : +- seq->color_config.high_bitdepth ? 10 : 8, +- .subsampling_x = seq->color_config.subsampling_x, +- .subsampling_y = seq->color_config.subsampling_y, +- }, ++ .seq_force_integer_mv = seq->seq_force_integer_mv, ++ .seq_force_screen_content_tools = seq->seq_force_screen_content_tools, ++ .pTimingInfo = &av1_timing_info, ++ .pColorConfig = &av1_color_config, + }; + +- av1_params_info = (VkVideoDecodeAV1SessionParametersAddInfoMESA) { +- .sType = VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_SESSION_PARAMETERS_ADD_INFO_MESA, +- .sequence_header = &av1_sequence_header, +- }; +- av1_params = (VkVideoDecodeAV1SessionParametersCreateInfoMESA) { +- .sType = VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_SESSION_PARAMETERS_CREATE_INFO_MESA, +- .pParametersAddInfo = &av1_params_info, ++ av1_params = (VkVideoDecodeAV1SessionParametersCreateInfoKHR) { ++ .sType = VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR, ++ .pStdSequenceHeader = &av1_sequence_header, + }; + session_params_create = (VkVideoSessionParametersCreateInfoKHR) { + .sType = VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR, +@@ -211,8 +242,14 @@ static int vk_av1_start_frame(AVCodecContext *avctx, + + const AV1RawFrameHeader *frame_header = s->raw_frame_header; + const AV1RawFilmGrainParams *film_grain = &s->cur_frame.film_grain; ++ CodedBitstreamAV1Context *cbs_ctx = (CodedBitstreamAV1Context *)(s->cbc->priv_data); ++ + const int apply_grain = !(avctx->export_side_data & AV_CODEC_EXPORT_DATA_FILM_GRAIN) && + film_grain->apply_grain; ++ StdVideoAV1FrameRestorationType remap_lr_type[4] = { STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_NONE, ++ STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_SWITCHABLE, ++ STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_WIENER, ++ STD_VIDEO_AV1_FRAME_RESTORATION_TYPE_SGRPROJ }; + + if (!dec->session_params) { + err = vk_av1_create_params(avctx, &dec->session_params); +@@ -233,15 +270,31 @@ static int vk_av1_start_frame(AVCodecContext *avctx, + dec->frame_id_alloc_mask |= (1 << slot_idx); + } + +- /* Fill in references */ +- for (int i = 0; i < AV1_NUM_REF_FRAMES; i++) { +- const AV1Frame *ref_frame = &s->ref[i]; +- if (s->ref[i].f->pict_type == AV_PICTURE_TYPE_NONE) ++ ap->ref_frame_sign_bias_mask = 0x0; ++ for (int i = 0; i < STD_VIDEO_AV1_TOTAL_REFS_PER_FRAME; i++) ++ ap->ref_frame_sign_bias_mask |= cbs_ctx->ref_frame_sign_bias[i] << i; ++ ++ for (int i = 0; i < STD_VIDEO_AV1_REFS_PER_FRAME; i++) { ++ const int idx = pic->raw_frame_header->ref_frame_idx[i]; ++ const AV1Frame *ref_frame = &s->ref[idx]; ++ AV1VulkanDecodePicture *hp = ref_frame->hwaccel_picture_private; ++ int found = 0; ++ ++ if (ref_frame->f->pict_type == AV_PICTURE_TYPE_NONE) ++ continue; ++ ++ for (int j = 0; j < ref_count; j++) { ++ if (vp->ref_slots[j].slotIndex == hp->frame_id) { ++ found = 1; ++ break; ++ } ++ } ++ if (found) + continue; + +- err = vk_av1_fill_pict(avctx, &ap->ref_src[i], &vp->ref_slots[i], +- &vp->refs[i], &ap->vkav1_refs[i], +- ref_frame, 0, 0, i); ++ err = vk_av1_fill_pict(avctx, &ap->ref_src[ref_count], &vp->ref_slots[ref_count], ++ &vp->refs[ref_count], &ap->std_refs[ref_count], &ap->vkav1_refs[ref_count], ++ ref_frame, 0, 0, cbs_ctx->ref[idx].saved_order_hints); + if (err < 0) + return err; + +@@ -249,20 +302,32 @@ static int vk_av1_start_frame(AVCodecContext *avctx, + } + + err = vk_av1_fill_pict(avctx, NULL, &vp->ref_slot, &vp->ref, ++ &ap->std_ref, + &ap->vkav1_ref, +- pic, 1, apply_grain, 8); ++ pic, 1, apply_grain, NULL); + if (err < 0) + return err; + +- ap->tile_list.nb_tiles = 0; +- ap->tile_list.tile_list = ap->tiles; +- +- ap->av1_pic_info = (VkVideoDecodeAV1PictureInfoMESA) { +- .sType = VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PICTURE_INFO_MESA, +- .frame_header = &ap->av1_frame_header, +- .tile_list = &ap->tile_list, ++ ap->av1_pic_info = (VkVideoDecodeAV1PictureInfoKHR) { ++ .sType = VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PICTURE_INFO_KHR, ++ .pStdPictureInfo = &ap->std_pic_info, ++ .frameHeaderOffset = 0, ++ .tileCount = 0, ++ .pTileOffsets = NULL, ++ .pTileSizes = ap->tile_sizes, + }; + ++ for (int i = 0; i < STD_VIDEO_AV1_REFS_PER_FRAME; i++) { ++ const int idx = pic->raw_frame_header->ref_frame_idx[i]; ++ const AV1Frame *ref_frame = &s->ref[idx]; ++ AV1VulkanDecodePicture *hp = ref_frame->hwaccel_picture_private; ++ ++ if (ref_frame->f->pict_type == AV_PICTURE_TYPE_NONE) ++ ap->av1_pic_info.referenceNameSlotIndices[i] = -1; ++ else ++ ap->av1_pic_info.referenceNameSlotIndices[i] = hp->frame_id; ++ } ++ + vp->decode_info = (VkVideoDecodeInfoKHR) { + .sType = VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR, + .pNext = &ap->av1_pic_info, +@@ -279,9 +344,87 @@ static int vk_av1_start_frame(AVCodecContext *avctx, + }, + }; + ++ ap->tile_info = (StdVideoAV1TileInfo) { ++ .flags = (StdVideoAV1TileInfoFlags) { ++ .uniform_tile_spacing_flag = frame_header->uniform_tile_spacing_flag, ++ }, ++ .TileCols = frame_header->tile_cols, ++ .TileRows = frame_header->tile_rows, ++ .context_update_tile_id = frame_header->context_update_tile_id, ++ .tile_size_bytes_minus_1 = frame_header->tile_size_bytes_minus1, ++ .pWidthInSbsMinus1 = ap->width_in_sbs_minus1, ++ .pHeightInSbsMinus1 = ap->height_in_sbs_minus1, ++ .pMiColStarts = ap->mi_col_starts, ++ .pMiRowStarts = ap->mi_row_starts, ++ }; ++ ++ ap->quantization = (StdVideoAV1Quantization) { ++ .flags.using_qmatrix = frame_header->using_qmatrix, ++ .flags.diff_uv_delta = frame_header->diff_uv_delta, ++ .base_q_idx = frame_header->base_q_idx, ++ .DeltaQYDc = frame_header->delta_q_y_dc, ++ .DeltaQUDc = frame_header->delta_q_u_dc, ++ .DeltaQUAc = frame_header->delta_q_u_ac, ++ .DeltaQVDc = frame_header->delta_q_v_dc, ++ .DeltaQVAc = frame_header->delta_q_v_ac, ++ .qm_y = frame_header->qm_y, ++ .qm_u = frame_header->qm_u, ++ .qm_v = frame_header->qm_v, ++ }; ++ ++ ap->loop_filter = (StdVideoAV1LoopFilter) { ++ .flags = (StdVideoAV1LoopFilterFlags) { ++ .loop_filter_delta_enabled = frame_header->loop_filter_delta_enabled, ++ .loop_filter_delta_update = frame_header->loop_filter_delta_update, ++ }, ++ .loop_filter_sharpness = frame_header->loop_filter_sharpness, ++ }; ++ ++ for (int i = 0; i < STD_VIDEO_AV1_MAX_LOOP_FILTER_STRENGTHS; i++) ++ ap->loop_filter.loop_filter_level[i] = frame_header->loop_filter_level[i]; ++ for (int i = 0; i < STD_VIDEO_AV1_LOOP_FILTER_ADJUSTMENTS; i++) ++ ap->loop_filter.loop_filter_mode_deltas[i] = frame_header->loop_filter_mode_deltas[i]; ++ ++ ap->cdef = (StdVideoAV1CDEF) { ++ .cdef_damping_minus_3 = frame_header->cdef_damping_minus_3, ++ .cdef_bits = frame_header->cdef_bits, ++ }; ++ ++ ap->loop_restoration = (StdVideoAV1LoopRestoration) { ++ .FrameRestorationType[0] = remap_lr_type[frame_header->lr_type[0]], ++ .FrameRestorationType[1] = remap_lr_type[frame_header->lr_type[1]], ++ .FrameRestorationType[2] = remap_lr_type[frame_header->lr_type[2]], ++ .LoopRestorationSize[0] = 1 + frame_header->lr_unit_shift, ++ .LoopRestorationSize[1] = 1 + frame_header->lr_unit_shift - frame_header->lr_uv_shift, ++ .LoopRestorationSize[2] = 1 + frame_header->lr_unit_shift - frame_header->lr_uv_shift, ++ }; ++ ++ ap->film_grain = (StdVideoAV1FilmGrain) { ++ .flags = (StdVideoAV1FilmGrainFlags) { ++ .chroma_scaling_from_luma = film_grain->chroma_scaling_from_luma, ++ .overlap_flag = film_grain->overlap_flag, ++ .clip_to_restricted_range = film_grain->clip_to_restricted_range, ++ }, ++ .grain_scaling_minus_8 = film_grain->grain_scaling_minus_8, ++ .ar_coeff_lag = film_grain->ar_coeff_lag, ++ .ar_coeff_shift_minus_6 = film_grain->ar_coeff_shift_minus_6, ++ .grain_scale_shift = film_grain->grain_scale_shift, ++ .grain_seed = film_grain->grain_seed, ++ .film_grain_params_ref_idx = film_grain->film_grain_params_ref_idx, ++ .num_y_points = film_grain->num_y_points, ++ .num_cb_points = film_grain->num_cb_points, ++ .num_cr_points = film_grain->num_cr_points, ++ .cb_mult = film_grain->cb_mult, ++ .cb_luma_mult = film_grain->cb_luma_mult, ++ .cb_offset = film_grain->cb_offset, ++ .cr_mult = film_grain->cr_mult, ++ .cr_luma_mult = film_grain->cr_luma_mult, ++ .cr_offset = film_grain->cr_offset, ++ }; ++ + /* Setup frame header */ +- ap->av1_frame_header = (StdVideoAV1MESAFrameHeader) { +- .flags = (StdVideoAV1MESAFrameHeaderFlags) { ++ ap->std_pic_info = (StdVideoDecodeAV1PictureInfo) { ++ .flags = (StdVideoDecodeAV1PictureInfoFlags) { + .error_resilient_mode = frame_header->error_resilient_mode, + .disable_cdf_update = frame_header->disable_cdf_update, + .use_superres = frame_header->use_superres, +@@ -302,174 +445,92 @@ static int vk_av1_start_frame(AVCodecContext *avctx, + .reference_select = frame_header->reference_select, + .skip_mode_present = frame_header->skip_mode_present, + .delta_q_present = frame_header->delta_q_present, ++ .delta_lf_present = frame_header->delta_lf_present, ++ .delta_lf_multi = frame_header->delta_lf_multi, ++ .segmentation_enabled = frame_header->segmentation_enabled, ++ .segmentation_update_map = frame_header->segmentation_update_map, ++ .segmentation_temporal_update = frame_header->segmentation_temporal_update, ++ .segmentation_update_data = frame_header->segmentation_update_data, ++ .UsesLr = frame_header->lr_type[0] || frame_header->lr_type[1] || frame_header->lr_type[2], ++ .apply_grain = apply_grain, + }, +- .frame_to_show_map_idx = frame_header->frame_to_show_map_idx, +- .frame_presentation_time = frame_header->frame_presentation_time, +- .display_frame_id = frame_header->display_frame_id, + .frame_type = frame_header->frame_type, + .current_frame_id = frame_header->current_frame_id, +- .order_hint = frame_header->order_hint, ++ .OrderHint = frame_header->order_hint, + .primary_ref_frame = frame_header->primary_ref_frame, +- .frame_width_minus_1 = frame_header->frame_width_minus_1, +- .frame_height_minus_1 = frame_header->frame_height_minus_1, +- .coded_denom = frame_header->coded_denom, +- .render_width_minus_1 = frame_header->render_width_minus_1, +- .render_height_minus_1 = frame_header->render_height_minus_1, + .refresh_frame_flags = frame_header->refresh_frame_flags, + .interpolation_filter = frame_header->interpolation_filter, +- .tx_mode = frame_header->tx_mode, +- .tiling = (StdVideoAV1MESATileInfo) { +- .flags = (StdVideoAV1MESATileInfoFlags) { +- .uniform_tile_spacing_flag = frame_header->uniform_tile_spacing_flag, +- }, +- .tile_cols = frame_header->tile_cols, +- .tile_rows = frame_header->tile_rows, +- .context_update_tile_id = frame_header->context_update_tile_id, +- .tile_size_bytes_minus1 = frame_header->tile_size_bytes_minus1, +- }, +- .quantization = (StdVideoAV1MESAQuantization) { +- .flags.using_qmatrix = frame_header->using_qmatrix, +- .base_q_idx = frame_header->base_q_idx, +- .delta_q_y_dc = frame_header->delta_q_y_dc, +- .diff_uv_delta = frame_header->diff_uv_delta, +- .delta_q_u_dc = frame_header->delta_q_u_dc, +- .delta_q_u_ac = frame_header->delta_q_u_ac, +- .delta_q_v_dc = frame_header->delta_q_v_dc, +- .delta_q_v_ac = frame_header->delta_q_v_ac, +- .qm_y = frame_header->qm_y, +- .qm_u = frame_header->qm_u, +- .qm_v = frame_header->qm_v, +- }, +- .delta_q = (StdVideoAV1MESADeltaQ) { +- .flags = (StdVideoAV1MESADeltaQFlags) { +- .delta_lf_present = frame_header->delta_lf_present, +- .delta_lf_multi = frame_header->delta_lf_multi, +- }, +- .delta_q_res = frame_header->delta_q_res, +- .delta_lf_res = frame_header->delta_lf_res, +- }, +- .loop_filter = (StdVideoAV1MESALoopFilter) { +- .flags = (StdVideoAV1MESALoopFilterFlags) { +- .delta_enabled = frame_header->loop_filter_delta_enabled, +- .delta_update = frame_header->loop_filter_delta_update, +- }, +- .level = { +- frame_header->loop_filter_level[0], frame_header->loop_filter_level[1], +- frame_header->loop_filter_level[2], frame_header->loop_filter_level[3], +- }, +- .sharpness = frame_header->loop_filter_sharpness, +- .mode_deltas = { +- frame_header->loop_filter_mode_deltas[0], frame_header->loop_filter_mode_deltas[1], +- }, +- }, +- .cdef = (StdVideoAV1MESACDEF) { +- .damping_minus_3 = frame_header->cdef_damping_minus_3, +- .bits = frame_header->cdef_bits, +- }, +- .lr = (StdVideoAV1MESALoopRestoration) { +- .lr_unit_shift = frame_header->lr_unit_shift, +- .lr_uv_shift = frame_header->lr_uv_shift, +- .lr_type = { frame_header->lr_type[0], frame_header->lr_type[1], frame_header->lr_type[2] }, +- }, +- .segmentation = (StdVideoAV1MESASegmentation) { +- .flags = (StdVideoAV1MESASegmentationFlags) { +- .enabled = frame_header->segmentation_enabled, +- .update_map = frame_header->segmentation_update_map, +- .temporal_update = frame_header->segmentation_temporal_update, +- .update_data = frame_header->segmentation_update_data, +- }, +- }, +- .film_grain = (StdVideoAV1MESAFilmGrainParameters) { +- .flags = (StdVideoAV1MESAFilmGrainFlags) { +- .apply_grain = apply_grain, +- .chroma_scaling_from_luma = film_grain->chroma_scaling_from_luma, +- .overlap_flag = film_grain->overlap_flag, +- .clip_to_restricted_range = film_grain->clip_to_restricted_range, +- }, +- .grain_scaling_minus_8 = film_grain->grain_scaling_minus_8, +- .ar_coeff_lag = film_grain->ar_coeff_lag, +- .ar_coeff_shift_minus_6 = film_grain->ar_coeff_shift_minus_6, +- .grain_scale_shift = film_grain->grain_scale_shift, +- .grain_seed = film_grain->grain_seed, +- .num_y_points = film_grain->num_y_points, +- .num_cb_points = film_grain->num_cb_points, +- .num_cr_points = film_grain->num_cr_points, +- .cb_mult = film_grain->cb_mult, +- .cb_luma_mult = film_grain->cb_luma_mult, +- .cb_offset = film_grain->cb_offset, +- .cr_mult = film_grain->cr_mult, +- .cr_luma_mult = film_grain->cr_luma_mult, +- .cr_offset = film_grain->cr_offset, +- }, ++ .TxMode = frame_header->tx_mode, ++ .delta_q_res = frame_header->delta_q_res, ++ .delta_lf_res = frame_header->delta_lf_res, ++ .SkipModeFrame[0] = s->cur_frame.skip_mode_frame_idx[0], ++ .SkipModeFrame[1] = s->cur_frame.skip_mode_frame_idx[1], ++ .coded_denom = frame_header->coded_denom, ++ .pTileInfo = &ap->tile_info, ++ .pQuantization = &ap->quantization, ++ .pSegmentation = &ap->segmentation, ++ .pLoopFilter = &ap->loop_filter, ++ .pCDEF = &ap->cdef, ++ .pLoopRestoration = &ap->loop_restoration, ++ .pGlobalMotion = &ap->global_motion, ++ .pFilmGrain = apply_grain ? &ap->film_grain : NULL, + }; + + for (int i = 0; i < 64; i++) { +- ap->av1_frame_header.tiling.width_in_sbs_minus_1[i] = frame_header->width_in_sbs_minus_1[i]; +- ap->av1_frame_header.tiling.height_in_sbs_minus_1[i] = frame_header->height_in_sbs_minus_1[i]; +- ap->av1_frame_header.tiling.tile_start_col_sb[i] = frame_header->tile_start_col_sb[i]; +- ap->av1_frame_header.tiling.tile_start_row_sb[i] = frame_header->tile_start_row_sb[i]; ++ ap->width_in_sbs_minus1[i] = frame_header->width_in_sbs_minus_1[i]; ++ ap->height_in_sbs_minus1[i] = frame_header->height_in_sbs_minus_1[i]; ++ ap->mi_col_starts[i] = frame_header->tile_start_col_sb[i]; ++ ap->mi_row_starts[i] = frame_header->tile_start_row_sb[i]; + } + +- for (int i = 0; i < 8; i++) { +- ap->av1_frame_header.segmentation.feature_enabled_bits[i] = 0; +- for (int j = 0; j < 8; j++) { +- ap->av1_frame_header.segmentation.feature_enabled_bits[i] |= (frame_header->feature_enabled[i][j] << j); +- ap->av1_frame_header.segmentation.feature_data[i][j] = frame_header->feature_value[i][j]; ++ for (int i = 0; i < STD_VIDEO_AV1_MAX_SEGMENTS; i++) { ++ ap->segmentation.FeatureEnabled[i] = 0x0; ++ for (int j = 0; j < STD_VIDEO_AV1_SEG_LVL_MAX; j++) { ++ ap->segmentation.FeatureEnabled[i] |= (frame_header->feature_enabled[i][j] << j); ++ ap->segmentation.FeatureData[i][j] = frame_header->feature_value[i][j]; + } +- +- ap->av1_frame_header.loop_filter.ref_deltas[i] = frame_header->loop_filter_ref_deltas[i]; +- +- ap->av1_frame_header.cdef.y_pri_strength[i] = frame_header->cdef_y_pri_strength[i]; +- ap->av1_frame_header.cdef.y_sec_strength[i] = frame_header->cdef_y_sec_strength[i]; +- ap->av1_frame_header.cdef.uv_pri_strength[i] = frame_header->cdef_uv_pri_strength[i]; +- ap->av1_frame_header.cdef.uv_sec_strength[i] = frame_header->cdef_uv_sec_strength[i]; +- +- ap->av1_frame_header.ref_order_hint[i] = frame_header->ref_order_hint[i]; +- ap->av1_frame_header.global_motion[i] = (StdVideoAV1MESAGlobalMotion) { +- .flags = (StdVideoAV1MESAGlobalMotionFlags) { +- .gm_invalid = s->cur_frame.gm_invalid[i], +- }, +- .gm_type = s->cur_frame.gm_type[i], +- .gm_params = { +- s->cur_frame.gm_params[i][0], s->cur_frame.gm_params[i][1], +- s->cur_frame.gm_params[i][2], s->cur_frame.gm_params[i][3], +- s->cur_frame.gm_params[i][4], s->cur_frame.gm_params[i][5], +- }, +- }; + } + +- for (int i = 0; i < 7; i++) { +- ap->av1_frame_header.ref_frame_idx[i] = frame_header->ref_frame_idx[i]; +- ap->av1_frame_header.delta_frame_id_minus1[i] = frame_header->delta_frame_id_minus1[i]; ++ for (int i = 0; i < STD_VIDEO_AV1_TOTAL_REFS_PER_FRAME; i++) ++ ap->loop_filter.loop_filter_ref_deltas[i] = frame_header->loop_filter_ref_deltas[i]; ++ ++ for (int i = 0; i < STD_VIDEO_AV1_MAX_CDEF_FILTER_STRENGTHS; i++) { ++ ap->cdef.cdef_y_pri_strength[i] = frame_header->cdef_y_pri_strength[i]; ++ ap->cdef.cdef_y_sec_strength[i] = frame_header->cdef_y_sec_strength[i]; ++ ap->cdef.cdef_uv_pri_strength[i] = frame_header->cdef_uv_pri_strength[i]; ++ ap->cdef.cdef_uv_sec_strength[i] = frame_header->cdef_uv_sec_strength[i]; + } + +- ap->av1_pic_info.skip_mode_frame_idx[0] = s->cur_frame.skip_mode_frame_idx[0]; +- ap->av1_pic_info.skip_mode_frame_idx[1] = s->cur_frame.skip_mode_frame_idx[1]; ++ for (int i = 0; i < STD_VIDEO_AV1_NUM_REF_FRAMES; i++) { ++ ap->std_pic_info.OrderHints[i] = frame_header->ref_order_hint[i]; ++ ap->global_motion.GmType[i] = s->cur_frame.gm_type[i]; ++ for (int j = 0; j < STD_VIDEO_AV1_GLOBAL_MOTION_PARAMS; j++) { ++ ap->global_motion.gm_params[i][j] = s->cur_frame.gm_params[i][j]; ++ } ++ } + + if (apply_grain) { +- for (int i = 0; i < 14; i++) { +- ap->av1_frame_header.film_grain.point_y_value[i] = film_grain->point_y_value[i]; +- ap->av1_frame_header.film_grain.point_y_scaling[i] = film_grain->point_y_scaling[i]; ++ for (int i = 0; i < STD_VIDEO_AV1_MAX_NUM_Y_POINTS; i++) { ++ ap->film_grain.point_y_value[i] = film_grain->point_y_value[i]; ++ ap->film_grain.point_y_scaling[i] = film_grain->point_y_scaling[i]; + } + +- for (int i = 0; i < 10; i++) { +- ap->av1_frame_header.film_grain.point_cb_value[i] = film_grain->point_cb_value[i]; +- ap->av1_frame_header.film_grain.point_cb_scaling[i] = film_grain->point_cb_scaling[i]; +- ap->av1_frame_header.film_grain.point_cr_value[i] = film_grain->point_cr_value[i]; +- ap->av1_frame_header.film_grain.point_cr_scaling[i] = film_grain->point_cr_scaling[i]; ++ for (int i = 0; i < STD_VIDEO_AV1_MAX_NUM_CB_POINTS; i++) { ++ ap->film_grain.point_cb_value[i] = film_grain->point_cb_value[i]; ++ ap->film_grain.point_cb_scaling[i] = film_grain->point_cb_scaling[i]; ++ ap->film_grain.point_cr_value[i] = film_grain->point_cr_value[i]; ++ ap->film_grain.point_cr_scaling[i] = film_grain->point_cr_scaling[i]; + } + +- for (int i = 0; i < 24; i++) { +- ap->av1_frame_header.film_grain.ar_coeffs_y_plus_128[i] = film_grain->ar_coeffs_y_plus_128[i]; +- ap->av1_frame_header.film_grain.ar_coeffs_cb_plus_128[i] = film_grain->ar_coeffs_cb_plus_128[i]; +- ap->av1_frame_header.film_grain.ar_coeffs_cr_plus_128[i] = film_grain->ar_coeffs_cr_plus_128[i]; +- } ++ for (int i = 0; i < STD_VIDEO_AV1_MAX_NUM_POS_LUMA; i++) ++ ap->film_grain.ar_coeffs_y_plus_128[i] = film_grain->ar_coeffs_y_plus_128[i]; + +- ap->av1_frame_header.film_grain.ar_coeffs_cb_plus_128[24] = film_grain->ar_coeffs_cb_plus_128[24]; +- ap->av1_frame_header.film_grain.ar_coeffs_cr_plus_128[24] = film_grain->ar_coeffs_cr_plus_128[24]; ++ for (int i = 0; i < STD_VIDEO_AV1_MAX_NUM_POS_CHROMA; i++) { ++ ap->film_grain.ar_coeffs_cb_plus_128[i] = film_grain->ar_coeffs_cb_plus_128[i]; ++ ap->film_grain.ar_coeffs_cr_plus_128[i] = film_grain->ar_coeffs_cr_plus_128[i]; ++ } + } + +- /* Workaround for a spec issue. */ + ap->dec = dec; + + return 0; +@@ -484,25 +545,20 @@ static int vk_av1_decode_slice(AVCodecContext *avctx, + AV1VulkanDecodePicture *ap = s->cur_frame.hwaccel_picture_private; + FFVulkanDecodePicture *vp = &ap->vp; + ++ /* Too many tiles, exceeding all defined levels in the AV1 spec */ ++ if (ap->av1_pic_info.tileCount > MAX_TILES) ++ return AVERROR(ENOSYS); ++ + for (int i = s->tg_start; i <= s->tg_end; i++) { +- ap->tiles[ap->tile_list.nb_tiles] = (StdVideoAV1MESATile) { +- .size = s->tile_group_info[i].tile_size, +- .offset = s->tile_group_info[i].tile_offset, +- .row = s->tile_group_info[i].tile_row, +- .column = s->tile_group_info[i].tile_column, +- .tg_start = s->tg_start, +- .tg_end = s->tg_end, +- }; ++ ap->tile_sizes[ap->av1_pic_info.tileCount] = s->tile_group_info[i].tile_size; + + err = ff_vk_decode_add_slice(avctx, vp, + data + s->tile_group_info[i].tile_offset, + s->tile_group_info[i].tile_size, 0, +- &ap->tile_list.nb_tiles, +- &ap->tile_offsets); ++ &ap->av1_pic_info.tileCount, ++ &ap->av1_pic_info.pTileOffsets); + if (err < 0) + return err; +- +- ap->tiles[ap->tile_list.nb_tiles - 1].offset = ap->tile_offsets[ap->tile_list.nb_tiles - 1]; + } + + return 0; +@@ -518,7 +574,7 @@ static int vk_av1_end_frame(AVCodecContext *avctx) + FFVulkanDecodePicture *rvp[AV1_NUM_REF_FRAMES] = { 0 }; + AVFrame *rav[AV1_NUM_REF_FRAMES] = { 0 }; + +- if (!ap->tile_list.nb_tiles) ++ if (!ap->av1_pic_info.tileCount) + return 0; + + if (!dec->session_params) { +@@ -536,7 +592,7 @@ static int vk_av1_end_frame(AVCodecContext *avctx) + } + + av_log(avctx, AV_LOG_VERBOSE, "Decoding frame, %"SIZE_SPECIFIER" bytes, %i tiles\n", +- vp->slices_size, ap->tile_list.nb_tiles); ++ vp->slices_size, ap->av1_pic_info.tileCount); + + return ff_vk_decode_frame(avctx, pic->f, vp, rav, rvp); + } +@@ -580,8 +636,6 @@ const FFHWAccel ff_av1_vulkan_hwaccel = { + * flexibility, this index cannot be present anywhere. + * The current implementation tracks the index for the driver and submits it + * as necessary information. Due to needing to modify the decoding context, +- * which is not thread-safe, on frame free, threading is disabled. +- * In the future, once this is fixed in the spec, the workarounds may be removed +- * and threading enabled. */ ++ * which is not thread-safe, on frame free, threading is disabled. */ + .caps_internal = HWACCEL_CAP_ASYNC_SAFE, + }; +diff --git a/libavcodec/vulkan_decode.c b/libavcodec/vulkan_decode.c +index 91929d165f..4561f26b62 100644 +--- a/libavcodec/vulkan_decode.c ++++ b/libavcodec/vulkan_decode.c +@@ -61,7 +61,7 @@ static const VkVideoProfileInfoKHR *get_video_profile(FFVulkanDecodeShared *ctx, + VkStructureType profile_struct_type = + codec_id == AV_CODEC_ID_H264 ? VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR : + codec_id == AV_CODEC_ID_HEVC ? VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR : +- codec_id == AV_CODEC_ID_AV1 ? VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PROFILE_INFO_MESA : ++ codec_id == AV_CODEC_ID_AV1 ? VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PROFILE_INFO_KHR : + 0; + + profile_list = ff_vk_find_struct(ctx->s.hwfc->create_pnext, +@@ -674,7 +674,7 @@ static VkResult vulkan_setup_profile(AVCodecContext *avctx, + const struct FFVkCodecMap *vk_codec, + VkVideoDecodeH264CapabilitiesKHR *h264_caps, + VkVideoDecodeH265CapabilitiesKHR *h265_caps, +- VkVideoDecodeAV1CapabilitiesMESA *av1_caps, ++ VkVideoDecodeAV1CapabilitiesKHR *av1_caps, + VkVideoCapabilitiesKHR *caps, + VkVideoDecodeCapabilitiesKHR *dec_caps, + int cur_profile) +@@ -685,7 +685,7 @@ static VkResult vulkan_setup_profile(AVCodecContext *avctx, + + VkVideoDecodeH264ProfileInfoKHR *h264_profile = &prof->h264_profile; + VkVideoDecodeH265ProfileInfoKHR *h265_profile = &prof->h265_profile; +- VkVideoDecodeAV1ProfileInfoMESA *av1_profile = &prof->av1_profile; ++ VkVideoDecodeAV1ProfileInfoKHR *av1_profile = &prof->av1_profile; + + const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(avctx->sw_pix_fmt); + if (!desc) +@@ -713,8 +713,9 @@ static VkResult vulkan_setup_profile(AVCodecContext *avctx, + } else if (avctx->codec_id == AV_CODEC_ID_AV1) { + dec_caps->pNext = av1_caps; + usage->pNext = av1_profile; +- av1_profile->sType = VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PROFILE_INFO_MESA; +- av1_profile->stdProfileIdc = cur_profile; ++ av1_profile->sType = VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PROFILE_INFO_KHR; ++ av1_profile->stdProfile = cur_profile; ++ av1_profile->filmGrainSupport = !(avctx->export_side_data & AV_CODEC_EXPORT_DATA_FILM_GRAIN); + } + + usage->sType = VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR; +@@ -769,8 +770,8 @@ static int vulkan_decode_get_profile(AVCodecContext *avctx, AVBufferRef *frames_ + VkVideoDecodeH265CapabilitiesKHR h265_caps = { + .sType = VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR, + }; +- VkVideoDecodeAV1CapabilitiesMESA av1_caps = { +- .sType = VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_CAPABILITIES_MESA, ++ VkVideoDecodeAV1CapabilitiesKHR av1_caps = { ++ .sType = VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_CAPABILITIES_KHR, + }; + + VkPhysicalDeviceVideoFormatInfoKHR fmt_info = { +@@ -789,7 +790,7 @@ static int vulkan_decode_get_profile(AVCodecContext *avctx, AVBufferRef *frames_ + cur_profile = avctx->profile; + base_profile = avctx->codec_id == AV_CODEC_ID_H264 ? AV_PROFILE_H264_CONSTRAINED_BASELINE : + avctx->codec_id == AV_CODEC_ID_H265 ? AV_PROFILE_HEVC_MAIN : +- avctx->codec_id == AV_CODEC_ID_AV1 ? STD_VIDEO_AV1_MESA_PROFILE_MAIN : ++ avctx->codec_id == AV_CODEC_ID_AV1 ? STD_VIDEO_AV1_PROFILE_MAIN : + 0; + + ret = vulkan_setup_profile(avctx, prof, hwctx, vk, vk_codec, +@@ -837,7 +838,7 @@ static int vulkan_decode_get_profile(AVCodecContext *avctx, AVBufferRef *frames_ + + max_level = avctx->codec_id == AV_CODEC_ID_H264 ? ff_vk_h264_level_to_av(h264_caps.maxLevelIdc) : + avctx->codec_id == AV_CODEC_ID_H265 ? ff_vk_h265_level_to_av(h265_caps.maxLevelIdc) : +- avctx->codec_id == AV_CODEC_ID_AV1 ? av1_caps.maxLevelIdc : ++ avctx->codec_id == AV_CODEC_ID_AV1 ? av1_caps.maxLevel : + 0; + + av_log(avctx, AV_LOG_VERBOSE, "Decoder capabilities for %s profile \"%s\":\n", +@@ -908,17 +909,11 @@ static int vulkan_decode_get_profile(AVCodecContext *avctx, AVBufferRef *frames_ + "VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR set " + "but VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR is unset!\n"); + return AVERROR_EXTERNAL; +- } else if (!(dec_caps->flags & VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR) && +- avctx->codec_id == AV_CODEC_ID_AV1) { +- av_log(avctx, AV_LOG_ERROR, "Cannot initialize Vulkan decoding session, buggy driver: " +- "codec is AV1, but VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR isn't set!\n"); +- return AVERROR_EXTERNAL; + } + + /* TODO: make dedicated_dpb tunable */ + dec->dedicated_dpb = !(dec_caps->flags & VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR); + dec->layered_dpb = !(caps->flags & VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR); +- dec->external_fg = av1_caps.flags & VK_VIDEO_DECODE_AV1_CAPABILITY_EXTERNAL_FILM_GRAIN_MESA; + + if (dec->dedicated_dpb) { + fmt_info.imageUsage = VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR; +@@ -1126,8 +1121,10 @@ int ff_vk_decode_init(AVCodecContext *avctx) + VkVideoDecodeH265SessionParametersCreateInfoKHR h265_params = { + .sType = VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR, + }; +- VkVideoDecodeAV1SessionParametersCreateInfoMESA av1_params = { +- .sType = VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_SESSION_PARAMETERS_CREATE_INFO_MESA, ++ StdVideoAV1SequenceHeader av1_empty_seq = { 0 }; ++ VkVideoDecodeAV1SessionParametersCreateInfoKHR av1_params = { ++ .sType = VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR, ++ .pStdSequenceHeader = &av1_empty_seq, + }; + VkVideoSessionParametersCreateInfoKHR session_params_create = { + .sType = VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR, +diff --git a/libavcodec/vulkan_decode.h b/libavcodec/vulkan_decode.h +index a43e328d73..7ba8b239cb 100644 +--- a/libavcodec/vulkan_decode.h ++++ b/libavcodec/vulkan_decode.h +@@ -37,7 +37,7 @@ typedef struct FFVulkanDecodeDescriptor { + typedef struct FFVulkanDecodeProfileData { + VkVideoDecodeH264ProfileInfoKHR h264_profile; + VkVideoDecodeH265ProfileInfoKHR h265_profile; +- VkVideoDecodeAV1ProfileInfoMESA av1_profile; ++ VkVideoDecodeAV1ProfileInfoKHR av1_profile; + VkVideoDecodeUsageInfoKHR usage; + VkVideoProfileInfoKHR profile; + VkVideoProfileListInfoKHR profile_list; +diff --git a/libavcodec/vulkan_video.h b/libavcodec/vulkan_video.h +index bb69e920bb..01a1de7d9d 100644 +--- a/libavcodec/vulkan_video.h ++++ b/libavcodec/vulkan_video.h +@@ -22,8 +22,6 @@ + #include "vulkan.h" + + #include <vk_video/vulkan_video_codecs_common.h> +-#include "vulkan_video_codec_av1std.h" +-#include "vulkan_video_codec_av1std_decode.h" + + #define CODEC_VER_MAJ(ver) (ver >> 22) + #define CODEC_VER_MIN(ver) ((ver >> 12) & ((1 << 10) - 1)) +diff --git a/libavcodec/vulkan_video_codec_av1std_decode.h b/libavcodec/vulkan_video_codec_av1std_decode.h +deleted file mode 100644 +index e2f37b4e6e..0000000000 +--- a/libavcodec/vulkan_video_codec_av1std_decode.h ++++ /dev/null +@@ -1,36 +0,0 @@ +-/* Copyright 2023 Lynne +- * Copyright 2023 Dave Airlie +- * +- * Licensed under the Apache License, Version 2.0 (the "License"); +- * you may not use this file except in compliance with the License. +- * You may obtain a copy of the License at +- * +- * http://www.apache.org/licenses/LICENSE-2.0 +- * +- * Unless required by applicable law or agreed to in writing, software +- * distributed under the License is distributed on an "AS IS" BASIS, +- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +- * See the License for the specific language governing permissions and +- * limitations under the License. +- */ +- +-#ifndef VULKAN_VIDEO_CODEC_AV1STD_DECODE_H_ +-#define VULKAN_VIDEO_CODEC_AV1STD_DECODE_H_ 1 +- +-/* +-** This header is NOT YET generated from the Khronos Vulkan XML API Registry. +-** +-*/ +- +-#ifdef __cplusplus +-extern "C" { +-#endif +-#define vulkan_video_codec_av1std_decode 1 +- +- +- +-#ifdef __cplusplus +-} +-#endif +- +-#endif +diff --git a/libavcodec/vulkan_video_codec_av1std.h b/libavcodec/vulkan_video_codec_av1std.h +deleted file mode 100644 +index c91589eee2..0000000000 +--- a/libavcodec/vulkan_video_codec_av1std.h ++++ /dev/null +@@ -1,403 +0,0 @@ +-/* Copyright 2023 Lynne +- * Copyright 2023 Dave Airlie +- * +- * Licensed under the Apache License, Version 2.0 (the "License"); +- * you may not use this file except in compliance with the License. +- * You may obtain a copy of the License at +- * +- * http://www.apache.org/licenses/LICENSE-2.0 +- * +- * Unless required by applicable law or agreed to in writing, software +- * distributed under the License is distributed on an "AS IS" BASIS, +- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +- * See the License for the specific language governing permissions and +- * limitations under the License. +- */ +- +-#ifndef VULKAN_VIDEO_CODEC_AV1STD_H_ +-#define VULKAN_VIDEO_CODEC_AV1STD_H_ 1 +- +-/* +-** This header is NOT YET generated from the Khronos Vulkan XML API Registry. +-** +-*/ +- +-#ifdef __cplusplus +-extern "C" { +-#endif +-#define vulkan_video_codec_av1std 1 +- +-#define VK_MAKE_VIDEO_STD_VERSION(major, minor, patch) \ +- ((((uint32_t)(major)) << 22) | (((uint32_t)(minor)) << 12) | ((uint32_t)(patch))) +-#define VK_STD_VULKAN_VIDEO_CODEC_AV1_DECODE_API_VERSION_0_1_0 VK_MAKE_VIDEO_STD_VERSION(0, 1, 0) +-#define VK_STD_VULKAN_VIDEO_CODEC_AV1_DECODE_SPEC_VERSION VK_STD_VULKAN_VIDEO_CODEC_AV1_DECODE_API_VERSION_0_1_0 +-#define VK_STD_VULKAN_VIDEO_CODEC_AV1_DECODE_EXTENSION_NAME "VK_STD_vulkan_video_codec_av1_decode" +- +-typedef enum StdVideoAV1MESAProfile { +- STD_VIDEO_AV1_MESA_PROFILE_MAIN = 0, +- STD_VIDEO_AV1_MESA_PROFILE_HIGH = 1, +- STD_VIDEO_AV1_MESA_PROFILE_PROFESSIONAL = 2, +-} StdVideoAV1MESAProfile; +- +-typedef enum StdVideoAV1MESALevel { +- STD_VIDEO_AV1_MESA_LEVEL_2_0 = 0, +- STD_VIDEO_AV1_MESA_LEVEL_2_1 = 1, +- STD_VIDEO_AV1_MESA_LEVEL_2_2 = 2, +- STD_VIDEO_AV1_MESA_LEVEL_2_3 = 3, +- STD_VIDEO_AV1_MESA_LEVEL_3_0 = 4, +- STD_VIDEO_AV1_MESA_LEVEL_3_1 = 5, +- STD_VIDEO_AV1_MESA_LEVEL_3_2 = 6, +- STD_VIDEO_AV1_MESA_LEVEL_3_3 = 7, +- STD_VIDEO_AV1_MESA_LEVEL_4_0 = 8, +- STD_VIDEO_AV1_MESA_LEVEL_4_1 = 9, +- STD_VIDEO_AV1_MESA_LEVEL_4_2 = 10, +- STD_VIDEO_AV1_MESA_LEVEL_4_3 = 11, +- STD_VIDEO_AV1_MESA_LEVEL_5_0 = 12, +- STD_VIDEO_AV1_MESA_LEVEL_5_1 = 13, +- STD_VIDEO_AV1_MESA_LEVEL_5_2 = 14, +- STD_VIDEO_AV1_MESA_LEVEL_5_3 = 15, +- STD_VIDEO_AV1_MESA_LEVEL_6_0 = 16, +- STD_VIDEO_AV1_MESA_LEVEL_6_1 = 17, +- STD_VIDEO_AV1_MESA_LEVEL_6_2 = 18, +- STD_VIDEO_AV1_MESA_LEVEL_6_3 = 19, +- STD_VIDEO_AV1_MESA_LEVEL_7_0 = 20, +- STD_VIDEO_AV1_MESA_LEVEL_7_1 = 21, +- STD_VIDEO_AV1_MESA_LEVEL_7_2 = 22, +- STD_VIDEO_AV1_MESA_LEVEL_7_3 = 23, +- STD_VIDEO_AV1_MESA_LEVEL_MAX = 31, +-} StdVideoAV1MESALevel; +- +-typedef struct StdVideoAV1MESAFilmGrainFlags { +- uint8_t apply_grain; +- uint8_t chroma_scaling_from_luma; +- uint8_t overlap_flag; +- uint8_t clip_to_restricted_range; +-} StdVideoAV1MESAFilmGrainFlags; +- +-typedef struct StdVideoAV1MESAFilmGrainParameters { +- StdVideoAV1MESAFilmGrainFlags flags; +- uint32_t grain_scaling_minus_8; +- uint32_t ar_coeff_lag; +- uint32_t ar_coeff_shift_minus_6; +- uint32_t grain_scale_shift; +- +- uint16_t grain_seed; +- uint8_t num_y_points; +- uint8_t point_y_value[14]; +- uint8_t point_y_scaling[14]; +- +- uint8_t num_cb_points; +- uint8_t point_cb_value[10]; +- uint8_t point_cb_scaling[10]; +- +- uint8_t num_cr_points; +- uint8_t point_cr_value[10]; +- uint8_t point_cr_scaling[10]; +- +- int8_t ar_coeffs_y_plus_128[24]; +- int8_t ar_coeffs_cb_plus_128[25]; +- int8_t ar_coeffs_cr_plus_128[25]; +- uint8_t cb_mult; +- uint8_t cb_luma_mult; +- uint16_t cb_offset; +- uint8_t cr_mult; +- uint8_t cr_luma_mult; +- uint16_t cr_offset; +-} StdVideoAV1MESAFilmGrainParameters; +- +-typedef struct StdVideoAV1MESAGlobalMotionFlags { +- uint8_t gm_invalid; +-} StdVideoAV1MESAGlobalMotionFlags; +- +-typedef struct StdVideoAV1MESAGlobalMotion { +- StdVideoAV1MESAGlobalMotionFlags flags; +- uint8_t gm_type; +- uint32_t gm_params[6]; +-} StdVideoAV1MESAGlobalMotion; +- +-typedef struct StdVideoAV1MESALoopRestoration { +- uint8_t lr_type[3]; +- uint8_t lr_unit_shift; +- uint8_t lr_uv_shift; +-} StdVideoAV1MESALoopRestoration; +- +-typedef struct StdVideoAV1MESATileInfoFlags { +- uint8_t uniform_tile_spacing_flag; +-} StdVideoAV1MESATileInfoFlags; +- +-typedef struct StdVideoAV1MESATileInfo { +- StdVideoAV1MESATileInfoFlags flags; +- uint8_t tile_cols; +- uint8_t tile_rows; +- uint8_t tile_start_col_sb[64]; +- uint8_t tile_start_row_sb[64]; +- uint8_t width_in_sbs_minus_1[64]; +- uint8_t height_in_sbs_minus_1[64]; +- uint16_t context_update_tile_id; +- uint8_t tile_size_bytes_minus1; +-} StdVideoAV1MESATileInfo; +- +-typedef struct StdVideoAV1MESAQuantizationFlags { +- uint8_t using_qmatrix; +-} StdVideoAV1MESAQuantizationFlags; +- +-typedef struct StdVideoAV1MESAQuantization { +- StdVideoAV1MESAQuantizationFlags flags; +- uint8_t base_q_idx; +- int8_t delta_q_y_dc; +- uint8_t diff_uv_delta; +- int8_t delta_q_u_dc; +- int8_t delta_q_u_ac; +- int8_t delta_q_v_dc; +- int8_t delta_q_v_ac; +- uint8_t qm_y; +- uint8_t qm_u; +- uint8_t qm_v; +-} StdVideoAV1MESAQuantization; +- +-typedef struct StdVideoAV1MESACDEF { +- uint8_t damping_minus_3; +- uint8_t bits; +- uint8_t y_pri_strength[8]; +- uint8_t y_sec_strength[8]; +- uint8_t uv_pri_strength[8]; +- uint8_t uv_sec_strength[8]; +-} StdVideoAV1MESACDEF; +- +-typedef struct StdVideoAV1MESADeltaQFlags { +- uint8_t delta_lf_present; +- uint8_t delta_lf_multi; +-} StdVideoAV1MESADeltaQFlags; +- +-typedef struct StdVideoAV1MESADeltaQ { +- StdVideoAV1MESADeltaQFlags flags; +- uint8_t delta_q_res; +- uint8_t delta_lf_res; +-} StdVideoAV1MESADeltaQ; +- +-typedef struct StdVideoAV1MESASegmentationFlags { +- uint8_t enabled; +- uint8_t update_map; +- uint8_t temporal_update; +- uint8_t update_data; +-} StdVideoAV1MESASegmentationFlags; +- +-typedef struct StdVideoAV1MESASegmentation { +- StdVideoAV1MESASegmentationFlags flags; +- uint8_t feature_enabled_bits[8]; +- int16_t feature_data[8][8]; +-} StdVideoAV1MESASegmentation; +- +-typedef struct StdVideoAV1MESALoopFilterFlags { +- uint8_t delta_enabled; +- uint8_t delta_update; +-} StdVideoAV1MESALoopFilterFlags; +- +-typedef struct StdVideoAV1MESALoopFilter { +- StdVideoAV1MESALoopFilterFlags flags; +- uint8_t level[4]; +- uint8_t sharpness; +- int8_t ref_deltas[8]; +- int8_t mode_deltas[2]; +-} StdVideoAV1MESALoopFilter; +- +-typedef struct StdVideoAV1MESAFrameHeaderFlags { +- uint8_t error_resilient_mode; +- uint8_t disable_cdf_update; +- uint8_t use_superres; +- uint8_t render_and_frame_size_different; +- uint8_t allow_screen_content_tools; +- uint8_t is_filter_switchable; +- uint8_t force_integer_mv; +- uint8_t frame_size_override_flag; +- uint8_t buffer_removal_time_present_flag; +- uint8_t allow_intrabc; +- uint8_t frame_refs_short_signaling; +- uint8_t allow_high_precision_mv; +- uint8_t is_motion_mode_switchable; +- uint8_t use_ref_frame_mvs; +- uint8_t disable_frame_end_update_cdf; +- uint8_t allow_warped_motion; +- uint8_t reduced_tx_set; +- uint8_t reference_select; +- uint8_t skip_mode_present; +- uint8_t delta_q_present; +- uint8_t UsesLr; +-} StdVideoAV1MESAFrameHeaderFlags; +- +-typedef struct StdVideoAV1MESAFrameHeader { +- StdVideoAV1MESAFrameHeaderFlags flags; +- +- uint32_t frame_presentation_time; +- uint32_t display_frame_id; +- uint32_t current_frame_id; +- uint8_t frame_to_show_map_idx; +- uint8_t frame_type; +- uint8_t order_hint; +- uint8_t primary_ref_frame; +- uint16_t frame_width_minus_1; +- uint16_t frame_height_minus_1; +- uint16_t render_width_minus_1; +- uint16_t render_height_minus_1; +- uint8_t coded_denom; +- +- uint8_t refresh_frame_flags; +- uint8_t ref_order_hint[8]; +- int8_t ref_frame_idx[7]; +- uint32_t delta_frame_id_minus1[7]; +- +- uint8_t interpolation_filter; +- uint8_t tx_mode; +- +- StdVideoAV1MESATileInfo tiling; +- StdVideoAV1MESAQuantization quantization; +- StdVideoAV1MESASegmentation segmentation; +- StdVideoAV1MESADeltaQ delta_q; +- StdVideoAV1MESALoopFilter loop_filter; +- StdVideoAV1MESACDEF cdef; +- StdVideoAV1MESALoopRestoration lr; +- StdVideoAV1MESAGlobalMotion global_motion[8]; // One per ref frame +- StdVideoAV1MESAFilmGrainParameters film_grain; +-} StdVideoAV1MESAFrameHeader; +- +-typedef struct StdVideoAV1MESAScreenCoding { +- uint8_t seq_force_screen_content_tools; +-} StdVideoAV1MESAScreenCoding; +- +-typedef struct StdVideoAV1MESATimingInfoFlags { +- uint8_t equal_picture_interval; +-} StdVideoAV1MESATimingInfoFlags; +- +-typedef struct StdVideoAV1MESATimingInfo { +- StdVideoAV1MESATimingInfoFlags flags; +- uint32_t num_units_in_display_tick; +- uint32_t time_scale; +- uint32_t num_ticks_per_picture_minus_1; +-} StdVideoAV1MESATimingInfo; +- +-typedef struct StdVideoAV1MESAColorConfigFlags { +- uint8_t mono_chrome; +- uint8_t color_range; +- uint8_t separate_uv_delta_q; +-} StdVideoAV1MESAColorConfigFlags; +- +-typedef struct StdVideoAV1MESAColorConfig { +- StdVideoAV1MESAColorConfigFlags flags; +- uint8_t bit_depth; +- uint8_t subsampling_x; +- uint8_t subsampling_y; +-} StdVideoAV1MESAColorConfig; +- +-typedef struct StdVideoAV1MESASequenceHeaderFlags { +- uint8_t still_picture; +- uint8_t reduced_still_picture_header; +- uint8_t use_128x128_superblock; +- uint8_t enable_filter_intra; +- uint8_t enable_intra_edge_filter; +- uint8_t enable_interintra_compound; +- uint8_t enable_masked_compound; +- uint8_t enable_warped_motion; +- uint8_t enable_dual_filter; +- uint8_t enable_order_hint; +- uint8_t enable_jnt_comp; +- uint8_t enable_ref_frame_mvs; +- uint8_t frame_id_numbers_present_flag; +- uint8_t enable_superres; +- uint8_t enable_cdef; +- uint8_t enable_restoration; +- uint8_t film_grain_params_present; +- uint8_t timing_info_present_flag; +- uint8_t initial_display_delay_present_flag; +-} StdVideoAV1MESASequenceHeaderFlags; +- +-typedef struct StdVideoAV1MESASequenceHeader { +- StdVideoAV1MESASequenceHeaderFlags flags; +- +- StdVideoAV1MESAProfile seq_profile; +- uint8_t frame_width_bits_minus_1; +- uint8_t frame_height_bits_minus_1; +- uint16_t max_frame_width_minus_1; +- uint16_t max_frame_height_minus_1; +- uint8_t delta_frame_id_length_minus_2; +- uint8_t additional_frame_id_length_minus_1; +- uint8_t order_hint_bits_minus_1; +- uint8_t seq_choose_integer_mv; +- uint8_t seq_force_integer_mv; +- +- StdVideoAV1MESATimingInfo timing_info; +- StdVideoAV1MESAColorConfig color_config; +-} StdVideoAV1MESASequenceHeader; +- +-typedef struct StdVideoAV1MESATile { +- uint16_t tg_start; +- uint16_t tg_end; +- uint16_t row; +- uint16_t column; +- uint32_t size; +- uint32_t offset; +-} StdVideoAV1MESATile; +- +-typedef struct StdVideoAV1MESATileList { +- StdVideoAV1MESATile *tile_list; +- uint32_t nb_tiles; +-} StdVideoAV1MESATileList; +- +-typedef struct VkVideoDecodeAV1PictureInfoMESA { +- VkStructureType sType; +- const void *pNext; +- StdVideoAV1MESAFrameHeader *frame_header; +- StdVideoAV1MESATileList *tile_list; +- uint8_t skip_mode_frame_idx[2]; +-} VkVideoDecodeAV1PictureInfoMESA; +- +-typedef struct VkVideoDecodeAV1DpbSlotInfoMESA { +- VkStructureType sType; +- const void *pNext; +- uint8_t frameIdx; +- uint8_t ref_order_hint[7]; +- uint8_t disable_frame_end_update_cdf; +-} VkVideoDecodeAV1DpbSlotInfoMESA; +- +-typedef struct VkVideoDecodeAV1SessionParametersAddInfoMESA { +- VkStructureType sType; +- const void *pNext; +- StdVideoAV1MESASequenceHeader *sequence_header; +-} VkVideoDecodeAV1SessionParametersAddInfoMESA; +- +-typedef struct VkVideoDecodeAV1SessionParametersCreateInfoMESA { +- VkStructureType sType; +- const void *pNext; +- const VkVideoDecodeAV1SessionParametersAddInfoMESA *pParametersAddInfo; +-} VkVideoDecodeAV1SessionParametersCreateInfoMESA; +- +-typedef struct VkVideoDecodeAV1ProfileInfoMESA { +- VkStructureType sType; +- const void *pNext; +- StdVideoAV1MESAProfile stdProfileIdc; +-} VkVideoDecodeAV1ProfileInfoMESA; +- +-typedef enum VkVideoDecodeAV1CapabilityFlagBitsMESA { +- VK_VIDEO_DECODE_AV1_CAPABILITY_EXTERNAL_FILM_GRAIN_MESA = 0x00000001, +- VK_VIDEO_DECODE_AV1_CAPABILITY_FLAG_BITS_MAX_ENUM_MESA = 0x7FFFFFFF +-} VkVideoDecodeAV1CapabilityFlagBitsMESA; +-typedef VkFlags VkVideoDecodeAV1CapabilityFlagsMESA; +- +-typedef struct VkVideoDecodeAV1CapabilitiesMESA { +- VkStructureType sType; +- const void *pNext; +- VkVideoDecodeAV1CapabilityFlagsMESA flags; +- StdVideoAV1MESALevel maxLevelIdc; +-} VkVideoDecodeAV1CapabilitiesMESA; +- +-#define VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PICTURE_INFO_MESA 1000509000 +-#define VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_SESSION_PARAMETERS_CREATE_INFO_MESA 1000509001 +-#define VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_SESSION_PARAMETERS_ADD_INFO_MESA 1000509002 +-#define VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_DPB_SLOT_INFO_MESA 1000509003 +-#define VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_CAPABILITIES_MESA 1000509004 +-#define VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PROFILE_INFO_MESA 1000509005 +- +-#ifdef __cplusplus +-} +-#endif +- +-#endif +diff --git a/libavutil/hwcontext_vulkan.c b/libavutil/hwcontext_vulkan.c +index 91b9f96ccf..6e3b96b73a 100644 +--- a/libavutil/hwcontext_vulkan.c ++++ b/libavutil/hwcontext_vulkan.c +@@ -446,7 +446,7 @@ static const VulkanOptExtension optional_device_exts[] = { + { VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME, FF_VK_EXT_VIDEO_DECODE_QUEUE }, + { VK_KHR_VIDEO_DECODE_H264_EXTENSION_NAME, FF_VK_EXT_VIDEO_DECODE_H264 }, + { VK_KHR_VIDEO_DECODE_H265_EXTENSION_NAME, FF_VK_EXT_VIDEO_DECODE_H265 }, +- { "VK_MESA_video_decode_av1", FF_VK_EXT_VIDEO_DECODE_AV1 }, ++ { VK_KHR_VIDEO_DECODE_AV1_EXTENSION_NAME, FF_VK_EXT_VIDEO_DECODE_AV1 }, + }; + + static VkBool32 VKAPI_CALL vk_dbg_callback(VkDebugUtilsMessageSeverityFlagBitsEXT severity, +diff --git a/libavutil/vulkan_functions.h b/libavutil/vulkan_functions.h +index 65021b04b1..6b379acf93 100644 +--- a/libavutil/vulkan_functions.h ++++ b/libavutil/vulkan_functions.h +@@ -43,7 +43,7 @@ typedef enum FFVulkanExtensions { + FF_VK_EXT_VIDEO_DECODE_QUEUE = 1ULL << 11, /* VK_KHR_video_decode_queue */ + FF_VK_EXT_VIDEO_DECODE_H264 = 1ULL << 12, /* VK_EXT_video_decode_h264 */ + FF_VK_EXT_VIDEO_DECODE_H265 = 1ULL << 13, /* VK_EXT_video_decode_h265 */ +- FF_VK_EXT_VIDEO_DECODE_AV1 = 1ULL << 14, /* VK_MESA_video_decode_av1 */ ++ FF_VK_EXT_VIDEO_DECODE_AV1 = 1ULL << 14, /* VK_KHR_video_decode_av1 */ + FF_VK_EXT_ATOMIC_FLOAT = 1ULL << 15, /* VK_EXT_shader_atomic_float */ + FF_VK_EXT_COOP_MATRIX = 1ULL << 16, /* VK_KHR_cooperative_matrix */ + +diff --git a/libavutil/vulkan_loader.h b/libavutil/vulkan_loader.h +index f9e739e1e3..73cf03935d 100644 +--- a/libavutil/vulkan_loader.h ++++ b/libavutil/vulkan_loader.h +@@ -58,7 +58,7 @@ static inline uint64_t ff_vk_extensions_to_mask(const char * const *extensions, + { VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME, FF_VK_EXT_VIDEO_DECODE_QUEUE }, + { VK_KHR_VIDEO_DECODE_H264_EXTENSION_NAME, FF_VK_EXT_VIDEO_DECODE_H264 }, + { VK_KHR_VIDEO_DECODE_H265_EXTENSION_NAME, FF_VK_EXT_VIDEO_DECODE_H265 }, +- { "VK_MESA_video_decode_av1", FF_VK_EXT_VIDEO_DECODE_AV1 }, ++ { VK_KHR_VIDEO_DECODE_AV1_EXTENSION_NAME, FF_VK_EXT_VIDEO_DECODE_AV1 }, + }; + + FFVulkanExtensions mask = 0x0; +diff --git a/libavcodec/vulkan_video.c b/libavcodec/vulkan_video.c +--- ffmpeg-6.1.1.orig/libavcodec/vulkan_video.c ++++ ffmpeg-6.1.1/libavcodec/vulkan_video.c +@@ -37,7 +37,7 @@ const FFVkCodecMap ff_vk_codec_map[AV_CO + 0, + 0, + FF_VK_EXT_VIDEO_DECODE_AV1, +- 0x01000000 /* TODO fix this */ ++ VK_VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR + }, + }; + +-- +2.25.1 + diff --git a/meta-offline-voice-agent/recipes-multimedia/ffmpeg/ffmpeg_6.1.%.bbappend b/meta-offline-voice-agent/recipes-multimedia/ffmpeg/ffmpeg_6.1.%.bbappend new file mode 100644 index 00000000..ce87b6ba --- /dev/null +++ b/meta-offline-voice-agent/recipes-multimedia/ffmpeg/ffmpeg_6.1.%.bbappend @@ -0,0 +1 @@ +require ${@bb.utils.contains('AGL_FEATURES', 'whisper', 'ffmpeg_metawhisper.inc', '', d)} diff --git a/meta-offline-voice-agent/recipes-multimedia/ffmpeg/ffmpeg_metawhisper.inc b/meta-offline-voice-agent/recipes-multimedia/ffmpeg/ffmpeg_metawhisper.inc new file mode 100644 index 00000000..a566602b --- /dev/null +++ b/meta-offline-voice-agent/recipes-multimedia/ffmpeg/ffmpeg_metawhisper.inc @@ -0,0 +1,7 @@ +FILESEXTRAPATHS:prepend := "${THISDIR}/ffmpeg:" + +SRC_URI += " \ + file://av1_ordering_info.patch \ + file://vulkan_av1_stable_API.patch \ +" + diff --git a/meta-offline-voice-agent/recipes-python/llvmlite/files/LICENSE b/meta-offline-voice-agent/recipes-python/llvmlite/files/LICENSE new file mode 100644 index 00000000..8e94a016 --- /dev/null +++ b/meta-offline-voice-agent/recipes-python/llvmlite/files/LICENSE @@ -0,0 +1,24 @@ +Copyright (c) 2014-, Continuum Analytics, Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + +Redistributions of source code must retain the above copyright notice, +this list of conditions and the following disclaimer. + +Redistributions in binary form must reproduce the above copyright +notice, this list of conditions and the following disclaimer in the +documentation and/or other materials provided with the distribution. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/meta-offline-voice-agent/recipes-python/llvmlite/llvmlite_0.43.0.bb b/meta-offline-voice-agent/recipes-python/llvmlite/llvmlite_0.43.0.bb new file mode 100644 index 00000000..e34abd59 --- /dev/null +++ b/meta-offline-voice-agent/recipes-python/llvmlite/llvmlite_0.43.0.bb @@ -0,0 +1,34 @@ +DESCRIPTION = "llvmlite prebuilt binary" +HOMEPAGE = "https://github.com/numba/llvmlite" +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://${WORKDIR}/LICENSE;md5=a15ea9843f27327e08f3c5fbf8043a2b" + +SRCURIWHEEL:aarch64 += "https://files.pythonhosted.org/packages/bf/f1/4c205a48488e574ee9f6505d50e84370a978c90f08dab41a42d8f2c576b6/llvmlite-0.43.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl" +SRCURIWHEEL:x86-64 += "https://files.pythonhosted.org/packages/00/5f/323c4d56e8401c50185fd0e875fcf06b71bf825a863699be1eb10aa2a9cb/llvmlite-0.43.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl" +SRC_URI = " ${SRCURIWHEEL} " +SRC_URI:append = " file://LICENSE " + +SRCURICHECKSUM:x86-64 = "df6509e1507ca0760787a199d19439cc887bfd82226f5af746d6977bd9f66844" +SRCURICHECKSUM:aarch64 = "eccce86bba940bae0d8d48ed925f21dbb813519169246e2ab292b5092aba121f" +SRC_URI[sha256sum] = "${SRCURICHECKSUM}" + +COMPATIBLE_MACHINE = "null" +COMPATIBLE_MACHINE:aarch64 = "(.*)" +COMPATIBLE_MACHINE:x86-64 = "(.*)" + +DEPENDS += " unzip-native" + +RDEPENDS:${PN} += " zlib" + +do_install() { + mkdir -p ${WORKDIR}/llvmlite-0.43.0 + unzip ${WORKDIR}/$(basename ${SRC_URI}) -d ${WORKDIR}/llvmlite-0.43.0 + install -d ${D}/usr/lib/python3.12/site-packages + cp -R ${WORKDIR}/llvmlite-0.43.0/* ${D}/usr/lib/python3.12/site-packages/ +} + +do_configure:prepend() { + export LD_LIBRARY_PATH="${D}/usr/lib/python3.12/site-packages/llvmlite/binding:${LD_LIBRARY_PATH}" +} + +FILES:${PN} += "/usr/lib/python3.12/site-packages/* " diff --git a/meta-offline-voice-agent/recipes-python/numba/python3-numba_%.bbappend b/meta-offline-voice-agent/recipes-python/numba/python3-numba_%.bbappend new file mode 100644 index 00000000..4bc055b5 --- /dev/null +++ b/meta-offline-voice-agent/recipes-python/numba/python3-numba_%.bbappend @@ -0,0 +1,6 @@ +# remove the python3-llvmlite present in the meta-python-ai because it requires LLVM 15 to compile but AGL is using LLVM 18 rn +RDEPENDS:${PN}:remove = "python3-llvmlite" + +# adding a precompile wheel for llvmlite-0.43.0 for x86_64 only +RDEPENDS:${PN} += "llvmlite" + diff --git a/meta-offline-voice-agent/recipes-python/python3-numpy/python3-numpy/0001-Disable-runtimelibdirs-for-cross-compile.patch b/meta-offline-voice-agent/recipes-python/python3-numpy/python3-numpy/0001-Disable-runtimelibdirs-for-cross-compile.patch deleted file mode 100644 index c96bb64d..00000000 --- a/meta-offline-voice-agent/recipes-python/python3-numpy/python3-numpy/0001-Disable-runtimelibdirs-for-cross-compile.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 9729175ae0ee7b2c8641483b9dfd16051cc4ad23 Mon Sep 17 00:00:00 2001 -From: Greg Anders <greg@gpanders.com> -Date: Mon, 2 Mar 2020 14:34:04 +0000 -Subject: [PATCH] Disable runtime_lib_dirs for cross compile - ---- - numpy/distutils/system_info.py | 5 +---- - 1 file changed, 1 insertion(+), 4 deletions(-) - -diff --git a/numpy/distutils/system_info.py b/numpy/distutils/system_info.py -index 28c7b92..d1a92ab 100644 ---- a/numpy/distutils/system_info.py -+++ b/numpy/distutils/system_info.py -@@ -669,10 +669,7 @@ class system_info(object): - return self.get_paths(self.section, key) - - def get_runtime_lib_dirs(self, key='runtime_library_dirs'): -- path = self.get_paths(self.section, key) -- if path == ['']: -- path = [] -- return path -+ return [] - - def get_include_dirs(self, key='include_dirs'): - return self.get_paths(self.section, key)
\ No newline at end of file diff --git a/meta-offline-voice-agent/recipes-python/python3-numpy/python3-numpy/0001-Remove-using-library-directories-as-runtime-library-.patch b/meta-offline-voice-agent/recipes-python/python3-numpy/python3-numpy/0001-Remove-using-library-directories-as-runtime-library-.patch deleted file mode 100644 index d7e818a8..00000000 --- a/meta-offline-voice-agent/recipes-python/python3-numpy/python3-numpy/0001-Remove-using-library-directories-as-runtime-library-.patch +++ /dev/null @@ -1,48 +0,0 @@ -From b14d1c1b684014a65b8b7ea0030f7f070a34e6c5 Mon Sep 17 00:00:00 2001 -From: Scott Murray <scott.murray@konsulko.com> -Date: Tue, 4 Jul 2023 10:24:11 -0400 -Subject: [PATCH] Remove using library directories as runtime library - directories - -The code in calc_libraries_info in distutils/system_info.py converts -library directories to runtime library directories, which seems to -only make sense in an environment when the external libraries are not -coming from standard system locations. It is actively harmful in the -OE build environment since it results in sysroot paths getting put -into RPATH in the resulting binaries. Remove that snippet of code so -that module .so's do not trigger the rpath QA sanity checking. - -Upstream-Status: Inappropriate - -Signed-off-by: Scott Murray <scott.murray@konsulko.com> ---- - numpy/distutils/system_info.py | 13 ------------- - 1 file changed, 13 deletions(-) - -diff --git a/numpy/distutils/system_info.py b/numpy/distutils/system_info.py -index 656bc37..fb075a1 100644 ---- a/numpy/distutils/system_info.py -+++ b/numpy/distutils/system_info.py -@@ -728,19 +728,6 @@ class system_info: - else: - log.info('Library %s was not found. Ignoring' % (lib)) - -- if r_dirs: -- i = self.check_libs(r_dirs, [lib]) -- if i is not None: -- # Swap library keywords found to runtime_library_dirs -- # the libraries are insisting on the user having defined -- # them using the library_dirs, and not necessarily by -- # runtime_library_dirs -- del i['libraries'] -- i['runtime_library_dirs'] = i.pop('library_dirs') -- dict_append(info, **i) -- else: -- log.info('Runtime library %s was not found. Ignoring' % (lib)) -- - return info - - def set_info(self, **info): --- -2.40.1 - diff --git a/meta-offline-voice-agent/recipes-python/python3-numpy/python3-numpy_%.bbappend b/meta-offline-voice-agent/recipes-python/python3-numpy/python3-numpy_%.bbappend deleted file mode 100644 index b8d1f144..00000000 --- a/meta-offline-voice-agent/recipes-python/python3-numpy/python3-numpy_%.bbappend +++ /dev/null @@ -1,6 +0,0 @@ -FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:" - -SRC_URI += " \ - file://0001-Disable-runtimelibdirs-for-cross-compile.patch \ - file://0001-Remove-using-library-directories-as-runtime-library-.patch \ - " diff --git a/meta-offline-voice-agent/recipes-python/python3-python-crfsuite/python3-python-crfsuite_0.9.9.bb b/meta-offline-voice-agent/recipes-python/python3-python-crfsuite/python3-python-crfsuite_0.9.10.bb index 19fb4cf6..a1f2a797 100644 --- a/meta-offline-voice-agent/recipes-python/python3-python-crfsuite/python3-python-crfsuite_0.9.9.bb +++ b/meta-offline-voice-agent/recipes-python/python3-python-crfsuite/python3-python-crfsuite_0.9.10.bb @@ -1,4 +1,5 @@ SUMMARY = "A python binding for crfsuite" + HOMEPAGE = "https://github.com/scrapinghub/python-crfsuite" LICENSE = "MIT" @@ -6,7 +7,7 @@ LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=0a36d267a3ece77cbc8ebc95ca7e2edd" PYPI_PACKAGE = "python-crfsuite" -SRC_URI[md5sum] = "01691860ad087f1270a78062ba0ded4c" -SRC_URI[sha256sum] = "caa6261d6955466756f986b7fcfbd4fd50622963e3bdb5cc180c129c62b3a76d" +SRC_URI[md5sum] = "2765b8401c63a8f970be73a0c2ca04bf" +SRC_URI[sha256sum] = "f38524631e2b533341f10f2c77689270dc6ecd5985495dccf7aa37b1045bc2e5" inherit pypi setuptools3 diff --git a/meta-offline-voice-agent/recipes-python/python3-rasa/files/0001-Structlog-setup.py-fix.patch b/meta-offline-voice-agent/recipes-python/python3-rasa/files/0001-Structlog-setup.py-fix.patch new file mode 100644 index 00000000..ed277bb2 --- /dev/null +++ b/meta-offline-voice-agent/recipes-python/python3-rasa/files/0001-Structlog-setup.py-fix.patch @@ -0,0 +1,36 @@ +From 39ab95117545461b06836d3033002f040f34624d Mon Sep 17 00:00:00 2001 +From: Anuj Solanki <anuj603362@gmail.com> +Date: Fri, 14 Jun 2024 19:36:03 +0200 +Subject: [PATCH] Structlog setup.py fix + +This patch updates setup.py for structlog to correctly read the +long_description from README.md and removes the dynamic field. + +Upstream-Status: Inaproppriate. +Signed-off-by: Anuj Solanki <anuj603362@gmail.com> +--- + setup.py | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/setup.py b/setup.py +index 4bc2b79..6d2a048 100644 +--- a/setup.py ++++ b/setup.py +@@ -1,10 +1,16 @@ + from setuptools import setup, find_packages + ++def read_readme(): ++ with open("README.md", "r", encoding="utf-8") as f: ++ return f.read() ++ ++ + setup( + name="structlog", + version="23.1.0", +- dynamic=["readme", "version"], + description="Structured Logging for Python", ++ long_description=read_readme(), ++ long_description_content_type="text/markdown", + author="Hynek Schlawack", + author_email="hs@ox.cx", + url="https://github.com/hynek/structlog", diff --git a/meta-offline-voice-agent/recipes-python/python3-rasa/python3-ruamel.yaml.clib_0.2.7.bb b/meta-offline-voice-agent/recipes-python/python3-rasa/python3-ruamel.yaml.clib_0.2.7.bb deleted file mode 100644 index 33904881..00000000 --- a/meta-offline-voice-agent/recipes-python/python3-rasa/python3-ruamel.yaml.clib_0.2.7.bb +++ /dev/null @@ -1,11 +0,0 @@ -SUMMARY = "C version of reader, parser and emitter for ruamel.yaml" -HOMEPAGE = "https://sourceforge.net/projects/ruamel-yaml-clib/" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=835b7de93e6217192ffce476ecb74e86" - -PYPI_PACKAGE = "ruamel.yaml.clib" - -SRC_URI[md5sum] = "4b7bc49c0022baf161203dc1ea4806f9" -SRC_URI[sha256sum] = "1f08fd5a2bea9c4180db71678e850b995d2a5f4537be0e94557668cf0f5f9497" - -inherit pypi setuptools3 diff --git a/meta-offline-voice-agent/recipes-python/python3-rasa/python3-ruamel.yaml.clib_0.2.8.bb b/meta-offline-voice-agent/recipes-python/python3-rasa/python3-ruamel.yaml.clib_0.2.8.bb new file mode 100644 index 00000000..76f12758 --- /dev/null +++ b/meta-offline-voice-agent/recipes-python/python3-rasa/python3-ruamel.yaml.clib_0.2.8.bb @@ -0,0 +1,11 @@ +SUMMARY = "C version of reader, parser and emitter for ruamel.yaml" +HOMEPAGE = "https://sourceforge.net/projects/ruamel-yaml-clib/" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=1debc1593104ded7e88b0ac5659af552" + +PYPI_PACKAGE = "ruamel.yaml.clib" + +SRC_URI[md5sum] = "b72e549363fa1b9c4f9123e98f2b46cc" +SRC_URI[sha256sum] = "beb2e0404003de9a4cab9753a8805a8fe9320ee6673136ed7f04255fe60bb512" + +inherit pypi setuptools3 diff --git a/meta-offline-voice-agent/recipes-python/python3-rasa/python3-structlog_23.1.0.bb b/meta-offline-voice-agent/recipes-python/python3-rasa/python3-structlog_23.1.0.bb index c93cae88..9900901c 100644 --- a/meta-offline-voice-agent/recipes-python/python3-rasa/python3-structlog_23.1.0.bb +++ b/meta-offline-voice-agent/recipes-python/python3-rasa/python3-structlog_23.1.0.bb @@ -5,7 +5,8 @@ LIC_FILES_CHKSUM = "file://LICENSE-MIT;md5=0473cdcf9c6ed3f81c08d886870daea5" PYPI_PACKAGE = "structlog" -SRC_URI += "file://0001-structlog-add-setup-file.patch" +SRC_URI += " file://0001-structlog-add-setup-file.patch" +SRC_URI += " file://0001-Structlog-setup.py-fix.patch" SRC_URI[md5sum] = "bd2218c8799e44a90689bbdeadcab4f3" SRC_URI[sha256sum] = "270d681dd7d163c11ba500bc914b2472d2b50a8ef00faa999ded5ff83a2f906b" diff --git a/meta-offline-voice-agent/recipes-python/python3-rasa/python3-uvloop_0.17.0.bb b/meta-offline-voice-agent/recipes-python/python3-rasa/python3-uvloop_0.18.0.bb index 2c6d2880..89ed8bc1 100644 --- a/meta-offline-voice-agent/recipes-python/python3-rasa/python3-uvloop_0.17.0.bb +++ b/meta-offline-voice-agent/recipes-python/python3-rasa/python3-uvloop_0.18.0.bb @@ -5,8 +5,8 @@ LIC_FILES_CHKSUM = "file://LICENSE-APACHE;md5=bb92739ddad0a2811957bd98bdb90474" PYPI_PACKAGE = "uvloop" -SRC_URI[md5sum] = "bc5e841a1c3f6e8935eeaf9d82b5ee29" -SRC_URI[sha256sum] = "0ddf6baf9cf11a1a22c71487f39f15b2cf78eb5bde7e5b45fbb99e8a9d91b9e1" +SRC_URI[md5sum] = "a7679334af9a39dc89f9298088d8d235" +SRC_URI[sha256sum] = "d5d1135beffe9cd95d0350f19e2716bc38be47d5df296d7cc46e3b7557c0d1ff" DEPENDS += "python3-cython-native" diff --git a/meta-offline-voice-agent/recipes-python/python3-scikit-learn/files/0001-hack-around-numpy-get_include-to-force-looking-in-ta.patch b/meta-offline-voice-agent/recipes-python/python3-scikit-learn/files/0001-hack-around-numpy-get_include-to-force-looking-in-ta.patch deleted file mode 100644 index bd0f9458..00000000 --- a/meta-offline-voice-agent/recipes-python/python3-scikit-learn/files/0001-hack-around-numpy-get_include-to-force-looking-in-ta.patch +++ /dev/null @@ -1,563 +0,0 @@ -From eed8f56c787a251a6cad0f4291ca8f4055e463cf Mon Sep 17 00:00:00 2001 -From: Jack Mitchell <ml@embed.me.uk> -Date: Fri, 22 Jan 2021 10:16:08 +0000 -Subject: [PATCH] hack around numpy get_include to force looking in target - sysroot - ---- - sklearn/__check_build/setup.py | 4 ++-- - sklearn/cluster/setup.py | 12 ++++++------ - sklearn/datasets/setup.py | 4 ++-- - sklearn/decomposition/setup.py | 6 +++--- - sklearn/ensemble/setup.py | 22 +++++++++++----------- - sklearn/feature_extraction/setup.py | 4 ++-- - sklearn/linear_model/setup.py | 8 ++++---- - sklearn/manifold/setup.py | 6 +++--- - sklearn/metrics/cluster/setup.py | 4 ++-- - sklearn/neighbors/setup.py | 15 +++++++-------- - sklearn/preprocessing/setup.py | 4 ++-- - sklearn/setup.py | 4 ++-- - sklearn/svm/setup.py | 11 ++++++----- - sklearn/tree/setup.py | 10 +++++----- - sklearn/utils/setup.py | 16 ++++++++-------- - 15 files changed, 65 insertions(+), 65 deletions(-) - -diff --git a/sklearn/__check_build/setup.py b/sklearn/__check_build/setup.py -index b8c30d9c8..e2bfc90ee 100644 ---- a/sklearn/__check_build/setup.py -+++ b/sklearn/__check_build/setup.py -@@ -1,7 +1,7 @@ - # Author: Virgile Fritsch <virgile.fritsch@inria.fr> - # License: BSD 3 clause - --import numpy -+import numpy, os - - - def configuration(parent_package='', top_path=None): -@@ -9,7 +9,7 @@ def configuration(parent_package='', top_path=None): - config = Configuration('__check_build', parent_package, top_path) - config.add_extension('_check_build', - sources=['_check_build.pyx'], -- include_dirs=[numpy.get_include()]) -+ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]]) - - return config - -diff --git a/sklearn/cluster/setup.py b/sklearn/cluster/setup.py -index 48ed25c5c..bd395e3aa 100644 ---- a/sklearn/cluster/setup.py -+++ b/sklearn/cluster/setup.py -@@ -2,7 +2,7 @@ - # License: BSD 3 clause - import os - --import numpy -+import numpy, os - - - def configuration(parent_package='', top_path=None): -@@ -16,28 +16,28 @@ def configuration(parent_package='', top_path=None): - - config.add_extension('_dbscan_inner', - sources=['_dbscan_inner.pyx'], -- include_dirs=[numpy.get_include()], -+ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]], - language="c++") - - config.add_extension('_hierarchical_fast', - sources=['_hierarchical_fast.pyx'], - language="c++", -- include_dirs=[numpy.get_include()], -+ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]], - libraries=libraries) - - config.add_extension('_k_means_fast', - sources=['_k_means_fast.pyx'], -- include_dirs=[numpy.get_include()], -+ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]], - libraries=libraries) - - config.add_extension('_k_means_lloyd', - sources=['_k_means_lloyd.pyx'], -- include_dirs=[numpy.get_include()], -+ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]], - libraries=libraries) - - config.add_extension('_k_means_elkan', - sources=['_k_means_elkan.pyx'], -- include_dirs=[numpy.get_include()], -+ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]], - libraries=libraries) - - config.add_subpackage('tests') -diff --git a/sklearn/datasets/setup.py b/sklearn/datasets/setup.py -index 1107505d4..de4ac3c87 100644 ---- a/sklearn/datasets/setup.py -+++ b/sklearn/datasets/setup.py -@@ -1,5 +1,5 @@ - --import numpy -+import numpy, os - import os - import platform - -@@ -14,7 +14,7 @@ def configuration(parent_package='', top_path=None): - if platform.python_implementation() != 'PyPy': - config.add_extension('_svmlight_format_fast', - sources=['_svmlight_format_fast.pyx'], -- include_dirs=[numpy.get_include()]) -+ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]]) - config.add_subpackage('tests') - return config - -diff --git a/sklearn/decomposition/setup.py b/sklearn/decomposition/setup.py -index f915d6d78..26799c0af 100644 ---- a/sklearn/decomposition/setup.py -+++ b/sklearn/decomposition/setup.py -@@ -1,5 +1,5 @@ - import os --import numpy -+import numpy, os - from numpy.distutils.misc_util import Configuration - - -@@ -12,12 +12,12 @@ def configuration(parent_package="", top_path=None): - - config.add_extension("_online_lda_fast", - sources=["_online_lda_fast.pyx"], -- include_dirs=[numpy.get_include()], -+ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]], - libraries=libraries) - - config.add_extension('_cdnmf_fast', - sources=['_cdnmf_fast.pyx'], -- include_dirs=[numpy.get_include()], -+ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]], - libraries=libraries) - - config.add_subpackage("tests") -diff --git a/sklearn/ensemble/setup.py b/sklearn/ensemble/setup.py -index 05d71cf31..c12382220 100644 ---- a/sklearn/ensemble/setup.py -+++ b/sklearn/ensemble/setup.py -@@ -1,4 +1,4 @@ --import numpy -+import numpy, os - from numpy.distutils.misc_util import Configuration - - -@@ -7,7 +7,7 @@ def configuration(parent_package="", top_path=None): - - config.add_extension("_gradient_boosting", - sources=["_gradient_boosting.pyx"], -- include_dirs=[numpy.get_include()]) -+ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]]) - - config.add_subpackage("tests") - -@@ -15,39 +15,39 @@ def configuration(parent_package="", top_path=None): - config.add_extension( - "_hist_gradient_boosting._gradient_boosting", - sources=["_hist_gradient_boosting/_gradient_boosting.pyx"], -- include_dirs=[numpy.get_include()]) -+ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]]) - - config.add_extension("_hist_gradient_boosting.histogram", - sources=["_hist_gradient_boosting/histogram.pyx"], -- include_dirs=[numpy.get_include()]) -+ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]]) - - config.add_extension("_hist_gradient_boosting.splitting", - sources=["_hist_gradient_boosting/splitting.pyx"], -- include_dirs=[numpy.get_include()]) -+ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]]) - - config.add_extension("_hist_gradient_boosting._binning", - sources=["_hist_gradient_boosting/_binning.pyx"], -- include_dirs=[numpy.get_include()]) -+ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]]) - - config.add_extension("_hist_gradient_boosting._predictor", - sources=["_hist_gradient_boosting/_predictor.pyx"], -- include_dirs=[numpy.get_include()]) -+ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]]) - - config.add_extension("_hist_gradient_boosting._loss", - sources=["_hist_gradient_boosting/_loss.pyx"], -- include_dirs=[numpy.get_include()]) -+ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]]) - - config.add_extension("_hist_gradient_boosting._bitset", - sources=["_hist_gradient_boosting/_bitset.pyx"], -- include_dirs=[numpy.get_include()]) -+ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]]) - - config.add_extension("_hist_gradient_boosting.common", - sources=["_hist_gradient_boosting/common.pyx"], -- include_dirs=[numpy.get_include()]) -+ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]]) - - config.add_extension("_hist_gradient_boosting.utils", - sources=["_hist_gradient_boosting/utils.pyx"], -- include_dirs=[numpy.get_include()]) -+ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]]) - - config.add_subpackage("_hist_gradient_boosting.tests") - -diff --git a/sklearn/feature_extraction/setup.py b/sklearn/feature_extraction/setup.py -index 8c3bbb100..a872c7603 100644 ---- a/sklearn/feature_extraction/setup.py -+++ b/sklearn/feature_extraction/setup.py -@@ -3,7 +3,7 @@ import platform - - - def configuration(parent_package='', top_path=None): -- import numpy -+ import numpy, os - from numpy.distutils.misc_util import Configuration - - config = Configuration('feature_extraction', parent_package, top_path) -@@ -14,7 +14,7 @@ def configuration(parent_package='', top_path=None): - if platform.python_implementation() != 'PyPy': - config.add_extension('_hashing_fast', - sources=['_hashing_fast.pyx'], -- include_dirs=[numpy.get_include()], -+ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]], - libraries=libraries) - config.add_subpackage("tests") - -diff --git a/sklearn/linear_model/setup.py b/sklearn/linear_model/setup.py -index d0c9e8c04..962340210 100644 ---- a/sklearn/linear_model/setup.py -+++ b/sklearn/linear_model/setup.py -@@ -1,5 +1,5 @@ - import os --import numpy -+import numpy, os - - from sklearn._build_utils import gen_from_templates - -@@ -15,12 +15,12 @@ def configuration(parent_package='', top_path=None): - - config.add_extension('_cd_fast', - sources=['_cd_fast.pyx'], -- include_dirs=numpy.get_include(), -+ include_dirs=os.environ["NUMPY_INCLUDE_PATH"], - libraries=libraries) - - config.add_extension('_sgd_fast', - sources=['_sgd_fast.pyx'], -- include_dirs=numpy.get_include(), -+ include_dirs=os.environ["NUMPY_INCLUDE_PATH"], - libraries=libraries) - - # generate sag_fast from template -@@ -29,7 +29,7 @@ def configuration(parent_package='', top_path=None): - - config.add_extension('_sag_fast', - sources=['_sag_fast.pyx'], -- include_dirs=numpy.get_include()) -+ include_dirs=os.environ["NUMPY_INCLUDE_PATH"]) - - # add other directories - config.add_subpackage('tests') -diff --git a/sklearn/manifold/setup.py b/sklearn/manifold/setup.py -index 0db2d5d04..959a4996a 100644 ---- a/sklearn/manifold/setup.py -+++ b/sklearn/manifold/setup.py -@@ -1,6 +1,6 @@ - import os - --import numpy -+import numpy, os - - - def configuration(parent_package="", top_path=None): -@@ -14,13 +14,13 @@ def configuration(parent_package="", top_path=None): - - config.add_extension("_utils", - sources=["_utils.pyx"], -- include_dirs=[numpy.get_include()], -+ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]], - libraries=libraries, - extra_compile_args=["-O3"]) - - config.add_extension("_barnes_hut_tsne", - sources=["_barnes_hut_tsne.pyx"], -- include_dirs=[numpy.get_include()], -+ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]], - libraries=libraries, - extra_compile_args=['-O3']) - -diff --git a/sklearn/metrics/cluster/setup.py b/sklearn/metrics/cluster/setup.py -index c39e414d9..98640b5f3 100644 ---- a/sklearn/metrics/cluster/setup.py -+++ b/sklearn/metrics/cluster/setup.py -@@ -1,6 +1,6 @@ - import os - --import numpy -+import numpy, os - from numpy.distutils.misc_util import Configuration - - -@@ -11,7 +11,7 @@ def configuration(parent_package="", top_path=None): - libraries.append('m') - config.add_extension("_expected_mutual_info_fast", - sources=["_expected_mutual_info_fast.pyx"], -- include_dirs=[numpy.get_include()], -+ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]], - libraries=libraries) - - config.add_subpackage("tests") -diff --git a/sklearn/neighbors/setup.py b/sklearn/neighbors/setup.py -index 926404467..aeedcb940 100644 ---- a/sklearn/neighbors/setup.py -+++ b/sklearn/neighbors/setup.py -@@ -2,7 +2,7 @@ import os - - - def configuration(parent_package='', top_path=None): -- import numpy -+ import numpy, os - from numpy.distutils.misc_util import Configuration - - config = Configuration('neighbors', parent_package, top_path) -@@ -12,28 +12,27 @@ def configuration(parent_package='', top_path=None): - - config.add_extension('_ball_tree', - sources=['_ball_tree.pyx'], -- include_dirs=[numpy.get_include()], -+ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]], - libraries=libraries) - - config.add_extension('_kd_tree', - sources=['_kd_tree.pyx'], -- include_dirs=[numpy.get_include()], -+ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]], - libraries=libraries) - - config.add_extension('_dist_metrics', - sources=['_dist_metrics.pyx'], -- include_dirs=[numpy.get_include(), -- os.path.join(numpy.get_include(), -- 'numpy')], -+ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"], -+ os.path.join(os.environ["NUMPY_INCLUDE_PATH"], 'numpy')], - libraries=libraries) - - config.add_extension('_typedefs', - sources=['_typedefs.pyx'], -- include_dirs=[numpy.get_include()], -+ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]], - libraries=libraries) - config.add_extension("_quad_tree", - sources=["_quad_tree.pyx"], -- include_dirs=[numpy.get_include()], -+ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]], - libraries=libraries) - - config.add_subpackage('tests') -diff --git a/sklearn/preprocessing/setup.py b/sklearn/preprocessing/setup.py -index 29dae9b8f..7c059d90f 100644 ---- a/sklearn/preprocessing/setup.py -+++ b/sklearn/preprocessing/setup.py -@@ -2,7 +2,7 @@ import os - - - def configuration(parent_package='', top_path=None): -- import numpy -+ import numpy, os - from numpy.distutils.misc_util import Configuration - - config = Configuration('preprocessing', parent_package, top_path) -@@ -12,7 +12,7 @@ def configuration(parent_package='', top_path=None): - - config.add_extension('_csr_polynomial_expansion', - sources=['_csr_polynomial_expansion.pyx'], -- include_dirs=[numpy.get_include()], -+ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]], - libraries=libraries) - - config.add_subpackage('tests') -diff --git a/sklearn/setup.py b/sklearn/setup.py -index e5d7e6e26..a814bca87 100644 ---- a/sklearn/setup.py -+++ b/sklearn/setup.py -@@ -6,7 +6,7 @@ from sklearn._build_utils import cythonize_extensions - - def configuration(parent_package='', top_path=None): - from numpy.distutils.misc_util import Configuration -- import numpy -+ import numpy, os - - libraries = [] - if os.name == 'posix': -@@ -69,7 +69,7 @@ def configuration(parent_package='', top_path=None): - # add cython extension module for isotonic regression - config.add_extension('_isotonic', - sources=['_isotonic.pyx'], -- include_dirs=[numpy.get_include()], -+ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]], - libraries=libraries, - ) - -diff --git a/sklearn/svm/setup.py b/sklearn/svm/setup.py -index dffcff8eb..d01614780 100644 ---- a/sklearn/svm/setup.py -+++ b/sklearn/svm/setup.py -@@ -1,6 +1,6 @@ - import os - from os.path import join --import numpy -+import numpy, os - - - def configuration(parent_package='', top_path=None): -@@ -13,7 +13,7 @@ def configuration(parent_package='', top_path=None): - # newrand wrappers - config.add_extension('_newrand', - sources=['_newrand.pyx'], -- include_dirs=[numpy.get_include(), -+ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"], - join('src', 'newrand')], - depends=[join('src', 'newrand', 'newrand.h')], - language='c++', -@@ -34,6 +34,7 @@ def configuration(parent_package='', top_path=None): - extra_link_args=['-lstdc++'], - # Use C++11 to use the random number generator fix - extra_compiler_args=['-std=c++11'], -+ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]], - ) - - libsvm_sources = ['_libsvm.pyx'] -@@ -45,7 +46,7 @@ def configuration(parent_package='', top_path=None): - - config.add_extension('_libsvm', - sources=libsvm_sources, -- include_dirs=[numpy.get_include(), -+ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"], - join('src', 'libsvm'), - join('src', 'newrand')], - libraries=['libsvm-skl'], -@@ -82,7 +83,7 @@ def configuration(parent_package='', top_path=None): - include_dirs=[join('.', 'src', 'liblinear'), - join('.', 'src', 'newrand'), - join('..', 'utils'), -- numpy.get_include()], -+ os.environ["NUMPY_INCLUDE_PATH"]], - depends=liblinear_depends, - # extra_compile_args=['-O0 -fno-inline'], - ) -@@ -93,7 +94,7 @@ def configuration(parent_package='', top_path=None): - libsvm_sparse_sources = ['_libsvm_sparse.pyx'] - config.add_extension('_libsvm_sparse', libraries=['libsvm-skl'], - sources=libsvm_sparse_sources, -- include_dirs=[numpy.get_include(), -+ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"], - join("src", "libsvm"), - join("src", "newrand")], - depends=[join("src", "libsvm", "svm.h"), -diff --git a/sklearn/tree/setup.py b/sklearn/tree/setup.py -index 079ae9d86..0308a5cf9 100644 ---- a/sklearn/tree/setup.py -+++ b/sklearn/tree/setup.py -@@ -1,6 +1,6 @@ - import os - --import numpy -+import numpy, os - from numpy.distutils.misc_util import Configuration - - -@@ -11,22 +11,22 @@ def configuration(parent_package="", top_path=None): - libraries.append('m') - config.add_extension("_tree", - sources=["_tree.pyx"], -- include_dirs=[numpy.get_include()], -+ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]], - libraries=libraries, - extra_compile_args=["-O3"]) - config.add_extension("_splitter", - sources=["_splitter.pyx"], -- include_dirs=[numpy.get_include()], -+ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]], - libraries=libraries, - extra_compile_args=["-O3"]) - config.add_extension("_criterion", - sources=["_criterion.pyx"], -- include_dirs=[numpy.get_include()], -+ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]], - libraries=libraries, - extra_compile_args=["-O3"]) - config.add_extension("_utils", - sources=["_utils.pyx"], -- include_dirs=[numpy.get_include()], -+ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]], - libraries=libraries, - extra_compile_args=["-O3"]) - -diff --git a/sklearn/utils/setup.py b/sklearn/utils/setup.py -index 098adeecc..d24e1b1c8 100644 ---- a/sklearn/utils/setup.py -+++ b/sklearn/utils/setup.py -@@ -5,7 +5,7 @@ from sklearn._build_utils import gen_from_templates - - - def configuration(parent_package='', top_path=None): -- import numpy -+ import numpy, os - from numpy.distutils.misc_util import Configuration - - config = Configuration('utils', parent_package, top_path) -@@ -24,7 +24,7 @@ def configuration(parent_package='', top_path=None): - - config.add_extension('arrayfuncs', - sources=['arrayfuncs.pyx'], -- include_dirs=[numpy.get_include()], -+ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]], - libraries=libraries) - - config.add_extension('murmurhash', -@@ -34,12 +34,12 @@ def configuration(parent_package='', top_path=None): - - config.add_extension('graph_shortest_path', - sources=['graph_shortest_path.pyx'], -- include_dirs=[numpy.get_include()]) -+ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]]) - - config.add_extension('_fast_dict', - sources=['_fast_dict.pyx'], - language="c++", -- include_dirs=[numpy.get_include()], -+ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]], - libraries=libraries) - - config.add_extension('_openmp_helpers', -@@ -53,21 +53,21 @@ def configuration(parent_package='', top_path=None): - - config.add_extension('_seq_dataset', - sources=['_seq_dataset.pyx'], -- include_dirs=[numpy.get_include()]) -+ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]]) - - config.add_extension('_weight_vector', - sources=['_weight_vector.pyx'], -- include_dirs=[numpy.get_include()], -+ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]], - libraries=libraries) - - config.add_extension("_random", - sources=["_random.pyx"], -- include_dirs=[numpy.get_include()], -+ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]], - libraries=libraries) - - config.add_extension("_logistic_sigmoid", - sources=["_logistic_sigmoid.pyx"], -- include_dirs=[numpy.get_include()], -+ include_dirs=[os.environ["NUMPY_INCLUDE_PATH"]], - libraries=libraries) - - config.add_subpackage('tests') diff --git a/meta-offline-voice-agent/recipes-python/python3-scikit-learn/python3-scikit-learn_0.24.2.bb b/meta-offline-voice-agent/recipes-python/python3-scikit-learn/python3-scikit-learn_0.24.2.bb deleted file mode 100644 index 64a532f0..00000000 --- a/meta-offline-voice-agent/recipes-python/python3-scikit-learn/python3-scikit-learn_0.24.2.bb +++ /dev/null @@ -1,36 +0,0 @@ -SUMMARY = "A set of python modules for machine learning and data mining" -HOMEPAGE = "http://scikit-learn.org" - -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://COPYING;md5=c8d7e027b3e67a2b1fe7fe85ebeb17d7" - -SRC_URI = "git://github.com/scikit-learn/scikit-learn.git;branch=0.24.X;protocol=https \ - file://0001-hack-around-numpy-get_include-to-force-looking-in-ta.patch \ - " -SRCREV = "15a949460dbf19e5e196b8ef48f9712b72a3b3c3" -S = "${WORKDIR}/git" - -DEPENDS += "python3-numpy-native python3-scipy-native python3-cython-native python3-numpy python3-scipy python3-cython" - -inherit setuptools3 pkgconfig python3-dir - -RDEPENDS:${PN} += "python3-numpy python3-scipy python3-joblib python3-threadpoolctl python3-pytest" - -export PYTHON_CROSSENV = "1" -export SKLEARN_BUILD_PARALLEL = "${@oe.utils.cpu_count()}" -export NPY_PKG_CONFIG_PATH = "${WORKDIR}/npy-pkg-config" -export NUMPY_INCLUDE_PATH = "${STAGING_DIR_TARGET}/usr/lib/python${PYTHON_BASEVERSION}/site-packages/numpy/core/include" - -# Tell Numpy to look in target sysroot site-packages directory for libraries -LDFLAGS:append = " -L${STAGING_LIBDIR}/${PYTHON_DIR}/site-packages/numpy/core/lib" - -do_compile:prepend() { - echo "[ALL]" > ${S}/site.cfg - echo "library_dirs = ${STAGING_LIBDIR}" >> ${S}/site.cfg - echo "include_dirs = ${STAGING_INCDIR}" >> ${S}/site.cfg - - mkdir -p ${WORKDIR}/npy-pkg-config - cp ${STAGING_DIR_TARGET}/usr/lib/python${PYTHON_BASEVERSION}/site-packages/numpy/core/lib/npy-pkg-config/* ${WORKDIR}/npy-pkg-config - sed -i 's&prefix=${pkgdir}&prefix=${STAGING_DIR_TARGET}/usr/lib/python${PYTHON_BASEVERSION}/site-packages/numpy/core&g' ${WORKDIR}/npy-pkg-config/npymath.ini - sed -i 's&prefix=${pkgdir}&prefix=${STAGING_DIR_TARGET}/usr/lib/python${PYTHON_BASEVERSION}/site-packages/numpy/core&g' ${WORKDIR}/npy-pkg-config/mlib.ini -} diff --git a/meta-offline-voice-agent/recipes-python/python3-scipy/files/0001-Allow-passing-flags-via-FARCH-for-mach.patch b/meta-offline-voice-agent/recipes-python/python3-scipy/files/0001-Allow-passing-flags-via-FARCH-for-mach.patch deleted file mode 100644 index 8a874af4..00000000 --- a/meta-offline-voice-agent/recipes-python/python3-scipy/files/0001-Allow-passing-flags-via-FARCH-for-mach.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 973767f29391eca1c76292556de03cdd7520c07d Mon Sep 17 00:00:00 2001 -From: Erik Boto <erik.boto@gmail.com> -Date: Tue, 3 Nov 2020 09:08:56 -0700 -Subject: [PATCH] Allow passing flags via FARCH for mach - -Enable passing options via FARCH, so that the flags for setting the -correct floating point ABI is propagated properly to the fortran -compiler. - -This fixes an issue where the mach lib would otherwise be built as -soft-float, even though the target arch is hard-float. ---- - scipy/integrate/setup.py | 3 +-- - scipy/special/setup.py | 3 +-- - 2 files changed, 2 insertions(+), 4 deletions(-) - -diff --git a/scipy/integrate/setup.py b/scipy/integrate/setup.py -index 11ce3d1..8e4a3dc 100755 ---- a/scipy/integrate/setup.py -+++ b/scipy/integrate/setup.py -@@ -34,8 +34,7 @@ def configuration(parent_package='',top_path=None): - quadpack_test_src = [join('tests','_test_multivariate.c')] - odeint_banded_test_src = [join('tests', 'banded5x5.f')] - -- config.add_library('mach', sources=mach_src, config_fc={'noopt': (__file__, 1)}, -- _pre_build_hook=pre_build_hook) -+ config.add_library('mach', sources=mach_src, _pre_build_hook=pre_build_hook) - config.add_library('quadpack', sources=quadpack_src, _pre_build_hook=pre_build_hook) - config.add_library('lsoda', sources=lsoda_src, _pre_build_hook=pre_build_hook) - config.add_library('vode', sources=vode_src, _pre_build_hook=pre_build_hook) -diff --git a/scipy/special/setup.py b/scipy/special/setup.py -index 81eb09f..260cfb3 100755 ---- a/scipy/special/setup.py -+++ b/scipy/special/setup.py -@@ -46,8 +46,7 @@ def configuration(parent_package='',top_path=None): - amos_src = [join('amos','*.f')] - cdf_src = [join('cdflib','*.f')] - specfun_src = [join('specfun','*.f')] -- config.add_library('sc_mach',sources=mach_src, -- config_fc={'noopt':(__file__,1)}) -+ config.add_library('sc_mach',sources=mach_src) - config.add_library('sc_amos',sources=amos_src) - config.add_library('sc_cdf',sources=cdf_src) - config.add_library('sc_specfun',sources=specfun_src) diff --git a/meta-offline-voice-agent/recipes-python/python3-scipy/files/static-lib.patch b/meta-offline-voice-agent/recipes-python/python3-scipy/files/static-lib.patch deleted file mode 100644 index 05b6133a..00000000 --- a/meta-offline-voice-agent/recipes-python/python3-scipy/files/static-lib.patch +++ /dev/null @@ -1,32 +0,0 @@ -diff --git a/scipy/stats/setup.py b/scipy/stats/setup.py -index 52a5a36f0..fb5c16a6b 100644 ---- a/scipy/stats/setup.py -+++ b/scipy/stats/setup.py -@@ -64,10 +64,10 @@ def configuration(parent_package='', top_path=None): - biasedurn_libs = [] - biasedurn_libdirs = [] - else: -- biasedurn_libs = ['npyrandom', 'npymath'] -- biasedurn_libdirs = [join(np.get_include(), -- '..', '..', 'random', 'lib')] -- biasedurn_libdirs += get_info('npymath')['library_dirs'] -+ biasedurn_libs = [join(os.environ["NUMPY_INCLUDE_PATH"], -+ '..', '..', 'random', 'lib', 'libnpyrandom.a')] -+ biasedurn_libs.append([join(os.environ["NUMPY_INCLUDE_PATH"], -+ '..', '..', 'core', 'lib', 'libnpymath.a')]) - - ext = config.add_extension( - '_biasedurn', -@@ -79,11 +79,10 @@ def configuration(parent_package='', top_path=None): - 'biasedurn/stoc1.cpp', - 'biasedurn/stoc3.cpp'], - include_dirs=[np.get_include()], -- library_dirs=biasedurn_libdirs, -- libraries=biasedurn_libs, - define_macros=[('R_BUILD', None)], - language='c++', - depends=['biasedurn/stocR.h'], -+ extra_objects=biasedurn_libs, - ) - ext._pre_build_hook = pre_build_hook - diff --git a/meta-offline-voice-agent/recipes-python/python3-scipy/python3-beniget_0.4.1.bb b/meta-offline-voice-agent/recipes-python/python3-scipy/python3-beniget_0.4.1.bb deleted file mode 100644 index cfd31447..00000000 --- a/meta-offline-voice-agent/recipes-python/python3-scipy/python3-beniget_0.4.1.bb +++ /dev/null @@ -1,11 +0,0 @@ -SUMMARY = "A static analyzer for Python2 and Python3 code" -HOMEPAGE = "https://github.com/serge-sans-paille/beniget/" -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://LICENSE;md5=02550c296a72ab0b70961eb70a5a7242" - -SRC_URI[md5sum] = "a2bbe7f17f10f9c127d8ef00692ddc55" -SRC_URI[sha256sum] = "75554b3b8ad0553ce2f607627dad3d95c60c441189875b98e097528f8e23ac0c" - -inherit pypi setuptools3 - -BBCLASSEXTEND = "native" diff --git a/meta-offline-voice-agent/recipes-python/python3-scipy/python3-pythran_0.11.0.bb b/meta-offline-voice-agent/recipes-python/python3-scipy/python3-pythran_0.11.0.bb deleted file mode 100644 index deabb9b5..00000000 --- a/meta-offline-voice-agent/recipes-python/python3-scipy/python3-pythran_0.11.0.bb +++ /dev/null @@ -1,14 +0,0 @@ -SUMMARY = "Ahead of Time compiler for numeric kernels" -HOMEPAGE = "https://pythran.readthedocs.io/" -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://LICENSE;md5=e277a0b6033e0cb3d510c86b74144b01" - -SRC_URI[md5sum] = "e09e90484771937ab499380858bdb18d" -SRC_URI[sha256sum] = "0b2cba712e09f7630879dff69f268460bfe34a6d6000451b47d598558a92a875" - -DEPENDS += "python3-gast" - -inherit pypi setuptools3 - -RDEPENDS:${PN} += "python3-beniget python3-gast" -BBCLASSEXTEND = "native" diff --git a/meta-offline-voice-agent/recipes-python/python3-scipy/python3-scipy-native_1.8.1.bb b/meta-offline-voice-agent/recipes-python/python3-scipy/python3-scipy-native_1.8.1.bb deleted file mode 100644 index 8827e58e..00000000 --- a/meta-offline-voice-agent/recipes-python/python3-scipy/python3-scipy-native_1.8.1.bb +++ /dev/null @@ -1,45 +0,0 @@ -SUMMARY = "SciPy: Scientific Library for Python" -HOMEPAGE = "https://www.scipy.org" -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=27ca2e35416b6316570bf126e08b7062" - -SRC_URI = "https://pypi.python.org/packages/source/s/scipy/scipy-${PV}.tar.gz \ - file://0001-Allow-passing-flags-via-FARCH-for-mach.patch \ - " - -SRC_URI[md5sum] = "df5ce79288fc457238aeef18e8f70dfc" -SRC_URI[sha256sum] = "9e3fb1b0e896f14a85aa9a28d5f755daaeeb54c897b746df7a55ccb02b340f33" - -S = "${WORKDIR}/scipy-${PV}" - -DEPENDS += " \ - ${PYTHON_PN}-numpy-native \ - ${PYTHON_PN}-pybind11-native \ - ${PYTHON_PN}-pythran-native \ - ${PYTHON_PN}-gast-native \ - ${PYTHON_PN}-beniget-native \ - ${PYTHON_PN}-ply-native \ - lapack-native \ - openblas-native \ -" - -CLEANBROKEN = "1" - -inherit setuptools3 native - -export LAPACK = "${STAGING_LIBDIR}" -export BLAS = "${STAGING_LIBDIR}" - -export F90 = "${FC}" - -# Numpy expects the LDSHARED env variable to point to a single -# executable, but OE sets it to include some flags as well. So we split -# the existing LDSHARED variable into the base executable and flags, and -# prepend the flags into LDFLAGS -LDFLAGS:prepend := "${@" ".join(d.getVar('LDSHARED', True).split()[1:])} " -export LDSHARED := "${@d.getVar('LDSHARED', True).split()[0]}" - -# Tell Numpy to look in target sysroot site-packages directory for libraries -LDFLAGS:append = " -L${STAGING_LIBDIR}/${PYTHON_DIR}/site-packages/numpy/core/lib" - -INSANE_SKIP:${PN} = "already-stripped" diff --git a/meta-offline-voice-agent/recipes-python/python3-scipy/python3-scipy_1.8.1.bb b/meta-offline-voice-agent/recipes-python/python3-scipy/python3-scipy_1.8.1.bb deleted file mode 100644 index 1f562ebf..00000000 --- a/meta-offline-voice-agent/recipes-python/python3-scipy/python3-scipy_1.8.1.bb +++ /dev/null @@ -1,54 +0,0 @@ -SUMMARY = "SciPy: Scientific Library for Python" -HOMEPAGE = "https://www.scipy.org" -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=27ca2e35416b6316570bf126e08b7062" - -SRC_URI += " \ - file://0001-Allow-passing-flags-via-FARCH-for-mach.patch \ - file://static-lib.patch \ -" -SRC_URI[md5sum] = "df5ce79288fc457238aeef18e8f70dfc" -SRC_URI[sha256sum] = "9e3fb1b0e896f14a85aa9a28d5f755daaeeb54c897b746df7a55ccb02b340f33" - -DEPENDS += " \ - ${PYTHON_PN}-numpy \ - ${PYTHON_PN}-numpy-native \ - ${PYTHON_PN}-pybind11-native \ - ${PYTHON_PN}-pythran-native \ - ${PYTHON_PN}-gast-native \ - ${PYTHON_PN}-beniget-native \ - ${PYTHON_PN}-ply-native \ - lapack \ - openblas \ -" - -inherit pypi setuptools3 - -RDEPENDS:${PN} += " \ - ${PYTHON_PN}-numpy \ - lapack \ - openblas \ -" - -CLEANBROKEN = "1" - -export LAPACK = "${STAGING_LIBDIR}" -export BLAS = "${STAGING_LIBDIR}" - -export F90 = "${TARGET_PREFIX}gfortran" -export F77 = "${TARGET_PREFIX}gfortran" -export FARCH = "${TUNE_CCARGS}" - -export NUMPY_INCLUDE_PATH = "${STAGING_DIR_TARGET}/usr/lib/python${PYTHON_BASEVERSION}/site-packages/numpy/core/include" - -# Numpy expects the LDSHARED env variable to point to a single -# executable, but OE sets it to include some flags as well. So we split -# the existing LDSHARED variable into the base executable and flags, and -# prepend the flags into LDFLAGS -LDFLAGS:prepend := "${@" ".join(d.getVar('LDSHARED', True).split()[1:])} " -export LDSHARED := "${@d.getVar('LDSHARED', True).split()[0]}" - -# Tell Numpy to look in target sysroot site-packages directory for libraries -LDFLAGS:append = " -L${STAGING_LIBDIR}/${PYTHON_DIR}/site-packages/numpy/core/lib" - -INSANE_SKIP:${PN} = "already-stripped" diff --git a/meta-offline-voice-agent/recipes-python/python3-threadpoolctl/python3-threadpoolctl_3.1.0.bb b/meta-offline-voice-agent/recipes-python/python3-threadpoolctl/python3-threadpoolctl_3.1.0.bb deleted file mode 100644 index 9fed3639..00000000 --- a/meta-offline-voice-agent/recipes-python/python3-threadpoolctl/python3-threadpoolctl_3.1.0.bb +++ /dev/null @@ -1,29 +0,0 @@ -SUMMARY = "Python helpers to limit the number of threads used \ - in native libraries that handle their own internal threadpool" -HOMEPAGE = "https://github.com/joblib/threadpoolctl" -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://LICENSE;md5=8f2439cfddfbeebdb5cac3ae4ae80eaf" - -PYPI_PACKAGE = "threadpoolctl" - -SRC_URI[md5sum] = "e278b89038d9c9b39e7afafb8f5f87a3" -SRC_URI[sha256sum] = "a335baacfaa4400ae1f0d8e3a58d6674d2f8828e3716bb2802c44955ad391380" - -DEPENDS += "python3-flit-core python3-setuptools-native" - -inherit pypi setuptools3 - -do_configure:prepend() { -cat > ${S}/setup.py <<-EOF -from setuptools import setup - -setup( - name="${PYPI_PACKAGE}", - version="${PV}", - license="${LICENSE}", -) -EOF -} - -RDEPENDS:${PN} += "python3-flit-core" -BBCLASSEXTEND = "native"
\ No newline at end of file diff --git a/meta-offline-voice-agent/recipes-python/pytorch/python3-pytorch_%.bbappend b/meta-offline-voice-agent/recipes-python/pytorch/python3-pytorch_%.bbappend new file mode 100644 index 00000000..6a971f70 --- /dev/null +++ b/meta-offline-voice-agent/recipes-python/pytorch/python3-pytorch_%.bbappend @@ -0,0 +1,7 @@ +# pytorch_%.bbappend + +DEPENDS:remove = "gloo" + +EXTRA_OECMAKE:remove = "-DUSE_SYSTEM_GLOO=ON" + +RDEPENDS:${PN}:remove = "python3-onnx" diff --git a/meta-offline-voice-agent/recipes-python/tiktoken/python3-tiktoken-crates.inc b/meta-offline-voice-agent/recipes-python/tiktoken/python3-tiktoken-crates.inc new file mode 100644 index 00000000..1b4d3588 --- /dev/null +++ b/meta-offline-voice-agent/recipes-python/tiktoken/python3-tiktoken-crates.inc @@ -0,0 +1,100 @@ +# Autogenerated with 'bitbake -c update_crates python3-tiktoken' + +# from Cargo.lock +SRC_URI += " \ + crate://crates.io/aho-corasick/1.1.3 \ + crate://crates.io/autocfg/1.3.0 \ + crate://crates.io/bit-set/0.5.3 \ + crate://crates.io/bit-vec/0.6.3 \ + crate://crates.io/bitflags/2.5.0 \ + crate://crates.io/bstr/1.9.1 \ + crate://crates.io/cfg-if/1.0.0 \ + crate://crates.io/fancy-regex/0.11.0 \ + crate://crates.io/heck/0.4.1 \ + crate://crates.io/indoc/2.0.5 \ + crate://crates.io/libc/0.2.155 \ + crate://crates.io/lock_api/0.4.12 \ + crate://crates.io/memchr/2.7.2 \ + crate://crates.io/memoffset/0.9.1 \ + crate://crates.io/once_cell/1.19.0 \ + crate://crates.io/parking_lot/0.12.3 \ + crate://crates.io/parking_lot_core/0.9.10 \ + crate://crates.io/portable-atomic/1.6.0 \ + crate://crates.io/proc-macro2/1.0.84 \ + crate://crates.io/pyo3/0.20.3 \ + crate://crates.io/pyo3-build-config/0.20.3 \ + crate://crates.io/pyo3-ffi/0.20.3 \ + crate://crates.io/pyo3-macros/0.20.3 \ + crate://crates.io/pyo3-macros-backend/0.20.3 \ + crate://crates.io/quote/1.0.36 \ + crate://crates.io/redox_syscall/0.5.1 \ + crate://crates.io/regex/1.10.4 \ + crate://crates.io/regex-automata/0.4.6 \ + crate://crates.io/regex-syntax/0.8.3 \ + crate://crates.io/rustc-hash/1.1.0 \ + crate://crates.io/scopeguard/1.2.0 \ + crate://crates.io/serde/1.0.203 \ + crate://crates.io/serde_derive/1.0.203 \ + crate://crates.io/smallvec/1.13.2 \ + crate://crates.io/syn/2.0.66 \ + crate://crates.io/target-lexicon/0.12.14 \ + crate://crates.io/unicode-ident/1.0.12 \ + crate://crates.io/unindent/0.2.3 \ + crate://crates.io/windows-targets/0.52.5 \ + crate://crates.io/windows_aarch64_gnullvm/0.52.5 \ + crate://crates.io/windows_aarch64_msvc/0.52.5 \ + crate://crates.io/windows_i686_gnu/0.52.5 \ + crate://crates.io/windows_i686_gnullvm/0.52.5 \ + crate://crates.io/windows_i686_msvc/0.52.5 \ + crate://crates.io/windows_x86_64_gnu/0.52.5 \ + crate://crates.io/windows_x86_64_gnullvm/0.52.5 \ + crate://crates.io/windows_x86_64_msvc/0.52.5 \ +" + +SRC_URI[aho-corasick-1.1.3.sha256sum] = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +SRC_URI[autocfg-1.3.0.sha256sum] = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" +SRC_URI[bit-set-0.5.3.sha256sum] = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +SRC_URI[bit-vec-0.6.3.sha256sum] = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" +SRC_URI[bitflags-2.5.0.sha256sum] = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" +SRC_URI[bstr-1.9.1.sha256sum] = "05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706" +SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +SRC_URI[fancy-regex-0.11.0.sha256sum] = "b95f7c0680e4142284cf8b22c14a476e87d61b004a3a0861872b32ef7ead40a2" +SRC_URI[heck-0.4.1.sha256sum] = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" +SRC_URI[indoc-2.0.5.sha256sum] = "b248f5224d1d606005e02c97f5aa4e88eeb230488bcc03bc9ca4d7991399f2b5" +SRC_URI[libc-0.2.155.sha256sum] = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" +SRC_URI[lock_api-0.4.12.sha256sum] = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +SRC_URI[memchr-2.7.2.sha256sum] = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" +SRC_URI[memoffset-0.9.1.sha256sum] = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" +SRC_URI[once_cell-1.19.0.sha256sum] = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" +SRC_URI[parking_lot-0.12.3.sha256sum] = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +SRC_URI[parking_lot_core-0.9.10.sha256sum] = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +SRC_URI[portable-atomic-1.6.0.sha256sum] = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0" +SRC_URI[proc-macro2-1.0.84.sha256sum] = "ec96c6a92621310b51366f1e28d05ef11489516e93be030060e5fc12024a49d6" +SRC_URI[pyo3-0.20.3.sha256sum] = "53bdbb96d49157e65d45cc287af5f32ffadd5f4761438b527b055fb0d4bb8233" +SRC_URI[pyo3-build-config-0.20.3.sha256sum] = "deaa5745de3f5231ce10517a1f5dd97d53e5a2fd77aa6b5842292085831d48d7" +SRC_URI[pyo3-ffi-0.20.3.sha256sum] = "62b42531d03e08d4ef1f6e85a2ed422eb678b8cd62b762e53891c05faf0d4afa" +SRC_URI[pyo3-macros-0.20.3.sha256sum] = "7305c720fa01b8055ec95e484a6eca7a83c841267f0dd5280f0c8b8551d2c158" +SRC_URI[pyo3-macros-backend-0.20.3.sha256sum] = "7c7e9b68bb9c3149c5b0cade5d07f953d6d125eb4337723c4ccdb665f1f96185" +SRC_URI[quote-1.0.36.sha256sum] = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" +SRC_URI[redox_syscall-0.5.1.sha256sum] = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e" +SRC_URI[regex-1.10.4.sha256sum] = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c" +SRC_URI[regex-automata-0.4.6.sha256sum] = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea" +SRC_URI[regex-syntax-0.8.3.sha256sum] = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56" +SRC_URI[rustc-hash-1.1.0.sha256sum] = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" +SRC_URI[scopeguard-1.2.0.sha256sum] = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" +SRC_URI[serde-1.0.203.sha256sum] = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094" +SRC_URI[serde_derive-1.0.203.sha256sum] = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba" +SRC_URI[smallvec-1.13.2.sha256sum] = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" +SRC_URI[syn-2.0.66.sha256sum] = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5" +SRC_URI[target-lexicon-0.12.14.sha256sum] = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f" +SRC_URI[unicode-ident-1.0.12.sha256sum] = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +SRC_URI[unindent-0.2.3.sha256sum] = "c7de7d73e1754487cb58364ee906a499937a0dfabd86bcb980fa99ec8c8fa2ce" +SRC_URI[windows-targets-0.52.5.sha256sum] = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" +SRC_URI[windows_aarch64_gnullvm-0.52.5.sha256sum] = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" +SRC_URI[windows_aarch64_msvc-0.52.5.sha256sum] = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" +SRC_URI[windows_i686_gnu-0.52.5.sha256sum] = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" +SRC_URI[windows_i686_gnullvm-0.52.5.sha256sum] = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" +SRC_URI[windows_i686_msvc-0.52.5.sha256sum] = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" +SRC_URI[windows_x86_64_gnu-0.52.5.sha256sum] = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" +SRC_URI[windows_x86_64_gnullvm-0.52.5.sha256sum] = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" +SRC_URI[windows_x86_64_msvc-0.52.5.sha256sum] = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" diff --git a/meta-offline-voice-agent/recipes-python/tiktoken/python3-tiktoken_0.7.0.bb b/meta-offline-voice-agent/recipes-python/tiktoken/python3-tiktoken_0.7.0.bb new file mode 100644 index 00000000..6e5a8f08 --- /dev/null +++ b/meta-offline-voice-agent/recipes-python/tiktoken/python3-tiktoken_0.7.0.bb @@ -0,0 +1,21 @@ +SUMMARY = "tiktoken is a fast BPE tokeniser for use with OpenAI's models" +HOMEPAGE = "None" +AUTHOR = "Shantanu Jain <shantanu@openai.com>" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=e3794f392e777e4fdf460d9bad404803" + +SRC_URI = "https://files.pythonhosted.org/packages/c4/4a/abaec53e93e3ef37224a4dd9e2fc6bb871e7a538c2b6b9d2a6397271daf4/tiktoken-0.7.0.tar.gz" +SRC_URI[md5sum] = "62b4a9f1953826e61f8e09eb4a51965a" +SRC_URI[sha256sum] = "1077266e949c24e0291f6c350433c6f0971365ece2b173a23bc3b9f9defef6b6" + +require ${BPN}-crates.inc + +S = "${WORKDIR}/tiktoken-0.7.0" + +DEPENDS += "python3-regex" + +RDEPENDS_${PN} = "python3-regex python3-requests python3-urllib3" + +inherit cargo setuptools3 python_setuptools3_rust cargo-update-recipe-crates + + diff --git a/meta-offline-voice-agent/recipes-support/openblas/openblas_%.bbappend b/meta-offline-voice-agent/recipes-support/openblas/openblas_%.bbappend new file mode 100644 index 00000000..77ef4e2a --- /dev/null +++ b/meta-offline-voice-agent/recipes-support/openblas/openblas_%.bbappend @@ -0,0 +1,2 @@ +# remove openmp from PACKAGECONFIG +PACKAGECONFIG:remove = "openmp" diff --git a/meta-offline-voice-agent/recipes-vosk/vosk-kaldi/vosk-kaldi/0001-Fixup-wrappers-for-compilation-with-openblas-0.3.27.patch b/meta-offline-voice-agent/recipes-vosk/vosk-kaldi/vosk-kaldi/0001-Fixup-wrappers-for-compilation-with-openblas-0.3.27.patch new file mode 100644 index 00000000..a4d6b6bc --- /dev/null +++ b/meta-offline-voice-agent/recipes-vosk/vosk-kaldi/vosk-kaldi/0001-Fixup-wrappers-for-compilation-with-openblas-0.3.27.patch @@ -0,0 +1,101 @@ +From e23562daf660dbf2aed0fe0ee3bd47165f73c437 Mon Sep 17 00:00:00 2001 +From: Anuj Solanki <anuj603362@gmail.com> +Date: Fri, 7 Jun 2024 16:54:08 +0200 +Subject: [PATCH] Fixup wrappers for compilation with openblas 0.3.27 + +vosk-kaldi if compiled with openblas from meta-python-ai +needs these wrappers adapted to function. + +Upstream-Status: Inaproppriate. +Signed-off-by: Anuj Solanki <anuj603362@gmail.com> +--- + src/matrix/cblas-wrappers.h | 24 ++++++++++++------------ + 1 file changed, 12 insertions(+), 12 deletions(-) + +diff --git a/src/matrix/cblas-wrappers.h b/src/matrix/cblas-wrappers.h +index f869ab7e0..0bb306ba9 100644 +--- a/src/matrix/cblas-wrappers.h ++++ b/src/matrix/cblas-wrappers.h +@@ -383,33 +383,33 @@ inline void mul_elements( + // add clapack here + #if !defined(HAVE_ATLAS) + inline void clapack_Xtptri(KaldiBlasInt *num_rows, float *Mdata, KaldiBlasInt *result) { +- stptri_(const_cast<char *>("U"), const_cast<char *>("N"), num_rows, Mdata, result); ++ LAPACK_stptri(const_cast<char *>("U"), const_cast<char *>("N"), num_rows, Mdata, result); + } + inline void clapack_Xtptri(KaldiBlasInt *num_rows, double *Mdata, KaldiBlasInt *result) { +- dtptri_(const_cast<char *>("U"), const_cast<char *>("N"), num_rows, Mdata, result); ++ LAPACK_dtptri(const_cast<char *>("U"), const_cast<char *>("N"), num_rows, Mdata, result); + } + // + inline void clapack_Xgetrf2(KaldiBlasInt *num_rows, KaldiBlasInt *num_cols, + float *Mdata, KaldiBlasInt *stride, KaldiBlasInt *pivot, + KaldiBlasInt *result) { +- sgetrf_(num_rows, num_cols, Mdata, stride, pivot, result); ++ LAPACK_sgetrf(num_rows, num_cols, Mdata, stride, pivot, result); + } + inline void clapack_Xgetrf2(KaldiBlasInt *num_rows, KaldiBlasInt *num_cols, + double *Mdata, KaldiBlasInt *stride, KaldiBlasInt *pivot, + KaldiBlasInt *result) { +- dgetrf_(num_rows, num_cols, Mdata, stride, pivot, result); ++ LAPACK_dgetrf(num_rows, num_cols, Mdata, stride, pivot, result); + } + + // + inline void clapack_Xgetri2(KaldiBlasInt *num_rows, float *Mdata, KaldiBlasInt *stride, + KaldiBlasInt *pivot, float *p_work, + KaldiBlasInt *l_work, KaldiBlasInt *result) { +- sgetri_(num_rows, Mdata, stride, pivot, p_work, l_work, result); ++ LAPACK_sgetri(num_rows, Mdata, stride, pivot, p_work, l_work, result); + } + inline void clapack_Xgetri2(KaldiBlasInt *num_rows, double *Mdata, KaldiBlasInt *stride, + KaldiBlasInt *pivot, double *p_work, + KaldiBlasInt *l_work, KaldiBlasInt *result) { +- dgetri_(num_rows, Mdata, stride, pivot, p_work, l_work, result); ++ LAPACK_dgetri(num_rows, Mdata, stride, pivot, p_work, l_work, result); + } + // + inline void clapack_Xgesvd(char *v, char *u, KaldiBlasInt *num_cols, +@@ -417,7 +417,7 @@ inline void clapack_Xgesvd(char *v, char *u, KaldiBlasInt *num_cols, + float *sv, float *Vdata, KaldiBlasInt *vstride, + float *Udata, KaldiBlasInt *ustride, float *p_work, + KaldiBlasInt *l_work, KaldiBlasInt *result) { +- sgesvd_(v, u, ++ LAPACK_sgesvd(v, u, + num_cols, num_rows, Mdata, stride, + sv, Vdata, vstride, Udata, ustride, + p_work, l_work, result); +@@ -427,7 +427,7 @@ inline void clapack_Xgesvd(char *v, char *u, KaldiBlasInt *num_cols, + double *sv, double *Vdata, KaldiBlasInt *vstride, + double *Udata, KaldiBlasInt *ustride, double *p_work, + KaldiBlasInt *l_work, KaldiBlasInt *result) { +- dgesvd_(v, u, ++ LAPACK_dgesvd(v, u, + num_cols, num_rows, Mdata, stride, + sv, Vdata, vstride, Udata, ustride, + p_work, l_work, result); +@@ -435,20 +435,20 @@ inline void clapack_Xgesvd(char *v, char *u, KaldiBlasInt *num_cols, + // + void inline clapack_Xsptri(KaldiBlasInt *num_rows, float *Mdata, + KaldiBlasInt *ipiv, float *work, KaldiBlasInt *result) { +- ssptri_(const_cast<char *>("U"), num_rows, Mdata, ipiv, work, result); ++ LAPACK_ssptri(const_cast<char *>("U"), num_rows, Mdata, ipiv, work, result); + } + void inline clapack_Xsptri(KaldiBlasInt *num_rows, double *Mdata, + KaldiBlasInt *ipiv, double *work, KaldiBlasInt *result) { +- dsptri_(const_cast<char *>("U"), num_rows, Mdata, ipiv, work, result); ++ LAPACK_dsptri(const_cast<char *>("U"), num_rows, Mdata, ipiv, work, result); + } + // + void inline clapack_Xsptrf(KaldiBlasInt *num_rows, float *Mdata, + KaldiBlasInt *ipiv, KaldiBlasInt *result) { +- ssptrf_(const_cast<char *>("U"), num_rows, Mdata, ipiv, result); ++ LAPACK_ssptrf(const_cast<char *>("U"), num_rows, Mdata, ipiv, result); + } + void inline clapack_Xsptrf(KaldiBlasInt *num_rows, double *Mdata, + KaldiBlasInt *ipiv, KaldiBlasInt *result) { +- dsptrf_(const_cast<char *>("U"), num_rows, Mdata, ipiv, result); ++ LAPACK_dsptrf(const_cast<char *>("U"), num_rows, Mdata, ipiv, result); + } + #else + inline void clapack_Xgetrf(MatrixIndexT num_rows, MatrixIndexT num_cols, diff --git a/meta-offline-voice-agent/recipes-vosk/vosk-kaldi/vosk-kaldi_git.bb b/meta-offline-voice-agent/recipes-vosk/vosk-kaldi/vosk-kaldi_git.bb index 19206d9a..0630abcb 100644 --- a/meta-offline-voice-agent/recipes-vosk/vosk-kaldi/vosk-kaldi_git.bb +++ b/meta-offline-voice-agent/recipes-vosk/vosk-kaldi/vosk-kaldi_git.bb @@ -6,6 +6,7 @@ LIC_FILES_CHKSUM = "file://../COPYING;md5=a10e448a64dbd3723ff3fb2f397fba2e \ SRC_URI = "git://github.com/alphacep/kaldi.git;protocol=https;branch=vosk \ file://0001-Fixes-for-shared-library-compilation.patch \ + file://0001-Fixup-wrappers-for-compilation-with-openblas-0.3.27.patch;patchdir=.. \ " PV = "1.0+git${SRCPV}" diff --git a/meta-offline-voice-agent/recipes-vosk/vosk-model/vosk-model-small-en-us_0.15.bb b/meta-offline-voice-agent/recipes-vosk/vosk-model/vosk-model-small-en-us_0.15.bb index 929ad0d4..b33121aa 100644 --- a/meta-offline-voice-agent/recipes-vosk/vosk-model/vosk-model-small-en-us_0.15.bb +++ b/meta-offline-voice-agent/recipes-vosk/vosk-model/vosk-model-small-en-us_0.15.bb @@ -11,7 +11,7 @@ SRC_URI = " \ # License listed on https://alphacephei.com/vosk/models SRC_URI[model.sha256sum] = "30f26242c4eb449f948e42cb302dd7a686cb29a3423a8367f99ff41780942498" -SRC_URI[license.sha256sum] = "46220c6d381bf1c230699077e3a693b2474f4cc768a167f25ced5034ab96890b" +SRC_URI[license.sha256sum] = "1045889590458da11c214de89a4cc21b7eabacdd57e993e1d03105618cacad61" do_install() { install -d ${D}/usr/share/vosk diff --git a/meta-offline-voice-agent/recipes-whisper/whisper-model/openai-whisper-base.bb b/meta-offline-voice-agent/recipes-whisper/whisper-model/openai-whisper-base.bb new file mode 100644 index 00000000..42d75881 --- /dev/null +++ b/meta-offline-voice-agent/recipes-whisper/whisper-model/openai-whisper-base.bb @@ -0,0 +1,14 @@ +SUMMARY = "OpenAI Whisper base model" +HOMEPAGE = "https://github.com/openai/whisper" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${THISDIR}/../../licenses/LICENSE;md5=b1b8ea5cbbe899304ac6566613a3b74e" + +SRC_URI = "https://openaipublic.azureedge.net/main/whisper/models/ed3a0b6b1c0edf879ad9b11b1af5a0e6ab5db9205f891f668f8b0e6c6326e34e/base.pt" +SRC_URI[sha256sum] = "ed3a0b6b1c0edf879ad9b11b1af5a0e6ab5db9205f891f668f8b0e6c6326e34e" + +do_install(){ + install -d ${D}/usr/share/whisper + cp -R ${WORKDIR}/base.pt ${D}/usr/share/whisper/ +} + +FILES:${PN} = " /usr/share/whisper /usr/share/whisper/base.pt " diff --git a/meta-offline-voice-agent/recipes-whisper/whisper-model/openai-whisper-tiny.bb b/meta-offline-voice-agent/recipes-whisper/whisper-model/openai-whisper-tiny.bb new file mode 100644 index 00000000..19acc727 --- /dev/null +++ b/meta-offline-voice-agent/recipes-whisper/whisper-model/openai-whisper-tiny.bb @@ -0,0 +1,15 @@ +SUMMARY = "OpenAI Whisper tiny model" +HOMEPAGE = "https://github.com/openai/whisper" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${THISDIR}/../../licenses/LICENSE;md5=b1b8ea5cbbe899304ac6566613a3b74e" + +SRC_URI = "https://openaipublic.azureedge.net/main/whisper/models/65147644a518d12f04e32d6f3b26facc3f8dd46e5390956a9424a650c0ce22b9/tiny.pt" +SRC_URI[sha256sum] = "65147644a518d12f04e32d6f3b26facc3f8dd46e5390956a9424a650c0ce22b9" + +do_install(){ + install -d ${D}/usr/share/whisper + cp -R ${WORKDIR}/tiny.pt ${D}/usr/share/whisper/ +} + +FILES:${PN} = " /usr/share/whisper /usr/share/whisper/tiny.pt " + diff --git a/meta-offline-voice-agent/recipes-whisper/whisper/whisper_git.bb b/meta-offline-voice-agent/recipes-whisper/whisper/whisper_git.bb new file mode 100644 index 00000000..983999b5 --- /dev/null +++ b/meta-offline-voice-agent/recipes-whisper/whisper/whisper_git.bb @@ -0,0 +1,18 @@ +DESCRIPTION = "Whisper AI - General-purpose speech recognition model" +HOMEPAGE = "https://github.com/openai/whisper" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=b1b8ea5cbbe899304ac6566613a3b74e" + +SRC_URI = "git://github.com/openai/whisper.git;protocol=https;branch=main" +SRCREV = "ba3f3cd54b0e5b8ce1ab3de13e32122d0d5f98ab" + +S = "${WORKDIR}/git" + + +DEPENDS += "python3-wheel-native ffmpeg python3-numpy python3-pytorch python3-tqdm python3-tiktoken python3-more-itertools" + +inherit setuptools3 python3native + +RDEPENDS:${PN} += "ffmpeg python3-numba python3-regex python3-pytorch python3-tqdm python3-tiktoken" + + |