diff --git a/AUTHORS b/AUTHORS index 5012d0e01e8..5eff238ae41 100644 --- a/AUTHORS +++ b/AUTHORS @@ -2,8 +2,8 @@ Authors of XZ Utils =================== - XZ Utils is developed and maintained by Lasse Collin - and Jia Tan . + XZ Utils is developed and maintained by + Lasse Collin . Major parts of liblzma are based on code written by Igor Pavlov, specifically the LZMA SDK . Without @@ -30,6 +30,11 @@ Authors of XZ Utils - Jonathan Nieder - Joachim Henke + Special author: Jia Tan was a co-maintainer in 2022-2024. He and + the team behind him inserted a backdoor (CVE-2024-3094) into + XZ Utils 5.6.0 and 5.6.1 releases. He suddenly disappeared when + this was discovered. + Many people have contributed improvements or reported bugs. Most of these people are mentioned in the file THANKS. diff --git a/COPYING b/COPYING index a31477d62d3..aed21531497 100644 --- a/COPYING +++ b/COPYING @@ -3,8 +3,7 @@ XZ Utils Licensing ================== Different licenses apply to different files in this package. Here - is a rough summary of which licenses apply to which parts of this - package (but check the individual files to be sure!): + is a summary of which licenses apply to which parts of this package: - liblzma is under the BSD Zero Clause License (0BSD). @@ -25,20 +24,6 @@ XZ Utils Licensing lzma-file-format.xt are in the public domain but may be distributed under the terms of 0BSD too. - - Doxygen-generated HTML version of the liblzma API documentation: - While Doxygen is under the GNU GPLv2, the license information - in Doxygen includes the following exception: - - Documents produced by doxygen are derivative works - derived from the input used in their production; - they are not affected by this license. - - Note: The JavaScript files (under the MIT license) have - been removed from the Doxygen output. - - - The XZ logo (xz-logo.png) included in the Doxygen-generated - documentation is under the Creative Commons BY-SA 4.0 license. - - Translated messages and man pages are under 0BSD except that some old translations are in the public domain. @@ -51,8 +36,9 @@ XZ Utils Licensing These files don't affect the licensing of the binaries being built. - - The extra directory contain files that are under various - free software licenses. + - The 'extra' directory contains files that are under various + free software licenses. These aren't built or installed as + part of XZ Utils. For the files under the BSD Zero Clause License (0BSD), if a copyright notice is needed, the following is sufficient: @@ -65,16 +51,13 @@ XZ Utils Licensing it is not legally required by the license terms. Here is an example of a good notice to put into "about box" or into documentation: - This software includes code from XZ Utils - . + This software includes code from XZ Utils . The following license texts are included in the following files: - COPYING.0BSD: BSD Zero Clause License - COPYING.LGPLv2.1: GNU Lesser General Public License version 2.1 - COPYING.GPLv2: GNU General Public License version 2 - COPYING.GPLv3: GNU General Public License version 3 - - COPYING.CC-BY-SA-4.0: Creative Commons Attribution-ShareAlike 4.0 - International Public License A note about old XZ Utils releases: diff --git a/COPYING.CC-BY-SA-4.0 b/COPYING.CC-BY-SA-4.0 deleted file mode 100644 index 7d4f96c54aa..00000000000 --- a/COPYING.CC-BY-SA-4.0 +++ /dev/null @@ -1,427 +0,0 @@ -Attribution-ShareAlike 4.0 International - -======================================================================= - -Creative Commons Corporation ("Creative Commons") is not a law firm and -does not provide legal services or legal advice. Distribution of -Creative Commons public licenses does not create a lawyer-client or -other relationship. Creative Commons makes its licenses and related -information available on an "as-is" basis. Creative Commons gives no -warranties regarding its licenses, any material licensed under their -terms and conditions, or any related information. Creative Commons -disclaims all liability for damages resulting from their use to the -fullest extent possible. - -Using Creative Commons Public Licenses - -Creative Commons public licenses provide a standard set of terms and -conditions that creators and other rights holders may use to share -original works of authorship and other material subject to copyright -and certain other rights specified in the public license below. The -following considerations are for informational purposes only, are not -exhaustive, and do not form part of our licenses. - - Considerations for licensors: Our public licenses are - intended for use by those authorized to give the public - permission to use material in ways otherwise restricted by - copyright and certain other rights. Our licenses are - irrevocable. Licensors should read and understand the terms - and conditions of the license they choose before applying it. - Licensors should also secure all rights necessary before - applying our licenses so that the public can reuse the - material as expected. Licensors should clearly mark any - material not subject to the license. This includes other CC- - licensed material, or material used under an exception or - limitation to copyright. More considerations for licensors: - wiki.creativecommons.org/Considerations_for_licensors - - Considerations for the public: By using one of our public - licenses, a licensor grants the public permission to use the - licensed material under specified terms and conditions. If - the licensor's permission is not necessary for any reason--for - example, because of any applicable exception or limitation to - copyright--then that use is not regulated by the license. Our - licenses grant only permissions under copyright and certain - other rights that a licensor has authority to grant. Use of - the licensed material may still be restricted for other - reasons, including because others have copyright or other - rights in the material. A licensor may make special requests, - such as asking that all changes be marked or described. - Although not required by our licenses, you are encouraged to - respect those requests where reasonable. More considerations - for the public: - wiki.creativecommons.org/Considerations_for_licensees - -======================================================================= - -Creative Commons Attribution-ShareAlike 4.0 International Public -License - -By exercising the Licensed Rights (defined below), You accept and agree -to be bound by the terms and conditions of this Creative Commons -Attribution-ShareAlike 4.0 International Public License ("Public -License"). To the extent this Public License may be interpreted as a -contract, You are granted the Licensed Rights in consideration of Your -acceptance of these terms and conditions, and the Licensor grants You -such rights in consideration of benefits the Licensor receives from -making the Licensed Material available under these terms and -conditions. - - -Section 1 -- Definitions. - - a. Adapted Material means material subject to Copyright and Similar - Rights that is derived from or based upon the Licensed Material - and in which the Licensed Material is translated, altered, - arranged, transformed, or otherwise modified in a manner requiring - permission under the Copyright and Similar Rights held by the - Licensor. For purposes of this Public License, where the Licensed - Material is a musical work, performance, or sound recording, - Adapted Material is always produced where the Licensed Material is - synched in timed relation with a moving image. - - b. Adapter's License means the license You apply to Your Copyright - and Similar Rights in Your contributions to Adapted Material in - accordance with the terms and conditions of this Public License. - - c. BY-SA Compatible License means a license listed at - creativecommons.org/compatiblelicenses, approved by Creative - Commons as essentially the equivalent of this Public License. - - d. Copyright and Similar Rights means copyright and/or similar rights - closely related to copyright including, without limitation, - performance, broadcast, sound recording, and Sui Generis Database - Rights, without regard to how the rights are labeled or - categorized. For purposes of this Public License, the rights - specified in Section 2(b)(1)-(2) are not Copyright and Similar - Rights. - - e. Effective Technological Measures means those measures that, in the - absence of proper authority, may not be circumvented under laws - fulfilling obligations under Article 11 of the WIPO Copyright - Treaty adopted on December 20, 1996, and/or similar international - agreements. - - f. Exceptions and Limitations means fair use, fair dealing, and/or - any other exception or limitation to Copyright and Similar Rights - that applies to Your use of the Licensed Material. - - g. License Elements means the license attributes listed in the name - of a Creative Commons Public License. The License Elements of this - Public License are Attribution and ShareAlike. - - h. Licensed Material means the artistic or literary work, database, - or other material to which the Licensor applied this Public - License. - - i. Licensed Rights means the rights granted to You subject to the - terms and conditions of this Public License, which are limited to - all Copyright and Similar Rights that apply to Your use of the - Licensed Material and that the Licensor has authority to license. - - j. Licensor means the individual(s) or entity(ies) granting rights - under this Public License. - - k. Share means to provide material to the public by any means or - process that requires permission under the Licensed Rights, such - as reproduction, public display, public performance, distribution, - dissemination, communication, or importation, and to make material - available to the public including in ways that members of the - public may access the material from a place and at a time - individually chosen by them. - - l. Sui Generis Database Rights means rights other than copyright - resulting from Directive 96/9/EC of the European Parliament and of - the Council of 11 March 1996 on the legal protection of databases, - as amended and/or succeeded, as well as other essentially - equivalent rights anywhere in the world. - - m. You means the individual or entity exercising the Licensed Rights - under this Public License. Your has a corresponding meaning. - - -Section 2 -- Scope. - - a. License grant. - - 1. Subject to the terms and conditions of this Public License, - the Licensor hereby grants You a worldwide, royalty-free, - non-sublicensable, non-exclusive, irrevocable license to - exercise the Licensed Rights in the Licensed Material to: - - a. reproduce and Share the Licensed Material, in whole or - in part; and - - b. produce, reproduce, and Share Adapted Material. - - 2. Exceptions and Limitations. For the avoidance of doubt, where - Exceptions and Limitations apply to Your use, this Public - License does not apply, and You do not need to comply with - its terms and conditions. - - 3. Term. The term of this Public License is specified in Section - 6(a). - - 4. Media and formats; technical modifications allowed. The - Licensor authorizes You to exercise the Licensed Rights in - all media and formats whether now known or hereafter created, - and to make technical modifications necessary to do so. The - Licensor waives and/or agrees not to assert any right or - authority to forbid You from making technical modifications - necessary to exercise the Licensed Rights, including - technical modifications necessary to circumvent Effective - Technological Measures. For purposes of this Public License, - simply making modifications authorized by this Section 2(a) - (4) never produces Adapted Material. - - 5. Downstream recipients. - - a. Offer from the Licensor -- Licensed Material. Every - recipient of the Licensed Material automatically - receives an offer from the Licensor to exercise the - Licensed Rights under the terms and conditions of this - Public License. - - b. Additional offer from the Licensor -- Adapted Material. - Every recipient of Adapted Material from You - automatically receives an offer from the Licensor to - exercise the Licensed Rights in the Adapted Material - under the conditions of the Adapter's License You apply. - - c. No downstream restrictions. You may not offer or impose - any additional or different terms or conditions on, or - apply any Effective Technological Measures to, the - Licensed Material if doing so restricts exercise of the - Licensed Rights by any recipient of the Licensed - Material. - - 6. No endorsement. Nothing in this Public License constitutes or - may be construed as permission to assert or imply that You - are, or that Your use of the Licensed Material is, connected - with, or sponsored, endorsed, or granted official status by, - the Licensor or others designated to receive attribution as - provided in Section 3(a)(1)(A)(i). - - b. Other rights. - - 1. Moral rights, such as the right of integrity, are not - licensed under this Public License, nor are publicity, - privacy, and/or other similar personality rights; however, to - the extent possible, the Licensor waives and/or agrees not to - assert any such rights held by the Licensor to the limited - extent necessary to allow You to exercise the Licensed - Rights, but not otherwise. - - 2. Patent and trademark rights are not licensed under this - Public License. - - 3. To the extent possible, the Licensor waives any right to - collect royalties from You for the exercise of the Licensed - Rights, whether directly or through a collecting society - under any voluntary or waivable statutory or compulsory - licensing scheme. In all other cases the Licensor expressly - reserves any right to collect such royalties. - - -Section 3 -- License Conditions. - -Your exercise of the Licensed Rights is expressly made subject to the -following conditions. - - a. Attribution. - - 1. If You Share the Licensed Material (including in modified - form), You must: - - a. retain the following if it is supplied by the Licensor - with the Licensed Material: - - i. identification of the creator(s) of the Licensed - Material and any others designated to receive - attribution, in any reasonable manner requested by - the Licensor (including by pseudonym if - designated); - - ii. a copyright notice; - - iii. a notice that refers to this Public License; - - iv. a notice that refers to the disclaimer of - warranties; - - v. a URI or hyperlink to the Licensed Material to the - extent reasonably practicable; - - b. indicate if You modified the Licensed Material and - retain an indication of any previous modifications; and - - c. indicate the Licensed Material is licensed under this - Public License, and include the text of, or the URI or - hyperlink to, this Public License. - - 2. You may satisfy the conditions in Section 3(a)(1) in any - reasonable manner based on the medium, means, and context in - which You Share the Licensed Material. For example, it may be - reasonable to satisfy the conditions by providing a URI or - hyperlink to a resource that includes the required - information. - - 3. If requested by the Licensor, You must remove any of the - information required by Section 3(a)(1)(A) to the extent - reasonably practicable. - - b. ShareAlike. - - In addition to the conditions in Section 3(a), if You Share - Adapted Material You produce, the following conditions also apply. - - 1. The Adapter's License You apply must be a Creative Commons - license with the same License Elements, this version or - later, or a BY-SA Compatible License. - - 2. You must include the text of, or the URI or hyperlink to, the - Adapter's License You apply. You may satisfy this condition - in any reasonable manner based on the medium, means, and - context in which You Share Adapted Material. - - 3. You may not offer or impose any additional or different terms - or conditions on, or apply any Effective Technological - Measures to, Adapted Material that restrict exercise of the - rights granted under the Adapter's License You apply. - - -Section 4 -- Sui Generis Database Rights. - -Where the Licensed Rights include Sui Generis Database Rights that -apply to Your use of the Licensed Material: - - a. for the avoidance of doubt, Section 2(a)(1) grants You the right - to extract, reuse, reproduce, and Share all or a substantial - portion of the contents of the database; - - b. if You include all or a substantial portion of the database - contents in a database in which You have Sui Generis Database - Rights, then the database in which You have Sui Generis Database - Rights (but not its individual contents) is Adapted Material, - including for purposes of Section 3(b); and - - c. You must comply with the conditions in Section 3(a) if You Share - all or a substantial portion of the contents of the database. - -For the avoidance of doubt, this Section 4 supplements and does not -replace Your obligations under this Public License where the Licensed -Rights include other Copyright and Similar Rights. - - -Section 5 -- Disclaimer of Warranties and Limitation of Liability. - - a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE - EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS - AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF - ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, - IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, - WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR - PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, - ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT - KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT - ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. - - b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE - TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, - NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, - INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, - COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR - USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN - ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR - DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR - IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. - - c. The disclaimer of warranties and limitation of liability provided - above shall be interpreted in a manner that, to the extent - possible, most closely approximates an absolute disclaimer and - waiver of all liability. - - -Section 6 -- Term and Termination. - - a. This Public License applies for the term of the Copyright and - Similar Rights licensed here. However, if You fail to comply with - this Public License, then Your rights under this Public License - terminate automatically. - - b. Where Your right to use the Licensed Material has terminated under - Section 6(a), it reinstates: - - 1. automatically as of the date the violation is cured, provided - it is cured within 30 days of Your discovery of the - violation; or - - 2. upon express reinstatement by the Licensor. - - For the avoidance of doubt, this Section 6(b) does not affect any - right the Licensor may have to seek remedies for Your violations - of this Public License. - - c. For the avoidance of doubt, the Licensor may also offer the - Licensed Material under separate terms or conditions or stop - distributing the Licensed Material at any time; however, doing so - will not terminate this Public License. - - d. Sections 1, 5, 6, 7, and 8 survive termination of this Public - License. - - -Section 7 -- Other Terms and Conditions. - - a. The Licensor shall not be bound by any additional or different - terms or conditions communicated by You unless expressly agreed. - - b. Any arrangements, understandings, or agreements regarding the - Licensed Material not stated herein are separate from and - independent of the terms and conditions of this Public License. - - -Section 8 -- Interpretation. - - a. For the avoidance of doubt, this Public License does not, and - shall not be interpreted to, reduce, limit, restrict, or impose - conditions on any use of the Licensed Material that could lawfully - be made without permission under this Public License. - - b. To the extent possible, if any provision of this Public License is - deemed unenforceable, it shall be automatically reformed to the - minimum extent necessary to make it enforceable. If the provision - cannot be reformed, it shall be severed from this Public License - without affecting the enforceability of the remaining terms and - conditions. - - c. No term or condition of this Public License will be waived and no - failure to comply consented to unless expressly agreed to by the - Licensor. - - d. Nothing in this Public License constitutes or may be interpreted - as a limitation upon, or waiver of, any privileges and immunities - that apply to the Licensor or You, including from the legal - processes of any jurisdiction or authority. - - -======================================================================= - -Creative Commons is not a party to its public -licenses. Notwithstanding, Creative Commons may elect to apply one of -its public licenses to material it publishes and in those instances -will be considered the “Licensor.” The text of the Creative Commons -public licenses is dedicated to the public domain under the CC0 Public -Domain Dedication. Except for the limited purpose of indicating that -material is shared under a Creative Commons public license or as -otherwise permitted by the Creative Commons policies published at -creativecommons.org/policies, Creative Commons does not authorize the -use of the trademark "Creative Commons" or any other trademark or logo -of Creative Commons without its prior written consent including, -without limitation, in connection with any unauthorized modifications -to any of its public licenses or any other arrangements, -understandings, or agreements concerning use of licensed material. For -the avoidance of doubt, this paragraph does not form part of the -public licenses. - -Creative Commons may be contacted at creativecommons.org. diff --git a/ChangeLog b/ChangeLog index 54b68744af8..c7795974ba2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,2901 @@ +commit 3ec664d3f652133136587a51d4505b1abe1acdd7 +Author: Lasse Collin +Date: 2024-05-29 18:03:51 +0300 + + Bump version and soname for 5.6.2 + + src/liblzma/Makefile.am | 2 +- + src/liblzma/api/lzma/version.h | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +commit 3cc0aa702e50b786c52c6f3d3f831a635c4df197 +Author: Lasse Collin +Date: 2024-05-29 18:03:04 +0300 + + Add NEWS for 5.6.2 + + NEWS | 130 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 130 insertions(+) + +commit 526d3f7f2c2d5e134157d08b37fb5fd0b125799e +Author: Lasse Collin +Date: 2024-05-29 18:03:04 +0300 + + Add NEWS for 5.4.7 + + NEWS | 89 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 89 insertions(+) + +commit 660b09279e8f544acf120d29194d5c3051b484eb +Author: Lasse Collin +Date: 2024-05-29 18:03:04 +0300 + + Add NEWS for 5.2.13 + + NEWS | 115 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 115 insertions(+) + +commit 7d76282dac766c0ced8ae24e0f7ce0005f3e377d +Author: Lasse Collin +Date: 2024-05-29 17:47:13 +0300 + + Translations: Run po4a/update-po + + Now the files are in the new formatting without source file + line numbers. Future updates should keep the diffs much smaller. + + po4a/de.po | 1592 ++++++++++--------- + po4a/fr.po | 4450 +++++++++++++++++----------------------------------- + po4a/ko.po | 1592 ++++++++++--------- + po4a/pt_BR.po | 4817 ++++++++++++++++++--------------------------------------- + po4a/ro.po | 1592 ++++++++++--------- + po4a/uk.po | 1592 ++++++++++--------- + 6 files changed, 6114 insertions(+), 9521 deletions(-) + +commit 4470c3f7d8954bb47b280ec07ad0bd4be2223083 +Author: Lasse Collin +Date: 2024-05-29 17:44:53 +0300 + + Translations: Run "make -C po update-po" + + In the past this wasn't done before releases; the Git repository + just contained the files from the Translation Project. But this + way it is clearer when comparing release tarballs against the + Git repository. In future releases this might no longer be necessary + within a stable branch as the .po files won't change so easily anymore + when creating a tarball. + + po/ca.po | 567 +++++++++++++++++++++++++--------------- + po/cs.po | 821 +++++++++++++++++++++++++++++++++++++-------------------- + po/da.po | 809 +++++++++++++++++++++++++++++++++++--------------------- + po/de.po | 403 ++++++++++++++-------------- + po/eo.po | 403 ++++++++++++++-------------- + po/es.po | 403 ++++++++++++++-------------- + po/fi.po | 578 +++++++++++++++++++++++++--------------- + po/fr.po | 538 +++++++++++++++++++++++--------------- + po/hr.po | 403 ++++++++++++++-------------- + po/hu.po | 403 ++++++++++++++-------------- + po/it.po | 854 +++++++++++++++++++++++++++++++++++++++--------------------- + po/ko.po | 403 ++++++++++++++-------------- + po/pl.po | 403 ++++++++++++++-------------- + po/pt.po | 842 +++++++++++++++++++++++++++++++++++++++-------------------- + po/pt_BR.po | 567 +++++++++++++++++++++++++--------------- + po/ro.po | 403 ++++++++++++++-------------- + po/sr.po | 838 ++++++++++++++++++++++++++++++++++++++-------------------- + po/sv.po | 403 ++++++++++++++-------------- + po/tr.po | 567 +++++++++++++++++++++++++--------------- + po/uk.po | 403 ++++++++++++++-------------- + po/vi.po | 403 ++++++++++++++-------------- + po/zh_CN.po | 417 +++++++++++++++-------------- + po/zh_TW.po | 558 ++++++++++++++++++++++++--------------- + 23 files changed, 7257 insertions(+), 5132 deletions(-) + +commit 33b8a85face5392b5ac843bdbe3a72f024cad6ef +Author: Lasse Collin +Date: 2024-05-29 16:33:24 +0300 + + Build: Update po/*.po files only when needed + + When po/xz.pot doesn't exist, running "make" or "make dist" will + create it. Then the .po files will be updated but only if they + actually would change more than the POT-Creation-Date line. + Then the .gmo files would be generated from the .po files. + This is the case before and after this commit. + + However, "make dist" and thus "make mydist" did a forced update + to the files, updating them even if the only change was the + POT-Creation-Date line. This had pros and cons: It made it clear + that the .po file really is in sync with the recent strings in + the package. On the other hand, it added noise in form of changed + files in the source tree and distribution tarballs. It can be + ignored with something like "diff -I'^"POT-Creation-Date: '" but + it's still a minor annoyance *if* there's not enough value in + having the most recent timestamp. + + Setting DIST_DEPENDS_ON_UPDATE_PO = no means that such forced + update won't happen in "make dist" anymore. However, the "mydist" + target will use xz.pot-update target which is the same target that + is run when xz.pot doesn't exist at all yet. Thus "mydist" will + ensure that the translations are up to date, without noise from + changes that would affect only the POT-Creation-Date line. + + Note that po4a always uses msgmerge with --update, so POT-Creation-Date + in the man page translations is never the only change in .po files. + In that sense this commit makes the message translations behave more + similarly to the man page translations. + + Distribution tarballs will still have non-reproducible POT-Creation-Date + in po/xz.pot and po4a/xz-man.pot but those are just two files. Even they + could be made reproducible from a Git timestamp if desired. + + (cherry picked from commit 9284f1aea31f0eb23e2ea72f7218b271e2234762) + + Makefile.am | 3 ++- + po/Makevars | 6 +++++- + 2 files changed, 7 insertions(+), 2 deletions(-) + +commit 09daebd66b55799bbc495b84310a86c91bbfc1c8 +Author: Lasse Collin +Date: 2024-05-28 21:10:33 +0300 + + po4a/update-po: Disable wrapping in .pot and .po files + + The .po files from the Translation Project come with unwrapped + strings so this matches it. + + This may reduce the noise in diffs too. When the beginning of + a paragraph had changed, the rest of the lines got rewrapped + in msgsid. Now it's just one very long line that changes when + a paragraph has been edited. + + The --add-location=file option was removed as redundant. The line + numbers don't exist in the .pot file due to --porefs file and thus + they cannot get copied to the .po files either. + + (cherry picked from commit 4beba1cd62d7f8f7a6f1e899b68292d94c53b599) + + po4a/update-po | 15 +++++++++++---- + 1 file changed, 11 insertions(+), 4 deletions(-) + +commit 51ad72dae4e516e9292f6f399bd1e4970b77f7c1 +Author: Lasse Collin +Date: 2024-05-28 18:36:53 +0300 + + Update contact info in README + + (cherry picked from commit b14c130a58a649f9a73392eeb122cb252327c569) + + README | 12 +++++++++--- + 1 file changed, 9 insertions(+), 3 deletions(-) + +commit 18463917f9b255b8f925fa54ab9388319735b14a +Author: Lasse Collin +Date: 2024-05-28 13:25:07 +0300 + + Translations: Use --package-name=xz-man with po4a + + This is to match reality. See the added comment. + + (cherry picked from commit 75f5f2e014b0ee646963f36bc6a9c840fb272353) + + po4a/update-po | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +commit 26bbcb13cd2bbb56fe406544a484b4edfc7e0837 +Author: Lasse Collin +Date: 2024-05-28 13:03:40 +0300 + + Translations: Omit --package-name from po/Makevars + + This is closer to the reality in the po/*.po files. + + (cherry picked from commit eb217d016cfbbba1babc19a61095b3ea25898af6) + + po/Makevars | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +commit c35ee804b89556d15bc8cdc16867f4316e69392f +Author: Lasse Collin +Date: 2024-05-28 01:17:45 +0300 + + Translations: Omit man page line numbers from .pot and .po files + + (cherry picked from commit 9114267038deaecf4832a5cacb5acbe6591ac839) + + po4a/update-po | 5 +++++ + 1 file changed, 5 insertions(+) + +commit 0f4429d47f9cfe2cdfbad115a7bc2f11221cb217 +Author: Lasse Collin +Date: 2024-05-28 01:06:30 +0300 + + Translations: Use the xgettext option --add-location=file + + (cherry picked from commit 093490b58271e9424ce38a7b1b38bcf61b9c86c6) + + po/Makevars | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +commit a93e2c2d1d34a6f609d24a8e62072ce78df7a734 +Author: Lasse Collin +Date: 2024-05-28 00:43:53 +0300 + + Translations: Use the msgmerge option --add-location=file + + This way the PO file diffs are less noisy but the locations of the + strings are still present at file level, just without line numbers. + + The option is available since gettext 0.19 (2014). + configure.ac requires 0.19.6. + + (cherry picked from commit fccebe2b4fd513488fc920e4dac32562ed3c7637) + + po/Makevars | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit d4389895592e9a8e0f6391fdad816ae0537bb07b +Author: Lasse Collin +Date: 2024-05-27 12:22:08 +0300 + + Build: Use $(SHELL) instead of sh to run scripts in Makefile.am + + (cherry picked from commit f361d9ae85707a87eb28db400eb7229cec103d58) + + Makefile.am | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +commit 5781414b6e3120098b0060d073aa2b0580ff6f40 +Author: Lasse Collin +Date: 2024-05-23 17:25:13 +0300 + + Translations: Change the home page URLs in man page translations + + Since the source strings have changed, these would get marked as + fuzzy and the original string would be used instead. The original + and translated strings are identical in this case so it wouldn't + matter. But patching the translations helps still because then + po4a will show the correct translation percentage. + + (cherry picked from commit a26dece34793a09aac2476f954d162d03e9cf62b) + + po4a/de.po | 8 ++++---- + po4a/fr.po | 4 ++-- + po4a/ko.po | 4 ++-- + po4a/pt_BR.po | 4 ++-- + po4a/ro.po | 8 ++++---- + po4a/uk.po | 8 ++++---- + 6 files changed, 18 insertions(+), 18 deletions(-) + +commit 3670e0616eb9d86e7519d2b76242fd32c6e0c1ae +Author: Lasse Collin +Date: 2024-05-23 15:15:18 +0300 + + CMake: Add manual support for 32-bit x86 assembly files + + One has to pass -DENABLE_X86_ASM=ON to cmake to enable the + CRC assembly code. Autodetection isn't done. Looking at + CMAKE_SYSTEM_PROCESSOR might not work as it comes from uname + unless cross-compilation is done using a CMake toolchain file. + + On top of this, if the code is run on modern processors that support + the CLMUL instruction, then the C code should be faster (but then + one should also be using a x86-64 build if possible). + + (cherry picked from commit 24387c234b4eed1ef9a7eaa107391740b4095568) + + CMakeLists.txt | 34 +++++++++++++++++++++++++++++++--- + 1 file changed, 31 insertions(+), 3 deletions(-) + +commit c1b001b09e902ecacabb8a2ae1fc991018a4d1f8 +Author: Lasse Collin +Date: 2024-05-23 14:26:45 +0300 + + CMake: Rename USE_DOXYGEN to ENABLE_DOXYGEN + + It's more consistent with the other option() uses. + + (cherry picked from commit 0fb3c9c3f684f5a25bd425ed079a20a79f0c969d) + + CMakeLists.txt | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 7213fe39c717d4623c92af715484a71d9a6ff8d0 +Author: Lasse Collin +Date: 2024-05-22 15:21:53 +0300 + + Use more confident language in COPYING + + (cherry picked from commit 62733592a1cc6f0b41f46ef52e06d1a6fe1ff38a) + + COPYING | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +commit 15358be94a4e3f9c20f331b64b3980f3e5283760 +Author: Lasse Collin +Date: 2024-04-29 17:16:38 +0300 + + Add SPDX license identifiers to files under tests/ossfuzz + + (cherry picked from commit 9ae2ebc1e504a1814b0788de95fb5c58c0328dde) + + tests/ossfuzz/Makefile | 2 ++ + tests/ossfuzz/config/fuzz_decode_alone.options | 2 ++ + tests/ossfuzz/config/fuzz_decode_stream.options | 2 ++ + tests/ossfuzz/config/fuzz_encode_stream.options | 2 ++ + tests/ossfuzz/config/fuzz_lzma.dict | 2 ++ + tests/ossfuzz/config/fuzz_xz.dict | 2 ++ + 6 files changed, 12 insertions(+) + +commit 1aa92c7ffd0bf8f9738ebf3bd1263bd6f5f096a2 +Author: Lasse Collin +Date: 2024-04-29 17:16:06 +0300 + + Add SPDX license identifier to .codespellrc + + (cherry picked from commit 9000d70eb9815bd7f43ffddc1c3316c507aa0e05) + + .codespellrc | 2 ++ + 1 file changed, 2 insertions(+) + +commit 3c7e400fdcabc0a1b78863948fc17964667a9401 +Author: Lasse Collin +Date: 2024-05-22 15:12:09 +0300 + + Move entries po4a/.gitignore to the top level .gitignore + + The po4a directory is in EXTRA_DIST and thus all files there + are included in the package. .gitignore doesn't belong in the + package so keep that file out of the po4a directory. + + (cherry picked from commit 903c16fcfa5bfad0cdb2a7383d941243bcb12e76) + + .gitignore | 4 ++++ + po4a/.gitignore | 3 --- + 2 files changed, 4 insertions(+), 3 deletions(-) + +commit 8a99272d4a9358dabdb5bc0b72f4c5240a9dc066 +Author: Lasse Collin +Date: 2024-05-20 16:55:00 +0300 + + CMake: Add comments + + (cherry picked from commit 9d997d6f9d4f042412e45c7b7a23a14ad2e4f9aa) + + tests/tests.cmake | 2 ++ + 1 file changed, 2 insertions(+) + +commit c35259c9e2400f6f88c269d95ecafdb223ff45d2 +Author: Lasse Collin +Date: 2024-05-20 16:55:00 +0300 + + CMake: Remove the note that some tests aren't run + + They are now in the common build configurations. + + (cherry picked from commit d35368b33e54bad2f566df99fac29ffea38e34de) + + CMakeLists.txt | 2 -- + 1 file changed, 2 deletions(-) + +commit 30982a215395f19b3837c3da540e1cb3f913569f +Author: Lasse Collin +Date: 2024-05-20 16:55:00 +0300 + + CMake: Add support for test_files.sh + + (cherry picked from commit dc232d584619b2819a9c52d6ad5d8b5d56b392ba) + + tests/tests.cmake | 20 ++++++++++++++++++++ + 1 file changed, 20 insertions(+) + +commit 3a8f81e0ad4cd1c102a03ff09e703cf8cb074afc +Author: Lasse Collin +Date: 2024-05-20 16:55:00 +0300 + + Tests: Make test_files.sh more flexible + + Add a new optional argument to specify the directory of the xz and + xzdec executables. + + If ../config.h doesn't exist, assume that all encoders and decoders + are available. + + (cherry picked from commit a7e9230af9d1f87f474fe38886eb977d4149dc9b) + + tests/test_files.sh | 18 +++++++++++++----- + 1 file changed, 13 insertions(+), 5 deletions(-) + +commit 0644675c829143112c85455f8a6aa91bfc4e1bbb +Author: Lasse Collin +Date: 2024-05-20 16:55:00 +0300 + + CMake: Add support for test_compress.sh tests + + (cherry picked from commit b40e6efbb48d740b9b5b303e59e344801cbb5bd8) + + tests/tests.cmake | 26 ++++++++++++++++++++++++++ + 1 file changed, 26 insertions(+) + +commit dcc02a6ca0e0ac4e330e820683754badbcf9815b +Author: Lasse Collin +Date: 2024-05-20 16:55:00 +0300 + + Tests: Make test_compress.sh more flexible + + Add a new optional second argument: directory of the xz and xzdec + executables. This is need with the CMake build where the binaries + end up in the top-level build directory. + + If ../config.h doesn't exist, assume that all encoders and decoders + are available. This will make this script usable from CMake in the + most common build configuration. + + NOTE: Since the existence of ../config.h is checked, the working + directory of the test script must be a subdir in the build tree! + Otherwise ../config.h would look outside the build tree. + + Use the default check type instead of forcing CRC32 or CRC64. + Now the script doesn't need to check if CRC64 is available. + + (cherry picked from commit ac3222d2cb1ff3a15eb6d58f9ea9bc78e8bc3bb2) + + tests/test_compress.sh | 41 +++++++++++++++++++++++++++++------------ + 1 file changed, 29 insertions(+), 12 deletions(-) + +commit c761b7051fb2ebb6da3cbecafe695fb5af7b2c9c +Author: Lasse Collin +Date: 2024-05-20 16:55:00 +0300 + + CMake: Prepare to support the test_*.sh tests + + This is a bit hacky since the scripts grep config.h to know which + features were built but the CMake build doesn't create config.h. + So instead those test scripts will be run only when all relevant + features have been enabled. + + (cherry picked from commit 006040b29c83104403621e950ada0c8956c56b3d) + + tests/tests.cmake | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 49 insertions(+) + +commit a71bc2d75b95f85fe046f0fd1fb25d36be2b20ba +Author: Lasse Collin +Date: 2024-05-20 16:55:00 +0300 + + Tests: test_suffix.sh: Add a comment + + (cherry picked from commit 6167607a6ea72fb74eefb943c4566e3cab528cd2) + + tests/test_suffix.sh | 3 +++ + 1 file changed, 3 insertions(+) + +commit 8fda5ce872632e464a1f9660b3ab8dac939a03c6 +Author: Lasse Collin +Date: 2024-05-18 00:34:07 +0300 + + Fix typos + + Thanks to xx on #tukaani. + + (cherry picked from commit 4e9023857d287f624562156b60dc23d2b64c0f10) + + src/common/mythread.h | 2 +- + src/common/tuklib_integer.h | 2 +- + src/liblzma/api/lzma/base.h | 2 +- + src/liblzma/common/filter_buffer_decoder.c | 2 +- + src/liblzma/common/filter_common.c | 2 +- + src/scripts/xzgrep.in | 2 +- + 6 files changed, 6 insertions(+), 6 deletions(-) + +commit 2729079bcb8dd1c3ab1a79426690d17f6f8e6f7d +Author: Lasse Collin +Date: 2024-05-18 00:23:52 +0300 + + liblzma: Fix white space + + Thanks to xx on #tukaani. + + (cherry picked from commit b14d08fbbc254485ace9ccfe7908674f608a62ae) + + src/liblzma/simple/simple_coder.h | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +commit a289c4dfeb3ded35e129c48b13f46605f0138704 +Author: Lasse Collin +Date: 2024-05-13 17:15:04 +0300 + + xz: Document the static function get_chains_memusage() + + (cherry picked from commit 142e670a413a7bce1a2647f1cf1f33f8ee2dbe88) + + src/xz/coder.c | 14 ++++++++++++-- + 1 file changed, 12 insertions(+), 2 deletions(-) + +commit 6f0db31713845386ce2419c55b2df89b53b80dd3 +Author: Lasse Collin +Date: 2024-05-13 17:07:22 +0300 + + xz: Rename filters_memusage_max() to get_chains_memusage() + + (cherry picked from commit 78e984399a64bfee5d11e7308e0bdbc1006db2ca) + + src/xz/coder.c | 14 ++++++-------- + 1 file changed, 6 insertions(+), 8 deletions(-) + +commit d7e2bf7e2dc9289a7a5dd0311d19d10de6d7ea1b +Author: Lasse Collin +Date: 2024-05-13 17:04:05 +0300 + + xz: Rename filter_memusages to chains_memusages + + (cherry picked from commit 54c3db0a83d3e67d89aba92a0957f2dce9b111a7) + + src/xz/coder.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +commit 58f200b6d1dc4cbc1ab3315a359120ab6eb84878 +Author: Lasse Collin +Date: 2024-05-12 22:26:30 +0300 + + xz: Simplify the memory usage scaling code + + This is closer to what it was before the --filtersX support was added, + just extended to support for scaling all filter chains. The method + before this commit was an extended version of the original too but + it was done in a more complex way for no clear reason. In case of + an error, the complex version printed fewer informative messages + (a good thing) but it's not a sigificant benefit. + + In the limit is too low even for single-threaded mode, the required + amount of memory is now reported like in 5.4.x instead of like in + 5.5.1alpha - 5.6.1 which showed the original non-scaled usage. It + had been a FIXME in the old code but it's not clear what message + makes the most sense. + + Fixes: 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a + (cherry picked from commit d9e1ae79ec90d6a7eafeaceaf0ece4f0c83d4417) + + src/xz/coder.c | 163 ++++++++++++++++++++------------------------------------- + 1 file changed, 57 insertions(+), 106 deletions(-) + +commit 41bdc9fa5cc2fc2a70f4331329ac724773cc2f26 +Author: Lasse Collin +Date: 2024-05-13 12:14:00 +0300 + + xz: Edit comments + + (cherry picked from commit 0ee56983d198b776878432703de664049b1be32e) + + src/xz/coder.h | 6 ++---- + 1 file changed, 2 insertions(+), 4 deletions(-) + +commit 52e40c1912dfdbf8c7aa85e3a4c3eb138fa73d5d +Author: Lasse Collin +Date: 2024-05-13 12:03:51 +0300 + + xz: Rename chain_idx to chain_num + + (cherry picked from commit ec82a49c3553f7206104582dbfb8b64fa433b491) + + src/xz/coder.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +commit 8a019633319c694423691f58c55fa23a46e45ded +Author: Lasse Collin +Date: 2024-05-12 22:29:11 +0300 + + xz: Edit coding style + + (cherry picked from commit a731a6993c34bbbd55abaf9c166718682b1da24f) + + src/xz/coder.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit e3ad7eda74caea29849e2e9ec01212f5f7d0f574 +Author: Lasse Collin +Date: 2024-05-12 22:16:05 +0300 + + xz: Edit comments + + Fixes: 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a + (cherry picked from commit 32eb176b89243fce3112347fe43a8ad14a9fd2be) + + src/xz/coder.c | 8 ++------ + 1 file changed, 2 insertions(+), 6 deletions(-) + +commit 09cabae2ab47a06f6eee02419a815d4bfd0d9490 +Author: Lasse Collin +Date: 2024-05-12 21:57:49 +0300 + + xz: Fix grammar in a comment + + Fixes: cb3111e3ed84152912b5138d690c8d9f00c6ef02 + (cherry picked from commit b90339f4daa510d2b1b8c550f855a99667f1d004) + + src/xz/coder.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit c10b66fbf9b2442741a1f052bdb4ce7009af9cda +Author: Lasse Collin +Date: 2024-05-12 21:46:56 +0300 + + xz: Rename filter_memusages to encoder_memusages + + (cherry picked from commit 4c0bdaf13d651b22ba13bd93f8379724d6ccdc13) + + src/xz/coder.c | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +commit 9132ce3564b2c003bffd6de6294a3d98dccf314e +Author: Lasse Collin +Date: 2024-05-12 21:42:05 +0300 + + xz: Edit coding style + + (cherry picked from commit b54aa023e0ec291b06e976e5f094ab0549e7b09b) + + src/xz/coder.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +commit d642e13874e93b03959d1de523f1c8ebe9428838 +Author: Lasse Collin +Date: 2024-05-12 21:31:02 +0300 + + xz: Rename filters_index to chain_num + + The reason is the same as in bd0782c1f13e52cd0fd8415208e30e47004a4c68. + + (cherry picked from commit 49f67d3d3f42b640a7dfc4ca04c8934f658e10ce) + + src/xz/args.c | 8 ++++---- + src/xz/coder.c | 8 ++++---- + src/xz/coder.h | 2 +- + 3 files changed, 9 insertions(+), 9 deletions(-) + +commit 47599f3b73f0a2bc18e0a8367d723f1eb0f11b63 +Author: Lasse Collin +Date: 2024-05-12 21:22:43 +0300 + + xz: Replace a few uint32_t with "unsigned" to reduce the number of casts + + These hold only tiny values. + + (cherry picked from commit ff9e8b3d069ecfa52ec43dcdb198542d1692a492) + + src/xz/args.c | 2 +- + src/xz/coder.c | 17 ++++++++--------- + src/xz/coder.h | 2 +- + 3 files changed, 10 insertions(+), 11 deletions(-) + +commit 8f5ab75c454ea8676ed09c7f6eda8afe87b008ad +Author: Lasse Collin +Date: 2024-05-12 21:10:45 +0300 + + xz: Rename filters_used_mask to chains_used_mask + + The reason is the same as in bd0782c1f13e52cd0fd8415208e30e47004a4c68. + + (cherry picked from commit b5e6c1113b1ba02c282bd9163eccdb521c937a78) + + src/xz/coder.c | 30 +++++++++++++++--------------- + 1 file changed, 15 insertions(+), 15 deletions(-) + +commit 3eb7cf9dd5b90a074f741234225d7de51ad88774 +Author: Lasse Collin +Date: 2024-05-12 17:14:43 +0300 + + xz: Move the setting of "check" in coder_set_compression_settings() + + It's more logical to do it in the beginning instead of in the middle + of the filter chain handling. + + Fixes: d6af7f347077b22403133239592e478931307759 + (cherry picked from commit 32500dfaadae2ea36fda2e17b49ae7d9ac1acf52) + + src/xz/coder.c | 18 +++++++++--------- + 1 file changed, 9 insertions(+), 9 deletions(-) + +commit 067961ee0e1adaa66a43fbf8c3be31697554a839 +Author: Lasse Collin +Date: 2024-05-12 17:09:17 +0300 + + xz: Rename "filters" to "chains" + + The convention is that + + lzma_filter filters[LZMA_FILTERS_MAX + 1]; + + contains the filters of a single filter chain. + It was so here as well before the commit + d6af7f347077b22403133239592e478931307759. + It changes "filters" to a ten-element array of filter chains. + It's clearer to call this array-of-arrays "chains". + + This also renames "filter_idx" to "chain_idx" which is used + as an index as in chains[chain_idx]. + + (cherry picked from commit ad146b1f42bbb678175a503a45ce525e779f9b8b) + + src/xz/coder.c | 68 +++++++++++++++++++++++++++++----------------------------- + 1 file changed, 34 insertions(+), 34 deletions(-) + +commit 6822f6f891d43c97ea379a51223ce8ea69439161 +Author: Lasse Collin +Date: 2024-05-12 16:56:15 +0300 + + xz: Clean up a comment + + (cherry picked from commit 5a4ae4e4d0105404184e9a82ee08f94e1b7783e0) + + src/xz/coder.c | 9 +++------ + 1 file changed, 3 insertions(+), 6 deletions(-) + +commit 0e5e3e7bdcfcdc4b4607665ff0f6ad794e5195af +Author: Lasse Collin +Date: 2024-05-12 16:52:09 +0300 + + xz: Add clarifying assertions + + (cherry picked from commit 2de80494ed9a4dc7db395a32a5efb770ce769804) + + src/xz/coder.c | 4 ++++ + 1 file changed, 4 insertions(+) + +commit 77bcf6b76a26833923e62b2dec717474d5d44700 +Author: Lasse Collin +Date: 2024-05-10 20:23:33 +0300 + + xz: Add a clarifying assertion + + Fixes: 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a + (cherry picked from commit 1eaad004bf7748976324672db028e34f42802e61) + + src/xz/coder.c | 1 + + 1 file changed, 1 insertion(+) + +commit df3efc058a256629ea0153b4750d3df308757038 +Author: Lasse Collin +Date: 2024-05-12 16:47:17 +0300 + + xz: Clarify a comment + + (cherry picked from commit 605094329b986244833c967c04963cacc41a868d) + + src/xz/coder.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +commit 4ebfe11cd33439675f03e1e3725abf03d6f8251b +Author: Lasse Collin +Date: 2024-05-12 16:28:25 +0300 + + xz: Use the info collected in parse_block_list() + + This is slightly simpler and it avoids looping through + the opt_block_list array. + + (cherry picked from commit 8fac2577f2dbb9491afd8500f60d004c9071df3b) + + src/xz/coder.c | 95 ++++++++++++++++++++++++---------------------------------- + 1 file changed, 39 insertions(+), 56 deletions(-) + +commit bfea6913618357a7034a1d79079bccb688262124 +Author: Lasse Collin +Date: 2024-05-12 15:48:45 +0300 + + xz: Remember the filter chains and the largest Block in parse_block_list() + + (cherry picked from commit 81d350dab864b985b740742772f3b132d4c52914) + + src/xz/args.c | 18 ++++++++++++++++++ + src/xz/coder.c | 2 ++ + src/xz/coder.h | 13 +++++++++++++ + 3 files changed, 33 insertions(+) + +commit d4e33e73922427a0f5277b91b239af538fd41c06 +Author: Lasse Collin +Date: 2024-05-12 15:38:48 +0300 + + xz: Update a comment and initialization of filters_used_mask + + (cherry picked from commit 46ab56968f7dfdac187710a1223659d832fa1565) + + src/xz/coder.c | 16 ++++++++-------- + 1 file changed, 8 insertions(+), 8 deletions(-) + +commit 3c130737c9bb4a5021bb14eb19e9ceae30ffef3a +Author: Lasse Collin +Date: 2024-05-12 15:08:10 +0300 + + xz: parse_block_list: Edit integer type casting + + (cherry picked from commit e89293a0baeb8663707c6b4a74fbb310ec698a8f) + + src/xz/args.c | 5 ++--- + 1 file changed, 2 insertions(+), 3 deletions(-) + +commit 40c8513b4ee42b8c0fae9b2a229e078ac7e0f87a +Author: Lasse Collin +Date: 2024-05-12 14:51:37 +0300 + + xz: Make filter_memusages a local variable + + (cherry picked from commit 87011e40c168255cd2edea129ee68c901770603b) + + src/xz/coder.c | 35 +++++++++++++++++++++-------------- + 1 file changed, 21 insertions(+), 14 deletions(-) + +commit cacaf25aa71cd1110cc049d037c11e4075602c35 +Author: Lasse Collin +Date: 2024-05-10 20:33:08 +0300 + + xz: Remove unused code and simplify + + opt_mode == MODE_COMPRESS isn't possible when HAVE_ENCODERS isn't + defined. Thus, when *encoding*, the message about *decoder* memory + usage is possible to show only when both encoder and decoder have + been built. + + Since the message is shown only at V_DEBUG, skip the memusage + calculation if verbosity level isn't high enough. + + Fixes: 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a + (cherry picked from commit 347b412a9374e0456bef9da0d7d79174c0b6f1a5) + + src/xz/coder.c | 16 ++++------------ + 1 file changed, 4 insertions(+), 12 deletions(-) + +commit 3495a6b291f49079485854bb185a52c29d06cd2f +Author: Lasse Collin +Date: 2024-05-10 20:22:58 +0300 + + xz: Fix integer type from uint64_t to uint32_t + + lzma_options_lzma.dict_size is uint32_t so use it here too. + + Fixes: 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a + (cherry picked from commit 31358c057c9de9d6aba96bae112b2d17942de7cb) + + src/xz/coder.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 2861d856deb557734f067c5c471d670f0b0c6684 +Author: Lasse Collin +Date: 2024-05-08 21:40:07 +0300 + + debug/translation.bash: Remove an outdated test command + + Since 5.3.5beta, "xz --lzma2=mf=bt4,nice=2" works even though bt4 needs + at least nice=4. It is rounded up internally by liblzma when needed. + + Fixes: 5cd9f0df78cc4f8a7807bf6104adea13034fbb45 + (cherry picked from commit 3f71e0f3a118e1012526f94fd640a626d30cb599) + + debug/translation.bash | 1 - + 1 file changed, 1 deletion(-) + +commit 54546babc3feb2786e541b80f9e7216b8f1bd543 +Author: Lasse Collin +Date: 2024-05-07 20:41:28 +0300 + + Fix the date of NEWS for 5.4.5 + + (cherry picked from commit b05a516830095a0e1937aeb31c937fb0400408b6) + + NEWS | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit a7e58d1fdb493d58854ac599347cf64da0cecca4 +Author: Lasse Collin +Date: 2024-05-07 16:21:15 +0300 + + Build: Update visibility.m4 from Gnulib + + This fixes the syntax of the "serial" line and renames + a temporary variable. + + (cherry picked from commit 6d336aeb97b69c496ddc626af403f6f21c753658) + + m4/visibility.m4 | 13 +++++++------ + 1 file changed, 7 insertions(+), 6 deletions(-) + +commit 07a9cda037042b262ba6c8c18fae4a5b3333d508 +Author: Lasse Collin +Date: 2024-05-07 15:05:21 +0300 + + po4a/update-po: Delete the *.po.authors files + + These are temporary files that are needed only when running po4a. + The top-level Makefile.am puts the whole po4a directory into + distribution tarball (it's simpler) so deleting these temporary + files is needed to prevent them from getting into tarballs. + + (cherry picked from commit ab51e8ee610e2a893906859848f93d5cb0d5ba83) + + po4a/update-po | 4 ++++ + 1 file changed, 4 insertions(+) + +commit 1b4e7dca243d8ef297a245b5ee3ce9cd1ca20f56 +Author: Lasse Collin +Date: 2024-05-07 13:12:17 +0300 + + xz: Edit comments and coding style + + (cherry picked from commit e4780244a17420cc95d5498cd6e02ad10eac6e5f) + + src/xz/coder.c | 25 ++++++++++++------------- + 1 file changed, 12 insertions(+), 13 deletions(-) + +commit 18683525a78e96ec6d7c2b4e841e94ad39be7096 +Author: Lasse Collin +Date: 2024-05-06 23:08:22 +0300 + + xz: Omit an incorrect comment + + It likely was a leftover from a development version of the code. + + Fixes: 183819bfd9efac8c184d9bf123325719b7eee30f + (cherry picked from commit fe4d8b0c80eaeca3381be302eeb89aba871a7e7c) + + src/xz/coder.c | 6 +----- + 1 file changed, 1 insertion(+), 5 deletions(-) + +commit 005f0398645b0342c9c1915d422743c77ec1d435 +Author: Lasse Collin +Date: 2024-05-06 23:04:31 +0300 + + xz: Add braces to a for-statement and to an if-statement + + No functional changes. + + Fixes: 5f0c5a04388f8334962c70bc37a8c2ff8f605e0a + Fixes: 479fd58d60622331fcbe48fddf756927b9f80d9a + (cherry picked from commit 9bef5b8d17dd5e009d6a6b2becc2dc535da53937) + + src/xz/coder.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +commit 34be4e6aa62376314fde250ea4f142c18274272f +Author: Lasse Collin +Date: 2024-05-06 23:00:09 +0300 + + liblzma: Omit an unneeded array from the x86 filter + + Fixes: 6aa2a6deeba04808a0fe4461396e7fb70277f3d4 + (cherry picked from commit de06b9f0c0a3f72569829ecadbc9c0a3ef099f57) + + src/liblzma/simple/x86.c | 5 +---- + 1 file changed, 1 insertion(+), 4 deletions(-) + +commit 79e329b771210c30ea317dd4d99e8968f3e6f9b2 +Author: Lasse Collin +Date: 2024-05-06 22:56:31 +0300 + + CMake: Add test_suffix.sh to the tests + + (cherry picked from commit 7da488cb933fdf51cfc14cb5810beb0766224380) + + tests/tests.cmake | 13 +++++++++++++ + 1 file changed, 13 insertions(+) + +commit 86f33bb90c6cfe6950f1d36c9e5dd7fdc9798124 +Author: Lasse Collin +Date: 2024-05-06 22:55:54 +0300 + + Test: Add CMake support to test_suffix.sh + + It needs to find the xz executable from a different directory + and work without config.h. + + (cherry picked from commit a805594ed0b4cbf7b81aa28ff46a8ab3c83c6876) + + tests/test_suffix.sh | 12 +++++++----- + 1 file changed, 7 insertions(+), 5 deletions(-) + +commit 1e243ab378e8f78ebb3af741fb38354954cf20f9 +Author: Lasse Collin +Date: 2024-05-06 20:45:34 +0300 + + Update INSTALL about MINIX 3 + + The latest stable is 3.3.0 and it's from 2014. + Don't mention the older versions in INSTALL. + 3.3.0 ships with Clang already. + + Testing with 3.4.0beta6 shows that tuklib_physmem + works too so omit comments about that from INSTALL. + Visibility warnigns weren't a problem either. + + Thus it's enough to mention the need for --disable-threads + as configure doesn't autodetect the lack of pthreads. + + (cherry picked from commit 50e19489387774bab3c4a988397d0d9c7a142a46) + + INSTALL | 20 +++++++------------- + 1 file changed, 7 insertions(+), 13 deletions(-) + +commit 8595b5ab3ba766eb6daed890bfe91a16fe329c2c +Author: Lasse Collin +Date: 2024-05-02 23:00:16 +0300 + + Windows: Remove the "doc/api" line from README-Windows.txt + + Fixes: 252aa1d67bc015eeba462803ab72edeb7744d864 + (cherry picked from commit 68d18aea1422a2b86b98b71d0b019233d84e01b0) + + windows/README-Windows.txt | 2 -- + 1 file changed, 2 deletions(-) + +commit a3f163a4ad97189744107e964e4dea505fbcc252 +Author: Lasse Collin +Date: 2024-05-02 22:59:04 +0300 + + Build: Don't copy doc/api from source tree to distribution tarball + + It was copied if it existed. This was intentional when autogen.sh + still built liblzma API docs with Doxygen. + + Fixes: d3a77ebc04bf1db8d52de2d9b0f07877bc4fd139 + (cherry picked from commit 8ede961374613aa302a13571d662cfaea1cf91f7) + + Makefile.am | 5 ----- + 1 file changed, 5 deletions(-) + +commit cb0e847fe07099c1ef6d8076f6a46e17bc431acb +Author: Sam James +Date: 2024-05-02 13:26:40 +0100 + + ci: add SPDX headers + + I've checked over each of these and they're straightforward applications + of the relevant Github Actions. + + (cherry picked from commit 9a6761aa35ed84d30bd2fda2333a4fdf3f46ecdc) + + .github/workflows/freebsd.yml | 2 ++ + .github/workflows/netbsd.yml | 2 ++ + .github/workflows/openbsd.yml | 2 ++ + 3 files changed, 6 insertions(+) + +commit c3c854dc759fe0c5549aa0a730be9e259243edb6 +Author: Yaroslav Halchenko +Date: 2024-03-29 14:37:24 -0400 + + codespell: Ignore the THANKS file and debbugs.gnu.org URL + + This way "codespell -i 0" is silent. + + This is the first commit from + https://github.com/tukaani-project/xz/pull/93 + with trivial edits by Lasse Collin. + + (cherry picked from commit 81efe6119f86e3274e512c9eca5ec22b2196c2b3) + + .codespellrc | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +commit 3216301aa20fcf9d5a7485e35a295d5c451d9658 +Author: Lasse Collin +Date: 2024-04-30 14:37:11 +0300 + + Add .gitattributes to clean up git-archive output + + (cherry picked from commit 905bfc74fe2670fd9c39014803017ab53d325401) + + .gitattributes | 7 +++++++ + 1 file changed, 7 insertions(+) + +commit f99e7c69ada9e0db0ee1ebbc38c8ce9390cd9788 +Author: Lasse Collin +Date: 2024-04-19 12:11:09 +0300 + + xzdec: Support Landlock ABI version 4 + + This was added to xz in 02e3505991233901575b7eabc06b2c6c62a96899 + but I forgot to do the same in xzdec. + + The Landlock sandbox in xzdec could be stricter as now it's + active only for the last file being decompressed. In xz, + read-only sandbox is used for multi-file case. On the other hand, + xz doesn't go to the strictest mode when processing the last file + when more than one file was specified; xzdec does. + + (cherry picked from commit 3334c71d3d4294a4f6569df3ba9bcf2443dfa501) + + src/xzdec/xzdec.c | 18 ++++++++++++++---- + 1 file changed, 14 insertions(+), 4 deletions(-) + +commit bfe9be7a46cfd3b3069c15f7ba1432192bca1f5b +Author: Lasse Collin +Date: 2024-04-30 22:22:45 +0300 + + liblzma: Fix incorrect function type error from sanitizer + + Clang 17 with -fsanitize=address,undefined: + + src/liblzma/common/filter_common.c:366:8: runtime error: + call to function encoder_find through pointer to incorrect + function type 'const lzma_filter_coder *(*)(unsigned long)' + src/liblzma/common/filter_encoder.c:187: note: + encoder_find defined here + + Use a wrapper function to get the correct type neatly. + This reduces the number of casts needed too. + + This issue could be a problem with control flow integrity (CFI) + methods that check the function type on indirect function calls. + + Fixes: 3b34851de1eaf358cf9268922fa0eeed8278d680 + (cherry picked from commit 278563ef8f2b8d98d7f2c85e1a64ec1bc21d26d8) + + src/liblzma/common/filter_decoder.c | 15 ++++++++++++--- + src/liblzma/common/filter_encoder.c | 17 +++++++++++++---- + 2 files changed, 25 insertions(+), 7 deletions(-) + +commit 882eadc5b820b6b1495fc91ba3573ac2aa6c1df3 +Author: Lasse Collin +Date: 2024-04-30 21:41:11 +0300 + + xz: Avoid arithmetic on a null pointer + + It's undefined behavior. The result wasn't ever used as it occurred + in the last iteration of a loop. + + Clang 17 with -fsanitize=address,undefined: + + $ src/xz/xz --block-list=123 + src/xz/args.c:164:12: runtime error: applying non-zero offset 1 + to null pointer + + Fixes: 88ccf47205d7f3aa314d358c72ef214f10f68b43 + Co-authored-by: Sam James + (cherry picked from commit 77c8f60547decefca8f2d0c905d9c708c38ee8ff) + + src/xz/args.c | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +commit ec5458e1c9b2beb416781e81ad4ff22b0149b99d +Author: Lasse Collin +Date: 2024-04-27 20:42:00 +0300 + + CMake: Support building liblzma API docs using Doxygen + + This is disabled by default to match the default in Autotools. + Use -DUSE_DOXYGEN=ON to enable Doxygen usage. + + This uses the update-doxygen script, thus this is under if(UNIX) + although Doxygen itself can run on Windows too. + + (cherry picked from commit 64503cc2b76a388ced4ec5f68234a07f0dcddcd5) + + CMakeLists.txt | 40 +++++++++++++++++++++++++++++++--------- + 1 file changed, 31 insertions(+), 9 deletions(-) + +commit 8c93ced56bcb23df723dab23b7477d580720f522 +Author: Lasse Collin +Date: 2024-04-20 23:36:39 +0300 + + CMake: List API headers in LIBLZMA_API_HEADERS variable + + This way the same list will be usable in more than one location. + + (cherry picked from commit 0a7f5a80d8532a1d8cfa0a902c9d1ad7651eca37) + + CMakeLists.txt | 21 ++++++++++++--------- + 1 file changed, 12 insertions(+), 9 deletions(-) + +commit f7c9bab0372db357511e42c9c610a2cfe5fca9b1 +Author: Lasse Collin +Date: 2024-04-19 15:16:42 +0300 + + PACKAGERS: Document the optional Doxygen usage + + Also add a note that packagers should check the licensing + of the Doxygen output. + + (cherry picked from commit 541406bee3f09e9813103c6406b10fc6ab2e0d30) + + PACKAGERS | 19 ++++++++++--------- + 1 file changed, 10 insertions(+), 9 deletions(-) + +commit 28e7d130cb843e96d7e6b0358f8dd58bd1b2a275 +Author: Lasse Collin +Date: 2024-04-27 17:47:09 +0300 + + Build: Add --enable-doxygen to generate and install API docs + + It requires Doxygen. This option is disabled by default. + + (cherry picked from commit e21efdf96f39378fe417479f89e97046680406f5) + + INSTALL | 6 ++++++ + configure.ac | 10 +++++++++- + src/liblzma/api/Makefile.am | 19 +++++++++++++++++++ + 3 files changed, 34 insertions(+), 1 deletion(-) + +commit cca7e6c05bc6cc51c0271c36856b7fe29f65c648 +Author: Lasse Collin +Date: 2024-04-19 15:15:17 +0300 + + Doxygen: update-doxygen: Support out-of-tree builds + + Also, now $0 is used to refer to the script itself. + + (cherry picked from commit 0ece09a575d7e542bda8825808ddd6cf7de8cc4b) + + doxygen/update-doxygen | 110 ++++++++++++++++++++++++++++++------------------- + 1 file changed, 68 insertions(+), 42 deletions(-) + +commit 8090d3dc7f0eea4a3a61f4f6d46a0d0866e345fe +Author: Lasse Collin +Date: 2024-04-28 21:08:00 +0300 + + Doxygen: Simplify Doxyfile and add SPDX license identifier + + This omits all comments and a few non-default options that weren't + needed. Now it contains no copyrighted content from Doxygen itself. + + (cherry picked from commit 2c519f641f266fd897edf680827d9c905f411440) + + doxygen/Doxyfile | 2698 +----------------------------------------------------- + 1 file changed, 25 insertions(+), 2673 deletions(-) + +commit 0721b8bfe558502669f06c97601fe59ad0d52541 +Author: Lasse Collin +Date: 2024-04-19 15:14:02 +0300 + + Doxygen: Don't strip JavaScript anymore + + The stripping method worked well with Doxygen 1.8 and 1.9 but + it doesn't work with Doxygen 1.10 anymore. Since we won't ship + pre-generated liblzma API docs anymore, the extra bloat and + extra license info of the JavaScript files won't affect the + upstream source package anymore. + + (cherry picked from commit bdba39a57530d11b88440df8024002be3d09e4a1) + + doxygen/update-doxygen | 21 --------------------- + 1 file changed, 21 deletions(-) + +commit 1ddb40f6fd286c3c6ef510735112db1ac1b60936 +Author: Lasse Collin +Date: 2024-04-19 17:26:41 +0300 + + Build: Remove old Doxygen rules from top-level Makefile.am + + (cherry picked from commit d3a77ebc04bf1db8d52de2d9b0f07877bc4fd139) + + Makefile.am | 12 ------------ + 1 file changed, 12 deletions(-) + +commit 092af76234b1bc79380427456b3215aa0b80f339 +Author: Lasse Collin +Date: 2024-04-19 15:10:06 +0300 + + Update COPYING to match the autogen.sh and mydist changes + + (cherry picked from commit fd7faa4c338a42a6a40e854b837d285ae2e8c609) + + COPYING | 11 ----------- + 1 file changed, 11 deletions(-) + +commit 77bce9a0a250cfb20333ee0dca036b3193dd4941 +Author: Lasse Collin +Date: 2024-04-19 17:23:43 +0300 + + Build: Don't run update-doxygen as part of "make mydist" + + (cherry picked from commit b2bc55d8a0a9f2f59bfd4302067300e650f6baa3) + + Makefile.am | 1 - + 1 file changed, 1 deletion(-) + +commit 3a2fc62f59b2e8cc45f8d8fd9988b4305efe4bff +Author: Lasse Collin +Date: 2024-04-19 15:09:48 +0300 + + autogen.sh: Don't generated Doxygen docs anymore + + (cherry picked from commit e9be74f5b129fe8a5388d588e68b1b7f5168a310) + + autogen.sh | 18 +++--------------- + 1 file changed, 3 insertions(+), 15 deletions(-) + +commit b04c16f9a5a8675a87783305568cadfa3f17d999 +Author: Lasse Collin +Date: 2024-04-19 17:41:36 +0300 + + windows/build.bash: Omit Doxygen docs from the package + + They will be omitted from the source tarball and I don't want + to make Doxygen a dependency of build.bash. + + (cherry picked from commit 252aa1d67bc015eeba462803ab72edeb7744d864) + + windows/build.bash | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit d4dd3c8f6169adf50cad8fe6872e0f5fcb82475c +Author: Lasse Collin +Date: 2024-04-19 14:14:47 +0300 + + README: Don't mention PDF man pages anymore + + (cherry picked from commit 634095364d87444d62d8ec54c134c0cd4705f5d7) + + README | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +commit be90720d6cd7fbb1b170794445815f579b444a6f +Author: Lasse Collin +Date: 2024-04-19 14:10:39 +0300 + + Build: Omit PDF man pages from the package + + pdf-local rule was added to create the PDFs still with "make pdf". + The install rules are missing but that likely doesn't matter at all. + + (cherry picked from commit dc684bf76ea23574ee9d88382057381e04e6089a) + + Makefile.am | 29 +++++++++++++++++++---------- + 1 file changed, 19 insertions(+), 10 deletions(-) + +commit f724552d0c1ae2e3aa693d80d8d0da962dfac4e8 +Author: Lasse Collin +Date: 2024-04-19 13:54:39 +0300 + + windows/build.bash: Don't copy PDF man pages to the package + + (cherry picked from commit e3531ab4125cbd5c01ebd3200791350960547189) + + windows/README-Windows.txt | 2 +- + windows/build.bash | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +commit 00e774819c6550a8eac219e9f6f083ab2b155505 +Author: Lasse Collin +Date: 2024-04-28 01:34:50 +0300 + + Tests: test_index: Fix failures when features are disabled + + Fixes: cd88423e76d54eb72aea037364f3ebb21f122503 + (cherry picked from commit 710a4573ef2cbd19c66318c3b2d1388e418e26c7) + + tests/test_index.c | 13 ++++++++----- + 1 file changed, 8 insertions(+), 5 deletions(-) + +commit 51133ad71eecc19bdb3ab287a0732fd9441753f4 +Author: Lasse Collin +Date: 2024-04-20 17:09:11 +0300 + + CMake: Keep the build working if the "tests" directory is missing + + This moves the tests section as is from CMakeLists.txt into + tests/tests.cmake. CMakeLists.txt now includes tests/tests.cmake + if the latter file exists. + + Now it's possible to delete the whole "tests" directory and + building with CMake will still work normally, just without + the tests. This way the tests are readily available for those + who want them, and those who won't run the tests anyway have + a straightforward way to ensure that nothing from the "tests" + directory can affect the build process. + + (cherry picked from commit aaff75c3486c4489ce88b0efb36b41cf138af7c3) + + CMakeLists.txt | 76 ++--------------------------------------------- + tests/Makefile.am | 1 + + tests/tests.cmake | 88 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 3 files changed, 92 insertions(+), 73 deletions(-) + +commit 85b5595b67f0081b2a900104ed7589de4bb75e12 +Author: Lasse Collin +Date: 2024-04-20 13:12:50 +0300 + + Tests: Remove x86 and SPARC BCJ tests + + These are very old but the exact test file isn't easy to reproduce + as it was compiled from a short C program (bcj_test.c) long ago. + These tests weren't very good anyway, just a little better than nothing. + + (cherry picked from commit a5f2aa5618fe9183706c9c514c3067985f6c338b) + + tests/Makefile.am | 7 ---- + tests/bcj_test.c | 64 --------------------------------- + tests/compress_prepared_bcj_sparc | Bin 1240 -> 0 bytes + tests/compress_prepared_bcj_x86 | Bin 1388 -> 0 bytes + tests/files/README | 8 ----- + tests/files/good-1-sparc-lzma2.xz | Bin 612 -> 0 bytes + tests/files/good-1-x86-lzma2.xz | Bin 716 -> 0 bytes + tests/test_compress_prepared_bcj_sparc | 4 --- + tests/test_compress_prepared_bcj_x86 | 4 --- + 9 files changed, 87 deletions(-) + +commit d8228d1ea08155a17acaadd76ed95805d3b0a929 +Author: Lasse Collin +Date: 2024-04-27 18:30:40 +0300 + + Tests: test_index: Edit a misleading test + + (cherry picked from commit d879686469c9c4bf2a7c0bb6420ebe4530fc8f07) + + tests/test_index.c | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +commit 2358ef8238f166c49e66f438e7494d4d352eb113 +Author: Lasse Collin +Date: 2024-04-27 16:46:01 +0300 + + Tests: test_index: Use minimal values to test integer overflow + + (cherry picked from commit 612005bbdb0dea9dc09e9e2e9cc16a15c1480acd) + + tests/test_index.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 54f4a4162aae8796580489013583d6148be5a473 +Author: Lasse Collin +Date: 2024-04-27 15:13:39 +0300 + + Tests: test_index: Test lzma_index_buffer_decode() more + + (cherry picked from commit 4ad88b2544c2aaf8de8f38af54587098cbe66c1d) + + tests/test_index.c | 29 ++++++++++++++++++++++++++--- + 1 file changed, 26 insertions(+), 3 deletions(-) + +commit 85ab59a6b70db33f320a3ea7a854249cb693dea2 +Author: Lasse Collin +Date: 2024-04-27 15:08:29 +0300 + + Tests: test_index: Test that *i = NULL is done on LZMA_PROG_ERROR + + On LZMA_DATA_ERROR from lzma_index_buffer_decode(), *i = NULL was + already done but this adds a test for that case too. + + (cherry picked from commit 575b11b0d291e66c5fce31ce7a72f11436d57c83) + + tests/test_index.c | 31 +++++++++++++++++++++++++++---- + 1 file changed, 27 insertions(+), 4 deletions(-) + +commit fb42599e44dde417305c7d92fd782147ca923079 +Author: Lasse Collin +Date: 2024-04-27 15:01:25 +0300 + + Tests: test_index: Test lzma_index_buffer_encode() with empty output buf + + (cherry picked from commit 2c970debdb285823f01f75e875561d893345ac2b) + + tests/test_index.c | 3 +++ + 1 file changed, 3 insertions(+) + +commit 20cac20f63a96a39391f2d613bef0f7bd6553495 +Author: Lasse Collin +Date: 2024-04-27 14:59:55 +0300 + + Tests: test_index: Replace if-statements with tuktest assertions + + (cherry picked from commit cd88423e76d54eb72aea037364f3ebb21f122503) + + tests/test_index.c | 22 +++++++++------------- + 1 file changed, 9 insertions(+), 13 deletions(-) + +commit 91e3ea8735752db5d0373991e84607196070aeaa +Author: Lasse Collin +Date: 2024-04-27 14:56:16 +0300 + + Tests: test_index: Make it clear that my_alloc() has no integer overflows + + liblzma guarantees that the product of the allocation size arguments + will fit in size_t. + + Putting the pre-increment in the if-statement was clearly wrong + although in practice it didn't matter here as the function is + called only a couple of times. + + (cherry picked from commit 7f865577a6224fbbb5f5ca52574b62ea8ac9bf51) + + tests/test_index.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +commit df1659a6c8367db69e82e2ea59ad5f959cf4e615 +Author: Lasse Collin +Date: 2024-04-27 14:51:52 +0300 + + Tests: test_index: Verify also iter.block.number_in_stream + + (cherry picked from commit 12313a3b6596cdcf012e180597f84d231f8730d3) + + tests/test_index.c | 2 ++ + 1 file changed, 2 insertions(+) + +commit e083e95dbfda73900109cca4c82c8713d0a1da21 +Author: Lasse Collin +Date: 2024-04-27 14:51:06 +0300 + + Tests: test_index: Check cases that aren't a multiple of 4 bytes + + (cherry picked from commit ad2654010d9d641ce1601beeff00630027e6bcd4) + + tests/test_index.c | 33 +++++++++++++++++++++++++-------- + 1 file changed, 25 insertions(+), 8 deletions(-) + +commit b0d3b86ecf1881d10e6614b64b0fcc6c16a3b08f +Author: Lasse Collin +Date: 2024-04-27 14:40:25 +0300 + + Tests: test_index: Edit comments and white space + + (cherry picked from commit 2524fcf2b68b662035437cee8edbe80067c0c240) + + tests/test_index.c | 18 +++++++++++------- + 1 file changed, 11 insertions(+), 7 deletions(-) + +commit bae288ea6ffb976c36e2387c03d75ce84a8a1034 +Author: Lasse Collin +Date: 2024-04-27 14:33:38 +0300 + + liblzma: index_decoder: Fix missing initializations on LZMA_PROG_ERROR + + If the arguments to lzma_index_decoder() or lzma_index_buffer_decode() + were such that LZMA_PROG_ERROR was returned, the lzma_index **i + argument wasn't touched even though the API docs say that *i = NULL + is done if an error occurs. This obviously won't be done even now + if i == NULL but otherwise it is best to do it due to the wording + in the API docs. + + In practice this matters very little: The problem can occur only + if the functions are called with invalid arguments, that is, + the calling application must already have a bug. + + (cherry picked from commit 71eed2520e2eecae89bade9dceea16e56cfa2ea0) + + src/liblzma/common/index_decoder.c | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +commit f10cb93f335900a29e50f990b751996ef026b3a3 +Author: Lasse Collin +Date: 2024-04-26 18:25:18 +0300 + + CMake: Bump maximum policy version to 3.29 + + (cherry picked from commit 0478473953f50716a2bc37b619b1c7dc2682b1ad) + + CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 59055d70cdd3df091264ae9da793821bfd65314d +Author: Sam James +Date: 2024-04-13 22:30:44 +0100 + + ci: add NetBSD + + (cherry picked from commit a607e2b40d23f7d998dbaba76692aa30b4c3d9d3) + + .github/workflows/netbsd.yml | 29 +++++++++++++++++++++++++++++ + 1 file changed, 29 insertions(+) + +commit 812c1f95f37751aaa1e020fc2360949a674842fd +Author: Sam James +Date: 2024-04-13 23:49:26 +0100 + + ci: add FreeBSD + + (cherry picked from commit 72c210336de26fb87a928160d025fa10a638d23b) + + .github/workflows/freebsd.yml | 29 +++++++++++++++++++++++++++++ + 1 file changed, 29 insertions(+) + +commit d2a4f963c28b864aa179464f7827cc10c6e1365d +Author: Sam James +Date: 2024-04-13 23:16:08 +0100 + + ci: add OpenBSD + + (cherry picked from commit b526ec2dbfb5889845ea60548c4f5b1f97d84ab2) + + .github/workflows/openbsd.yml | 31 +++++++++++++++++++++++++++++++ + 1 file changed, 31 insertions(+) + +commit 493bc57c33385bda5ad32d01ab73dcfe8f5e7ced +Author: Sam James +Date: 2024-04-15 05:53:01 +0100 + + liblzma: outqueue: add header guard + + Reported by github's codeql. + + (cherry picked from commit c7ef767c49351743d8d011574abb9e200bf6b24f) + + src/liblzma/common/outqueue.h | 5 +++++ + 1 file changed, 5 insertions(+) + +commit cede418d4f8e1fb4c8a30839fa5d3b14743e83d4 +Author: Sam James +Date: 2024-04-15 05:53:56 +0100 + + liblzma: easy_preset: add header guard + + Reported by github's codeql. + + (cherry picked from commit 55dcae3056d95cb2ddb8b560c12ba7596bc79f2c) + + src/liblzma/common/easy_preset.h | 5 +++++ + 1 file changed, 5 insertions(+) + +commit 6e76a25df28b47407a201bf0381fa6d3c80cb0bb +Author: Lasse Collin +Date: 2024-04-25 14:00:57 +0300 + + tuklib_integer: Rename bswapXX to byteswapXX + + The __builtin_bswapXX from GCC and Clang are preferred when + they are available. This can allow compilers to emit the x86 MOVBE + instruction instead of doing a load + byteswap as two instructions + (which would happen if the byteswapping is done in inline asm). + + bswap16, bswap32, and bswap64 exist in system headers on *BSDs + and Darwin. #defining bswap16 on NetBSD results in a warning about + macro redefinition. It's safest to avoid this namespace conflict + completely. + + No OS supported by tuklib_integer.h uses byteswapXX names and + a web search doesn't immediately find any obvious danger of + namespace conflicts. So let's try these still-pretty-short names + for the macros. + + Thanks to Sam James for pointing out the compiler warning on + NetBSD 10.0. + + (cherry picked from commit 4ffc60f32397371769b7d6b5e3ed8626292d58df) + + src/common/tuklib_integer.h | 47 ++++++++++++++++++++------------------ + src/liblzma/check/crc32_fast.c | 4 ++-- + src/liblzma/check/crc32_tablegen.c | 2 +- + src/liblzma/check/crc64_fast.c | 4 ++-- + src/liblzma/check/crc64_tablegen.c | 2 +- + 5 files changed, 31 insertions(+), 28 deletions(-) + +commit 0ca14871f306b97ce81bfe44c4a39b6b2af31bb3 +Author: Lasse Collin +Date: 2024-04-24 01:20:26 +0300 + + liblzma: API doc cleanups + + (cherry picked from commit 08ab0966a75b501aa7c717622223f0c13a113c75) + + src/liblzma/api/lzma/container.h | 2 +- + src/liblzma/api/lzma/index.h | 6 +++--- + src/liblzma/api/lzma/vli.h | 5 ++--- + 3 files changed, 6 insertions(+), 7 deletions(-) + +commit 94a462850bc8718f5dd5b30116bce2165b2403c2 +Author: Lasse Collin +Date: 2024-04-23 16:35:33 +0300 + + Tests: test_filter_str: Add a few assertions + + (cherry picked from commit 3ac8a9bb4cccbee88350696dc9c645c48d77c989) + + tests/test_filter_str.c | 4 ++++ + 1 file changed, 4 insertions(+) + +commit 72058ca22a7f3c9c67ed58be624f8302c6337cd7 +Author: Lasse Collin +Date: 2024-04-23 16:35:08 +0300 + + Tests: test_filter_str: Move one assertion and add a comment + + (cherry picked from commit 26c69be80523b05c84dea86c47c4ddd9a10945d7) + + tests/test_filter_str.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +commit c59ebbe1c6dd18b78a046aae3133702dd52c352e +Author: Lasse Collin +Date: 2024-04-23 16:26:06 +0300 + + Tests: test_filter_str: Tweak comments and white space + + (cherry picked from commit 4f6af853bc99904efb8b6c28a0af7b81a8476c1b) + + tests/test_filter_str.c | 3 +++ + 1 file changed, 3 insertions(+) + +commit ceda860934b0272689d0722ceeb490cf9c559956 +Author: Lasse Collin +Date: 2024-04-23 16:25:22 +0300 + + Tests: test_filter_str: Add missing RISC-V case + + Fixes: 89ea1a22f4ed3685b053b7260bc5acf6c75d1664 + (cherry picked from commit c92663aa1bd576e0615498a4189acf0df12e84b9) + + tests/test_filter_str.c | 3 +++ + 1 file changed, 3 insertions(+) + +commit 2234b7cc472e62f3401216a71261579342fa2959 +Author: Lasse Collin +Date: 2024-04-22 22:23:32 +0300 + + Tests: test_filter_str: Test *error_pos more thoroughly + + (cherry picked from commit b0366df1d7ed26268101f9303a001c91c0806dfc) + + tests/test_filter_str.c | 77 ++++++++++++++++++++++++++++++++++++++++++++++++- + 1 file changed, 76 insertions(+), 1 deletion(-) + +commit 3ba3ef57f929670adb1f9c5e5207a81a29374237 +Author: Lasse Collin +Date: 2024-04-22 21:54:39 +0300 + + liblzma: lzma_str_to_filters: Set *error_pos on all errors + + The API docs clearly say that if error_pos isn't NULL then *error + is always set on any error. However, it wasn't touched if str == NULL + or filters == NULL or unsupported flags were specified. + + Fixes: cedeeca2ea6ada5b0411b2ae10d7a859e837f203 + (cherry picked from commit 70d12dd069bb9bb0d6bb1c8fafc4e6f77780263d) + + src/liblzma/common/string_conversion.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +commit 57ad820e15381344a812c78ce9b67a77a60b9cf3 +Author: Lasse Collin +Date: 2024-04-22 20:31:25 +0300 + + liblzma: Clean up white space + + (cherry picked from commit ed8e552395701fbf046027cebc8be4a6755b263f) + + src/liblzma/lz/lz_encoder.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit ba0b5bfe7cb3cdbd9a4e3c268e10c304cb834e8a +Author: Lasse Collin +Date: 2024-04-22 18:35:19 +0300 + + Tests: test_filter_flags: Edit comments and style + + (cherry picked from commit 2f06920f20b1ad63b7953dc09569e1d424998849) + + tests/test_filter_flags.c | 13 +++++++++---- + 1 file changed, 9 insertions(+), 4 deletions(-) + +commit d2ed6759596185ac6a9c69ea713c27cd4bd1d9ba +Author: Lasse Collin +Date: 2024-04-22 16:39:44 +0300 + + Tests: Fix C99/C11 compatibility when features are disabled + + The array could become empty and then the initializer would be + simply {} which is allowed only in GNU-C and C23. + + (cherry picked from commit b101e1d1dbc81577c0c9aa0cb89cf2e46a15eb82) + + tests/test_filter_flags.c | 18 ++++++++---------- + 1 file changed, 8 insertions(+), 10 deletions(-) + +commit 9a70e93fef3fd5943484e56f1881a7c6e3296027 +Author: Lasse Collin +Date: 2024-04-21 20:32:16 +0300 + + DOS: Omit useless defines from config.h + + (cherry picked from commit f8f3a220ac8afcb8cb2812917d3b77e00c2eab0d) + + dos/config.h | 12 ------------ + 1 file changed, 12 deletions(-) + +commit dc4740f720e08bdd496aa2736db3b7aea6dd3d1e +Author: Lasse Collin +Date: 2024-04-21 20:27:50 +0300 + + Build: Omit useless checks for fcntl.h, limits.h, and sys/time.h + + (cherry picked from commit fc1921b04b8840caaa777c2bd5340d41b259da20) + + configure.ac | 6 ------ + 1 file changed, 6 deletions(-) + +commit 6e210d5766b25d36729152a13c5889bb0605a1e3 +Author: Lasse Collin +Date: 2024-04-19 22:04:21 +0300 + + liblzma: Silence a warning from Coverity static analysis + + It is logical why it cannot know for sure that the value has + to be at most 4 if it is less than 16. + + The x86 filter is based on a very old LZMA SDK version. Newer + ones have quite a different implementation for the same filter. + + Thanks to Sam James. + + (cherry picked from commit 6aa2a6deeba04808a0fe4461396e7fb70277f3d4) + + src/liblzma/simple/x86.c | 12 +++++------- + 1 file changed, 5 insertions(+), 7 deletions(-) + +commit 4019b012f29008ea6545aba6fe6c141a2d920ae2 +Author: Lasse Collin +Date: 2024-04-19 23:18:19 +0300 + + Update .gitignore + + (cherry picked from commit e89d3e83b4496d0b5410870634970c0aa9721d59) + + .gitignore | 21 ++++++++------------- + 1 file changed, 8 insertions(+), 13 deletions(-) + +commit 09a0311a1e8cdefbcfab9e490cdd41c97a459d24 +Author: Lasse Collin +Date: 2024-04-19 20:53:24 +0300 + + Tests: test_lzip_decoder: Tweak coding style and comments + + (cherry picked from commit 86fc4ee859709da0ff9617a1490f13ddac0a109b) + + tests/test_lzip_decoder.c | 58 +++++++++++++++++++++++------------------------ + 1 file changed, 28 insertions(+), 30 deletions(-) + +commit 3117336a0291309ddd2a54d2966a589f9f806850 +Author: Lasse Collin +Date: 2024-04-19 20:51:36 +0300 + + Tests: test_lzip_decoder: Remove redundant initializations + + (cherry picked from commit 38be573a279bd7b608ee7d8509ec10884e6fb0d5) + + tests/test_lzip_decoder.c | 6 ++---- + 1 file changed, 2 insertions(+), 4 deletions(-) + +commit f78081eb12c804ec4f5a3dc569b859646b16e9e5 +Author: Lasse Collin +Date: 2024-04-19 20:47:24 +0300 + + Tests: test_lzip_decoder: Remove unneeded tuktest_malloc() calls + + (cherry picked from commit d7e4bc53eacfab9f3de95d8252bdfdc9419079c9) + + tests/test_lzip_decoder.c | 12 ++---------- + 1 file changed, 2 insertions(+), 10 deletions(-) + +commit 7413383e4280065b79ca70abe4d8ebc78055b35a +Author: Lasse Collin +Date: 2024-04-15 20:35:07 +0300 + + xz: Fix white space error. + + Thanks to xx on #tukaani. + + (cherry picked from commit eeca8f7c5baf1ad69606bb734d5001763466d58f) + + src/xz/args.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit eed2f26c0edb6e31a50d48bab4ff619778690a1e +Author: Sam James +Date: 2024-04-11 23:01:44 +0100 + + xz: add missing noreturn for message_filters_help + + Fixes: a165d7df1964121eb9df715e6f836a31c865beef + (cherry picked from commit 462ca9409940a19f743daee6b3bcc611277d0007) + + src/xz/message.h | 1 + + 1 file changed, 1 insertion(+) + +commit 2633d8df616405bd54fd748d7bf887ebc4505b88 +Author: Sam James +Date: 2024-04-11 19:34:04 +0100 + + xz: signals: suppress -Wsign-conversion on macOS + + On macOS, we get: + ``` + signals.c: In function 'signals_init': + signals.c:76:17: error: conversion to 'sigset_t' {aka 'unsigned int'} from 'int' may change the sign of the result [-Werror=sign-conversion] + 76 | sigaddset(&hooked_signals, sigs[i]); + | ^~~~~~~~~ + signals.c:81:17: error: conversion to 'sigset_t' {aka 'unsigned int'} from 'int' may change the sign of the result [-Werror=sign-conversion] + 81 | sigaddset(&hooked_signals, message_progress_sigs[i]); + | ^~~~~~~~~ + signals.c:86:9: error: conversion to 'sigset_t' {aka 'unsigned int'} from 'int' may change the sign of the result [-Werror=sign-conversion] + 86 | sigaddset(&hooked_signals, SIGTSTP); + | ^~~~~~~~~ + ``` + + We use `int` for `hooked_signals` but we can't just cast to whatever + `sigset_t` is because `sigset_t` is an opaque type. It's an unsigned int + on macOS. On macOS, `sigaddset` is implemented as a macro. + + Just suppress -Wsign-conversion for `signals_init` for macOS given + there's no real nice way of fixing this. + + (cherry picked from commit 863f13d2828b99b0539ce73f9cf85bde32358034) + + src/xz/signals.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +commit 50fb269c7a9cf62a9f3fe08859e2aa4348b600a7 +Author: Lasse Collin +Date: 2024-04-13 22:19:40 +0300 + + Tests: test_microlzma: Add a "FIXME?" about LZMA_FINISH handling + + (cherry picked from commit fcbd0d199933a69713cb293cbd7409a757d854cd) + + tests/test_microlzma.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +commit 3e2ff2d38c54c8fc7ce15aaf91185dc105d9c92c +Author: Lasse Collin +Date: 2024-04-13 18:05:31 +0300 + + Tests: test_microlzma: Tweak comments, coding style, and minor details + + A few lines were reordered, a few ARRAY_SIZE were changed to sizeof, + and a few uint32_t were changed to size_t. No real functional changes + were intended. + + (cherry picked from commit 0fe2dfa68355d2b165544b2bc8babf77dcc2039e) + + tests/test_microlzma.c | 149 +++++++++++++++++++++++++++---------------------- + 1 file changed, 83 insertions(+), 66 deletions(-) + +commit ebc8b8de19d641c37ab7959a224bcd0ff4c0833f +Author: Ryan Carsten Schmidt +Date: 2024-04-12 19:31:13 -0500 + + CI: Use only the active CPUs on macOS + + hw.ncpu counts all CPUs including inactive ones. hw.activecpu counts + only the active CPUs. + + (cherry picked from commit 97f0ee0f1f903f4e7c4ea23e9b89d687025d2992) + + build-aux/ci_build.bash | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 1e63f7d53648beb6dd5acb5771850d7c4bc30477 +Author: Sam James +Date: 2024-04-10 18:33:55 +0100 + + ci: rename ci_build.sh -> ci_build.bash + + We discussed the name and it's less cognitive load to just call it '.bash' + so you don't have an immediate question about if bashisms are OK. + + (cherry picked from commit 73f629e321b74f68c9954728fa4f19261afccf46) + + .github/workflows/ci.yml | 52 ++++++++++++++++---------------- + .github/workflows/windows-ci.yml | 20 ++++++------ + build-aux/{ci_build.sh => ci_build.bash} | 0 + 3 files changed, 36 insertions(+), 36 deletions(-) + +commit aea54a4724414466a20afd7493156d40d0a2741c +Author: Sam James +Date: 2024-04-10 17:42:23 +0100 + + ci: build in parallel by default + + (cherry picked from commit 8709407a9ef8e7e8aec117879400e4dd3e227ada) + + build-aux/ci_build.sh | 2 ++ + 1 file changed, 2 insertions(+) + +commit 4381fcf00b2fabb6dcc9fd5cf35d520feb9e775a +Author: Sam James +Date: 2024-04-10 15:41:08 +0100 + + ci: default to -O2 + + We need this for when we're passing sanitizer flags or -gdwarf-4 for Clang + with Valgrind. Just always start with -O2 if CFLAGS isn't set in the + environment and append what was passed on the command line. + + (cherry picked from commit 65bf7e0a1ca6386f17608e8afb84ac470c18d23f) + + build-aux/ci_build.sh | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +commit 752ba5ed99ec754bafbdc4d87a2876cb2566ecc4 +Author: Sam James +Date: 2024-04-10 15:17:47 +0100 + + ci: make automake's test runner verbose on failures + + This is a lot easier to work with than the save-logs thing the action + tries to do... + + (cherry picked from commit bc899f9e0700ad153bd65f4804c4de7515c8a847) + + build-aux/ci_build.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit cc21af171599ffe0419fc32a30edd3ef7d479865 +Author: Sam James +Date: 2024-04-10 12:38:51 +0100 + + ci: make UBSAN abort on errors + + Unfortunately, UBSAN doesn't do this by default. See also the change + I made in Meson for this in October [0]. + + [0] https://github.com/mesonbuild/meson/commit/7b7d2e060b447de9c2642848847370a58711ac1c + + (cherry picked from commit b5e3470442531717b2457b40ab412740296af1bc) + + .github/workflows/ci.yml | 1 + + 1 file changed, 1 insertion(+) + +commit 2d2d5f14b392cd1aeddab7ce34fd50ba5422e5b5 +Author: Sam James +Date: 2024-04-10 11:43:10 +0100 + + ci: test Valgrind + + Using `--trace-children=yes` has a trade-off here, as it makes + `test_scripts.sh` pretty slow when calling various non-xz utilities. + + But I also feel like it's not useless to have Valgrind used there and it's + not easy to exclude Valgrind just for that one test... + + I did consider using AX_VALGRIND_CHECK [0][1] but I couldn't get it working + immediately with some conditionally-built tests and I wondered if it was + worth spending time on at least while we're debating xz's future build + system situation. + + [0] https://www.gnu.org/software/autoconf-archive/ax_valgrind_check.html + [1] https://tecnocode.co.uk/2014/12/23/automatically-valgrinding-code-with-ax_valgrind_check/ + + (cherry picked from commit 6c095a98fbec70b790253a663173ecdb669108c4) + + .github/workflows/ci.yml | 11 ++++++++++- + build-aux/ci_build.sh | 8 +++++--- + 2 files changed, 15 insertions(+), 4 deletions(-) + +commit 5d20a612051fac3ca6d99abe3cd7e0e3370e5b67 +Author: Lasse Collin +Date: 2024-04-10 23:20:02 +0300 + + liblzma: CRC: Simplify table omission macros + + A macro is useful to prevent a single #if directive from + getting too ugly but only one macro is needed for all archs. + + (cherry picked from commit 6286c1900c2d2ca33d9b1b397122c7bcdb9a4d59) + + src/liblzma/check/crc32_table.c | 10 ++++------ + src/liblzma/check/crc64_table.c | 4 ++-- + src/liblzma/check/crc_common.h | 5 +++-- + 3 files changed, 9 insertions(+), 10 deletions(-) + +commit 2a80827e23169c624560ac89714bf5084cbead43 +Author: Lasse Collin +Date: 2024-04-10 23:09:40 +0300 + + liblzma: ARM64 CRC: Fix omission of CRC32 table + + The macro name had an odd typo so the table wasn't omitted + when it should have. + + Fixes: 1940f0ec28f08c0ac72c1413d9706fb82eabe6ad + (cherry picked from commit 45da936c879acf4f053a3055665bf1b10ded4462) + + src/liblzma/check/crc32_table.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit a54117377151356c1e2494ba1febc245cb71b51c +Author: Lasse Collin +Date: 2024-04-10 22:21:51 +0300 + + Build: If ARM64 feature detection func is found, stop looking for others + + This can speed up configure a tiny bit. + + Fixes: c5f6d79cc9515a7f22d7ea4860c6cc394b295732 + (cherry picked from commit 308a9af85400b0e2019f0f012c8354e831d06d65) + + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 9223ad6e78a666cc9f9aba135d1755fec184a24a +Author: Lasse Collin +Date: 2024-04-10 22:04:27 +0300 + + liblzma: ARM64 CRC32: Change style of the macOS code to match FreeBSD + + I didn't test this but it shouldn't change any functionality. + + Fixes: 761f5b69a4c778c8bcb09279b845b07c28790575 + (cherry picked from commit fc43cecd32bf9d5f8caa599206b15c9569af1eb6) + + src/liblzma/check/crc32_arm64.h | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +commit 32ceb2c36a0e450037bbe906c2a1ea42607b9d21 +Author: Lasse Collin +Date: 2024-04-10 21:59:27 +0300 + + liblzma: ARM64 CRC32: Add error checking to FreeBSD-specific code + + Also add parenthesis to the return statement. + + I didn't test this. + + Fixes: 761f5b69a4c778c8bcb09279b845b07c28790575 + (cherry picked from commit 1024cd4cd966b998fedec51e385e9ee9a49b3c57) + + src/liblzma/check/crc32_arm64.h | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +commit 42915101e914dba353c236925bc1d5e4826d3f7a +Author: Lasse Collin +Date: 2024-04-10 21:56:33 +0300 + + liblzma: ARM64 CRC32: Use negation instead of subtracting from 8 + + Subtracting from 0 is negation, this just keeps warnings away. + + Fixes: 761f5b69a4c778c8bcb09279b845b07c28790575 + (cherry picked from commit 2337f7021c860b026e3e849e60a9ae8d09ec0ea0) + + src/liblzma/check/crc32_arm64.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 42a9482b48f0171852fbaddbdc729a56f2daa547 +Author: Lasse Collin +Date: 2024-04-10 21:55:10 +0300 + + liblzma: ARM64 CRC32: Tweak coding style and comments + + (cherry picked from commit d8fffd01aa1a3c18e437a222abd34699e23ff5e7) + + src/liblzma/check/crc32_arm64.h | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +commit 38a3ec5a7e2ddeee3686be64b037aa1377f31fd1 +Author: Lasse Collin +Date: 2024-04-09 17:47:01 +0300 + + CI: Remove ifunc support. + + (cherry picked from commit 986865ea2f9d1f8dbef4a130926df106b0f6d41a) + + .github/workflows/ci.yml | 13 +++---------- + build-aux/ci_build.sh | 5 +---- + 2 files changed, 4 insertions(+), 14 deletions(-) + +commit 34d1252f093944ff350a88a6196539f95902ad41 +Author: Lasse Collin +Date: 2024-04-09 17:43:16 +0300 + + liblzma: Remove ifunc support. + + This is *NOT* done for security reasons even though the backdoor + relied on the ifunc code. Instead, the reason is that in this + project ifunc provides little benefits but it's quite a bit of + extra code to support it. The only case where ifunc *might* matter + for performance is if the CRC functions are used directly by an + application. In normal compression use it's completely irrelevant. + + (cherry picked from commit 689ae2427342a2ea1206eb5ca08301baf410e7e0) + + CMakeLists.txt | 79 --------------------------------------- + INSTALL | 8 ---- + configure.ac | 79 --------------------------------------- + src/liblzma/check/crc32_fast.c | 48 +++--------------------- + src/liblzma/check/crc64_fast.c | 21 ----------- + src/liblzma/check/crc_common.h | 9 +---- + src/liblzma/check/crc_x86_clmul.h | 11 +----- + 7 files changed, 8 insertions(+), 247 deletions(-) + +commit a594b39685051cd1ec866360bc4dd6c22f301bb4 +Author: Lasse Collin +Date: 2024-04-08 22:04:41 +0300 + + tests/files/README: Update the main heading. + + (cherry picked from commit 6b4c859059a7eb9b0547590c081668e14ecf8af6) + + tests/files/README | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit fa76e3ef597ee2e9d150461a42d270a386204042 +Author: Lasse Collin +Date: 2024-04-08 22:02:45 +0300 + + tests/files/README: Explain how to recreate the ARM64 test files. + + (cherry picked from commit 2a851e06b891ce894f918faff32a6cca6fdecee6) + + tests/files/README | 15 ++++++++++++++- + 1 file changed, 14 insertions(+), 1 deletion(-) + +commit 112fa0aba6be30968811c9131f1b995cf9e92e75 +Author: Lasse Collin +Date: 2024-04-08 21:51:55 +0300 + + debug: Add generator for the ARM64 test file data. + + (cherry picked from commit 3d09b721b94e18fe1f853a04799697f5de10b291) + + debug/Makefile.am | 3 +- + debug/testfilegen-arm64.c | 116 ++++++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 118 insertions(+), 1 deletion(-) + +commit 1a1f3d0323d5991a3238566e8f517d5116358b5c +Author: Lasse Collin +Date: 2024-04-08 21:19:38 +0300 + + xz man page: Use .ft CR instead of CW to silence warnings from groff. + + (cherry picked from commit 31ef676567c9d6fcc4ec9fc833c312f7a7c21c48) + + src/xz/xz.1 | 32 ++++++++++++++++---------------- + 1 file changed, 16 insertions(+), 16 deletions(-) + +commit 9f9203f574f895c40a86a83c45c6bb79c25bb5d2 +Author: Lasse Collin +Date: 2024-04-08 19:28:35 +0300 + + Fix NEWS for 5.6.0 and 5.6.1. + + (cherry picked from commit 780cbf29d5a88db2b546e9b7b019c4c33ca72685) + + NEWS | 6 ++++++ + 1 file changed, 6 insertions(+) + +commit 12876b33c79e36d7e51e8ba6ab7162bd2129cb5b +Author: Lasse Collin +Date: 2024-04-08 19:22:26 +0300 + + Remove the XZ logo. + + (cherry picked from commit bfd0c7c478e93a1911b845459549ff94587b6ea2) + + COPYING | 5 - + COPYING.CC-BY-SA-4.0 | 427 --------------------------------------------------- + Makefile.am | 2 - + README | 2 - + doc/xz-logo.png | Bin 6771 -> 0 bytes + doxygen/Doxyfile | 6 +- + doxygen/footer.html | 13 -- + 7 files changed, 3 insertions(+), 452 deletions(-) + +commit 879295d91f06c241fd8a8fc1ca95776dbeb45f93 +Author: Lasse Collin +Date: 2024-04-08 18:27:39 +0300 + + Update maintainer and author info. + + The other maintainer suddenly disappeared. + + (cherry picked from commit 77a294d98a9d2d48f7e4ac273711518bf689f5c4) + + AUTHORS | 9 +++++++-- + README | 10 +++------- + THANKS | 1 - + src/liblzma/api/lzma.h | 2 +- + 4 files changed, 11 insertions(+), 11 deletions(-) + +commit 859617d30d81317236e004b323fed0883f932dcf +Author: Lasse Collin +Date: 2024-04-08 18:05:32 +0300 + + Docs: Update .xz file format specification to 1.2.1. + + This only reverts the XZ URL changes. + + (cherry picked from commit 8dd03d4484ccf80022722a16d0ed9b37f2b58072) + + doc/xz-file-format.txt | 12 ++++++++---- + 1 file changed, 8 insertions(+), 4 deletions(-) + +commit eeb74fba1f6ea334a519015938b4a26c6ba5d4eb +Author: Lasse Collin +Date: 2024-04-08 17:33:56 +0300 + + Update website URLs back to tukaani.org. + + The XZ projects were moved back to their original URLs. + + (cherry picked from commit 17aa2e1a796d3f758802df29afc89dcf335db567) + + CMakeLists.txt | 2 +- + COPYING | 3 +-- + README | 4 ++-- + configure.ac | 2 +- + doc/faq.txt | 2 +- + doc/lzma-file-format.txt | 12 ++++++------ + dos/config.h | 2 +- + src/liblzma/api/lzma.h | 2 +- + src/xz/xz.1 | 6 +++--- + src/xzdec/xzdec.1 | 4 ++-- + windows/README-Windows.txt | 2 +- + 11 files changed, 20 insertions(+), 21 deletions(-) + +commit a7b9cd70004bfc1abadc7e865dfce765f7b8b59d +Author: Lasse Collin +Date: 2024-04-08 17:07:08 +0300 + + xzdec: Tweak coding style and comments. + + (cherry picked from commit 2739db981023373a2ddabc7b456c7e658bb4f582) + + src/xzdec/xzdec.c | 32 +++++++++++++++++++++----------- + 1 file changed, 21 insertions(+), 11 deletions(-) + +commit ebe9d6d8cb27168706078009b3f64da8fde63833 +Author: Lasse Collin +Date: 2024-04-08 15:53:46 +0300 + + tests/ossfuzz: Tiny fix to a comment. + + (cherry picked from commit 408b6adb2a07d07c6535f859571cca38837caaf3) + + tests/ossfuzz/fuzz_decode_stream.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 78ab47d65d916207233abbcdb0ccfd6efb946c05 +Author: Lasse Collin +Date: 2024-03-30 14:36:28 +0200 + + CMake: Fix sabotaged Landlock sandbox check. + + It never enabled it. + + (cherry picked from commit f9cf4c05edd14dedfe63833f8ccbe41b55823b00) + + CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 5f178c364c3b5c6fe87099b7624d5c76995ff8e6 +Author: Lasse Collin +Date: 2024-05-22 14:08:33 +0300 + + Delete SECURITY.md from v5.6 + + It's too easily out of date in the stable branches. + It's not included in the release packages anyway. + + .github/SECURITY.md | 29 ----------------------------- + 1 file changed, 29 deletions(-) + +commit b3a756188004a16de5956c368e3b0efd1a9bccb0 +Author: Lasse Collin +Date: 2024-03-22 17:46:30 +0200 + + liblzma: memcmplen.h: Add a comment why subtraction is used. + + (cherry picked from commit 0b99783d63f27606936bb79a16c52d0d70c0b56f) + + src/liblzma/common/memcmplen.h | 13 +++++++++++++ + 1 file changed, 13 insertions(+) + +commit 94939a145f362ff8b09fb37fc72901743f7f5cb2 +Author: Lasse Collin +Date: 2024-03-15 17:43:39 +0200 + + INSTALL: Document arguments of --enable-symbol-versions. + + (cherry picked from commit 8a25ba024d55610c448c6e4f1400a00bae51b493) + + INSTALL | 43 +++++++++++++++++++++++++++++++++++++++---- + 1 file changed, 39 insertions(+), 4 deletions(-) + +commit fa14c8aaf0d0266b7e0c3b7c766159299c1a0f18 +Author: Lasse Collin +Date: 2024-03-15 17:15:50 +0200 + + Build: Use only the generic symbol versioning with NVIDIA HPC Compiler. + + This does the previous commit with CMake. + + AC_EGREP_CPP uses AC_REQUIRE so the outermost if-commands must + be changed to AS_IF to ensure that things wont break some day. + See 5a5bd7f871818029d5ccbe189f087f591258c294. + + (cherry picked from commit 49324b711f9d42b3543bf2f3ae598eaa03360bd5) + + configure.ac | 18 +++++++++++++----- + 1 file changed, 13 insertions(+), 5 deletions(-) + +commit 73baa8d99b51c7623ed95afe6411302d9ff56864 +Author: Lasse Collin +Date: 2024-03-15 16:36:35 +0200 + + CMake: Use only the generic symbol versioning with NVIDIA HPC Compiler. + + It doesn't support the __symver__ attribute or __asm__(".symver ..."). + The generic symbol versioning can still be used since it only needs + linker support. + + (cherry picked from commit c273123ed0ebaebf49994057a7fe98aae7f42c40) + + CMakeLists.txt | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +commit 886633f42376f4648d931917733c8a59fb2e1f6c +Author: Lasse Collin +Date: 2024-03-13 21:38:24 +0200 + + Update THANKS. + + (cherry picked from commit df7f487648d18a3992386a59b8a061edca862d17) + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit 760f622f0d73632df2347aaca7ac7ff5761e98b6 +Author: Lasse Collin +Date: 2024-03-13 21:30:18 +0200 + + liblzma: Minor comment edits. + + (cherry picked from commit 3217b82b3ec023bf8338249134a076bea0ea30ec) + + src/liblzma/common/string_conversion.c | 4 ++-- + src/liblzma/delta/delta_decoder.c | 2 ++ + 2 files changed, 4 insertions(+), 2 deletions(-) + +commit 403b4c78b81f67bc3787542f55f555407253316c +Author: Sergey Kosukhin +Date: 2024-03-13 13:07:13 +0100 + + liblzma: Fix building with NVHPC (NVIDIA HPC SDK). + + NVHPC compiler has several issues that make it impossible to + build liblzma: + - the compiler cannot handle unions that contain pointers that + are not the first members; + - the compiler cannot handle the assembler code in range_decoder.h + (LZMA_RANGE_DECODER_CONFIG has to be set to zero); + - the compiler fails to produce valid code for delta_decode if the + vectorization is enabled, which results in failed tests. + + This introduces NVHPC-specific workarounds that address the issues. + + (cherry picked from commit 096bc0e3f8fb4bfc4d2f3f64a7f219401ffb4c31) + + src/liblzma/common/string_conversion.c | 6 ++++-- + src/liblzma/delta/delta_decoder.c | 3 +++ + src/liblzma/rangecoder/range_decoder.h | 1 + + 3 files changed, 8 insertions(+), 2 deletions(-) + +commit 1888fb49f629340758e98e69d5aa328f6f73c5e1 +Author: Lasse Collin +Date: 2024-03-13 21:17:10 +0200 + + CMake: Disable symbol versioning on non-glibc Linux. + + This better matches what configure.ac does. For example, musl has + only basic symbol versioning support: + + https://wiki.musl-libc.org/functional-differences-from-glibc.html#Symbol_versioning + + configure.ac tries to enable symbol versioning only with glibc + so now CMake does the same. + + (cherry picked from commit 2ad7fad67080e88fa7fc191f9d613d8b7add9c62) + + CMakeLists.txt | 22 ++++++++++++++++++++-- + 1 file changed, 20 insertions(+), 2 deletions(-) + +commit 4b3c84e8eebbcf712fc2396dbb8117cce2d72464 +Author: Lasse Collin +Date: 2024-03-13 20:32:46 +0200 + + CMake: Make symbol versioning configurable. + + (cherry picked from commit 82f0c0d39eb2c026b1d96ee706f70ace868d4ed4) + + CMakeLists.txt | 62 +++++++++++++++++++++++++++++++++++++++------------------- + 1 file changed, 42 insertions(+), 20 deletions(-) + +commit 69d1e20208eb9bd1f4f1c8ee4e49cc82d681a877 +Author: Lasse Collin +Date: 2024-03-13 19:47:36 +0200 + + Build: Style tweaks to configure.ac. + + The AC_MSG_ERROR line is overlong anyway as are a few other + AC_MSG_ERROR lines already. + + (cherry picked from commit 45d33bfc45e4295b8ad743bc2ae61cc724f98076) + + configure.ac | 16 +++++++++------- + 1 file changed, 9 insertions(+), 7 deletions(-) + +commit 051d6b5c85a874c78249693865fd751088f403a2 +Author: Sergey Kosukhin +Date: 2024-03-12 20:03:49 +0100 + + Build: Let the users override the symbol versioning variant. + + There are cases when the users want to decide themselves whether + they want to have the generic (even on GNU/Linux) or the linux + (even if we do not recommend that) symbol versioning variant. + The former might be needed to circumvent compiler issues (i.e. + the compiler does not support all features that are required + for the linux versioning), the latter might help in overriding + the assumptions made in the configure script. + + (cherry picked from commit f56ed6fac6619b56b005878d3b5210e2f0d721c0) + + configure.ac | 91 +++++++++++++++++++++++++++++++++--------------------------- + 1 file changed, 50 insertions(+), 41 deletions(-) + +commit 95dcea4b5df0b180af461e4584d2bcf7725e3aef +Author: Lasse Collin +Date: 2024-04-09 18:22:16 +0300 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit 1107712e372f7593ad729764c0c2644d0e4aa675 +Author: Lasse Collin +Date: 2024-04-08 15:32:58 +0300 + + Remove the backdoor found in 5.6.0 and 5.6.1 (CVE-2024-3094). + + While the backdoor was inactive (and thus harmless) without inserting + a small trigger code into the build system when the source package was + created, it's good to remove this anyway: + + - The executable payloads were embedded as binary blobs in + the test files. This was a blatant violation of the + Debian Free Software Guidelines. + + - On machines that see lots bots poking at the SSH port, the backdoor + noticeably increased CPU load, resulting in degraded user experience + and thus overwhelmingly negative user feedback. + + - The maintainer who added the backdoor has disappeared. + + - Backdoors are bad for security. + + This reverts the following without making any other changes: + + 6e636819 Tests: Update two test files. + a3a29bbd Tests: Test --single-stream can decompress bad-3-corrupt_lzma2.xz. + 0b4ccc91 Tests: Update RISC-V test files. + 8c9b8b20 liblzma: Fix typos in crc32_fast.c and crc64_fast.c. + 82ecc538 liblzma: Fix false Valgrind error report with GCC. + cf44e4b7 Tests: Add a few test files. + 3060e107 Tests: Use smaller dictionary size in RISC-V test files. + e2870db5 Tests: Add two RISC-V Filter test files. + + The RISC-V test files also have real content that tests the filter + but the real content would fit into much smaller files. A generator + program would need to be available as well. + + Thanks to Andres Freund for finding and reporting it and making + it public quickly so others could act without a delay. + See: https://www.openwall.com/lists/oss-security/2024/03/29/4 + + src/liblzma/check/crc32_fast.c | 7 +++++-- + src/liblzma/check/crc64_fast.c | 4 +++- + src/liblzma/check/crc_common.h | 25 ------------------------- + tests/files/README | 27 --------------------------- + tests/files/bad-3-corrupt_lzma2.xz | Bin 512 -> 0 bytes + tests/files/bad-dict_size.lzma | Bin 41 -> 0 bytes + tests/files/good-1-riscv-lzma2-1.xz | Bin 7424 -> 0 bytes + tests/files/good-1-riscv-lzma2-2.xz | Bin 7432 -> 0 bytes + tests/files/good-2cat.xz | Bin 136 -> 0 bytes + tests/files/good-large_compressed.lzma | Bin 35421 -> 0 bytes + tests/files/good-small_compressed.lzma | Bin 258 -> 0 bytes + tests/test_files.sh | 11 ----------- + 12 files changed, 8 insertions(+), 66 deletions(-) + +commit fd1b975b7851e081ed6e5cf63df946cd5cbdbb94 +Author: Jia Tan +Date: 2024-03-09 11:42:50 +0800 + + Bump version and soname for 5.6.1. + + src/liblzma/Makefile.am | 2 +- + src/liblzma/api/lzma/version.h | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +commit a2cda572498e96163fe4e2bde096d5dd7b814668 +Author: Jia Tan +Date: 2024-03-09 11:27:27 +0800 + + Add NEWS for 5.6.1 + + NEWS | 26 ++++++++++++++++++++++++++ + 1 file changed, 26 insertions(+) + +commit 8583c6021124e388bce044a09f00ebabfd6165a7 +Author: Jia Tan +Date: 2024-03-09 10:43:20 +0800 + + Translations: Add missing --riscv option to man page translations. + + po4a/de.po | 702 +++++++++++++++++++++++++++++----------------------------- + po4a/fr.po | 549 ++++++++++++++++++++++----------------------- + po4a/ko.po | 702 +++++++++++++++++++++++++++++----------------------------- + po4a/pt_BR.po | 641 +++++++++++++++++++++++++++-------------------------- + po4a/ro.po | 702 +++++++++++++++++++++++++++++----------------------------- + po4a/uk.po | 702 +++++++++++++++++++++++++++++----------------------------- + 6 files changed, 2024 insertions(+), 1974 deletions(-) + +commit 74b138d2a6529f2c07729d7c77b1725a8e8b16f1 +Author: Jia Tan +Date: 2024-03-09 10:18:29 +0800 + + Tests: Update two test files. + + The original files were generated with random local to my machine. + To better reproduce these files in the future, a constant seed was used + to recreate these files. + + tests/files/bad-3-corrupt_lzma2.xz | Bin 484 -> 512 bytes + tests/files/good-large_compressed.lzma | Bin 35430 -> 35421 bytes + 2 files changed, 0 insertions(+), 0 deletions(-) + +commit 3ec6dfd656bdd40ede2a5f11e6be338988e38be4 +Author: Jia Tan +Date: 2024-03-09 10:08:32 +0800 + + Tests: Test --single-stream can decompress bad-3-corrupt_lzma2.xz. + + The first stream in this file is valid, so this tests that xz properly + stops after decompressing it. + + tests/test_files.sh | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +commit a67dcce6109c2f932a0a86abb0d7a95d3c31fb3e +Author: Jia Tan +Date: 2024-03-09 10:05:32 +0800 + + Tests: Update RISC-V test files. + + This increases code coverage and tests for possible shifting bugs. + + tests/files/good-1-riscv-lzma2-1.xz | Bin 7512 -> 7424 bytes + tests/files/good-1-riscv-lzma2-2.xz | Bin 7512 -> 7432 bytes + 2 files changed, 0 insertions(+), 0 deletions(-) + +commit 058337b0f1da9f166049ecc972fa5c499c1af08c +Author: Jia Tan +Date: 2024-03-09 09:52:32 +0800 + + liblzma: Fix typos in crc32_fast.c and crc64_fast.c. + + src/liblzma/check/crc32_fast.c | 4 ++-- + src/liblzma/check/crc64_fast.c | 3 +-- + 2 files changed, 3 insertions(+), 4 deletions(-) + +commit cd5de9c1bbab3dd41b34b37a89c193fb6ff51ca5 +Author: Jia Tan +Date: 2024-03-09 09:49:55 +0800 + + Tests: Replace HAVE_MICROLZMA usage in CMake and Autotools builds. + + This reverts commit adaacafde6661496ca2814b1e94a3ba5186428cb. + + CMakeLists.txt | 15 ++++++++++----- + configure.ac | 9 ++------- + tests/Makefile.am | 9 ++++++--- + tests/test_microlzma.c | 12 ++++-------- + 4 files changed, 22 insertions(+), 23 deletions(-) + +commit 651a1545c8b6150051a0b44857136efd419afc6f +Author: Jia Tan +Date: 2024-03-09 09:20:57 +0800 + + liblzma: Fix false Valgrind error report with GCC. + + With GCC and a certain combination of flags, Valgrind will falsely + trigger an invalid write. This appears to be due to the omission of + instructions to properly save, set up, and restore the frame pointer. + + The IFUNC resolver is a leaf function since it only calls a function + that is inlined. So sometimes GCC omits the frame pointer instructions + in the resolver unless this optimization is explictly disabled. + + This fixes https://bugzilla.redhat.com/show_bug.cgi?id=2267598. + + src/liblzma/check/crc32_fast.c | 9 +++------ + src/liblzma/check/crc64_fast.c | 7 +++---- + src/liblzma/check/crc_common.h | 25 +++++++++++++++++++++++++ + 3 files changed, 31 insertions(+), 10 deletions(-) + +commit 6e97b299f1b22e366ec42ba5dc5b9d0746e87b84 +Author: Lasse Collin +Date: 2024-03-05 23:21:26 +0200 + + liblzma: Fix a typo in a comment in the RISC-V filter. + + src/liblzma/simple/riscv.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +commit 4e1c97052b5f14f4d6dda99d12cbbd01e66e3712 +Author: Jia Tan +Date: 2024-03-05 00:34:46 +0800 + + liblzma: Use attribute no_profile_instrument_function with ifunc. + + Thanks to Sam James for determining this was the attribute needed to + workaround the GCC bug and for his version of the patch in Gentoo. + + src/liblzma/check/crc32_fast.c | 5 +++++ + src/liblzma/check/crc64_fast.c | 3 +++ + 2 files changed, 8 insertions(+) + +commit ed957d39426695e948b06de0ed952a2fbbe84bd1 +Author: Jia Tan +Date: 2024-03-05 00:27:31 +0800 + + Build: Require attribute no_profile_instrument_function for ifunc usage. + + Using __attribute__((__no_profile_instrument_function__)) on the ifunc + resolver works around a bug in GCC -fprofile-generate: + it adds profiling code even to ifunc resolvers which can make + the ifunc resolver crash at program startup. This attribute + was not introduced until GCC 7 and Clang 13, so ifunc won't + be used with prior versions of these compilers. + + This bug was brought to our attention by: + + https://bugs.gentoo.org/925415 + + And was reported to upstream GCC by: + + https://gcc.gnu.org/bugzilla/show_bug.cgi?id=11411 + + CMakeLists.txt | 7 +++++++ + configure.ac | 7 +++++++ + 2 files changed, 14 insertions(+) + +commit e98ddaf85a1a8fb3cc863637f83356cc9db31e13 +Author: Lasse Collin +Date: 2024-03-04 19:23:18 +0200 + + liblzma: Fix a comment in the RISC-V filter. + + src/liblzma/simple/riscv.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit 319cec142f67fe294e0486402f1569f223d9a83d +Author: Lasse Collin +Date: 2024-02-29 16:35:52 +0200 + + CMake: Warn if translated man pages are missing. + + CMakeLists.txt | 9 +++++++++ + 1 file changed, 9 insertions(+) + +commit 46c3e113d8eeb1a731a60829fa7f5d1b519f7f26 +Author: Lasse Collin +Date: 2024-02-29 16:35:52 +0200 + + CMake: Warn if gettext tools and pre-created .gmo files are missing. + + It's only done with CMake >= 3.20 and if library support + for translation was already found. + + Sort of fixes: https://github.com/tukaani-project/xz/issues/82 + + CMakeLists.txt | 25 +++++++++++++++++++++++++ + 1 file changed, 25 insertions(+) + +commit 86bec8334bb1dcb6d9293a11cdccd895b17f364b +Author: Lasse Collin +Date: 2024-02-28 18:26:25 +0200 + + xz: Add comments. + + src/xz/coder.c | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +commit 5c91b454c24e043ca8f2cc7d2b09bd091dafe655 +Author: Jia Tan +Date: 2024-02-27 23:42:41 +0800 + + xz: Change logging level for thread reduction to highest verbosity only. + + Now that multi threaded encoding is the default, users do not need to + see a warning message everytime the number of threads is reduced. On + some machines, this could happen very often. It is not unreasonable for + users to need to set double verbose mode to see this kind of + information. + + To see these warning messages -vv or --verbose --verbose must be passed + to set xz into the highest possible verbosity mode. + + These warnings had caused automated testing frameworks to fail when they + expected no output to stderr. + + Thanks to Sebastian Andrzej Siewior for reporting this and for the + initial version of the patch. + + src/xz/coder.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit d0e57b2f159f8fd03a9a89f2f593a768d0487898 +Author: Lasse Collin +Date: 2024-02-26 23:06:13 +0200 + + Fix sorting in THANKS. + + THANKS | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +commit d416be55ac02af1144fed455fb18b710147bb490 +Author: Jia Tan +Date: 2024-02-26 23:39:29 +0800 + + Update THANKS. + + THANKS | 1 + + 1 file changed, 1 insertion(+) + +commit f06b33edd2aeabdb11836a2bf0b681768dad29d3 +Author: Chien Wong +Date: 2024-02-25 21:38:13 +0800 + + xz: Add missing RISC-V on the filter list in the man page + + Signed-off-by: Chien Wong + + src/xz/xz.1 | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +commit a100f9111c8cc7f5b5f0e4a5e8af3de7161c7975 +Author: Jia Tan +Date: 2024-02-26 23:02:06 +0800 + + Build: Fix Linux Landlock feature test in Autotools and CMake builds. + + The previous Linux Landlock feature test assumed that having the + linux/landlock.h header file was enough. The new feature tests also + requires that prctl() and the required Landlock system calls are + supported. + + CMakeLists.txt | 25 ++++++++++++++++++++++--- + configure.ac | 27 ++++++++++++++++++++++++++- + src/xz/sandbox.c | 2 +- + src/xz/sandbox.h | 2 +- + src/xzdec/xzdec.c | 8 ++++---- + 5 files changed, 54 insertions(+), 10 deletions(-) + +commit d85efdc8911e6e8964ec920af44c8a6fe0a4c3c2 +Author: Jia Tan +Date: 2024-02-26 20:06:10 +0800 + + Tests: Add test_microlzma to .gitignore and CMakeLists.txt. + + .gitignore | 1 + + CMakeLists.txt | 1 + + 2 files changed, 2 insertions(+) + +commit 42ee4256739779005a7f921946c8a8e483d1f2ed +Author: Jia Tan +Date: 2024-02-26 19:56:25 +0800 + + Tests: Correct license header in test_microlzma.c. + + tests/test_microlzma.c | 5 ++--- + 1 file changed, 2 insertions(+), 3 deletions(-) + +commit c83349dfd9cf9c495005b6d30e2fd34a9cafc18a +Author: Jia Tan +Date: 2024-02-25 21:41:55 +0800 + + Fix typos in NEWS and CMakeLists. + + CMakeLists.txt | 2 +- + NEWS | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + commit 2d7d862e3ffa8cec4fd3fdffcd84e984a17aa429 Author: Jia Tan Date: 2024-02-24 15:55:08 +0800 diff --git a/README b/README index ac812ff150c..9d097deff37 100644 --- a/README +++ b/README @@ -79,8 +79,6 @@ XZ Utils COPYING.GPLv2 GNU General Public License version 2 COPYING.GPLv3 GNU General Public License version 3 COPYING.LGPLv2.1 GNU Lesser General Public License version 2.1 - COPYING.CC-BY-SA-4.0 Creative Commons Attribution-ShareAlike 4.0 - International Public License AUTHORS The main authors of XZ Utils THANKS Incomplete list of people who have helped making @@ -97,9 +95,9 @@ XZ Utils The command-line tools are documented as man pages. In source code releases (and possibly also in some binary packages), the man pages - are also provided in plain text (ASCII only) and PDF formats in the - directory "doc/man" to make the man pages more accessible to those - whose operating system doesn't provide an easy way to view man pages. + are also provided in plain text (ASCII only) format in the directory + "doc/man" to make the man pages more accessible to those whose + operating system doesn't provide an easy way to view man pages. 1.3. Documentation for liblzma @@ -290,21 +288,23 @@ XZ Utils XZ Embedded is a limited implementation written for use in the Linux kernel, but it is also suitable for other embedded use. - https://xz.tukaani.org/xz-embedded/ + https://tukaani.org/xz/embedded.html XZ for Java is a complete implementation written in pure Java. - https://xz.tukaani.org/xz-for-java/ + https://tukaani.org/xz/java.html 6. Contact information ---------------------- - If you have questions, bug reports, patches etc. related to XZ Utils, - the project maintainers Lasse Collin and Jia Tan can be reached via - . + XZ Utils in general: + - Home page: https://tukaani.org/xz/ + - Email to maintainer(s): xz@tukaani.org + - IRC: #tukaani on Libera Chat + - GitHub: https://github.com/tukaani-project/xz - You might find Lasse also from #tukaani on Libera Chat (IRC). - The nick is Larhzu. The channel tends to be pretty quiet, - so just ask your question and someone might wake up. + Lead maintainer: + - Email: Lasse Collin + - IRC: Larhzu on Libera Chat diff --git a/THANKS b/THANKS index 9bb90c77640..7d2d4fe82ad 100644 --- a/THANKS +++ b/THANKS @@ -46,6 +46,7 @@ has been important. :-) In alphabetical order: - Vincent Fazio - Michael Felt - Michael Fox + - Andres Freund - Mike Frysinger - Daniel Richard G. - Tomasz Gajc @@ -76,6 +77,7 @@ has been important. :-) In alphabetical order: - Richard Koch - Anton Kochkov - Ville Koskinen + - Sergey Kosukhin - Marcin Kowalczyk - Jan Kratochvil - Christian Kujau @@ -150,11 +152,10 @@ has been important. :-) In alphabetical order: - Martin Storsjö - Jonathan Stott - Dan Stromberg - - Jia Tan - Vincent Torri + - Alexey Tourbin - Paul Townsend - Mohammed Adnène Trojette - - Alexey Tourbin - Taiki Tsunekawa - Maksym Vatsyk - Loganaden Velvindron @@ -171,6 +172,7 @@ has been important. :-) In alphabetical order: - Charles Wilson - Lars Wirzenius - Pilorz Wojciech + - Chien Wong - Ryan Young - Andreas Zieringer diff --git a/doxygen/Doxyfile b/doxygen/Doxyfile index b96ba5cab41..25428e92516 100644 --- a/doxygen/Doxyfile +++ b/doxygen/Doxyfile @@ -1,2687 +1,39 @@ -# Doxyfile 1.9.6 +# SPDX-License-Identifier: 0BSD -# This file describes the settings to be used by the documentation system -# doxygen (www.doxygen.org) for a project. +# Run "doxygen" in this directory to generate the liblzma API documentation +# into ../doc/api. # -# All text after a double hash (##) is considered a comment and is placed in -# front of the TAG it is preceding. +# Use the "update-doxygen" script for more choices: +# - Include the liblzma version number in the generated documentation. +# - Instead of API docs, docs of XZ Utils internals may be built. +# - Change the output directory for out-of-tree builds. # -# All text after a single hash (#) is considered a comment and will be ignored. -# The format is: -# TAG = value [value, ...] -# For lists, items can also be appended using: -# TAG += value [value, ...] -# Values that contain spaces should be placed between quotes (\" \"). -# -# Note: -# -# Use doxygen to compare the used configuration file with the template -# configuration file: -# doxygen -x [configFile] -# Use doxygen to compare the used configuration file with the template -# configuration file without replacing the environment variables or CMake type -# replacement variables: -# doxygen -x_noenv [configFile] - -#--------------------------------------------------------------------------- -# Project related configuration options -#--------------------------------------------------------------------------- - -# This tag specifies the encoding used for all characters in the configuration -# file that follow. The default is UTF-8 which is also the encoding used for all -# text before the first occurrence of this tag. Doxygen uses libiconv (or the -# iconv built into libc) for the transcoding. See -# https://www.gnu.org/software/libiconv/ for the list of possible encodings. -# The default value is: UTF-8. - -DOXYFILE_ENCODING = UTF-8 - -# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by -# double-quotes, unless you are using Doxywizard) that should identify the -# project for which the documentation is generated. This name is used in the -# title of most generated pages and in a few other places. -# The default value is: My Project. +# These options were tested with Doxygen 1.10.0. PROJECT_NAME = "liblzma (XZ Utils)" - -# The PROJECT_NUMBER tag can be used to enter a project or revision number. This -# could be handy for archiving the generated documentation or if some version -# control system is used. - -PROJECT_NUMBER = - -# Using the PROJECT_BRIEF tag one can provide an optional one line description -# for a project that appears at the top of each page and should give viewer a -# quick idea about the purpose of the project. Keep the description short. - -PROJECT_BRIEF = - -# With the PROJECT_LOGO tag one can specify a logo or an icon that is included -# in the documentation. The maximum height of the logo should not exceed 55 -# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy -# the logo to the output directory. - -PROJECT_LOGO = ../doc/xz-logo.png - -# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path -# into which the generated documentation will be written. If a relative path is -# entered, it will be relative to the location where doxygen was started. If -# left blank the current directory will be used. - OUTPUT_DIRECTORY = ../doc - -# If the CREATE_SUBDIRS tag is set to YES then doxygen will create up to 4096 -# sub-directories (in 2 levels) under the output directory of each output format -# and will distribute the generated files over these directories. Enabling this -# option can be useful when feeding doxygen a huge amount of source files, where -# putting all generated files in the same directory would otherwise causes -# performance problems for the file system. Adapt CREATE_SUBDIRS_LEVEL to -# control the number of sub-directories. -# The default value is: NO. - -CREATE_SUBDIRS = NO - -# Controls the number of sub-directories that will be created when -# CREATE_SUBDIRS tag is set to YES. Level 0 represents 16 directories, and every -# level increment doubles the number of directories, resulting in 4096 -# directories at level 8 which is the default and also the maximum value. The -# sub-directories are organized in 2 levels, the first level always has a fixed -# number of 16 directories. -# Minimum value: 0, maximum value: 8, default value: 8. -# This tag requires that the tag CREATE_SUBDIRS is set to YES. - -CREATE_SUBDIRS_LEVEL = 8 - -# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII -# characters to appear in the names of generated files. If set to NO, non-ASCII -# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode -# U+3044. -# The default value is: NO. - -ALLOW_UNICODE_NAMES = NO - -# The OUTPUT_LANGUAGE tag is used to specify the language in which all -# documentation generated by doxygen is written. Doxygen will use this -# information to generate all constant output in the proper language. -# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Bulgarian, -# Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, Dutch, English -# (United States), Esperanto, Farsi (Persian), Finnish, French, German, Greek, -# Hindi, Hungarian, Indonesian, Italian, Japanese, Japanese-en (Japanese with -# English messages), Korean, Korean-en (Korean with English messages), Latvian, -# Lithuanian, Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, -# Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, -# Swedish, Turkish, Ukrainian and Vietnamese. -# The default value is: English. - -OUTPUT_LANGUAGE = English - -# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member -# descriptions after the members that are listed in the file and class -# documentation (similar to Javadoc). Set to NO to disable this. -# The default value is: YES. - -BRIEF_MEMBER_DESC = YES - -# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief -# description of a member or function before the detailed description -# -# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the -# brief descriptions will be completely suppressed. -# The default value is: YES. - -REPEAT_BRIEF = YES - -# This tag implements a quasi-intelligent brief description abbreviator that is -# used to form the text in various listings. Each string in this list, if found -# as the leading text of the brief description, will be stripped from the text -# and the result, after processing the whole list, is used as the annotated -# text. Otherwise, the brief description is used as-is. If left blank, the -# following values are used ($name is automatically replaced with the name of -# the entity):The $name class, The $name widget, The $name file, is, provides, -# specifies, contains, represents, a, an and the. - -ABBREVIATE_BRIEF = - -# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then -# doxygen will generate a detailed section even if there is only a brief -# description. -# The default value is: NO. - -ALWAYS_DETAILED_SEC = NO - -# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all -# inherited members of a class in the documentation of that class as if those -# members were ordinary class members. Constructors, destructors and assignment -# operators of the base classes will not be shown. -# The default value is: NO. - -INLINE_INHERITED_MEMB = NO - -# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path -# before files name in the file list and in the header files. If set to NO the -# shortest path that makes the file name unique will be used -# The default value is: YES. - -FULL_PATH_NAMES = YES - -# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. -# Stripping is only done if one of the specified strings matches the left-hand -# part of the path. The tag can be used to show relative paths in the file list. -# If left blank the directory from which doxygen is run is used as the path to -# strip. -# -# Note that you can specify absolute paths here, but also relative paths, which -# will be relative from the directory where doxygen is started. -# This tag requires that the tag FULL_PATH_NAMES is set to YES. - STRIP_FROM_PATH = ../src/liblzma/api - -# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the -# path mentioned in the documentation of a class, which tells the reader which -# header file to include in order to use a class. If left blank only the name of -# the header file containing the class definition is used. Otherwise one should -# specify the list of include paths that are normally passed to the compiler -# using the -I flag. - -STRIP_FROM_INC_PATH = - -# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but -# less readable) file names. This can be useful is your file systems doesn't -# support long names like on DOS, Mac, or CD-ROM. -# The default value is: NO. - -SHORT_NAMES = NO - -# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the -# first line (until the first dot) of a Javadoc-style comment as the brief -# description. If set to NO, the Javadoc-style will behave just like regular Qt- -# style comments (thus requiring an explicit @brief command for a brief -# description.) -# The default value is: NO. - -JAVADOC_AUTOBRIEF = NO - -# If the JAVADOC_BANNER tag is set to YES then doxygen will interpret a line -# such as -# /*************** -# as being the beginning of a Javadoc-style comment "banner". If set to NO, the -# Javadoc-style will behave just like regular comments and it will not be -# interpreted by doxygen. -# The default value is: NO. - -JAVADOC_BANNER = NO - -# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first -# line (until the first dot) of a Qt-style comment as the brief description. If -# set to NO, the Qt-style will behave just like regular Qt-style comments (thus -# requiring an explicit \brief command for a brief description.) -# The default value is: NO. - -QT_AUTOBRIEF = NO - -# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a -# multi-line C++ special comment block (i.e. a block of //! or /// comments) as -# a brief description. This used to be the default behavior. The new default is -# to treat a multi-line C++ comment block as a detailed description. Set this -# tag to YES if you prefer the old behavior instead. -# -# Note that setting this tag to YES also means that rational rose comments are -# not recognized any more. -# The default value is: NO. - -MULTILINE_CPP_IS_BRIEF = NO - -# By default Python docstrings are displayed as preformatted text and doxygen's -# special commands cannot be used. By setting PYTHON_DOCSTRING to NO the -# doxygen's special commands can be used and the contents of the docstring -# documentation blocks is shown as doxygen documentation. -# The default value is: YES. - -PYTHON_DOCSTRING = YES - -# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the -# documentation from any documented member that it re-implements. -# The default value is: YES. - -INHERIT_DOCS = YES - -# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new -# page for each member. If set to NO, the documentation of a member will be part -# of the file/class/namespace that contains it. -# The default value is: NO. - -SEPARATE_MEMBER_PAGES = NO - -# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen -# uses this value to replace tabs by spaces in code fragments. -# Minimum value: 1, maximum value: 16, default value: 4. - -TAB_SIZE = 8 - -# This tag can be used to specify a number of aliases that act as commands in -# the documentation. An alias has the form: -# name=value -# For example adding -# "sideeffect=@par Side Effects:^^" -# will allow you to put the command \sideeffect (or @sideeffect) in the -# documentation, which will result in a user-defined paragraph with heading -# "Side Effects:". Note that you cannot put \n's in the value part of an alias -# to insert newlines (in the resulting output). You can put ^^ in the value part -# of an alias to insert a newline as if a physical newline was in the original -# file. When you need a literal { or } or , in the value part of an alias you -# have to escape them by means of a backslash (\), this can lead to conflicts -# with the commands \{ and \} for these it is advised to use the version @{ and -# @} or use a double escape (\\{ and \\}) - -ALIASES = - -# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources -# only. Doxygen will then generate output that is more tailored for C. For -# instance, some of the names that are used will be different. The list of all -# members will be omitted, etc. -# The default value is: NO. - -OPTIMIZE_OUTPUT_FOR_C = YES - -# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or -# Python sources only. Doxygen will then generate output that is more tailored -# for that language. For instance, namespaces will be presented as packages, -# qualified scopes will look different, etc. -# The default value is: NO. - -OPTIMIZE_OUTPUT_JAVA = NO - -# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran -# sources. Doxygen will then generate output that is tailored for Fortran. -# The default value is: NO. - -OPTIMIZE_FOR_FORTRAN = NO - -# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL -# sources. Doxygen will then generate output that is tailored for VHDL. -# The default value is: NO. - -OPTIMIZE_OUTPUT_VHDL = NO - -# Set the OPTIMIZE_OUTPUT_SLICE tag to YES if your project consists of Slice -# sources only. Doxygen will then generate output that is more tailored for that -# language. For instance, namespaces will be presented as modules, types will be -# separated into more groups, etc. -# The default value is: NO. - -OPTIMIZE_OUTPUT_SLICE = NO - -# Doxygen selects the parser to use depending on the extension of the files it -# parses. With this tag you can assign which parser to use for a given -# extension. Doxygen has a built-in mapping, but you can override or extend it -# using this tag. The format is ext=language, where ext is a file extension, and -# language is one of the parsers supported by doxygen: IDL, Java, JavaScript, -# Csharp (C#), C, C++, Lex, D, PHP, md (Markdown), Objective-C, Python, Slice, -# VHDL, Fortran (fixed format Fortran: FortranFixed, free formatted Fortran: -# FortranFree, unknown formatted Fortran: Fortran. In the later case the parser -# tries to guess whether the code is fixed or free formatted code, this is the -# default for Fortran type files). For instance to make doxygen treat .inc files -# as Fortran files (default is PHP), and .f files as C (default is Fortran), -# use: inc=Fortran f=C. -# -# Note: For files without extension you can use no_extension as a placeholder. -# -# Note that for custom extensions you also need to set FILE_PATTERNS otherwise -# the files are not read by doxygen. When specifying no_extension you should add -# * to the FILE_PATTERNS. -# -# Note see also the list of default file extension mappings. - -EXTENSION_MAPPING = - -# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments -# according to the Markdown format, which allows for more readable -# documentation. See https://daringfireball.net/projects/markdown/ for details. -# The output of markdown processing is further processed by doxygen, so you can -# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in -# case of backward compatibilities issues. -# The default value is: YES. - -MARKDOWN_SUPPORT = NO - -# When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up -# to that level are automatically included in the table of contents, even if -# they do not have an id attribute. -# Note: This feature currently applies only to Markdown headings. -# Minimum value: 0, maximum value: 99, default value: 5. -# This tag requires that the tag MARKDOWN_SUPPORT is set to YES. - -TOC_INCLUDE_HEADINGS = 5 - -# When enabled doxygen tries to link words that correspond to documented -# classes, or namespaces to their corresponding documentation. Such a link can -# be prevented in individual cases by putting a % sign in front of the word or -# globally by setting AUTOLINK_SUPPORT to NO. -# The default value is: YES. - -AUTOLINK_SUPPORT = YES - -# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want -# to include (a tag file for) the STL sources as input, then you should set this -# tag to YES in order to let doxygen match functions declarations and -# definitions whose arguments contain STL classes (e.g. func(std::string); -# versus func(std::string) {}). This also make the inheritance and collaboration -# diagrams that involve STL classes more complete and accurate. -# The default value is: NO. - -BUILTIN_STL_SUPPORT = NO - -# If you use Microsoft's C++/CLI language, you should set this option to YES to -# enable parsing support. -# The default value is: NO. - -CPP_CLI_SUPPORT = NO - -# Set the SIP_SUPPORT tag to YES if your project consists of sip (see: -# https://www.riverbankcomputing.com/software/sip/intro) sources only. Doxygen -# will parse them like normal C++ but will assume all classes use public instead -# of private inheritance when no explicit protection keyword is present. -# The default value is: NO. - -SIP_SUPPORT = NO - -# For Microsoft's IDL there are propget and propput attributes to indicate -# getter and setter methods for a property. Setting this option to YES will make -# doxygen to replace the get and set methods by a property in the documentation. -# This will only work if the methods are indeed getting or setting a simple -# type. If this is not the case, or you want to show the methods anyway, you -# should set this option to NO. -# The default value is: YES. - -IDL_PROPERTY_SUPPORT = NO - -# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC -# tag is set to YES then doxygen will reuse the documentation of the first -# member in the group (if any) for the other members of the group. By default -# all members of a group must be documented explicitly. -# The default value is: NO. - -DISTRIBUTE_GROUP_DOC = NO - -# If one adds a struct or class to a group and this option is enabled, then also -# any nested class or struct is added to the same group. By default this option -# is disabled and one has to add nested compounds explicitly via \ingroup. -# The default value is: NO. - -GROUP_NESTED_COMPOUNDS = NO - -# Set the SUBGROUPING tag to YES to allow class member groups of the same type -# (for instance a group of public functions) to be put as a subgroup of that -# type (e.g. under the Public Functions section). Set it to NO to prevent -# subgrouping. Alternatively, this can be done per class using the -# \nosubgrouping command. -# The default value is: YES. - -SUBGROUPING = YES - -# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions -# are shown inside the group in which they are included (e.g. using \ingroup) -# instead of on a separate page (for HTML and Man pages) or section (for LaTeX -# and RTF). -# -# Note that this feature does not work in combination with -# SEPARATE_MEMBER_PAGES. -# The default value is: NO. - -INLINE_GROUPED_CLASSES = NO - -# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions -# with only public data fields or simple typedef fields will be shown inline in -# the documentation of the scope in which they are defined (i.e. file, -# namespace, or group documentation), provided this scope is documented. If set -# to NO, structs, classes, and unions are shown on a separate page (for HTML and -# Man pages) or section (for LaTeX and RTF). -# The default value is: NO. - -INLINE_SIMPLE_STRUCTS = NO - -# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or -# enum is documented as struct, union, or enum with the name of the typedef. So -# typedef struct TypeS {} TypeT, will appear in the documentation as a struct -# with name TypeT. When disabled the typedef will appear as a member of a file, -# namespace, or class. And the struct will be named TypeS. This can typically be -# useful for C code in case the coding convention dictates that all compound -# types are typedef'ed and only the typedef is referenced, never the tag name. -# The default value is: NO. - -TYPEDEF_HIDES_STRUCT = NO - -# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This -# cache is used to resolve symbols given their name and scope. Since this can be -# an expensive process and often the same symbol appears multiple times in the -# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small -# doxygen will become slower. If the cache is too large, memory is wasted. The -# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range -# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 -# symbols. At the end of a run doxygen will report the cache usage and suggest -# the optimal cache size from a speed point of view. -# Minimum value: 0, maximum value: 9, default value: 0. - -LOOKUP_CACHE_SIZE = 0 - -# The NUM_PROC_THREADS specifies the number of threads doxygen is allowed to use -# during processing. When set to 0 doxygen will based this on the number of -# cores available in the system. You can set it explicitly to a value larger -# than 0 to get more control over the balance between CPU load and processing -# speed. At this moment only the input processing can be done using multiple -# threads. Since this is still an experimental feature the default is set to 1, -# which effectively disables parallel processing. Please report any issues you -# encounter. Generating dot graphs in parallel is controlled by the -# DOT_NUM_THREADS setting. -# Minimum value: 0, maximum value: 32, default value: 1. - -NUM_PROC_THREADS = 1 - -#--------------------------------------------------------------------------- -# Build related configuration options -#--------------------------------------------------------------------------- - -# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in -# documentation are documented, even if no documentation was available. Private -# class members and static file members will be hidden unless the -# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. -# Note: This will also disable the warnings about undocumented members that are -# normally produced when WARNINGS is set to YES. -# The default value is: NO. - -EXTRACT_ALL = NO - -# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will -# be included in the documentation. -# The default value is: NO. - -EXTRACT_PRIVATE = NO - -# If the EXTRACT_PRIV_VIRTUAL tag is set to YES, documented private virtual -# methods of a class will be included in the documentation. -# The default value is: NO. - -EXTRACT_PRIV_VIRTUAL = NO - -# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal -# scope will be included in the documentation. -# The default value is: NO. - -EXTRACT_PACKAGE = NO - -# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be -# included in the documentation. -# The default value is: NO. - -EXTRACT_STATIC = NO - -# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined -# locally in source files will be included in the documentation. If set to NO, -# only classes defined in header files are included. Does not have any effect -# for Java sources. -# The default value is: YES. - -EXTRACT_LOCAL_CLASSES = NO - -# This flag is only useful for Objective-C code. If set to YES, local methods, -# which are defined in the implementation section but not in the interface are -# included in the documentation. If set to NO, only methods in the interface are -# included. -# The default value is: NO. - -EXTRACT_LOCAL_METHODS = NO - -# If this flag is set to YES, the members of anonymous namespaces will be -# extracted and appear in the documentation as a namespace called -# 'anonymous_namespace{file}', where file will be replaced with the base name of -# the file that contains the anonymous namespace. By default anonymous namespace -# are hidden. -# The default value is: NO. - -EXTRACT_ANON_NSPACES = NO - -# If this flag is set to YES, the name of an unnamed parameter in a declaration -# will be determined by the corresponding definition. By default unnamed -# parameters remain unnamed in the output. -# The default value is: YES. - -RESOLVE_UNNAMED_PARAMS = YES - -# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all -# undocumented members inside documented classes or files. If set to NO these -# members will be included in the various overviews, but no documentation -# section is generated. This option has no effect if EXTRACT_ALL is enabled. -# The default value is: NO. - -HIDE_UNDOC_MEMBERS = NO - -# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all -# undocumented classes that are normally visible in the class hierarchy. If set -# to NO, these classes will be included in the various overviews. This option -# will also hide undocumented C++ concepts if enabled. This option has no effect -# if EXTRACT_ALL is enabled. -# The default value is: NO. - -HIDE_UNDOC_CLASSES = NO - -# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend -# declarations. If set to NO, these declarations will be included in the -# documentation. -# The default value is: NO. - -HIDE_FRIEND_COMPOUNDS = NO - -# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any -# documentation blocks found inside the body of a function. If set to NO, these -# blocks will be appended to the function's detailed documentation block. -# The default value is: NO. - -HIDE_IN_BODY_DOCS = NO - -# The INTERNAL_DOCS tag determines if documentation that is typed after a -# \internal command is included. If the tag is set to NO then the documentation -# will be excluded. Set it to YES to include the internal documentation. -# The default value is: NO. - -INTERNAL_DOCS = NO - -# With the correct setting of option CASE_SENSE_NAMES doxygen will better be -# able to match the capabilities of the underlying filesystem. In case the -# filesystem is case sensitive (i.e. it supports files in the same directory -# whose names only differ in casing), the option must be set to YES to properly -# deal with such files in case they appear in the input. For filesystems that -# are not case sensitive the option should be set to NO to properly deal with -# output files written for symbols that only differ in casing, such as for two -# classes, one named CLASS and the other named Class, and to also support -# references to files without having to specify the exact matching casing. On -# Windows (including Cygwin) and MacOS, users should typically set this option -# to NO, whereas on Linux or other Unix flavors it should typically be set to -# YES. -# Possible values are: SYSTEM, NO and YES. -# The default value is: SYSTEM. - -CASE_SENSE_NAMES = YES - -# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with -# their full class and namespace scopes in the documentation. If set to YES, the -# scope will be hidden. -# The default value is: NO. - -HIDE_SCOPE_NAMES = NO - -# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will -# append additional text to a page's title, such as Class Reference. If set to -# YES the compound reference will be hidden. -# The default value is: NO. - -HIDE_COMPOUND_REFERENCE= NO - -# If the SHOW_HEADERFILE tag is set to YES then the documentation for a class -# will show which file needs to be included to use the class. -# The default value is: YES. - -SHOW_HEADERFILE = YES - -# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of -# the files that are included by a file in the documentation of that file. -# The default value is: YES. - -SHOW_INCLUDE_FILES = YES - -# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each -# grouped member an include statement to the documentation, telling the reader -# which file to include in order to use the member. -# The default value is: NO. - -SHOW_GROUPED_MEMB_INC = NO - -# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include -# files with double quotes in the documentation rather than with sharp brackets. -# The default value is: NO. - -FORCE_LOCAL_INCLUDES = NO - -# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the -# documentation for inline members. -# The default value is: YES. - -INLINE_INFO = YES - -# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the -# (detailed) documentation of file and class members alphabetically by member -# name. If set to NO, the members will appear in declaration order. -# The default value is: YES. - -SORT_MEMBER_DOCS = NO - -# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief -# descriptions of file, namespace and class members alphabetically by member -# name. If set to NO, the members will appear in declaration order. Note that -# this will also influence the order of the classes in the class list. -# The default value is: NO. - -SORT_BRIEF_DOCS = NO - -# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the -# (brief and detailed) documentation of class members so that constructors and -# destructors are listed first. If set to NO the constructors will appear in the -# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. -# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief -# member documentation. -# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting -# detailed member documentation. -# The default value is: NO. - -SORT_MEMBERS_CTORS_1ST = NO - -# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy -# of group names into alphabetical order. If set to NO the group names will -# appear in their defined order. -# The default value is: NO. - -SORT_GROUP_NAMES = NO - -# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by -# fully-qualified names, including namespaces. If set to NO, the class list will -# be sorted only by class name, not including the namespace part. -# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. -# Note: This option applies only to the class list, not to the alphabetical -# list. -# The default value is: NO. - -SORT_BY_SCOPE_NAME = NO - -# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper -# type resolution of all parameters of a function it will reject a match between -# the prototype and the implementation of a member function even if there is -# only one candidate or it is obvious which candidate to choose by doing a -# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still -# accept a match between prototype and implementation in such cases. -# The default value is: NO. - -STRICT_PROTO_MATCHING = NO - -# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo -# list. This list is created by putting \todo commands in the documentation. -# The default value is: YES. - -GENERATE_TODOLIST = YES - -# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test -# list. This list is created by putting \test commands in the documentation. -# The default value is: YES. - -GENERATE_TESTLIST = YES - -# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug -# list. This list is created by putting \bug commands in the documentation. -# The default value is: YES. - -GENERATE_BUGLIST = YES - -# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO) -# the deprecated list. This list is created by putting \deprecated commands in -# the documentation. -# The default value is: YES. - -GENERATE_DEPRECATEDLIST= YES - -# The ENABLED_SECTIONS tag can be used to enable conditional documentation -# sections, marked by \if ... \endif and \cond -# ... \endcond blocks. - -ENABLED_SECTIONS = - -# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the -# initial value of a variable or macro / define can have for it to appear in the -# documentation. If the initializer consists of more lines than specified here -# it will be hidden. Use a value of 0 to hide initializers completely. The -# appearance of the value of individual variables and macros / defines can be -# controlled using \showinitializer or \hideinitializer command in the -# documentation regardless of this setting. -# Minimum value: 0, maximum value: 10000, default value: 30. - -MAX_INITIALIZER_LINES = 30 - -# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at -# the bottom of the documentation of classes and structs. If set to YES, the -# list will mention the files that were used to generate the documentation. -# The default value is: YES. - -SHOW_USED_FILES = YES - -# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This -# will remove the Files entry from the Quick Index and from the Folder Tree View -# (if specified). -# The default value is: YES. - -SHOW_FILES = YES - -# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces -# page. This will remove the Namespaces entry from the Quick Index and from the -# Folder Tree View (if specified). -# The default value is: YES. - -SHOW_NAMESPACES = NO - -# The FILE_VERSION_FILTER tag can be used to specify a program or script that -# doxygen should invoke to get the current version for each file (typically from -# the version control system). Doxygen will invoke the program by executing (via -# popen()) the command command input-file, where command is the value of the -# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided -# by doxygen. Whatever the program writes to standard output is used as the file -# version. For an example see the documentation. - -FILE_VERSION_FILTER = - -# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed -# by doxygen. The layout file controls the global structure of the generated -# output files in an output format independent way. To create the layout file -# that represents doxygen's defaults, run doxygen with the -l option. You can -# optionally specify a file name after the option, if omitted DoxygenLayout.xml -# will be used as the name of the layout file. See also section "Changing the -# layout of pages" for information. -# -# Note that if you run doxygen from a directory containing a file called -# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE -# tag is left empty. - -LAYOUT_FILE = - -# The CITE_BIB_FILES tag can be used to specify one or more bib files containing -# the reference definitions. This must be a list of .bib files. The .bib -# extension is automatically appended if omitted. This requires the bibtex tool -# to be installed. See also https://en.wikipedia.org/wiki/BibTeX for more info. -# For LaTeX the style of the bibliography can be controlled using -# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the -# search path. See also \cite for info how to create references. - -CITE_BIB_FILES = - -#--------------------------------------------------------------------------- -# Configuration options related to warning and progress messages -#--------------------------------------------------------------------------- - -# The QUIET tag can be used to turn on/off the messages that are generated to -# standard output by doxygen. If QUIET is set to YES this implies that the -# messages are off. -# The default value is: NO. - -QUIET = NO - -# The WARNINGS tag can be used to turn on/off the warning messages that are -# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES -# this implies that the warnings are on. -# -# Tip: Turn warnings on while writing the documentation. -# The default value is: YES. - -WARNINGS = YES - -# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate -# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag -# will automatically be disabled. -# The default value is: YES. - -WARN_IF_UNDOCUMENTED = YES - -# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for -# potential errors in the documentation, such as documenting some parameters in -# a documented function twice, or documenting parameters that don't exist or -# using markup commands wrongly. -# The default value is: YES. - -WARN_IF_DOC_ERROR = YES - -# If WARN_IF_INCOMPLETE_DOC is set to YES, doxygen will warn about incomplete -# function parameter documentation. If set to NO, doxygen will accept that some -# parameters have no documentation without warning. -# The default value is: YES. - -WARN_IF_INCOMPLETE_DOC = YES - -# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that -# are documented, but have no documentation for their parameters or return -# value. If set to NO, doxygen will only warn about wrong parameter -# documentation, but not about the absence of documentation. If EXTRACT_ALL is -# set to YES then this flag will automatically be disabled. See also -# WARN_IF_INCOMPLETE_DOC -# The default value is: NO. - -WARN_NO_PARAMDOC = NO - -# If WARN_IF_UNDOC_ENUM_VAL option is set to YES, doxygen will warn about -# undocumented enumeration values. If set to NO, doxygen will accept -# undocumented enumeration values. If EXTRACT_ALL is set to YES then this flag -# will automatically be disabled. -# The default value is: NO. - -WARN_IF_UNDOC_ENUM_VAL = NO - -# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when -# a warning is encountered. If the WARN_AS_ERROR tag is set to FAIL_ON_WARNINGS -# then doxygen will continue running as if WARN_AS_ERROR tag is set to NO, but -# at the end of the doxygen process doxygen will return with a non-zero status. -# Possible values are: NO, YES and FAIL_ON_WARNINGS. -# The default value is: NO. - -WARN_AS_ERROR = NO - -# The WARN_FORMAT tag determines the format of the warning messages that doxygen -# can produce. The string should contain the $file, $line, and $text tags, which -# will be replaced by the file and line number from which the warning originated -# and the warning text. Optionally the format may contain $version, which will -# be replaced by the version of the file (if it could be obtained via -# FILE_VERSION_FILTER) -# See also: WARN_LINE_FORMAT -# The default value is: $file:$line: $text. - -WARN_FORMAT = "$file:$line: $text" - -# In the $text part of the WARN_FORMAT command it is possible that a reference -# to a more specific place is given. To make it easier to jump to this place -# (outside of doxygen) the user can define a custom "cut" / "paste" string. -# Example: -# WARN_LINE_FORMAT = "'vi $file +$line'" -# See also: WARN_FORMAT -# The default value is: at line $line of file $file. - -WARN_LINE_FORMAT = "at line $line of file $file" - -# The WARN_LOGFILE tag can be used to specify a file to which warning and error -# messages should be written. If left blank the output is written to standard -# error (stderr). In case the file specified cannot be opened for writing the -# warning and error messages are written to standard error. When as file - is -# specified the warning and error messages are written to standard output -# (stdout). - -WARN_LOGFILE = - -#--------------------------------------------------------------------------- -# Configuration options related to the input files -#--------------------------------------------------------------------------- - -# The INPUT tag is used to specify the files and/or directories that contain -# documented source files. You may enter file names like myfile.cpp or -# directories like /usr/src/myproject. Separate the files or directories with -# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING -# Note: If this tag is empty the current directory is searched. - INPUT = ../src/liblzma/api - -# This tag can be used to specify the character encoding of the source files -# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses -# libiconv (or the iconv built into libc) for the transcoding. See the libiconv -# documentation (see: -# https://www.gnu.org/software/libiconv/) for the list of possible encodings. -# See also: INPUT_FILE_ENCODING -# The default value is: UTF-8. - -INPUT_ENCODING = UTF-8 - -# This tag can be used to specify the character encoding of the source files -# that doxygen parses The INPUT_FILE_ENCODING tag can be used to specify -# character encoding on a per file pattern basis. Doxygen will compare the file -# name with each pattern and apply the encoding instead of the default -# INPUT_ENCODING) if there is a match. The character encodings are a list of the -# form: pattern=encoding (like *.php=ISO-8859-1). See cfg_input_encoding -# "INPUT_ENCODING" for further information on supported encodings. - -INPUT_FILE_ENCODING = - -# If the value of the INPUT tag contains directories, you can use the -# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and -# *.h) to filter out the source-files in the directories. -# -# Note that for custom extensions or not directly supported extensions you also -# need to set EXTENSION_MAPPING for the extension otherwise the files are not -# read by doxygen. -# -# Note the list of default checked file patterns might differ from the list of -# default file extension mappings. -# -# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp, -# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, -# *.hh, *.hxx, *.hpp, *.h++, *.l, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, -# *.inc, *.m, *.markdown, *.md, *.mm, *.dox (to be provided as doxygen C -# comment), *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, *.f18, *.f, *.for, *.vhd, -# *.vhdl, *.ucf, *.qsf and *.ice. - -FILE_PATTERNS = *.c \ - *.h - -# The RECURSIVE tag can be used to specify whether or not subdirectories should -# be searched for input files as well. -# The default value is: NO. - +FILE_PATTERNS = *.c *.h RECURSIVE = YES - -# The EXCLUDE tag can be used to specify files and/or directories that should be -# excluded from the INPUT source files. This way you can easily exclude a -# subdirectory from a directory tree whose root is specified with the INPUT tag. -# -# Note that relative paths are relative to the directory from which doxygen is -# run. - -EXCLUDE = - -# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or -# directories that are symbolic links (a Unix file system feature) are excluded -# from the input. -# The default value is: NO. - -EXCLUDE_SYMLINKS = YES - -# If the value of the INPUT tag contains directories, you can use the -# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude -# certain files from those directories. -# -# Note that the wildcards are matched against the file with absolute path, so to -# exclude all test directories for example use the pattern */test/* - -EXCLUDE_PATTERNS = - -# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names -# (namespaces, classes, functions, etc.) that should be excluded from the -# output. The symbol name can be a fully qualified name, a word, or if the -# wildcard * is used, a substring. Examples: ANamespace, AClass, -# ANamespace::AClass, ANamespace::*Test -# -# Note that the wildcards are matched against the file with absolute path, so to -# exclude all test directories use the pattern */test/* - -EXCLUDE_SYMBOLS = - -# The EXAMPLE_PATH tag can be used to specify one or more files or directories -# that contain example code fragments that are included (see the \include -# command). - -EXAMPLE_PATH = - -# If the value of the EXAMPLE_PATH tag contains directories, you can use the -# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and -# *.h) to filter out the source-files in the directories. If left blank all -# files are included. - -EXAMPLE_PATTERNS = - -# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be -# searched for input files to be used with the \include or \dontinclude commands -# irrespective of the value of the RECURSIVE tag. -# The default value is: NO. - -EXAMPLE_RECURSIVE = NO - -# The IMAGE_PATH tag can be used to specify one or more files or directories -# that contain images that are to be included in the documentation (see the -# \image command). - -IMAGE_PATH = - -# The INPUT_FILTER tag can be used to specify a program that doxygen should -# invoke to filter for each input file. Doxygen will invoke the filter program -# by executing (via popen()) the command: -# -# -# -# where is the value of the INPUT_FILTER tag, and is the -# name of an input file. Doxygen will then use the output that the filter -# program writes to standard output. If FILTER_PATTERNS is specified, this tag -# will be ignored. -# -# Note that the filter must not add or remove lines; it is applied before the -# code is scanned, but not when the output code is generated. If lines are added -# or removed, the anchors will not be placed correctly. -# -# Note that doxygen will use the data processed and written to standard output -# for further processing, therefore nothing else, like debug statements or used -# commands (so in case of a Windows batch file always use @echo OFF), should be -# written to standard output. -# -# Note that for custom extensions or not directly supported extensions you also -# need to set EXTENSION_MAPPING for the extension otherwise the files are not -# properly processed by doxygen. - -INPUT_FILTER = - -# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern -# basis. Doxygen will compare the file name with each pattern and apply the -# filter if there is a match. The filters are a list of the form: pattern=filter -# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how -# filters are used. If the FILTER_PATTERNS tag is empty or if none of the -# patterns match the file name, INPUT_FILTER is applied. -# -# Note that for custom extensions or not directly supported extensions you also -# need to set EXTENSION_MAPPING for the extension otherwise the files are not -# properly processed by doxygen. - -FILTER_PATTERNS = - -# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using -# INPUT_FILTER) will also be used to filter the input files that are used for -# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). -# The default value is: NO. - -FILTER_SOURCE_FILES = NO - -# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file -# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and -# it is also possible to disable source filtering for a specific pattern using -# *.ext= (so without naming a filter). -# This tag requires that the tag FILTER_SOURCE_FILES is set to YES. - -FILTER_SOURCE_PATTERNS = - -# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that -# is part of the input, its contents will be placed on the main page -# (index.html). This can be useful if you have a project on for instance GitHub -# and want to reuse the introduction page also for the doxygen output. - -USE_MDFILE_AS_MAINPAGE = - -# The Fortran standard specifies that for fixed formatted Fortran code all -# characters from position 72 are to be considered as comment. A common -# extension is to allow longer lines before the automatic comment starts. The -# setting FORTRAN_COMMENT_AFTER will also make it possible that longer lines can -# be processed before the automatic comment starts. -# Minimum value: 7, maximum value: 10000, default value: 72. - -FORTRAN_COMMENT_AFTER = 72 - -#--------------------------------------------------------------------------- -# Configuration options related to source browsing -#--------------------------------------------------------------------------- - -# If the SOURCE_BROWSER tag is set to YES then a list of source files will be -# generated. Documented entities will be cross-referenced with these sources. -# -# Note: To get rid of all source code in the generated output, make sure that -# also VERBATIM_HEADERS is set to NO. -# The default value is: NO. - -SOURCE_BROWSER = NO - -# Setting the INLINE_SOURCES tag to YES will include the body of functions, -# classes and enums directly into the documentation. -# The default value is: NO. - -INLINE_SOURCES = NO - -# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any -# special comment blocks from generated source code fragments. Normal C, C++ and -# Fortran comments will always remain visible. -# The default value is: YES. - -STRIP_CODE_COMMENTS = YES - -# If the REFERENCED_BY_RELATION tag is set to YES then for each documented -# entity all documented functions referencing it will be listed. -# The default value is: NO. - -REFERENCED_BY_RELATION = YES - -# If the REFERENCES_RELATION tag is set to YES then for each documented function -# all documented entities called/used by that function will be listed. -# The default value is: NO. - -REFERENCES_RELATION = YES - -# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set -# to YES then the hyperlinks from functions in REFERENCES_RELATION and -# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will -# link to the documentation. -# The default value is: YES. - -REFERENCES_LINK_SOURCE = YES - -# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the -# source code will show a tooltip with additional information such as prototype, -# brief description and links to the definition and documentation. Since this -# will make the HTML file larger and loading of large files a bit slower, you -# can opt to disable this feature. -# The default value is: YES. -# This tag requires that the tag SOURCE_BROWSER is set to YES. - +OPTIMIZE_OUTPUT_FOR_C = YES +EXTRACT_STATIC = YES +SORT_MEMBER_DOCS = NO SOURCE_TOOLTIPS = NO - -# If the USE_HTAGS tag is set to YES then the references to source code will -# point to the HTML generated by the htags(1) tool instead of doxygen built-in -# source browser. The htags tool is part of GNU's global source tagging system -# (see https://www.gnu.org/software/global/global.html). You will need version -# 4.8.6 or higher. -# -# To use it do the following: -# - Install the latest version of global -# - Enable SOURCE_BROWSER and USE_HTAGS in the configuration file -# - Make sure the INPUT points to the root of the source tree -# - Run doxygen as normal -# -# Doxygen will invoke htags (and that will in turn invoke gtags), so these -# tools must be available from the command line (i.e. in the search path). -# -# The result: instead of the source browser generated by doxygen, the links to -# source code will now point to the output of htags. -# The default value is: NO. -# This tag requires that the tag SOURCE_BROWSER is set to YES. - -USE_HTAGS = NO - -# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a -# verbatim copy of the header file for each class for which an include is -# specified. Set to NO to disable this. -# See also: Section \class. -# The default value is: YES. - VERBATIM_HEADERS = NO - -#--------------------------------------------------------------------------- -# Configuration options related to the alphabetical class index -#--------------------------------------------------------------------------- - -# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all -# compounds will be generated. Enable this if the project contains a lot of -# classes, structs, unions or interfaces. -# The default value is: YES. - ALPHABETICAL_INDEX = NO - -# The IGNORE_PREFIX tag can be used to specify a prefix (or a list of prefixes) -# that should be ignored while generating the index headers. The IGNORE_PREFIX -# tag works for classes, function and member names. The entity will be placed in -# the alphabetical list under the first letter of the entity name that remains -# after removing the prefix. -# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. - -IGNORE_PREFIX = - -#--------------------------------------------------------------------------- -# Configuration options related to the HTML output -#--------------------------------------------------------------------------- - -# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output -# The default value is: YES. - -GENERATE_HTML = YES - -# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a -# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of -# it. -# The default directory is: html. -# This tag requires that the tag GENERATE_HTML is set to YES. - HTML_OUTPUT = api - -# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each -# generated HTML page (for example: .htm, .php, .asp). -# The default value is: .html. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_FILE_EXTENSION = .html - -# The HTML_HEADER tag can be used to specify a user-defined HTML header file for -# each generated HTML page. If the tag is left blank doxygen will generate a -# standard header. -# -# To get valid HTML the header file that includes any scripts and style sheets -# that doxygen needs, which is dependent on the configuration options used (e.g. -# the setting GENERATE_TREEVIEW). It is highly recommended to start with a -# default header using -# doxygen -w html new_header.html new_footer.html new_stylesheet.css -# YourConfigFile -# and then modify the file new_header.html. See also section "Doxygen usage" -# for information on how to generate the default header that doxygen normally -# uses. -# Note: The header is subject to change so you typically have to regenerate the -# default header when upgrading to a newer version of doxygen. For a description -# of the possible markers and block names see the documentation. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_HEADER = - -# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each -# generated HTML page. If the tag is left blank doxygen will generate a standard -# footer. See HTML_HEADER for more information on how to generate a default -# footer and what special commands can be used inside the footer. See also -# section "Doxygen usage" for information on how to generate the default footer -# that doxygen normally uses. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_FOOTER = footer.html - -# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style -# sheet that is used by each HTML page. It can be used to fine-tune the look of -# the HTML output. If left blank doxygen will generate a default style sheet. -# See also section "Doxygen usage" for information on how to generate the style -# sheet that doxygen normally uses. -# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as -# it is more robust and this tag (HTML_STYLESHEET) will in the future become -# obsolete. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_STYLESHEET = - -# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined -# cascading style sheets that are included after the standard style sheets -# created by doxygen. Using this option one can overrule certain style aspects. -# This is preferred over using HTML_STYLESHEET since it does not replace the -# standard style sheet and is therefore more robust against future updates. -# Doxygen will copy the style sheet files to the output directory. -# Note: The order of the extra style sheet files is of importance (e.g. the last -# style sheet in the list overrules the setting of the previous ones in the -# list). -# Note: Since the styling of scrollbars can currently not be overruled in -# Webkit/Chromium, the styling will be left out of the default doxygen.css if -# one or more extra stylesheets have been specified. So if scrollbar -# customization is desired it has to be added explicitly. For an example see the -# documentation. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_EXTRA_STYLESHEET = - -# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or -# other source files which should be copied to the HTML output directory. Note -# that these files will be copied to the base HTML output directory. Use the -# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these -# files. In the HTML_STYLESHEET file, use the file name only. Also note that the -# files will be copied as-is; there are no commands or markers available. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_EXTRA_FILES = ../COPYING.CC-BY-SA-4.0 - -# The HTML_COLORSTYLE tag can be used to specify if the generated HTML output -# should be rendered with a dark or light theme. -# Possible values are: LIGHT always generate light mode output, DARK always -# generate dark mode output, AUTO_LIGHT automatically set the mode according to -# the user preference, use light mode if no preference is set (the default), -# AUTO_DARK automatically set the mode according to the user preference, use -# dark mode if no preference is set and TOGGLE allow to user to switch between -# light and dark mode via a button. -# The default value is: AUTO_LIGHT. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_COLORSTYLE = AUTO_LIGHT - -# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen -# will adjust the colors in the style sheet and background images according to -# this color. Hue is specified as an angle on a color-wheel, see -# https://en.wikipedia.org/wiki/Hue for more information. For instance the value -# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 -# purple, and 360 is red again. -# Minimum value: 0, maximum value: 359, default value: 220. -# This tag requires that the tag GENERATE_HTML is set to YES. - HTML_COLORSTYLE_HUE = 210 - -# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors -# in the HTML output. For a value of 0 the output will use gray-scales only. A -# value of 255 will produce the most vivid colors. -# Minimum value: 0, maximum value: 255, default value: 100. -# This tag requires that the tag GENERATE_HTML is set to YES. - HTML_COLORSTYLE_SAT = 180 - -# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the -# luminance component of the colors in the HTML output. Values below 100 -# gradually make the output lighter, whereas values above 100 make the output -# darker. The value divided by 100 is the actual gamma applied, so 80 represents -# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not -# change the gamma. -# Minimum value: 40, maximum value: 240, default value: 80. -# This tag requires that the tag GENERATE_HTML is set to YES. - HTML_COLORSTYLE_GAMMA = 110 - -# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML -# page will contain the date and time when the page was generated. Setting this -# to YES can help to show when doxygen was last run and thus if the -# documentation is up to date. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_TIMESTAMP = NO - -# If the HTML_DYNAMIC_MENUS tag is set to YES then the generated HTML -# documentation will contain a main index with vertical navigation menus that -# are dynamically created via JavaScript. If disabled, the navigation index will -# consists of multiple levels of tabs that are statically embedded in every HTML -# page. Disable this option to support browsers that do not have JavaScript, -# like the Qt help browser. -# The default value is: YES. -# This tag requires that the tag GENERATE_HTML is set to YES. - HTML_DYNAMIC_MENUS = NO - -# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML -# documentation will contain sections that can be hidden and shown after the -# page has loaded. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_DYNAMIC_SECTIONS = NO - -# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries -# shown in the various tree structured indices initially; the user can expand -# and collapse entries dynamically later on. Doxygen will expand the tree to -# such a level that at most the specified number of entries are visible (unless -# a fully collapsed tree already exceeds this amount). So setting the number of -# entries 1 will produce a full collapsed tree by default. 0 is a special value -# representing an infinite number of entries and will result in a full expanded -# tree by default. -# Minimum value: 0, maximum value: 9999, default value: 100. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_INDEX_NUM_ENTRIES = 100 - -# If the GENERATE_DOCSET tag is set to YES, additional index files will be -# generated that can be used as input for Apple's Xcode 3 integrated development -# environment (see: -# https://developer.apple.com/xcode/), introduced with OSX 10.5 (Leopard). To -# create a documentation set, doxygen will generate a Makefile in the HTML -# output directory. Running make will produce the docset in that directory and -# running make install will install the docset in -# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at -# startup. See https://developer.apple.com/library/archive/featuredarticles/Doxy -# genXcode/_index.html for more information. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_DOCSET = NO - -# This tag determines the name of the docset feed. A documentation feed provides -# an umbrella under which multiple documentation sets from a single provider -# (such as a company or product suite) can be grouped. -# The default value is: Doxygen generated docs. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_FEEDNAME = "Doxygen generated docs" - -# This tag determines the URL of the docset feed. A documentation feed provides -# an umbrella under which multiple documentation sets from a single provider -# (such as a company or product suite) can be grouped. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_FEEDURL = - -# This tag specifies a string that should uniquely identify the documentation -# set bundle. This should be a reverse domain-name style string, e.g. -# com.mycompany.MyDocSet. Doxygen will append .docset to the name. -# The default value is: org.doxygen.Project. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_BUNDLE_ID = org.doxygen.Project - -# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify -# the documentation publisher. This should be a reverse domain-name style -# string, e.g. com.mycompany.MyDocSet.documentation. -# The default value is: org.doxygen.Publisher. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_PUBLISHER_ID = org.doxygen.Publisher - -# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. -# The default value is: Publisher. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_PUBLISHER_NAME = Publisher - -# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three -# additional HTML index files: index.hhp, index.hhc, and index.hhk. The -# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop -# on Windows. In the beginning of 2021 Microsoft took the original page, with -# a.o. the download links, offline the HTML help workshop was already many years -# in maintenance mode). You can download the HTML help workshop from the web -# archives at Installation executable (see: -# http://web.archive.org/web/20160201063255/http://download.microsoft.com/downlo -# ad/0/A/9/0A939EF6-E31C-430F-A3DF-DFAE7960D564/htmlhelp.exe). -# -# The HTML Help Workshop contains a compiler that can convert all HTML output -# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML -# files are now used as the Windows 98 help format, and will replace the old -# Windows help format (.hlp) on all Windows platforms in the future. Compressed -# HTML files also contain an index, a table of contents, and you can search for -# words in the documentation. The HTML workshop also contains a viewer for -# compressed HTML files. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_HTMLHELP = NO - -# The CHM_FILE tag can be used to specify the file name of the resulting .chm -# file. You can add a path in front of the file if the result should not be -# written to the html output directory. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -CHM_FILE = - -# The HHC_LOCATION tag can be used to specify the location (absolute path -# including file name) of the HTML help compiler (hhc.exe). If non-empty, -# doxygen will try to run the HTML help compiler on the generated index.hhp. -# The file has to be specified with full path. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -HHC_LOCATION = - -# The GENERATE_CHI flag controls if a separate .chi index file is generated -# (YES) or that it should be included in the main .chm file (NO). -# The default value is: NO. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -GENERATE_CHI = NO - -# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc) -# and project file content. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -CHM_INDEX_ENCODING = - -# The BINARY_TOC flag controls whether a binary table of contents is generated -# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it -# enables the Previous and Next buttons. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -BINARY_TOC = NO - -# The TOC_EXPAND flag can be set to YES to add extra items for group members to -# the table of contents of the HTML help documentation and to the tree view. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -TOC_EXPAND = NO - -# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and -# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that -# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help -# (.qch) of the generated HTML documentation. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_QHP = NO - -# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify -# the file name of the resulting .qch file. The path specified is relative to -# the HTML output folder. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QCH_FILE = - -# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help -# Project output. For more information please see Qt Help Project / Namespace -# (see: -# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#namespace). -# The default value is: org.doxygen.Project. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_NAMESPACE = org.doxygen.Project - -# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt -# Help Project output. For more information please see Qt Help Project / Virtual -# Folders (see: -# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#virtual-folders). -# The default value is: doc. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_VIRTUAL_FOLDER = doc - -# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom -# filter to add. For more information please see Qt Help Project / Custom -# Filters (see: -# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters). -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_CUST_FILTER_NAME = - -# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the -# custom filter to add. For more information please see Qt Help Project / Custom -# Filters (see: -# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters). -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_CUST_FILTER_ATTRS = - -# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this -# project's filter section matches. Qt Help Project / Filter Attributes (see: -# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#filter-attributes). -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_SECT_FILTER_ATTRS = - -# The QHG_LOCATION tag can be used to specify the location (absolute path -# including file name) of Qt's qhelpgenerator. If non-empty doxygen will try to -# run qhelpgenerator on the generated .qhp file. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHG_LOCATION = - -# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be -# generated, together with the HTML files, they form an Eclipse help plugin. To -# install this plugin and make it available under the help contents menu in -# Eclipse, the contents of the directory containing the HTML and XML files needs -# to be copied into the plugins directory of eclipse. The name of the directory -# within the plugins directory should be the same as the ECLIPSE_DOC_ID value. -# After copying Eclipse needs to be restarted before the help appears. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_ECLIPSEHELP = NO - -# A unique identifier for the Eclipse help plugin. When installing the plugin -# the directory name containing the HTML and XML files should also have this -# name. Each documentation set should have its own identifier. -# The default value is: org.doxygen.Project. -# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES. - -ECLIPSE_DOC_ID = org.doxygen.Project - -# If you want full control over the layout of the generated HTML pages it might -# be necessary to disable the index and replace it with your own. The -# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top -# of each HTML page. A value of NO enables the index and the value YES disables -# it. Since the tabs in the index contain the same information as the navigation -# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -DISABLE_INDEX = NO - -# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index -# structure should be generated to display hierarchical information. If the tag -# value is set to YES, a side panel will be generated containing a tree-like -# index structure (just like the one that is generated for HTML Help). For this -# to work a browser that supports JavaScript, DHTML, CSS and frames is required -# (i.e. any modern browser). Windows users are probably better off using the -# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can -# further fine tune the look of the index (see "Fine-tuning the output"). As an -# example, the default style sheet generated by doxygen has an example that -# shows how to put an image at the root of the tree instead of the PROJECT_NAME. -# Since the tree basically has the same information as the tab index, you could -# consider setting DISABLE_INDEX to YES when enabling this option. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_TREEVIEW = NO - -# When both GENERATE_TREEVIEW and DISABLE_INDEX are set to YES, then the -# FULL_SIDEBAR option determines if the side bar is limited to only the treeview -# area (value NO) or if it should extend to the full height of the window (value -# YES). Setting this to YES gives a layout similar to -# https://docs.readthedocs.io with more room for contents, but less room for the -# project logo, title, and description. If either GENERATE_TREEVIEW or -# DISABLE_INDEX is set to NO, this option has no effect. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -FULL_SIDEBAR = NO - -# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that -# doxygen will group on one line in the generated HTML documentation. -# -# Note that a value of 0 will completely suppress the enum values from appearing -# in the overview section. -# Minimum value: 0, maximum value: 20, default value: 4. -# This tag requires that the tag GENERATE_HTML is set to YES. - -ENUM_VALUES_PER_LINE = 4 - -# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used -# to set the initial width (in pixels) of the frame in which the tree is shown. -# Minimum value: 0, maximum value: 1500, default value: 250. -# This tag requires that the tag GENERATE_HTML is set to YES. - -TREEVIEW_WIDTH = 250 - -# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to -# external symbols imported via tag files in a separate window. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -EXT_LINKS_IN_WINDOW = NO - -# If the OBFUSCATE_EMAILS tag is set to YES, doxygen will obfuscate email -# addresses. -# The default value is: YES. -# This tag requires that the tag GENERATE_HTML is set to YES. - -OBFUSCATE_EMAILS = YES - -# If the HTML_FORMULA_FORMAT option is set to svg, doxygen will use the pdf2svg -# tool (see https://github.com/dawbarton/pdf2svg) or inkscape (see -# https://inkscape.org) to generate formulas as SVG images instead of PNGs for -# the HTML output. These images will generally look nicer at scaled resolutions. -# Possible values are: png (the default) and svg (looks nicer but requires the -# pdf2svg or inkscape tool). -# The default value is: png. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_FORMULA_FORMAT = png - -# Use this tag to change the font size of LaTeX formulas included as images in -# the HTML documentation. When you change the font size after a successful -# doxygen run you need to manually remove any form_*.png images from the HTML -# output directory to force them to be regenerated. -# Minimum value: 8, maximum value: 50, default value: 10. -# This tag requires that the tag GENERATE_HTML is set to YES. - -FORMULA_FONTSIZE = 10 - -# The FORMULA_MACROFILE can contain LaTeX \newcommand and \renewcommand commands -# to create new LaTeX commands to be used in formulas as building blocks. See -# the section "Including formulas" for details. - -FORMULA_MACROFILE = - -# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see -# https://www.mathjax.org) which uses client side JavaScript for the rendering -# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX -# installed or if you want to formulas look prettier in the HTML output. When -# enabled you may also need to install MathJax separately and configure the path -# to it using the MATHJAX_RELPATH option. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -USE_MATHJAX = NO - -# With MATHJAX_VERSION it is possible to specify the MathJax version to be used. -# Note that the different versions of MathJax have different requirements with -# regards to the different settings, so it is possible that also other MathJax -# settings have to be changed when switching between the different MathJax -# versions. -# Possible values are: MathJax_2 and MathJax_3. -# The default value is: MathJax_2. -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_VERSION = MathJax_2 - -# When MathJax is enabled you can set the default output format to be used for -# the MathJax output. For more details about the output format see MathJax -# version 2 (see: -# http://docs.mathjax.org/en/v2.7-latest/output.html) and MathJax version 3 -# (see: -# http://docs.mathjax.org/en/latest/web/components/output.html). -# Possible values are: HTML-CSS (which is slower, but has the best -# compatibility. This is the name for Mathjax version 2, for MathJax version 3 -# this will be translated into chtml), NativeMML (i.e. MathML. Only supported -# for NathJax 2. For MathJax version 3 chtml will be used instead.), chtml (This -# is the name for Mathjax version 3, for MathJax version 2 this will be -# translated into HTML-CSS) and SVG. -# The default value is: HTML-CSS. -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_FORMAT = HTML-CSS - -# When MathJax is enabled you need to specify the location relative to the HTML -# output directory using the MATHJAX_RELPATH option. The destination directory -# should contain the MathJax.js script. For instance, if the mathjax directory -# is located at the same level as the HTML output directory, then -# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax -# Content Delivery Network so you can quickly see the result without installing -# MathJax. However, it is strongly recommended to install a local copy of -# MathJax from https://www.mathjax.org before deployment. The default value is: -# - in case of MathJax version 2: https://cdn.jsdelivr.net/npm/mathjax@2 -# - in case of MathJax version 3: https://cdn.jsdelivr.net/npm/mathjax@3 -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_RELPATH = https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/ - -# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax -# extension names that should be enabled during MathJax rendering. For example -# for MathJax version 2 (see -# https://docs.mathjax.org/en/v2.7-latest/tex.html#tex-and-latex-extensions): -# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols -# For example for MathJax version 3 (see -# http://docs.mathjax.org/en/latest/input/tex/extensions/index.html): -# MATHJAX_EXTENSIONS = ams -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_EXTENSIONS = - -# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces -# of code that will be used on startup of the MathJax code. See the MathJax site -# (see: -# http://docs.mathjax.org/en/v2.7-latest/output.html) for more details. For an -# example see the documentation. -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_CODEFILE = - -# When the SEARCHENGINE tag is enabled doxygen will generate a search box for -# the HTML output. The underlying search engine uses javascript and DHTML and -# should work on any modern browser. Note that when using HTML help -# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) -# there is already a search function so this one should typically be disabled. -# For large projects the javascript based search engine can be slow, then -# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to -# search using the keyboard; to jump to the search box use + S -# (what the is depends on the OS and browser, but it is typically -# , /