diff options
Diffstat (limited to 'meta-openembedded/meta-oe')
453 files changed, 12430 insertions, 17512 deletions
diff --git a/meta-openembedded/meta-oe/README b/meta-openembedded/meta-oe/README index de351f209c..0e9f8423bd 100644 --- a/meta-openembedded/meta-oe/README +++ b/meta-openembedded/meta-oe/README @@ -4,13 +4,13 @@ meta-oe This layer depends on: URI: git://github.com/openembedded/openembedded-core.git -branch: thud +branch: master revision: HEAD -Send pull requests to openembedded-devel@lists.openembedded.org with '[meta-oe][thud]' in the subject' +Send pull requests to openembedded-devel@lists.openembedded.org with '[meta-oe]' in the subject' When sending single patches, please use something like: -'git send-email -M -1 --to openembedded-devel@lists.openembedded.org --subject-prefix=meta-oe[thud][PATCH' +'git send-email -M -1 --to openembedded-devel@lists.openembedded.org --subject-prefix=meta-oe][PATCH' You are encouraged to fork the mirror on GitHub https://github.com/openembedded/openembedded-core to share your patches, this is preferred for patch sets consisting of more than one patch. @@ -19,4 +19,4 @@ Other services like gitorious, repo.or.cz or self-hosted setups are of course ac 'git fetch <remote>' works the same on all of them. We recommend GitHub because it is free, easy to use, has been proven to be reliable and has a really good web GUI. -Thud maintainer: Armin Kuster <akuster808@gmail.com> +layer maintainer: Khem Raj <raj.khem@gmail.com> diff --git a/meta-openembedded/meta-oe/classes/breakpad.bbclass b/meta-openembedded/meta-oe/classes/breakpad.bbclass index 36f11ff480..cebe559a7f 100644 --- a/meta-openembedded/meta-oe/classes/breakpad.bbclass +++ b/meta-openembedded/meta-oe/classes/breakpad.bbclass @@ -25,6 +25,9 @@ PACKAGE_PREPROCESS_FUNCS += "breakpad_package_preprocess" breakpad_package_preprocess () { mkdir -p ${PKGD}/usr/share/breakpad-syms find ${D} -name ${BREAKPAD_BIN} -exec sh -c "dump_syms {} > ${PKGD}/usr/share/breakpad-syms/${BREAKPAD_BIN}.sym" \; + HASH=$(head -n1 ${PKGD}/usr/share/breakpad-syms/${BREAKPAD_BIN}.sym | rev | cut -d ' ' -f2 | rev) + mkdir -p ${PKGD}/usr/share/breakpad-syms/${BREAKPAD_BIN}/${HASH} + mv ${PKGD}/usr/share/breakpad-syms/${BREAKPAD_BIN}.sym ${PKGD}/usr/share/breakpad-syms/${BREAKPAD_BIN}/${HASH} } PACKAGES =+ "${PN}-breakpad" diff --git a/meta-openembedded/meta-oe/classes/scancode.bbclass b/meta-openembedded/meta-oe/classes/scancode.bbclass index 701660f578..e0f0dbca40 100644 --- a/meta-openembedded/meta-oe/classes/scancode.bbclass +++ b/meta-openembedded/meta-oe/classes/scancode.bbclass @@ -3,18 +3,18 @@ # For more informaiton https://github.com/nexB/scancode-toolkit SCANCODE_FORMAT ?= "html-app" -EXT = "${@'html' if d.getVar('SCANCODE_FORMAT', True) == 'html-app' else 'json'}" +EXT = "${@'html' if d.getVar('SCANCODE_FORMAT') == 'html-app' else 'json'}" SCANCODE_TOOLKIT = "${@get_scancode_toolkit(d)}" SCANCODE_TAG = "v2.2.1" SCANCODE_GIT_LOCATION ?= "https://github.com/nexB/scancode-toolkit.git" SCANCODE_SRC_LOCATION ?= "${DL_DIR}/scancode" def get_scancode_toolkit(d): - lf = bb.utils.lockfile(d.getVar('SCANCODE_SRC_LOCATION', True) + ".lock") - if (not os.path.exists(d.getVar('SCANCODE_SRC_LOCATION', True))): - os.system("git clone %s %s -b %s" % (d.getVar('SCANCODE_GIT_LOCATION', True), d.getVar('SCANCODE_SRC_LOCATION', True), d.getVar('SCANCODE_TAG', True))) + lf = bb.utils.lockfile(d.getVar('SCANCODE_SRC_LOCATION') + ".lock") + if (not os.path.exists(d.getVar('SCANCODE_SRC_LOCATION'))): + os.system("git clone %s %s -b %s" % (d.getVar('SCANCODE_GIT_LOCATION'), d.getVar('SCANCODE_SRC_LOCATION'), d.getVar('SCANCODE_TAG'))) bb.utils.unlockfile(lf) - return (d.getVar('SCANCODE_SRC_LOCATION', True)) + return (d.getVar('SCANCODE_SRC_LOCATION')) do_scancode() { mkdir -p ${DEPLOY_DIR_IMAGE}/scancode diff --git a/meta-openembedded/meta-oe/conf/layer.conf b/meta-openembedded/meta-oe/conf/layer.conf index 23c10ce339..31f2f17fc8 100644 --- a/meta-openembedded/meta-oe/conf/layer.conf +++ b/meta-openembedded/meta-oe/conf/layer.conf @@ -29,7 +29,7 @@ LAYERVERSION_openembedded-layer = "1" LAYERDEPENDS_openembedded-layer = "core" -LAYERSERIES_COMPAT_openembedded-layer = "thud" +LAYERSERIES_COMPAT_openembedded-layer = "thud warrior" LICENSE_PATH += "${LAYERDIR}/licenses" diff --git a/meta-openembedded/meta-oe/licenses/HDF5 b/meta-openembedded/meta-oe/licenses/HDF5 new file mode 100644 index 0000000000..10481dd107 --- /dev/null +++ b/meta-openembedded/meta-oe/licenses/HDF5 @@ -0,0 +1,92 @@ +Copyright Notice and License Terms for +HDF5 (Hierarchical Data Format 5) Software Library and Utilities +----------------------------------------------------------------------------- + +HDF5 (Hierarchical Data Format 5) Software Library and Utilities +Copyright (c) 2006-2018, The HDF Group. + +NCSA HDF5 (Hierarchical Data Format 5) Software Library and Utilities +Copyright (c) 1998-2006, The Board of Trustees of the University of Illinois. + +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted for any purpose (including commercial purposes) +provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, + this list of conditions, and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions, and the following disclaimer in the documentation + and/or materials provided with the distribution. + +3. Neither the name of The HDF Group, the name of the University, nor the + name of any Contributor may be used to endorse or promote products derived + from this software without specific prior written permission from + The HDF Group, the University, or the Contributor, respectively. + +DISCLAIMER: +THIS SOFTWARE IS PROVIDED BY THE HDF GROUP AND THE CONTRIBUTORS +"AS IS" WITH NO WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED. IN NO EVENT SHALL THE HDF GROUP OR THE CONTRIBUTORS BE LIABLE FOR ANY DAMAGES SUFFERED BY THE USERS ARISING OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +You are under no obligation whatsoever to provide any bug fixes, patches, or upgrades to the features, functionality or performance of the source code ("Enhancements") to anyone; however, if you choose to make your Enhancements available either publicly, or directly to The HDF Group, without imposing a separate written license agreement for such Enhancements, then you hereby grant the following license: a non-exclusive, royalty-free perpetual license to install, use, modify, prepare derivative works, incorporate into other computer software, distribute, and sublicense such enhancements or derivative works thereof, in binary and source code form. + +----------------------------------------------------------------------------- +----------------------------------------------------------------------------- + +Limited portions of HDF5 were developed by Lawrence Berkeley National +Laboratory (LBNL). LBNL's Copyright Notice and Licensing Terms can be +found here: COPYING_LBNL_HDF5 file in this directory or at +http://support.hdfgroup.org/ftp/HDF5/releases/COPYING_LBNL_HDF5. + +----------------------------------------------------------------------------- +----------------------------------------------------------------------------- + +Contributors: National Center for Supercomputing Applications (NCSA) at +the University of Illinois, Fortner Software, Unidata Program Center (netCDF), The Independent JPEG Group (JPEG), Jean-loup Gailly and Mark Adler (gzip), and Digital Equipment Corporation (DEC). + +----------------------------------------------------------------------------- + +Portions of HDF5 were developed with support from the Lawrence Berkeley +National Laboratory (LBNL) and the United States Department of Energy +under Prime Contract No. DE-AC02-05CH11231. + +----------------------------------------------------------------------------- + +Portions of HDF5 were developed with support from the University of +California, Lawrence Livermore National Laboratory (UC LLNL). +The following statement applies to those portions of the product and must +be retained in any redistribution of source code, binaries, documentation, +and/or accompanying materials: + + This work was partially produced at the University of California, + Lawrence Livermore National Laboratory (UC LLNL) under contract + no. W-7405-ENG-48 (Contract 48) between the U.S. Department of Energy + (DOE) and The Regents of the University of California (University) + for the operation of UC LLNL. + + DISCLAIMER: + This work was prepared as an account of work sponsored by an agency of + the United States Government. Neither the United States Government nor + the University of California nor any of their employees, makes any + warranty, express or implied, or assumes any liability or responsibility + for the accuracy, completeness, or usefulness of any information, + apparatus, product, or process disclosed, or represents that its use + would not infringe privately- owned rights. Reference herein to any + specific commercial products, process, or service by trade name, + trademark, manufacturer, or otherwise, does not necessarily constitute + or imply its endorsement, recommendation, or favoring by the United + States Government or the University of California. The views and + opinions of authors expressed herein do not necessarily state or reflect + those of the United States Government or the University of California, + and shall not be used for advertising or product endorsement purposes. + +----------------------------------------------------------------------------- + +HDF5 is available with the SZIP compression library but SZIP is not part +of HDF5 and has separate copyright and license terms. See SZIP Compression +in HDF Products (www.hdfgroup.org/doc_resource/SZIP/) for further details. + +----------------------------------------------------------------------------- + diff --git a/meta-openembedded/meta-oe/licenses/SSPL-1 b/meta-openembedded/meta-oe/licenses/SSPL-1 new file mode 100644 index 0000000000..4e1383df1e --- /dev/null +++ b/meta-openembedded/meta-oe/licenses/SSPL-1 @@ -0,0 +1,557 @@ + Server Side Public License + VERSION 1, OCTOBER 16, 2018 + + Copyright © 2018 MongoDB, Inc. + + Everyone is permitted to copy and distribute verbatim copies of this + license document, but changing it is not allowed. + + TERMS AND CONDITIONS + + 0. Definitions. + + “This License” refers to Server Side Public License. + + “Copyright” also means copyright-like laws that apply to other kinds of + works, such as semiconductor masks. + + “The Program” refers to any copyrightable work licensed under this + License. Each licensee is addressed as “you”. “Licensees” and + “recipients” may be individuals or organizations. + + To “modify” a work means to copy from or adapt all or part of the work in + a fashion requiring copyright permission, other than the making of an + exact copy. The resulting work is called a “modified version” of the + earlier work or a work “based on” the earlier work. + + A “covered work” means either the unmodified Program or a work based on + the Program. + + To “propagate” a work means to do anything with it that, without + permission, would make you directly or secondarily liable for + infringement under applicable copyright law, except executing it on a + computer or modifying a private copy. Propagation includes copying, + distribution (with or without modification), making available to the + public, and in some countries other activities as well. + + To “convey” a work means any kind of propagation that enables other + parties to make or receive copies. Mere interaction with a user through a + computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays “Appropriate Legal Notices” to the + extent that it includes a convenient and prominently visible feature that + (1) displays an appropriate copyright notice, and (2) tells the user that + there is no warranty for the work (except to the extent that warranties + are provided), that licensees may convey the work under this License, and + how to view a copy of this License. If the interface presents a list of + user commands or options, such as a menu, a prominent item in the list + meets this criterion. + + 1. Source Code. + + The “source code” for a work means the preferred form of the work for + making modifications to it. “Object code” means any non-source form of a + work. + + A “Standard Interface” means an interface that either is an official + standard defined by a recognized standards body, or, in the case of + interfaces specified for a particular programming language, one that is + widely used among developers working in that language. The “System + Libraries” of an executable work include anything, other than the work as + a whole, that (a) is included in the normal form of packaging a Major + Component, but which is not part of that Major Component, and (b) serves + only to enable use of the work with that Major Component, or to implement + a Standard Interface for which an implementation is available to the + public in source code form. A “Major Component”, in this context, means a + major essential component (kernel, window system, and so on) of the + specific operating system (if any) on which the executable work runs, or + a compiler used to produce the work, or an object code interpreter used + to run it. + + The “Corresponding Source” for a work in object code form means all the + source code needed to generate, install, and (for an executable work) run + the object code and to modify the work, including scripts to control + those activities. However, it does not include the work's System + Libraries, or general-purpose tools or generally available free programs + which are used unmodified in performing those activities but which are + not part of the work. For example, Corresponding Source includes + interface definition files associated with source files for the work, and + the source code for shared libraries and dynamically linked subprograms + that the work is specifically designed to require, such as by intimate + data communication or control flow between those subprograms and other + parts of the work. + + The Corresponding Source need not include anything that users can + regenerate automatically from other parts of the Corresponding Source. + + The Corresponding Source for a work in source code form is that same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of + copyright on the Program, and are irrevocable provided the stated + conditions are met. This License explicitly affirms your unlimited + permission to run the unmodified Program, subject to section 13. The + output from running a covered work is covered by this License only if the + output, given its content, constitutes a covered work. This License + acknowledges your rights of fair use or other equivalent, as provided by + copyright law. Subject to section 13, you may make, run and propagate + covered works that you do not convey, without conditions so long as your + license otherwise remains in force. You may convey covered works to + others for the sole purpose of having them make modifications exclusively + for you, or provide you with facilities for running those works, provided + that you comply with the terms of this License in conveying all + material for which you do not control copyright. Those thus making or + running the covered works for you must do so exclusively on your + behalf, under your direction and control, on terms that prohibit them + from making any copies of your copyrighted material outside their + relationship with you. + + Conveying under any other circumstances is permitted solely under the + conditions stated below. Sublicensing is not allowed; section 10 makes it + unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological + measure under any applicable law fulfilling obligations under article 11 + of the WIPO copyright treaty adopted on 20 December 1996, or similar laws + prohibiting or restricting circumvention of such measures. + + When you convey a covered work, you waive any legal power to forbid + circumvention of technological measures to the extent such circumvention is + effected by exercising rights under this License with respect to the + covered work, and you disclaim any intention to limit operation or + modification of the work as a means of enforcing, against the work's users, + your or third parties' legal rights to forbid circumvention of + technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you + receive it, in any medium, provided that you conspicuously and + appropriately publish on each copy an appropriate copyright notice; keep + intact all notices stating that this License and any non-permissive terms + added in accord with section 7 apply to the code; keep intact all notices + of the absence of any warranty; and give all recipients a copy of this + License along with the Program. You may charge any price or no price for + each copy that you convey, and you may offer support or warranty + protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to + produce it from the Program, in the form of source code under the terms + of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified it, + and giving a relevant date. + + b) The work must carry prominent notices stating that it is released + under this License and any conditions added under section 7. This + requirement modifies the requirement in section 4 to “keep intact all + notices”. + + c) You must license the entire work, as a whole, under this License to + anyone who comes into possession of a copy. This License will therefore + apply, along with any applicable section 7 additional terms, to the + whole of the work, and all its parts, regardless of how they are + packaged. This License gives no permission to license the work in any + other way, but it does not invalidate such permission if you have + separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your work + need not make them do so. + + A compilation of a covered work with other separate and independent + works, which are not by their nature extensions of the covered work, and + which are not combined with it such as to form a larger program, in or on + a volume of a storage or distribution medium, is called an “aggregate” if + the compilation and its resulting copyright are not used to limit the + access or legal rights of the compilation's users beyond what the + individual works permit. Inclusion of a covered work in an aggregate does + not cause this License to apply to the other parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms of + sections 4 and 5, provided that you also convey the machine-readable + Corresponding Source under the terms of this License, in one of these + ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium customarily + used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a written + offer, valid for at least three years and valid for as long as you + offer spare parts or customer support for that product model, to give + anyone who possesses the object code either (1) a copy of the + Corresponding Source for all the software in the product that is + covered by this License, on a durable physical medium customarily used + for software interchange, for a price no more than your reasonable cost + of physically performing this conveying of source, or (2) access to + copy the Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This alternative is + allowed only occasionally and noncommercially, and only if you received + the object code with such an offer, in accord with subsection 6b. + + d) Convey the object code by offering access from a designated place + (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to copy + the object code is a network server, the Corresponding Source may be on + a different server (operated by you or a third party) that supports + equivalent copying facilities, provided you maintain clear directions + next to the object code saying where to find the Corresponding Source. + Regardless of what server hosts the Corresponding Source, you remain + obligated to ensure that it is available for as long as needed to + satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided you + inform other peers where the object code and Corresponding Source of + the work are being offered to the general public at no charge under + subsection 6d. + + A separable portion of the object code, whose source code is excluded + from the Corresponding Source as a System Library, need not be included + in conveying the object code work. + + A “User Product” is either (1) a “consumer product”, which means any + tangible personal property which is normally used for personal, family, + or household purposes, or (2) anything designed or sold for incorporation + into a dwelling. In determining whether a product is a consumer product, + doubtful cases shall be resolved in favor of coverage. For a particular + product received by a particular user, “normally used” refers to a + typical or common use of that class of product, regardless of the status + of the particular user or of the way in which the particular user + actually uses, or expects or is expected to use, the product. A product + is a consumer product regardless of whether the product has substantial + commercial, industrial or non-consumer uses, unless such uses represent + the only significant mode of use of the product. + + “Installation Information” for a User Product means any methods, + procedures, authorization keys, or other information required to install + and execute modified versions of a covered work in that User Product from + a modified version of its Corresponding Source. The information must + suffice to ensure that the continued functioning of the modified object + code is in no case prevented or interfered with solely because + modification has been made. + + If you convey an object code work under this section in, or with, or + specifically for use in, a User Product, and the conveying occurs as part + of a transaction in which the right of possession and use of the User + Product is transferred to the recipient in perpetuity or for a fixed term + (regardless of how the transaction is characterized), the Corresponding + Source conveyed under this section must be accompanied by the + Installation Information. But this requirement does not apply if neither + you nor any third party retains the ability to install modified object + code on the User Product (for example, the work has been installed in + ROM). + + The requirement to provide Installation Information does not include a + requirement to continue to provide support service, warranty, or updates + for a work that has been modified or installed by the recipient, or for + the User Product in which it has been modified or installed. Access + to a network may be denied when the modification itself materially + and adversely affects the operation of the network or violates the + rules and protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, in + accord with this section must be in a format that is publicly documented + (and with an implementation available to the public in source code form), + and must require no special password or key for unpacking, reading or + copying. + + 7. Additional Terms. + + “Additional permissions” are terms that supplement the terms of this + License by making exceptions from one or more of its conditions. + Additional permissions that are applicable to the entire Program shall be + treated as though they were included in this License, to the extent that + they are valid under applicable law. If additional permissions apply only + to part of the Program, that part may be used separately under those + permissions, but the entire Program remains governed by this License + without regard to the additional permissions. When you convey a copy of + a covered work, you may at your option remove any additional permissions + from that copy, or from any part of it. (Additional permissions may be + written to require their own removal in certain cases when you modify the + work.) You may place additional permissions on material, added by you to + a covered work, for which you have or can give appropriate copyright + permission. + + Notwithstanding any other provision of this License, for material you add + to a covered work, you may (if authorized by the copyright holders of + that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some trade + names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that material + by anyone who conveys the material (or modified versions of it) with + contractual assumptions of liability to the recipient, for any + liability that these contractual assumptions directly impose on those + licensors and authors. + + All other non-permissive additional terms are considered “further + restrictions” within the meaning of section 10. If the Program as you + received it, or any part of it, contains a notice stating that it is + governed by this License along with a term that is a further restriction, + you may remove that term. If a license document contains a further + restriction but permits relicensing or conveying under this License, you + may add to a covered work material governed by the terms of that license + document, provided that the further restriction does not survive such + relicensing or conveying. + + If you add terms to a covered work in accord with this section, you must + place, in the relevant source files, a statement of the additional terms + that apply to those files, or a notice indicating where to find the + applicable terms. Additional terms, permissive or non-permissive, may be + stated in the form of a separately written license, or stated as + exceptions; the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly + provided under this License. Any attempt otherwise to propagate or modify + it is void, and will automatically terminate your rights under this + License (including any patent licenses granted under the third paragraph + of section 11). + + However, if you cease all violation of this License, then your license + from a particular copyright holder is reinstated (a) provisionally, + unless and until the copyright holder explicitly and finally terminates + your license, and (b) permanently, if the copyright holder fails to + notify you of the violation by some reasonable means prior to 60 days + after the cessation. + + Moreover, your license from a particular copyright holder is reinstated + permanently if the copyright holder notifies you of the violation by some + reasonable means, this is the first time you have received notice of + violation of this License (for any work) from that copyright holder, and + you cure the violation prior to 30 days after your receipt of the notice. + + Termination of your rights under this section does not terminate the + licenses of parties who have received copies or rights from you under + this License. If your rights have been terminated and not permanently + reinstated, you do not qualify to receive new licenses for the same + material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or run a + copy of the Program. Ancillary propagation of a covered work occurring + solely as a consequence of using peer-to-peer transmission to receive a + copy likewise does not require acceptance. However, nothing other than + this License grants you permission to propagate or modify any covered + work. These actions infringe copyright if you do not accept this License. + Therefore, by modifying or propagating a covered work, you indicate your + acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically receives + a license from the original licensors, to run, modify and propagate that + work, subject to this License. You are not responsible for enforcing + compliance by third parties with this License. + + An “entity transaction” is a transaction transferring control of an + organization, or substantially all assets of one, or subdividing an + organization, or merging organizations. If propagation of a covered work + results from an entity transaction, each party to that transaction who + receives a copy of the work also receives whatever licenses to the work + the party's predecessor in interest had or could give under the previous + paragraph, plus a right to possession of the Corresponding Source of the + work from the predecessor in interest, if the predecessor has it or can + get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the rights + granted or affirmed under this License. For example, you may not impose a + license fee, royalty, or other charge for exercise of rights granted + under this License, and you may not initiate litigation (including a + cross-claim or counterclaim in a lawsuit) alleging that any patent claim + is infringed by making, using, selling, offering for sale, or importing + the Program or any portion of it. + + 11. Patents. + + A “contributor” is a copyright holder who authorizes use under this + License of the Program or a work on which the Program is based. The work + thus licensed is called the contributor's “contributor version”. + + A contributor's “essential patent claims” are all patent claims owned or + controlled by the contributor, whether already acquired or hereafter + acquired, that would be infringed by some manner, permitted by this + License, of making, using, or selling its contributor version, but do not + include claims that would be infringed only as a consequence of further + modification of the contributor version. For purposes of this definition, + “control” includes the right to grant patent sublicenses in a manner + consistent with the requirements of this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free + patent license under the contributor's essential patent claims, to make, + use, sell, offer for sale, import and otherwise run, modify and propagate + the contents of its contributor version. + + In the following three paragraphs, a “patent license” is any express + agreement or commitment, however denominated, not to enforce a patent + (such as an express permission to practice a patent or covenant not to + sue for patent infringement). To “grant” such a patent license to a party + means to make such an agreement or commitment not to enforce a patent + against the party. + + If you convey a covered work, knowingly relying on a patent license, and + the Corresponding Source of the work is not available for anyone to copy, + free of charge and under the terms of this License, through a publicly + available network server or other readily accessible means, then you must + either (1) cause the Corresponding Source to be so available, or (2) + arrange to deprive yourself of the benefit of the patent license for this + particular work, or (3) arrange, in a manner consistent with the + requirements of this License, to extend the patent license to downstream + recipients. “Knowingly relying” means you have actual knowledge that, but + for the patent license, your conveying the covered work in a country, or + your recipient's use of the covered work in a country, would infringe + one or more identifiable patents in that country that you have reason + to believe are valid. + + If, pursuant to or in connection with a single transaction or + arrangement, you convey, or propagate by procuring conveyance of, a + covered work, and grant a patent license to some of the parties receiving + the covered work authorizing them to use, propagate, modify or convey a + specific copy of the covered work, then the patent license you grant is + automatically extended to all recipients of the covered work and works + based on it. + + A patent license is “discriminatory” if it does not include within the + scope of its coverage, prohibits the exercise of, or is conditioned on + the non-exercise of one or more of the rights that are specifically + granted under this License. You may not convey a covered work if you are + a party to an arrangement with a third party that is in the business of + distributing software, under which you make payment to the third party + based on the extent of your activity of conveying the work, and under + which the third party grants, to any of the parties who would receive the + covered work from you, a discriminatory patent license (a) in connection + with copies of the covered work conveyed by you (or copies made from + those copies), or (b) primarily for and in connection with specific + products or compilations that contain the covered work, unless you + entered into that arrangement, or that patent license was granted, prior + to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting any + implied license or other defenses to infringement that may otherwise be + available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or + otherwise) that contradict the conditions of this License, they do not + excuse you from the conditions of this License. If you cannot use, + propagate or convey a covered work so as to satisfy simultaneously your + obligations under this License and any other pertinent obligations, then + as a consequence you may not use, propagate or convey it at all. For + example, if you agree to terms that obligate you to collect a royalty for + further conveying from those to whom you convey the Program, the only way + you could satisfy both those terms and this License would be to refrain + entirely from conveying the Program. + + 13. Offering the Program as a Service. + + If you make the functionality of the Program or a modified version + available to third parties as a service, you must make the Service Source + Code available via network download to everyone at no charge, under the + terms of this License. Making the functionality of the Program or + modified version available to third parties as a service includes, + without limitation, enabling third parties to interact with the + functionality of the Program or modified version remotely through a + computer network, offering a service the value of which entirely or + primarily derives from the value of the Program or modified version, or + offering a service that accomplishes for users the primary purpose of the + Program or modified version. + + “Service Source Code” means the Corresponding Source for the Program or + the modified version, and the Corresponding Source for all programs that + you use to make the Program or modified version available as a service, + including, without limitation, management software, user interfaces, + application program interfaces, automation software, monitoring software, + backup software, storage software and hosting software, all such that a + user could run an instance of the service using the Service Source Code + you make available. + + 14. Revised Versions of this License. + + MongoDB, Inc. may publish revised and/or new versions of the Server Side + Public License from time to time. Such new versions will be similar in + spirit to the present version, but may differ in detail to address new + problems or concerns. + + Each version is given a distinguishing version number. If the Program + specifies that a certain numbered version of the Server Side Public + License “or any later version” applies to it, you have the option of + following the terms and conditions either of that numbered version or of + any later version published by MongoDB, Inc. If the Program does not + specify a version number of the Server Side Public License, you may + choose any version ever published by MongoDB, Inc. + + If the Program specifies that a proxy can decide which future versions of + the Server Side Public License can be used, that proxy's public statement + of acceptance of a version permanently authorizes you to choose that + version for the Program. + + Later license versions may give you additional or different permissions. + However, no additional obligations are imposed on any author or copyright + holder as a result of your choosing to follow a later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY + APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT + HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY + OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, + THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM + IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF + ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING + WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS + THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING + ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF + THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO + LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU + OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER + PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE + POSSIBILITY OF SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided above + cannot be given local legal effect according to their terms, reviewing + courts shall apply local law that most closely approximates an absolute + waiver of all civil liability in connection with the Program, unless a + warranty or assumption of liability accompanies a copy of the Program in + return for a fee. + + END OF TERMS AND CONDITIONS diff --git a/meta-openembedded/meta-oe/licenses/read-edid b/meta-openembedded/meta-oe/licenses/read-edid new file mode 100644 index 0000000000..2eb2c60cd6 --- /dev/null +++ b/meta-openembedded/meta-oe/licenses/read-edid @@ -0,0 +1,17 @@ + + * This is an unofficial license. Let's call it BSD-like, with these terms: + * * You are free to use this software for any purpose. I cannot guarantee + * anything about this software or its fitness for any purpose. I will + * offer support for this software as long as I am capable of doing so, + * but this should not be interpreted as a support contract of any kind. + * + * * You are free to modify, distribute, etc. this code under the strict + * condition that you email me, Matthew Kern <pyrophobicman@gmail.com>, a + * brief message on what you're doing. Nothing will be rejected, this is + * simply to keep tabs on my work, and maybe we can share ideas on EDIDs. + * + * * (C)opyright 2008-2014 Matthew Kern + * + * Please see AUTHORS for a list of the people who made this software + * possible. All of the current code is a rewrite of my own work, but + * I am still indebted to those guys for a ton of the ideas. diff --git a/meta-openembedded/meta-oe/licenses/vim b/meta-openembedded/meta-oe/licenses/vim deleted file mode 100644 index 4aa818eb24..0000000000 --- a/meta-openembedded/meta-oe/licenses/vim +++ /dev/null @@ -1,81 +0,0 @@ -VIM LICENSE - -I) There are no restrictions on distributing unmodified copies of Vim except - that they must include this license text. You can also distribute - unmodified parts of Vim, likewise unrestricted except that they must - include this license text. You are also allowed to include executables - that you made from the unmodified Vim sources, plus your own usage - examples and Vim scripts. - -II) It is allowed to distribute a modified (or extended) version of Vim, - including executables and/or source code, when the following four - conditions are met: - 1) This license text must be included unmodified. - 2) The modified Vim must be distributed in one of the following five ways: - a) If you make changes to Vim yourself, you must clearly describe in - the distribution how to contact you. When the maintainer asks you - (in any way) for a copy of the modified Vim you distributed, you - must make your changes, including source code, available to the - maintainer without fee. The maintainer reserves the right to - include your changes in the official version of Vim. What the - maintainer will do with your changes and under what license they - will be distributed is negotiable. If there has been no negotiation - then this license, or a later version, also applies to your changes. - The current maintainer is Bram Moolenaar <Bram@vim.org>. If this - changes it will be announced in appropriate places (most likely - vim.sf.net, www.vim.org and/or comp.editors). When it is completely - impossible to contact the maintainer, the obligation to send him - your changes ceases. Once the maintainer has confirmed that he has - received your changes they will not have to be sent again. - b) If you have received a modified Vim that was distributed as - mentioned under a) you are allowed to further distribute it - unmodified, as mentioned at I). If you make additional changes the - text under a) applies to those changes. - c) Provide all the changes, including source code, with every copy of - the modified Vim you distribute. This may be done in the form of a - context diff. You can choose what license to use for new code you - add. The changes and their license must not restrict others from - making their own changes to the official version of Vim. - d) When you have a modified Vim which includes changes as mentioned - under c), you can distribute it without the source code for the - changes if the following three conditions are met: - - The license that applies to the changes permits you to distribute - the changes to the Vim maintainer without fee or restriction, and - permits the Vim maintainer to include the changes in the official - version of Vim without fee or restriction. - - You keep the changes for at least three years after last - distributing the corresponding modified Vim. When the maintainer - or someone who you distributed the modified Vim to asks you (in - any way) for the changes within this period, you must make them - available to him. - - You clearly describe in the distribution how to contact you. This - contact information must remain valid for at least three years - after last distributing the corresponding modified Vim, or as long - as possible. - e) When the GNU General Public License (GPL) applies to the changes, - you can distribute the modified Vim under the GNU GPL version 2 or - any later version. - 3) A message must be added, at least in the output of the ":version" - command and in the intro screen, such that the user of the modified Vim - is able to see that it was modified. When distributing as mentioned - under 2)e) adding the message is only required for as far as this does - not conflict with the license used for the changes. - 4) The contact information as required under 2)a) and 2)d) must not be - removed or changed, except that the person himself can make - corrections. - -III) If you distribute a modified version of Vim, you are encouraged to use - the Vim license for your changes and make them available to the - maintainer, including the source code. The preferred way to do this is - by e-mail or by uploading the files to a server and e-mailing the URL. - If the number of changes is small (e.g., a modified Makefile) e-mailing a - context diff will do. The e-mail address to be used is - <maintainer@vim.org> - -IV) It is not allowed to remove this license from the distribution of the Vim - sources, parts of it or from a modified version. You may use this - license for previous Vim releases instead of the license that they came - with, at your option. - -=== -Read more about this license at http://vimdoc.sourceforge.net/htmldoc/uganda.html#license diff --git a/meta-openembedded/meta-oe/recipes-benchmark/cpuburn/cpuburn-arm/0001-cpuburn-a8.S-Remove-.func-.endfunc.patch b/meta-openembedded/meta-oe/recipes-benchmark/cpuburn/cpuburn-arm/0001-cpuburn-a8.S-Remove-.func-.endfunc.patch new file mode 100644 index 0000000000..82f12fe811 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-benchmark/cpuburn/cpuburn-arm/0001-cpuburn-a8.S-Remove-.func-.endfunc.patch @@ -0,0 +1,69 @@ +From 064a63860bf9ee4bf54facb76ca66f9f957d4797 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Tue, 29 Jan 2019 11:12:38 -0800 +Subject: [PATCH] cpuburn*.S: Remove .func/.endfunc + +These are needed to generate stabs debug info which we dont use +and are silently ignored by gnu assembler when unused, clang assembler +however barfs, so remove them + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> + +--- + cpuburn-a7.S | 2 -- + cpuburn-a8.S | 2 -- + cpuburn-a9.S | 2 -- + 3 files changed, 6 deletions(-) + +diff --git a/cpuburn-a7.S b/cpuburn-a7.S +index 74e925a..c1e308c 100644 +--- a/cpuburn-a7.S ++++ b/cpuburn-a7.S +@@ -42,7 +42,6 @@ + + .global main + +-.func main + .type main, %function + main: + push {r4-r12, lr} +@@ -88,4 +87,3 @@ main: + + mov r0, #0 + pop {r4-r12, pc} +-.endfunc +diff --git a/cpuburn-a8.S b/cpuburn-a8.S +index c6f93a6..a42f5a5 100644 +--- a/cpuburn-a8.S ++++ b/cpuburn-a8.S +@@ -46,7 +46,6 @@ + /* 16 seems to be a good choice */ + #define STEP 16 + +-.func main + .thumb_func + main: + mov lr, pc +@@ -70,4 +69,3 @@ main: + subs lr, lr, #(STEP * 4) + .endr + bne 0b +-.endfunc +diff --git a/cpuburn-a9.S b/cpuburn-a9.S +index 0338b00..a1ccae5 100644 +--- a/cpuburn-a9.S ++++ b/cpuburn-a9.S +@@ -48,7 +48,6 @@ + /* 64 seems to be a good choice */ + #define STEP 64 + +-.func main + .type main, %function + main: + +@@ -94,4 +93,3 @@ main: + subsne lr, lr, #(STEP * 4) + .endr + bne 0b +-.endfunc diff --git a/meta-openembedded/meta-oe/recipes-benchmark/cpuburn/cpuburn-arm/0002-burn.S-Add.patch b/meta-openembedded/meta-oe/recipes-benchmark/cpuburn/cpuburn-arm/0002-burn.S-Add.patch new file mode 100644 index 0000000000..eb68c9ce9b --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-benchmark/cpuburn/cpuburn-arm/0002-burn.S-Add.patch @@ -0,0 +1,47 @@ +From c2adcca93a0075665a8195caad49b89785886e8e Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Tue, 29 Jan 2019 12:02:22 -0800 +Subject: [PATCH] burn.S: Add + +This is originally from +https://hardwarebug.org/files/burn.S + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + burn.S | 26 ++++++++++++++++++++++++++ + 1 file changed, 26 insertions(+) + create mode 100644 burn.S + +diff --git a/burn.S b/burn.S +new file mode 100644 +index 0000000..c372c87 +--- /dev/null ++++ b/burn.S +@@ -0,0 +1,26 @@ ++ .arch armv7-a ++ .fpu neon ++ ++ .text ++ ++ .global main ++ .type main, STT_FUNC ++ .func main ++main: ++ bic sp, sp, #15 ++1: ++ vld1.8 {q8}, [sp,:128] ++ smuad r6, r4, r5 ++ veor q9, q0, q1 ++ add lr, r4, r5 ++ ldr ip, [sp] ++ vext.8 q10, q3, q4, #1 ++ eor r5, r4, r5 ++ vadd.i32 q11, q0, q1 ++ smusd r6, r4, r5 ++ ldr r2, [sp] ++ vext.8 q12, q1, q2, #3 ++ ssub8 lr, r4, r5 ++ vmul.u16 q13, q0, q4 ++ b 1b ++.endfunc diff --git a/meta-openembedded/meta-oe/recipes-benchmark/cpuburn/cpuburn-arm/0003-burn.S-Remove-.func-.endfunc.patch b/meta-openembedded/meta-oe/recipes-benchmark/cpuburn/cpuburn-arm/0003-burn.S-Remove-.func-.endfunc.patch new file mode 100644 index 0000000000..f351b62c73 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-benchmark/cpuburn/cpuburn-arm/0003-burn.S-Remove-.func-.endfunc.patch @@ -0,0 +1,31 @@ +From 078df5b25d75578bb0448ca53514c23debe6d920 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Tue, 29 Jan 2019 12:03:11 -0800 +Subject: [PATCH] burn.S: Remove .func/.endfunc + +These are useless on Linux systems where we use dwarf debug info instead +of stabs + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + burn.S | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/burn.S b/burn.S +index c372c87..4458f51 100644 +--- a/burn.S ++++ b/burn.S +@@ -5,7 +5,6 @@ + + .global main + .type main, STT_FUNC +- .func main + main: + bic sp, sp, #15 + 1: +@@ -23,4 +22,3 @@ main: + ssub8 lr, r4, r5 + vmul.u16 q13, q0, q4 + b 1b +-.endfunc diff --git a/meta-openembedded/meta-oe/recipes-benchmark/cpuburn/cpuburn-arm_git.bb b/meta-openembedded/meta-oe/recipes-benchmark/cpuburn/cpuburn-arm_git.bb new file mode 100644 index 0000000000..6189da39fd --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-benchmark/cpuburn/cpuburn-arm_git.bb @@ -0,0 +1,38 @@ +SUMMARY = "A collection of cpuburn programs tuned for different ARM hardware" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://cpuburn-a53.S;beginline=1;endline=22;md5=3b7ccd70144c16d3fe14ac491c2d4a87" + +RPROVIDES_${PN} = "cpuburn-neon" +PROVIDES += "cpuburn-neon" + +SRCREV = "ad7e646700d14b81413297bda02fb7fe96613c3f" + +PV = "1.0+git${SRCPV}" + +SRC_URI = "git://github.com/ssvb/cpuburn-arm.git \ + file://0001-cpuburn-a8.S-Remove-.func-.endfunc.patch \ + file://0002-burn.S-Add.patch \ + file://0003-burn.S-Remove-.func-.endfunc.patch \ + " + +S = "${WORKDIR}/git" + +do_compile() { + ${CC} ${CFLAGS} ${LDFLAGS} burn.S -o burn + ${CC} ${CFLAGS} ${LDFLAGS} cpuburn-a7.S -o burn-a7 + ${CC} ${CFLAGS} ${LDFLAGS} cpuburn-a8.S -o burn-a8 + ${CC} ${CFLAGS} ${LDFLAGS} cpuburn-a9.S -o burn-a9 + ${CC} ${CFLAGS} ${LDFLAGS} cpuburn-a53.S -o burn-a53 + ${CC} ${CFLAGS} ${LDFLAGS} cpuburn-krait.S -o burn-krait +} + +do_install() { + install -d ${D}${bindir} + for f in burn burn-a7 burn-a8 burn-a9 burn-a53 burn-krait; do + install -m 0755 $f ${D}${bindir}/$f + done +} + +COMPATIBLE_MACHINE ?= "(^$)" +COMPATIBLE_MACHINE_armv7a = "(.*)" +COMPATIBLE_MACHINE_armv7ve = "(.*)" diff --git a/meta-openembedded/meta-oe/recipes-benchmark/cpuburn/cpuburn-neon_20140626.bb b/meta-openembedded/meta-oe/recipes-benchmark/cpuburn/cpuburn-neon_20140626.bb deleted file mode 100644 index 14e3fc4f38..0000000000 --- a/meta-openembedded/meta-oe/recipes-benchmark/cpuburn/cpuburn-neon_20140626.bb +++ /dev/null @@ -1,30 +0,0 @@ -SUMMARY = "CPU burn app that loads the NEON coprocessor fully" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://burn.S;md5=823abc72c2cd448e87df9bc5355a4456" - -DL_DIR_append = "/${PN}-${PV}" - -# Ensure to make this available for machine which has neon -COMPATIBLE_MACHINE = "(${@bb.utils.contains("TUNE_FEATURES", "neon", "${MACHINE}", "Invalid!", d)})" - -SRC_URI = "http://hardwarebug.org/files/burn.S;name=mru \ - https://raw.githubusercontent.com/ssvb/cpuburn-arm/dd5c5ba58d2b0b23cfab4a286f9d3f5510000f20/cpuburn-a8.S;name=ssvb" - -SRC_URI[mru.md5sum] = "823abc72c2cd448e87df9bc5355a4456" -SRC_URI[mru.sha256sum] = "01d9fc04f83740c513c25401dcc89c11b2a5a6013e70bfca42b7b02129f88cd2" -SRC_URI[ssvb.md5sum] = "ba0ef2939a3b3b487523448c67544e94" -SRC_URI[ssvb.sha256sum] = "ce42ebdc71c876a33d9f7534355ef76cefa0d00ddb19ad69cf05a266c861d08d" - -S = "${WORKDIR}" - -do_compile() { - ${CC} ${CFLAGS} ${LDFLAGS} burn.S -o burn - ${CC} ${CFLAGS} ${LDFLAGS} cpuburn-a8.S -o burn-neona8 -} - -do_install() { - install -d ${D}${bindir} - install -m 0755 ${S}/burn ${D}${bindir}/burn-neon - install -m 0755 ${S}/burn-neona8 ${D}${bindir}/ -} - diff --git a/meta-openembedded/meta-oe/recipes-benchmark/glmark2/files/0001-Fix-clang-warnings.patch b/meta-openembedded/meta-oe/recipes-benchmark/glmark2/files/0001-Fix-clang-warnings.patch deleted file mode 100644 index cdf09faec8..0000000000 --- a/meta-openembedded/meta-oe/recipes-benchmark/glmark2/files/0001-Fix-clang-warnings.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 35e9f80518d666db5f9c62e8072ffbc307b4af4f Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Sat, 26 Aug 2017 08:30:01 -0700 -Subject: [PATCH] Fix clang warnings - -../src/native-state-drm.cpp:334:20: error: cannot pass object of non-trivial type 'std::__cxx11::basic_string<char>' through variadic function; call will abort at runtime [-Wnon-pod-varargs] - dev_path); - ^ -1 error generated. - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - src/native-state-drm.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/native-state-drm.cpp b/src/native-state-drm.cpp -index dc2b323..62566ee 100644 ---- a/src/native-state-drm.cpp -+++ b/src/native-state-drm.cpp -@@ -331,7 +331,7 @@ static int open_using_udev_scan() - if (!valid_fd(fd)) { - // %m is GLIBC specific... Maybe use strerror here... - Log::error("Tried to use '%s' but failed.\nReason : %m", -- dev_path); -+ dev_path.c_str()); - } - else - Log::debug("Success!\n"); --- -2.14.1 - diff --git a/meta-openembedded/meta-oe/recipes-benchmark/glmark2/files/Fix-configure-for-sqrt-check.patch b/meta-openembedded/meta-oe/recipes-benchmark/glmark2/files/Fix-configure-for-sqrt-check.patch deleted file mode 100644 index 7de05ee583..0000000000 --- a/meta-openembedded/meta-oe/recipes-benchmark/glmark2/files/Fix-configure-for-sqrt-check.patch +++ /dev/null @@ -1,21 +0,0 @@ -From 9fb298c398f88a63d71432be1410d52fae089063 Mon Sep 17 00:00:00 2001 -From: Tom Hochstein <tom.hochstein@nxp.com> -Date: Mon, 8 Aug 2016 11:39:54 -0500 - ---- - wscript | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/wscript b/wscript -index ca843f4..eb4a26a 100644 ---- a/wscript -+++ b/wscript -@@ -84,7 +84,7 @@ def configure(ctx): - ctx.check_cc(lib = lib, uselib_store = uselib) - - # Check required functions -- req_funcs = [('memset', 'string.h', []) ,('sqrt', 'math.h', ['m'])] -+ req_funcs = [('memset', 'string.h', [])] - for func, header, uselib in req_funcs: - ctx.check_cc(function_name = func, header_name = header, - uselib = uselib, mandatory = True) diff --git a/meta-openembedded/meta-oe/recipes-benchmark/glmark2/files/build-Check-packages-to-be-used-by-the-enabled-flavo.patch b/meta-openembedded/meta-oe/recipes-benchmark/glmark2/files/build-Check-packages-to-be-used-by-the-enabled-flavo.patch deleted file mode 100644 index 72b8debe56..0000000000 --- a/meta-openembedded/meta-oe/recipes-benchmark/glmark2/files/build-Check-packages-to-be-used-by-the-enabled-flavo.patch +++ /dev/null @@ -1,43 +0,0 @@ -From: Otavio Salvador <otavio@ossystems.com.br> -Subject: [PATCH] build: Check packages to be used by the enabled flavors -Organization: O.S. Systems Software LTDA. - -The packages shouldn't be dynamically detected otherwise the build -predictability is lost. We now have all packages as mandatory but -dependent of the flavors which use them. - -Upstream-Status: Submitted [https://github.com/glmark2/glmark2/pull/8] - -Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> ---- - wscript | 10 +++++++--- - 1 file changed, 7 insertions(+), 3 deletions(-) - -diff --git a/wscript b/wscript -index cab62a3..e7eaed0 100644 ---- a/wscript -+++ b/wscript -@@ -121,13 +121,17 @@ def configure(ctx): - ('mirclient','mirclient', '0.13', list_contains(ctx.options.flavors, 'mir')), - ('wayland-client','wayland-client', None, list_contains(ctx.options.flavors, 'wayland')), - ('wayland-egl','wayland-egl', None, list_contains(ctx.options.flavors, 'wayland'))] -- for (pkg, uselib, atleast, mandatory) in opt_pkgs: -+ for (pkg, uselib, atleast, check) in opt_pkgs: -+ # Check packages required by the flavors -+ if not check: -+ continue -+ - if atleast is None: - ctx.check_cfg(package = pkg, uselib_store = uselib, -- args = '--cflags --libs', mandatory = mandatory) -+ args = '--cflags --libs', mandatory = True) - else: - ctx.check_cfg(package = pkg, uselib_store = uselib, atleast_version=atleast, -- args = '--cflags --libs', mandatory = mandatory) -+ args = '--cflags --libs', mandatory = True) - - - # Prepend CXX flags so that they can be overriden by the --- -2.4.6 - diff --git a/meta-openembedded/meta-oe/recipes-benchmark/glmark2/glmark2_git.bb b/meta-openembedded/meta-oe/recipes-benchmark/glmark2/glmark2_git.bb index 99050e7047..7ed5cd0281 100644 --- a/meta-openembedded/meta-oe/recipes-benchmark/glmark2/glmark2_git.bb +++ b/meta-openembedded/meta-oe/recipes-benchmark/glmark2/glmark2_git.bb @@ -10,16 +10,12 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \ DEPENDS = "libpng jpeg udev" -PV = "2017.07+${SRCPV}" +PV = "20190205+${SRCPV}" COMPATIBLE_HOST_rpi = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '.*-linux*', 'null', d)}" -SRC_URI = "git://github.com/glmark2/glmark2.git;protocol=https \ - file://build-Check-packages-to-be-used-by-the-enabled-flavo.patch \ - file://Fix-configure-for-sqrt-check.patch \ - file://0001-Fix-clang-warnings.patch \ - " -SRCREV = "ed20c633f1926d1dd78e3e89043c85a81302cbe6" +SRC_URI = "git://github.com/glmark2/glmark2.git;protocol=https" +SRCREV = "0c90dd48df43a6b0db1d9aabca6298240f4968f7" S = "${WORKDIR}/git" @@ -31,9 +27,6 @@ PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'x11-gl ${@bb.utils.contains('DISTRO_FEATURES', 'wayland opengl', 'wayland-gl wayland-gles2', '', d)} \ drm-gl drm-gles2" -# Enable C++11 features -CXXFLAGS += "-std=c++11" - PACKAGECONFIG[x11-gl] = ",,virtual/libgl virtual/libx11" PACKAGECONFIG[x11-gles2] = ",,virtual/libgles2 virtual/libx11" PACKAGECONFIG[drm-gl] = ",,virtual/libgl libdrm virtual/libgbm" diff --git a/meta-openembedded/meta-oe/recipes-benchmark/libc-bench/libc-bench_20110206.bb b/meta-openembedded/meta-oe/recipes-benchmark/libc-bench/libc-bench_git.bb index f534c73b54..e813894316 100644 --- a/meta-openembedded/meta-oe/recipes-benchmark/libc-bench/libc-bench_20110206.bb +++ b/meta-openembedded/meta-oe/recipes-benchmark/libc-bench/libc-bench_git.bb @@ -3,15 +3,19 @@ DESCRIPTION = "libc-bench is a set of time- and memory-efficiency tests to compa implementations of various C/POSIX standard library functions." HOMEPAGE = "http://www.etalabs.net/libc-bench.html" SECTION = "console/utils" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://Makefile;md5=e12f113da27dfe9cfb6c2c537da8d8df" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=9a825c63897c53f487ef900598c31527" -SRC_URI = "http://www.etalabs.net/releases/${BPN}-${PV}.tar.gz" +SRCREV = "b6b2ce5f9f87a09b14499cb00c600c601f022634" +PV = "20110206+git${SRCPV}" -SRC_URI[md5sum] = "f763de90f95fe68e4e03e5b6f49698ac" -SRC_URI[sha256sum] = "6825260aa5f15f4fbc7957ec578e9c859cbbe210e025ec74c4a0d05677523794" +SRC_URI = "git://git.musl-libc.org/libc-bench \ + " + +S = "${WORKDIR}/git" do_install () { install -d ${D}${bindir} install -m 0755 ${B}/libc-bench ${D}${bindir} } + diff --git a/meta-openembedded/meta-oe/recipes-benchmark/nbench-byte/nbench-byte_2.2.3.bb b/meta-openembedded/meta-oe/recipes-benchmark/nbench-byte/nbench-byte_2.2.3.bb index 22bb0416ae..b4d55be1b0 100644 --- a/meta-openembedded/meta-oe/recipes-benchmark/nbench-byte/nbench-byte_2.2.3.bb +++ b/meta-openembedded/meta-oe/recipes-benchmark/nbench-byte/nbench-byte_2.2.3.bb @@ -7,7 +7,7 @@ LICENSE = "nbench-byte" LIC_FILES_CHKSUM = "file://README;beginline=57;endline=66;md5=020ef579f8fa5746b7e307a54707834f" SECTION = "console/utils" -SRC_URI = "https://fossies.org/linux/misc/${BP}.tar.gz \ +SRC_URI = "https://fossies.org/linux/misc/old/${BP}.tar.gz \ file://nbench_32bits.patch \ file://Makefile-add-more-dependencies-to-pointer.h.patch" diff --git a/meta-openembedded/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_8.0.1.bb b/meta-openembedded/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_8.6.0.bb index b1fa51bf03..4c7b05752c 100644 --- a/meta-openembedded/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_8.0.1.bb +++ b/meta-openembedded/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_8.6.0.bb @@ -6,8 +6,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" SECTION = "console/tests" SRC_URI = "http://www.phoronix-test-suite.com/releases/${BP}.tar.gz" -SRC_URI[md5sum] = "3dc3a0e490e909f188379a9e05fd4780" -SRC_URI[sha256sum] = "6306549109c7254baf31edb385265b19557b5692217d2dfcf96f6fb17de8e842" +SRC_URI[md5sum] = "a3d9e81f5abc1921d3aaf710ac4f4046" +SRC_URI[sha256sum] = "acb9dfcf4a3452aaf82cce59ccc04fa4cf51a43617a6cca9d1f9c5c670a5655d" S = "${WORKDIR}/phoronix-test-suite" diff --git a/meta-openembedded/meta-oe/recipes-benchmark/s-suite/s-suite_git.bb b/meta-openembedded/meta-oe/recipes-benchmark/s-suite/s-suite_git.bb index 77d1728140..47d21d36cc 100644 --- a/meta-openembedded/meta-oe/recipes-benchmark/s-suite/s-suite_git.bb +++ b/meta-openembedded/meta-oe/recipes-benchmark/s-suite/s-suite_git.bb @@ -2,7 +2,7 @@ SUMMARY = "Small collection of benchmarks for storage I/O" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=b529aaa6a0c50f15d29f89609b5c22f3" -SRCREV = "79698f645bfb28d0d966484ddad3a1efb562246d" +SRCREV = "d05006865f68829fa7603bdb92bd51649f5ba1b6" PV = "0.0+git${SRCPV}" SRC_URI = "git://github.com/Algodev-github/S.git;protocol=https;branch=master" @@ -17,11 +17,13 @@ do_install() { install -m0755 -p ${S}/$(basename $i)/* ${D}/opt/S-suite/$(basename $i) done + install -m0755 ${S}/def_config.sh ${D}/opt/S-suite install -m0755 ${S}/config_params.sh ${D}/opt/S-suite - install -m0755 ${S}/def_config_params.sh ${D}/opt/S-suite + install -m0755 ${S}/process_config.sh ${D}/opt/S-suite } -RDEPENDS_${PN} = "bash bc coreutils gawk g++ gcc fio libaio libaio-dev sysstat" +RDEPENDS_${PN} = "bash bc coreutils gawk g++ gcc fio libaio libaio-dev sysstat \ + git" FILES_${PN} = "/opt/S-suite/" diff --git a/meta-openembedded/meta-oe/recipes-benchmark/tinymembench/tinymembench/0001-asm-Delete-.func-.endfunc-directives.patch b/meta-openembedded/meta-oe/recipes-benchmark/tinymembench/tinymembench/0001-asm-Delete-.func-.endfunc-directives.patch new file mode 100644 index 0000000000..c090700763 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-benchmark/tinymembench/tinymembench/0001-asm-Delete-.func-.endfunc-directives.patch @@ -0,0 +1,444 @@ +From b0a64ddebb517a1678c44d9baf24d8bbe39d02cd Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Tue, 29 Jan 2019 13:15:07 -0800 +Subject: [PATCH] asm: Delete .func/.endfunc directives + +These are useful only with stabs debug format, which is not used on +linux systems, gas ignores them silently, but clang assembler does not +and rightly so. + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + aarch64-asm.S | 14 +------------- + arm-neon.S | 24 ------------------------ + mips-32.S | 5 ++--- + x86-sse2.S | 21 ++++++++++----------- + 4 files changed, 13 insertions(+), 51 deletions(-) + +diff --git a/aarch64-asm.S b/aarch64-asm.S +index 842b9e2..165c8ac 100644 +--- a/aarch64-asm.S ++++ b/aarch64-asm.S +@@ -31,8 +31,7 @@ + + .macro asm_function function_name + .global \function_name +- .type \function_name,%function +-.func \function_name ++ .type \function_name,%function + \function_name: + DST .req x0 + SRC .req x1 +@@ -54,7 +53,6 @@ asm_function aligned_block_copy_ldpstp_x_aarch64 + subs SIZE, SIZE, #64 + bgt 0b + ret +-.endfunc + + asm_function aligned_block_copy_ldpstp_q_aarch64 + 0: +@@ -67,7 +65,6 @@ asm_function aligned_block_copy_ldpstp_q_aarch64 + subs SIZE, SIZE, #64 + bgt 0b + ret +-.endfunc + + asm_function aligned_block_copy_ldpstp_q_pf32_l2strm_aarch64 + 0: +@@ -82,7 +79,6 @@ asm_function aligned_block_copy_ldpstp_q_pf32_l2strm_aarch64 + subs SIZE, SIZE, #64 + bgt 0b + ret +-.endfunc + + asm_function aligned_block_copy_ldpstp_q_pf64_l2strm_aarch64 + 0: +@@ -96,7 +92,6 @@ asm_function aligned_block_copy_ldpstp_q_pf64_l2strm_aarch64 + subs SIZE, SIZE, #64 + bgt 0b + ret +-.endfunc + + asm_function aligned_block_copy_ldpstp_q_pf32_l1keep_aarch64 + 0: +@@ -111,7 +106,6 @@ asm_function aligned_block_copy_ldpstp_q_pf32_l1keep_aarch64 + subs SIZE, SIZE, #64 + bgt 0b + ret +-.endfunc + + asm_function aligned_block_copy_ldpstp_q_pf64_l1keep_aarch64 + 0: +@@ -125,7 +119,6 @@ asm_function aligned_block_copy_ldpstp_q_pf64_l1keep_aarch64 + subs SIZE, SIZE, #64 + bgt 0b + ret +-.endfunc + + asm_function aligned_block_fill_stp_x_aarch64 + 0: +@@ -137,7 +130,6 @@ asm_function aligned_block_fill_stp_x_aarch64 + subs SIZE, SIZE, #64 + bgt 0b + ret +-.endfunc + + asm_function aligned_block_fill_stp_q_aarch64 + 0: +@@ -147,7 +139,6 @@ asm_function aligned_block_fill_stp_q_aarch64 + subs SIZE, SIZE, #64 + bgt 0b + ret +-.endfunc + + asm_function aligned_block_fill_stnp_x_aarch64 + 0: +@@ -159,7 +150,6 @@ asm_function aligned_block_fill_stnp_x_aarch64 + subs SIZE, SIZE, #64 + bgt 0b + ret +-.endfunc + + asm_function aligned_block_fill_stnp_q_aarch64 + 0: +@@ -169,7 +159,6 @@ asm_function aligned_block_fill_stnp_q_aarch64 + subs SIZE, SIZE, #64 + bgt 0b + ret +-.endfunc + + asm_function aligned_block_copy_ld1st1_aarch64 + 0: +@@ -180,6 +169,5 @@ asm_function aligned_block_copy_ld1st1_aarch64 + subs SIZE, SIZE, #64 + bgt 0b + ret +-.endfunc + + #endif +diff --git a/arm-neon.S b/arm-neon.S +index 4db78ce..9631d82 100644 +--- a/arm-neon.S ++++ b/arm-neon.S +@@ -32,7 +32,6 @@ + + .macro asm_function function_name + .global \function_name +-.func \function_name + \function_name: + DST .req r0 + SRC .req r1 +@@ -66,7 +65,6 @@ asm_function aligned_block_read_neon + vpadd.u32 d31, d31, d31 + vmov.u32 r0, d31[0] + bx lr +-.endfunc + + /* Actually this calculates a sum of 32-bit values */ + asm_function aligned_block_read_pf32_neon +@@ -97,7 +95,6 @@ asm_function aligned_block_read_pf32_neon + vpadd.u32 d31, d31, d31 + vmov.u32 r0, d31[0] + bx lr +-.endfunc + + /* Actually this calculates a sum of 32-bit values */ + asm_function aligned_block_read_pf64_neon +@@ -127,7 +124,6 @@ asm_function aligned_block_read_pf64_neon + vpadd.u32 d31, d31, d31 + vmov.u32 r0, d31[0] + bx lr +-.endfunc + + /* Actually this calculates a sum of 32-bit values */ + asm_function aligned_block_read2_neon +@@ -156,7 +152,6 @@ asm_function aligned_block_read2_neon + vpadd.u32 d31, d31, d31 + vmov.u32 r0, d31[0] + bx lr +-.endfunc + + /* Actually this calculates a sum of 32-bit values */ + asm_function aligned_block_read2_pf32_neon +@@ -187,7 +182,6 @@ asm_function aligned_block_read2_pf32_neon + vpadd.u32 d31, d31, d31 + vmov.u32 r0, d31[0] + bx lr +-.endfunc + + /* Actually this calculates a sum of 32-bit values */ + asm_function aligned_block_read2_pf64_neon +@@ -217,7 +211,6 @@ asm_function aligned_block_read2_pf64_neon + vpadd.u32 d31, d31, d31 + vmov.u32 r0, d31[0] + bx lr +-.endfunc + + asm_function aligned_block_copy_neon + 0: +@@ -226,7 +219,6 @@ asm_function aligned_block_copy_neon + subs SIZE, SIZE, #32 + bgt 0b + bx lr +-.endfunc + + asm_function aligned_block_copy_unrolled_neon + vpush {d8-d15} +@@ -244,7 +236,6 @@ asm_function aligned_block_copy_unrolled_neon + bgt 0b + vpop {d8-d15} + bx lr +-.endfunc + + asm_function aligned_block_copy_pf32_neon + 0: +@@ -254,7 +245,6 @@ asm_function aligned_block_copy_pf32_neon + subs SIZE, SIZE, #32 + bgt 0b + bx lr +-.endfunc + + asm_function aligned_block_copy_unrolled_pf32_neon + vpush {d8-d15} +@@ -280,7 +270,6 @@ asm_function aligned_block_copy_unrolled_pf32_neon + bgt 0b + vpop {d8-d15} + bx lr +-.endfunc + + asm_function aligned_block_copy_pf64_neon + 0: +@@ -292,7 +281,6 @@ asm_function aligned_block_copy_pf64_neon + subs SIZE, SIZE, #64 + bgt 0b + bx lr +-.endfunc + + asm_function aligned_block_copy_unrolled_pf64_neon + vpush {d8-d15} +@@ -314,7 +302,6 @@ asm_function aligned_block_copy_unrolled_pf64_neon + bgt 0b + vpop {d8-d15} + bx lr +-.endfunc + + asm_function aligned_block_copy_backwards_neon + add SRC, SRC, SIZE +@@ -328,7 +315,6 @@ asm_function aligned_block_copy_backwards_neon + subs SIZE, SIZE, #32 + bgt 0b + bx lr +-.endfunc + + asm_function aligned_block_copy_backwards_pf32_neon + add SRC, SRC, SIZE +@@ -343,7 +329,6 @@ asm_function aligned_block_copy_backwards_pf32_neon + subs SIZE, SIZE, #32 + bgt 0b + bx lr +-.endfunc + + asm_function aligned_block_copy_backwards_pf64_neon + add SRC, SRC, SIZE +@@ -360,7 +345,6 @@ asm_function aligned_block_copy_backwards_pf64_neon + subs SIZE, SIZE, #64 + bgt 0b + bx lr +-.endfunc + + asm_function aligned_block_fill_neon + vld1.8 {d0, d1, d2, d3}, [SRC]! +@@ -370,7 +354,6 @@ asm_function aligned_block_fill_neon + subs SIZE, SIZE, #64 + bgt 0b + bx lr +-.endfunc + + asm_function aligned_block_fill_backwards_neon + add SRC, SRC, SIZE +@@ -383,7 +366,6 @@ asm_function aligned_block_fill_backwards_neon + subs SIZE, SIZE, #32 + bgt 0b + bx lr +-.endfunc + + /* some code for older ARM processors */ + +@@ -398,7 +380,6 @@ asm_function aligned_block_fill_stm4_armv4 + subs SIZE, SIZE, #64 + bgt 0b + pop {r4-r12, pc} +-.endfunc + + asm_function aligned_block_fill_stm8_armv4 + push {r4-r12, lr} +@@ -409,7 +390,6 @@ asm_function aligned_block_fill_stm8_armv4 + subs SIZE, SIZE, #64 + bgt 0b + pop {r4-r12, pc} +-.endfunc + + asm_function aligned_block_fill_strd_armv5te + push {r4-r12, lr} +@@ -426,7 +406,6 @@ asm_function aligned_block_fill_strd_armv5te + subs SIZE, SIZE, #64 + bgt 0b + pop {r4-r12, pc} +-.endfunc + + asm_function aligned_block_copy_incr_armv5te + push {r4-r12, lr} +@@ -442,7 +421,6 @@ asm_function aligned_block_copy_incr_armv5te + stmia DST!, {r8-r11} + bgt 0b + pop {r4-r12, pc} +-.endfunc + + asm_function aligned_block_copy_wrap_armv5te + push {r4-r12, lr} +@@ -458,7 +436,6 @@ asm_function aligned_block_copy_wrap_armv5te + stmia DST!, {r8-r11} + bgt 0b + pop {r4-r12, pc} +-.endfunc + + asm_function aligned_block_copy_vfp + push {r4-r12, lr} +@@ -470,6 +447,5 @@ asm_function aligned_block_copy_vfp + bgt 0b + vpop {d8-d15} + pop {r4-r12, pc} +-.endfunc + + #endif +diff --git a/mips-32.S b/mips-32.S +index 17b2b7f..4f7ddae 100644 +--- a/mips-32.S ++++ b/mips-32.S +@@ -32,7 +32,6 @@ + .macro asm_function function_name + .global \function_name + .type \function_name, @function +- .func \function_name + \function_name: + .endm + +@@ -93,7 +92,7 @@ asm_function aligned_block_fill_pf32_mips32 + 2: + jr $ra + nop +-.endfunc ++ + + /* + * void aligned_block_copy_pf32_mips32(int64_t *dst, int64_t *src, int size) +@@ -178,6 +177,6 @@ asm_function aligned_block_copy_pf32_mips32 + lw $s7, 28($sp) + jr $ra + addi $sp, $sp, 32 +-.endfunc ++ + + #endif +diff --git a/x86-sse2.S b/x86-sse2.S +index d8840e4..409031b 100644 +--- a/x86-sse2.S ++++ b/x86-sse2.S +@@ -30,7 +30,6 @@ + + .macro asm_function_helper function_name + .global \function_name +-.func \function_name + \function_name: + #ifdef __amd64__ + #ifdef _WIN64 +@@ -90,7 +89,7 @@ asm_function aligned_block_copy_movsb + pop3 edi esi ecx + #endif + ret +-.endfunc ++ + + asm_function aligned_block_copy_movsd + 0: +@@ -110,7 +109,7 @@ asm_function aligned_block_copy_movsd + pop3 edi esi ecx + #endif + ret +-.endfunc ++ + + asm_function aligned_block_copy_sse2 + 0: +@@ -127,7 +126,7 @@ asm_function aligned_block_copy_sse2 + sub SIZE, 64 + jg 0b + ret +-.endfunc ++ + + asm_function aligned_block_copy_nt_sse2 + 0: +@@ -144,7 +143,7 @@ asm_function aligned_block_copy_nt_sse2 + sub SIZE, 64 + jg 0b + ret +-.endfunc ++ + + asm_function aligned_block_copy_pf32_sse2 + 0: +@@ -163,7 +162,7 @@ asm_function aligned_block_copy_pf32_sse2 + sub SIZE, 64 + jg 0b + ret +-.endfunc ++ + + asm_function aligned_block_copy_nt_pf32_sse2 + 0: +@@ -182,7 +181,7 @@ asm_function aligned_block_copy_nt_pf32_sse2 + sub SIZE, 64 + jg 0b + ret +-.endfunc ++ + + asm_function aligned_block_copy_pf64_sse2 + 0: +@@ -200,7 +199,7 @@ asm_function aligned_block_copy_pf64_sse2 + sub SIZE, 64 + jg 0b + ret +-.endfunc ++ + + asm_function aligned_block_copy_nt_pf64_sse2 + 0: +@@ -218,7 +217,7 @@ asm_function aligned_block_copy_nt_pf64_sse2 + sub SIZE, 64 + jg 0b + ret +-.endfunc ++ + + asm_function aligned_block_fill_sse2 + movdqa xmm0, [SRC + 0] +@@ -231,7 +230,7 @@ asm_function aligned_block_fill_sse2 + sub SIZE, 64 + jg 0b + ret +-.endfunc ++ + + asm_function aligned_block_fill_nt_sse2 + movdqa xmm0, [SRC + 0] +@@ -244,7 +243,7 @@ asm_function aligned_block_fill_nt_sse2 + sub SIZE, 64 + jg 0b + ret +-.endfunc ++ + + /*****************************************************************************/ + diff --git a/meta-openembedded/meta-oe/recipes-benchmark/tinymembench/tinymembench_git.bb b/meta-openembedded/meta-oe/recipes-benchmark/tinymembench/tinymembench_git.bb index 8cb59da737..2ce10f9c44 100644 --- a/meta-openembedded/meta-oe/recipes-benchmark/tinymembench/tinymembench_git.bb +++ b/meta-openembedded/meta-oe/recipes-benchmark/tinymembench/tinymembench_git.bb @@ -8,8 +8,10 @@ LIC_FILES_CHKSUM = "file://main.c;endline=22;md5=879b9bbb60851454885b5fa47eb6b34 PV = "0.4.0+git${SRCPV}" -SRCREV = "2c789849709d837b4bd114c11ed2d9bdc65afbc6" -SRC_URI = "git://github.com/ssvb/tinymembench.git" +SRCREV = "a2cf6d7e382e3aea1eb39173174d9fa28cad15f3" +SRC_URI = "git://github.com/ssvb/tinymembench.git \ + file://0001-asm-Delete-.func-.endfunc-directives.patch \ + " S = "${WORKDIR}/git" diff --git a/meta-openembedded/meta-oe/recipes-bsp/efibootmgr/efibootmgr_0.16.bb b/meta-openembedded/meta-oe/recipes-bsp/efibootmgr/efibootmgr_17.bb index 6497e09230..4edb2e6644 100644 --- a/meta-openembedded/meta-oe/recipes-bsp/efibootmgr/efibootmgr_0.16.bb +++ b/meta-openembedded/meta-oe/recipes-bsp/efibootmgr/efibootmgr_17.bb @@ -10,8 +10,9 @@ DEPENDS = "pciutils zlib efivar" COMPATIBLE_HOST = "(i.86|x86_64|arm|aarch64).*-linux" -SRCREV = "a5103251a11663adddc85c86e0b8d3d3b73cbb4a" +SRCREV = "e067160ecef8208e1944002e5d50b275733211fb" SRC_URI = "git://github.com/rhinstaller/efibootmgr.git;protocol=https \ + file://0001-remove-extra-decl.patch \ " S = "${WORKDIR}/git" diff --git a/meta-openembedded/meta-oe/recipes-bsp/efibootmgr/files/0001-remove-extra-decl.patch b/meta-openembedded/meta-oe/recipes-bsp/efibootmgr/files/0001-remove-extra-decl.patch new file mode 100644 index 0000000000..42f3a8182d --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-bsp/efibootmgr/files/0001-remove-extra-decl.patch @@ -0,0 +1,31 @@ +From 99b578501643377e0b1994b2a068b790d189d5ad Mon Sep 17 00:00:00 2001 +From: Peter Jones <pjones@redhat.com> +Date: Wed, 13 Jun 2018 09:41:01 -0400 +Subject: [PATCH] remove extra decl + +Signed-off-by: Peter Jones <pjones@redhat.com> + +Upstream-Status: Backport [git://github.com/rhinstaller/efibootmgr.git] +Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> + +--- + src/efibootmgr.c | 3 --- + 1 file changed, 3 deletions(-) + +diff --git a/src/efibootmgr.c b/src/efibootmgr.c +index de38f01..4e1a680 100644 +--- a/src/efibootmgr.c ++++ b/src/efibootmgr.c +@@ -1536,9 +1536,6 @@ parse_opts(int argc, char **argv) + "invalid numeric value %s\n", + optarg); + } +- /* XXX efivar-36 accidentally doesn't have a public +- * header for this */ +- extern int efi_set_verbose(int verbosity, FILE *errlog); + efi_set_verbose(opts.verbose - 2, stderr); + break; + case 'V': +-- +2.7.4 + diff --git a/meta-openembedded/meta-oe/recipes-bsp/efivar/efivar_0.36.bb b/meta-openembedded/meta-oe/recipes-bsp/efivar/efivar_37.bb index 20588ee974..8a56e7adcc 100644 --- a/meta-openembedded/meta-oe/recipes-bsp/efivar/efivar_0.36.bb +++ b/meta-openembedded/meta-oe/recipes-bsp/efivar/efivar_37.bb @@ -12,7 +12,7 @@ inherit pkgconfig COMPATIBLE_HOST = "(i.86|x86_64|arm|aarch64).*-linux" -SRCREV = "ef3449223ecd1e7b1098c523d66b2f960fe839ea" +SRCREV = "c1d6b10e1ed4ba2be07f385eae5bceb694478a10" SRC_URI = "git://github.com/rhinstaller/efivar.git \ file://allow-multi-definitions-for-native.patch \ " @@ -41,3 +41,5 @@ do_install_class-native() { } BBCLASSEXTEND = "native" + +RRECOMMENDS_${PN} = "kernel-module-efivarfs" diff --git a/meta-openembedded/meta-oe/recipes-bsp/lm_sensors/lmsensors/0001-lm-sensors-fix-sensors-detect-can-t-read-the-cpu-inf.patch b/meta-openembedded/meta-oe/recipes-bsp/lm_sensors/lmsensors/0001-lm-sensors-fix-sensors-detect-can-t-read-the-cpu-inf.patch new file mode 100644 index 0000000000..2d5709f3f5 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-bsp/lm_sensors/lmsensors/0001-lm-sensors-fix-sensors-detect-can-t-read-the-cpu-inf.patch @@ -0,0 +1,74 @@ +From dd9b40c54f160a44f1d78e5946d4cd00a8852802 Mon Sep 17 00:00:00 2001 +From: Dengke Du <dengke.du@windriver.com> +Date: Wed, 21 Sep 2016 03:17:32 -0400 +Subject: [PATCH] lm-sensors: fix sensors-detect can't read the cpu information + on fsl-t4xxx + +This is because two reasons: + +1. The sensors-detect program in lm-sensors depends on the file '/proc/cpuinfo', + different arch write different infomation to it. That program supports x86 + and x86-64 well, but weak on ppc and arm. + +2. The sensors-detect program show the cpu information just design for intel's + cpu, when meets other arch, it can't output the correct information. + +So we need to add the ppc and arm support for this program: + +1. add the ppc cpu information field 'cpu' in initialize_cpu_list function. + +2. add the correspond case of ppc and arm when print cpu information in + print_cpu_info function. + +Upstream-Status: Pending + +Signed-off-by: Dengke Du <dengke.du@windriver.com> +--- + prog/detect/sensors-detect | 11 ++++++++++- + 1 file changed, 10 insertions(+), 1 deletion(-) + +diff --git a/prog/detect/sensors-detect b/prog/detect/sensors-detect +index 5f62405..ae4def1 100755 +--- a/prog/detect/sensors-detect ++++ b/prog/detect/sensors-detect +@@ -2833,6 +2833,7 @@ sub kernel_version_at_least + # model name and stepping, directly taken from /proc/cpuinfo. + use vars qw(@cpu); + ++# The added field 'cpu' is for support the ppc. + sub initialize_cpu_list + { + local $_; +@@ -2848,7 +2849,7 @@ sub initialize_cpu_list + }; + next; + } +- if (m/^(vendor_id|cpu family|model|model name|stepping|cpuid level)\s*:\s*(.+)$/) { ++ if (m/^(vendor_id|cpu family|model|model name|stepping|cpuid level|cpu|revision)\s*:\s*(.+)$/) { + my $k = $1; + my $v = $2; + $v =~ s/\s+/ /g; # Merge multiple spaces +@@ -2861,12 +2862,20 @@ sub initialize_cpu_list + push @cpu, $entry if scalar keys(%{$entry}); # Last entry + } + ++# The field 'model name' is for ARM. ++# The field 'cpu' is for ppc. + sub print_cpu_info + { + my $cpu = $cpu[0]; + if ( $cpu->{'model name'} && $cpu->{'cpu family'} && $cpu->{model} && $cpu->{stepping} ) { + print "# Processor: $cpu->{'model name'} ($cpu->{'cpu family'}/$cpu->{model}/$cpu->{stepping})\n"; + } ++ elsif ( $cpu->{'model name'} ) { ++ print "# Processor: $cpu->{'model name'}\n"; ++ } ++ elsif ( $cpu->{'cpu'} && $cpu->{'revision'} ) { ++ print "# Processor: $cpu->{'cpu'} $cpu->{'revision'}\n"; ++ } + else { + print "# Processor: There isn't enough cpu info for this arch!!!\n"; + } +-- +2.8.1 + diff --git a/meta-openembedded/meta-oe/recipes-bsp/lm_sensors/lmsensors_3.4.0.bb b/meta-openembedded/meta-oe/recipes-bsp/lm_sensors/lmsensors_3.4.0.bb index ffab5d6bf4..4dbef73b9f 100644 --- a/meta-openembedded/meta-oe/recipes-bsp/lm_sensors/lmsensors_3.4.0.bb +++ b/meta-openembedded/meta-oe/recipes-bsp/lm_sensors/lmsensors_3.4.0.bb @@ -12,6 +12,7 @@ SRC_URI = "https://github.com/groeck/lm-sensors/archive/V3-4-0.tar.gz \ file://sensord.init \ file://0001-lmsensors-sensors-detect-print-a-special-message-whe.patch \ file://0001-prog-Do-not-limit-sys-io.h-header-include-to-just-gl.patch \ + file://0001-lm-sensors-fix-sensors-detect-can-t-read-the-cpu-inf.patch \ " SRC_URI[md5sum] = "1e9f117cbfa11be1955adc96df71eadb" SRC_URI[sha256sum] = "e334c1c2b06f7290e3e66bdae330a5d36054701ffd47a5dde7a06f9a7402cb4e" diff --git a/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd/defconfig b/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd/defconfig index 2789640170..a62bec4034 100644 --- a/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd/defconfig +++ b/meta-openembedded/meta-oe/recipes-connectivity/hostapd/hostapd/defconfig @@ -139,6 +139,9 @@ CONFIG_DRIVER_RADIUS_ACL=y # IEEE 802.11n (High Throughput) support CONFIG_IEEE80211N=y +# IEEE 802.11ac (Very High Throughput) support +CONFIG_IEEE80211AC=y + # Remove debugging code that is printing out debug messages to stdout. # This can be used to reduce the size of the hostapd considerably if debugging # code is not needed. diff --git a/meta-openembedded/meta-oe/recipes-connectivity/irssi/irssi_1.0.4.bb b/meta-openembedded/meta-oe/recipes-connectivity/irssi/irssi_1.1.2.bb index 10b04bb524..e2867e84b7 100644 --- a/meta-openembedded/meta-oe/recipes-connectivity/irssi/irssi_1.0.4.bb +++ b/meta-openembedded/meta-oe/recipes-connectivity/irssi/irssi_1.1.2.bb @@ -6,8 +6,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=55fdc1113306167d6ea2561404ce02f8" DEPENDS = "glib-2.0 ncurses openssl" SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/${PV}/${BP}.tar.xz" -SRC_URI[md5sum] = "46d4ac2a7ab472e5dc800e5d7bd9a879" -SRC_URI[sha256sum] = "b85c07dbafe178213eccdc69f5f8f0ac024dea01c67244668f91ec1c06b986ca" +SRC_URI[md5sum] = "271d2fd875cddd34526234d8a766d82c" +SRC_URI[sha256sum] = "5ccc2b89a394e91bea0aa83a951c3b1d471c76da87b4169ec435530a31bf9732" inherit autotools pkgconfig diff --git a/meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd_0.14.bb b/meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd_0.14.bb new file mode 100644 index 0000000000..1dfbed9fd4 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-connectivity/iwd/iwd_0.14.bb @@ -0,0 +1,31 @@ +DESCRIPTION = "Wireless daemon for Linux" +LICENSE = "LGPL-2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=fb504b67c50331fc78734fed90fb0e09" + +inherit autotools pkgconfig systemd + +DEPENDS = "ell readline dbus" + +SRC_URI = "git://git.kernel.org/pub/scm/network/wireless/iwd.git" +SRCREV = "f87159964cf8fd9f85b0699d50e4a051d4f7c948" +S = "${WORKDIR}/git" + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" +PACKAGECONFIG[wired] = "--enable-wired,--disable-wired" +PACKAGECONFIG[ofono] = "--enable-ofono,--disable-ofono" +PACKAGECONFIG[systemd] = "--with-systemd-unitdir=${systemd_system_unitdir},--disable-systemd-service,systemd" + +EXTRA_OECONF += "--enable-external-ell" + +do_configure_prepend () { + mkdir -p ${S}/build-aux +} + +do_install_append() { + mkdir --parents ${D}${docdir}/${BPN} + install -m644 ${S}/doc/*.txt ${D}${docdir}/${BPN} +} + +FILES_${PN} += "${datadir}/dbus-1" + +SYSTEMD_SERVICE_${PN} = "iwd.service ${@bb.utils.contains('PACKAGECONFIG', 'wired', 'ead.service', '', d)}" diff --git a/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5_1.16.1.bb b/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5_1.17.bb index 11748cbd00..e27a4ae078 100644 --- a/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5_1.16.1.bb +++ b/meta-openembedded/meta-oe/recipes-connectivity/krb5/krb5_1.17.bb @@ -14,7 +14,7 @@ DESCRIPTION = "Kerberos is a system for authenticating users and services on a n HOMEPAGE = "http://web.mit.edu/Kerberos/" SECTION = "console/network" LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://${S}/../NOTICE;md5=7f95bc3d8d0351aa481d56d5e9de20c3" +LIC_FILES_CHKSUM = "file://${S}/../NOTICE;md5=aff541e7261f1926ac6a2a9a7bbab839" DEPENDS = "bison-native ncurses util-linux e2fsprogs e2fsprogs-native openssl" inherit autotools-brokensep binconfig perlnative systemd update-rc.d @@ -31,19 +31,21 @@ SRC_URI = "http://web.mit.edu/kerberos/dist/${BPN}/${SHRT_VER}/${BP}.tar.gz \ file://krb5-kdc.service \ file://krb5-admin-server.service \ " -SRC_URI[md5sum] = "848e9b80d6aaaa798e3f3df24b83c407" -SRC_URI[sha256sum] = "214ffe394e3ad0c730564074ec44f1da119159d94281bbec541dc29168d21117" +SRC_URI[md5sum] = "3b729d89eb441150e146780c4138481b" +SRC_URI[sha256sum] = "5a6e2284a53de5702d3dc2be3b9339c963f9b5397d3fbbc53beb249380a781f5" CVE_PRODUCT = "kerberos" +CVE_VERSION = "5-${PV}" S = "${WORKDIR}/${BP}/src" -PACKAGECONFIG ??= "" +PACKAGECONFIG ??= "pkinit" PACKAGECONFIG[libedit] = "--with-libedit,--without-libedit,libedit" PACKAGECONFIG[openssl] = "--with-crypto-impl=openssl,,openssl" PACKAGECONFIG[keyutils] = "--enable-keyutils,--disable-keyutils,keyutils" PACKAGECONFIG[ldap] = "--with-ldap,--without-ldap,openldap" PACKAGECONFIG[readline] = "--with-readline,--without-readline,readline" +PACKAGECONFIG[pkinit] = "--enable-pkinit, --disable-pkinit" EXTRA_OECONF += " --without-tcl --with-system-et --disable-rpath" CACHED_CONFIGUREVARS += "krb5_cv_attr_constructor_destructor=yes ac_cv_func_regcomp=yes \ @@ -103,6 +105,7 @@ PACKAGES =+ "${PN}-admin-server \ ${PN}-kpropd \ ${PN}-otp \ ${PN}-pkinit \ + ${PN}-spake \ ${PN}-user \ libgssapi-krb5 \ libgssrpc \ @@ -149,6 +152,7 @@ FILES_${PN}-kdc-ldap = "${libdir}/krb5/libkdb_ldap${SOLIBS} \ FILES_${PN}-kpropd = "${sbindir}/kpropd" FILES_${PN}-otp = "${libdir}/krb5/plugins/preauth/otp.so" FILES_${PN}-pkinit = "${libdir}/krb5/plugins/preauth/pkinit.so" +FILES_${PN}-spake = "${libdir}/krb5/plugins/preauth/spake.so" FILES_${PN}-user = "${bindir}/k*" FILES_libgssapi-krb5 = "${libdir}/libgssapi_krb5${SOLIBS}" diff --git a/meta-openembedded/meta-oe/recipes-connectivity/libev/libev_4.24.bb b/meta-openembedded/meta-oe/recipes-connectivity/libev/libev_4.25.bb index a5838d3686..9456e51f1b 100644 --- a/meta-openembedded/meta-oe/recipes-connectivity/libev/libev_4.24.bb +++ b/meta-openembedded/meta-oe/recipes-connectivity/libev/libev_4.25.bb @@ -5,9 +5,8 @@ LICENSE = "BSD-2-Clause | GPL-2.0+" LIC_FILES_CHKSUM = "file://LICENSE;md5=d6ad416afd040c90698edcdf1cbee347" SRC_URI = "http://dist.schmorp.de/libev/Attic/${BP}.tar.gz" - -SRC_URI[md5sum] = "94459a5a22db041dec6f98424d6efe54" -SRC_URI[sha256sum] = "973593d3479abdf657674a55afe5f78624b0e440614e2b8cb3a07f16d4d7f821" +SRC_URI[md5sum] = "911daf566534f745726015736a04f04a" +SRC_URI[sha256sum] = "78757e1c27778d2f3795251d9fe09715d51ce0422416da4abb34af3929c02589" inherit autotools diff --git a/meta-openembedded/meta-oe/recipes-connectivity/libmbim/libmbim/clang.patch b/meta-openembedded/meta-oe/recipes-connectivity/libmbim/libmbim/clang.patch index 92e657c00a..d88578418d 100644 --- a/meta-openembedded/meta-oe/recipes-connectivity/libmbim/libmbim/clang.patch +++ b/meta-openembedded/meta-oe/recipes-connectivity/libmbim/libmbim/clang.patch @@ -45,7 +45,7 @@ Index: libmbim-1.14.0/m4/compiler-warnings.m4 -Wdeclaration-after-statement -Wstrict-prototypes \ @@ -17,22 +37,23 @@ if test "$GCC" = "yes" -a "$set_more_war -Wmissing-include-dirs -Waggregate-return \ - -Wformat-security; do + -Wformat-security -Wtype-limits; do SAVE_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $option" + CFLAGS="$CFLAGS $option $WERROR" diff --git a/meta-openembedded/meta-oe/recipes-connectivity/libmbim/libmbim_1.16.0.bb b/meta-openembedded/meta-oe/recipes-connectivity/libmbim/libmbim_1.18.0.bb index 5260c0f14e..9f59ad6b4e 100644 --- a/meta-openembedded/meta-oe/recipes-connectivity/libmbim/libmbim_1.16.0.bb +++ b/meta-openembedded/meta-oe/recipes-connectivity/libmbim/libmbim_1.18.0.bb @@ -14,5 +14,5 @@ inherit autotools pkgconfig bash-completion SRC_URI = "http://www.freedesktop.org/software/${BPN}/${BPN}-${PV}.tar.xz \ file://clang.patch \ " -SRC_URI[md5sum] = "76ea4d8381989919b1d9b91c818fed80" -SRC_URI[sha256sum] = "c8ca50beeddd4b43309df5b698917268303bf176cea58fe4fe53d5bf0e93fac2" +SRC_URI[md5sum] = "840cd133bc0f715a7ee4797dd9ac5562" +SRC_URI[sha256sum] = "6cf40128d83d087946a7d8577e735526202e034d52f90047735329609097b282" diff --git a/meta-openembedded/meta-oe/recipes-connectivity/libqmi/libqmi/0001-qmi-network-Don-t-create-invalid-wds-start-network-w.patch b/meta-openembedded/meta-oe/recipes-connectivity/libqmi/libqmi/0001-qmi-network-Don-t-create-invalid-wds-start-network-w.patch deleted file mode 100644 index d230d68030..0000000000 --- a/meta-openembedded/meta-oe/recipes-connectivity/libqmi/libqmi/0001-qmi-network-Don-t-create-invalid-wds-start-network-w.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 8269f4d86927fbe19e78776a12736680fe9169b6 Mon Sep 17 00:00:00 2001 -From: Adrian Bunk <bunk@stusta.de> -Date: Mon, 1 Oct 2018 16:53:31 +0300 -Subject: [PATCH] qmi-network: Don't create invalid --wds-start-network when - APN is not set - -In 1.20.2 the warning for this was turned into an error. - -(cherry picked from commit 289d8ad6419895e2e1fba3d78a54a0db65da521d) ---- -Upstream-Status: Backport - - utils/qmi-network.in | 12 +++++++----- - 1 file changed, 7 insertions(+), 5 deletions(-) - -diff --git a/utils/qmi-network.in b/utils/qmi-network.in -index bf7bed9..a9e5299 100755 ---- a/utils/qmi-network.in -+++ b/utils/qmi-network.in -@@ -334,11 +334,13 @@ start_network () - - setup_data_format - -- START_NETWORK_ARGS="apn='$APN'" -- if [ -n "$APN_USER" ]; then -- START_NETWORK_ARGS="${START_NETWORK_ARGS},username='$APN_USER'" -- if [ -n "$APN_PASS" ]; then -- START_NETWORK_ARGS="${START_NETWORK_ARGS},password='$APN_PASS'" -+ if [ -n "$APN" ]; then -+ START_NETWORK_ARGS="apn='$APN'" -+ if [ -n "$APN_USER" ]; then -+ START_NETWORK_ARGS="${START_NETWORK_ARGS},username='$APN_USER'" -+ if [ -n "$APN_PASS" ]; then -+ START_NETWORK_ARGS="${START_NETWORK_ARGS},password='$APN_PASS'" -+ fi - fi - fi - --- -2.7.4 - diff --git a/meta-openembedded/meta-oe/recipes-connectivity/libqmi/libqmi_1.20.2.bb b/meta-openembedded/meta-oe/recipes-connectivity/libqmi/libqmi_1.22.2.bb index f0bc81cc9c..da13286b48 100644 --- a/meta-openembedded/meta-oe/recipes-connectivity/libqmi/libqmi_1.20.2.bb +++ b/meta-openembedded/meta-oe/recipes-connectivity/libqmi/libqmi_1.22.2.bb @@ -12,12 +12,12 @@ DEPENDS = "glib-2.0 glib-2.0-native" inherit autotools pkgconfig bash-completion SRC_URI = "http://www.freedesktop.org/software/${BPN}/${BPN}-${PV}.tar.xz \ - file://0001-qmi-network-Don-t-create-invalid-wds-start-network-w.patch \ file://0001-Detect-clang.patch \ " -SRC_URI[md5sum] = "584214476ab75c394160cb85fbccaa1d" -SRC_URI[sha256sum] = "c73459ca8bfe1213f8047858d4946fc1f58e164d4f488a7a6904edee25e2ca44" +SRC_URI[md5sum] = "3fd831c1b0de4a4432be628432a960ff" +SRC_URI[sha256sum] = "f1f1e514a89b1dcba05cf7274895e7301a2da4c947b7c2f17acb84fc74038227" PACKAGECONFIG ??= "udev mbim" PACKAGECONFIG[udev] = ",--without-udev,libgudev" PACKAGECONFIG[mbim] = "--enable-mbim-qmux,--disable-mbim-qmux,libmbim" + diff --git a/meta-openembedded/meta-oe/recipes-connectivity/libuv/libuv_1.20.3.bb b/meta-openembedded/meta-oe/recipes-connectivity/libuv/libuv_1.27.0.bb index a11ff9d2c4..c8239443c8 100644 --- a/meta-openembedded/meta-oe/recipes-connectivity/libuv/libuv_1.20.3.bb +++ b/meta-openembedded/meta-oe/recipes-connectivity/libuv/libuv_1.27.0.bb @@ -4,10 +4,9 @@ BUGTRACKER = "https://github.com/libuv/libuv/issues" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://LICENSE;md5=a68902a430e32200263d182d44924d47" -S = "${WORKDIR}/git" -SRCREV = "8cfd67e59195251dff793ee47c185c9d6a8f3818" -BRANCH = "v1.x" -SRC_URI = "git://github.com/libuv/libuv.git;protocol=https;branch=${BRANCH};" +SRC_URI = "https://github.com/libuv/libuv/archive/v${PV}.tar.gz" +SRC_URI[md5sum] = "cc2cf259442fbe85404e75691e8244e1" +SRC_URI[sha256sum] = "4afcdc84cd315b77c8e532e7b3fde43d536af0e2e835eafbd0e75518ed26dbed" inherit autotools diff --git a/meta-openembedded/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_3.0.0.bb b/meta-openembedded/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_3.1.0.bb index f38414862a..50620d99e8 100644 --- a/meta-openembedded/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_3.0.0.bb +++ b/meta-openembedded/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_3.1.0.bb @@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=4ce87f3facb6f911c142c8bef9bfb380" DEPENDS = "zlib" S = "${WORKDIR}/git" -SRCREV = "eaa935a80adb38b5cc4d09ce06ec987b87dcddfa" +SRCREV = "89eedcaa94e1c8a97ea3af10642fd224bcea068f" SRC_URI = "git://github.com/warmcat/libwebsockets.git;protocol=https;" inherit cmake pkgconfig @@ -21,6 +21,10 @@ PACKAGECONFIG[server] = "-DLWS_WITHOUT_SERVER=OFF,-DLWS_WITHOUT_SERVER=ON," PACKAGECONFIG[ssl] = "-DLWS_WITH_SSL=ON,-DLWS_WITH_SSL=OFF,openssl" PACKAGECONFIG[testapps] = "-DLWS_WITHOUT_TESTAPPS=OFF,-DLWS_WITHOUT_TESTAPPS=ON," +EXTRA_OECMAKE += " \ + -DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')} \ +" + PACKAGES =+ "${PN}-testapps" FILES_${PN}-testapps += "${datadir}/libwebsockets-test-server/*" diff --git a/meta-openembedded/meta-oe/recipes-connectivity/linuxptp/linuxptp/0003-include-missing-time.h-for-time_t.patch b/meta-openembedded/meta-oe/recipes-connectivity/linuxptp/linuxptp/0003-include-missing-time.h-for-time_t.patch deleted file mode 100644 index 96163f6542..0000000000 --- a/meta-openembedded/meta-oe/recipes-connectivity/linuxptp/linuxptp/0003-include-missing-time.h-for-time_t.patch +++ /dev/null @@ -1,26 +0,0 @@ -From b36cafdbcbe2193f5b669e703c608e19e23f80a3 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Sat, 15 Jul 2017 11:16:42 -0700 -Subject: [PATCH 3/4] include missing time.h for time_t - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - util.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/util.h b/util.h -index e912f19..3c634c1 100644 ---- a/util.h -+++ b/util.h -@@ -22,7 +22,7 @@ - - #include "ddt.h" - #include "ether.h" -- -+#include <time.h> - /** - * Table of human readable strings, one for each port state. - */ --- -2.13.3 - diff --git a/meta-openembedded/meta-oe/recipes-connectivity/linuxptp/linuxptp/0004-Adjust-include-header-sequence-to-avoid-duplicate-de.patch b/meta-openembedded/meta-oe/recipes-connectivity/linuxptp/linuxptp/0004-Adjust-include-header-sequence-to-avoid-duplicate-de.patch deleted file mode 100644 index e699275148..0000000000 --- a/meta-openembedded/meta-oe/recipes-connectivity/linuxptp/linuxptp/0004-Adjust-include-header-sequence-to-avoid-duplicate-de.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 3cd28aa771934d9165ff0d7e19932cde65de3e52 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Sat, 15 Jul 2017 11:16:57 -0700 -Subject: [PATCH 4/4] Adjust include header sequence to avoid duplicate - definitions on musl - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - raw.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/raw.c b/raw.c -index f51c829..494ea7f 100644 ---- a/raw.c -+++ b/raw.c -@@ -18,8 +18,6 @@ - */ - #include <errno.h> - #include <fcntl.h> --#include <linux/filter.h> --#include <linux/if_ether.h> - #include <net/ethernet.h> - #include <net/if.h> - #include <netinet/in.h> -@@ -32,6 +30,8 @@ - #include <sys/types.h> - #include <unistd.h> - -+#include <linux/filter.h> -+#include <linux/if_ether.h> - #include <linux/errqueue.h> - #include <linux/net_tstamp.h> - #include <linux/sockios.h> --- -2.13.3 - diff --git a/meta-openembedded/meta-oe/recipes-connectivity/linuxptp/linuxptp_1.8.bb b/meta-openembedded/meta-oe/recipes-connectivity/linuxptp/linuxptp_2.0.bb index c7b8b2933c..eb262d36b2 100644 --- a/meta-openembedded/meta-oe/recipes-connectivity/linuxptp/linuxptp_1.8.bb +++ b/meta-openembedded/meta-oe/recipes-connectivity/linuxptp/linuxptp_2.0.bb @@ -5,12 +5,10 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" SRC_URI = "http://sourceforge.net/projects/linuxptp/files/v${PV}/linuxptp-${PV}.tgz \ file://build-Allow-CC-and-prefix-to-be-overriden.patch \ file://no-incdefs-using-host-headers.patch \ - file://0003-include-missing-time.h-for-time_t.patch \ - file://0004-Adjust-include-header-sequence-to-avoid-duplicate-de.patch \ " -SRC_URI[md5sum] = "5688cdfe57932273e1dbf35b3b97b9a0" -SRC_URI[sha256sum] = "fa8e00f6ec73cefa7bb313dce7f60dfe5eb9e2bde3353594e9ac18edc93e5165" +SRC_URI[md5sum] = "d8bb7374943bb747db7786ac26f17f11" +SRC_URI[sha256sum] = "0a24d9401e87d4af023d201e234d91127d82c350daad93432106284aa9459c7d" EXTRA_OEMAKE = "ARCH=${TARGET_ARCH} \ EXTRA_CFLAGS='-D_GNU_SOURCE -DHAVE_CLOCK_ADJTIME -DHAVE_POSIX_SPAWN -DHAVE_ONESTEP_SYNC ${CFLAGS}'" diff --git a/meta-openembedded/meta-oe/recipes-connectivity/modemmanager/modemmanager/0001-Do-not-pass-null-string-to-s-printf-formatted-string.patch b/meta-openembedded/meta-oe/recipes-connectivity/modemmanager/modemmanager/0001-Do-not-pass-null-string-to-s-printf-formatted-string.patch new file mode 100644 index 0000000000..5fbafbb5dc --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-connectivity/modemmanager/modemmanager/0001-Do-not-pass-null-string-to-s-printf-formatted-string.patch @@ -0,0 +1,31 @@ +From b8862e6af1c6d022b8c182098e7deddb874ece19 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Tue, 18 Dec 2018 23:10:44 -0800 +Subject: [PATCH] Do not pass null string to %s printf formatted string + +Here the string is already decided to be NULL and passing +a null pointer to %s will not work + +Fixes +error: '%s' directive argument is null + +Upstream-Status: Submitted [https://gitlab.freedesktop.org/mobile-broadband/ModemManager/merge_requests/67] + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + plugins/mtk/mm-broadband-modem-mtk.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/plugins/mtk/mm-broadband-modem-mtk.c b/plugins/mtk/mm-broadband-modem-mtk.c +index 475a63ac..541de4a5 100644 +--- a/plugins/mtk/mm-broadband-modem-mtk.c ++++ b/plugins/mtk/mm-broadband-modem-mtk.c +@@ -191,7 +191,7 @@ get_supported_modes_ready (MMBaseModem *self, + + response = mm_base_modem_at_command_finish (MM_BASE_MODEM (self), res, &error); + if (!response) { +- mm_dbg ("Fail to get response %s", response); ++ mm_dbg ("Fail to get response"); + g_task_return_error (task, error); + g_object_unref (task); + return; diff --git a/meta-openembedded/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.8.2.bb b/meta-openembedded/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.8.2.bb index 01c621441f..f9b302a3db 100644 --- a/meta-openembedded/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.8.2.bb +++ b/meta-openembedded/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.8.2.bb @@ -9,10 +9,11 @@ LIC_FILES_CHKSUM = " \ inherit gnomebase gettext systemd vala gobject-introspection bash-completion -DEPENDS = "glib-2.0 libgudev dbus-glib intltool-native" +DEPENDS = "glib-2.0 libgudev dbus-glib intltool-native libxslt-native" SRC_URI = "http://www.freedesktop.org/software/ModemManager/ModemManager-${PV}.tar.xz \ file://0001-Do-not-set-Wno-unused-but-set-variable.patch \ + file://0001-Do-not-pass-null-string-to-s-printf-formatted-string.patch \ " SRC_URI[md5sum] = "a49c9f73e46c7b89e5efedda250d22c0" @@ -20,14 +21,14 @@ SRC_URI[sha256sum] = "96f2a5f0ed15532b4c4c185b756fdc0326e7c2027cea26a1264f91e098 S = "${WORKDIR}/ModemManager-${PV}" -PACKAGECONFIG ??= "mbim qmi polkit \ - ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \ +PACKAGECONFIG ??= "mbim qmi \ + ${@bb.utils.filter('DISTRO_FEATURES', 'systemd polkit', d)} \ " PACKAGECONFIG[systemd] = "--with-systemdsystemunitdir=${systemd_unitdir}/system/,," PACKAGECONFIG[polkit] = "--with-polkit=yes,--with-polkit=no,polkit" # Support WWAN modems and devices which speak the Mobile Interface Broadband Model (MBIM) protocol. -PACKAGECONFIG[mbim] = "--with-mbim,--with-mbim=no,libmbim" +PACKAGECONFIG[mbim] = "--with-mbim,--without-mbim,libmbim" # Support WWAN modems and devices which speak the Qualcomm MSM Interface (QMI) protocol. PACKAGECONFIG[qmi] = "--with-qmi,--without-qmi,libqmi" diff --git a/meta-openembedded/meta-oe/recipes-connectivity/mosh/mosh/0001-Fix-building-with-libc.patch b/meta-openembedded/meta-oe/recipes-connectivity/mosh/mosh/0001-Fix-building-with-libc.patch new file mode 100644 index 0000000000..100ede17bd --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-connectivity/mosh/mosh/0001-Fix-building-with-libc.patch @@ -0,0 +1,24 @@ +From efa9e49714b30d7d9128946a2504c93e10d109b5 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Tue, 29 Jan 2019 12:20:03 -0800 +Subject: [PATCH] Fix building with libc++ + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/network/network.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/network/network.cc b/src/network/network.cc +index 26da603..e480853 100644 +--- a/src/network/network.cc ++++ b/src/network/network.cc +@@ -335,7 +335,7 @@ bool Connection::try_bind( const char *addr, int port_low, int port_high ) + } + } + +- if ( bind( sock(), &local_addr.sa, local_addr_len ) == 0 ) { ++ if ( ::bind( sock(), &local_addr.sa, local_addr_len ) == 0 ) { + set_MTU( local_addr.sa.sa_family ); + return true; + } else if ( i == search_high ) { /* last port to search */ diff --git a/meta-openembedded/meta-oe/recipes-connectivity/mosh/mosh_1.3.0.bb b/meta-openembedded/meta-oe/recipes-connectivity/mosh/mosh_1.3.2.bb index 9fc8435ee6..9c439354d1 100644 --- a/meta-openembedded/meta-oe/recipes-connectivity/mosh/mosh_1.3.0.bb +++ b/meta-openembedded/meta-oe/recipes-connectivity/mosh/mosh_1.3.2.bb @@ -14,9 +14,11 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" DEPENDS = "protobuf-native protobuf ncurses zlib libio-pty-perl openssl libutempter" -SRC_URI = "http://mosh.mit.edu/mosh-${PV}.tar.gz" -SRC_URI[md5sum] = "d961276995936953bf2d5a794068b076" -SRC_URI[sha256sum] = "320e12f461e55d71566597976bd9440ba6c5265fa68fbf614c6f1c8401f93376" +SRC_URI = "http://mosh.mit.edu/mosh-${PV}.tar.gz \ + file://0001-Fix-building-with-libc.patch \ + " +SRC_URI[md5sum] = "5122f4d2b973ab7c38dcdac8c35cb61e" +SRC_URI[sha256sum] = "da600573dfa827d88ce114e0fed30210689381bbdcff543c931e4d6a2e851216" inherit autotools pkgconfig diff --git a/meta-openembedded/meta-oe/recipes-connectivity/packagegroups/packagegroup-tools-bluetooth.bb b/meta-openembedded/meta-oe/recipes-connectivity/packagegroups/packagegroup-tools-bluetooth.bb index f2a16dcf71..913e31111d 100644 --- a/meta-openembedded/meta-oe/recipes-connectivity/packagegroups/packagegroup-tools-bluetooth.bb +++ b/meta-openembedded/meta-oe/recipes-connectivity/packagegroups/packagegroup-tools-bluetooth.bb @@ -31,7 +31,3 @@ RDEPENDS_bluez5 = " \ pulseaudio-module-loopback', \ '', d)} \ " - -# Install bluez4 tools or bluez5 tools depending on what is specified in the distro. -# Otherwise install nothing. -RDEPENDS_${PN} = "${RDEPENDS_${BLUEZ}}" diff --git a/meta-openembedded/meta-oe/recipes-connectivity/rabbitmq-c/rabbitmq-c_0.7.0.bb b/meta-openembedded/meta-oe/recipes-connectivity/rabbitmq-c/rabbitmq-c_0.9.0.bb index e9846fdea5..5096d6cd3a 100644 --- a/meta-openembedded/meta-oe/recipes-connectivity/rabbitmq-c/rabbitmq-c_0.7.0.bb +++ b/meta-openembedded/meta-oe/recipes-connectivity/rabbitmq-c/rabbitmq-c_0.9.0.bb @@ -4,15 +4,16 @@ LIC_FILES_CHKSUM = "file://LICENSE-MIT;md5=6b7424f9db80cfb11fdd5c980b583f53" LICENSE = "MIT" SRC_URI = "git://github.com/alanxz/rabbitmq-c.git" -SRCREV = "4dde30ce8d984edda540349f57eb7995a87ba9de" +# v0.9.0-master +SRCREV = "7e693a23f7fb7120f85995d3c922814495be30db" S = "${WORKDIR}/git" DEPENDS = "popt openssl" -EXTRA_OECONF = "--disable-examples --enable-tools --disable-docs" +EXTRA_OECMAKE = "-DBUILD_EXAMPLES=OFF -DBUILD_TOOLS=ON -DBUILD_TOOLS_DOCS=OFF -DBUILD_API_DOCS=OFF" -inherit autotools pkgconfig +inherit cmake pkgconfig PACKAGE_BEFORE_PN += "${PN}-tools" FILES_${PN}-tools = "${bindir}" diff --git a/meta-openembedded/meta-oe/recipes-connectivity/wifi-test-suite/files/0001-Use-toolchain-from-environment-variables.patch b/meta-openembedded/meta-oe/recipes-connectivity/wifi-test-suite/files/0001-Use-toolchain-from-environment-variables.patch new file mode 100644 index 0000000000..9ee4a51f99 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-connectivity/wifi-test-suite/files/0001-Use-toolchain-from-environment-variables.patch @@ -0,0 +1,92 @@ +From 6b822b36739222d0c864249992b5d28e3ff4d948 Mon Sep 17 00:00:00 2001 +From: Adrian Friedli <adrian.friedli@husqvarnagroup.com> +Date: Mon, 3 Sep 2018 17:58:27 +0200 +Subject: [PATCH] Use toolchain from environment variables + +Upstream-Status: Submitted [https://github.com/Wi-FiTestSuite/Wi-FiTestSuite-Linux-DUT/pull/42] +Signed-off-by: Adrian Friedli <adrian.friedli@husqvarnagroup.com> +Signed-off-by: Ankit Navik <ankit.tarot@gmail.com> +--- + Makefile.inc | 7 ++++--- + WTGService/Makefile | 2 +- + console_src/Makefile | 2 +- + lib/Makefile | 6 +++--- + 4 files changed, 9 insertions(+), 8 deletions(-) + +diff --git a/Makefile.inc b/Makefile.inc +index b0edf5a..0094bdf 100644 +--- a/Makefile.inc ++++ b/Makefile.inc +@@ -13,14 +13,15 @@ + # NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE + # USE OR PERFORMANCE OF THIS SOFTWARE. + # +-CC = gcc ++CC ?= gcc ++AR ?= ar + LIB=lib + DUT=dut + CA=ca + UCC=ucc + CON=console_src + WTG=WTGService +-MAKE=make ++MAKE?=make + + # This is for WMM-PS + #for Ext TG +@@ -46,7 +47,7 @@ CFLAGS = -g -O2 -D_REENTRANT -Wall -I../inc + + DUTLIBS = ../lib/libwfa_dut.a -lpthread + CALIBS = ../lib/libwfa_ca.a -lpthread +-RANLIB = ranlib ++RANLIB ?= ranlib + + LIBWFA_NAME_DUT = libwfa_dut.a + LIBWFA_NAME_CA = libwfa_ca.a +diff --git a/WTGService/Makefile b/WTGService/Makefile +index 5312eb6..4855771 100644 +--- a/WTGService/Makefile ++++ b/WTGService/Makefile +@@ -13,7 +13,7 @@ + # NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE + # USE OR PERFORMANCE OF THIS SOFTWARE. + # +-CC=gcc ++CC?=gcc + CFLAGS= -Wall + LIB=-lpthread + +diff --git a/console_src/Makefile b/console_src/Makefile +index 8282283..d1098eb 100644 +--- a/console_src/Makefile ++++ b/console_src/Makefile +@@ -14,7 +14,7 @@ + # USE OR PERFORMANCE OF THIS SOFTWARE. + # + +-CC = gcc ++CC ?= gcc + CFLAGS = -g -DWFA_DEBUG -pthread + + TARGETS = wfa_con +diff --git a/lib/Makefile b/lib/Makefile +index ffcef94..299b8d6 100644 +--- a/lib/Makefile ++++ b/lib/Makefile +@@ -17,9 +17,9 @@ + include ../Makefile.inc + + all: ${LIB_OBJS} +- ar crv ${LIBWFA_NAME} $? +- ar crv ${LIBWFA_NAME_DUT} ${LIB_OBJS_DUT} +- ar crv ${LIBWFA_NAME_CA} ${LIB_OBJS_CA} ++ $(AR) crv ${LIBWFA_NAME} $? ++ $(AR) crv ${LIBWFA_NAME_DUT} ${LIB_OBJS_DUT} ++ $(AR) crv ${LIBWFA_NAME_CA} ${LIB_OBJS_CA} + ${RANLIB} ${LIBWFA_NAME} ${LIBWFA_NAME_DUT} ${LIBWFA_NAME_CA} + + wfa_tg.o: wfa_tg.c ../inc/wfa_agt.h ../inc/wfa_types.h ../inc/wfa_rsp.h ../inc/wfa_tlv.h ../inc/wfa_tg.h +-- +2.7.4 + diff --git a/meta-openembedded/meta-oe/recipes-connectivity/wifi-test-suite/files/0002-Add-missing-include-removes-unnedded-stuff-and-add-n.patch b/meta-openembedded/meta-oe/recipes-connectivity/wifi-test-suite/files/0002-Add-missing-include-removes-unnedded-stuff-and-add-n.patch new file mode 100644 index 0000000000..20fb6473f8 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-connectivity/wifi-test-suite/files/0002-Add-missing-include-removes-unnedded-stuff-and-add-n.patch @@ -0,0 +1,45 @@ +From 451b162c903a1ef070a75dc18171620f3beef7b3 Mon Sep 17 00:00:00 2001 +From: Ankit Navik <ankit.tarot@gmail.com> +Date: Tue, 25 Dec 2018 00:36:59 +0530 +Subject: [PATCH 2/3] Add missing include, removes unnedded stuff and add non + glibc rpc + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Reto Schneider <code@reto-schneider.ch> +Signed-off-by: Ankit Navik <ankit.tarot@gmail.com> +--- + Makefile | 2 +- + inc/wfa_tg.h | 3 +++ + 2 files changed, 4 insertions(+), 1 deletion(-) + +diff --git a/Makefile b/Makefile +index 2c41a17..5c4ad8c 100644 +--- a/Makefile ++++ b/Makefile +@@ -15,7 +15,7 @@ + # + include Makefile.inc + +-DIRS= ${LIB} ${DUT} ${CA} ${TC} ${WTG} ${CON} ++DIRS= ${LIB} ${DUT} ${CA} ${TC} + + all: + for i in ${DIRS}; do \ +diff --git a/inc/wfa_tg.h b/inc/wfa_tg.h +index 799bf9f..a1804dd 100644 +--- a/inc/wfa_tg.h ++++ b/inc/wfa_tg.h +@@ -24,6 +24,9 @@ + #ifndef _WFA_TG_H + #define _WFA_TG_H + ++#ifndef _WINDOWS ++#include <pthread.h> ++#endif + #include <sys/time.h> + + /* maximum number of streams to support */ +-- +2.7.4 + diff --git a/meta-openembedded/meta-oe/recipes-connectivity/wifi-test-suite/files/0003-fix-path-to-usr-sbin-for-script-and-make-script-for-.patch b/meta-openembedded/meta-oe/recipes-connectivity/wifi-test-suite/files/0003-fix-path-to-usr-sbin-for-script-and-make-script-for-.patch new file mode 100644 index 0000000000..a51302a0cb --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-connectivity/wifi-test-suite/files/0003-fix-path-to-usr-sbin-for-script-and-make-script-for-.patch @@ -0,0 +1,58 @@ +From fc7b7106dd0d8d123f20cbd8d408637fbc315e17 Mon Sep 17 00:00:00 2001 +From: Ankit Navik <ankit.tarot@gmail.com> +Date: Tue, 25 Dec 2018 01:12:32 +0530 +Subject: [PATCH 3/3] fix path to /usr/sbin for script and make script for + generic shell + +Signed-off-by: Ankit Navik <ankit.tarot@gmail.com> +--- + lib/wfa_cs.c | 4 ++-- + scripts/dev_send_frame | 2 +- + scripts/sta_reset_parm | 2 +- + 3 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/lib/wfa_cs.c b/lib/wfa_cs.c +index 6b1f5a2..2a18533 100644 +--- a/lib/wfa_cs.c ++++ b/lib/wfa_cs.c +@@ -319,7 +319,7 @@ int wfaStaGetIpConfig(int len, BYTE *caCmdBuf, int *respLen, BYTE *respBuf) + /* + * check a script file (the current implementation specific) + */ +- ret = access("/usr/local/sbin/getipconfig.sh", F_OK); ++ ret = access("/usr/sbin/getipconfig.sh", F_OK); + if(ret == -1) + { + ipconfigResp->status = STATUS_ERROR; +@@ -2115,7 +2115,7 @@ int wfaStaPresetParams(int len, BYTE *caCmdBuf, int *respLen, BYTE *respBuf) + st = remove("/tmp/processid.txt"); + } + +- sprintf(cmdStr, "/usr/local/sbin/findprocess.sh %s /tmp/processid.txt\n", "wpa_supplicant"); ++ sprintf(cmdStr, "/usr/sbin/findprocess.sh %s /tmp/processid.txt\n", "wpa_supplicant"); + st = system(cmdStr); + + tmpfd = fopen("/tmp/processid.txt", "r+"); +diff --git a/scripts/dev_send_frame b/scripts/dev_send_frame +index 9e6afd3..3c37d61 100644 +--- a/scripts/dev_send_frame ++++ b/scripts/dev_send_frame +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/usr/bin/env sh + + # + # Copyright (c) 2016 Wi-Fi Alliance +diff --git a/scripts/sta_reset_parm b/scripts/sta_reset_parm +index 2aff1f1..2c1c31e 100644 +--- a/scripts/sta_reset_parm ++++ b/scripts/sta_reset_parm +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/usr/bin/env sh + + # + # Copyright (c) 2016 Wi-Fi Alliance +-- +2.7.4 + diff --git a/meta-openembedded/meta-oe/recipes-connectivity/wifi-test-suite/files/0004-run-ranlib-per-library-and-use-AR.patch b/meta-openembedded/meta-oe/recipes-connectivity/wifi-test-suite/files/0004-run-ranlib-per-library-and-use-AR.patch new file mode 100644 index 0000000000..40af48970f --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-connectivity/wifi-test-suite/files/0004-run-ranlib-per-library-and-use-AR.patch @@ -0,0 +1,38 @@ +From cca2f9901fb4fdcdd49066fe434eae512964143f Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sat, 9 Feb 2019 07:59:47 -0800 +Subject: [PATCH 4/4] run ranlib per library and use AR + +Use AR variable to invoke archiver instead of hardcoding, helps cross +compile + +compiler ranlib e.g. llvm-ranlib fails to operate on multiple archives +on single invocation + +fixes errors like +arm-yoe-linux-musleabi-llvm-ranlib: error: Exactly one archive should be specified. + +Upstream-Status: Submitted [https://github.com/Wi-FiTestSuite/Wi-FiTestSuite-Linux-DUT/pull/47] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + lib/Makefile | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/lib/Makefile b/lib/Makefile +index 299b8d6..5fca322 100644 +--- a/lib/Makefile ++++ b/lib/Makefile +@@ -20,7 +20,9 @@ all: ${LIB_OBJS} + $(AR) crv ${LIBWFA_NAME} $? + $(AR) crv ${LIBWFA_NAME_DUT} ${LIB_OBJS_DUT} + $(AR) crv ${LIBWFA_NAME_CA} ${LIB_OBJS_CA} +- ${RANLIB} ${LIBWFA_NAME} ${LIBWFA_NAME_DUT} ${LIBWFA_NAME_CA} ++ ${RANLIB} ${LIBWFA_NAME} ++ ${RANLIB} ${LIBWFA_NAME_DUT} ++ ${RANLIB} ${LIBWFA_NAME_CA} + + wfa_tg.o: wfa_tg.c ../inc/wfa_agt.h ../inc/wfa_types.h ../inc/wfa_rsp.h ../inc/wfa_tlv.h ../inc/wfa_tg.h + +-- +2.20.1 + diff --git a/meta-openembedded/meta-oe/recipes-connectivity/wifi-test-suite/wifi-test-suite_git.bb b/meta-openembedded/meta-oe/recipes-connectivity/wifi-test-suite/wifi-test-suite_git.bb new file mode 100644 index 0000000000..99cfb32051 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-connectivity/wifi-test-suite/wifi-test-suite_git.bb @@ -0,0 +1,38 @@ +SUMMARY = "Wi-Fi Test Suite Linux Control Agent" +DESCRIPTION = "Wi-Fi Test Suite is a software platform originally developed \ +by Wi-Fi Alliance, the global non-profit industry association that brings you \ +Wi-Fi, to support certification program development and device certification." +HOMEPAGE = "https://www.wi-fi.org/certification/wi-fi-test-suite" +LICENSE = "ISC" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=0542427ed5c315ca34aa09ae7a85ed32" +SECTION = "test" + +S = "${WORKDIR}/git" +SRCREV = "f7a8d7ef7d1a831c1bb47de21fa083536ea2f3a9" +SRC_URI = "git://github.com/Wi-FiTestSuite/Wi-FiTestSuite-Linux-DUT.git \ + file://0001-Use-toolchain-from-environment-variables.patch \ + file://0002-Add-missing-include-removes-unnedded-stuff-and-add-n.patch \ + file://0003-fix-path-to-usr-sbin-for-script-and-make-script-for-.patch \ + file://0004-run-ranlib-per-library-and-use-AR.patch \ +" + +# to avoid host path QA error +CFLAGS += "-I${STAGING_INCDIR}/tirpc" +# Fix GNU HASH error +TARGET_CC_ARCH += "${LDFLAGS}" + +do_install () { + install -d ${D}${libdir} + install -m 0644 ${S}/lib/libwfa.a ${D}${libdir} + install -m 0644 ${S}/lib/libwfa_ca.a ${D}${libdir} + install -m 0644 ${S}/lib/libwfa_dut.a ${D}${libdir} + install -d ${D}${sbindir} + install -m 0755 ${S}/dut/wfa_dut ${D}${sbindir} + install -m 0755 ${S}/ca/wfa_ca ${D}${sbindir} + install -m 0755 ${S}/scripts/*.sh ${D}${sbindir} + install -m 0755 ${S}/scripts/arp_neigh_loop ${D}${sbindir} + install -m 0755 ${S}/scripts/dev_send_frame ${D}${sbindir} + install -m 0755 ${S}/scripts/sta_reset_parm ${D}${sbindir} +} + +RDEPENDS_${PN} = "wpa-supplicant" diff --git a/meta-openembedded/meta-oe/recipes-connectivity/zeromq/czmq_4.1.1.bb b/meta-openembedded/meta-oe/recipes-connectivity/zeromq/czmq_4.1.1.bb new file mode 100644 index 0000000000..f2db0041c7 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-connectivity/zeromq/czmq_4.1.1.bb @@ -0,0 +1,30 @@ +DESCRIPTION = "C bindings for ZeroMQ" +HOMEPAGE = "http://www.zeromq.org" +LICENSE = "MPL-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=9741c346eef56131163e13b9db1241b3" +DEPENDS = "zeromq" + +SRC_URI = "https://github.com/zeromq/czmq/releases/download/v${PV}/czmq-${PV}.tar.gz \ + file://0001-Problem-out-of-date-with-zproject.patch \ +" + +SRC_URI[md5sum] = "6d3a6fdd25c2bb29897c53670dce97bf" +SRC_URI[sha256sum] = "f00ff419881dc2a05d0686c8467cd89b4882677fc56f31c0e2cc81c134cbb0c0" + +inherit cmake + +PACKAGES = "lib${BPN} lib${BPN}-dev lib${BPN}-staticdev ${PN} ${PN}-dbg" + +FILES_${PN} = "${bindir}/*" +FILES_lib${BPN} = "${libdir}/*.so.*" +FILES_lib${BPN}-dev = "${libdir}/*.so ${libdir}/pkgconfig ${includedir}" +FILES_lib${BPN}-staticdev = "${libdir}/lib*.a" + +RDEPENDS_lib${BPN}-dev = "zeromq-dev" + +PACKAGECONFIG ??= "lz4 uuid" +PACKAGECONFIG[lz4] = ",-DCMAKE_DISABLE_FIND_PACKAGE_lz4=TRUE,lz4" +PACKAGECONFIG[uuid] = ",-DCMAKE_DISABLE_FIND_PACKAGE_uuid=TRUE,util-linux" + +BBCLASSEXTEND = "nativesdk" + diff --git a/meta-openembedded/meta-oe/recipes-connectivity/zeromq/files/0001-Problem-out-of-date-with-zproject.patch b/meta-openembedded/meta-oe/recipes-connectivity/zeromq/files/0001-Problem-out-of-date-with-zproject.patch new file mode 100644 index 0000000000..5f5702c8c8 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-connectivity/zeromq/files/0001-Problem-out-of-date-with-zproject.patch @@ -0,0 +1,31 @@ +From d155ffd33630f80b23c31b3a6e01da221dd9bd13 Mon Sep 17 00:00:00 2001 +From: Luca Boccassi <luca.boccassi@gmail.com> +Date: Fri, 30 Mar 2018 16:36:22 +0100 +Subject: [PATCH] Problem: out of date with zproject + +Upstream-Status: backport +Signed-off-by: Adrian Bunk <bunk@stusta.de> + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index a3b81722..4f203461 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -38,7 +38,7 @@ if (NOT CMAKE_BUILD_TYPE) + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + message(STATUS "git workspace root [${git_result}]: ${git_root}") +- if ( "${git_result}" == "0" ) ++ if ( "${git_result}" STREQUAL "0" ) + set (CMAKE_BUILD_TYPE Debug) + else () + set (CMAKE_BUILD_TYPE Release) +@@ -608,7 +608,7 @@ add_custom_command( + TARGET distclean + ) + +-include(ClangFormat) ++include(ClangFormat OPTIONAL) + + ######################################################################## + # summary + diff --git a/meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker_git.bb b/meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker_19.bb index ac0f325a4d..82d8b8ba68 100644 --- a/meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker_git.bb +++ b/meta-openembedded/meta-oe/recipes-core/dbus/dbus-broker_19.bb @@ -6,18 +6,12 @@ SECTION = "base" LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://LICENSE;md5=7b486c2338d225a1405d979ed2c15ce8" -DEPENDS = "dbus glib-2.0 expat" - -PV = "16+git${SRCPV}" -SRCREV = "fc874afa0992d0c75ec25acb43d344679f0ee7d2" - -SRC_URI = "gitsm://github.com/bus1/dbus-broker;protocol=git" - -S = "${WORKDIR}/git" +SRC_URI = "https://github.com/bus1/dbus-broker/releases/download/v${PV}/dbus-broker-${PV}.tar.xz" +SRC_URI[sha256sum] = "1648227f5a347d4f38d8a29bb9295a73a25c3feb4f3e79e3f04cc847343da3ed" inherit meson pkgconfig systemd distro_features_check -EXTRA_OEMESON += "-Ddocs=false" +DEPENDS = "expat systemd" REQUIRED_DISTRO_FEATURES = "systemd" @@ -25,8 +19,3 @@ SYSTEMD_SERVICE_${PN} = "${BPN}.service" FILES_${PN} += "${systemd_system_unitdir}" FILES_${PN} += "${systemd_user_unitdir}" - -RDEPENDS_${PN} = "dbus" - -BBCLASSEXTEND = "native" - diff --git a/meta-openembedded/meta-oe/recipes-core/ell/ell/0001-dhcp-include-if_arp.h-from-libc-instead-of-linux-hea.patch b/meta-openembedded/meta-oe/recipes-core/ell/ell/0001-dhcp-include-if_arp.h-from-libc-instead-of-linux-hea.patch deleted file mode 100644 index ada65401a3..0000000000 --- a/meta-openembedded/meta-oe/recipes-core/ell/ell/0001-dhcp-include-if_arp.h-from-libc-instead-of-linux-hea.patch +++ /dev/null @@ -1,39 +0,0 @@ -From d8236d1d789f496a193dae5d2a15d706b81f6482 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Martin=20Hundeb=C3=B8ll?= <martin@geanix.com> -Date: Thu, 12 Jul 2018 10:19:50 +0200 -Subject: [PATCH] dhcp: include if_arp.h from libc instead of linux headers -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit -To: ell@lists.01.org - -Compilation with musl libc fails due to redefinition of 'struct -arp{req,req_old,hdr}' in linux/if_arp.h, since it is already defined and -included in net/if_arp.h (through net/ethernet.h -> net/if_ether.h). - -The only symbols used from if_arp.h is ARPHRD_ETHER, so it should be -safe to avoid the compile error by including the if_arp.h header from -the c-library instead. - -Upstream-Status: Backport [https://lists.01.org/pipermail/ell/2018-July/001244.html] -Signed-off-by: Martin Hundebøll <martin@geanix.com> ---- - ell/dhcp.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/ell/dhcp.c b/ell/dhcp.c -index 6c90370..0d99f74 100644 ---- a/ell/dhcp.c -+++ b/ell/dhcp.c -@@ -27,7 +27,7 @@ - #include <netinet/ip.h> - #include <net/ethernet.h> - #include <linux/types.h> --#include <linux/if_arp.h> -+#include <net/if_arp.h> - #include <errno.h> - #include <time.h> - --- -2.18.0 - diff --git a/meta-openembedded/meta-oe/recipes-core/ell/ell_0.8.bb b/meta-openembedded/meta-oe/recipes-core/ell/ell_0.17.bb index 0428cab286..27f11cfbe2 100644 --- a/meta-openembedded/meta-oe/recipes-core/ell/ell_0.8.bb +++ b/meta-openembedded/meta-oe/recipes-core/ell/ell_0.17.bb @@ -7,7 +7,7 @@ SECTION = "libs" inherit autotools pkgconfig S = "${WORKDIR}/git" -SRCREV = "d572281caedef357c392a7c9aa65a3b21a18cfdb" +SRCREV = "ebc021cee3b2d20ca2af5e3ed02495da616b2fd3" SRC_URI = "git://git.kernel.org/pub/scm/libs/ell/ell.git" do_configure_prepend () { diff --git a/meta-openembedded/meta-oe/recipes-core/glib-2.0/glibmm/remove-examples.patch b/meta-openembedded/meta-oe/recipes-core/glib-2.0/glibmm/remove-examples.patch index d32fe78d32..42f2520175 100644 --- a/meta-openembedded/meta-oe/recipes-core/glib-2.0/glibmm/remove-examples.patch +++ b/meta-openembedded/meta-oe/recipes-core/glib-2.0/glibmm/remove-examples.patch @@ -1,6 +1,7 @@ -From f48a69fd11b2eda6c43ff046c202cbc4dcd4e92d Mon Sep 17 00:00:00 2001 +From 52360260c0d73a00082d867bc416225fbc2b657e Mon Sep 17 00:00:00 2001 From: Koen Kooi <koen@dominion.thruhere.net> Date: Tue, 12 Jul 2011 11:46:37 +0200 +Subject: [PATCH] glibmm: add 2.28.2 --- Makefile.am | 7 +------ @@ -8,7 +9,7 @@ Date: Tue, 12 Jul 2011 11:46:37 +0200 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/Makefile.am b/Makefile.am -index a0df8af..c3d5e06 100644 +index 1b366b4..0ff58b5 100644 --- a/Makefile.am +++ b/Makefile.am @@ -23,12 +23,7 @@ src_subdirs = glib/src gio/src @@ -26,7 +27,7 @@ index a0df8af..c3d5e06 100644 glibmm_includedir = $(includedir)/$(GLIBMM_MODULE_NAME) glibmm_include_HEADERS = glib/glibmm.h diff --git a/configure.ac b/configure.ac -index c20e778..74203be 100644 +index e706687..198e0d0 100644 --- a/configure.ac +++ b/configure.ac @@ -166,7 +166,6 @@ AC_CONFIG_FILES([Makefile @@ -36,4 +37,4 @@ index c20e778..74203be 100644 - examples/Makefile docs/Makefile docs/reference/Doxyfile - MSVC_Net2013/glibmm/glibmm.rc + MSVC_NMake/glibmm/glibmm.rc diff --git a/meta-openembedded/meta-oe/recipes-core/glib-2.0/glibmm_2.56.0.bb b/meta-openembedded/meta-oe/recipes-core/glib-2.0/glibmm_2.58.1.bb index 2f048d2f68..87ab0cbc5c 100644 --- a/meta-openembedded/meta-oe/recipes-core/glib-2.0/glibmm_2.56.0.bb +++ b/meta-openembedded/meta-oe/recipes-core/glib-2.0/glibmm_2.58.1.bb @@ -14,8 +14,8 @@ SRC_URI = " \ ftp://ftp.gnome.org/pub/GNOME/sources/glibmm/${SHRT_VER}/glibmm-${PV}.tar.xz \ file://remove-examples.patch \ " -SRC_URI[md5sum] = "5aa7a60084fe3e01d746c96f4a115302" -SRC_URI[sha256sum] = "6e74fcba0d245451c58fc8a196e9d103789bc510e1eee1a9b1e816c5209e79a9" +SRC_URI[md5sum] = "77f1016cbb27e15d4e04a2b7bfdb4cae" +SRC_URI[sha256sum] = "6e5fe03bdf1e220eeffd543e017fd2fb15bcec9235f0ffd50674aff9362a85f0" do_install_append() { install -d ${D}${datadir}/glibmm-2.4 diff --git a/meta-openembedded/meta-oe/recipes-core/libsigc++-2.0/libsigc++-2.0_2.10.0.bb b/meta-openembedded/meta-oe/recipes-core/libsigc++-2.0/libsigc++-2.0_2.10.1.bb index 53bd5de109..62054a1163 100644 --- a/meta-openembedded/meta-oe/recipes-core/libsigc++-2.0/libsigc++-2.0_2.10.0.bb +++ b/meta-openembedded/meta-oe/recipes-core/libsigc++-2.0/libsigc++-2.0_2.10.1.bb @@ -6,8 +6,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d8045f3b8f929c1cb29a1e3fd737b499" DEPENDS = "mm-common" SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/libsigc++/2.10/libsigc++-${PV}.tar.xz" -SRC_URI[md5sum] = "70bcbde2c900e4925d6ef4bf50954195" -SRC_URI[sha256sum] = "f843d6346260bfcb4426259e314512b99e296e8ca241d771d21ac64f28298d81" +SRC_URI[md5sum] = "549cffbdb72fa105b782756f2713ffc7" +SRC_URI[sha256sum] = "c9a25f26178c6cbb147f9904d8c533b5a5c5111a41ac2eb781eb734eea446003" S = "${WORKDIR}/libsigc++-${PV}" diff --git a/meta-openembedded/meta-oe/recipes-core/ndctl/ndctl_git.bb b/meta-openembedded/meta-oe/recipes-core/ndctl/ndctl_v63.bb index 048f166fcd..1f3abf5143 100644 --- a/meta-openembedded/meta-oe/recipes-core/ndctl/ndctl_git.bb +++ b/meta-openembedded/meta-oe/recipes-core/ndctl/ndctl_v63.bb @@ -8,26 +8,23 @@ HOMEPAGE = "https://git.kernel.org/cgit/linux/kernel/git/nvdimm/nvdimm.git/tree/ LICENSE = "GPLv2+" LIC_FILES_CHKSUM = "file://COPYING;md5=e66651809cac5da60c8b80e9e4e79e08" -inherit autotools-brokensep pkgconfig module-base bash-completion systemd +inherit autotools-brokensep pkgconfig bash-completion systemd -# v62 -SRCREV = "11f560f4048c1d38b7011a49566871a1e8a07c94" +SRCREV = "cb2d678dd6d286dd96d31548c32449a8b883ae32" SRC_URI = "git://github.com/pmem/ndctl.git" DEPENDS = "virtual/kernel kmod udev json-c" -PV = "v62+git${SRCPV}" S = "${WORKDIR}/git" EXTRA_OECONF += "--enable-test --enable-destructive --disable-docs" -PACKAGECONFIG ??= "" -PACKAGECONFIG[systemd] = "--with-systemd-unit-dir=${systemd_system_unitdir}, --without-systemd-unit-dir," +PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES','systemd','systemd','',d)}" +PACKAGECONFIG[systemd] = "--with-systemd, --without-systemd, systemd" do_configure_prepend() { ${S}/autogen.sh } SYSTEMD_SERVICE_${PN} = "ndctl-monitor.service" - -COMPATIBLE_HOST='(x86_64).*' +SYSTEMD_AUTO_ENABLE_${PN} = "disable" diff --git a/meta-openembedded/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb b/meta-openembedded/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb index 62f1c77591..5fcf9899b6 100644 --- a/meta-openembedded/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb +++ b/meta-openembedded/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb @@ -136,8 +136,7 @@ RDEPENDS_packagegroup-meta-oe-extended ="\ libpwquality libqb libuio \ lockfile-progs logwatch lprng mailx md5deep \ mozjs mraa nana nicstat \ - p7zip p8platform libfile-fnmatch-perl polkit \ - polkit-group-rule-datetime polkit-group-rule-network \ + p7zip p8platform libfile-fnmatch-perl \ rarpd redis rrdtool libfastjson librelp rsyslog sanlock \ sblim-cmpi-devel sblim-sfc-common sblim-sfcc \ scsirastools sgpio smartmontools snappy can-isotp \ @@ -148,6 +147,8 @@ RDEPENDS_packagegroup-meta-oe-extended ="\ ${@bb.utils.contains("DISTRO_FEATURES", "bluez", "collectd", "", d)} \ ${@bb.utils.contains("DISTRO_FEATURES", "pam", "pam-plugin-ccreds pam-plugin-ldapdb", "", d)} \ ${@bb.utils.contains("DISTRO_FEATURES", "pam", "pam-ssh-agent-auth openwsman sblim-sfcb ", "", d)} \ + ${@bb.utils.contains("DISTRO_FEATURES", "polkit", "polkit polkit-group-rule-datetime ", "", d)} \ + ${@bb.utils.contains("DISTRO_FEATURES", "polkit", "polkit-group-rule-network ", "", d)} \ ${@bb.utils.contains("BBPATH", "meta-python", "openlmi-tools", "", d)} \ " RDEPENDS_packagegroup-meta-oe-extended_remove_mipsarch = "upm mraa tiptop" @@ -225,7 +226,7 @@ RDEPENDS_packagegroup-meta-oe-support ="\ anthy asio atop augeas avro-c bdwgc frame grail \ ccid ceres-solver ckermit cpprest ctapi-common daemonize \ daemontools debsums devmem2 dfu-util dfu-util-native digitemp \ - dstat eject enca epeg espeak espeak-data fbset fbset-modes \ + dstat eject enca epeg espeak fbset fbset-modes \ fftw fltk-native gd gflags glog gnulib gperftools \ gpm gradm gsl gsoap hddtemp hidapi htop hunspell hwdata iksemel \ libinih inotify-tools joe lcms lcov libatasmart libbytesize \ @@ -242,7 +243,7 @@ RDEPENDS_packagegroup-meta-oe-support ="\ sjf2410-linux-native satyr sdparm pty-forward-native serial-forward \ sg3-utils sharutils smem spitools srecord ssiapi start-stop-daemon stm32flash \ syslog-ng system-config-keyboard tbb thin-provisioning-tools tokyocabinet \ - tree udisks udisks2 uhubctl unixodbc upower uriparser usb-modeswitch \ + tree uhubctl unixodbc uriparser usb-modeswitch \ usb-modeswitch-data usbpath uthash utouch-evemu utouch-frame \ vim vim-tiny websocketpp wmiconfig xdelta3 xdg-user-dirs xmlstarlet \ zbar zile \ @@ -250,6 +251,7 @@ RDEPENDS_packagegroup-meta-oe-support ="\ ${@bb.utils.contains("DISTRO_FEATURES", "pulseadio bluez4", "libcanberra", "", d)} \ ${@bb.utils.contains("DISTRO_FEATURES", "x11 pam", "xorgxrdp xrdp", "", d)} \ ${@bb.utils.contains("DISTRO_FEATURES", "bluez4", "procmail", "", d)} \ + ${@bb.utils.contains("DISTRO_FEATURES", "polkit", "udisks udisks2 upower", "", d)} \ ${NE10} \ " diff --git a/meta-openembedded/meta-oe/recipes-core/plymouth/files/0002-Fix-build-with-glibc-2.28.patch b/meta-openembedded/meta-oe/recipes-core/plymouth/files/0002-Fix-build-with-glibc-2.28.patch deleted file mode 100644 index 8638f75b36..0000000000 --- a/meta-openembedded/meta-oe/recipes-core/plymouth/files/0002-Fix-build-with-glibc-2.28.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 0c0345303b7971d6cec478fd8b81d64bc1fbe0f6 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com> -Date: Tue, 21 Aug 2018 23:26:45 +0200 -Subject: [PATCH] Fix build with >= glibc 2.28 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Stolen from [1] - -[1] https://bugs.freedesktop.org/show_bug.cgi?id=102191 - -Upstream-Status: Pending - -Signed-off-by: Andreas Müller <schnitzeltony@gmail.com> ---- - src/libply-splash-core/ply-terminal.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/libply-splash-core/ply-terminal.c b/src/libply-splash-core/ply-terminal.c -index a0954f2..f3b32fe 100644 ---- a/src/libply-splash-core/ply-terminal.c -+++ b/src/libply-splash-core/ply-terminal.c -@@ -32,6 +32,7 @@ - #include <sys/socket.h> - #include <sys/stat.h> - #include <sys/types.h> -+#include <sys/sysmacros.h> - #include <termios.h> - #include <unistd.h> - #include <wchar.h> --- -2.14.4 - diff --git a/meta-openembedded/meta-oe/recipes-core/plymouth/plymouth_0.9.2.bb b/meta-openembedded/meta-oe/recipes-core/plymouth/plymouth_0.9.4.bb index a5b16c979f..305977e5e1 100644 --- a/meta-openembedded/meta-oe/recipes-core/plymouth/plymouth_0.9.2.bb +++ b/meta-openembedded/meta-oe/recipes-core/plymouth/plymouth_0.9.4.bb @@ -17,12 +17,12 @@ PROVIDES = "virtual/psplash" RPROVIDES_${PN} = "virtual-psplash virtual-psplash-support" SRC_URI = " \ - http://www.freedesktop.org/software/plymouth/releases/${BPN}-${PV}.tar.bz2 \ + http://www.freedesktop.org/software/plymouth/releases/${BPN}-${PV}.tar.xz \ file://0001-Make-full-path-to-systemd-tty-ask-password-agent-con.patch \ - file://0002-Fix-build-with-glibc-2.28.patch \ -" -SRC_URI[md5sum] = "ff420994deb7ea203df678df92e7ab7d" -SRC_URI[sha256sum] = "2f0ce82042cf9c7eadd2517a1f74c8a85fa8699781d9f294a06eade29fbed57f" + " + +SRC_URI[md5sum] = "4efa5551d230165981b105e7c6a50aa7" +SRC_URI[sha256sum] = "4a197a4f1a05785d7453dd829b231352fb2d09171bd86c5ffaafbb2dd6791351" EXTRA_OECONF += " --enable-shared --disable-static --disable-gtk --disable-documentation \ --with-logo=${LOGO} \ diff --git a/meta-openembedded/meta-oe/recipes-core/toybox/toybox_0.7.5.bb b/meta-openembedded/meta-oe/recipes-core/toybox/toybox_0.7.5.bb index 1ea868f672..614136e27f 100644 --- a/meta-openembedded/meta-oe/recipes-core/toybox/toybox_0.7.5.bb +++ b/meta-openembedded/meta-oe/recipes-core/toybox/toybox_0.7.5.bb @@ -48,7 +48,7 @@ do_install() { install -m 0644 ${B}/toybox.links ${D}${sysconfdir} } -inherit update-alternatives +inherit cml1 update-alternatives # If you've chosen to install toybox you probably want it to take precedence # over busybox where possible but not over other packages diff --git a/meta-openembedded/meta-oe/recipes-crypto/botan/botan_2.7.0.bb b/meta-openembedded/meta-oe/recipes-crypto/botan/botan_2.9.0.bb index 92853d00e8..a7d25d5674 100644 --- a/meta-openembedded/meta-oe/recipes-crypto/botan/botan_2.7.0.bb +++ b/meta-openembedded/meta-oe/recipes-crypto/botan/botan_2.9.0.bb @@ -4,15 +4,14 @@ DESCRIPTION = "Crypto and TLS for C++11" HOMEPAGE = "https://botan.randombit.net" LICENSE = "BSD-2-Clause" -LIC_FILES_CHKSUM = "file://license.txt;md5=bf361fc63df3fa25652ee82c43b7601a" +LIC_FILES_CHKSUM = "file://license.txt;md5=f4c145d4d70a3244a053c9f90d4841fc" SECTION = "libs" +SRC_URI = "https://botan.randombit.net/releases/Botan-${PV}.tgz" +SRC_URI[md5sum] = "db8403d6a2f10c20fde3f3c76be9a045" +SRC_URI[sha256sum] = "305564352334dd63ae63db039077d96ae52dfa57a3248871081719b6a9f2d119" -#v2.7.0 -SRCREV = "5874000d42c338ec95a7ff24cdc0c64e70f967b5" -SRC_URI = "git://github.com/randombit/botan.git" - -S = "${WORKDIR}/git" +S = "${WORKDIR}/Botan-${PV}" inherit python3native siteinfo lib_package @@ -52,4 +51,3 @@ PACKAGES += "${PN}-python3" FILES_${PN}-python3 = "${libdir}/python3" RDEPENDS_${PN}-python3 += "python3" - diff --git a/meta-openembedded/meta-oe/recipes-crypto/cryptsetup/cryptsetup_2.0.4.bb b/meta-openembedded/meta-oe/recipes-crypto/cryptsetup/cryptsetup_2.1.0.bb index cc7bc6e010..cf1d222423 100644 --- a/meta-openembedded/meta-oe/recipes-crypto/cryptsetup/cryptsetup_2.0.4.bb +++ b/meta-openembedded/meta-oe/recipes-crypto/cryptsetup/cryptsetup_2.1.0.bb @@ -11,9 +11,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=32107dd283b1dfeb66c9b3e6be312326" DEPENDS = "util-linux libdevmapper popt libgcrypt json-c" -SRC_URI = "${KERNELORG_MIRROR}/linux/utils/${BPN}/v2.0/${BP}.tar.xz" -SRC_URI[md5sum] = "ed42b31f67d05b05e392d1943d467b8d" -SRC_URI[sha256sum] = "9d3a3c7033293e0c97f0ad0501fd5b4d4913ae497cbf70cca06633ccc54b5734" +SRC_URI = "${KERNELORG_MIRROR}/linux/utils/${BPN}/v${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}/${BP}.tar.xz" +SRC_URI[md5sum] = "41d8b985ef69242852b93e95d53e8e28" +SRC_URI[sha256sum] = "a3eeb2741f8f3376d16585191f3c60e067dd987e096c3c4b073fab7748b1c897" inherit autotools gettext pkgconfig diff --git a/meta-openembedded/meta-oe/recipes-crypto/libkcapi/libkcapi_git.bb b/meta-openembedded/meta-oe/recipes-crypto/libkcapi/libkcapi_git.bb index a93ddc8237..46c66a1b2c 100644 --- a/meta-openembedded/meta-oe/recipes-crypto/libkcapi/libkcapi_git.bb +++ b/meta-openembedded/meta-oe/recipes-crypto/libkcapi/libkcapi_git.bb @@ -1,14 +1,13 @@ SUMMARY = "Linux Kernel Crypto API User Space Interface Library" HOMEPAGE = "http://www.chronox.de/libkcapi.html" LICENSE = "BSD | GPL-2.0" -LIC_FILES_CHKSUM = "file://COPYING;md5=d0421cf231423bda10cea691b613e866" +LIC_FILES_CHKSUM = "file://COPYING;md5=14d5a68b28755c04ebdba226e888b157" DEPENDS = "libtool" S = "${WORKDIR}/git" -# Use v1.1.3 with changes on top for building in OE -SRCREV = "1c736c43eb71fbb5640d00efaf34a1edf1972c49" -PV = "1.1.3+git${SRCPV}" +SRCREV = "3c56934f44a8f5a1257c342942e6e034fc6f20be" +PV = "1.1.4+git${SRCPV}" SRC_URI = " \ git://github.com/smuellerDD/libkcapi.git \ " @@ -16,13 +15,17 @@ SRC_URI = " \ inherit autotools PACKAGECONFIG ??= "" -PACKAGECONFIG[testapp] = "--enable-kcapi-test,,," +PACKAGECONFIG[testapp] = "--enable-kcapi-test,,,bash" PACKAGECONFIG[apps] = "--enable-kcapi-speed --enable-kcapi-hasher --enable-kcapi-rngapp --enable-kcapi-encapp --enable-kcapi-dgstapp,,," do_install_append() { # bindir contains testapp and apps. However it is always created, even # when no binaries are installed (empty bin_PROGRAMS in Makefile.am), rmdir --ignore-fail-on-non-empty ${D}${bindir} + + # Remove the generated binary checksum files + rm -f ${D}${bindir}/.*.hmac + rm -f ${D}${libdir}/.*.hmac } CPPFLAGS_append_libc-musl_toolchain-clang = " -Wno-error=sign-compare" diff --git a/meta-openembedded/meta-oe/recipes-crypto/libsodium/libsodium_1.0.16.bb b/meta-openembedded/meta-oe/recipes-crypto/libsodium/libsodium_1.0.17.bb index 57f38fec24..8d9302f30b 100644 --- a/meta-openembedded/meta-oe/recipes-crypto/libsodium/libsodium_1.0.16.bb +++ b/meta-openembedded/meta-oe/recipes-crypto/libsodium/libsodium_1.0.17.bb @@ -2,11 +2,11 @@ SUMMARY = "The Sodium crypto library" HOMEPAGE = "http://libsodium.org/" BUGTRACKER = "https://github.com/jedisct1/libsodium/issues" LICENSE = "ISC" -LIC_FILES_CHKSUM = "file://LICENSE;md5=7f5ecba1fa793fc1f3c8f32d6cb5a37b" +LIC_FILES_CHKSUM = "file://LICENSE;md5=47203c753972e855179dfffe15188bee" SRC_URI = "https://download.libsodium.org/libsodium/releases/${BPN}-${PV}.tar.gz" -SRC_URI[md5sum] = "37b18839e57e7a62834231395c8e962b" -SRC_URI[sha256sum] = "eeadc7e1e1bcef09680fb4837d448fbdf57224978f865ac1c16745868fbd0533" +SRC_URI[md5sum] = "0f71e2680187a1558b5461e6879342c5" +SRC_URI[sha256sum] = "0cc3dae33e642cc187b5ceb467e0ad0e1b51dcba577de1190e9ffa17766ac2b1" inherit autotools diff --git a/meta-openembedded/meta-oe/recipes-dbs/leveldb/leveldb_git.bb b/meta-openembedded/meta-oe/recipes-dbs/leveldb/leveldb_git.bb index 8fec89c6f1..908ad3e6bc 100644 --- a/meta-openembedded/meta-oe/recipes-dbs/leveldb/leveldb_git.bb +++ b/meta-openembedded/meta-oe/recipes-dbs/leveldb/leveldb_git.bb @@ -35,3 +35,7 @@ do_install() { PACKAGES =+ "${PN}-ptest" FILES_${PN}-ptest = "${bindir}" + +# Do not try to build lib32-leveldb for mips64, but allow libn32-leveldb. +# +COMPATIBLE_HOST_mipsarcho32_pn-lib32-leveldb = "null" diff --git a/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0001-asio-Dont-use-experimental-with-clang.patch b/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0001-asio-Dont-use-experimental-with-clang.patch new file mode 100644 index 0000000000..b597422e40 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/0001-asio-Dont-use-experimental-with-clang.patch @@ -0,0 +1,28 @@ +From 31ca5c563f1d9a3f70258be3dd2b1e547a65a550 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Tue, 5 Feb 2019 00:21:12 -0800 +Subject: [PATCH] asio: Dont use experimental with clang + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + .../asio-master/asio/include/asio/detail/string_view.hpp | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/third_party/asio-master/asio/include/asio/detail/string_view.hpp b/src/third_party/asio-master/asio/include/asio/detail/string_view.hpp +index 222c02186d..3bf7494529 100644 +--- a/src/third_party/asio-master/asio/include/asio/detail/string_view.hpp ++++ b/src/third_party/asio-master/asio/include/asio/detail/string_view.hpp +@@ -28,8 +28,8 @@ + namespace asio { + + #if defined(ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW) +-using std::experimental::basic_string_view; +-using std::experimental::string_view; ++using std::basic_string_view; ++using std::string_view; + #else // defined(ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW) + using std::basic_string_view; + using std::string_view; +-- +2.20.1 + diff --git a/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/disable-hw-crc32-on-arm64-s390x.patch b/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/disable-hw-crc32-on-arm64-s390x.patch deleted file mode 100644 index 23d4923d23..0000000000 --- a/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb/disable-hw-crc32-on-arm64-s390x.patch +++ /dev/null @@ -1,50 +0,0 @@ -imported from debian - -Upstream-Status: Pending -Index: git/src/third_party/wiredtiger/SConscript -=================================================================== ---- git.orig/src/third_party/wiredtiger/SConscript -+++ git/src/third_party/wiredtiger/SConscript -@@ -181,7 +181,9 @@ if useSnappy: - # If not available at runtime, we fall back to software in some cases. - # - # On zSeries we may disable because SLES 11 kernel doe not support the instructions. --if not (env['TARGET_ARCH'] == 's390x' and get_option("use-s390x-crc32") == "off"): -+# Debian: disable hardware-assisted crc32 on s390x and arm64, as at least the -+# buildd's do not support the instructions. -+if env['TARGET_ARCH'] not in ('s390x', 'arm64', 'aarch64'): - env.Append(CPPDEFINES=["HAVE_CRC32_HARDWARE"]) - - wtlib = env.Library( -Index: git/src/third_party/wiredtiger/dist/filelist -=================================================================== ---- git.orig/src/third_party/wiredtiger/dist/filelist -+++ git/src/third_party/wiredtiger/dist/filelist -@@ -54,7 +54,6 @@ src/checksum/power8/crc32_wrapper.c POWE - src/checksum/software/checksum.c - src/checksum/x86/crc32-x86.c X86_HOST - src/checksum/zseries/crc32-s390x.c ZSERIES_HOST --src/checksum/zseries/crc32le-vx.sx ZSERIES_HOST - src/config/config.c - src/config/config_api.c - src/config/config_check.c -Index: git/src/third_party/wiredtiger/src/checksum/zseries/crc32-s390x.c -=================================================================== ---- git.orig/src/third_party/wiredtiger/src/checksum/zseries/crc32-s390x.c -+++ git/src/third_party/wiredtiger/src/checksum/zseries/crc32-s390x.c -@@ -77,6 +77,7 @@ unsigned int __wt_crc32c_le(unsigned int - return crc; \ - } - -+#if defined(HAVE_CRC32_HARDWARE) - /* Main CRC-32 functions */ - DEFINE_CRC32_VX(__wt_crc32c_le_vx, __wt_crc32c_le_vgfm_16, __wt_crc32c_le) - -@@ -89,6 +90,7 @@ __wt_checksum_hw(const void *chunk, size - { - return (~__wt_crc32c_le_vx(0xffffffff, chunk, len)); - } -+#endif - - #endif - diff --git a/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb_git.bb b/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb_git.bb index d39ab0a314..53a9f66117 100644 --- a/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb_git.bb +++ b/meta-openembedded/meta-oe/recipes-dbs/mongodb/mongodb_git.bb @@ -1,6 +1,6 @@ SUMMARY = "mongodb" -LICENSE = "AGPL-3.0 & Apache-2.0 & Zlib" -LIC_FILES_CHKSUM = "file://GNU-AGPL-3.0.txt;md5=73f1eb20517c55bf9493b7dd6e480788 \ +LICENSE = "SSPL-1 & Apache-2.0 & Zlib" +LIC_FILES_CHKSUM = "file://LICENSE-Community.txt;md5=3a865f27f11f43ecbe542d9ea387dcf1 \ file://APACHE-2.0.txt;md5=3b83ef96387f14655fc854ddc3c6bd57" DEPENDS = "openssl libpcre libpcap zlib boost curl python \ @@ -10,9 +10,9 @@ DEPENDS = "openssl libpcre libpcap zlib boost curl python \ inherit scons dos2unix siteinfo pythonnative -PV = "4.0.1+git${SRCPV}" -#v4.0.1 -SRCREV = "54f1582fc6eb01de4d4c42f26fc133e623f065fb" +PV = "4.0.6+git${SRCPV}" +#v4.0.6 +SRCREV = "caa42a1f75a56c7643d0b68d3880444375ec42e3" SRC_URI = "git://github.com/mongodb/mongo.git;branch=v4.0 \ file://0001-Tell-scons-to-use-build-settings-from-environment-va.patch \ file://0001-Use-long-long-instead-of-int64_t.patch \ @@ -20,8 +20,8 @@ SRC_URI = "git://github.com/mongodb/mongo.git;branch=v4.0 \ file://0002-Add-a-definition-for-the-macro-__ELF_NATIVE_CLASS.patch \ file://arm64-support.patch \ file://0001-IntelRDFPMathLib20U1-Check-for-__DEFINED_wchar_t.patch \ - file://disable-hw-crc32-on-arm64-s390x.patch \ file://0001-Support-deprecated-resolver-functions.patch \ + file://0001-asio-Dont-use-experimental-with-clang.patch \ " SRC_URI_append_libc-musl ="\ file://0002-Fix-default-stack-size-to-256K.patch \ diff --git a/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb-native_5.5.62.bb b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb-native_10.3.13.bb index 4ce960d7da..e1a038dfa3 100644 --- a/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb-native_5.5.62.bb +++ b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb-native_10.3.13.bb @@ -13,6 +13,7 @@ do_install() { install -d ${D}${bindir} install -m 0755 sql/gen_lex_hash ${D}${bindir}/ + install -m 0755 sql/gen_lex_token ${D}${bindir}/ install -m 0755 extra/comp_err ${D}${bindir}/ install -m 0755 scripts/comp_sql ${D}${bindir}/ } diff --git a/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb.inc b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb.inc index 8ca5b2ba42..fca74d4481 100644 --- a/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb.inc +++ b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb.inc @@ -4,10 +4,7 @@ SECTION = "libs" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" -SRC_URI = "https://downloads.mariadb.org/f/${BP}/source/${BP}.tar.gz \ - file://fix-cmake-module-path.patch \ - file://remove-bad-path.patch \ - file://fix-mysqlclient-r-version.patch \ +SRC_URI = "https://downloads.mariadb.org/interstitial/${BPN}-${PV}/source/${BPN}-${PV}.tar.gz \ file://my.cnf \ file://mysqld.service \ file://install_db.service \ @@ -15,11 +12,15 @@ SRC_URI = "https://downloads.mariadb.org/f/${BP}/source/${BP}.tar.gz \ file://mysql-systemd-start \ file://configure.cmake-fix-valgrind.patch \ file://fix-a-building-failure.patch \ - file://change-cc-to-cc-version.patch \ + file://support-files-CMakeLists.txt-fix-do_populate_sysroot.patch \ + file://sql-CMakeLists.txt-fix-gen_lex_hash-not-found.patch \ file://0001-disable-ucontext-on-musl.patch \ + file://c11_atomics.patch \ + file://clang_version_header_conflict.patch \ + file://fix-arm-atomic.patch \ " -SRC_URI[md5sum] = "6375d577e9539b839f44d857e70f82b9" -SRC_URI[sha256sum] = "56a365af71b8a9ec8bfee0801e2dec95011da8ee7507986ca329be11296411db" +SRC_URI[md5sum] = "603ce42e35b9a688f2cca05275acb5cb" +SRC_URI[sha256sum] = "b2aa857ef5b84f85a7ea60a1eac7b34c0ca5151c71a0d44ce2d7fb028d71459a" UPSTREAM_CHECK_URI = "https://github.com/MariaDB/server/releases" @@ -62,7 +63,7 @@ PACKAGECONFIG[setupdb] = ", ,,${PN}-setupdb" # MariaDB doesn't link properly with gold # https://mariadb.atlassian.net/browse/MDEV-5982 TARGET_CFLAGS += "-fuse-ld=bfd" - +LDFLAGS += " -pthread" BUILD_CFLAGS += "-fuse-ld=bfd" BUILD_CXXFLAGS += "-fuse-ld=bfd" @@ -120,6 +121,11 @@ do_compile_prepend_class-target () { echo "#endif" >>${B}/include/openssl/kssl.h fi fi + # workaround to handle out-of-source build from source package + yacc_files="sql_yacc.hh sql_yacc.cc sql_yacc_ora.hh sql_yacc_ora.cc" + for yacc_file in ${yacc_files}; do + cp ${S}/sql/${yacc_file} ${B}/sql/${yacc_file} + done } SYSROOT_PREPROCESS_FUNCS += "mariadb_sysroot_preprocess" @@ -181,13 +187,13 @@ RDEPENDS_${PN}-client = "perl perl-module-getopt-long perl-module-file-temp \ RDEPENDS_${PN}-server = "perl perl-module-getopt-long perl-module-data-dumper \ perl-module-file-basename perl-module-file-path perl-module-sys-hostname \ perl-module-file-copy perl-module-file-temp perl-module-posix \ - ${PN}-client libdbi-perl libdbd-mysql-perl" + ${PN}-client ${PN}-setupdb libdbi-perl libdbd-mysql-perl" RDEPENDS_${PN}-leftovers = "perl perl-module-cwd perl-module-benchmark perl-module-getopt-long \ perl-module-posix perl-module-data-dumper perl-module-sigtrap perl-module-threads \ perl-module-threads-shared perl-module-io-socket perl-module-sys-hostname perl-module-file-copy \ perl-module-file-spec perl-module-file-find perl-module-file-basename perl-module-file-path \ perl-module-constant perl-module-lib perl-module-file-temp perl-module-file-spec-functions \ - perl-module-io-socket-inet perl-module-io-select" + perl-module-io-socket-inet perl-module-io-select bash" RDEPENDS_${PN}-setupdb = "coreutils" # Allow old code to link to the backward compatible library @@ -195,10 +201,12 @@ RDEPENDS_libmysqlclient-dev = "libmysqlclient-r-dev" FILES_libmysqlclient = "\ ${libdir}/libmysqlclient.so.* \ + ${libdir}/libmariadb.so.* \ ${sysconfdir}/my.cnf.d/client.cnf" FILES_libmysqlclient-dev = " \ ${includedir}/mysql/ \ ${libdir}/libmysqlclient.so \ + ${libdir}/libmariadb.so \ ${sysconfdir}/aclocal \ ${bindir}/mysql_config" FILES_libmysqlclient-staticdev = "\ @@ -215,9 +223,11 @@ FILES_libmysqlclient-r-dev = "\ FILES_libmysqlclient-r-staticdev = "${libdir}/libmysqlclient_r.a" FILES_libmysqld = "\ - ${libdir}/libmysqld.so.*" + ${libdir}/libmysqld.so.* \ + ${libdir}/libmariadbd.so.*" FILES_libmysqld-dev = "\ - ${libdir}/libmysqld.so" + ${libdir}/libmysqld.so \ + ${libdir}/libmariadbd.so" FILES_${PN}-client = "\ ${bindir}/myisam_ftdump \ diff --git a/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/0001-disable-ucontext-on-musl.patch b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/0001-disable-ucontext-on-musl.patch index 60e9199f95..daf2432a54 100644 --- a/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/0001-disable-ucontext-on-musl.patch +++ b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/0001-disable-ucontext-on-musl.patch @@ -1,4 +1,4 @@ -From 5bc3e7ef9700d12054e0125a126f1bb093f01ef9 Mon Sep 17 00:00:00 2001 +From b658bdb38b7ff6a78915fd0ac390fc224e4006cb Mon Sep 17 00:00:00 2001 From: Khem Raj <raj.khem@gmail.com> Date: Sun, 26 Mar 2017 14:30:33 -0700 Subject: [PATCH] disable ucontext on musl @@ -6,12 +6,13 @@ Subject: [PATCH] disable ucontext on musl musl does not have *contex() APIs even though it has ucontext.h header Signed-off-by: Khem Raj <raj.khem@gmail.com> + --- include/my_context.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/my_context.h b/include/my_context.h -index dd44103..9b28c17 100644 +index ea0e3496..4c9b37dc 100644 --- a/include/my_context.h +++ b/include/my_context.h @@ -31,7 +31,7 @@ @@ -23,6 +24,3 @@ index dd44103..9b28c17 100644 #define MY_CONTEXT_USE_UCONTEXT #else #define MY_CONTEXT_DISABLE --- -2.12.1 - diff --git a/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/c11_atomics.patch b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/c11_atomics.patch new file mode 100644 index 0000000000..169986130c --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/c11_atomics.patch @@ -0,0 +1,67 @@ +Author: Vicențiu Ciorbaru <vicentiu@mariadb.org> +Date: Fri Dec 21 19:14:04 2018 +0200 + + Link with libatomic to enable C11 atomics support + + Some architectures (mips) require libatomic to support proper + atomic operations. Check first if support is available without + linking, otherwise use the library. + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> + +--- a/configure.cmake ++++ b/configure.cmake +@@ -926,7 +926,25 @@ int main() + long long int *ptr= &var; + return (int)__atomic_load_n(ptr, __ATOMIC_SEQ_CST); + }" +-HAVE_GCC_C11_ATOMICS) ++HAVE_GCC_C11_ATOMICS_WITHOUT_LIBATOMIC) ++IF (HAVE_GCC_C11_ATOMICS_WITHOUT_LIBATOMIC) ++ SET(HAVE_GCC_C11_ATOMICS True) ++ELSE() ++ SET(OLD_CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES}) ++ LIST(APPEND CMAKE_REQUIRED_LIBRARIES "atomic") ++ CHECK_CXX_SOURCE_COMPILES(" ++ int main() ++ { ++ long long int var= 1; ++ long long int *ptr= &var; ++ return (int)__atomic_load_n(ptr, __ATOMIC_SEQ_CST); ++ }" ++ HAVE_GCC_C11_ATOMICS_WITH_LIBATOMIC) ++ IF(HAVE_GCC_C11_ATOMICS_WITH_LIBATOMIC) ++ SET(HAVE_GCC_C11_ATOMICS True) ++ ENDIF() ++ SET(CMAKE_REQUIRED_LIBRARIES ${OLD_CMAKE_REQUIRED_LIBRARIES}) ++ENDIF() + + IF(WITH_VALGRIND) + SET(HAVE_valgrind 1) +--- a/mysys/CMakeLists.txt ++++ b/mysys/CMakeLists.txt +@@ -78,6 +78,10 @@ TARGET_LINK_LIBRARIES(mysys dbug strings + ${LIBNSL} ${LIBM} ${LIBRT} ${LIBDL} ${LIBSOCKET} ${LIBEXECINFO} ${CRC32_LIBRARY}) + DTRACE_INSTRUMENT(mysys) + ++IF (HAVE_GCC_C11_ATOMICS_WITH_LIBATOMIC) ++ TARGET_LINK_LIBRARIES(mysys atomic) ++ENDIF() ++ + IF(HAVE_BFD_H) + TARGET_LINK_LIBRARIES(mysys bfd) + ENDIF(HAVE_BFD_H) +--- a/sql/CMakeLists.txt ++++ b/sql/CMakeLists.txt +@@ -178,6 +178,10 @@ ELSE() + SET(MYSQLD_SOURCE main.cc ${DTRACE_PROBES_ALL}) + ENDIF() + ++IF (HAVE_GCC_C11_ATOMICS_WITH_LIBATOMIC) ++ TARGET_LINK_LIBRARIES(sql atomic) ++ENDIF() ++ + + IF(MSVC AND NOT WITHOUT_DYNAMIC_PLUGINS) + diff --git a/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/change-cc-to-cc-version.patch b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/change-cc-to-cc-version.patch deleted file mode 100644 index 02bda24f7b..0000000000 --- a/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/change-cc-to-cc-version.patch +++ /dev/null @@ -1,26 +0,0 @@ -mariadb: replace the CC with CC_VERSION and CXX with CXX_VERSION - -mysqlbug.sh is a bug report script. It makes a report with the build information, -including gcc version. The CC is the local path of gcc, which is useless for bug -report, and the path may expose private information, so change it to CC_VERSION. - -Upstream-Status: Pending - -Signed-off-by: Yue Tao <Yue.Tao@windriver.com> -Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com> -================================ -diff --git a/scripts/mysqlbug.sh.old b/scripts/mysqlbug.sh -index e9df210..d4b8d53 100644 ---- a/scripts/mysqlbug.sh.old -+++ b/scripts/mysqlbug.sh -@@ -24,8 +24,8 @@ VERSION="@VERSION@@MYSQL_SERVER_SUFFIX@" - COMPILATION_COMMENT="@COMPILATION_COMMENT@" - BUGmysql="maria-developers@lists.launchpad.net" - # This is set by configure --COMP_CALL_INFO="CC='@SAVE_CC@' CFLAGS='@SAVE_CFLAGS@' CXX='@SAVE_CXX@' CXXFLAGS='@SAVE_CXXFLAGS@' LDFLAGS='@SAVE_LDFLAGS@' ASFLAGS='@SAVE_ASFLAGS@'" --COMP_RUN_INFO="CC='@CC@' CFLAGS='@CFLAGS@' CXX='@CXX@' CXXFLAGS='@CXXFLAGS@' LDFLAGS='@LDFLAGS@' ASFLAGS='@ASFLAGS@'" -+COMP_CALL_INFO="CC='@CC_VERSION@' CFLAGS='@SAVE_CFLAGS@' CXX='@CXX_VERSION@' CXXFLAGS='@SAVE_CXXFLAGS@' LDFLAGS='@SAVE_LDFLAGS@' ASFLAGS='@SAVE_ASFLAGS@'" -+COMP_RUN_INFO="CC='@CC_VERSION@' CFLAGS='@CFLAGS@' CXX='@CXX_VERSION@' CXXFLAGS='@CXXFLAGS@' LDFLAGS='@LDFLAGS@' ASFLAGS='@ASFLAGS@'" - CONFIGURE_LINE="@CONF_COMMAND@" - - LIBC_INFO="" diff --git a/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/clang_version_header_conflict.patch b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/clang_version_header_conflict.patch new file mode 100644 index 0000000000..c77a869441 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/clang_version_header_conflict.patch @@ -0,0 +1,32 @@ +libc++ also has a file called version and this file and how cflags are specified +it ends up including this file and resulting in compile errors + +fixes errors like +storage/mroonga/version:1:1: error: expected unqualified-id +7.07 +^ + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> + +--- a/storage/mroonga/CMakeLists.txt ++++ b/storage/mroonga/CMakeLists.txt +@@ -80,7 +80,7 @@ else() + set(MRN_SOURCE_DIR ${CMAKE_SOURCE_DIR}) + endif() + +-file(READ ${MRN_SOURCE_DIR}/version MRN_VERSION) ++file(READ ${MRN_SOURCE_DIR}/ver MRN_VERSION) + file(READ ${MRN_SOURCE_DIR}/version_major MRN_VERSION_MAJOR) + file(READ ${MRN_SOURCE_DIR}/version_minor MRN_VERSION_MINOR) + file(READ ${MRN_SOURCE_DIR}/version_micro MRN_VERSION_MICRO) +--- /dev/null ++++ b/storage/mroonga/ver +@@ -0,0 +1 @@ ++7.07 +\ No newline at end of file +--- a/storage/mroonga/version ++++ /dev/null +@@ -1 +0,0 @@ +-7.07 +\ No newline at end of file diff --git a/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/configure.cmake-fix-valgrind.patch b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/configure.cmake-fix-valgrind.patch index e97def6021..ac94279585 100644 --- a/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/configure.cmake-fix-valgrind.patch +++ b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/configure.cmake-fix-valgrind.patch @@ -1,6 +1,6 @@ -From 5effba0d7d47071a3f1bca56823190d5a95bb1a6 Mon Sep 17 00:00:00 2001 +From 24e2b0edc2612acefcc48414bb6f0aeb086061a9 Mon Sep 17 00:00:00 2001 From: Jackie Huang <jackie.huang@windriver.com> -Date: Wed, 12 Nov 2014 03:09:10 -0500 +Date: Tue, 26 Feb 2019 23:57:06 -0800 Subject: [PATCH] configure.cmake: fix valgrind Check valgrind headers only if WITH_VALGRIND is set. @@ -15,27 +15,26 @@ PACKAGECONFIG to decide if valgrind is needed or not. Upstream-Status: Inappropriate [oe specific] Signed-off-by: Jackie Huang <jackie.huang@windriver.com> +Signed-off-by: Mingli Yu <mingli.yu@windriver.com> + --- - configure.cmake | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) + configure.cmake | 5 ++--- + 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/configure.cmake b/configure.cmake -index 0bd7bbe..51a098f 100644 +index 3cfc4b31..d017b3b3 100644 --- a/configure.cmake +++ b/configure.cmake -@@ -1047,10 +1047,10 @@ MARK_AS_ADVANCED(WITH_ATOMIC_LOCKS MY_ATOMIC_MODE_RWLOCK MY_ATOMIC_MODE_DUMMY) +@@ -930,10 +930,9 @@ HAVE_GCC_C11_ATOMICS) IF(WITH_VALGRIND) SET(HAVE_valgrind 1) -+ CHECK_INCLUDE_FILES("valgrind/memcheck.h;valgrind/valgrind.h" -+ HAVE_VALGRIND) - ENDIF() - +-ENDIF() +- -CHECK_INCLUDE_FILES("valgrind/memcheck.h;valgrind/valgrind.h" -- HAVE_VALGRIND) ++ CHECK_INCLUDE_FILES("valgrind/memcheck.h;valgrind/valgrind.h" + HAVE_VALGRIND_MEMCHECK_H) ++ENDIF() #-------------------------------------------------------------------- # Check for IPv6 support --- -2.0.0 - diff --git a/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/fix-a-building-failure.patch b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/fix-a-building-failure.patch index 0c4e10237c..9149ee21f2 100644 --- a/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/fix-a-building-failure.patch +++ b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/fix-a-building-failure.patch @@ -1,4 +1,7 @@ -[PATCH] fix a building failure +From 1b2b6a61c9f82157cd2e0c3744f6c07e07aeb0bd Mon Sep 17 00:00:00 2001 +From: Mingli Yu <mingli.yu@windriver.com> +Date: Mon, 4 Mar 2019 01:11:30 -0800 +Subject: [PATCH] fix a building failure Upstream-Status: Inappropriate [configuration] @@ -6,17 +9,18 @@ building failed since native does not generate import_executables.cmake In fact, our building system will export the needed commands Signed-off-by: Roy Li <rongqing.li@windriver.com> +Signed-off-by: Mingli Yu <mingli.yu@windriver.com> --- CMakeLists.txt | 5 ----- 1 file changed, 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt -index c1ce1c5..83b3a7e 100644 +index fc30750..4f9110e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -350,11 +350,6 @@ MYSQL_CHECK_READLINE() +@@ -347,11 +347,6 @@ CHECK_PCRE() - CHECK_JEMALLOC() + CHECK_SYSTEMD() -IF(CMAKE_CROSSCOMPILING) - SET(IMPORT_EXECUTABLES "IMPORTFILE-NOTFOUND" CACHE FILEPATH "Path to import_executables.cmake from a native build") @@ -24,8 +28,8 @@ index c1ce1c5..83b3a7e 100644 -ENDIF() - # - # Setup maintainer mode options by the end. Platform checks are + # Setup maintainer mode options. Platform checks are # not run with the warning options as to not perturb fragile checks -- -1.9.1 +2.17.1 diff --git a/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/fix-arm-atomic.patch b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/fix-arm-atomic.patch new file mode 100644 index 0000000000..34d31148b4 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/fix-arm-atomic.patch @@ -0,0 +1,34 @@ +From ffaaf4d43ebf2ef6d0229a60f407c1f5a06e5c53 Mon Sep 17 00:00:00 2001 +From: Mingli Yu <mingli.yu@windriver.com> +Date: Fri, 15 Mar 2019 01:46:05 -0700 +Subject: [PATCH] build_rocksdb.cmake: fix atomic support on arm + +Check to link with libatomic to enable C11 atomics support +to fix below build error on arm: +| /build/tmp/work/armv5e-wrs-linux-gnueabi/mariadb/10.3.13-r0/recipe-sysroot-native/usr/bin/arm-wrs-linux-gnueabi/../../libexec/arm-wrs-linux-gnueabi/gcc/arm-wrs-linux-gnueabi/8.3.0/ld.bfd: librocksdblib.a(env_posix.cc.o): in function `std::__atomic_base<unsigned long long>::store(unsigned long long, std::memory_order)': +| /usr/include/c++/8.3.0/bits/atomic_base.h:374: undefined reference to `__atomic_store_8' + +Upstream-Status: Pending + +Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com> +--- + storage/rocksdb/build_rocksdb.cmake | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/storage/rocksdb/build_rocksdb.cmake b/storage/rocksdb/build_rocksdb.cmake +index c36c761..2b539ff 100644 +--- a/storage/rocksdb/build_rocksdb.cmake ++++ b/storage/rocksdb/build_rocksdb.cmake +@@ -424,6 +424,9 @@ list(APPEND SOURCES ${CMAKE_CURRENT_BINARY_DIR}/build_version.cc) + + ADD_CONVENIENCE_LIBRARY(rocksdblib ${SOURCES}) + target_link_libraries(rocksdblib ${THIRDPARTY_LIBS} ${SYSTEM_LIBS}) ++IF (HAVE_GCC_C11_ATOMICS_WITH_LIBATOMIC) ++ TARGET_LINK_LIBRARIES(rocksdblib atomic) ++ENDIF() + IF(CMAKE_CXX_COMPILER_ID MATCHES "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") + set_target_properties(rocksdblib PROPERTIES COMPILE_FLAGS "-fPIC -fno-builtin-memcmp -frtti") + endif() +-- +2.17.1 + diff --git a/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/fix-cmake-module-path.patch b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/fix-cmake-module-path.patch deleted file mode 100644 index 8d9f558d05..0000000000 --- a/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/fix-cmake-module-path.patch +++ /dev/null @@ -1,29 +0,0 @@ -Avoid CMAKE_MODULE_PATH being overwritten - -OE-Core's setting of CMAKE_MODULE_PATH stomps on MariaDB's value unless -we set it after setting the project name. - -Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> - -Upstream-Status: Inappropriate [working around OE-Core bug] - ---- mariadb/CMakeLists.txt 2014-07-17 11:01:07.676353047 +0100 -+++ mariadb/CMakeLists.txt 2014-07-17 11:01:31.299353107 +0100 -@@ -28,8 +28,6 @@ - - MESSAGE(STATUS "Running cmake version ${CMAKE_VERSION}") - --SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake) -- - # Distinguish between community and non-community builds, with the - # default being a community build. This does not impact the feature - # set that will be compiled in; it's merely provided as a hint to -@@ -77,6 +75,8 @@ - ENDIF() - PROJECT(${MYSQL_PROJECT_NAME}) - -+SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake) -+ - IF(BUILD_CONFIG) - INCLUDE( - ${CMAKE_SOURCE_DIR}/cmake/build_configurations/${BUILD_CONFIG}.cmake) diff --git a/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/fix-mysqlclient-r-version.patch b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/fix-mysqlclient-r-version.patch deleted file mode 100644 index a519e42921..0000000000 --- a/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/fix-mysqlclient-r-version.patch +++ /dev/null @@ -1,160 +0,0 @@ -From 6db2a606196fb38a6d106dc409eee1cb9a40a440 Mon Sep 17 00:00:00 2001 -From: Tor Didriksen <tor.didriksen@oracle.com> -Date: Mon, 24 Jun 2013 17:15:35 +0200 -Subject: [PATCH] Bug#16809055 MYSQL 5.6 AND 5.7 STILL USE LIBMYSQLCLIENT.SO.18 - -With this patch, the libmysql/ directory contains: -libmysqlclient.a -libmysqlclient_r.a -> libmysqlclient.a -libmysqlclient_r.so -> libmysqlclient.so* -libmysqlclient_r.so.18 -> libmysqlclient.so.18* -libmysqlclient_r.so.18.1.0 -> libmysqlclient.so.18.1.0* -libmysqlclient.so -> libmysqlclient.so.18* -libmysqlclient.so.18 -> libmysqlclient.so.18.1.0* -libmysqlclient.so.18.1.0* - -This fixes libmysqlclient_r symlinks pointing to the unversioned -libmysqlclient.so symlink (leading to package QA errors since the -libmysqlclient-r package ends up depending on libmysqlclient-dev). - -Borrowed from MySQL 5.6 tree at https://github.com/percona/mysql/ - -Upstream-Status: Pending - -Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> - ---- - cmake/install_macros.cmake | 25 +++++++++++++++---------- - libmysql/CMakeLists.txt | 34 +++++++++++++++++++++++++++------- - 2 files changed, 42 insertions(+), 17 deletions(-) - -diff --git a/cmake/install_macros.cmake b/cmake/install_macros.cmake -index b8efdf8..a0d0e68 100644 ---- a/cmake/install_macros.cmake -+++ b/cmake/install_macros.cmake -@@ -1,4 +1,4 @@ --# Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved. -+# Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved. - # - # This program is free software; you can redistribute it and/or modify - # it under the terms of the GNU General Public License as published by -@@ -167,28 +167,33 @@ ENDFUNCTION() - - - # Install symbolic link to CMake target. --# the link is created in the same directory as target --# and extension will be the same as for target file. --MACRO(INSTALL_SYMLINK linkname target destination component) -+# We do 'cd path; ln -s target_name link_name' -+# We also add an INSTALL target for "${path}/${link_name}" -+MACRO(INSTALL_SYMLINK target target_name link_name destination component) - IF(UNIX) - GET_TARGET_PROPERTY(location ${target} LOCATION) - GET_FILENAME_COMPONENT(path ${location} PATH) -- GET_FILENAME_COMPONENT(name ${location} NAME) -- SET(output ${path}/${linkname}) -+ MESSAGE(STATUS "target ${target}") -+ MESSAGE(STATUS "link_name ${link_name}") -+ MESSAGE(STATUS "target_name ${target_name}") -+ MESSAGE(STATUS "path ${path}") -+ MESSAGE(STATUS "") -+ -+ SET(output ${path}/${link_name}) - ADD_CUSTOM_COMMAND( - OUTPUT ${output} - COMMAND ${CMAKE_COMMAND} ARGS -E remove -f ${output} - COMMAND ${CMAKE_COMMAND} ARGS -E create_symlink -- ${name} -- ${linkname} -+ ${target_name} -+ ${link_name} - WORKING_DIRECTORY ${path} - DEPENDS ${target} - ) - -- ADD_CUSTOM_TARGET(symlink_${linkname} -+ ADD_CUSTOM_TARGET(symlink_${link_name} - ALL - DEPENDS ${output}) -- SET_TARGET_PROPERTIES(symlink_${linkname} PROPERTIES CLEAN_DIRECT_OUTPUT 1) -+ SET_TARGET_PROPERTIES(symlink_${link_name} PROPERTIES CLEAN_DIRECT_OUTPUT 1) - IF(CMAKE_GENERATOR MATCHES "Xcode") - # For Xcode, replace project config with install config - STRING(REPLACE "${CMAKE_CFG_INTDIR}" -diff --git a/libmysql/CMakeLists.txt b/libmysql/CMakeLists.txt -index be5760f..96286ff 100644 ---- a/libmysql/CMakeLists.txt -+++ b/libmysql/CMakeLists.txt -@@ -433,6 +433,12 @@ IF(MSVC) - INSTALL_DEBUG_TARGET(clientlib DESTINATION ${INSTALL_LIBDIR}/debug) - ENDIF() - -+MACRO(GET_TARGET_NAME target out_name) -+ GET_TARGET_PROPERTY(location ${target} LOCATION) -+ GET_FILENAME_COMPONENT(name ${location} NAME) -+ SET(${out_name} ${name}) -+ENDMACRO() -+ - IF(UNIX) - MACRO(GET_VERSIONED_LIBNAME LIBNAME EXTENSION VERSION OUTNAME) - SET(DOT_VERSION ".${VERSION}") -@@ -445,7 +451,13 @@ IF(UNIX) - SET(${OUTNAME} ${LIBNAME}${EXTENSION}${DOT_VERSION}) - ENDIF() - ENDMACRO() -- INSTALL_SYMLINK(${CMAKE_STATIC_LIBRARY_PREFIX}mysqlclient_r.a mysqlclient ${INSTALL_LIBDIR} Development) -+ENDIF() -+ -+IF(UNIX) -+ GET_TARGET_NAME(mysqlclient lib_name) -+ INSTALL_SYMLINK(mysqlclient -+ ${lib_name} ${CMAKE_STATIC_LIBRARY_PREFIX}mysqlclient_r.a -+ ${INSTALL_LIBDIR} Development) - ENDIF() - - IF(NOT DISABLE_SHARED) -@@ -456,10 +468,9 @@ IF(NOT DISABLE_SHARED) - # libtool compatability - IF(CMAKE_SYSTEM_NAME MATCHES "FreeBSD" OR APPLE) - SET(OS_SHARED_LIB_VERSION "${SHARED_LIB_MAJOR_VERSION}") -- ELSEIF(CMAKE_SYSTEM_NAME MATCHES "HP-UX") -- SET(OS_SHARED_LIB_VERSION "${SHARED_LIB_MAJOR_VERSION}.0") - ELSE() -- SET(OS_SHARED_LIB_VERSION "${SHARED_LIB_MAJOR_VERSION}.0.0") -+ SET(OS_SHARED_LIB_VERSION -+ "${SHARED_LIB_MAJOR_VERSION}.${SHARED_LIB_MINOR_VERSION}.0") - ENDIF() - # Name of shared library is mysqlclient on Unix - SET_TARGET_PROPERTIES(libmysql PROPERTIES -@@ -482,8 +493,13 @@ IF(NOT DISABLE_SHARED) - "${CMAKE_SHARED_LIBRARY_SUFFIX}" - "" - linkname) -- INSTALL_SYMLINK(${linkname} libmysql ${INSTALL_LIBDIR} SharedLibraries) -- SET(OS_SHARED_LIB_SYMLINKS "${SHARED_LIB_MAJOR_VERSION}" "${OS_SHARED_LIB_VERSION}") -+ GET_TARGET_NAME(libmysql lib_name) -+ GET_FILENAME_COMPONENT(lib_name_we ${lib_name} NAME_WE) -+ INSTALL_SYMLINK(libmysql -+ ${lib_name} ${linkname} -+ ${INSTALL_LIBDIR} SharedLibraries) -+ SET(OS_SHARED_LIB_SYMLINKS -+ "${SHARED_LIB_MAJOR_VERSION}" "${OS_SHARED_LIB_VERSION}") - LIST(REMOVE_DUPLICATES OS_SHARED_LIB_SYMLINKS) - FOREACH(ver ${OS_SHARED_LIB_SYMLINKS}) - GET_VERSIONED_LIBNAME( -@@ -491,7 +507,11 @@ IF(NOT DISABLE_SHARED) - "${CMAKE_SHARED_LIBRARY_SUFFIX}" - "${ver}" - linkname) -- INSTALL_SYMLINK(${linkname} libmysql ${INSTALL_LIBDIR} SharedLibraries) -+ GET_VERSIONED_LIBNAME( -+ ${lib_name_we} "${CMAKE_SHARED_LIBRARY_SUFFIX}" "${ver}" lib_name_ver) -+ INSTALL_SYMLINK(libmysql -+ ${lib_name_ver} ${linkname} -+ ${INSTALL_LIBDIR} SharedLibraries) - ENDFOREACH() - ENDIF() - ENDIF() --- -2.0.3 - diff --git a/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/remove-bad-path.patch b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/remove-bad-path.patch deleted file mode 100644 index ff26b0b86c..0000000000 --- a/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/remove-bad-path.patch +++ /dev/null @@ -1,18 +0,0 @@ -Remove host path from include directories - -Naturally this breaks cross-compilation if present. - -Upstream-Status: Pending - -Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> - ---- mariadb-5.5.38/storage/tokudb/ft-index/CMakeLists.txt 2014-07-17 14:37:04.529327998 +0100 -+++ mariadb-5.5.38/storage/tokudb/ft-index/CMakeLists.txt 2014-07-17 14:43:56.991337895 +0100 -@@ -39,7 +39,6 @@ - - ## default includes and libraries - include_directories(SYSTEM -- /usr/local/include - ${ZLIB_INCLUDE_DIRS} - ) - diff --git a/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/sql-CMakeLists.txt-fix-gen_lex_hash-not-found.patch b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/sql-CMakeLists.txt-fix-gen_lex_hash-not-found.patch new file mode 100644 index 0000000000..afc1be47b5 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/sql-CMakeLists.txt-fix-gen_lex_hash-not-found.patch @@ -0,0 +1,65 @@ +From 796464015bffe6e0beca9e1c355b223512803c3e Mon Sep 17 00:00:00 2001 +From: Mingli Yu <mingli.yu@windriver.com> +Date: Wed, 27 Feb 2019 23:01:00 -0800 +Subject: [PATCH] sql/CMakeLists.txt: fix gen_lex_hash not found + +Fix the below do_compile issue in cross-compiling env. +| make[2]: *** No rule to make target '/build/tmp/work/aarch64-poky-linux/mariadb/10.3.13-r0/mariadb-10.3.13/sql/gen_lex_hash', needed by 'sql/lex_hash.h'. Stop. +| make[2]: *** No rule to make target '/build/tmp/work/aarch64-poky-linux/mariadb/10.3.13-r0/mariadb-10.3.13/sql/gen_lex_token', needed by 'sql/lex_token.h'. Stop. + +Upstream-Status: Inappropriate [oe build specific] + +Signed-off-by: Mingli Yu <mingli.yu@windriver.com> + +--- + sql/CMakeLists.txt | 30 ++++++++++++++++++++---------- + 1 file changed, 20 insertions(+), 10 deletions(-) + +diff --git a/sql/CMakeLists.txt b/sql/CMakeLists.txt +index c6910f46..bf51f4cb 100644 +--- a/sql/CMakeLists.txt ++++ b/sql/CMakeLists.txt +@@ -50,11 +50,16 @@ ${WSREP_INCLUDES} + + + +-ADD_CUSTOM_COMMAND( +- OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/lex_token.h +- COMMAND gen_lex_token > lex_token.h +- DEPENDS gen_lex_token +-) ++IF(NOT CMAKE_CROSSCOMPILING) ++ ADD_CUSTOM_COMMAND( ++ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/lex_token.h ++ COMMAND gen_lex_token > lex_token.h ++ DEPENDS gen_lex_token) ++ELSE() ++ ADD_CUSTOM_COMMAND( ++ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/lex_token.h ++ COMMAND gen_lex_token > lex_token.h) ++ENDIF() + + ADD_DEFINITIONS(-DMYSQL_SERVER -DHAVE_EVENT_SCHEDULER) + +@@ -370,11 +375,16 @@ IF(NOT CMAKE_CROSSCOMPILING) + ADD_EXECUTABLE(gen_lex_hash gen_lex_hash.cc) + ENDIF() + +-ADD_CUSTOM_COMMAND( +- OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/lex_hash.h +- COMMAND gen_lex_hash > lex_hash.h +- DEPENDS gen_lex_hash +-) ++IF(NOT CMAKE_CROSSCOMPILING) ++ ADD_CUSTOM_COMMAND( ++ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/lex_hash.h ++ COMMAND gen_lex_hash > lex_hash.h ++ DEPENDS gen_lex_hash) ++ELSE() ++ ADD_CUSTOM_COMMAND( ++ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/lex_hash.h ++ COMMAND gen_lex_hash > lex_hash.h) ++ENDIF() + + MYSQL_ADD_EXECUTABLE(mysql_tzinfo_to_sql tztime.cc COMPONENT Server) + SET_TARGET_PROPERTIES(mysql_tzinfo_to_sql PROPERTIES COMPILE_FLAGS "-DTZINFO2SQL") diff --git a/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/support-files-CMakeLists.txt-fix-do_populate_sysroot.patch b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/support-files-CMakeLists.txt-fix-do_populate_sysroot.patch new file mode 100644 index 0000000000..4f9a4e9b0e --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb/support-files-CMakeLists.txt-fix-do_populate_sysroot.patch @@ -0,0 +1,34 @@ +From 4ac5b555d058d4d489f25a3806a787b7b2465d09 Mon Sep 17 00:00:00 2001 +From: Mingli Yu <mingli.yu@windriver.com> +Date: Wed, 27 Feb 2019 22:41:26 -0800 +Subject: [PATCH] support-files/CMakeLists.txt: fix do_populate_sysroot issue + +Comment out the logic which for suse as it introduces +below do_populate_sysroot error: +ERROR: mariadb-native-10.3.13-r0 do_populate_sysroot: sstate found an absolute path symlink /build/tmp/work/x86_64-linux/mariadb-native/10.3.13-r0/sysroot-destdir/build/tmp/work/x86_64-linux/mariadb-native/10.3.13-r0/recipe-sysroot-native/usr/sbin/rcmysql pointing at /build/tmp/work/x86_64-linux/mariadb-native/10.3.13-r0/recipe-sysroot-native/etc/init.d/mysql. Please replace this with a relative link. + +Upstream-Status: Inappropriate[oe build specific] + +Signed-off-by: Mingli Yu <mingli.yu@windriver.com> + +--- + support-files/CMakeLists.txt | 7 ------- + 1 file changed, 7 deletions(-) + +diff --git a/support-files/CMakeLists.txt b/support-files/CMakeLists.txt +index b5767432..56733de1 100644 +--- a/support-files/CMakeLists.txt ++++ b/support-files/CMakeLists.txt +@@ -165,12 +165,5 @@ IF(UNIX) + INSTALL(FILES rpm/enable_encryption.preset DESTINATION ${INSTALL_SYSCONF2DIR} + COMPONENT IniFiles) + ENDIF() +- +- # This is for SuSE: +- INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E create_symlink +- ${INSTALL_SYSCONFDIR}/init.d/mysql +- ${INSTALL_SBINDIR}/rcmysql +- WORKING_DIRECTORY \$ENV{DESTDIR}${prefix})" +- COMPONENT SupportFiles) + ENDIF(INSTALL_SYSCONFDIR) + ENDIF() diff --git a/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb_5.5.62.bb b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb_10.3.13.bb index d7895732a6..de24c920f0 100644 --- a/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb_5.5.62.bb +++ b/meta-openembedded/meta-oe/recipes-dbs/mysql/mariadb_10.3.13.bb @@ -2,7 +2,7 @@ require mariadb.inc EXTRA_OECMAKE += "-DSTACK_DIRECTION=-1" -DEPENDS += "mariadb-native ncurses zlib readline libaio libevent" +DEPENDS += "mariadb-native bison-native openssl ncurses zlib readline libaio libevent libxml2" PROVIDES += "mysql5 libmysqlclient" diff --git a/meta-openembedded/meta-oe/recipes-dbs/mysql/mysql-python/0001-_mysql.c-fix-compilation-with-MariaDB-with-10.3.13.patch b/meta-openembedded/meta-oe/recipes-dbs/mysql/mysql-python/0001-_mysql.c-fix-compilation-with-MariaDB-with-10.3.13.patch new file mode 100644 index 0000000000..173241ea5c --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-dbs/mysql/mysql-python/0001-_mysql.c-fix-compilation-with-MariaDB-with-10.3.13.patch @@ -0,0 +1,34 @@ +From 45436592aa64308b2ab46f84c6107c6d7de0a3ec Mon Sep 17 00:00:00 2001 +From: Mingli Yu <mingli.yu@windriver.com> +Date: Wed, 6 Mar 2019 00:16:17 -0800 +Subject: [PATCH] _mysql.c: fix compilation with MariaDB 10.3.13 + +Use standard API function MYSQL_OPT_RECONNECT +instead of direct modification of internal structures +which does not work for MariaDB. + +Upstream-Status: Pending + +Signed-off-by: Mingli Yu <mingli.yu@windriver.com> +--- + _mysql.c | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +--- a/_mysql.c ++++ b/_mysql.c +@@ -2002,7 +2002,14 @@ _mysql_ConnectionObject_ping( + int r, reconnect = -1;
+ if (!PyArg_ParseTuple(args, "|I", &reconnect)) return NULL;
+ check_connection(self);
+- if ( reconnect != -1 ) self->connection.reconnect = reconnect;
++ if ( reconnect != -1 ) {
++#if MYSQL_VERSION_ID >= 50013
++ my_bool recon = reconnect;
++ mysql_options(&self->connection, MYSQL_OPT_RECONNECT, &recon);
++#else
++ self->connection.reconnect = reconnect;
++#endif
++ }
+ Py_BEGIN_ALLOW_THREADS
+ r = mysql_ping(&(self->connection));
+ Py_END_ALLOW_THREADS
diff --git a/meta-openembedded/meta-oe/recipes-dbs/mysql/mysql-python_1.2.5.bb b/meta-openembedded/meta-oe/recipes-dbs/mysql/mysql-python_1.2.5.bb index ac0df4f066..f2faec1c13 100644 --- a/meta-openembedded/meta-oe/recipes-dbs/mysql/mysql-python_1.2.5.bb +++ b/meta-openembedded/meta-oe/recipes-dbs/mysql/mysql-python_1.2.5.bb @@ -8,7 +8,9 @@ DEPENDS = "mysql5" SRCNAME = "MySQL-python" -SRC_URI = "https://pypi.python.org/packages/source/M/${SRCNAME}/${SRCNAME}-${PV}.zip" +SRC_URI = "https://pypi.python.org/packages/source/M/${SRCNAME}/${SRCNAME}-${PV}.zip \ + file://0001-_mysql.c-fix-compilation-with-MariaDB-with-10.3.13.patch \ +" SRC_URI[md5sum] = "654f75b302db6ed8dc5a898c625e030c" SRC_URI[sha256sum] = "811040b647e5d5686f84db415efd697e6250008b112b6909ba77ac059e140c74" diff --git a/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0001-Add-support-for-RISC-V.patch b/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0001-Add-support-for-RISC-V.patch new file mode 100644 index 0000000000..865ad3287b --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0001-Add-support-for-RISC-V.patch @@ -0,0 +1,41 @@ +From b06a228a5fd1589fc9bed654b3288b321fc21aa1 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" <rjones@redhat.com> +Date: Sun, 20 Nov 2016 15:04:52 +0000 +Subject: [PATCH] Add support for RISC-V. + +The architecture is sufficiently similar to aarch64 that simply +extending the existing aarch64 macro works. +--- + src/include/storage/s_lock.h | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/src/include/storage/s_lock.h b/src/include/storage/s_lock.h +index 3fe29ce..7cd578f 100644 +--- a/src/include/storage/s_lock.h ++++ b/src/include/storage/s_lock.h +@@ -316,11 +316,12 @@ tas(volatile slock_t *lock) + + /* + * On ARM and ARM64, we use __sync_lock_test_and_set(int *, int) if available. ++ * On RISC-V, the same. + * + * We use the int-width variant of the builtin because it works on more chips + * than other widths. + */ +-#if defined(__arm__) || defined(__arm) || defined(__aarch64__) || defined(__aarch64) ++#if defined(__arm__) || defined(__arm) || defined(__aarch64__) || defined(__aarch64) || defined(__riscv) + #ifdef HAVE_GCC__SYNC_INT32_TAS + #define HAS_TEST_AND_SET + +@@ -337,7 +338,7 @@ tas(volatile slock_t *lock) + #define S_UNLOCK(lock) __sync_lock_release(lock) + + #endif /* HAVE_GCC__SYNC_INT32_TAS */ +-#endif /* __arm__ || __arm || __aarch64__ || __aarch64 */ ++#endif /* __arm__ || __arm || __aarch64__ || __aarch64 || __riscv */ + + + /* S/390 and S/390x Linux (32- and 64-bit zSeries) */ +-- +2.9.3 + diff --git a/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0001-Sync-our-copy-of-the-timezone-library-with-IANA-rele.patch b/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0001-Sync-our-copy-of-the-timezone-library-with-IANA-rele.patch deleted file mode 100644 index 6d8c46e748..0000000000 --- a/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0001-Sync-our-copy-of-the-timezone-library-with-IANA-rele.patch +++ /dev/null @@ -1,1164 +0,0 @@ -From 12bfb778ce688fc662a6cb35f6298734fcf4856f Mon Sep 17 00:00:00 2001 -From: Tom Lane <tgl@sss.pgh.pa.us> -Date: Fri, 19 Oct 2018 19:36:34 -0400 -Subject: [PATCH] Sync our copy of the timezone library with IANA release - tzcode2018f. - -About half of this is purely cosmetic changes to reduce the diff between -our code and theirs, like inserting "const" markers where they have them. - -The other half is tracking actual code changes in zic.c and localtime.c. -I don't think any of these represent near-term compatibility hazards, but -it seems best to stay up to date. - -I also fixed longstanding bugs in our code for producing the -known_abbrevs.txt list, which by chance hadn't been exposed before, -but which resulted in some garbage output after applying the upstream -changes in zic.c. Notably, because upstream removed their old phony -transitions at the Big Bang, it's now necessary to cope with TZif files -containing no DST transition times at all. - -Upstream-Status: Backport -Signed-off-by: Armin Kuster <akuster@mvista.com> - ---- - src/timezone/README | 2 +- - src/timezone/localtime.c | 126 ++++++++++++------ - src/timezone/pgtz.h | 10 +- - src/timezone/private.h | 3 + - src/timezone/strftime.c | 10 +- - src/timezone/tzfile.h | 7 +- - src/timezone/zic.c | 330 ++++++++++++++++++++++++++--------------------- - 7 files changed, 291 insertions(+), 197 deletions(-) - -Index: postgresql-10.5/src/timezone/README -=================================================================== ---- postgresql-10.5.orig/src/timezone/README -+++ postgresql-10.5/src/timezone/README -@@ -55,7 +55,7 @@ match properly on the old version. - Time Zone code - ============== - --The code in this directory is currently synced with tzcode release 2018e. -+The code in this directory is currently synced with tzcode release 2018f. - There are many cosmetic (and not so cosmetic) differences from the - original tzcode library, but diffs in the upstream version should usually - be propagated to our version. Here are some notes about that. -Index: postgresql-10.5/src/timezone/localtime.c -=================================================================== ---- postgresql-10.5.orig/src/timezone/localtime.c -+++ postgresql-10.5/src/timezone/localtime.c -@@ -1,3 +1,5 @@ -+/* Convert timestamp from pg_time_t to struct pg_tm. */ -+ - /* - * This file is in the public domain, so clarified as of - * 1996-06-05 by Arthur David Olson. -@@ -117,7 +119,7 @@ init_ttinfo(struct ttinfo *s, int32 gmto - } - - static int32 --detzcode(const char *codep) -+detzcode(const char *const codep) - { - int32 result; - int i; -@@ -143,7 +145,7 @@ detzcode(const char *codep) - } - - static int64 --detzcode64(const char *codep) -+detzcode64(const char *const codep) - { - uint64 result; - int i; -@@ -258,8 +260,13 @@ tzloadbody(char const *name, char *canon - int32 charcnt = detzcode(up->tzhead.tzh_charcnt); - char const *p = up->buf + tzheadsize; - -+ /* -+ * Although tzfile(5) currently requires typecnt to be nonzero, -+ * support future formats that may allow zero typecnt in files that -+ * have a TZ string and no transitions. -+ */ - if (!(0 <= leapcnt && leapcnt < TZ_MAX_LEAPS -- && 0 < typecnt && typecnt < TZ_MAX_TYPES -+ && 0 <= typecnt && typecnt < TZ_MAX_TYPES - && 0 <= timecnt && timecnt < TZ_MAX_TIMES - && 0 <= charcnt && charcnt < TZ_MAX_CHARS - && (ttisstdcnt == typecnt || ttisstdcnt == 0) -@@ -416,8 +423,7 @@ tzloadbody(char const *name, char *canon - struct state *ts = &lsp->u.st; - - up->buf[nread - 1] = '\0'; -- if (tzparse(&up->buf[1], ts, false) -- && ts->typecnt == 2) -+ if (tzparse(&up->buf[1], ts, false)) - { - /* - * Attempt to reuse existing abbreviations. Without this, -@@ -430,7 +436,7 @@ tzloadbody(char const *name, char *canon - int gotabbr = 0; - int charcnt = sp->charcnt; - -- for (i = 0; i < 2; i++) -+ for (i = 0; i < ts->typecnt; i++) - { - char *tsabbr = ts->chars + ts->ttis[i].tt_abbrind; - int j; -@@ -455,7 +461,7 @@ tzloadbody(char const *name, char *canon - } - } - } -- if (gotabbr == 2) -+ if (gotabbr == ts->typecnt) - { - sp->charcnt = charcnt; - -@@ -470,7 +476,8 @@ tzloadbody(char const *name, char *canon - sp->timecnt--; - - for (i = 0; i < ts->timecnt; i++) -- if (sp->ats[sp->timecnt - 1] < ts->ats[i]) -+ if (sp->timecnt == 0 -+ || sp->ats[sp->timecnt - 1] < ts->ats[i]) - break; - while (i < ts->timecnt - && sp->timecnt < TZ_MAX_TIMES) -@@ -481,11 +488,13 @@ tzloadbody(char const *name, char *canon - sp->timecnt++; - i++; - } -- sp->ttis[sp->typecnt++] = ts->ttis[0]; -- sp->ttis[sp->typecnt++] = ts->ttis[1]; -+ for (i = 0; i < ts->typecnt; i++) -+ sp->ttis[sp->typecnt++] = ts->ttis[i]; - } - } - } -+ if (sp->typecnt == 0) -+ return EINVAL; - if (sp->timecnt > 1) - { - for (i = 1; i < sp->timecnt; ++i) -@@ -507,6 +516,18 @@ tzloadbody(char const *name, char *canon - } - - /* -+ * Infer sp->defaulttype from the data. Although this default type is -+ * always zero for data from recent tzdb releases, things are trickier for -+ * data from tzdb 2018e or earlier. -+ * -+ * The first set of heuristics work around bugs in 32-bit data generated -+ * by tzdb 2013c or earlier. The workaround is for zones like -+ * Australia/Macquarie where timestamps before the first transition have a -+ * time type that is not the earliest standard-time type. See: -+ * https://mm.icann.org/pipermail/tz/2013-May/019368.html -+ */ -+ -+ /* - * If type 0 is unused in transitions, it's the type to use for early - * times. - */ -@@ -529,6 +550,11 @@ tzloadbody(char const *name, char *canon - } - - /* -+ * The next heuristics are for data generated by tzdb 2018e or earlier, -+ * for zones like EST5EDT where the first transition is to DST. -+ */ -+ -+ /* - * If no result yet, find the first standard type. If there is none, punt - * to type zero. - */ -@@ -542,7 +568,14 @@ tzloadbody(char const *name, char *canon - break; - } - } -+ -+ /* -+ * A simple 'sp->defaulttype = 0;' would suffice here if we didn't have to -+ * worry about 2018e-or-earlier data. Even simpler would be to remove the -+ * defaulttype member and just use 0 in its place. -+ */ - sp->defaulttype = i; -+ - return 0; - } - -@@ -601,10 +634,11 @@ static const int year_lengths[2] = { - }; - - /* -- * Given a pointer into a time zone string, scan until a character that is not -- * a valid character in a zone name is found. Return a pointer to that -- * character. -+ * Given a pointer into a timezone string, scan until a character that is not -+ * a valid character in a time zone abbreviation is found. -+ * Return a pointer to that character. - */ -+ - static const char * - getzname(const char *strp) - { -@@ -617,15 +651,17 @@ getzname(const char *strp) - } - - /* -- * Given a pointer into an extended time zone string, scan until the ending -- * delimiter of the zone name is located. Return a pointer to the delimiter. -+ * Given a pointer into an extended timezone string, scan until the ending -+ * delimiter of the time zone abbreviation is located. -+ * Return a pointer to the delimiter. - * - * As with getzname above, the legal character set is actually quite - * restricted, with other characters producing undefined results. - * We don't do any checking here; checking is done later in common-case code. - */ -+ - static const char * --getqzname(const char *strp, int delim) -+getqzname(const char *strp, const int delim) - { - int c; - -@@ -635,13 +671,14 @@ getqzname(const char *strp, int delim) - } - - /* -- * Given a pointer into a time zone string, extract a number from that string. -+ * Given a pointer into a timezone string, extract a number from that string. - * Check that the number is within a specified range; if it is not, return - * NULL. - * Otherwise, return a pointer to the first character not part of the number. - */ -+ - static const char * --getnum(const char *strp, int *nump, int min, int max) -+getnum(const char *strp, int *const nump, const int min, const int max) - { - char c; - int num; -@@ -663,14 +700,15 @@ getnum(const char *strp, int *nump, int - } - - /* -- * Given a pointer into a time zone string, extract a number of seconds, -+ * Given a pointer into a timezone string, extract a number of seconds, - * in hh[:mm[:ss]] form, from the string. - * If any error occurs, return NULL. - * Otherwise, return a pointer to the first character not part of the number - * of seconds. - */ -+ - static const char * --getsecs(const char *strp, int32 *secsp) -+getsecs(const char *strp, int32 *const secsp) - { - int num; - -@@ -704,13 +742,14 @@ getsecs(const char *strp, int32 *secsp) - } - - /* -- * Given a pointer into a time zone string, extract an offset, in -+ * Given a pointer into a timezone string, extract an offset, in - * [+-]hh[:mm[:ss]] form, from the string. - * If any error occurs, return NULL. - * Otherwise, return a pointer to the first character not part of the time. - */ -+ - static const char * --getoffset(const char *strp, int32 *offsetp) -+getoffset(const char *strp, int32 *const offsetp) - { - bool neg = false; - -@@ -730,13 +769,14 @@ getoffset(const char *strp, int32 *offse - } - - /* -- * Given a pointer into a time zone string, extract a rule in the form -+ * Given a pointer into a timezone string, extract a rule in the form - * date[/time]. See POSIX section 8 for the format of "date" and "time". - * If a valid rule is not found, return NULL. - * Otherwise, return a pointer to the first character not part of the rule. - */ -+ - static const char * --getrule(const char *strp, struct rule *rulep) -+getrule(const char *strp, struct rule *const rulep) - { - if (*strp == 'J') - { -@@ -795,9 +835,10 @@ getrule(const char *strp, struct rule *r - * Given a year, a rule, and the offset from UT at the time that rule takes - * effect, calculate the year-relative time that rule takes effect. - */ -+ - static int32 --transtime(int year, const struct rule *rulep, -- int32 offset) -+transtime(const int year, const struct rule *const rulep, -+ const int32 offset) - { - bool leapyear; - int32 value; -@@ -981,7 +1022,7 @@ tzparse(const char *name, struct state * - { - dstname = name; - name = getzname(name); -- dstlen = name - dstname; /* length of DST zone name */ -+ dstlen = name - dstname; /* length of DST abbr. */ - } - if (!dstlen) - return false; -@@ -1023,8 +1064,8 @@ tzparse(const char *name, struct state * - /* - * Two transitions per year, from EPOCH_YEAR forward. - */ -- init_ttinfo(&sp->ttis[0], -dstoffset, true, stdlen + 1); -- init_ttinfo(&sp->ttis[1], -stdoffset, false, 0); -+ init_ttinfo(&sp->ttis[0], -stdoffset, false, 0); -+ init_ttinfo(&sp->ttis[1], -dstoffset, true, stdlen + 1); - sp->defaulttype = 0; - timecnt = 0; - janfirst = 0; -@@ -1073,19 +1114,15 @@ tzparse(const char *name, struct state * - if (!increment_overflow_time - (&sp->ats[timecnt], - janoffset + starttime)) -- sp->types[timecnt++] = reversed; -- else if (janoffset) -- sp->defaulttype = reversed; -+ sp->types[timecnt++] = !reversed; - sp->ats[timecnt] = janfirst; - if (!increment_overflow_time - (&sp->ats[timecnt], - janoffset + endtime)) - { -- sp->types[timecnt++] = !reversed; -+ sp->types[timecnt++] = reversed; - yearlim = year + YEARSPERREPEAT + 1; - } -- else if (janoffset) -- sp->defaulttype = !reversed; - } - if (increment_overflow_time - (&janfirst, janoffset + yearsecs)) -@@ -1094,7 +1131,10 @@ tzparse(const char *name, struct state * - } - sp->timecnt = timecnt; - if (!timecnt) -+ { -+ sp->ttis[0] = sp->ttis[1]; - sp->typecnt = 1; /* Perpetual DST. */ -+ } - else if (YEARSPERREPEAT < year - yearbeg) - sp->goback = sp->goahead = true; - } -@@ -1163,7 +1203,6 @@ tzparse(const char *name, struct state * - * otherwise, add the standard time offset to the - * transition time. - */ -- - /* - * Transitions from DST to DDST will effectively disappear - * since POSIX provides for only one DST offset. -@@ -1217,7 +1256,7 @@ tzparse(const char *name, struct state * - } - - static void --gmtload(struct state *sp) -+gmtload(struct state *const sp) - { - if (tzload(gmt, NULL, sp, true) != 0) - tzparse(gmt, sp, true); -@@ -1232,7 +1271,7 @@ gmtload(struct state *sp) - */ - static struct pg_tm * - localsub(struct state const *sp, pg_time_t const *timep, -- struct pg_tm *tmp) -+ struct pg_tm *const tmp) - { - const struct ttinfo *ttisp; - int i; -@@ -1300,6 +1339,11 @@ localsub(struct state const *sp, pg_time - } - ttisp = &sp->ttis[i]; - -+ /* -+ * To get (wrong) behavior that's compatible with System V Release 2.0 -+ * you'd replace the statement below with t += ttisp->tt_gmtoff; -+ * timesub(&t, 0L, sp, tmp); -+ */ - result = timesub(&t, ttisp->tt_gmtoff, sp, tmp); - if (result) - { -@@ -1322,8 +1366,10 @@ pg_localtime(const pg_time_t *timep, con - * - * Except we have a private "struct state" for GMT, so no sp is passed in. - */ -+ - static struct pg_tm * --gmtsub(pg_time_t const *timep, int32 offset, struct pg_tm *tmp) -+gmtsub(pg_time_t const *timep, int32 offset, -+ struct pg_tm *tmp) - { - struct pg_tm *result; - -@@ -1337,6 +1383,7 @@ gmtsub(pg_time_t const *timep, int32 off - gmt_is_set = true; - gmtload(gmtptr); - } -+ - result = timesub(timep, offset, gmtptr, tmp); - - /* -@@ -1361,6 +1408,7 @@ pg_gmtime(const pg_time_t *timep) - * Return the number of leap years through the end of the given year - * where, to make the math easy, the answer for year zero is defined as zero. - */ -+ - static int - leaps_thru_end_of_nonneg(int y) - { -Index: postgresql-10.5/src/timezone/pgtz.h -=================================================================== ---- postgresql-10.5.orig/src/timezone/pgtz.h -+++ postgresql-10.5/src/timezone/pgtz.h -@@ -49,10 +49,16 @@ struct state - pg_time_t ats[TZ_MAX_TIMES]; - unsigned char types[TZ_MAX_TIMES]; - struct ttinfo ttis[TZ_MAX_TYPES]; -- char chars[BIGGEST(BIGGEST(TZ_MAX_CHARS + 1, 3 /* sizeof gmt */ ), -+ char chars[BIGGEST(BIGGEST(TZ_MAX_CHARS + 1, 4 /* sizeof gmt */ ), - (2 * (TZ_STRLEN_MAX + 1)))]; - struct lsinfo lsis[TZ_MAX_LEAPS]; -- int defaulttype; /* for early times or if no transitions */ -+ -+ /* -+ * The time type to use for early times or if no transitions. It is always -+ * zero for recent tzdb releases. It might be nonzero for data from tzdb -+ * 2018e or earlier. -+ */ -+ int defaulttype; - }; - - -Index: postgresql-10.5/src/timezone/private.h -=================================================================== ---- postgresql-10.5.orig/src/timezone/private.h -+++ postgresql-10.5/src/timezone/private.h -@@ -1,4 +1,7 @@ -+/* Private header for tzdb code. */ -+ - #ifndef PRIVATE_H -+ - #define PRIVATE_H - - /* -Index: postgresql-10.5/src/timezone/strftime.c -=================================================================== ---- postgresql-10.5.orig/src/timezone/strftime.c -+++ postgresql-10.5/src/timezone/strftime.c -@@ -1,4 +1,4 @@ --/* Convert a broken-down timestamp to a string. */ -+/* Convert a broken-down timestamp to a string. */ - - /* - * Copyright 1989 The Regents of the University of California. -@@ -115,7 +115,7 @@ static char *_add(const char *, char *, - static char *_conv(int, const char *, char *, const char *); - static char *_fmt(const char *, const struct pg_tm *, char *, const char *, - enum warn *); --static char *_yconv(int, int, bool, bool, char *, const char *); -+static char *_yconv(int, int, bool, bool, char *, char const *); - - - size_t -@@ -441,7 +441,8 @@ _fmt(const char *format, const struct pg - - /* - * C99 and later say that %Z must be replaced by the empty -- * string if the time zone is not determinable. -+ * string if the time zone abbreviation is not -+ * determinable. - */ - continue; - case 'z': -@@ -519,6 +520,7 @@ _add(const char *str, char *pt, const ch - * same output as %Y, and that %Y contains at least 4 bytes, - * with more only if necessary. - */ -+ - static char * - _yconv(int a, int b, bool convert_top, bool convert_yy, - char *pt, const char *ptlim) -@@ -526,7 +528,7 @@ _yconv(int a, int b, bool convert_top, b - int lead; - int trail; - --#define DIVISOR 100 -+#define DIVISOR 100 - trail = a % DIVISOR + b % DIVISOR; - lead = a / DIVISOR + b / DIVISOR + trail / DIVISOR; - trail %= DIVISOR; -Index: postgresql-10.5/src/timezone/tzfile.h -=================================================================== ---- postgresql-10.5.orig/src/timezone/tzfile.h -+++ postgresql-10.5/src/timezone/tzfile.h -@@ -1,4 +1,7 @@ -+/* Layout and location of TZif files. */ -+ - #ifndef TZFILE_H -+ - #define TZFILE_H - - /* -@@ -21,14 +24,14 @@ - * Information about time zone files. - */ - --#define TZDEFAULT "localtime" -+#define TZDEFAULT "/etc/localtime" - #define TZDEFRULES "posixrules" - - /* - * Each file begins with. . . - */ - --#define TZ_MAGIC "TZif" -+#define TZ_MAGIC "TZif" - - struct tzhead - { -Index: postgresql-10.5/src/timezone/zic.c -=================================================================== ---- postgresql-10.5.orig/src/timezone/zic.c -+++ postgresql-10.5/src/timezone/zic.c -@@ -1,3 +1,5 @@ -+/* Compile .zi time zone data into TZif binary files. */ -+ - /* - * This file is in the public domain, so clarified as of - * 2006-07-17 by Arthur David Olson. -@@ -130,8 +132,7 @@ static void adjleap(void); - static void associate(void); - static void dolink(const char *, const char *, bool); - static char **getfields(char *buf); --static zic_t gethms(const char *string, const char *errstring, -- bool); -+static zic_t gethms(const char *string, const char *errstring); - static zic_t getstdoff(char *, bool *); - static void infile(const char *filename); - static void inleap(char **fields, int nfields); -@@ -162,7 +163,7 @@ enum - PERCENT_Z_LEN_BOUND = sizeof "+995959" - 1}; - - /* If true, work around a bug in Qt 5.6.1 and earlier, which mishandles -- tz binary files whose POSIX-TZ-style strings contain '<'; see -+ TZif files whose POSIX-TZ-style strings contain '<'; see - QTBUG-53071 <https://bugreports.qt.io/browse/QTBUG-53071>. This - workaround will no longer be needed when Qt 5.6.1 and earlier are - obsolete, say in the year 2021. */ -@@ -211,7 +212,7 @@ static int typecnt; - #define ZF_RULE 3 - #define ZF_FORMAT 4 - #define ZF_TILYEAR 5 --#define ZF_TILMONTH 6 -+#define ZF_TILMONTH 6 - #define ZF_TILDAY 7 - #define ZF_TILTIME 8 - #define ZONE_MINFIELDS 5 -@@ -224,12 +225,12 @@ static int typecnt; - #define ZFC_GMTOFF 0 - #define ZFC_RULE 1 - #define ZFC_FORMAT 2 --#define ZFC_TILYEAR 3 -+#define ZFC_TILYEAR 3 - #define ZFC_TILMONTH 4 - #define ZFC_TILDAY 5 --#define ZFC_TILTIME 6 --#define ZONEC_MINFIELDS 3 --#define ZONEC_MAXFIELDS 7 -+#define ZFC_TILTIME 6 -+#define ZONEC_MINFIELDS 3 -+#define ZONEC_MAXFIELDS 7 - - /* - * Which files are which on a Rule line. -@@ -244,7 +245,7 @@ static int typecnt; - #define RF_TOD 7 - #define RF_STDOFF 8 - #define RF_ABBRVAR 9 --#define RULE_FIELDS 10 -+#define RULE_FIELDS 10 - - /* - * Which fields are which on a Link line. -@@ -252,7 +253,7 @@ static int typecnt; - - #define LF_FROM 1 - #define LF_TO 2 --#define LINK_FIELDS 3 -+#define LINK_FIELDS 3 - - /* - * Which fields are which on a Leap line. -@@ -264,7 +265,7 @@ static int typecnt; - #define LP_TIME 4 - #define LP_CORR 5 - #define LP_ROLL 6 --#define LEAP_FIELDS 7 -+#define LEAP_FIELDS 7 - - /* - * Year synonyms. -@@ -998,48 +999,6 @@ dolink(char const *fromfield, char const - static zic_t const min_time = MINVAL(zic_t, TIME_T_BITS_IN_FILE); - static zic_t const max_time = MAXVAL(zic_t, TIME_T_BITS_IN_FILE); - --/* -- * Estimated time of the Big Bang, in seconds since the POSIX epoch. -- * rounded downward to the negation of a power of two that is -- * comfortably outside the error bounds. -- * -- * For the time of the Big Bang, see: -- * -- * Ade PAR, Aghanim N, Armitage-Caplan C et al. Planck 2013 results. -- * I. Overview of products and scientific results. -- * arXiv:1303.5062 2013-03-20 20:10:01 UTC -- * <https://arxiv.org/pdf/1303.5062v1> [PDF] -- * -- * Page 36, Table 9, row Age/Gyr, column Planck+WP+highL+BAO 68% limits -- * gives the value 13.798 plus-or-minus 0.037 billion years. -- * Multiplying this by 1000000000 and then by 31557600 (the number of -- * seconds in an astronomical year) gives a value that is comfortably -- * less than 2**59, so BIG_BANG is - 2**59. -- * -- * BIG_BANG is approximate, and may change in future versions. -- * Please do not rely on its exact value. -- */ -- --#ifndef BIG_BANG --#define BIG_BANG (- (((zic_t) 1) << 59)) --#endif -- --/* If true, work around GNOME bug 730332 -- <https://bugzilla.gnome.org/show_bug.cgi?id=730332> -- by refusing to output time stamps before BIG_BANG. -- Such time stamps are physically suspect anyway. -- -- The GNOME bug is scheduled to be fixed in GNOME 3.22, and if so -- this workaround will no longer be needed when GNOME 3.21 and -- earlier are obsolete, say in the year 2021. */ --enum --{ --WORK_AROUND_GNOME_BUG_730332 = true}; -- --static const zic_t early_time = (WORK_AROUND_GNOME_BUG_730332 -- ? BIG_BANG -- : MINVAL(zic_t, TIME_T_BITS_IN_FILE)); -- - /* Return true if NAME is a directory. */ - static bool - itsdir(char const *name) -@@ -1281,8 +1240,9 @@ infile(const char *name) - * A null string maps to zero. - * Call error with errstring and return zero on errors. - */ -+ - static zic_t --gethms(char const *string, char const *errstring, bool signable) -+gethms(char const *string, char const *errstring) - { - /* PG: make hh be int not zic_t to avoid sscanf portability issues */ - int hh; -@@ -1299,9 +1259,7 @@ gethms(char const *string, char const *e - - if (string == NULL || *string == '\0') - return 0; -- if (!signable) -- sign = 1; -- else if (*string == '-') -+ if (*string == '-') - { - sign = -1; - ++string; -@@ -1384,7 +1342,7 @@ getstdoff(char *field, bool *isdst) - break; - } - } -- stdoff = gethms(field, _("invalid saved time"), true); -+ stdoff = gethms(field, _("invalid saved time")); - *isdst = dst < 0 ? stdoff != 0 : dst; - return stdoff; - } -@@ -1399,10 +1357,29 @@ inrule(char **fields, int nfields) - error(_("wrong number of fields on Rule line")); - return; - } -- if (*fields[RF_NAME] == '\0') -+ switch (*fields[RF_NAME]) - { -- error(_("nameless rule")); -- return; -+ case '\0': -+ case ' ': -+ case '\f': -+ case '\n': -+ case '\r': -+ case '\t': -+ case '\v': -+ case '+': -+ case '-': -+ case '0': -+ case '1': -+ case '2': -+ case '3': -+ case '4': -+ case '5': -+ case '6': -+ case '7': -+ case '8': -+ case '9': -+ error(_("Invalid rule name \"%s\""), fields[RF_NAME]); -+ return; - } - r.r_filename = filename; - r.r_linenum = linenum; -@@ -1507,7 +1484,7 @@ inzsub(char **fields, int nfields, bool - } - z.z_filename = filename; - z.z_linenum = linenum; -- z.z_gmtoff = gethms(fields[i_gmtoff], _("invalid UT offset"), true); -+ z.z_gmtoff = gethms(fields[i_gmtoff], _("invalid UT offset")); - if ((cp = strchr(fields[i_format], '%')) != NULL) - { - if ((*++cp != 's' && *cp != 'z') || strchr(cp, '%') -@@ -1649,7 +1626,7 @@ inleap(char **fields, int nfields) - return; - } - t = dayoff * SECSPERDAY; -- tod = gethms(fields[LP_TIME], _("invalid time of day"), false); -+ tod = gethms(fields[LP_TIME], _("invalid time of day")); - cp = fields[LP_CORR]; - { - bool positive; -@@ -1757,7 +1734,7 @@ rulesub(struct rule *rp, const char *loy - break; - } - } -- rp->r_tod = gethms(dp, _("invalid time of day"), false); -+ rp->r_tod = gethms(dp, _("invalid time of day")); - free(dp); - - /* -@@ -1942,7 +1919,43 @@ is32(const zic_t x) - } - - static void --writezone(const char *const name, const char *const string, char version) -+swaptypes(int i, int j) -+{ -+ { -+ zic_t t = gmtoffs[i]; -+ -+ gmtoffs[i] = gmtoffs[j]; -+ gmtoffs[j] = t; -+ } -+ { -+ char t = isdsts[i]; -+ -+ isdsts[i] = isdsts[j]; -+ isdsts[j] = t; -+ } -+ { -+ unsigned char t = abbrinds[i]; -+ -+ abbrinds[i] = abbrinds[j]; -+ abbrinds[j] = t; -+ } -+ { -+ bool t = ttisstds[i]; -+ -+ ttisstds[i] = ttisstds[j]; -+ ttisstds[j] = t; -+ } -+ { -+ bool t = ttisgmts[i]; -+ -+ ttisgmts[i] = ttisgmts[j]; -+ ttisgmts[j] = t; -+ } -+} -+ -+static void -+writezone(const char *const name, const char *const string, char version, -+ int defaulttype) - { - FILE *fp; - ptrdiff_t i, -@@ -1977,14 +1990,12 @@ writezone(const char *const name, const - - toi = 0; - fromi = 0; -- while (fromi < timecnt && attypes[fromi].at < early_time) -- ++fromi; - for (; fromi < timecnt; ++fromi) - { -- if (toi > 1 && ((attypes[fromi].at + -- gmtoffs[attypes[toi - 1].type]) <= -- (attypes[toi - 1].at + -- gmtoffs[attypes[toi - 2].type]))) -+ if (toi != 0 && ((attypes[fromi].at + -+ gmtoffs[attypes[toi - 1].type]) <= -+ (attypes[toi - 1].at + gmtoffs[toi == 1 ? 0 -+ : attypes[toi - 2].type]))) - { - attypes[toi - 1].type = - attypes[fromi].type; -@@ -2019,8 +2030,8 @@ writezone(const char *const name, const - } - - /* -- * Work around QTBUG-53071 for time stamps less than y2038_boundary - 1, -- * by inserting a no-op transition at time y2038_boundary - 1. This works -+ * Work around QTBUG-53071 for timestamps less than y2038_boundary - 1, by -+ * inserting a no-op transition at time y2038_boundary - 1. This works - * only for timestamps before the boundary, which should be good enough in - * practice as QTBUG-53071 should be long-dead by 2038. - */ -@@ -2116,7 +2127,8 @@ writezone(const char *const name, const - int thisleapi, - thisleapcnt, - thisleaplim; -- int writetype[TZ_MAX_TYPES]; -+ int old0; -+ char omittype[TZ_MAX_TYPES]; - int typemap[TZ_MAX_TYPES]; - int thistypecnt; - char thischars[TZ_MAX_CHARS]; -@@ -2144,28 +2156,19 @@ writezone(const char *const name, const - error(_("too many transition times")); - thistimelim = thistimei + thistimecnt; - thisleaplim = thisleapi + thisleapcnt; -- for (i = 0; i < typecnt; ++i) -- writetype[i] = thistimecnt == timecnt; -- if (thistimecnt == 0) -- { -- /* -- * No transition times fall in the current (32- or 64-bit) window. -- */ -- if (typecnt != 0) -- writetype[typecnt - 1] = true; -- } -- else -- { -- for (i = thistimei - 1; i < thistimelim; ++i) -- if (i >= 0) -- writetype[types[i]] = true; -+ memset(omittype, true, typecnt); -+ omittype[defaulttype] = false; -+ for (i = thistimei; i < thistimelim; i++) -+ omittype[types[i]] = false; -+ -+ /* -+ * Reorder types to make DEFAULTTYPE type 0. Use TYPEMAP to swap OLD0 -+ * and DEFAULTTYPE so that DEFAULTTYPE appears as type 0 in the output -+ * instead of OLD0. TYPEMAP also omits unused types. -+ */ -+ old0 = strlen(omittype); -+ swaptypes(old0, defaulttype); - -- /* -- * For America/Godthab and Antarctica/Palmer -- */ -- if (thistimei == 0) -- writetype[0] = true; -- } - #ifndef LEAVE_SOME_PRE_2011_SYSTEMS_IN_THE_LURCH - - /* -@@ -2187,8 +2190,8 @@ writezone(const char *const name, const - mrudst = types[i]; - else - mrustd = types[i]; -- for (i = 0; i < typecnt; ++i) -- if (writetype[i]) -+ for (i = old0; i < typecnt; i++) -+ if (!omittype[i]) - { - if (isdsts[i]) - hidst = i; -@@ -2205,7 +2208,7 @@ writezone(const char *const name, const - ttisstds[mrudst], - ttisgmts[mrudst]); - isdsts[mrudst] = 1; -- writetype[type] = true; -+ omittype[type] = false; - } - if (histd >= 0 && mrustd >= 0 && histd != mrustd && - gmtoffs[histd] != gmtoffs[mrustd]) -@@ -2217,22 +2220,26 @@ writezone(const char *const name, const - ttisstds[mrustd], - ttisgmts[mrustd]); - isdsts[mrustd] = 0; -- writetype[type] = true; -+ omittype[type] = false; - } - } - #endif /* !defined - * LEAVE_SOME_PRE_2011_SYSTEMS_IN_THE_LURCH */ - thistypecnt = 0; -- for (i = 0; i < typecnt; ++i) -- typemap[i] = writetype[i] ? thistypecnt++ : -1; -+ for (i = old0; i < typecnt; i++) -+ if (!omittype[i]) -+ typemap[i == old0 ? defaulttype -+ : i == defaulttype ? old0 : i] -+ = thistypecnt++; -+ - for (i = 0; i < sizeof indmap / sizeof indmap[0]; ++i) - indmap[i] = -1; - thischarcnt = 0; -- for (i = 0; i < typecnt; ++i) -+ for (i = old0; i < typecnt; i++) - { - char *thisabbr; - -- if (!writetype[i]) -+ if (omittype[i]) - continue; - if (indmap[abbrinds[i]] >= 0) - continue; -@@ -2267,23 +2274,16 @@ writezone(const char *const name, const - DO(tzh_typecnt); - DO(tzh_charcnt); - #undef DO -- for (i = thistimei; i < thistimelim; ++i) -- if (pass == 1) - -- /* -- * Output an INT32_MIN "transition" if appropriate; see above. -- */ -- puttzcode(((ats[i] < PG_INT32_MIN) ? -- PG_INT32_MIN : ats[i]), fp); -- else -+ /* PG: print current timezone abbreviations if requested */ -+ if (print_abbrevs && pass == 2) -+ { -+ /* Print "type" data for periods ending after print_cutoff */ -+ for (i = thistimei; i < thistimelim; ++i) - { -- puttzcode64(ats[i], fp); -- -- /* Print current timezone abbreviations if requested */ -- if (print_abbrevs && -- (i == thistimelim - 1 || ats[i + 1] > print_cutoff)) -+ if (i == thistimelim - 1 || ats[i + 1] > print_cutoff) - { -- unsigned char tm = typemap[types[i]]; -+ unsigned char tm = types[i]; - char *thisabbrev = &thischars[indmap[abbrinds[tm]]]; - - /* filter out assorted junk entries */ -@@ -2295,6 +2295,32 @@ writezone(const char *const name, const - isdsts[tm] ? "\tD" : ""); - } - } -+ /* Print the default type if we have no transitions at all */ -+ if (thistimei >= thistimelim) -+ { -+ unsigned char tm = defaulttype; -+ char *thisabbrev = &thischars[indmap[abbrinds[tm]]]; -+ -+ /* filter out assorted junk entries */ -+ if (strcmp(thisabbrev, GRANDPARENTED) != 0 && -+ strcmp(thisabbrev, "zzz") != 0) -+ fprintf(stdout, "%s\t" INT64_FORMAT "%s\n", -+ thisabbrev, -+ gmtoffs[tm], -+ isdsts[tm] ? "\tD" : ""); -+ } -+ } -+ -+ for (i = thistimei; i < thistimelim; ++i) -+ if (pass == 1) -+ -+ /* -+ * Output an INT32_MIN "transition" if appropriate; see above. -+ */ -+ puttzcode(((ats[i] < PG_INT32_MIN) ? -+ PG_INT32_MIN : ats[i]), fp); -+ else -+ puttzcode64(ats[i], fp); - for (i = thistimei; i < thistimelim; ++i) - { - unsigned char uc; -@@ -2302,8 +2328,8 @@ writezone(const char *const name, const - uc = typemap[types[i]]; - fwrite(&uc, sizeof uc, 1, fp); - } -- for (i = 0; i < typecnt; ++i) -- if (writetype[i]) -+ for (i = old0; i < typecnt; i++) -+ if (!omittype[i]) - { - puttzcode(gmtoffs[i], fp); - putc(isdsts[i], fp); -@@ -2346,12 +2372,13 @@ writezone(const char *const name, const - puttzcode64(todo, fp); - puttzcode(corr[i], fp); - } -- for (i = 0; i < typecnt; ++i) -- if (writetype[i]) -+ for (i = old0; i < typecnt; i++) -+ if (!omittype[i]) - putc(ttisstds[i], fp); -- for (i = 0; i < typecnt; ++i) -- if (writetype[i]) -+ for (i = old0; i < typecnt; i++) -+ if (!omittype[i]) - putc(ttisgmts[i], fp); -+ swaptypes(old0, defaulttype); - } - fprintf(fp, "\n%s\n", string); - close_file(fp, directory, name); -@@ -2757,6 +2784,7 @@ outzone(const struct zone *zpfirst, ptrd - zic_t one = 1; - zic_t y2038_boundary = one << 31; - zic_t max_year0; -+ int defaulttype = -1; - - max_abbr_len = 2 + max_format_len + max_abbrvar_len; - max_envvar_len = 2 * max_abbr_len + 5 * 9; -@@ -2880,9 +2908,9 @@ outzone(const struct zone *zpfirst, ptrd - */ - stdoff = 0; - zp = &zpfirst[i]; -- usestart = i > 0 && (zp - 1)->z_untiltime > early_time; -+ usestart = i > 0 && (zp - 1)->z_untiltime > min_time; - useuntil = i < (zonecount - 1); -- if (useuntil && zp->z_untiltime <= early_time) -+ if (useuntil && zp->z_untiltime <= min_time) - continue; - gmtoff = zp->z_gmtoff; - eat(zp->z_filename, zp->z_linenum); -@@ -2901,7 +2929,7 @@ outzone(const struct zone *zpfirst, ptrd - usestart = false; - } - else -- addtt(early_time, type); -+ defaulttype = type; - } - else - for (year = min_year; year <= max_year; ++year) -@@ -3032,6 +3060,8 @@ outzone(const struct zone *zpfirst, ptrd - offset = oadd(zp->z_gmtoff, rp->r_stdoff); - type = addtype(offset, ab, rp->r_isdst, - rp->r_todisstd, rp->r_todisgmt); -+ if (defaulttype < 0 && !rp->r_isdst) -+ defaulttype = type; - if (rp->r_hiyear == ZIC_MAX - && !(0 <= lastatmax - && ktime < attypes[lastatmax].at)) -@@ -3050,11 +3080,15 @@ outzone(const struct zone *zpfirst, ptrd - if (*startbuf == '\0') - error(_("cannot determine time zone abbreviation to use just after until time")); - else -- addtt(starttime, -- addtype(startoff, startbuf, -- startoff != zp->z_gmtoff, -- startttisstd, -- startttisgmt)); -+ { -+ bool isdst = startoff != zp->z_gmtoff; -+ -+ type = addtype(startoff, startbuf, isdst, -+ startttisstd, startttisgmt); -+ if (defaulttype < 0 && !isdst) -+ defaulttype = type; -+ addtt(starttime, type); -+ } - } - - /* -@@ -3071,6 +3105,8 @@ outzone(const struct zone *zpfirst, ptrd - starttime = tadd(starttime, -gmtoff); - } - } -+ if (defaulttype < 0) -+ defaulttype = 0; - if (0 <= lastatmax) - attypes[lastatmax].dontmerge = true; - if (do_extend) -@@ -3100,7 +3136,7 @@ outzone(const struct zone *zpfirst, ptrd - attypes[timecnt - 1].dontmerge = true; - } - } -- writezone(zpfirst->z_name, envvar, version); -+ writezone(zpfirst->z_name, envvar, version, defaulttype); - free(startbuf); - free(ab); - free(envvar); -@@ -3109,21 +3145,6 @@ outzone(const struct zone *zpfirst, ptrd - static void - addtt(zic_t starttime, int type) - { -- if (starttime <= early_time -- || (timecnt == 1 && attypes[0].at < early_time)) -- { -- gmtoffs[0] = gmtoffs[type]; -- isdsts[0] = isdsts[type]; -- ttisstds[0] = ttisstds[type]; -- ttisgmts[0] = ttisgmts[type]; -- if (abbrinds[type] != 0) -- strcpy(chars, &chars[abbrinds[type]]); -- abbrinds[0] = 0; -- charcnt = strlen(chars) + 1; -- typecnt = 1; -- timecnt = 0; -- type = 0; -- } - attypes = growalloc(attypes, sizeof *attypes, timecnt, &timecnt_alloc); - attypes[timecnt].at = starttime; - attypes[timecnt].dontmerge = false; -@@ -3361,7 +3382,7 @@ is_alpha(char a) - } - - /* If A is an uppercase character in the C locale, return its lowercase -- * counterpart. Otherwise, return A. */ -+ counterpart. Otherwise, return A. */ - static char - lowerit(char a) - { -@@ -3628,6 +3649,18 @@ rpytime(const struct rule *rp, zic_t wan - dayoff = 0; - m = TM_JANUARY; - y = EPOCH_YEAR; -+ if (y < wantedy) -+ { -+ wantedy -= y; -+ dayoff = (wantedy / YEARSPERREPEAT) * (SECSPERREPEAT / SECSPERDAY); -+ wantedy %= YEARSPERREPEAT; -+ wantedy += y; -+ } -+ else if (wantedy < 0) -+ { -+ dayoff = (wantedy / YEARSPERREPEAT) * (SECSPERREPEAT / SECSPERDAY); -+ wantedy %= YEARSPERREPEAT; -+ } - while (wantedy != y) - { - if (wantedy > y) -@@ -3706,7 +3739,6 @@ will not work with pre-2004 versions of - if (dayoff > max_time / SECSPERDAY) - return max_time; - t = (zic_t) dayoff * SECSPERDAY; -- - return tadd(t, rp->r_tod); - } - diff --git a/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0001-Update-time-zone-data-files-to-tzdata-release-2018f.patch b/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0001-Update-time-zone-data-files-to-tzdata-release-2018f.patch deleted file mode 100644 index 41e763c550..0000000000 --- a/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/0001-Update-time-zone-data-files-to-tzdata-release-2018f.patch +++ /dev/null @@ -1,6452 +0,0 @@ -From 13877d30f2ec93f6043937f76af207dcc614a4e7 Mon Sep 17 00:00:00 2001 -From: Tom Lane <tgl@sss.pgh.pa.us> -Date: Fri, 19 Oct 2018 17:01:34 -0400 -Subject: [PATCH] Update time zone data files to tzdata release 2018f. - -DST law changes in Chile, Fiji, and Russia (Volgograd). -Historical corrections for China, Japan, Macau, and North Korea. - -Note: like the previous tzdata update, this involves a depressingly -large amount of semantically-meaningless churn in tzdata.zi. That -is a consequence of upstream's data compression method assigning -unstable abbreviations to DST rulesets. I complained about that -to them last time, and this version now uses an assignment method -that pays some heed to not changing abbreviations unnecessarily. -So hopefully, that'll be better going forward. - -Upstream-Status: Backport -Signed-off-by: Armin Kuster <akuster@mvista.com> - ---- - src/timezone/data/tzdata.zi | 5273 +++++++++++++++++++------------------- - src/timezone/known_abbrevs.txt | 1 + - src/timezone/tznames/America.txt | 3 + - src/timezone/tznames/Asia.txt | 4 + - src/timezone/tznames/Default | 3 + - src/timezone/tznames/Pacific.txt | 3 + - 6 files changed, 2660 insertions(+), 2627 deletions(-) - -diff --git a/src/timezone/data/tzdata.zi b/src/timezone/data/tzdata.zi -index c470112..6d98902 100644 ---- a/src/timezone/data/tzdata.zi -+++ b/src/timezone/data/tzdata.zi -@@ -1,36 +1,36 @@ --# version 2018e -+# version 2018f - # This zic input file is in the public domain. --R A 1916 o - Jun 14 23s 1 S --R A 1916 1919 - O Sun>=1 23s 0 - --R A 1917 o - Mar 24 23s 1 S --R A 1918 o - Mar 9 23s 1 S --R A 1919 o - Mar 1 23s 1 S --R A 1920 o - F 14 23s 1 S --R A 1920 o - O 23 23s 0 - --R A 1921 o - Mar 14 23s 1 S --R A 1921 o - Jun 21 23s 0 - --R A 1939 o - S 11 23s 1 S --R A 1939 o - N 19 1 0 - --R A 1944 1945 - Ap M>=1 2 1 S --R A 1944 o - O 8 2 0 - --R A 1945 o - S 16 1 0 - --R A 1971 o - Ap 25 23s 1 S --R A 1971 o - S 26 23s 0 - --R A 1977 o - May 6 0 1 S --R A 1977 o - O 21 0 0 - --R A 1978 o - Mar 24 1 1 S --R A 1978 o - S 22 3 0 - --R A 1980 o - Ap 25 0 1 S --R A 1980 o - O 31 2 0 - -+R d 1916 o - Jun 14 23s 1 S -+R d 1916 1919 - O Sun>=1 23s 0 - -+R d 1917 o - Mar 24 23s 1 S -+R d 1918 o - Mar 9 23s 1 S -+R d 1919 o - Mar 1 23s 1 S -+R d 1920 o - F 14 23s 1 S -+R d 1920 o - O 23 23s 0 - -+R d 1921 o - Mar 14 23s 1 S -+R d 1921 o - Jun 21 23s 0 - -+R d 1939 o - S 11 23s 1 S -+R d 1939 o - N 19 1 0 - -+R d 1944 1945 - Ap M>=1 2 1 S -+R d 1944 o - O 8 2 0 - -+R d 1945 o - S 16 1 0 - -+R d 1971 o - Ap 25 23s 1 S -+R d 1971 o - S 26 23s 0 - -+R d 1977 o - May 6 0 1 S -+R d 1977 o - O 21 0 0 - -+R d 1978 o - Mar 24 1 1 S -+R d 1978 o - S 22 3 0 - -+R d 1980 o - Ap 25 0 1 S -+R d 1980 o - O 31 2 0 - - Z Africa/Algiers 0:12:12 - LMT 1891 Mar 15 0:1 - 0:9:21 - PMT 1911 Mar 11 --0 A WE%sT 1940 F 25 2 --1 A CE%sT 1946 O 7 -+0 d WE%sT 1940 F 25 2 -+1 d CE%sT 1946 O 7 - 0 - WET 1956 Ja 29 - 1 - CET 1963 Ap 14 --0 A WE%sT 1977 O 21 --1 A CE%sT 1979 O 26 --0 A WE%sT 1981 May -+0 d WE%sT 1977 O 21 -+1 d CE%sT 1979 O 26 -+0 d WE%sT 1981 May - 1 - CET - Z Atlantic/Cape_Verde -1:34:4 - LMT 1912 Ja 1 2u - -2 - -02 1942 S -@@ -52,44 +52,44 @@ Li Africa/Abidjan Africa/Lome - Li Africa/Abidjan Africa/Nouakchott - Li Africa/Abidjan Africa/Ouagadougou - Li Africa/Abidjan Atlantic/St_Helena --R B 1940 o - Jul 15 0 1 S --R B 1940 o - O 1 0 0 - --R B 1941 o - Ap 15 0 1 S --R B 1941 o - S 16 0 0 - --R B 1942 1944 - Ap 1 0 1 S --R B 1942 o - O 27 0 0 - --R B 1943 1945 - N 1 0 0 - --R B 1945 o - Ap 16 0 1 S --R B 1957 o - May 10 0 1 S --R B 1957 1958 - O 1 0 0 - --R B 1958 o - May 1 0 1 S --R B 1959 1981 - May 1 1 1 S --R B 1959 1965 - S 30 3 0 - --R B 1966 1994 - O 1 3 0 - --R B 1982 o - Jul 25 1 1 S --R B 1983 o - Jul 12 1 1 S --R B 1984 1988 - May 1 1 1 S --R B 1989 o - May 6 1 1 S --R B 1990 1994 - May 1 1 1 S --R B 1995 2010 - Ap lastF 0s 1 S --R B 1995 2005 - S lastTh 24 0 - --R B 2006 o - S 21 24 0 - --R B 2007 o - S Th>=1 24 0 - --R B 2008 o - Au lastTh 24 0 - --R B 2009 o - Au 20 24 0 - --R B 2010 o - Au 10 24 0 - --R B 2010 o - S 9 24 1 S --R B 2010 o - S lastTh 24 0 - --R B 2014 o - May 15 24 1 S --R B 2014 o - Jun 26 24 0 - --R B 2014 o - Jul 31 24 1 S --R B 2014 o - S lastTh 24 0 - -+R K 1940 o - Jul 15 0 1 S -+R K 1940 o - O 1 0 0 - -+R K 1941 o - Ap 15 0 1 S -+R K 1941 o - S 16 0 0 - -+R K 1942 1944 - Ap 1 0 1 S -+R K 1942 o - O 27 0 0 - -+R K 1943 1945 - N 1 0 0 - -+R K 1945 o - Ap 16 0 1 S -+R K 1957 o - May 10 0 1 S -+R K 1957 1958 - O 1 0 0 - -+R K 1958 o - May 1 0 1 S -+R K 1959 1981 - May 1 1 1 S -+R K 1959 1965 - S 30 3 0 - -+R K 1966 1994 - O 1 3 0 - -+R K 1982 o - Jul 25 1 1 S -+R K 1983 o - Jul 12 1 1 S -+R K 1984 1988 - May 1 1 1 S -+R K 1989 o - May 6 1 1 S -+R K 1990 1994 - May 1 1 1 S -+R K 1995 2010 - Ap lastF 0s 1 S -+R K 1995 2005 - S lastTh 24 0 - -+R K 2006 o - S 21 24 0 - -+R K 2007 o - S Th>=1 24 0 - -+R K 2008 o - Au lastTh 24 0 - -+R K 2009 o - Au 20 24 0 - -+R K 2010 o - Au 10 24 0 - -+R K 2010 o - S 9 24 1 S -+R K 2010 o - S lastTh 24 0 - -+R K 2014 o - May 15 24 1 S -+R K 2014 o - Jun 26 24 0 - -+R K 2014 o - Jul 31 24 1 S -+R K 2014 o - S lastTh 24 0 - - Z Africa/Cairo 2:5:9 - LMT 1900 O --2 B EE%sT --R C 1920 1942 - S 1 0 0:20 - --R C 1920 1942 - D 31 0 0 - -+2 K EE%sT -+R GH 1920 1942 - S 1 0 0:20 - -+R GH 1920 1942 - D 31 0 0 - - Z Africa/Accra -0:0:52 - LMT 1918 --0 C GMT/+0020 -+0 GH GMT/+0020 - Z Africa/Bissau -1:2:20 - LMT 1912 Ja 1 1u - -1 - -01 1975 - 0 - GMT -@@ -111,99 +111,99 @@ Z Africa/Monrovia -0:43:8 - LMT 1882 - -0:43:8 - MMT 1919 Mar - -0:44:30 - MMT 1972 Ja 7 - 0 - GMT --R D 1951 o - O 14 2 1 S --R D 1952 o - Ja 1 0 0 - --R D 1953 o - O 9 2 1 S --R D 1954 o - Ja 1 0 0 - --R D 1955 o - S 30 0 1 S --R D 1956 o - Ja 1 0 0 - --R D 1982 1984 - Ap 1 0 1 S --R D 1982 1985 - O 1 0 0 - --R D 1985 o - Ap 6 0 1 S --R D 1986 o - Ap 4 0 1 S --R D 1986 o - O 3 0 0 - --R D 1987 1989 - Ap 1 0 1 S --R D 1987 1989 - O 1 0 0 - --R D 1997 o - Ap 4 0 1 S --R D 1997 o - O 4 0 0 - --R D 2013 o - Mar lastF 1 1 S --R D 2013 o - O lastF 2 0 - -+R L 1951 o - O 14 2 1 S -+R L 1952 o - Ja 1 0 0 - -+R L 1953 o - O 9 2 1 S -+R L 1954 o - Ja 1 0 0 - -+R L 1955 o - S 30 0 1 S -+R L 1956 o - Ja 1 0 0 - -+R L 1982 1984 - Ap 1 0 1 S -+R L 1982 1985 - O 1 0 0 - -+R L 1985 o - Ap 6 0 1 S -+R L 1986 o - Ap 4 0 1 S -+R L 1986 o - O 3 0 0 - -+R L 1987 1989 - Ap 1 0 1 S -+R L 1987 1989 - O 1 0 0 - -+R L 1997 o - Ap 4 0 1 S -+R L 1997 o - O 4 0 0 - -+R L 2013 o - Mar lastF 1 1 S -+R L 2013 o - O lastF 2 0 - - Z Africa/Tripoli 0:52:44 - LMT 1920 --1 D CE%sT 1959 -+1 L CE%sT 1959 - 2 - EET 1982 --1 D CE%sT 1990 May 4 -+1 L CE%sT 1990 May 4 - 2 - EET 1996 S 30 --1 D CE%sT 1997 O 4 -+1 L CE%sT 1997 O 4 - 2 - EET 2012 N 10 2 --1 D CE%sT 2013 O 25 2 -+1 L CE%sT 2013 O 25 2 - 2 - EET --R E 1982 o - O 10 0 1 - --R E 1983 o - Mar 21 0 0 - --R E 2008 o - O lastSun 2 1 - --R E 2009 o - Mar lastSun 2 0 - -+R MU 1982 o - O 10 0 1 - -+R MU 1983 o - Mar 21 0 0 - -+R MU 2008 o - O lastSun 2 1 - -+R MU 2009 o - Mar lastSun 2 0 - - Z Indian/Mauritius 3:50 - LMT 1907 --4 E +04/+05 --R F 1939 o - S 12 0 1 S --R F 1939 o - N 19 0 0 - --R F 1940 o - F 25 0 1 S --R F 1945 o - N 18 0 0 - --R F 1950 o - Jun 11 0 1 S --R F 1950 o - O 29 0 0 - --R F 1967 o - Jun 3 12 1 S --R F 1967 o - O 1 0 0 - --R F 1974 o - Jun 24 0 1 S --R F 1974 o - S 1 0 0 - --R F 1976 1977 - May 1 0 1 S --R F 1976 o - Au 1 0 0 - --R F 1977 o - S 28 0 0 - --R F 1978 o - Jun 1 0 1 S --R F 1978 o - Au 4 0 0 - --R F 2008 o - Jun 1 0 1 S --R F 2008 o - S 1 0 0 - --R F 2009 o - Jun 1 0 1 S --R F 2009 o - Au 21 0 0 - --R F 2010 o - May 2 0 1 S --R F 2010 o - Au 8 0 0 - --R F 2011 o - Ap 3 0 1 S --R F 2011 o - Jul 31 0 0 - --R F 2012 2013 - Ap lastSun 2 1 S --R F 2012 o - Jul 20 3 0 - --R F 2012 o - Au 20 2 1 S --R F 2012 o - S 30 3 0 - --R F 2013 o - Jul 7 3 0 - --R F 2013 o - Au 10 2 1 S --R F 2013 ma - O lastSun 3 0 - --R F 2014 2021 - Mar lastSun 2 1 S --R F 2014 o - Jun 28 3 0 - --R F 2014 o - Au 2 2 1 S --R F 2015 o - Jun 14 3 0 - --R F 2015 o - Jul 19 2 1 S --R F 2016 o - Jun 5 3 0 - --R F 2016 o - Jul 10 2 1 S --R F 2017 o - May 21 3 0 - --R F 2017 o - Jul 2 2 1 S --R F 2018 o - May 13 3 0 - --R F 2018 o - Jun 17 2 1 S --R F 2019 o - May 5 3 0 - --R F 2019 o - Jun 9 2 1 S --R F 2020 o - Ap 19 3 0 - --R F 2020 o - May 24 2 1 S --R F 2021 o - Ap 11 3 0 - --R F 2021 o - May 16 2 1 S --R F 2022 o - May 8 2 1 S --R F 2023 o - Ap 23 2 1 S --R F 2024 o - Ap 14 2 1 S --R F 2025 o - Ap 6 2 1 S --R F 2026 ma - Mar lastSun 2 1 S --R F 2036 o - O 19 3 0 - --R F 2037 o - O 4 3 0 - -+4 MU +04/+05 -+R M 1939 o - S 12 0 1 S -+R M 1939 o - N 19 0 0 - -+R M 1940 o - F 25 0 1 S -+R M 1945 o - N 18 0 0 - -+R M 1950 o - Jun 11 0 1 S -+R M 1950 o - O 29 0 0 - -+R M 1967 o - Jun 3 12 1 S -+R M 1967 o - O 1 0 0 - -+R M 1974 o - Jun 24 0 1 S -+R M 1974 o - S 1 0 0 - -+R M 1976 1977 - May 1 0 1 S -+R M 1976 o - Au 1 0 0 - -+R M 1977 o - S 28 0 0 - -+R M 1978 o - Jun 1 0 1 S -+R M 1978 o - Au 4 0 0 - -+R M 2008 o - Jun 1 0 1 S -+R M 2008 o - S 1 0 0 - -+R M 2009 o - Jun 1 0 1 S -+R M 2009 o - Au 21 0 0 - -+R M 2010 o - May 2 0 1 S -+R M 2010 o - Au 8 0 0 - -+R M 2011 o - Ap 3 0 1 S -+R M 2011 o - Jul 31 0 0 - -+R M 2012 2013 - Ap lastSun 2 1 S -+R M 2012 o - Jul 20 3 0 - -+R M 2012 o - Au 20 2 1 S -+R M 2012 o - S 30 3 0 - -+R M 2013 o - Jul 7 3 0 - -+R M 2013 o - Au 10 2 1 S -+R M 2013 ma - O lastSun 3 0 - -+R M 2014 2021 - Mar lastSun 2 1 S -+R M 2014 o - Jun 28 3 0 - -+R M 2014 o - Au 2 2 1 S -+R M 2015 o - Jun 14 3 0 - -+R M 2015 o - Jul 19 2 1 S -+R M 2016 o - Jun 5 3 0 - -+R M 2016 o - Jul 10 2 1 S -+R M 2017 o - May 21 3 0 - -+R M 2017 o - Jul 2 2 1 S -+R M 2018 o - May 13 3 0 - -+R M 2018 o - Jun 17 2 1 S -+R M 2019 o - May 5 3 0 - -+R M 2019 o - Jun 9 2 1 S -+R M 2020 o - Ap 19 3 0 - -+R M 2020 o - May 24 2 1 S -+R M 2021 o - Ap 11 3 0 - -+R M 2021 o - May 16 2 1 S -+R M 2022 o - May 8 2 1 S -+R M 2023 o - Ap 23 2 1 S -+R M 2024 o - Ap 14 2 1 S -+R M 2025 o - Ap 6 2 1 S -+R M 2026 ma - Mar lastSun 2 1 S -+R M 2036 o - O 19 3 0 - -+R M 2037 o - O 4 3 0 - - Z Africa/Casablanca -0:30:20 - LMT 1913 O 26 --0 F WE%sT 1984 Mar 16 -+0 M WE%sT 1984 Mar 16 - 1 - CET 1986 --0 F WE%sT -+0 M WE%sT - Z Africa/El_Aaiun -0:52:48 - LMT 1934 - -1 - -01 1976 Ap 14 --0 F WE%sT -+0 M WE%sT - Z Africa/Maputo 2:10:20 - LMT 1903 Mar - 2 - CAT - Li Africa/Maputo Africa/Blantyre -@@ -213,15 +213,15 @@ Li Africa/Maputo Africa/Harare - Li Africa/Maputo Africa/Kigali - Li Africa/Maputo Africa/Lubumbashi - Li Africa/Maputo Africa/Lusaka --R G 1994 o - Mar 21 0 -1 WAT --R G 1994 2017 - S Sun>=1 2 0 CAT --R G 1995 2017 - Ap Sun>=1 2 -1 WAT -+R NA 1994 o - Mar 21 0 -1 WAT -+R NA 1994 2017 - S Sun>=1 2 0 CAT -+R NA 1995 2017 - Ap Sun>=1 2 -1 WAT - Z Africa/Windhoek 1:8:24 - LMT 1892 F 8 - 1:30 - +0130 1903 Mar - 2 - SAST 1942 S 20 2 - 2 1 SAST 1943 Mar 21 2 - 2 - SAST 1990 Mar 21 --2 G %s -+2 NA %s - Z Africa/Lagos 0:13:36 - LMT 1919 S - 1 - WAT - Li Africa/Lagos Africa/Bangui -@@ -241,52 +241,52 @@ Z Africa/Sao_Tome 0:26:56 - LMT 1884 - 1 - WAT - Z Indian/Mahe 3:41:48 - LMT 1906 Jun - 4 - +04 --R H 1942 1943 - S Sun>=15 2 1 - --R H 1943 1944 - Mar Sun>=15 2 0 - -+R SA 1942 1943 - S Sun>=15 2 1 - -+R SA 1943 1944 - Mar Sun>=15 2 0 - - Z Africa/Johannesburg 1:52 - LMT 1892 F 8 - 1:30 - SAST 1903 Mar --2 H SAST -+2 SA SAST - Li Africa/Johannesburg Africa/Maseru - Li Africa/Johannesburg Africa/Mbabane --R I 1970 o - May 1 0 1 S --R I 1970 1985 - O 15 0 0 - --R I 1971 o - Ap 30 0 1 S --R I 1972 1985 - Ap lastSun 0 1 S -+R SD 1970 o - May 1 0 1 S -+R SD 1970 1985 - O 15 0 0 - -+R SD 1971 o - Ap 30 0 1 S -+R SD 1972 1985 - Ap lastSun 0 1 S - Z Africa/Khartoum 2:10:8 - LMT 1931 --2 I CA%sT 2000 Ja 15 12 -+2 SD CA%sT 2000 Ja 15 12 - 3 - EAT 2017 N - 2 - CAT - Z Africa/Juba 2:6:28 - LMT 1931 --2 I CA%sT 2000 Ja 15 12 -+2 SD CA%sT 2000 Ja 15 12 - 3 - EAT --R J 1939 o - Ap 15 23s 1 S --R J 1939 o - N 18 23s 0 - --R J 1940 o - F 25 23s 1 S --R J 1941 o - O 6 0 0 - --R J 1942 o - Mar 9 0 1 S --R J 1942 o - N 2 3 0 - --R J 1943 o - Mar 29 2 1 S --R J 1943 o - Ap 17 2 0 - --R J 1943 o - Ap 25 2 1 S --R J 1943 o - O 4 2 0 - --R J 1944 1945 - Ap M>=1 2 1 S --R J 1944 o - O 8 0 0 - --R J 1945 o - S 16 0 0 - --R J 1977 o - Ap 30 0s 1 S --R J 1977 o - S 24 0s 0 - --R J 1978 o - May 1 0s 1 S --R J 1978 o - O 1 0s 0 - --R J 1988 o - Jun 1 0s 1 S --R J 1988 1990 - S lastSun 0s 0 - --R J 1989 o - Mar 26 0s 1 S --R J 1990 o - May 1 0s 1 S --R J 2005 o - May 1 0s 1 S --R J 2005 o - S 30 1s 0 - --R J 2006 2008 - Mar lastSun 2s 1 S --R J 2006 2008 - O lastSun 2s 0 - -+R n 1939 o - Ap 15 23s 1 S -+R n 1939 o - N 18 23s 0 - -+R n 1940 o - F 25 23s 1 S -+R n 1941 o - O 6 0 0 - -+R n 1942 o - Mar 9 0 1 S -+R n 1942 o - N 2 3 0 - -+R n 1943 o - Mar 29 2 1 S -+R n 1943 o - Ap 17 2 0 - -+R n 1943 o - Ap 25 2 1 S -+R n 1943 o - O 4 2 0 - -+R n 1944 1945 - Ap M>=1 2 1 S -+R n 1944 o - O 8 0 0 - -+R n 1945 o - S 16 0 0 - -+R n 1977 o - Ap 30 0s 1 S -+R n 1977 o - S 24 0s 0 - -+R n 1978 o - May 1 0s 1 S -+R n 1978 o - O 1 0s 0 - -+R n 1988 o - Jun 1 0s 1 S -+R n 1988 1990 - S lastSun 0s 0 - -+R n 1989 o - Mar 26 0s 1 S -+R n 1990 o - May 1 0s 1 S -+R n 2005 o - May 1 0s 1 S -+R n 2005 o - S 30 1s 0 - -+R n 2006 2008 - Mar lastSun 2s 1 S -+R n 2006 2008 - O lastSun 2s 0 - - Z Africa/Tunis 0:40:44 - LMT 1881 May 12 - 0:9:21 - PMT 1911 Mar 11 --1 J CE%sT -+1 n CE%sT - Z Antarctica/Casey 0 - -00 1969 - 8 - +08 2009 O 18 2 - 11 - +11 2010 Mar 5 2 -@@ -314,10 +314,10 @@ Z Antarctica/DumontDUrville 0 - -00 1947 - 10 - +10 - Z Antarctica/Syowa 0 - -00 1957 Ja 29 - 3 - +03 --R K 2005 ma - Mar lastSun 1u 2 +02 --R K 2004 ma - O lastSun 1u 0 +00 -+R Tr 2005 ma - Mar lastSun 1u 2 +02 -+R Tr 2004 ma - O lastSun 1u 0 +00 - Z Antarctica/Troll 0 - -00 2005 F 12 --0 K %s -+0 Tr %s - Z Antarctica/Vostok 0 - -00 1957 D 16 - 6 - +06 - Z Antarctica/Rothera 0 - -00 1976 D -@@ -325,33 +325,33 @@ Z Antarctica/Rothera 0 - -00 1976 D - Z Asia/Kabul 4:36:48 - LMT 1890 - 4 - +04 1945 - 4:30 - +0430 --R L 2011 o - Mar lastSun 2s 1 - --R L 2011 o - O lastSun 2s 0 - -+R AM 2011 o - Mar lastSun 2s 1 - -+R AM 2011 o - O lastSun 2s 0 - - Z Asia/Yerevan 2:58 - LMT 1924 May 2 - 3 - +03 1957 Mar --4 M +04/+05 1991 Mar 31 2s --3 M +03/+04 1995 S 24 2s -+4 R +04/+05 1991 Mar 31 2s -+3 R +03/+04 1995 S 24 2s - 4 - +04 1997 --4 M +04/+05 2011 --4 L +04/+05 --R N 1997 2015 - Mar lastSun 4 1 - --R N 1997 2015 - O lastSun 5 0 - -+4 R +04/+05 2011 -+4 AM +04/+05 -+R AZ 1997 2015 - Mar lastSun 4 1 - -+R AZ 1997 2015 - O lastSun 5 0 - - Z Asia/Baku 3:19:24 - LMT 1924 May 2 - 3 - +03 1957 Mar --4 M +04/+05 1991 Mar 31 2s --3 M +03/+04 1992 S lastSun 2s -+4 R +04/+05 1991 Mar 31 2s -+3 R +03/+04 1992 S lastSun 2s - 4 - +04 1996 --4 O +04/+05 1997 --4 N +04/+05 --R P 2009 o - Jun 19 23 1 - --R P 2009 o - D 31 24 0 - -+4 E +04/+05 1997 -+4 AZ +04/+05 -+R BD 2009 o - Jun 19 23 1 - -+R BD 2009 o - D 31 24 0 - - Z Asia/Dhaka 6:1:40 - LMT 1890 - 5:53:20 - HMT 1941 O - 6:30 - +0630 1942 May 15 - 5:30 - +0530 1942 S - 6:30 - +0630 1951 S 30 - 6 - +06 2009 --6 P +06/+07 -+6 BD +06/+07 - Z Asia/Thimphu 5:58:36 - LMT 1947 Au 15 - 5:30 - +0530 1987 O - 6 - +06 -@@ -366,103 +366,127 @@ Z Asia/Yangon 6:24:47 - LMT 1880 - 6:30 - +0630 1942 May - 9 - +09 1945 May 3 - 6:30 - +0630 --R Q 1940 o - Jun 3 0 1 D --R Q 1940 1941 - O 1 0 0 S --R Q 1941 o - Mar 16 0 1 D --R R 1986 o - May 4 0 1 D --R R 1986 1991 - S Sun>=11 0 0 S --R R 1987 1991 - Ap Sun>=10 0 1 D -+R Sh 1940 o - Jun 1 0 1 D -+R Sh 1940 o - O 12 24 0 S -+R Sh 1941 o - Mar 15 0 1 D -+R Sh 1941 o - N 1 24 0 S -+R Sh 1942 o - Ja 31 0 1 D -+R Sh 1945 o - S 1 24 0 S -+R Sh 1946 o - May 15 0 1 D -+R Sh 1946 o - S 30 24 0 S -+R Sh 1947 o - Ap 15 0 1 D -+R Sh 1947 o - O 31 24 0 S -+R Sh 1948 1949 - May 1 0 1 D -+R Sh 1948 1949 - S 30 24 0 S -+R CN 1986 o - May 4 2 1 D -+R CN 1986 1991 - S Sun>=11 2 0 S -+R CN 1987 1991 - Ap Sun>=11 2 1 D - Z Asia/Shanghai 8:5:43 - LMT 1901 --8 Q C%sT 1949 --8 R C%sT -+8 Sh C%sT 1949 May 28 -+8 CN C%sT - Z Asia/Urumqi 5:50:20 - LMT 1928 - 6 - +06 --R S 1941 o - Ap 1 3:30 1 S --R S 1941 o - S 30 3:30 0 - --R S 1946 o - Ap 20 3:30 1 S --R S 1946 o - D 1 3:30 0 - --R S 1947 o - Ap 13 3:30 1 S --R S 1947 o - D 30 3:30 0 - --R S 1948 o - May 2 3:30 1 S --R S 1948 1951 - O lastSun 3:30 0 - --R S 1952 o - O 25 3:30 0 - --R S 1949 1953 - Ap Sun>=1 3:30 1 S --R S 1953 o - N 1 3:30 0 - --R S 1954 1964 - Mar Sun>=18 3:30 1 S --R S 1954 o - O 31 3:30 0 - --R S 1955 1964 - N Sun>=1 3:30 0 - --R S 1965 1976 - Ap Sun>=16 3:30 1 S --R S 1965 1976 - O Sun>=16 3:30 0 - --R S 1973 o - D 30 3:30 1 S --R S 1979 o - May Sun>=8 3:30 1 S --R S 1979 o - O Sun>=16 3:30 0 - -+R HK 1941 o - Ap 1 3:30 1 S -+R HK 1941 o - S 30 3:30 0 - -+R HK 1946 o - Ap 20 3:30 1 S -+R HK 1946 o - D 1 3:30 0 - -+R HK 1947 o - Ap 13 3:30 1 S -+R HK 1947 o - D 30 3:30 0 - -+R HK 1948 o - May 2 3:30 1 S -+R HK 1948 1951 - O lastSun 3:30 0 - -+R HK 1952 o - O 25 3:30 0 - -+R HK 1949 1953 - Ap Sun>=1 3:30 1 S -+R HK 1953 o - N 1 3:30 0 - -+R HK 1954 1964 - Mar Sun>=18 3:30 1 S -+R HK 1954 o - O 31 3:30 0 - -+R HK 1955 1964 - N Sun>=1 3:30 0 - -+R HK 1965 1976 - Ap Sun>=16 3:30 1 S -+R HK 1965 1976 - O Sun>=16 3:30 0 - -+R HK 1973 o - D 30 3:30 1 S -+R HK 1979 o - May Sun>=8 3:30 1 S -+R HK 1979 o - O Sun>=16 3:30 0 - - Z Asia/Hong_Kong 7:36:42 - LMT 1904 O 30 --8 S HK%sT 1941 D 25 -+8 HK HK%sT 1941 D 25 - 9 - JST 1945 S 15 --8 S HK%sT --R T 1946 o - May 15 0 1 D --R T 1946 o - O 1 0 0 S --R T 1947 o - Ap 15 0 1 D --R T 1947 o - N 1 0 0 S --R T 1948 1951 - May 1 0 1 D --R T 1948 1951 - O 1 0 0 S --R T 1952 o - Mar 1 0 1 D --R T 1952 1954 - N 1 0 0 S --R T 1953 1959 - Ap 1 0 1 D --R T 1955 1961 - O 1 0 0 S --R T 1960 1961 - Jun 1 0 1 D --R T 1974 1975 - Ap 1 0 1 D --R T 1974 1975 - O 1 0 0 S --R T 1979 o - Jul 1 0 1 D --R T 1979 o - O 1 0 0 S -+8 HK HK%sT -+R f 1946 o - May 15 0 1 D -+R f 1946 o - O 1 0 0 S -+R f 1947 o - Ap 15 0 1 D -+R f 1947 o - N 1 0 0 S -+R f 1948 1951 - May 1 0 1 D -+R f 1948 1951 - O 1 0 0 S -+R f 1952 o - Mar 1 0 1 D -+R f 1952 1954 - N 1 0 0 S -+R f 1953 1959 - Ap 1 0 1 D -+R f 1955 1961 - O 1 0 0 S -+R f 1960 1961 - Jun 1 0 1 D -+R f 1974 1975 - Ap 1 0 1 D -+R f 1974 1975 - O 1 0 0 S -+R f 1979 o - Jul 1 0 1 D -+R f 1979 o - O 1 0 0 S - Z Asia/Taipei 8:6 - LMT 1896 - 8 - CST 1937 O - 9 - JST 1945 S 21 1 --8 T C%sT --R U 1961 1962 - Mar Sun>=16 3:30 1 D --R U 1961 1964 - N Sun>=1 3:30 0 S --R U 1963 o - Mar Sun>=16 0 1 D --R U 1964 o - Mar Sun>=16 3:30 1 D --R U 1965 o - Mar Sun>=16 0 1 D --R U 1965 o - O 31 0 0 S --R U 1966 1971 - Ap Sun>=16 3:30 1 D --R U 1966 1971 - O Sun>=16 3:30 0 S --R U 1972 1974 - Ap Sun>=15 0 1 D --R U 1972 1973 - O Sun>=15 0 0 S --R U 1974 1977 - O Sun>=15 3:30 0 S --R U 1975 1977 - Ap Sun>=15 3:30 1 D --R U 1978 1980 - Ap Sun>=15 0 1 D --R U 1978 1980 - O Sun>=15 0 0 S --Z Asia/Macau 7:34:20 - LMT 1911 D 31 16u --8 U C%sT --R V 1975 o - Ap 13 0 1 S --R V 1975 o - O 12 0 0 - --R V 1976 o - May 15 0 1 S --R V 1976 o - O 11 0 0 - --R V 1977 1980 - Ap Sun>=1 0 1 S --R V 1977 o - S 25 0 0 - --R V 1978 o - O 2 0 0 - --R V 1979 1997 - S lastSun 0 0 - --R V 1981 1998 - Mar lastSun 0 1 S -+8 f C%sT -+R _ 1942 1943 - Ap 30 23 1 - -+R _ 1942 o - N 17 23 0 - -+R _ 1943 o - S 30 23 0 S -+R _ 1946 o - Ap 30 23s 1 D -+R _ 1946 o - S 30 23s 0 S -+R _ 1947 o - Ap 19 23s 1 D -+R _ 1947 o - N 30 23s 0 S -+R _ 1948 o - May 2 23s 1 D -+R _ 1948 o - O 31 23s 0 S -+R _ 1949 1950 - Ap Sat>=1 23s 1 D -+R _ 1949 1950 - O lastSat 23s 0 S -+R _ 1951 o - Mar 31 23s 1 D -+R _ 1951 o - O 28 23s 0 S -+R _ 1952 1953 - Ap Sat>=1 23s 1 D -+R _ 1952 o - N 1 23s 0 S -+R _ 1953 1954 - O lastSat 23s 0 S -+R _ 1954 1956 - Mar Sat>=17 23s 1 D -+R _ 1955 o - N 5 23s 0 S -+R _ 1956 1964 - N Sun>=1 3:30 0 S -+R _ 1957 1964 - Mar Sun>=18 3:30 1 D -+R _ 1965 1973 - Ap Sun>=16 3:30 1 D -+R _ 1965 1966 - O Sun>=16 2:30 0 S -+R _ 1967 1976 - O Sun>=16 3:30 0 S -+R _ 1973 o - D 30 3:30 1 D -+R _ 1975 1976 - Ap Sun>=16 3:30 1 D -+R _ 1979 o - May 13 3:30 1 D -+R _ 1979 o - O Sun>=16 3:30 0 S -+Z Asia/Macau 7:34:10 - LMT 1904 O 30 -+8 - CST 1941 D 21 23 -+9 _ +09/+10 1945 S 30 24 -+8 _ C%sT -+R CY 1975 o - Ap 13 0 1 S -+R CY 1975 o - O 12 0 0 - -+R CY 1976 o - May 15 0 1 S -+R CY 1976 o - O 11 0 0 - -+R CY 1977 1980 - Ap Sun>=1 0 1 S -+R CY 1977 o - S 25 0 0 - -+R CY 1978 o - O 2 0 0 - -+R CY 1979 1997 - S lastSun 0 0 - -+R CY 1981 1998 - Mar lastSun 0 1 S - Z Asia/Nicosia 2:13:28 - LMT 1921 N 14 --2 V EE%sT 1998 S --2 O EE%sT -+2 CY EE%sT 1998 S -+2 E EE%sT - Z Asia/Famagusta 2:15:48 - LMT 1921 N 14 --2 V EE%sT 1998 S --2 O EE%sT 2016 S 8 -+2 CY EE%sT 1998 S -+2 E EE%sT 2016 S 8 - 3 - +03 2017 O 29 1u --2 O EE%sT -+2 E EE%sT - Li Asia/Nicosia Europe/Nicosia - Z Asia/Tbilisi 2:59:11 - LMT 1880 - 2:59:11 - TBMT 1924 May 2 - 3 - +03 1957 Mar --4 M +04/+05 1991 Mar 31 2s --3 M +03/+04 1992 --3 W +03/+04 1994 S lastSun --4 W +04/+05 1996 O lastSun -+4 R +04/+05 1991 Mar 31 2s -+3 R +03/+04 1992 -+3 e +03/+04 1994 S lastSun -+4 e +04/+05 1996 O lastSun - 4 1 +05 1997 Mar lastSun --4 W +04/+05 2004 Jun 27 --3 M +03/+04 2005 Mar lastSun 2 -+4 e +04/+05 2004 Jun 27 -+3 R +03/+04 2005 Mar lastSun 2 - 4 - +04 - Z Asia/Dili 8:22:20 - LMT 1912 - 8 - +08 1942 F 21 23 -@@ -504,72 +528,72 @@ Z Asia/Jayapura 9:22:48 - LMT 1932 N - 9 - +09 1944 S - 9:30 - +0930 1964 - 9 - WIT --R X 1978 1980 - Mar 21 0 1 - --R X 1978 o - O 21 0 0 - --R X 1979 o - S 19 0 0 - --R X 1980 o - S 23 0 0 - --R X 1991 o - May 3 0 1 - --R X 1992 1995 - Mar 22 0 1 - --R X 1991 1995 - S 22 0 0 - --R X 1996 o - Mar 21 0 1 - --R X 1996 o - S 21 0 0 - --R X 1997 1999 - Mar 22 0 1 - --R X 1997 1999 - S 22 0 0 - --R X 2000 o - Mar 21 0 1 - --R X 2000 o - S 21 0 0 - --R X 2001 2003 - Mar 22 0 1 - --R X 2001 2003 - S 22 0 0 - --R X 2004 o - Mar 21 0 1 - --R X 2004 o - S 21 0 0 - --R X 2005 o - Mar 22 0 1 - --R X 2005 o - S 22 0 0 - --R X 2008 o - Mar 21 0 1 - --R X 2008 o - S 21 0 0 - --R X 2009 2011 - Mar 22 0 1 - --R X 2009 2011 - S 22 0 0 - --R X 2012 o - Mar 21 0 1 - --R X 2012 o - S 21 0 0 - --R X 2013 2015 - Mar 22 0 1 - --R X 2013 2015 - S 22 0 0 - --R X 2016 o - Mar 21 0 1 - --R X 2016 o - S 21 0 0 - --R X 2017 2019 - Mar 22 0 1 - --R X 2017 2019 - S 22 0 0 - --R X 2020 o - Mar 21 0 1 - --R X 2020 o - S 21 0 0 - --R X 2021 2023 - Mar 22 0 1 - --R X 2021 2023 - S 22 0 0 - --R X 2024 o - Mar 21 0 1 - --R X 2024 o - S 21 0 0 - --R X 2025 2027 - Mar 22 0 1 - --R X 2025 2027 - S 22 0 0 - --R X 2028 2029 - Mar 21 0 1 - --R X 2028 2029 - S 21 0 0 - --R X 2030 2031 - Mar 22 0 1 - --R X 2030 2031 - S 22 0 0 - --R X 2032 2033 - Mar 21 0 1 - --R X 2032 2033 - S 21 0 0 - --R X 2034 2035 - Mar 22 0 1 - --R X 2034 2035 - S 22 0 0 - --R X 2036 ma - Mar 21 0 1 - --R X 2036 ma - S 21 0 0 - -+R i 1978 1980 - Mar 21 0 1 - -+R i 1978 o - O 21 0 0 - -+R i 1979 o - S 19 0 0 - -+R i 1980 o - S 23 0 0 - -+R i 1991 o - May 3 0 1 - -+R i 1992 1995 - Mar 22 0 1 - -+R i 1991 1995 - S 22 0 0 - -+R i 1996 o - Mar 21 0 1 - -+R i 1996 o - S 21 0 0 - -+R i 1997 1999 - Mar 22 0 1 - -+R i 1997 1999 - S 22 0 0 - -+R i 2000 o - Mar 21 0 1 - -+R i 2000 o - S 21 0 0 - -+R i 2001 2003 - Mar 22 0 1 - -+R i 2001 2003 - S 22 0 0 - -+R i 2004 o - Mar 21 0 1 - -+R i 2004 o - S 21 0 0 - -+R i 2005 o - Mar 22 0 1 - -+R i 2005 o - S 22 0 0 - -+R i 2008 o - Mar 21 0 1 - -+R i 2008 o - S 21 0 0 - -+R i 2009 2011 - Mar 22 0 1 - -+R i 2009 2011 - S 22 0 0 - -+R i 2012 o - Mar 21 0 1 - -+R i 2012 o - S 21 0 0 - -+R i 2013 2015 - Mar 22 0 1 - -+R i 2013 2015 - S 22 0 0 - -+R i 2016 o - Mar 21 0 1 - -+R i 2016 o - S 21 0 0 - -+R i 2017 2019 - Mar 22 0 1 - -+R i 2017 2019 - S 22 0 0 - -+R i 2020 o - Mar 21 0 1 - -+R i 2020 o - S 21 0 0 - -+R i 2021 2023 - Mar 22 0 1 - -+R i 2021 2023 - S 22 0 0 - -+R i 2024 o - Mar 21 0 1 - -+R i 2024 o - S 21 0 0 - -+R i 2025 2027 - Mar 22 0 1 - -+R i 2025 2027 - S 22 0 0 - -+R i 2028 2029 - Mar 21 0 1 - -+R i 2028 2029 - S 21 0 0 - -+R i 2030 2031 - Mar 22 0 1 - -+R i 2030 2031 - S 22 0 0 - -+R i 2032 2033 - Mar 21 0 1 - -+R i 2032 2033 - S 21 0 0 - -+R i 2034 2035 - Mar 22 0 1 - -+R i 2034 2035 - S 22 0 0 - -+R i 2036 ma - Mar 21 0 1 - -+R i 2036 ma - S 21 0 0 - - Z Asia/Tehran 3:25:44 - LMT 1916 - 3:25:44 - TMT 1946 - 3:30 - +0330 1977 N --4 X +04/+05 1979 --3:30 X +0330/+0430 --R Y 1982 o - May 1 0 1 - --R Y 1982 1984 - O 1 0 0 - --R Y 1983 o - Mar 31 0 1 - --R Y 1984 1985 - Ap 1 0 1 - --R Y 1985 1990 - S lastSun 1s 0 - --R Y 1986 1990 - Mar lastSun 1s 1 - --R Y 1991 2007 - Ap 1 3s 1 - --R Y 1991 2007 - O 1 3s 0 - -+4 i +04/+05 1979 -+3:30 i +0330/+0430 -+R IQ 1982 o - May 1 0 1 - -+R IQ 1982 1984 - O 1 0 0 - -+R IQ 1983 o - Mar 31 0 1 - -+R IQ 1984 1985 - Ap 1 0 1 - -+R IQ 1985 1990 - S lastSun 1s 0 - -+R IQ 1986 1990 - Mar lastSun 1s 1 - -+R IQ 1991 2007 - Ap 1 3s 1 - -+R IQ 1991 2007 - O 1 3s 0 - - Z Asia/Baghdad 2:57:40 - LMT 1890 - 2:57:36 - BMT 1918 - 3 - +03 1982 May --3 Y +03/+04 -+3 IQ +03/+04 - R Z 1940 o - Jun 1 0 1 D - R Z 1942 1944 - N 1 0 0 S - R Z 1943 o - Ap 1 2 1 D -@@ -659,163 +683,163 @@ R Z 2013 ma - O lastSun 2 0 S - Z Asia/Jerusalem 2:20:54 - LMT 1880 - 2:20:40 - JMT 1918 - 2 Z I%sT --R a 1948 o - May Sat>=1 24 1 D --R a 1948 1951 - S Sun>=9 0 0 S --R a 1949 o - Ap Sat>=1 24 1 D --R a 1950 1951 - May Sat>=1 24 1 D -+R JP 1948 o - May Sat>=1 24 1 D -+R JP 1948 1951 - S Sat>=8 25 0 S -+R JP 1949 o - Ap Sat>=1 24 1 D -+R JP 1950 1951 - May Sat>=1 24 1 D - Z Asia/Tokyo 9:18:59 - LMT 1887 D 31 15u --9 a J%sT --R b 1973 o - Jun 6 0 1 S --R b 1973 1975 - O 1 0 0 - --R b 1974 1977 - May 1 0 1 S --R b 1976 o - N 1 0 0 - --R b 1977 o - O 1 0 0 - --R b 1978 o - Ap 30 0 1 S --R b 1978 o - S 30 0 0 - --R b 1985 o - Ap 1 0 1 S --R b 1985 o - O 1 0 0 - --R b 1986 1988 - Ap F>=1 0 1 S --R b 1986 1990 - O F>=1 0 0 - --R b 1989 o - May 8 0 1 S --R b 1990 o - Ap 27 0 1 S --R b 1991 o - Ap 17 0 1 S --R b 1991 o - S 27 0 0 - --R b 1992 o - Ap 10 0 1 S --R b 1992 1993 - O F>=1 0 0 - --R b 1993 1998 - Ap F>=1 0 1 S --R b 1994 o - S F>=15 0 0 - --R b 1995 1998 - S F>=15 0s 0 - --R b 1999 o - Jul 1 0s 1 S --R b 1999 2002 - S lastF 0s 0 - --R b 2000 2001 - Mar lastTh 0s 1 S --R b 2002 2012 - Mar lastTh 24 1 S --R b 2003 o - O 24 0s 0 - --R b 2004 o - O 15 0s 0 - --R b 2005 o - S lastF 0s 0 - --R b 2006 2011 - O lastF 0s 0 - --R b 2013 o - D 20 0 0 - --R b 2014 ma - Mar lastTh 24 1 S --R b 2014 ma - O lastF 0s 0 - -+9 JP J%sT -+R J 1973 o - Jun 6 0 1 S -+R J 1973 1975 - O 1 0 0 - -+R J 1974 1977 - May 1 0 1 S -+R J 1976 o - N 1 0 0 - -+R J 1977 o - O 1 0 0 - -+R J 1978 o - Ap 30 0 1 S -+R J 1978 o - S 30 0 0 - -+R J 1985 o - Ap 1 0 1 S -+R J 1985 o - O 1 0 0 - -+R J 1986 1988 - Ap F>=1 0 1 S -+R J 1986 1990 - O F>=1 0 0 - -+R J 1989 o - May 8 0 1 S -+R J 1990 o - Ap 27 0 1 S -+R J 1991 o - Ap 17 0 1 S -+R J 1991 o - S 27 0 0 - -+R J 1992 o - Ap 10 0 1 S -+R J 1992 1993 - O F>=1 0 0 - -+R J 1993 1998 - Ap F>=1 0 1 S -+R J 1994 o - S F>=15 0 0 - -+R J 1995 1998 - S F>=15 0s 0 - -+R J 1999 o - Jul 1 0s 1 S -+R J 1999 2002 - S lastF 0s 0 - -+R J 2000 2001 - Mar lastTh 0s 1 S -+R J 2002 2012 - Mar lastTh 24 1 S -+R J 2003 o - O 24 0s 0 - -+R J 2004 o - O 15 0s 0 - -+R J 2005 o - S lastF 0s 0 - -+R J 2006 2011 - O lastF 0s 0 - -+R J 2013 o - D 20 0 0 - -+R J 2014 ma - Mar lastTh 24 1 S -+R J 2014 ma - O lastF 0s 0 - - Z Asia/Amman 2:23:44 - LMT 1931 --2 b EE%sT -+2 J EE%sT - Z Asia/Almaty 5:7:48 - LMT 1924 May 2 - 5 - +05 1930 Jun 21 --6 M +06/+07 1991 Mar 31 2s --5 M +05/+06 1992 Ja 19 2s --6 M +06/+07 2004 O 31 2s -+6 R +06/+07 1991 Mar 31 2s -+5 R +05/+06 1992 Ja 19 2s -+6 R +06/+07 2004 O 31 2s - 6 - +06 - Z Asia/Qyzylorda 4:21:52 - LMT 1924 May 2 - 4 - +04 1930 Jun 21 - 5 - +05 1981 Ap - 5 1 +06 1981 O - 6 - +06 1982 Ap --5 M +05/+06 1991 Mar 31 2s --4 M +04/+05 1991 S 29 2s --5 M +05/+06 1992 Ja 19 2s --6 M +06/+07 1992 Mar 29 2s --5 M +05/+06 2004 O 31 2s -+5 R +05/+06 1991 Mar 31 2s -+4 R +04/+05 1991 S 29 2s -+5 R +05/+06 1992 Ja 19 2s -+6 R +06/+07 1992 Mar 29 2s -+5 R +05/+06 2004 O 31 2s - 6 - +06 - Z Asia/Aqtobe 3:48:40 - LMT 1924 May 2 - 4 - +04 1930 Jun 21 - 5 - +05 1981 Ap - 5 1 +06 1981 O - 6 - +06 1982 Ap --5 M +05/+06 1991 Mar 31 2s --4 M +04/+05 1992 Ja 19 2s --5 M +05/+06 2004 O 31 2s -+5 R +05/+06 1991 Mar 31 2s -+4 R +04/+05 1992 Ja 19 2s -+5 R +05/+06 2004 O 31 2s - 5 - +05 - Z Asia/Aqtau 3:21:4 - LMT 1924 May 2 - 4 - +04 1930 Jun 21 - 5 - +05 1981 O - 6 - +06 1982 Ap --5 M +05/+06 1991 Mar 31 2s --4 M +04/+05 1992 Ja 19 2s --5 M +05/+06 1994 S 25 2s --4 M +04/+05 2004 O 31 2s -+5 R +05/+06 1991 Mar 31 2s -+4 R +04/+05 1992 Ja 19 2s -+5 R +05/+06 1994 S 25 2s -+4 R +04/+05 2004 O 31 2s - 5 - +05 - Z Asia/Atyrau 3:27:44 - LMT 1924 May 2 - 3 - +03 1930 Jun 21 - 5 - +05 1981 O - 6 - +06 1982 Ap --5 M +05/+06 1991 Mar 31 2s --4 M +04/+05 1992 Ja 19 2s --5 M +05/+06 1999 Mar 28 2s --4 M +04/+05 2004 O 31 2s -+5 R +05/+06 1991 Mar 31 2s -+4 R +04/+05 1992 Ja 19 2s -+5 R +05/+06 1999 Mar 28 2s -+4 R +04/+05 2004 O 31 2s - 5 - +05 - Z Asia/Oral 3:25:24 - LMT 1924 May 2 - 3 - +03 1930 Jun 21 - 5 - +05 1981 Ap - 5 1 +06 1981 O - 6 - +06 1982 Ap --5 M +05/+06 1989 Mar 26 2s --4 M +04/+05 1992 Ja 19 2s --5 M +05/+06 1992 Mar 29 2s --4 M +04/+05 2004 O 31 2s -+5 R +05/+06 1989 Mar 26 2s -+4 R +04/+05 1992 Ja 19 2s -+5 R +05/+06 1992 Mar 29 2s -+4 R +04/+05 2004 O 31 2s - 5 - +05 --R c 1992 1996 - Ap Sun>=7 0s 1 - --R c 1992 1996 - S lastSun 0 0 - --R c 1997 2005 - Mar lastSun 2:30 1 - --R c 1997 2004 - O lastSun 2:30 0 - -+R KG 1992 1996 - Ap Sun>=7 0s 1 - -+R KG 1992 1996 - S lastSun 0 0 - -+R KG 1997 2005 - Mar lastSun 2:30 1 - -+R KG 1997 2004 - O lastSun 2:30 0 - - Z Asia/Bishkek 4:58:24 - LMT 1924 May 2 - 5 - +05 1930 Jun 21 --6 M +06/+07 1991 Mar 31 2s --5 M +05/+06 1991 Au 31 2 --5 c +05/+06 2005 Au 12 -+6 R +06/+07 1991 Mar 31 2s -+5 R +05/+06 1991 Au 31 2 -+5 KG +05/+06 2005 Au 12 - 6 - +06 --R d 1948 o - Jun 1 0 1 D --R d 1948 o - S 13 0 0 S --R d 1949 o - Ap 3 0 1 D --R d 1949 1951 - S Sun>=8 0 0 S --R d 1950 o - Ap 1 0 1 D --R d 1951 o - May 6 0 1 D --R d 1955 o - May 5 0 1 D --R d 1955 o - S 9 0 0 S --R d 1956 o - May 20 0 1 D --R d 1956 o - S 30 0 0 S --R d 1957 1960 - May Sun>=1 0 1 D --R d 1957 1960 - S Sun>=18 0 0 S --R d 1987 1988 - May Sun>=8 2 1 D --R d 1987 1988 - O Sun>=8 3 0 S -+R KR 1948 o - Jun 1 0 1 D -+R KR 1948 o - S 13 0 0 S -+R KR 1949 o - Ap 3 0 1 D -+R KR 1949 1951 - S Sun>=8 0 0 S -+R KR 1950 o - Ap 1 0 1 D -+R KR 1951 o - May 6 0 1 D -+R KR 1955 o - May 5 0 1 D -+R KR 1955 o - S 9 0 0 S -+R KR 1956 o - May 20 0 1 D -+R KR 1956 o - S 30 0 0 S -+R KR 1957 1960 - May Sun>=1 0 1 D -+R KR 1957 1960 - S Sun>=18 0 0 S -+R KR 1987 1988 - May Sun>=8 2 1 D -+R KR 1987 1988 - O Sun>=8 3 0 S - Z Asia/Seoul 8:27:52 - LMT 1908 Ap - 8:30 - KST 1912 - 9 - JST 1945 S 8 - 9 - KST 1954 Mar 21 --8:30 d K%sT 1961 Au 10 --9 d K%sT -+8:30 KR K%sT 1961 Au 10 -+9 KR K%sT - Z Asia/Pyongyang 8:23 - LMT 1908 Ap - 8:30 - KST 1912 - 9 - JST 1945 Au 24 - 9 - KST 2015 Au 15 --8:30 - KST 2018 May 5 -+8:30 - KST 2018 May 4 23:30 - 9 - KST --R e 1920 o - Mar 28 0 1 S --R e 1920 o - O 25 0 0 - --R e 1921 o - Ap 3 0 1 S --R e 1921 o - O 3 0 0 - --R e 1922 o - Mar 26 0 1 S --R e 1922 o - O 8 0 0 - --R e 1923 o - Ap 22 0 1 S --R e 1923 o - S 16 0 0 - --R e 1957 1961 - May 1 0 1 S --R e 1957 1961 - O 1 0 0 - --R e 1972 o - Jun 22 0 1 S --R e 1972 1977 - O 1 0 0 - --R e 1973 1977 - May 1 0 1 S --R e 1978 o - Ap 30 0 1 S --R e 1978 o - S 30 0 0 - --R e 1984 1987 - May 1 0 1 S --R e 1984 1991 - O 16 0 0 - --R e 1988 o - Jun 1 0 1 S --R e 1989 o - May 10 0 1 S --R e 1990 1992 - May 1 0 1 S --R e 1992 o - O 4 0 0 - --R e 1993 ma - Mar lastSun 0 1 S --R e 1993 1998 - S lastSun 0 0 - --R e 1999 ma - O lastSun 0 0 - -+R l 1920 o - Mar 28 0 1 S -+R l 1920 o - O 25 0 0 - -+R l 1921 o - Ap 3 0 1 S -+R l 1921 o - O 3 0 0 - -+R l 1922 o - Mar 26 0 1 S -+R l 1922 o - O 8 0 0 - -+R l 1923 o - Ap 22 0 1 S -+R l 1923 o - S 16 0 0 - -+R l 1957 1961 - May 1 0 1 S -+R l 1957 1961 - O 1 0 0 - -+R l 1972 o - Jun 22 0 1 S -+R l 1972 1977 - O 1 0 0 - -+R l 1973 1977 - May 1 0 1 S -+R l 1978 o - Ap 30 0 1 S -+R l 1978 o - S 30 0 0 - -+R l 1984 1987 - May 1 0 1 S -+R l 1984 1991 - O 16 0 0 - -+R l 1988 o - Jun 1 0 1 S -+R l 1989 o - May 10 0 1 S -+R l 1990 1992 - May 1 0 1 S -+R l 1992 o - O 4 0 0 - -+R l 1993 ma - Mar lastSun 0 1 S -+R l 1993 1998 - S lastSun 0 0 - -+R l 1999 ma - O lastSun 0 0 - - Z Asia/Beirut 2:22 - LMT 1880 --2 e EE%sT --R f 1935 1941 - S 14 0 0:20 - --R f 1935 1941 - D 14 0 0 - -+2 l EE%sT -+R NB 1935 1941 - S 14 0 0:20 - -+R NB 1935 1941 - D 14 0 0 - - Z Asia/Kuala_Lumpur 6:46:46 - LMT 1901 - 6:55:25 - SMT 1905 Jun - 7 - +07 1933 -@@ -827,98 +851,98 @@ Z Asia/Kuala_Lumpur 6:46:46 - LMT 1901 - 8 - +08 - Z Asia/Kuching 7:21:20 - LMT 1926 Mar - 7:30 - +0730 1933 --8 f +08/+0820 1942 F 16 -+8 NB +08/+0820 1942 F 16 - 9 - +09 1945 S 12 - 8 - +08 - Z Indian/Maldives 4:54 - LMT 1880 - 4:54 - MMT 1960 - 5 - +05 --R g 1983 1984 - Ap 1 0 1 - --R g 1983 o - O 1 0 0 - --R g 1985 1998 - Mar lastSun 0 1 - --R g 1984 1998 - S lastSun 0 0 - --R g 2001 o - Ap lastSat 2 1 - --R g 2001 2006 - S lastSat 2 0 - --R g 2002 2006 - Mar lastSat 2 1 - --R g 2015 2016 - Mar lastSat 2 1 - --R g 2015 2016 - S lastSat 0 0 - -+R X 1983 1984 - Ap 1 0 1 - -+R X 1983 o - O 1 0 0 - -+R X 1985 1998 - Mar lastSun 0 1 - -+R X 1984 1998 - S lastSun 0 0 - -+R X 2001 o - Ap lastSat 2 1 - -+R X 2001 2006 - S lastSat 2 0 - -+R X 2002 2006 - Mar lastSat 2 1 - -+R X 2015 2016 - Mar lastSat 2 1 - -+R X 2015 2016 - S lastSat 0 0 - - Z Asia/Hovd 6:6:36 - LMT 1905 Au - 6 - +06 1978 --7 g +07/+08 -+7 X +07/+08 - Z Asia/Ulaanbaatar 7:7:32 - LMT 1905 Au - 7 - +07 1978 --8 g +08/+09 -+8 X +08/+09 - Z Asia/Choibalsan 7:38 - LMT 1905 Au - 7 - +07 1978 - 8 - +08 1983 Ap --9 g +09/+10 2008 Mar 31 --8 g +08/+09 -+9 X +09/+10 2008 Mar 31 -+8 X +08/+09 - Z Asia/Kathmandu 5:41:16 - LMT 1920 - 5:30 - +0530 1986 - 5:45 - +0545 --R h 2002 o - Ap Sun>=2 0 1 S --R h 2002 o - O Sun>=2 0 0 - --R h 2008 o - Jun 1 0 1 S --R h 2008 2009 - N 1 0 0 - --R h 2009 o - Ap 15 0 1 S -+R PK 2002 o - Ap Sun>=2 0 1 S -+R PK 2002 o - O Sun>=2 0 0 - -+R PK 2008 o - Jun 1 0 1 S -+R PK 2008 2009 - N 1 0 0 - -+R PK 2009 o - Ap 15 0 1 S - Z Asia/Karachi 4:28:12 - LMT 1907 - 5:30 - +0530 1942 S - 5:30 1 +0630 1945 O 15 - 5:30 - +0530 1951 S 30 - 5 - +05 1971 Mar 26 --5 h PK%sT --R i 1999 2005 - Ap F>=15 0 1 S --R i 1999 2003 - O F>=15 0 0 - --R i 2004 o - O 1 1 0 - --R i 2005 o - O 4 2 0 - --R i 2006 2007 - Ap 1 0 1 S --R i 2006 o - S 22 0 0 - --R i 2007 o - S Th>=8 2 0 - --R i 2008 2009 - Mar lastF 0 1 S --R i 2008 o - S 1 0 0 - --R i 2009 o - S F>=1 1 0 - --R i 2010 o - Mar 26 0 1 S --R i 2010 o - Au 11 0 0 - --R i 2011 o - Ap 1 0:1 1 S --R i 2011 o - Au 1 0 0 - --R i 2011 o - Au 30 0 1 S --R i 2011 o - S 30 0 0 - --R i 2012 2014 - Mar lastTh 24 1 S --R i 2012 o - S 21 1 0 - --R i 2013 o - S F>=21 0 0 - --R i 2014 2015 - O F>=21 0 0 - --R i 2015 o - Mar lastF 24 1 S --R i 2016 ma - Mar Sat>=22 1 1 S --R i 2016 ma - O lastSat 1 0 - -+5 PK PK%sT -+R P 1999 2005 - Ap F>=15 0 1 S -+R P 1999 2003 - O F>=15 0 0 - -+R P 2004 o - O 1 1 0 - -+R P 2005 o - O 4 2 0 - -+R P 2006 2007 - Ap 1 0 1 S -+R P 2006 o - S 22 0 0 - -+R P 2007 o - S Th>=8 2 0 - -+R P 2008 2009 - Mar lastF 0 1 S -+R P 2008 o - S 1 0 0 - -+R P 2009 o - S F>=1 1 0 - -+R P 2010 o - Mar 26 0 1 S -+R P 2010 o - Au 11 0 0 - -+R P 2011 o - Ap 1 0:1 1 S -+R P 2011 o - Au 1 0 0 - -+R P 2011 o - Au 30 0 1 S -+R P 2011 o - S 30 0 0 - -+R P 2012 2014 - Mar lastTh 24 1 S -+R P 2012 o - S 21 1 0 - -+R P 2013 o - S F>=21 0 0 - -+R P 2014 2015 - O F>=21 0 0 - -+R P 2015 o - Mar lastF 24 1 S -+R P 2016 ma - Mar Sat>=22 1 1 S -+R P 2016 ma - O lastSat 1 0 - - Z Asia/Gaza 2:17:52 - LMT 1900 O - 2 Z EET/EEST 1948 May 15 --2 B EE%sT 1967 Jun 5 -+2 K EE%sT 1967 Jun 5 - 2 Z I%sT 1996 --2 b EE%sT 1999 --2 i EE%sT 2008 Au 29 -+2 J EE%sT 1999 -+2 P EE%sT 2008 Au 29 - 2 - EET 2008 S --2 i EE%sT 2010 -+2 P EE%sT 2010 - 2 - EET 2010 Mar 27 0:1 --2 i EE%sT 2011 Au -+2 P EE%sT 2011 Au - 2 - EET 2012 --2 i EE%sT -+2 P EE%sT - Z Asia/Hebron 2:20:23 - LMT 1900 O - 2 Z EET/EEST 1948 May 15 --2 B EE%sT 1967 Jun 5 -+2 K EE%sT 1967 Jun 5 - 2 Z I%sT 1996 --2 b EE%sT 1999 --2 i EE%sT --R j 1936 o - N 1 0 1 - --R j 1937 o - F 1 0 0 - --R j 1954 o - Ap 12 0 1 - --R j 1954 o - Jul 1 0 0 - --R j 1978 o - Mar 22 0 1 - --R j 1978 o - S 21 0 0 - -+2 J EE%sT 1999 -+2 P EE%sT -+R PH 1936 o - N 1 0 1 D -+R PH 1937 o - F 1 0 0 S -+R PH 1954 o - Ap 12 0 1 D -+R PH 1954 o - Jul 1 0 0 S -+R PH 1978 o - Mar 22 0 1 D -+R PH 1978 o - S 21 0 0 S - Z Asia/Manila -15:56 - LMT 1844 D 31 - 8:4 - LMT 1899 May 11 --8 j +08/+09 1942 May --9 - +09 1944 N --8 j +08/+09 -+8 PH P%sT 1942 May -+9 - JST 1944 N -+8 PH P%sT - Z Asia/Qatar 3:26:8 - LMT 1920 - 4 - +04 1972 Jun - 3 - +03 -@@ -945,52 +969,52 @@ Z Asia/Colombo 5:19:24 - LMT 1880 - 6:30 - +0630 1996 O 26 0:30 - 6 - +06 2006 Ap 15 0:30 - 5:30 - +0530 --R k 1920 1923 - Ap Sun>=15 2 1 S --R k 1920 1923 - O Sun>=1 2 0 - --R k 1962 o - Ap 29 2 1 S --R k 1962 o - O 1 2 0 - --R k 1963 1965 - May 1 2 1 S --R k 1963 o - S 30 2 0 - --R k 1964 o - O 1 2 0 - --R k 1965 o - S 30 2 0 - --R k 1966 o - Ap 24 2 1 S --R k 1966 1976 - O 1 2 0 - --R k 1967 1978 - May 1 2 1 S --R k 1977 1978 - S 1 2 0 - --R k 1983 1984 - Ap 9 2 1 S --R k 1983 1984 - O 1 2 0 - --R k 1986 o - F 16 2 1 S --R k 1986 o - O 9 2 0 - --R k 1987 o - Mar 1 2 1 S --R k 1987 1988 - O 31 2 0 - --R k 1988 o - Mar 15 2 1 S --R k 1989 o - Mar 31 2 1 S --R k 1989 o - O 1 2 0 - --R k 1990 o - Ap 1 2 1 S --R k 1990 o - S 30 2 0 - --R k 1991 o - Ap 1 0 1 S --R k 1991 1992 - O 1 0 0 - --R k 1992 o - Ap 8 0 1 S --R k 1993 o - Mar 26 0 1 S --R k 1993 o - S 25 0 0 - --R k 1994 1996 - Ap 1 0 1 S --R k 1994 2005 - O 1 0 0 - --R k 1997 1998 - Mar lastM 0 1 S --R k 1999 2006 - Ap 1 0 1 S --R k 2006 o - S 22 0 0 - --R k 2007 o - Mar lastF 0 1 S --R k 2007 o - N F>=1 0 0 - --R k 2008 o - Ap F>=1 0 1 S --R k 2008 o - N 1 0 0 - --R k 2009 o - Mar lastF 0 1 S --R k 2010 2011 - Ap F>=1 0 1 S --R k 2012 ma - Mar lastF 0 1 S --R k 2009 ma - O lastF 0 0 - -+R S 1920 1923 - Ap Sun>=15 2 1 S -+R S 1920 1923 - O Sun>=1 2 0 - -+R S 1962 o - Ap 29 2 1 S -+R S 1962 o - O 1 2 0 - -+R S 1963 1965 - May 1 2 1 S -+R S 1963 o - S 30 2 0 - -+R S 1964 o - O 1 2 0 - -+R S 1965 o - S 30 2 0 - -+R S 1966 o - Ap 24 2 1 S -+R S 1966 1976 - O 1 2 0 - -+R S 1967 1978 - May 1 2 1 S -+R S 1977 1978 - S 1 2 0 - -+R S 1983 1984 - Ap 9 2 1 S -+R S 1983 1984 - O 1 2 0 - -+R S 1986 o - F 16 2 1 S -+R S 1986 o - O 9 2 0 - -+R S 1987 o - Mar 1 2 1 S -+R S 1987 1988 - O 31 2 0 - -+R S 1988 o - Mar 15 2 1 S -+R S 1989 o - Mar 31 2 1 S -+R S 1989 o - O 1 2 0 - -+R S 1990 o - Ap 1 2 1 S -+R S 1990 o - S 30 2 0 - -+R S 1991 o - Ap 1 0 1 S -+R S 1991 1992 - O 1 0 0 - -+R S 1992 o - Ap 8 0 1 S -+R S 1993 o - Mar 26 0 1 S -+R S 1993 o - S 25 0 0 - -+R S 1994 1996 - Ap 1 0 1 S -+R S 1994 2005 - O 1 0 0 - -+R S 1997 1998 - Mar lastM 0 1 S -+R S 1999 2006 - Ap 1 0 1 S -+R S 2006 o - S 22 0 0 - -+R S 2007 o - Mar lastF 0 1 S -+R S 2007 o - N F>=1 0 0 - -+R S 2008 o - Ap F>=1 0 1 S -+R S 2008 o - N 1 0 0 - -+R S 2009 o - Mar lastF 0 1 S -+R S 2010 2011 - Ap F>=1 0 1 S -+R S 2012 ma - Mar lastF 0 1 S -+R S 2009 ma - O lastF 0 0 - - Z Asia/Damascus 2:25:12 - LMT 1920 --2 k EE%sT -+2 S EE%sT - Z Asia/Dushanbe 4:35:12 - LMT 1924 May 2 - 5 - +05 1930 Jun 21 --6 M +06/+07 1991 Mar 31 2s -+6 R +06/+07 1991 Mar 31 2s - 5 1 +05/+06 1991 S 9 2s - 5 - +05 - Z Asia/Bangkok 6:42:4 - LMT 1880 -@@ -1000,8 +1024,8 @@ Li Asia/Bangkok Asia/Phnom_Penh - Li Asia/Bangkok Asia/Vientiane - Z Asia/Ashgabat 3:53:32 - LMT 1924 May 2 - 4 - +04 1930 Jun 21 --5 M +05/+06 1991 Mar 31 2 --4 M +04/+05 1992 Ja 19 2 -+5 R +05/+06 1991 Mar 31 2 -+4 R +04/+05 1992 Ja 19 2 - 5 - +05 - Z Asia/Dubai 3:41:12 - LMT 1920 - 4 - +04 -@@ -1011,12 +1035,12 @@ Z Asia/Samarkand 4:27:53 - LMT 1924 May 2 - 5 - +05 1981 Ap - 5 1 +06 1981 O - 6 - +06 1982 Ap --5 M +05/+06 1992 -+5 R +05/+06 1992 - 5 - +05 - Z Asia/Tashkent 4:37:11 - LMT 1924 May 2 - 5 - +05 1930 Jun 21 --6 M +06/+07 1991 Mar 31 2 --5 M +05/+06 1992 -+6 R +06/+07 1991 Mar 31 2 -+5 R +05/+06 1992 - 5 - +05 - Z Asia/Ho_Chi_Minh 7:6:40 - LMT 1906 Jul - 7:6:30 - PLMT 1911 May -@@ -1028,176 +1052,176 @@ Z Asia/Ho_Chi_Minh 7:6:40 - LMT 1906 Jul - 7 - +07 1959 D 31 23 - 8 - +08 1975 Jun 13 - 7 - +07 --R l 1917 o - Ja 1 0:1 1 D --R l 1917 o - Mar 25 2 0 S --R l 1942 o - Ja 1 2 1 D --R l 1942 o - Mar 29 2 0 S --R l 1942 o - S 27 2 1 D --R l 1943 1944 - Mar lastSun 2 0 S --R l 1943 o - O 3 2 1 D -+R AU 1917 o - Ja 1 0:1 1 D -+R AU 1917 o - Mar 25 2 0 S -+R AU 1942 o - Ja 1 2 1 D -+R AU 1942 o - Mar 29 2 0 S -+R AU 1942 o - S 27 2 1 D -+R AU 1943 1944 - Mar lastSun 2 0 S -+R AU 1943 o - O 3 2 1 D - Z Australia/Darwin 8:43:20 - LMT 1895 F - 9 - ACST 1899 May --9:30 l AC%sT --R m 1974 o - O lastSun 2s 1 D --R m 1975 o - Mar Sun>=1 2s 0 S --R m 1983 o - O lastSun 2s 1 D --R m 1984 o - Mar Sun>=1 2s 0 S --R m 1991 o - N 17 2s 1 D --R m 1992 o - Mar Sun>=1 2s 0 S --R m 2006 o - D 3 2s 1 D --R m 2007 2009 - Mar lastSun 2s 0 S --R m 2007 2008 - O lastSun 2s 1 D -+9:30 AU AC%sT -+R AW 1974 o - O lastSun 2s 1 D -+R AW 1975 o - Mar Sun>=1 2s 0 S -+R AW 1983 o - O lastSun 2s 1 D -+R AW 1984 o - Mar Sun>=1 2s 0 S -+R AW 1991 o - N 17 2s 1 D -+R AW 1992 o - Mar Sun>=1 2s 0 S -+R AW 2006 o - D 3 2s 1 D -+R AW 2007 2009 - Mar lastSun 2s 0 S -+R AW 2007 2008 - O lastSun 2s 1 D - Z Australia/Perth 7:43:24 - LMT 1895 D --8 l AW%sT 1943 Jul --8 m AW%sT -+8 AU AW%sT 1943 Jul -+8 AW AW%sT - Z Australia/Eucla 8:35:28 - LMT 1895 D --8:45 l +0845/+0945 1943 Jul --8:45 m +0845/+0945 --R n 1971 o - O lastSun 2s 1 D --R n 1972 o - F lastSun 2s 0 S --R n 1989 1991 - O lastSun 2s 1 D --R n 1990 1992 - Mar Sun>=1 2s 0 S --R o 1992 1993 - O lastSun 2s 1 D --R o 1993 1994 - Mar Sun>=1 2s 0 S -+8:45 AU +0845/+0945 1943 Jul -+8:45 AW +0845/+0945 -+R AQ 1971 o - O lastSun 2s 1 D -+R AQ 1972 o - F lastSun 2s 0 S -+R AQ 1989 1991 - O lastSun 2s 1 D -+R AQ 1990 1992 - Mar Sun>=1 2s 0 S -+R Ho 1992 1993 - O lastSun 2s 1 D -+R Ho 1993 1994 - Mar Sun>=1 2s 0 S - Z Australia/Brisbane 10:12:8 - LMT 1895 --10 l AE%sT 1971 --10 n AE%sT -+10 AU AE%sT 1971 -+10 AQ AE%sT - Z Australia/Lindeman 9:55:56 - LMT 1895 --10 l AE%sT 1971 --10 n AE%sT 1992 Jul --10 o AE%sT --R p 1971 1985 - O lastSun 2s 1 D --R p 1986 o - O 19 2s 1 D --R p 1987 2007 - O lastSun 2s 1 D --R p 1972 o - F 27 2s 0 S --R p 1973 1985 - Mar Sun>=1 2s 0 S --R p 1986 1990 - Mar Sun>=15 2s 0 S --R p 1991 o - Mar 3 2s 0 S --R p 1992 o - Mar 22 2s 0 S --R p 1993 o - Mar 7 2s 0 S --R p 1994 o - Mar 20 2s 0 S --R p 1995 2005 - Mar lastSun 2s 0 S --R p 2006 o - Ap 2 2s 0 S --R p 2007 o - Mar lastSun 2s 0 S --R p 2008 ma - Ap Sun>=1 2s 0 S --R p 2008 ma - O Sun>=1 2s 1 D -+10 AU AE%sT 1971 -+10 AQ AE%sT 1992 Jul -+10 Ho AE%sT -+R AS 1971 1985 - O lastSun 2s 1 D -+R AS 1986 o - O 19 2s 1 D -+R AS 1987 2007 - O lastSun 2s 1 D -+R AS 1972 o - F 27 2s 0 S -+R AS 1973 1985 - Mar Sun>=1 2s 0 S -+R AS 1986 1990 - Mar Sun>=15 2s 0 S -+R AS 1991 o - Mar 3 2s 0 S -+R AS 1992 o - Mar 22 2s 0 S -+R AS 1993 o - Mar 7 2s 0 S -+R AS 1994 o - Mar 20 2s 0 S -+R AS 1995 2005 - Mar lastSun 2s 0 S -+R AS 2006 o - Ap 2 2s 0 S -+R AS 2007 o - Mar lastSun 2s 0 S -+R AS 2008 ma - Ap Sun>=1 2s 0 S -+R AS 2008 ma - O Sun>=1 2s 1 D - Z Australia/Adelaide 9:14:20 - LMT 1895 F - 9 - ACST 1899 May --9:30 l AC%sT 1971 --9:30 p AC%sT --R q 1967 o - O Sun>=1 2s 1 D --R q 1968 o - Mar lastSun 2s 0 S --R q 1968 1985 - O lastSun 2s 1 D --R q 1969 1971 - Mar Sun>=8 2s 0 S --R q 1972 o - F lastSun 2s 0 S --R q 1973 1981 - Mar Sun>=1 2s 0 S --R q 1982 1983 - Mar lastSun 2s 0 S --R q 1984 1986 - Mar Sun>=1 2s 0 S --R q 1986 o - O Sun>=15 2s 1 D --R q 1987 1990 - Mar Sun>=15 2s 0 S --R q 1987 o - O Sun>=22 2s 1 D --R q 1988 1990 - O lastSun 2s 1 D --R q 1991 1999 - O Sun>=1 2s 1 D --R q 1991 2005 - Mar lastSun 2s 0 S --R q 2000 o - Au lastSun 2s 1 D --R q 2001 ma - O Sun>=1 2s 1 D --R q 2006 o - Ap Sun>=1 2s 0 S --R q 2007 o - Mar lastSun 2s 0 S --R q 2008 ma - Ap Sun>=1 2s 0 S -+9:30 AU AC%sT 1971 -+9:30 AS AC%sT -+R AT 1967 o - O Sun>=1 2s 1 D -+R AT 1968 o - Mar lastSun 2s 0 S -+R AT 1968 1985 - O lastSun 2s 1 D -+R AT 1969 1971 - Mar Sun>=8 2s 0 S -+R AT 1972 o - F lastSun 2s 0 S -+R AT 1973 1981 - Mar Sun>=1 2s 0 S -+R AT 1982 1983 - Mar lastSun 2s 0 S -+R AT 1984 1986 - Mar Sun>=1 2s 0 S -+R AT 1986 o - O Sun>=15 2s 1 D -+R AT 1987 1990 - Mar Sun>=15 2s 0 S -+R AT 1987 o - O Sun>=22 2s 1 D -+R AT 1988 1990 - O lastSun 2s 1 D -+R AT 1991 1999 - O Sun>=1 2s 1 D -+R AT 1991 2005 - Mar lastSun 2s 0 S -+R AT 2000 o - Au lastSun 2s 1 D -+R AT 2001 ma - O Sun>=1 2s 1 D -+R AT 2006 o - Ap Sun>=1 2s 0 S -+R AT 2007 o - Mar lastSun 2s 0 S -+R AT 2008 ma - Ap Sun>=1 2s 0 S - Z Australia/Hobart 9:49:16 - LMT 1895 S - 10 - AEST 1916 O 1 2 - 10 1 AEDT 1917 F --10 l AE%sT 1967 --10 q AE%sT -+10 AU AE%sT 1967 -+10 AT AE%sT - Z Australia/Currie 9:35:28 - LMT 1895 S - 10 - AEST 1916 O 1 2 - 10 1 AEDT 1917 F --10 l AE%sT 1971 Jul --10 q AE%sT --R r 1971 1985 - O lastSun 2s 1 D --R r 1972 o - F lastSun 2s 0 S --R r 1973 1985 - Mar Sun>=1 2s 0 S --R r 1986 1990 - Mar Sun>=15 2s 0 S --R r 1986 1987 - O Sun>=15 2s 1 D --R r 1988 1999 - O lastSun 2s 1 D --R r 1991 1994 - Mar Sun>=1 2s 0 S --R r 1995 2005 - Mar lastSun 2s 0 S --R r 2000 o - Au lastSun 2s 1 D --R r 2001 2007 - O lastSun 2s 1 D --R r 2006 o - Ap Sun>=1 2s 0 S --R r 2007 o - Mar lastSun 2s 0 S --R r 2008 ma - Ap Sun>=1 2s 0 S --R r 2008 ma - O Sun>=1 2s 1 D -+10 AU AE%sT 1971 Jul -+10 AT AE%sT -+R AV 1971 1985 - O lastSun 2s 1 D -+R AV 1972 o - F lastSun 2s 0 S -+R AV 1973 1985 - Mar Sun>=1 2s 0 S -+R AV 1986 1990 - Mar Sun>=15 2s 0 S -+R AV 1986 1987 - O Sun>=15 2s 1 D -+R AV 1988 1999 - O lastSun 2s 1 D -+R AV 1991 1994 - Mar Sun>=1 2s 0 S -+R AV 1995 2005 - Mar lastSun 2s 0 S -+R AV 2000 o - Au lastSun 2s 1 D -+R AV 2001 2007 - O lastSun 2s 1 D -+R AV 2006 o - Ap Sun>=1 2s 0 S -+R AV 2007 o - Mar lastSun 2s 0 S -+R AV 2008 ma - Ap Sun>=1 2s 0 S -+R AV 2008 ma - O Sun>=1 2s 1 D - Z Australia/Melbourne 9:39:52 - LMT 1895 F --10 l AE%sT 1971 --10 r AE%sT --R s 1971 1985 - O lastSun 2s 1 D --R s 1972 o - F 27 2s 0 S --R s 1973 1981 - Mar Sun>=1 2s 0 S --R s 1982 o - Ap Sun>=1 2s 0 S --R s 1983 1985 - Mar Sun>=1 2s 0 S --R s 1986 1989 - Mar Sun>=15 2s 0 S --R s 1986 o - O 19 2s 1 D --R s 1987 1999 - O lastSun 2s 1 D --R s 1990 1995 - Mar Sun>=1 2s 0 S --R s 1996 2005 - Mar lastSun 2s 0 S --R s 2000 o - Au lastSun 2s 1 D --R s 2001 2007 - O lastSun 2s 1 D --R s 2006 o - Ap Sun>=1 2s 0 S --R s 2007 o - Mar lastSun 2s 0 S --R s 2008 ma - Ap Sun>=1 2s 0 S --R s 2008 ma - O Sun>=1 2s 1 D -+10 AU AE%sT 1971 -+10 AV AE%sT -+R AN 1971 1985 - O lastSun 2s 1 D -+R AN 1972 o - F 27 2s 0 S -+R AN 1973 1981 - Mar Sun>=1 2s 0 S -+R AN 1982 o - Ap Sun>=1 2s 0 S -+R AN 1983 1985 - Mar Sun>=1 2s 0 S -+R AN 1986 1989 - Mar Sun>=15 2s 0 S -+R AN 1986 o - O 19 2s 1 D -+R AN 1987 1999 - O lastSun 2s 1 D -+R AN 1990 1995 - Mar Sun>=1 2s 0 S -+R AN 1996 2005 - Mar lastSun 2s 0 S -+R AN 2000 o - Au lastSun 2s 1 D -+R AN 2001 2007 - O lastSun 2s 1 D -+R AN 2006 o - Ap Sun>=1 2s 0 S -+R AN 2007 o - Mar lastSun 2s 0 S -+R AN 2008 ma - Ap Sun>=1 2s 0 S -+R AN 2008 ma - O Sun>=1 2s 1 D - Z Australia/Sydney 10:4:52 - LMT 1895 F --10 l AE%sT 1971 --10 s AE%sT -+10 AU AE%sT 1971 -+10 AN AE%sT - Z Australia/Broken_Hill 9:25:48 - LMT 1895 F - 10 - AEST 1896 Au 23 - 9 - ACST 1899 May --9:30 l AC%sT 1971 --9:30 s AC%sT 2000 --9:30 p AC%sT --R t 1981 1984 - O lastSun 2 1 - --R t 1982 1985 - Mar Sun>=1 2 0 - --R t 1985 o - O lastSun 2 0:30 - --R t 1986 1989 - Mar Sun>=15 2 0 - --R t 1986 o - O 19 2 0:30 - --R t 1987 1999 - O lastSun 2 0:30 - --R t 1990 1995 - Mar Sun>=1 2 0 - --R t 1996 2005 - Mar lastSun 2 0 - --R t 2000 o - Au lastSun 2 0:30 - --R t 2001 2007 - O lastSun 2 0:30 - --R t 2006 o - Ap Sun>=1 2 0 - --R t 2007 o - Mar lastSun 2 0 - --R t 2008 ma - Ap Sun>=1 2 0 - --R t 2008 ma - O Sun>=1 2 0:30 - -+9:30 AU AC%sT 1971 -+9:30 AN AC%sT 2000 -+9:30 AS AC%sT -+R LH 1981 1984 - O lastSun 2 1 - -+R LH 1982 1985 - Mar Sun>=1 2 0 - -+R LH 1985 o - O lastSun 2 0:30 - -+R LH 1986 1989 - Mar Sun>=15 2 0 - -+R LH 1986 o - O 19 2 0:30 - -+R LH 1987 1999 - O lastSun 2 0:30 - -+R LH 1990 1995 - Mar Sun>=1 2 0 - -+R LH 1996 2005 - Mar lastSun 2 0 - -+R LH 2000 o - Au lastSun 2 0:30 - -+R LH 2001 2007 - O lastSun 2 0:30 - -+R LH 2006 o - Ap Sun>=1 2 0 - -+R LH 2007 o - Mar lastSun 2 0 - -+R LH 2008 ma - Ap Sun>=1 2 0 - -+R LH 2008 ma - O Sun>=1 2 0:30 - - Z Australia/Lord_Howe 10:36:20 - LMT 1895 F - 10 - AEST 1981 Mar --10:30 t +1030/+1130 1985 Jul --10:30 t +1030/+11 -+10:30 LH +1030/+1130 1985 Jul -+10:30 LH +1030/+11 - Z Antarctica/Macquarie 0 - -00 1899 N - 10 - AEST 1916 O 1 2 - 10 1 AEDT 1917 F --10 l AE%sT 1919 Ap 1 0s -+10 AU AE%sT 1919 Ap 1 0s - 0 - -00 1948 Mar 25 --10 l AE%sT 1967 --10 q AE%sT 2010 Ap 4 3 -+10 AU AE%sT 1967 -+10 AT AE%sT 2010 Ap 4 3 - 11 - +11 - Z Indian/Christmas 7:2:52 - LMT 1895 F - 7 - +07 - Z Indian/Cocos 6:27:40 - LMT 1900 - 6:30 - +0630 --R u 1998 1999 - N Sun>=1 2 1 - --R u 1999 2000 - F lastSun 3 0 - --R u 2009 o - N 29 2 1 - --R u 2010 o - Mar lastSun 3 0 - --R u 2010 2013 - O Sun>=21 2 1 - --R u 2011 o - Mar Sun>=1 3 0 - --R u 2012 2013 - Ja Sun>=18 3 0 - --R u 2014 o - Ja Sun>=18 2 0 - --R u 2014 ma - N Sun>=1 2 1 - --R u 2015 ma - Ja Sun>=14 3 0 - -+R FJ 1998 1999 - N Sun>=1 2 1 - -+R FJ 1999 2000 - F lastSun 3 0 - -+R FJ 2009 o - N 29 2 1 - -+R FJ 2010 o - Mar lastSun 3 0 - -+R FJ 2010 2013 - O Sun>=21 2 1 - -+R FJ 2011 o - Mar Sun>=1 3 0 - -+R FJ 2012 2013 - Ja Sun>=18 3 0 - -+R FJ 2014 o - Ja Sun>=18 2 0 - -+R FJ 2014 ma - N Sun>=1 2 1 - -+R FJ 2015 ma - Ja Sun>=13 3 0 - - Z Pacific/Fiji 11:55:44 - LMT 1915 O 26 --12 u +12/+13 -+12 FJ +12/+13 - Z Pacific/Gambier -8:59:48 - LMT 1912 O - -9 - -09 - Z Pacific/Marquesas -9:18 - LMT 1912 O -@@ -1239,50 +1263,50 @@ Z Pacific/Nauru 11:7:40 - LMT 1921 Ja 15 - 9 - +09 1944 Au 15 - 11:30 - +1130 1979 May - 12 - +12 --R v 1977 1978 - D Sun>=1 0 1 - --R v 1978 1979 - F 27 0 0 - --R v 1996 o - D 1 2s 1 - --R v 1997 o - Mar 2 2s 0 - -+R NC 1977 1978 - D Sun>=1 0 1 - -+R NC 1978 1979 - F 27 0 0 - -+R NC 1996 o - D 1 2s 1 - -+R NC 1997 o - Mar 2 2s 0 - - Z Pacific/Noumea 11:5:48 - LMT 1912 Ja 13 --11 v +11/+12 --R w 1927 o - N 6 2 1 S --R w 1928 o - Mar 4 2 0 M --R w 1928 1933 - O Sun>=8 2 0:30 S --R w 1929 1933 - Mar Sun>=15 2 0 M --R w 1934 1940 - Ap lastSun 2 0 M --R w 1934 1940 - S lastSun 2 0:30 S --R w 1946 o - Ja 1 0 0 S --R w 1974 o - N Sun>=1 2s 1 D --R x 1974 o - N Sun>=1 2:45s 1 - --R w 1975 o - F lastSun 2s 0 S --R x 1975 o - F lastSun 2:45s 0 - --R w 1975 1988 - O lastSun 2s 1 D --R x 1975 1988 - O lastSun 2:45s 1 - --R w 1976 1989 - Mar Sun>=1 2s 0 S --R x 1976 1989 - Mar Sun>=1 2:45s 0 - --R w 1989 o - O Sun>=8 2s 1 D --R x 1989 o - O Sun>=8 2:45s 1 - --R w 1990 2006 - O Sun>=1 2s 1 D --R x 1990 2006 - O Sun>=1 2:45s 1 - --R w 1990 2007 - Mar Sun>=15 2s 0 S --R x 1990 2007 - Mar Sun>=15 2:45s 0 - --R w 2007 ma - S lastSun 2s 1 D --R x 2007 ma - S lastSun 2:45s 1 - --R w 2008 ma - Ap Sun>=1 2s 0 S --R x 2008 ma - Ap Sun>=1 2:45s 0 - -+11 NC +11/+12 -+R NZ 1927 o - N 6 2 1 S -+R NZ 1928 o - Mar 4 2 0 M -+R NZ 1928 1933 - O Sun>=8 2 0:30 S -+R NZ 1929 1933 - Mar Sun>=15 2 0 M -+R NZ 1934 1940 - Ap lastSun 2 0 M -+R NZ 1934 1940 - S lastSun 2 0:30 S -+R NZ 1946 o - Ja 1 0 0 S -+R NZ 1974 o - N Sun>=1 2s 1 D -+R k 1974 o - N Sun>=1 2:45s 1 - -+R NZ 1975 o - F lastSun 2s 0 S -+R k 1975 o - F lastSun 2:45s 0 - -+R NZ 1975 1988 - O lastSun 2s 1 D -+R k 1975 1988 - O lastSun 2:45s 1 - -+R NZ 1976 1989 - Mar Sun>=1 2s 0 S -+R k 1976 1989 - Mar Sun>=1 2:45s 0 - -+R NZ 1989 o - O Sun>=8 2s 1 D -+R k 1989 o - O Sun>=8 2:45s 1 - -+R NZ 1990 2006 - O Sun>=1 2s 1 D -+R k 1990 2006 - O Sun>=1 2:45s 1 - -+R NZ 1990 2007 - Mar Sun>=15 2s 0 S -+R k 1990 2007 - Mar Sun>=15 2:45s 0 - -+R NZ 2007 ma - S lastSun 2s 1 D -+R k 2007 ma - S lastSun 2:45s 1 - -+R NZ 2008 ma - Ap Sun>=1 2s 0 S -+R k 2008 ma - Ap Sun>=1 2:45s 0 - - Z Pacific/Auckland 11:39:4 - LMT 1868 N 2 --11:30 w NZ%sT 1946 --12 w NZ%sT -+11:30 NZ NZ%sT 1946 -+12 NZ NZ%sT - Z Pacific/Chatham 12:13:48 - LMT 1868 N 2 - 12:15 - +1215 1946 --12:45 x +1245/+1345 -+12:45 k +1245/+1345 - Li Pacific/Auckland Antarctica/McMurdo --R y 1978 o - N 12 0 0:30 - --R y 1979 1991 - Mar Sun>=1 0 0 - --R y 1979 1990 - O lastSun 0 0:30 - -+R CK 1978 o - N 12 0 0:30 - -+R CK 1979 1991 - Mar Sun>=1 0 0 - -+R CK 1979 1990 - O lastSun 0 0:30 - - Z Pacific/Rarotonga -10:39:4 - LMT 1901 - -10:30 - -1030 1978 N 12 ---10 y -10/-0930 -+-10 CK -10/-0930 - Z Pacific/Niue -11:19:40 - LMT 1901 - -11:20 - -1120 1951 - -11:30 - -1130 1978 O -@@ -1311,570 +1335,570 @@ Z Pacific/Pago_Pago 12:37:12 - LMT 1892 Jul 5 - -11:22:48 - LMT 1911 - -11 - SST - Li Pacific/Pago_Pago Pacific/Midway --R z 2010 o - S lastSun 0 1 - --R z 2011 o - Ap Sat>=1 4 0 - --R z 2011 o - S lastSat 3 1 - --R z 2012 ma - Ap Sun>=1 4 0 - --R z 2012 ma - S lastSun 3 1 - -+R WS 2010 o - S lastSun 0 1 - -+R WS 2011 o - Ap Sat>=1 4 0 - -+R WS 2011 o - S lastSat 3 1 - -+R WS 2012 ma - Ap Sun>=1 4 0 - -+R WS 2012 ma - S lastSun 3 1 - - Z Pacific/Apia 12:33:4 - LMT 1892 Jul 5 - -11:26:56 - LMT 1911 - -11:30 - -1130 1950 ---11 z -11/-10 2011 D 29 24 --13 z +13/+14 -+-11 WS -11/-10 2011 D 29 24 -+13 WS +13/+14 - Z Pacific/Guadalcanal 10:39:48 - LMT 1912 O - 11 - +11 - Z Pacific/Fakaofo -11:24:56 - LMT 1901 - -11 - -11 2011 D 30 - 13 - +13 --R ! 1999 o - O 7 2s 1 - --R ! 2000 o - Mar 19 2s 0 - --R ! 2000 2001 - N Sun>=1 2 1 - --R ! 2001 2002 - Ja lastSun 2 0 - --R ! 2016 o - N Sun>=1 2 1 - --R ! 2017 o - Ja Sun>=15 3 0 - -+R TO 1999 o - O 7 2s 1 - -+R TO 2000 o - Mar 19 2s 0 - -+R TO 2000 2001 - N Sun>=1 2 1 - -+R TO 2001 2002 - Ja lastSun 2 0 - -+R TO 2016 o - N Sun>=1 2 1 - -+R TO 2017 o - Ja Sun>=15 3 0 - - Z Pacific/Tongatapu 12:19:20 - LMT 1901 - 12:20 - +1220 1941 - 13 - +13 1999 --13 ! +13/+14 -+13 TO +13/+14 - Z Pacific/Funafuti 11:56:52 - LMT 1901 - 12 - +12 - Z Pacific/Wake 11:6:28 - LMT 1901 - 12 - +12 --R $ 1983 o - S 25 0 1 - --R $ 1984 1991 - Mar Sun>=23 0 0 - --R $ 1984 o - O 23 0 1 - --R $ 1985 1991 - S Sun>=23 0 1 - --R $ 1992 1993 - Ja Sun>=23 0 0 - --R $ 1992 o - O Sun>=23 0 1 - -+R VU 1983 o - S 25 0 1 - -+R VU 1984 1991 - Mar Sun>=23 0 0 - -+R VU 1984 o - O 23 0 1 - -+R VU 1985 1991 - S Sun>=23 0 1 - -+R VU 1992 1993 - Ja Sun>=23 0 0 - -+R VU 1992 o - O Sun>=23 0 1 - - Z Pacific/Efate 11:13:16 - LMT 1912 Ja 13 --11 $ +11/+12 -+11 VU +11/+12 - Z Pacific/Wallis 12:15:20 - LMT 1901 - 12 - +12 --R % 1916 o - May 21 2s 1 BST --R % 1916 o - O 1 2s 0 GMT --R % 1917 o - Ap 8 2s 1 BST --R % 1917 o - S 17 2s 0 GMT --R % 1918 o - Mar 24 2s 1 BST --R % 1918 o - S 30 2s 0 GMT --R % 1919 o - Mar 30 2s 1 BST --R % 1919 o - S 29 2s 0 GMT --R % 1920 o - Mar 28 2s 1 BST --R % 1920 o - O 25 2s 0 GMT --R % 1921 o - Ap 3 2s 1 BST --R % 1921 o - O 3 2s 0 GMT --R % 1922 o - Mar 26 2s 1 BST --R % 1922 o - O 8 2s 0 GMT --R % 1923 o - Ap Sun>=16 2s 1 BST --R % 1923 1924 - S Sun>=16 2s 0 GMT --R % 1924 o - Ap Sun>=9 2s 1 BST --R % 1925 1926 - Ap Sun>=16 2s 1 BST --R % 1925 1938 - O Sun>=2 2s 0 GMT --R % 1927 o - Ap Sun>=9 2s 1 BST --R % 1928 1929 - Ap Sun>=16 2s 1 BST --R % 1930 o - Ap Sun>=9 2s 1 BST --R % 1931 1932 - Ap Sun>=16 2s 1 BST --R % 1933 o - Ap Sun>=9 2s 1 BST --R % 1934 o - Ap Sun>=16 2s 1 BST --R % 1935 o - Ap Sun>=9 2s 1 BST --R % 1936 1937 - Ap Sun>=16 2s 1 BST --R % 1938 o - Ap Sun>=9 2s 1 BST --R % 1939 o - Ap Sun>=16 2s 1 BST --R % 1939 o - N Sun>=16 2s 0 GMT --R % 1940 o - F Sun>=23 2s 1 BST --R % 1941 o - May Sun>=2 1s 2 BDST --R % 1941 1943 - Au Sun>=9 1s 1 BST --R % 1942 1944 - Ap Sun>=2 1s 2 BDST --R % 1944 o - S Sun>=16 1s 1 BST --R % 1945 o - Ap M>=2 1s 2 BDST --R % 1945 o - Jul Sun>=9 1s 1 BST --R % 1945 1946 - O Sun>=2 2s 0 GMT --R % 1946 o - Ap Sun>=9 2s 1 BST --R % 1947 o - Mar 16 2s 1 BST --R % 1947 o - Ap 13 1s 2 BDST --R % 1947 o - Au 10 1s 1 BST --R % 1947 o - N 2 2s 0 GMT --R % 1948 o - Mar 14 2s 1 BST --R % 1948 o - O 31 2s 0 GMT --R % 1949 o - Ap 3 2s 1 BST --R % 1949 o - O 30 2s 0 GMT --R % 1950 1952 - Ap Sun>=14 2s 1 BST --R % 1950 1952 - O Sun>=21 2s 0 GMT --R % 1953 o - Ap Sun>=16 2s 1 BST --R % 1953 1960 - O Sun>=2 2s 0 GMT --R % 1954 o - Ap Sun>=9 2s 1 BST --R % 1955 1956 - Ap Sun>=16 2s 1 BST --R % 1957 o - Ap Sun>=9 2s 1 BST --R % 1958 1959 - Ap Sun>=16 2s 1 BST --R % 1960 o - Ap Sun>=9 2s 1 BST --R % 1961 1963 - Mar lastSun 2s 1 BST --R % 1961 1968 - O Sun>=23 2s 0 GMT --R % 1964 1967 - Mar Sun>=19 2s 1 BST --R % 1968 o - F 18 2s 1 BST --R % 1972 1980 - Mar Sun>=16 2s 1 BST --R % 1972 1980 - O Sun>=23 2s 0 GMT --R % 1981 1995 - Mar lastSun 1u 1 BST --R % 1981 1989 - O Sun>=23 1u 0 GMT --R % 1990 1995 - O Sun>=22 1u 0 GMT -+R G 1916 o - May 21 2s 1 BST -+R G 1916 o - O 1 2s 0 GMT -+R G 1917 o - Ap 8 2s 1 BST -+R G 1917 o - S 17 2s 0 GMT -+R G 1918 o - Mar 24 2s 1 BST -+R G 1918 o - S 30 2s 0 GMT -+R G 1919 o - Mar 30 2s 1 BST -+R G 1919 o - S 29 2s 0 GMT -+R G 1920 o - Mar 28 2s 1 BST -+R G 1920 o - O 25 2s 0 GMT -+R G 1921 o - Ap 3 2s 1 BST -+R G 1921 o - O 3 2s 0 GMT -+R G 1922 o - Mar 26 2s 1 BST -+R G 1922 o - O 8 2s 0 GMT -+R G 1923 o - Ap Sun>=16 2s 1 BST -+R G 1923 1924 - S Sun>=16 2s 0 GMT -+R G 1924 o - Ap Sun>=9 2s 1 BST -+R G 1925 1926 - Ap Sun>=16 2s 1 BST -+R G 1925 1938 - O Sun>=2 2s 0 GMT -+R G 1927 o - Ap Sun>=9 2s 1 BST -+R G 1928 1929 - Ap Sun>=16 2s 1 BST -+R G 1930 o - Ap Sun>=9 2s 1 BST -+R G 1931 1932 - Ap Sun>=16 2s 1 BST -+R G 1933 o - Ap Sun>=9 2s 1 BST -+R G 1934 o - Ap Sun>=16 2s 1 BST -+R G 1935 o - Ap Sun>=9 2s 1 BST -+R G 1936 1937 - Ap Sun>=16 2s 1 BST -+R G 1938 o - Ap Sun>=9 2s 1 BST -+R G 1939 o - Ap Sun>=16 2s 1 BST -+R G 1939 o - N Sun>=16 2s 0 GMT -+R G 1940 o - F Sun>=23 2s 1 BST -+R G 1941 o - May Sun>=2 1s 2 BDST -+R G 1941 1943 - Au Sun>=9 1s 1 BST -+R G 1942 1944 - Ap Sun>=2 1s 2 BDST -+R G 1944 o - S Sun>=16 1s 1 BST -+R G 1945 o - Ap M>=2 1s 2 BDST -+R G 1945 o - Jul Sun>=9 1s 1 BST -+R G 1945 1946 - O Sun>=2 2s 0 GMT -+R G 1946 o - Ap Sun>=9 2s 1 BST -+R G 1947 o - Mar 16 2s 1 BST -+R G 1947 o - Ap 13 1s 2 BDST -+R G 1947 o - Au 10 1s 1 BST -+R G 1947 o - N 2 2s 0 GMT -+R G 1948 o - Mar 14 2s 1 BST -+R G 1948 o - O 31 2s 0 GMT -+R G 1949 o - Ap 3 2s 1 BST -+R G 1949 o - O 30 2s 0 GMT -+R G 1950 1952 - Ap Sun>=14 2s 1 BST -+R G 1950 1952 - O Sun>=21 2s 0 GMT -+R G 1953 o - Ap Sun>=16 2s 1 BST -+R G 1953 1960 - O Sun>=2 2s 0 GMT -+R G 1954 o - Ap Sun>=9 2s 1 BST -+R G 1955 1956 - Ap Sun>=16 2s 1 BST -+R G 1957 o - Ap Sun>=9 2s 1 BST -+R G 1958 1959 - Ap Sun>=16 2s 1 BST -+R G 1960 o - Ap Sun>=9 2s 1 BST -+R G 1961 1963 - Mar lastSun 2s 1 BST -+R G 1961 1968 - O Sun>=23 2s 0 GMT -+R G 1964 1967 - Mar Sun>=19 2s 1 BST -+R G 1968 o - F 18 2s 1 BST -+R G 1972 1980 - Mar Sun>=16 2s 1 BST -+R G 1972 1980 - O Sun>=23 2s 0 GMT -+R G 1981 1995 - Mar lastSun 1u 1 BST -+R G 1981 1989 - O Sun>=23 1u 0 GMT -+R G 1990 1995 - O Sun>=22 1u 0 GMT - Z Europe/London -0:1:15 - LMT 1847 D 1 0s --0 % %s 1968 O 27 -+0 G %s 1968 O 27 - 1 - BST 1971 O 31 2u --0 % %s 1996 --0 O GMT/BST -+0 G %s 1996 -+0 E GMT/BST - Li Europe/London Europe/Jersey - Li Europe/London Europe/Guernsey - Li Europe/London Europe/Isle_of_Man --R & 1971 o - O 31 2u -1 - --R & 1972 1980 - Mar Sun>=16 2u 0 - --R & 1972 1980 - O Sun>=23 2u -1 - --R & 1981 ma - Mar lastSun 1u 0 - --R & 1981 1989 - O Sun>=23 1u -1 - --R & 1990 1995 - O Sun>=22 1u -1 - --R & 1996 ma - O lastSun 1u -1 - -+R IE 1971 o - O 31 2u -1 - -+R IE 1972 1980 - Mar Sun>=16 2u 0 - -+R IE 1972 1980 - O Sun>=23 2u -1 - -+R IE 1981 ma - Mar lastSun 1u 0 - -+R IE 1981 1989 - O Sun>=23 1u -1 - -+R IE 1990 1995 - O Sun>=22 1u -1 - -+R IE 1996 ma - O lastSun 1u -1 - - Z Europe/Dublin -0:25 - LMT 1880 Au 2 - -0:25:21 - DMT 1916 May 21 2s - -0:25:21 1 IST 1916 O 1 2s --0 % %s 1921 D 6 --0 % GMT/IST 1940 F 25 2s -+0 G %s 1921 D 6 -+0 G GMT/IST 1940 F 25 2s - 0 1 IST 1946 O 6 2s - 0 - GMT 1947 Mar 16 2s - 0 1 IST 1947 N 2 2s - 0 - GMT 1948 Ap 18 2s --0 % GMT/IST 1968 O 27 --1 & IST/GMT --R O 1977 1980 - Ap Sun>=1 1u 1 S --R O 1977 o - S lastSun 1u 0 - --R O 1978 o - O 1 1u 0 - --R O 1979 1995 - S lastSun 1u 0 - --R O 1981 ma - Mar lastSun 1u 1 S --R O 1996 ma - O lastSun 1u 0 - --R ' 1977 1980 - Ap Sun>=1 1s 1 S --R ' 1977 o - S lastSun 1s 0 - --R ' 1978 o - O 1 1s 0 - --R ' 1979 1995 - S lastSun 1s 0 - --R ' 1981 ma - Mar lastSun 1s 1 S --R ' 1996 ma - O lastSun 1s 0 - --R ( 1916 o - Ap 30 23 1 S --R ( 1916 o - O 1 1 0 - --R ( 1917 1918 - Ap M>=15 2s 1 S --R ( 1917 1918 - S M>=15 2s 0 - --R ( 1940 o - Ap 1 2s 1 S --R ( 1942 o - N 2 2s 0 - --R ( 1943 o - Mar 29 2s 1 S --R ( 1943 o - O 4 2s 0 - --R ( 1944 1945 - Ap M>=1 2s 1 S --R ( 1944 o - O 2 2s 0 - --R ( 1945 o - S 16 2s 0 - --R ( 1977 1980 - Ap Sun>=1 2s 1 S --R ( 1977 o - S lastSun 2s 0 - --R ( 1978 o - O 1 2s 0 - --R ( 1979 1995 - S lastSun 2s 0 - --R ( 1981 ma - Mar lastSun 2s 1 S --R ( 1996 ma - O lastSun 2s 0 - --R W 1977 1980 - Ap Sun>=1 0 1 S --R W 1977 o - S lastSun 0 0 - --R W 1978 o - O 1 0 0 - --R W 1979 1995 - S lastSun 0 0 - --R W 1981 ma - Mar lastSun 0 1 S --R W 1996 ma - O lastSun 0 0 - --R M 1917 o - Jul 1 23 1 MST --R M 1917 o - D 28 0 0 MMT --R M 1918 o - May 31 22 2 MDST --R M 1918 o - S 16 1 1 MST --R M 1919 o - May 31 23 2 MDST --R M 1919 o - Jul 1 0u 1 MSD --R M 1919 o - Au 16 0 0 MSK --R M 1921 o - F 14 23 1 MSD --R M 1921 o - Mar 20 23 2 +05 --R M 1921 o - S 1 0 1 MSD --R M 1921 o - O 1 0 0 - --R M 1981 1984 - Ap 1 0 1 S --R M 1981 1983 - O 1 0 0 - --R M 1984 1995 - S lastSun 2s 0 - --R M 1985 2010 - Mar lastSun 2s 1 S --R M 1996 2010 - O lastSun 2s 0 - --Z WET 0 O WE%sT --Z CET 1 ( CE%sT --Z MET 1 ( ME%sT --Z EET 2 O EE%sT --R ) 1940 o - Jun 16 0 1 S --R ) 1942 o - N 2 3 0 - --R ) 1943 o - Mar 29 2 1 S --R ) 1943 o - Ap 10 3 0 - --R ) 1974 o - May 4 0 1 S --R ) 1974 o - O 2 0 0 - --R ) 1975 o - May 1 0 1 S --R ) 1975 o - O 2 0 0 - --R ) 1976 o - May 2 0 1 S --R ) 1976 o - O 3 0 0 - --R ) 1977 o - May 8 0 1 S --R ) 1977 o - O 2 0 0 - --R ) 1978 o - May 6 0 1 S --R ) 1978 o - O 1 0 0 - --R ) 1979 o - May 5 0 1 S --R ) 1979 o - S 30 0 0 - --R ) 1980 o - May 3 0 1 S --R ) 1980 o - O 4 0 0 - --R ) 1981 o - Ap 26 0 1 S --R ) 1981 o - S 27 0 0 - --R ) 1982 o - May 2 0 1 S --R ) 1982 o - O 3 0 0 - --R ) 1983 o - Ap 18 0 1 S --R ) 1983 o - O 1 0 0 - --R ) 1984 o - Ap 1 0 1 S -+0 G GMT/IST 1968 O 27 -+1 IE IST/GMT -+R E 1977 1980 - Ap Sun>=1 1u 1 S -+R E 1977 o - S lastSun 1u 0 - -+R E 1978 o - O 1 1u 0 - -+R E 1979 1995 - S lastSun 1u 0 - -+R E 1981 ma - Mar lastSun 1u 1 S -+R E 1996 ma - O lastSun 1u 0 - -+R W- 1977 1980 - Ap Sun>=1 1s 1 S -+R W- 1977 o - S lastSun 1s 0 - -+R W- 1978 o - O 1 1s 0 - -+R W- 1979 1995 - S lastSun 1s 0 - -+R W- 1981 ma - Mar lastSun 1s 1 S -+R W- 1996 ma - O lastSun 1s 0 - -+R c 1916 o - Ap 30 23 1 S -+R c 1916 o - O 1 1 0 - -+R c 1917 1918 - Ap M>=15 2s 1 S -+R c 1917 1918 - S M>=15 2s 0 - -+R c 1940 o - Ap 1 2s 1 S -+R c 1942 o - N 2 2s 0 - -+R c 1943 o - Mar 29 2s 1 S -+R c 1943 o - O 4 2s 0 - -+R c 1944 1945 - Ap M>=1 2s 1 S -+R c 1944 o - O 2 2s 0 - -+R c 1945 o - S 16 2s 0 - -+R c 1977 1980 - Ap Sun>=1 2s 1 S -+R c 1977 o - S lastSun 2s 0 - -+R c 1978 o - O 1 2s 0 - -+R c 1979 1995 - S lastSun 2s 0 - -+R c 1981 ma - Mar lastSun 2s 1 S -+R c 1996 ma - O lastSun 2s 0 - -+R e 1977 1980 - Ap Sun>=1 0 1 S -+R e 1977 o - S lastSun 0 0 - -+R e 1978 o - O 1 0 0 - -+R e 1979 1995 - S lastSun 0 0 - -+R e 1981 ma - Mar lastSun 0 1 S -+R e 1996 ma - O lastSun 0 0 - -+R R 1917 o - Jul 1 23 1 MST -+R R 1917 o - D 28 0 0 MMT -+R R 1918 o - May 31 22 2 MDST -+R R 1918 o - S 16 1 1 MST -+R R 1919 o - May 31 23 2 MDST -+R R 1919 o - Jul 1 0u 1 MSD -+R R 1919 o - Au 16 0 0 MSK -+R R 1921 o - F 14 23 1 MSD -+R R 1921 o - Mar 20 23 2 +05 -+R R 1921 o - S 1 0 1 MSD -+R R 1921 o - O 1 0 0 - -+R R 1981 1984 - Ap 1 0 1 S -+R R 1981 1983 - O 1 0 0 - -+R R 1984 1995 - S lastSun 2s 0 - -+R R 1985 2010 - Mar lastSun 2s 1 S -+R R 1996 2010 - O lastSun 2s 0 - -+Z WET 0 E WE%sT -+Z CET 1 c CE%sT -+Z MET 1 c ME%sT -+Z EET 2 E EE%sT -+R q 1940 o - Jun 16 0 1 S -+R q 1942 o - N 2 3 0 - -+R q 1943 o - Mar 29 2 1 S -+R q 1943 o - Ap 10 3 0 - -+R q 1974 o - May 4 0 1 S -+R q 1974 o - O 2 0 0 - -+R q 1975 o - May 1 0 1 S -+R q 1975 o - O 2 0 0 - -+R q 1976 o - May 2 0 1 S -+R q 1976 o - O 3 0 0 - -+R q 1977 o - May 8 0 1 S -+R q 1977 o - O 2 0 0 - -+R q 1978 o - May 6 0 1 S -+R q 1978 o - O 1 0 0 - -+R q 1979 o - May 5 0 1 S -+R q 1979 o - S 30 0 0 - -+R q 1980 o - May 3 0 1 S -+R q 1980 o - O 4 0 0 - -+R q 1981 o - Ap 26 0 1 S -+R q 1981 o - S 27 0 0 - -+R q 1982 o - May 2 0 1 S -+R q 1982 o - O 3 0 0 - -+R q 1983 o - Ap 18 0 1 S -+R q 1983 o - O 1 0 0 - -+R q 1984 o - Ap 1 0 1 S - Z Europe/Tirane 1:19:20 - LMT 1914 - 1 - CET 1940 Jun 16 --1 ) CE%sT 1984 Jul --1 O CE%sT -+1 q CE%sT 1984 Jul -+1 E CE%sT - Z Europe/Andorra 0:6:4 - LMT 1901 - 0 - WET 1946 S 30 - 1 - CET 1985 Mar 31 2 --1 O CE%sT --R * 1920 o - Ap 5 2s 1 S --R * 1920 o - S 13 2s 0 - --R * 1946 o - Ap 14 2s 1 S --R * 1946 1948 - O Sun>=1 2s 0 - --R * 1947 o - Ap 6 2s 1 S --R * 1948 o - Ap 18 2s 1 S --R * 1980 o - Ap 6 0 1 S --R * 1980 o - S 28 0 0 - -+1 E CE%sT -+R a 1920 o - Ap 5 2s 1 S -+R a 1920 o - S 13 2s 0 - -+R a 1946 o - Ap 14 2s 1 S -+R a 1946 1948 - O Sun>=1 2s 0 - -+R a 1947 o - Ap 6 2s 1 S -+R a 1948 o - Ap 18 2s 1 S -+R a 1980 o - Ap 6 0 1 S -+R a 1980 o - S 28 0 0 - - Z Europe/Vienna 1:5:21 - LMT 1893 Ap --1 ( CE%sT 1920 --1 * CE%sT 1940 Ap 1 2s --1 ( CE%sT 1945 Ap 2 2s -+1 c CE%sT 1920 -+1 a CE%sT 1940 Ap 1 2s -+1 c CE%sT 1945 Ap 2 2s - 1 1 CEST 1945 Ap 12 2s - 1 - CET 1946 --1 * CE%sT 1981 --1 O CE%sT -+1 a CE%sT 1981 -+1 E CE%sT - Z Europe/Minsk 1:50:16 - LMT 1880 - 1:50 - MMT 1924 May 2 - 2 - EET 1930 Jun 21 - 3 - MSK 1941 Jun 28 --1 ( CE%sT 1944 Jul 3 --3 M MSK/MSD 1990 -+1 c CE%sT 1944 Jul 3 -+3 R MSK/MSD 1990 - 3 - MSK 1991 Mar 31 2s --2 M EE%sT 2011 Mar 27 2s -+2 R EE%sT 2011 Mar 27 2s - 3 - +03 --R + 1918 o - Mar 9 0s 1 S --R + 1918 1919 - O Sat>=1 23s 0 - --R + 1919 o - Mar 1 23s 1 S --R + 1920 o - F 14 23s 1 S --R + 1920 o - O 23 23s 0 - --R + 1921 o - Mar 14 23s 1 S --R + 1921 o - O 25 23s 0 - --R + 1922 o - Mar 25 23s 1 S --R + 1922 1927 - O Sat>=1 23s 0 - --R + 1923 o - Ap 21 23s 1 S --R + 1924 o - Mar 29 23s 1 S --R + 1925 o - Ap 4 23s 1 S --R + 1926 o - Ap 17 23s 1 S --R + 1927 o - Ap 9 23s 1 S --R + 1928 o - Ap 14 23s 1 S --R + 1928 1938 - O Sun>=2 2s 0 - --R + 1929 o - Ap 21 2s 1 S --R + 1930 o - Ap 13 2s 1 S --R + 1931 o - Ap 19 2s 1 S --R + 1932 o - Ap 3 2s 1 S --R + 1933 o - Mar 26 2s 1 S --R + 1934 o - Ap 8 2s 1 S --R + 1935 o - Mar 31 2s 1 S --R + 1936 o - Ap 19 2s 1 S --R + 1937 o - Ap 4 2s 1 S --R + 1938 o - Mar 27 2s 1 S --R + 1939 o - Ap 16 2s 1 S --R + 1939 o - N 19 2s 0 - --R + 1940 o - F 25 2s 1 S --R + 1944 o - S 17 2s 0 - --R + 1945 o - Ap 2 2s 1 S --R + 1945 o - S 16 2s 0 - --R + 1946 o - May 19 2s 1 S --R + 1946 o - O 7 2s 0 - -+R b 1918 o - Mar 9 0s 1 S -+R b 1918 1919 - O Sat>=1 23s 0 - -+R b 1919 o - Mar 1 23s 1 S -+R b 1920 o - F 14 23s 1 S -+R b 1920 o - O 23 23s 0 - -+R b 1921 o - Mar 14 23s 1 S -+R b 1921 o - O 25 23s 0 - -+R b 1922 o - Mar 25 23s 1 S -+R b 1922 1927 - O Sat>=1 23s 0 - -+R b 1923 o - Ap 21 23s 1 S -+R b 1924 o - Mar 29 23s 1 S -+R b 1925 o - Ap 4 23s 1 S -+R b 1926 o - Ap 17 23s 1 S -+R b 1927 o - Ap 9 23s 1 S -+R b 1928 o - Ap 14 23s 1 S -+R b 1928 1938 - O Sun>=2 2s 0 - -+R b 1929 o - Ap 21 2s 1 S -+R b 1930 o - Ap 13 2s 1 S -+R b 1931 o - Ap 19 2s 1 S -+R b 1932 o - Ap 3 2s 1 S -+R b 1933 o - Mar 26 2s 1 S -+R b 1934 o - Ap 8 2s 1 S -+R b 1935 o - Mar 31 2s 1 S -+R b 1936 o - Ap 19 2s 1 S -+R b 1937 o - Ap 4 2s 1 S -+R b 1938 o - Mar 27 2s 1 S -+R b 1939 o - Ap 16 2s 1 S -+R b 1939 o - N 19 2s 0 - -+R b 1940 o - F 25 2s 1 S -+R b 1944 o - S 17 2s 0 - -+R b 1945 o - Ap 2 2s 1 S -+R b 1945 o - S 16 2s 0 - -+R b 1946 o - May 19 2s 1 S -+R b 1946 o - O 7 2s 0 - - Z Europe/Brussels 0:17:30 - LMT 1880 - 0:17:30 - BMT 1892 May 1 12 - 0 - WET 1914 N 8 - 1 - CET 1916 May --1 ( CE%sT 1918 N 11 11u --0 + WE%sT 1940 May 20 2s --1 ( CE%sT 1944 S 3 --1 + CE%sT 1977 --1 O CE%sT --R , 1979 o - Mar 31 23 1 S --R , 1979 o - O 1 1 0 - --R , 1980 1982 - Ap Sat>=1 23 1 S --R , 1980 o - S 29 1 0 - --R , 1981 o - S 27 2 0 - -+1 c CE%sT 1918 N 11 11u -+0 b WE%sT 1940 May 20 2s -+1 c CE%sT 1944 S 3 -+1 b CE%sT 1977 -+1 E CE%sT -+R BG 1979 o - Mar 31 23 1 S -+R BG 1979 o - O 1 1 0 - -+R BG 1980 1982 - Ap Sat>=1 23 1 S -+R BG 1980 o - S 29 1 0 - -+R BG 1981 o - S 27 2 0 - - Z Europe/Sofia 1:33:16 - LMT 1880 - 1:56:56 - IMT 1894 N 30 - 2 - EET 1942 N 2 3 --1 ( CE%sT 1945 -+1 c CE%sT 1945 - 1 - CET 1945 Ap 2 3 - 2 - EET 1979 Mar 31 23 --2 , EE%sT 1982 S 26 3 --2 ( EE%sT 1991 --2 W EE%sT 1997 --2 O EE%sT --R . 1945 o - Ap M>=1 2s 1 S --R . 1945 o - O 1 2s 0 - --R . 1946 o - May 6 2s 1 S --R . 1946 1949 - O Sun>=1 2s 0 - --R . 1947 1948 - Ap Sun>=15 2s 1 S --R . 1949 o - Ap 9 2s 1 S -+2 BG EE%sT 1982 S 26 3 -+2 c EE%sT 1991 -+2 e EE%sT 1997 -+2 E EE%sT -+R CZ 1945 o - Ap M>=1 2s 1 S -+R CZ 1945 o - O 1 2s 0 - -+R CZ 1946 o - May 6 2s 1 S -+R CZ 1946 1949 - O Sun>=1 2s 0 - -+R CZ 1947 1948 - Ap Sun>=15 2s 1 S -+R CZ 1949 o - Ap 9 2s 1 S - Z Europe/Prague 0:57:44 - LMT 1850 - 0:57:44 - PMT 1891 O --1 ( CE%sT 1945 May 9 --1 . CE%sT 1946 D 1 3 -+1 c CE%sT 1945 May 9 -+1 CZ CE%sT 1946 D 1 3 - 1 -1 GMT 1947 F 23 2 --1 . CE%sT 1979 --1 O CE%sT --R / 1916 o - May 14 23 1 S --R / 1916 o - S 30 23 0 - --R / 1940 o - May 15 0 1 S --R / 1945 o - Ap 2 2s 1 S --R / 1945 o - Au 15 2s 0 - --R / 1946 o - May 1 2s 1 S --R / 1946 o - S 1 2s 0 - --R / 1947 o - May 4 2s 1 S --R / 1947 o - Au 10 2s 0 - --R / 1948 o - May 9 2s 1 S --R / 1948 o - Au 8 2s 0 - -+1 CZ CE%sT 1979 -+1 E CE%sT -+R D 1916 o - May 14 23 1 S -+R D 1916 o - S 30 23 0 - -+R D 1940 o - May 15 0 1 S -+R D 1945 o - Ap 2 2s 1 S -+R D 1945 o - Au 15 2s 0 - -+R D 1946 o - May 1 2s 1 S -+R D 1946 o - S 1 2s 0 - -+R D 1947 o - May 4 2s 1 S -+R D 1947 o - Au 10 2s 0 - -+R D 1948 o - May 9 2s 1 S -+R D 1948 o - Au 8 2s 0 - - Z Europe/Copenhagen 0:50:20 - LMT 1890 - 0:50:20 - CMT 1894 --1 / CE%sT 1942 N 2 2s --1 ( CE%sT 1945 Ap 2 2 --1 / CE%sT 1980 --1 O CE%sT -+1 D CE%sT 1942 N 2 2s -+1 c CE%sT 1945 Ap 2 2 -+1 D CE%sT 1980 -+1 E CE%sT - Z Atlantic/Faroe -0:27:4 - LMT 1908 Ja 11 - 0 - WET 1981 --0 O WE%sT --R : 1991 1992 - Mar lastSun 2 1 D --R : 1991 1992 - S lastSun 2 0 S --R : 1993 2006 - Ap Sun>=1 2 1 D --R : 1993 2006 - O lastSun 2 0 S --R : 2007 ma - Mar Sun>=8 2 1 D --R : 2007 ma - N Sun>=1 2 0 S -+0 E WE%sT -+R Th 1991 1992 - Mar lastSun 2 1 D -+R Th 1991 1992 - S lastSun 2 0 S -+R Th 1993 2006 - Ap Sun>=1 2 1 D -+R Th 1993 2006 - O lastSun 2 0 S -+R Th 2007 ma - Mar Sun>=8 2 1 D -+R Th 2007 ma - N Sun>=1 2 0 S - Z America/Danmarkshavn -1:14:40 - LMT 1916 Jul 28 - -3 - -03 1980 Ap 6 2 ---3 O -03/-02 1996 -+-3 E -03/-02 1996 - 0 - GMT - Z America/Scoresbysund -1:27:52 - LMT 1916 Jul 28 - -2 - -02 1980 Ap 6 2 ---2 ( -02/-01 1981 Mar 29 ---1 O -01/+00 -+-2 c -02/-01 1981 Mar 29 -+-1 E -01/+00 - Z America/Godthab -3:26:56 - LMT 1916 Jul 28 - -3 - -03 1980 Ap 6 2 ---3 O -03/-02 -+-3 E -03/-02 - Z America/Thule -4:35:8 - LMT 1916 Jul 28 ---4 : A%sT -+-4 Th A%sT - Z Europe/Tallinn 1:39 - LMT 1880 - 1:39 - TMT 1918 F --1 ( CE%sT 1919 Jul -+1 c CE%sT 1919 Jul - 1:39 - TMT 1921 May - 2 - EET 1940 Au 6 - 3 - MSK 1941 S 15 --1 ( CE%sT 1944 S 22 --3 M MSK/MSD 1989 Mar 26 2s -+1 c CE%sT 1944 S 22 -+3 R MSK/MSD 1989 Mar 26 2s - 2 1 EEST 1989 S 24 2s --2 ( EE%sT 1998 S 22 --2 O EE%sT 1999 O 31 4 -+2 c EE%sT 1998 S 22 -+2 E EE%sT 1999 O 31 4 - 2 - EET 2002 F 21 --2 O EE%sT --R ; 1942 o - Ap 2 24 1 S --R ; 1942 o - O 4 1 0 - --R ; 1981 1982 - Mar lastSun 2 1 S --R ; 1981 1982 - S lastSun 3 0 - -+2 E EE%sT -+R FI 1942 o - Ap 2 24 1 S -+R FI 1942 o - O 4 1 0 - -+R FI 1981 1982 - Mar lastSun 2 1 S -+R FI 1981 1982 - S lastSun 3 0 - - Z Europe/Helsinki 1:39:49 - LMT 1878 May 31 - 1:39:49 - HMT 1921 May --2 ; EE%sT 1983 --2 O EE%sT -+2 FI EE%sT 1983 -+2 E EE%sT - Li Europe/Helsinki Europe/Mariehamn --R < 1916 o - Jun 14 23s 1 S --R < 1916 1919 - O Sun>=1 23s 0 - --R < 1917 o - Mar 24 23s 1 S --R < 1918 o - Mar 9 23s 1 S --R < 1919 o - Mar 1 23s 1 S --R < 1920 o - F 14 23s 1 S --R < 1920 o - O 23 23s 0 - --R < 1921 o - Mar 14 23s 1 S --R < 1921 o - O 25 23s 0 - --R < 1922 o - Mar 25 23s 1 S --R < 1922 1938 - O Sat>=1 23s 0 - --R < 1923 o - May 26 23s 1 S --R < 1924 o - Mar 29 23s 1 S --R < 1925 o - Ap 4 23s 1 S --R < 1926 o - Ap 17 23s 1 S --R < 1927 o - Ap 9 23s 1 S --R < 1928 o - Ap 14 23s 1 S --R < 1929 o - Ap 20 23s 1 S --R < 1930 o - Ap 12 23s 1 S --R < 1931 o - Ap 18 23s 1 S --R < 1932 o - Ap 2 23s 1 S --R < 1933 o - Mar 25 23s 1 S --R < 1934 o - Ap 7 23s 1 S --R < 1935 o - Mar 30 23s 1 S --R < 1936 o - Ap 18 23s 1 S --R < 1937 o - Ap 3 23s 1 S --R < 1938 o - Mar 26 23s 1 S --R < 1939 o - Ap 15 23s 1 S --R < 1939 o - N 18 23s 0 - --R < 1940 o - F 25 2 1 S --R < 1941 o - May 5 0 2 M --R < 1941 o - O 6 0 1 S --R < 1942 o - Mar 9 0 2 M --R < 1942 o - N 2 3 1 S --R < 1943 o - Mar 29 2 2 M --R < 1943 o - O 4 3 1 S --R < 1944 o - Ap 3 2 2 M --R < 1944 o - O 8 1 1 S --R < 1945 o - Ap 2 2 2 M --R < 1945 o - S 16 3 0 - --R < 1976 o - Mar 28 1 1 S --R < 1976 o - S 26 1 0 - -+R F 1916 o - Jun 14 23s 1 S -+R F 1916 1919 - O Sun>=1 23s 0 - -+R F 1917 o - Mar 24 23s 1 S -+R F 1918 o - Mar 9 23s 1 S -+R F 1919 o - Mar 1 23s 1 S -+R F 1920 o - F 14 23s 1 S -+R F 1920 o - O 23 23s 0 - -+R F 1921 o - Mar 14 23s 1 S -+R F 1921 o - O 25 23s 0 - -+R F 1922 o - Mar 25 23s 1 S -+R F 1922 1938 - O Sat>=1 23s 0 - -+R F 1923 o - May 26 23s 1 S -+R F 1924 o - Mar 29 23s 1 S -+R F 1925 o - Ap 4 23s 1 S -+R F 1926 o - Ap 17 23s 1 S -+R F 1927 o - Ap 9 23s 1 S -+R F 1928 o - Ap 14 23s 1 S -+R F 1929 o - Ap 20 23s 1 S -+R F 1930 o - Ap 12 23s 1 S -+R F 1931 o - Ap 18 23s 1 S -+R F 1932 o - Ap 2 23s 1 S -+R F 1933 o - Mar 25 23s 1 S -+R F 1934 o - Ap 7 23s 1 S -+R F 1935 o - Mar 30 23s 1 S -+R F 1936 o - Ap 18 23s 1 S -+R F 1937 o - Ap 3 23s 1 S -+R F 1938 o - Mar 26 23s 1 S -+R F 1939 o - Ap 15 23s 1 S -+R F 1939 o - N 18 23s 0 - -+R F 1940 o - F 25 2 1 S -+R F 1941 o - May 5 0 2 M -+R F 1941 o - O 6 0 1 S -+R F 1942 o - Mar 9 0 2 M -+R F 1942 o - N 2 3 1 S -+R F 1943 o - Mar 29 2 2 M -+R F 1943 o - O 4 3 1 S -+R F 1944 o - Ap 3 2 2 M -+R F 1944 o - O 8 1 1 S -+R F 1945 o - Ap 2 2 2 M -+R F 1945 o - S 16 3 0 - -+R F 1976 o - Mar 28 1 1 S -+R F 1976 o - S 26 1 0 - - Z Europe/Paris 0:9:21 - LMT 1891 Mar 15 0:1 - 0:9:21 - PMT 1911 Mar 11 0:1 --0 < WE%sT 1940 Jun 14 23 --1 ( CE%sT 1944 Au 25 --0 < WE%sT 1945 S 16 3 --1 < CE%sT 1977 --1 O CE%sT --R = 1946 o - Ap 14 2s 1 S --R = 1946 o - O 7 2s 0 - --R = 1947 1949 - O Sun>=1 2s 0 - --R = 1947 o - Ap 6 3s 1 S --R = 1947 o - May 11 2s 2 M --R = 1947 o - Jun 29 3 1 S --R = 1948 o - Ap 18 2s 1 S --R = 1949 o - Ap 10 2s 1 S --R > 1945 o - May 24 2 2 M --R > 1945 o - S 24 3 1 S --R > 1945 o - N 18 2s 0 - -+0 F WE%sT 1940 Jun 14 23 -+1 c CE%sT 1944 Au 25 -+0 F WE%sT 1945 S 16 3 -+1 F CE%sT 1977 -+1 E CE%sT -+R DE 1946 o - Ap 14 2s 1 S -+R DE 1946 o - O 7 2s 0 - -+R DE 1947 1949 - O Sun>=1 2s 0 - -+R DE 1947 o - Ap 6 3s 1 S -+R DE 1947 o - May 11 2s 2 M -+R DE 1947 o - Jun 29 3 1 S -+R DE 1948 o - Ap 18 2s 1 S -+R DE 1949 o - Ap 10 2s 1 S -+R So 1945 o - May 24 2 2 M -+R So 1945 o - S 24 3 1 S -+R So 1945 o - N 18 2s 0 - - Z Europe/Berlin 0:53:28 - LMT 1893 Ap --1 ( CE%sT 1945 May 24 2 --1 > CE%sT 1946 --1 = CE%sT 1980 --1 O CE%sT -+1 c CE%sT 1945 May 24 2 -+1 So CE%sT 1946 -+1 DE CE%sT 1980 -+1 E CE%sT - Li Europe/Zurich Europe/Busingen - Z Europe/Gibraltar -0:21:24 - LMT 1880 Au 2 0s --0 % %s 1957 Ap 14 2 -+0 G %s 1957 Ap 14 2 - 1 - CET 1982 --1 O CE%sT --R ? 1932 o - Jul 7 0 1 S --R ? 1932 o - S 1 0 0 - --R ? 1941 o - Ap 7 0 1 S --R ? 1942 o - N 2 3 0 - --R ? 1943 o - Mar 30 0 1 S --R ? 1943 o - O 4 0 0 - --R ? 1952 o - Jul 1 0 1 S --R ? 1952 o - N 2 0 0 - --R ? 1975 o - Ap 12 0s 1 S --R ? 1975 o - N 26 0s 0 - --R ? 1976 o - Ap 11 2s 1 S --R ? 1976 o - O 10 2s 0 - --R ? 1977 1978 - Ap Sun>=1 2s 1 S --R ? 1977 o - S 26 2s 0 - --R ? 1978 o - S 24 4 0 - --R ? 1979 o - Ap 1 9 1 S --R ? 1979 o - S 29 2 0 - --R ? 1980 o - Ap 1 0 1 S --R ? 1980 o - S 28 0 0 - -+1 E CE%sT -+R g 1932 o - Jul 7 0 1 S -+R g 1932 o - S 1 0 0 - -+R g 1941 o - Ap 7 0 1 S -+R g 1942 o - N 2 3 0 - -+R g 1943 o - Mar 30 0 1 S -+R g 1943 o - O 4 0 0 - -+R g 1952 o - Jul 1 0 1 S -+R g 1952 o - N 2 0 0 - -+R g 1975 o - Ap 12 0s 1 S -+R g 1975 o - N 26 0s 0 - -+R g 1976 o - Ap 11 2s 1 S -+R g 1976 o - O 10 2s 0 - -+R g 1977 1978 - Ap Sun>=1 2s 1 S -+R g 1977 o - S 26 2s 0 - -+R g 1978 o - S 24 4 0 - -+R g 1979 o - Ap 1 9 1 S -+R g 1979 o - S 29 2 0 - -+R g 1980 o - Ap 1 0 1 S -+R g 1980 o - S 28 0 0 - - Z Europe/Athens 1:34:52 - LMT 1895 S 14 - 1:34:52 - AMT 1916 Jul 28 0:1 --2 ? EE%sT 1941 Ap 30 --1 ? CE%sT 1944 Ap 4 --2 ? EE%sT 1981 --2 O EE%sT --R @ 1918 o - Ap 1 3 1 S --R @ 1918 o - S 16 3 0 - --R @ 1919 o - Ap 15 3 1 S --R @ 1919 o - N 24 3 0 - --R @ 1945 o - May 1 23 1 S --R @ 1945 o - N 1 0 0 - --R @ 1946 o - Mar 31 2s 1 S --R @ 1946 1949 - O Sun>=1 2s 0 - --R @ 1947 1949 - Ap Sun>=4 2s 1 S --R @ 1950 o - Ap 17 2s 1 S --R @ 1950 o - O 23 2s 0 - --R @ 1954 1955 - May 23 0 1 S --R @ 1954 1955 - O 3 0 0 - --R @ 1956 o - Jun Sun>=1 0 1 S --R @ 1956 o - S lastSun 0 0 - --R @ 1957 o - Jun Sun>=1 1 1 S --R @ 1957 o - S lastSun 3 0 - --R @ 1980 o - Ap 6 1 1 S -+2 g EE%sT 1941 Ap 30 -+1 g CE%sT 1944 Ap 4 -+2 g EE%sT 1981 -+2 E EE%sT -+R h 1918 o - Ap 1 3 1 S -+R h 1918 o - S 16 3 0 - -+R h 1919 o - Ap 15 3 1 S -+R h 1919 o - N 24 3 0 - -+R h 1945 o - May 1 23 1 S -+R h 1945 o - N 1 0 0 - -+R h 1946 o - Mar 31 2s 1 S -+R h 1946 1949 - O Sun>=1 2s 0 - -+R h 1947 1949 - Ap Sun>=4 2s 1 S -+R h 1950 o - Ap 17 2s 1 S -+R h 1950 o - O 23 2s 0 - -+R h 1954 1955 - May 23 0 1 S -+R h 1954 1955 - O 3 0 0 - -+R h 1956 o - Jun Sun>=1 0 1 S -+R h 1956 o - S lastSun 0 0 - -+R h 1957 o - Jun Sun>=1 1 1 S -+R h 1957 o - S lastSun 3 0 - -+R h 1980 o - Ap 6 1 1 S - Z Europe/Budapest 1:16:20 - LMT 1890 O --1 ( CE%sT 1918 --1 @ CE%sT 1941 Ap 8 --1 ( CE%sT 1945 --1 @ CE%sT 1980 S 28 2s --1 O CE%sT --R [ 1917 1919 - F 19 23 1 - --R [ 1917 o - O 21 1 0 - --R [ 1918 1919 - N 16 1 0 - --R [ 1921 o - Mar 19 23 1 - --R [ 1921 o - Jun 23 1 0 - --R [ 1939 o - Ap 29 23 1 - --R [ 1939 o - O 29 2 0 - --R [ 1940 o - F 25 2 1 - --R [ 1940 1941 - N Sun>=2 1s 0 - --R [ 1941 1942 - Mar Sun>=2 1s 1 - --R [ 1943 1946 - Mar Sun>=1 1s 1 - --R [ 1942 1948 - O Sun>=22 1s 0 - --R [ 1947 1967 - Ap Sun>=1 1s 1 - --R [ 1949 o - O 30 1s 0 - --R [ 1950 1966 - O Sun>=22 1s 0 - --R [ 1967 o - O 29 1s 0 - -+1 c CE%sT 1918 -+1 h CE%sT 1941 Ap 8 -+1 c CE%sT 1945 -+1 h CE%sT 1980 S 28 2s -+1 E CE%sT -+R w 1917 1919 - F 19 23 1 - -+R w 1917 o - O 21 1 0 - -+R w 1918 1919 - N 16 1 0 - -+R w 1921 o - Mar 19 23 1 - -+R w 1921 o - Jun 23 1 0 - -+R w 1939 o - Ap 29 23 1 - -+R w 1939 o - O 29 2 0 - -+R w 1940 o - F 25 2 1 - -+R w 1940 1941 - N Sun>=2 1s 0 - -+R w 1941 1942 - Mar Sun>=2 1s 1 - -+R w 1943 1946 - Mar Sun>=1 1s 1 - -+R w 1942 1948 - O Sun>=22 1s 0 - -+R w 1947 1967 - Ap Sun>=1 1s 1 - -+R w 1949 o - O 30 1s 0 - -+R w 1950 1966 - O Sun>=22 1s 0 - -+R w 1967 o - O 29 1s 0 - - Z Atlantic/Reykjavik -1:28 - LMT 1908 ---1 [ -01/+00 1968 Ap 7 1s -+-1 w -01/+00 1968 Ap 7 1s - 0 - GMT --R \ 1916 o - Jun 3 24 1 S --R \ 1916 1917 - S 30 24 0 - --R \ 1917 o - Mar 31 24 1 S --R \ 1918 o - Mar 9 24 1 S --R \ 1918 o - O 6 24 0 - --R \ 1919 o - Mar 1 24 1 S --R \ 1919 o - O 4 24 0 - --R \ 1920 o - Mar 20 24 1 S --R \ 1920 o - S 18 24 0 - --R \ 1940 o - Jun 14 24 1 S --R \ 1942 o - N 2 2s 0 - --R \ 1943 o - Mar 29 2s 1 S --R \ 1943 o - O 4 2s 0 - --R \ 1944 o - Ap 2 2s 1 S --R \ 1944 o - S 17 2s 0 - --R \ 1945 o - Ap 2 2 1 S --R \ 1945 o - S 15 1 0 - --R \ 1946 o - Mar 17 2s 1 S --R \ 1946 o - O 6 2s 0 - --R \ 1947 o - Mar 16 0s 1 S --R \ 1947 o - O 5 0s 0 - --R \ 1948 o - F 29 2s 1 S --R \ 1948 o - O 3 2s 0 - --R \ 1966 1968 - May Sun>=22 0s 1 S --R \ 1966 o - S 24 24 0 - --R \ 1967 1969 - S Sun>=22 0s 0 - --R \ 1969 o - Jun 1 0s 1 S --R \ 1970 o - May 31 0s 1 S --R \ 1970 o - S lastSun 0s 0 - --R \ 1971 1972 - May Sun>=22 0s 1 S --R \ 1971 o - S lastSun 0s 0 - --R \ 1972 o - O 1 0s 0 - --R \ 1973 o - Jun 3 0s 1 S --R \ 1973 1974 - S lastSun 0s 0 - --R \ 1974 o - May 26 0s 1 S --R \ 1975 o - Jun 1 0s 1 S --R \ 1975 1977 - S lastSun 0s 0 - --R \ 1976 o - May 30 0s 1 S --R \ 1977 1979 - May Sun>=22 0s 1 S --R \ 1978 o - O 1 0s 0 - --R \ 1979 o - S 30 0s 0 - -+R I 1916 o - Jun 3 24 1 S -+R I 1916 1917 - S 30 24 0 - -+R I 1917 o - Mar 31 24 1 S -+R I 1918 o - Mar 9 24 1 S -+R I 1918 o - O 6 24 0 - -+R I 1919 o - Mar 1 24 1 S -+R I 1919 o - O 4 24 0 - -+R I 1920 o - Mar 20 24 1 S -+R I 1920 o - S 18 24 0 - -+R I 1940 o - Jun 14 24 1 S -+R I 1942 o - N 2 2s 0 - -+R I 1943 o - Mar 29 2s 1 S -+R I 1943 o - O 4 2s 0 - -+R I 1944 o - Ap 2 2s 1 S -+R I 1944 o - S 17 2s 0 - -+R I 1945 o - Ap 2 2 1 S -+R I 1945 o - S 15 1 0 - -+R I 1946 o - Mar 17 2s 1 S -+R I 1946 o - O 6 2s 0 - -+R I 1947 o - Mar 16 0s 1 S -+R I 1947 o - O 5 0s 0 - -+R I 1948 o - F 29 2s 1 S -+R I 1948 o - O 3 2s 0 - -+R I 1966 1968 - May Sun>=22 0s 1 S -+R I 1966 o - S 24 24 0 - -+R I 1967 1969 - S Sun>=22 0s 0 - -+R I 1969 o - Jun 1 0s 1 S -+R I 1970 o - May 31 0s 1 S -+R I 1970 o - S lastSun 0s 0 - -+R I 1971 1972 - May Sun>=22 0s 1 S -+R I 1971 o - S lastSun 0s 0 - -+R I 1972 o - O 1 0s 0 - -+R I 1973 o - Jun 3 0s 1 S -+R I 1973 1974 - S lastSun 0s 0 - -+R I 1974 o - May 26 0s 1 S -+R I 1975 o - Jun 1 0s 1 S -+R I 1975 1977 - S lastSun 0s 0 - -+R I 1976 o - May 30 0s 1 S -+R I 1977 1979 - May Sun>=22 0s 1 S -+R I 1978 o - O 1 0s 0 - -+R I 1979 o - S 30 0s 0 - - Z Europe/Rome 0:49:56 - LMT 1866 S 22 - 0:49:56 - RMT 1893 O 31 23:49:56 --1 \ CE%sT 1943 S 10 --1 ( CE%sT 1944 Jun 4 --1 \ CE%sT 1980 --1 O CE%sT -+1 I CE%sT 1943 S 10 -+1 c CE%sT 1944 Jun 4 -+1 I CE%sT 1980 -+1 E CE%sT - Li Europe/Rome Europe/Vatican - Li Europe/Rome Europe/San_Marino --R ] 1989 1996 - Mar lastSun 2s 1 S --R ] 1989 1996 - S lastSun 2s 0 - -+R LV 1989 1996 - Mar lastSun 2s 1 S -+R LV 1989 1996 - S lastSun 2s 0 - - Z Europe/Riga 1:36:34 - LMT 1880 - 1:36:34 - RMT 1918 Ap 15 2 - 1:36:34 1 LST 1918 S 16 3 -@@ -1883,13 +1907,13 @@ Z Europe/Riga 1:36:34 - LMT 1880 - 1:36:34 - RMT 1926 May 11 - 2 - EET 1940 Au 5 - 3 - MSK 1941 Jul --1 ( CE%sT 1944 O 13 --3 M MSK/MSD 1989 Mar lastSun 2s -+1 c CE%sT 1944 O 13 -+3 R MSK/MSD 1989 Mar lastSun 2s - 2 1 EEST 1989 S lastSun 2s --2 ] EE%sT 1997 Ja 21 --2 O EE%sT 2000 F 29 -+2 LV EE%sT 1997 Ja 21 -+2 E EE%sT 2000 F 29 - 2 - EET 2001 Ja 2 --2 O EE%sT -+2 E EE%sT - Li Europe/Zurich Europe/Vaduz - Z Europe/Vilnius 1:41:16 - LMT 1880 - 1:24 - WMT 1917 -@@ -1898,783 +1922,776 @@ Z Europe/Vilnius 1:41:16 - LMT 1880 - 2 - EET 1920 O 9 - 1 - CET 1940 Au 3 - 3 - MSK 1941 Jun 24 --1 ( CE%sT 1944 Au --3 M MSK/MSD 1989 Mar 26 2s --2 M EE%sT 1991 S 29 2s --2 ( EE%sT 1998 -+1 c CE%sT 1944 Au -+3 R MSK/MSD 1989 Mar 26 2s -+2 R EE%sT 1991 S 29 2s -+2 c EE%sT 1998 - 2 - EET 1998 Mar 29 1u --1 O CE%sT 1999 O 31 1u -+1 E CE%sT 1999 O 31 1u - 2 - EET 2003 --2 O EE%sT --R ^ 1916 o - May 14 23 1 S --R ^ 1916 o - O 1 1 0 - --R ^ 1917 o - Ap 28 23 1 S --R ^ 1917 o - S 17 1 0 - --R ^ 1918 o - Ap M>=15 2s 1 S --R ^ 1918 o - S M>=15 2s 0 - --R ^ 1919 o - Mar 1 23 1 S --R ^ 1919 o - O 5 3 0 - --R ^ 1920 o - F 14 23 1 S --R ^ 1920 o - O 24 2 0 - --R ^ 1921 o - Mar 14 23 1 S --R ^ 1921 o - O 26 2 0 - --R ^ 1922 o - Mar 25 23 1 S --R ^ 1922 o - O Sun>=2 1 0 - --R ^ 1923 o - Ap 21 23 1 S --R ^ 1923 o - O Sun>=2 2 0 - --R ^ 1924 o - Mar 29 23 1 S --R ^ 1924 1928 - O Sun>=2 1 0 - --R ^ 1925 o - Ap 5 23 1 S --R ^ 1926 o - Ap 17 23 1 S --R ^ 1927 o - Ap 9 23 1 S --R ^ 1928 o - Ap 14 23 1 S --R ^ 1929 o - Ap 20 23 1 S -+2 E EE%sT -+R LX 1916 o - May 14 23 1 S -+R LX 1916 o - O 1 1 0 - -+R LX 1917 o - Ap 28 23 1 S -+R LX 1917 o - S 17 1 0 - -+R LX 1918 o - Ap M>=15 2s 1 S -+R LX 1918 o - S M>=15 2s 0 - -+R LX 1919 o - Mar 1 23 1 S -+R LX 1919 o - O 5 3 0 - -+R LX 1920 o - F 14 23 1 S -+R LX 1920 o - O 24 2 0 - -+R LX 1921 o - Mar 14 23 1 S -+R LX 1921 o - O 26 2 0 - -+R LX 1922 o - Mar 25 23 1 S -+R LX 1922 o - O Sun>=2 1 0 - -+R LX 1923 o - Ap 21 23 1 S -+R LX 1923 o - O Sun>=2 2 0 - -+R LX 1924 o - Mar 29 23 1 S -+R LX 1924 1928 - O Sun>=2 1 0 - -+R LX 1925 o - Ap 5 23 1 S -+R LX 1926 o - Ap 17 23 1 S -+R LX 1927 o - Ap 9 23 1 S -+R LX 1928 o - Ap 14 23 1 S -+R LX 1929 o - Ap 20 23 1 S - Z Europe/Luxembourg 0:24:36 - LMT 1904 Jun --1 ^ CE%sT 1918 N 25 --0 ^ WE%sT 1929 O 6 2s --0 + WE%sT 1940 May 14 3 --1 ( WE%sT 1944 S 18 3 --1 + CE%sT 1977 --1 O CE%sT --R _ 1973 o - Mar 31 0s 1 S --R _ 1973 o - S 29 0s 0 - --R _ 1974 o - Ap 21 0s 1 S --R _ 1974 o - S 16 0s 0 - --R _ 1975 1979 - Ap Sun>=15 2 1 S --R _ 1975 1980 - S Sun>=15 2 0 - --R _ 1980 o - Mar 31 2 1 S -+1 LX CE%sT 1918 N 25 -+0 LX WE%sT 1929 O 6 2s -+0 b WE%sT 1940 May 14 3 -+1 c WE%sT 1944 S 18 3 -+1 b CE%sT 1977 -+1 E CE%sT -+R MT 1973 o - Mar 31 0s 1 S -+R MT 1973 o - S 29 0s 0 - -+R MT 1974 o - Ap 21 0s 1 S -+R MT 1974 o - S 16 0s 0 - -+R MT 1975 1979 - Ap Sun>=15 2 1 S -+R MT 1975 1980 - S Sun>=15 2 0 - -+R MT 1980 o - Mar 31 2 1 S - Z Europe/Malta 0:58:4 - LMT 1893 N 2 0s --1 \ CE%sT 1973 Mar 31 --1 _ CE%sT 1981 --1 O CE%sT --R ` 1997 ma - Mar lastSun 2 1 S --R ` 1997 ma - O lastSun 3 0 - -+1 I CE%sT 1973 Mar 31 -+1 MT CE%sT 1981 -+1 E CE%sT -+R MD 1997 ma - Mar lastSun 2 1 S -+R MD 1997 ma - O lastSun 3 0 - - Z Europe/Chisinau 1:55:20 - LMT 1880 - 1:55 - CMT 1918 F 15 - 1:44:24 - BMT 1931 Jul 24 --2 { EE%sT 1940 Au 15 -+2 z EE%sT 1940 Au 15 - 2 1 EEST 1941 Jul 17 --1 ( CE%sT 1944 Au 24 --3 M MSK/MSD 1990 May 6 2 --2 M EE%sT 1992 --2 W EE%sT 1997 --2 ` EE%sT -+1 c CE%sT 1944 Au 24 -+3 R MSK/MSD 1990 May 6 2 -+2 R EE%sT 1992 -+2 e EE%sT 1997 -+2 MD EE%sT - Z Europe/Monaco 0:29:32 - LMT 1891 Mar 15 - 0:9:21 - PMT 1911 Mar 11 --0 < WE%sT 1945 S 16 3 --1 < CE%sT 1977 --1 O CE%sT --R | 1916 o - May 1 0 1 NST --R | 1916 o - O 1 0 0 AMT --R | 1917 o - Ap 16 2s 1 NST --R | 1917 o - S 17 2s 0 AMT --R | 1918 1921 - Ap M>=1 2s 1 NST --R | 1918 1921 - S lastM 2s 0 AMT --R | 1922 o - Mar lastSun 2s 1 NST --R | 1922 1936 - O Sun>=2 2s 0 AMT --R | 1923 o - Jun F>=1 2s 1 NST --R | 1924 o - Mar lastSun 2s 1 NST --R | 1925 o - Jun F>=1 2s 1 NST --R | 1926 1931 - May 15 2s 1 NST --R | 1932 o - May 22 2s 1 NST --R | 1933 1936 - May 15 2s 1 NST --R | 1937 o - May 22 2s 1 NST --R | 1937 o - Jul 1 0 1 S --R | 1937 1939 - O Sun>=2 2s 0 - --R | 1938 1939 - May 15 2s 1 S --R | 1945 o - Ap 2 2s 1 S --R | 1945 o - S 16 2s 0 - -+0 F WE%sT 1945 S 16 3 -+1 F CE%sT 1977 -+1 E CE%sT -+R N 1916 o - May 1 0 1 NST -+R N 1916 o - O 1 0 0 AMT -+R N 1917 o - Ap 16 2s 1 NST -+R N 1917 o - S 17 2s 0 AMT -+R N 1918 1921 - Ap M>=1 2s 1 NST -+R N 1918 1921 - S lastM 2s 0 AMT -+R N 1922 o - Mar lastSun 2s 1 NST -+R N 1922 1936 - O Sun>=2 2s 0 AMT -+R N 1923 o - Jun F>=1 2s 1 NST -+R N 1924 o - Mar lastSun 2s 1 NST -+R N 1925 o - Jun F>=1 2s 1 NST -+R N 1926 1931 - May 15 2s 1 NST -+R N 1932 o - May 22 2s 1 NST -+R N 1933 1936 - May 15 2s 1 NST -+R N 1937 o - May 22 2s 1 NST -+R N 1937 o - Jul 1 0 1 S -+R N 1937 1939 - O Sun>=2 2s 0 - -+R N 1938 1939 - May 15 2s 1 S -+R N 1945 o - Ap 2 2s 1 S -+R N 1945 o - S 16 2s 0 - - Z Europe/Amsterdam 0:19:32 - LMT 1835 --0:19:32 | %s 1937 Jul --0:20 | +0020/+0120 1940 May 16 --1 ( CE%sT 1945 Ap 2 2 --1 | CE%sT 1977 --1 O CE%sT --R } 1916 o - May 22 1 1 S --R } 1916 o - S 30 0 0 - --R } 1945 o - Ap 2 2s 1 S --R } 1945 o - O 1 2s 0 - --R } 1959 1964 - Mar Sun>=15 2s 1 S --R } 1959 1965 - S Sun>=15 2s 0 - --R } 1965 o - Ap 25 2s 1 S -+0:19:32 N %s 1937 Jul -+0:20 N +0020/+0120 1940 May 16 -+1 c CE%sT 1945 Ap 2 2 -+1 N CE%sT 1977 -+1 E CE%sT -+R NO 1916 o - May 22 1 1 S -+R NO 1916 o - S 30 0 0 - -+R NO 1945 o - Ap 2 2s 1 S -+R NO 1945 o - O 1 2s 0 - -+R NO 1959 1964 - Mar Sun>=15 2s 1 S -+R NO 1959 1965 - S Sun>=15 2s 0 - -+R NO 1965 o - Ap 25 2s 1 S - Z Europe/Oslo 0:43 - LMT 1895 --1 } CE%sT 1940 Au 10 23 --1 ( CE%sT 1945 Ap 2 2 --1 } CE%sT 1980 --1 O CE%sT -+1 NO CE%sT 1940 Au 10 23 -+1 c CE%sT 1945 Ap 2 2 -+1 NO CE%sT 1980 -+1 E CE%sT - Li Europe/Oslo Arctic/Longyearbyen --R ~ 1918 1919 - S 16 2s 0 - --R ~ 1919 o - Ap 15 2s 1 S --R ~ 1944 o - Ap 3 2s 1 S --R ~ 1944 o - O 4 2 0 - --R ~ 1945 o - Ap 29 0 1 S --R ~ 1945 o - N 1 0 0 - --R ~ 1946 o - Ap 14 0s 1 S --R ~ 1946 o - O 7 2s 0 - --R ~ 1947 o - May 4 2s 1 S --R ~ 1947 1949 - O Sun>=1 2s 0 - --R ~ 1948 o - Ap 18 2s 1 S --R ~ 1949 o - Ap 10 2s 1 S --R ~ 1957 o - Jun 2 1s 1 S --R ~ 1957 1958 - S lastSun 1s 0 - --R ~ 1958 o - Mar 30 1s 1 S --R ~ 1959 o - May 31 1s 1 S --R ~ 1959 1961 - O Sun>=1 1s 0 - --R ~ 1960 o - Ap 3 1s 1 S --R ~ 1961 1964 - May lastSun 1s 1 S --R ~ 1962 1964 - S lastSun 1s 0 - -+R O 1918 1919 - S 16 2s 0 - -+R O 1919 o - Ap 15 2s 1 S -+R O 1944 o - Ap 3 2s 1 S -+R O 1944 o - O 4 2 0 - -+R O 1945 o - Ap 29 0 1 S -+R O 1945 o - N 1 0 0 - -+R O 1946 o - Ap 14 0s 1 S -+R O 1946 o - O 7 2s 0 - -+R O 1947 o - May 4 2s 1 S -+R O 1947 1949 - O Sun>=1 2s 0 - -+R O 1948 o - Ap 18 2s 1 S -+R O 1949 o - Ap 10 2s 1 S -+R O 1957 o - Jun 2 1s 1 S -+R O 1957 1958 - S lastSun 1s 0 - -+R O 1958 o - Mar 30 1s 1 S -+R O 1959 o - May 31 1s 1 S -+R O 1959 1961 - O Sun>=1 1s 0 - -+R O 1960 o - Ap 3 1s 1 S -+R O 1961 1964 - May lastSun 1s 1 S -+R O 1962 1964 - S lastSun 1s 0 - - Z Europe/Warsaw 1:24 - LMT 1880 - 1:24 - WMT 1915 Au 5 --1 ( CE%sT 1918 S 16 3 --2 ~ EE%sT 1922 Jun --1 ~ CE%sT 1940 Jun 23 2 --1 ( CE%sT 1944 O --1 ~ CE%sT 1977 --1 ' CE%sT 1988 --1 O CE%sT --R AA 1916 o - Jun 17 23 1 S --R AA 1916 o - N 1 1 0 - --R AA 1917 o - F 28 23s 1 S --R AA 1917 1921 - O 14 23s 0 - --R AA 1918 o - Mar 1 23s 1 S --R AA 1919 o - F 28 23s 1 S --R AA 1920 o - F 29 23s 1 S --R AA 1921 o - F 28 23s 1 S --R AA 1924 o - Ap 16 23s 1 S --R AA 1924 o - O 14 23s 0 - --R AA 1926 o - Ap 17 23s 1 S --R AA 1926 1929 - O Sat>=1 23s 0 - --R AA 1927 o - Ap 9 23s 1 S --R AA 1928 o - Ap 14 23s 1 S --R AA 1929 o - Ap 20 23s 1 S --R AA 1931 o - Ap 18 23s 1 S --R AA 1931 1932 - O Sat>=1 23s 0 - --R AA 1932 o - Ap 2 23s 1 S --R AA 1934 o - Ap 7 23s 1 S --R AA 1934 1938 - O Sat>=1 23s 0 - --R AA 1935 o - Mar 30 23s 1 S --R AA 1936 o - Ap 18 23s 1 S --R AA 1937 o - Ap 3 23s 1 S --R AA 1938 o - Mar 26 23s 1 S --R AA 1939 o - Ap 15 23s 1 S --R AA 1939 o - N 18 23s 0 - --R AA 1940 o - F 24 23s 1 S --R AA 1940 1941 - O 5 23s 0 - --R AA 1941 o - Ap 5 23s 1 S --R AA 1942 1945 - Mar Sat>=8 23s 1 S --R AA 1942 o - Ap 25 22s 2 M --R AA 1942 o - Au 15 22s 1 S --R AA 1942 1945 - O Sat>=24 23s 0 - --R AA 1943 o - Ap 17 22s 2 M --R AA 1943 1945 - Au Sat>=25 22s 1 S --R AA 1944 1945 - Ap Sat>=21 22s 2 M --R AA 1946 o - Ap Sat>=1 23s 1 S --R AA 1946 o - O Sat>=1 23s 0 - --R AA 1947 1949 - Ap Sun>=1 2s 1 S --R AA 1947 1949 - O Sun>=1 2s 0 - --R AA 1951 1965 - Ap Sun>=1 2s 1 S --R AA 1951 1965 - O Sun>=1 2s 0 - --R AA 1977 o - Mar 27 0s 1 S --R AA 1977 o - S 25 0s 0 - --R AA 1978 1979 - Ap Sun>=1 0s 1 S --R AA 1978 o - O 1 0s 0 - --R AA 1979 1982 - S lastSun 1s 0 - --R AA 1980 o - Mar lastSun 0s 1 S --R AA 1981 1982 - Mar lastSun 1s 1 S --R AA 1983 o - Mar lastSun 2s 1 S -+1 c CE%sT 1918 S 16 3 -+2 O EE%sT 1922 Jun -+1 O CE%sT 1940 Jun 23 2 -+1 c CE%sT 1944 O -+1 O CE%sT 1977 -+1 W- CE%sT 1988 -+1 E CE%sT -+R p 1916 o - Jun 17 23 1 S -+R p 1916 o - N 1 1 0 - -+R p 1917 o - F 28 23s 1 S -+R p 1917 1921 - O 14 23s 0 - -+R p 1918 o - Mar 1 23s 1 S -+R p 1919 o - F 28 23s 1 S -+R p 1920 o - F 29 23s 1 S -+R p 1921 o - F 28 23s 1 S -+R p 1924 o - Ap 16 23s 1 S -+R p 1924 o - O 14 23s 0 - -+R p 1926 o - Ap 17 23s 1 S -+R p 1926 1929 - O Sat>=1 23s 0 - -+R p 1927 o - Ap 9 23s 1 S -+R p 1928 o - Ap 14 23s 1 S -+R p 1929 o - Ap 20 23s 1 S -+R p 1931 o - Ap 18 23s 1 S -+R p 1931 1932 - O Sat>=1 23s 0 - -+R p 1932 o - Ap 2 23s 1 S -+R p 1934 o - Ap 7 23s 1 S -+R p 1934 1938 - O Sat>=1 23s 0 - -+R p 1935 o - Mar 30 23s 1 S -+R p 1936 o - Ap 18 23s 1 S -+R p 1937 o - Ap 3 23s 1 S -+R p 1938 o - Mar 26 23s 1 S -+R p 1939 o - Ap 15 23s 1 S -+R p 1939 o - N 18 23s 0 - -+R p 1940 o - F 24 23s 1 S -+R p 1940 1941 - O 5 23s 0 - -+R p 1941 o - Ap 5 23s 1 S -+R p 1942 1945 - Mar Sat>=8 23s 1 S -+R p 1942 o - Ap 25 22s 2 M -+R p 1942 o - Au 15 22s 1 S -+R p 1942 1945 - O Sat>=24 23s 0 - -+R p 1943 o - Ap 17 22s 2 M -+R p 1943 1945 - Au Sat>=25 22s 1 S -+R p 1944 1945 - Ap Sat>=21 22s 2 M -+R p 1946 o - Ap Sat>=1 23s 1 S -+R p 1946 o - O Sat>=1 23s 0 - -+R p 1947 1949 - Ap Sun>=1 2s 1 S -+R p 1947 1949 - O Sun>=1 2s 0 - -+R p 1951 1965 - Ap Sun>=1 2s 1 S -+R p 1951 1965 - O Sun>=1 2s 0 - -+R p 1977 o - Mar 27 0s 1 S -+R p 1977 o - S 25 0s 0 - -+R p 1978 1979 - Ap Sun>=1 0s 1 S -+R p 1978 o - O 1 0s 0 - -+R p 1979 1982 - S lastSun 1s 0 - -+R p 1980 o - Mar lastSun 0s 1 S -+R p 1981 1982 - Mar lastSun 1s 1 S -+R p 1983 o - Mar lastSun 2s 1 S - Z Europe/Lisbon -0:36:45 - LMT 1884 - -0:36:45 - LMT 1912 Ja 1 0u --0 AA WE%sT 1966 Ap 3 2 -+0 p WE%sT 1966 Ap 3 2 - 1 - CET 1976 S 26 1 --0 AA WE%sT 1983 S 25 1s --0 ' WE%sT 1992 S 27 1s --1 O CE%sT 1996 Mar 31 1u --0 O WE%sT -+0 p WE%sT 1983 S 25 1s -+0 W- WE%sT 1992 S 27 1s -+1 E CE%sT 1996 Mar 31 1u -+0 E WE%sT - Z Atlantic/Azores -1:42:40 - LMT 1884 - -1:54:32 - HMT 1912 Ja 1 2u ---2 AA -02/-01 1942 Ap 25 22s ---2 AA +00 1942 Au 15 22s ---2 AA -02/-01 1943 Ap 17 22s ---2 AA +00 1943 Au 28 22s ---2 AA -02/-01 1944 Ap 22 22s ---2 AA +00 1944 Au 26 22s ---2 AA -02/-01 1945 Ap 21 22s ---2 AA +00 1945 Au 25 22s ---2 AA -02/-01 1966 Ap 3 2 ---1 AA -01/+00 1983 S 25 1s ---1 ' -01/+00 1992 S 27 1s --0 O WE%sT 1993 Mar 28 1u ---1 O -01/+00 -+-2 p -02/-01 1942 Ap 25 22s -+-2 p +00 1942 Au 15 22s -+-2 p -02/-01 1943 Ap 17 22s -+-2 p +00 1943 Au 28 22s -+-2 p -02/-01 1944 Ap 22 22s -+-2 p +00 1944 Au 26 22s -+-2 p -02/-01 1945 Ap 21 22s -+-2 p +00 1945 Au 25 22s -+-2 p -02/-01 1966 Ap 3 2 -+-1 p -01/+00 1983 S 25 1s -+-1 W- -01/+00 1992 S 27 1s -+0 E WE%sT 1993 Mar 28 1u -+-1 E -01/+00 - Z Atlantic/Madeira -1:7:36 - LMT 1884 - -1:7:36 - FMT 1912 Ja 1 1u ---1 AA -01/+00 1942 Ap 25 22s ---1 AA +01 1942 Au 15 22s ---1 AA -01/+00 1943 Ap 17 22s ---1 AA +01 1943 Au 28 22s ---1 AA -01/+00 1944 Ap 22 22s ---1 AA +01 1944 Au 26 22s ---1 AA -01/+00 1945 Ap 21 22s ---1 AA +01 1945 Au 25 22s ---1 AA -01/+00 1966 Ap 3 2 --0 AA WE%sT 1983 S 25 1s --0 O WE%sT --R { 1932 o - May 21 0s 1 S --R { 1932 1939 - O Sun>=1 0s 0 - --R { 1933 1939 - Ap Sun>=2 0s 1 S --R { 1979 o - May 27 0 1 S --R { 1979 o - S lastSun 0 0 - --R { 1980 o - Ap 5 23 1 S --R { 1980 o - S lastSun 1 0 - --R { 1991 1993 - Mar lastSun 0s 1 S --R { 1991 1993 - S lastSun 0s 0 - -+-1 p -01/+00 1942 Ap 25 22s -+-1 p +01 1942 Au 15 22s -+-1 p -01/+00 1943 Ap 17 22s -+-1 p +01 1943 Au 28 22s -+-1 p -01/+00 1944 Ap 22 22s -+-1 p +01 1944 Au 26 22s -+-1 p -01/+00 1945 Ap 21 22s -+-1 p +01 1945 Au 25 22s -+-1 p -01/+00 1966 Ap 3 2 -+0 p WE%sT 1983 S 25 1s -+0 E WE%sT -+R z 1932 o - May 21 0s 1 S -+R z 1932 1939 - O Sun>=1 0s 0 - -+R z 1933 1939 - Ap Sun>=2 0s 1 S -+R z 1979 o - May 27 0 1 S -+R z 1979 o - S lastSun 0 0 - -+R z 1980 o - Ap 5 23 1 S -+R z 1980 o - S lastSun 1 0 - -+R z 1991 1993 - Mar lastSun 0s 1 S -+R z 1991 1993 - S lastSun 0s 0 - - Z Europe/Bucharest 1:44:24 - LMT 1891 O - 1:44:24 - BMT 1931 Jul 24 --2 { EE%sT 1981 Mar 29 2s --2 ( EE%sT 1991 --2 { EE%sT 1994 --2 W EE%sT 1997 --2 O EE%sT -+2 z EE%sT 1981 Mar 29 2s -+2 c EE%sT 1991 -+2 z EE%sT 1994 -+2 e EE%sT 1997 -+2 E EE%sT - Z Europe/Kaliningrad 1:22 - LMT 1893 Ap --1 ( CE%sT 1945 --2 ~ CE%sT 1946 --3 M MSK/MSD 1989 Mar 26 2s --2 M EE%sT 2011 Mar 27 2s -+1 c CE%sT 1945 -+2 O CE%sT 1946 -+3 R MSK/MSD 1989 Mar 26 2s -+2 R EE%sT 2011 Mar 27 2s - 3 - +03 2014 O 26 2s - 2 - EET - Z Europe/Moscow 2:30:17 - LMT 1880 - 2:30:17 - MMT 1916 Jul 3 --2:31:19 M %s 1919 Jul 1 0u --3 M %s 1921 O --3 M MSK/MSD 1922 O -+2:31:19 R %s 1919 Jul 1 0u -+3 R %s 1921 O -+3 R MSK/MSD 1922 O - 2 - EET 1930 Jun 21 --3 M MSK/MSD 1991 Mar 31 2s --2 M EE%sT 1992 Ja 19 2s --3 M MSK/MSD 2011 Mar 27 2s -+3 R MSK/MSD 1991 Mar 31 2s -+2 R EE%sT 1992 Ja 19 2s -+3 R MSK/MSD 2011 Mar 27 2s - 4 - MSK 2014 O 26 2s - 3 - MSK - Z Europe/Simferopol 2:16:24 - LMT 1880 - 2:16 - SMT 1924 May 2 - 2 - EET 1930 Jun 21 - 3 - MSK 1941 N --1 ( CE%sT 1944 Ap 13 --3 M MSK/MSD 1990 -+1 c CE%sT 1944 Ap 13 -+3 R MSK/MSD 1990 - 3 - MSK 1990 Jul 1 2 - 2 - EET 1992 --2 W EE%sT 1994 May --3 W MSK/MSD 1996 Mar 31 0s -+2 e EE%sT 1994 May -+3 e MSK/MSD 1996 Mar 31 0s - 3 1 MSD 1996 O 27 3s --3 M MSK/MSD 1997 -+3 R MSK/MSD 1997 - 3 - MSK 1997 Mar lastSun 1u --2 O EE%sT 2014 Mar 30 2 -+2 E EE%sT 2014 Mar 30 2 - 4 - MSK 2014 O 26 2s - 3 - MSK - Z Europe/Astrakhan 3:12:12 - LMT 1924 May - 3 - +03 1930 Jun 21 --4 M +04/+05 1989 Mar 26 2s --3 M +03/+04 1991 Mar 31 2s -+4 R +04/+05 1989 Mar 26 2s -+3 R +03/+04 1991 Mar 31 2s - 4 - +04 1992 Mar 29 2s --3 M +03/+04 2011 Mar 27 2s -+3 R +03/+04 2011 Mar 27 2s - 4 - +04 2014 O 26 2s - 3 - +03 2016 Mar 27 2s - 4 - +04 - Z Europe/Volgograd 2:57:40 - LMT 1920 Ja 3 - 3 - +03 1930 Jun 21 - 4 - +04 1961 N 11 --4 M +04/+05 1988 Mar 27 2s --3 M +03/+04 1991 Mar 31 2s -+4 R +04/+05 1988 Mar 27 2s -+3 R +03/+04 1991 Mar 31 2s - 4 - +04 1992 Mar 29 2s --3 M +03/+04 2011 Mar 27 2s -+3 R +03/+04 2011 Mar 27 2s - 4 - +04 2014 O 26 2s --3 - +03 -+3 - +03 2018 O 28 2s -+4 - +04 - Z Europe/Saratov 3:4:18 - LMT 1919 Jul 1 0u - 3 - +03 1930 Jun 21 --4 M +04/+05 1988 Mar 27 2s --3 M +03/+04 1991 Mar 31 2s -+4 R +04/+05 1988 Mar 27 2s -+3 R +03/+04 1991 Mar 31 2s - 4 - +04 1992 Mar 29 2s --3 M +03/+04 2011 Mar 27 2s -+3 R +03/+04 2011 Mar 27 2s - 4 - +04 2014 O 26 2s - 3 - +03 2016 D 4 2s - 4 - +04 - Z Europe/Kirov 3:18:48 - LMT 1919 Jul 1 0u - 3 - +03 1930 Jun 21 --4 M +04/+05 1989 Mar 26 2s --3 M +03/+04 1991 Mar 31 2s -+4 R +04/+05 1989 Mar 26 2s -+3 R +03/+04 1991 Mar 31 2s - 4 - +04 1992 Mar 29 2s --3 M +03/+04 2011 Mar 27 2s -+3 R +03/+04 2011 Mar 27 2s - 4 - +04 2014 O 26 2s - 3 - +03 - Z Europe/Samara 3:20:20 - LMT 1919 Jul 1 0u - 3 - +03 1930 Jun 21 - 4 - +04 1935 Ja 27 --4 M +04/+05 1989 Mar 26 2s --3 M +03/+04 1991 Mar 31 2s --2 M +02/+03 1991 S 29 2s -+4 R +04/+05 1989 Mar 26 2s -+3 R +03/+04 1991 Mar 31 2s -+2 R +02/+03 1991 S 29 2s - 3 - +03 1991 O 20 3 --4 M +04/+05 2010 Mar 28 2s --3 M +03/+04 2011 Mar 27 2s -+4 R +04/+05 2010 Mar 28 2s -+3 R +03/+04 2011 Mar 27 2s - 4 - +04 - Z Europe/Ulyanovsk 3:13:36 - LMT 1919 Jul 1 0u - 3 - +03 1930 Jun 21 --4 M +04/+05 1989 Mar 26 2s --3 M +03/+04 1991 Mar 31 2s --2 M +02/+03 1992 Ja 19 2s --3 M +03/+04 2011 Mar 27 2s -+4 R +04/+05 1989 Mar 26 2s -+3 R +03/+04 1991 Mar 31 2s -+2 R +02/+03 1992 Ja 19 2s -+3 R +03/+04 2011 Mar 27 2s - 4 - +04 2014 O 26 2s - 3 - +03 2016 Mar 27 2s - 4 - +04 - Z Asia/Yekaterinburg 4:2:33 - LMT 1916 Jul 3 - 3:45:5 - PMT 1919 Jul 15 4 - 4 - +04 1930 Jun 21 --5 M +05/+06 1991 Mar 31 2s --4 M +04/+05 1992 Ja 19 2s --5 M +05/+06 2011 Mar 27 2s -+5 R +05/+06 1991 Mar 31 2s -+4 R +04/+05 1992 Ja 19 2s -+5 R +05/+06 2011 Mar 27 2s - 6 - +06 2014 O 26 2s - 5 - +05 - Z Asia/Omsk 4:53:30 - LMT 1919 N 14 - 5 - +05 1930 Jun 21 --6 M +06/+07 1991 Mar 31 2s --5 M +05/+06 1992 Ja 19 2s --6 M +06/+07 2011 Mar 27 2s -+6 R +06/+07 1991 Mar 31 2s -+5 R +05/+06 1992 Ja 19 2s -+6 R +06/+07 2011 Mar 27 2s - 7 - +07 2014 O 26 2s - 6 - +06 - Z Asia/Barnaul 5:35 - LMT 1919 D 10 - 6 - +06 1930 Jun 21 --7 M +07/+08 1991 Mar 31 2s --6 M +06/+07 1992 Ja 19 2s --7 M +07/+08 1995 May 28 --6 M +06/+07 2011 Mar 27 2s -+7 R +07/+08 1991 Mar 31 2s -+6 R +06/+07 1992 Ja 19 2s -+7 R +07/+08 1995 May 28 -+6 R +06/+07 2011 Mar 27 2s - 7 - +07 2014 O 26 2s - 6 - +06 2016 Mar 27 2s - 7 - +07 - Z Asia/Novosibirsk 5:31:40 - LMT 1919 D 14 6 - 6 - +06 1930 Jun 21 --7 M +07/+08 1991 Mar 31 2s --6 M +06/+07 1992 Ja 19 2s --7 M +07/+08 1993 May 23 --6 M +06/+07 2011 Mar 27 2s -+7 R +07/+08 1991 Mar 31 2s -+6 R +06/+07 1992 Ja 19 2s -+7 R +07/+08 1993 May 23 -+6 R +06/+07 2011 Mar 27 2s - 7 - +07 2014 O 26 2s - 6 - +06 2016 Jul 24 2s - 7 - +07 - Z Asia/Tomsk 5:39:51 - LMT 1919 D 22 - 6 - +06 1930 Jun 21 --7 M +07/+08 1991 Mar 31 2s --6 M +06/+07 1992 Ja 19 2s --7 M +07/+08 2002 May 1 3 --6 M +06/+07 2011 Mar 27 2s -+7 R +07/+08 1991 Mar 31 2s -+6 R +06/+07 1992 Ja 19 2s -+7 R +07/+08 2002 May 1 3 -+6 R +06/+07 2011 Mar 27 2s - 7 - +07 2014 O 26 2s - 6 - +06 2016 May 29 2s - 7 - +07 - Z Asia/Novokuznetsk 5:48:48 - LMT 1924 May - 6 - +06 1930 Jun 21 --7 M +07/+08 1991 Mar 31 2s --6 M +06/+07 1992 Ja 19 2s --7 M +07/+08 2010 Mar 28 2s --6 M +06/+07 2011 Mar 27 2s -+7 R +07/+08 1991 Mar 31 2s -+6 R +06/+07 1992 Ja 19 2s -+7 R +07/+08 2010 Mar 28 2s -+6 R +06/+07 2011 Mar 27 2s - 7 - +07 - Z Asia/Krasnoyarsk 6:11:26 - LMT 1920 Ja 6 - 6 - +06 1930 Jun 21 --7 M +07/+08 1991 Mar 31 2s --6 M +06/+07 1992 Ja 19 2s --7 M +07/+08 2011 Mar 27 2s -+7 R +07/+08 1991 Mar 31 2s -+6 R +06/+07 1992 Ja 19 2s -+7 R +07/+08 2011 Mar 27 2s - 8 - +08 2014 O 26 2s - 7 - +07 - Z Asia/Irkutsk 6:57:5 - LMT 1880 - 6:57:5 - IMT 1920 Ja 25 - 7 - +07 1930 Jun 21 --8 M +08/+09 1991 Mar 31 2s --7 M +07/+08 1992 Ja 19 2s --8 M +08/+09 2011 Mar 27 2s -+8 R +08/+09 1991 Mar 31 2s -+7 R +07/+08 1992 Ja 19 2s -+8 R +08/+09 2011 Mar 27 2s - 9 - +09 2014 O 26 2s - 8 - +08 - Z Asia/Chita 7:33:52 - LMT 1919 D 15 - 8 - +08 1930 Jun 21 --9 M +09/+10 1991 Mar 31 2s --8 M +08/+09 1992 Ja 19 2s --9 M +09/+10 2011 Mar 27 2s -+9 R +09/+10 1991 Mar 31 2s -+8 R +08/+09 1992 Ja 19 2s -+9 R +09/+10 2011 Mar 27 2s - 10 - +10 2014 O 26 2s - 8 - +08 2016 Mar 27 2 - 9 - +09 - Z Asia/Yakutsk 8:38:58 - LMT 1919 D 15 - 8 - +08 1930 Jun 21 --9 M +09/+10 1991 Mar 31 2s --8 M +08/+09 1992 Ja 19 2s --9 M +09/+10 2011 Mar 27 2s -+9 R +09/+10 1991 Mar 31 2s -+8 R +08/+09 1992 Ja 19 2s -+9 R +09/+10 2011 Mar 27 2s - 10 - +10 2014 O 26 2s - 9 - +09 - Z Asia/Vladivostok 8:47:31 - LMT 1922 N 15 - 9 - +09 1930 Jun 21 --10 M +10/+11 1991 Mar 31 2s --9 M +09/+10 1992 Ja 19 2s --10 M +10/+11 2011 Mar 27 2s -+10 R +10/+11 1991 Mar 31 2s -+9 R +09/+10 1992 Ja 19 2s -+10 R +10/+11 2011 Mar 27 2s - 11 - +11 2014 O 26 2s - 10 - +10 - Z Asia/Khandyga 9:2:13 - LMT 1919 D 15 - 8 - +08 1930 Jun 21 --9 M +09/+10 1991 Mar 31 2s --8 M +08/+09 1992 Ja 19 2s --9 M +09/+10 2004 --10 M +10/+11 2011 Mar 27 2s -+9 R +09/+10 1991 Mar 31 2s -+8 R +08/+09 1992 Ja 19 2s -+9 R +09/+10 2004 -+10 R +10/+11 2011 Mar 27 2s - 11 - +11 2011 S 13 0s - 10 - +10 2014 O 26 2s - 9 - +09 - Z Asia/Sakhalin 9:30:48 - LMT 1905 Au 23 - 9 - +09 1945 Au 25 --11 M +11/+12 1991 Mar 31 2s --10 M +10/+11 1992 Ja 19 2s --11 M +11/+12 1997 Mar lastSun 2s --10 M +10/+11 2011 Mar 27 2s -+11 R +11/+12 1991 Mar 31 2s -+10 R +10/+11 1992 Ja 19 2s -+11 R +11/+12 1997 Mar lastSun 2s -+10 R +10/+11 2011 Mar 27 2s - 11 - +11 2014 O 26 2s - 10 - +10 2016 Mar 27 2s - 11 - +11 - Z Asia/Magadan 10:3:12 - LMT 1924 May 2 - 10 - +10 1930 Jun 21 --11 M +11/+12 1991 Mar 31 2s --10 M +10/+11 1992 Ja 19 2s --11 M +11/+12 2011 Mar 27 2s -+11 R +11/+12 1991 Mar 31 2s -+10 R +10/+11 1992 Ja 19 2s -+11 R +11/+12 2011 Mar 27 2s - 12 - +12 2014 O 26 2s - 10 - +10 2016 Ap 24 2s - 11 - +11 - Z Asia/Srednekolymsk 10:14:52 - LMT 1924 May 2 - 10 - +10 1930 Jun 21 --11 M +11/+12 1991 Mar 31 2s --10 M +10/+11 1992 Ja 19 2s --11 M +11/+12 2011 Mar 27 2s -+11 R +11/+12 1991 Mar 31 2s -+10 R +10/+11 1992 Ja 19 2s -+11 R +11/+12 2011 Mar 27 2s - 12 - +12 2014 O 26 2s - 11 - +11 - Z Asia/Ust-Nera 9:32:54 - LMT 1919 D 15 - 8 - +08 1930 Jun 21 --9 M +09/+10 1981 Ap --11 M +11/+12 1991 Mar 31 2s --10 M +10/+11 1992 Ja 19 2s --11 M +11/+12 2011 Mar 27 2s -+9 R +09/+10 1981 Ap -+11 R +11/+12 1991 Mar 31 2s -+10 R +10/+11 1992 Ja 19 2s -+11 R +11/+12 2011 Mar 27 2s - 12 - +12 2011 S 13 0s - 11 - +11 2014 O 26 2s - 10 - +10 - Z Asia/Kamchatka 10:34:36 - LMT 1922 N 10 - 11 - +11 1930 Jun 21 --12 M +12/+13 1991 Mar 31 2s --11 M +11/+12 1992 Ja 19 2s --12 M +12/+13 2010 Mar 28 2s --11 M +11/+12 2011 Mar 27 2s -+12 R +12/+13 1991 Mar 31 2s -+11 R +11/+12 1992 Ja 19 2s -+12 R +12/+13 2010 Mar 28 2s -+11 R +11/+12 2011 Mar 27 2s - 12 - +12 - Z Asia/Anadyr 11:49:56 - LMT 1924 May 2 - 12 - +12 1930 Jun 21 --13 M +13/+14 1982 Ap 1 0s --12 M +12/+13 1991 Mar 31 2s --11 M +11/+12 1992 Ja 19 2s --12 M +12/+13 2010 Mar 28 2s --11 M +11/+12 2011 Mar 27 2s -+13 R +13/+14 1982 Ap 1 0s -+12 R +12/+13 1991 Mar 31 2s -+11 R +11/+12 1992 Ja 19 2s -+12 R +12/+13 2010 Mar 28 2s -+11 R +11/+12 2011 Mar 27 2s - 12 - +12 - Z Europe/Belgrade 1:22 - LMT 1884 - 1 - CET 1941 Ap 18 23 --1 ( CE%sT 1945 -+1 c CE%sT 1945 - 1 - CET 1945 May 8 2s - 1 1 CEST 1945 S 16 2s - 1 - CET 1982 N 27 --1 O CE%sT -+1 E CE%sT - Li Europe/Belgrade Europe/Ljubljana - Li Europe/Belgrade Europe/Podgorica - Li Europe/Belgrade Europe/Sarajevo - Li Europe/Belgrade Europe/Skopje - Li Europe/Belgrade Europe/Zagreb - Li Europe/Prague Europe/Bratislava --R AB 1918 o - Ap 15 23 1 S --R AB 1918 1919 - O 6 24s 0 - --R AB 1919 o - Ap 6 23 1 S --R AB 1924 o - Ap 16 23 1 S --R AB 1924 o - O 4 24s 0 - --R AB 1926 o - Ap 17 23 1 S --R AB 1926 1929 - O Sat>=1 24s 0 - --R AB 1927 o - Ap 9 23 1 S --R AB 1928 o - Ap 15 0 1 S --R AB 1929 o - Ap 20 23 1 S --R AB 1937 o - Jun 16 23 1 S --R AB 1937 o - O 2 24s 0 - --R AB 1938 o - Ap 2 23 1 S --R AB 1938 o - Ap 30 23 2 M --R AB 1938 o - O 2 24 1 S --R AB 1939 o - O 7 24s 0 - --R AB 1942 o - May 2 23 1 S --R AB 1942 o - S 1 1 0 - --R AB 1943 1946 - Ap Sat>=13 23 1 S --R AB 1943 1944 - O Sun>=1 1 0 - --R AB 1945 1946 - S lastSun 1 0 - --R AB 1949 o - Ap 30 23 1 S --R AB 1949 o - O 2 1 0 - --R AB 1974 1975 - Ap Sat>=12 23 1 S --R AB 1974 1975 - O Sun>=1 1 0 - --R AB 1976 o - Mar 27 23 1 S --R AB 1976 1977 - S lastSun 1 0 - --R AB 1977 o - Ap 2 23 1 S --R AB 1978 o - Ap 2 2s 1 S --R AB 1978 o - O 1 2s 0 - --R AC 1967 o - Jun 3 12 1 S --R AC 1967 o - O 1 0 0 - --R AC 1974 o - Jun 24 0 1 S --R AC 1974 o - S 1 0 0 - --R AC 1976 1977 - May 1 0 1 S --R AC 1976 o - Au 1 0 0 - --R AC 1977 o - S 28 0 0 - --R AC 1978 o - Jun 1 0 1 S --R AC 1978 o - Au 4 0 0 - -+R s 1918 o - Ap 15 23 1 S -+R s 1918 1919 - O 6 24s 0 - -+R s 1919 o - Ap 6 23 1 S -+R s 1924 o - Ap 16 23 1 S -+R s 1924 o - O 4 24s 0 - -+R s 1926 o - Ap 17 23 1 S -+R s 1926 1929 - O Sat>=1 24s 0 - -+R s 1927 o - Ap 9 23 1 S -+R s 1928 o - Ap 15 0 1 S -+R s 1929 o - Ap 20 23 1 S -+R s 1937 o - Jun 16 23 1 S -+R s 1937 o - O 2 24s 0 - -+R s 1938 o - Ap 2 23 1 S -+R s 1938 o - Ap 30 23 2 M -+R s 1938 o - O 2 24 1 S -+R s 1939 o - O 7 24s 0 - -+R s 1942 o - May 2 23 1 S -+R s 1942 o - S 1 1 0 - -+R s 1943 1946 - Ap Sat>=13 23 1 S -+R s 1943 1944 - O Sun>=1 1 0 - -+R s 1945 1946 - S lastSun 1 0 - -+R s 1949 o - Ap 30 23 1 S -+R s 1949 o - O 2 1 0 - -+R s 1974 1975 - Ap Sat>=12 23 1 S -+R s 1974 1975 - O Sun>=1 1 0 - -+R s 1976 o - Mar 27 23 1 S -+R s 1976 1977 - S lastSun 1 0 - -+R s 1977 o - Ap 2 23 1 S -+R s 1978 o - Ap 2 2s 1 S -+R s 1978 o - O 1 2s 0 - - Z Europe/Madrid -0:14:44 - LMT 1900 D 31 23:45:16 --0 AB WE%sT 1940 Mar 16 23 --1 AB CE%sT 1979 --1 O CE%sT -+0 s WE%sT 1940 Mar 16 23 -+1 s CE%sT 1979 -+1 E CE%sT - Z Africa/Ceuta -0:21:16 - LMT 1900 D 31 23:38:44 - 0 - WET 1918 May 6 23 - 0 1 WEST 1918 O 7 23 - 0 - WET 1924 --0 AB WE%sT 1929 --0 AC WE%sT 1984 Mar 16 -+0 s WE%sT 1929 -+0 - WET 1967 -+0 M WE%sT 1984 Mar 16 - 1 - CET 1986 --1 O CE%sT -+1 E CE%sT - Z Atlantic/Canary -1:1:36 - LMT 1922 Mar - -1 - -01 1946 S 30 1 - 0 - WET 1980 Ap 6 0s - 0 1 WEST 1980 S 28 1u --0 O WE%sT -+0 E WE%sT - Z Europe/Stockholm 1:12:12 - LMT 1879 - 1:0:14 - SET 1900 - 1 - CET 1916 May 14 23 - 1 1 CEST 1916 O 1 1 - 1 - CET 1980 --1 O CE%sT --R AD 1941 1942 - May M>=1 1 1 S --R AD 1941 1942 - O M>=1 2 0 - -+1 E CE%sT -+R CH 1941 1942 - May M>=1 1 1 S -+R CH 1941 1942 - O M>=1 2 0 - - Z Europe/Zurich 0:34:8 - LMT 1853 Jul 16 - 0:29:46 - BMT 1894 Jun --1 AD CE%sT 1981 --1 O CE%sT --R AE 1916 o - May 1 0 1 S --R AE 1916 o - O 1 0 0 - --R AE 1920 o - Mar 28 0 1 S --R AE 1920 o - O 25 0 0 - --R AE 1921 o - Ap 3 0 1 S --R AE 1921 o - O 3 0 0 - --R AE 1922 o - Mar 26 0 1 S --R AE 1922 o - O 8 0 0 - --R AE 1924 o - May 13 0 1 S --R AE 1924 1925 - O 1 0 0 - --R AE 1925 o - May 1 0 1 S --R AE 1940 o - Jun 30 0 1 S --R AE 1940 o - O 5 0 0 - --R AE 1940 o - D 1 0 1 S --R AE 1941 o - S 21 0 0 - --R AE 1942 o - Ap 1 0 1 S --R AE 1942 o - N 1 0 0 - --R AE 1945 o - Ap 2 0 1 S --R AE 1945 o - O 8 0 0 - --R AE 1946 o - Jun 1 0 1 S --R AE 1946 o - O 1 0 0 - --R AE 1947 1948 - Ap Sun>=16 0 1 S --R AE 1947 1950 - O Sun>=2 0 0 - --R AE 1949 o - Ap 10 0 1 S --R AE 1950 o - Ap 19 0 1 S --R AE 1951 o - Ap 22 0 1 S --R AE 1951 o - O 8 0 0 - --R AE 1962 o - Jul 15 0 1 S --R AE 1962 o - O 8 0 0 - --R AE 1964 o - May 15 0 1 S --R AE 1964 o - O 1 0 0 - --R AE 1970 1972 - May Sun>=2 0 1 S --R AE 1970 1972 - O Sun>=2 0 0 - --R AE 1973 o - Jun 3 1 1 S --R AE 1973 o - N 4 3 0 - --R AE 1974 o - Mar 31 2 1 S --R AE 1974 o - N 3 5 0 - --R AE 1975 o - Mar 30 0 1 S --R AE 1975 1976 - O lastSun 0 0 - --R AE 1976 o - Jun 1 0 1 S --R AE 1977 1978 - Ap Sun>=1 0 1 S --R AE 1977 o - O 16 0 0 - --R AE 1979 1980 - Ap Sun>=1 3 1 S --R AE 1979 1982 - O M>=11 0 0 - --R AE 1981 1982 - Mar lastSun 3 1 S --R AE 1983 o - Jul 31 0 1 S --R AE 1983 o - O 2 0 0 - --R AE 1985 o - Ap 20 0 1 S --R AE 1985 o - S 28 0 0 - --R AE 1986 1993 - Mar lastSun 1s 1 S --R AE 1986 1995 - S lastSun 1s 0 - --R AE 1994 o - Mar 20 1s 1 S --R AE 1995 2006 - Mar lastSun 1s 1 S --R AE 1996 2006 - O lastSun 1s 0 - -+1 CH CE%sT 1981 -+1 E CE%sT -+R T 1916 o - May 1 0 1 S -+R T 1916 o - O 1 0 0 - -+R T 1920 o - Mar 28 0 1 S -+R T 1920 o - O 25 0 0 - -+R T 1921 o - Ap 3 0 1 S -+R T 1921 o - O 3 0 0 - -+R T 1922 o - Mar 26 0 1 S -+R T 1922 o - O 8 0 0 - -+R T 1924 o - May 13 0 1 S -+R T 1924 1925 - O 1 0 0 - -+R T 1925 o - May 1 0 1 S -+R T 1940 o - Jun 30 0 1 S -+R T 1940 o - O 5 0 0 - -+R T 1940 o - D 1 0 1 S -+R T 1941 o - S 21 0 0 - -+R T 1942 o - Ap 1 0 1 S -+R T 1942 o - N 1 0 0 - -+R T 1945 o - Ap 2 0 1 S -+R T 1945 o - O 8 0 0 - -+R T 1946 o - Jun 1 0 1 S -+R T 1946 o - O 1 0 0 - -+R T 1947 1948 - Ap Sun>=16 0 1 S -+R T 1947 1950 - O Sun>=2 0 0 - -+R T 1949 o - Ap 10 0 1 S -+R T 1950 o - Ap 19 0 1 S -+R T 1951 o - Ap 22 0 1 S -+R T 1951 o - O 8 0 0 - -+R T 1962 o - Jul 15 0 1 S -+R T 1962 o - O 8 0 0 - -+R T 1964 o - May 15 0 1 S -+R T 1964 o - O 1 0 0 - -+R T 1970 1972 - May Sun>=2 0 1 S -+R T 1970 1972 - O Sun>=2 0 0 - -+R T 1973 o - Jun 3 1 1 S -+R T 1973 o - N 4 3 0 - -+R T 1974 o - Mar 31 2 1 S -+R T 1974 o - N 3 5 0 - -+R T 1975 o - Mar 30 0 1 S -+R T 1975 1976 - O lastSun 0 0 - -+R T 1976 o - Jun 1 0 1 S -+R T 1977 1978 - Ap Sun>=1 0 1 S -+R T 1977 o - O 16 0 0 - -+R T 1979 1980 - Ap Sun>=1 3 1 S -+R T 1979 1982 - O M>=11 0 0 - -+R T 1981 1982 - Mar lastSun 3 1 S -+R T 1983 o - Jul 31 0 1 S -+R T 1983 o - O 2 0 0 - -+R T 1985 o - Ap 20 0 1 S -+R T 1985 o - S 28 0 0 - -+R T 1986 1993 - Mar lastSun 1s 1 S -+R T 1986 1995 - S lastSun 1s 0 - -+R T 1994 o - Mar 20 1s 1 S -+R T 1995 2006 - Mar lastSun 1s 1 S -+R T 1996 2006 - O lastSun 1s 0 - - Z Europe/Istanbul 1:55:52 - LMT 1880 - 1:56:56 - IMT 1910 O --2 AE EE%sT 1978 O 15 --3 AE +03/+04 1985 Ap 20 --2 AE EE%sT 2007 --2 O EE%sT 2011 Mar 27 1u -+2 T EE%sT 1978 O 15 -+3 T +03/+04 1985 Ap 20 -+2 T EE%sT 2007 -+2 E EE%sT 2011 Mar 27 1u - 2 - EET 2011 Mar 28 1u --2 O EE%sT 2014 Mar 30 1u -+2 E EE%sT 2014 Mar 30 1u - 2 - EET 2014 Mar 31 1u --2 O EE%sT 2015 O 25 1u -+2 E EE%sT 2015 O 25 1u - 2 1 EEST 2015 N 8 1u --2 O EE%sT 2016 S 7 -+2 E EE%sT 2016 S 7 - 3 - +03 - Li Europe/Istanbul Asia/Istanbul - Z Europe/Kiev 2:2:4 - LMT 1880 - 2:2:4 - KMT 1924 May 2 - 2 - EET 1930 Jun 21 - 3 - MSK 1941 S 20 --1 ( CE%sT 1943 N 6 --3 M MSK/MSD 1990 Jul 1 2 -+1 c CE%sT 1943 N 6 -+3 R MSK/MSD 1990 Jul 1 2 - 2 1 EEST 1991 S 29 3 --2 W EE%sT 1995 --2 O EE%sT -+2 e EE%sT 1995 -+2 E EE%sT - Z Europe/Uzhgorod 1:29:12 - LMT 1890 O - 1 - CET 1940 --1 ( CE%sT 1944 O -+1 c CE%sT 1944 O - 1 1 CEST 1944 O 26 - 1 - CET 1945 Jun 29 --3 M MSK/MSD 1990 -+3 R MSK/MSD 1990 - 3 - MSK 1990 Jul 1 2 - 1 - CET 1991 Mar 31 3 - 2 - EET 1992 --2 W EE%sT 1995 --2 O EE%sT -+2 e EE%sT 1995 -+2 E EE%sT - Z Europe/Zaporozhye 2:20:40 - LMT 1880 - 2:20 - +0220 1924 May 2 - 2 - EET 1930 Jun 21 - 3 - MSK 1941 Au 25 --1 ( CE%sT 1943 O 25 --3 M MSK/MSD 1991 Mar 31 2 --2 W EE%sT 1995 --2 O EE%sT --R AF 1918 1919 - Mar lastSun 2 1 D --R AF 1918 1919 - O lastSun 2 0 S --R AF 1942 o - F 9 2 1 W --R AF 1945 o - Au 14 23u 1 P --R AF 1945 o - S lastSun 2 0 S --R AF 1967 2006 - O lastSun 2 0 S --R AF 1967 1973 - Ap lastSun 2 1 D --R AF 1974 o - Ja 6 2 1 D --R AF 1975 o - F 23 2 1 D --R AF 1976 1986 - Ap lastSun 2 1 D --R AF 1987 2006 - Ap Sun>=1 2 1 D --R AF 2007 ma - Mar Sun>=8 2 1 D --R AF 2007 ma - N Sun>=1 2 0 S -+1 c CE%sT 1943 O 25 -+3 R MSK/MSD 1991 Mar 31 2 -+2 e EE%sT 1995 -+2 E EE%sT -+R u 1918 1919 - Mar lastSun 2 1 D -+R u 1918 1919 - O lastSun 2 0 S -+R u 1942 o - F 9 2 1 W -+R u 1945 o - Au 14 23u 1 P -+R u 1945 o - S lastSun 2 0 S -+R u 1967 2006 - O lastSun 2 0 S -+R u 1967 1973 - Ap lastSun 2 1 D -+R u 1974 o - Ja 6 2 1 D -+R u 1975 o - F 23 2 1 D -+R u 1976 1986 - Ap lastSun 2 1 D -+R u 1987 2006 - Ap Sun>=1 2 1 D -+R u 2007 ma - Mar Sun>=8 2 1 D -+R u 2007 ma - N Sun>=1 2 0 S - Z EST -5 - EST - Z MST -7 - MST - Z HST -10 - HST --Z EST5EDT -5 AF E%sT --Z CST6CDT -6 AF C%sT --Z MST7MDT -7 AF M%sT --Z PST8PDT -8 AF P%sT --R AG 1920 o - Mar lastSun 2 1 D --R AG 1920 o - O lastSun 2 0 S --R AG 1921 1966 - Ap lastSun 2 1 D --R AG 1921 1954 - S lastSun 2 0 S --R AG 1955 1966 - O lastSun 2 0 S -+Z EST5EDT -5 u E%sT -+Z CST6CDT -6 u C%sT -+Z MST7MDT -7 u M%sT -+Z PST8PDT -8 u P%sT -+R NY 1920 o - Mar lastSun 2 1 D -+R NY 1920 o - O lastSun 2 0 S -+R NY 1921 1966 - Ap lastSun 2 1 D -+R NY 1921 1954 - S lastSun 2 0 S -+R NY 1955 1966 - O lastSun 2 0 S - Z America/New_York -4:56:2 - LMT 1883 N 18 12:3:58 ---5 AF E%sT 1920 ---5 AG E%sT 1942 ---5 AF E%sT 1946 ---5 AG E%sT 1967 ---5 AF E%sT --R AH 1920 o - Jun 13 2 1 D --R AH 1920 1921 - O lastSun 2 0 S --R AH 1921 o - Mar lastSun 2 1 D --R AH 1922 1966 - Ap lastSun 2 1 D --R AH 1922 1954 - S lastSun 2 0 S --R AH 1955 1966 - O lastSun 2 0 S -+-5 u E%sT 1920 -+-5 NY E%sT 1942 -+-5 u E%sT 1946 -+-5 NY E%sT 1967 -+-5 u E%sT -+R Ch 1920 o - Jun 13 2 1 D -+R Ch 1920 1921 - O lastSun 2 0 S -+R Ch 1921 o - Mar lastSun 2 1 D -+R Ch 1922 1966 - Ap lastSun 2 1 D -+R Ch 1922 1954 - S lastSun 2 0 S -+R Ch 1955 1966 - O lastSun 2 0 S - Z America/Chicago -5:50:36 - LMT 1883 N 18 12:9:24 ---6 AF C%sT 1920 ---6 AH C%sT 1936 Mar 1 2 -+-6 u C%sT 1920 -+-6 Ch C%sT 1936 Mar 1 2 - -5 - EST 1936 N 15 2 ---6 AH C%sT 1942 ---6 AF C%sT 1946 ---6 AH C%sT 1967 ---6 AF C%sT -+-6 Ch C%sT 1942 -+-6 u C%sT 1946 -+-6 Ch C%sT 1967 -+-6 u C%sT - Z America/North_Dakota/Center -6:45:12 - LMT 1883 N 18 12:14:48 ---7 AF M%sT 1992 O 25 2 ---6 AF C%sT -+-7 u M%sT 1992 O 25 2 -+-6 u C%sT - Z America/North_Dakota/New_Salem -6:45:39 - LMT 1883 N 18 12:14:21 ---7 AF M%sT 2003 O 26 2 ---6 AF C%sT -+-7 u M%sT 2003 O 26 2 -+-6 u C%sT - Z America/North_Dakota/Beulah -6:47:7 - LMT 1883 N 18 12:12:53 ---7 AF M%sT 2010 N 7 2 ---6 AF C%sT --R AI 1920 1921 - Mar lastSun 2 1 D --R AI 1920 o - O lastSun 2 0 S --R AI 1921 o - May 22 2 0 S --R AI 1965 1966 - Ap lastSun 2 1 D --R AI 1965 1966 - O lastSun 2 0 S -+-7 u M%sT 2010 N 7 2 -+-6 u C%sT -+R De 1920 1921 - Mar lastSun 2 1 D -+R De 1920 o - O lastSun 2 0 S -+R De 1921 o - May 22 2 0 S -+R De 1965 1966 - Ap lastSun 2 1 D -+R De 1965 1966 - O lastSun 2 0 S - Z America/Denver -6:59:56 - LMT 1883 N 18 12:0:4 ---7 AF M%sT 1920 ---7 AI M%sT 1942 ---7 AF M%sT 1946 ---7 AI M%sT 1967 ---7 AF M%sT --R AJ 1948 o - Mar 14 2:1 1 D --R AJ 1949 o - Ja 1 2 0 S --R AJ 1950 1966 - Ap lastSun 1 1 D --R AJ 1950 1961 - S lastSun 2 0 S --R AJ 1962 1966 - O lastSun 2 0 S -+-7 u M%sT 1920 -+-7 De M%sT 1942 -+-7 u M%sT 1946 -+-7 De M%sT 1967 -+-7 u M%sT -+R CA 1948 o - Mar 14 2:1 1 D -+R CA 1949 o - Ja 1 2 0 S -+R CA 1950 1966 - Ap lastSun 1 1 D -+R CA 1950 1961 - S lastSun 2 0 S -+R CA 1962 1966 - O lastSun 2 0 S - Z America/Los_Angeles -7:52:58 - LMT 1883 N 18 12:7:2 ---8 AF P%sT 1946 ---8 AJ P%sT 1967 ---8 AF P%sT -+-8 u P%sT 1946 -+-8 CA P%sT 1967 -+-8 u P%sT - Z America/Juneau 15:2:19 - LMT 1867 O 19 15:33:32 - -8:57:41 - LMT 1900 Au 20 12 - -8 - PST 1942 ---8 AF P%sT 1946 -+-8 u P%sT 1946 - -8 - PST 1969 ---8 AF P%sT 1980 Ap 27 2 ---9 AF Y%sT 1980 O 26 2 ---8 AF P%sT 1983 O 30 2 ---9 AF Y%sT 1983 N 30 ---9 AF AK%sT -+-8 u P%sT 1980 Ap 27 2 -+-9 u Y%sT 1980 O 26 2 -+-8 u P%sT 1983 O 30 2 -+-9 u Y%sT 1983 N 30 -+-9 u AK%sT - Z America/Sitka 14:58:47 - LMT 1867 O 19 15:30 - -9:1:13 - LMT 1900 Au 20 12 - -8 - PST 1942 ---8 AF P%sT 1946 -+-8 u P%sT 1946 - -8 - PST 1969 ---8 AF P%sT 1983 O 30 2 ---9 AF Y%sT 1983 N 30 ---9 AF AK%sT -+-8 u P%sT 1983 O 30 2 -+-9 u Y%sT 1983 N 30 -+-9 u AK%sT - Z America/Metlakatla 15:13:42 - LMT 1867 O 19 15:44:55 - -8:46:18 - LMT 1900 Au 20 12 - -8 - PST 1942 ---8 AF P%sT 1946 -+-8 u P%sT 1946 - -8 - PST 1969 ---8 AF P%sT 1983 O 30 2 -+-8 u P%sT 1983 O 30 2 - -8 - PST 2015 N 1 2 ---9 AF AK%sT -+-9 u AK%sT - Z America/Yakutat 14:41:5 - LMT 1867 O 19 15:12:18 - -9:18:55 - LMT 1900 Au 20 12 - -9 - YST 1942 ---9 AF Y%sT 1946 -+-9 u Y%sT 1946 - -9 - YST 1969 ---9 AF Y%sT 1983 N 30 ---9 AF AK%sT -+-9 u Y%sT 1983 N 30 -+-9 u AK%sT - Z America/Anchorage 14:0:24 - LMT 1867 O 19 14:31:37 - -9:59:36 - LMT 1900 Au 20 12 - -10 - AST 1942 ---10 AF A%sT 1967 Ap -+-10 u A%sT 1967 Ap - -10 - AHST 1969 ---10 AF AH%sT 1983 O 30 2 ---9 AF Y%sT 1983 N 30 ---9 AF AK%sT -+-10 u AH%sT 1983 O 30 2 -+-9 u Y%sT 1983 N 30 -+-9 u AK%sT - Z America/Nome 12:58:22 - LMT 1867 O 19 13:29:35 - -11:1:38 - LMT 1900 Au 20 12 - -11 - NST 1942 ---11 AF N%sT 1946 -+-11 u N%sT 1946 - -11 - NST 1967 Ap - -11 - BST 1969 ---11 AF B%sT 1983 O 30 2 ---9 AF Y%sT 1983 N 30 ---9 AF AK%sT -+-11 u B%sT 1983 O 30 2 -+-9 u Y%sT 1983 N 30 -+-9 u AK%sT - Z America/Adak 12:13:22 - LMT 1867 O 19 12:44:35 - -11:46:38 - LMT 1900 Au 20 12 - -11 - NST 1942 ---11 AF N%sT 1946 -+-11 u N%sT 1946 - -11 - NST 1967 Ap - -11 - BST 1969 ---11 AF B%sT 1983 O 30 2 ---10 AF AH%sT 1983 N 30 ---10 AF H%sT -+-11 u B%sT 1983 O 30 2 -+-10 u AH%sT 1983 N 30 -+-10 u H%sT - Z Pacific/Honolulu -10:31:26 - LMT 1896 Ja 13 12 - -10:30 - HST 1933 Ap 30 2 - -10:30 1 HDT 1933 May 21 12 -@@ -2683,531 +2700,531 @@ Z Pacific/Honolulu -10:31:26 - LMT 1896 Ja 13 12 - -10:30 - HST 1947 Jun 8 2 - -10 - HST - Z America/Phoenix -7:28:18 - LMT 1883 N 18 11:31:42 ---7 AF M%sT 1944 Ja 1 0:1 -+-7 u M%sT 1944 Ja 1 0:1 - -7 - MST 1944 Ap 1 0:1 ---7 AF M%sT 1944 O 1 0:1 -+-7 u M%sT 1944 O 1 0:1 - -7 - MST 1967 ---7 AF M%sT 1968 Mar 21 -+-7 u M%sT 1968 Mar 21 - -7 - MST - Z America/Boise -7:44:49 - LMT 1883 N 18 12:15:11 ---8 AF P%sT 1923 May 13 2 ---7 AF M%sT 1974 -+-8 u P%sT 1923 May 13 2 -+-7 u M%sT 1974 - -7 - MST 1974 F 3 2 ---7 AF M%sT --R AK 1941 o - Jun 22 2 1 D --R AK 1941 1954 - S lastSun 2 0 S --R AK 1946 1954 - Ap lastSun 2 1 D -+-7 u M%sT -+R In 1941 o - Jun 22 2 1 D -+R In 1941 1954 - S lastSun 2 0 S -+R In 1946 1954 - Ap lastSun 2 1 D - Z America/Indiana/Indianapolis -5:44:38 - LMT 1883 N 18 12:15:22 ---6 AF C%sT 1920 ---6 AK C%sT 1942 ---6 AF C%sT 1946 ---6 AK C%sT 1955 Ap 24 2 -+-6 u C%sT 1920 -+-6 In C%sT 1942 -+-6 u C%sT 1946 -+-6 In C%sT 1955 Ap 24 2 - -5 - EST 1957 S 29 2 - -6 - CST 1958 Ap 27 2 - -5 - EST 1969 ---5 AF E%sT 1971 -+-5 u E%sT 1971 - -5 - EST 2006 ---5 AF E%sT --R AL 1951 o - Ap lastSun 2 1 D --R AL 1951 o - S lastSun 2 0 S --R AL 1954 1960 - Ap lastSun 2 1 D --R AL 1954 1960 - S lastSun 2 0 S -+-5 u E%sT -+R Ma 1951 o - Ap lastSun 2 1 D -+R Ma 1951 o - S lastSun 2 0 S -+R Ma 1954 1960 - Ap lastSun 2 1 D -+R Ma 1954 1960 - S lastSun 2 0 S - Z America/Indiana/Marengo -5:45:23 - LMT 1883 N 18 12:14:37 ---6 AF C%sT 1951 ---6 AL C%sT 1961 Ap 30 2 -+-6 u C%sT 1951 -+-6 Ma C%sT 1961 Ap 30 2 - -5 - EST 1969 ---5 AF E%sT 1974 Ja 6 2 -+-5 u E%sT 1974 Ja 6 2 - -6 1 CDT 1974 O 27 2 ---5 AF E%sT 1976 -+-5 u E%sT 1976 - -5 - EST 2006 ---5 AF E%sT --R AM 1946 o - Ap lastSun 2 1 D --R AM 1946 o - S lastSun 2 0 S --R AM 1953 1954 - Ap lastSun 2 1 D --R AM 1953 1959 - S lastSun 2 0 S --R AM 1955 o - May 1 0 1 D --R AM 1956 1963 - Ap lastSun 2 1 D --R AM 1960 o - O lastSun 2 0 S --R AM 1961 o - S lastSun 2 0 S --R AM 1962 1963 - O lastSun 2 0 S -+-5 u E%sT -+R V 1946 o - Ap lastSun 2 1 D -+R V 1946 o - S lastSun 2 0 S -+R V 1953 1954 - Ap lastSun 2 1 D -+R V 1953 1959 - S lastSun 2 0 S -+R V 1955 o - May 1 0 1 D -+R V 1956 1963 - Ap lastSun 2 1 D -+R V 1960 o - O lastSun 2 0 S -+R V 1961 o - S lastSun 2 0 S -+R V 1962 1963 - O lastSun 2 0 S - Z America/Indiana/Vincennes -5:50:7 - LMT 1883 N 18 12:9:53 ---6 AF C%sT 1946 ---6 AM C%sT 1964 Ap 26 2 -+-6 u C%sT 1946 -+-6 V C%sT 1964 Ap 26 2 - -5 - EST 1969 ---5 AF E%sT 1971 -+-5 u E%sT 1971 - -5 - EST 2006 Ap 2 2 ---6 AF C%sT 2007 N 4 2 ---5 AF E%sT --R AN 1946 o - Ap lastSun 2 1 D --R AN 1946 o - S lastSun 2 0 S --R AN 1953 1954 - Ap lastSun 2 1 D --R AN 1953 1959 - S lastSun 2 0 S --R AN 1955 o - May 1 0 1 D --R AN 1956 1963 - Ap lastSun 2 1 D --R AN 1960 o - O lastSun 2 0 S --R AN 1961 o - S lastSun 2 0 S --R AN 1962 1963 - O lastSun 2 0 S -+-6 u C%sT 2007 N 4 2 -+-5 u E%sT -+R Pe 1946 o - Ap lastSun 2 1 D -+R Pe 1946 o - S lastSun 2 0 S -+R Pe 1953 1954 - Ap lastSun 2 1 D -+R Pe 1953 1959 - S lastSun 2 0 S -+R Pe 1955 o - May 1 0 1 D -+R Pe 1956 1963 - Ap lastSun 2 1 D -+R Pe 1960 o - O lastSun 2 0 S -+R Pe 1961 o - S lastSun 2 0 S -+R Pe 1962 1963 - O lastSun 2 0 S - Z America/Indiana/Tell_City -5:47:3 - LMT 1883 N 18 12:12:57 ---6 AF C%sT 1946 ---6 AN C%sT 1964 Ap 26 2 -+-6 u C%sT 1946 -+-6 Pe C%sT 1964 Ap 26 2 - -5 - EST 1969 ---5 AF E%sT 1971 -+-5 u E%sT 1971 - -5 - EST 2006 Ap 2 2 ---6 AF C%sT --R AO 1955 o - May 1 0 1 D --R AO 1955 1960 - S lastSun 2 0 S --R AO 1956 1964 - Ap lastSun 2 1 D --R AO 1961 1964 - O lastSun 2 0 S -+-6 u C%sT -+R Pi 1955 o - May 1 0 1 D -+R Pi 1955 1960 - S lastSun 2 0 S -+R Pi 1956 1964 - Ap lastSun 2 1 D -+R Pi 1961 1964 - O lastSun 2 0 S - Z America/Indiana/Petersburg -5:49:7 - LMT 1883 N 18 12:10:53 ---6 AF C%sT 1955 ---6 AO C%sT 1965 Ap 25 2 -+-6 u C%sT 1955 -+-6 Pi C%sT 1965 Ap 25 2 - -5 - EST 1966 O 30 2 ---6 AF C%sT 1977 O 30 2 -+-6 u C%sT 1977 O 30 2 - -5 - EST 2006 Ap 2 2 ---6 AF C%sT 2007 N 4 2 ---5 AF E%sT --R AP 1947 1961 - Ap lastSun 2 1 D --R AP 1947 1954 - S lastSun 2 0 S --R AP 1955 1956 - O lastSun 2 0 S --R AP 1957 1958 - S lastSun 2 0 S --R AP 1959 1961 - O lastSun 2 0 S -+-6 u C%sT 2007 N 4 2 -+-5 u E%sT -+R St 1947 1961 - Ap lastSun 2 1 D -+R St 1947 1954 - S lastSun 2 0 S -+R St 1955 1956 - O lastSun 2 0 S -+R St 1957 1958 - S lastSun 2 0 S -+R St 1959 1961 - O lastSun 2 0 S - Z America/Indiana/Knox -5:46:30 - LMT 1883 N 18 12:13:30 ---6 AF C%sT 1947 ---6 AP C%sT 1962 Ap 29 2 -+-6 u C%sT 1947 -+-6 St C%sT 1962 Ap 29 2 - -5 - EST 1963 O 27 2 ---6 AF C%sT 1991 O 27 2 -+-6 u C%sT 1991 O 27 2 - -5 - EST 2006 Ap 2 2 ---6 AF C%sT --R AQ 1946 1960 - Ap lastSun 2 1 D --R AQ 1946 1954 - S lastSun 2 0 S --R AQ 1955 1956 - O lastSun 2 0 S --R AQ 1957 1960 - S lastSun 2 0 S -+-6 u C%sT -+R Pu 1946 1960 - Ap lastSun 2 1 D -+R Pu 1946 1954 - S lastSun 2 0 S -+R Pu 1955 1956 - O lastSun 2 0 S -+R Pu 1957 1960 - S lastSun 2 0 S - Z America/Indiana/Winamac -5:46:25 - LMT 1883 N 18 12:13:35 ---6 AF C%sT 1946 ---6 AQ C%sT 1961 Ap 30 2 -+-6 u C%sT 1946 -+-6 Pu C%sT 1961 Ap 30 2 - -5 - EST 1969 ---5 AF E%sT 1971 -+-5 u E%sT 1971 - -5 - EST 2006 Ap 2 2 ---6 AF C%sT 2007 Mar 11 2 ---5 AF E%sT -+-6 u C%sT 2007 Mar 11 2 -+-5 u E%sT - Z America/Indiana/Vevay -5:40:16 - LMT 1883 N 18 12:19:44 ---6 AF C%sT 1954 Ap 25 2 -+-6 u C%sT 1954 Ap 25 2 - -5 - EST 1969 ---5 AF E%sT 1973 -+-5 u E%sT 1973 - -5 - EST 2006 ---5 AF E%sT --R AR 1921 o - May 1 2 1 D --R AR 1921 o - S 1 2 0 S --R AR 1941 1961 - Ap lastSun 2 1 D --R AR 1941 o - S lastSun 2 0 S --R AR 1946 o - Jun 2 2 0 S --R AR 1950 1955 - S lastSun 2 0 S --R AR 1956 1960 - O lastSun 2 0 S -+-5 u E%sT -+R v 1921 o - May 1 2 1 D -+R v 1921 o - S 1 2 0 S -+R v 1941 1961 - Ap lastSun 2 1 D -+R v 1941 o - S lastSun 2 0 S -+R v 1946 o - Jun 2 2 0 S -+R v 1950 1955 - S lastSun 2 0 S -+R v 1956 1960 - O lastSun 2 0 S - Z America/Kentucky/Louisville -5:43:2 - LMT 1883 N 18 12:16:58 ---6 AF C%sT 1921 ---6 AR C%sT 1942 ---6 AF C%sT 1946 ---6 AR C%sT 1961 Jul 23 2 -+-6 u C%sT 1921 -+-6 v C%sT 1942 -+-6 u C%sT 1946 -+-6 v C%sT 1961 Jul 23 2 - -5 - EST 1968 ---5 AF E%sT 1974 Ja 6 2 -+-5 u E%sT 1974 Ja 6 2 - -6 1 CDT 1974 O 27 2 ---5 AF E%sT -+-5 u E%sT - Z America/Kentucky/Monticello -5:39:24 - LMT 1883 N 18 12:20:36 ---6 AF C%sT 1946 -+-6 u C%sT 1946 - -6 - CST 1968 ---6 AF C%sT 2000 O 29 2 ---5 AF E%sT --R AS 1948 o - Ap lastSun 2 1 D --R AS 1948 o - S lastSun 2 0 S -+-6 u C%sT 2000 O 29 2 -+-5 u E%sT -+R Dt 1948 o - Ap lastSun 2 1 D -+R Dt 1948 o - S lastSun 2 0 S - Z America/Detroit -5:32:11 - LMT 1905 - -6 - CST 1915 May 15 2 - -5 - EST 1942 ---5 AF E%sT 1946 ---5 AS E%sT 1973 ---5 AF E%sT 1975 -+-5 u E%sT 1946 -+-5 Dt E%sT 1973 -+-5 u E%sT 1975 - -5 - EST 1975 Ap 27 2 ---5 AF E%sT --R AT 1946 o - Ap lastSun 2 1 D --R AT 1946 o - S lastSun 2 0 S --R AT 1966 o - Ap lastSun 2 1 D --R AT 1966 o - O lastSun 2 0 S -+-5 u E%sT -+R Me 1946 o - Ap lastSun 2 1 D -+R Me 1946 o - S lastSun 2 0 S -+R Me 1966 o - Ap lastSun 2 1 D -+R Me 1966 o - O lastSun 2 0 S - Z America/Menominee -5:50:27 - LMT 1885 S 18 12 ---6 AF C%sT 1946 ---6 AT C%sT 1969 Ap 27 2 -+-6 u C%sT 1946 -+-6 Me C%sT 1969 Ap 27 2 - -5 - EST 1973 Ap 29 2 ---6 AF C%sT --R AU 1918 o - Ap 14 2 1 D --R AU 1918 o - O 27 2 0 S --R AU 1942 o - F 9 2 1 W --R AU 1945 o - Au 14 23u 1 P --R AU 1945 o - S 30 2 0 S --R AU 1974 1986 - Ap lastSun 2 1 D --R AU 1974 2006 - O lastSun 2 0 S --R AU 1987 2006 - Ap Sun>=1 2 1 D --R AU 2007 ma - Mar Sun>=8 2 1 D --R AU 2007 ma - N Sun>=1 2 0 S --R AV 1917 o - Ap 8 2 1 D --R AV 1917 o - S 17 2 0 S --R AV 1919 o - May 5 23 1 D --R AV 1919 o - Au 12 23 0 S --R AV 1920 1935 - May Sun>=1 23 1 D --R AV 1920 1935 - O lastSun 23 0 S --R AV 1936 1941 - May M>=9 0 1 D --R AV 1936 1941 - O M>=2 0 0 S --R AV 1946 1950 - May Sun>=8 2 1 D --R AV 1946 1950 - O Sun>=2 2 0 S --R AV 1951 1986 - Ap lastSun 2 1 D --R AV 1951 1959 - S lastSun 2 0 S --R AV 1960 1986 - O lastSun 2 0 S --R AV 1987 o - Ap Sun>=1 0:1 1 D --R AV 1987 2006 - O lastSun 0:1 0 S --R AV 1988 o - Ap Sun>=1 0:1 2 DD --R AV 1989 2006 - Ap Sun>=1 0:1 1 D --R AV 2007 2011 - Mar Sun>=8 0:1 1 D --R AV 2007 2010 - N Sun>=1 0:1 0 S -+-6 u C%sT -+R C 1918 o - Ap 14 2 1 D -+R C 1918 o - O 27 2 0 S -+R C 1942 o - F 9 2 1 W -+R C 1945 o - Au 14 23u 1 P -+R C 1945 o - S 30 2 0 S -+R C 1974 1986 - Ap lastSun 2 1 D -+R C 1974 2006 - O lastSun 2 0 S -+R C 1987 2006 - Ap Sun>=1 2 1 D -+R C 2007 ma - Mar Sun>=8 2 1 D -+R C 2007 ma - N Sun>=1 2 0 S -+R j 1917 o - Ap 8 2 1 D -+R j 1917 o - S 17 2 0 S -+R j 1919 o - May 5 23 1 D -+R j 1919 o - Au 12 23 0 S -+R j 1920 1935 - May Sun>=1 23 1 D -+R j 1920 1935 - O lastSun 23 0 S -+R j 1936 1941 - May M>=9 0 1 D -+R j 1936 1941 - O M>=2 0 0 S -+R j 1946 1950 - May Sun>=8 2 1 D -+R j 1946 1950 - O Sun>=2 2 0 S -+R j 1951 1986 - Ap lastSun 2 1 D -+R j 1951 1959 - S lastSun 2 0 S -+R j 1960 1986 - O lastSun 2 0 S -+R j 1987 o - Ap Sun>=1 0:1 1 D -+R j 1987 2006 - O lastSun 0:1 0 S -+R j 1988 o - Ap Sun>=1 0:1 2 DD -+R j 1989 2006 - Ap Sun>=1 0:1 1 D -+R j 2007 2011 - Mar Sun>=8 0:1 1 D -+R j 2007 2010 - N Sun>=1 0:1 0 S - Z America/St_Johns -3:30:52 - LMT 1884 ---3:30:52 AV N%sT 1918 ---3:30:52 AU N%sT 1919 ---3:30:52 AV N%sT 1935 Mar 30 ---3:30 AV N%sT 1942 May 11 ---3:30 AU N%sT 1946 ---3:30 AV N%sT 2011 N ---3:30 AU N%sT -+-3:30:52 j N%sT 1918 -+-3:30:52 C N%sT 1919 -+-3:30:52 j N%sT 1935 Mar 30 -+-3:30 j N%sT 1942 May 11 -+-3:30 C N%sT 1946 -+-3:30 j N%sT 2011 N -+-3:30 C N%sT - Z America/Goose_Bay -4:1:40 - LMT 1884 - -3:30:52 - NST 1918 ---3:30:52 AU N%sT 1919 -+-3:30:52 C N%sT 1919 - -3:30:52 - NST 1935 Mar 30 - -3:30 - NST 1936 ---3:30 AV N%sT 1942 May 11 ---3:30 AU N%sT 1946 ---3:30 AV N%sT 1966 Mar 15 2 ---4 AV A%sT 2011 N ---4 AU A%sT --R AW 1916 o - Ap 1 0 1 D --R AW 1916 o - O 1 0 0 S --R AW 1920 o - May 9 0 1 D --R AW 1920 o - Au 29 0 0 S --R AW 1921 o - May 6 0 1 D --R AW 1921 1922 - S 5 0 0 S --R AW 1922 o - Ap 30 0 1 D --R AW 1923 1925 - May Sun>=1 0 1 D --R AW 1923 o - S 4 0 0 S --R AW 1924 o - S 15 0 0 S --R AW 1925 o - S 28 0 0 S --R AW 1926 o - May 16 0 1 D --R AW 1926 o - S 13 0 0 S --R AW 1927 o - May 1 0 1 D --R AW 1927 o - S 26 0 0 S --R AW 1928 1931 - May Sun>=8 0 1 D --R AW 1928 o - S 9 0 0 S --R AW 1929 o - S 3 0 0 S --R AW 1930 o - S 15 0 0 S --R AW 1931 1932 - S M>=24 0 0 S --R AW 1932 o - May 1 0 1 D --R AW 1933 o - Ap 30 0 1 D --R AW 1933 o - O 2 0 0 S --R AW 1934 o - May 20 0 1 D --R AW 1934 o - S 16 0 0 S --R AW 1935 o - Jun 2 0 1 D --R AW 1935 o - S 30 0 0 S --R AW 1936 o - Jun 1 0 1 D --R AW 1936 o - S 14 0 0 S --R AW 1937 1938 - May Sun>=1 0 1 D --R AW 1937 1941 - S M>=24 0 0 S --R AW 1939 o - May 28 0 1 D --R AW 1940 1941 - May Sun>=1 0 1 D --R AW 1946 1949 - Ap lastSun 2 1 D --R AW 1946 1949 - S lastSun 2 0 S --R AW 1951 1954 - Ap lastSun 2 1 D --R AW 1951 1954 - S lastSun 2 0 S --R AW 1956 1959 - Ap lastSun 2 1 D --R AW 1956 1959 - S lastSun 2 0 S --R AW 1962 1973 - Ap lastSun 2 1 D --R AW 1962 1973 - O lastSun 2 0 S -+-3:30 j N%sT 1942 May 11 -+-3:30 C N%sT 1946 -+-3:30 j N%sT 1966 Mar 15 2 -+-4 j A%sT 2011 N -+-4 C A%sT -+R H 1916 o - Ap 1 0 1 D -+R H 1916 o - O 1 0 0 S -+R H 1920 o - May 9 0 1 D -+R H 1920 o - Au 29 0 0 S -+R H 1921 o - May 6 0 1 D -+R H 1921 1922 - S 5 0 0 S -+R H 1922 o - Ap 30 0 1 D -+R H 1923 1925 - May Sun>=1 0 1 D -+R H 1923 o - S 4 0 0 S -+R H 1924 o - S 15 0 0 S -+R H 1925 o - S 28 0 0 S -+R H 1926 o - May 16 0 1 D -+R H 1926 o - S 13 0 0 S -+R H 1927 o - May 1 0 1 D -+R H 1927 o - S 26 0 0 S -+R H 1928 1931 - May Sun>=8 0 1 D -+R H 1928 o - S 9 0 0 S -+R H 1929 o - S 3 0 0 S -+R H 1930 o - S 15 0 0 S -+R H 1931 1932 - S M>=24 0 0 S -+R H 1932 o - May 1 0 1 D -+R H 1933 o - Ap 30 0 1 D -+R H 1933 o - O 2 0 0 S -+R H 1934 o - May 20 0 1 D -+R H 1934 o - S 16 0 0 S -+R H 1935 o - Jun 2 0 1 D -+R H 1935 o - S 30 0 0 S -+R H 1936 o - Jun 1 0 1 D -+R H 1936 o - S 14 0 0 S -+R H 1937 1938 - May Sun>=1 0 1 D -+R H 1937 1941 - S M>=24 0 0 S -+R H 1939 o - May 28 0 1 D -+R H 1940 1941 - May Sun>=1 0 1 D -+R H 1946 1949 - Ap lastSun 2 1 D -+R H 1946 1949 - S lastSun 2 0 S -+R H 1951 1954 - Ap lastSun 2 1 D -+R H 1951 1954 - S lastSun 2 0 S -+R H 1956 1959 - Ap lastSun 2 1 D -+R H 1956 1959 - S lastSun 2 0 S -+R H 1962 1973 - Ap lastSun 2 1 D -+R H 1962 1973 - O lastSun 2 0 S - Z America/Halifax -4:14:24 - LMT 1902 Jun 15 ---4 AW A%sT 1918 ---4 AU A%sT 1919 ---4 AW A%sT 1942 F 9 2s ---4 AU A%sT 1946 ---4 AW A%sT 1974 ---4 AU A%sT -+-4 H A%sT 1918 -+-4 C A%sT 1919 -+-4 H A%sT 1942 F 9 2s -+-4 C A%sT 1946 -+-4 H A%sT 1974 -+-4 C A%sT - Z America/Glace_Bay -3:59:48 - LMT 1902 Jun 15 ---4 AU A%sT 1953 ---4 AW A%sT 1954 -+-4 C A%sT 1953 -+-4 H A%sT 1954 - -4 - AST 1972 ---4 AW A%sT 1974 ---4 AU A%sT --R AX 1933 1935 - Jun Sun>=8 1 1 D --R AX 1933 1935 - S Sun>=8 1 0 S --R AX 1936 1938 - Jun Sun>=1 1 1 D --R AX 1936 1938 - S Sun>=1 1 0 S --R AX 1939 o - May 27 1 1 D --R AX 1939 1941 - S Sat>=21 1 0 S --R AX 1940 o - May 19 1 1 D --R AX 1941 o - May 4 1 1 D --R AX 1946 1972 - Ap lastSun 2 1 D --R AX 1946 1956 - S lastSun 2 0 S --R AX 1957 1972 - O lastSun 2 0 S --R AX 1993 2006 - Ap Sun>=1 0:1 1 D --R AX 1993 2006 - O lastSun 0:1 0 S -+-4 H A%sT 1974 -+-4 C A%sT -+R o 1933 1935 - Jun Sun>=8 1 1 D -+R o 1933 1935 - S Sun>=8 1 0 S -+R o 1936 1938 - Jun Sun>=1 1 1 D -+R o 1936 1938 - S Sun>=1 1 0 S -+R o 1939 o - May 27 1 1 D -+R o 1939 1941 - S Sat>=21 1 0 S -+R o 1940 o - May 19 1 1 D -+R o 1941 o - May 4 1 1 D -+R o 1946 1972 - Ap lastSun 2 1 D -+R o 1946 1956 - S lastSun 2 0 S -+R o 1957 1972 - O lastSun 2 0 S -+R o 1993 2006 - Ap Sun>=1 0:1 1 D -+R o 1993 2006 - O lastSun 0:1 0 S - Z America/Moncton -4:19:8 - LMT 1883 D 9 - -5 - EST 1902 Jun 15 ---4 AU A%sT 1933 ---4 AX A%sT 1942 ---4 AU A%sT 1946 ---4 AX A%sT 1973 ---4 AU A%sT 1993 ---4 AX A%sT 2007 ---4 AU A%sT -+-4 C A%sT 1933 -+-4 o A%sT 1942 -+-4 C A%sT 1946 -+-4 o A%sT 1973 -+-4 C A%sT 1993 -+-4 o A%sT 2007 -+-4 C A%sT - Z America/Blanc-Sablon -3:48:28 - LMT 1884 ---4 AU A%sT 1970 -+-4 C A%sT 1970 - -4 - AST --R AY 1919 o - Mar 30 23:30 1 D --R AY 1919 o - O 26 0 0 S --R AY 1920 o - May 2 2 1 D --R AY 1920 o - S 26 0 0 S --R AY 1921 o - May 15 2 1 D --R AY 1921 o - S 15 2 0 S --R AY 1922 1923 - May Sun>=8 2 1 D --R AY 1922 1926 - S Sun>=15 2 0 S --R AY 1924 1927 - May Sun>=1 2 1 D --R AY 1927 1932 - S lastSun 2 0 S --R AY 1928 1931 - Ap lastSun 2 1 D --R AY 1932 o - May 1 2 1 D --R AY 1933 1940 - Ap lastSun 2 1 D --R AY 1933 o - O 1 2 0 S --R AY 1934 1939 - S lastSun 2 0 S --R AY 1945 1946 - S lastSun 2 0 S --R AY 1946 o - Ap lastSun 2 1 D --R AY 1947 1949 - Ap lastSun 0 1 D --R AY 1947 1948 - S lastSun 0 0 S --R AY 1949 o - N lastSun 0 0 S --R AY 1950 1973 - Ap lastSun 2 1 D --R AY 1950 o - N lastSun 2 0 S --R AY 1951 1956 - S lastSun 2 0 S --R AY 1957 1973 - O lastSun 2 0 S -+R t 1919 o - Mar 30 23:30 1 D -+R t 1919 o - O 26 0 0 S -+R t 1920 o - May 2 2 1 D -+R t 1920 o - S 26 0 0 S -+R t 1921 o - May 15 2 1 D -+R t 1921 o - S 15 2 0 S -+R t 1922 1923 - May Sun>=8 2 1 D -+R t 1922 1926 - S Sun>=15 2 0 S -+R t 1924 1927 - May Sun>=1 2 1 D -+R t 1927 1932 - S lastSun 2 0 S -+R t 1928 1931 - Ap lastSun 2 1 D -+R t 1932 o - May 1 2 1 D -+R t 1933 1940 - Ap lastSun 2 1 D -+R t 1933 o - O 1 2 0 S -+R t 1934 1939 - S lastSun 2 0 S -+R t 1945 1946 - S lastSun 2 0 S -+R t 1946 o - Ap lastSun 2 1 D -+R t 1947 1949 - Ap lastSun 0 1 D -+R t 1947 1948 - S lastSun 0 0 S -+R t 1949 o - N lastSun 0 0 S -+R t 1950 1973 - Ap lastSun 2 1 D -+R t 1950 o - N lastSun 2 0 S -+R t 1951 1956 - S lastSun 2 0 S -+R t 1957 1973 - O lastSun 2 0 S - Z America/Toronto -5:17:32 - LMT 1895 ---5 AU E%sT 1919 ---5 AY E%sT 1942 F 9 2s ---5 AU E%sT 1946 ---5 AY E%sT 1974 ---5 AU E%sT -+-5 C E%sT 1919 -+-5 t E%sT 1942 F 9 2s -+-5 C E%sT 1946 -+-5 t E%sT 1974 -+-5 C E%sT - Z America/Thunder_Bay -5:57 - LMT 1895 - -6 - CST 1910 - -5 - EST 1942 ---5 AU E%sT 1970 ---5 AY E%sT 1973 -+-5 C E%sT 1970 -+-5 t E%sT 1973 - -5 - EST 1974 ---5 AU E%sT -+-5 C E%sT - Z America/Nipigon -5:53:4 - LMT 1895 ---5 AU E%sT 1940 S 29 -+-5 C E%sT 1940 S 29 - -5 1 EDT 1942 F 9 2s ---5 AU E%sT -+-5 C E%sT - Z America/Rainy_River -6:18:16 - LMT 1895 ---6 AU C%sT 1940 S 29 -+-6 C C%sT 1940 S 29 - -6 1 CDT 1942 F 9 2s ---6 AU C%sT -+-6 C C%sT - Z America/Atikokan -6:6:28 - LMT 1895 ---6 AU C%sT 1940 S 29 -+-6 C C%sT 1940 S 29 - -6 1 CDT 1942 F 9 2s ---6 AU C%sT 1945 S 30 2 -+-6 C C%sT 1945 S 30 2 - -5 - EST --R AZ 1916 o - Ap 23 0 1 D --R AZ 1916 o - S 17 0 0 S --R AZ 1918 o - Ap 14 2 1 D --R AZ 1918 o - O 27 2 0 S --R AZ 1937 o - May 16 2 1 D --R AZ 1937 o - S 26 2 0 S --R AZ 1942 o - F 9 2 1 W --R AZ 1945 o - Au 14 23u 1 P --R AZ 1945 o - S lastSun 2 0 S --R AZ 1946 o - May 12 2 1 D --R AZ 1946 o - O 13 2 0 S --R AZ 1947 1949 - Ap lastSun 2 1 D --R AZ 1947 1949 - S lastSun 2 0 S --R AZ 1950 o - May 1 2 1 D --R AZ 1950 o - S 30 2 0 S --R AZ 1951 1960 - Ap lastSun 2 1 D --R AZ 1951 1958 - S lastSun 2 0 S --R AZ 1959 o - O lastSun 2 0 S --R AZ 1960 o - S lastSun 2 0 S --R AZ 1963 o - Ap lastSun 2 1 D --R AZ 1963 o - S 22 2 0 S --R AZ 1966 1986 - Ap lastSun 2s 1 D --R AZ 1966 2005 - O lastSun 2s 0 S --R AZ 1987 2005 - Ap Sun>=1 2s 1 D -+R W 1916 o - Ap 23 0 1 D -+R W 1916 o - S 17 0 0 S -+R W 1918 o - Ap 14 2 1 D -+R W 1918 o - O 27 2 0 S -+R W 1937 o - May 16 2 1 D -+R W 1937 o - S 26 2 0 S -+R W 1942 o - F 9 2 1 W -+R W 1945 o - Au 14 23u 1 P -+R W 1945 o - S lastSun 2 0 S -+R W 1946 o - May 12 2 1 D -+R W 1946 o - O 13 2 0 S -+R W 1947 1949 - Ap lastSun 2 1 D -+R W 1947 1949 - S lastSun 2 0 S -+R W 1950 o - May 1 2 1 D -+R W 1950 o - S 30 2 0 S -+R W 1951 1960 - Ap lastSun 2 1 D -+R W 1951 1958 - S lastSun 2 0 S -+R W 1959 o - O lastSun 2 0 S -+R W 1960 o - S lastSun 2 0 S -+R W 1963 o - Ap lastSun 2 1 D -+R W 1963 o - S 22 2 0 S -+R W 1966 1986 - Ap lastSun 2s 1 D -+R W 1966 2005 - O lastSun 2s 0 S -+R W 1987 2005 - Ap Sun>=1 2s 1 D - Z America/Winnipeg -6:28:36 - LMT 1887 Jul 16 ---6 AZ C%sT 2006 ---6 AU C%sT --R Aa 1918 o - Ap 14 2 1 D --R Aa 1918 o - O 27 2 0 S --R Aa 1930 1934 - May Sun>=1 0 1 D --R Aa 1930 1934 - O Sun>=1 0 0 S --R Aa 1937 1941 - Ap Sun>=8 0 1 D --R Aa 1937 o - O Sun>=8 0 0 S --R Aa 1938 o - O Sun>=1 0 0 S --R Aa 1939 1941 - O Sun>=8 0 0 S --R Aa 1942 o - F 9 2 1 W --R Aa 1945 o - Au 14 23u 1 P --R Aa 1945 o - S lastSun 2 0 S --R Aa 1946 o - Ap Sun>=8 2 1 D --R Aa 1946 o - O Sun>=8 2 0 S --R Aa 1947 1957 - Ap lastSun 2 1 D --R Aa 1947 1957 - S lastSun 2 0 S --R Aa 1959 o - Ap lastSun 2 1 D --R Aa 1959 o - O lastSun 2 0 S --R Ab 1957 o - Ap lastSun 2 1 D --R Ab 1957 o - O lastSun 2 0 S --R Ab 1959 1961 - Ap lastSun 2 1 D --R Ab 1959 o - O lastSun 2 0 S --R Ab 1960 1961 - S lastSun 2 0 S -+-6 W C%sT 2006 -+-6 C C%sT -+R r 1918 o - Ap 14 2 1 D -+R r 1918 o - O 27 2 0 S -+R r 1930 1934 - May Sun>=1 0 1 D -+R r 1930 1934 - O Sun>=1 0 0 S -+R r 1937 1941 - Ap Sun>=8 0 1 D -+R r 1937 o - O Sun>=8 0 0 S -+R r 1938 o - O Sun>=1 0 0 S -+R r 1939 1941 - O Sun>=8 0 0 S -+R r 1942 o - F 9 2 1 W -+R r 1945 o - Au 14 23u 1 P -+R r 1945 o - S lastSun 2 0 S -+R r 1946 o - Ap Sun>=8 2 1 D -+R r 1946 o - O Sun>=8 2 0 S -+R r 1947 1957 - Ap lastSun 2 1 D -+R r 1947 1957 - S lastSun 2 0 S -+R r 1959 o - Ap lastSun 2 1 D -+R r 1959 o - O lastSun 2 0 S -+R Sw 1957 o - Ap lastSun 2 1 D -+R Sw 1957 o - O lastSun 2 0 S -+R Sw 1959 1961 - Ap lastSun 2 1 D -+R Sw 1959 o - O lastSun 2 0 S -+R Sw 1960 1961 - S lastSun 2 0 S - Z America/Regina -6:58:36 - LMT 1905 S ---7 Aa M%sT 1960 Ap lastSun 2 -+-7 r M%sT 1960 Ap lastSun 2 - -6 - CST - Z America/Swift_Current -7:11:20 - LMT 1905 S ---7 AU M%sT 1946 Ap lastSun 2 ---7 Aa M%sT 1950 ---7 Ab M%sT 1972 Ap lastSun 2 -+-7 C M%sT 1946 Ap lastSun 2 -+-7 r M%sT 1950 -+-7 Sw M%sT 1972 Ap lastSun 2 - -6 - CST --R Ac 1918 1919 - Ap Sun>=8 2 1 D --R Ac 1918 o - O 27 2 0 S --R Ac 1919 o - May 27 2 0 S --R Ac 1920 1923 - Ap lastSun 2 1 D --R Ac 1920 o - O lastSun 2 0 S --R Ac 1921 1923 - S lastSun 2 0 S --R Ac 1942 o - F 9 2 1 W --R Ac 1945 o - Au 14 23u 1 P --R Ac 1945 o - S lastSun 2 0 S --R Ac 1947 o - Ap lastSun 2 1 D --R Ac 1947 o - S lastSun 2 0 S --R Ac 1967 o - Ap lastSun 2 1 D --R Ac 1967 o - O lastSun 2 0 S --R Ac 1969 o - Ap lastSun 2 1 D --R Ac 1969 o - O lastSun 2 0 S --R Ac 1972 1986 - Ap lastSun 2 1 D --R Ac 1972 2006 - O lastSun 2 0 S -+R Ed 1918 1919 - Ap Sun>=8 2 1 D -+R Ed 1918 o - O 27 2 0 S -+R Ed 1919 o - May 27 2 0 S -+R Ed 1920 1923 - Ap lastSun 2 1 D -+R Ed 1920 o - O lastSun 2 0 S -+R Ed 1921 1923 - S lastSun 2 0 S -+R Ed 1942 o - F 9 2 1 W -+R Ed 1945 o - Au 14 23u 1 P -+R Ed 1945 o - S lastSun 2 0 S -+R Ed 1947 o - Ap lastSun 2 1 D -+R Ed 1947 o - S lastSun 2 0 S -+R Ed 1967 o - Ap lastSun 2 1 D -+R Ed 1967 o - O lastSun 2 0 S -+R Ed 1969 o - Ap lastSun 2 1 D -+R Ed 1969 o - O lastSun 2 0 S -+R Ed 1972 1986 - Ap lastSun 2 1 D -+R Ed 1972 2006 - O lastSun 2 0 S - Z America/Edmonton -7:33:52 - LMT 1906 S ---7 Ac M%sT 1987 ---7 AU M%sT --R Ad 1918 o - Ap 14 2 1 D --R Ad 1918 o - O 27 2 0 S --R Ad 1942 o - F 9 2 1 W --R Ad 1945 o - Au 14 23u 1 P --R Ad 1945 o - S 30 2 0 S --R Ad 1946 1986 - Ap lastSun 2 1 D --R Ad 1946 o - O 13 2 0 S --R Ad 1947 1961 - S lastSun 2 0 S --R Ad 1962 2006 - O lastSun 2 0 S -+-7 Ed M%sT 1987 -+-7 C M%sT -+R Va 1918 o - Ap 14 2 1 D -+R Va 1918 o - O 27 2 0 S -+R Va 1942 o - F 9 2 1 W -+R Va 1945 o - Au 14 23u 1 P -+R Va 1945 o - S 30 2 0 S -+R Va 1946 1986 - Ap lastSun 2 1 D -+R Va 1946 o - O 13 2 0 S -+R Va 1947 1961 - S lastSun 2 0 S -+R Va 1962 2006 - O lastSun 2 0 S - Z America/Vancouver -8:12:28 - LMT 1884 ---8 Ad P%sT 1987 ---8 AU P%sT -+-8 Va P%sT 1987 -+-8 C P%sT - Z America/Dawson_Creek -8:0:56 - LMT 1884 ---8 AU P%sT 1947 ---8 Ad P%sT 1972 Au 30 2 -+-8 C P%sT 1947 -+-8 Va P%sT 1972 Au 30 2 - -7 - MST - Z America/Fort_Nelson -8:10:47 - LMT 1884 ---8 Ad P%sT 1946 -+-8 Va P%sT 1946 - -8 - PST 1947 ---8 Ad P%sT 1987 ---8 AU P%sT 2015 Mar 8 2 -+-8 Va P%sT 1987 -+-8 C P%sT 2015 Mar 8 2 - -7 - MST - Z America/Creston -7:46:4 - LMT 1884 - -7 - MST 1916 O - -8 - PST 1918 Jun 2 - -7 - MST --R Ae 1918 o - Ap 14 2 1 D --R Ae 1918 o - O 27 2 0 S --R Ae 1919 o - May 25 2 1 D --R Ae 1919 o - N 1 0 0 S --R Ae 1942 o - F 9 2 1 W --R Ae 1945 o - Au 14 23u 1 P --R Ae 1945 o - S 30 2 0 S --R Ae 1965 o - Ap lastSun 0 2 DD --R Ae 1965 o - O lastSun 2 0 S --R Ae 1980 1986 - Ap lastSun 2 1 D --R Ae 1980 2006 - O lastSun 2 0 S --R Ae 1987 2006 - Ap Sun>=1 2 1 D -+R Y 1918 o - Ap 14 2 1 D -+R Y 1918 o - O 27 2 0 S -+R Y 1919 o - May 25 2 1 D -+R Y 1919 o - N 1 0 0 S -+R Y 1942 o - F 9 2 1 W -+R Y 1945 o - Au 14 23u 1 P -+R Y 1945 o - S 30 2 0 S -+R Y 1965 o - Ap lastSun 0 2 DD -+R Y 1965 o - O lastSun 2 0 S -+R Y 1980 1986 - Ap lastSun 2 1 D -+R Y 1980 2006 - O lastSun 2 0 S -+R Y 1987 2006 - Ap Sun>=1 2 1 D - Z America/Pangnirtung 0 - -00 1921 ---4 Ae A%sT 1995 Ap Sun>=1 2 ---5 AU E%sT 1999 O 31 2 ---6 AU C%sT 2000 O 29 2 ---5 AU E%sT -+-4 Y A%sT 1995 Ap Sun>=1 2 -+-5 C E%sT 1999 O 31 2 -+-6 C C%sT 2000 O 29 2 -+-5 C E%sT - Z America/Iqaluit 0 - -00 1942 Au ---5 Ae E%sT 1999 O 31 2 ---6 AU C%sT 2000 O 29 2 ---5 AU E%sT -+-5 Y E%sT 1999 O 31 2 -+-6 C C%sT 2000 O 29 2 -+-5 C E%sT - Z America/Resolute 0 - -00 1947 Au 31 ---6 Ae C%sT 2000 O 29 2 -+-6 Y C%sT 2000 O 29 2 - -5 - EST 2001 Ap 1 3 ---6 AU C%sT 2006 O 29 2 -+-6 C C%sT 2006 O 29 2 - -5 - EST 2007 Mar 11 3 ---6 AU C%sT -+-6 C C%sT - Z America/Rankin_Inlet 0 - -00 1957 ---6 Ae C%sT 2000 O 29 2 -+-6 Y C%sT 2000 O 29 2 - -5 - EST 2001 Ap 1 3 ---6 AU C%sT -+-6 C C%sT - Z America/Cambridge_Bay 0 - -00 1920 ---7 Ae M%sT 1999 O 31 2 ---6 AU C%sT 2000 O 29 2 -+-7 Y M%sT 1999 O 31 2 -+-6 C C%sT 2000 O 29 2 - -5 - EST 2000 N 5 - -6 - CST 2001 Ap 1 3 ---7 AU M%sT -+-7 C M%sT - Z America/Yellowknife 0 - -00 1935 ---7 Ae M%sT 1980 ---7 AU M%sT -+-7 Y M%sT 1980 -+-7 C M%sT - Z America/Inuvik 0 - -00 1953 ---8 Ae P%sT 1979 Ap lastSun 2 ---7 Ae M%sT 1980 ---7 AU M%sT -+-8 Y P%sT 1979 Ap lastSun 2 -+-7 Y M%sT 1980 -+-7 C M%sT - Z America/Whitehorse -9:0:12 - LMT 1900 Au 20 ---9 Ae Y%sT 1967 May 28 ---8 Ae P%sT 1980 ---8 AU P%sT -+-9 Y Y%sT 1967 May 28 -+-8 Y P%sT 1980 -+-8 C P%sT - Z America/Dawson -9:17:40 - LMT 1900 Au 20 ---9 Ae Y%sT 1973 O 28 ---8 Ae P%sT 1980 ---8 AU P%sT --R Af 1939 o - F 5 0 1 D --R Af 1939 o - Jun 25 0 0 S --R Af 1940 o - D 9 0 1 D --R Af 1941 o - Ap 1 0 0 S --R Af 1943 o - D 16 0 1 W --R Af 1944 o - May 1 0 0 S --R Af 1950 o - F 12 0 1 D --R Af 1950 o - Jul 30 0 0 S --R Af 1996 2000 - Ap Sun>=1 2 1 D --R Af 1996 2000 - O lastSun 2 0 S --R Af 2001 o - May Sun>=1 2 1 D --R Af 2001 o - S lastSun 2 0 S --R Af 2002 ma - Ap Sun>=1 2 1 D --R Af 2002 ma - O lastSun 2 0 S -+-9 Y Y%sT 1973 O 28 -+-8 Y P%sT 1980 -+-8 C P%sT -+R m 1939 o - F 5 0 1 D -+R m 1939 o - Jun 25 0 0 S -+R m 1940 o - D 9 0 1 D -+R m 1941 o - Ap 1 0 0 S -+R m 1943 o - D 16 0 1 W -+R m 1944 o - May 1 0 0 S -+R m 1950 o - F 12 0 1 D -+R m 1950 o - Jul 30 0 0 S -+R m 1996 2000 - Ap Sun>=1 2 1 D -+R m 1996 2000 - O lastSun 2 0 S -+R m 2001 o - May Sun>=1 2 1 D -+R m 2001 o - S lastSun 2 0 S -+R m 2002 ma - Ap Sun>=1 2 1 D -+R m 2002 ma - O lastSun 2 0 S - Z America/Cancun -5:47:4 - LMT 1922 Ja 1 0:12:56 - -6 - CST 1981 D 23 ---5 Af E%sT 1998 Au 2 2 ---6 Af C%sT 2015 F 1 2 -+-5 m E%sT 1998 Au 2 2 -+-6 m C%sT 2015 F 1 2 - -5 - EST - Z America/Merida -5:58:28 - LMT 1922 Ja 1 0:1:32 - -6 - CST 1981 D 23 - -5 - EST 1982 D 2 ---6 Af C%sT -+-6 m C%sT - Z America/Matamoros -6:40 - LMT 1921 D 31 23:20 - -6 - CST 1988 ---6 AF C%sT 1989 ---6 Af C%sT 2010 ---6 AF C%sT -+-6 u C%sT 1989 -+-6 m C%sT 2010 -+-6 u C%sT - Z America/Monterrey -6:41:16 - LMT 1921 D 31 23:18:44 - -6 - CST 1988 ---6 AF C%sT 1989 ---6 Af C%sT -+-6 u C%sT 1989 -+-6 m C%sT - Z America/Mexico_City -6:36:36 - LMT 1922 Ja 1 0:23:24 - -7 - MST 1927 Jun 10 23 - -6 - CST 1930 N 15 - -7 - MST 1931 May 1 23 - -6 - CST 1931 O - -7 - MST 1932 Ap ---6 Af C%sT 2001 S 30 2 -+-6 m C%sT 2001 S 30 2 - -6 - CST 2002 F 20 ---6 Af C%sT -+-6 m C%sT - Z America/Ojinaga -6:57:40 - LMT 1922 Ja 1 0:2:20 - -7 - MST 1927 Jun 10 23 - -6 - CST 1930 N 15 -@@ -3215,10 +3232,10 @@ Z America/Ojinaga -6:57:40 - LMT 1922 Ja 1 0:2:20 - -6 - CST 1931 O - -7 - MST 1932 Ap - -6 - CST 1996 ---6 Af C%sT 1998 -+-6 m C%sT 1998 - -6 - CST 1998 Ap Sun>=1 3 ---7 Af M%sT 2010 ---7 AF M%sT -+-7 m M%sT 2010 -+-7 u M%sT - Z America/Chihuahua -7:4:20 - LMT 1921 D 31 23:55:40 - -7 - MST 1927 Jun 10 23 - -6 - CST 1930 N 15 -@@ -3226,9 +3243,9 @@ Z America/Chihuahua -7:4:20 - LMT 1921 D 31 23:55:40 - -6 - CST 1931 O - -7 - MST 1932 Ap - -6 - CST 1996 ---6 Af C%sT 1998 -+-6 m C%sT 1998 - -6 - CST 1998 Ap Sun>=1 3 ---7 Af M%sT -+-7 m M%sT - Z America/Hermosillo -7:23:52 - LMT 1921 D 31 23:36:8 - -7 - MST 1927 Jun 10 23 - -6 - CST 1930 N 15 -@@ -3238,7 +3255,7 @@ Z America/Hermosillo -7:23:52 - LMT 1921 D 31 23:36:8 - -6 - CST 1942 Ap 24 - -7 - MST 1949 Ja 14 - -8 - PST 1970 ---7 Af M%sT 1999 -+-7 m M%sT 1999 - -7 - MST - Z America/Mazatlan -7:5:40 - LMT 1921 D 31 23:54:20 - -7 - MST 1927 Jun 10 23 -@@ -3249,7 +3266,7 @@ Z America/Mazatlan -7:5:40 - LMT 1921 D 31 23:54:20 - -6 - CST 1942 Ap 24 - -7 - MST 1949 Ja 14 - -8 - PST 1970 ---7 Af M%sT -+-7 m M%sT - Z America/Bahia_Banderas -7:1 - LMT 1921 D 31 23:59 - -7 - MST 1927 Jun 10 23 - -6 - CST 1930 N 15 -@@ -3259,8 +3276,8 @@ Z America/Bahia_Banderas -7:1 - LMT 1921 D 31 23:59 - -6 - CST 1942 Ap 24 - -7 - MST 1949 Ja 14 - -8 - PST 1970 ---7 Af M%sT 2010 Ap 4 2 ---6 Af C%sT -+-7 m M%sT 2010 Ap 4 2 -+-6 m C%sT - Z America/Tijuana -7:48:4 - LMT 1922 Ja 1 0:11:56 - -7 - MST 1924 - -8 - PST 1927 Jun 10 23 -@@ -3273,315 +3290,315 @@ Z America/Tijuana -7:48:4 - LMT 1922 Ja 1 0:11:56 - -8 - PST 1948 Ap 5 - -8 1 PDT 1949 Ja 14 - -8 - PST 1954 ---8 AJ P%sT 1961 -+-8 CA P%sT 1961 - -8 - PST 1976 ---8 AF P%sT 1996 ---8 Af P%sT 2001 ---8 AF P%sT 2002 F 20 ---8 Af P%sT 2010 ---8 AF P%sT --R Ag 1964 1975 - O lastSun 2 0 S --R Ag 1964 1975 - Ap lastSun 2 1 D -+-8 u P%sT 1996 -+-8 m P%sT 2001 -+-8 u P%sT 2002 F 20 -+-8 m P%sT 2010 -+-8 u P%sT -+R BS 1964 1975 - O lastSun 2 0 S -+R BS 1964 1975 - Ap lastSun 2 1 D - Z America/Nassau -5:9:30 - LMT 1912 Mar 2 ---5 Ag E%sT 1976 ---5 AF E%sT --R Ah 1977 o - Jun 12 2 1 D --R Ah 1977 1978 - O Sun>=1 2 0 S --R Ah 1978 1980 - Ap Sun>=15 2 1 D --R Ah 1979 o - S 30 2 0 S --R Ah 1980 o - S 25 2 0 S -+-5 BS E%sT 1976 -+-5 u E%sT -+R BB 1977 o - Jun 12 2 1 D -+R BB 1977 1978 - O Sun>=1 2 0 S -+R BB 1978 1980 - Ap Sun>=15 2 1 D -+R BB 1979 o - S 30 2 0 S -+R BB 1980 o - S 25 2 0 S - Z America/Barbados -3:58:29 - LMT 1924 - -3:58:29 - BMT 1932 ---4 Ah A%sT --R Ai 1918 1942 - O Sun>=2 0 0:30 -0530 --R Ai 1919 1943 - F Sun>=9 0 0 CST --R Ai 1973 o - D 5 0 1 CDT --R Ai 1974 o - F 9 0 0 CST --R Ai 1982 o - D 18 0 1 CDT --R Ai 1983 o - F 12 0 0 CST -+-4 BB A%sT -+R BZ 1918 1942 - O Sun>=2 0 0:30 -0530 -+R BZ 1919 1943 - F Sun>=9 0 0 CST -+R BZ 1973 o - D 5 0 1 CDT -+R BZ 1974 o - F 9 0 0 CST -+R BZ 1982 o - D 18 0 1 CDT -+R BZ 1983 o - F 12 0 0 CST - Z America/Belize -5:52:48 - LMT 1912 Ap ---6 Ai %s -+-6 BZ %s - Z Atlantic/Bermuda -4:19:18 - LMT 1930 Ja 1 2 - -4 - AST 1974 Ap 28 2 ---4 AU A%sT 1976 ---4 AF A%sT --R Aj 1979 1980 - F lastSun 0 1 D --R Aj 1979 1980 - Jun Sun>=1 0 0 S --R Aj 1991 1992 - Ja Sat>=15 0 1 D --R Aj 1991 o - Jul 1 0 0 S --R Aj 1992 o - Mar 15 0 0 S -+-4 C A%sT 1976 -+-4 u A%sT -+R CR 1979 1980 - F lastSun 0 1 D -+R CR 1979 1980 - Jun Sun>=1 0 0 S -+R CR 1991 1992 - Ja Sat>=15 0 1 D -+R CR 1991 o - Jul 1 0 0 S -+R CR 1992 o - Mar 15 0 0 S - Z America/Costa_Rica -5:36:13 - LMT 1890 - -5:36:13 - SJMT 1921 Ja 15 ---6 Aj C%sT --R Ak 1928 o - Jun 10 0 1 D --R Ak 1928 o - O 10 0 0 S --R Ak 1940 1942 - Jun Sun>=1 0 1 D --R Ak 1940 1942 - S Sun>=1 0 0 S --R Ak 1945 1946 - Jun Sun>=1 0 1 D --R Ak 1945 1946 - S Sun>=1 0 0 S --R Ak 1965 o - Jun 1 0 1 D --R Ak 1965 o - S 30 0 0 S --R Ak 1966 o - May 29 0 1 D --R Ak 1966 o - O 2 0 0 S --R Ak 1967 o - Ap 8 0 1 D --R Ak 1967 1968 - S Sun>=8 0 0 S --R Ak 1968 o - Ap 14 0 1 D --R Ak 1969 1977 - Ap lastSun 0 1 D --R Ak 1969 1971 - O lastSun 0 0 S --R Ak 1972 1974 - O 8 0 0 S --R Ak 1975 1977 - O lastSun 0 0 S --R Ak 1978 o - May 7 0 1 D --R Ak 1978 1990 - O Sun>=8 0 0 S --R Ak 1979 1980 - Mar Sun>=15 0 1 D --R Ak 1981 1985 - May Sun>=5 0 1 D --R Ak 1986 1989 - Mar Sun>=14 0 1 D --R Ak 1990 1997 - Ap Sun>=1 0 1 D --R Ak 1991 1995 - O Sun>=8 0s 0 S --R Ak 1996 o - O 6 0s 0 S --R Ak 1997 o - O 12 0s 0 S --R Ak 1998 1999 - Mar lastSun 0s 1 D --R Ak 1998 2003 - O lastSun 0s 0 S --R Ak 2000 2003 - Ap Sun>=1 0s 1 D --R Ak 2004 o - Mar lastSun 0s 1 D --R Ak 2006 2010 - O lastSun 0s 0 S --R Ak 2007 o - Mar Sun>=8 0s 1 D --R Ak 2008 o - Mar Sun>=15 0s 1 D --R Ak 2009 2010 - Mar Sun>=8 0s 1 D --R Ak 2011 o - Mar Sun>=15 0s 1 D --R Ak 2011 o - N 13 0s 0 S --R Ak 2012 o - Ap 1 0s 1 D --R Ak 2012 ma - N Sun>=1 0s 0 S --R Ak 2013 ma - Mar Sun>=8 0s 1 D -+-6 CR C%sT -+R Q 1928 o - Jun 10 0 1 D -+R Q 1928 o - O 10 0 0 S -+R Q 1940 1942 - Jun Sun>=1 0 1 D -+R Q 1940 1942 - S Sun>=1 0 0 S -+R Q 1945 1946 - Jun Sun>=1 0 1 D -+R Q 1945 1946 - S Sun>=1 0 0 S -+R Q 1965 o - Jun 1 0 1 D -+R Q 1965 o - S 30 0 0 S -+R Q 1966 o - May 29 0 1 D -+R Q 1966 o - O 2 0 0 S -+R Q 1967 o - Ap 8 0 1 D -+R Q 1967 1968 - S Sun>=8 0 0 S -+R Q 1968 o - Ap 14 0 1 D -+R Q 1969 1977 - Ap lastSun 0 1 D -+R Q 1969 1971 - O lastSun 0 0 S -+R Q 1972 1974 - O 8 0 0 S -+R Q 1975 1977 - O lastSun 0 0 S -+R Q 1978 o - May 7 0 1 D -+R Q 1978 1990 - O Sun>=8 0 0 S -+R Q 1979 1980 - Mar Sun>=15 0 1 D -+R Q 1981 1985 - May Sun>=5 0 1 D -+R Q 1986 1989 - Mar Sun>=14 0 1 D -+R Q 1990 1997 - Ap Sun>=1 0 1 D -+R Q 1991 1995 - O Sun>=8 0s 0 S -+R Q 1996 o - O 6 0s 0 S -+R Q 1997 o - O 12 0s 0 S -+R Q 1998 1999 - Mar lastSun 0s 1 D -+R Q 1998 2003 - O lastSun 0s 0 S -+R Q 2000 2003 - Ap Sun>=1 0s 1 D -+R Q 2004 o - Mar lastSun 0s 1 D -+R Q 2006 2010 - O lastSun 0s 0 S -+R Q 2007 o - Mar Sun>=8 0s 1 D -+R Q 2008 o - Mar Sun>=15 0s 1 D -+R Q 2009 2010 - Mar Sun>=8 0s 1 D -+R Q 2011 o - Mar Sun>=15 0s 1 D -+R Q 2011 o - N 13 0s 0 S -+R Q 2012 o - Ap 1 0s 1 D -+R Q 2012 ma - N Sun>=1 0s 0 S -+R Q 2013 ma - Mar Sun>=8 0s 1 D - Z America/Havana -5:29:28 - LMT 1890 - -5:29:36 - HMT 1925 Jul 19 12 ---5 Ak C%sT --R Al 1966 o - O 30 0 1 EDT --R Al 1967 o - F 28 0 0 EST --R Al 1969 1973 - O lastSun 0 0:30 -0430 --R Al 1970 o - F 21 0 0 EST --R Al 1971 o - Ja 20 0 0 EST --R Al 1972 1974 - Ja 21 0 0 EST -+-5 Q C%sT -+R DO 1966 o - O 30 0 1 EDT -+R DO 1967 o - F 28 0 0 EST -+R DO 1969 1973 - O lastSun 0 0:30 -0430 -+R DO 1970 o - F 21 0 0 EST -+R DO 1971 o - Ja 20 0 0 EST -+R DO 1972 1974 - Ja 21 0 0 EST - Z America/Santo_Domingo -4:39:36 - LMT 1890 - -4:40 - SDMT 1933 Ap 1 12 ---5 Al %s 1974 O 27 -+-5 DO %s 1974 O 27 - -4 - AST 2000 O 29 2 ---5 AF E%sT 2000 D 3 1 -+-5 u E%sT 2000 D 3 1 - -4 - AST --R Am 1987 1988 - May Sun>=1 0 1 D --R Am 1987 1988 - S lastSun 0 0 S -+R SV 1987 1988 - May Sun>=1 0 1 D -+R SV 1987 1988 - S lastSun 0 0 S - Z America/El_Salvador -5:56:48 - LMT 1921 ---6 Am C%sT --R An 1973 o - N 25 0 1 D --R An 1974 o - F 24 0 0 S --R An 1983 o - May 21 0 1 D --R An 1983 o - S 22 0 0 S --R An 1991 o - Mar 23 0 1 D --R An 1991 o - S 7 0 0 S --R An 2006 o - Ap 30 0 1 D --R An 2006 o - O 1 0 0 S -+-6 SV C%sT -+R GT 1973 o - N 25 0 1 D -+R GT 1974 o - F 24 0 0 S -+R GT 1983 o - May 21 0 1 D -+R GT 1983 o - S 22 0 0 S -+R GT 1991 o - Mar 23 0 1 D -+R GT 1991 o - S 7 0 0 S -+R GT 2006 o - Ap 30 0 1 D -+R GT 2006 o - O 1 0 0 S - Z America/Guatemala -6:2:4 - LMT 1918 O 5 ---6 An C%sT --R Ao 1983 o - May 8 0 1 D --R Ao 1984 1987 - Ap lastSun 0 1 D --R Ao 1983 1987 - O lastSun 0 0 S --R Ao 1988 1997 - Ap Sun>=1 1s 1 D --R Ao 1988 1997 - O lastSun 1s 0 S --R Ao 2005 2006 - Ap Sun>=1 0 1 D --R Ao 2005 2006 - O lastSun 0 0 S --R Ao 2012 2015 - Mar Sun>=8 2 1 D --R Ao 2012 2015 - N Sun>=1 2 0 S --R Ao 2017 ma - Mar Sun>=8 2 1 D --R Ao 2017 ma - N Sun>=1 2 0 S -+-6 GT C%sT -+R HT 1983 o - May 8 0 1 D -+R HT 1984 1987 - Ap lastSun 0 1 D -+R HT 1983 1987 - O lastSun 0 0 S -+R HT 1988 1997 - Ap Sun>=1 1s 1 D -+R HT 1988 1997 - O lastSun 1s 0 S -+R HT 2005 2006 - Ap Sun>=1 0 1 D -+R HT 2005 2006 - O lastSun 0 0 S -+R HT 2012 2015 - Mar Sun>=8 2 1 D -+R HT 2012 2015 - N Sun>=1 2 0 S -+R HT 2017 ma - Mar Sun>=8 2 1 D -+R HT 2017 ma - N Sun>=1 2 0 S - Z America/Port-au-Prince -4:49:20 - LMT 1890 - -4:49 - PPMT 1917 Ja 24 12 ---5 Ao E%sT --R Ap 1987 1988 - May Sun>=1 0 1 D --R Ap 1987 1988 - S lastSun 0 0 S --R Ap 2006 o - May Sun>=1 0 1 D --R Ap 2006 o - Au M>=1 0 0 S -+-5 HT E%sT -+R HN 1987 1988 - May Sun>=1 0 1 D -+R HN 1987 1988 - S lastSun 0 0 S -+R HN 2006 o - May Sun>=1 0 1 D -+R HN 2006 o - Au M>=1 0 0 S - Z America/Tegucigalpa -5:48:52 - LMT 1921 Ap ---6 Ap C%sT -+-6 HN C%sT - Z America/Jamaica -5:7:10 - LMT 1890 - -5:7:10 - KMT 1912 F - -5 - EST 1974 ---5 AF E%sT 1984 -+-5 u E%sT 1984 - -5 - EST - Z America/Martinique -4:4:20 - LMT 1890 - -4:4:20 - FFMT 1911 May - -4 - AST 1980 Ap 6 - -4 1 ADT 1980 S 28 - -4 - AST --R Aq 1979 1980 - Mar Sun>=16 0 1 D --R Aq 1979 1980 - Jun M>=23 0 0 S --R Aq 2005 o - Ap 10 0 1 D --R Aq 2005 o - O Sun>=1 0 0 S --R Aq 2006 o - Ap 30 2 1 D --R Aq 2006 o - O Sun>=1 1 0 S -+R NI 1979 1980 - Mar Sun>=16 0 1 D -+R NI 1979 1980 - Jun M>=23 0 0 S -+R NI 2005 o - Ap 10 0 1 D -+R NI 2005 o - O Sun>=1 0 0 S -+R NI 2006 o - Ap 30 2 1 D -+R NI 2006 o - O Sun>=1 1 0 S - Z America/Managua -5:45:8 - LMT 1890 - -5:45:12 - MMT 1934 Jun 23 - -6 - CST 1973 May - -5 - EST 1975 F 16 ---6 Aq C%sT 1992 Ja 1 4 -+-6 NI C%sT 1992 Ja 1 4 - -5 - EST 1992 S 24 - -6 - CST 1993 - -5 - EST 1997 ---6 Aq C%sT -+-6 NI C%sT - Z America/Panama -5:18:8 - LMT 1890 - -5:19:36 - CMT 1908 Ap 22 - -5 - EST - Li America/Panama America/Cayman - Z America/Puerto_Rico -4:24:25 - LMT 1899 Mar 28 12 - -4 - AST 1942 May 3 ---4 AF A%sT 1946 -+-4 u A%sT 1946 - -4 - AST - Z America/Miquelon -3:44:40 - LMT 1911 May 15 - -4 - AST 1980 May - -3 - -03 1987 ---3 AU -03/-02 -+-3 C -03/-02 - Z America/Grand_Turk -4:44:32 - LMT 1890 - -5:7:10 - KMT 1912 F - -5 - EST 1979 ---5 AF E%sT 2015 N Sun>=1 2 -+-5 u E%sT 2015 N Sun>=1 2 - -4 - AST 2018 Mar 11 3 ---5 AF E%sT --R Ar 1930 o - D 1 0 1 - --R Ar 1931 o - Ap 1 0 0 - --R Ar 1931 o - O 15 0 1 - --R Ar 1932 1940 - Mar 1 0 0 - --R Ar 1932 1939 - N 1 0 1 - --R Ar 1940 o - Jul 1 0 1 - --R Ar 1941 o - Jun 15 0 0 - --R Ar 1941 o - O 15 0 1 - --R Ar 1943 o - Au 1 0 0 - --R Ar 1943 o - O 15 0 1 - --R Ar 1946 o - Mar 1 0 0 - --R Ar 1946 o - O 1 0 1 - --R Ar 1963 o - O 1 0 0 - --R Ar 1963 o - D 15 0 1 - --R Ar 1964 1966 - Mar 1 0 0 - --R Ar 1964 1966 - O 15 0 1 - --R Ar 1967 o - Ap 2 0 0 - --R Ar 1967 1968 - O Sun>=1 0 1 - --R Ar 1968 1969 - Ap Sun>=1 0 0 - --R Ar 1974 o - Ja 23 0 1 - --R Ar 1974 o - May 1 0 0 - --R Ar 1988 o - D 1 0 1 - --R Ar 1989 1993 - Mar Sun>=1 0 0 - --R Ar 1989 1992 - O Sun>=15 0 1 - --R Ar 1999 o - O Sun>=1 0 1 - --R Ar 2000 o - Mar 3 0 0 - --R Ar 2007 o - D 30 0 1 - --R Ar 2008 2009 - Mar Sun>=15 0 0 - --R Ar 2008 o - O Sun>=15 0 1 - -+-5 u E%sT -+R A 1930 o - D 1 0 1 - -+R A 1931 o - Ap 1 0 0 - -+R A 1931 o - O 15 0 1 - -+R A 1932 1940 - Mar 1 0 0 - -+R A 1932 1939 - N 1 0 1 - -+R A 1940 o - Jul 1 0 1 - -+R A 1941 o - Jun 15 0 0 - -+R A 1941 o - O 15 0 1 - -+R A 1943 o - Au 1 0 0 - -+R A 1943 o - O 15 0 1 - -+R A 1946 o - Mar 1 0 0 - -+R A 1946 o - O 1 0 1 - -+R A 1963 o - O 1 0 0 - -+R A 1963 o - D 15 0 1 - -+R A 1964 1966 - Mar 1 0 0 - -+R A 1964 1966 - O 15 0 1 - -+R A 1967 o - Ap 2 0 0 - -+R A 1967 1968 - O Sun>=1 0 1 - -+R A 1968 1969 - Ap Sun>=1 0 0 - -+R A 1974 o - Ja 23 0 1 - -+R A 1974 o - May 1 0 0 - -+R A 1988 o - D 1 0 1 - -+R A 1989 1993 - Mar Sun>=1 0 0 - -+R A 1989 1992 - O Sun>=15 0 1 - -+R A 1999 o - O Sun>=1 0 1 - -+R A 2000 o - Mar 3 0 0 - -+R A 2007 o - D 30 0 1 - -+R A 2008 2009 - Mar Sun>=15 0 0 - -+R A 2008 o - O Sun>=15 0 1 - - Z America/Argentina/Buenos_Aires -3:53:48 - LMT 1894 O 31 - -4:16:48 - CMT 1920 May - -4 - -04 1930 D ---4 Ar -04/-03 1969 O 5 ---3 Ar -03/-02 1999 O 3 ---4 Ar -04/-03 2000 Mar 3 ---3 Ar -03/-02 -+-4 A -04/-03 1969 O 5 -+-3 A -03/-02 1999 O 3 -+-4 A -04/-03 2000 Mar 3 -+-3 A -03/-02 - Z America/Argentina/Cordoba -4:16:48 - LMT 1894 O 31 - -4:16:48 - CMT 1920 May - -4 - -04 1930 D ---4 Ar -04/-03 1969 O 5 ---3 Ar -03/-02 1991 Mar 3 -+-4 A -04/-03 1969 O 5 -+-3 A -03/-02 1991 Mar 3 - -4 - -04 1991 O 20 ---3 Ar -03/-02 1999 O 3 ---4 Ar -04/-03 2000 Mar 3 ---3 Ar -03/-02 -+-3 A -03/-02 1999 O 3 -+-4 A -04/-03 2000 Mar 3 -+-3 A -03/-02 - Z America/Argentina/Salta -4:21:40 - LMT 1894 O 31 - -4:16:48 - CMT 1920 May - -4 - -04 1930 D ---4 Ar -04/-03 1969 O 5 ---3 Ar -03/-02 1991 Mar 3 -+-4 A -04/-03 1969 O 5 -+-3 A -03/-02 1991 Mar 3 - -4 - -04 1991 O 20 ---3 Ar -03/-02 1999 O 3 ---4 Ar -04/-03 2000 Mar 3 ---3 Ar -03/-02 2008 O 18 -+-3 A -03/-02 1999 O 3 -+-4 A -04/-03 2000 Mar 3 -+-3 A -03/-02 2008 O 18 - -3 - -03 - Z America/Argentina/Tucuman -4:20:52 - LMT 1894 O 31 - -4:16:48 - CMT 1920 May - -4 - -04 1930 D ---4 Ar -04/-03 1969 O 5 ---3 Ar -03/-02 1991 Mar 3 -+-4 A -04/-03 1969 O 5 -+-3 A -03/-02 1991 Mar 3 - -4 - -04 1991 O 20 ---3 Ar -03/-02 1999 O 3 ---4 Ar -04/-03 2000 Mar 3 -+-3 A -03/-02 1999 O 3 -+-4 A -04/-03 2000 Mar 3 - -3 - -03 2004 Jun - -4 - -04 2004 Jun 13 ---3 Ar -03/-02 -+-3 A -03/-02 - Z America/Argentina/La_Rioja -4:27:24 - LMT 1894 O 31 - -4:16:48 - CMT 1920 May - -4 - -04 1930 D ---4 Ar -04/-03 1969 O 5 ---3 Ar -03/-02 1991 Mar -+-4 A -04/-03 1969 O 5 -+-3 A -03/-02 1991 Mar - -4 - -04 1991 May 7 ---3 Ar -03/-02 1999 O 3 ---4 Ar -04/-03 2000 Mar 3 -+-3 A -03/-02 1999 O 3 -+-4 A -04/-03 2000 Mar 3 - -3 - -03 2004 Jun - -4 - -04 2004 Jun 20 ---3 Ar -03/-02 2008 O 18 -+-3 A -03/-02 2008 O 18 - -3 - -03 - Z America/Argentina/San_Juan -4:34:4 - LMT 1894 O 31 - -4:16:48 - CMT 1920 May - -4 - -04 1930 D ---4 Ar -04/-03 1969 O 5 ---3 Ar -03/-02 1991 Mar -+-4 A -04/-03 1969 O 5 -+-3 A -03/-02 1991 Mar - -4 - -04 1991 May 7 ---3 Ar -03/-02 1999 O 3 ---4 Ar -04/-03 2000 Mar 3 -+-3 A -03/-02 1999 O 3 -+-4 A -04/-03 2000 Mar 3 - -3 - -03 2004 May 31 - -4 - -04 2004 Jul 25 ---3 Ar -03/-02 2008 O 18 -+-3 A -03/-02 2008 O 18 - -3 - -03 - Z America/Argentina/Jujuy -4:21:12 - LMT 1894 O 31 - -4:16:48 - CMT 1920 May - -4 - -04 1930 D ---4 Ar -04/-03 1969 O 5 ---3 Ar -03/-02 1990 Mar 4 -+-4 A -04/-03 1969 O 5 -+-3 A -03/-02 1990 Mar 4 - -4 - -04 1990 O 28 - -4 1 -03 1991 Mar 17 - -4 - -04 1991 O 6 - -3 1 -02 1992 ---3 Ar -03/-02 1999 O 3 ---4 Ar -04/-03 2000 Mar 3 ---3 Ar -03/-02 2008 O 18 -+-3 A -03/-02 1999 O 3 -+-4 A -04/-03 2000 Mar 3 -+-3 A -03/-02 2008 O 18 - -3 - -03 - Z America/Argentina/Catamarca -4:23:8 - LMT 1894 O 31 - -4:16:48 - CMT 1920 May - -4 - -04 1930 D ---4 Ar -04/-03 1969 O 5 ---3 Ar -03/-02 1991 Mar 3 -+-4 A -04/-03 1969 O 5 -+-3 A -03/-02 1991 Mar 3 - -4 - -04 1991 O 20 ---3 Ar -03/-02 1999 O 3 ---4 Ar -04/-03 2000 Mar 3 -+-3 A -03/-02 1999 O 3 -+-4 A -04/-03 2000 Mar 3 - -3 - -03 2004 Jun - -4 - -04 2004 Jun 20 ---3 Ar -03/-02 2008 O 18 -+-3 A -03/-02 2008 O 18 - -3 - -03 - Z America/Argentina/Mendoza -4:35:16 - LMT 1894 O 31 - -4:16:48 - CMT 1920 May - -4 - -04 1930 D ---4 Ar -04/-03 1969 O 5 ---3 Ar -03/-02 1990 Mar 4 -+-4 A -04/-03 1969 O 5 -+-3 A -03/-02 1990 Mar 4 - -4 - -04 1990 O 15 - -4 1 -03 1991 Mar - -4 - -04 1991 O 15 - -4 1 -03 1992 Mar - -4 - -04 1992 O 18 ---3 Ar -03/-02 1999 O 3 ---4 Ar -04/-03 2000 Mar 3 -+-3 A -03/-02 1999 O 3 -+-4 A -04/-03 2000 Mar 3 - -3 - -03 2004 May 23 - -4 - -04 2004 S 26 ---3 Ar -03/-02 2008 O 18 -+-3 A -03/-02 2008 O 18 - -3 - -03 --R As 2008 2009 - Mar Sun>=8 0 0 - --R As 2007 2008 - O Sun>=8 0 1 - -+R Sa 2008 2009 - Mar Sun>=8 0 0 - -+R Sa 2007 2008 - O Sun>=8 0 1 - - Z America/Argentina/San_Luis -4:25:24 - LMT 1894 O 31 - -4:16:48 - CMT 1920 May - -4 - -04 1930 D ---4 Ar -04/-03 1969 O 5 ---3 Ar -03/-02 1990 -+-4 A -04/-03 1969 O 5 -+-3 A -03/-02 1990 - -3 1 -02 1990 Mar 14 - -4 - -04 1990 O 15 - -4 1 -03 1991 Mar -@@ -3590,286 +3607,288 @@ Z America/Argentina/San_Luis -4:25:24 - LMT 1894 O 31 - -4 1 -03 2000 Mar 3 - -3 - -03 2004 May 31 - -4 - -04 2004 Jul 25 ---3 Ar -03/-02 2008 Ja 21 ---4 As -04/-03 2009 O 11 -+-3 A -03/-02 2008 Ja 21 -+-4 Sa -04/-03 2009 O 11 - -3 - -03 - Z America/Argentina/Rio_Gallegos -4:36:52 - LMT 1894 O 31 - -4:16:48 - CMT 1920 May - -4 - -04 1930 D ---4 Ar -04/-03 1969 O 5 ---3 Ar -03/-02 1999 O 3 ---4 Ar -04/-03 2000 Mar 3 -+-4 A -04/-03 1969 O 5 -+-3 A -03/-02 1999 O 3 -+-4 A -04/-03 2000 Mar 3 - -3 - -03 2004 Jun - -4 - -04 2004 Jun 20 ---3 Ar -03/-02 2008 O 18 -+-3 A -03/-02 2008 O 18 - -3 - -03 - Z America/Argentina/Ushuaia -4:33:12 - LMT 1894 O 31 - -4:16:48 - CMT 1920 May - -4 - -04 1930 D ---4 Ar -04/-03 1969 O 5 ---3 Ar -03/-02 1999 O 3 ---4 Ar -04/-03 2000 Mar 3 -+-4 A -04/-03 1969 O 5 -+-3 A -03/-02 1999 O 3 -+-4 A -04/-03 2000 Mar 3 - -3 - -03 2004 May 30 - -4 - -04 2004 Jun 20 ---3 Ar -03/-02 2008 O 18 -+-3 A -03/-02 2008 O 18 - -3 - -03 - Li America/Curacao America/Aruba - Z America/La_Paz -4:32:36 - LMT 1890 - -4:32:36 - CMT 1931 O 15 - -4:32:36 1 BST 1932 Mar 21 - -4 - -04 --R At 1931 o - O 3 11 1 - --R At 1932 1933 - Ap 1 0 0 - --R At 1932 o - O 3 0 1 - --R At 1949 1952 - D 1 0 1 - --R At 1950 o - Ap 16 1 0 - --R At 1951 1952 - Ap 1 0 0 - --R At 1953 o - Mar 1 0 0 - --R At 1963 o - D 9 0 1 - --R At 1964 o - Mar 1 0 0 - --R At 1965 o - Ja 31 0 1 - --R At 1965 o - Mar 31 0 0 - --R At 1965 o - D 1 0 1 - --R At 1966 1968 - Mar 1 0 0 - --R At 1966 1967 - N 1 0 1 - --R At 1985 o - N 2 0 1 - --R At 1986 o - Mar 15 0 0 - --R At 1986 o - O 25 0 1 - --R At 1987 o - F 14 0 0 - --R At 1987 o - O 25 0 1 - --R At 1988 o - F 7 0 0 - --R At 1988 o - O 16 0 1 - --R At 1989 o - Ja 29 0 0 - --R At 1989 o - O 15 0 1 - --R At 1990 o - F 11 0 0 - --R At 1990 o - O 21 0 1 - --R At 1991 o - F 17 0 0 - --R At 1991 o - O 20 0 1 - --R At 1992 o - F 9 0 0 - --R At 1992 o - O 25 0 1 - --R At 1993 o - Ja 31 0 0 - --R At 1993 1995 - O Sun>=11 0 1 - --R At 1994 1995 - F Sun>=15 0 0 - --R At 1996 o - F 11 0 0 - --R At 1996 o - O 6 0 1 - --R At 1997 o - F 16 0 0 - --R At 1997 o - O 6 0 1 - --R At 1998 o - Mar 1 0 0 - --R At 1998 o - O 11 0 1 - --R At 1999 o - F 21 0 0 - --R At 1999 o - O 3 0 1 - --R At 2000 o - F 27 0 0 - --R At 2000 2001 - O Sun>=8 0 1 - --R At 2001 2006 - F Sun>=15 0 0 - --R At 2002 o - N 3 0 1 - --R At 2003 o - O 19 0 1 - --R At 2004 o - N 2 0 1 - --R At 2005 o - O 16 0 1 - --R At 2006 o - N 5 0 1 - --R At 2007 o - F 25 0 0 - --R At 2007 o - O Sun>=8 0 1 - --R At 2008 2017 - O Sun>=15 0 1 - --R At 2008 2011 - F Sun>=15 0 0 - --R At 2012 o - F Sun>=22 0 0 - --R At 2013 2014 - F Sun>=15 0 0 - --R At 2015 o - F Sun>=22 0 0 - --R At 2016 2022 - F Sun>=15 0 0 - --R At 2018 ma - N Sun>=1 0 1 - --R At 2023 o - F Sun>=22 0 0 - --R At 2024 2025 - F Sun>=15 0 0 - --R At 2026 o - F Sun>=22 0 0 - --R At 2027 2033 - F Sun>=15 0 0 - --R At 2034 o - F Sun>=22 0 0 - --R At 2035 2036 - F Sun>=15 0 0 - --R At 2037 o - F Sun>=22 0 0 - --R At 2038 ma - F Sun>=15 0 0 - -+R B 1931 o - O 3 11 1 - -+R B 1932 1933 - Ap 1 0 0 - -+R B 1932 o - O 3 0 1 - -+R B 1949 1952 - D 1 0 1 - -+R B 1950 o - Ap 16 1 0 - -+R B 1951 1952 - Ap 1 0 0 - -+R B 1953 o - Mar 1 0 0 - -+R B 1963 o - D 9 0 1 - -+R B 1964 o - Mar 1 0 0 - -+R B 1965 o - Ja 31 0 1 - -+R B 1965 o - Mar 31 0 0 - -+R B 1965 o - D 1 0 1 - -+R B 1966 1968 - Mar 1 0 0 - -+R B 1966 1967 - N 1 0 1 - -+R B 1985 o - N 2 0 1 - -+R B 1986 o - Mar 15 0 0 - -+R B 1986 o - O 25 0 1 - -+R B 1987 o - F 14 0 0 - -+R B 1987 o - O 25 0 1 - -+R B 1988 o - F 7 0 0 - -+R B 1988 o - O 16 0 1 - -+R B 1989 o - Ja 29 0 0 - -+R B 1989 o - O 15 0 1 - -+R B 1990 o - F 11 0 0 - -+R B 1990 o - O 21 0 1 - -+R B 1991 o - F 17 0 0 - -+R B 1991 o - O 20 0 1 - -+R B 1992 o - F 9 0 0 - -+R B 1992 o - O 25 0 1 - -+R B 1993 o - Ja 31 0 0 - -+R B 1993 1995 - O Sun>=11 0 1 - -+R B 1994 1995 - F Sun>=15 0 0 - -+R B 1996 o - F 11 0 0 - -+R B 1996 o - O 6 0 1 - -+R B 1997 o - F 16 0 0 - -+R B 1997 o - O 6 0 1 - -+R B 1998 o - Mar 1 0 0 - -+R B 1998 o - O 11 0 1 - -+R B 1999 o - F 21 0 0 - -+R B 1999 o - O 3 0 1 - -+R B 2000 o - F 27 0 0 - -+R B 2000 2001 - O Sun>=8 0 1 - -+R B 2001 2006 - F Sun>=15 0 0 - -+R B 2002 o - N 3 0 1 - -+R B 2003 o - O 19 0 1 - -+R B 2004 o - N 2 0 1 - -+R B 2005 o - O 16 0 1 - -+R B 2006 o - N 5 0 1 - -+R B 2007 o - F 25 0 0 - -+R B 2007 o - O Sun>=8 0 1 - -+R B 2008 2017 - O Sun>=15 0 1 - -+R B 2008 2011 - F Sun>=15 0 0 - -+R B 2012 o - F Sun>=22 0 0 - -+R B 2013 2014 - F Sun>=15 0 0 - -+R B 2015 o - F Sun>=22 0 0 - -+R B 2016 2022 - F Sun>=15 0 0 - -+R B 2018 ma - N Sun>=1 0 1 - -+R B 2023 o - F Sun>=22 0 0 - -+R B 2024 2025 - F Sun>=15 0 0 - -+R B 2026 o - F Sun>=22 0 0 - -+R B 2027 2033 - F Sun>=15 0 0 - -+R B 2034 o - F Sun>=22 0 0 - -+R B 2035 2036 - F Sun>=15 0 0 - -+R B 2037 o - F Sun>=22 0 0 - -+R B 2038 ma - F Sun>=15 0 0 - - Z America/Noronha -2:9:40 - LMT 1914 ---2 At -02/-01 1990 S 17 -+-2 B -02/-01 1990 S 17 - -2 - -02 1999 S 30 ---2 At -02/-01 2000 O 15 -+-2 B -02/-01 2000 O 15 - -2 - -02 2001 S 13 ---2 At -02/-01 2002 O -+-2 B -02/-01 2002 O - -2 - -02 - Z America/Belem -3:13:56 - LMT 1914 ---3 At -03/-02 1988 S 12 -+-3 B -03/-02 1988 S 12 - -3 - -03 - Z America/Santarem -3:38:48 - LMT 1914 ---4 At -04/-03 1988 S 12 -+-4 B -04/-03 1988 S 12 - -4 - -04 2008 Jun 24 - -3 - -03 - Z America/Fortaleza -2:34 - LMT 1914 ---3 At -03/-02 1990 S 17 -+-3 B -03/-02 1990 S 17 - -3 - -03 1999 S 30 ---3 At -03/-02 2000 O 22 -+-3 B -03/-02 2000 O 22 - -3 - -03 2001 S 13 ---3 At -03/-02 2002 O -+-3 B -03/-02 2002 O - -3 - -03 - Z America/Recife -2:19:36 - LMT 1914 ---3 At -03/-02 1990 S 17 -+-3 B -03/-02 1990 S 17 - -3 - -03 1999 S 30 ---3 At -03/-02 2000 O 15 -+-3 B -03/-02 2000 O 15 - -3 - -03 2001 S 13 ---3 At -03/-02 2002 O -+-3 B -03/-02 2002 O - -3 - -03 - Z America/Araguaina -3:12:48 - LMT 1914 ---3 At -03/-02 1990 S 17 -+-3 B -03/-02 1990 S 17 - -3 - -03 1995 S 14 ---3 At -03/-02 2003 S 24 -+-3 B -03/-02 2003 S 24 - -3 - -03 2012 O 21 ---3 At -03/-02 2013 S -+-3 B -03/-02 2013 S - -3 - -03 - Z America/Maceio -2:22:52 - LMT 1914 ---3 At -03/-02 1990 S 17 -+-3 B -03/-02 1990 S 17 - -3 - -03 1995 O 13 ---3 At -03/-02 1996 S 4 -+-3 B -03/-02 1996 S 4 - -3 - -03 1999 S 30 ---3 At -03/-02 2000 O 22 -+-3 B -03/-02 2000 O 22 - -3 - -03 2001 S 13 ---3 At -03/-02 2002 O -+-3 B -03/-02 2002 O - -3 - -03 - Z America/Bahia -2:34:4 - LMT 1914 ---3 At -03/-02 2003 S 24 -+-3 B -03/-02 2003 S 24 - -3 - -03 2011 O 16 ---3 At -03/-02 2012 O 21 -+-3 B -03/-02 2012 O 21 - -3 - -03 - Z America/Sao_Paulo -3:6:28 - LMT 1914 ---3 At -03/-02 1963 O 23 -+-3 B -03/-02 1963 O 23 - -3 1 -02 1964 ---3 At -03/-02 -+-3 B -03/-02 - Z America/Campo_Grande -3:38:28 - LMT 1914 ---4 At -04/-03 -+-4 B -04/-03 - Z America/Cuiaba -3:44:20 - LMT 1914 ---4 At -04/-03 2003 S 24 -+-4 B -04/-03 2003 S 24 - -4 - -04 2004 O ---4 At -04/-03 -+-4 B -04/-03 - Z America/Porto_Velho -4:15:36 - LMT 1914 ---4 At -04/-03 1988 S 12 -+-4 B -04/-03 1988 S 12 - -4 - -04 - Z America/Boa_Vista -4:2:40 - LMT 1914 ---4 At -04/-03 1988 S 12 -+-4 B -04/-03 1988 S 12 - -4 - -04 1999 S 30 ---4 At -04/-03 2000 O 15 -+-4 B -04/-03 2000 O 15 - -4 - -04 - Z America/Manaus -4:0:4 - LMT 1914 ---4 At -04/-03 1988 S 12 -+-4 B -04/-03 1988 S 12 - -4 - -04 1993 S 28 ---4 At -04/-03 1994 S 22 -+-4 B -04/-03 1994 S 22 - -4 - -04 - Z America/Eirunepe -4:39:28 - LMT 1914 ---5 At -05/-04 1988 S 12 -+-5 B -05/-04 1988 S 12 - -5 - -05 1993 S 28 ---5 At -05/-04 1994 S 22 -+-5 B -05/-04 1994 S 22 - -5 - -05 2008 Jun 24 - -4 - -04 2013 N 10 - -5 - -05 - Z America/Rio_Branco -4:31:12 - LMT 1914 ---5 At -05/-04 1988 S 12 -+-5 B -05/-04 1988 S 12 - -5 - -05 2008 Jun 24 - -4 - -04 2013 N 10 - -5 - -05 --R Au 1927 1931 - S 1 0 1 - --R Au 1928 1932 - Ap 1 0 0 - --R Au 1968 o - N 3 4u 1 - --R Au 1969 o - Mar 30 3u 0 - --R Au 1969 o - N 23 4u 1 - --R Au 1970 o - Mar 29 3u 0 - --R Au 1971 o - Mar 14 3u 0 - --R Au 1970 1972 - O Sun>=9 4u 1 - --R Au 1972 1986 - Mar Sun>=9 3u 0 - --R Au 1973 o - S 30 4u 1 - --R Au 1974 1987 - O Sun>=9 4u 1 - --R Au 1987 o - Ap 12 3u 0 - --R Au 1988 1990 - Mar Sun>=9 3u 0 - --R Au 1988 1989 - O Sun>=9 4u 1 - --R Au 1990 o - S 16 4u 1 - --R Au 1991 1996 - Mar Sun>=9 3u 0 - --R Au 1991 1997 - O Sun>=9 4u 1 - --R Au 1997 o - Mar 30 3u 0 - --R Au 1998 o - Mar Sun>=9 3u 0 - --R Au 1998 o - S 27 4u 1 - --R Au 1999 o - Ap 4 3u 0 - --R Au 1999 2010 - O Sun>=9 4u 1 - --R Au 2000 2007 - Mar Sun>=9 3u 0 - --R Au 2008 o - Mar 30 3u 0 - --R Au 2009 o - Mar Sun>=9 3u 0 - --R Au 2010 o - Ap Sun>=1 3u 0 - --R Au 2011 o - May Sun>=2 3u 0 - --R Au 2011 o - Au Sun>=16 4u 1 - --R Au 2012 2014 - Ap Sun>=23 3u 0 - --R Au 2012 2014 - S Sun>=2 4u 1 - --R Au 2016 ma - May Sun>=9 3u 0 - --R Au 2016 ma - Au Sun>=9 4u 1 - -+R x 1927 1931 - S 1 0 1 - -+R x 1928 1932 - Ap 1 0 0 - -+R x 1968 o - N 3 4u 1 - -+R x 1969 o - Mar 30 3u 0 - -+R x 1969 o - N 23 4u 1 - -+R x 1970 o - Mar 29 3u 0 - -+R x 1971 o - Mar 14 3u 0 - -+R x 1970 1972 - O Sun>=9 4u 1 - -+R x 1972 1986 - Mar Sun>=9 3u 0 - -+R x 1973 o - S 30 4u 1 - -+R x 1974 1987 - O Sun>=9 4u 1 - -+R x 1987 o - Ap 12 3u 0 - -+R x 1988 1990 - Mar Sun>=9 3u 0 - -+R x 1988 1989 - O Sun>=9 4u 1 - -+R x 1990 o - S 16 4u 1 - -+R x 1991 1996 - Mar Sun>=9 3u 0 - -+R x 1991 1997 - O Sun>=9 4u 1 - -+R x 1997 o - Mar 30 3u 0 - -+R x 1998 o - Mar Sun>=9 3u 0 - -+R x 1998 o - S 27 4u 1 - -+R x 1999 o - Ap 4 3u 0 - -+R x 1999 2010 - O Sun>=9 4u 1 - -+R x 2000 2007 - Mar Sun>=9 3u 0 - -+R x 2008 o - Mar 30 3u 0 - -+R x 2009 o - Mar Sun>=9 3u 0 - -+R x 2010 o - Ap Sun>=1 3u 0 - -+R x 2011 o - May Sun>=2 3u 0 - -+R x 2011 o - Au Sun>=16 4u 1 - -+R x 2012 2014 - Ap Sun>=23 3u 0 - -+R x 2012 2014 - S Sun>=2 4u 1 - -+R x 2016 2018 - May Sun>=9 3u 0 - -+R x 2016 2018 - Au Sun>=9 4u 1 - -+R x 2019 ma - Ap Sun>=2 3u 0 - -+R x 2019 ma - S Sun>=2 4u 1 - - Z America/Santiago -4:42:46 - LMT 1890 - -4:42:46 - SMT 1910 Ja 10 - -5 - -05 1916 Jul - -4:42:46 - SMT 1918 S 10 - -4 - -04 1919 Jul - -4:42:46 - SMT 1927 S ---5 Au -05/-04 1932 S -+-5 x -05/-04 1932 S - -4 - -04 1942 Jun - -5 - -05 1942 Au - -4 - -04 1946 Jul 15 - -4 1 -03 1946 S - -4 - -04 1947 Ap - -5 - -05 1947 May 21 23 ---4 Au -04/-03 -+-4 x -04/-03 - Z America/Punta_Arenas -4:43:40 - LMT 1890 - -4:42:46 - SMT 1910 Ja 10 - -5 - -05 1916 Jul - -4:42:46 - SMT 1918 S 10 - -4 - -04 1919 Jul - -4:42:46 - SMT 1927 S ---5 Au -05/-04 1932 S -+-5 x -05/-04 1932 S - -4 - -04 1942 Jun - -5 - -05 1942 Au - -4 - -04 1947 Ap - -5 - -05 1947 May 21 23 ---4 Au -04/-03 2016 D 4 -+-4 x -04/-03 2016 D 4 - -3 - -03 - Z Pacific/Easter -7:17:28 - LMT 1890 - -7:17:28 - EMT 1932 S ---7 Au -07/-06 1982 Mar 14 3u ---6 Au -06/-05 -+-7 x -07/-06 1982 Mar 14 3u -+-6 x -06/-05 - Z Antarctica/Palmer 0 - -00 1965 ---4 Ar -04/-03 1969 O 5 ---3 Ar -03/-02 1982 May ---4 Au -04/-03 2016 D 4 -+-4 A -04/-03 1969 O 5 -+-3 A -03/-02 1982 May -+-4 x -04/-03 2016 D 4 - -3 - -03 --R Av 1992 o - May 3 0 1 - --R Av 1993 o - Ap 4 0 0 - -+R CO 1992 o - May 3 0 1 - -+R CO 1993 o - Ap 4 0 0 - - Z America/Bogota -4:56:16 - LMT 1884 Mar 13 - -4:56:16 - BMT 1914 N 23 ---5 Av -05/-04 -+-5 CO -05/-04 - Z America/Curacao -4:35:47 - LMT 1912 F 12 - -4:30 - -0430 1965 - -4 - AST - Li America/Curacao America/Lower_Princes - Li America/Curacao America/Kralendijk --R Aw 1992 o - N 28 0 1 - --R Aw 1993 o - F 5 0 0 - -+R EC 1992 o - N 28 0 1 - -+R EC 1993 o - F 5 0 0 - - Z America/Guayaquil -5:19:20 - LMT 1890 - -5:14 - QMT 1931 ---5 Aw -05/-04 -+-5 EC -05/-04 - Z Pacific/Galapagos -5:58:24 - LMT 1931 - -5 - -05 1986 ---6 Aw -06/-05 --R Ax 1937 1938 - S lastSun 0 1 - --R Ax 1938 1942 - Mar Sun>=19 0 0 - --R Ax 1939 o - O 1 0 1 - --R Ax 1940 1942 - S lastSun 0 1 - --R Ax 1943 o - Ja 1 0 0 - --R Ax 1983 o - S lastSun 0 1 - --R Ax 1984 1985 - Ap lastSun 0 0 - --R Ax 1984 o - S 16 0 1 - --R Ax 1985 2000 - S Sun>=9 0 1 - --R Ax 1986 2000 - Ap Sun>=16 0 0 - --R Ax 2001 2010 - Ap Sun>=15 2 0 - --R Ax 2001 2010 - S Sun>=1 2 1 - -+-6 EC -06/-05 -+R FK 1937 1938 - S lastSun 0 1 - -+R FK 1938 1942 - Mar Sun>=19 0 0 - -+R FK 1939 o - O 1 0 1 - -+R FK 1940 1942 - S lastSun 0 1 - -+R FK 1943 o - Ja 1 0 0 - -+R FK 1983 o - S lastSun 0 1 - -+R FK 1984 1985 - Ap lastSun 0 0 - -+R FK 1984 o - S 16 0 1 - -+R FK 1985 2000 - S Sun>=9 0 1 - -+R FK 1986 2000 - Ap Sun>=16 0 0 - -+R FK 2001 2010 - Ap Sun>=15 2 0 - -+R FK 2001 2010 - S Sun>=1 2 1 - - Z Atlantic/Stanley -3:51:24 - LMT 1890 - -3:51:24 - SMT 1912 Mar 12 ---4 Ax -04/-03 1983 May ---3 Ax -03/-02 1985 S 15 ---4 Ax -04/-03 2010 S 5 2 -+-4 FK -04/-03 1983 May -+-3 FK -03/-02 1985 S 15 -+-4 FK -04/-03 2010 S 5 2 - -3 - -03 - Z America/Cayenne -3:29:20 - LMT 1911 Jul - -4 - -04 1967 O -@@ -3878,46 +3897,46 @@ Z America/Guyana -3:52:40 - LMT 1915 Mar - -3:45 - -0345 1975 Jul 31 - -3 - -03 1991 - -4 - -04 --R Ay 1975 1988 - O 1 0 1 - --R Ay 1975 1978 - Mar 1 0 0 - --R Ay 1979 1991 - Ap 1 0 0 - --R Ay 1989 o - O 22 0 1 - --R Ay 1990 o - O 1 0 1 - --R Ay 1991 o - O 6 0 1 - --R Ay 1992 o - Mar 1 0 0 - --R Ay 1992 o - O 5 0 1 - --R Ay 1993 o - Mar 31 0 0 - --R Ay 1993 1995 - O 1 0 1 - --R Ay 1994 1995 - F lastSun 0 0 - --R Ay 1996 o - Mar 1 0 0 - --R Ay 1996 2001 - O Sun>=1 0 1 - --R Ay 1997 o - F lastSun 0 0 - --R Ay 1998 2001 - Mar Sun>=1 0 0 - --R Ay 2002 2004 - Ap Sun>=1 0 0 - --R Ay 2002 2003 - S Sun>=1 0 1 - --R Ay 2004 2009 - O Sun>=15 0 1 - --R Ay 2005 2009 - Mar Sun>=8 0 0 - --R Ay 2010 ma - O Sun>=1 0 1 - --R Ay 2010 2012 - Ap Sun>=8 0 0 - --R Ay 2013 ma - Mar Sun>=22 0 0 - -+R y 1975 1988 - O 1 0 1 - -+R y 1975 1978 - Mar 1 0 0 - -+R y 1979 1991 - Ap 1 0 0 - -+R y 1989 o - O 22 0 1 - -+R y 1990 o - O 1 0 1 - -+R y 1991 o - O 6 0 1 - -+R y 1992 o - Mar 1 0 0 - -+R y 1992 o - O 5 0 1 - -+R y 1993 o - Mar 31 0 0 - -+R y 1993 1995 - O 1 0 1 - -+R y 1994 1995 - F lastSun 0 0 - -+R y 1996 o - Mar 1 0 0 - -+R y 1996 2001 - O Sun>=1 0 1 - -+R y 1997 o - F lastSun 0 0 - -+R y 1998 2001 - Mar Sun>=1 0 0 - -+R y 2002 2004 - Ap Sun>=1 0 0 - -+R y 2002 2003 - S Sun>=1 0 1 - -+R y 2004 2009 - O Sun>=15 0 1 - -+R y 2005 2009 - Mar Sun>=8 0 0 - -+R y 2010 ma - O Sun>=1 0 1 - -+R y 2010 2012 - Ap Sun>=8 0 0 - -+R y 2013 ma - Mar Sun>=22 0 0 - - Z America/Asuncion -3:50:40 - LMT 1890 - -3:50:40 - AMT 1931 O 10 - -4 - -04 1972 O - -3 - -03 1974 Ap ---4 Ay -04/-03 --R Az 1938 o - Ja 1 0 1 - --R Az 1938 o - Ap 1 0 0 - --R Az 1938 1939 - S lastSun 0 1 - --R Az 1939 1940 - Mar Sun>=24 0 0 - --R Az 1986 1987 - Ja 1 0 1 - --R Az 1986 1987 - Ap 1 0 0 - --R Az 1990 o - Ja 1 0 1 - --R Az 1990 o - Ap 1 0 0 - --R Az 1994 o - Ja 1 0 1 - --R Az 1994 o - Ap 1 0 0 - -+-4 y -04/-03 -+R PE 1938 o - Ja 1 0 1 - -+R PE 1938 o - Ap 1 0 0 - -+R PE 1938 1939 - S lastSun 0 1 - -+R PE 1939 1940 - Mar Sun>=24 0 0 - -+R PE 1986 1987 - Ja 1 0 1 - -+R PE 1986 1987 - Ap 1 0 0 - -+R PE 1990 o - Ja 1 0 1 - -+R PE 1990 o - Ap 1 0 0 - -+R PE 1994 o - Ja 1 0 1 - -+R PE 1994 o - Ap 1 0 0 - - Z America/Lima -5:8:12 - LMT 1890 - -5:8:36 - LMT 1908 Jul 28 ---5 Az -05/-04 -+-5 PE -05/-04 - Z Atlantic/South_Georgia -2:26:8 - LMT 1890 - -2 - -02 - Z America/Paramaribo -3:40:40 - LMT 1911 -@@ -3940,65 +3959,65 @@ Li America/Port_of_Spain America/St_Lucia - Li America/Port_of_Spain America/St_Thomas - Li America/Port_of_Spain America/St_Vincent - Li America/Port_of_Spain America/Tortola --R A! 1923 1925 - O 1 0 0:30 - --R A! 1924 1926 - Ap 1 0 0 - --R A! 1933 1938 - O lastSun 0 0:30 - --R A! 1934 1941 - Mar lastSat 24 0 - --R A! 1939 o - O 1 0 0:30 - --R A! 1940 o - O 27 0 0:30 - --R A! 1941 o - Au 1 0 0:30 - --R A! 1942 o - D 14 0 0:30 - --R A! 1943 o - Mar 14 0 0 - --R A! 1959 o - May 24 0 0:30 - --R A! 1959 o - N 15 0 0 - --R A! 1960 o - Ja 17 0 1 - --R A! 1960 o - Mar 6 0 0 - --R A! 1965 o - Ap 4 0 1 - --R A! 1965 o - S 26 0 0 - --R A! 1968 o - May 27 0 0:30 - --R A! 1968 o - D 1 0 0 - --R A! 1970 o - Ap 25 0 1 - --R A! 1970 o - Jun 14 0 0 - --R A! 1972 o - Ap 23 0 1 - --R A! 1972 o - Jul 16 0 0 - --R A! 1974 o - Ja 13 0 1:30 - --R A! 1974 o - Mar 10 0 0:30 - --R A! 1974 o - S 1 0 0 - --R A! 1974 o - D 22 0 1 - --R A! 1975 o - Mar 30 0 0 - --R A! 1976 o - D 19 0 1 - --R A! 1977 o - Mar 6 0 0 - --R A! 1977 o - D 4 0 1 - --R A! 1978 1979 - Mar Sun>=1 0 0 - --R A! 1978 o - D 17 0 1 - --R A! 1979 o - Ap 29 0 1 - --R A! 1980 o - Mar 16 0 0 - --R A! 1987 o - D 14 0 1 - --R A! 1988 o - F 28 0 0 - --R A! 1988 o - D 11 0 1 - --R A! 1989 o - Mar 5 0 0 - --R A! 1989 o - O 29 0 1 - --R A! 1990 o - F 25 0 0 - --R A! 1990 1991 - O Sun>=21 0 1 - --R A! 1991 1992 - Mar Sun>=1 0 0 - --R A! 1992 o - O 18 0 1 - --R A! 1993 o - F 28 0 0 - --R A! 2004 o - S 19 0 1 - --R A! 2005 o - Mar 27 2 0 - --R A! 2005 o - O 9 2 1 - --R A! 2006 2015 - Mar Sun>=8 2 0 - --R A! 2006 2014 - O Sun>=1 2 1 - -+R U 1923 1925 - O 1 0 0:30 - -+R U 1924 1926 - Ap 1 0 0 - -+R U 1933 1938 - O lastSun 0 0:30 - -+R U 1934 1941 - Mar lastSat 24 0 - -+R U 1939 o - O 1 0 0:30 - -+R U 1940 o - O 27 0 0:30 - -+R U 1941 o - Au 1 0 0:30 - -+R U 1942 o - D 14 0 0:30 - -+R U 1943 o - Mar 14 0 0 - -+R U 1959 o - May 24 0 0:30 - -+R U 1959 o - N 15 0 0 - -+R U 1960 o - Ja 17 0 1 - -+R U 1960 o - Mar 6 0 0 - -+R U 1965 o - Ap 4 0 1 - -+R U 1965 o - S 26 0 0 - -+R U 1968 o - May 27 0 0:30 - -+R U 1968 o - D 1 0 0 - -+R U 1970 o - Ap 25 0 1 - -+R U 1970 o - Jun 14 0 0 - -+R U 1972 o - Ap 23 0 1 - -+R U 1972 o - Jul 16 0 0 - -+R U 1974 o - Ja 13 0 1:30 - -+R U 1974 o - Mar 10 0 0:30 - -+R U 1974 o - S 1 0 0 - -+R U 1974 o - D 22 0 1 - -+R U 1975 o - Mar 30 0 0 - -+R U 1976 o - D 19 0 1 - -+R U 1977 o - Mar 6 0 0 - -+R U 1977 o - D 4 0 1 - -+R U 1978 1979 - Mar Sun>=1 0 0 - -+R U 1978 o - D 17 0 1 - -+R U 1979 o - Ap 29 0 1 - -+R U 1980 o - Mar 16 0 0 - -+R U 1987 o - D 14 0 1 - -+R U 1988 o - F 28 0 0 - -+R U 1988 o - D 11 0 1 - -+R U 1989 o - Mar 5 0 0 - -+R U 1989 o - O 29 0 1 - -+R U 1990 o - F 25 0 0 - -+R U 1990 1991 - O Sun>=21 0 1 - -+R U 1991 1992 - Mar Sun>=1 0 0 - -+R U 1992 o - O 18 0 1 - -+R U 1993 o - F 28 0 0 - -+R U 2004 o - S 19 0 1 - -+R U 2005 o - Mar 27 2 0 - -+R U 2005 o - O 9 2 1 - -+R U 2006 2015 - Mar Sun>=8 2 0 - -+R U 2006 2014 - O Sun>=1 2 1 - - Z America/Montevideo -3:44:51 - LMT 1908 Jun 10 - -3:44:51 - MMT 1920 May - -4 - -04 1923 O ---3:30 A! -0330/-03 1942 D 14 ---3 A! -03/-0230 1960 ---3 A! -03/-02 1968 ---3 A! -03/-0230 1970 ---3 A! -03/-02 1974 ---3 A! -03/-0130 1974 Mar 10 ---3 A! -03/-0230 1974 D 22 ---3 A! -03/-02 -+-3:30 U -0330/-03 1942 D 14 -+-3 U -03/-0230 1960 -+-3 U -03/-02 1968 -+-3 U -03/-0230 1970 -+-3 U -03/-02 1974 -+-3 U -03/-0130 1974 Mar 10 -+-3 U -03/-0230 1974 D 22 -+-3 U -03/-02 - Z America/Caracas -4:27:44 - LMT 1890 - -4:27:40 - CMT 1912 F 12 - -4:30 - -0430 1965 -diff --git a/src/timezone/known_abbrevs.txt b/src/timezone/known_abbrevs.txt -index 67d2f0b..2ae443a 100644 ---- a/src/timezone/known_abbrevs.txt -+++ b/src/timezone/known_abbrevs.txt -@@ -92,6 +92,7 @@ NZST 43200 - PDT -25200 D - PKT 18000 - PST -28800 -+PST 28800 - SAST 7200 - SST -39600 - UCT 0 -diff --git a/src/timezone/tznames/America.txt b/src/timezone/tznames/America.txt -index 1c5eb1f..2594c37 100644 ---- a/src/timezone/tznames/America.txt -+++ b/src/timezone/tznames/America.txt -@@ -237,6 +237,9 @@ PDT -25200 D # Pacific Daylight Time - PET -18000 # Peru Time (obsolete) - PMDT -7200 D # Pierre & Miquelon Daylight Time (obsolete) - PMST -10800 # Pierre & Miquelon Standard Time (obsolete) -+# CONFLICT! PST is not unique -+# Other timezones: -+# - PST: Philippine Standard Time - PST -28800 # Pacific Standard Time - # (America/Dawson) - # (America/Los_Angeles) -diff --git a/src/timezone/tznames/Asia.txt b/src/timezone/tznames/Asia.txt -index e1fa931..1133339 100644 ---- a/src/timezone/tznames/Asia.txt -+++ b/src/timezone/tznames/Asia.txt -@@ -158,6 +158,10 @@ PKT 18000 # Pakistan Time - # (Asia/Karachi) - PKST 21600 D # Pakistan Summer Time - # (Asia/Karachi) -+# CONFLICT! PST is not unique -+# Other timezones: -+# - PST: Pacific Standard Time (America) -+PST 28800 # Philippine Standard Time - QYZT 21600 # Kizilorda Time (obsolete) - SAKST Asia/Sakhalin # Sakhalin Summer Time (obsolete) - SAKT Asia/Sakhalin # Sakhalin Time (obsolete) -diff --git a/src/timezone/tznames/Default b/src/timezone/tznames/Default -index 3826096..1532413 100644 ---- a/src/timezone/tznames/Default -+++ b/src/timezone/tznames/Default -@@ -181,6 +181,9 @@ PDT -25200 D # Pacific Daylight Time - # (America/Whitehorse) - PMDT -7200 D # Pierre & Miquelon Daylight Time (obsolete) - PMST -10800 # Pierre & Miquelon Standard Time (obsolete) -+# CONFLICT! PST is not unique -+# Other timezones: -+# - PST: Philippine Standard Time - PST -28800 # Pacific Standard Time - # (America/Dawson) - # (America/Los_Angeles) -diff --git a/src/timezone/tznames/Pacific.txt b/src/timezone/tznames/Pacific.txt -index c86248b..c30008c 100644 ---- a/src/timezone/tznames/Pacific.txt -+++ b/src/timezone/tznames/Pacific.txt -@@ -52,6 +52,9 @@ NZST 43200 # New Zealand Standard Time - PGT 36000 # Papua New Guinea Time (obsolete) - PHOT Pacific/Enderbury # Phoenix Islands Time (Kiribati) (obsolete) - PONT 39600 # Ponape Time (Micronesia) (obsolete) -+# CONFLICT! PST is not unique -+# Other timezones: -+# - PST: Philippine Standard Time - PST -28800 # Pacific Standard Time - # (America/Dawson) - # (America/Los_Angeles) --- -2.7.4 - diff --git a/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/not-check-libperl.patch b/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/not-check-libperl.patch index 971510943d..22b62d9ded 100644 --- a/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/not-check-libperl.patch +++ b/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/not-check-libperl.patch @@ -1,4 +1,7 @@ -[PATCH] not check libperl under cross compiling +From 7e2af4de19be58bc9d551c41ce2750396d357f34 Mon Sep 17 00:00:00 2001 +From: Changqing Li <changqing.li@windriver.com> +Date: Tue, 27 Nov 2018 13:25:15 +0800 +Subject: [PATCH] PATCH] not check libperl under cross compiling Upstream-Status: Inappropriate [configuration] @@ -6,23 +9,29 @@ libperl ldflags returned by PGAC_CHECK_PERL_EMBED_LDFLAGS are native, can not be used to check target library. postpresql has the dependency on perl, so not need to check libperl -again, like in postgresql-9.2.4 +again, like in postgresql-9.2.4 Signed-off-by: Roy Li <rongqing.li@windriver.com> + +update patch to version 11.1 +Signed-off-by: Changqing Li <changqing.li@windriver.com> --- configure.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -Index: postgresql-9.4.15/configure.in -=================================================================== ---- postgresql-9.4.15.orig/configure.in -+++ postgresql-9.4.15/configure.in -@@ -1879,7 +1879,7 @@ if test "$with_tcl" = yes; then +diff --git a/configure.in b/configure.in +index b98b9bb..8584677 100644 +--- a/configure.in ++++ b/configure.in +@@ -2211,7 +2211,7 @@ Use --without-tcl to disable building PL/Tcl.]) fi # check for <perl.h> -if test "$with_perl" = yes; then +if test "$with_perl" = yes && test "$cross_compiling" = no; then ac_save_CPPFLAGS=$CPPFLAGS - CPPFLAGS="$CPPFLAGS -I$perl_archlibexp/CORE" + CPPFLAGS="$CPPFLAGS $perl_includespec" AC_CHECK_HEADER(perl.h, [], [AC_MSG_ERROR([header file <perl.h> is required for Perl])], +-- +2.7.4 + diff --git a/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/postgresql.init b/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/postgresql.init index 4a4f0cd168..1791e68b58 100644 --- a/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/postgresql.init +++ b/meta-openembedded/meta-oe/recipes-dbs/postgresql/files/postgresql.init @@ -14,8 +14,8 @@ # PGVERSION is the full package version, e.g., 8.4.0 # Note: the specfile inserts the correct value during package build PGVERSION=9.2.4 -# PGMAJORVERSION is major version, e.g., 8.4 (this should match PG_VERSION) -PGMAJORVERSION=`echo "$PGVERSION" | sed 's/^\([0-9]*\.[0-9]*\).*$/\1/'` +# PGMAJORVERSION is major version, e.g., 10 (this should match PG_VERSION) +PGMAJORVERSION=`echo "$PGVERSION" | sed 's/^\([0-9]*\).*$/\1/'` # Source function library. . /etc/init.d/functions diff --git a/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql.inc b/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql.inc index dc85224543..85f19170b9 100644 --- a/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql.inc +++ b/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql.inc @@ -37,7 +37,7 @@ LEAD_SONAME = "libpq.so" # LDFLAGS for shared libraries export LDFLAGS_SL = "${LDFLAGS}" -inherit autotools pkgconfig perlnative pythonnative useradd update-rc.d systemd gettext +inherit autotools pkgconfig perlnative pythonnative useradd update-rc.d systemd gettext cpan-base CFLAGS += "-I${STAGING_INCDIR}/${PYTHON_DIR} -I${STAGING_INCDIR}/tcl8.6" @@ -106,6 +106,10 @@ python populate_packages_prepend() { } +# This will make native perl use target settings (for include dirs etc.) +export PERLCONFIGTARGET = "${@is_target(d)}" +export PERL_ARCHLIB = "${STAGING_LIBDIR}${PERL_OWN_DIR}/perl5/${@get_perl_version(d)}/${@get_perl_arch(d)}" + do_configure() { # do_configure autotools_do_configure @@ -119,7 +123,7 @@ do_configure() { BLIBNA="\${STAGING_BASE_LIBDIR_NATIVE}" sed -i -e "/^perl_archlibexp/s:${LIBPNA}:${STAGING_LIBDIR}:g" \ ${B}/src/Makefile.global - sed -i -e "/^perl_privlibexp/s:${LIBPNA}:${STAGING_LIBDIR}:g" \ + sed -i -e "/^perl_privlibexp/s:${libdir}:${STAGING_LIBDIR}:g" \ ${B}/src/Makefile.global # remove the rpath, replace with correct lib path sed -i \ diff --git a/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql_10.5.bb b/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql_10.5.bb deleted file mode 100644 index 1a02f154c5..0000000000 --- a/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql_10.5.bb +++ /dev/null @@ -1,12 +0,0 @@ -require postgresql.inc - -LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=6dc95e63aa4d72502ff8193dfe2ddd38" - -SRC_URI += "\ - file://not-check-libperl.patch \ - file://0001-Update-time-zone-data-files-to-tzdata-release-2018f.patch \ - file://0001-Sync-our-copy-of-the-timezone-library-with-IANA-rele.patch \ -" - -SRC_URI[md5sum] = "a5fe5fdff2d6c28f65601398be0950df" -SRC_URI[sha256sum] = "6c8e616c91a45142b85c0aeb1f29ebba4a361309e86469e0fb4617b6a73c4011" diff --git a/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql_11.2.bb b/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql_11.2.bb new file mode 100644 index 0000000000..0f59c8dd17 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-dbs/postgresql/postgresql_11.2.bb @@ -0,0 +1,11 @@ +require postgresql.inc + +LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=87da2b84884860b71f5f24ab37e7da78" + +SRC_URI += "\ + file://not-check-libperl.patch \ + file://0001-Add-support-for-RISC-V.patch \ +" + +SRC_URI[md5sum] = "19d43be679cb0d55363feb8926af3a0f" +SRC_URI[sha256sum] = "2676b9ce09c21978032070b6794696e0aa5a476e3d21d60afc036dc0a9c09405" diff --git a/meta-openembedded/meta-oe/recipes-dbs/rocksdb/files/0001-Disable-Wshadow-and-do-not-mark-default-copy-constru.patch b/meta-openembedded/meta-oe/recipes-dbs/rocksdb/files/0001-Disable-Wshadow-and-do-not-mark-default-copy-constru.patch new file mode 100644 index 0000000000..eccaa3a37a --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-dbs/rocksdb/files/0001-Disable-Wshadow-and-do-not-mark-default-copy-constru.patch @@ -0,0 +1,57 @@ +From ee728434124b9b7d17abbd060a62aac79a9b79c0 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Tue, 12 Feb 2019 14:31:24 -0800 +Subject: [PATCH] Disable -Wshadow and do not mark default copy constructors + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + CMakeLists.txt | 2 +- + utilities/persistent_cache/block_cache_tier.h | 4 ++-- + utilities/persistent_cache/block_cache_tier_file.h | 2 +- + 3 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 98e2e1973..3a24a075b 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -254,7 +254,7 @@ if(FAIL_ON_WARNINGS) + if(MSVC) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /WX") + else() # assume GCC +- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror") ++ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror -Wno-error=shadow") + endif() + endif() + +diff --git a/utilities/persistent_cache/block_cache_tier.h b/utilities/persistent_cache/block_cache_tier.h +index 2b2c0ef4f..96d0540a4 100644 +--- a/utilities/persistent_cache/block_cache_tier.h ++++ b/utilities/persistent_cache/block_cache_tier.h +@@ -91,9 +91,9 @@ class BlockCacheTier : public PersistentCacheTier { + : key_(std::move(key)), data_(data) {} + ~InsertOp() {} + +- InsertOp() = delete; ++ InsertOp() = default; + InsertOp(InsertOp&& /*rhs*/) = default; +- InsertOp& operator=(InsertOp&& rhs) = default; ++ InsertOp& operator=(InsertOp&& rhs) = delete; + + // used for estimating size by bounded queue + size_t Size() { return data_.size() + key_.size(); } +diff --git a/utilities/persistent_cache/block_cache_tier_file.h b/utilities/persistent_cache/block_cache_tier_file.h +index e38b6c9a1..d9b89a4f7 100644 +--- a/utilities/persistent_cache/block_cache_tier_file.h ++++ b/utilities/persistent_cache/block_cache_tier_file.h +@@ -262,7 +262,7 @@ class ThreadedWriter : public Writer { + : file_(file), buf_(buf), file_off_(file_off), callback_(callback) {} + + IO(const IO&) = default; +- IO& operator=(const IO&) = default; ++ IO& operator=(const IO&) = delete; + size_t Size() const { return sizeof(IO); } + + WritableFile* file_ = nullptr; // File to write to +-- +2.20.1 + diff --git a/meta-openembedded/meta-oe/recipes-dbs/rocksdb/files/0001-utilities-Fix-build-failure-with-Werror-maybe-uninit.patch b/meta-openembedded/meta-oe/recipes-dbs/rocksdb/files/0001-utilities-Fix-build-failure-with-Werror-maybe-uninit.patch new file mode 100644 index 0000000000..ef0429a3c8 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-dbs/rocksdb/files/0001-utilities-Fix-build-failure-with-Werror-maybe-uninit.patch @@ -0,0 +1,35 @@ +From 8996f075e64da0e6ffeda57632ef31f8710defcc Mon Sep 17 00:00:00 2001 +From: He Zhe <zhe.he@windriver.com> +Date: Fri, 15 Mar 2019 16:47:03 +0800 +Subject: [PATCH] utilities: Fix build failure with -Werror=maybe-uninitialized + +Summary: +Initialize magic_number to zero to avoid such failure. +utilities/blob_db/blob_log_format.cc:91:3: error: 'magic_number' may be used +uninitialized in this function [-Werror=maybe-uninitialized] + if (magic_number != kMagicNumber) { + ^~ + +Upstream-Status: Accepted [expected version 5.19] + +Signed-off-by: He Zhe <zhe.he@windriver.com> +--- + utilities/blob_db/blob_log_format.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/utilities/blob_db/blob_log_format.cc b/utilities/blob_db/blob_log_format.cc +index 2bf7028..8726cb8 100644 +--- a/utilities/blob_db/blob_log_format.cc ++++ b/utilities/blob_db/blob_log_format.cc +@@ -82,7 +82,7 @@ Status BlobLogFooter::DecodeFrom(Slice src) { + uint32_t src_crc = 0; + src_crc = crc32c::Value(src.data(), BlobLogFooter::kSize - sizeof(uint32_t)); + src_crc = crc32c::Mask(src_crc); +- uint32_t magic_number; ++ uint32_t magic_number = 0; + if (!GetFixed32(&src, &magic_number) || !GetFixed64(&src, &blob_count) || + !GetFixed64(&src, &expiration_range.first) || + !GetFixed64(&src, &expiration_range.second) || !GetFixed32(&src, &crc)) { +-- +2.7.4 + diff --git a/meta-openembedded/meta-oe/recipes-dbs/rocksdb/rocksdb/0001-Fix-GitHub-issue-3716-gcc-8-warnings.patch b/meta-openembedded/meta-oe/recipes-dbs/rocksdb/rocksdb/0001-Fix-GitHub-issue-3716-gcc-8-warnings.patch deleted file mode 100644 index be498974af..0000000000 --- a/meta-openembedded/meta-oe/recipes-dbs/rocksdb/rocksdb/0001-Fix-GitHub-issue-3716-gcc-8-warnings.patch +++ /dev/null @@ -1,194 +0,0 @@ -From 8d65d70b54d1d306a0a0b00e036bc8ddd39d8ec1 Mon Sep 17 00:00:00 2001 -From: "przemyslaw.skibinski@percona.com" <przemyslaw.skibinski@percona.com> -Date: Fri, 20 Apr 2018 13:28:05 -0700 -Subject: [PATCH] Fix GitHub issue #3716: gcc-8 warnings - -Summary: -Fix the following gcc-8 warnings: -- conflicting C language linkage declaration [-Werror] -- writing to an object with no trivial copy-assignment [-Werror=class-memaccess] -- array subscript -1 is below array bounds [-Werror=array-bounds] - -Solves https://github.com/facebook/rocksdb/issues/3716 -Closes https://github.com/facebook/rocksdb/pull/3736 - -Differential Revision: D7684161 - -Pulled By: yiwu-arbug - -fbshipit-source-id: 47c0423d26b74add251f1d3595211eee1e41e54a ---- -Signed-off-by: Khem Raj <raj.khem@gmail.com> -Upstream-Status: Backport [https://github.com/facebook/rocksdb/commit/dee95a1afc6c63515e7d94dec33acdb79638b6d7.patch] - - db/c.cc | 77 ++++++++++++++------------------------- - memtable/inlineskiplist.h | 12 +++--- - 2 files changed, 33 insertions(+), 56 deletions(-) - -diff --git a/db/c.cc b/db/c.cc -index 064103ed4..0d485d096 100644 ---- a/db/c.cc -+++ b/db/c.cc -@@ -1388,23 +1388,24 @@ void rocksdb_writebatch_put_log_data( - b->rep.PutLogData(Slice(blob, len)); - } - -+class H : public WriteBatch::Handler { -+ public: -+ void* state_; -+ void (*put_)(void*, const char* k, size_t klen, const char* v, size_t vlen); -+ void (*deleted_)(void*, const char* k, size_t klen); -+ virtual void Put(const Slice& key, const Slice& value) override { -+ (*put_)(state_, key.data(), key.size(), value.data(), value.size()); -+ } -+ virtual void Delete(const Slice& key) override { -+ (*deleted_)(state_, key.data(), key.size()); -+ } -+}; -+ - void rocksdb_writebatch_iterate( - rocksdb_writebatch_t* b, - void* state, - void (*put)(void*, const char* k, size_t klen, const char* v, size_t vlen), - void (*deleted)(void*, const char* k, size_t klen)) { -- class H : public WriteBatch::Handler { -- public: -- void* state_; -- void (*put_)(void*, const char* k, size_t klen, const char* v, size_t vlen); -- void (*deleted_)(void*, const char* k, size_t klen); -- virtual void Put(const Slice& key, const Slice& value) override { -- (*put_)(state_, key.data(), key.size(), value.data(), value.size()); -- } -- virtual void Delete(const Slice& key) override { -- (*deleted_)(state_, key.data(), key.size()); -- } -- }; - H handler; - handler.state_ = state; - handler.put_ = put; -@@ -1649,18 +1650,6 @@ void rocksdb_writebatch_wi_iterate( - void* state, - void (*put)(void*, const char* k, size_t klen, const char* v, size_t vlen), - void (*deleted)(void*, const char* k, size_t klen)) { -- class H : public WriteBatch::Handler { -- public: -- void* state_; -- void (*put_)(void*, const char* k, size_t klen, const char* v, size_t vlen); -- void (*deleted_)(void*, const char* k, size_t klen); -- virtual void Put(const Slice& key, const Slice& value) override { -- (*put_)(state_, key.data(), key.size(), value.data(), value.size()); -- } -- virtual void Delete(const Slice& key) override { -- (*deleted_)(state_, key.data(), key.size()); -- } -- }; - H handler; - handler.state_ = state; - handler.put_ = put; -@@ -3109,20 +3098,21 @@ void rocksdb_slicetransform_destroy(rocksdb_slicetransform_t* st) { - delete st; - } - -+struct Wrapper : public rocksdb_slicetransform_t { -+ const SliceTransform* rep_; -+ ~Wrapper() { delete rep_; } -+ const char* Name() const override { return rep_->Name(); } -+ Slice Transform(const Slice& src) const override { -+ return rep_->Transform(src); -+ } -+ bool InDomain(const Slice& src) const override { -+ return rep_->InDomain(src); -+ } -+ bool InRange(const Slice& src) const override { return rep_->InRange(src); } -+ static void DoNothing(void*) { } -+}; -+ - rocksdb_slicetransform_t* rocksdb_slicetransform_create_fixed_prefix(size_t prefixLen) { -- struct Wrapper : public rocksdb_slicetransform_t { -- const SliceTransform* rep_; -- ~Wrapper() { delete rep_; } -- const char* Name() const override { return rep_->Name(); } -- Slice Transform(const Slice& src) const override { -- return rep_->Transform(src); -- } -- bool InDomain(const Slice& src) const override { -- return rep_->InDomain(src); -- } -- bool InRange(const Slice& src) const override { return rep_->InRange(src); } -- static void DoNothing(void*) { } -- }; - Wrapper* wrapper = new Wrapper; - wrapper->rep_ = rocksdb::NewFixedPrefixTransform(prefixLen); - wrapper->state_ = nullptr; -@@ -3131,19 +3121,6 @@ rocksdb_slicetransform_t* rocksdb_slicetransform_create_fixed_prefix(size_t pref - } - - rocksdb_slicetransform_t* rocksdb_slicetransform_create_noop() { -- struct Wrapper : public rocksdb_slicetransform_t { -- const SliceTransform* rep_; -- ~Wrapper() { delete rep_; } -- const char* Name() const override { return rep_->Name(); } -- Slice Transform(const Slice& src) const override { -- return rep_->Transform(src); -- } -- bool InDomain(const Slice& src) const override { -- return rep_->InDomain(src); -- } -- bool InRange(const Slice& src) const override { return rep_->InRange(src); } -- static void DoNothing(void*) { } -- }; - Wrapper* wrapper = new Wrapper; - wrapper->rep_ = rocksdb::NewNoopTransform(); - wrapper->state_ = nullptr; -diff --git a/memtable/inlineskiplist.h b/memtable/inlineskiplist.h -index 702a7336d..eadda1dc1 100644 ---- a/memtable/inlineskiplist.h -+++ b/memtable/inlineskiplist.h -@@ -280,7 +280,7 @@ struct InlineSkipList<Comparator>::Node { - // next_[0]. This is used for passing data from AllocateKey to Insert. - void StashHeight(const int height) { - assert(sizeof(int) <= sizeof(next_[0])); -- memcpy(&next_[0], &height, sizeof(int)); -+ memcpy(static_cast<void*>(&next_[0]), &height, sizeof(int)); - } - - // Retrieves the value passed to StashHeight. Undefined after a call -@@ -300,30 +300,30 @@ struct InlineSkipList<Comparator>::Node { - assert(n >= 0); - // Use an 'acquire load' so that we observe a fully initialized - // version of the returned Node. -- return (next_[-n].load(std::memory_order_acquire)); -+ return ((&next_[0] - n)->load(std::memory_order_acquire)); - } - - void SetNext(int n, Node* x) { - assert(n >= 0); - // Use a 'release store' so that anybody who reads through this - // pointer observes a fully initialized version of the inserted node. -- next_[-n].store(x, std::memory_order_release); -+ (&next_[0] - n)->store(x, std::memory_order_release); - } - - bool CASNext(int n, Node* expected, Node* x) { - assert(n >= 0); -- return next_[-n].compare_exchange_strong(expected, x); -+ return (&next_[0] - n)->compare_exchange_strong(expected, x); - } - - // No-barrier variants that can be safely used in a few locations. - Node* NoBarrier_Next(int n) { - assert(n >= 0); -- return next_[-n].load(std::memory_order_relaxed); -+ return (&next_[0] - n)->load(std::memory_order_relaxed); - } - - void NoBarrier_SetNext(int n, Node* x) { - assert(n >= 0); -- next_[-n].store(x, std::memory_order_relaxed); -+ (&next_[0] - n)->store(x, std::memory_order_relaxed); - } - - // Insert node after prev on specific level. --- -2.17.0 - diff --git a/meta-openembedded/meta-oe/recipes-dbs/rocksdb/rocksdb_git.bb b/meta-openembedded/meta-oe/recipes-dbs/rocksdb/rocksdb_git.bb index 594d1a9c77..27c7b20e1b 100644 --- a/meta-openembedded/meta-oe/recipes-dbs/rocksdb/rocksdb_git.bb +++ b/meta-openembedded/meta-oe/recipes-dbs/rocksdb/rocksdb_git.bb @@ -6,12 +6,13 @@ LIC_FILES_CHKSUM = "file://LICENSE.Apache;md5=3b83ef96387f14655fc854ddc3c6bd57 \ file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ file://LICENSE.leveldb;md5=fb04ff57a14f308f2eed4a9b87d45837" -SRCREV = "c60df9d9e7629fe208a9b848293a5599f83d5e77" -SRCBRANCH = "5.13.fb" -PV = "5.13.1" +SRCREV = "a1774dde9a5bd51bc6ece5988781c6f28cc69d48" +SRCBRANCH = "5.18.fb" +PV = "5.18.2" SRC_URI = "git://github.com/facebook/${BPN}.git;branch=${SRCBRANCH} \ - file://0001-Fix-GitHub-issue-3716-gcc-8-warnings.patch \ + file://0001-Disable-Wshadow-and-do-not-mark-default-copy-constru.patch \ + file://0001-utilities-Fix-build-failure-with-Werror-maybe-uninit.patch \ " S = "${WORKDIR}/git" @@ -19,9 +20,9 @@ S = "${WORKDIR}/git" inherit cmake PACKAGECONFIG ??= "bzip2 zlib lz4" -PACKAGECONFIG[bzip2] = "-DWITH_BZ2=ON,-DWITH_BZ2=OFF,bzip2" -PACKAGECONFIG[lz4] = "-DWITH_LZ4=ON,-DWITH_LZ4=OFF,lz4" -PACKAGECONFIG[zlib] = "-DWITH_ZLIB=ON,-DWITH_ZLIB=OFF,zlib" +PACKAGECONFIG[bzip2] = "-DWITH_BZ2=ON -DBZIP2_LIBRARIES:STRING=bz2,-DWITH_BZ2=OFF,bzip2" +PACKAGECONFIG[lz4] = "-DWITH_LZ4=ON -DLZ4_LIBRARIES:STRING=lz4,-DWITH_LZ4=OFF,lz4" +PACKAGECONFIG[zlib] = "-DWITH_ZLIB=ON -DZLIB_LIBRARIES:STRING=z,-DWITH_ZLIB=OFF,zlib" PACKAGECONFIG[lite] = "-DROCKSDB_LITE=ON,-DROCKSDB_LITE=OFF" # Tools and tests currently don't compile on armv5 so we disable them @@ -30,3 +31,8 @@ EXTRA_OECMAKE = "\ -DWITH_TESTS=OFF \ -DWITH_TOOLS=OFF \ " + +do_install_append() { + # fix for qa check buildpaths + sed -i "s#${RECIPE_SYSROOT}##g" ${D}${libdir}/cmake/rocksdb/RocksDBTargets.cmake +} diff --git a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/core/adb_libssl_11.diff b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/core/adb_libssl_11.diff new file mode 100644 index 0000000000..3ead649b1d --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/core/adb_libssl_11.diff @@ -0,0 +1,39 @@ +Description: adb: Make compatible with openssl 1.1 + OpenSSL version 1.1 brought some API changes which broke the build here, + fix that by accessing rsa->n (and e) directly, using RSA_get0_key instead. +Author: Chirayu Desai <chirayudesai1@gmail.com +Last-Update: 2016-11-10 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +--- + system/core/adb/adb_auth_host.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +--- a/adb/adb_auth_host.c ++++ b/adb/adb_auth_host.c +@@ -75,6 +75,7 @@ static int RSA_to_RSAPublicKey(RSA *rsa, + BIGNUM* rem = BN_new(); + BIGNUM* n = BN_new(); + BIGNUM* n0inv = BN_new(); ++ BIGNUM* e = BN_new(); + + if (RSA_size(rsa) != RSANUMBYTES) { + ret = 0; +@@ -82,7 +83,7 @@ static int RSA_to_RSAPublicKey(RSA *rsa, + } + + BN_set_bit(r32, 32); +- BN_copy(n, rsa->n); ++ RSA_get0_key(rsa, &n, &e, NULL); + BN_set_bit(r, RSANUMWORDS * 32); + BN_mod_sqr(rr, r, n, ctx); + BN_div(NULL, rem, n, r32, ctx); +@@ -96,7 +97,7 @@ static int RSA_to_RSAPublicKey(RSA *rsa, + BN_div(n, rem, n, r32, ctx); + pkey->n[i] = BN_get_word(rem); + } +- pkey->exponent = BN_get_word(rsa->e); ++ pkey->exponent = BN_get_word(e); + + out: + BN_free(n0inv); diff --git a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb index 2604f65e1f..e09cd829d7 100644 --- a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb +++ b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb @@ -8,7 +8,7 @@ LIC_FILES_CHKSUM = " \ file://${COMMON_LICENSE_DIR}/BSD-3-Clause;md5=550794465ba0ec5312d6919e203a55f9 \ " DEPENDS = "libbsd libpcre zlib libcap" -DEPENDS_append_class-target = " openssl10" +DEPENDS_append_class-target = " openssl" ANDROID_MIRROR = "android.googlesource.com" @@ -37,6 +37,7 @@ SRC_URI = " \ file://core/0010-Use-linux-capability.h-on-linux-systems-too.patch;patchdir=system/core \ file://core/0011-Remove-bionic-specific-calls.patch;patchdir=system/core \ file://core/0012-Fix-implicit-declaration-of-stlcat-strlcopy-function.patch;patchdir=system/core \ + file://core/adb_libssl_11.diff;patchdir=system/core \ file://extras/0001-ext4_utils-remove-selinux-extensions.patch;patchdir=system/extras \ file://extras/0002-ext4_utils-add-o-argument-to-preserve-ownership.patch;patchdir=system/extras \ file://libselinux/0001-Remove-bionic-specific-calls.patch;patchdir=external/libselinux \ @@ -57,6 +58,9 @@ B = "${WORKDIR}/${BPN}" ARM_INSTRUCTION_SET_armv4 = "arm" ARM_INSTRUCTION_SET_armv5 = "arm" +COMPATIBLE_HOST_powerpc = "(null)" +COMPATIBLE_HOST_powerpc64 = "(null)" + inherit systemd SYSTEMD_SERVICE_${PN} = "android-tools-adbd.service" @@ -91,6 +95,9 @@ do_compile() { mips|mipsel) export android_arch=linux-mips ;; + mips64|mips64el) + export android_arch=linux-mips64 + ;; powerpc|powerpc64) export android_arch=linux-ppc ;; diff --git a/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0001-Replace-use-of-struct-ucontext-with-ucontext_t.patch b/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0001-Replace-use-of-struct-ucontext-with-ucontext_t.patch deleted file mode 100644 index 07cb8a366e..0000000000 --- a/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0001-Replace-use-of-struct-ucontext-with-ucontext_t.patch +++ /dev/null @@ -1,242 +0,0 @@ -From b90c8f3b60bfe5dbed2823620242e9d30b9eb28f Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Wed, 28 Jun 2017 19:01:18 -0700 -Subject: [PATCH] Replace use of struct ucontext with ucontext_t - -glibc 2.26 would not expose struct ucontext anymore - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- -Upstream-Status: Pending - - .../linux/dump_writer_common/ucontext_reader.cc | 32 +++++++++++----------- - .../linux/dump_writer_common/ucontext_reader.h | 14 +++++----- - src/client/linux/handler/exception_handler.cc | 10 +++---- - src/client/linux/handler/exception_handler.h | 4 +-- - .../linux/microdump_writer/microdump_writer.cc | 2 +- - .../linux/minidump_writer/minidump_writer.cc | 2 +- - 6 files changed, 32 insertions(+), 32 deletions(-) - -diff --git a/src/client/linux/dump_writer_common/ucontext_reader.cc b/src/client/linux/dump_writer_common/ucontext_reader.cc -index c80724dd..052ce37c 100644 ---- a/src/client/linux/dump_writer_common/ucontext_reader.cc -+++ b/src/client/linux/dump_writer_common/ucontext_reader.cc -@@ -36,19 +36,19 @@ namespace google_breakpad { - - // Minidump defines register structures which are different from the raw - // structures which we get from the kernel. These are platform specific --// functions to juggle the ucontext and user structures into minidump format. -+// functions to juggle the ucontext_t and user structures into minidump format. - - #if defined(__i386__) - --uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) { -+uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) { - return uc->uc_mcontext.gregs[REG_ESP]; - } - --uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) { -+uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) { - return uc->uc_mcontext.gregs[REG_EIP]; - } - --void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc, -+void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc, - const struct _libc_fpstate* fp) { - const greg_t* regs = uc->uc_mcontext.gregs; - -@@ -88,15 +88,15 @@ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc, - - #elif defined(__x86_64) - --uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) { -+uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) { - return uc->uc_mcontext.gregs[REG_RSP]; - } - --uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) { -+uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) { - return uc->uc_mcontext.gregs[REG_RIP]; - } - --void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc, -+void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc, - const struct _libc_fpstate* fpregs) { - const greg_t* regs = uc->uc_mcontext.gregs; - -@@ -145,15 +145,15 @@ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc, - - #elif defined(__ARM_EABI__) - --uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) { -+uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) { - return uc->uc_mcontext.arm_sp; - } - --uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) { -+uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) { - return uc->uc_mcontext.arm_pc; - } - --void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc) { -+void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc) { - out->context_flags = MD_CONTEXT_ARM_FULL; - - out->iregs[0] = uc->uc_mcontext.arm_r0; -@@ -184,15 +184,15 @@ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc) { - - #elif defined(__aarch64__) - --uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) { -+uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) { - return uc->uc_mcontext.sp; - } - --uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) { -+uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) { - return uc->uc_mcontext.pc; - } - --void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc, -+void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc, - const struct fpsimd_context* fpregs) { - out->context_flags = MD_CONTEXT_ARM64_FULL; - -@@ -210,15 +210,15 @@ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc, - - #elif defined(__mips__) - --uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) { -+uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) { - return uc->uc_mcontext.gregs[MD_CONTEXT_MIPS_REG_SP]; - } - --uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) { -+uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) { - return uc->uc_mcontext.pc; - } - --void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc) { -+void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc) { - #if _MIPS_SIM == _ABI64 - out->context_flags = MD_CONTEXT_MIPS64_FULL; - #elif _MIPS_SIM == _ABIO32 -diff --git a/src/client/linux/dump_writer_common/ucontext_reader.h b/src/client/linux/dump_writer_common/ucontext_reader.h -index b6e77b4b..2de80b70 100644 ---- a/src/client/linux/dump_writer_common/ucontext_reader.h -+++ b/src/client/linux/dump_writer_common/ucontext_reader.h -@@ -39,23 +39,23 @@ - - namespace google_breakpad { - --// Wraps platform-dependent implementations of accessors to ucontext structs. -+// Wraps platform-dependent implementations of accessors to ucontext_t structs. - struct UContextReader { -- static uintptr_t GetStackPointer(const struct ucontext* uc); -+ static uintptr_t GetStackPointer(const ucontext_t* uc); - -- static uintptr_t GetInstructionPointer(const struct ucontext* uc); -+ static uintptr_t GetInstructionPointer(const ucontext_t* uc); - -- // Juggle a arch-specific ucontext into a minidump format -+ // Juggle a arch-specific ucontext_t into a minidump format - // out: the minidump structure - // info: the collection of register structures. - #if defined(__i386__) || defined(__x86_64) -- static void FillCPUContext(RawContextCPU *out, const ucontext *uc, -+ static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc, - const struct _libc_fpstate* fp); - #elif defined(__aarch64__) -- static void FillCPUContext(RawContextCPU *out, const ucontext *uc, -+ static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc, - const struct fpsimd_context* fpregs); - #else -- static void FillCPUContext(RawContextCPU *out, const ucontext *uc); -+ static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc); - #endif - }; - -diff --git a/src/client/linux/handler/exception_handler.cc b/src/client/linux/handler/exception_handler.cc -index 586d84e9..05936d28 100644 ---- a/src/client/linux/handler/exception_handler.cc -+++ b/src/client/linux/handler/exception_handler.cc -@@ -457,9 +457,9 @@ bool ExceptionHandler::HandleSignal(int /*sig*/, siginfo_t* info, void* uc) { - // Fill in all the holes in the struct to make Valgrind happy. - memset(&g_crash_context_, 0, sizeof(g_crash_context_)); - memcpy(&g_crash_context_.siginfo, info, sizeof(siginfo_t)); -- memcpy(&g_crash_context_.context, uc, sizeof(struct ucontext)); -+ memcpy(&g_crash_context_.context, uc, sizeof(ucontext_t)); - #if defined(__aarch64__) -- struct ucontext* uc_ptr = (struct ucontext*)uc; -+ ucontext_t* uc_ptr = (ucontext_t*)uc; - struct fpsimd_context* fp_ptr = - (struct fpsimd_context*)&uc_ptr->uc_mcontext.__reserved; - if (fp_ptr->head.magic == FPSIMD_MAGIC) { -@@ -468,9 +468,9 @@ bool ExceptionHandler::HandleSignal(int /*sig*/, siginfo_t* info, void* uc) { - } - #elif !defined(__ARM_EABI__) && !defined(__mips__) - // FP state is not part of user ABI on ARM Linux. -- // In case of MIPS Linux FP state is already part of struct ucontext -+ // In case of MIPS Linux FP state is already part of ucontext_t - // and 'float_state' is not a member of CrashContext. -- struct ucontext* uc_ptr = (struct ucontext*)uc; -+ ucontext_t* uc_ptr = (ucontext_t*)uc; - if (uc_ptr->uc_mcontext.fpregs) { - memcpy(&g_crash_context_.float_state, uc_ptr->uc_mcontext.fpregs, - sizeof(g_crash_context_.float_state)); -@@ -494,7 +494,7 @@ bool ExceptionHandler::SimulateSignalDelivery(int sig) { - // ExceptionHandler::HandleSignal(). - siginfo.si_code = SI_USER; - siginfo.si_pid = getpid(); -- struct ucontext context; -+ ucontext_t context; - getcontext(&context); - return HandleSignal(sig, &siginfo, &context); - } -diff --git a/src/client/linux/handler/exception_handler.h b/src/client/linux/handler/exception_handler.h -index daba57e0..25598a29 100644 ---- a/src/client/linux/handler/exception_handler.h -+++ b/src/client/linux/handler/exception_handler.h -@@ -191,11 +191,11 @@ class ExceptionHandler { - struct CrashContext { - siginfo_t siginfo; - pid_t tid; // the crashing thread. -- struct ucontext context; -+ ucontext_t context; - #if !defined(__ARM_EABI__) && !defined(__mips__) - // #ifdef this out because FP state is not part of user ABI for Linux ARM. - // In case of MIPS Linux FP state is already part of struct -- // ucontext so 'float_state' is not required. -+ // ucontext_t so 'float_state' is not required. - fpstate_t float_state; - #endif - }; -diff --git a/src/client/linux/microdump_writer/microdump_writer.cc b/src/client/linux/microdump_writer/microdump_writer.cc -index 3764eec2..80ad5c46 100644 ---- a/src/client/linux/microdump_writer/microdump_writer.cc -+++ b/src/client/linux/microdump_writer/microdump_writer.cc -@@ -593,7 +593,7 @@ class MicrodumpWriter { - - void* Alloc(unsigned bytes) { return dumper_->allocator()->Alloc(bytes); } - -- const struct ucontext* const ucontext_; -+ const ucontext_t* const ucontext_; - #if !defined(__ARM_EABI__) && !defined(__mips__) - const google_breakpad::fpstate_t* const float_state_; - #endif -diff --git a/src/client/linux/minidump_writer/minidump_writer.cc b/src/client/linux/minidump_writer/minidump_writer.cc -index d11ba6e5..c7161434 100644 ---- a/src/client/linux/minidump_writer/minidump_writer.cc -+++ b/src/client/linux/minidump_writer/minidump_writer.cc -@@ -1323,7 +1323,7 @@ class MinidumpWriter { - const int fd_; // File descriptor where the minidum should be written. - const char* path_; // Path to the file where the minidum should be written. - -- const struct ucontext* const ucontext_; // also from the signal handler -+ const ucontext_t* const ucontext_; // also from the signal handler - #if !defined(__ARM_EABI__) && !defined(__mips__) - const google_breakpad::fpstate_t* const float_state_; // ditto - #endif --- -2.13.2 - diff --git a/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0002-Avoid-using-basename.patch b/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0002-Avoid-using-basename.patch deleted file mode 100644 index bc62829811..0000000000 --- a/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0002-Avoid-using-basename.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 806964f852773e427fea82a7716d44ce3be4498c Mon Sep 17 00:00:00 2001 -From: Felix Janda <felix.janda@posteo.de> -Date: Sun, 1 Feb 2015 14:27:32 +0100 -Subject: [PATCH 2/3] Avoid using basename - ---- - src/common/linux/dump_symbols.cc | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/src/common/linux/dump_symbols.cc b/src/common/linux/dump_symbols.cc -index d029ca14..6ac4a17b 100644 ---- a/src/common/linux/dump_symbols.cc -+++ b/src/common/linux/dump_symbols.cc -@@ -881,9 +881,9 @@ const char* ElfArchitecture(const typename ElfClass::Ehdr* elf_header) { - // last slash, or the whole filename if there are no slashes. - string BaseFileName(const string &filename) { - // Lots of copies! basename's behavior is less than ideal. -- char* c_filename = strdup(filename.c_str()); -- string base = basename(c_filename); -- free(c_filename); -+ const char *c_filename = filename.c_str(); -+ const char *p = strrchr(c_filename, '/'); -+ string base = p ? p+1 : c_filename; - return base; - } - --- -2.14.1 - diff --git a/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0005-md2core-Replace-basename.patch b/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0005-md2core-Replace-basename.patch deleted file mode 100644 index 852c1ed2ca..0000000000 --- a/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0005-md2core-Replace-basename.patch +++ /dev/null @@ -1,38 +0,0 @@ -From bbf2b5ed5d93b227df8aea5726727b48e29f6790 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Thu, 14 Sep 2017 23:35:40 -0700 -Subject: [PATCH 5/5] md2core: Replace basename() - -musl does not provide it - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - src/tools/linux/md2core/minidump-2-core.cc | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/src/tools/linux/md2core/minidump-2-core.cc b/src/tools/linux/md2core/minidump-2-core.cc -index 6a9e28eb..52b81c22 100644 ---- a/src/tools/linux/md2core/minidump-2-core.cc -+++ b/src/tools/linux/md2core/minidump-2-core.cc -@@ -107,6 +107,9 @@ struct Options { - - static void - Usage(int argc, const char* argv[]) { -+ const char *c_filename = argv[0];; -+ const char *p = strrchr(c_filename, '/'); -+ const char *base = p ? p+1 : c_filename; - fprintf(stderr, - "Usage: %s [options] <minidump file>\n" - "\n" -@@ -133,7 +136,7 @@ Usage(int argc, const char* argv[]) { - " lookups to be done in this directory rather than the filesystem\n" - " layout as it exists in the crashing image. This path should end\n" - " with a slash if it's a directory. e.g. /var/lib/breakpad/\n" -- "", basename(argv[0])); -+ "", base); - } - - static void --- -2.14.1 - diff --git a/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/dont-clobber-rsp.patch b/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/dont-clobber-rsp.patch new file mode 100644 index 0000000000..b1c37fc8e9 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/dont-clobber-rsp.patch @@ -0,0 +1,30 @@ +Do not add stack pointer to clobber list + +it was being ignored until gcc 9.0 became capable +of flagging this silent ignoring via [1] + +[1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52813<Paste> + +Upstream-Status: Submitted [https://chromium-review.googlesource.com/c/linux-syscall-support/+/1390160] +Signed-off-by: Khem Raj <raj.khem@gmail.com> + +--- a/src/third_party/lss/linux_syscall_support.h ++++ b/src/third_party/lss/linux_syscall_support.h +@@ -1966,7 +1966,7 @@ struct kernel_statfs { + __asm__ volatile(LSS_ENTRYPOINT \ + : "=a" (__res) \ + : "0" (__NR_##name) \ +- : "esp", "memory"); \ ++ : "memory"); \ + LSS_RETURN(type,__res); \ + } + #undef _syscall1 +@@ -2407,7 +2407,7 @@ struct kernel_statfs { + "d"(LSS_SYSCALL_ARG(parent_tidptr)), + "r"(LSS_SYSCALL_ARG(newtls)), + "r"(LSS_SYSCALL_ARG(child_tidptr)) +- : "rsp", "memory", "r8", "r10", "r11", "rcx"); ++ : "memory", "r8", "r10", "r11", "rcx"); + } + LSS_RETURN(int, __res); + } diff --git a/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad_git.bb b/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad_git.bb index d9773c9a6e..5f9a72e0ac 100644 --- a/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad_git.bb +++ b/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad_git.bb @@ -13,16 +13,17 @@ inherit autotools BBCLASSEXTEND = "native" -PE = "1" +PE = "2" -PV = "1.0+git${SRCPV}" +PV = "1.0" SRCREV_FORMAT = "breakpad_gtest_protobuf_lss_gyp" -SRCREV_breakpad = "dea867e76f24e4a68395684b9d1cf24bcef82f20" +SRCREV_breakpad = "5467393a3d1e7ab929fd01d79971701bf4e2c2c6" +#v1.8.0 SRCREV_gtest = "ec44c6c1675c25b9827aacd08c02433cccde7780" SRCREV_protobuf = "cb6dd4ef5f82e41e06179dcd57d3b1d9246ad6ac" -SRCREV_lss = "a91633d172407f6c83dd69af11510b37afebb7f9" +SRCREV_lss = "a89bf7903f3169e6bc7b8efc10a73a7571de21cf" SRCREV_gyp = "324dd166b7c0b39d513026fa52d6280ac6d56770" SRC_URI = "git://github.com/google/breakpad;name=breakpad \ @@ -30,26 +31,24 @@ SRC_URI = "git://github.com/google/breakpad;name=breakpad \ git://github.com/google/protobuf.git;destsuffix=git/src/third_party/protobuf/protobuf;name=protobuf \ git://chromium.googlesource.com/linux-syscall-support;protocol=https;destsuffix=git/src/third_party/lss;name=lss \ git://chromium.googlesource.com/external/gyp;protocol=https;destsuffix=git/src/tools/gyp;name=gyp \ - file://0001-Replace-use-of-struct-ucontext-with-ucontext_t.patch \ file://0001-include-sys-reg.h-to-get-__WORDSIZE-on-musl-libc.patch \ - file://0002-Avoid-using-basename.patch \ file://0003-Fix-conflict-between-musl-libc-dirent.h-and-lss.patch \ file://0001-Turn-off-sign-compare-for-musl-libc.patch \ file://0002-sys-signal.h-is-a-nonportable-alias-for-signal.h.patch \ file://0003-Dont-include-stab.h.patch \ file://0004-elf_reader.cc-include-sys-reg.h-to-get-__WORDSIZE-on.patch \ - file://0005-md2core-Replace-basename.patch \ file://0002-Use-_fpstate-instead-of-_libc_fpstate-on-linux.patch \ file://mcontext.patch \ file://0001-disable-calls-to-getcontext-with-musl.patch \ file://0001-lss-Match-syscalls-to-match-musl.patch;patchdir=src/third_party/lss \ file://mips_asm_sgidefs.patch;patchdir=src/third_party/lss \ + file://dont-clobber-rsp.patch \ " S = "${WORKDIR}/git" CXXFLAGS += "-D_GNU_SOURCE" -COMPATIBLE_MACHINE_powerpc = "(!.*ppc).*" +COMPATIBLE_HOST_powerpc = "null" do_install_append() { install -d ${D}${includedir} @@ -72,7 +71,7 @@ do_install_append() { install -m 0644 ${S}/src/client/linux/minidump_writer/minidump_writer.h ${D}${includedir}/breakpad/client/linux/minidump_writer/minidump_writer.h install -d ${D}${includedir}/breakpad/common - install -m 0644 ${S}/src/common/memory.h ${D}${includedir}/breakpad/common/memory.h + install -m 0644 ${S}/src/common/memory_allocator.h ${D}${includedir}/breakpad/common/memory_allocator.h install -m 0644 ${S}/src/common/scoped_ptr.h ${D}${includedir}/breakpad/common/scoped_ptr.h install -m 0644 ${S}/src/common/using_std_string.h ${D}${includedir}/breakpad/common/using_std_string.h @@ -120,4 +119,5 @@ breakpad_populate_sysroot() { #| {standard input}:2184: Error: Thumb does not support this addressing mode -- `str r6,[r1,#-4]!' #| {standard input}:2191: Error: lo register required -- `ldr pc,[sp]' #| make: *** [src/client/linux/handler/exception_handler.o] Error 1 -ARM_INSTRUCTION_SET = "arm" +ARM_INSTRUCTION_SET_armv5 = "arm" +ARM_INSTRUCTION_SET_armv4 = "arm" diff --git a/meta-openembedded/meta-oe/recipes-devtools/doxygen/doxygen/0001-build-don-t-look-for-Iconv.patch b/meta-openembedded/meta-oe/recipes-devtools/doxygen/doxygen/0001-build-don-t-look-for-Iconv.patch new file mode 100644 index 0000000000..c86dc1691e --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-devtools/doxygen/doxygen/0001-build-don-t-look-for-Iconv.patch @@ -0,0 +1,36 @@ +From 24650b0c7db6b213a2eaa5061b75b9f1b43f1ce9 Mon Sep 17 00:00:00 2001 +From: Bartosz Golaszewski <brgl@bgdev.pl> +Date: Fri, 23 Nov 2018 11:44:56 +0100 +Subject: [PATCH] build: don't look for Iconv + +Drop the find_package() for Iconv. CMake is unable to find iconv.h in +native build but all modern systems supply it as part of the standard +C library. We don't need this check in meta-openembedded. + +Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl> + +Upstream-status: Inappropriate +- upstream doxygen must build on many architectures, this change is + too intrusive for upstream +--- + CMakeLists.txt | 4 ---- + 1 file changed, 4 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 45c2f2c1..22cf0144 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -92,10 +92,6 @@ if (sqlite3) + endif() + endif() + +-find_package(Iconv REQUIRED) +-include_directories(${ICONV_INCLUDE_DIR}) +- +- + #set(DOXYDOCS ${CMAKE_SOURCE_DIR}/doc CACHE INTERNAL "Path to doxygen docs") + set(DOXYDOCS ${PROJECT_BINARY_DIR}/doc) + set(ENV{DOXYGEN_DOCDIR} ${DOXYDOCS}) +-- +2.17.1 + diff --git a/meta-openembedded/meta-oe/recipes-devtools/doxygen/doxygen_1.8.15.bb b/meta-openembedded/meta-oe/recipes-devtools/doxygen/doxygen_1.8.15.bb new file mode 100644 index 0000000000..7846846202 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-devtools/doxygen/doxygen_1.8.15.bb @@ -0,0 +1,16 @@ +DESCRIPTION = "Doxygen is the de facto standard tool for generating documentation from annotated C++ sources." +HOMEPAGE = "http://www.doxygen.org/" + +LICENSE = "GPL-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263" + +inherit cmake python3native + +DEPENDS = "flex-native bison-native" + +SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.src.tar.gz \ + file://0001-build-don-t-look-for-Iconv.patch" +SRC_URI[md5sum] = "2c98c73eba392d334f5bbaf15e09bae3" +SRC_URI[sha256sum] = "bd9c0ec462b6a9b5b41ede97bede5458e0d7bb40d4cfa27f6f622eb33c59245d" + +BBCLASSEXTEND = "native" diff --git a/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/files/0001-correct-version-for-so-lib.patch b/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/files/0001-correct-version-for-so-lib.patch deleted file mode 100644 index a7a42f9814..0000000000 --- a/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/files/0001-correct-version-for-so-lib.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 8b44dc65d98d50b462843ac9dab6fe3fc25abe36 Mon Sep 17 00:00:00 2001 -From: Pascal Bach <pascal.bach@siemens.com> -Date: Fri, 12 May 2017 13:54:49 +0200 -Subject: [PATCH] correct version for so lib - -Upstream-Status: Pending - ---- - CMakeLists.txt | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 3670afe..f4fcd2c 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -172,6 +172,7 @@ endif() - if(FLATBUFFERS_BUILD_SHAREDLIB) - add_library(flatbuffers_shared SHARED ${FlatBuffers_Library_SRCS}) - set_target_properties(flatbuffers_shared PROPERTIES OUTPUT_NAME flatbuffers) -+ set_target_properties(flatbuffers_shared PROPERTIES VERSION "${PV}") - endif() - - function(compile_flatbuffers_schema_to_cpp SRC_FBS) --- -2.1.4 - diff --git a/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/files/0001-flatbuffers-Move-EndianSwap-template-to-flatbuffers-.patch b/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/files/0001-flatbuffers-Move-EndianSwap-template-to-flatbuffers-.patch deleted file mode 100644 index d736f012bb..0000000000 --- a/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/files/0001-flatbuffers-Move-EndianSwap-template-to-flatbuffers-.patch +++ /dev/null @@ -1,113 +0,0 @@ -From a614d8e20fa9e4fd16b699d581ddac2956c120f5 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Tue, 19 Sep 2017 10:04:02 -0700 -Subject: [PATCH 1/2] flatbuffers: Move EndianSwap template to - flatbuffers/base.h - -Clang complains -call to function 'EndianSwap' that is neither visible in the template definition nor found by argument-dependent lookup - return EndianSwap(t); - -This seems to be due to limitation of two-phase lookup of dependent names in template definitions - -Its not being found using associated namespaces therefore -it has to be made visible at the template definition site as well - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- -Upstream-Status: Submitted - - include/flatbuffers/base.h | 33 +++++++++++++++++++++++++++++++++ - include/flatbuffers/flatbuffers.h | 32 -------------------------------- - 2 files changed, 33 insertions(+), 32 deletions(-) - -diff --git a/include/flatbuffers/base.h b/include/flatbuffers/base.h -index f051755..c73fb2d 100644 ---- a/include/flatbuffers/base.h -+++ b/include/flatbuffers/base.h -@@ -150,6 +150,39 @@ typedef uintmax_t largest_scalar_t; - // We support aligning the contents of buffers up to this size. - #define FLATBUFFERS_MAX_ALIGNMENT 16 - -+template<typename T> T EndianSwap(T t) { -+ #if defined(_MSC_VER) -+ #define FLATBUFFERS_BYTESWAP16 _byteswap_ushort -+ #define FLATBUFFERS_BYTESWAP32 _byteswap_ulong -+ #define FLATBUFFERS_BYTESWAP64 _byteswap_uint64 -+ #else -+ #if defined(__GNUC__) && __GNUC__ * 100 + __GNUC_MINOR__ < 408 -+ // __builtin_bswap16 was missing prior to GCC 4.8. -+ #define FLATBUFFERS_BYTESWAP16(x) \ -+ static_cast<uint16_t>(__builtin_bswap32(static_cast<uint32_t>(x) << 16)) -+ #else -+ #define FLATBUFFERS_BYTESWAP16 __builtin_bswap16 -+ #endif -+ #define FLATBUFFERS_BYTESWAP32 __builtin_bswap32 -+ #define FLATBUFFERS_BYTESWAP64 __builtin_bswap64 -+ #endif -+ if (sizeof(T) == 1) { // Compile-time if-then's. -+ return t; -+ } else if (sizeof(T) == 2) { -+ auto r = FLATBUFFERS_BYTESWAP16(*reinterpret_cast<uint16_t *>(&t)); -+ return *reinterpret_cast<T *>(&r); -+ } else if (sizeof(T) == 4) { -+ auto r = FLATBUFFERS_BYTESWAP32(*reinterpret_cast<uint32_t *>(&t)); -+ return *reinterpret_cast<T *>(&r); -+ } else if (sizeof(T) == 8) { -+ auto r = FLATBUFFERS_BYTESWAP64(*reinterpret_cast<uint64_t *>(&t)); -+ return *reinterpret_cast<T *>(&r); -+ } else { -+ assert(0); -+ } -+} -+ -+ - template<typename T> T EndianScalar(T t) { - #if FLATBUFFERS_LITTLEENDIAN - return t; -diff --git a/include/flatbuffers/flatbuffers.h b/include/flatbuffers/flatbuffers.h -index 9216cf4..f749dcb 100644 ---- a/include/flatbuffers/flatbuffers.h -+++ b/include/flatbuffers/flatbuffers.h -@@ -37,38 +37,6 @@ inline void EndianCheck() { - (void)endiantest; - } - --template<typename T> T EndianSwap(T t) { -- #if defined(_MSC_VER) -- #define FLATBUFFERS_BYTESWAP16 _byteswap_ushort -- #define FLATBUFFERS_BYTESWAP32 _byteswap_ulong -- #define FLATBUFFERS_BYTESWAP64 _byteswap_uint64 -- #else -- #if defined(__GNUC__) && __GNUC__ * 100 + __GNUC_MINOR__ < 408 -- // __builtin_bswap16 was missing prior to GCC 4.8. -- #define FLATBUFFERS_BYTESWAP16(x) \ -- static_cast<uint16_t>(__builtin_bswap32(static_cast<uint32_t>(x) << 16)) -- #else -- #define FLATBUFFERS_BYTESWAP16 __builtin_bswap16 -- #endif -- #define FLATBUFFERS_BYTESWAP32 __builtin_bswap32 -- #define FLATBUFFERS_BYTESWAP64 __builtin_bswap64 -- #endif -- if (sizeof(T) == 1) { // Compile-time if-then's. -- return t; -- } else if (sizeof(T) == 2) { -- auto r = FLATBUFFERS_BYTESWAP16(*reinterpret_cast<uint16_t *>(&t)); -- return *reinterpret_cast<T *>(&r); -- } else if (sizeof(T) == 4) { -- auto r = FLATBUFFERS_BYTESWAP32(*reinterpret_cast<uint32_t *>(&t)); -- return *reinterpret_cast<T *>(&r); -- } else if (sizeof(T) == 8) { -- auto r = FLATBUFFERS_BYTESWAP64(*reinterpret_cast<uint64_t *>(&t)); -- return *reinterpret_cast<T *>(&r); -- } else { -- assert(0); -- } --} -- - template<typename T> FLATBUFFERS_CONSTEXPR size_t AlignOf() { - #ifdef _MSC_VER - return __alignof(T); --- -2.14.1 - diff --git a/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/files/0002-use-__builtin_bswap16-when-building-with-clang.patch b/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/files/0002-use-__builtin_bswap16-when-building-with-clang.patch deleted file mode 100644 index 460159f275..0000000000 --- a/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/files/0002-use-__builtin_bswap16-when-building-with-clang.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 626fe5e043de25e970ebdf061b88c646fa689113 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Tue, 19 Sep 2017 10:09:31 -0700 -Subject: [PATCH 2/2] use __builtin_bswap16 when building with clang - -clang pretends to be gcc 4.2.0 and therefore the code does -not use __builtin_bswap16 but tries to synthesize it - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- -Upstream-Status: Submitted - include/flatbuffers/base.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/include/flatbuffers/base.h b/include/flatbuffers/base.h -index c73fb2d..13e8fac 100644 ---- a/include/flatbuffers/base.h -+++ b/include/flatbuffers/base.h -@@ -156,7 +156,7 @@ template<typename T> T EndianSwap(T t) { - #define FLATBUFFERS_BYTESWAP32 _byteswap_ulong - #define FLATBUFFERS_BYTESWAP64 _byteswap_uint64 - #else -- #if defined(__GNUC__) && __GNUC__ * 100 + __GNUC_MINOR__ < 408 -+ #if defined(__GNUC__) && __GNUC__ * 100 + __GNUC_MINOR__ < 408 && !defined(__clang__) - // __builtin_bswap16 was missing prior to GCC 4.8. - #define FLATBUFFERS_BYTESWAP16(x) \ - static_cast<uint16_t>(__builtin_bswap32(static_cast<uint32_t>(x) << 16)) --- -2.14.1 - diff --git a/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/flatbuffers_1.9.0.bb b/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/flatbuffers_1.10.0.bb index a8df444858..452e1e65ab 100644 --- a/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/flatbuffers_1.9.0.bb +++ b/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/flatbuffers_1.10.0.bb @@ -10,22 +10,19 @@ RDEPENDS_${PN}-dev += "${PN}-compiler" LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=a873c5645c184d51e0f9b34e1d7cf559" -SRCREV = "25a15950f5a24d7217689739ed8f6dac64912d62" +SRCREV = "c0698cc33f1e534bb59c455909b88cc2726089af" -SRC_URI = "git://github.com/google/flatbuffers.git \ - file://0001-correct-version-for-so-lib.patch \ - file://0001-flatbuffers-Move-EndianSwap-template-to-flatbuffers-.patch \ - file://0002-use-__builtin_bswap16-when-building-with-clang.patch \ - " +SRC_URI = "git://github.com/google/flatbuffers.git" # Make sure C++11 is used, required for example for GCC 4.9 CXXFLAGS += "-std=c++11" BUILD_CXXFLAGS += "-std=c++11" +# BUILD_TYPE=Release is required, otherwise flatc is not installed EXTRA_OECMAKE += "\ - -DFLATBUFFERS_BUILD_TESTS=OFF \ + -DCMAKE_BUILD_TYPE=Release \ + -DFLATBUFFERS_BUILD_TESTS=OFF \ -DFLATBUFFERS_BUILD_SHAREDLIB=ON \ - -DPV=${PV} \ " inherit cmake diff --git a/meta-openembedded/meta-oe/recipes-devtools/geany/geany-plugins/0001-Use-pkg-config-to-find-gpgme.patch b/meta-openembedded/meta-oe/recipes-devtools/geany/geany-plugins/0001-Use-pkg-config-to-find-gpgme.patch new file mode 100644 index 0000000000..9030f36d44 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-devtools/geany/geany-plugins/0001-Use-pkg-config-to-find-gpgme.patch @@ -0,0 +1,31 @@ +From 0c24f99ca4d4f64ea8584347ca6ae0d638d625a8 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com> +Date: Mon, 18 Feb 2019 16:13:17 +0100 +Subject: [PATCH] Use pkg-config to find gpgme +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Andreas Müller <schnitzeltony@gmail.com> +--- + build/bundled/gpgme.m4 | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/build/bundled/gpgme.m4 b/build/bundled/gpgme.m4 +index 44bf43c..c9a8ae6 100644 +--- a/build/bundled/gpgme.m4 ++++ b/build/bundled/gpgme.m4 +@@ -18,7 +18,7 @@ AC_DEFUN([_AM_PATH_GPGME_CONFIG], + if test "x$gpgme_config_prefix" != x ; then + GPGME_CONFIG="$gpgme_config_prefix/bin/gpgme-config" + fi +- AC_PATH_PROG(GPGME_CONFIG, gpgme-config, no) ++ GPGME_CONFIG="pkg-config gpgme" + + if test "$GPGME_CONFIG" != "no" ; then + gpgme_version=`$GPGME_CONFIG --version` +-- +2.20.1 + diff --git a/meta-openembedded/meta-oe/recipes-devtools/geany/geany-plugins_1.31.bb b/meta-openembedded/meta-oe/recipes-devtools/geany/geany-plugins_1.34.bb index d8f2f894bb..6c1c1535e0 100644 --- a/meta-openembedded/meta-oe/recipes-devtools/geany/geany-plugins_1.31.bb +++ b/meta-openembedded/meta-oe/recipes-devtools/geany/geany-plugins_1.34.bb @@ -11,6 +11,7 @@ python () { } DEPENDS = " \ + vala-native \ fribidi \ geany \ libxml2 \ @@ -19,7 +20,7 @@ DEPENDS = " \ intltool-native \ libassuan \ gpgme \ - vte9 \ + vte \ libgit2 \ " @@ -27,9 +28,12 @@ inherit distro_features_check autotools pkgconfig gtk-icon-cache REQUIRED_DISTRO_FEATURES = "x11" -SRC_URI = "http://plugins.geany.org/${PN}/${PN}-${PV}.tar.bz2" -SRC_URI[md5sum] = "808f9048b77fd9704569ed2ba12a56e9" -SRC_URI[sha256sum] = "76bd9e803db5a626b86669f08330cf95b8cc35057a1cdf65759bc00aef120e25" +SRC_URI = " \ + http://plugins.geany.org/${PN}/${PN}-${PV}.tar.bz2 \ + file://0001-Use-pkg-config-to-find-gpgme.patch \ +" +SRC_URI[md5sum] = "bf5fdd50727ad8bbbfe00027ccf2dac5" +SRC_URI[sha256sum] = "244417c681636e82a63cf6f9901b5b7f3889168f7d9b5ba9b45601767a589c3b" do_configure_prepend() { rm -f ${S}/build/cache/glib-gettext.m4 @@ -41,38 +45,33 @@ FILES_${PN}-dev += "${libdir}/geany/*.la ${libdir}/${PN}/*/*.la" PLUGINS += "${PN}-addons" LIC_FILES_CHKSUM += "file://addons/COPYING;md5=4325afd396febcb659c36b49533135d4" FILES_${PN}-addons = "${libdir}/geany/addons.so" -RDEPENDS_${PN}-addons = "${PN}" PLUGINS += "${PN}-autoclose" LIC_FILES_CHKSUM += "file://autoclose/COPYING;md5=751419260aa954499f7abaabaa882bbe" FILES_${PN}-autoclose = "${libdir}/geany/autoclose.so" -RDEPENDS_${PN}-autoclose = "${PN}" PLUGINS += "${PN}-automark" LIC_FILES_CHKSUM += "file://automark/COPYING;md5=751419260aa954499f7abaabaa882bbe" FILES_${PN}-automark = "${libdir}/geany/automark.so" -RDEPENDS_${PN}-automark = "${PN}" PLUGINS += "${PN}-codenav" LIC_FILES_CHKSUM += "file://codenav/COPYING;md5=751419260aa954499f7abaabaa882bbe" FILES_${PN}-codenav = "${libdir}/geany/codenav.so" -RDEPENDS_${PN}-codenav = "${PN}" PLUGINS += "${PN}-commander" LIC_FILES_CHKSUM += "file://commander/COPYING;md5=d32239bcb673463ab874e80d47fae504" LICENSE_${PN}-commander = "GPLv3" FILES_${PN}-commander = "${libdir}/geany/commander.so" -RDEPENDS_${PN}-commander = "${PN}" -PLUGINS += "${PN}-debugger" -LIC_FILES_CHKSUM += "file://debugger/COPYING;md5=4325afd396febcb659c36b49533135d4" -FILES_${PN}-debugger = "${libdir}/geany/debugger.so ${datadir}/${PN}/debugger" -RDEPENDS_${PN}-debugger = "${PN}" +# | checking whether the GTK version in use is compatible with plugin Debugger... no +EXTRA_OECONF += "--disable-debugger" +#PLUGINS += "${PN}-debugger" +#LIC_FILES_CHKSUM += "file://debugger/COPYING;md5=4325afd396febcb659c36b49533135d4" +#FILES_${PN}-debugger = "${libdir}/geany/debugger.so ${datadir}/${PN}/debugger" PLUGINS += "${PN}-defineformat" LIC_FILES_CHKSUM += "file://defineformat/COPYING;md5=751419260aa954499f7abaabaa882bbe" FILES_${PN}-defineformat = "${libdir}/geany/defineformat.so" -RDEPENDS_${PN}-defineformat = "${PN}" # no gnome devhelp in some common layer EXTRA_OECONF += "--disable-devhelp" @@ -80,178 +79,149 @@ EXTRA_OECONF += "--disable-devhelp" #LIC_FILES_CHKSUM += "file://devhelp/COPYING;md5=d32239bcb673463ab874e80d47fae504" #LICENSE_${PN}-devhelp = "GPLv3" #FILES_${PN}-devhelp = "${libdir}/geany/devhelp.so" -#RDEPENDS_${PN}-devhelp = "${PN}" PLUGINS += "${PN}-geanyctags" LIC_FILES_CHKSUM += "file://geanyctags/COPYING;md5=c107cf754550e65755c42985a5d4e9c9" FILES_${PN}-geanyctags = "${libdir}/geany/geanyctags.so" -RDEPENDS_${PN}-geanyctags = "${PN}" PLUGINS += "${PN}-geanydoc" LIC_FILES_CHKSUM += "file://geanydoc/COPYING;md5=d32239bcb673463ab874e80d47fae504" LICENSE_${PN}-geanydoc = "GPLv3" FILES_${PN}-geanydoc = "${libdir}/geany/geanydoc.so" -RDEPENDS_${PN}-geanydoc = "${PN}" PLUGINS += "${PN}-geanyextrasel" LIC_FILES_CHKSUM += "file://geanyextrasel/COPYING;md5=c107cf754550e65755c42985a5d4e9c9" FILES_${PN}-geanyextrasel = "${libdir}/geany/geanyextrasel.so" -RDEPENDS_${PN}-geanyextrasel = "${PN}" PLUGINS += "${PN}-geanyinsertnum" LIC_FILES_CHKSUM += "file://geanyinsertnum/COPYING;md5=c107cf754550e65755c42985a5d4e9c9" FILES_${PN}-geanyinsertnum = "${libdir}/geany/geanyinsertnum.so" -RDEPENDS_${PN}-geanyinsertnum = "${PN}" - -PLUGINS += "${PN}-geanylatex" -LIC_FILES_CHKSUM += "file://geanylatex/COPYING;md5=c107cf754550e65755c42985a5d4e9c9" -FILES_${PN}-geanylatex = "${libdir}/geany/geanylatex.so" -RDEPENDS_${PN}-geanylatex = "${PN}" - -PLUGINS += "${PN}-geanylipsum" -LIC_FILES_CHKSUM += "file://lipsum/COPYING;md5=4325afd396febcb659c36b49533135d4" -FILES_${PN}-geanylipsum = "${libdir}/geany/lipsum.so" -RDEPENDS_${PN}-geanylipsum = "${PN}" # no lua: max supported version is 5.2 EXTRA_OECONF += "--disable-geanylua" #PLUGINS += "${PN}-geanylua" #LIC_FILES_CHKSUM += "file://geanylua/COPYING;md5=4325afd396febcb659c36b49533135d4" #FILES_${PN}-geanylua = "${libdir}/geany/geanylua.so ${libdir}/${PN}/geanylua/*.so" -#RDEPENDS_${PN}-geanylua = "${PN}" PLUGINS += "${PN}-geanymacro" LIC_FILES_CHKSUM += "file://geanymacro/COPYING;md5=c107cf754550e65755c42985a5d4e9c9" FILES_${PN}-geanymacro = "${libdir}/geany/geanymacro.so" -RDEPENDS_${PN}-geanymacro = "${PN}" PLUGINS += "${PN}-geanyminiscript" LIC_FILES_CHKSUM += "file://geanyminiscript/COPYING;md5=4325afd396febcb659c36b49533135d4" FILES_${PN}-geanyminiscript = "${libdir}/geany/geanyminiscript.so" -RDEPENDS_${PN}-geanyminiscript = "${PN}" PLUGINS += "${PN}-geanynumberedbookmarks" LIC_FILES_CHKSUM += "file://geanynumberedbookmarks/COPYING;md5=c107cf754550e65755c42985a5d4e9c9" FILES_${PN}-geanynumberedbookmarks = "${libdir}/geany/geanynumberedbookmarks.so" -RDEPENDS_${PN}-geanynumberedbookmarks = "${PN}" PLUGINS += "${PN}-geanypg" LIC_FILES_CHKSUM += "file://geanypg/COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" FILES_${PN}-geanypg = "${libdir}/geany/geanypg.so" -RDEPENDS_${PN}-geanypg = "${PN}" PLUGINS += "${PN}-geanyprj" LIC_FILES_CHKSUM += "file://geanyprj/COPYING;md5=d32239bcb673463ab874e80d47fae504" LICENSE_${PN}-geanyprj = "GPLv3" FILES_${PN}-geanyprj = "${libdir}/geany/geanyprj.so" -RDEPENDS_${PN}-geanyprj = "${PN}" -# no gnome pygtk -EXTRA_OECONF += "--disable-geanypy" #PLUGINS += "${PN}-geanypy" #LIC_FILES_CHKSUM += "file://geanypy/COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" #FILES_${PN}-geanypy = "${libdir}/geany/geanypy.so" -#RDEPENDS_${PN}-geanypy = "${PN}" PLUGINS += "${PN}-geanyvc" LIC_FILES_CHKSUM += "file://geanyvc/COPYING;md5=c107cf754550e65755c42985a5d4e9c9" FILES_${PN}-geanyvc = "${libdir}/geany/geanyvc.so" -RDEPENDS_${PN}-geanyvc = "${PN}" PLUGINS += "${PN}-geniuspaste" LIC_FILES_CHKSUM += "file://geniuspaste/COPYING;md5=bfc203269f8862ebfc1198cdc809a95a" FILES_${PN}-geniuspaste = "${libdir}/geany/geniuspaste.so ${datadir}/${PN}/geniuspaste" -RDEPENDS_${PN}-geniuspaste = "${PN}" PLUGINS += "${PN}-git-changebar" LIC_FILES_CHKSUM += "file://git-changebar/COPYING;md5=d32239bcb673463ab874e80d47fae504" LICENSE_${PN}-git-changebar = "GPLv3" -FILES_${PN}-git-changebar = "${libdir}/geany/git-changebar.so" -RDEPENDS_${PN}-git-changebar = "${PN}" +FILES_${PN}-git-changebar = "${datadir}/${BPN}/git-changebar ${libdir}/geany/git-changebar.so" PLUGINS += "${PN}-keyrecord" LIC_FILES_CHKSUM += "file://keyrecord/COPYING;md5=751419260aa954499f7abaabaa882bbe" FILES_${PN}-keyrecord = "${libdir}/geany/keyrecord.so" -RDEPENDS_${PN}-keyrecord = "${PN}" + +PLUGINS += "${PN}-latex" +LIC_FILES_CHKSUM += "file://latex/COPYING;md5=c107cf754550e65755c42985a5d4e9c9" +FILES_${PN}-latex = "${libdir}/geany/latex.so" PLUGINS += "${PN}-lineoperations" LIC_FILES_CHKSUM += "file://lineoperations/COPYING;md5=c107cf754550e65755c42985a5d4e9c9" FILES_${PN}-lineoperations = "${libdir}/geany/lineoperations.so" -RDEPENDS_${PN}-lineoperations = "${PN}" + +PLUGINS += "${PN}-lipsum" +LIC_FILES_CHKSUM += "file://lipsum/COPYING;md5=4325afd396febcb659c36b49533135d4" +FILES_${PN}-lipsum = "${libdir}/geany/lipsum.so" # no markdown - avoid floating dependencies -EXTRA_OECONF += " --disable-peg-markdown" +EXTRA_OECONF += "--disable-peg-markdown" #PLUGINS += "${PN}-markdown" #LIC_FILES_CHKSUM += "file://markdown/COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" #FILES_${PN}-markdown = "${libdir}/geany/markdown.so" -#RDEPENDS_${PN}-markdown = "${PN}" -PLUGINS += "${PN}-multiterm" -LIC_FILES_CHKSUM += "file://multiterm/COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" -FILES_${PN}-multiterm = "${libdir}/geany/multiterm.so" -RDEPENDS_${PN}-multiterm = "${PN}" +# | checking whether the GTK version in use is compatible with plugin multiterm... no +EXTRA_OECONF += "--disable-multiterm" +#PLUGINS += "${PN}-multiterm" +#LIC_FILES_CHKSUM += "file://multiterm/COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" +#FILES_${PN}-multiterm = "${libdir}/geany/multiterm.so" PLUGINS += "${PN}-overview" LIC_FILES_CHKSUM += "file://overview/overview/overviewplugin.c;beginline=4;endline=20;md5=1aa33522916cdeb46cccac0c629da0d0" FILES_${PN}-overview = "${libdir}/geany/overview.so ${datadir}/${PN}/overview" -RDEPENDS_${PN}-overview = "${PN}" PLUGINS += "${PN}-pairtaghighlighter" LICENSE_${PN}-pairtaghighlighter = "BSD-2-Clause" LIC_FILES_CHKSUM += "file://pairtaghighlighter/COPYING;md5=d6d927525a612b3a8dbebc4b2e9b47c1" FILES_${PN}-pairtaghighlighter = "${libdir}/geany/pairtaghighlighter.so" -RDEPENDS_${PN}-pairtaghighlighter = "${PN}" PLUGINS += "${PN}-pohelper" LICENSE_${PN}-pohelper = "GPLv3" LIC_FILES_CHKSUM += "file://pohelper/COPYING;md5=d32239bcb673463ab874e80d47fae504" -FILES_${PN}-pohelper = "${libdir}/geany/pohelper.so" -RDEPENDS_${PN}-pohelper = "${PN}" +FILES_${PN}-pohelper = "${datadir}/${BPN}/pohelper ${libdir}/geany/pohelper.so" PLUGINS += "${PN}-pretty-printer" LIC_FILES_CHKSUM += "file://pretty-printer/src/PrettyPrinter.c;beginline=1;endline=17;md5=1665115c2fadb17c1b53cdb4e43b2440" FILES_${PN}-pretty-printer = "${libdir}/geany/pretty-printer.so" -RDEPENDS_${PN}-pretty-printer = "${PN}" PLUGINS += "${PN}-projectorganizer" LIC_FILES_CHKSUM += "file://projectorganizer/COPYING;md5=c107cf754550e65755c42985a5d4e9c9" FILES_${PN}-projectorganizer = "${libdir}/geany/projectorganizer.so" -RDEPENDS_${PN}-projectorganizer = "${PN}" PLUGINS += "${PN}-scope" LIC_FILES_CHKSUM += "file://scope/COPYING;md5=c107cf754550e65755c42985a5d4e9c9" -FILES_${PN}-scope = "${libdir}/geany/scope.so" -RDEPENDS_${PN}-scope = "${PN}" +FILES_${PN}-scope = "${datadir}/${BPN}/scope ${libdir}/geany/scope.so" PLUGINS += "${PN}-sendmail" LIC_FILES_CHKSUM += "file://sendmail/COPYING;md5=c107cf754550e65755c42985a5d4e9c9" FILES_${PN}-sendmail = "${libdir}/geany/sendmail.so" -RDEPENDS_${PN}-sendmail = "${PN}" PLUGINS += "${PN}-shiftcolumn" LIC_FILES_CHKSUM += "file://shiftcolumn/COPYING;md5=751419260aa954499f7abaabaa882bbe" FILES_${PN}-shiftcolumn = "${libdir}/geany/shiftcolumn.so" -RDEPENDS_${PN}-shiftcolumn = "${PN}" PLUGINS += "${PN}-spellcheck" LIC_FILES_CHKSUM += "file://spellcheck/COPYING;md5=4325afd396febcb659c36b49533135d4" FILES_${PN}-spellcheck = "${libdir}/geany/spellcheck.so" -RDEPENDS_${PN}-spellcheck = "${PN}" PLUGINS += "${PN}-tableconvert" LIC_FILES_CHKSUM += "file://tableconvert/COPYING;md5=6753686878d090a1f3f9445661d3dfbc" FILES_${PN}-tableconvert = "${libdir}/geany/tableconvert.so" -RDEPENDS_${PN}-tableconvert = "${PN}" PLUGINS += "${PN}-treebrowser" -LIC_FILES_CHKSUM += "file://treebrowser/README;beginline=67;endline=67;md5=52f90857fd1a9672111e472dd056a0d8" +LIC_FILES_CHKSUM += "file://treebrowser/README;beginline=67;endline=67;md5=1f17f0f2abb88e0fa0f1b342112d871c" FILES_${PN}-treebrowser = "${libdir}/geany/treebrowser.so" -RDEPENDS_${PN}-treebrowser = "${PN}" PLUGINS += "${PN}-updatechecker" LIC_FILES_CHKSUM += "file://updatechecker/COPYING;md5=4325afd396febcb659c36b49533135d4" FILES_${PN}-updatechecker = "${libdir}/geany/updatechecker.so" -RDEPENDS_${PN}-updatechecker = "${PN}" + +PLUGINS += "${PN}-vimode" +LIC_FILES_CHKSUM += "file://vimode/COPYING;md5=c107cf754550e65755c42985a5d4e9c9" +FILES_${PN}-vimode = "${libdir}/geany/vimode.so" # no webkit - lasts ages and is not properly detected EXTRA_OECONF += " --disable-webhelper" @@ -259,13 +229,18 @@ EXTRA_OECONF += " --disable-webhelper" #LIC_FILES_CHKSUM += "file://webhelper/COPYING;md5=d32239bcb673463ab874e80d47fae504" #LICENSE_${PN}-webhelper = "GPLv3" #FILES_${PN}-webhelper = "${libdir}/geany/webhelper.so" -#RDEPENDS_${PN}-webhelper = "${PN}" + +PLUGINS += "${PN}-workbench" +LIC_FILES_CHKSUM += "file://workbench/COPYING;md5=c107cf754550e65755c42985a5d4e9c9" +FILES_${PN}-workbench = "${libdir}/geany/workbench.so" PLUGINS += "${PN}-xmlsnippets" LIC_FILES_CHKSUM += "file://xmlsnippets/COPYING;md5=4325afd396febcb659c36b49533135d4" FILES_${PN}-xmlsnippets = "${libdir}/geany/xmlsnippets.so" -RDEPENDS_${PN}-xmlsnippets = "${PN}" -PACKAGES =+ "${PLUGINS}" +PACKAGES =+ "${PN}-common ${PLUGINS}" +FILES_${PN}-common = "${libdir}/libgeanypluginutils${SOLIBS}" + +# geany-plugins is meta package for all plugins RDEPENDS_${PN} = "${PLUGINS}" ALLOW_EMPTY_${PN} = "1" diff --git a/meta-openembedded/meta-oe/recipes-devtools/geany/geany_1.31.bb b/meta-openembedded/meta-oe/recipes-devtools/geany/geany_1.34.1.bb index bb9d8bc298..aab535d85b 100644 --- a/meta-openembedded/meta-oe/recipes-devtools/geany/geany_1.31.bb +++ b/meta-openembedded/meta-oe/recipes-devtools/geany/geany_1.34.1.bb @@ -3,15 +3,15 @@ HOMEPAGE = "http://www.geany.org/" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=bd7b2c994af21d318bd2cd3b3f80c2d5" -DEPENDS = "gtk+ libxml-parser-perl-native python3-docutils-native intltool-native" +DEPENDS = "gtk+3 libxml-parser-perl-native python3-docutils-native intltool-native" inherit distro_features_check autotools pkgconfig perlnative pythonnative gettext REQUIRED_DISTRO_FEATURES = "x11" SRC_URI = "http://download.geany.org/${BP}.tar.bz2" -SRC_URI[md5sum] = "386000be6b26972c6a699939c37cda34" -SRC_URI[sha256sum] = "30fdb906bb76c4251a8bcf83ee267db28c26ef6ab867668a782cec1164a3aba5" +SRC_URI[md5sum] = "87220f4a0e03623ab9d86820f6be7b5d" +SRC_URI[sha256sum] = "e765efd89e759defe3fd797d8a2052afbb4b23522efbcc72e3a72b7f1093ec11" FILES_${PN} += "${datadir}/icons" diff --git a/meta-openembedded/meta-oe/recipes-devtools/guider/guider_3.9.4.bb b/meta-openembedded/meta-oe/recipes-devtools/guider/guider_3.9.4.bb new file mode 100644 index 0000000000..1a413452a3 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-devtools/guider/guider_3.9.4.bb @@ -0,0 +1,35 @@ +SUMMARY = "runtime performance analyzer" +HOMEPAGE = "https://github.com/iipeace/guider" +BUGTRACKER = "https://github.com/iipeace/guider/issues" +AUTHOR = "Peace Lee <ipeace5@gmail.com>" + +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://LICENSE;md5=2c1c00f9d3ed9e24fa69b932b7e7aff2" + +PV = "3.9.4+git${SRCPV}" +PR = "r0" + +SRC_URI = "git://github.com/iipeace/${BPN}" +#SRCREV = "${AUTOREV}" +SRCREV = "b433f3805674ef4588c1a161986c74eeac6a48e7" + +S = "${WORKDIR}/git" +R = "${RECIPE_SYSROOT}" + +inherit distutils + +GUIDER_OBJ = "guider.pyc" +GUIDER_SCRIPT = "guider" + +do_install() { + python ${S}/setup.py install + + install -d ${D}${bindir} + install -v -m 0755 ${STAGING_BINDIR_NATIVE}/${GUIDER_SCRIPT} ${D}${bindir}/${GUIDER_SCRIPT} + + install -d ${D}${datadir}/${BPN} + install -v -m 0755 ${STAGING_LIBDIR_NATIVE}/python${PYTHON_BASEVERSION}/site-packages/${BPN}/${GUIDER_OBJ} ${D}${datadir}/${BPN}/${GUIDER_OBJ} +} + +RDEPENDS_${PN} = "python-ctypes python-shell \ + python-json python-subprocess" diff --git a/meta-openembedded/meta-oe/recipes-devtools/jq/jq/Support-without-oniguruma.patch b/meta-openembedded/meta-oe/recipes-devtools/jq/jq/Support-without-oniguruma.patch deleted file mode 100644 index 1dfd955f0d..0000000000 --- a/meta-openembedded/meta-oe/recipes-devtools/jq/jq/Support-without-oniguruma.patch +++ /dev/null @@ -1,68 +0,0 @@ -From 18b4b18b41f5ed396d73449ce8d6ec408d95d6b2 Mon Sep 17 00:00:00 2001 -From: David Tolnay <dtolnay@gmail.com> -Date: Sat, 21 Nov 2015 10:05:37 -0800 -Subject: [PATCH] Support --without-oniguruma - -Upstream-Status: Backport - -Signed-off-by: Andre McCurdy <armccurdy@gmail.com> - ---- - configure.ac | 41 ++++++++++++++++++++--------------------- - 1 file changed, 20 insertions(+), 21 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 9e2c8cf..7f6be34 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -52,27 +52,26 @@ fi - AC_ARG_WITH([oniguruma], - [AS_HELP_STRING([--with-oniguruma=prefix], - [try this for a non-standard install prefix of the oniguruma library])], -- [ONIGURUMAPATHSET=1], -- [ONIGURUMAPATHSET=0]) -- --if test $ONIGURUMAPATHSET = 1; then -- CFLAGS="$CFLAGS -I${with_oniguruma}/include" -- LDFLAGS="$LDFLAGS -L${with_oniguruma}/lib" --fi -- --# check for ONIGURUMA library --HAVE_ONIGURUMA=0 --AC_CHECK_HEADER("oniguruma.h", -- AC_CHECK_LIB([onig],[onig_version],[LIBS="$LIBS -lonig"; HAVE_ONIGURUMA=1;])) -- --# handle check results --if test $HAVE_ONIGURUMA != 1; then -- AC_MSG_NOTICE([Oniguruma was not found.]) -- AC_MSG_NOTICE([ Try setting the location using '--with-oniguruma=PREFIX' ]) --else -- AC_DEFINE([HAVE_ONIGURUMA],1,[Define to 1 if Oniguruma is installed]) --fi -- -+ [], -+ [with_oniguruma=yes]) -+ -+AS_IF([test "x$with_oniguruma" != xno], [ -+ AS_IF([test "x$with_oniguruma" != xyes], [ -+ CFLAGS="$CFLAGS -I${with_oniguruma}/include" -+ LDFLAGS="$LDFLAGS -L${with_oniguruma}/lib" -+ ]) -+ # check for ONIGURUMA library -+ have_oniguruma=0 -+ AC_CHECK_HEADER("oniguruma.h", -+ AC_CHECK_LIB([onig],[onig_version],[LIBS="$LIBS -lonig"; have_oniguruma=1;])) -+ # handle check results -+ AS_IF([test $have_oniguruma = 1], [ -+ AC_DEFINE([HAVE_ONIGURUMA], 1, [Define to 1 if Oniguruma is installed]) -+ ], [ -+ AC_MSG_NOTICE([Oniguruma was not found.]) -+ AC_MSG_NOTICE([Try setting the location using '--with-oniguruma=PREFIX']) -+ ]) -+]) - - dnl Check for valgrind - AC_CHECK_PROGS(valgrind_cmd, valgrind) --- -1.9.1 - diff --git a/meta-openembedded/meta-oe/recipes-devtools/jq/jq_1.5.bb b/meta-openembedded/meta-oe/recipes-devtools/jq/jq_1.6.bb index 0f40815ccd..0086eae5c3 100644 --- a/meta-openembedded/meta-oe/recipes-devtools/jq/jq_1.5.bb +++ b/meta-openembedded/meta-oe/recipes-devtools/jq/jq_1.6.bb @@ -6,16 +6,15 @@ HOMEPAGE = "https://stedolan.github.io/jq/" BUGTRACKER = "https://github.com/stedolan/jq/issues" SECTION = "utils" LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=29dd0c35d7e391bb8d515eacf7592e00" +LIC_FILES_CHKSUM = "file://COPYING;md5=15d03e360fa7399f76d5a4359fc72cbf" SRC_URI = "https://github.com/stedolan/${BPN}/releases/download/${BP}/${BP}.tar.gz \ - file://Support-without-oniguruma.patch \ " -SRC_URI[md5sum] = "0933532b086bd8b6a41c1b162b1731f9" -SRC_URI[sha256sum] = "c4d2bfec6436341113419debf479d833692cc5cdab7eb0326b5a4d4fbe9f493c" +SRC_URI[md5sum] = "e68fbd6a992e36f1ac48c99bbf825d6b" +SRC_URI[sha256sum] = "5de8c8e29aaa3fb9cc6b47bb27299f271354ebb72514e3accadc7d38b5bbaa72" -inherit autotools +inherit autotools-brokensep PACKAGECONFIG ?= "oniguruma" diff --git a/meta-openembedded/meta-oe/recipes-devtools/jsonrpc/jsonrpc/0001-cmake-replace-hardcoded-lib-CMAKE_LIBRARY_PATH-with-.patch b/meta-openembedded/meta-oe/recipes-devtools/jsonrpc/jsonrpc/0001-cmake-replace-hardcoded-lib-CMAKE_LIBRARY_PATH-with-.patch deleted file mode 100644 index 748e4da1a6..0000000000 --- a/meta-openembedded/meta-oe/recipes-devtools/jsonrpc/jsonrpc/0001-cmake-replace-hardcoded-lib-CMAKE_LIBRARY_PATH-with-.patch +++ /dev/null @@ -1,77 +0,0 @@ -From ac61124df17ab76527508bbb9a3115d4d6cc1af6 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Mon, 21 Nov 2016 11:26:26 -0800 -Subject: [PATCH] cmake: replace hardcoded lib/${CMAKE_LIBRARY_PATH} with - {CMAKE_INSTALL_LIBDIR} - -Fixes -| CMake Error at src/jsonrpccpp/CMakeLists.txt:207 (install): -| install TARGETS given unknown argument "/lib". - -and - -Wrong install paths during cross compile - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - src/jsonrpccpp/CMakeLists.txt | 8 ++++---- - src/stubgenerator/CMakeLists.txt | 6 +++--- - 2 files changed, 7 insertions(+), 7 deletions(-) - -diff --git a/src/jsonrpccpp/CMakeLists.txt b/src/jsonrpccpp/CMakeLists.txt -index e4a1eb5..13f9056 100644 ---- a/src/jsonrpccpp/CMakeLists.txt -+++ b/src/jsonrpccpp/CMakeLists.txt -@@ -205,15 +205,15 @@ if (WIN32) - endif() - - install(TARGETS ${ALL_LIBS} -- LIBRARY DESTINATION lib${LIB_SUFFIX}/${CMAKE_LIBRARY_PATH} -- ARCHIVE DESTINATION lib${LIB_SUFFIX}/${CMAKE_LIBRARY_PATH} -+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} -+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} - RUNTIME DESTINATION bin - ) - - #set pkg-config - get_filename_component(FULL_PATH_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX} ABSOLUTE) - set(FULL_PATH_INCLUDEDIR "${FULL_PATH_INSTALL_PREFIX}/include") --set(FULL_PATH_LIBDIR "${FULL_PATH_INSTALL_PREFIX}/lib/${CMAKE_LIBRARY_PATH}") -+set(FULL_PATH_LIBDIR "${FULL_PATH_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}") - - CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/cmake/libjsonrpccpp-client.pc.cmake ${CMAKE_BINARY_DIR}/libjsonrpccpp-client.pc) - CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/cmake/libjsonrpccpp-server.pc.cmake ${CMAKE_BINARY_DIR}/libjsonrpccpp-server.pc) -@@ -223,6 +223,6 @@ INSTALL(FILES - "${CMAKE_BINARY_DIR}/libjsonrpccpp-server.pc" - "${CMAKE_BINARY_DIR}/libjsonrpccpp-client.pc" - "${CMAKE_BINARY_DIR}/libjsonrpccpp-common.pc" -- DESTINATION "lib${LIB_SUFFIX}/${CMAKE_LIBRARY_PATH}/pkgconfig") -+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig") - - -diff --git a/src/stubgenerator/CMakeLists.txt b/src/stubgenerator/CMakeLists.txt -index f9dbe4c..b57b0fe 100644 ---- a/src/stubgenerator/CMakeLists.txt -+++ b/src/stubgenerator/CMakeLists.txt -@@ -58,15 +58,15 @@ CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/cmake/libjsonrpccpp-stub.pc.cmake ${CMAKE_BIN - - INSTALL(FILES - "${CMAKE_BINARY_DIR}/libjsonrpccpp-stub.pc" -- DESTINATION "lib/${CMAKE_LIBRARY_PATH}/pkgconfig") -+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig") - - install(DIRECTORY ${CMAKE_SOURCE_DIR}/src/stubgenerator/ - DESTINATION include/jsonrpccpp/stubgen - FILES_MATCHING PATTERN "*.h") - - install(TARGETS ${ALL_LIBS} jsonrpcstub -- LIBRARY DESTINATION lib${LIB_SUFFIX}/${CMAKE_LIBRARY_PATH} -- ARCHIVE DESTINATION lib${LIB_SUFFIX}/${CMAKE_LIBRARY_PATH} -+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} -+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} - RUNTIME DESTINATION bin - ) - --- -2.10.2 - diff --git a/meta-openembedded/meta-oe/recipes-devtools/jsonrpc/jsonrpc/0001-filedescriptorclient-Typecast-min-arguments-correctl.patch b/meta-openembedded/meta-oe/recipes-devtools/jsonrpc/jsonrpc/0001-filedescriptorclient-Typecast-min-arguments-correctl.patch deleted file mode 100644 index d21e97950c..0000000000 --- a/meta-openembedded/meta-oe/recipes-devtools/jsonrpc/jsonrpc/0001-filedescriptorclient-Typecast-min-arguments-correctl.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 9500f12f5d827840634311d6ca972d9551211e4d Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Mon, 21 Nov 2016 01:00:51 -0800 -Subject: [PATCH] filedescriptorclient: Typecast min() arguments correctly - -Fixes - -| /mnt/a/build/tmp-glibc/work/cortexa7hf-neon-vfpv4-oe-linux-gnueabi/jsonrpc/0.7.0-r0/git/src/jsonrpccp -p/client/connectors/filedescriptorclient.cpp:47:92: note: deduced conflicting types for parameter 'co -nst _Tp' ('unsigned int' and 'long unsigned int') -| ssize_t byteWritten = write(outputfd, toSend.c_str(), min(toSend.size(), MAX_WRITE_SIZE)); - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - src/jsonrpccpp/client/connectors/filedescriptorclient.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/jsonrpccpp/client/connectors/filedescriptorclient.cpp b/src/jsonrpccpp/client/connectors/filedescriptorclient.cpp -index 77aac7e..6325b5c 100644 ---- a/src/jsonrpccpp/client/connectors/filedescriptorclient.cpp -+++ b/src/jsonrpccpp/client/connectors/filedescriptorclient.cpp -@@ -43,7 +43,7 @@ void FileDescriptorClient::SendRPCMessage(const std::string& message, - string toSend = message; - do - { -- ssize_t byteWritten = write(outputfd, toSend.c_str(), min(toSend.size(), MAX_WRITE_SIZE)); -+ ssize_t byteWritten = write(outputfd, toSend.c_str(), min((long unsigned int)toSend.size(), MAX_WRITE_SIZE)); - if (byteWritten < 1) - throw JsonRpcException(Errors::ERROR_CLIENT_CONNECTOR, - "Unknown error occured while writing to the output file descriptor"); --- -2.10.2 - diff --git a/meta-openembedded/meta-oe/recipes-devtools/jsonrpc/jsonrpc/0001-filedescriptorserver-Include-sys-select.h-before-oth.patch b/meta-openembedded/meta-oe/recipes-devtools/jsonrpc/jsonrpc/0001-filedescriptorserver-Include-sys-select.h-before-oth.patch deleted file mode 100644 index 3b9068a7d8..0000000000 --- a/meta-openembedded/meta-oe/recipes-devtools/jsonrpc/jsonrpc/0001-filedescriptorserver-Include-sys-select.h-before-oth.patch +++ /dev/null @@ -1,34 +0,0 @@ -From c7aad10628949e126f50e3264b5bc7eb417347c6 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Mon, 21 Nov 2016 01:25:10 -0800 -Subject: [PATCH] filedescriptorserver: Include sys/select.h before other - headers - -Fixes errors e.g. -| /mnt/a/build/tmp-glibc/work/cortexa7hf-neon-vfpv4-oe-linux-gnueabi/jsonrpc/0.7.0-r0/git/src/jsonrpccp -p/server/connectors/filedescriptorserver.h:63:7: error: unknown type name 'fd_set' -| fd_set read_fds; -| ^ - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - src/jsonrpccpp/server/connectors/filedescriptorserver.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/jsonrpccpp/server/connectors/filedescriptorserver.cpp b/src/jsonrpccpp/server/connectors/filedescriptorserver.cpp -index 9d74223..8e019ca 100644 ---- a/src/jsonrpccpp/server/connectors/filedescriptorserver.cpp -+++ b/src/jsonrpccpp/server/connectors/filedescriptorserver.cpp -@@ -7,8 +7,8 @@ - * @license See attached LICENSE.txt - ************************************************************************/ - --#include "filedescriptorserver.h" - #include <sys/select.h> -+#include "filedescriptorserver.h" - #include <sys/types.h> - #include <sys/stat.h> - #include <unistd.h> --- -2.10.2 - diff --git a/meta-openembedded/meta-oe/recipes-devtools/jsonrpc/jsonrpc/0001-memset-and-family-needs-to-include-string.h.patch b/meta-openembedded/meta-oe/recipes-devtools/jsonrpc/jsonrpc/0001-memset-and-family-needs-to-include-string.h.patch deleted file mode 100644 index 21ef98bf5a..0000000000 --- a/meta-openembedded/meta-oe/recipes-devtools/jsonrpc/jsonrpc/0001-memset-and-family-needs-to-include-string.h.patch +++ /dev/null @@ -1,26 +0,0 @@ -From f5416f1c2b2989f94163a2ae4b91c9b9fa13c620 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Fri, 31 Mar 2017 13:32:31 -0700 -Subject: [PATCH 1/2] memset() and family needs to include string.h - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - src/jsonrpccpp/server/connectors/unixdomainsocketserver.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/jsonrpccpp/server/connectors/unixdomainsocketserver.cpp b/src/jsonrpccpp/server/connectors/unixdomainsocketserver.cpp -index 9fca57b..e63c49e 100644 ---- a/src/jsonrpccpp/server/connectors/unixdomainsocketserver.cpp -+++ b/src/jsonrpccpp/server/connectors/unixdomainsocketserver.cpp -@@ -16,7 +16,7 @@ - #include <cstdio> - #include <fcntl.h> - #include <unistd.h> --#include <string> -+#include <cstring> - - using namespace jsonrpc; - using namespace std; --- -2.12.1 - diff --git a/meta-openembedded/meta-oe/recipes-devtools/jsonrpc/jsonrpc/0002-Fix-build-problem-on-Mac.patch b/meta-openembedded/meta-oe/recipes-devtools/jsonrpc/jsonrpc/0002-Fix-build-problem-on-Mac.patch deleted file mode 100644 index aece45b020..0000000000 --- a/meta-openembedded/meta-oe/recipes-devtools/jsonrpc/jsonrpc/0002-Fix-build-problem-on-Mac.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 79050ef9607f242e0d509969b19e9390220c3411 Mon Sep 17 00:00:00 2001 -From: Yongwei Wu <wuyongwei@gmail.com> -Date: Sat, 31 Dec 2016 11:57:11 +0800 -Subject: [PATCH 2/2] Fix build problem on Mac. - -__suseconds_t is not defined on Mac/BSD; use the POSIX-conformant -suseconds_t. ---- - src/jsonrpccpp/server/connectors/filedescriptorserver.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/jsonrpccpp/server/connectors/filedescriptorserver.cpp b/src/jsonrpccpp/server/connectors/filedescriptorserver.cpp -index 8e019ca..68107f2 100644 ---- a/src/jsonrpccpp/server/connectors/filedescriptorserver.cpp -+++ b/src/jsonrpccpp/server/connectors/filedescriptorserver.cpp -@@ -122,7 +122,7 @@ int FileDescriptorServer::WaitForRead() { - FD_ZERO(&except_fds); - FD_SET(inputfd, &read_fds); - timeout.tv_sec = 0; -- timeout.tv_usec = (__suseconds_t) (READ_TIMEOUT * 1000000); -+ timeout.tv_usec = (suseconds_t) (READ_TIMEOUT * 1000000); - // Wait for something to read - return select(inputfd + 1, &read_fds, &write_fds, &except_fds, &timeout); - } --- -2.12.1 - diff --git a/meta-openembedded/meta-oe/recipes-devtools/jsonrpc/jsonrpc_0.7.0.bb b/meta-openembedded/meta-oe/recipes-devtools/jsonrpc/jsonrpc_git.bb index eb1ff65b63..aea11b0828 100644 --- a/meta-openembedded/meta-oe/recipes-devtools/jsonrpc/jsonrpc_0.7.0.bb +++ b/meta-openembedded/meta-oe/recipes-devtools/jsonrpc/jsonrpc_git.bb @@ -5,22 +5,16 @@ DESCRIPTION = "JsonRpc-Cpp is an OpenSource implementation of JSON-RPC \ HOMEPAGE = "https://github.com/cinemast/libjson-rpc-cpp" LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=ee72d601854d5d2a065cf642883c489b" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4e728c5b36018f6c383b4b9efd9c8840" +SECTION = "libs" +DEPENDS = "curl jsoncpp libmicrohttpd hiredis" -PV = "0.7.0+git${SRCPV}" +PV = "1.1.1+git${SRCPV}" +# v1.1.1 +SRCREV = "319783c635cf8cabcc1a980495c99a88f9ebbd97" SRC_URI = "git://github.com/cinemast/libjson-rpc-cpp \ - file://0001-cmake-replace-hardcoded-lib-CMAKE_LIBRARY_PATH-with-.patch \ - file://0001-filedescriptorclient-Typecast-min-arguments-correctl.patch \ - file://0001-filedescriptorserver-Include-sys-select.h-before-oth.patch \ - file://0001-memset-and-family-needs-to-include-string.h.patch \ - file://0002-Fix-build-problem-on-Mac.patch \ " -SRCREV = "ccbdb41388bdd929828941652da816bf52a0580e" - -SECTION = "libs" - -DEPENDS = "curl jsoncpp libmicrohttpd" S = "${WORKDIR}/git" @@ -30,3 +24,5 @@ EXTRA_OECMAKE += "-DCOMPILE_TESTS=NO -DCOMPILE_STUBGEN=NO -DCOMPILE_EXAMPLES=NO -DBUILD_SHARED_LIBS=YES -DBUILD_STATIC_LIBS=YES \ -DCMAKE_LIBRARY_PATH=${libdir} \ " + +FILES_${PN}-dev += "${libdir}/libjson-rpc-cpp/cmake" diff --git a/meta-openembedded/meta-oe/recipes-devtools/libedit/libedit_20180525-3.1.bb b/meta-openembedded/meta-oe/recipes-devtools/libedit/libedit_20181209-3.1.bb index 8cc0e959e0..c0a3d21360 100644 --- a/meta-openembedded/meta-oe/recipes-devtools/libedit/libedit_20180525-3.1.bb +++ b/meta-openembedded/meta-oe/recipes-devtools/libedit/libedit_20181209-3.1.bb @@ -15,7 +15,9 @@ FETCHCMD_wget += "-U bitbake" SRC_URI = "http://www.thrysoee.dk/editline/${BPN}-${PV}.tar.gz \ file://stdc-predef.patch \ " -SRC_URI[md5sum] = "97679319742f45d6cdcd6075511b14ac" -SRC_URI[sha256sum] = "c41bea8fd140fb57ba67a98ec1d8ae0b8ffa82f4aba9c35a87e5a9499e653116" +SRC_URI[md5sum] = "22e945a0476e388e6f78bfc8d6e1192c" +SRC_URI[sha256sum] = "2811d70c0b000f2ca91b7cb1a37203134441743c4fcc9c37b0b687f328611064" S = "${WORKDIR}/${BPN}-${PV}" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-oe/recipes-devtools/libgee/libgee_0.18.0.bb b/meta-openembedded/meta-oe/recipes-devtools/libgee/libgee_0.20.1.bb index 6386f1ffb7..190e5dd4e6 100644 --- a/meta-openembedded/meta-oe/recipes-devtools/libgee/libgee_0.18.0.bb +++ b/meta-openembedded/meta-oe/recipes-devtools/libgee/libgee_0.20.1.bb @@ -20,5 +20,5 @@ do_configure_prepend() { SHRT_VER = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}" SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/libgee/${SHRT_VER}/${BP}.tar.xz" -SRC_URI[md5sum] = "29ea6125e653d7e60b49a9a9544abc96" -SRC_URI[sha256sum] = "4ad99ef937d071b4883c061df40bfe233f7649d50c354cf81235f180b4244399" +SRC_URI[md5sum] = "d224dca55bb909f6730f40cc267337be" +SRC_URI[sha256sum] = "bb2802d29a518e8c6d2992884691f06ccfcc25792a5686178575c7111fea4630" diff --git a/meta-openembedded/meta-oe/recipes-devtools/log4cplus/log4cplus_2.0.2.bb b/meta-openembedded/meta-oe/recipes-devtools/log4cplus/log4cplus_2.0.3.bb index d17d15c925..56c62f1f2e 100644 --- a/meta-openembedded/meta-oe/recipes-devtools/log4cplus/log4cplus_2.0.2.bb +++ b/meta-openembedded/meta-oe/recipes-devtools/log4cplus/log4cplus_2.0.3.bb @@ -7,8 +7,8 @@ LICENSE = "Apache-2.0 & BSD-2-Clause" LIC_FILES_CHKSUM = "file://LICENSE;md5=41e8e060c26822886b592ab4765c756b" SRC_URI = "${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}-stable/${PV}/${BP}.tar.gz" -SRC_URI[md5sum] = "b3bbeb2dc3e170768430cf87583016f8" -SRC_URI[sha256sum] = "10539f2315271d370c7bc6a2b4808cbe369279837f4539ce5c789e456489fc62" +SRC_URI[md5sum] = "20a87090cd8ec34ea11b3e59954234cb" +SRC_URI[sha256sum] = "2d8f627aa6417e6c6a100bc09dc407684ca4605c929defc1690ee7d6a575ce6a" UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/log4cplus/files/log4cplus-stable/" UPSTREAM_CHECK_REGEX = "log4cplus-stable/(?P<pver>\d+(\.\d+)+)/" diff --git a/meta-openembedded/meta-oe/recipes-devtools/lshw/lshw_02.18.bb b/meta-openembedded/meta-oe/recipes-devtools/lshw/lshw_02.18.bb index b344fbf326..d1a7334248 100644 --- a/meta-openembedded/meta-oe/recipes-devtools/lshw/lshw_02.18.bb +++ b/meta-openembedded/meta-oe/recipes-devtools/lshw/lshw_02.18.bb @@ -30,3 +30,5 @@ do_compile() { do_install() { oe_runmake install DESTDIR=${D} } + +BBCLASSEXTEND = "native" diff --git a/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace/0001-hook-Do-not-append-int-to-std-string.patch b/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace/0001-hook-Do-not-append-int-to-std-string.patch new file mode 100644 index 0000000000..8f1c4b9b9b --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace/0001-hook-Do-not-append-int-to-std-string.patch @@ -0,0 +1,33 @@ +From 8321f8b3befbaa355cfed988fdd8494133989676 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Mon, 4 Feb 2019 00:38:16 -0800 +Subject: [PATCH] hook: Do not append int to std::string + +Clang find this error + +| ../../../git/sysdeps/linux-gnu/hooks.c:205:51: error: adding 'int' to a string does not append to the string [-Werror,-Wstring-plus +-int] +| || sprintf(syspath, "%s/%s", sysconfdir, FN + 1) < 0) +| ~~~^~~ + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + sysdeps/linux-gnu/hooks.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/sysdeps/linux-gnu/hooks.c ++++ b/sysdeps/linux-gnu/hooks.c +@@ -200,9 +200,10 @@ os_get_ltrace_conf_filenames(struct vect + const char *sysconfdir = SYSCONFDIR; + if (sysconfdir != NULL && *sysconfdir != '\0') { + /* No +1, we skip the initial period. */ +- syspath = malloc(strlen(sysconfdir) + sizeof FN); ++ syspath = malloc(strlen(sysconfdir) + sizeof FN + 1); ++ syspath[strlen(sysconfdir) + sizeof FN + 1] = '\0'; + if (syspath == NULL +- || sprintf(syspath, "%s/%s", sysconfdir, FN + 1) < 0) ++ || sprintf(syspath, "%s/%s", sysconfdir, FN) < 0) + goto fail; + } + diff --git a/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace/0001-move-fprintf-into-same-block-where-modname-and-symna.patch b/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace/0001-move-fprintf-into-same-block-where-modname-and-symna.patch new file mode 100644 index 0000000000..54acaace1a --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace/0001-move-fprintf-into-same-block-where-modname-and-symna.patch @@ -0,0 +1,37 @@ +From 0cad025f80cf090dc16a5b70e21477f5b08a67fd Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Thu, 20 Dec 2018 11:27:45 -0800 +Subject: [PATCH] move fprintf into same block where modname and symname are + computed + +In its current state if mod turns out to be NULL then modname and +symname will also turn out to be NULL and fprinting them as strings will +be problematic + +Upstream-Status: Pending + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + output.c | 7 +++---- + 1 file changed, 3 insertions(+), 4 deletions(-) + +diff --git a/output.c b/output.c +index b63befe..5aada7b 100644 +--- a/output.c ++++ b/output.c +@@ -654,12 +654,11 @@ frame_callback (Dwfl_Frame *state, void *arg) + NULL, NULL, NULL); + symname = dwfl_module_addrinfo(mod, pc, &off, &sym, + NULL, NULL, NULL); ++ /* This mimics the output produced by libunwind below. */ ++ fprintf(options.output, " > %s(%s+0x%" PRIx64 ") [%" PRIx64 "]\n", ++ modname, symname, off, pc); + } + +- /* This mimics the output produced by libunwind below. */ +- fprintf(options.output, " > %s(%s+0x%" PRIx64 ") [%" PRIx64 "]\n", +- modname, symname, off, pc); +- + /* See if we can extract the source line too and print it on + the next line if we can find it. */ + if (mod != NULL) { diff --git a/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace_git.bb b/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace_git.bb index f4033f7c27..3dc269c80e 100644 --- a/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace_git.bb +++ b/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace_git.bb @@ -25,6 +25,8 @@ SRC_URI = "git://github.com/sparkleholic/ltrace.git;branch=master;protocol=http file://0001-Add-support-for-mips64-n32-n64.patch \ file://0001-configure-Recognise-linux-musl-as-a-host-OS.patch \ file://0001-mips-plt.c-Delete-include-error.h.patch \ + file://0001-move-fprintf-into-same-block-where-modname-and-symna.patch \ + file://0001-hook-Do-not-append-int-to-std-string.patch \ " S = "${WORKDIR}/git" diff --git a/meta-openembedded/meta-oe/recipes-devtools/luajit/luajit_2.0.5.bb b/meta-openembedded/meta-oe/recipes-devtools/luajit/luajit_2.0.5.bb index f3a0f70ee2..c2d2180bae 100644 --- a/meta-openembedded/meta-oe/recipes-devtools/luajit/luajit_2.0.5.bb +++ b/meta-openembedded/meta-oe/recipes-devtools/luajit/luajit_2.0.5.bb @@ -22,7 +22,7 @@ BBCLASSEXTEND = "native" # you need to install the multilib development package (e.g. # libc6-dev-i386 on Debian/Ubuntu) and build a 32 bit host part # (HOST_CC="gcc -m32"). -BUILD_CC_ARCH_append = " ${@['-m32',''][d.getVar('SITEINFO_BITS', True) != '32']}" +BUILD_CC_ARCH_append = " ${@['-m32',''][d.getVar('SITEINFO_BITS') != '32']}" # The lua makefiles expect the TARGET_SYS to be from uname -s # Values: Windows, Linux, Darwin, iOS, SunOS, PS3, GNU/kFreeBSD diff --git a/meta-openembedded/meta-oe/recipes-devtools/msgpack/msgpack-c/0001-Fix-Werror-class-memaccess.patch b/meta-openembedded/meta-oe/recipes-devtools/msgpack/msgpack-c/0001-Fix-Werror-class-memaccess.patch deleted file mode 100644 index b0d772d937..0000000000 --- a/meta-openembedded/meta-oe/recipes-devtools/msgpack/msgpack-c/0001-Fix-Werror-class-memaccess.patch +++ /dev/null @@ -1,35 +0,0 @@ -From a05d92ae85024d0648f69f95307a1d3e8e51109c Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Sun, 1 Apr 2018 19:55:38 -0700 -Subject: [PATCH] Fix -Werror=class-memaccess - -Casting to void* make gcc happy since its upset about -object types and rightly so - -Fixes - -'void* memcpy(void*, const void*, size_t)' copying an object of non-trivial type 'struct msgpack::v2::object' from an array of 'const msgpack_object' {aka 'const struct msgpack_object'} [-Werror=class-memaccess] - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- -Upstream-Status: Submitted [https://github.com/msgpack/msgpack-c/pull/659] - - include/msgpack/v1/object.hpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/include/msgpack/v1/object.hpp b/include/msgpack/v1/object.hpp -index 64da8c53..9721f705 100644 ---- a/include/msgpack/v1/object.hpp -+++ b/include/msgpack/v1/object.hpp -@@ -661,7 +661,7 @@ inline object::object(const msgpack_object& o) - inline void operator<< (msgpack::object& o, const msgpack_object& v) - { - // FIXME beter way? -- std::memcpy(&o, &v, sizeof(v)); -+ std::memcpy(static_cast<void*>(&o), &v, sizeof(v)); - } - - inline object::operator msgpack_object() const --- -2.16.3 - diff --git a/meta-openembedded/meta-oe/recipes-devtools/msgpack/msgpack-c_2.1.5.bb b/meta-openembedded/meta-oe/recipes-devtools/msgpack/msgpack-c_3.1.1.bb index 690a7f444b..90fd44e607 100644 --- a/meta-openembedded/meta-oe/recipes-devtools/msgpack/msgpack-c_2.1.5.bb +++ b/meta-openembedded/meta-oe/recipes-devtools/msgpack/msgpack-c_3.1.1.bb @@ -10,9 +10,9 @@ LIC_FILES_CHKSUM = "file://NOTICE;md5=7a858c074723608e08614061dc044352 \ PV .= "+git${SRCPV}" SRC_URI = "git://github.com/msgpack/msgpack-c \ - file://0001-Fix-Werror-class-memaccess.patch \ " -SRCREV = "208595b2620cf6260ce3d6d4cf8543f13b206449" +# cpp-3.1.1 +SRCREV = "83a82e3eb512b18d4149cabb7eb43c7e8bc081af" S = "${WORKDIR}/git" diff --git a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0001-Disable-running-gyp-files-for-bundled-deps.patch b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0001-Disable-running-gyp-files-for-bundled-deps.patch index 324a4683d6..5d0dc03b66 100644 --- a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0001-Disable-running-gyp-files-for-bundled-deps.patch +++ b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0001-Disable-running-gyp-files-for-bundled-deps.patch @@ -4,26 +4,23 @@ Date: Thu, 27 Apr 2017 14:25:42 +0200 Subject: [PATCH] Disable running gyp on shared deps --- - Makefile | 7 +++---- - 1 file changed, 3 insertions(+), 4 deletions(-) + Makefile | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile -index 0a217bd893..e1229ad07f 100644 +index a98772f..f5663e2 100644 --- a/Makefile +++ b/Makefile -@@ -79,10 +79,9 @@ $(NODE_G_EXE): config.gypi out/Makefile - $(MAKE) -C out BUILDTYPE=Debug V=$(V) - if [ ! -r $@ -o ! -L $@ ]; then ln -fs out/Debug/$(NODE_EXE) $@; fi +@@ -123,8 +123,8 @@ with-code-cache: + test-code-cache: with-code-cache + $(PYTHON) tools/test.py $(PARALLEL_ARGS) --mode=$(BUILDTYPE_LOWER) code-cache -out/Makefile: common.gypi deps/uv/uv.gyp deps/http_parser/http_parser.gyp \ - deps/zlib/zlib.gyp deps/v8/gypfiles/toolchain.gypi \ -- deps/v8/gypfiles/features.gypi deps/v8/src/v8.gyp node.gyp \ -- config.gypi +out/Makefile: common.gypi deps/http_parser/http_parser.gyp \ -+ deps/v8/gypfiles/toolchain.gypi deps/v8/gypfiles/features.gypi \ -+ deps/v8/src/v8.gyp node.gyp config.gypi ++ deps/v8/gypfiles/toolchain.gypi \ + deps/v8/gypfiles/features.gypi deps/v8/gypfiles/v8.gyp node.gyp \ + config.gypi $(PYTHON) tools/gyp_node.py -f make - - config.gypi: configure -- -2.12.2 +2.19.2 diff --git a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0002-Using-native-torque.patch b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0002-Using-native-torque.patch new file mode 100644 index 0000000000..e9035f9eb3 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0002-Using-native-torque.patch @@ -0,0 +1,36 @@ +From 4bbee5e3d58bc4911999f3ec2cc5aab8ded6717b Mon Sep 17 00:00:00 2001 +From: "Winker Matthias (TT-CA/ENG1)" <Matthias.Winker@de.bosch.com> +Date: Tue, 11 Dec 2018 10:44:29 +0100 +Subject: [PATCH] Using native torque + +--- + deps/v8/gypfiles/v8.gyp | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/deps/v8/gypfiles/v8.gyp b/deps/v8/gypfiles/v8.gyp +index 8c78f02255..434168844e 100644 +--- a/deps/v8/gypfiles/v8.gyp ++++ b/deps/v8/gypfiles/v8.gyp +@@ -2831,7 +2831,6 @@ + { + 'action_name': 'run_torque', + 'inputs': [ # Order matters. +- '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)torque<(EXECUTABLE_SUFFIX)', + '../src/builtins/base.tq', + '../src/builtins/array.tq', + '../src/builtins/typed-array.tq', +@@ -2845,7 +2844,10 @@ + '<(SHARED_INTERMEDIATE_DIR)/torque-generated/builtins-typed-array-from-dsl-gen.cc', + '<(SHARED_INTERMEDIATE_DIR)/torque-generated/builtins-typed-array-from-dsl-gen.h', + ], +- 'action': ['<@(_inputs)', '-o', '<(SHARED_INTERMEDIATE_DIR)/torque-generated'], ++ 'action': [ ++ 'torque', ++ '<@(_inputs)', ++ '-o', '<(SHARED_INTERMEDIATE_DIR)/torque-generated'], + }, + ], + }, # torque +-- +2.19.2 + diff --git a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0003-Crypto-reduce-memory-usage-of-SignFinal.patch b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0003-Crypto-reduce-memory-usage-of-SignFinal.patch new file mode 100644 index 0000000000..ed3bac39bd --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0003-Crypto-reduce-memory-usage-of-SignFinal.patch @@ -0,0 +1,122 @@ +From 20282b1cb0389553421c4c5b14de198c5dfff50b Mon Sep 17 00:00:00 2001 +From: Anna Henningsen <anna@addaleax.net> +Date: Sat, 20 Oct 2018 05:24:54 +0200 +Subject: [PATCH] src: use more explicit return type in Sign::SignFinal() +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Using the non-indexed variant of `std::get<>` broke Travis CI. +Also, this allows us to be a bit more concise when returning +from `SignFinal()` due to some error condition. + +Refs: https://github.com/nodejs/node/pull/23427 + +PR-URL: https://github.com/nodejs/node/pull/23779 +Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com> +Reviewed-By: Tobias Nießen <tniessen@tnie.de> +Reviewed-By: Refael Ackermann <refack@gmail.com> +Reviewed-By: Colin Ihrig <cjihrig@gmail.com> +--- + src/node_crypto.cc | 23 +++++++++++------------ + src/node_crypto.h | 12 +++++++++++- + 2 files changed, 22 insertions(+), 13 deletions(-) + +diff --git a/src/node_crypto.cc b/src/node_crypto.cc +index bd8d9e032554..ec7d4f2bb5be 100644 +--- a/src/node_crypto.cc ++++ b/src/node_crypto.cc +@@ -3562,22 +3562,20 @@ static MallocedBuffer<unsigned char> Node_SignFinal(EVPMDPointer&& mdctx, + return MallocedBuffer<unsigned char>(); + } + +-std::pair<SignBase::Error, MallocedBuffer<unsigned char>> Sign::SignFinal( ++Sign::SignResult Sign::SignFinal( + const char* key_pem, + int key_pem_len, + const char* passphrase, + int padding, + int salt_len) { +- MallocedBuffer<unsigned char> buffer; +- + if (!mdctx_) +- return std::make_pair(kSignNotInitialised, std::move(buffer)); ++ return SignResult(kSignNotInitialised); + + EVPMDPointer mdctx = std::move(mdctx_); + + BIOPointer bp(BIO_new_mem_buf(const_cast<char*>(key_pem), key_pem_len)); + if (!bp) +- return std::make_pair(kSignPrivateKey, std::move(buffer)); ++ return SignResult(kSignPrivateKey); + + EVPKeyPointer pkey(PEM_read_bio_PrivateKey(bp.get(), + nullptr, +@@ -3588,7 +3586,7 @@ std::pair<SignBase::Error, MallocedBuffer<unsigned char>> Sign::SignFinal( + // without `pkey` being set to nullptr; + // cf. the test of `test_bad_rsa_privkey.pem` for an example. + if (!pkey || 0 != ERR_peek_error()) +- return std::make_pair(kSignPrivateKey, std::move(buffer)); ++ return SignResult(kSignPrivateKey); + + #ifdef NODE_FIPS_MODE + /* Validate DSA2 parameters from FIPS 186-4 */ +@@ -3612,9 +3610,10 @@ std::pair<SignBase::Error, MallocedBuffer<unsigned char>> Sign::SignFinal( + } + #endif // NODE_FIPS_MODE + +- buffer = Node_SignFinal(std::move(mdctx), pkey, padding, salt_len); ++ MallocedBuffer<unsigned char> buffer = ++ Node_SignFinal(std::move(mdctx), pkey, padding, salt_len); + Error error = buffer.is_empty() ? kSignPrivateKey : kSignOk; +- return std::make_pair(error, std::move(buffer)); ++ return SignResult(error, std::move(buffer)); + } + + +@@ -3639,18 +3638,18 @@ void Sign::SignFinal(const FunctionCallbackInfo<Value>& args) { + + ClearErrorOnReturn clear_error_on_return; + +- std::pair<Error, MallocedBuffer<unsigned char>> ret = sign->SignFinal( ++ SignResult ret = sign->SignFinal( + buf, + buf_len, + len >= 2 && !args[1]->IsNull() ? *passphrase : nullptr, + padding, + salt_len); + +- if (std::get<Error>(ret) != kSignOk) +- return sign->CheckThrow(std::get<Error>(ret)); ++ if (ret.error != kSignOk) ++ return sign->CheckThrow(ret.error); + + MallocedBuffer<unsigned char> sig = +- std::move(std::get<MallocedBuffer<unsigned char>>(ret)); ++ std::move(ret.signature); + + Local<Object> rc = + Buffer::New(env, reinterpret_cast<char*>(sig.release()), sig.size) +diff --git a/src/node_crypto.h b/src/node_crypto.h +index 6fcf737f6c43..0c26c1f6ff1d 100644 +--- a/src/node_crypto.h ++++ b/src/node_crypto.h +@@ -518,7 +518,17 @@ class Sign : public SignBase { + public: + static void Initialize(Environment* env, v8::Local<v8::Object> target); + +- std::pair<Error, MallocedBuffer<unsigned char>> SignFinal( ++ struct SignResult { ++ Error error; ++ MallocedBuffer<unsigned char> signature; ++ ++ explicit SignResult( ++ Error err, ++ MallocedBuffer<unsigned char>&& sig = MallocedBuffer<unsigned char>()) ++ : error(err), signature(std::move(sig)) {} ++ }; ++ ++ SignResult SignFinal( + const char* key_pem, + int key_pem_len, + const char* passphrase, diff --git a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0004-Make-compatibility-with-gcc-4.8.patch b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0004-Make-compatibility-with-gcc-4.8.patch new file mode 100644 index 0000000000..925c085e9b --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0004-Make-compatibility-with-gcc-4.8.patch @@ -0,0 +1,69 @@ +Implement function as wrapper for std::make_unique +method to be compatible with gcc < 4.9 . +"error::make_unique is not a member of 'std'" + +Signed-off-by: Andrej Valek <andrej.valek@siemens.com> +Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com> + +diff -Naur node-v10.15.1/src/cares_wrap.cc node-v10.15.1/src/cares_wrap.cc +--- node-v10.15.1/src/cares_wrap.cc 2019-01-29 08:20:50.000000000 +0100 ++++ node-v10.15.1/src/cares_wrap.cc 2019-02-21 16:22:25.489131665 +0100 +@@ -52,6 +52,16 @@ + # define AI_V4MAPPED 0 + #endif + ++#ifndef __cpp_lib_make_unique ++namespace std { ++ /// make_unique implementation ++ template<typename T, typename... Args> ++ std::unique_ptr<T> make_unique(Args&&... args) { ++ return std::unique_ptr<T>(new T(std::forward<Args>(args)...)); ++ } ++} ++#endif ++ + namespace node { + namespace cares_wrap { + +diff -Naur node-v10.15.1/src/inspector_agent.cc node-v10.15.1/src/inspector_agent.cc +--- node-v10.15.1/src/inspector_agent.cc 2019-01-29 08:20:50.000000000 +0100 ++++ node-v10.15.1/src/inspector_agent.cc 2019-02-21 16:22:09.000185992 +0100 +@@ -24,6 +24,16 @@ + #include <pthread.h> + #endif // __POSIX__ + ++#ifndef __cpp_lib_make_unique ++namespace std { ++ /// make_unique implementation ++ template<typename T, typename... Args> ++ std::unique_ptr<T> make_unique(Args&&... args) { ++ return std::unique_ptr<T>(new T(std::forward<Args>(args)...)); ++ } ++} ++#endif ++ + namespace node { + namespace inspector { + namespace { + +diff --git a/src/inspector/main_thread_interface.cc b/src/inspector/main_thread_interface.cc +index e374c0fd70..05d7d8c60f 100644 +--- a/src/inspector/main_thread_interface.cc ++++ b/src/inspector/main_thread_interface.cc +@@ -6,6 +6,16 @@ + #include <functional> + #include <unicode/unistr.h> + ++#ifndef __cpp_lib_make_unique ++namespace std { ++ /// make_unique implementation ++ template<typename T, typename... Args> ++ std::unique_ptr<T> make_unique(Args&&... args) { ++ return std::unique_ptr<T>(new T(std::forward<Args>(args)...)); ++ } ++} ++#endif ++ + namespace node { + namespace inspector { + namespace { diff --git a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0005-Link-atomic-library.patch b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0005-Link-atomic-library.patch new file mode 100644 index 0000000000..66ff18b4a3 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0005-Link-atomic-library.patch @@ -0,0 +1,20 @@ +Link atomic library to fix missing undefined referrences +like "undefined reference to `__atomic_fetch_add_8'" + +Signed-off-by: Andrej Valek <andrej.valek@siemens.com> + +diff -Naur node-v10.15.1/deps/v8/gypfiles/v8.gyp node-v10.15.1/deps/v8/gypfiles/v8.gyp +--- node-v10.15.1/deps/v8/gypfiles/v8.gyp 2019-02-13 09:02:21.000000000 +0100 ++++ node-v10.15.1/deps/v8/gypfiles/v8.gyp 2019-02-15 21:27:11.755679660 +0100 +@@ -452,6 +452,11 @@ + '<(DEPTH)', + '<(SHARED_INTERMEDIATE_DIR)' + ], ++ 'link_settings': { ++ 'libraries': [ ++ '-latomic' ++ ], ++ }, + 'sources': [ + '<@(inspector_all_sources)', + '../include//v8-inspector-protocol.h', diff --git a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0006-Use-target-ldflags.patch b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0006-Use-target-ldflags.patch new file mode 100644 index 0000000000..f6569cd57a --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0006-Use-target-ldflags.patch @@ -0,0 +1,24 @@ +The target LDFLAGS have been ignored. Tools like torque +have been loaded from system libraries, even if a native +one was the target. +|$ ldd torque +| libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 +| libcrypto.so.1.1 => /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1 +| libssl.so.1.1 => /usr/lib/x86_64-linux-gnu/libssl.so.1.1 +| libicui18n.so.63 => not found +| libicuuc.so.63 => not found +... + +Signed-off-by: Andrej Valek <andrej.valek@siemens.com> + +diff -Naur node-v10.15.1/deps/v8/gypfiles/toolchain.gypi node-v10.15.1/deps/v8/gypfiles/toolchain.gypi +--- node-v10.15.1/deps/v8/gypfiles/toolchain.gypi 2019-03-18 15:01:39.000000000 +0100 ++++ node-v10.15.1/deps/v8/gypfiles/toolchain.gypi 2019-03-18 15:04:08.628361308 +0100 +@@ -1106,6 +1106,7 @@ + 'cflags': [ '-fno-strict-aliasing' ], + }], + ], # conditions ++ 'ldflags+': [ '$(LDFLAGS)' ], + }], + ['OS=="solaris"', { + 'defines': [ '__C99FEATURES__=1' ], # isinf() etc. diff --git a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_8.12.0.bb b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_10.15.3.bb index 8c3397821e..d2e77ea0df 100644 --- a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_8.12.0.bb +++ b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_10.15.3.bb @@ -1,9 +1,10 @@ DESCRIPTION = "nodeJS Evented I/O for V8 JavaScript" HOMEPAGE = "http://nodejs.org" LICENSE = "MIT & BSD & Artistic-2.0" -LIC_FILES_CHKSUM = "file://LICENSE;md5=fde91d5c5bbd1e0389623e1ac018d9e8" +LIC_FILES_CHKSUM = "file://LICENSE;md5=9ceeba79eb2ea1067b7b3ed16fff8bab" DEPENDS = "openssl zlib icu" +DEPENDS_append_class-target = " nodejs-native" inherit pkgconfig @@ -13,9 +14,17 @@ COMPATIBLE_MACHINE_mips64 = "(!.*mips64).*" SRC_URI = "http://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz \ file://0001-Disable-running-gyp-files-for-bundled-deps.patch \ -" -SRC_URI[md5sum] = "8b3abd033dae96b6fadcb6a872a44d3c" -SRC_URI[sha256sum] = "5a9dff58016c18fb4bf902d963b124ff058a550ebcd9840c677757387bce419a" + file://0003-Crypto-reduce-memory-usage-of-SignFinal.patch \ + file://0004-Make-compatibility-with-gcc-4.8.patch \ + file://0005-Link-atomic-library.patch \ + file://0006-Use-target-ldflags.patch \ + " +SRC_URI_append_class-target = " \ + file://0002-Using-native-torque.patch \ + " + +SRC_URI[md5sum] = "d76210a6ae1ea73d10254947684836fb" +SRC_URI[sha256sum] = "4e22d926f054150002055474e452ed6cbb85860aa7dc5422213a2002ed9791d5" S = "${WORKDIR}/node-v${PV}" @@ -74,6 +83,10 @@ do_install_append_class-native() { # use sed on npm-cli.js because otherwise symlink is replaced with normal file and # npm-cli.js continues to use old shebang sed "1s^.*^#\!/usr/bin/env node^g" -i ${D}${exec_prefix}/lib/node_modules/npm/bin/npm-cli.js + + # Install the native torque to provide it within sysroot for the target compilation + install -d ${D}${bindir} + install -m 0755 ${S}/out/Release/torque ${D}${bindir}/torque } do_install_append_class-target() { diff --git a/meta-openembedded/meta-oe/recipes-devtools/octave/files/fix-blas-library-integer-size.patch b/meta-openembedded/meta-oe/recipes-devtools/octave/files/fix-blas-library-integer-size.patch new file mode 100644 index 0000000000..e89d7d3466 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-devtools/octave/files/fix-blas-library-integer-size.patch @@ -0,0 +1,16 @@ +diff -Naur octave-4.4.1.orig/configure.ac octave-4.4.1/configure.ac +--- octave-4.4.1.orig/configure.ac 2019-02-23 10:46:24.287240571 +0000 ++++ octave-4.4.1/configure.ac 2019-02-23 10:46:42.255249333 +0000 +@@ -762,6 +762,12 @@ + AC_MSG_ERROR([BLAS and LAPACK libraries are required]) + fi + ++if ac_fn_f77_try_run "$LINENO"; then : ++ ax_blas_integer_size=8 ++else ++ ax_blas_integer_size=4 ++fi ++ + case $ax_blas_integer_size in + 4) + HAVE_64_BIT_BLAS=no diff --git a/meta-openembedded/meta-oe/recipes-devtools/octave/octave_4.4.1.bb b/meta-openembedded/meta-oe/recipes-devtools/octave/octave_4.4.1.bb new file mode 100644 index 0000000000..1ec32ce89a --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-devtools/octave/octave_4.4.1.bb @@ -0,0 +1,40 @@ +DESCRIPTION = "High-level language, primarily intended for numerical computations" +HOMEPAGE = "http://www.gnu.org/software/octave/" +SECTION = "math" + +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464" + +DEPENDS = "gperf-native texinfo lapack pcre readline" + +inherit autotools pkgconfig texinfo gettext + +EXTRA_OECONF = "--disable-java --disable-docs" + +SRC_URI = "https://ftp.gnu.org/gnu/octave/${PN}-${PV}.tar.gz \ + file://fix-blas-library-integer-size.patch \ +" + +SRC_URI[md5sum] = "b43bd5f4309a0c048c91af10cf8e8674" +SRC_URI[sha256sum] = "09fbd0f212f4ef21e53f1d9c41cf30ce3d7f9450fb44911601e21ed64c67ae97" + +do_compile_prepend() { + for folder in "liboctave/operators liboctave/numeric liboctave/array liboctave/util"; do + mkdir -p ${B}/${folder} + done +} + +PACKAGES =+ " octave-common liboctave liboctave-dev liboctave-dbg" + +FILES_${PN} = "${bindir}/* ${sbindir}/* ${libexecdir}/* ${datadir}/${PN} \ + ${libdir}/${PN}/${PV}/oct ${libdir}/${PN}/${PV}/site \ + ${libdir}/${PN}/site ${datadir}/applications ${datadir}/metainfo" +FILES_${PN}-common = "${datadir}/icons" + +FILES_liboctave = "${libdir}/${PN}/${PV}/lib*${SOLIBS}" +FILES_liboctave-dev = "${libdir}/${PN}/${PV}/lib*${SOLIBSDEV}" +FILES_liboctave-dbg = "${libdir}/${PN}/${PV}/.debug" + +FILES_${PN}-dbg = "${bindir}/.debug ${libdir}/${PN}/${PV}/oct/${TARGET_SYS}/.debug" + +EXCLUDE_FROM_WORLD = "1" diff --git a/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd_git.bb b/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd_git.bb index 21a86de390..4377e88e47 100644 --- a/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd_git.bb +++ b/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd_git.bb @@ -29,6 +29,8 @@ EXTRA_OECONF = "--enable-ftdi --disable-doxygen-html" do_configure() { ./bootstrap nosubmodule + install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.guess ${S}/jimtcl/autosetup + install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.sub ${S}/jimtcl/autosetup oe_runconf ${EXTRA_OECONF} } diff --git a/meta-openembedded/meta-oe/recipes-devtools/perl/libdbd-mysql-perl/0001-Use-API-function-for-reconnect.patch b/meta-openembedded/meta-oe/recipes-devtools/perl/libdbd-mysql-perl/0001-Use-API-function-for-reconnect.patch new file mode 100644 index 0000000000..60d88c3d1a --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-devtools/perl/libdbd-mysql-perl/0001-Use-API-function-for-reconnect.patch @@ -0,0 +1,53 @@ +From edb6b202b7e233864aa5dd84532646c50097b0b8 Mon Sep 17 00:00:00 2001 +From: Mingli Yu <mingli.yu@windriver.com> +Date: Mon, 4 Mar 2019 00:49:17 -0800 +Subject: [PATCH] Use API function for reconnect + +For configuring reconnect functionality use standard API function +MYSQL_OPT_RECONNECT instead of direct modification of internal structures +which does not work for MariaDB. Fixes compilation with MariaDB 10.2.6+. + +Upstream-Status: Backport [https://github.com/perl5-dbi/DBD-mysql/commit/0b1884f4153d3de0a91bae4d3b3cc1771ffdf4f3] + +Signed-off-by: Mingli Yu <mingli.yu@windriver.com> +--- + dbdimp.c | 16 ++++++++++------ + 1 file changed, 10 insertions(+), 6 deletions(-) + +diff --git a/dbdimp.c b/dbdimp.c +index 9b8b313..3bed213 100644 +--- a/dbdimp.c ++++ b/dbdimp.c +@@ -1979,6 +1979,16 @@ MYSQL *mysql_dr_connect( + + if (result) + { ++ /* ++ we turn off Mysql's auto reconnect and handle re-connecting ourselves ++ so that we can keep track of when this happens. ++ */ ++#if MYSQL_VERSION_ID >= 50013 ++ my_bool reconnect = FALSE; ++ mysql_options(result, MYSQL_OPT_RECONNECT, &reconnect); ++#else ++ result->reconnect = 0; ++#endif + #if MYSQL_VERSION_ID >=SERVER_PREPARE_VERSION + /* connection succeeded. */ + /* imp_dbh == NULL when mysql_dr_connect() is called from mysql.xs +@@ -1992,12 +2002,6 @@ MYSQL *mysql_dr_connect( + imp_dbh->async_query_in_flight = NULL; + } + #endif +- +- /* +- we turn off Mysql's auto reconnect and handle re-connecting ourselves +- so that we can keep track of when this happens. +- */ +- result->reconnect=0; + } + else { + /* +-- +2.17.1 + diff --git a/meta-openembedded/meta-oe/recipes-devtools/perl/libdbd-mysql-perl_4.043.bb b/meta-openembedded/meta-oe/recipes-devtools/perl/libdbd-mysql-perl_4.043.bb index bd8ba780ae..e185f48f76 100644 --- a/meta-openembedded/meta-oe/recipes-devtools/perl/libdbd-mysql-perl_4.043.bb +++ b/meta-openembedded/meta-oe/recipes-devtools/perl/libdbd-mysql-perl_4.043.bb @@ -15,6 +15,7 @@ DEPENDS += "libdbi-perl-native libmysqlclient" LIC_FILES_CHKSUM = "file://LICENSE;md5=d0a06964340e5c0cde88b7af611f755c" SRC_URI = "http://search.cpan.org/CPAN/authors/id/M/MI/MICHIELB/DBD-mysql-${PV}.tar.gz \ + file://0001-Use-API-function-for-reconnect.patch \ " SRC_URI[md5sum] = "4a00dd7f1c057931147c65dfc4901c36" diff --git a/meta-openembedded/meta-oe/recipes-devtools/perl/libdbi-perl_1.641.bb b/meta-openembedded/meta-oe/recipes-devtools/perl/libdbi-perl_1.642.bb index 24a1245fc0..3c031646b6 100644 --- a/meta-openembedded/meta-oe/recipes-devtools/perl/libdbi-perl_1.641.bb +++ b/meta-openembedded/meta-oe/recipes-devtools/perl/libdbi-perl_1.642.bb @@ -16,8 +16,8 @@ RDEPENDS_${PN} = " perl-module-carp \ LIC_FILES_CHKSUM = "file://LICENSE;md5=10982c7148e0a012c0fd80534522f5c5" SRC_URI = "http://search.cpan.org/CPAN/authors/id/T/TI/TIMB/DBI-${PV}.tar.gz" -SRC_URI[md5sum] = "e77fd37fcf77fc88fde029c1b75ded54" -SRC_URI[sha256sum] = "5509e532cdd0e3d91eda550578deaac29e2f008a12b64576e8c261bb92e8c2c1" +SRC_URI[md5sum] = "f2ba18b5cea1c8cb322a62be0a847f3d" +SRC_URI[sha256sum] = "3f2025023a56286cebd15cb495e36ccd9b456c3cc229bf2ce1f69e9ebfc27f5d" S = "${WORKDIR}/DBI-${PV}" diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php.inc b/meta-openembedded/meta-oe/recipes-devtools/php/php.inc index bfd0ddfb86..6f893ad85c 100644 --- a/meta-openembedded/meta-oe/recipes-devtools/php/php.inc +++ b/meta-openembedded/meta-oe/recipes-devtools/php/php.inc @@ -8,7 +8,7 @@ BBCLASSEXTEND = "native" DEPENDS = "zlib bzip2 libxml2 virtual/libiconv php-native lemon-native" DEPENDS_class-native = "zlib-native libxml2-native" -PHP_MAJOR_VERSION = "${@d.getVar('PV', True).split('.')[0]}" +PHP_MAJOR_VERSION = "${@d.getVar('PV').split('.')[0]}" SRC_URI = "http://php.net/distributions/php-${PV}.tar.bz2 \ file://0001-php-don-t-use-broken-wrapper-for-mkdir.patch \ @@ -20,7 +20,6 @@ SRC_URI_append_class-target = " \ file://php_exec_native.patch \ file://php-fpm.conf \ file://php-fpm-apache.conf \ - file://0001-acinclude.m4-don-t-unset-cache-variables.patch \ file://70_mod_php${PHP_MAJOR_VERSION}.conf \ file://php-fpm.service \ " @@ -46,10 +45,9 @@ COMMON_EXTRA_OECONF = "--enable-sockets \ EXTRA_OECONF = "--enable-mbstring \ --enable-wddx \ --enable-fpm \ - --enable-zip \ --with-libdir=${baselib} \ --with-gettext=${STAGING_LIBDIR}/.. \ - --with-zlib=${STAGING_LIBDIR}/.. \ + --with-libzip=${STAGING_LIBDIR}/.. \ --with-iconv=${STAGING_LIBDIR}/.. \ --with-bz2=${STAGING_DIR_TARGET}${exec_prefix} \ --with-config-file-path=${sysconfdir}/php/apache2-php${PHP_MAJOR_VERSION} \ diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-Use-pkg-config-for-libxml2-detection.patch b/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-Use-pkg-config-for-libxml2-detection.patch new file mode 100644 index 0000000000..ccc6d4ede1 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-Use-pkg-config-for-libxml2-detection.patch @@ -0,0 +1,23 @@ +Use pkg-config for libxml2 detection. + +xml2-config does not work. Use pkgconfig to set CPPFLAGS and LIBS. + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + configure.in | 15 ++------------- + 1 file changed, 2 insertions(+), 13 deletions(-) +--- a/acinclude.m4 ++++ b/acinclude.m4 +@@ -2481,8 +2481,8 @@ AC_DEFUN([PHP_SETUP_LIBXML], [ + LIBXML_VERSION=`expr [$]1 \* 1000000 + [$]2 \* 1000 + [$]3` + if test "$LIBXML_VERSION" -ge "2006011"; then + found_libxml=yes +- LIBXML_LIBS=`$XML2_CONFIG --libs` +- LIBXML_INCS=`$XML2_CONFIG --cflags` ++ LIBXML_LIBS=`pkg-config --libs libxml-2.0` ++ LIBXML_INCS=`pkg-config --cflags libxml-2.0` + else + AC_MSG_ERROR([libxml2 version 2.6.11 or greater required.]) + fi diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-acinclude.m4-don-t-unset-cache-variables.patch b/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-acinclude.m4-don-t-unset-cache-variables.patch index a250cac83a..51dbe269cb 100644 --- a/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-acinclude.m4-don-t-unset-cache-variables.patch +++ b/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-acinclude.m4-don-t-unset-cache-variables.patch @@ -1,6 +1,6 @@ -From dfebe81f946a83fe2499fc84d4f3dbdc5612276c Mon Sep 17 00:00:00 2001 -From: Anuj Mittal <anuj.mittal@intel.com> -Date: Tue, 3 Apr 2018 11:35:03 +0800 +From d2679c89c0b15b90e5360b4863258a7955e5f4e5 Mon Sep 17 00:00:00 2001 +From: Changqing Li <changqing.li@windriver.com> +Date: Tue, 12 Feb 2019 15:59:19 +0800 Subject: [PATCH] acinclude.m4: don't unset cache variables Unsetting prevents cache variable from being passed to configure. @@ -8,15 +8,18 @@ Unsetting prevents cache variable from being passed to configure. Upstream-Status: Inappropriate [OE-specific] Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> + +update patch to version 7.3.2 +Signed-off-by: Changqing Li <changqing.li@windriver.com> --- acinclude.m4 | 4 ---- 1 file changed, 4 deletions(-) diff --git a/acinclude.m4 b/acinclude.m4 -index f6a55ec..d3346df 100644 +index 25f900d..2641969 100644 --- a/acinclude.m4 +++ b/acinclude.m4 -@@ -1890,8 +1890,6 @@ define([phpshift],[ifelse(index([$@],[,]),-1,,[substr([$@],incr(index([$@],[,])) +@@ -1921,8 +1921,6 @@ define([phpshift],[ifelse(index([$@],[,]),-1,,[substr([$@],incr(index([$@],[,])) dnl AC_DEFUN([PHP_CHECK_FUNC_LIB],[ ifelse($2,,:,[ @@ -25,14 +28,14 @@ index f6a55ec..d3346df 100644 unset found AC_CHECK_LIB($2, $1, [found=yes], [ AC_CHECK_LIB($2, __$1, [found=yes], [found=no]) -@@ -1923,8 +1921,6 @@ dnl in the default libraries and as a fall back in the specified library. +@@ -1954,8 +1952,6 @@ dnl in the default libraries and as a fall back in the specified library. dnl Defines HAVE_func and HAVE_library if found and adds the library to LIBS. dnl AC_DEFUN([PHP_CHECK_FUNC],[ - unset ac_cv_func_$1 - unset ac_cv_func___$1 unset found - + AC_CHECK_FUNC($1, [found=yes],[ AC_CHECK_FUNC(__$1,[found=yes],[found=no]) ]) -- 2.7.4 diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-fix-error-caused-by-a-new-variable-is-declared-after.patch b/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-fix-error-caused-by-a-new-variable-is-declared-after.patch deleted file mode 100644 index 6ab101b410..0000000000 --- a/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-fix-error-caused-by-a-new-variable-is-declared-after.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 0d88d735887c6f2fa00a743c27124c7a52006a41 Mon Sep 17 00:00:00 2001 -From: Hongxu Jia <hongxu.jia@windriver.com> -Date: Sun, 15 Apr 2018 19:17:27 -0700 -Subject: [PATCH] fix error caused by a new variable is declared after the - label - -There is a build failure on mips: -... -|sljitNativeMIPS_common.c: In function 'sljit_has_cpu_feature': -|sljitNativeMIPS_common.c:506:3: error: a label can only be part -of a statement and a declaration is not a statement -| sljit_sw fir; -| ^~~~~~~~ -... - -Upstream-Status: Pending - -Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> ---- - ext/pcre/pcrelib/sljit/sljitNativeMIPS_common.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/ext/pcre/pcrelib/sljit/sljitNativeMIPS_common.c b/ext/pcre/pcrelib/sljit/sljitNativeMIPS_common.c -index ee207fe..adfd342 100644 ---- a/ext/pcre/pcrelib/sljit/sljitNativeMIPS_common.c -+++ b/ext/pcre/pcrelib/sljit/sljitNativeMIPS_common.c -@@ -498,12 +498,14 @@ SLJIT_API_FUNC_ATTRIBUTE void* sljit_generate_code(struct sljit_compiler *compil - - SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_has_cpu_feature(sljit_s32 feature_type) - { -+#if defined(__GNUC__) -+ sljit_sw fir; -+#endif - switch (feature_type) { - case SLJIT_HAS_FPU: - #ifdef SLJIT_IS_FPU_AVAILABLE - return SLJIT_IS_FPU_AVAILABLE; - #elif defined(__GNUC__) -- sljit_sw fir; - asm ("cfc1 %0, $0" : "=r"(fir)); - return (fir >> 22) & 0x1; - #else --- -2.10.2 - diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-opcache-config.m4-enable-opcache.patch b/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-opcache-config.m4-enable-opcache.patch index 0d24d34f2b..9ffd0e4de1 100644 --- a/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-opcache-config.m4-enable-opcache.patch +++ b/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-opcache-config.m4-enable-opcache.patch @@ -1,6 +1,6 @@ -From b2fb725dc404d471371731b663234e87cb0fca84 Mon Sep 17 00:00:00 2001 -From: Anuj Mittal <anuj.mittal@intel.com> -Date: Mon, 2 Apr 2018 17:54:52 +0800 +From fb139d9707dabe1684b472a08a6eb5761ede4a3a Mon Sep 17 00:00:00 2001 +From: Changqing Li <changqing.li@windriver.com> +Date: Tue, 12 Feb 2019 14:56:16 +0800 Subject: [PATCH] opcache/config.m4: enable opcache We can't use AC_TRY_RUN to run programs in a cross compile environment. Set @@ -10,42 +10,41 @@ enough linux kernel. Upstream-Status: Inappropriate [Configuration] Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> + +update patch to version 7.3.2 +Signed-off-by: Changqing Li <changqing.li@windriver.com> --- - ext/opcache/config.m4 | 349 ++------------------------------------------------ - 1 file changed, 8 insertions(+), 341 deletions(-) + ext/opcache/config.m4 | 357 +------------------------------------------------- + 1 file changed, 6 insertions(+), 351 deletions(-) diff --git a/ext/opcache/config.m4 b/ext/opcache/config.m4 -index 7b500f0..10bb99a 100644 +index 392f4c6..6617693 100644 --- a/ext/opcache/config.m4 +++ b/ext/opcache/config.m4 -@@ -28,353 +28,20 @@ if test "$PHP_OPCACHE" != "no"; then - +@@ -27,374 +27,29 @@ if test "$PHP_OPCACHE" != "no"; then AC_CHECK_HEADERS([unistd.h sys/uio.h]) -- AC_MSG_CHECKING(for sysvipc shared memory support) -- AC_TRY_RUN([ + AC_MSG_CHECKING(for sysvipc shared memory support) +- AC_RUN_IFELSE([AC_LANG_SOURCE([[ -#include <sys/types.h> -#include <sys/wait.h> -#include <sys/ipc.h> -#include <sys/shm.h> -#include <unistd.h> -#include <string.h> -+ AC_DEFINE(HAVE_SHM_IPC, 1, [Define if you have SysV IPC SHM support]) - +- -int main() { - pid_t pid; - int status; - int ipc_id; - char *shm; - struct shmid_ds shmbuf; -+ AC_DEFINE(HAVE_SHM_MMAP_ANON, 1, [Define if you have mmap(MAP_ANON) SHM support]) - +- - ipc_id = shmget(IPC_PRIVATE, 4096, (IPC_CREAT | SHM_R | SHM_W)); - if (ipc_id == -1) { - return 1; - } -+ AC_DEFINE(HAVE_SHM_MMAP_ZERO, 1, [Define if you have mmap("/dev/zero") SHM support]) - +- - shm = shmat(ipc_id, NULL, 0); - if (shm == (void *)-1) { - shmctl(ipc_id, IPC_RMID, NULL); @@ -90,13 +89,14 @@ index 7b500f0..10bb99a 100644 - } - return 0; -} --],dnl +-]])],[dnl - AC_DEFINE(HAVE_SHM_IPC, 1, [Define if you have SysV IPC SHM support]) -- msg=yes,msg=no,msg=no) +- msg=yes],[msg=no],[msg=no]) - AC_MSG_RESULT([$msg]) -- -- AC_MSG_CHECKING(for mmap() using MAP_ANON shared memory support) -- AC_TRY_RUN([ ++ AC_DEFINE(HAVE_SHM_IPC, 1, [Define if you have SysV IPC SHM support]) + + AC_MSG_CHECKING(for mmap() using MAP_ANON shared memory support) +- AC_RUN_IFELSE([AC_LANG_SOURCE([[ -#include <sys/types.h> -#include <sys/wait.h> -#include <sys/mman.h> @@ -142,13 +142,14 @@ index 7b500f0..10bb99a 100644 - } - return 0; -} --],dnl +-]])],[dnl - AC_DEFINE(HAVE_SHM_MMAP_ANON, 1, [Define if you have mmap(MAP_ANON) SHM support]) -- msg=yes,msg=no,msg=no) +- msg=yes],[msg=no],[msg=no]) - AC_MSG_RESULT([$msg]) -- -- AC_MSG_CHECKING(for mmap() using /dev/zero shared memory support) -- AC_TRY_RUN([ ++ AC_DEFINE(HAVE_SHM_MMAP_ANON, 1, [Define if you have mmap(MAP_ANON) SHM support]) + + AC_MSG_CHECKING(for mmap() using /dev/zero shared memory support) +- AC_RUN_IFELSE([AC_LANG_SOURCE([[ -#include <sys/types.h> -#include <sys/wait.h> -#include <sys/mman.h> @@ -197,13 +198,14 @@ index 7b500f0..10bb99a 100644 - } - return 0; -} --],dnl +-]])],[dnl - AC_DEFINE(HAVE_SHM_MMAP_ZERO, 1, [Define if you have mmap("/dev/zero") SHM support]) -- msg=yes,msg=no,msg=no) +- msg=yes],[msg=no],[msg=no]) - AC_MSG_RESULT([$msg]) -- -- AC_MSG_CHECKING(for mmap() using shm_open() shared memory support) -- AC_TRY_RUN([ ++ AC_DEFINE(HAVE_SHM_MMAP_ZERO, 1, [Define if you have mmap("/dev/zero") SHM support]) + + AC_MSG_CHECKING(for mmap() using shm_open() shared memory support) +- AC_RUN_IFELSE([AC_LANG_SOURCE([[ -#include <sys/types.h> -#include <sys/wait.h> -#include <sys/mman.h> @@ -266,14 +268,14 @@ index 7b500f0..10bb99a 100644 - } - return 0; -} --],dnl +-]])],[dnl - AC_DEFINE(HAVE_SHM_MMAP_POSIX, 1, [Define if you have POSIX mmap() SHM support]) -- msg=yes,msg=no,msg=no) +- msg=yes],[msg=no],[msg=no]) - AC_MSG_RESULT([$msg]) + AC_DEFINE(HAVE_SHM_MMAP_POSIX, 1, [Define if you have POSIX mmap() SHM support]) AC_MSG_CHECKING(for mmap() using regular file shared memory support) -- AC_TRY_RUN([ +- AC_RUN_IFELSE([AC_LANG_SOURCE([[ -#include <sys/types.h> -#include <sys/wait.h> -#include <sys/mman.h> @@ -336,50 +338,70 @@ index 7b500f0..10bb99a 100644 - } - return 0; -} --],dnl +-]])],[dnl - AC_DEFINE(HAVE_SHM_MMAP_FILE, 1, [Define if you have mmap() SHM support]) -- msg=yes,msg=no,msg=no) +- msg=yes],[msg=no],[msg=no]) - AC_MSG_RESULT([$msg]) ++ AC_DEFINE(HAVE_SHM_MMAP_FILE, 1, [Define if you have mmap() SHM support]) + + flock_type=unknown + AC_MSG_CHECKING(for struct flock layout) + + if test "$flock_type" = "unknown"; then +-AC_RUN_IFELSE([AC_LANG_SOURCE([[ +- #include <fcntl.h> +- struct flock lock = { 1, 2, 3, 4, 5, 6, 7 }; +- int main() { +- if(lock.l_type == 1 && lock.l_whence == 2 && lock.l_start == 6 && lock.l_len== 7) { +- return 0; +- } +- return 1; +- } +-]])], [ +- flock_type=aix64 +- AC_DEFINE([HAVE_FLOCK_AIX64], [], [Struct flock is 64-bit AIX-type]) +-], []) +-fi - --flock_type=unknown --AC_MSG_CHECKING("whether flock struct is linux ordered") --AC_TRY_RUN([ +-if test "$flock_type" = "unknown"; then +-AC_RUN_IFELSE([AC_LANG_SOURCE([[ - #include <fcntl.h> - struct flock lock = { 1, 2, 3, 4, 5 }; -- int main() { +- int main() { - if(lock.l_type == 1 && lock.l_whence == 2 && lock.l_start == 3 && lock.l_len == 4) { - return 0; - } - return 1; -- } --], [ +- } +-]])], [ - flock_type=linux -- AC_DEFINE([HAVE_FLOCK_LINUX], [], [Struct flock is Linux-type]) -- AC_MSG_RESULT("yes") --], AC_MSG_RESULT("no") ) -+ -+ AC_DEFINE(HAVE_SHM_MMAP_FILE, 1, [Define if you have mmap() SHM support]) ++ flock_type=linux + AC_DEFINE([HAVE_FLOCK_LINUX], [], [Struct flock is Linux-type]) +-], []) + fi --AC_MSG_CHECKING("whether flock struct is BSD ordered") --AC_TRY_RUN([ + if test "$flock_type" = "unknown"; then +-AC_RUN_IFELSE([AC_LANG_SOURCE([[ - #include <fcntl.h> - struct flock lock = { 1, 2, 3, 4, 5 }; -- int main() { +- int main() { - if(lock.l_start == 1 && lock.l_len == 2 && lock.l_type == 4 && lock.l_whence == 5) { - return 0; - } - return 1; -- } --], [ +- } +-]])], [ - flock_type=bsd -- AC_DEFINE([HAVE_FLOCK_BSD], [], [Struct flock is BSD-type]) -- AC_MSG_RESULT("yes") --], AC_MSG_RESULT("no") ) -+ flock_type=linux -+ AC_DEFINE([HAVE_FLOCK_LINUX], [], [Struct flock is Linux-type]) - - if test "$flock_type" = "unknown"; then +- AC_DEFINE([HAVE_FLOCK_BSD], [], [Struct flock is BSD-type]) +-], []) +-fi +- +-AC_MSG_RESULT([$flock_type]) +- +-if test "$flock_type" = "unknown"; then AC_MSG_ERROR([Don't know how to define struct flock on this system[,] set --enable-opcache=no]) + fi + -- 2.7.4 diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/0048-Use-pkg-config-for-FreeType2-detection.patch b/meta-openembedded/meta-oe/recipes-devtools/php/php/0048-Use-pkg-config-for-FreeType2-detection.patch new file mode 100644 index 0000000000..f36ddac262 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-devtools/php/php/0048-Use-pkg-config-for-FreeType2-detection.patch @@ -0,0 +1,53 @@ +From: =?utf-8?b?T25kxZllaiBTdXLDvQ==?= <ondrej@sury.org> +Date: Mon, 22 Oct 2018 06:54:31 +0000 +Subject: Use pkg-config for FreeType2 detection + +--- + ext/gd/config.m4 | 30 +++++++++++++++++++----------- + 1 file changed, 19 insertions(+), 11 deletions(-) + +diff --git a/ext/gd/config.m4 b/ext/gd/config.m4 +index 498d870..d28c6ae 100644 +--- a/ext/gd/config.m4 ++++ b/ext/gd/config.m4 +@@ -184,21 +184,29 @@ AC_DEFUN([PHP_GD_XPM],[ + AC_DEFUN([PHP_GD_FREETYPE2],[ + if test "$PHP_FREETYPE_DIR" != "no"; then + +- for i in $PHP_FREETYPE_DIR /usr/local /usr; do +- if test -f "$i/bin/freetype-config"; then +- FREETYPE2_DIR=$i +- FREETYPE2_CONFIG="$i/bin/freetype-config" +- break ++ if test -z "$PKG_CONFIG"; then ++ AC_PATH_PROG(PKG_CONFIG, pkg-config, no) ++ fi ++ if test -x "$PKG_CONFIG" && $PKG_CONFIG --exists freetype2 ; then ++ FREETYPE2_CFLAGS=`$PKG_CONFIG --cflags freetype2` ++ FREETYPE2_LIBS=`$PKG_CONFIG --libs freetype2` ++ else ++ for i in $PHP_FREETYPE_DIR /usr/local /usr; do ++ if test -f "$i/bin/freetype-config"; then ++ FREETYPE2_DIR=$i ++ FREETYPE2_CONFIG="$i/bin/freetype-config" ++ break ++ fi ++ done ++ ++ if test -z "$FREETYPE2_DIR"; then ++ AC_MSG_ERROR([freetype-config not found.]) + fi +- done + +- if test -z "$FREETYPE2_DIR"; then +- AC_MSG_ERROR([freetype-config not found.]) ++ FREETYPE2_CFLAGS=`$FREETYPE2_CONFIG --cflags` ++ FREETYPE2_LIBS=`$FREETYPE2_CONFIG --libs` + fi + +- FREETYPE2_CFLAGS=`$FREETYPE2_CONFIG --cflags` +- FREETYPE2_LIBS=`$FREETYPE2_CONFIG --libs` +- + PHP_EVAL_INCLINE($FREETYPE2_CFLAGS) + PHP_EVAL_LIBLINE($FREETYPE2_LIBS, GD_SHARED_LIBADD) + AC_DEFINE(HAVE_LIBFREETYPE,1,[ ]) diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/0049-ext-intl-Use-pkg-config-to-detect-icu.patch b/meta-openembedded/meta-oe/recipes-devtools/php/php/0049-ext-intl-Use-pkg-config-to-detect-icu.patch new file mode 100644 index 0000000000..deada1ff97 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-devtools/php/php/0049-ext-intl-Use-pkg-config-to-detect-icu.patch @@ -0,0 +1,111 @@ +From: Hugh McMaster <hugh.mcmaster@outlook.com> +Date: Wed, 5 Dec 2018 23:27:30 +1100 +Subject: ext/intl: Use pkg-config to detect icu + +The developers of icu recommend using pkg-config to detect icu, +because icu-config is deprecated. +--- + acinclude.m4 | 56 +++++++----------------------------------------------- + ext/intl/config.m4 | 16 ++++++---------- + 2 files changed, 13 insertions(+), 59 deletions(-) + +--- php7.3.orig/acinclude.m4 ++++ php7.3/acinclude.m4 +@@ -2168,58 +2168,16 @@ dnl + dnl Common setup macro for ICU + dnl + AC_DEFUN([PHP_SETUP_ICU],[ +- PHP_ARG_WITH(icu-dir,, +- [ --with-icu-dir=DIR Specify where ICU libraries and headers can be found], DEFAULT, no) ++ PKG_CHECK_MODULES([ICU], [icu-io >= 50.1]) + +- if test "$PHP_ICU_DIR" = "no"; then +- PHP_ICU_DIR=DEFAULT +- fi +- +- if test "$PHP_ICU_DIR" = "DEFAULT"; then +- dnl Try to find icu-config +- AC_PATH_PROG(ICU_CONFIG, icu-config, no, [$PATH:/usr/local/bin]) +- else +- ICU_CONFIG="$PHP_ICU_DIR/bin/icu-config" +- fi +- +- AC_MSG_CHECKING([for location of ICU headers and libraries]) +- +- dnl Trust icu-config to know better what the install prefix is.. +- icu_install_prefix=`$ICU_CONFIG --prefix 2> /dev/null` +- if test "$?" != "0" || test -z "$icu_install_prefix"; then +- AC_MSG_RESULT([not found]) +- AC_MSG_ERROR([Unable to detect ICU prefix or $ICU_CONFIG failed. Please verify ICU install prefix and make sure icu-config works.]) +- else +- AC_MSG_RESULT([$icu_install_prefix]) +- +- dnl Check ICU version +- AC_MSG_CHECKING([for ICU 4.0 or greater]) +- icu_version_full=`$ICU_CONFIG --version` +- ac_IFS=$IFS +- IFS="." +- set $icu_version_full +- IFS=$ac_IFS +- icu_version=`expr [$]1 \* 1000 + [$]2` +- AC_MSG_RESULT([found $icu_version_full]) +- +- if test "$icu_version" -lt "4000"; then +- AC_MSG_ERROR([ICU version 4.0 or later is required]) +- fi ++ PHP_EVAL_INCLINE($ICU_CFLAGS) ++ PHP_EVAL_LIBLINE($ICU_LIBS, $1) + +- ICU_VERSION=$icu_version +- ICU_INCS=`$ICU_CONFIG --cppflags-searchpath` +- ICU_LIBS=`$ICU_CONFIG --ldflags --ldflags-icuio` +- PHP_EVAL_INCLINE($ICU_INCS) +- PHP_EVAL_LIBLINE($ICU_LIBS, $1) ++ ICU_CFLAGS="$ICU_CFLAGS -DU_NO_DEFAULT_INCLUDE_UTF_HEADERS=1" ++ ICU_CXXFLAGS="$ICU_CXXFLAGS -DUNISTR_FROM_CHAR_EXPLICIT=explicit -DUNISTR_FROM_STRING_EXPLICIT=explicit" + +- ICU_CXXFLAGS=`$ICU_CONFIG --cxxflags` +- if test "$icu_version" -ge "49000"; then +- ICU_CXXFLAGS="$ICU_CXXFLAGS -DUNISTR_FROM_CHAR_EXPLICIT=explicit -DUNISTR_FROM_STRING_EXPLICIT=explicit" +- ICU_CFLAGS="-DU_NO_DEFAULT_INCLUDE_UTF_HEADERS=1" +- fi +- if test "$icu_version" -ge "60000"; then +- ICU_CFLAGS="$ICU_CFLAGS -DU_HIDE_OBSOLETE_UTF_OLD_H=1" +- fi ++ if $PKG_CONFIG icu-io --atleast-version=60; then ++ ICU_CFLAGS="$ICU_CFLAGS -DU_HIDE_OBSOLETE_UTF_OLD_H=1" + fi + ]) + +--- php7.3.orig/ext/intl/config.m4 ++++ php7.3/ext/intl/config.m4 +@@ -9,15 +9,7 @@ if test "$PHP_INTL" != "no"; then + PHP_SETUP_ICU(INTL_SHARED_LIBADD) + PHP_SUBST(INTL_SHARED_LIBADD) + PHP_REQUIRE_CXX() +- INTL_COMMON_FLAGS="$ICU_INCS $ICU_CFLAGS -Wno-write-strings -D__STDC_LIMIT_MACROS -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1" +- if test "$icu_version" -ge "4002"; then +- icu_spoof_src=" spoofchecker/spoofchecker_class.c \ +- spoofchecker/spoofchecker.c\ +- spoofchecker/spoofchecker_create.c\ +- spoofchecker/spoofchecker_main.c" +- else +- icu_spoof_src="" +- fi ++ INTL_COMMON_FLAGS="$ICU_CFLAGS -Wno-write-strings -D__STDC_LIMIT_MACROS -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1" + PHP_NEW_EXTENSION(intl, php_intl.c \ + intl_error.c \ + intl_convert.c \ +@@ -68,7 +60,11 @@ if test "$PHP_INTL" != "no"; then + transliterator/transliterator_methods.c \ + uchar/uchar.c \ + idn/idn.c \ +- $icu_spoof_src, $ext_shared,,$INTL_COMMON_FLAGS,cxx) ++ spoofchecker/spoofchecker_class.c \ ++ spoofchecker/spoofchecker.c\ ++ spoofchecker/spoofchecker_create.c\ ++ spoofchecker/spoofchecker_main.c \ ++ , $ext_shared,,$INTL_COMMON_FLAGS,cxx) + + PHP_INTL_CXX_SOURCES="intl_convertcpp.cpp \ + common/common_enum.cpp \ diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/CVE-2017-9120.patch b/meta-openembedded/meta-oe/recipes-devtools/php/php/CVE-2017-9120.patch deleted file mode 100644 index 728f25bb6e..0000000000 --- a/meta-openembedded/meta-oe/recipes-devtools/php/php/CVE-2017-9120.patch +++ /dev/null @@ -1,21 +0,0 @@ -php: patch for CVE-2017-9120 - -Upstream-Status: Backport [https://bugs.php.net/bug.php?id=74544] - -CVE: CVE-2017-9120 - -Signed-off-by: Changqing Li <changqing.li@windriver.com> - -diff --git a/ext/mysqli/mysqli_api.c b/ext/mysqli/mysqli_api.c -index 03a39d7..7b88731 100644 ---- a/ext/mysqli/mysqli_api.c -+++ b/ext/mysqli/mysqli_api.c -@@ -1965,7 +1965,7 @@ PHP_FUNCTION(mysqli_real_escape_string) { - } - MYSQLI_FETCH_RESOURCE_CONN(mysql, mysql_link, MYSQLI_STATUS_VALID); - -- newstr = zend_string_alloc(2 * escapestr_len, 0); -+ newstr = zend_string_safe_alloc(2, escapestr_len, 0, 0); - ZSTR_LEN(newstr) = mysql_real_escape_string(mysql->mysql, ZSTR_VAL(newstr), escapestr, escapestr_len); - newstr = zend_string_truncate(newstr, ZSTR_LEN(newstr), 0); - diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/change-AC_TRY_RUN-to-AC_TRY_LINK.patch b/meta-openembedded/meta-oe/recipes-devtools/php/php/change-AC_TRY_RUN-to-AC_TRY_LINK.patch deleted file mode 100644 index 3e901841be..0000000000 --- a/meta-openembedded/meta-oe/recipes-devtools/php/php/change-AC_TRY_RUN-to-AC_TRY_LINK.patch +++ /dev/null @@ -1,61 +0,0 @@ -From 3bfcc7fdd22261eaed10949714de0a90d31e10ab Mon Sep 17 00:00:00 2001 -From: Roy Li <rongqing.li@windriver.com> -Date: Thu, 20 Aug 2015 16:29:35 +0800 -Subject: [PATCH] [PATCH] config.m4: change AC_TRY_RUN to AC_TRY_LINK - -Upstream-Status: Pending - -AC_TRY_RUN is not suitable for cross-compile - -Signed-off-by: Roy Li <rongqing.li@windriver.com> - -%% original patch: change-AC_TRY_RUN-to-AC_TRY_LINK.patch ---- - ext/fileinfo/config.m4 | 31 ++++++------------------------- - 1 file changed, 6 insertions(+), 25 deletions(-) - -diff --git a/ext/fileinfo/config.m4 b/ext/fileinfo/config.m4 -index 523b4fd..0aaa4c8 100644 ---- a/ext/fileinfo/config.m4 -+++ b/ext/fileinfo/config.m4 -@@ -14,31 +14,12 @@ if test "$PHP_FILEINFO" != "no"; then - libmagic/readcdf.c libmagic/softmagic.c libmagic/der.c" - - AC_MSG_CHECKING([for strcasestr]) -- AC_TRY_RUN([ --#include <string.h> --#include <strings.h> --#include <stdlib.h> -- --int main(void) --{ -- char *s0, *s1, *ret; -- -- s0 = (char *) malloc(42); -- s1 = (char *) malloc(8); -- -- memset(s0, 'X', 42); -- s0[24] = 'Y'; -- s0[26] = 'Z'; -- s0[41] = '\0'; -- memset(s1, 'x', 8); -- s1[0] = 'y'; -- s1[2] = 'Z'; -- s1[7] = '\0'; -- -- ret = strcasestr(s0, s1); -- -- return !(NULL != ret); --} -+ AC_TRY_COMPILE([ -+ #include <string.h> -+ #include <strings.h> -+ #include <stdlib.h> -+ ],[ -+ strcasestr(NULL, NULL); - ],[ - dnl using the platform implementation - AC_MSG_RESULT(yes) --- -2.7.4 - diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php/php5-0001-acinclude.m4-don-t-unset-cache-variables.patch b/meta-openembedded/meta-oe/recipes-devtools/php/php/php5-0001-acinclude.m4-don-t-unset-cache-variables.patch new file mode 100644 index 0000000000..72ad554a17 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-devtools/php/php/php5-0001-acinclude.m4-don-t-unset-cache-variables.patch @@ -0,0 +1,42 @@ +From 1fb5a3b3e6c9cf0002ff76988de72f011b642005 Mon Sep 17 00:00:00 2001 +From: Changqing Li <changqing.li@windriver.com> +Date: Tue, 12 Feb 2019 16:25:37 +0800 +Subject: [PATCH] acinclude.m4: don't unset cache variables + +Unsetting prevents cache variable from being passed to configure. + +Upstream-Status: Inappropriate [OE-specific] + +Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> + +update patch to version 5.6.40 +Signed-off-by: Changqing Li <changqing.li@windriver.com> +--- + acinclude.m4 | 4 ---- + 1 file changed, 4 deletions(-) + +diff --git a/acinclude.m4 b/acinclude.m4 +index b188eee..ed32fc5 100644 +--- a/acinclude.m4 ++++ b/acinclude.m4 +@@ -1897,8 +1897,6 @@ define([phpshift],[ifelse(index([$@],[,]),-1,,[substr([$@],incr(index([$@],[,])) + dnl + AC_DEFUN([PHP_CHECK_FUNC_LIB],[ + ifelse($2,,:,[ +- unset ac_cv_lib_$2[]_$1 +- unset ac_cv_lib_$2[]___$1 + unset found + AC_CHECK_LIB($2, $1, [found=yes], [ + AC_CHECK_LIB($2, __$1, [found=yes], [found=no]) +@@ -1930,8 +1928,6 @@ dnl in the default libraries and as a fall back in the specified library. + dnl Defines HAVE_func and HAVE_library if found and adds the library to LIBS. + dnl + AC_DEFUN([PHP_CHECK_FUNC],[ +- unset ac_cv_func_$1 +- unset ac_cv_func___$1 + unset found + + AC_CHECK_FUNC($1, [found=yes],[ AC_CHECK_FUNC(__$1,[found=yes],[found=no]) ]) +-- +2.7.4 + diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php_5.6.38.bb b/meta-openembedded/meta-oe/recipes-devtools/php/php_5.6.40.bb index d6f51454f4..9f5bac7e21 100644 --- a/meta-openembedded/meta-oe/recipes-devtools/php/php_5.6.38.bb +++ b/meta-openembedded/meta-oe/recipes-devtools/php/php_5.6.40.bb @@ -8,6 +8,7 @@ SRC_URI += "file://php5-change-AC_TRY_RUN-to-AC_TRY_LINK.patch \ file://acinclude-xml2-config.patch \ file://0001-acinclude-use-pkgconfig-for-libxml2-config.patch \ file://0001-PHP-5.6-LibSSL-1.1-compatibility.patch \ + file://php5-0001-acinclude.m4-don-t-unset-cache-variables.patch \ " SRC_URI_append_class-target = " \ @@ -16,8 +17,8 @@ SRC_URI_append_class-target = " \ file://php5-0001-opcache-config.m4-enable-opcache.patch \ " -SRC_URI[md5sum] = "5b98aa066567eca8e5738b8ef4a3545c" -SRC_URI[sha256sum] = "d65b231bbdd63be4439ef5ced965cfd63e62983429dbd4dfcfb49981593ebc03" +SRC_URI[md5sum] = "44633604d2fece1f53f508bc16751b74" +SRC_URI[sha256sum] = "ffd025d34623553ab2f7fd8fb21d0c9e6f9fa30dc565ca03a1d7b763023fba00" DEPENDS += "libmcrypt" EXTRA_OECONF += "--with-mcrypt=${STAGING_DIR_TARGET}${exec_prefix} \ diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php_7.2.10.bb b/meta-openembedded/meta-oe/recipes-devtools/php/php_7.2.10.bb deleted file mode 100644 index 8dc64bb89b..0000000000 --- a/meta-openembedded/meta-oe/recipes-devtools/php/php_7.2.10.bb +++ /dev/null @@ -1,25 +0,0 @@ -require php.inc - -LIC_FILES_CHKSUM = "file://LICENSE;md5=67e369bc8d1f2e641236b8002039a6a2" - -SRC_URI += "file://change-AC_TRY_RUN-to-AC_TRY_LINK.patch \ - file://0001-acinclude.m4-skip-binconfig-check-for-libxml.patch \ - file://0001-fix-error-caused-by-a-new-variable-is-declared-after.patch \ - file://CVE-2017-9120.patch \ - " -SRC_URI_append_class-target = " \ - file://pear-makefile.patch \ - file://phar-makefile.patch \ - file://0001-opcache-config.m4-enable-opcache.patch \ - " - -SRC_URI[md5sum] = "0ce8ff615bfb9de7a89bab8d742c11c0" -SRC_URI[sha256sum] = "01b6129a0921a1636b07da9bc598a876669e45a462cef4b5844fc26862dbda9d" - -PACKAGECONFIG[mysql] = "--with-mysqli=${STAGING_BINDIR_CROSS}/mysql_config \ - --with-pdo-mysql=${STAGING_BINDIR_CROSS}/mysql_config \ - ,--without-mysqli --without-pdo-mysql \ - ,mysql5" -PACKAGECONFIG[valgrind] = "--with-valgrind=${STAGING_DIR_TARGET}/usr,--with-valgrind=no,valgrind" - -FILES_${PN}-fpm += "${sysconfdir}/php-fpm.d/www.conf.default" diff --git a/meta-openembedded/meta-oe/recipes-devtools/php/php_7.3.2.bb b/meta-openembedded/meta-oe/recipes-devtools/php/php_7.3.2.bb new file mode 100644 index 0000000000..634facd4a0 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-devtools/php/php_7.3.2.bb @@ -0,0 +1,25 @@ +require php.inc + +LIC_FILES_CHKSUM = "file://LICENSE;md5=fb07bfc51f6d5e0c30b65d9701233b2e" + +SRC_URI += "file://0001-acinclude.m4-don-t-unset-cache-variables.patch \ + file://0048-Use-pkg-config-for-FreeType2-detection.patch \ + file://0049-ext-intl-Use-pkg-config-to-detect-icu.patch \ + file://0001-Use-pkg-config-for-libxml2-detection.patch \ + " +SRC_URI_append_class-target = " \ + file://pear-makefile.patch \ + file://phar-makefile.patch \ + file://0001-opcache-config.m4-enable-opcache.patch \ + " + +SRC_URI[md5sum] = "c893ff828945c274d90e026528142439" +SRC_URI[sha256sum] = "946f50dacbd2f61e643bb737021cbe8b1816e780ee7ad3e0cd999a1892ab0add" + +PACKAGECONFIG[mysql] = "--with-mysqli=mysqlnd \ + --with-pdo-mysql=mysqlnd \ + ,--without-mysqli --without-pdo-mysql \ + ,mysql5" +PACKAGECONFIG[valgrind] = "--with-valgrind=${STAGING_DIR_TARGET}/usr,--with-valgrind=no,valgrind" + +FILES_${PN}-fpm += "${sysconfdir}/php-fpm.d/www.conf.default" diff --git a/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf/run-ptest b/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf/run-ptest index 7c3a8d1b3a..b3b2278c47 100644 --- a/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf/run-ptest +++ b/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf/run-ptest @@ -8,7 +8,7 @@ for write_exe_full_path in ${DIR}/add_person_*; do if [ -x "${write_exe_full_path}" ]; then write_exe=`basename ${write_exe_full_path}` echo "Generating new test file using ${write_exe}..." - ${write_exe_full_path} "${TEST_FILE}" + printf "1234\nname\nname@example.com\n" | ${write_exe_full_path} "${TEST_FILE}" RETVAL=$? [ $RETVAL -eq 0 ] || exit $RETVAL diff --git a/meta-openembedded/meta-oe/recipes-devtools/rapidjson/rapidjson/0001-CMake-remove-hardcoded-CMAKECONFIG_INSTALL_DIR-path.patch b/meta-openembedded/meta-oe/recipes-devtools/rapidjson/rapidjson/0001-CMake-remove-hardcoded-CMAKECONFIG_INSTALL_DIR-path.patch new file mode 100644 index 0000000000..745f5d0132 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-devtools/rapidjson/rapidjson/0001-CMake-remove-hardcoded-CMAKECONFIG_INSTALL_DIR-path.patch @@ -0,0 +1,36 @@ +From 8d272e53a4d1dc405e08ce2dd50159c58f4451e9 Mon Sep 17 00:00:00 2001 +From: Ruslan Bilovol <rbilovol@cisco.com> +Date: Thu, 24 Jan 2019 18:11:39 +0200 +Subject: [PATCH] CMake: remove hardcoded CMAKECONFIG_INSTALL_DIR path + +Currently this path is hardcoded to lib/cmake. +Some distributions have different library path (like lib64). +So reuse LIB_INSTALL_DIR for that to make CMAKECONFIG_INSTALL_DIR +configurable and usable in such distros. + +Upstream-Status: Backport [https://github.com/Tencent/rapidjson/commit/8d272e53a4d1dc405e08ce2dd50159c58f4451e9] + +Signed-off-by: Ruslan Bilovol <rbilovol@cisco.com> +--- + CMakeLists.txt | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 7c60407..0275672 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -199,9 +199,9 @@ CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}ConfigVersion.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake @ONLY) + + # ... for the install tree +-SET( CMAKECONFIG_INSTALL_DIR lib/cmake/${PROJECT_NAME} ) ++SET( CMAKECONFIG_INSTALL_DIR ${LIB_INSTALL_DIR}/cmake/${PROJECT_NAME} ) + FILE( RELATIVE_PATH REL_INCLUDE_DIR +- "${CMAKE_INSTALL_PREFIX}/${CMAKECONFIG_INSTALL_DIR}" ++ "${CMAKECONFIG_INSTALL_DIR}" + "${CMAKE_INSTALL_PREFIX}/include" ) + + SET( ${PROJECT_NAME}_INCLUDE_DIR "\${${PROJECT_NAME}_CMAKE_DIR}/${REL_INCLUDE_DIR}" ) +-- +1.9.1 + diff --git a/meta-openembedded/meta-oe/recipes-devtools/rapidjson/rapidjson_git.bb b/meta-openembedded/meta-oe/recipes-devtools/rapidjson/rapidjson_git.bb index c90eab043b..e3ed9c6a17 100644 --- a/meta-openembedded/meta-oe/recipes-devtools/rapidjson/rapidjson_git.bb +++ b/meta-openembedded/meta-oe/recipes-devtools/rapidjson/rapidjson_git.bb @@ -4,7 +4,8 @@ SECTION = "libs" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://license.txt;md5=ba04aa8f65de1396a7e59d1d746c2125" -SRC_URI = "git://github.com/miloyip/rapidjson.git;nobranch=1" +SRC_URI = "git://github.com/miloyip/rapidjson.git;nobranch=1 \ + file://0001-CMake-remove-hardcoded-CMAKECONFIG_INSTALL_DIR-path.patch" SRCREV = "6a905f9311f82d306da77bd963ec5aa5da07da9c" @@ -14,7 +15,7 @@ S = "${WORKDIR}/git" inherit cmake -EXTRA_OECMAKE += "-DRAPIDJSON_BUILD_DOC=OFF -DRAPIDJSON_BUILD_TESTS=OFF -DRAPIDJSON_BUILD_EXAMPLES=OFF" +EXTRA_OECMAKE += "-DRAPIDJSON_BUILD_DOC=OFF -DRAPIDJSON_BUILD_TESTS=OFF -DRAPIDJSON_BUILD_EXAMPLES=OFF -DLIB_INSTALL_DIR:STRING=${libdir}" # RapidJSON is a header-only C++ library, so the main package will be empty. diff --git a/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk/confsearch.diff b/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk/confsearch.diff index 4dbd9a4f16..8cc07bcfac 100644 --- a/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk/confsearch.diff +++ b/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk/confsearch.diff @@ -1,35 +1,46 @@ +From 5539442e5f5442606071afc5cf02642314ad13bb Mon Sep 17 00:00:00 2001 +From: Koen Kooi <koen@dominion.thruhere.net> +Date: Wed, 17 Aug 2011 22:52:35 +0200 +Subject: [PATCH] tk 8.5.8: import from OE rev + Patch by Sergei Golovan allows to find tclConfig.sh in /usr/share/tcltk/tcl8.5 and tkConfig.sh in /usr/share/tcltk/tk8.5 where they are located in Debian installation. ---- tk8.5-8.5.8.orig/unix/configure -+++ tk8.5-8.5.8/unix/configure -@@ -1431,7 +1431,8 @@ - `ls -d /usr/contrib/lib 2>/dev/null` \ +--- + unix/configure | 1 + + unix/tcl.m4 | 2 ++ + 2 files changed, 3 insertions(+) + +Index: a/unix/configure +=================================================================== +--- a/unix/configure.orig ++++ b/unix/configure +@@ -1432,6 +1432,7 @@ echo "$as_me: error: ${with_tclconfig} d `ls -d /usr/local/lib 2>/dev/null` \ + `ls -d /usr/contrib/lib 2>/dev/null` \ `ls -d /usr/pkg/lib 2>/dev/null` \ -+ `ls -d /usr/share/tcltk/tcl8.5 2>/dev/null` \ ++ `ls -d /usr/share/tcltk/tcl8.6 2>/dev/null` \ `ls -d /usr/lib 2>/dev/null` \ `ls -d /usr/lib64 2>/dev/null` \ - ; do - if test -f "$i/tclConfig.sh" ; then ---- tk8.5-8.5.8.orig/unix/tcl.m4 -+++ tk8.5-8.5.8/unix/tcl.m4 -@@ -93,7 +93,8 @@ - `ls -d /usr/contrib/lib 2>/dev/null` \ + `ls -d /usr/local/lib/tcl8.6 2>/dev/null` \ +Index: a/unix/tcl.m4 +=================================================================== +--- a/unix/tcl.m4.orig ++++ b/unix/tcl.m4 +@@ -94,6 +94,7 @@ AC_DEFUN([SC_PATH_TCLCONFIG], [ `ls -d /usr/local/lib 2>/dev/null` \ + `ls -d /usr/contrib/lib 2>/dev/null` \ `ls -d /usr/pkg/lib 2>/dev/null` \ -+ `ls -d /usr/share/tcltk/tcl8.5 2>/dev/null` \ ++ `ls -d /usr/share/tcltk/tcl8.6 2>/dev/null` \ `ls -d /usr/lib 2>/dev/null` \ `ls -d /usr/lib64 2>/dev/null` \ - ; do - if test -f "$i/tclConfig.sh" ; then -@@ -223,7 +224,8 @@ - `ls -d ${prefix}/lib 2>/dev/null` \ + `ls -d /usr/local/lib/tcl8.6 2>/dev/null` \ +@@ -227,6 +228,7 @@ AC_DEFUN([SC_PATH_TKCONFIG], [ `ls -d /usr/local/lib 2>/dev/null` \ `ls -d /usr/contrib/lib 2>/dev/null` \ -+ `ls -d /usr/share/tcltk/tk8.5 2>/dev/null` \ + `ls -d /usr/pkg/lib 2>/dev/null` \ ++ `ls -d /usr/share/tcltk/tk8.6 2>/dev/null` \ `ls -d /usr/lib 2>/dev/null` \ `ls -d /usr/lib64 2>/dev/null` \ - ; do - if test -f "$i/tkConfig.sh" ; then + `ls -d /usr/local/lib/tk8.6 2>/dev/null` \ diff --git a/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk_8.6.8.bb b/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk_8.6.8.bb deleted file mode 100644 index 4e38525cbb..0000000000 --- a/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk_8.6.8.bb +++ /dev/null @@ -1,71 +0,0 @@ -SUMMARY = "Tool Command Language ToolKit Extension" -HOMEPAGE = "http://tcl.sourceforge.net" -SECTION = "devel/tcltk" - -# http://www.tcl.tk/software/tcltk/license.html -LICENSE = "tcl" -LIC_FILES_CHKSUM = "file://../license.terms;md5=c88f99decec11afa967ad33d314f87fe \ - file://../compat/license.terms;md5=c88f99decec11afa967ad33d314f87fe \ - file://../doc/license.terms;md5=c88f99decec11afa967ad33d314f87fe \ - file://../library/license.terms;md5=c88f99decec11afa967ad33d314f87fe \ - file://../macosx/license.terms;md5=c88f99decec11afa967ad33d314f87fe \ - file://../tests/license.terms;md5=c88f99decec11afa967ad33d314f87fe \ - file://../unix/license.terms;md5=c88f99decec11afa967ad33d314f87fe \ - file://../win/license.terms;md5=c88f99decec11afa967ad33d314f87fe \ - file://../xlib/license.terms;md5=c88f99decec11afa967ad33d314f87fe \ -" - -DEPENDS = "tcl virtual/libx11 libxt" - -SRC_URI = "\ - ${SOURCEFORGE_MIRROR}/tcl/${BPN}${PV}-src.tar.gz \ - file://confsearch.diff;striplevel=2 \ - file://non-linux.diff;striplevel=2 \ - file://tklibrary.diff;striplevel=2 \ - file://tkprivate.diff;striplevel=2 \ - file://fix-xft.diff \ - file://configure.use.fontconfig.with.xft.patch \ -" -SRC_URI[md5sum] = "5e0faecba458ee1386078fb228d008ba" -SRC_URI[sha256sum] = "49e7bca08dde95195a27f594f7c850b088be357a7c7096e44e1158c7a5fd7b33" - -S = "${WORKDIR}/${BPN}${PV}/unix" - -# Short version format: "8.6" -VER = "${@os.path.splitext(d.getVar('PV'))[0]}" - -LDFLAGS += "-Wl,-rpath,${libdir}/tcltk/${PV}/lib" -inherit autotools distro_features_check -# depends on virtual/libx11 -REQUIRED_DISTRO_FEATURES = "x11" - -EXTRA_OECONF = "\ - --enable-threads \ - --with-x \ - --with-tcl=${STAGING_BINDIR}/crossscripts \ - --libdir=${libdir} \ -" -export TK_LIBRARY='${libdir}/tk${VER}' -do_install_append() { - ln -sf libtk${VER}.so ${D}${libdir}/libtk${VER}.so.0 - oe_libinstall -so libtk${VER} ${D}${libdir} - ln -sf wish${VER} ${D}${bindir}/wish -} - -PACKAGECONFIG ??= "xft" -PACKAGECONFIG[xft] = "--enable-xft,--disable-xft,xft" -PACKAGECONFIG[xss] = "--enable-xss,--disable-xss,libxscrnsaver libxext" - -PACKAGES =+ "${PN}-lib" - -FILES_${PN}-lib = "${libdir}/libtk${VER}.so*" -FILES_${PN} += "${libdir}/tk*" - -# isn't getting picked up by shlibs code -RDEPENDS_${PN} += "tk-lib" -RDEPENDS_${PN}_class-native = "" - -BBCLASSEXTEND = "native nativesdk" - -# Fix the path in sstate -SSTATE_SCAN_FILES += "*Config.sh" diff --git a/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk_8.6.9.bb b/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk_8.6.9.bb new file mode 100644 index 0000000000..459ae8253b --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk_8.6.9.bb @@ -0,0 +1,96 @@ +SUMMARY = "Tool Command Language ToolKit Extension" +HOMEPAGE = "http://tcl.sourceforge.net" +SECTION = "devel/tcltk" + +# http://www.tcl.tk/software/tcltk/license.html +LICENSE = "tcl" +LIC_FILES_CHKSUM = "file://${S}/../license.terms;md5=c88f99decec11afa967ad33d314f87fe \ + file://${S}/../compat/license.terms;md5=c88f99decec11afa967ad33d314f87fe \ + file://${S}/../doc/license.terms;md5=c88f99decec11afa967ad33d314f87fe \ + file://${S}/../library/license.terms;md5=c88f99decec11afa967ad33d314f87fe \ + file://${S}/../macosx/license.terms;md5=c88f99decec11afa967ad33d314f87fe \ + file://${S}/../tests/license.terms;md5=c88f99decec11afa967ad33d314f87fe \ + file://${S}/../unix/license.terms;md5=c88f99decec11afa967ad33d314f87fe \ + file://${S}/../win/license.terms;md5=c88f99decec11afa967ad33d314f87fe \ + file://${S}/../xlib/license.terms;md5=c88f99decec11afa967ad33d314f87fe \ +" + +DEPENDS = "tcl virtual/libx11 libxt" + +SRC_URI = "\ + ${SOURCEFORGE_MIRROR}/tcl/${BPN}${PV}-src.tar.gz \ + file://confsearch.diff;striplevel=2 \ + file://non-linux.diff;striplevel=2 \ + file://tklibrary.diff;striplevel=2 \ + file://tkprivate.diff;striplevel=2 \ + file://fix-xft.diff \ + file://configure.use.fontconfig.with.xft.patch \ +" +SRC_URI[md5sum] = "e3cf6290999ee30651d75864eccfec63" +SRC_URI[sha256sum] = "d3f9161e8ba0f107fe8d4df1f6d3a14c30cc3512dfc12a795daa367a27660dac" + +S = "${WORKDIR}/${BPN}${PV}/unix" + +# Short version format: "8.6" +VER = "${@os.path.splitext(d.getVar('PV'))[0]}" + +LDFLAGS += "-Wl,-rpath,${libdir}/tcltk/${PV}/lib" +inherit autotools distro_features_check +# depends on virtual/libx11 +REQUIRED_DISTRO_FEATURES = "x11" + +EXTRA_OECONF = "\ + --enable-threads \ + --with-x \ + --with-tcl=${STAGING_BINDIR}/crossscripts \ + --libdir=${libdir} \ +" +export TK_LIBRARY='${libdir}/tk${VER}' +do_install_append() { + ln -sf libtk${VER}.so ${D}${libdir}/libtk${VER}.so.0 + oe_libinstall -so libtk${VER} ${D}${libdir} + ln -sf wish${VER} ${D}${bindir}/wish + + sed -i "s;-L${B};-L${STAGING_LIBDIR};g" tkConfig.sh + sed -i "s;'${WORKDIR};'${STAGING_INCDIR};g" tkConfig.sh + install -d ${D}${bindir_crossscripts} + install -m 0755 tkConfig.sh ${D}${bindir_crossscripts} +} + +PACKAGECONFIG ??= "xft" +PACKAGECONFIG[xft] = "--enable-xft,--disable-xft,xft" +PACKAGECONFIG[xss] = "--enable-xss,--disable-xss,libxscrnsaver libxext" + +PACKAGES =+ "${PN}-lib" + +FILES_${PN}-lib = "${libdir}/libtk${VER}.so*" +FILES_${PN} += "${libdir}/tk*" + +# isn't getting picked up by shlibs code +RDEPENDS_${PN} += "tk-lib" +RDEPENDS_${PN}_class-native = "" + +BBCLASSEXTEND = "native nativesdk" + +# Fix the path in sstate +SSTATE_SCAN_FILES += "*Config.sh" + +inherit binconfig + +SYSROOT_DIRS += "${bindir_crossscripts}" + +# Fix some paths that might be used by Tcl extensions +BINCONFIG_GLOB = "*Config.sh" + +# Cleanup host path from ${libdir}/tclConfig.sh and remove the +# ${bindir_crossscripts}/tclConfig.sh from target +PACKAGE_PREPROCESS_FUNCS += "tcl_package_preprocess" +tcl_package_preprocess() { + sed -i -e "s;${DEBUG_PREFIX_MAP};;g" \ + -e "s;-L${STAGING_LIBDIR};-L${libdir};g" \ + -e "s;${STAGING_INCDIR};${includedir};g" \ + -e "s;--sysroot=${RECIPE_SYSROOT};;g" \ + ${PKGD}${libdir}/tkConfig.sh + + rm -f ${PKGD}${bindir_crossscripts}/tkConfig.sh +} diff --git a/meta-openembedded/meta-oe/recipes-devtools/uftrace/uftrace/0001-include-dlfcn.h-for-RTLD_DEFAULT.patch b/meta-openembedded/meta-oe/recipes-devtools/uftrace/uftrace/0001-include-dlfcn.h-for-RTLD_DEFAULT.patch deleted file mode 100644 index fe7aac9318..0000000000 --- a/meta-openembedded/meta-oe/recipes-devtools/uftrace/uftrace/0001-include-dlfcn.h-for-RTLD_DEFAULT.patch +++ /dev/null @@ -1,39 +0,0 @@ -From cdf7f2e394fcfb93a61f509ae3388f29540a6b35 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Sat, 8 Sep 2018 11:56:13 -0700 -Subject: [PATCH] include dlfcn.h for RTLD_DEFAULT - -Fixes -plthook.c:128:41: error: use of undeclared identifier 'RTLD_DEFAULT' - -Upstream-Status: Submitted [https://github.com/namhyung/uftrace/pull/487] -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - libmcount/plthook.c | 1 + - utils/debug.c | 1 + - 2 files changed, 2 insertions(+) - -diff --git a/libmcount/plthook.c b/libmcount/plthook.c -index d9d84f0..d54f5e8 100644 ---- a/libmcount/plthook.c -+++ b/libmcount/plthook.c -@@ -6,6 +6,7 @@ - #include <sys/mman.h> - #include <pthread.h> - #include <assert.h> -+#include <dlfcn.h> - - /* This should be defined before #include "utils.h" */ - #define PR_FMT "mcount" -diff --git a/utils/debug.c b/utils/debug.c -index 2134b09..5460def 100644 ---- a/utils/debug.c -+++ b/utils/debug.c -@@ -13,6 +13,7 @@ - #include <assert.h> - #include <limits.h> - #include <inttypes.h> -+#include <dlfcn.h> - - #include "utils/utils.h" - diff --git a/meta-openembedded/meta-oe/recipes-devtools/uftrace/uftrace_0.8.3.bb b/meta-openembedded/meta-oe/recipes-devtools/uftrace/uftrace_0.9.2.bb index ca38e6aa21..4f4016895d 100644 --- a/meta-openembedded/meta-oe/recipes-devtools/uftrace/uftrace_0.8.3.bb +++ b/meta-openembedded/meta-oe/recipes-devtools/uftrace/uftrace_0.9.2.bb @@ -10,10 +10,9 @@ DEPENDS_append_libc-musl = " argp-standalone" inherit autotools -# v0.8.3 -SRCREV = "8b723a6fae2ef30495cd6279774fba9c95cd9c88" +# v0.9.2 +SRCREV = "66fc1fb973f4a44aecd216541405ffe05196f11e" SRC_URI = "git://github.com/namhyung/${BPN} \ - file://0001-include-dlfcn.h-for-RTLD_DEFAULT.patch \ " S = "${WORKDIR}/git" @@ -21,9 +20,11 @@ LDFLAGS_append_libc-musl = " -largp" def set_target_arch(d): import re - arch = d.getVar('TARGET_ARCH', True) + arch = d.getVar('TARGET_ARCH') if re.match(r'i.86', arch, re.I): return 'i386' + elif re.match('armeb', arch, re.I): + return 'arm' else: return arch diff --git a/meta-openembedded/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c/0001-fix-compile-failure-against-musl-C-library.patch b/meta-openembedded/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c/0001-fix-compile-failure-against-musl-C-library.patch deleted file mode 100644 index 234d696f19..0000000000 --- a/meta-openembedded/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c/0001-fix-compile-failure-against-musl-C-library.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 950b27f8320b841490cafcb3e6e3b818c7174c0d Mon Sep 17 00:00:00 2001 -From: Hongxu Jia <hongxu.jia@windriver.com> -Date: Thu, 20 Jul 2017 22:32:50 -0400 -Subject: [PATCH] fix compile failure against musl C library - -Upstream-Status: Pending - -Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> ---- - test/cpp/server_abyss.cpp | 2 +- - tools/xmlrpc_pstream/xmlrpc_pstream.cpp | 10 +++++++--- - 2 files changed, 8 insertions(+), 4 deletions(-) - -diff --git a/test/cpp/server_abyss.cpp b/test/cpp/server_abyss.cpp -index 2458a8f..82f91da 100644 ---- a/test/cpp/server_abyss.cpp -+++ b/test/cpp/server_abyss.cpp -@@ -18,7 +18,7 @@ - #ifdef WIN32 - #include <winsock2.h> - #else -- #include <sys/unistd.h> -+ #include <unistd.h> - #include <sys/socket.h> - #include <arpa/inet.h> - #include <netinet/in.h> -diff --git a/tools/xmlrpc_pstream/xmlrpc_pstream.cpp b/tools/xmlrpc_pstream/xmlrpc_pstream.cpp -index d39e105..1fd8900 100644 ---- a/tools/xmlrpc_pstream/xmlrpc_pstream.cpp -+++ b/tools/xmlrpc_pstream/xmlrpc_pstream.cpp -@@ -15,11 +15,15 @@ - #include "xmlrpc-c/girerr.hpp" - using girerr::throwf; - --#include <features.h> // for __BEGIN_DECLS -+#ifdef __cplusplus -+extern "C" { -+#endif - --__BEGIN_DECLS - #include "dumpvalue.h" /* An internal Xmlrpc-c header file ! */ --__END_DECLS -+ -+#ifdef __cplusplus -+} -+#endif - - - #include <xmlrpc-c/base.hpp> --- -2.8.1 - diff --git a/meta-openembedded/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c/0001-test-cpp-server_abyss-Fix-build-with-clang-libc.patch b/meta-openembedded/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c/0001-test-cpp-server_abyss-Fix-build-with-clang-libc.patch new file mode 100644 index 0000000000..be83b0166c --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c/0001-test-cpp-server_abyss-Fix-build-with-clang-libc.patch @@ -0,0 +1,27 @@ +From dba3c5bf34ed530fd41ed50968825af2158f142e Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Tue, 29 Jan 2019 13:31:39 -0800 +Subject: [PATCH] test/cpp/server_abyss: Fix build with clang/libc++ + +/mnt/a/yoe/workspace/sources/xmlrpc-c/test/cpp/server_abyss.cpp:87:14: error: assigning to 'int' from incompatible type '__bind<int +&, sockaddr *, unsigned int>' + rc = bind(this->fd, (struct sockaddr *)&sockAddr, sizeof(sockAddr)); + ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + test/cpp/server_abyss.cpp | 56 +++++++++++++++++++-------------------- + 1 file changed, 28 insertions(+), 28 deletions(-) + +--- a/test/cpp/server_abyss.cpp ++++ b/test/cpp/server_abyss.cpp +@@ -85,7 +85,7 @@ public: + sockAddr.sin_port = htons(portNumber); + sockAddr.sin_addr.s_addr = 0; + +- rc = bind(this->fd, (struct sockaddr *)&sockAddr, sizeof(sockAddr)); ++ rc = ::bind(this->fd, (struct sockaddr *)&sockAddr, sizeof(sockAddr)); + + if (rc != 0) { + closesock(this->fd); diff --git a/meta-openembedded/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c_1.31.0.bb b/meta-openembedded/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c_1.31.0.bb deleted file mode 100644 index efa58f1986..0000000000 --- a/meta-openembedded/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c_1.31.0.bb +++ /dev/null @@ -1,24 +0,0 @@ -DESCRIPTION = "XML-RPC for C/C++ is programming libraries and related tools to help you \ -write an XML-RPC server or client in C or C++." - -HOMEPAGE = "http://xmlrpc-c.sourceforge.net/" -LICENSE = "BSD & MIT" -LIC_FILES_CHKSUM = "file://doc/COPYING;md5=aefbf81ba0750f02176b6f86752ea951" - -SRC_URI = "git://github.com/ensc/xmlrpc-c.git;branch=master \ - file://0001-fix-compile-failure-against-musl-C-library.patch \ - file://0002-fix-formatting-issues.patch \ -" -SRCREV = "81443a9dc234cc275449dbc17867ad77ae189124" -S = "${WORKDIR}/git" - -DEPENDS = "curl libxml2" -RDEPENDS_${PN} = "curl perl" - -inherit cmake - -EXTRA_OECMAKE = "-D_lib:STRING=${baselib}" - -BBCLASSEXTEND = "native" - -TARGET_CFLAGS += "-Wno-narrowing" diff --git a/meta-openembedded/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c_1.51.03.bb b/meta-openembedded/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c_1.51.03.bb new file mode 100644 index 0000000000..524263760c --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c_1.51.03.bb @@ -0,0 +1,49 @@ +DESCRIPTION = "XML-RPC for C/C++ is programming libraries and related tools to help you \ +write an XML-RPC server or client in C or C++." + +HOMEPAGE = "http://xmlrpc-c.sourceforge.net/" +LICENSE = "BSD & MIT" +LIC_FILES_CHKSUM = "file://doc/COPYING;md5=aefbf81ba0750f02176b6f86752ea951" + +SRC_URI = "git://github.com/mirror/xmlrpc-c.git \ + file://0001-test-cpp-server_abyss-Fix-build-with-clang-libc.patch \ + file://0002-fix-formatting-issues.patch \ + " +#Release 1.51.03 +SRCREV = "343a3b98e54999d67edb644bcd395aa9784fb16e" + +S = "${WORKDIR}/git/stable" + +DEPENDS = "libxml2" +RDEPENDS_${PN} = "perl" + +inherit autotools-brokensep binconfig pkgconfig + +TARGET_CFLAGS += "-Wno-narrowing" + +EXTRA_OEMAKE += "CC_FOR_BUILD='${BUILD_CC}' \ + LD_FOR_BUILD='${BUILD_LD}' \ + CFLAGS_FOR_BUILD='${BUILD_CFLAGS}' \ + LDFLAGS_FOR_BUILD='${BUILD_LDFLAGS}' \ + " + +EXTRA_OECONF += "--disable-libwww-client --disable-wininet-client" + +PACKAGECONFIG ??= "curl cplusplus" + +PACKAGECONFIG[abyss] = "--enable-abyss-server --enable-abyss-threads --enable-abyss-openssl,--disable-abyss-server --disable-abyss-threads --disable-abyss-openssl,openssl," +PACKAGECONFIG[cplusplus] = "--enable-cplusplus,--disable-cplusplus,," +PACKAGECONFIG[curl] = "--enable-curl-client,--disable-curl-client,curl,curl" + +do_configure() { + install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.guess ${S} + install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.sub ${S} + autoconf + oe_runconf + # license is incompatible with lib/util/getoptx.* + rm -fv ${S}/tools/turbocharger/mod_gzip.c +} + +BBCLASSEXTEND = "native" + +CLEANBROKEN = "1" diff --git a/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/0005-Disable-new-gcc8-warnings.patch b/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/0005-Disable-new-gcc8-warnings.patch index b12690b327..13510cdea0 100644 --- a/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/0005-Disable-new-gcc8-warnings.patch +++ b/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/0005-Disable-new-gcc8-warnings.patch @@ -1,4 +1,4 @@ -From d65e48b68076d5b304e6d865967003ae1fea0e6c Mon Sep 17 00:00:00 2001 +From f82f8faf9942f51e9c3c773b56574652695bef5a Mon Sep 17 00:00:00 2001 From: Khem Raj <raj.khem@gmail.com> Date: Wed, 9 May 2018 21:45:38 -0700 Subject: [PATCH] Disable new gcc8 warnings @@ -7,17 +7,17 @@ GCC seems to be not able to detect the checks for size are already in place Signed-off-by: Khem Raj <raj.khem@gmail.com> + --- -Upstream-Status: Submitted [https://github.com/collectd/collectd/pull/2768] src/libcollectdclient/network_parse.c | 7 +++++++ src/write_sensu.c | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/src/libcollectdclient/network_parse.c b/src/libcollectdclient/network_parse.c -index 2365ab0a..79e6ed96 100644 +index aa753ce..fef43a9 100644 --- a/src/libcollectdclient/network_parse.c +++ b/src/libcollectdclient/network_parse.c -@@ -163,6 +163,11 @@ static int parse_int(void *payload, size_t payload_size, uint64_t *out) { +@@ -148,6 +148,11 @@ static int parse_int(void *payload, size_t payload_size, uint64_t *out) { return 0; } @@ -29,7 +29,7 @@ index 2365ab0a..79e6ed96 100644 static int parse_string(void *payload, size_t payload_size, char *out, size_t out_size) { char *in = payload; -@@ -175,6 +180,8 @@ static int parse_string(void *payload, size_t payload_size, char *out, +@@ -160,6 +165,8 @@ static int parse_string(void *payload, size_t payload_size, char *out, return 0; } @@ -39,22 +39,22 @@ index 2365ab0a..79e6ed96 100644 lcc_value_list_t *state) { char buf[LCC_NAME_LEN]; diff --git a/src/write_sensu.c b/src/write_sensu.c -index ce23e654..63e1f599 100644 +index bd7a56d..6cb59d5 100644 --- a/src/write_sensu.c +++ b/src/write_sensu.c -@@ -569,6 +569,11 @@ static char *sensu_value_to_json(struct sensu_host const *host, /* {{{ */ +@@ -570,6 +570,11 @@ static char *sensu_value_to_json(struct sensu_host const *host, /* {{{ */ return ret_str; } /* }}} char *sensu_value_to_json */ +#pragma GCC diagnostic push -+#if __GNUC__ == 8 ++#if __GNUC__ > 7 +#pragma GCC diagnostic ignored "-Wstringop-overflow" +#pragma GCC diagnostic ignored "-Wstringop-truncation" +#endif /* * Uses replace_str2() implementation from * http://creativeandcritical.net/str-replace-c/ -@@ -631,6 +636,8 @@ static char *replace_str(const char *str, const char *old, /* {{{ */ +@@ -632,6 +637,8 @@ static char *replace_str(const char *str, const char *old, /* {{{ */ return ret; } /* }}} char *replace_str */ diff --git a/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/0006-libcollectdclient-Fix-string-overflow-errors.patch b/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/0006-libcollectdclient-Fix-string-overflow-errors.patch new file mode 100644 index 0000000000..3ed652f71f --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-extended/collectd/collectd/0006-libcollectdclient-Fix-string-overflow-errors.patch @@ -0,0 +1,31 @@ +From 98719ea7f717750c790a1f9384ea8d0117e7f52d Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Mon, 17 Dec 2018 18:15:05 -0800 +Subject: [PATCH] libcollectdclient: Fix string overflow errors + +Ensure that string has a space for ending null char + +Upstream-Status: Pending + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/libcollectdclient/network_parse.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/src/libcollectdclient/network_parse.c b/src/libcollectdclient/network_parse.c +index fef43a9..6d65266 100644 +--- a/src/libcollectdclient/network_parse.c ++++ b/src/libcollectdclient/network_parse.c +@@ -169,9 +169,9 @@ static int parse_string(void *payload, size_t payload_size, char *out, + + static int parse_identifier(uint16_t type, void *payload, size_t payload_size, + lcc_value_list_t *state) { +- char buf[LCC_NAME_LEN]; +- +- if (parse_string(payload, payload_size, buf, sizeof(buf)) != 0) ++ char buf[LCC_NAME_LEN+1]; ++ buf[LCC_NAME_LEN] = '\0'; ++ if (parse_string(payload, payload_size, buf, LCC_NAME_LEN) != 0) + return EINVAL; + + switch (type) { diff --git a/meta-openembedded/meta-oe/recipes-extended/collectd/collectd_5.8.0.bb b/meta-openembedded/meta-oe/recipes-extended/collectd/collectd_5.8.1.bb index df9fa233cd..6dff18c16b 100644 --- a/meta-openembedded/meta-oe/recipes-extended/collectd/collectd_5.8.0.bb +++ b/meta-openembedded/meta-oe/recipes-extended/collectd/collectd_5.8.1.bb @@ -13,9 +13,10 @@ SRC_URI = "http://collectd.org/files/collectd-${PV}.tar.bz2 \ file://0001-fix-to-build-with-glibc-2.25.patch \ file://0001-configure-Check-for-Wno-error-format-truncation-comp.patch \ file://0005-Disable-new-gcc8-warnings.patch \ + file://0006-libcollectdclient-Fix-string-overflow-errors.patch \ " -SRC_URI[md5sum] = "a841159323624f18bf03198e9f5aa364" -SRC_URI[sha256sum] = "b06ff476bbf05533cb97ae6749262cc3c76c9969f032bd8496690084ddeb15c9" +SRC_URI[md5sum] = "bfce96c42cede5243028510bcc57c1e6" +SRC_URI[sha256sum] = "e796fda27ce06377f491ad91aa286962a68c2b54076aa77a29673d53204453da" inherit autotools pythonnative update-rc.d pkgconfig systemd diff --git a/meta-openembedded/meta-oe/recipes-extended/haveged/haveged/haveged-init.d-Makefile.am-add-missing-dependency.patch b/meta-openembedded/meta-oe/recipes-extended/haveged/haveged/haveged-init.d-Makefile.am-add-missing-dependency.patch index 36fd57c9bc..020ac2c3b8 100644 --- a/meta-openembedded/meta-oe/recipes-extended/haveged/haveged/haveged-init.d-Makefile.am-add-missing-dependency.patch +++ b/meta-openembedded/meta-oe/recipes-extended/haveged/haveged/haveged-init.d-Makefile.am-add-missing-dependency.patch @@ -3,13 +3,14 @@ From: Jackie Huang <jackie.huang@windriver.com> Date: Tue, 27 Mar 2018 10:21:09 +0800 Subject: [PATCH] init.d/Makefile.am: add missing dependency -install-data-hook should epend on install-exec-hook, or the +install-data-hook should depend on install-exec-hook, or the haveged.service might be installed incorrectly when build with -j option. -Upstream-Status: Inappropriate [no upstream mailing list] +Upstream-Status: Submitted [https://github.com/jirka-h/haveged/pull/13] Signed-off-by: Jackie Huang <jackie.huang@windriver.com> +Signed-off-by: Khem Raj raj.khem@gmail.com --- init.d/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) @@ -21,12 +22,11 @@ index 5940f78..07bcdf7 100644 @@ -33,7 +33,7 @@ if ENABLE_SYSTEMD install-exec-hook: $(do_subst) < $(srcdir)/$(src_tmpl) > haveged.service; - + -install-data-hook: +install-data-hook: install-exec-hook if ENABLE_SYSTEMD_LOOKUP install -p -D -m644 haveged.service $(DESTDIR)`pkg-config --variable=systemdsystemunitdir systemd`/haveged.service; else --- +-- 2.11.0 - diff --git a/meta-openembedded/meta-oe/recipes-extended/haveged/haveged_1.9.2.bb b/meta-openembedded/meta-oe/recipes-extended/haveged/haveged_1.9.4.bb index bf1367391b..32aab59f16 100644 --- a/meta-openembedded/meta-oe/recipes-extended/haveged/haveged_1.9.2.bb +++ b/meta-openembedded/meta-oe/recipes-extended/haveged/haveged_1.9.4.bb @@ -5,14 +5,14 @@ HOMEPAGE = "http://www.issihosts.com/haveged/index.html" LICENSE = "GPLv3" LIC_FILES_CHKSUM="file://COPYING;md5=d32239bcb673463ab874e80d47fae504" -SRC_URI = "http://www.issihosts.com/haveged/haveged-${PV}.tar.gz \ +# v1.9.4 +SRCREV = "faa40ff345af194d3253f5fb030403e3c9831c36" +SRC_URI = "git://github.com/jirka-h/haveged.git \ file://haveged-init.d-Makefile.am-add-missing-dependency.patch \ " +S = "${WORKDIR}/git" -SRC_URI[md5sum] = "fb1d8b3dcbb9d06b30eccd8aa500fd31" -SRC_URI[sha256sum] = "f77d9adbdf421b61601fa29faa9ce3b479d910f73c66b9e364ba8642ccbfbe70" - -UPSTREAM_CHECK_URI = "http://www.issihosts.com/haveged/downloads.html" +UPSTREAM_CHECK_URI = "https://github.com/jirka-h/haveged/releases" inherit autotools update-rc.d systemd diff --git a/meta-openembedded/meta-oe/recipes-extended/jansson/jansson_2.11.bb b/meta-openembedded/meta-oe/recipes-extended/jansson/jansson_2.11.bb deleted file mode 100644 index 370fa22488..0000000000 --- a/meta-openembedded/meta-oe/recipes-extended/jansson/jansson_2.11.bb +++ /dev/null @@ -1,12 +0,0 @@ -SUMMARY = "Jansson is a C library for encoding, decoding and manipulating JSON data" -HOMEPAGE = "http://www.digip.org/jansson/" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://LICENSE;md5=8b70213ec164c7bd876ec2120ba52f61" - -SRC_URI = "http://www.digip.org/jansson/releases/${BPN}-${PV}.tar.gz" - -SRC_URI[md5sum] = "7af071db9970441e1eaaf25662310e33" -SRC_URI[sha256sum] = "6e85f42dabe49a7831dbdd6d30dca8a966956b51a9a50ed534b82afc3fa5b2f4" - -inherit autotools pkgconfig - diff --git a/meta-openembedded/meta-oe/recipes-extended/jansson/jansson_2.12.bb b/meta-openembedded/meta-oe/recipes-extended/jansson/jansson_2.12.bb new file mode 100644 index 0000000000..3cc353ee7b --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-extended/jansson/jansson_2.12.bb @@ -0,0 +1,13 @@ +SUMMARY = "Jansson is a C library for encoding, decoding and manipulating JSON data" +HOMEPAGE = "http://www.digip.org/jansson/" +BUGTRACKER = "https://github.com/akheron/jansson/issues" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=fc2548c0eb83800f29330040e18b5a05" + +SRC_URI = "http://www.digip.org/jansson/releases/${BPN}-${PV}.tar.gz" + +SRC_URI[md5sum] = "0ed1f3a924604aae68067c214b0010ef" +SRC_URI[sha256sum] = "5f8dec765048efac5d919aded51b26a32a05397ea207aa769ff6b53c7027d2c9" + +inherit autotools pkgconfig + diff --git a/meta-openembedded/meta-oe/recipes-extended/lcdproc/lcdproc_git.bb b/meta-openembedded/meta-oe/recipes-extended/lcdproc/lcdproc_git.bb index 93a09f28a0..1354997891 100644 --- a/meta-openembedded/meta-oe/recipes-extended/lcdproc/lcdproc_git.bb +++ b/meta-openembedded/meta-oe/recipes-extended/lcdproc/lcdproc_git.bb @@ -19,9 +19,10 @@ S = "${WORKDIR}/git" inherit autotools pkgconfig update-rc.d -COMPATIBLE_HOST_arm_libc-musl = "null" - LCD_DRIVERS ?= "all,!irman,!svga" +LCD_DRIVERS_append_aarch64 = ",!serialVFD" +LCD_DRIVERS_append_arm = ",!serialVFD" + LCD_DEFAULT_DRIVER ?= "curses" PACKAGECONFIG ??= "usb" diff --git a/meta-openembedded/meta-oe/recipes-extended/libblockdev/libblockdev_2.18.bb b/meta-openembedded/meta-oe/recipes-extended/libblockdev/libblockdev_2.20.bb index 35f0cc0606..54a188dc8b 100644 --- a/meta-openembedded/meta-oe/recipes-extended/libblockdev/libblockdev_2.18.bb +++ b/meta-openembedded/meta-oe/recipes-extended/libblockdev/libblockdev_2.20.bb @@ -10,7 +10,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=c07cb499d259452f324bb90c3067d85c" inherit autotools python3native gobject-introspection -SRCREV = "0debeb45562ac3d8f6f43f6f942b238abab55be9" +SRCREV = "cb308566c3c5222b8422f78997a1742713b265a9" SRC_URI = " \ git://github.com/rhinstaller/libblockdev;branch=master \ " @@ -19,7 +19,7 @@ S = "${WORKDIR}/git" FILES_${PN} += "${PYTHON_SITEPACKAGES_DIR}" -PACKAGECONFIG ??= "python3 lvm dm kmod parted fs escrow btrfs crypto mdraid kbd mpath" +PACKAGECONFIG ??= "python3 lvm dm kmod parted fs escrow btrfs crypto mdraid kbd mpath nvdimm" PACKAGECONFIG[python3] = "--with-python3, --without-python3,,python3" PACKAGECONFIG[python2] = "--with-python2, --without-python2,,python2" PACKAGECONFIG[lvm] = "--with-lvm, --without-lvm, multipath-tools, lvm2" @@ -30,7 +30,7 @@ PACKAGECONFIG[kmod] = "--with-kbd, --without-kbd, kmod" PACKAGECONFIG[parted] = "--with-part, --without-part, parted" PACKAGECONFIG[fs] = "--with-fs, --without-fs, util-linux" PACKAGECONFIG[doc] = "--with-gtk-doc, --without-gtk-doc, gtk-doc-native" -PACKAGECONFIG[nvdimm] = "--with-nvdimm, --without-nvdimm" +PACKAGECONFIG[nvdimm] = "--with-nvdimm, --without-nvdimm, ndctl util-linux" PACKAGECONFIG[vdo] = "--with-vdo, --without-vdo" PACKAGECONFIG[escrow] = "--with-escrow, --without-escrow, nss volume-key" PACKAGECONFIG[btrfs] = "--with-btrfs,--without-btrfs,libbytesize btrfs-tools" diff --git a/meta-openembedded/meta-oe/recipes-extended/libreport/libreport_2.9.5.bb b/meta-openembedded/meta-oe/recipes-extended/libreport/libreport_2.9.7.bb index 542956cf68..da22836a21 100644 --- a/meta-openembedded/meta-oe/recipes-extended/libreport/libreport_2.9.5.bb +++ b/meta-openembedded/meta-oe/recipes-extended/libreport/libreport_2.9.7.bb @@ -17,7 +17,7 @@ SRC_URI += "file://0001-Makefile.am-remove-doc-and-apidoc.patch \ file://0003-without-build-plugins.patch \ file://0004-configure.ac-remove-prog-test-of-augparse.patch \ " -SRCREV = "15f92bcaf73e5eb8958fbde655a57dcd111757a7" +SRCREV = "1d5cc00e44af4800fcae9761625dd4230681e82a" UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)" diff --git a/meta-openembedded/meta-oe/recipes-extended/libserialport/libserialport_0.1.1.bb b/meta-openembedded/meta-oe/recipes-extended/libserialport/libserialport_0.1.1.bb new file mode 100644 index 0000000000..192d4bce6f --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-extended/libserialport/libserialport_0.1.1.bb @@ -0,0 +1,12 @@ +DESCRIPTION = "libserialport is a minimal, cross-platform shared library written in C that is intended to take care of the OS-specific details when writing software that uses serial ports." +HOMEPAGE = "https://sigrok.org/wiki/Libserialport" + +LICENSE = "LGPL-3.0+" +LIC_FILES_CHKSUM = "file://COPYING;md5=e6a600fd5e1d9cbde2d983680233ad02" + +inherit autotools + +SRC_URI = "http://sigrok.org/download/source/libserialport/libserialport-${PV}.tar.gz" + +SRC_URI[md5sum] = "b93f0325a6157198152b5bd7e8182b51" +SRC_URI[sha256sum] = "4a2af9d9c3ff488e92fb75b4ba38b35bcf9b8a66df04773eba2a7bbf1fa7529d" diff --git a/meta-openembedded/meta-oe/recipes-extended/libzip/libzip_1.5.1.bb b/meta-openembedded/meta-oe/recipes-extended/libzip/libzip_1.5.1.bb new file mode 100644 index 0000000000..ce73700d78 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-extended/libzip/libzip_1.5.1.bb @@ -0,0 +1,18 @@ +DESCRIPTION = "libzip is a C library for reading, creating, and modifying zip archives." +HOMEPAGE = "https://libzip.org/" + +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=01f8b1b8da6403739094396e15b1e722" + +DEPENDS = "zlib bzip2" + +PACKAGECONFIG[ssl] = "-DENABLE_OPENSSL=ON,-DENABLE_OPENSSL=OFF,openssl" + +PACKAGECONFIG ?= "ssl" + +inherit cmake + +SRC_URI = "https://libzip.org/download/libzip-${PV}.tar.xz" + +SRC_URI[md5sum] = "6fe665aa6d6bf3a99eb6fa9c553283fd" +SRC_URI[sha256sum] = "04ea35b6956c7b3453f1ed3f3fe40e3ddae1f43931089124579e8384e79ed372" diff --git a/meta-openembedded/meta-oe/recipes-extended/logwatch/logwatch_7.4.3.bb b/meta-openembedded/meta-oe/recipes-extended/logwatch/logwatch_7.4.3.bb index aea539ef0c..275a8f238c 100644 --- a/meta-openembedded/meta-oe/recipes-extended/logwatch/logwatch_7.4.3.bb +++ b/meta-openembedded/meta-oe/recipes-extended/logwatch/logwatch_7.4.3.bb @@ -20,9 +20,9 @@ do_install() { install -m 0755 -d ${D}${datadir}/logwatch/dist.conf/logfiles install -m 0755 -d ${D}${datadir}/logwatch/dist.conf/services install -m 0755 -d ${D}${localstatedir}/cache/logwatch - mv conf/ ${D}${datadir}/logwatch/default.conf - mv scripts/ ${D}${datadir}/logwatch/scripts - mv lib ${D}${datadir}/logwatch/lib + cp -r -f conf/ ${D}${datadir}/logwatch/default.conf + cp -r -f scripts/ ${D}${datadir}/logwatch/scripts + cp -r -f lib ${D}${datadir}/logwatch/lib chown -R root:root ${D}${datadir}/logwatch install -m 0755 -d ${D}${mandir}/man1 diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/format-overflow.patch b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/format-overflow.patch new file mode 100644 index 0000000000..29c6a7b69c --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs/format-overflow.patch @@ -0,0 +1,21 @@ +Drop enable format string warnings to help gcc9 + +Fixes +| /mnt/a/yoe/build/tmp/work/core2-64-yoe-linux-musl/mozjs/52.9.1-r0/mozjs-52.9.1/js/src/jit/x64/BaseAssembler-x64.h:596:13: error: '%s' directive argument is null [-Werror=format-overflow=] +| 596 | spew("movq " MEM_obs ", %s", ADDR_obs(offset, base, index, scale), GPReg64Name(dst)); +| | ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Upstream-Status: Inappropriate [Workaround for gcc9] +Signed-off-by: Khem Raj <raj.khem@gmail.com> + +--- a/js/src/moz.build ++++ b/js/src/moz.build +@@ -785,7 +785,7 @@ if CONFIG['JS_HAS_CTYPES']: + DEFINES['FFI_BUILDING'] = True + + if CONFIG['GNU_CXX']: +- CXXFLAGS += ['-Wno-shadow', '-Werror=format'] ++ CXXFLAGS += ['-Wno-shadow'] + + # Suppress warnings in third-party code. + if CONFIG['CLANG_CXX']: diff --git a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs_52.9.1.bb b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs_52.9.1.bb index 7c8a7aee10..92d15724fb 100644 --- a/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs_52.9.1.bb +++ b/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs_52.9.1.bb @@ -14,6 +14,7 @@ SRC_URI = "http://archive.ubuntu.com/ubuntu/pool/main/m/mozjs52/mozjs52_52.9.1.o file://disable-mozglue-in-stand-alone-builds.patch \ file://add-riscv-support.patch \ file://0001-mozjs-fix-coredump-caused-by-getenv.patch \ + file://format-overflow.patch \ file://JS_PUBLIC_API.patch \ " SRC_URI_append_libc-musl = " \ @@ -44,7 +45,7 @@ EXTRA_OECONF = " \ --host=${BUILD_SYS} \ --prefix=${prefix} \ --libdir=${libdir} \ - --disable-tests \ + --disable-tests --disable-strip --disable-optimize \ --with-nspr-libs='-lplds4 -lplc4 -lnspr4' \ ${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', "--enable-gold", '--disable-gold', d)} \ " @@ -52,9 +53,15 @@ EXTRA_OECONF = " \ PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" PACKAGECONFIG[x11] = "--x-includes=${STAGING_INCDIR} --x-libraries=${STAGING_LIBDIR},--x-includes=no --x-libraries=no,virtual/libx11" -EXTRA_OEMAKE_task-compile += "OS_LDFLAGS='-Wl,-latomic ${LDFLAGS}'" +EXTRA_OEMAKE_task-compile += "BUILD_OPT=1 OS_LDFLAGS='-Wl,-latomic ${LDFLAGS}'" EXTRA_OEMAKE_task-install += "STATIC_LIBRARY_NAME=js_static" +export HOST_CC = "${BUILD_CC}" +export HOST_CXX = "${BUILD_CXX}" +export HOST_CFLAGS = "${BUILD_CFLAGS}" +export HOST_CPPFLAGS = "${BUILD_CPPFLAGS}" +export HOST_CXXFLAGS = "${BUILD_CXXFLAGS}" + do_configure() { export SHELL="/bin/sh" export TMP="${B}" diff --git a/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman/0001-Adjust-for-CURLE_SSL_CACERT-deprecation-in-curl-7.62.patch b/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman/0001-Adjust-for-CURLE_SSL_CACERT-deprecation-in-curl-7.62.patch new file mode 100644 index 0000000000..4dcd108005 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman/0001-Adjust-for-CURLE_SSL_CACERT-deprecation-in-curl-7.62.patch @@ -0,0 +1,42 @@ +From f2c37fab5dbaffa06c1268ee1309596306c9a4df Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Tue, 20 Nov 2018 12:23:47 -0800 +Subject: [PATCH] Adjust for CURLE_SSL_CACERT deprecation in curl >= 7.62 + +Use CURLE_PEER_FAILED_VERIFICATION instead + +Upstream-Status: Pending + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/lib/wsman-curl-client-transport.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/src/lib/wsman-curl-client-transport.c b/src/lib/wsman-curl-client-transport.c +index d0a3829b..92727f4f 100644 +--- a/src/lib/wsman-curl-client-transport.c ++++ b/src/lib/wsman-curl-client-transport.c +@@ -186,16 +186,23 @@ convert_to_last_error(CURLcode r) + return WS_LASTERR_SSL_CONNECT_ERROR; + case CURLE_BAD_FUNCTION_ARGUMENT: + return WS_LASTERR_CURL_BAD_FUNCTION_ARG; ++#if LIBCURL_VERSION_NUM < 0x073E00 + case CURLE_SSL_PEER_CERTIFICATE: + return WS_LASTERR_SSL_PEER_CERTIFICATE; ++#endif + case CURLE_SSL_ENGINE_NOTFOUND: + return WS_LASTERR_SSL_ENGINE_NOTFOUND; + case CURLE_SSL_ENGINE_SETFAILED: + return WS_LASTERR_SSL_ENGINE_SETFAILED; + case CURLE_SSL_CERTPROBLEM: + return WS_LASTERR_SSL_CERTPROBLEM; ++#if LIBCURL_VERSION_NUM < 0x073E00 + case CURLE_SSL_CACERT: + return WS_LASTERR_SSL_CACERT; ++#else ++ case CURLE_PEER_FAILED_VERIFICATION: ++ return WS_LASTERR_SSL_PEER_CERTIFICATE; ++#endif + #if LIBCURL_VERSION_NUM > 0x70C01 + case CURLE_SSL_ENGINE_INITFAILED: + return WS_LASTERR_SSL_ENGINE_INITFAILED; diff --git a/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman/0001-Port-to-OpenSSL-1.1.0.patch b/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman/0001-Port-to-OpenSSL-1.1.0.patch deleted file mode 100644 index 49afa56f56..0000000000 --- a/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman/0001-Port-to-OpenSSL-1.1.0.patch +++ /dev/null @@ -1,162 +0,0 @@ -From f78643d2388dd0697f83f17880403253a0596d83 Mon Sep 17 00:00:00 2001 -From: Vitezslav Crhonek <vcrhonek@redhat.com> -Date: Wed, 5 Sep 2018 11:23:46 -0700 -Subject: [PATCH 1/2] Port to OpenSSL 1.1.0 - -Upstream-Status: Submitted [https://github.com/Openwsman/openwsman/pull/99] -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - src/lib/wsman-curl-client-transport.c | 6 +++- - src/server/shttpd/io_ssl.c | 17 ---------- - src/server/shttpd/shttpd.c | 20 ++++-------- - src/server/shttpd/ssl.h | 46 --------------------------- - 4 files changed, 12 insertions(+), 77 deletions(-) - -diff --git a/src/lib/wsman-curl-client-transport.c b/src/lib/wsman-curl-client-transport.c -index cd7f517a..e64ad097 100644 ---- a/src/lib/wsman-curl-client-transport.c -+++ b/src/lib/wsman-curl-client-transport.c -@@ -241,12 +241,16 @@ write_handler( void *ptr, size_t size, size_t nmemb, void *data) - static int ssl_certificate_thumbprint_verify_callback(X509_STORE_CTX *ctx, void *arg) - { - unsigned char *thumbprint = (unsigned char *)arg; -- X509 *cert = ctx->cert; - EVP_MD *tempDigest; - - unsigned char tempFingerprint[EVP_MAX_MD_SIZE]; - unsigned int tempFingerprintLen; - tempDigest = (EVP_MD*)EVP_sha1( ); -+ -+ X509 *cert = X509_STORE_CTX_get_current_cert(ctx); -+ if(!cert) -+ return 0; -+ - if ( X509_digest(cert, tempDigest, tempFingerprint, &tempFingerprintLen ) <= 0) - return 0; - if(!memcmp(tempFingerprint, thumbprint, tempFingerprintLen)) -diff --git a/src/server/shttpd/io_ssl.c b/src/server/shttpd/io_ssl.c -index 6de0db2a..7ac669e4 100644 ---- a/src/server/shttpd/io_ssl.c -+++ b/src/server/shttpd/io_ssl.c -@@ -11,23 +11,6 @@ - #include "defs.h" - - #if !defined(NO_SSL) --struct ssl_func ssl_sw[] = { -- {"SSL_free", {0}}, -- {"SSL_accept", {0}}, -- {"SSL_connect", {0}}, -- {"SSL_read", {0}}, -- {"SSL_write", {0}}, -- {"SSL_get_error", {0}}, -- {"SSL_set_fd", {0}}, -- {"SSL_new", {0}}, -- {"SSL_CTX_new", {0}}, -- {"SSLv23_server_method", {0}}, -- {"SSL_library_init", {0}}, -- {"SSL_CTX_use_PrivateKey_file", {0}}, -- {"SSL_CTX_use_certificate_file",{0}}, -- {NULL, {0}} --}; -- - void - _shttpd_ssl_handshake(struct stream *stream) - { -diff --git a/src/server/shttpd/shttpd.c b/src/server/shttpd/shttpd.c -index 5876392e..4c1dbf32 100644 ---- a/src/server/shttpd/shttpd.c -+++ b/src/server/shttpd/shttpd.c -@@ -1476,20 +1476,14 @@ set_ssl(struct shttpd_ctx *ctx, const char *pem) - int retval = FALSE; - EC_KEY* key; - -- /* Load SSL library dynamically */ -- if ((lib = dlopen(SSL_LIB, RTLD_LAZY)) == NULL) { -- _shttpd_elog(E_LOG, NULL, "set_ssl: cannot load %s", SSL_LIB); -- return (FALSE); -- } -- -- for (fp = ssl_sw; fp->name != NULL; fp++) -- if ((fp->ptr.v_void = dlsym(lib, fp->name)) == NULL) { -- _shttpd_elog(E_LOG, NULL,"set_ssl: cannot find %s", fp->name); -- return (FALSE); -- } -- - /* Initialize SSL crap */ -+ debug("Initialize SSL"); -+ SSL_load_error_strings(); -+ #if OPENSSL_VERSION_NUMBER < 0x10100000L - SSL_library_init(); -+ #else -+ OPENSSL_init_ssl(0, NULL); -+ #endif - - if ((CTX = SSL_CTX_new(SSLv23_server_method())) == NULL) - _shttpd_elog(E_LOG, NULL, "SSL_CTX_new error"); -@@ -1532,7 +1526,7 @@ set_ssl(struct shttpd_ctx *ctx, const char *pem) - if (strncasecmp(protocols[idx].name, ssl_disabled_protocols, blank_ptr-ssl_disabled_protocols) == 0) { - //_shttpd_elog(E_LOG, NULL, "SSL: disable %s protocol", protocols[idx].name); - debug("SSL: disable %s protocol", protocols[idx].name); -- SSL_CTX_ctrl(CTX, SSL_CTRL_OPTIONS, protocols[idx].opt, NULL); -+ SSL_CTX_set_options(CTX, protocols[idx].opt); - break; - } - } -diff --git a/src/server/shttpd/ssl.h b/src/server/shttpd/ssl.h -index a863f2c7..8dad0109 100644 ---- a/src/server/shttpd/ssl.h -+++ b/src/server/shttpd/ssl.h -@@ -12,50 +12,4 @@ - - #include <openssl/ssl.h> - --#else -- --/* -- * Snatched from OpenSSL includes. I put the prototypes here to be independent -- * from the OpenSSL source installation. Having this, shttpd + SSL can be -- * built on any system with binary SSL libraries installed. -- */ -- --typedef struct ssl_st SSL; --typedef struct ssl_method_st SSL_METHOD; --typedef struct ssl_ctx_st SSL_CTX; -- --#define SSL_ERROR_WANT_READ 2 --#define SSL_ERROR_WANT_WRITE 3 --#define SSL_ERROR_SYSCALL 5 --#define SSL_FILETYPE_PEM 1 -- - #endif -- --/* -- * Dynamically loaded SSL functionality -- */ --struct ssl_func { -- const char *name; /* SSL function name */ -- union variant ptr; /* Function pointer */ --}; -- --extern struct ssl_func ssl_sw[]; -- --#define FUNC(x) ssl_sw[x].ptr.v_func -- --#define SSL_free(x) (* (void (*)(SSL *)) FUNC(0))(x) --#define SSL_accept(x) (* (int (*)(SSL *)) FUNC(1))(x) --#define SSL_connect(x) (* (int (*)(SSL *)) FUNC(2))(x) --#define SSL_read(x,y,z) (* (int (*)(SSL *, void *, int)) FUNC(3))((x),(y),(z)) --#define SSL_write(x,y,z) \ -- (* (int (*)(SSL *, const void *,int)) FUNC(4))((x), (y), (z)) --#define SSL_get_error(x,y)(* (int (*)(SSL *, int)) FUNC(5))((x), (y)) --#define SSL_set_fd(x,y) (* (int (*)(SSL *, int)) FUNC(6))((x), (y)) --#define SSL_new(x) (* (SSL * (*)(SSL_CTX *)) FUNC(7))(x) --#define SSL_CTX_new(x) (* (SSL_CTX * (*)(SSL_METHOD *)) FUNC(8))(x) --#define SSLv23_server_method() (* (SSL_METHOD * (*)(void)) FUNC(9))() --#define SSL_library_init() (* (int (*)(void)) FUNC(10))() --#define SSL_CTX_use_PrivateKey_file(x,y,z) (* (int (*)(SSL_CTX *, \ -- const char *, int)) FUNC(11))((x), (y), (z)) --#define SSL_CTX_use_certificate_file(x,y,z) (* (int (*)(SSL_CTX *, \ -- const char *, int)) FUNC(12))((x), (y), (z)) --- -2.18.0 - diff --git a/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman/0001-openSSL-1.1.0-API-fixes.patch b/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman/0001-openSSL-1.1.0-API-fixes.patch new file mode 100644 index 0000000000..8d230ba6d9 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman/0001-openSSL-1.1.0-API-fixes.patch @@ -0,0 +1,77 @@ +From 634b95157e1823672a2c95fac0cecf079b5967e7 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Klaus=20K=C3=A4mpf?= <kkaempf@suse.de> +Date: Mon, 19 Nov 2018 15:31:27 +0100 +Subject: [PATCH] openSSL 1.1.0 API fixes + +--- + src/server/shttpd/io_ssl.c | 5 +++++ + src/server/shttpd/shttpd.c | 11 ++++++++++- + src/server/shttpd/ssl.h | 3 +++ + 3 files changed, 18 insertions(+), 1 deletion(-) + +diff --git a/src/server/shttpd/io_ssl.c b/src/server/shttpd/io_ssl.c +index 6de0db2a..ece610ef 100644 +--- a/src/server/shttpd/io_ssl.c ++++ b/src/server/shttpd/io_ssl.c +@@ -21,8 +21,13 @@ struct ssl_func ssl_sw[] = { + {"SSL_set_fd", {0}}, + {"SSL_new", {0}}, + {"SSL_CTX_new", {0}}, ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + {"SSLv23_server_method", {0}}, + {"SSL_library_init", {0}}, ++#else ++ {"TLS_server_method", {0}}, ++ {"OPENSSL_init_ssl", {0}}, ++#endif + {"SSL_CTX_use_PrivateKey_file", {0}}, + {"SSL_CTX_use_certificate_file",{0}}, + {NULL, {0}} +diff --git a/src/server/shttpd/shttpd.c b/src/server/shttpd/shttpd.c +index f0f3fbd8..652aea17 100644 +--- a/src/server/shttpd/shttpd.c ++++ b/src/server/shttpd/shttpd.c +@@ -1489,9 +1489,14 @@ set_ssl(struct shttpd_ctx *ctx, const char *pem) + } + + /* Initialize SSL crap */ +- SSL_library_init(); + ++#if OPENSSL_VERSION_NUMBER < 0x10100000L ++ SSL_library_init(); + if ((CTX = SSL_CTX_new(SSLv23_server_method())) == NULL) ++#else ++ OPENSSL_init_ssl(); ++ if ((CTX = SSL_CTX_new(TLS_server_method())) == NULL) ++#endif + _shttpd_elog(E_LOG, NULL, "SSL_CTX_new error"); + else if (SSL_CTX_use_certificate_file(CTX, wsmand_options_get_ssl_cert_file(), SSL_FILETYPE_PEM) != 1) + _shttpd_elog(E_LOG, NULL, "cannot open certificate file %s", pem); +@@ -1552,6 +1557,10 @@ set_ssl(struct shttpd_ctx *ctx, const char *pem) + if (rc != 1) { + _shttpd_elog(E_LOG, NULL, "Failed to set SSL cipher list \"%s\"", ssl_cipher_list); + } ++ else if ((*ssl_cipher_list == 0) || (*ssl_cipher_list == ' ')) { ++ _shttpd_elog(E_LOG, NULL, "Empty 'ssl_cipher_list' defaults to 'TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256'."); ++ _shttpd_elog(E_LOG, NULL, "Check openSSL documentation."); ++ } + } + ctx->ssl_ctx = CTX; + +diff --git a/src/server/shttpd/ssl.h b/src/server/shttpd/ssl.h +index 2304b70a..89a73c49 100644 +--- a/src/server/shttpd/ssl.h ++++ b/src/server/shttpd/ssl.h +@@ -56,6 +56,9 @@ extern struct ssl_func ssl_sw[]; + #if OPENSSL_VERSION_NUMBER < 0x10100000L + #define SSLv23_server_method() (* (SSL_METHOD * (*)(void)) FUNC(9))() + #define SSL_library_init() (* (int (*)(void)) FUNC(10))() ++#else ++#define TLS_server_method() (* (SSL_METHOD * (*)(void)) FUNC(9))() ++#define OPENSSL_init_ssl() (* (int (*)(void)) FUNC(10))() + #endif + #define SSL_CTX_use_PrivateKey_file(x,y,z) (* (int (*)(SSL_CTX *, \ + const char *, int)) FUNC(11))((x), (y), (z)) +-- +2.19.1 + diff --git a/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman/0002-Check-OpenSSL-version-number-to-allow-builds-with-ol.patch b/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman/0002-Check-OpenSSL-version-number-to-allow-builds-with-ol.patch deleted file mode 100644 index 5ae2e0006e..0000000000 --- a/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman/0002-Check-OpenSSL-version-number-to-allow-builds-with-ol.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 75669b077bd54bedbc086c60cbe137e7f4c685b5 Mon Sep 17 00:00:00 2001 -From: Vitezslav Crhonek <vcrhonek@redhat.com> -Date: Mon, 24 Apr 2017 11:28:39 +0200 -Subject: [PATCH 2/2] Check OpenSSL version number to allow builds with older - version - -Upstream-Status: Submitted [https://github.com/Openwsman/openwsman/pull/99] -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - src/lib/wsman-curl-client-transport.c | 4 ++++ - src/server/shttpd/shttpd.c | 4 ++++ - 2 files changed, 8 insertions(+) - -diff --git a/src/lib/wsman-curl-client-transport.c b/src/lib/wsman-curl-client-transport.c -index e64ad097..4fc047e8 100644 ---- a/src/lib/wsman-curl-client-transport.c -+++ b/src/lib/wsman-curl-client-transport.c -@@ -247,7 +247,11 @@ static int ssl_certificate_thumbprint_verify_callback(X509_STORE_CTX *ctx, void - unsigned int tempFingerprintLen; - tempDigest = (EVP_MD*)EVP_sha1( ); - -+ #if OPENSSL_VERSION_NUMBER < 0x10100000L -+ X509 *cert = ctx->cert; -+ #else - X509 *cert = X509_STORE_CTX_get_current_cert(ctx); -+ #endif - if(!cert) - return 0; - -diff --git a/src/server/shttpd/shttpd.c b/src/server/shttpd/shttpd.c -index 4c1dbf32..161720c8 100644 ---- a/src/server/shttpd/shttpd.c -+++ b/src/server/shttpd/shttpd.c -@@ -1526,7 +1526,11 @@ set_ssl(struct shttpd_ctx *ctx, const char *pem) - if (strncasecmp(protocols[idx].name, ssl_disabled_protocols, blank_ptr-ssl_disabled_protocols) == 0) { - //_shttpd_elog(E_LOG, NULL, "SSL: disable %s protocol", protocols[idx].name); - debug("SSL: disable %s protocol", protocols[idx].name); -+ #if OPENSSL_VERSION_NUMBER < 0x10100000L -+ SSL_CTX_ctrl(CTX, SSL_CTRL_OPTIONS, protocols[idx].opt, NULL); -+ #else - SSL_CTX_set_options(CTX, protocols[idx].opt); -+ #endif - break; - } - } --- -2.18.0 - diff --git a/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman_2.6.5.bb b/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman_2.6.8.bb index 5fba3855c0..f04ff01d96 100644 --- a/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman_2.6.5.bb +++ b/meta-openembedded/meta-oe/recipes-extended/openwsman/openwsman_2.6.8.bb @@ -15,15 +15,15 @@ DEPENDS = "curl libxml2 openssl libpam" inherit distro_features_check REQUIRED_DISTRO_FEATURES = "pam" -SRCREV = "e90e5c96e3006c372bf45e0185e33c9250e67df6" -PV = "2.6.5" +# v2.6.8 +SRCREV = "b9cd0b72534854abb6dd834c8c11e02111b4c8d7" SRC_URI = "git://github.com/Openwsman/openwsman.git \ file://libssl-is-required-if-eventint-supported.patch \ file://openwsmand.service \ file://0001-lock.c-Define-PTHREAD_MUTEX_RECURSIVE_NP-if-undefine.patch \ - file://0001-Port-to-OpenSSL-1.1.0.patch \ - file://0002-Check-OpenSSL-version-number-to-allow-builds-with-ol.patch \ + file://0001-openSSL-1.1.0-API-fixes.patch \ + file://0001-Adjust-for-CURLE_SSL_CACERT-deprecation-in-curl-7.62.patch \ " S = "${WORKDIR}/git" @@ -31,7 +31,7 @@ S = "${WORKDIR}/git" LICENSE = "BSD" LIC_FILES_CHKSUM = "file://COPYING;md5=d4f53d4c6cf73b9d43186ce3be6dd0ba" -inherit systemd cmake pkgconfig pythonnative perlnative +inherit systemd cmake pkgconfig python3native perlnative SYSTEMD_SERVICE_${PN} = "openwsmand.service" SYSTEMD_AUTO_ENABLE = "disable" @@ -41,6 +41,8 @@ LDFLAGS_append = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', " -fuse- EXTRA_OECMAKE = "-DBUILD_BINDINGS=NO \ -DBUILD_LIBCIM=NO \ -DBUILD_PERL=YES \ + -DBUILD_PYTHON3=YES \ + -DBUILD_PYTHON=NO \ -DCMAKE_INSTALL_PREFIX=${prefix} \ -DLIB=${baselib} \ " diff --git a/meta-openembedded/meta-oe/recipes-extended/pam/pam-ssh-agent-auth/0001-Adapt-to-OpenSSL-1.1.1.patch b/meta-openembedded/meta-oe/recipes-extended/pam/pam-ssh-agent-auth/0001-Adapt-to-OpenSSL-1.1.1.patch new file mode 100644 index 0000000000..2d75a18f15 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-extended/pam/pam-ssh-agent-auth/0001-Adapt-to-OpenSSL-1.1.1.patch @@ -0,0 +1,879 @@ +From 37e233307a79a9250962dcf77b7c7e27a02a1a35 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Fri, 1 Feb 2019 22:44:10 -0800 +Subject: [PATCH] Adapt to OpenSSL 1.1.1 + +From: Guido Falsi <mad@madpilot.net> +https://sources.debian.org/src/pam-ssh-agent-auth/0.10.3-3/debian/patches/openssl-1.1.1-1.patch/ + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + authfd.c | 50 ++++++++++++++++++++ + bufbn.c | 4 ++ + cipher.h | 6 ++- + kex.h | 9 +++- + key.c | 133 ++++++++++++++++++++++++++++++++++++++++++++++++++-- + ssh-dss.c | 51 ++++++++++++++++---- + ssh-ecdsa.c | 40 ++++++++++++---- + ssh-rsa.c | 22 +++++++-- + 8 files changed, 287 insertions(+), 28 deletions(-) + +diff --git a/authfd.c b/authfd.c +index 212e06b..f91514d 100644 +--- a/authfd.c ++++ b/authfd.c +@@ -367,6 +367,7 @@ ssh_get_next_identity(AuthenticationConnection *auth, char **comment, int versio + case 1: + key = pamsshagentauth_key_new(KEY_RSA1); + bits = pamsshagentauth_buffer_get_int(&auth->identities); ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + pamsshagentauth_buffer_get_bignum(&auth->identities, key->rsa->e); + pamsshagentauth_buffer_get_bignum(&auth->identities, key->rsa->n); + *comment = pamsshagentauth_buffer_get_string(&auth->identities, NULL); +@@ -374,6 +375,15 @@ ssh_get_next_identity(AuthenticationConnection *auth, char **comment, int versio + if (keybits < 0 || bits != (u_int)keybits) + pamsshagentauth_logit("Warning: identity keysize mismatch: actual %d, announced %u", + BN_num_bits(key->rsa->n), bits); ++#else ++ pamsshagentauth_buffer_get_bignum(&auth->identities, RSA_get0_e(key->rsa)); ++ pamsshagentauth_buffer_get_bignum(&auth->identities, RSA_get0_n(key->rsa)); ++ *comment = pamsshagentauth_buffer_get_string(&auth->identities, NULL); ++ keybits = BN_num_bits(RSA_get0_n(key->rsa)); ++ if (keybits < 0 || bits != (u_int)keybits) ++ pamsshagentauth_logit("Warning: identity keysize mismatch: actual %d, announced %u", ++ BN_num_bits(RSA_get0_n(key->rsa)), bits); ++#endif + break; + case 2: + blob = pamsshagentauth_buffer_get_string(&auth->identities, &blen); +@@ -417,9 +427,15 @@ ssh_decrypt_challenge(AuthenticationConnection *auth, + } + pamsshagentauth_buffer_init(&buffer); + pamsshagentauth_buffer_put_char(&buffer, SSH_AGENTC_RSA_CHALLENGE); ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + pamsshagentauth_buffer_put_int(&buffer, BN_num_bits(key->rsa->n)); + pamsshagentauth_buffer_put_bignum(&buffer, key->rsa->e); + pamsshagentauth_buffer_put_bignum(&buffer, key->rsa->n); ++#else ++ pamsshagentauth_buffer_put_int(&buffer, BN_num_bits(RSA_get0_n(key->rsa))); ++ pamsshagentauth_buffer_put_bignum(&buffer, RSA_get0_e(key->rsa)); ++ pamsshagentauth_buffer_put_bignum(&buffer, RSA_get0_n(key->rsa)); ++#endif + pamsshagentauth_buffer_put_bignum(&buffer, challenge); + pamsshagentauth_buffer_append(&buffer, session_id, 16); + pamsshagentauth_buffer_put_int(&buffer, response_type); +@@ -496,6 +512,7 @@ ssh_agent_sign(AuthenticationConnection *auth, + static void + ssh_encode_identity_rsa1(Buffer *b, RSA *key, const char *comment) + { ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + pamsshagentauth_buffer_put_int(b, BN_num_bits(key->n)); + pamsshagentauth_buffer_put_bignum(b, key->n); + pamsshagentauth_buffer_put_bignum(b, key->e); +@@ -504,6 +521,16 @@ ssh_encode_identity_rsa1(Buffer *b, RSA *key, const char *comment) + pamsshagentauth_buffer_put_bignum(b, key->iqmp); /* ssh key->u */ + pamsshagentauth_buffer_put_bignum(b, key->q); /* ssh key->p, SSL key->q */ + pamsshagentauth_buffer_put_bignum(b, key->p); /* ssh key->q, SSL key->p */ ++#else ++ pamsshagentauth_buffer_put_int(b, BN_num_bits(RSA_get0_n(key))); ++ pamsshagentauth_buffer_put_bignum(b, RSA_get0_n(key)); ++ pamsshagentauth_buffer_put_bignum(b, RSA_get0_e(key)); ++ pamsshagentauth_buffer_put_bignum(b, RSA_get0_d(key)); ++ /* To keep within the protocol: p < q for ssh. in SSL p > q */ ++ pamsshagentauth_buffer_put_bignum(b, RSA_get0_iqmp(key)); /* ssh key->u */ ++ pamsshagentauth_buffer_put_bignum(b, RSA_get0_q(key)); /* ssh key->p, SSL key->q */ ++ pamsshagentauth_buffer_put_bignum(b, RSA_get0_p(key)); /* ssh key->q, SSL key->p */ ++#endif + pamsshagentauth_buffer_put_cstring(b, comment); + } + +@@ -513,19 +540,36 @@ ssh_encode_identity_ssh2(Buffer *b, Key *key, const char *comment) + pamsshagentauth_buffer_put_cstring(b, key_ssh_name(key)); + switch (key->type) { + case KEY_RSA: ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + pamsshagentauth_buffer_put_bignum2(b, key->rsa->n); + pamsshagentauth_buffer_put_bignum2(b, key->rsa->e); + pamsshagentauth_buffer_put_bignum2(b, key->rsa->d); + pamsshagentauth_buffer_put_bignum2(b, key->rsa->iqmp); + pamsshagentauth_buffer_put_bignum2(b, key->rsa->p); + pamsshagentauth_buffer_put_bignum2(b, key->rsa->q); ++#else ++ pamsshagentauth_buffer_put_bignum2(b, RSA_get0_n(key->rsa)); ++ pamsshagentauth_buffer_put_bignum2(b, RSA_get0_e(key->rsa)); ++ pamsshagentauth_buffer_put_bignum2(b, RSA_get0_d(key->rsa)); ++ pamsshagentauth_buffer_put_bignum2(b, RSA_get0_iqmp(key->rsa)); ++ pamsshagentauth_buffer_put_bignum2(b, RSA_get0_p(key->rsa)); ++ pamsshagentauth_buffer_put_bignum2(b, RSA_get0_q(key->rsa)); ++#endif + break; + case KEY_DSA: ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + pamsshagentauth_buffer_put_bignum2(b, key->dsa->p); + pamsshagentauth_buffer_put_bignum2(b, key->dsa->q); + pamsshagentauth_buffer_put_bignum2(b, key->dsa->g); + pamsshagentauth_buffer_put_bignum2(b, key->dsa->pub_key); + pamsshagentauth_buffer_put_bignum2(b, key->dsa->priv_key); ++#else ++ pamsshagentauth_buffer_put_bignum2(b, DSA_get0_p(key->dsa)); ++ pamsshagentauth_buffer_put_bignum2(b, DSA_get0_q(key->dsa)); ++ pamsshagentauth_buffer_put_bignum2(b, DSA_get0_g(key->dsa)); ++ pamsshagentauth_buffer_put_bignum2(b, DSA_get0_pub_key(key->dsa)); ++ pamsshagentauth_buffer_put_bignum2(b, DSA_get0_priv_key(key->dsa)); ++#endif + break; + } + pamsshagentauth_buffer_put_cstring(b, comment); +@@ -605,9 +649,15 @@ ssh_remove_identity(AuthenticationConnection *auth, Key *key) + + if (key->type == KEY_RSA1) { + pamsshagentauth_buffer_put_char(&msg, SSH_AGENTC_REMOVE_RSA_IDENTITY); ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + pamsshagentauth_buffer_put_int(&msg, BN_num_bits(key->rsa->n)); + pamsshagentauth_buffer_put_bignum(&msg, key->rsa->e); + pamsshagentauth_buffer_put_bignum(&msg, key->rsa->n); ++#else ++ pamsshagentauth_buffer_put_int(&msg, BN_num_bits(RSA_get0_n(key->rsa))); ++ pamsshagentauth_buffer_put_bignum(&msg, RSA_get0_e(key->rsa)); ++ pamsshagentauth_buffer_put_bignum(&msg, RSA_get0_n(key->rsa)); ++#endif + } else if (key->type == KEY_DSA || key->type == KEY_RSA) { + pamsshagentauth_key_to_blob(key, &blob, &blen); + pamsshagentauth_buffer_put_char(&msg, SSH2_AGENTC_REMOVE_IDENTITY); +diff --git a/bufbn.c b/bufbn.c +index 6a49c73..4ecedc1 100644 +--- a/bufbn.c ++++ b/bufbn.c +@@ -151,7 +151,11 @@ pamsshagentauth_buffer_put_bignum2_ret(Buffer *buffer, const BIGNUM *value) + pamsshagentauth_buffer_put_int(buffer, 0); + return 0; + } ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + if (value->neg) { ++#else ++ if (BN_is_negative(value)) { ++#endif + pamsshagentauth_logerror("buffer_put_bignum2_ret: negative numbers not supported"); + return (-1); + } +diff --git a/cipher.h b/cipher.h +index 49bbc16..64f59ca 100644 +--- a/cipher.h ++++ b/cipher.h +@@ -59,15 +59,18 @@ + #define CIPHER_DECRYPT 0 + + typedef struct Cipher Cipher; +-typedef struct CipherContext CipherContext; ++// typedef struct CipherContext CipherContext; + + struct Cipher; ++/* + struct CipherContext { + int plaintext; + EVP_CIPHER_CTX evp; + Cipher *cipher; + }; ++*/ + ++/* + u_int cipher_mask_ssh1(int); + Cipher *cipher_by_name(const char *); + Cipher *cipher_by_number(int); +@@ -88,4 +91,5 @@ void cipher_set_keyiv(CipherContext *, u_char *); + int cipher_get_keyiv_len(const CipherContext *); + int cipher_get_keycontext(const CipherContext *, u_char *); + void cipher_set_keycontext(CipherContext *, u_char *); ++*/ + #endif /* CIPHER_H */ +diff --git a/kex.h b/kex.h +index 8e29c90..81ca57d 100644 +--- a/kex.h ++++ b/kex.h +@@ -70,7 +70,7 @@ enum kex_exchange { + #define KEX_INIT_SENT 0x0001 + + typedef struct Kex Kex; +-typedef struct Mac Mac; ++// typedef struct Mac Mac; + typedef struct Comp Comp; + typedef struct Enc Enc; + typedef struct Newkeys Newkeys; +@@ -84,6 +84,7 @@ struct Enc { + u_char *key; + u_char *iv; + }; ++/* + struct Mac { + char *name; + int enabled; +@@ -95,11 +96,13 @@ struct Mac { + HMAC_CTX evp_ctx; + struct umac_ctx *umac_ctx; + }; ++*/ + struct Comp { + int type; + int enabled; + char *name; + }; ++/* + struct Newkeys { + Enc enc; + Mac mac; +@@ -126,7 +129,9 @@ struct Kex { + int (*host_key_index)(Key *); + void (*kex[KEX_MAX])(Kex *); + }; ++*/ + ++/* + Kex *kex_setup(char *[PROPOSAL_MAX]); + void kex_finish(Kex *); + +@@ -152,6 +157,8 @@ kexgex_hash(const EVP_MD *, char *, char *, char *, int, char *, + void + derive_ssh1_session_id(BIGNUM *, BIGNUM *, u_int8_t[8], u_int8_t[16]); + ++*/ ++ + #if defined(DEBUG_KEX) || defined(DEBUG_KEXDH) + void dump_digest(char *, u_char *, int); + #endif +diff --git a/key.c b/key.c +index 107a442..aedbbb5 100644 +--- a/key.c ++++ b/key.c +@@ -77,15 +77,21 @@ pamsshagentauth_key_new(int type) + case KEY_RSA: + if ((rsa = RSA_new()) == NULL) + pamsshagentauth_fatal("key_new: RSA_new failed"); ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + if ((rsa->n = BN_new()) == NULL) + pamsshagentauth_fatal("key_new: BN_new failed"); + if ((rsa->e = BN_new()) == NULL) + pamsshagentauth_fatal("key_new: BN_new failed"); ++#else ++ if (RSA_set0_key(rsa, BN_new(), BN_new(), NULL) != 1) ++ pamsshagentauth_fatal("key_new: RSA_set0_key failed"); ++#endif + k->rsa = rsa; + break; + case KEY_DSA: + if ((dsa = DSA_new()) == NULL) + pamsshagentauth_fatal("key_new: DSA_new failed"); ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + if ((dsa->p = BN_new()) == NULL) + pamsshagentauth_fatal("key_new: BN_new failed"); + if ((dsa->q = BN_new()) == NULL) +@@ -94,6 +100,12 @@ pamsshagentauth_key_new(int type) + pamsshagentauth_fatal("key_new: BN_new failed"); + if ((dsa->pub_key = BN_new()) == NULL) + pamsshagentauth_fatal("key_new: BN_new failed"); ++#else ++ if (DSA_set0_pqg(dsa, BN_new(), BN_new(), BN_new()) != 1) ++ pamsshagentauth_fatal("key_new: DSA_set0_pqg failed"); ++ if (DSA_set0_key(dsa, BN_new(), NULL) != 1) ++ pamsshagentauth_fatal("key_new: DSA_set0_key failed"); ++#endif + k->dsa = dsa; + break; + case KEY_ECDSA: +@@ -118,6 +130,7 @@ pamsshagentauth_key_new_private(int type) + switch (k->type) { + case KEY_RSA1: + case KEY_RSA: ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + if ((k->rsa->d = BN_new()) == NULL) + pamsshagentauth_fatal("key_new_private: BN_new failed"); + if ((k->rsa->iqmp = BN_new()) == NULL) +@@ -130,14 +143,30 @@ pamsshagentauth_key_new_private(int type) + pamsshagentauth_fatal("key_new_private: BN_new failed"); + if ((k->rsa->dmp1 = BN_new()) == NULL) + pamsshagentauth_fatal("key_new_private: BN_new failed"); ++#else ++ if (RSA_set0_key(k->rsa, NULL, NULL, BN_new()) != 1) ++ pamsshagentauth_fatal("key_new: RSA_set0_key failed"); ++ if (RSA_set0_crt_params(k->rsa, BN_new(), BN_new(), BN_new()) != 1) ++ pamsshagentauth_fatal("key_new: RSA_set0_crt_params failed"); ++ if (RSA_set0_factors(k->rsa, BN_new(), BN_new()) != 1) ++ pamsshagentauth_fatal("key_new: RSA_set0_factors failed"); ++#endif + break; + case KEY_DSA: ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + if ((k->dsa->priv_key = BN_new()) == NULL) + pamsshagentauth_fatal("key_new_private: BN_new failed"); ++#else ++ if (DSA_set0_key(k->dsa, NULL, BN_new()) != 1) ++ pamsshagentauth_fatal("key_new_private: DSA_set0_key failed"); ++#endif + break; + case KEY_ECDSA: ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + if (EC_KEY_set_private_key(k->ecdsa, BN_new()) != 1) + pamsshagentauth_fatal("key_new_private: EC_KEY_set_private_key failed"); ++#else ++#endif + break; + case KEY_ED25519: + RAND_bytes(k->ed25519->sk, sizeof(k->ed25519->sk)); +@@ -195,14 +224,26 @@ pamsshagentauth_key_equal(const Key *a, const Key *b) + case KEY_RSA1: + case KEY_RSA: + return a->rsa != NULL && b->rsa != NULL && ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + BN_cmp(a->rsa->e, b->rsa->e) == 0 && + BN_cmp(a->rsa->n, b->rsa->n) == 0; ++#else ++ BN_cmp(RSA_get0_e(a->rsa), RSA_get0_e(b->rsa)) == 0 && ++ BN_cmp(RSA_get0_n(a->rsa), RSA_get0_n(b->rsa)) == 0; ++#endif + case KEY_DSA: + return a->dsa != NULL && b->dsa != NULL && ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + BN_cmp(a->dsa->p, b->dsa->p) == 0 && + BN_cmp(a->dsa->q, b->dsa->q) == 0 && + BN_cmp(a->dsa->g, b->dsa->g) == 0 && + BN_cmp(a->dsa->pub_key, b->dsa->pub_key) == 0; ++#else ++ BN_cmp(DSA_get0_p(a->dsa), DSA_get0_p(b->dsa)) == 0 && ++ BN_cmp(DSA_get0_q(a->dsa), DSA_get0_q(b->dsa)) == 0 && ++ BN_cmp(DSA_get0_g(a->dsa), DSA_get0_g(b->dsa)) == 0 && ++ BN_cmp(DSA_get0_pub_key(a->dsa), DSA_get0_pub_key(b->dsa)) == 0; ++#endif + case KEY_ECDSA: + return a->ecdsa != NULL && b->ecdsa != NULL && + EC_KEY_check_key(a->ecdsa) == 1 && +@@ -231,7 +272,7 @@ pamsshagentauth_key_fingerprint_raw(const Key *k, enum fp_type dgst_type, + u_int *dgst_raw_length) + { + const EVP_MD *md = NULL; +- EVP_MD_CTX ctx; ++ EVP_MD_CTX *ctx; + u_char *blob = NULL; + u_char *retval = NULL; + u_int len = 0; +@@ -252,12 +293,21 @@ pamsshagentauth_key_fingerprint_raw(const Key *k, enum fp_type dgst_type, + } + switch (k->type) { + case KEY_RSA1: ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + nlen = BN_num_bytes(k->rsa->n); + elen = BN_num_bytes(k->rsa->e); + len = nlen + elen; + blob = pamsshagentauth_xmalloc(len); + BN_bn2bin(k->rsa->n, blob); + BN_bn2bin(k->rsa->e, blob + nlen); ++#else ++ nlen = BN_num_bytes(RSA_get0_n(k->rsa)); ++ elen = BN_num_bytes(RSA_get0_e(k->rsa)); ++ len = nlen + elen; ++ blob = pamsshagentauth_xmalloc(len); ++ BN_bn2bin(RSA_get0_n(k->rsa), blob); ++ BN_bn2bin(RSA_get0_e(k->rsa), blob + nlen); ++#endif + break; + case KEY_DSA: + case KEY_ECDSA: +@@ -273,11 +323,14 @@ pamsshagentauth_key_fingerprint_raw(const Key *k, enum fp_type dgst_type, + } + if (blob != NULL) { + retval = pamsshagentauth_xmalloc(EVP_MAX_MD_SIZE); +- EVP_DigestInit(&ctx, md); +- EVP_DigestUpdate(&ctx, blob, len); +- EVP_DigestFinal(&ctx, retval, dgst_raw_length); ++ /* XXX Errors from EVP_* functions are not hadled */ ++ ctx = EVP_MD_CTX_create(); ++ EVP_DigestInit(ctx, md); ++ EVP_DigestUpdate(ctx, blob, len); ++ EVP_DigestFinal(ctx, retval, dgst_raw_length); + memset(blob, 0, len); + pamsshagentauth_xfree(blob); ++ EVP_MD_CTX_destroy(ctx); + } else { + pamsshagentauth_fatal("key_fingerprint_raw: blob is null"); + } +@@ -457,10 +510,17 @@ pamsshagentauth_key_read(Key *ret, char **cpp) + return -1; + *cpp = cp; + /* Get public exponent, public modulus. */ ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + if (!read_bignum(cpp, ret->rsa->e)) + return -1; + if (!read_bignum(cpp, ret->rsa->n)) + return -1; ++#else ++ if (!read_bignum(cpp, RSA_get0_e(ret->rsa))) ++ return -1; ++ if (!read_bignum(cpp, RSA_get0_n(ret->rsa))) ++ return -1; ++#endif + success = 1; + break; + case KEY_UNSPEC: +@@ -583,10 +643,17 @@ pamsshagentauth_key_write(const Key *key, FILE *f) + + if (key->type == KEY_RSA1 && key->rsa != NULL) { + /* size of modulus 'n' */ ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + bits = BN_num_bits(key->rsa->n); + fprintf(f, "%u", bits); + if (write_bignum(f, key->rsa->e) && + write_bignum(f, key->rsa->n)) { ++#else ++ bits = BN_num_bits(RSA_get0_n(key->rsa)); ++ fprintf(f, "%u", bits); ++ if (write_bignum(f, RSA_get0_e(key->rsa)) && ++ write_bignum(f, RSA_get0_n(key->rsa))) { ++#endif + success = 1; + } else { + pamsshagentauth_logerror("key_write: failed for RSA key"); +@@ -675,10 +742,17 @@ pamsshagentauth_key_size(const Key *k) + { + switch (k->type) { + case KEY_RSA1: ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + case KEY_RSA: + return BN_num_bits(k->rsa->n); + case KEY_DSA: + return BN_num_bits(k->dsa->p); ++#else ++ case KEY_RSA: ++ return BN_num_bits(RSA_get0_n(k->rsa)); ++ case KEY_DSA: ++ return BN_num_bits(DSA_get0_p(k->dsa)); ++#endif + case KEY_ECDSA: + { + int nid = EC_GROUP_get_curve_name(EC_KEY_get0_group(k->ecdsa)); +@@ -769,17 +843,29 @@ pamsshagentauth_key_from_private(const Key *k) + switch (k->type) { + case KEY_DSA: + n = pamsshagentauth_key_new(k->type); ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + if ((BN_copy(n->dsa->p, k->dsa->p) == NULL) || + (BN_copy(n->dsa->q, k->dsa->q) == NULL) || + (BN_copy(n->dsa->g, k->dsa->g) == NULL) || + (BN_copy(n->dsa->pub_key, k->dsa->pub_key) == NULL)) ++#else ++ if ((BN_copy(DSA_get0_p(n->dsa), DSA_get0_p(k->dsa)) == NULL) || ++ (BN_copy(DSA_get0_q(n->dsa), DSA_get0_q(k->dsa)) == NULL) || ++ (BN_copy(DSA_get0_g(n->dsa), DSA_get0_g(k->dsa)) == NULL) || ++ (BN_copy(DSA_get0_pub_key(n->dsa), DSA_get0_pub_key(k->dsa)) == NULL)) ++#endif + pamsshagentauth_fatal("key_from_private: BN_copy failed"); + break; + case KEY_RSA: + case KEY_RSA1: + n = pamsshagentauth_key_new(k->type); ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + if ((BN_copy(n->rsa->n, k->rsa->n) == NULL) || + (BN_copy(n->rsa->e, k->rsa->e) == NULL)) ++#else ++ if ((BN_copy(RSA_get0_n(n->rsa), RSA_get0_n(k->rsa)) == NULL) || ++ (BN_copy(RSA_get0_e(n->rsa), RSA_get0_e(k->rsa)) == NULL)) ++#endif + pamsshagentauth_fatal("key_from_private: BN_copy failed"); + break; + case KEY_ECDSA: +@@ -881,8 +967,13 @@ pamsshagentauth_key_from_blob(const u_char *blob, u_int blen) + switch (type) { + case KEY_RSA: + key = pamsshagentauth_key_new(type); ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + if (pamsshagentauth_buffer_get_bignum2_ret(&b, key->rsa->e) == -1 || + pamsshagentauth_buffer_get_bignum2_ret(&b, key->rsa->n) == -1) { ++#else ++ if (pamsshagentauth_buffer_get_bignum2_ret(&b, RSA_get0_e(key->rsa)) == -1 || ++ pamsshagentauth_buffer_get_bignum2_ret(&b, RSA_get0_n(key->rsa)) == -1) { ++#endif + pamsshagentauth_logerror("key_from_blob: can't read rsa key"); + pamsshagentauth_key_free(key); + key = NULL; +@@ -894,10 +985,17 @@ pamsshagentauth_key_from_blob(const u_char *blob, u_int blen) + break; + case KEY_DSA: + key = pamsshagentauth_key_new(type); ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + if (pamsshagentauth_buffer_get_bignum2_ret(&b, key->dsa->p) == -1 || + pamsshagentauth_buffer_get_bignum2_ret(&b, key->dsa->q) == -1 || + pamsshagentauth_buffer_get_bignum2_ret(&b, key->dsa->g) == -1 || + pamsshagentauth_buffer_get_bignum2_ret(&b, key->dsa->pub_key) == -1) { ++#else ++ if (pamsshagentauth_buffer_get_bignum2_ret(&b, DSA_get0_p(key->dsa)) == -1 || ++ pamsshagentauth_buffer_get_bignum2_ret(&b, DSA_get0_q(key->dsa)) == -1 || ++ pamsshagentauth_buffer_get_bignum2_ret(&b, DSA_get0_g(key->dsa)) == -1 || ++ pamsshagentauth_buffer_get_bignum2_ret(&b, DSA_get0_pub_key(key->dsa)) == -1) { ++#endif + pamsshagentauth_logerror("key_from_blob: can't read dsa key"); + pamsshagentauth_key_free(key); + key = NULL; +@@ -1015,6 +1113,7 @@ pamsshagentauth_key_to_blob(const Key *key, u_char **blobp, u_int *lenp) + } + pamsshagentauth_buffer_init(&b); + switch (key->type) { ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + case KEY_DSA: + pamsshagentauth_buffer_put_cstring(&b, key_ssh_name(key)); + pamsshagentauth_buffer_put_bignum2(&b, key->dsa->p); +@@ -1027,6 +1126,20 @@ pamsshagentauth_key_to_blob(const Key *key, u_char **blobp, u_int *lenp) + pamsshagentauth_buffer_put_bignum2(&b, key->rsa->e); + pamsshagentauth_buffer_put_bignum2(&b, key->rsa->n); + break; ++#else ++ case KEY_DSA: ++ pamsshagentauth_buffer_put_cstring(&b, key_ssh_name(key)); ++ pamsshagentauth_buffer_put_bignum2(&b, DSA_get0_p(key->dsa)); ++ pamsshagentauth_buffer_put_bignum2(&b, DSA_get0_q(key->dsa)); ++ pamsshagentauth_buffer_put_bignum2(&b, DSA_get0_g(key->dsa)); ++ pamsshagentauth_buffer_put_bignum2(&b, DSA_get0_pub_key(key->dsa)); ++ break; ++ case KEY_RSA: ++ pamsshagentauth_buffer_put_cstring(&b, key_ssh_name(key)); ++ pamsshagentauth_buffer_put_bignum2(&b, RSA_get0_e(key->rsa)); ++ pamsshagentauth_buffer_put_bignum2(&b, RSA_get0_n(key->rsa)); ++ break; ++#endif + case KEY_ECDSA: + { + size_t l = 0; +@@ -1138,14 +1251,20 @@ pamsshagentauth_key_demote(const Key *k) + case KEY_RSA: + if ((pk->rsa = RSA_new()) == NULL) + pamsshagentauth_fatal("key_demote: RSA_new failed"); ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + if ((pk->rsa->e = BN_dup(k->rsa->e)) == NULL) + pamsshagentauth_fatal("key_demote: BN_dup failed"); + if ((pk->rsa->n = BN_dup(k->rsa->n)) == NULL) + pamsshagentauth_fatal("key_demote: BN_dup failed"); ++#else ++ if (RSA_set0_key(pk->rsa, BN_dup(RSA_get0_n(k->rsa)), BN_dup(RSA_get0_e(k->rsa)), NULL) != 1) ++ pamsshagentauth_fatal("key_demote: RSA_set0_key failed"); ++#endif + break; + case KEY_DSA: + if ((pk->dsa = DSA_new()) == NULL) + pamsshagentauth_fatal("key_demote: DSA_new failed"); ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + if ((pk->dsa->p = BN_dup(k->dsa->p)) == NULL) + pamsshagentauth_fatal("key_demote: BN_dup failed"); + if ((pk->dsa->q = BN_dup(k->dsa->q)) == NULL) +@@ -1154,6 +1273,12 @@ pamsshagentauth_key_demote(const Key *k) + pamsshagentauth_fatal("key_demote: BN_dup failed"); + if ((pk->dsa->pub_key = BN_dup(k->dsa->pub_key)) == NULL) + pamsshagentauth_fatal("key_demote: BN_dup failed"); ++#else ++ if (DSA_set0_pqg(pk->dsa, BN_dup(DSA_get0_p(k->dsa)), BN_dup(DSA_get0_q(k->dsa)), BN_dup(DSA_get0_g(k->dsa))) != 1) ++ pamsshagentauth_fatal("key_demote: DSA_set0_pqg failed"); ++ if (DSA_set0_key(pk->dsa, BN_dup(DSA_get0_pub_key(k->dsa)), NULL) != 1) ++ pamsshagentauth_fatal("key_demote: DSA_set0_key failed"); ++#endif + break; + case KEY_ECDSA: + pamsshagentauth_fatal("key_demote: implement me"); +diff --git a/ssh-dss.c b/ssh-dss.c +index 9fdaa5d..1051ae2 100644 +--- a/ssh-dss.c ++++ b/ssh-dss.c +@@ -48,37 +48,53 @@ ssh_dss_sign(const Key *key, u_char **sigp, u_int *lenp, + { + DSA_SIG *sig; + const EVP_MD *evp_md = EVP_sha1(); +- EVP_MD_CTX md; ++ EVP_MD_CTX *md; + u_char digest[EVP_MAX_MD_SIZE], sigblob[SIGBLOB_LEN]; + u_int rlen, slen, len, dlen; + Buffer b; ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L ++ const BIGNUM *r, *s; ++#endif + + if (key == NULL || key->type != KEY_DSA || key->dsa == NULL) { + pamsshagentauth_logerror("ssh_dss_sign: no DSA key"); + return -1; + } +- EVP_DigestInit(&md, evp_md); +- EVP_DigestUpdate(&md, data, datalen); +- EVP_DigestFinal(&md, digest, &dlen); ++ md = EVP_MD_CTX_create(); ++ EVP_DigestInit(md, evp_md); ++ EVP_DigestUpdate(md, data, datalen); ++ EVP_DigestFinal(md, digest, &dlen); + + sig = DSA_do_sign(digest, dlen, key->dsa); + memset(digest, 'd', sizeof(digest)); ++ EVP_MD_CTX_destroy(md); + + if (sig == NULL) { + pamsshagentauth_logerror("ssh_dss_sign: sign failed"); + return -1; + } + ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + rlen = BN_num_bytes(sig->r); + slen = BN_num_bytes(sig->s); ++#else ++ DSA_SIG_get0((const DSA_SIG *)sig, (const BIGNUM **)r, (const BIGNUM **)s); ++ rlen = BN_num_bytes(r); ++ slen = BN_num_bytes(s); ++#endif + if (rlen > INTBLOB_LEN || slen > INTBLOB_LEN) { + pamsshagentauth_logerror("bad sig size %u %u", rlen, slen); + DSA_SIG_free(sig); + return -1; + } + memset(sigblob, 0, SIGBLOB_LEN); ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + BN_bn2bin(sig->r, sigblob+ SIGBLOB_LEN - INTBLOB_LEN - rlen); + BN_bn2bin(sig->s, sigblob+ SIGBLOB_LEN - slen); ++#else ++ BN_bn2bin(r, sigblob+ SIGBLOB_LEN - INTBLOB_LEN - rlen); ++ BN_bn2bin(s, sigblob+ SIGBLOB_LEN - slen); ++#endif + DSA_SIG_free(sig); + + if (datafellows & SSH_BUG_SIGBLOB) { +@@ -110,11 +126,14 @@ ssh_dss_verify(const Key *key, const u_char *signature, u_int signaturelen, + { + DSA_SIG *sig; + const EVP_MD *evp_md = EVP_sha1(); +- EVP_MD_CTX md; ++ EVP_MD_CTX *md; + u_char digest[EVP_MAX_MD_SIZE], *sigblob; + u_int len, dlen; + int rlen, ret; + Buffer b; ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L ++ BIGNUM *r, *s; ++#endif + + if (key == NULL || key->type != KEY_DSA || key->dsa == NULL) { + pamsshagentauth_logerror("ssh_dss_verify: no DSA key"); +@@ -157,6 +176,7 @@ ssh_dss_verify(const Key *key, const u_char *signature, u_int signaturelen, + /* parse signature */ + if ((sig = DSA_SIG_new()) == NULL) + pamsshagentauth_fatal("ssh_dss_verify: DSA_SIG_new failed"); ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + if ((sig->r = BN_new()) == NULL) + pamsshagentauth_fatal("ssh_dss_verify: BN_new failed"); + if ((sig->s = BN_new()) == NULL) +@@ -164,18 +184,33 @@ ssh_dss_verify(const Key *key, const u_char *signature, u_int signaturelen, + if ((BN_bin2bn(sigblob, INTBLOB_LEN, sig->r) == NULL) || + (BN_bin2bn(sigblob+ INTBLOB_LEN, INTBLOB_LEN, sig->s) == NULL)) + pamsshagentauth_fatal("ssh_dss_verify: BN_bin2bn failed"); ++#else ++ if ((r = BN_new()) == NULL) ++ pamsshagentauth_fatal("ssh_dss_verify: BN_new failed"); ++ if ((s = BN_new()) == NULL) ++ pamsshagentauth_fatal("ssh_dss_verify: BN_new failed"); ++ if (DSA_SIG_set0(sig, r, s) != 1) ++ pamsshagentauth_fatal("ssh_dss_verify: DSA_SIG_set0 failed"); ++ if ((BN_bin2bn(sigblob, INTBLOB_LEN, r) == NULL) || ++ (BN_bin2bn(sigblob+ INTBLOB_LEN, INTBLOB_LEN, s) == NULL)) ++ pamsshagentauth_fatal("ssh_dss_verify: BN_bin2bn failed"); ++ if (DSA_SIG_set0(sig, r, s) != 1) ++ pamsshagentauth_fatal("ssh_dss_verify: DSA_SIG_set0 failed"); ++#endif + + /* clean up */ + memset(sigblob, 0, len); + pamsshagentauth_xfree(sigblob); + + /* sha1 the data */ +- EVP_DigestInit(&md, evp_md); +- EVP_DigestUpdate(&md, data, datalen); +- EVP_DigestFinal(&md, digest, &dlen); ++ md = EVP_MD_CTX_create(); ++ EVP_DigestInit(md, evp_md); ++ EVP_DigestUpdate(md, data, datalen); ++ EVP_DigestFinal(md, digest, &dlen); + + ret = DSA_do_verify(digest, dlen, sig, key->dsa); + memset(digest, 'd', sizeof(digest)); ++ EVP_MD_CTX_destroy(md); + + DSA_SIG_free(sig); + +diff --git a/ssh-ecdsa.c b/ssh-ecdsa.c +index efa0f3d..c213959 100644 +--- a/ssh-ecdsa.c ++++ b/ssh-ecdsa.c +@@ -41,22 +41,27 @@ ssh_ecdsa_sign(const Key *key, u_char **sigp, u_int *lenp, + { + ECDSA_SIG *sig; + const EVP_MD *evp_md = evp_from_key(key); +- EVP_MD_CTX md; ++ EVP_MD_CTX *md; + u_char digest[EVP_MAX_MD_SIZE]; + u_int len, dlen; + Buffer b, bb; ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L ++ BIGNUM *r, *s; ++#endif + + if (key == NULL || key->type != KEY_ECDSA || key->ecdsa == NULL) { + pamsshagentauth_logerror("ssh_ecdsa_sign: no ECDSA key"); + return -1; + } + +- EVP_DigestInit(&md, evp_md); +- EVP_DigestUpdate(&md, data, datalen); +- EVP_DigestFinal(&md, digest, &dlen); ++ md = EVP_MD_CTX_create(); ++ EVP_DigestInit(md, evp_md); ++ EVP_DigestUpdate(md, data, datalen); ++ EVP_DigestFinal(md, digest, &dlen); + + sig = ECDSA_do_sign(digest, dlen, key->ecdsa); + memset(digest, 'd', sizeof(digest)); ++ EVP_MD_CTX_destroy(md); + + if (sig == NULL) { + pamsshagentauth_logerror("ssh_ecdsa_sign: sign failed"); +@@ -64,8 +69,14 @@ ssh_ecdsa_sign(const Key *key, u_char **sigp, u_int *lenp, + } + + pamsshagentauth_buffer_init(&bb); ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + if (pamsshagentauth_buffer_get_bignum2_ret(&bb, sig->r) == -1 || + pamsshagentauth_buffer_get_bignum2_ret(&bb, sig->s) == -1) { ++#else ++ DSA_SIG_get0(sig, &r, &s); ++ if (pamsshagentauth_buffer_get_bignum2_ret(&bb, r) == -1 || ++ pamsshagentauth_buffer_get_bignum2_ret(&bb, s) == -1) { ++#endif + pamsshagentauth_logerror("couldn't serialize signature"); + ECDSA_SIG_free(sig); + return -1; +@@ -94,11 +105,14 @@ ssh_ecdsa_verify(const Key *key, const u_char *signature, u_int signaturelen, + { + ECDSA_SIG *sig; + const EVP_MD *evp_md = evp_from_key(key); +- EVP_MD_CTX md; ++ EVP_MD_CTX *md; + u_char digest[EVP_MAX_MD_SIZE], *sigblob; + u_int len, dlen; + int rlen, ret; + Buffer b; ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L ++ BIGNUM *r, *s; ++#endif + + if (key == NULL || key->type != KEY_ECDSA || key->ecdsa == NULL) { + pamsshagentauth_logerror("ssh_ecdsa_sign: no ECDSA key"); +@@ -127,8 +141,14 @@ ssh_ecdsa_verify(const Key *key, const u_char *signature, u_int signaturelen, + + pamsshagentauth_buffer_init(&b); + pamsshagentauth_buffer_append(&b, sigblob, len); ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + if ((pamsshagentauth_buffer_get_bignum2_ret(&b, sig->r) == -1) || + (pamsshagentauth_buffer_get_bignum2_ret(&b, sig->s) == -1)) ++#else ++ DSA_SIG_get0(sig, &r, &s); ++ if ((pamsshagentauth_buffer_get_bignum2_ret(&b, r) == -1) || ++ (pamsshagentauth_buffer_get_bignum2_ret(&b, s) == -1)) ++#endif + pamsshagentauth_fatal("ssh_ecdsa_verify:" + "pamsshagentauth_buffer_get_bignum2_ret failed"); + +@@ -137,16 +157,18 @@ ssh_ecdsa_verify(const Key *key, const u_char *signature, u_int signaturelen, + pamsshagentauth_xfree(sigblob); + + /* sha256 the data */ +- EVP_DigestInit(&md, evp_md); +- EVP_DigestUpdate(&md, data, datalen); +- EVP_DigestFinal(&md, digest, &dlen); ++ md = EVP_MD_CTX_create(); ++ EVP_DigestInit(md, evp_md); ++ EVP_DigestUpdate(md, data, datalen); ++ EVP_DigestFinal(md, digest, &dlen); + + ret = ECDSA_do_verify(digest, dlen, sig, key->ecdsa); + memset(digest, 'd', sizeof(digest)); ++ EVP_MD_CTX_destroy(md); + + ECDSA_SIG_free(sig); + + pamsshagentauth_verbose("ssh_ecdsa_verify: signature %s", + ret == 1 ? "correct" : ret == 0 ? "incorrect" : "error"); + return ret; +-} +\ No newline at end of file ++} +diff --git a/ssh-rsa.c b/ssh-rsa.c +index d05844b..9d74eb6 100644 +--- a/ssh-rsa.c ++++ b/ssh-rsa.c +@@ -40,7 +40,7 @@ ssh_rsa_sign(const Key *key, u_char **sigp, u_int *lenp, + const u_char *data, u_int datalen) + { + const EVP_MD *evp_md; +- EVP_MD_CTX md; ++ EVP_MD_CTX *md; + u_char digest[EVP_MAX_MD_SIZE], *sig; + u_int slen, dlen, len; + int ok, nid; +@@ -55,6 +55,7 @@ ssh_rsa_sign(const Key *key, u_char **sigp, u_int *lenp, + pamsshagentauth_logerror("ssh_rsa_sign: EVP_get_digestbynid %d failed", nid); + return -1; + } ++ md = EVP_MD_CTX_create(); + EVP_DigestInit(&md, evp_md); + EVP_DigestUpdate(&md, data, datalen); + EVP_DigestFinal(&md, digest, &dlen); +@@ -64,6 +65,7 @@ ssh_rsa_sign(const Key *key, u_char **sigp, u_int *lenp, + + ok = RSA_sign(nid, digest, dlen, sig, &len, key->rsa); + memset(digest, 'd', sizeof(digest)); ++ EVP_MD_CTX_destroy(md); + + if (ok != 1) { + int ecode = ERR_get_error(); +@@ -107,7 +109,7 @@ ssh_rsa_verify(const Key *key, const u_char *signature, u_int signaturelen, + { + Buffer b; + const EVP_MD *evp_md; +- EVP_MD_CTX md; ++ EVP_MD_CTX *md; + char *ktype; + u_char digest[EVP_MAX_MD_SIZE], *sigblob; + u_int len, dlen, modlen; +@@ -117,9 +119,17 @@ ssh_rsa_verify(const Key *key, const u_char *signature, u_int signaturelen, + pamsshagentauth_logerror("ssh_rsa_verify: no RSA key"); + return -1; + } ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + if (BN_num_bits(key->rsa->n) < SSH_RSA_MINIMUM_MODULUS_SIZE) { ++#else ++ if (BN_num_bits(RSA_get0_n(key->rsa)) < SSH_RSA_MINIMUM_MODULUS_SIZE) { ++#endif + pamsshagentauth_logerror("ssh_rsa_verify: RSA modulus too small: %d < minimum %d bits", ++#if OPENSSL_VERSION_NUMBER < 0x10100000L + BN_num_bits(key->rsa->n), SSH_RSA_MINIMUM_MODULUS_SIZE); ++#else ++ BN_num_bits(RSA_get0_n(key->rsa)), SSH_RSA_MINIMUM_MODULUS_SIZE); ++#endif + return -1; + } + pamsshagentauth_buffer_init(&b); +@@ -161,12 +171,14 @@ ssh_rsa_verify(const Key *key, const u_char *signature, u_int signaturelen, + pamsshagentauth_xfree(sigblob); + return -1; + } +- EVP_DigestInit(&md, evp_md); +- EVP_DigestUpdate(&md, data, datalen); +- EVP_DigestFinal(&md, digest, &dlen); ++ md = EVP_MD_CTX_create(); ++ EVP_DigestInit(md, evp_md); ++ EVP_DigestUpdate(md, data, datalen); ++ EVP_DigestFinal(md, digest, &dlen); + + ret = openssh_RSA_verify(nid, digest, dlen, sigblob, len, key->rsa); + memset(digest, 'd', sizeof(digest)); ++ EVP_MD_CTX_destroy(md); + memset(sigblob, 's', len); + pamsshagentauth_xfree(sigblob); + pamsshagentauth_verbose("ssh_rsa_verify: signature %scorrect", (ret==0) ? "in" : ""); diff --git a/meta-openembedded/meta-oe/recipes-extended/pam/pam-ssh-agent-auth/0002-Check-against-the-correct-OPENSSL_VERSION_NUMBER.patch b/meta-openembedded/meta-oe/recipes-extended/pam/pam-ssh-agent-auth/0002-Check-against-the-correct-OPENSSL_VERSION_NUMBER.patch new file mode 100644 index 0000000000..b03b43fb1d --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-extended/pam/pam-ssh-agent-auth/0002-Check-against-the-correct-OPENSSL_VERSION_NUMBER.patch @@ -0,0 +1,365 @@ +From b2ee29809a54e16567323d8fbac2d652ee58c692 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Fri, 1 Feb 2019 22:45:19 -0800 +Subject: [PATCH] Check against the correct OPENSSL_VERSION_NUMBER + +From: Guido Falsi <mad@madpilot.net> +https://sources.debian.org/src/pam-ssh-agent-auth/0.10.3-3/debian/patches/openssl-1.1.1-2.patch/ + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + authfd.c | 12 ++++++------ + bufbn.c | 2 +- + key.c | 36 ++++++++++++++++++------------------ + ssh-dss.c | 10 +++++----- + ssh-ecdsa.c | 8 ++++---- + ssh-rsa.c | 4 ++-- + 6 files changed, 36 insertions(+), 36 deletions(-) + +diff --git a/authfd.c b/authfd.c +index f91514d..4c6cec8 100644 +--- a/authfd.c ++++ b/authfd.c +@@ -367,7 +367,7 @@ ssh_get_next_identity(AuthenticationConnection *auth, char **comment, int versio + case 1: + key = pamsshagentauth_key_new(KEY_RSA1); + bits = pamsshagentauth_buffer_get_int(&auth->identities); +-#if OPENSSL_VERSION_NUMBER < 0x10100000L ++#if OPENSSL_VERSION_NUMBER < 0x10100005L + pamsshagentauth_buffer_get_bignum(&auth->identities, key->rsa->e); + pamsshagentauth_buffer_get_bignum(&auth->identities, key->rsa->n); + *comment = pamsshagentauth_buffer_get_string(&auth->identities, NULL); +@@ -427,7 +427,7 @@ ssh_decrypt_challenge(AuthenticationConnection *auth, + } + pamsshagentauth_buffer_init(&buffer); + pamsshagentauth_buffer_put_char(&buffer, SSH_AGENTC_RSA_CHALLENGE); +-#if OPENSSL_VERSION_NUMBER < 0x10100000L ++#if OPENSSL_VERSION_NUMBER < 0x10100005L + pamsshagentauth_buffer_put_int(&buffer, BN_num_bits(key->rsa->n)); + pamsshagentauth_buffer_put_bignum(&buffer, key->rsa->e); + pamsshagentauth_buffer_put_bignum(&buffer, key->rsa->n); +@@ -512,7 +512,7 @@ ssh_agent_sign(AuthenticationConnection *auth, + static void + ssh_encode_identity_rsa1(Buffer *b, RSA *key, const char *comment) + { +-#if OPENSSL_VERSION_NUMBER < 0x10100000L ++#if OPENSSL_VERSION_NUMBER < 0x10100005L + pamsshagentauth_buffer_put_int(b, BN_num_bits(key->n)); + pamsshagentauth_buffer_put_bignum(b, key->n); + pamsshagentauth_buffer_put_bignum(b, key->e); +@@ -540,7 +540,7 @@ ssh_encode_identity_ssh2(Buffer *b, Key *key, const char *comment) + pamsshagentauth_buffer_put_cstring(b, key_ssh_name(key)); + switch (key->type) { + case KEY_RSA: +-#if OPENSSL_VERSION_NUMBER < 0x10100000L ++#if OPENSSL_VERSION_NUMBER < 0x10100005L + pamsshagentauth_buffer_put_bignum2(b, key->rsa->n); + pamsshagentauth_buffer_put_bignum2(b, key->rsa->e); + pamsshagentauth_buffer_put_bignum2(b, key->rsa->d); +@@ -557,7 +557,7 @@ ssh_encode_identity_ssh2(Buffer *b, Key *key, const char *comment) + #endif + break; + case KEY_DSA: +-#if OPENSSL_VERSION_NUMBER < 0x10100000L ++#if OPENSSL_VERSION_NUMBER < 0x10100005L + pamsshagentauth_buffer_put_bignum2(b, key->dsa->p); + pamsshagentauth_buffer_put_bignum2(b, key->dsa->q); + pamsshagentauth_buffer_put_bignum2(b, key->dsa->g); +@@ -649,7 +649,7 @@ ssh_remove_identity(AuthenticationConnection *auth, Key *key) + + if (key->type == KEY_RSA1) { + pamsshagentauth_buffer_put_char(&msg, SSH_AGENTC_REMOVE_RSA_IDENTITY); +-#if OPENSSL_VERSION_NUMBER < 0x10100000L ++#if OPENSSL_VERSION_NUMBER < 0x10100005L + pamsshagentauth_buffer_put_int(&msg, BN_num_bits(key->rsa->n)); + pamsshagentauth_buffer_put_bignum(&msg, key->rsa->e); + pamsshagentauth_buffer_put_bignum(&msg, key->rsa->n); +diff --git a/bufbn.c b/bufbn.c +index 4ecedc1..b4754cc 100644 +--- a/bufbn.c ++++ b/bufbn.c +@@ -151,7 +151,7 @@ pamsshagentauth_buffer_put_bignum2_ret(Buffer *buffer, const BIGNUM *value) + pamsshagentauth_buffer_put_int(buffer, 0); + return 0; + } +-#if OPENSSL_VERSION_NUMBER < 0x10100000L ++#if OPENSSL_VERSION_NUMBER < 0x10100005L + if (value->neg) { + #else + if (BN_is_negative(value)) { +diff --git a/key.c b/key.c +index aedbbb5..dcc5fc8 100644 +--- a/key.c ++++ b/key.c +@@ -77,7 +77,7 @@ pamsshagentauth_key_new(int type) + case KEY_RSA: + if ((rsa = RSA_new()) == NULL) + pamsshagentauth_fatal("key_new: RSA_new failed"); +-#if OPENSSL_VERSION_NUMBER < 0x10100000L ++#if OPENSSL_VERSION_NUMBER < 0x10100005L + if ((rsa->n = BN_new()) == NULL) + pamsshagentauth_fatal("key_new: BN_new failed"); + if ((rsa->e = BN_new()) == NULL) +@@ -91,7 +91,7 @@ pamsshagentauth_key_new(int type) + case KEY_DSA: + if ((dsa = DSA_new()) == NULL) + pamsshagentauth_fatal("key_new: DSA_new failed"); +-#if OPENSSL_VERSION_NUMBER < 0x10100000L ++#if OPENSSL_VERSION_NUMBER < 0x10100005L + if ((dsa->p = BN_new()) == NULL) + pamsshagentauth_fatal("key_new: BN_new failed"); + if ((dsa->q = BN_new()) == NULL) +@@ -130,7 +130,7 @@ pamsshagentauth_key_new_private(int type) + switch (k->type) { + case KEY_RSA1: + case KEY_RSA: +-#if OPENSSL_VERSION_NUMBER < 0x10100000L ++#if OPENSSL_VERSION_NUMBER < 0x10100005L + if ((k->rsa->d = BN_new()) == NULL) + pamsshagentauth_fatal("key_new_private: BN_new failed"); + if ((k->rsa->iqmp = BN_new()) == NULL) +@@ -153,7 +153,7 @@ pamsshagentauth_key_new_private(int type) + #endif + break; + case KEY_DSA: +-#if OPENSSL_VERSION_NUMBER < 0x10100000L ++#if OPENSSL_VERSION_NUMBER < 0x10100005L + if ((k->dsa->priv_key = BN_new()) == NULL) + pamsshagentauth_fatal("key_new_private: BN_new failed"); + #else +@@ -162,7 +162,7 @@ pamsshagentauth_key_new_private(int type) + #endif + break; + case KEY_ECDSA: +-#if OPENSSL_VERSION_NUMBER < 0x10100000L ++#if OPENSSL_VERSION_NUMBER < 0x10100005L + if (EC_KEY_set_private_key(k->ecdsa, BN_new()) != 1) + pamsshagentauth_fatal("key_new_private: EC_KEY_set_private_key failed"); + #else +@@ -224,7 +224,7 @@ pamsshagentauth_key_equal(const Key *a, const Key *b) + case KEY_RSA1: + case KEY_RSA: + return a->rsa != NULL && b->rsa != NULL && +-#if OPENSSL_VERSION_NUMBER < 0x10100000L ++#if OPENSSL_VERSION_NUMBER < 0x10100005L + BN_cmp(a->rsa->e, b->rsa->e) == 0 && + BN_cmp(a->rsa->n, b->rsa->n) == 0; + #else +@@ -233,7 +233,7 @@ pamsshagentauth_key_equal(const Key *a, const Key *b) + #endif + case KEY_DSA: + return a->dsa != NULL && b->dsa != NULL && +-#if OPENSSL_VERSION_NUMBER < 0x10100000L ++#if OPENSSL_VERSION_NUMBER < 0x10100005L + BN_cmp(a->dsa->p, b->dsa->p) == 0 && + BN_cmp(a->dsa->q, b->dsa->q) == 0 && + BN_cmp(a->dsa->g, b->dsa->g) == 0 && +@@ -293,7 +293,7 @@ pamsshagentauth_key_fingerprint_raw(const Key *k, enum fp_type dgst_type, + } + switch (k->type) { + case KEY_RSA1: +-#if OPENSSL_VERSION_NUMBER < 0x10100000L ++#if OPENSSL_VERSION_NUMBER < 0x10100005L + nlen = BN_num_bytes(k->rsa->n); + elen = BN_num_bytes(k->rsa->e); + len = nlen + elen; +@@ -510,7 +510,7 @@ pamsshagentauth_key_read(Key *ret, char **cpp) + return -1; + *cpp = cp; + /* Get public exponent, public modulus. */ +-#if OPENSSL_VERSION_NUMBER < 0x10100000L ++#if OPENSSL_VERSION_NUMBER < 0x10100005L + if (!read_bignum(cpp, ret->rsa->e)) + return -1; + if (!read_bignum(cpp, ret->rsa->n)) +@@ -643,7 +643,7 @@ pamsshagentauth_key_write(const Key *key, FILE *f) + + if (key->type == KEY_RSA1 && key->rsa != NULL) { + /* size of modulus 'n' */ +-#if OPENSSL_VERSION_NUMBER < 0x10100000L ++#if OPENSSL_VERSION_NUMBER < 0x10100005L + bits = BN_num_bits(key->rsa->n); + fprintf(f, "%u", bits); + if (write_bignum(f, key->rsa->e) && +@@ -742,7 +742,7 @@ pamsshagentauth_key_size(const Key *k) + { + switch (k->type) { + case KEY_RSA1: +-#if OPENSSL_VERSION_NUMBER < 0x10100000L ++#if OPENSSL_VERSION_NUMBER < 0x10100005L + case KEY_RSA: + return BN_num_bits(k->rsa->n); + case KEY_DSA: +@@ -843,7 +843,7 @@ pamsshagentauth_key_from_private(const Key *k) + switch (k->type) { + case KEY_DSA: + n = pamsshagentauth_key_new(k->type); +-#if OPENSSL_VERSION_NUMBER < 0x10100000L ++#if OPENSSL_VERSION_NUMBER < 0x10100005L + if ((BN_copy(n->dsa->p, k->dsa->p) == NULL) || + (BN_copy(n->dsa->q, k->dsa->q) == NULL) || + (BN_copy(n->dsa->g, k->dsa->g) == NULL) || +@@ -859,7 +859,7 @@ pamsshagentauth_key_from_private(const Key *k) + case KEY_RSA: + case KEY_RSA1: + n = pamsshagentauth_key_new(k->type); +-#if OPENSSL_VERSION_NUMBER < 0x10100000L ++#if OPENSSL_VERSION_NUMBER < 0x10100005L + if ((BN_copy(n->rsa->n, k->rsa->n) == NULL) || + (BN_copy(n->rsa->e, k->rsa->e) == NULL)) + #else +@@ -967,7 +967,7 @@ pamsshagentauth_key_from_blob(const u_char *blob, u_int blen) + switch (type) { + case KEY_RSA: + key = pamsshagentauth_key_new(type); +-#if OPENSSL_VERSION_NUMBER < 0x10100000L ++#if OPENSSL_VERSION_NUMBER < 0x10100005L + if (pamsshagentauth_buffer_get_bignum2_ret(&b, key->rsa->e) == -1 || + pamsshagentauth_buffer_get_bignum2_ret(&b, key->rsa->n) == -1) { + #else +@@ -985,7 +985,7 @@ pamsshagentauth_key_from_blob(const u_char *blob, u_int blen) + break; + case KEY_DSA: + key = pamsshagentauth_key_new(type); +-#if OPENSSL_VERSION_NUMBER < 0x10100000L ++#if OPENSSL_VERSION_NUMBER < 0x10100005L + if (pamsshagentauth_buffer_get_bignum2_ret(&b, key->dsa->p) == -1 || + pamsshagentauth_buffer_get_bignum2_ret(&b, key->dsa->q) == -1 || + pamsshagentauth_buffer_get_bignum2_ret(&b, key->dsa->g) == -1 || +@@ -1113,7 +1113,7 @@ pamsshagentauth_key_to_blob(const Key *key, u_char **blobp, u_int *lenp) + } + pamsshagentauth_buffer_init(&b); + switch (key->type) { +-#if OPENSSL_VERSION_NUMBER < 0x10100000L ++#if OPENSSL_VERSION_NUMBER < 0x10100005L + case KEY_DSA: + pamsshagentauth_buffer_put_cstring(&b, key_ssh_name(key)); + pamsshagentauth_buffer_put_bignum2(&b, key->dsa->p); +@@ -1251,7 +1251,7 @@ pamsshagentauth_key_demote(const Key *k) + case KEY_RSA: + if ((pk->rsa = RSA_new()) == NULL) + pamsshagentauth_fatal("key_demote: RSA_new failed"); +-#if OPENSSL_VERSION_NUMBER < 0x10100000L ++#if OPENSSL_VERSION_NUMBER < 0x10100005L + if ((pk->rsa->e = BN_dup(k->rsa->e)) == NULL) + pamsshagentauth_fatal("key_demote: BN_dup failed"); + if ((pk->rsa->n = BN_dup(k->rsa->n)) == NULL) +@@ -1264,7 +1264,7 @@ pamsshagentauth_key_demote(const Key *k) + case KEY_DSA: + if ((pk->dsa = DSA_new()) == NULL) + pamsshagentauth_fatal("key_demote: DSA_new failed"); +-#if OPENSSL_VERSION_NUMBER < 0x10100000L ++#if OPENSSL_VERSION_NUMBER < 0x10100005L + if ((pk->dsa->p = BN_dup(k->dsa->p)) == NULL) + pamsshagentauth_fatal("key_demote: BN_dup failed"); + if ((pk->dsa->q = BN_dup(k->dsa->q)) == NULL) +diff --git a/ssh-dss.c b/ssh-dss.c +index 1051ae2..9b96274 100644 +--- a/ssh-dss.c ++++ b/ssh-dss.c +@@ -52,7 +52,7 @@ ssh_dss_sign(const Key *key, u_char **sigp, u_int *lenp, + u_char digest[EVP_MAX_MD_SIZE], sigblob[SIGBLOB_LEN]; + u_int rlen, slen, len, dlen; + Buffer b; +-#if OPENSSL_VERSION_NUMBER >= 0x10100000L ++#if OPENSSL_VERSION_NUMBER >= 0x10100005L + const BIGNUM *r, *s; + #endif + +@@ -74,7 +74,7 @@ ssh_dss_sign(const Key *key, u_char **sigp, u_int *lenp, + return -1; + } + +-#if OPENSSL_VERSION_NUMBER < 0x10100000L ++#if OPENSSL_VERSION_NUMBER < 0x10100005L + rlen = BN_num_bytes(sig->r); + slen = BN_num_bytes(sig->s); + #else +@@ -88,7 +88,7 @@ ssh_dss_sign(const Key *key, u_char **sigp, u_int *lenp, + return -1; + } + memset(sigblob, 0, SIGBLOB_LEN); +-#if OPENSSL_VERSION_NUMBER < 0x10100000L ++#if OPENSSL_VERSION_NUMBER < 0x10100005L + BN_bn2bin(sig->r, sigblob+ SIGBLOB_LEN - INTBLOB_LEN - rlen); + BN_bn2bin(sig->s, sigblob+ SIGBLOB_LEN - slen); + #else +@@ -131,7 +131,7 @@ ssh_dss_verify(const Key *key, const u_char *signature, u_int signaturelen, + u_int len, dlen; + int rlen, ret; + Buffer b; +-#if OPENSSL_VERSION_NUMBER >= 0x10100000L ++#if OPENSSL_VERSION_NUMBER >= 0x10100005L + BIGNUM *r, *s; + #endif + +@@ -176,7 +176,7 @@ ssh_dss_verify(const Key *key, const u_char *signature, u_int signaturelen, + /* parse signature */ + if ((sig = DSA_SIG_new()) == NULL) + pamsshagentauth_fatal("ssh_dss_verify: DSA_SIG_new failed"); +-#if OPENSSL_VERSION_NUMBER < 0x10100000L ++#if OPENSSL_VERSION_NUMBER < 0x10100005L + if ((sig->r = BN_new()) == NULL) + pamsshagentauth_fatal("ssh_dss_verify: BN_new failed"); + if ((sig->s = BN_new()) == NULL) +diff --git a/ssh-ecdsa.c b/ssh-ecdsa.c +index c213959..5b13b30 100644 +--- a/ssh-ecdsa.c ++++ b/ssh-ecdsa.c +@@ -45,7 +45,7 @@ ssh_ecdsa_sign(const Key *key, u_char **sigp, u_int *lenp, + u_char digest[EVP_MAX_MD_SIZE]; + u_int len, dlen; + Buffer b, bb; +-#if OPENSSL_VERSION_NUMBER >= 0x10100000L ++#if OPENSSL_VERSION_NUMBER >= 0x10100005L + BIGNUM *r, *s; + #endif + +@@ -69,7 +69,7 @@ ssh_ecdsa_sign(const Key *key, u_char **sigp, u_int *lenp, + } + + pamsshagentauth_buffer_init(&bb); +-#if OPENSSL_VERSION_NUMBER < 0x10100000L ++#if OPENSSL_VERSION_NUMBER < 0x10100005L + if (pamsshagentauth_buffer_get_bignum2_ret(&bb, sig->r) == -1 || + pamsshagentauth_buffer_get_bignum2_ret(&bb, sig->s) == -1) { + #else +@@ -110,7 +110,7 @@ ssh_ecdsa_verify(const Key *key, const u_char *signature, u_int signaturelen, + u_int len, dlen; + int rlen, ret; + Buffer b; +-#if OPENSSL_VERSION_NUMBER >= 0x10100000L ++#if OPENSSL_VERSION_NUMBER >= 0x10100005L + BIGNUM *r, *s; + #endif + +@@ -141,7 +141,7 @@ ssh_ecdsa_verify(const Key *key, const u_char *signature, u_int signaturelen, + + pamsshagentauth_buffer_init(&b); + pamsshagentauth_buffer_append(&b, sigblob, len); +-#if OPENSSL_VERSION_NUMBER < 0x10100000L ++#if OPENSSL_VERSION_NUMBER < 0x10100005L + if ((pamsshagentauth_buffer_get_bignum2_ret(&b, sig->r) == -1) || + (pamsshagentauth_buffer_get_bignum2_ret(&b, sig->s) == -1)) + #else +diff --git a/ssh-rsa.c b/ssh-rsa.c +index 9d74eb6..35f2e36 100644 +--- a/ssh-rsa.c ++++ b/ssh-rsa.c +@@ -119,13 +119,13 @@ ssh_rsa_verify(const Key *key, const u_char *signature, u_int signaturelen, + pamsshagentauth_logerror("ssh_rsa_verify: no RSA key"); + return -1; + } +-#if OPENSSL_VERSION_NUMBER < 0x10100000L ++#if OPENSSL_VERSION_NUMBER < 0x10100005L + if (BN_num_bits(key->rsa->n) < SSH_RSA_MINIMUM_MODULUS_SIZE) { + #else + if (BN_num_bits(RSA_get0_n(key->rsa)) < SSH_RSA_MINIMUM_MODULUS_SIZE) { + #endif + pamsshagentauth_logerror("ssh_rsa_verify: RSA modulus too small: %d < minimum %d bits", +-#if OPENSSL_VERSION_NUMBER < 0x10100000L ++#if OPENSSL_VERSION_NUMBER < 0x10100005L + BN_num_bits(key->rsa->n), SSH_RSA_MINIMUM_MODULUS_SIZE); + #else + BN_num_bits(RSA_get0_n(key->rsa)), SSH_RSA_MINIMUM_MODULUS_SIZE); diff --git a/meta-openembedded/meta-oe/recipes-extended/pam/pam-ssh-agent-auth_0.10.3.bb b/meta-openembedded/meta-oe/recipes-extended/pam/pam-ssh-agent-auth_0.10.3.bb index 2a461fc11a..ac7fa4bbf7 100644 --- a/meta-openembedded/meta-oe/recipes-extended/pam/pam-ssh-agent-auth_0.10.3.bb +++ b/meta-openembedded/meta-oe/recipes-extended/pam/pam-ssh-agent-auth_0.10.3.bb @@ -7,11 +7,14 @@ LIC_FILES_CHKSUM = "file://LICENSE.OpenSSL;md5=8ab01146141ded59b75f8ba7811ed05a file://OPENSSH_LICENSE;md5=7ae09218173be1643c998a4b71027f9b \ " -SRC_URI = "http://sourceforge.net/projects/pamsshagentauth/files/pam_ssh_agent_auth/v${PV}/pam_ssh_agent_auth-${PV}.tar.bz2" +SRC_URI = "http://sourceforge.net/projects/pamsshagentauth/files/pam_ssh_agent_auth/v${PV}/pam_ssh_agent_auth-${PV}.tar.bz2 \ + file://0001-Adapt-to-OpenSSL-1.1.1.patch \ + file://0002-Check-against-the-correct-OPENSSL_VERSION_NUMBER.patch \ + " SRC_URI[md5sum] = "8dbe90ab3625e545036333e6f51ccf1d" SRC_URI[sha256sum] = "3c53d358d6eaed1b211239df017c27c6f9970995d14102ae67bae16d4f47a763" -DEPENDS += "libpam openssl10" +DEPENDS += "libpam openssl" inherit distro_features_check REQUIRED_DISTRO_FEATURES = "pam" diff --git a/meta-openembedded/meta-oe/recipes-extended/polkit/polkit-group-rule.inc b/meta-openembedded/meta-oe/recipes-extended/polkit/polkit-group-rule.inc index 40e4005423..06ab106420 100644 --- a/meta-openembedded/meta-oe/recipes-extended/polkit/polkit-group-rule.inc +++ b/meta-openembedded/meta-oe/recipes-extended/polkit/polkit-group-rule.inc @@ -1,6 +1,9 @@ # polkit must prepare polkitd group DEPENDS += "polkit" +inherit distro_features_check +REQUIRED_DISTRO_FEATURES = "polkit" + inherit useradd do_install_prepend() { diff --git a/meta-openembedded/meta-oe/recipes-extended/polkit/polkit/CVE-2019-6133.patch b/meta-openembedded/meta-oe/recipes-extended/polkit/polkit/CVE-2019-6133.patch deleted file mode 100644 index 6fd20dc75e..0000000000 --- a/meta-openembedded/meta-oe/recipes-extended/polkit/polkit/CVE-2019-6133.patch +++ /dev/null @@ -1,190 +0,0 @@ -From 6cc6aafee135ba44ea748250d7d29b562ca190e3 Mon Sep 17 00:00:00 2001 -From: Colin Walters <walters@verbum.org> -Date: Fri, 4 Jan 2019 14:24:48 -0500 -Subject: [PATCH] backend: Compare PolkitUnixProcess uids for temporary - authorizations - -It turns out that the combination of `(pid, start time)` is not -enough to be unique. For temporary authorizations, we can avoid -separate users racing on pid reuse by simply comparing the uid. - -https://bugs.chromium.org/p/project-zero/issues/detail?id=1692 - -And the above original email report is included in full in a new comment. - -Reported-by: Jann Horn <jannh@google.com> - -Closes: https://gitlab.freedesktop.org/polkit/polkit/issues/75 - -CVE: CVE-2019-6133 -Upstream-Status: Backport [https://gitlab.freedesktop.org/polkit/polkit.git] - -Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com> ---- - src/polkit/polkitsubject.c | 2 + - src/polkit/polkitunixprocess.c | 71 ++++++++++++++++++- - .../polkitbackendinteractiveauthority.c | 39 +++++++++- - 3 files changed, 110 insertions(+), 2 deletions(-) - -diff --git a/src/polkit/polkitsubject.c b/src/polkit/polkitsubject.c -index d4c1182..ccabd0a 100644 ---- a/src/polkit/polkitsubject.c -+++ b/src/polkit/polkitsubject.c -@@ -99,6 +99,8 @@ polkit_subject_hash (PolkitSubject *subject) - * @b: A #PolkitSubject. - * - * Checks if @a and @b are equal, ie. represent the same subject. -+ * However, avoid calling polkit_subject_equal() to compare two processes; -+ * for more information see the `PolkitUnixProcess` documentation. - * - * This function can be used in e.g. g_hash_table_new(). - * -diff --git a/src/polkit/polkitunixprocess.c b/src/polkit/polkitunixprocess.c -index b02b258..78d7251 100644 ---- a/src/polkit/polkitunixprocess.c -+++ b/src/polkit/polkitunixprocess.c -@@ -51,7 +51,10 @@ - * @title: PolkitUnixProcess - * @short_description: Unix processs - * -- * An object for representing a UNIX process. -+ * An object for representing a UNIX process. NOTE: This object as -+ * designed is now known broken; a mechanism to exploit a delay in -+ * start time in the Linux kernel was identified. Avoid -+ * calling polkit_subject_equal() to compare two processes. - * - * To uniquely identify processes, both the process id and the start - * time of the process (a monotonic increasing value representing the -@@ -66,6 +69,72 @@ - * polkit_unix_process_new_for_owner() with trusted data. - */ - -+/* See https://gitlab.freedesktop.org/polkit/polkit/issues/75 -+ -+ But quoting the original email in full here to ensure it's preserved: -+ -+ From: Jann Horn <jannh@google.com> -+ Subject: [SECURITY] polkit: temporary auth hijacking via PID reuse and non-atomic fork -+ Date: Wednesday, October 10, 2018 5:34 PM -+ -+When a (non-root) user attempts to e.g. control systemd units in the system -+instance from an active session over DBus, the access is gated by a polkit -+policy that requires "auth_admin_keep" auth. This results in an auth prompt -+being shown to the user, asking the user to confirm the action by entering the -+password of an administrator account. -+ -+After the action has been confirmed, the auth decision for "auth_admin_keep" is -+cached for up to five minutes. Subject to some restrictions, similar actions can -+then be performed in this timespan without requiring re-auth: -+ -+ - The PID of the DBus client requesting the new action must match the PID of -+ the DBus client requesting the old action (based on SO_PEERCRED information -+ forwarded by the DBus daemon). -+ - The "start time" of the client's PID (as seen in /proc/$pid/stat, field 22) -+ must not have changed. The granularity of this timestamp is in the -+ millisecond range. -+ - polkit polls every two seconds whether a process with the expected start time -+ still exists. If not, the temporary auth entry is purged. -+ -+Without the start time check, this would obviously be buggy because an attacker -+could simply wait for the legitimate client to disappear, then create a new -+client with the same PID. -+ -+Unfortunately, the start time check is bypassable because fork() is not atomic. -+Looking at the source code of copy_process() in the kernel: -+ -+ p->start_time = ktime_get_ns(); -+ p->real_start_time = ktime_get_boot_ns(); -+ [...] -+ retval = copy_thread_tls(clone_flags, stack_start, stack_size, p, tls); -+ if (retval) -+ goto bad_fork_cleanup_io; -+ -+ if (pid != &init_struct_pid) { -+ pid = alloc_pid(p->nsproxy->pid_ns_for_children); -+ if (IS_ERR(pid)) { -+ retval = PTR_ERR(pid); -+ goto bad_fork_cleanup_thread; -+ } -+ } -+ -+The ktime_get_boot_ns() call is where the "start time" of the process is -+recorded. The alloc_pid() call is where a free PID is allocated. In between -+these, some time passes; and because the copy_thread_tls() call between them can -+access userspace memory when sys_clone() is invoked through the 32-bit syscall -+entry point, an attacker can even stall the kernel arbitrarily long at this -+point (by supplying a pointer into userspace memory that is associated with a -+userfaultfd or is backed by a custom FUSE filesystem). -+ -+This means that an attacker can immediately call sys_clone() when the victim -+process is created, often resulting in a process that has the exact same start -+time reported in procfs; and then the attacker can delay the alloc_pid() call -+until after the victim process has died and the PID assignment has cycled -+around. This results in an attacker process that polkit can't distinguish from -+the victim process. -+*/ -+ -+ - /** - * PolkitUnixProcess: - * -diff --git a/src/polkitbackend/polkitbackendinteractiveauthority.c b/src/polkitbackend/polkitbackendinteractiveauthority.c -index a1630b9..80e8141 100644 ---- a/src/polkitbackend/polkitbackendinteractiveauthority.c -+++ b/src/polkitbackend/polkitbackendinteractiveauthority.c -@@ -3031,6 +3031,43 @@ temporary_authorization_store_free (TemporaryAuthorizationStore *store) - g_free (store); - } - -+/* See the comment at the top of polkitunixprocess.c */ -+static gboolean -+subject_equal_for_authz (PolkitSubject *a, -+ PolkitSubject *b) -+{ -+ if (!polkit_subject_equal (a, b)) -+ return FALSE; -+ -+ /* Now special case unix processes, as we want to protect against -+ * pid reuse by including the UID. -+ */ -+ if (POLKIT_IS_UNIX_PROCESS (a) && POLKIT_IS_UNIX_PROCESS (b)) { -+ PolkitUnixProcess *ap = (PolkitUnixProcess*)a; -+ int uid_a = polkit_unix_process_get_uid ((PolkitUnixProcess*)a); -+ PolkitUnixProcess *bp = (PolkitUnixProcess*)b; -+ int uid_b = polkit_unix_process_get_uid ((PolkitUnixProcess*)b); -+ -+ if (uid_a != -1 && uid_b != -1) -+ { -+ if (uid_a == uid_b) -+ { -+ return TRUE; -+ } -+ else -+ { -+ g_printerr ("denying slowfork; pid %d uid %d != %d!\n", -+ polkit_unix_process_get_pid (ap), -+ uid_a, uid_b); -+ return FALSE; -+ } -+ } -+ /* Fall through; one of the uids is unset so we can't reliably compare */ -+ } -+ -+ return TRUE; -+} -+ - static gboolean - temporary_authorization_store_has_authorization (TemporaryAuthorizationStore *store, - PolkitSubject *subject, -@@ -3073,7 +3110,7 @@ temporary_authorization_store_has_authorization (TemporaryAuthorizationStore *st - TemporaryAuthorization *authorization = l->data; - - if (strcmp (action_id, authorization->action_id) == 0 && -- polkit_subject_equal (subject_to_use, authorization->subject)) -+ subject_equal_for_authz (subject_to_use, authorization->subject)) - { - ret = TRUE; - if (out_tmp_authz_id != NULL) --- -2.20.1 - diff --git a/meta-openembedded/meta-oe/recipes-extended/polkit/polkit_0.115.bb b/meta-openembedded/meta-oe/recipes-extended/polkit/polkit_0.115.bb index 8d592054f8..13c4b0259a 100644 --- a/meta-openembedded/meta-oe/recipes-extended/polkit/polkit_0.115.bb +++ b/meta-openembedded/meta-oe/recipes-extended/polkit/polkit_0.115.bb @@ -7,7 +7,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=155db86cdbafa7532b41f390409283eb \ DEPENDS = "expat glib-2.0 intltool-native mozjs" -inherit autotools gtk-doc pkgconfig useradd systemd gobject-introspection +inherit autotools gtk-doc pkgconfig useradd systemd gobject-introspection distro_features_check + +REQUIRED_DISTRO_FEATURES = "polkit" PACKAGECONFIG = "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)} \ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', \ @@ -23,7 +25,6 @@ PAM_SRC_URI = "file://polkit-1_pam.patch" SRC_URI = "http://www.freedesktop.org/software/polkit/releases/polkit-${PV}.tar.gz \ file://0001-make-netgroup-support-configurable.patch \ ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)} \ - file://CVE-2019-6133.patch \ " SRC_URI[md5sum] = "f03b055d6ae5fc8eac76838c7d83d082" SRC_URI[sha256sum] = "2f87ecdabfbd415c6306673ceadc59846f059b18ef2fce42bac63fe283f12131" diff --git a/meta-openembedded/meta-oe/recipes-extended/redis/redis_4.0.8.bb b/meta-openembedded/meta-oe/recipes-extended/redis/redis_4.0.12.bb index 80d36d2ba1..af99537f52 100644 --- a/meta-openembedded/meta-oe/recipes-extended/redis/redis_4.0.8.bb +++ b/meta-openembedded/meta-oe/recipes-extended/redis/redis_4.0.12.bb @@ -17,9 +17,10 @@ SRC_URI = "http://download.redis.io/releases/${BP}.tar.gz \ SRC_URI_append_mips = " file://remove-atomics.patch" SRC_URI_append_arm = " file://remove-atomics.patch" +SRC_URI_append_powerpc = " file://remove-atomics.patch" -SRC_URI[md5sum] = "c75b11e4177e153e4dc1d8dd3a6174e4" -SRC_URI[sha256sum] = "ff0c38b8c156319249fec61e5018cf5b5fe63a65b61690bec798f4c998c232ad" +SRC_URI[md5sum] = "48f240fd2d96b1b579300b866398edbc" +SRC_URI[sha256sum] = "6447259d2eed426a949c9c13f8fdb2d91fb66d9dc915dd50db13b87f46d93162" inherit autotools-brokensep update-rc.d systemd useradd diff --git a/meta-openembedded/meta-oe/recipes-extended/rsyslog/librelp/0001-src-tcp.c-fix-jump-misses-init-error.patch b/meta-openembedded/meta-oe/recipes-extended/rsyslog/librelp/0001-src-tcp.c-fix-jump-misses-init-error.patch deleted file mode 100644 index 68b6863460..0000000000 --- a/meta-openembedded/meta-oe/recipes-extended/rsyslog/librelp/0001-src-tcp.c-fix-jump-misses-init-error.patch +++ /dev/null @@ -1,71 +0,0 @@ -From 3e5a0cb440c788e2383e40ab23ac1cf01d96961b Mon Sep 17 00:00:00 2001 -From: Mingli Yu <mingli.yu@windriver.com> -Date: Tue, 24 Jul 2018 01:30:25 -0700 -Subject: [PATCH] src/tcp.c: fix jump-misses-init error - -Fix below jump-misses-init error - -| In file included from ../../git/src/tcp.c:51: -| ../../git/src/tcp.c: In function 'relpTcpConnect': -| ../../git/src/relp.h:220:3: error: jump skips variable initialization [-Werror=jump-misses-init] -| goto finalize_it; \ -| ^~~~ -| ../../git/src/tcp.c:1951:3: note: in expansion of macro 'ABORT_FINALIZE' -| ABORT_FINALIZE(RELP_RET_IO_ERR); -| ^~~~~~~~~~~~~~ -| ../../git/src/tcp.c:2005:1: note: label 'finalize_it' defined here -| finalize_it: -| ^~~~~~~~~~~ -| ../../git/src/tcp.c:1991:6: note: 'r' declared here -| int r = getsockopt(pThis->sock, SOL_SOCKET, SO_ERROR, &so_error, &len); -| ^ -| In file included from ../../git/src/tcp.c:51: -| ../../git/src/relp.h:220:3: error: jump skips variable initialization [-Werror=jump-misses-init] -| goto finalize_it; \ -| ^~~~ -| ../../git/src/tcp.c:1951:3: note: in expansion of macro 'ABORT_FINALIZE' -| ABORT_FINALIZE(RELP_RET_IO_ERR); -| ^~~~~~~~~~~~~~ -| ../../git/src/tcp.c:2005:1: note: label 'finalize_it' defined here -| finalize_it: -| ^~~~~~~~~~~ -| ../../git/src/tcp.c:1989:12: note: 'len' declared here -| socklen_t len = sizeof so_error; -| ^~~ - -Upstream-Status: Submitted[https://github.com/rsyslog/librelp/pull/117] - -Signed-off-by: Mingli Yu <mingli.yu@windriver.com> ---- - src/tcp.c | 7 ++++--- - 1 file changed, 4 insertions(+), 3 deletions(-) - -diff --git a/src/tcp.c b/src/tcp.c -index f35eb84..fb34dc7 100644 ---- a/src/tcp.c -+++ b/src/tcp.c -@@ -1936,6 +1936,9 @@ relpTcpConnect(relpTcp_t *const pThis, - struct addrinfo hints; - struct addrinfo *reslocal = NULL; - struct pollfd pfd; -+ int so_error; -+ socklen_t len = sizeof so_error; -+ int r; - - ENTER_RELPFUNC; - RELPOBJ_assert(pThis, Tcp); -@@ -1985,10 +1988,8 @@ relpTcpConnect(relpTcp_t *const pThis, - ABORT_FINALIZE(RELP_RET_TIMED_OUT); - } - -- int so_error; -- socklen_t len = sizeof so_error; - -- int r = getsockopt(pThis->sock, SOL_SOCKET, SO_ERROR, &so_error, &len); -+ r = getsockopt(pThis->sock, SOL_SOCKET, SO_ERROR, &so_error, &len); - if (r == -1 || so_error != 0) { - pThis->pEngine->dbgprint("socket has an error %d\n", so_error); - ABORT_FINALIZE(RELP_RET_IO_ERR); --- -2.17.1 - diff --git a/meta-openembedded/meta-oe/recipes-extended/rsyslog/librelp/0001-src-tcp.c-increase-the-size-of-szHname.patch b/meta-openembedded/meta-oe/recipes-extended/rsyslog/librelp/0001-src-tcp.c-increase-the-size-of-szHname.patch deleted file mode 100644 index 5a62e1584d..0000000000 --- a/meta-openembedded/meta-oe/recipes-extended/rsyslog/librelp/0001-src-tcp.c-increase-the-size-of-szHname.patch +++ /dev/null @@ -1,53 +0,0 @@ -From d8950ad273d79ec516468289adbd427e681dbc66 Mon Sep 17 00:00:00 2001 -From: Mingli Yu <mingli.yu@windriver.com> -Date: Mon, 30 Jul 2018 01:22:56 -0700 -Subject: [PATCH] src/tcp.c: increase the size of szHname - -Increase the size of szHname to fix below -error: -| ../../git/src/tcp.c: In function 'relpTcpSetRemHost': -| ../../git/src/tcp.c:352:57: error: '%s' directive output may be truncated writing up to 1024 bytes into a region of size 1011 [-Werror=format-truncation=] -| snprintf((char*)szHname, NI_MAXHOST, "[MALICIOUS:IP=%s]", szIP); -| ^~ ~~~~ -| In file included from /poky-build/tmp/work/i586-poky-linux/librelp/1.2.16-r0/recipe-sysroot/usr/include/stdio.h:862, -| from ../../git/src/tcp.c:38: -| /poky-build/tmp/work/i586-poky-linux/librelp/1.2.16-r0/recipe-sysroot/usr/include/bits/stdio2.h:64:10: note: '__builtin___snprintf_chk' output between 16 and 1040 bytes into a destination of size 1025 -| return __builtin___snprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1, -| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -| __bos (__s), __fmt, __va_arg_pack ()); -| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -| cc1: all warnings being treated as errors -| Makefile:536: recipe for target 'librelp_la-tcp.lo' failed - -Upstream-Status: Submitted[https://github.com/rsyslog/librelp/pull/118] - -Signed-off-by: Mingli Yu <mingli.yu@windriver.com> ---- - src/tcp.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/tcp.c b/src/tcp.c -index fb34dc7..2c38b0b 100644 ---- a/src/tcp.c -+++ b/src/tcp.c -@@ -319,7 +319,7 @@ relpTcpSetRemHost(relpTcp_t *const pThis, struct sockaddr *pAddr) - relpEngine_t *pEngine; - int error; - unsigned char szIP[NI_MAXHOST] = ""; -- unsigned char szHname[NI_MAXHOST] = ""; -+ unsigned char szHname[1045] = ""; - struct addrinfo hints, *res; - size_t len; - -@@ -349,7 +349,7 @@ relpTcpSetRemHost(relpTcp_t *const pThis, struct sockaddr *pAddr) - if(getaddrinfo((char*)szHname, NULL, &hints, &res) == 0) { - freeaddrinfo (res); - /* OK, we know we have evil, so let's indicate this to our caller */ -- snprintf((char*)szHname, NI_MAXHOST, "[MALICIOUS:IP=%s]", szIP); -+ snprintf((char*)szHname, sizeof(szHname), "[MALICIOUS:IP=%s]", szIP); - pEngine->dbgprint("Malicious PTR record, IP = \"%s\" HOST = \"%s\"", szIP, szHname); - iRet = RELP_RET_MALICIOUS_HNAME; - } --- -2.17.1 - diff --git a/meta-openembedded/meta-oe/recipes-extended/rsyslog/librelp_1.2.16.bb b/meta-openembedded/meta-oe/recipes-extended/rsyslog/librelp_1.2.16.bb deleted file mode 100644 index 17478efe40..0000000000 --- a/meta-openembedded/meta-oe/recipes-extended/rsyslog/librelp_1.2.16.bb +++ /dev/null @@ -1,18 +0,0 @@ -SUMMARY = "A reliable logging library" -HOMEPAGE = "https://github.com/rsyslog/libfastjson" - -LICENSE = "GPLv3" -LIC_FILES_CHKSUM = "file://COPYING;md5=1fb9c10ed9fd6826757615455ca893a9" - -DEPENDS = "gmp nettle libidn zlib gnutls" - -SRC_URI = "git://github.com/rsyslog/librelp.git;protocol=https \ - file://0001-src-tcp.c-fix-jump-misses-init-error.patch \ - file://0001-src-tcp.c-increase-the-size-of-szHname.patch \ -" - -SRCREV = "5e849ff060be0c7dce972e194c54fdacfee0adc2" - -S = "${WORKDIR}/git" - -inherit autotools pkgconfig diff --git a/meta-openembedded/meta-oe/recipes-extended/rsyslog/librelp_1.4.0.bb b/meta-openembedded/meta-oe/recipes-extended/rsyslog/librelp_1.4.0.bb new file mode 100644 index 0000000000..9e57dd520d --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-extended/rsyslog/librelp_1.4.0.bb @@ -0,0 +1,16 @@ +SUMMARY = "A reliable logging library" +HOMEPAGE = "https://github.com/rsyslog/librelp" + +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=1fb9c10ed9fd6826757615455ca893a9" + +DEPENDS = "gmp nettle libidn zlib gnutls openssl" + +SRC_URI = "git://github.com/rsyslog/librelp.git;protocol=https \ +" + +SRCREV = "e96443dda3c080fa991decec26bc4ac98d24b9a2" + +S = "${WORKDIR}/git" + +inherit autotools pkgconfig diff --git a/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/rsyslog-fix-ptest-not-finish.patch b/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/rsyslog-fix-ptest-not-finish.patch deleted file mode 100644 index a248f75e5b..0000000000 --- a/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog/rsyslog-fix-ptest-not-finish.patch +++ /dev/null @@ -1,118 +0,0 @@ -From 07ad2a1905089b9124623324a9969e4522317110 Mon Sep 17 00:00:00 2001 -From: Jackie Huang <jackie.huang@windriver.com> -Date: Fri, 12 Sep 2014 03:41:11 -0400 -Subject: [PATCH] rsyslog: update configure to fix ptest - -$MaxMessageSize doesn't work if before $IncludeConfig diag-common.conf, then -test cases fall into infinite loop with error message: - -8062.511110729:4902c480: error: message received is larger than max msg size, we split it -8062.511152265:4902c480: discarding zero-sized message - -Update configure to fix it. - -Upstream-Status: Pending - -Signed-off-by: Kai Kang <kai.kang@windriver.com> - ---- - tests/testsuites/complex1.conf | 2 +- - tests/testsuites/gzipwr_large.conf | 2 +- - tests/testsuites/gzipwr_large_dynfile.conf | 2 +- - tests/testsuites/imptcp_conndrop.conf | 2 +- - tests/testsuites/imptcp_large.conf | 2 +- - tests/testsuites/imtcp_conndrop.conf | 2 +- - tests/testsuites/wr_large.conf | 2 +- - 7 files changed, 7 insertions(+), 7 deletions(-) - -diff --git a/tests/testsuites/complex1.conf b/tests/testsuites/complex1.conf -index 9b6a9f3..e00caa4 100644 ---- a/tests/testsuites/complex1.conf -+++ b/tests/testsuites/complex1.conf -@@ -1,7 +1,7 @@ - # complex test case with multiple actions in gzip mode - # rgerhards, 2009-05-22 --$MaxMessageSize 10k - $IncludeConfig diag-common.conf -+$MaxMessageSize 10k - - $MainMsgQueueTimeoutEnqueue 5000 - -diff --git a/tests/testsuites/gzipwr_large.conf b/tests/testsuites/gzipwr_large.conf -index 54ad3bb..e8247a9 100644 ---- a/tests/testsuites/gzipwr_large.conf -+++ b/tests/testsuites/gzipwr_large.conf -@@ -1,7 +1,7 @@ - # simple async writing test - # rgerhards, 2010-03-09 --$MaxMessageSize 10k - $IncludeConfig diag-common.conf -+$MaxMessageSize 10k - - $ModLoad ../plugins/imtcp/.libs/imtcp - $MainMsgQueueTimeoutShutdown 10000 -diff --git a/tests/testsuites/gzipwr_large_dynfile.conf b/tests/testsuites/gzipwr_large_dynfile.conf -index 3a1b255..297cb70 100644 ---- a/tests/testsuites/gzipwr_large_dynfile.conf -+++ b/tests/testsuites/gzipwr_large_dynfile.conf -@@ -1,7 +1,7 @@ - # simple async writing test - # rgerhards, 2010-03-09 --$MaxMessageSize 10k - $IncludeConfig diag-common.conf -+$MaxMessageSize 10k - - $ModLoad ../plugins/imtcp/.libs/imtcp - $MainMsgQueueTimeoutShutdown 10000 -diff --git a/tests/testsuites/imptcp_conndrop.conf b/tests/testsuites/imptcp_conndrop.conf -index 77a5d79..d9a14a8 100644 ---- a/tests/testsuites/imptcp_conndrop.conf -+++ b/tests/testsuites/imptcp_conndrop.conf -@@ -1,7 +1,7 @@ - # simple async writing test - # rgerhards, 2010-03-09 --$MaxMessageSize 10k - $IncludeConfig diag-common.conf -+$MaxMessageSize 10k - - $ModLoad ../plugins/imptcp/.libs/imptcp - $MainMsgQueueTimeoutShutdown 10000 -diff --git a/tests/testsuites/imptcp_large.conf b/tests/testsuites/imptcp_large.conf -index 77a5d79..d9a14a8 100644 ---- a/tests/testsuites/imptcp_large.conf -+++ b/tests/testsuites/imptcp_large.conf -@@ -1,7 +1,7 @@ - # simple async writing test - # rgerhards, 2010-03-09 --$MaxMessageSize 10k - $IncludeConfig diag-common.conf -+$MaxMessageSize 10k - - $ModLoad ../plugins/imptcp/.libs/imptcp - $MainMsgQueueTimeoutShutdown 10000 -diff --git a/tests/testsuites/imtcp_conndrop.conf b/tests/testsuites/imtcp_conndrop.conf -index de41bc4..7844dc7 100644 ---- a/tests/testsuites/imtcp_conndrop.conf -+++ b/tests/testsuites/imtcp_conndrop.conf -@@ -1,7 +1,7 @@ - # simple async writing test - # rgerhards, 2010-03-09 --$MaxMessageSize 10k - $IncludeConfig diag-common.conf -+$MaxMessageSize 10k - - $ModLoad ../plugins/imtcp/.libs/imtcp - $MainMsgQueueTimeoutShutdown 10000 -diff --git a/tests/testsuites/wr_large.conf b/tests/testsuites/wr_large.conf -index b64f132..b0ae264 100644 ---- a/tests/testsuites/wr_large.conf -+++ b/tests/testsuites/wr_large.conf -@@ -1,7 +1,7 @@ - # simple async writing test - # rgerhards, 2010-03-09 --$MaxMessageSize 10k - $IncludeConfig diag-common.conf -+$MaxMessageSize 10k - - $ModLoad ../plugins/imtcp/.libs/imtcp - $MainMsgQueueTimeoutShutdown 10000 diff --git a/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog_8.37.0.bb b/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog_8.1903.0.bb index 1fb4390150..e06141e816 100644 --- a/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog_8.37.0.bb +++ b/meta-openembedded/meta-oe/recipes-extended/rsyslog/rsyslog_8.1903.0.bb @@ -23,15 +23,15 @@ SRC_URI = "http://www.rsyslog.com/download/files/download/rsyslog/${BPN}-${PV}.t file://rsyslog.logrotate \ file://use-pkgconfig-to-check-libgcrypt.patch \ file://run-ptest \ - file://rsyslog-fix-ptest-not-finish.patch \ " SRC_URI_append_libc-musl = " \ file://0001-Include-sys-time-h.patch \ " -SRC_URI[md5sum] = "e0942b4b88a13602a6b6352bf9f05091" -SRC_URI[sha256sum] = "295c289b4c8abd8f8f3fe35a83249b739cedabe82721702b910255f9faf147e7" +SRC_URI[md5sum] = "f0d454c79d4040e3f25fcd12f8f33fe2" +SRC_URI[sha256sum] = "d0d23a493dcec64c7b6807a1bb8ee864ed0f3760c2ff3088008bb661d304056f" + UPSTREAM_CHECK_URI = "https://github.com/rsyslog/rsyslog/releases" UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)" @@ -162,5 +162,8 @@ VALGRIND_mips64n32 = "" VALGRIND_arm = "" VALGRIND_aarch64 = "" VALGRIND_riscv64 = "" -RDEPENDS_${PN}-ptest += "make diffutils gzip bash gawk coreutils procps" +RDEPENDS_${PN}-ptest += "\ + make diffutils gzip bash gawk coreutils procps \ + libgcc python-core python-io \ + " RRECOMMENDS_${PN}-ptest += "${TCLIBC}-dbg ${VALGRIND}" diff --git a/meta-openembedded/meta-oe/recipes-extended/sigrok/libsigrok_0.5.1.bb b/meta-openembedded/meta-oe/recipes-extended/sigrok/libsigrok_0.5.1.bb new file mode 100644 index 0000000000..8152ca7ca3 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-extended/sigrok/libsigrok_0.5.1.bb @@ -0,0 +1,23 @@ +DESCRIPTION = "libsigrok is a shared library written in C, which provides the basic hardware access drivers for logic analyzers and other supported devices, as well as input/output file format support." +HOMEPAGE = "http://sigrok.org/wiki/Main_Page" + +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + +DEPENDS = "glib-2.0 libzip" + +PACKAGECONFIG[serialport] = "--with-libserialport,--without-libserialport,libserialport" +PACKAGECONFIG[ftdi] = "--with-libftdi,--without-libftdi,libftdi" +PACKAGECONFIG[usb] = "--with-libusb,--without-libusb,libusb" +PACKAGECONFIG[cxx] = "--enable-cxx,--disable-cxx,glibmm doxygen-native" + +PACKAGECONFIG ??= "serialport ftdi usb" + +inherit autotools pkgconfig + +SRC_URI = "http://sigrok.org/download/source/libsigrok/libsigrok-${PV}.tar.gz" + +SRC_URI[md5sum] = "a3de9e52a660e51d27a6aca025d204a7" +SRC_URI[sha256sum] = "e40fde7af98d29e922e9d3cbe0a6c0569889153fc31e47b8b1afe4d846292b9c" + +FILES_${PN} += "${datadir}/*" diff --git a/meta-openembedded/meta-oe/recipes-extended/sigrok/libsigrokdecode_0.5.2.bb b/meta-openembedded/meta-oe/recipes-extended/sigrok/libsigrokdecode_0.5.2.bb new file mode 100644 index 0000000000..b8e1e4705d --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-extended/sigrok/libsigrokdecode_0.5.2.bb @@ -0,0 +1,14 @@ +DESCRIPTION = "libsigrokdecode is a shared library written in C, which provides (streaming) protocol decoding functionality." +HOMEPAGE = "http://sigrok.org/wiki/Main_Page" + +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + +DEPENDS = "glib-2.0 python3" + +inherit autotools pkgconfig + +SRC_URI = "http://sigrok.org/download/source/libsigrokdecode/libsigrokdecode-${PV}.tar.gz" + +SRC_URI[md5sum] = "b9033bc7e68bc17fffffd4fdd793f5a1" +SRC_URI[sha256sum] = "e08d9e797c54eccf3144da631b6e5f1498ac531e51520428df537a1da82583f0" diff --git a/meta-openembedded/meta-oe/recipes-extended/sigrok/sigrok-cli_0.7.0.bb b/meta-openembedded/meta-oe/recipes-extended/sigrok/sigrok-cli_0.7.0.bb new file mode 100644 index 0000000000..d31bcd282f --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-extended/sigrok/sigrok-cli_0.7.0.bb @@ -0,0 +1,18 @@ +DESCRIPTION = "sigrok-cli is a command-line frontend for sigrok." +HOMEPAGE = "http://sigrok.org/wiki/Main_Page" + +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + +DEPENDS = "libsigrok" + +PACKAGECONFIG[decode] = "--with-libsigrokdecode,--without-libsigrokdecode,libsigrokdecode" + +PACKAGECONFIG ??= "decode" + +inherit autotools pkgconfig + +SRC_URI = "http://sigrok.org/download/source/sigrok-cli/sigrok-cli-${PV}.tar.gz" + +SRC_URI[md5sum] = "77cb745e2fa239c7bd1ea81e2d67ede9" +SRC_URI[sha256sum] = "5669d968c2de3dfc6adfda76e83789b6ba76368407c832438cef5e7099a65e1c" diff --git a/meta-openembedded/meta-oe/recipes-extended/smartmontools/files/0001-os_linux.cpp-Use-realpath-BSD-POSIX-instead-of-canon.patch b/meta-openembedded/meta-oe/recipes-extended/smartmontools/files/0001-os_linux.cpp-Use-realpath-BSD-POSIX-instead-of-canon.patch deleted file mode 100644 index 91e64d2178..0000000000 --- a/meta-openembedded/meta-oe/recipes-extended/smartmontools/files/0001-os_linux.cpp-Use-realpath-BSD-POSIX-instead-of-canon.patch +++ /dev/null @@ -1,28 +0,0 @@ -From f28aa188e5b0ea85369febe657b8807b8025038b Mon Sep 17 00:00:00 2001 -From: chrfranke <authors@smartmontools.org> -Date: Wed, 8 Nov 2017 06:15:50 +0000 -Subject: [PATCH] os_linux.cpp: Use 'realpath()' (BSD, POSIX) instead of - 'canonicalize_file_name()' (GNU extension). This fixes build on systems with - musl libc (#921). - -git-svn-id: http://svn.code.sf.net/p/smartmontools/code/trunk@4603 4ea69e1a-61f1-4043-bf83-b5c94c648137 - -Upstream-Status: Backport [https://www.smartmontools.org/ticket/921] -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - os_linux.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/os_linux.cpp b/os_linux.cpp -index 134d5bc..935f9c7 100644 ---- a/os_linux.cpp -+++ b/os_linux.cpp -@@ -3176,7 +3176,7 @@ static bool is_hpsa(const char * name) - { - char path[128]; - snprintf(path, sizeof(path), "/sys/block/%s/device", name); -- char * syshostpath = canonicalize_file_name(path); -+ char * syshostpath = realpath(name, (char *)0); - if (!syshostpath) - return false; - diff --git a/meta-openembedded/meta-oe/recipes-extended/smartmontools/smartmontools_6.6.bb b/meta-openembedded/meta-oe/recipes-extended/smartmontools/smartmontools_7.0.bb index c77c10551a..d984566547 100644 --- a/meta-openembedded/meta-oe/recipes-extended/smartmontools/smartmontools_6.6.bb +++ b/meta-openembedded/meta-oe/recipes-extended/smartmontools/smartmontools_7.0.bb @@ -16,15 +16,14 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/smartmontools/smartmontools-${PV}.tar.gz \ file://initd.smartd \ file://smartmontools.default \ file://smartd.service \ - file://0001-os_linux.cpp-Use-realpath-BSD-POSIX-instead-of-canon.patch \ " PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'libcap-ng selinux', d)}" PACKAGECONFIG[libcap-ng] = "--with-libcap-ng=yes,--with-libcap-ng=no,libcap-ng" PACKAGECONFIG[selinux] = "--with-selinux=yes,--with-selinux=no,libselinux" -SRC_URI[md5sum] = "9ae2c6e7131cd2813edcc65cbe5f223f" -SRC_URI[sha256sum] = "51f43d0fb064fccaf823bbe68cf0d317d0895ff895aa353b3339a3b316a53054" +SRC_URI[md5sum] = "b2a80e4789af23d67dfe1e88a997abbf" +SRC_URI[sha256sum] = "e5e1ac2786bc87fdbd6f92d0ee751b799fbb3e1a09c0a6a379f9eb64b3e8f61c" inherit autotools update-rc.d systemd diff --git a/meta-openembedded/meta-oe/recipes-extended/triggerhappy/triggerhappy_0.5.0.bb b/meta-openembedded/meta-oe/recipes-extended/triggerhappy/triggerhappy_0.5.0.bb new file mode 100644 index 0000000000..037ce063e1 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-extended/triggerhappy/triggerhappy_0.5.0.bb @@ -0,0 +1,47 @@ +SUMMARY = "A lightweight hotkey daemon" +HOMEPAGE = "https://github.com/wertarbyte/triggerhappy" + +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + +SRC_URI = "https://github.com/wertarbyte/triggerhappy/archive/debian/0.5.0-1.tar.gz" + +SRC_URI[md5sum] = "77f90a18c775e47c4c5e9e08987ca32f" +SRC_URI[sha256sum] = "9150bafbf7f2de7d57e6cc154676c33da98dc11ac6442e1ca57e5dce82bd4292" + +S = "${WORKDIR}/${PN}-debian-${PV}-1" + +inherit autotools-brokensep pkgconfig update-rc.d systemd + +PACKAGECONFIG = "${@bb.utils.contains('DISTRO_FEATURES','systemd','systemd','',d)}" +PACKAGECONFIG[systemd] = ",,systemd" + +INITSCRIPT_NAME = "triggerhappy" +INITSCRIPT_PARAMS = "defaults" +SYSTEMD_SERVICE_${PN} = "triggerhappy.service triggerhappy.socket" + +FILES_${PN} = "\ +${sbindir}/thd \ +${sbindir}/th-cmd \ +${sysconfdir}/triggerhappy/triggers.d \ +${nonarch_base_libdir}/udev/rules.d/80-triggerhappy.rules \ +${sysconfdir}/init.d/triggerhappy \ +${systemd_unitdir}/system \ +" +CONFFILES_${PN} = "${sysconfdir}/udev/rules.d/80-triggerhappy.rules" + +do_install_append() { + install -d ${D}${sysconfdir}/triggerhappy/triggers.d + + install -d ${D}${nonarch_base_libdir}/udev/rules.d + install -m 0644 ${S}/udev/triggerhappy-udev.rules ${D}${nonarch_base_libdir}/udev/rules.d/80-triggerhappy.rules + + install -d ${D}${sysconfdir}/init.d + install -m 0755 ${S}/debian/init.d ${D}${sysconfdir}/init.d/triggerhappy + + if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then + install -d ${D}/${systemd_unitdir}/system + install -m 0644 ${S}/systemd/triggerhappy.socket ${D}${systemd_unitdir}/system + install -m 0644 ${S}/systemd/triggerhappy.service ${D}${systemd_unitdir}/system + fi +} diff --git a/meta-openembedded/meta-oe/recipes-extended/upm/upm/0001-CMakeLists.txt-Use-SWIG_SUPPORT_FILES-to-find-the-li.patch b/meta-openembedded/meta-oe/recipes-extended/upm/upm/0001-CMakeLists.txt-Use-SWIG_SUPPORT_FILES-to-find-the-li.patch new file mode 100644 index 0000000000..4b9a195e02 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-extended/upm/upm/0001-CMakeLists.txt-Use-SWIG_SUPPORT_FILES-to-find-the-li.patch @@ -0,0 +1,38 @@ +From 3707f467f9a26a7df3d41385023b43c3d08911d2 Mon Sep 17 00:00:00 2001 +From: Manjukumar Matha <manjukumar.harthikote-matha@xilinx.com> +Date: Tue, 12 Feb 2019 17:46:52 -0800 +Subject: [PATCH][v3] CMakeLists.txt: Use SWIG_SUPPORT_FILES to find the list + of generated files for cmake version 3.12 or higher + +Use SWIG_SUPPORT_FILES to find the list of python files generated by +CMake Swig module and install those files. This should be applicable to +cmake version 3.12 or higher + +Signed-off-by: Manjukumar Matha <manjukumar.harthikote-matha@xilinx.com> +--- + src/CMakeLists.txt | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index e19cda2..b565814 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -337,8 +337,14 @@ macro(_upm_swig_python) + OUTPUT_NAME _pyupm_${libname} + LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_PYTHON_BINARY_DIR}) + ++ if (CMAKE_VERSION VERSION_LESS "3.12") ++ set(support_files ${swig_extra_generated_files}) ++ else() ++ get_property(support_files TARGET _${python_wrapper_name} PROPERTY SWIG_SUPPORT_FILES) ++ endif() ++ + # Install .py's to python packages directory/upm +- install (FILES ${swig_extra_generated_files} ++ install (FILES ${support_files} + DESTINATION ${PYTHON_PACKAGES_PATH}/upm + COMPONENT ${CMAKE_PROJECT_NAME}-python${PYTHON_VERSION_MAJOR}) + +-- +2.7.4 + diff --git a/meta-openembedded/meta-oe/recipes-extended/upm/upm_git.bb b/meta-openembedded/meta-oe/recipes-extended/upm/upm_git.bb index babe5f4893..8854a33bcb 100644 --- a/meta-openembedded/meta-oe/recipes-extended/upm/upm_git.bb +++ b/meta-openembedded/meta-oe/recipes-extended/upm/upm_git.bb @@ -13,6 +13,7 @@ PV = "1.6.0-git${SRCPV}" SRC_URI = "git://github.com/intel-iot-devkit/${BPN}.git;protocol=http \ file://0001-Replace-strncpy-with-memcpy.patch \ file://0001-include-sys-types.h-for-uint-definition.patch \ + file://0001-CMakeLists.txt-Use-SWIG_SUPPORT_FILES-to-find-the-li.patch \ " S = "${WORKDIR}/git" @@ -20,7 +21,7 @@ S = "${WORKDIR}/git" # Depends on mraa which only supports x86 and ARM for now COMPATIBLE_HOST = "(x86_64.*|i.86.*|aarch64.*|arm.*)-linux" -inherit distutils3-base cmake +inherit distutils3-base cmake pkgconfig # override this in local.conf to get needed bindings. # BINDINGS_pn-upm="python" diff --git a/meta-openembedded/meta-oe/recipes-extended/volume_key/volume-key_0.3.11.bb b/meta-openembedded/meta-oe/recipes-extended/volume_key/volume-key_0.3.12.bb index c41b20c45b..398ca5c21b 100644 --- a/meta-openembedded/meta-oe/recipes-extended/volume_key/volume-key_0.3.11.bb +++ b/meta-openembedded/meta-oe/recipes-extended/volume_key/volume-key_0.3.12.bb @@ -10,8 +10,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" SRC_URI = "https://releases.pagure.org/volume_key/volume_key-${PV}.tar.xz \ " -SRC_URI[md5sum] = "30df56c7743eb7c965293b3d61194232" -SRC_URI[sha256sum] = "e6b279c25ae477b555f938db2e41818f90c8cde942b0eec92f70b6c772095f6d" +SRC_URI[md5sum] = "200591290173c3ea71528411838f9080" +SRC_URI[sha256sum] = "6ca3748fc1dad22c450bbf6601d4e706cb11c5e662d11bb4aeb473a9cd77309b" SRCNAME = "volume_key" S = "${WORKDIR}/${SRCNAME}-${PV}" @@ -27,6 +27,10 @@ DEPENDS += " \ swig-native \ " +PACKAGECONFIG ??= "python3" +PACKAGECONFIG[python] = "--with-python,--without-python,python,python" +PACKAGECONFIG[python3] = "--with-python3,--without-python3,python3,python3" + RDEPENDS_python3-${PN} += "${PN}" PACKAGES += "python3-${PN}" diff --git a/meta-openembedded/meta-oe/recipes-gnome/atk/atkmm_2.24.2.bb b/meta-openembedded/meta-oe/recipes-gnome/atk/atkmm_2.28.0.bb index 307774b37e..63f4f09ba9 100644 --- a/meta-openembedded/meta-oe/recipes-gnome/atk/atkmm_2.24.2.bb +++ b/meta-openembedded/meta-oe/recipes-gnome/atk/atkmm_2.28.0.bb @@ -11,8 +11,8 @@ inherit distro_features_check gnome autotools pkgconfig REQUIRED_DISTRO_FEATURES = "x11" -SRC_URI[archive.md5sum] = "d53b60b0f1be597e86070954a49cf0c3" -SRC_URI[archive.sha256sum] = "ff95385759e2af23828d4056356f25376cfabc41e690ac1df055371537e458bd" +SRC_URI[archive.md5sum] = "6194ac577f15567adfa3c923944c6651" +SRC_URI[archive.sha256sum] = "4c4cfc917fd42d3879ce997b463428d6982affa0fb660cafcc0bc2d9afcedd3a" EXTRA_OECONF = " --disable-documentation " diff --git a/meta-openembedded/meta-oe/recipes-gnome/gtk+/gtkmm3_3.22.2.bb b/meta-openembedded/meta-oe/recipes-gnome/gtk+/gtkmm3_3.24.1.bb index 96b54dd2c7..6dd0513376 100644 --- a/meta-openembedded/meta-oe/recipes-gnome/gtk+/gtkmm3_3.22.2.bb +++ b/meta-openembedded/meta-oe/recipes-gnome/gtk+/gtkmm3_3.24.1.bb @@ -14,8 +14,8 @@ inherit gnomebase distro_features_check REQUIRED_DISTRO_FEATURES = "x11" -SRC_URI[archive.md5sum] = "883e9046768b3a5afc8e365988823e77" -SRC_URI[archive.sha256sum] = "91afd98a31519536f5f397c2d79696e3d53143b80b75778521ca7b48cb280090" +SRC_URI[archive.md5sum] = "9524ed4e5c821d13eeda49ba2a78f024" +SRC_URI[archive.sha256sum] = "ddfe42ed2458a20a34de252854bcf4b52d3f0c671c045f56b42aa27c7542d2fd" SRC_URI += "file://0001-do-not-build-demos.patch" EXTRA_OECONF = " --disable-documentation " diff --git a/meta-openembedded/meta-oe/recipes-gnome/libpeas/libpeas_1.22.0.bb b/meta-openembedded/meta-oe/recipes-gnome/libpeas/libpeas_1.22.0.bb new file mode 100644 index 0000000000..c1ead0670b --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-gnome/libpeas/libpeas_1.22.0.bb @@ -0,0 +1,24 @@ +SUMMARY = "libpeas is a gobject-based plugins engine" +HOMEPAGE = "https://wiki.gnome.org/Projects/Libpeas" +LICENSE = "LGPLv2.1+" +LIC_FILES_CHKSUM = "file://COPYING;md5=4b54a1fd55a448865a0b32d41598759d" + +DEPENDS = "gnome-common gtk+3 intltool-native" + +inherit gnomebase gobject-introspection gtk-doc gtk-icon-cache + +SRC_URI[archive.md5sum] = "a20dc55c3f88ad06da9491cfd7de7558" +SRC_URI[archive.sha256sum] = "5b2fc0f53962b25bca131a5ec0139e6fef8e254481b6e777975f7a1d2702a962" + +PACKAGECONFIG[python3] = "--enable-python3,--disable-python3,python3-pygobject" + +export GIR_EXTRA_LIBS_PATH = "${B}/libpeas/.libs" + +PACKAGES =+ "${PN}-demo ${PN}-python3" +FILES_${PN}-demo = " \ + ${bindir}/peas-demo \ + ${libdir}/peas-demo \ +" + +RDEPENDS_${PN}-python3 = "python3-pygobject" +FILES_${PN}-python3 = "${libdir}/libpeas-1.0/loaders/libpython3loader.so" diff --git a/meta-openembedded/meta-oe/recipes-graphics/fontforge/fontforge_20170731.bb b/meta-openembedded/meta-oe/recipes-graphics/fontforge/fontforge_20170731.bb index 947d36eb97..661b5e8c55 100644 --- a/meta-openembedded/meta-oe/recipes-graphics/fontforge/fontforge_20170731.bb +++ b/meta-openembedded/meta-oe/recipes-graphics/fontforge/fontforge_20170731.bb @@ -54,7 +54,7 @@ FILES_${PN} += " \ ${datadir}/icons \ " -FILES_${PN}-python = "${PYTHON_SITEPACKAGES_DIR} ${datadir}/${PN}/python" +FILES_${PN}-python = "${PYTHON_SITEPACKAGES_DIR} ${datadir}/${BPN}/python" RDEPENDS_${PN}-python = "python" # for e.g kde's oxygen-fonts diff --git a/meta-openembedded/meta-oe/recipes-graphics/ftgl/ftgl/0001-Explicit-typecast-to-avoid-implicit-double-to-float-.patch b/meta-openembedded/meta-oe/recipes-graphics/ftgl/ftgl/0001-Explicit-typecast-to-avoid-implicit-double-to-float-.patch new file mode 100644 index 0000000000..385bff8dd1 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-graphics/ftgl/ftgl/0001-Explicit-typecast-to-avoid-implicit-double-to-float-.patch @@ -0,0 +1,38 @@ +From e3bce98a60d6db3b719bbf5d71f732f9b86cb566 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sat, 9 Feb 2019 08:28:09 -0800 +Subject: [PATCH] Explicit typecast to avoid implicit double to float + conversion + +fixes compile errors e.g. + +../../ftgl-2.1.3~rc5/demo/simple.cpp:110:27: error: non-constant-expression cannot be narrowed from type 'double' to + 'float' in initializer list [-Wc++11-narrowing] + (t3 + 2.0) / 3, 0.3 }; + ^~~~~~~~~~~~~~ +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + demo/simple.cpp | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/demo/simple.cpp b/demo/simple.cpp +index 532e862..aba55b4 100644 +--- a/demo/simple.cpp ++++ b/demo/simple.cpp +@@ -105,9 +105,9 @@ static void RenderScene(void) + float t2 = sin(n / 50 + 1); + float t3 = sin(n / 30 + 2); + +- float ambient[4] = { (t1 + 2.0) / 3, +- (t2 + 2.0) / 3, +- (t3 + 2.0) / 3, 0.3 }; ++ float ambient[4] = { float(t1 + 2.0) / 3, ++ float(t2 + 2.0) / 3, ++ float(t3 + 2.0) / 3, 0.3 }; + float diffuse[4] = { 1.0, 0.9, 0.9, 1.0 }; + float specular[4] = { 1.0, 0.7, 0.7, 1.0 }; + float position[4] = { 100.0, 100.0, 0.0, 1.0 }; +-- +2.20.1 + diff --git a/meta-openembedded/meta-oe/recipes-graphics/ftgl/ftgl/0001-use-pkg-config-to-find-freetype2.patch b/meta-openembedded/meta-oe/recipes-graphics/ftgl/ftgl/0001-use-pkg-config-to-find-freetype2.patch new file mode 100644 index 0000000000..cf03cd0f29 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-graphics/ftgl/ftgl/0001-use-pkg-config-to-find-freetype2.patch @@ -0,0 +1,38 @@ +From 8bb183926078b6dd54048fb6820838fe7b6e6163 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com> +Date: Sun, 23 Oct 2016 22:46:43 +0200 +Subject: [PATCH] use pkg-config to find freetype2 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: inappropriate [OE specific] + +Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com> +--- + configure.ac | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 53560ea..b5bb6a3 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -41,8 +41,13 @@ AC_CHECK_FUNCS(strndup) + + AC_PATH_X + +-AC_CHECK_FT2([9.0.3],[], +- [AC_MSG_ERROR([FreeType2 is required to compile this library])]) ++PKG_CHECK_MODULES(FT2, freetype2, ++ CFLAGS="$CFLAGS $FT2_CFLAGS" ++ LIBS="$LIBS $FT2_LIBS", ++ AC_MSG_ERROR([FreeType2 is required to compile this library]) ++) ++AC_SUBST([FT2_CFLAGS]) ++AC_SUBST([FT2_LIBS]) + + AC_PATH_XTRA + +-- +2.5.5 + diff --git a/meta-openembedded/meta-oe/recipes-graphics/ftgl/ftgl/0002-Makefile.am-remove-useless-and-breaking-code.patch b/meta-openembedded/meta-oe/recipes-graphics/ftgl/ftgl/0002-Makefile.am-remove-useless-and-breaking-code.patch new file mode 100644 index 0000000000..830783e204 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-graphics/ftgl/ftgl/0002-Makefile.am-remove-useless-and-breaking-code.patch @@ -0,0 +1,38 @@ +From daabb4110661c4358ec73293d5c0b2106f567c1f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com> +Date: Sun, 23 Oct 2016 23:54:14 +0200 +Subject: [PATCH] Makefile.am: remove useless and breaking code +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com> +--- + Makefile.am | 9 --------- + 1 file changed, 9 deletions(-) + +diff --git a/Makefile.am b/Makefile.am +index 89a8a7f..e582a34 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -24,15 +24,6 @@ EXTRA_DIST = \ + m4 \ + $(NULL) + +-# Print out an informative summary. +-all-local: +- @$(ECHO) "Done." +- @$(ECHO) +- @if test "x$(MAKECMDGOALS)" = "xall-am" -o "x$(.TARGETS)" = "xall-am" -o "x$(MAKECMDGOALS)" = "x" -o "x$(.TARGETS)" = "x" ; then \ +- $(ECHO) "---" ;\ +- $(ECHO) "Run 'make install' to begin installation into $(prefix)" ;\ +- fi +- @$(ECHO) + + # Upload documentation + DOC = docs/html docs/latex/ftgl.pdf +-- +2.5.5 + diff --git a/meta-openembedded/meta-oe/recipes-graphics/ftgl/ftgl_2.1.3-rc5.bb b/meta-openembedded/meta-oe/recipes-graphics/ftgl/ftgl_2.1.3-rc5.bb new file mode 100644 index 0000000000..c5eaf425ce --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-graphics/ftgl/ftgl_2.1.3-rc5.bb @@ -0,0 +1,27 @@ +SUMMARY = "OpenGL frontend to Freetype 2" +HOMEPAGE = "https://sourceforge.net/projects/ftgl/" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=527a83e92c7bf363025380eec05df6e4" + +inherit autotools pkgconfig distro_features_check + +REQUIRED_DISTRO_FEATURES = "opengl" + +DEPENDS += " \ + freetype \ + freeglut \ +" + +SRC_URI = " \ + ${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.bz2 \ + file://0001-use-pkg-config-to-find-freetype2.patch \ + file://0002-Makefile.am-remove-useless-and-breaking-code.patch \ + file://0001-Explicit-typecast-to-avoid-implicit-double-to-float-.patch \ +" +SRC_URI[md5sum] = "c7879018cde844059495b3029b0b6503" +SRC_URI[sha256sum] = "521ff7bd62c459ff5372e269c223e2a6107a6a99a36afdc2ae634a973af70c59" + +S = "${WORKDIR}/ftgl-2.1.3~rc5" + +# undefined reference to symbol 'sin@@GLIBC_2.4' +CFLAGS += "-lm" diff --git a/meta-openembedded/meta-oe/recipes-graphics/glm/files/0001-Make-GLM_ENABLE_EXPERIMENTAL-a-configurable-option.patch b/meta-openembedded/meta-oe/recipes-graphics/glm/files/0001-Make-GLM_ENABLE_EXPERIMENTAL-a-configurable-option.patch deleted file mode 100644 index d69c5af3af..0000000000 --- a/meta-openembedded/meta-oe/recipes-graphics/glm/files/0001-Make-GLM_ENABLE_EXPERIMENTAL-a-configurable-option.patch +++ /dev/null @@ -1,860 +0,0 @@ -From 99a9676a0193f6291d7202d7af72e24580abe565 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com> -Date: Fri, 16 Mar 2018 13:55:29 +0100 -Subject: [PATCH 1/2] Make GLM_ENABLE_EXPERIMENTAL a configurable option -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -It seems that erroring out if GLM_ENABLE_EXPERIMENTAL is not set turns into -packagers nightmare: There are packages around expecting glx headers. E.g -libgltf [1] fails during configure checking for usable headers AND during -compile. Paticularly fixing configure for those packages is time-consuming: -The only way (correct me if I am wrong) is creating a patch adding - -AC_DEFINE([GLM_ENABLE_EXPERIMENTAL], [1], [glm needs this for gtx headers]) - -By adding a configure option 'GLM_ENABLE_EXPERIMENTAL', the decision to use -glm/glx is done at one (and the right) place. - -Signed-off-by: Andreas Müller <schnitzeltony@gmail.com> - -[1] https://gerrit.libreoffice.org/gitweb?p=libgltf.git - -Uptream-Status: Submitted [2] - -[2] https://github.com/g-truc/glm/pull/741 ---- - CMakeLists.txt | 6 ++++++ - glm/CMakeLists.txt | 2 ++ - glm/experimental.hpp.in | 1 + - glm/ext.hpp | 1 + - glm/gtx/associated_min_max.hpp | 1 + - glm/gtx/bit.hpp | 1 + - glm/gtx/closest_point.hpp | 1 + - glm/gtx/color_space.hpp | 1 + - glm/gtx/color_space_YCoCg.hpp | 1 + - glm/gtx/common.hpp | 1 + - glm/gtx/compatibility.hpp | 1 + - glm/gtx/component_wise.hpp | 1 + - glm/gtx/dual_quaternion.hpp | 1 + - glm/gtx/euler_angles.hpp | 1 + - glm/gtx/extend.hpp | 1 + - glm/gtx/extended_min_max.hpp | 1 + - glm/gtx/fast_exponential.hpp | 1 + - glm/gtx/fast_square_root.hpp | 1 + - glm/gtx/fast_trigonometry.hpp | 1 + - glm/gtx/gradient_paint.hpp | 1 + - glm/gtx/handed_coordinate_space.hpp | 1 + - glm/gtx/hash.hpp | 1 + - glm/gtx/integer.hpp | 1 + - glm/gtx/intersect.hpp | 1 + - glm/gtx/io.hpp | 1 + - glm/gtx/log_base.hpp | 1 + - glm/gtx/matrix_cross_product.hpp | 1 + - glm/gtx/matrix_decompose.hpp | 1 + - glm/gtx/matrix_factorisation.hpp | 1 + - glm/gtx/matrix_interpolation.hpp | 1 + - glm/gtx/matrix_major_storage.hpp | 1 + - glm/gtx/matrix_operation.hpp | 1 + - glm/gtx/matrix_query.hpp | 1 + - glm/gtx/matrix_transform_2d.hpp | 1 + - glm/gtx/mixed_product.hpp | 1 + - glm/gtx/norm.hpp | 1 + - glm/gtx/normal.hpp | 1 + - glm/gtx/normalize_dot.hpp | 1 + - glm/gtx/number_precision.hpp | 1 + - glm/gtx/optimum_pow.hpp | 1 + - glm/gtx/orthonormalize.hpp | 1 + - glm/gtx/perpendicular.hpp | 1 + - glm/gtx/polar_coordinates.hpp | 1 + - glm/gtx/projection.hpp | 1 + - glm/gtx/quaternion.hpp | 1 + - glm/gtx/range.hpp | 1 + - glm/gtx/raw_data.hpp | 1 + - glm/gtx/rotate_normalized_axis.hpp | 1 + - glm/gtx/rotate_vector.hpp | 1 + - glm/gtx/scalar_multiplication.hpp | 1 + - glm/gtx/scalar_relational.hpp | 1 + - glm/gtx/spline.hpp | 1 + - glm/gtx/std_based_type.hpp | 1 + - glm/gtx/string_cast.hpp | 1 + - glm/gtx/texture.hpp | 1 + - glm/gtx/transform.hpp | 1 + - glm/gtx/transform2.hpp | 1 + - glm/gtx/type_aligned.hpp | 1 + - glm/gtx/type_trait.hpp | 1 + - glm/gtx/vec_swizzle.hpp | 1 + - glm/gtx/vector_angle.hpp | 1 + - glm/gtx/vector_query.hpp | 1 + - glm/gtx/wrap.hpp | 1 + - 63 files changed, 69 insertions(+) - create mode 100644 glm/experimental.hpp.in - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index e5159b0f..bd4dd654 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -82,6 +82,11 @@ option(GLM_TEST_ENABLE_SIMD_AVX "Enable AVX optimizations" OFF) - option(GLM_TEST_ENABLE_SIMD_AVX2 "Enable AVX2 optimizations" OFF) - option(GLM_TEST_FORCE_PURE "Force 'pure' instructions" OFF) - -+option(GLM_ENABLE_EXPERIMENTAL "Enable experimental GLM_GTX" OFF) -+configure_file(glm/experimental.hpp.in experimental.hpp @ONLY) -+include_directories(${CMAKE_BINARY_DIR}/glm) -+include_directories(${CMAKE_BINARY_DIR}) -+ - if(GLM_TEST_FORCE_PURE) - add_definitions(-DGLM_FORCE_PURE) - -@@ -167,6 +172,7 @@ option(GLM_INSTALL_ENABLE "GLM install" ON) - set(GLM_INSTALL_CONFIGDIR "${CMAKE_INSTALL_LIBDIR}/cmake/glm") - if (GLM_INSTALL_ENABLE) - install(DIRECTORY glm DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) -+ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/experimental.hpp" DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/glm) - endif() - - write_basic_package_version_file("${CMAKE_CURRENT_BINARY_DIR}/glmConfigVersion.cmake" VERSION ${GLM_VERSION} COMPATIBILITY AnyNewerVersion) -diff --git a/glm/CMakeLists.txt b/glm/CMakeLists.txt -index df9c9ee5..dc5db4bc 100644 ---- a/glm/CMakeLists.txt -+++ b/glm/CMakeLists.txt -@@ -43,6 +43,8 @@ source_group("SIMD Files" FILES ${SIMD_INLINE}) - source_group("SIMD Files" FILES ${SIMD_HEADER}) - - include_directories(${CMAKE_CURRENT_SOURCE_DIR}/..) -+# make out-of tree builds find experimental.hpp -+include_directories(${CMAKE_BINARY_DIR}/glm) - - if(GLM_STATIC_LIBRARY_ENABLE OR GLM_DYNAMIC_LIBRARY_ENABLE) - if(GLM_STATIC_LIBRARY_ENABLE) -diff --git a/glm/experimental.hpp.in b/glm/experimental.hpp.in -new file mode 100644 -index 00000000..bfab5138 ---- /dev/null -+++ b/glm/experimental.hpp.in -@@ -0,0 +1 @@ -+#cmakedefine GLM_ENABLE_EXPERIMENTAL -diff --git a/glm/ext.hpp b/glm/ext.hpp -index d085bfd5..a2948447 100644 ---- a/glm/ext.hpp -+++ b/glm/ext.hpp -@@ -39,6 +39,7 @@ - # include "./gtc/type_aligned.hpp" - #endif - -+#include "experimental.hpp" - #ifdef GLM_ENABLE_EXPERIMENTAL - #include "./gtx/associated_min_max.hpp" - #include "./gtx/bit.hpp" -diff --git a/glm/gtx/associated_min_max.hpp b/glm/gtx/associated_min_max.hpp -index 0c9935f3..d00c2bc4 100644 ---- a/glm/gtx/associated_min_max.hpp -+++ b/glm/gtx/associated_min_max.hpp -@@ -16,6 +16,7 @@ - // Dependency: - #include "../glm.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GTX_associated_min_max is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/bit.hpp b/glm/gtx/bit.hpp -index 1447fa00..31957083 100644 ---- a/glm/gtx/bit.hpp -+++ b/glm/gtx/bit.hpp -@@ -15,6 +15,7 @@ - // Dependencies - #include "../gtc/bitfield.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_bit is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/closest_point.hpp b/glm/gtx/closest_point.hpp -index 6859bb96..ebd9fe5a 100644 ---- a/glm/gtx/closest_point.hpp -+++ b/glm/gtx/closest_point.hpp -@@ -15,6 +15,7 @@ - // Dependency: - #include "../glm.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_closest_point is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/color_space.hpp b/glm/gtx/color_space.hpp -index d1e655c3..51416819 100644 ---- a/glm/gtx/color_space.hpp -+++ b/glm/gtx/color_space.hpp -@@ -15,6 +15,7 @@ - // Dependency: - #include "../glm.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_color_space is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/color_space_YCoCg.hpp b/glm/gtx/color_space_YCoCg.hpp -index e82cbd8b..7ae71041 100644 ---- a/glm/gtx/color_space_YCoCg.hpp -+++ b/glm/gtx/color_space_YCoCg.hpp -@@ -15,6 +15,7 @@ - // Dependency: - #include "../glm.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_color_space_YCoCg is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/common.hpp b/glm/gtx/common.hpp -index 8081bff7..57a68a8d 100644 ---- a/glm/gtx/common.hpp -+++ b/glm/gtx/common.hpp -@@ -18,6 +18,7 @@ - #include "../vec4.hpp" - #include "../gtc/vec1.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_common is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/compatibility.hpp b/glm/gtx/compatibility.hpp -index e5b60399..9876669c 100644 ---- a/glm/gtx/compatibility.hpp -+++ b/glm/gtx/compatibility.hpp -@@ -16,6 +16,7 @@ - #include "../glm.hpp" - #include "../gtc/quaternion.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_compatibility is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/component_wise.hpp b/glm/gtx/component_wise.hpp -index 39bab5d5..4fe0e4e2 100644 ---- a/glm/gtx/component_wise.hpp -+++ b/glm/gtx/component_wise.hpp -@@ -18,6 +18,7 @@ - #include "../detail/setup.hpp" - #include "../detail/qualifier.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_component_wise is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/dual_quaternion.hpp b/glm/gtx/dual_quaternion.hpp -index c4343e9d..d59fb459 100644 ---- a/glm/gtx/dual_quaternion.hpp -+++ b/glm/gtx/dual_quaternion.hpp -@@ -20,6 +20,7 @@ - #include "../gtc/constants.hpp" - #include "../gtc/quaternion.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_dual_quaternion is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/euler_angles.hpp b/glm/gtx/euler_angles.hpp -index e66e9281..ad5988c1 100644 ---- a/glm/gtx/euler_angles.hpp -+++ b/glm/gtx/euler_angles.hpp -@@ -15,6 +15,7 @@ - // Dependency: - #include "../glm.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_euler_angles is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/extend.hpp b/glm/gtx/extend.hpp -index eda4e470..cde6db63 100644 ---- a/glm/gtx/extend.hpp -+++ b/glm/gtx/extend.hpp -@@ -15,6 +15,7 @@ - // Dependency: - #include "../glm.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_extend is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/extended_min_max.hpp b/glm/gtx/extended_min_max.hpp -index 3e767b0c..0bcffcc6 100644 ---- a/glm/gtx/extended_min_max.hpp -+++ b/glm/gtx/extended_min_max.hpp -@@ -15,6 +15,7 @@ - // Dependency: - #include "../glm.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_extented_min_max is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/fast_exponential.hpp b/glm/gtx/fast_exponential.hpp -index 2d4918e7..e6d11f0a 100644 ---- a/glm/gtx/fast_exponential.hpp -+++ b/glm/gtx/fast_exponential.hpp -@@ -16,6 +16,7 @@ - // Dependency: - #include "../glm.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_fast_exponential is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/fast_square_root.hpp b/glm/gtx/fast_square_root.hpp -index 1e1ec3cf..f758aeef 100644 ---- a/glm/gtx/fast_square_root.hpp -+++ b/glm/gtx/fast_square_root.hpp -@@ -19,6 +19,7 @@ - #include "../exponential.hpp" - #include "../geometric.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_fast_square_root is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/fast_trigonometry.hpp b/glm/gtx/fast_trigonometry.hpp -index 739065fb..f1332958 100644 ---- a/glm/gtx/fast_trigonometry.hpp -+++ b/glm/gtx/fast_trigonometry.hpp -@@ -15,6 +15,7 @@ - // Dependency: - #include "../gtc/constants.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_fast_trigonometry is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/gradient_paint.hpp b/glm/gtx/gradient_paint.hpp -index 2713cec0..d4703991 100644 ---- a/glm/gtx/gradient_paint.hpp -+++ b/glm/gtx/gradient_paint.hpp -@@ -17,6 +17,7 @@ - #include "../glm.hpp" - #include "../gtx/optimum_pow.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_gradient_paint is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/handed_coordinate_space.hpp b/glm/gtx/handed_coordinate_space.hpp -index 1d0d4104..3a52ddcf 100644 ---- a/glm/gtx/handed_coordinate_space.hpp -+++ b/glm/gtx/handed_coordinate_space.hpp -@@ -15,6 +15,7 @@ - // Dependency: - #include "../glm.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_handed_coordinate_space is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/hash.hpp b/glm/gtx/hash.hpp -index fe8a3efd..92bfc9b2 100644 ---- a/glm/gtx/hash.hpp -+++ b/glm/gtx/hash.hpp -@@ -12,6 +12,7 @@ - - #pragma once - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_hash is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/integer.hpp b/glm/gtx/integer.hpp -index 96637a13..5d1a16c6 100644 ---- a/glm/gtx/integer.hpp -+++ b/glm/gtx/integer.hpp -@@ -16,6 +16,7 @@ - #include "../glm.hpp" - #include "../gtc/integer.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_integer is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/intersect.hpp b/glm/gtx/intersect.hpp -index 61e2226a..4895ba93 100644 ---- a/glm/gtx/intersect.hpp -+++ b/glm/gtx/intersect.hpp -@@ -21,6 +21,7 @@ - #include "../gtx/closest_point.hpp" - #include "../gtx/vector_query.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_closest_point is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/io.hpp b/glm/gtx/io.hpp -index 49a1ec11..ae39cd60 100644 ---- a/glm/gtx/io.hpp -+++ b/glm/gtx/io.hpp -@@ -23,6 +23,7 @@ - #include "../glm.hpp" - #include "../gtx/quaternion.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_io is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/log_base.hpp b/glm/gtx/log_base.hpp -index e873e356..45b8d53c 100644 ---- a/glm/gtx/log_base.hpp -+++ b/glm/gtx/log_base.hpp -@@ -15,6 +15,7 @@ - // Dependency: - #include "../glm.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_log_base is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/matrix_cross_product.hpp b/glm/gtx/matrix_cross_product.hpp -index 967743b8..52d6c173 100644 ---- a/glm/gtx/matrix_cross_product.hpp -+++ b/glm/gtx/matrix_cross_product.hpp -@@ -16,6 +16,7 @@ - // Dependency: - #include "../glm.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_matrix_cross_product is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/matrix_decompose.hpp b/glm/gtx/matrix_decompose.hpp -index b7ec0e83..6793fee2 100644 ---- a/glm/gtx/matrix_decompose.hpp -+++ b/glm/gtx/matrix_decompose.hpp -@@ -20,6 +20,7 @@ - #include "../gtc/quaternion.hpp" - #include "../gtc/matrix_transform.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_matrix_decompose is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/matrix_factorisation.hpp b/glm/gtx/matrix_factorisation.hpp -index e30a7746..79c293be 100644 ---- a/glm/gtx/matrix_factorisation.hpp -+++ b/glm/gtx/matrix_factorisation.hpp -@@ -15,6 +15,7 @@ - // Dependency: - #include "../glm.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_matrix_factorisation is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/matrix_interpolation.hpp b/glm/gtx/matrix_interpolation.hpp -index 89c4596c..799983bb 100644 ---- a/glm/gtx/matrix_interpolation.hpp -+++ b/glm/gtx/matrix_interpolation.hpp -@@ -16,6 +16,7 @@ - // Dependency: - #include "../glm.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_matrix_interpolation is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/matrix_major_storage.hpp b/glm/gtx/matrix_major_storage.hpp -index 7f264a59..e68467cd 100644 ---- a/glm/gtx/matrix_major_storage.hpp -+++ b/glm/gtx/matrix_major_storage.hpp -@@ -16,6 +16,7 @@ - // Dependency: - #include "../glm.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_matrix_major_storage is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/matrix_operation.hpp b/glm/gtx/matrix_operation.hpp -index bce938bb..1e85bb5e 100644 ---- a/glm/gtx/matrix_operation.hpp -+++ b/glm/gtx/matrix_operation.hpp -@@ -15,6 +15,7 @@ - // Dependency: - #include "../glm.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_matrix_operation is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/matrix_query.hpp b/glm/gtx/matrix_query.hpp -index 5df5f52f..eec1eec0 100644 ---- a/glm/gtx/matrix_query.hpp -+++ b/glm/gtx/matrix_query.hpp -@@ -18,6 +18,7 @@ - #include "../gtx/vector_query.hpp" - #include <limits> - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_matrix_query is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/matrix_transform_2d.hpp b/glm/gtx/matrix_transform_2d.hpp -index 239ab9f4..3ca8d2f2 100644 ---- a/glm/gtx/matrix_transform_2d.hpp -+++ b/glm/gtx/matrix_transform_2d.hpp -@@ -17,6 +17,7 @@ - #include "../mat3x3.hpp" - #include "../vec2.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_matrix_transform_2d is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/mixed_product.hpp b/glm/gtx/mixed_product.hpp -index 58562aab..5c7460d5 100644 ---- a/glm/gtx/mixed_product.hpp -+++ b/glm/gtx/mixed_product.hpp -@@ -15,6 +15,7 @@ - // Dependency: - #include "../glm.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_mixed_product is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/norm.hpp b/glm/gtx/norm.hpp -index 46474e07..3cf2c3ea 100644 ---- a/glm/gtx/norm.hpp -+++ b/glm/gtx/norm.hpp -@@ -17,6 +17,7 @@ - #include "../geometric.hpp" - #include "../gtx/quaternion.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_norm is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/normal.hpp b/glm/gtx/normal.hpp -index 15cec9c2..7bb4c096 100644 ---- a/glm/gtx/normal.hpp -+++ b/glm/gtx/normal.hpp -@@ -16,6 +16,7 @@ - // Dependency: - #include "../glm.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_normal is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/normalize_dot.hpp b/glm/gtx/normalize_dot.hpp -index 86048e70..c6604da4 100644 ---- a/glm/gtx/normalize_dot.hpp -+++ b/glm/gtx/normalize_dot.hpp -@@ -16,6 +16,7 @@ - // Dependency: - #include "../gtx/fast_square_root.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_normalize_dot is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/number_precision.hpp b/glm/gtx/number_precision.hpp -index 3732a56c..b48845f7 100644 ---- a/glm/gtx/number_precision.hpp -+++ b/glm/gtx/number_precision.hpp -@@ -18,6 +18,7 @@ - #include "../glm.hpp" - #include "../gtc/type_precision.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_number_precision is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/optimum_pow.hpp b/glm/gtx/optimum_pow.hpp -index eb09f1c3..94a6bbb2 100644 ---- a/glm/gtx/optimum_pow.hpp -+++ b/glm/gtx/optimum_pow.hpp -@@ -15,6 +15,7 @@ - // Dependency: - #include "../glm.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_optimum_pow is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/orthonormalize.hpp b/glm/gtx/orthonormalize.hpp -index 2a684ee4..4ff47e53 100644 ---- a/glm/gtx/orthonormalize.hpp -+++ b/glm/gtx/orthonormalize.hpp -@@ -18,6 +18,7 @@ - #include "../mat3x3.hpp" - #include "../geometric.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_orthonormalize is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/perpendicular.hpp b/glm/gtx/perpendicular.hpp -index 35601ac7..17251ebe 100644 ---- a/glm/gtx/perpendicular.hpp -+++ b/glm/gtx/perpendicular.hpp -@@ -17,6 +17,7 @@ - #include "../glm.hpp" - #include "../gtx/projection.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_perpendicular is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/polar_coordinates.hpp b/glm/gtx/polar_coordinates.hpp -index b8421db4..5125215d 100644 ---- a/glm/gtx/polar_coordinates.hpp -+++ b/glm/gtx/polar_coordinates.hpp -@@ -15,6 +15,7 @@ - // Dependency: - #include "../glm.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_polar_coordinates is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/projection.hpp b/glm/gtx/projection.hpp -index 9a24abf9..4d5bf76f 100644 ---- a/glm/gtx/projection.hpp -+++ b/glm/gtx/projection.hpp -@@ -15,6 +15,7 @@ - // Dependency: - #include "../geometric.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_projection is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/quaternion.hpp b/glm/gtx/quaternion.hpp -index c3d99a5c..808ba0fd 100644 ---- a/glm/gtx/quaternion.hpp -+++ b/glm/gtx/quaternion.hpp -@@ -19,6 +19,7 @@ - #include "../gtc/quaternion.hpp" - #include "../gtx/norm.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_quaternion is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/range.hpp b/glm/gtx/range.hpp -index e0ef46af..03c797c3 100644 ---- a/glm/gtx/range.hpp -+++ b/glm/gtx/range.hpp -@@ -15,6 +15,7 @@ - // Dependencies - #include "../detail/setup.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_range is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/raw_data.hpp b/glm/gtx/raw_data.hpp -index fb34c8cb..0084fec6 100644 ---- a/glm/gtx/raw_data.hpp -+++ b/glm/gtx/raw_data.hpp -@@ -16,6 +16,7 @@ - #include "../detail/setup.hpp" - #include "../detail/type_int.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_raw_data is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/rotate_normalized_axis.hpp b/glm/gtx/rotate_normalized_axis.hpp -index eee90d6e..82612928 100644 ---- a/glm/gtx/rotate_normalized_axis.hpp -+++ b/glm/gtx/rotate_normalized_axis.hpp -@@ -19,6 +19,7 @@ - #include "../gtc/epsilon.hpp" - #include "../gtc/quaternion.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_rotate_normalized_axis is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/rotate_vector.hpp b/glm/gtx/rotate_vector.hpp -index c8ace89e..e954b041 100644 ---- a/glm/gtx/rotate_vector.hpp -+++ b/glm/gtx/rotate_vector.hpp -@@ -17,6 +17,7 @@ - #include "../glm.hpp" - #include "../gtx/transform.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_rotate_vector is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/scalar_multiplication.hpp b/glm/gtx/scalar_multiplication.hpp -index b73edf67..22baa52a 100644 ---- a/glm/gtx/scalar_multiplication.hpp -+++ b/glm/gtx/scalar_multiplication.hpp -@@ -16,6 +16,7 @@ - - #include "../detail/setup.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_scalar_multiplication is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/scalar_relational.hpp b/glm/gtx/scalar_relational.hpp -index 7fc8c1cc..f21f3b2b 100644 ---- a/glm/gtx/scalar_relational.hpp -+++ b/glm/gtx/scalar_relational.hpp -@@ -15,6 +15,7 @@ - // Dependency: - #include "../glm.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_extend is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/spline.hpp b/glm/gtx/spline.hpp -index f96d7e07..76359cfd 100644 ---- a/glm/gtx/spline.hpp -+++ b/glm/gtx/spline.hpp -@@ -16,6 +16,7 @@ - #include "../glm.hpp" - #include "../gtx/optimum_pow.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_spline is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/std_based_type.hpp b/glm/gtx/std_based_type.hpp -index 55a2f074..92532b9e 100644 ---- a/glm/gtx/std_based_type.hpp -+++ b/glm/gtx/std_based_type.hpp -@@ -17,6 +17,7 @@ - #include "../glm.hpp" - #include <cstdlib> - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_std_based_type is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/string_cast.hpp b/glm/gtx/string_cast.hpp -index 4b4e280f..dfcd5085 100644 ---- a/glm/gtx/string_cast.hpp -+++ b/glm/gtx/string_cast.hpp -@@ -24,6 +24,7 @@ - #include <string> - #include <cmath> - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_string_cast is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/texture.hpp b/glm/gtx/texture.hpp -index 312bf398..7af185f6 100644 ---- a/glm/gtx/texture.hpp -+++ b/glm/gtx/texture.hpp -@@ -17,6 +17,7 @@ - #include "../gtc/integer.hpp" - #include "../gtx/component_wise.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_texture is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/transform.hpp b/glm/gtx/transform.hpp -index d23b99ce..5a5d9619 100644 ---- a/glm/gtx/transform.hpp -+++ b/glm/gtx/transform.hpp -@@ -19,6 +19,7 @@ - #include "../glm.hpp" - #include "../gtc/matrix_transform.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_transform is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/transform2.hpp b/glm/gtx/transform2.hpp -index 85f5bea4..5d7c83fc 100644 ---- a/glm/gtx/transform2.hpp -+++ b/glm/gtx/transform2.hpp -@@ -17,6 +17,7 @@ - #include "../glm.hpp" - #include "../gtx/transform.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_transform2 is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/type_aligned.hpp b/glm/gtx/type_aligned.hpp -index 6ff9f276..6ad92fad 100644 ---- a/glm/gtx/type_aligned.hpp -+++ b/glm/gtx/type_aligned.hpp -@@ -18,6 +18,7 @@ - // Dependency: - #include "../gtc/type_precision.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_type_aligned is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/type_trait.hpp b/glm/gtx/type_trait.hpp -index 637bbd19..65519cab 100644 ---- a/glm/gtx/type_trait.hpp -+++ b/glm/gtx/type_trait.hpp -@@ -12,6 +12,7 @@ - - #pragma once - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_type_trait is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/vec_swizzle.hpp b/glm/gtx/vec_swizzle.hpp -index daebac38..13d523dc 100644 ---- a/glm/gtx/vec_swizzle.hpp -+++ b/glm/gtx/vec_swizzle.hpp -@@ -14,6 +14,7 @@ - - #include "../glm.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_vec_swizzle is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/vector_angle.hpp b/glm/gtx/vector_angle.hpp -index 401a47eb..98c9d110 100644 ---- a/glm/gtx/vector_angle.hpp -+++ b/glm/gtx/vector_angle.hpp -@@ -20,6 +20,7 @@ - #include "../gtx/quaternion.hpp" - #include "../gtx/rotate_vector.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_vector_angle is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/vector_query.hpp b/glm/gtx/vector_query.hpp -index 6560eaa5..5ab1ffda 100644 ---- a/glm/gtx/vector_query.hpp -+++ b/glm/gtx/vector_query.hpp -@@ -17,6 +17,7 @@ - #include <cfloat> - #include <limits> - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_vector_query is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif -diff --git a/glm/gtx/wrap.hpp b/glm/gtx/wrap.hpp -index 2c4b55df..5bf26a33 100644 ---- a/glm/gtx/wrap.hpp -+++ b/glm/gtx/wrap.hpp -@@ -16,6 +16,7 @@ - #include "../glm.hpp" - #include "../gtc/vec1.hpp" - -+#include "../experimental.hpp" - #ifndef GLM_ENABLE_EXPERIMENTAL - # error "GLM: GLM_GTX_wrap is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it." - #endif --- -2.14.3 - diff --git a/meta-openembedded/meta-oe/recipes-graphics/glm/files/0002-glm-install-headers-only.patch b/meta-openembedded/meta-oe/recipes-graphics/glm/files/0002-glm-install-headers-only.patch deleted file mode 100644 index 1be3318cc1..0000000000 --- a/meta-openembedded/meta-oe/recipes-graphics/glm/files/0002-glm-install-headers-only.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 7fdd36d7496238e03e43fcc32839f75588116c5d Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com> -Date: Fri, 16 Mar 2018 15:44:48 +0100 -Subject: [PATCH 2/2] glm: install headers only -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Plausibility check in root source path - -$ find glm -type f ! -name '*.hpp' ! -name '*.h' ! -name '*.inl' -glm/detail/glm.cpp -glm/detail/dummy.cpp -glm/experimental.hpp.in -glm/CMakeLists.txt - -Signed-off-by: Andreas Müller <schnitzeltony@gmail.com> - -Uptream-Status: Submitted [1] - -[1] https://github.com/g-truc/glm/pull/741 ---- - CMakeLists.txt | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index bd4dd654..113dd735 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -171,7 +171,12 @@ option(GLM_INSTALL_ENABLE "GLM install" ON) - - set(GLM_INSTALL_CONFIGDIR "${CMAKE_INSTALL_LIBDIR}/cmake/glm") - if (GLM_INSTALL_ENABLE) -- install(DIRECTORY glm DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) -+ install(DIRECTORY glm -+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} -+ FILES_MATCHING -+ PATTERN "*.h" -+ PATTERN "*.hpp" -+ PATTERN "*.inl") - install(FILES "${CMAKE_CURRENT_BINARY_DIR}/experimental.hpp" DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/glm) - endif() - --- -2.14.3 - diff --git a/meta-openembedded/meta-oe/recipes-graphics/glm/glm/0001-glm-Remove-redundant-double-semi-colons.patch b/meta-openembedded/meta-oe/recipes-graphics/glm/glm/0001-glm-Remove-redundant-double-semi-colons.patch new file mode 100644 index 0000000000..6e50f2cf23 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-graphics/glm/glm/0001-glm-Remove-redundant-double-semi-colons.patch @@ -0,0 +1,120 @@ +From 3f6869e392b061f2932f3df155b6cc37e3e7d342 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Fri, 1 Mar 2019 10:56:05 -0800 +Subject: [PATCH] glm: Remove redundant double semi-colons + +Make clang happy +/glm/gtc/../ext/../detail/../simd/common.h:106:45: error: empty expression statement has no effect; remove unnecessary ';' to silence this warning [-Werror,-Wextra-semi-stmt] +| glm_vec4 const or0 = _mm_or_ps(and0, and1);; +| ^ +| 1 error generated. + +Upstream-Status: Submitted [https://github.com/g-truc/glm/pull/874] + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + glm/gtx/associated_min_max.inl | 8 ++++---- + glm/simd/common.h | 2 +- + test/core/core_func_exponential.cpp | 6 +++--- + test/gtx/gtx_easing.cpp | 4 ++-- + 4 files changed, 10 insertions(+), 10 deletions(-) + +diff --git a/glm/gtx/associated_min_max.inl b/glm/gtx/associated_min_max.inl +index 1a459add..5186c471 100644 +--- a/glm/gtx/associated_min_max.inl ++++ b/glm/gtx/associated_min_max.inl +@@ -86,7 +86,7 @@ GLM_FUNC_QUALIFIER U associatedMin + ) + { + T Test1 = min(x, y); +- T Test2 = min(z, w);; ++ T Test2 = min(z, w); + U Result1 = x < y ? a : b; + U Result2 = z < w ? c : d; + U Result = Test1 < Test2 ? Result1 : Result2; +@@ -152,7 +152,7 @@ GLM_FUNC_QUALIFIER vec<L, U, Q> associatedMin + for(length_t i = 0, n = Result.length(); i < n; ++i) + { + T Test1 = min(x[i], y[i]); +- T Test2 = min(z[i], w[i]);; ++ T Test2 = min(z[i], w[i]); + U Result1 = x[i] < y[i] ? a : b; + U Result2 = z[i] < w[i] ? c : d; + Result[i] = Test1 < Test2 ? Result1 : Result2; +@@ -278,7 +278,7 @@ GLM_FUNC_QUALIFIER U associatedMax + ) + { + T Test1 = max(x, y); +- T Test2 = max(z, w);; ++ T Test2 = max(z, w); + U Result1 = x > y ? a : b; + U Result2 = z > w ? c : d; + U Result = Test1 > Test2 ? Result1 : Result2; +@@ -344,7 +344,7 @@ GLM_FUNC_QUALIFIER vec<L, U, Q> associatedMax + for(length_t i = 0, n = Result.length(); i < n; ++i) + { + T Test1 = max(x[i], y[i]); +- T Test2 = max(z[i], w[i]);; ++ T Test2 = max(z[i], w[i]); + U Result1 = x[i] > y[i] ? a : b; + U Result2 = z[i] > w[i] ? c : d; + Result[i] = Test1 > Test2 ? Result1 : Result2; +diff --git a/glm/simd/common.h b/glm/simd/common.h +index d07920a3..9b017cb4 100644 +--- a/glm/simd/common.h ++++ b/glm/simd/common.h +@@ -103,7 +103,7 @@ GLM_FUNC_QUALIFIER glm_vec4 glm_vec4_sign(glm_vec4 x) + glm_vec4 const cmp1 = _mm_cmpgt_ps(x, zro0); + glm_vec4 const and0 = _mm_and_ps(cmp0, _mm_set1_ps(-1.0f)); + glm_vec4 const and1 = _mm_and_ps(cmp1, _mm_set1_ps(1.0f)); +- glm_vec4 const or0 = _mm_or_ps(and0, and1);; ++ glm_vec4 const or0 = _mm_or_ps(and0, and1); + return or0; + } + +diff --git a/test/core/core_func_exponential.cpp b/test/core/core_func_exponential.cpp +index a414a4e9..380cdfb1 100644 +--- a/test/core/core_func_exponential.cpp ++++ b/test/core/core_func_exponential.cpp +@@ -153,13 +153,13 @@ static int test_inversesqrt() + float A = glm::inversesqrt(16.f) * glm::sqrt(16.f); + Error += glm::equal(A, 1.f, 0.01f) ? 0 : 1; + +- glm::vec1 B = glm::inversesqrt(glm::vec1(16.f)) * glm::sqrt(16.f);; ++ glm::vec1 B = glm::inversesqrt(glm::vec1(16.f)) * glm::sqrt(16.f); + Error += glm::all(glm::equal(B, glm::vec1(1.f), 0.01f)) ? 0 : 1; + +- glm::vec2 C = glm::inversesqrt(glm::vec2(16.f)) * glm::sqrt(16.f);; ++ glm::vec2 C = glm::inversesqrt(glm::vec2(16.f)) * glm::sqrt(16.f); + Error += glm::all(glm::equal(C, glm::vec2(1.f), 0.01f)) ? 0 : 1; + +- glm::vec3 D = glm::inversesqrt(glm::vec3(16.f)) * glm::sqrt(16.f);; ++ glm::vec3 D = glm::inversesqrt(glm::vec3(16.f)) * glm::sqrt(16.f); + Error += glm::all(glm::equal(D, glm::vec3(1.f), 0.01f)) ? 0 : 1; + + glm::vec4 E = glm::inversesqrt(glm::vec4(16.f)) * glm::sqrt(16.f); +diff --git a/test/gtx/gtx_easing.cpp b/test/gtx/gtx_easing.cpp +index b3e13997..0e98cd53 100644 +--- a/test/gtx/gtx_easing.cpp ++++ b/test/gtx/gtx_easing.cpp +@@ -34,7 +34,7 @@ namespace + r = glm::circularEaseOut(a); + r = glm::circularEaseInOut(a); + +- r = glm::exponentialEaseIn(a);; ++ r = glm::exponentialEaseIn(a); + r = glm::exponentialEaseOut(a); + r = glm::exponentialEaseInOut(a); + +@@ -46,7 +46,7 @@ namespace + r = glm::backEaseOut(a); + r = glm::backEaseInOut(a); + +- r = glm::bounceEaseIn(a);; ++ r = glm::bounceEaseIn(a); + r = glm::bounceEaseOut(a); + r = glm::bounceEaseInOut(a); + } +-- +2.21.0 + diff --git a/meta-openembedded/meta-oe/recipes-graphics/glm/glm_0.9.9-a2.bb b/meta-openembedded/meta-oe/recipes-graphics/glm/glm_0.9.9.3.bb index 7f16708edb..2a26a5bc71 100644 --- a/meta-openembedded/meta-oe/recipes-graphics/glm/glm_0.9.9-a2.bb +++ b/meta-openembedded/meta-oe/recipes-graphics/glm/glm_0.9.9.3.bb @@ -10,17 +10,15 @@ LIC_FILES_CHKSUM = "file://readme.md;beginline=21;endline=22;md5=3075b5727d36f29 SRC_URI = " \ git://github.com/g-truc/glm;branch=master \ - file://0001-Make-GLM_ENABLE_EXPERIMENTAL-a-configurable-option.patch \ - file://0002-glm-install-headers-only.patch \ + file://0001-glm-Remove-redundant-double-semi-colons.patch \ " -SRCREV = "fcbedf5058ef8613dd02aac62ef00d55dcfeadd7" +# v0.9.9.3 +SRCREV = "9749727c2db4742369219e1d452f43e918734b4e" S = "${WORKDIR}/git" inherit cmake -EXTRA_OECMAKE = "-DGLM_ENABLE_EXPERIMENTAL=ON" - RDEPENDS_${PN}-dev = "" BBCLASSEXTEND = "native" diff --git a/meta-openembedded/meta-oe/recipes-graphics/graphviz/graphviz/0001-Use-native-mkdefs.patch b/meta-openembedded/meta-oe/recipes-graphics/graphviz/graphviz/0001-Use-native-mkdefs.patch new file mode 100644 index 0000000000..eb51d03d26 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-graphics/graphviz/graphviz/0001-Use-native-mkdefs.patch @@ -0,0 +1,31 @@ +From 5e53b643615fd53f3ff960521bbe9d95641e5f68 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com> +Date: Sun, 20 Jan 2019 23:58:29 +0100 +Subject: [PATCH] Use native mkdefs +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Andreas Müller <schnitzeltony@gmail.com> +--- + lib/gvpr/Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/gvpr/Makefile.am b/lib/gvpr/Makefile.am +index ac3c098..4914854 100644 +--- a/lib/gvpr/Makefile.am ++++ b/lib/gvpr/Makefile.am +@@ -57,7 +57,7 @@ endif + mkdefs_SOURCES = mkdefs.c + + gdefs.h: $(top_srcdir)/lib/gvpr/gprdata mkdefs$(EXEEXT) +- ./mkdefs$(EXEEXT) gdefs.h < $(top_srcdir)/lib/gvpr/gprdata ++ mkdefs$(EXEEXT) gdefs.h < $(top_srcdir)/lib/gvpr/gprdata + + EXTRA_DIST = $(man_MANS) $(pdf_DATA) gprdata mkdefs.c gdefs.h trie.c gvprlib.vcxproj* + +-- +2.20.1 + diff --git a/meta-openembedded/meta-oe/recipes-graphics/graphviz/graphviz_2.40.1.bb b/meta-openembedded/meta-oe/recipes-graphics/graphviz/graphviz_2.40.1.bb new file mode 100644 index 0000000000..a9efffaca2 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-graphics/graphviz/graphviz_2.40.1.bb @@ -0,0 +1,59 @@ +SUMMARY = "Graph Visualization Tools" +HOMEPAGE = "http://www.graphviz.org" +LICENSE = "EPL-1.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=9109f5fc16cf963fb3cdd32781b3ce04" + +DEPENDS = " \ + intltool-native \ + bison-native \ + groff-native \ + libtool \ + gdk-pixbuf \ + librsvg \ + cairo \ + pango \ + expat \ + freetype \ +" +DEPENDS_append_class-target = " ${BPN}-native" + +inherit autotools-brokensep pkgconfig gettext + +# The source tarball suggested at +# https://graphviz.gitlab.io/_pages/Download/Download_source.html has no +# version in its name. So once graphviz is updgraded, only first time users will +# get checksum errors. Fedora people seem to expect same so they use a versioned +# source - see https://src.fedoraproject.org/cgit/rpms/graphviz.git/tree/graphviz.spec + +SRC_URI = "https://gitlab.com/graphviz/graphviz/-/archive/stable_release_${PV}/graphviz-stable_release_${PV}.tar.gz \ +" +# Use native mkdefs +SRC_URI_append_class-target = " file://0001-Use-native-mkdefs.patch" +SRC_URI[md5sum] = "2acf30ca8e6cc8b001b0334db65fd072" +SRC_URI[sha256sum] = "e6c3f8dbfde1c4523055403927bef29f97f9fc12715c1042b5dcf648a2c1c62a" + +S = "${WORKDIR}/${BPN}-stable_release_${PV}" + +EXTRA_OECONF_class-target = "\ + --with-expatincludedir=${STAGING_INCDIR} \ + --with-expatlibdir=${STAGING_LIBDIR} \ + --without-included-ltdl \ + --disable-java \ + --disable-r \ + --disable-sharp \ + " +CFLAGS_append_class-target = " -D_typ_ssize_t=1 -D_long_double=1" +do_configure_prepend() { + cd ${S} + # create version.m4 and ignore libtoolize errors + ./autogen.sh NOCONFIG || true +} + +do_install_append_class-native() { + # install mkdefs for target build + install -m755 ${B}/lib/gvpr/mkdefs ${D}${bindir} +} + +FILES_SOLIBSDEV_append = " ${libdir}/graphviz/lib*${SOLIBSDEV}" + +BBCLASSEXTEND = "native" diff --git a/meta-openembedded/meta-oe/recipes-graphics/gtkwave/gtkwave_3.3.98.bb b/meta-openembedded/meta-oe/recipes-graphics/gtkwave/gtkwave_3.3.98.bb new file mode 100644 index 0000000000..60df6f773b --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-graphics/gtkwave/gtkwave_3.3.98.bb @@ -0,0 +1,19 @@ +SUMMARY = "VCD (Value Change Dump) file waveform viewer" +DESCRIPTION = "gtkwave is a viewer for VCD (Value Change Dump) files which are usually created by digital circuit simulators. (These files have no connection to video CDs!) " +HOMEPAGE = "http://gtkwave.sourceforge.net/" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=75859989545e37968a99b631ef42722e" + +SRC_URI = "http://gtkwave.sourceforge.net/${PN}-${PV}.tar.gz" + +SRC_URI[md5sum] = "eac3073ef381e0c09da33590296ca37f" +SRC_URI[sha256sum] = "efa6bbbeb3bd54104425a69a2aa0d079bb5c3ecc1c420ba57dcaa1c97c5a22f6" + +inherit pkgconfig autotools gettext texinfo +DEPENDS = "tcl tk gperf-native bzip2 xz pango zlib gtk+ gdk-pixbuf glib-2.0" +RDEPENDS_${PN} = "tk-lib" + +EXTRA_OECONF = "--with-tcl=${STAGING_BINDIR_CROSS} --with-tk=${STAGING_BINDIR_CROSS}" + +FILES_${PN} = "${bindir} ${datadir}" diff --git a/meta-openembedded/meta-oe/recipes-graphics/libforms/files/add-absolute-path-for-include-dir.patch b/meta-openembedded/meta-oe/recipes-graphics/libforms/files/add-absolute-path-for-include-dir.patch new file mode 100644 index 0000000000..db400f7022 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-graphics/libforms/files/add-absolute-path-for-include-dir.patch @@ -0,0 +1,12 @@ +diff -Naur xforms-1.2.3.orig/fdesign/Makefile.am xforms-1.2.3/fdesign/Makefile.am +--- xforms-1.2.3.orig/fdesign/Makefile.am 2019-02-24 12:58:51.968645873 +0000 ++++ xforms-1.2.3/fdesign/Makefile.am 2019-02-24 13:00:48.500635163 +0000 +@@ -11,7 +11,7 @@ + fdesign.1: + cp -p $(srcdir)/fdesign.man fdesign.1 + +-INCLUDES = -I./xpm $(X_CFLAGS) ++INCLUDES = -I./xpm -I$(srcdir)/xpm $(X_CFLAGS) + + bin_PROGRAMS = fdesign + diff --git a/meta-openembedded/meta-oe/recipes-graphics/libforms/files/fix-link-to-xforms-man.patch b/meta-openembedded/meta-oe/recipes-graphics/libforms/files/fix-link-to-xforms-man.patch new file mode 100644 index 0000000000..c95bd18da8 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-graphics/libforms/files/fix-link-to-xforms-man.patch @@ -0,0 +1,12 @@ +diff -Naur xforms-1.2.3.orig/lib/Makefile.am xforms-1.2.3/lib/Makefile.am +--- xforms-1.2.3.orig/lib/Makefile.am 2019-02-24 12:53:58.340678373 +0000 ++++ xforms-1.2.3/lib/Makefile.am 2019-02-24 12:54:33.096674102 +0000 +@@ -25,7 +25,7 @@ + man_MANS = xforms.5 + + xforms.5: +- cp -p ./xforms.man xforms.5 ++ cp -p $(srcdir)/xforms.man xforms.5 + + libforms_la_SOURCES = \ + align.c \ diff --git a/meta-openembedded/meta-oe/recipes-graphics/libforms/files/fix-path-fdesign_LDADD.patch b/meta-openembedded/meta-oe/recipes-graphics/libforms/files/fix-path-fdesign_LDADD.patch new file mode 100644 index 0000000000..73956dee9f --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-graphics/libforms/files/fix-path-fdesign_LDADD.patch @@ -0,0 +1,12 @@ +diff -Naur xforms-1.2.3.orig/fdesign/Makefile.am xforms-1.2.3/fdesign/Makefile.am +--- xforms-1.2.3.orig/fdesign/Makefile.am 2019-02-24 13:08:48.412603250 +0000 ++++ xforms-1.2.3/fdesign/Makefile.am 2019-02-24 13:09:18.412601874 +0000 +@@ -15,7 +15,7 @@ + + bin_PROGRAMS = fdesign + +-fdesign_LDADD = $(top_srcdir)/lib/libforms.la $(X_LIBS) $(X_PRE_LIBS) $(XPM_LIB) -lX11 $(LIBS) $(X_EXTRA_LIBS) ++fdesign_LDADD = $(top_builddir)/lib/libforms.la $(X_LIBS) $(X_PRE_LIBS) $(XPM_LIB) -lX11 $(LIBS) $(X_EXTRA_LIBS) + + fdesign_SOURCES = \ + fd_attribs.c \ diff --git a/meta-openembedded/meta-oe/recipes-graphics/libforms/libforms_1.2.3.bb b/meta-openembedded/meta-oe/recipes-graphics/libforms/libforms_1.2.3.bb new file mode 100644 index 0000000000..f86d7c16bf --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-graphics/libforms/libforms_1.2.3.bb @@ -0,0 +1,26 @@ +DESCRIPTION = "The XForms graphical interface widget library " +HOMEPAGE = "http://savannah.nongnu.org/projects/xforms/" +PR = "r0" + +LICENSE = "LGPLv2.1+" +LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=ade9a053df81f5b9408d2f4f5546df86" + +SRC_URI = "http://download.savannah.nongnu.org/releases/xforms/xforms-${PV}.tar.gz \ + file://fix-link-to-xforms-man.patch \ + file://add-absolute-path-for-include-dir.patch \ + file://fix-path-fdesign_LDADD.patch \ + " + +SRC_URI[md5sum] = "235720a758a8b8d9e6e452dc67190e9b" +SRC_URI[sha256sum] = "7989b39598c769820ad451ad91e5cb0de29946940c8240aac94ca8238c2def61" + +inherit autotools distro_features_check + +REQUIRED_DISTRO_FEATURES = "opengl" + +S = "${WORKDIR}/xforms-${PV}" + +DEPENDS = "libxpm jpeg libx11 mesa" +RDEPENDS_${PN} = "bash" + +EXTRA_OECONF = "--with-extra-inc=${S}/lib" diff --git a/meta-openembedded/meta-oe/recipes-graphics/libvncserver/libvncserver_0.9.11.bb b/meta-openembedded/meta-oe/recipes-graphics/libvncserver/libvncserver_0.9.11.bb deleted file mode 100644 index 38dac06e64..0000000000 --- a/meta-openembedded/meta-oe/recipes-graphics/libvncserver/libvncserver_0.9.11.bb +++ /dev/null @@ -1,25 +0,0 @@ -DESCRIPTION = "library for easy implementation of a RDP/VNC server" -HOMEPAGE = "https://libvnc.github.io" -SECTION = "libs" -PRIORITY = "optional" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=361b6b837cad26c6900a926b62aada5f" - -DEPENDS += "zlib libsdl jpeg libpng gtk+ libgcrypt nettle gnutls gmp" - -PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES','systemd','systemd','',d)}" -PACKAGECONFIG[systemd] = ",,systemd" - -RDEPENDS_${PN} += "libpng gtk+ libgcrypt" - -inherit distro_features_check autotools binconfig pkgconfig - -REQUIRED_DISTRO_FEATURES = "x11" - -SRC_URI = "https://github.com/LibVNC/libvncserver/archive/LibVNCServer-${PV}.tar.gz" -SRC_URI[md5sum] = "7f06104d5c009813e95142932c4ddb06" -SRC_URI[sha256sum] = "193d630372722a532136fd25c5326b2ca1a636cbb8bf9bb115ef869c804d2894" - -S = "${WORKDIR}/${BPN}-LibVNCServer-${PV}" - -TARGET_LDFLAGS += "-lgcrypt" diff --git a/meta-openembedded/meta-oe/recipes-graphics/libvncserver/libvncserver_git.bb b/meta-openembedded/meta-oe/recipes-graphics/libvncserver/libvncserver_git.bb new file mode 100644 index 0000000000..88a859ba2f --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-graphics/libvncserver/libvncserver_git.bb @@ -0,0 +1,34 @@ +DESCRIPTION = "library for easy implementation of a RDP/VNC server" +HOMEPAGE = "https://libvnc.github.io" +SECTION = "libs" +PRIORITY = "optional" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=361b6b837cad26c6900a926b62aada5f" + +PACKAGECONFIG ??= " \ + gcrypt \ + gnutls \ + jpeg \ + lzo \ + png \ + ${@bb.utils.contains('DISTRO_FEATURES','systemd','systemd','',d)} \ + sdl \ + zlib \ +" +PACKAGECONFIG[gcrypt] = "-DWITH_GCRYPT=ON,-DWITH_GCRYPT=OFF,libgcrypt,libgcrypt" +PACKAGECONFIG[gnutls] = "-DWITH_GNUTLS=ON,-DWITH_GNUTLS=OFF,gnutls" +PACKAGECONFIG[jpeg] = "-DWITH_JPEG=ON,-DWITH_JPEG=OFF,jpeg" +PACKAGECONFIG[lzo] = "-DWITH_LZO=ON,-DWITH_LZO=OFF,lzo" +PACKAGECONFIG[openssl] = "-DWITH_OPENSSL=ON,-DWITH_OPENSSL=OFF,openssl" +PACKAGECONFIG[png] = "-DWITH_PNG=ON,-DWITH_PNG=OFF,libpng,libpng" +PACKAGECONFIG[systemd] = "-DWITH_SYSTEMD=ON,-DWITH_SYSTEMD=OFF,systemd" +PACKAGECONFIG[sdl] = "-DWITH_SDL=ON,-DWITH_SDL=OFF,libsdl2" +PACKAGECONFIG[zlib] = "-DWITH_ZLIB=ON,-DWITH_ZLIB=OFF,zlib" + +inherit cmake + +SRC_URI = "git://github.com/LibVNC/libvncserver" +SRCREV = "c0a23857a5c42b45b6d22ccf7218becd1fa69402" + + +S = "${WORKDIR}/git" diff --git a/meta-openembedded/meta-oe/recipes-graphics/pango/pangomm_2.40.1.bb b/meta-openembedded/meta-oe/recipes-graphics/pango/pangomm_2.42.0.bb index e0f72cd58a..8a85db4754 100644 --- a/meta-openembedded/meta-oe/recipes-graphics/pango/pangomm_2.40.1.bb +++ b/meta-openembedded/meta-oe/recipes-graphics/pango/pangomm_2.42.0.bb @@ -9,8 +9,8 @@ DEPENDS = "mm-common cairomm glibmm pango" SHRT_VER = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}" SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/pangomm/${SHRT_VER}/pangomm-${PV}.tar.xz" -SRC_URI[md5sum] = "874eadd9434613dbacf0272c82c3ac23" -SRC_URI[sha256sum] = "9762ee2a2d5781be6797448d4dd2383ce14907159b30bc12bf6b08e7227be3af" +SRC_URI[md5sum] = "6cffedf2225c4e72645a7d757fb5b832" +SRC_URI[sha256sum] = "ca6da067ff93a6445780c0b4b226eb84f484ab104b8391fb744a45cbc7edbf56" inherit distro_features_check autotools pkgconfig diff --git a/meta-openembedded/meta-oe/recipes-graphics/qrencode/qrencode_git.bb b/meta-openembedded/meta-oe/recipes-graphics/qrencode/qrencode_git.bb index f5397750f5..108c339bf5 100644 --- a/meta-openembedded/meta-oe/recipes-graphics/qrencode/qrencode_git.bb +++ b/meta-openembedded/meta-oe/recipes-graphics/qrencode/qrencode_git.bb @@ -4,9 +4,9 @@ HOMEPAGE = "http://fukuchi.org/works/qrencode/" SECTION = "libs" LICENSE = "LGPLv2.1" LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1" -PV = "4.0.0+git${SRCPV}" +PV = "4.0.1+git${SRCPV}" -SRCREV = "07f3c5d4bf9136711422cc7dbf28aff469da220a" +SRCREV = "7c83deb8f562ae6013fea4c3e65278df93f98fb7" SRC_URI = "git://github.com/fukuchi/libqrencode.git" S = "${WORKDIR}/git" diff --git a/meta-openembedded/meta-oe/recipes-graphics/spir/files/0001-Add-install-PHONY-target-in-Makefile.patch b/meta-openembedded/meta-oe/recipes-graphics/spir/files/0001-Add-install-PHONY-target-in-Makefile.patch new file mode 100644 index 0000000000..78598ea1ea --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-graphics/spir/files/0001-Add-install-PHONY-target-in-Makefile.patch @@ -0,0 +1,31 @@ +From 8d9870b66c3cfcf12ce7e8e013946e2a215bb722 Mon Sep 17 00:00:00 2001 +From: Ankit Navik <ankit.tarot@gmail.com> +Date: Sat, 22 Dec 2018 19:16:02 +0530 +Subject: [PATCH] Add install PHONY target in Makefile + +--- + Makefile | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/Makefile b/Makefile +index 0564b65..0993372 100644 +--- a/Makefile ++++ b/Makefile +@@ -35,7 +35,13 @@ $(STATIC_LIB): $(OBJECTS) + %.o: %.cpp + $(CXX) -c -o $@ $< $(CXXFLAGS) -MMD + ++install: ++ mkdir -p $(TARGET_DIR_BIN) ++ mkdir -p $(TARGET_DIR_LIB) ++ cp $(TARGET) $(TARGET_DIR_BIN)/ ++ cp $(STATIC_LIB) $(TARGET_DIR_LIB)/ ++ + clean: + rm -f $(TARGET) $(OBJECTS) $(CLI_OBJECTS) $(STATIC_LIB) $(DEPS) + +-.PHONY: clean ++.PHONY: all install clean +-- +2.7.4 + diff --git a/meta-openembedded/meta-oe/recipes-graphics/spir/files/0001-tools-lesspipe-Allow-generic-shell.patch b/meta-openembedded/meta-oe/recipes-graphics/spir/files/0001-tools-lesspipe-Allow-generic-shell.patch new file mode 100644 index 0000000000..e9a45c24fc --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-graphics/spir/files/0001-tools-lesspipe-Allow-generic-shell.patch @@ -0,0 +1,24 @@ +From 03127fd5a6eff5ae2ebea2e9c6c01fbf1a0a421a Mon Sep 17 00:00:00 2001 +From: Ankit Navik <ankit.tarot@gmail.com> +Date: Tue, 25 Dec 2018 14:34:09 +0530 +Subject: [PATCH] tools/lesspipe: Allow generic shell + +Upstream-Status: Submitted [https://github.com/KhronosGroup/SPIRV-Tools/pull/2255] +Signed-off-by: Ankit Navik <ankit.tarot@gmail.com> +--- + tools/lesspipe/spirv-lesspipe.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tools/lesspipe/spirv-lesspipe.sh b/tools/lesspipe/spirv-lesspipe.sh +index 81e3355..f955259 100644 +--- a/tools/lesspipe/spirv-lesspipe.sh ++++ b/tools/lesspipe/spirv-lesspipe.sh +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/usr/bin/env sh + # Copyright (c) 2016 The Khronos Group Inc. + + # Licensed under the Apache License, Version 2.0 (the "License"); +-- +2.7.4 + diff --git a/meta-openembedded/meta-oe/recipes-graphics/spir/spirv-shader-generator_git.bb b/meta-openembedded/meta-oe/recipes-graphics/spir/spirv-shader-generator_git.bb new file mode 100644 index 0000000000..b787972da6 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-graphics/spir/spirv-shader-generator_git.bb @@ -0,0 +1,22 @@ +SUMMARY = "SPIRV-Cross is a tool designed for parsing and converting SPIR-V \ +to other shader languages" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" +SECTION = "graphics" + +S = "${WORKDIR}/git" +SRCREV = "ed16b3e69985feaf565efbecea70a1cc2fca2a58" +SRC_URI = "git://github.com/KhronosGroup/SPIRV-Cross.git \ + file://0001-Add-install-PHONY-target-in-Makefile.patch \ +" + +EXTRA_OEMAKE += 'TARGET_DIR_LIB="${D}${libdir}"' +EXTRA_OEMAKE += 'TARGET_DIR_BIN="${D}${bindir}"' + +do_compile () { + cd ${S} && oe_runmake +} + +do_install () { + cd ${S} && oe_runmake install +} diff --git a/meta-openembedded/meta-oe/recipes-graphics/spir/spirv-tools_git.bb b/meta-openembedded/meta-oe/recipes-graphics/spir/spirv-tools_git.bb new file mode 100644 index 0000000000..aae11dffcd --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-graphics/spir/spirv-tools_git.bb @@ -0,0 +1,32 @@ +SUMMARY = "The SPIR-V Tools project provides an API and commands for \ +processing SPIR-V modules" +DESCRIPTION = "The project includes an assembler, binary module parser, \ +disassembler, validator, and optimizer for SPIR-V." +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" +SECTION = "graphics" + +S = "${WORKDIR}/git" +DEST_DIR = "${S}/external" +SRC_URI = "git://github.com/KhronosGroup/SPIRV-Tools.git;name=spirv-tools \ + file://0001-tools-lesspipe-Allow-generic-shell.patch \ + git://github.com/KhronosGroup/SPIRV-Headers.git;name=spirv-headers;destsuffix=${DEST_DIR}/spirv-headers \ + git://github.com/google/effcee.git;name=effcee;destsuffix=${DEST_DIR}/effcee \ + git://github.com/google/re2.git;name=re2;destsuffix=${DEST_DIR}/re2 \ + git://github.com/google/googletest.git;name=googletest;destsuffix=${DEST_DIR}/googletest \ +" +SRCREV_spirv-tools = "167f1270a9ee641b17c016a545741e4aadfabe86" +SRCREV_spirv-headers = "4618b86e9e4b027a22040732dfee35e399cd2c47" +SRCREV_effcee = "8f0a61dc95e0df18c18e0ac56d83b3fa9d2fe90b" +SRCREV_re2 = "2cf86e5ab6dcfe045a1f510c2b9a8b012a4158cd" +SRCREV_googletest = "150613166524c474a8a97df4c01d46b72050c495" + +inherit cmake python3native + +do_install_append() { + install -d ${D}/${includedir}/spirv + install -m 0644 ${DEST_DIR}/spirv-headers/include/spirv/1.2/* ${D}/${includedir}/spirv +} + +FILES_SOLIBSDEV = "" +FILES_${PN} += "${libdir}/*.so" diff --git a/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-arphic-uming_20080216.bb b/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-arphic-uming_20080216.bb index 522f0fb7d7..9de02b0f3c 100644 --- a/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-arphic-uming_20080216.bb +++ b/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-arphic-uming_20080216.bb @@ -1,7 +1,7 @@ SUMMARY = "Unicode Mingti (printed) TrueType Font" HOMEPAGE = "http://www.freedesktop.org/wiki/Software/CJKUnifonts" LICENSE = "Arphic-Public-License" -LIC_FILES_CHKSUM = "file://README;md5=62be011094b7865ddc4d1a648444d31a" +LIC_FILES_CHKSUM = "file://license/english/ARPHICPL.TXT;md5=4555ed88e9a72fc9562af379d07c3350" SRC_DISTRIBUTE_LICENSES += "${PN}" RPROVIDES_${PN} = "virtual-chinese-font" PR = "r6" diff --git a/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-droid_git.bb b/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-droid_git.bb index e62badf778..8dba7ee6fa 100644 --- a/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-droid_git.bb +++ b/meta-openembedded/meta-oe/recipes-graphics/ttf-fonts/ttf-droid_git.bb @@ -12,8 +12,12 @@ SRC_URI = "git://github.com/android/platform_frameworks_base.git;branch=master" S = "${WORKDIR}/git/data/fonts" -do_install_prepend() { - rm ${S}/Ahem.ttf MTLc3m.ttf DroidSansArabic.ttf DroidSansThai.ttf Clockopia.ttf MTLmr3m.ttf DroidSansHebrew.ttf DroidSansFallbackLegacy.ttf # we're not packaging it +do_install_append() { + for f in Ahem.ttf MTLc3m.ttf DroidSansArabic.ttf DroidSansThai.ttf \ + Clockopia.ttf MTLmr3m.ttf DroidSansHebrew.ttf \ + DroidSansFallbackLegacy.ttf; do + rm -f ${D}${datadir}/fonts/truetype/$f + done } PACKAGES = "ttf-droid-sans ttf-droid-sans-mono \ diff --git a/meta-openembedded/meta-oe/recipes-graphics/x11vnc/files/0001-misc-Makefile.am-don-t-install-Xdummy-when-configure.patch b/meta-openembedded/meta-oe/recipes-graphics/x11vnc/files/0001-misc-Makefile.am-don-t-install-Xdummy-when-configure.patch new file mode 100644 index 0000000000..a15f3fe5bd --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-graphics/x11vnc/files/0001-misc-Makefile.am-don-t-install-Xdummy-when-configure.patch @@ -0,0 +1,37 @@ +From 686491573827b98ba031adaa5da373366079d3d8 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Jean-Fran=C3=A7ois=20Dagenais?= <jeff.dagenais@gmail.com> +Date: Mon, 11 Feb 2019 11:42:59 -0500 +Subject: [PATCH] misc/Makefile.am: don't install Xdummy when configured + --without-x + +Upstream-status: submitted https://github.com/jeff-dagenais/x11vnc/pull/1 + +Signed-off-by: Jean-Francois Dagenais <jeff.dagenais@gmail.com> +--- + misc/Makefile.am | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/misc/Makefile.am b/misc/Makefile.am +index c0b98c8..e4a22c1 100644 +--- a/misc/Makefile.am ++++ b/misc/Makefile.am +@@ -18,7 +18,10 @@ EXTRA_DIST = \ + uinput.pl \ + ultravnc_repeater.pl \ + vcinject.pl \ +- x11vnc_loop \ ++ x11vnc_loop ++ ++if HAVE_X11 ++EXTRA_DIST += \ + Xdummy.c \ + Xdummy.in + +@@ -32,3 +35,4 @@ do_dummy_c_subst = $(SED) \ + Xdummy: $(srcdir)/Xdummy.in $(srcdir)/Xdummy.c + $(do_dummy_c_subst) < $< > $@.tmp + mv -f $@.tmp $@ ++endif +-- +2.17.1 + diff --git a/meta-openembedded/meta-oe/recipes-graphics/x11vnc/files/endian-fix.patch b/meta-openembedded/meta-oe/recipes-graphics/x11vnc/files/endian-fix.patch deleted file mode 100644 index f2a538bf63..0000000000 --- a/meta-openembedded/meta-oe/recipes-graphics/x11vnc/files/endian-fix.patch +++ /dev/null @@ -1,24 +0,0 @@ -libvncserver: replace LIBVNCSERVER_WORDS_BIGENDIAN with WORDS_BIGENDIAN - -since macro AC_C_BIGENDIAN is used in autoconf and WORDS_BIGENDIAN is -automatically set for different arch, it is better to use WORDS_BIGENDIAN -instead of LIBVNCSERVER_WORDS_BIGENDIAN, which cuase issue in mips. - -Signed-off-by: Yu Ke <ke.yu@intel.com> - -Upstream-Status: Pending - -diff --git a/libvncserver/main.c b/libvncserver/main.c -index b6bd930..8bbb7bf 100644 ---- a/libvncserver/main.c -+++ b/libvncserver/main.c -@@ -47,7 +47,7 @@ static MUTEX(extMutex); - - static int rfbEnableLogging=1; - --#ifdef LIBVNCSERVER_WORDS_BIGENDIAN -+#ifdef WORDS_BIGENDIAN - char rfbEndianTest = (1==0); - #else - char rfbEndianTest = (1==1); - diff --git a/meta-openembedded/meta-oe/recipes-graphics/x11vnc/files/starting-fix.patch b/meta-openembedded/meta-oe/recipes-graphics/x11vnc/files/starting-fix.patch index f62e405dd1..060319c76b 100644 --- a/meta-openembedded/meta-oe/recipes-graphics/x11vnc/files/starting-fix.patch +++ b/meta-openembedded/meta-oe/recipes-graphics/x11vnc/files/starting-fix.patch @@ -10,10 +10,10 @@ Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com> Upstream-Status: Inappropriate [configuration] -Index: x11vnc-0.9.12/x11vnc/x11vnc.desktop +Index: x11vnc-0.9.12/x11vnc.desktop =================================================================== ---- x11vnc-0.9.12.orig/x11vnc/x11vnc.desktop 2011-03-03 10:33:18.000000000 +0800 -+++ x11vnc-0.9.12/x11vnc/x11vnc.desktop 2011-03-03 10:35:20.000000000 +0800 +--- x11vnc-0.9.12.orig/x11vnc.desktop 2011-03-03 10:33:18.000000000 +0800 ++++ x11vnc-0.9.12/x11vnc.desktop 2011-03-03 10:35:20.000000000 +0800 @@ -1,7 +1,7 @@ [Desktop Entry] Name=X11VNC Server diff --git a/meta-openembedded/meta-oe/recipes-graphics/x11vnc/x11vnc_0.9.13.bb b/meta-openembedded/meta-oe/recipes-graphics/x11vnc/x11vnc_0.9.13.bb deleted file mode 100644 index b047bc4628..0000000000 --- a/meta-openembedded/meta-oe/recipes-graphics/x11vnc/x11vnc_0.9.13.bb +++ /dev/null @@ -1,34 +0,0 @@ -SUMMARY = "Exports your X session on-the-fly via VNC" -HOMEPAGE = "http://www.karlrunge.com/x11vnc/" - -SECTION = "x11/utils" -AUTHOR = "Karl Runge" -LICENSE = "GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=361b6b837cad26c6900a926b62aada5f \ - file://x11vnc/x11vnc.h;endline=33;md5=6f95dc6535467d7ee1563fd434fb372e" - -SRC_URI = "${SOURCEFORGE_MIRROR}/libvncserver/x11vnc/${PV}/x11vnc-${PV}.tar.gz\ - file://starting-fix.patch \ - file://endian-fix.patch \ - file://remove-redundant-RPATH.patch \ -" - -SRC_URI[md5sum] = "a372ec4fe8211221547b1c108cf56e4c" -SRC_URI[sha256sum] = "f6829f2e629667a5284de62b080b13126a0736499fe47cdb447aedb07a59f13b" - -DEPENDS = "openssl virtual/libx11 libxext jpeg zlib libxfixes libxrandr libxdamage libxtst libtasn1 p11-kit" - -inherit autotools-brokensep distro_features_check -# depends on virtual/libx11 -REQUIRED_DISTRO_FEATURES = "x11" - -PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'zeroconf', 'avahi', '', d)} libvncserver" -PACKAGECONFIG[avahi] = "--with-avahi,--without-avahi,avahi" -PACKAGECONFIG[xinerama] = "--with-xinerama,--without-xinerama,libxinerama" -PACKAGECONFIG[libvncserver] = "--with-system-libvncserver,--without-system-libvncserver,libvncserver" - -do_prepare_sources () { - # Remove old libtool macros from acinclude.m4 - sed -i -e '/^# libtool.m4/q' ${S}/acinclude.m4 -} -do_patch[postfuncs] += "do_prepare_sources" diff --git a/meta-openembedded/meta-oe/recipes-graphics/x11vnc/x11vnc_0.9.16.bb b/meta-openembedded/meta-oe/recipes-graphics/x11vnc/x11vnc_0.9.16.bb new file mode 100644 index 0000000000..1aace02001 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-graphics/x11vnc/x11vnc_0.9.16.bb @@ -0,0 +1,40 @@ +SUMMARY = "Exports your X session or FrameBuffer(fbdev) on-the-fly via VNC" +HOMEPAGE = "http://www.karlrunge.com/x11vnc/" + +SECTION = "x11/utils" +AUTHOR = "Karl Runge" +LICENSE = "GPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://src/x11vnc.h;endline=31;md5=e871a2ad004776794b616822dcab6314" + +SRC_URI = "https://github.com/LibVNC/x11vnc/archive/${PV}.tar.gz;downloadfilename=x11vnc-${PV}.tar.gz\ + file://starting-fix.patch \ + file://0001-misc-Makefile.am-don-t-install-Xdummy-when-configure.patch \ +" + +SRC_URI[md5sum] = "64172e8f896389ec963fff93415f0d93" +SRC_URI[sha256sum] = "885e5b5f5f25eec6f9e4a1e8be3d0ac71a686331ee1cfb442dba391111bd32bd" + +DEPENDS = "\ + jpeg \ + libtasn1 \ + libvncserver \ + openssl \ + p11-kit \ + zlib \ +" + +inherit pkgconfig autotools distro_features_check + +ANY_OF_DISTRO_FEATURES = "x11 fbdev" + +PACKAGECONFIG ??= "\ + ${@bb.utils.contains('DISTRO_FEATURES', 'zeroconf', 'avahi', '', d)} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)} \ +" + +PACKAGECONFIG[avahi] = "--with-avahi,--without-avahi,avahi" +PACKAGECONFIG[xinerama] = "--with-xinerama,--without-xinerama,libxinerama" +PACKAGECONFIG[x11] = "--with-x,--without-x, libxdamage libxext libxfixes libxrandr libxtst virtual/libx11" + +RRECOMMENDS_${PN} = "${@bb.utils.contains('DISTRO_FEATURES', 'fbdev', 'kernel-module-uinput', '', d)}" diff --git a/meta-openembedded/meta-oe/recipes-graphics/xorg-app/twm_1.0.9.bb b/meta-openembedded/meta-oe/recipes-graphics/xorg-app/twm_1.0.10.bb index 41c804bb34..3a2267ae92 100644 --- a/meta-openembedded/meta-oe/recipes-graphics/xorg-app/twm_1.0.9.bb +++ b/meta-openembedded/meta-oe/recipes-graphics/xorg-app/twm_1.0.10.bb @@ -5,8 +5,8 @@ DEPENDS += " libxext libxt libxmu bison-native" LICENSE = "MIT" LIC_FILES_CHKSUM = "file://COPYING;md5=4c6d42ef60e8166aa26606524c0b9586" -SRC_URI[md5sum] = "59a6f076cdacb5f6945dac809bcf4906" -SRC_URI[sha256sum] = "c575167ac33edf3bd1592f1bedfe0559debb128ed5fb4873c1278e3be166310a" +SRC_URI[md5sum] = "e322c08eeb635f924ede5b8eba3db54e" +SRC_URI[sha256sum] = "6449eadca16ce0f0d900605b0cc020b95f40619261b7beccfb46bcc1836445d7" FILES_${PN} += "${datadir}/X11/twm/system.twmrc" ALTERNATIVE_NAME = "x-window-manager" diff --git a/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xwd_1.0.6.bb b/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xwd_1.0.7.bb index 694bf57ace..1ad48b071e 100644 --- a/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xwd_1.0.6.bb +++ b/meta-openembedded/meta-oe/recipes-graphics/xorg-app/xwd_1.0.7.bb @@ -7,5 +7,5 @@ LICENSE = "MIT" LIC_FILES_CHKSUM = "file://COPYING;md5=c0cdb783e9a0198237371fdaa26a18bf" DEPENDS = "libxmu libxkbfile" -SRC_URI[md5sum] = "6b5d48464c5f366e91efd08b62b12d94" -SRC_URI[sha256sum] = "3bb396a2268d78de4b1c3e5237a85f7849d3434e87b3cd1f4d57eef614227d79" +SRC_URI[md5sum] = "11794a8eba6d295a192a8975287fd947" +SRC_URI[sha256sum] = "cd6815b8b9e0b98e284d3d732fb12162159cb9dcee4f45a7d4c0bd8b308a6794" diff --git a/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_18.0.1.bb b/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_18.0.1.bb index 969c1a0a6a..b38fb65925 100644 --- a/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_18.0.1.bb +++ b/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_18.0.1.bb @@ -12,8 +12,6 @@ DEPENDS += "virtual/libx11 libxvmc drm \ inherit distro_features_check REQUIRED_DISTRO_FEATURES += "opengl" -COMPATIBLE_HOST = '(i.86|x86_64).*-linux' - SRC_URI[md5sum] = "40e7c0a5a69aba3d84e0958f58705ea7" SRC_URI[sha256sum] = "72ea3b8127d4550b64f797457f5a7851a541fa4ee2cc3f345b6c1886b81714a0" diff --git a/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-mga_1.6.5.bb b/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-mga_2.0.0.bb index 182e18fd95..c113d51dcd 100644 --- a/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-mga_1.6.5.bb +++ b/meta-openembedded/meta-oe/recipes-graphics/xorg-driver/xf86-video-mga_2.0.0.bb @@ -12,8 +12,8 @@ DEPENDS += "virtual/libx11 libpciaccess" COMPATIBLE_HOST = '(i.86.*-linux|x86_64.*-linux)' -SRC_URI[md5sum] = "3ee2549247e01de3e7bce52c27483118" -SRC_URI[sha256sum] = "b663cd8e6364f7c4e2637b9fcab9861d0e3971518c73b00d213f6545a1289422" +SRC_URI[md5sum] = "b8fc99b4adea8bfe80156b13df4b6c9c" +SRC_URI[sha256sum] = "268946e1a13e9d80e4f724a0740df9e6e8c8bad37697fcbf456924e9fdbb5d79" PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'dri', '', d)}" PACKAGECONFIG[dri] = "--enable-dri,--disable-dri,drm xorgproto,xserver-xorg-extension-dri" diff --git a/meta-openembedded/meta-oe/recipes-kernel/bpftool/bpftool.bb b/meta-openembedded/meta-oe/recipes-kernel/bpftool/bpftool.bb index dd7eaa2aa6..f75ac6f81c 100644 --- a/meta-openembedded/meta-oe/recipes-kernel/bpftool/bpftool.bb +++ b/meta-openembedded/meta-oe/recipes-kernel/bpftool/bpftool.bb @@ -27,7 +27,7 @@ do_install() { PACKAGE_ARCH = "${MACHINE_ARCH}" python do_package_prepend() { - d.setVar('PKGV', d.getVar("KERNEL_VERSION", True).split("-")[0]) + d.setVar('PKGV', d.getVar("KERNEL_VERSION").split("-")[0]) } B = "${WORKDIR}/${BPN}-${PV}" diff --git a/meta-openembedded/meta-oe/recipes-kernel/cpupower/cpupower.bb b/meta-openembedded/meta-oe/recipes-kernel/cpupower/cpupower.bb index 4544f5b2ef..9289738716 100644 --- a/meta-openembedded/meta-oe/recipes-kernel/cpupower/cpupower.bb +++ b/meta-openembedded/meta-oe/recipes-kernel/cpupower/cpupower.bb @@ -30,7 +30,7 @@ PACKAGE_ARCH = "${MACHINE_ARCH}" RDEPENDS_${PN} = "bash" python do_package_prepend() { - d.setVar('PKGV', d.getVar("KERNEL_VERSION", True).split("-")[0]) + d.setVar('PKGV', d.getVar("KERNEL_VERSION").split("-")[0]) } B = "${WORKDIR}/${BPN}-${PV}" diff --git a/meta-openembedded/meta-oe/recipes-kernel/crash/crash_7.2.4.bb b/meta-openembedded/meta-oe/recipes-kernel/crash/crash_7.2.5.bb index c72b1a3211..0b2335682f 100644 --- a/meta-openembedded/meta-oe/recipes-kernel/crash/crash_7.2.4.bb +++ b/meta-openembedded/meta-oe/recipes-kernel/crash/crash_7.2.5.bb @@ -25,8 +25,8 @@ SRC_URI = "https://github.com/crash-utility/${BPN}/archive/${PV}.tar.gz;download file://0002-crash-fix-build-error-unknown-type-name-gdb_fpregset.patch \ file://0003-crash-detect-the-sysroot-s-glibc-header-file.patch \ " -SRC_URI[md5sum] = "4f66eb0e9a82ff83de06ac2b37501f5c" -SRC_URI[sha256sum] = "85ca2e93f1ee628ef2499ab9c78623f8b04500bdf7378c09de19283f6a7a698f" +SRC_URI[md5sum] = "3f6e18d38821bb326700f1d6d43bcaec" +SRC_URI[sha256sum] = "114a83ca27c91e4321f6399d637a9d2270f72b9327e56d687c5fb139e903069b" SRC_URI[gdb.md5sum] = "a9836707337e5f7bf76a009a8904f470" SRC_URI[gdb.sha256sum] = "8070389a5dcc104eb0be483d582729f98ed4d761ad19cedd3f17b5d2502faa36" diff --git a/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile/0002-mem_section-Support-only-46-bit-for-MAX_PHYSMEM_BITS.patch b/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile/0002-mem_section-Support-only-46-bit-for-MAX_PHYSMEM_BITS.patch index 766f4fc76e..156b4d57d4 100644 --- a/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile/0002-mem_section-Support-only-46-bit-for-MAX_PHYSMEM_BITS.patch +++ b/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile/0002-mem_section-Support-only-46-bit-for-MAX_PHYSMEM_BITS.patch @@ -1,4 +1,4 @@ -From ba123fa6b2aa0ac62d1b78f327339635ae87201a Mon Sep 17 00:00:00 2001 +From 0d1cdb59da3603e0a80913617ece0164b05380d2 Mon Sep 17 00:00:00 2001 From: Alexandru Moise <alexandru.moise@windriver.com> Date: Fri, 29 Apr 2016 07:40:46 +0000 Subject: [PATCH] mem_section: Support only 46 bit for MAX_PHYSMEM_BITS on @@ -21,19 +21,20 @@ Upstream-Status: Pending Signed-off-by: Alexandru Moise <alexandru.moise@windriver.com> Signed-off-by: Yi Zhao <yi.zhao@windriver.com> +[hqBai: adjusted patch for context, no logical change] +Signed-off-by: Haiqing Bai <Haiqing.Bai@windriver.com> --- - arch/ppc64.c | 28 ++-------------------------- - 1 file changed, 2 insertions(+), 26 deletions(-) + arch/ppc64.c | 33 ++------------------------------- + 1 file changed, 2 insertions(+), 31 deletions(-) diff --git a/arch/ppc64.c b/arch/ppc64.c -index 8b6f7d5..458f06b 100644 +index 947a125..458f06b 100644 --- a/arch/ppc64.c +++ b/arch/ppc64.c -@@ -462,38 +462,14 @@ ppc64_vtop_level4(unsigned long vaddr) - return paddr; +@@ -463,42 +463,13 @@ ppc64_vtop_level4(unsigned long vaddr) } --int + int -set_ppc64_max_physmem_bits(void) -{ - long array_len = ARRAY_LENGTH(mem_section); @@ -52,10 +53,15 @@ index 8b6f7d5..458f06b 100644 - || (array_len == (NR_MEM_SECTIONS() / _SECTIONS_PER_ROOT()))) - return TRUE; - +- info->max_physmem_bits = _MAX_PHYSMEM_BITS_4_19; +- if ((array_len == (NR_MEM_SECTIONS() / _SECTIONS_PER_ROOT_EXTREME())) +- || (array_len == (NR_MEM_SECTIONS() / _SECTIONS_PER_ROOT()))) +- return TRUE; +- - return FALSE; -} - - int +-int get_machdep_info_ppc64(void) { unsigned long vmlist, vmap_area_list, vmalloc_start; @@ -70,3 +76,6 @@ index 8b6f7d5..458f06b 100644 info->page_offset = __PAGE_OFFSET; if (SYMBOL(_stext) == NOT_FOUND_SYMBOL) { +-- +2.7.4 + diff --git a/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile_1.6.4.bb b/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile_1.6.5.bb index 33194b8504..413b413a9f 100644 --- a/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile_1.6.4.bb +++ b/meta-openembedded/meta-oe/recipes-kernel/makedumpfile/makedumpfile_1.6.5.bb @@ -25,8 +25,8 @@ SRC_URI = "\ file://0001-makedumpfile-replace-hardcode-CFLAGS.patch \ file://0002-mem_section-Support-only-46-bit-for-MAX_PHYSMEM_BITS.patch \ " -SRC_URI[md5sum] = "7dfbca19f487604c271e2892ba07f4bd" -SRC_URI[sha256sum] = "7e06f72d5f291fcab9e92975f405a76e37d4f7fc8fa4172f199636398ae812b1" +SRC_URI[md5sum] = "1737f8e8904d565629f0c9e702f92d02" +SRC_URI[sha256sum] = "5d4f1d6ded8dca6951eeabcf4bb1ebf6575288fee947529397103c040eb5c760" UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/makedumpfile/files/makedumpfile/" UPSTREAM_CHECK_REGEX = "makedumpfile/(?P<pver>\d+(\.\d+)+)/" diff --git a/meta-openembedded/meta-oe/recipes-kernel/minicoredumper/minicoredumper_2.0.0.bb b/meta-openembedded/meta-oe/recipes-kernel/minicoredumper/minicoredumper_2.0.1.bb index bae5cf4f9f..50dab8d162 100644 --- a/meta-openembedded/meta-oe/recipes-kernel/minicoredumper/minicoredumper_2.0.0.bb +++ b/meta-openembedded/meta-oe/recipes-kernel/minicoredumper/minicoredumper_2.0.1.bb @@ -1,7 +1,7 @@ SUMMARY = "minicoredumper provides an alternate core dump facility for Linux \ to allow minimal and customized crash dumps" LICENSE = " LGPLv2.1 & BSD-2-Clause" -LIC_FILES_CHKSUM = "file://COPYING;md5=aa846ae365f71b69e9fa0d21a56391ec \ +LIC_FILES_CHKSUM = "file://COPYING;md5=71827c617ec7b45a0dd23658347cc1e9 \ file://COPYING.BSD;md5=b915ac80d5236d6aa659cb986daf00e5 \ file://COPYING.LGPLv2.1;md5=321bf41f280cf805086dd5a720b37785 \ " @@ -9,14 +9,13 @@ DEPENDS = "elfutils dbus dbus-glib-native glib-2.0 dbus-glib util-linux json-c" inherit autotools pkgconfig systemd update-rc.d -SRCREV = "1c0d5960b0bb4bac7566e6afe8bc9705399cc76b" +SRCREV = "16a0d44f1725eaa93096eaa0e086f42ef4c2712c" PR .= "+git${SRCPV}" SRC_URI = "git://git.linuxfoundation.org/diamon/minicoredumper.git;protocol=http \ file://minicoredumper.service \ file://minicoredumper.init \ - file://0001-minicoredumper-Initialize-pointer-to-config-struct-t.patch \ " S = "${WORKDIR}/git" diff --git a/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile.inc b/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile.inc index 349e2bf543..515ea8faf7 100644 --- a/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile.inc +++ b/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile.inc @@ -25,6 +25,7 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz \ file://run-ptest \ file://root-home-dir.patch \ file://0001-Add-rmb-definition-for-NIOS2-architecture.patch \ + file://0001-replace-sym_iterator-0-with-sym_iterator.patch \ " UPSTREAM_CHECK_REGEX = "oprofile-(?P<pver>\d+(\.\d+)+)/" UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/oprofile/files/oprofile/" diff --git a/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile/0001-replace-sym_iterator-0-with-sym_iterator.patch b/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile/0001-replace-sym_iterator-0-with-sym_iterator.patch new file mode 100644 index 0000000000..5fd23f809a --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-kernel/oprofile/oprofile/0001-replace-sym_iterator-0-with-sym_iterator.patch @@ -0,0 +1,131 @@ +From b7c1a2e2b0f4657fe291324ca409224f3321c9ff Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Tue, 12 Feb 2019 11:58:34 -0800 +Subject: [PATCH] replace (sym_iterator)0 with sym_iterator() + +clang/libc++ find this error + +libpp/xml_utils.cpp:409:43: error: calling a private constructor of class 'std::__1::__wrap_iter<const sym +bol_entry *const *>' +| { lo = hi = 0; name = ""; begin = end = (sym_iterator)0;} +| ^ +| + +default constructed iterator isn't supposed to be used for anything + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + libpp/xml_utils.cpp | 26 +++++++++++++------------- + 1 file changed, 13 insertions(+), 13 deletions(-) + +diff --git a/libpp/xml_utils.cpp b/libpp/xml_utils.cpp +index 3de41e5..f45d3ae 100644 +--- a/libpp/xml_utils.cpp ++++ b/libpp/xml_utils.cpp +@@ -73,7 +73,7 @@ void dump_symbol(string const & prefix, sym_iterator it, bool want_nl = true) + + void dump_symbols(string const & prefix, sym_iterator b, sym_iterator e) + { +- if (b == (sym_iterator)0) ++ if (b == sym_iterator()) + return; + + for (sym_iterator it = b; it != e; ++it) +@@ -167,7 +167,7 @@ string xml_utils::get_profile_header(string cpu_name, double const speed) + } + + str << init_attr(CPU_NAME, cpu_type) << endl; +- if (processor.size() > 0) ++ if (processor.size() > 0) + str << init_attr(PROCESSOR, string(processor)) << endl; + if (nr_cpus > 1) str << init_attr(SEPARATED_CPUS, nr_cpus) << endl; + str << init_attr(MHZ, speed) << endl; +@@ -320,11 +320,11 @@ void xml_utils::build_subclasses(ostream & out) + (*sc_ptr)[new_index].subclass_name = subclass_name; + out << open_element(CLASS, true); + out << init_attr(NAME, subclass_name); +- if (nr_cpus > 1) ++ if (nr_cpus > 1) + out << init_attr(CPU_NUM, pclass.ptemplate.cpu); +- if (nr_events > 1) ++ if (nr_events > 1) + out << init_attr(EVENT_NUM, event); +- if (has_nonzero_masks) ++ if (has_nonzero_masks) + out << init_attr(EVENT_MASK, pclass.ptemplate.unitmask); + out << close_element(); + } +@@ -406,7 +406,7 @@ xml_utils::output_summary_data(ostream & out, count_array_t const & summary, siz + class module_info { + public: + module_info() +- { lo = hi = 0; name = ""; begin = end = (sym_iterator)0;} ++ { lo = hi = 0; name = ""; begin = end = sym_iterator();} + void dump(); + void build_module(string const & n, sym_iterator it, + size_t l, size_t h); +@@ -540,21 +540,21 @@ void module_info::add_to_summary(count_array_t const & counts) + + void module_info::set_begin(sym_iterator b) + { +- if (begin == (sym_iterator)0) ++ if (begin == sym_iterator()) + begin = b; + } + + + void module_info::set_end(sym_iterator e) + { +- if (end == (sym_iterator)0) ++ if (end == sym_iterator()) + end = e; + } + + + bool module_info::is_closed(string const & n) + { +- return (name == n) && end != (sym_iterator)0; ++ return (name == n) && end != sym_iterator(); + } + + +@@ -585,7 +585,7 @@ void module_info::output_summary(ostream & out) + + void module_info::output_symbols(ostream & out, bool is_module) + { +- if (begin == (sym_iterator)0) ++ if (begin == sym_iterator()) + return; + + for (sym_iterator it = begin; it != end; ++it) +@@ -606,7 +606,7 @@ void binary_info::close_binary(sym_iterator it) + void binary_info::dump() + { + cverb << vxml << "app_name=" << name << endl; +- if (begin != (sym_iterator)0) ++ if (begin != sym_iterator()) + dump_symbols(" ", begin, end); + + for (size_t i = 0; i < nr_modules; ++i) +@@ -648,7 +648,7 @@ add_module_symbol(string const & module, string const & app, + // mark end of enclosing binary symbols if there have been any + // NOTE: it is possible for the binary's symbols to follow its + // module symbols +- if (begin != (sym_iterator)0 && end == (sym_iterator)0) ++ if (begin != sym_iterator() && end == sym_iterator()) + set_end(it); + + // build the new module +@@ -718,7 +718,7 @@ summarize_processes(extra_images const & extra_found_images) + { + // add modules to the appropriate threads in the process hierarchy + for (sym_iterator it = symbols_begin ; it != symbols_end; ++it) { +- string binary = get_image_name((*it)->app_name, ++ string binary = get_image_name((*it)->app_name, + image_name_storage::int_filename, extra_found_images); + string module = get_image_name((*it)->image_name, + image_name_storage::int_filename, extra_found_images); +-- +2.20.1 + diff --git a/meta-openembedded/meta-oe/recipes-multimedia/faad2/faad2_2.7.bb b/meta-openembedded/meta-oe/recipes-multimedia/faad2/faad2_2.7.bb deleted file mode 100644 index 9e5a3817aa..0000000000 --- a/meta-openembedded/meta-oe/recipes-multimedia/faad2/faad2_2.7.bb +++ /dev/null @@ -1,31 +0,0 @@ -SUMMARY = "An open source MPEG-4 and MPEG-2 AAC decoding library" -HOMEPAGE = "http://www.audiocoding.com/faad2.html" -SECTION = "libs" -LICENSE = "GPLv2" - -LIC_FILES_CHKSUM = "file://COPYING;md5=381c8cbe277a7bc1ee2ae6083a04c958" - -LICENSE_FLAGS = "commercial" - -PR = "r1" - -inherit autotools - -SRC_URI = "${SOURCEFORGE_MIRROR}/faac/faad2-src/faad2-${PV}/${BP}.tar.bz2;name=faad2 \ -" - -SRC_URI[faad2.md5sum] = "4c332fa23febc0e4648064685a3d4332" -SRC_URI[faad2.sha256sum] = "14561b5d6bc457e825bfd3921ae50a6648f377a9396eaf16d4b057b39a3f63b5" - -PACKAGES =+ "libfaad libfaad-dev libmp4ff libmp4ff-dev" - -FILES_${PN} = "${bindir}/faad" - -FILES_libfaad = "${libdir}/libfaad.so.*" -FILES_libfaad-dev = "${libdir}/libfaad.so ${libdir}/libfaad.la ${includedir}/faad.h" -FILES_libfaad-staticdev = "${libdir}/libfaad.a" - -FILES_libmp4ff = "${libdir}/libmp4ff.so.*" -FILES_libmp4ff-dev = "${libdir}/libmp4ff.so ${libdir}/libmp4ff.la ${includedir}/mp4ff.h" -FILES_libmp4ff-staticdev = "${libdir}/libmp4ff.a" - diff --git a/meta-openembedded/meta-oe/recipes-multimedia/faad2/faad2_2.8.8.bb b/meta-openembedded/meta-oe/recipes-multimedia/faad2/faad2_2.8.8.bb new file mode 100644 index 0000000000..8b3aafc3b5 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/faad2/faad2_2.8.8.bb @@ -0,0 +1,14 @@ +SUMMARY = "An open source MPEG-4 and MPEG-2 AAC decoding library" +HOMEPAGE = "http://www.audiocoding.com/faad2.html" +SECTION = "libs" +LICENSE = "GPLv2" + +LIC_FILES_CHKSUM = "file://COPYING;md5=381c8cbe277a7bc1ee2ae6083a04c958" + +LICENSE_FLAGS = "commercial" + +SRC_URI = "${SOURCEFORGE_MIRROR}/faac/faad2-src/faad2-2.8.0/${BP}.tar.gz" +SRC_URI[md5sum] = "28f6116efdbe9378269f8a6221767d1f" +SRC_URI[sha256sum] = "985c3fadb9789d2815e50f4ff714511c79c2710ac27a4aaaf5c0c2662141426d" + +inherit autotools lib_package diff --git a/meta-openembedded/meta-oe/recipes-multimedia/jack/jack/0001-Fix-OSX-build.patch b/meta-openembedded/meta-oe/recipes-multimedia/jack/jack/0001-Fix-OSX-build.patch new file mode 100644 index 0000000000..d9a3ab7cc5 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-multimedia/jack/jack/0001-Fix-OSX-build.patch @@ -0,0 +1,27 @@ +From dd65685c24bb25a800ed42388ed0a1e8792b2ed2 Mon Sep 17 00:00:00 2001 +From: falkTX <falktx@gmail.com> +Date: Sat, 24 Nov 2018 14:29:58 +0100 +Subject: [PATCH] Fix OSX build + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +Upstream-Status: Backport [https://github.com/jackaudio/jack2/commit/d851fada460d42508a6f82b19867f63853062583] +--- + posix/JackNetUnixSocket.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/posix/JackNetUnixSocket.cpp b/posix/JackNetUnixSocket.cpp +index 7a5585ef..a4cb5036 100644 +--- a/posix/JackNetUnixSocket.cpp ++++ b/posix/JackNetUnixSocket.cpp +@@ -169,7 +169,7 @@ namespace Jack + + int JackNetUnixSocket::Bind() + { +- return bind(fSockfd, reinterpret_cast<socket_address_t*>(&fRecvAddr), sizeof(socket_address_t)); ++ return ::bind(fSockfd, reinterpret_cast<socket_address_t*>(&fRecvAddr), sizeof(socket_address_t)); + } + + int JackNetUnixSocket::BindWith(const char* ip) +-- +2.20.1 + diff --git a/meta-openembedded/meta-oe/recipes-multimedia/jack/jack_git.bb b/meta-openembedded/meta-oe/recipes-multimedia/jack/jack_git.bb index 52559cb367..477af8ced0 100644 --- a/meta-openembedded/meta-oe/recipes-multimedia/jack/jack_git.bb +++ b/meta-openembedded/meta-oe/recipes-multimedia/jack/jack_git.bb @@ -16,6 +16,7 @@ DEPENDS = "libsamplerate0 libsndfile1 readline" SRC_URI = "git://github.com/jackaudio/jack2.git \ file://0001-Python-3.7-fixes-2126.patch \ + file://0001-Fix-OSX-build.patch \ " SRCREV = "c1647819eed6d11f94b21981d9c869629299f357" PV = "1.9.12" @@ -25,6 +26,8 @@ inherit waf pkgconfig PACKAGECONFIG ??= "alsa" PACKAGECONFIG[alsa] = "--alsa=yes,--alsa=no,alsa-lib" +# --dbus only stops building jackd -> add --classic +PACKAGECONFIG[dbus] = "--dbus --classic,,dbus" PACKAGECONFIG[opus] = "--opus=yes,--opus=no,libopus" # portaudio is for windows builds only @@ -35,6 +38,11 @@ PACKAGES =+ "libjack jack-server jack-utils" RDEPENDS_jack-dev_remove = "${PN} (= ${EXTENDPKGV})" FILES_libjack = "${libdir}/*.so.* ${libdir}/jack/*.so" -FILES_jack-server = "${bindir}/jackd" +FILES_jack-server = " \ + ${datadir}/dbus-1/services \ + ${bindir}/jackdbus \ + ${bindir}/jackd \ +" FILES_jack-utils = "${bindir}/*" + FILES_${PN}-doc += " ${datadir}/jack-audio-connection-kit/reference/html/* " diff --git a/meta-openembedded/meta-oe/recipes-multimedia/live555/live555.inc b/meta-openembedded/meta-oe/recipes-multimedia/live555/live555.inc index 14ea664422..4fe744c1ab 100644 --- a/meta-openembedded/meta-oe/recipes-multimedia/live555/live555.inc +++ b/meta-openembedded/meta-oe/recipes-multimedia/live555/live555.inc @@ -8,7 +8,7 @@ LICENSE = "LGPLv3" SECTION = "devel" URLV = "${@d.getVar('PV')[0:4]}.${@d.getVar('PV')[4:6]}.${@d.getVar('PV')[6:8]}" -SRC_URI = "http://www.live555.com/liveMedia/public/live.${URLV}.tar.gz \ +SRC_URI = "http://www.live555.com/live.${URLV}.tar.gz \ file://config.linux-cross" # only latest live version stays on http://www.live555.com/liveMedia/public/, add mirror for older MIRRORS += "http://www.live555.com/liveMedia/public/ http://distcache.FreeBSD.org/ports-distfiles/ \n" diff --git a/meta-openembedded/meta-oe/recipes-multimedia/live555/live555_20170410.bb b/meta-openembedded/meta-oe/recipes-multimedia/live555/live555_20190306.bb index 27fc429873..fa6057dc2b 100644 --- a/meta-openembedded/meta-oe/recipes-multimedia/live555/live555_20170410.bb +++ b/meta-openembedded/meta-oe/recipes-multimedia/live555/live555_20190306.bb @@ -3,7 +3,6 @@ require live555.inc LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \ file://COPYING.LESSER;md5=e6a600fd5e1d9cbde2d983680233ad02 \ " - -SRC_URI[md5sum] = "b7084a72aeb09549c8b248f8cc308841" -SRC_URI[sha256sum] = "4c37d9c828f9028403997272e49968c260385dbbaef62e28ba24faef0dda868b" +SRC_URI[md5sum] = "a84ca3946d899f5592c7d31012ed2fe3" +SRC_URI[sha256sum] = "0bd0c26d980425d9a419d835193e292a08a968f175da1902da4b495f126d5abd" diff --git a/meta-openembedded/meta-oe/recipes-multimedia/webm/libvpx_1.6.1.bb b/meta-openembedded/meta-oe/recipes-multimedia/webm/libvpx_1.7.0.bb index e17cda1a97..1d04ed1bdb 100644 --- a/meta-openembedded/meta-oe/recipes-multimedia/webm/libvpx_1.6.1.bb +++ b/meta-openembedded/meta-oe/recipes-multimedia/webm/libvpx_1.7.0.bb @@ -7,11 +7,13 @@ LICENSE = "BSD" LIC_FILES_CHKSUM = "file://LICENSE;md5=d5b04755015be901744a78cc30d390d4" -SRC_URI += "http://storage.googleapis.com/downloads.webmproject.org/releases/webm/${BP}.tar.bz2 \ +# SRCREV for 1.7.0 +SRCREV = "133f83e2c34b8d770ae06aa595cef3e254173fcb" +SRC_URI += "git://chromium.googlesource.com/webm/libvpx;protocol=https \ file://libvpx-configure-support-blank-prefix.patch \ " -SRC_URI[md5sum] = "a19518c8111fa93bdabdd85259162611" -SRC_URI[sha256sum] = "1c2c0c2a97fba9474943be34ee39337dee756780fc12870ba1dc68372586a819" + +S = "${WORKDIR}/git" # ffmpeg links with this and fails # sysroots/armv4t-oe-linux-gnueabi/usr/lib/libvpx.a(vpx_encoder.c.o)(.text+0xc4): unresolvable R_ARM_THM_CALL relocation against symbol `memcpy@@GLIBC_2.4' diff --git a/meta-openembedded/meta-oe/recipes-security/nmap/nmap_7.70.bb b/meta-openembedded/meta-oe/recipes-security/nmap/nmap_7.70.bb index e878038266..b1b150a7d0 100644 --- a/meta-openembedded/meta-oe/recipes-security/nmap/nmap_7.70.bb +++ b/meta-openembedded/meta-oe/recipes-security/nmap/nmap_7.70.bb @@ -42,6 +42,8 @@ export PYTHON_SITEPACKAGES_DIR do_configure() { autoconf + install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.guess ${S} + install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.sub ${S} oe_runconf } diff --git a/meta-openembedded/meta-oe/recipes-shells/dash/dash_0.5.9.1.bb b/meta-openembedded/meta-oe/recipes-shells/dash/dash_0.5.10.2.bb index 6dee66f691..18566284c0 100644 --- a/meta-openembedded/meta-oe/recipes-shells/dash/dash_0.5.9.1.bb +++ b/meta-openembedded/meta-oe/recipes-shells/dash/dash_0.5.10.2.bb @@ -10,8 +10,8 @@ inherit autotools update-alternatives SRC_URI = "http://gondor.apana.org.au/~herbert/${BPN}/files/${BP}.tar.gz \ file://0001-Fix-printf-format-errors-with-clang.patch \ " -SRC_URI[md5sum] = "6472702a8d9760d166ef8333dcb527a6" -SRC_URI[sha256sum] = "5ecd5bea72a93ed10eb15a1be9951dd51b52e5da1d4a7ae020efd9826b49e659" +SRC_URI[md5sum] = "8f485f126c05d0ab800e85abfe1987aa" +SRC_URI[sha256sum] = "3c663919dc5c66ec991da14c7cf7e0be8ad00f3db73986a987c118862b5f6071" EXTRA_OECONF += "--bindir=${base_bindir}" diff --git a/meta-openembedded/meta-oe/recipes-shells/mksh/mksh_56.bb b/meta-openembedded/meta-oe/recipes-shells/mksh/mksh_56.bb new file mode 100644 index 0000000000..e4eb54286a --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-shells/mksh/mksh_56.bb @@ -0,0 +1,36 @@ +DESCRIPTION = "The MirBSD Korn Shell - an enhanced version of the public domain ksh" +HOMEPAGE = "http://www.mirbsd.org/mksh.htm" +SECTION = "base/shell" + +LICENSE = "${@bb.utils.contains("TCLIBC", "glibc", "MirOS & ISC", "MirOS", d)}" +LIC_FILES_CHKSUM = "file://main.c;beginline=6;endline=25;md5=7204fec4d12912f2a13fe8745bc356f9 \ + file://strlcpy.c;beginline=1;endline=17;md5=d953f28f0c43ee29e238ec9bc15df2a0 \ + " + +SRC_URI = "http://www.mirbsd.org/MirOS/dist/mir/mksh/mksh-R56c.tgz" + +SRC_URI[md5sum] = "4799a9ac6d55871d79ba66713d928663" +SRC_URI[sha256sum] = "dd86ebc421215a7b44095dc13b056921ba81e61b9f6f4cdab08ca135d02afb77" + +inherit update-alternatives + +S = "${WORKDIR}/${BPN}" + +ALTERNATIVE_${PN} = "sh" +ALTERNATIVE_LINK_NAME[sh] = "${base_bindir}/sh" +ALTERNATIVE_TARGET[sh] = "${base_bindir}/${BPN}" +ALTERNATIVE_PRIORITY = "100" + +do_compile() { + sh ${S}/Build.sh -r +} + +do_install() { + install -d ${D}${base_bindir} + install -m 0755 ${S}/mksh ${D}${base_bindir}/mksh + + install -d ${D}${sysconfdir}/skel + install -m 0644 ${S}/dot.mkshrc ${D}${sysconfdir}/skel/.mkshrc +} + +RPROVIDES_${PN} += "${@bb.utils.contains('DISTRO_FEATURES', 'usrmerge', '/bin/sh', '', d)}" diff --git a/meta-openembedded/meta-oe/recipes-support/ace-cloud-editor/ace-cloud-editor_git.bb b/meta-openembedded/meta-oe/recipes-support/ace-cloud-editor/ace-cloud-editor_git.bb new file mode 100644 index 0000000000..4ea6c8a295 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/ace-cloud-editor/ace-cloud-editor_git.bb @@ -0,0 +1,22 @@ +DESCRIPTION = "Ace is a code editor written in JavaScript." +SUMMARY = "Ace is a code editor written in JavaScript. This repository has only generated files" + +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=794d11c5219c59c9efa2487c2b4066b2" + +SRC_URI = "git://github.com/ajaxorg/ace-builds.git;protocol=https" + +PV = "02.07.17+git${SRCPV}" +SRCREV = "812e2c56aed246931a667f16c28b096e34597016" + +FILES_${PN} = "${datadir}/ace-builds" + +S = "${WORKDIR}/git" + +DEPENDS += "rsync-native" + +do_install () { + install -d ${D}/${datadir}/ace-builds/src-noconflict + rsync -r --exclude=".*" ${S}/src-noconflict/* ${D}/${datadir}/ace-builds/src-noconflict +} + diff --git a/meta-openembedded/meta-oe/recipes-support/asio/asio_1.12.1.bb b/meta-openembedded/meta-oe/recipes-support/asio/asio_1.12.2.bb index 28cd9c0e19..35f875fdc3 100644 --- a/meta-openembedded/meta-oe/recipes-support/asio/asio_1.12.1.bb +++ b/meta-openembedded/meta-oe/recipes-support/asio/asio_1.12.2.bb @@ -6,7 +6,7 @@ HOMEPAGE = "http://think-async.com/Asio" SECTION = "libs" LICENSE = "BSL-1.0" -DEPENDS = "boost openssl" +DEPENDS = "openssl" SRC_URI = "${SOURCEFORGE_MIRROR}/asio/${BP}.tar.bz2" @@ -16,7 +16,11 @@ ALLOW_EMPTY_${PN} = "1" LIC_FILES_CHKSUM = "file://COPYING;md5=3e73f311a3af69e6df275e8c3b1c09b5" -SRC_URI[md5sum] = "037854d113024f57c9753d6326b339bc" -SRC_URI[sha256sum] = "a9091b4de847539fa5b2259bf76a5355339c7eaaa5e33d7d4ae74d614c21965a" +SRC_URI[md5sum] = "312e53385e2daad10f08d57f91ad3431" +SRC_URI[sha256sum] = "4e27dcb37456ba707570334b91f4798721111ed67b69915685eac141895779aa" SRC_URI = "${SOURCEFORGE_MIRROR}/asio/${BP}.tar.bz2" + +PACKAGECONFIG ??= "boost" + +PACKAGECONFIG[boost] = "--with-boost,--without-boost,boost" diff --git a/meta-openembedded/meta-oe/recipes-support/atop/atop/0001-add-sys-sysmacros.h-for-major-minor-macros.patch b/meta-openembedded/meta-oe/recipes-support/atop/atop/0001-add-sys-sysmacros.h-for-major-minor-macros.patch deleted file mode 100644 index 5646061971..0000000000 --- a/meta-openembedded/meta-oe/recipes-support/atop/atop/0001-add-sys-sysmacros.h-for-major-minor-macros.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 13f3771655f859d5e0332dd65b9c43f572f6359d Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Sat, 11 Aug 2018 16:02:06 -0700 -Subject: [PATCH] add sys/sysmacros.h for major/minor macros - -photosyst.c:1465:19: error: called object 'major' is not a function or function pointer - dmp->major = major(statbuf.st_rdev); - -Upstream-Status: Pending -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - photosyst.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/photosyst.c b/photosyst.c -index 38828ec..caed352 100644 ---- a/photosyst.c -+++ b/photosyst.c -@@ -152,6 +152,7 @@ - static const char rcsid[] = "$Id: photosyst.c,v 1.38 2010/11/19 07:40:40 gerlof Exp $"; - - #include <sys/types.h> -+#include <sys/sysmacros.h> - #include <stdio.h> - #include <string.h> - #include <unistd.h> diff --git a/meta-openembedded/meta-oe/recipes-support/atop/atop/0001-atop.daily-atop.init-atop-pm.sh-Avoid-using-bash.patch b/meta-openembedded/meta-oe/recipes-support/atop/atop/0001-atop.daily-atop.init-atop-pm.sh-Avoid-using-bash.patch new file mode 100644 index 0000000000..facb257be6 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/atop/atop/0001-atop.daily-atop.init-atop-pm.sh-Avoid-using-bash.patch @@ -0,0 +1,67 @@ +From ffc8ba8d324243a923abe48e9758adecb03d24a4 Mon Sep 17 00:00:00 2001 +From: Peter Kjellerstedt <pkj@axis.com> +Date: Tue, 12 Feb 2019 21:25:23 +0100 +Subject: [PATCH] atop.daily, atop.init, atop-pm.sh: Avoid using bash + +Avoid using bash and bashisms when not necesary. On some systems, +e.g., embedded products, bash may not be available by default. + +Upstream-Status: Submitted [https://github.com/Atoptool/atop/pull/50] +Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> +--- + atop-pm.sh | 2 +- + atop.daily | 4 ++-- + atop.init | 4 ++-- + 3 files changed, 5 insertions(+), 5 deletions(-) + +diff --git a/atop-pm.sh b/atop-pm.sh +index 7f41a86..3ff4ab5 100755 +--- a/atop-pm.sh ++++ b/atop-pm.sh +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/bin/sh + + case "$1" in + pre) /usr/bin/systemctl stop atop +diff --git a/atop.daily b/atop.daily +index 57a9507..fe5a11b 100755 +--- a/atop.daily ++++ b/atop.daily +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/bin/sh + + LOGOPTS="-R" # default options + LOGINTERVAL=600 # default interval in seconds +@@ -38,7 +38,7 @@ then + + while ps -p `cat "$PIDFILE"` > /dev/null + do +- let CNT+=1 ++ CNT=$((CNT + 1)) + + if [ $CNT -gt 5 ] + then +diff --git a/atop.init b/atop.init +index e6e11dc..03c3f02 100755 +--- a/atop.init ++++ b/atop.init +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/bin/sh + # + # atop Startup script for the Atop process logging in background + # +@@ -47,7 +47,7 @@ case "$1" in + + while ps -p `cat $PIDFILE` > /dev/null + do +- let CNT+=1 ++ CNT=$((CNT + 1)) + + if [ $CNT -gt 5 ] + then +-- +2.12.0 + diff --git a/meta-openembedded/meta-oe/recipes-support/atop/atop/fix-permissions.patch b/meta-openembedded/meta-oe/recipes-support/atop/atop/fix-permissions.patch index ee74199939..8488b38000 100644 --- a/meta-openembedded/meta-oe/recipes-support/atop/atop/fix-permissions.patch +++ b/meta-openembedded/meta-oe/recipes-support/atop/atop/fix-permissions.patch @@ -1,15 +1,22 @@ -Update permissions of executable files that remove setuid bit and make everyone -could read. +From d9498d10d0e8241749835dbc9fa229465d4fdfd7 Mon Sep 17 00:00:00 2001 +From: Kai Kang <kai.kang@windriver.com> +Date: Wed, 6 Feb 2019 13:58:04 +0000 +Subject: [PATCH] Fix permissions -Upstream-Status: Inappropriate [embedded specific] +Update permissions of executable files that remove setuid bit and make +everyone could read. +Upstream-Status: Inappropriate [embedded specific] Signed-off-by: Kai Kang <kai.kang@windriver.com> --- + Makefile | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + diff --git a/Makefile b/Makefile -index a65b9b6..21d9828 100644 +index 3bf5929..1221ee4 100644 --- a/Makefile +++ b/Makefile -@@ -66,7 +66,7 @@ systemdinstall: genericinstall +@@ -72,7 +72,7 @@ systemdinstall: genericinstall chmod 0644 $(DESTDIR)$(SYSDPATH)/atopacct.service cp atop.cronsystemd $(DESTDIR)$(CRNPATH)/atop cp atop-pm.sh $(DESTDIR)$(PMPATHD) @@ -18,7 +25,7 @@ index a65b9b6..21d9828 100644 # # only when making on target system: # -@@ -91,11 +91,11 @@ sysvinstall: genericinstall +@@ -97,11 +97,11 @@ sysvinstall: genericinstall # if [ -d $(DESTDIR)$(PMPATH1) ]; \ then cp 45atoppm $(DESTDIR)$(PMPATH1); \ @@ -32,7 +39,7 @@ index a65b9b6..21d9828 100644 fi # # -@@ -139,7 +139,7 @@ genericinstall: atop atopacctd +@@ -145,7 +145,7 @@ genericinstall: atop atopacctd atopconvert # cp atop $(DESTDIR)$(BINPATH)/atop chown root $(DESTDIR)$(BINPATH)/atop @@ -41,12 +48,12 @@ index a65b9b6..21d9828 100644 ln -sf atop $(DESTDIR)$(BINPATH)/atopsar cp atopacctd $(DESTDIR)$(SBINPATH)/atopacctd chown root $(DESTDIR)$(SBINPATH)/atopacctd -@@ -147,7 +147,7 @@ genericinstall: atop atopacctd - cp atop $(DESTDIR)$(BINPATH)/atop-$(VERS) - ln -sf atop-$(VERS) $(DESTDIR)$(BINPATH)/atopsar-$(VERS) +@@ -159,7 +159,7 @@ genericinstall: atop atopacctd atopconvert + chown root $(DESTDIR)$(BINPATH)/atopconvert + chmod 0711 $(DESTDIR)$(BINPATH)/atopconvert cp atop.daily $(DESTDIR)$(SCRPATH) - chmod 0711 $(DESTDIR)$(SCRPATH)/atop.daily + chmod 0755 $(DESTDIR)$(SCRPATH)/atop.daily cp man/atop.1 $(DESTDIR)$(MAN1PATH) cp man/atopsar.1 $(DESTDIR)$(MAN1PATH) - cp man/atoprc.5 $(DESTDIR)$(MAN5PATH) + cp man/atopconvert.1 $(DESTDIR)$(MAN1PATH) diff --git a/meta-openembedded/meta-oe/recipes-support/atop/atop/remove-bashisms.patch b/meta-openembedded/meta-oe/recipes-support/atop/atop/remove-bashisms.patch deleted file mode 100644 index f1fcbfed76..0000000000 --- a/meta-openembedded/meta-oe/recipes-support/atop/atop/remove-bashisms.patch +++ /dev/null @@ -1,33 +0,0 @@ -Upstream-Status: Inappropriate [embedded specific] - -Signed-off-by: Kai Kang <kai.kang@windriver.com> ---- -diff --git a/atop-pm.sh b/atop-pm.sh -index 7f41a86..3ff4ab5 100755 ---- a/atop-pm.sh -+++ b/atop-pm.sh -@@ -1,4 +1,4 @@ --#!/bin/bash -+#!/bin/sh - - case "$1" in - pre) /usr/bin/systemctl stop atop -diff --git a/atop.daily b/atop.daily -index 24d33bd..f29bd94 100755 ---- a/atop.daily -+++ b/atop.daily -@@ -1,4 +1,4 @@ --#!/bin/bash -+#!/bin/sh - - CURDAY=`date +%Y%m%d` - LOGPATH=/var/log/atop -@@ -16,7 +16,7 @@ then - - while ps -p `cat $PIDFILE` > /dev/null - do -- let CNT+=1 -+ CNT=$((CNT+1)) - - if [ $CNT -gt 5 ] - then diff --git a/meta-openembedded/meta-oe/recipes-support/atop/atop/sysvinit-implement-status.patch b/meta-openembedded/meta-oe/recipes-support/atop/atop/sysvinit-implement-status.patch index 5994d3e08e..1145a24934 100644 --- a/meta-openembedded/meta-oe/recipes-support/atop/atop/sysvinit-implement-status.patch +++ b/meta-openembedded/meta-oe/recipes-support/atop/atop/sysvinit-implement-status.patch @@ -1,11 +1,18 @@ +From bdd068873ed0979027c21773939bdb18046a8756 Mon Sep 17 00:00:00 2001 +From: Kai Kang <kai.kang@windriver.com> +Date: Wed, 6 Feb 2019 13:58:04 +0000 +Subject: [PATCH] sysvinit: Implement status + Implement the sub-command status. Upstream-Status: Pending - Signed-off-by: Kai Kang <kai.kang@windriver.com> --- + atop.init | 3 +++ + 1 file changed, 3 insertions(+) + diff --git a/atop.init b/atop.init -index 108bdc5..9f89fad 100755 +index e6e11dc..e7b226d 100755 --- a/atop.init +++ b/atop.init @@ -18,6 +18,8 @@ diff --git a/meta-openembedded/meta-oe/recipes-support/atop/atop_2.3.0.bb b/meta-openembedded/meta-oe/recipes-support/atop/atop_2.4.0.bb index 302813c2ea..5bde965196 100644 --- a/meta-openembedded/meta-oe/recipes-support/atop/atop_2.3.0.bb +++ b/meta-openembedded/meta-oe/recipes-support/atop/atop_2.4.0.bb @@ -17,13 +17,12 @@ DEPENDS = "ncurses zlib" SRC_URI = "http://www.atoptool.nl/download/${BP}.tar.gz \ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'file://volatiles.atop.conf', 'file://volatiles.99_atop', d)} \ - file://remove-bashisms.patch \ file://fix-permissions.patch \ file://sysvinit-implement-status.patch \ - file://0001-add-sys-sysmacros.h-for-major-minor-macros.patch \ + file://0001-atop.daily-atop.init-atop-pm.sh-Avoid-using-bash.patch \ " -SRC_URI[md5sum] = "48e1dbef8c7d826e68829a8d5fc920fc" -SRC_URI[sha256sum] = "73e4725de0bafac8c63b032e8479e2305e3962afbe977ec1abd45f9e104eb264" +SRC_URI[md5sum] = "1077da884ed94f2bc3c81ac3ab970436" +SRC_URI[sha256sum] = "be1c010a77086b7d98376fce96514afcd73c3f20a8d1fe01520899ff69a73d69" do_compile() { oe_runmake all @@ -49,7 +48,7 @@ do_install() { inherit systemd -SYSTEMD_SERVICE_${PN} = "atop.service" +SYSTEMD_SERVICE_${PN} = "atop.service atopgpu.service" SYSTEMD_AUTO_ENABLE = "disable" FILES_${PN} += "${systemd_unitdir}/system-sleep" diff --git a/meta-openembedded/meta-oe/recipes-support/bdwgc/bdwgc/0001-configure.ac-add-check-for-NO_GETCONTEXT-definition.patch b/meta-openembedded/meta-oe/recipes-support/bdwgc/bdwgc/0001-configure.ac-add-check-for-NO_GETCONTEXT-definition.patch deleted file mode 100644 index 8ef774f0f2..0000000000 --- a/meta-openembedded/meta-oe/recipes-support/bdwgc/bdwgc/0001-configure.ac-add-check-for-NO_GETCONTEXT-definition.patch +++ /dev/null @@ -1,29 +0,0 @@ -configure.ac: add check for NO_GETCONTEXT definition - -Signed-off-by: Samuel Martin <s.martin49@gmail.com> -[yann.morin.1998@free.fr: add a comment, change variable name, use - AS_IF, remove debug traces, use AC_CHECK_FUNCS (as suggested by - Thomas)] -Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> -Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> - ---- -Upstream-Status: Pending - configure.ac | 6 ++++++ - 1 file changed, 6 insertions(+) - ---- bdwgc-7.2f.orig/configure.ac 2014-06-01 19:00:47.000000000 +0200 -+++ bdwgc-7.2f/configure.ac 2014-12-23 14:13:11.585716713 +0100 -@@ -365,6 +365,12 @@ - AC_MSG_RESULT($ac_cv_fno_strict_aliasing) - fi - -+# Check for getcontext (uClibc can be configured without it, for example) -+AC_CHECK_FUNCS([getcontext]) -+AS_IF([test "$ac_cv_func_getcontext" = "no"], -+ [CFLAGS="$CFLAGS -DNO_GETCONTEXT" -+ CPPFLAGS="$CPPFLAGS -DNO_GETCONTEXT"]) -+ - case "$host" in - # While IRIX 6 has libdl for the O32 and N32 ABIs, it's missing for N64 - # and unnecessary everywhere. diff --git a/meta-openembedded/meta-oe/recipes-support/bdwgc/bdwgc/musl_header_fix.patch b/meta-openembedded/meta-oe/recipes-support/bdwgc/bdwgc/musl_header_fix.patch deleted file mode 100644 index 4a18496650..0000000000 --- a/meta-openembedded/meta-oe/recipes-support/bdwgc/bdwgc/musl_header_fix.patch +++ /dev/null @@ -1,27 +0,0 @@ -Add missing header to avoid: - -| 1472659610.016355: ../git/pthread_stop_world.c: In function 'GC_brief_async_signal_safe_sleep': -| 1472659610.0540252: ../git/pthread_stop_world.c:397:22: error: storage size of 'tv' isn't known -| 1472659610.0540252: struct timeval tv; -| 1472659610.0540252: ^~ -| 1472659610.054099: ../git/pthread_stop_world.c:397:22: warning: unused variable 'tv' [-Wunused-variable] -| 1472659610.054099: struct timeval tv; -| 1472659610.054099: ^~ -| 1472659610.054099: Makefile:1530: recipe for target 'pthread_stop_world.lo' failed - -in musl builds. - -Upstream-Status: Pending - -Index: git/pthread_stop_world.c -=================================================================== ---- git.orig/pthread_stop_world.c -+++ git/pthread_stop_world.c -@@ -45,6 +45,7 @@ - #include <semaphore.h> - #include <errno.h> - #include <unistd.h> -+#include <sys/time.h> - #include "atomic_ops.h" - - /* It's safe to call original pthread_sigmask() here. */ diff --git a/meta-openembedded/meta-oe/recipes-support/bdwgc/bdwgc_7.6.0.bb b/meta-openembedded/meta-oe/recipes-support/bdwgc/bdwgc_7.6.12.bb index dcb68f0282..b1c1099bb8 100644 --- a/meta-openembedded/meta-oe/recipes-support/bdwgc/bdwgc_7.6.0.bb +++ b/meta-openembedded/meta-oe/recipes-support/bdwgc/bdwgc_7.6.12.bb @@ -19,12 +19,10 @@ DESCRIPTION = "The Boehm-Demers-Weiser conservative garbage collector can be\ HOMEPAGE = "http://www.hboehm.info/gc/" SECTION = "devel" LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://README.QUICK;md5=4f81f24ec69726c312487c2ac740e9e3" +LIC_FILES_CHKSUM = "file://README.QUICK;md5=728501f233050290314d33fb07d883eb" -SRCREV = "8ac1d84a40eb7a431fec1b8097e3f24b48fb23fa" -SRC_URI = "git://github.com/ivmai/bdwgc.git \ - file://0001-configure.ac-add-check-for-NO_GETCONTEXT-definition.patch \ - file://musl_header_fix.patch \ +SRCREV = "a46546f40d18e60c31077c2e7c8bb4e44bf1bef1" +SRC_URI = "git://github.com/ivmai/bdwgc.git;branch=release-7_6 \ " FILES_${PN}-doc = "${datadir}" diff --git a/meta-openembedded/meta-oe/recipes-support/cli11/cli11_1.6.2.bb b/meta-openembedded/meta-oe/recipes-support/cli11/cli11_1.6.2.bb index 6899b1264b..e62c1d3d13 100644 --- a/meta-openembedded/meta-oe/recipes-support/cli11/cli11_1.6.2.bb +++ b/meta-openembedded/meta-oe/recipes-support/cli11/cli11_1.6.2.bb @@ -6,11 +6,14 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=c271fee3ae28e11b24b97284d9f82887" SRCREV = "bd4dc911847d0cde7a6b41dfa626a85aab213baf" PV .= "+git${SRCPV}" -SRC_URI += "gitsm://github.com/CLIUtils/CLI11" +SRC_URI += "gitsm://github.com/CLIUtils/CLI11 \ + file://0001-Add-CLANG_TIDY-check.patch \ + " S = "${WORKDIR}/git" inherit cmake inherit ptest +EXTRA_OECMAKE += "-DCLANG_TIDY=OFF" DEPENDS += "boost" diff --git a/meta-openembedded/meta-oe/recipes-support/cli11/files/0001-Add-CLANG_TIDY-check.patch b/meta-openembedded/meta-oe/recipes-support/cli11/files/0001-Add-CLANG_TIDY-check.patch new file mode 100644 index 0000000000..bef3548a29 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/cli11/files/0001-Add-CLANG_TIDY-check.patch @@ -0,0 +1,27 @@ +From ef6310bc726a53ff6b45071633fa7b37224cae96 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Tue, 12 Feb 2019 13:22:21 -0800 +Subject: [PATCH] Add CLANG_TIDY check + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 79404b8..f68217d 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -39,7 +39,7 @@ if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME) + add_definitions(-Wall -Wextra -pedantic) + endif() + +- if(CMAKE_VERSION VERSION_GREATER 3.6) ++ if(CMAKE_VERSION VERSION_GREATER 3.6 AND CLANG_TIDY) + # Add clang-tidy if available + option(CLANG_TIDY_FIX "Perform fixes for Clang-Tidy" OFF) + find_program( +-- +2.20.1 + diff --git a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/950-fix.patch b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/950-fix.patch deleted file mode 100644 index 3ae46a1159..0000000000 --- a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/950-fix.patch +++ /dev/null @@ -1,26 +0,0 @@ -Origin: upstream -Bug: https://github.com/Microsoft/cpprestsdk/issues/950 -Last-Update: 2018-11-04 - -Index: cpprest/Release/src/utilities/asyncrt_utils.cpp -=================================================================== ---- cpprest.orig/Release/src/utilities/asyncrt_utils.cpp -+++ cpprest/Release/src/utilities/asyncrt_utils.cpp -@@ -356,7 +356,7 @@ - inline size_t count_utf8_to_utf16(const std::string& s) - { - const size_t sSize = s.size(); -- auto sData = reinterpret_cast<const UtilCharInternal_t* const>(s.data()); -+ auto const sData = reinterpret_cast<const UtilCharInternal_t*>(s.data()); - size_t result{ sSize }; - - for (size_t index = 0; index < sSize;) -@@ -441,7 +441,7 @@ - { - // Save repeated heap allocations, use the length of resulting sequence. - const size_t srcSize = s.size(); -- auto srcData = reinterpret_cast<const UtilCharInternal_t* const>(s.data()); -+ auto const srcData = reinterpret_cast<const UtilCharInternal_t*>(s.data()); - utf16string dest(count_utf8_to_utf16(s), L'\0'); - utf16string::value_type* const destData = &dest[0]; - size_t destIndex = 0; diff --git a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/disable-float-tests.patch b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/disable-float-tests.patch deleted file mode 100644 index 75f74ec658..0000000000 --- a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/disable-float-tests.patch +++ /dev/null @@ -1,25 +0,0 @@ -Description: new toolchain might have increased the float precision -Author: Gianfranco Costamagna <locutusofborg@debian.org> -Last-Update: 2017-10-28 -Forwarded: https://github.com/Microsoft/cpprestsdk/issues/576 - ---- casablanca-2.10.0.orig/Release/tests/functional/streams/istream_tests.cpp -+++ casablanca-2.10.0/Release/tests/functional/streams/istream_tests.cpp -@@ -1302,7 +1302,7 @@ void compare_float(float expected, float - { - compare_floating(expected, actual, FLT_EPSILON); - } -- -+/* - TEST(extract_floating_point) - { - std::string test_string; -@@ -1349,7 +1349,7 @@ TEST(extract_floating_point) - VERIFY_ARE_EQUAL(1 / expected, 1 / actual); - } while (!std_istream.eof()); - } -- -+*/ - TEST(extract_floating_point_with_exceptions) - { - std::vector<std::pair<std::string, std::string>> tests; diff --git a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/disable-outside-tests.patch b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/disable-outside-tests.patch deleted file mode 100644 index 2dff0d97c7..0000000000 --- a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/disable-outside-tests.patch +++ /dev/null @@ -1,142 +0,0 @@ -Description: Debian forbids calls to external websites. - -Author: Gianfranco Costamagna <locutus@debian.org> -Origin: Debian -Forwarded: not-needed -Reviewed-By: Gianfranco Costamagna <locutusofborg@debian.org> -Last-Update: 2015-11-25 - -Index: casablanca/Release/tests/functional/http/client/CMakeLists.txt -=================================================================== ---- casablanca.orig/Release/tests/functional/http/client/CMakeLists.txt -+++ casablanca/Release/tests/functional/http/client/CMakeLists.txt -@@ -12,7 +12,6 @@ - multiple_requests.cpp - oauth1_tests.cpp - oauth2_tests.cpp -- outside_tests.cpp - pipeline_stage_tests.cpp - progress_handler_tests.cpp - proxy_tests.cpp -Index: casablanca/Release/tests/functional/http/client/authentication_tests.cpp -=================================================================== ---- casablanca.orig/Release/tests/functional/http/client/authentication_tests.cpp -+++ casablanca/Release/tests/functional/http/client/authentication_tests.cpp -@@ -663,15 +663,19 @@ - VERIFY_ARE_EQUAL(return_code, response.status_code()); - } - -+/* - TEST(auth_no_data) - { - auth_test_impl(false); - } -+*/ - -+/* - TEST(unsuccessful_auth_with_basic_cred) - { - auth_test_impl(true); - } -+*/ - - TEST_FIXTURE(uri_address, set_user_options_asio_http) - { -@@ -692,7 +696,7 @@ - auto response = client.request(methods::GET).get(); - VERIFY_ARE_EQUAL(200, response.status_code()); - } -- -+/* - TEST_FIXTURE(uri_address, set_user_options_asio_https) - { - handle_timeout([] -@@ -714,7 +718,7 @@ - VERIFY_IS_FALSE(v.empty()); - }); - } -- -+*/ - #endif - - } // SUITE(authentication_tests) -Index: casablanca/Release/tests/functional/websockets/client/authentication_tests.cpp -=================================================================== ---- casablanca.orig/Release/tests/functional/websockets/client/authentication_tests.cpp -+++ casablanca/Release/tests/functional/websockets/client/authentication_tests.cpp -@@ -86,7 +86,7 @@ - } - return false; - } -- -+/* - TEST(ssl_test) - { - websocket_client client; -@@ -122,7 +122,7 @@ - throw; - } - } -- -+*/ - // These tests are specific to our websocketpp based implementation. - #if !defined(__cplusplus_winrt) - -@@ -153,14 +153,15 @@ - throw; - } - } -- -+/* - // Test specifically for server SignalR team hit interesting cases with. - TEST(sni_with_older_server_test) - { - websocket_client client; - sni_test_impl(client); - } -- -+*/ -+/* - // WinRT doesn't expose option for disabling. - // No stable server is available to reliably test this. - // The configuration below relies on a timeout in the success case. -@@ -188,7 +189,8 @@ - throw; - } - } -- -+*/ -+/* - // Winrt doesn't allow explicitly setting server host for SNI. - TEST(sni_explicit_hostname) - { -@@ -199,7 +201,7 @@ - websocket_client client(config); - sni_test_impl(client); - } -- -+*/ - void handshake_error_test_impl(const ::utility::string_t &host) - { - websocket_client client; -Index: casablanca/Release/tests/functional/http/client/connections_and_errors.cpp -=================================================================== ---- casablanca.orig/Release/tests/functional/http/client/connections_and_errors.cpp -+++ casablanca/Release/tests/functional/http/client/connections_and_errors.cpp -@@ -415,6 +415,7 @@ - } - #endif - -+/* - // Try to connect to a server on a closed port and cancel the operation. - TEST_FIXTURE(uri_address, cancel_bad_port) - { -@@ -446,7 +447,7 @@ - - VERIFY_THROWS_HTTP_ERROR_CODE(t.get(), std::errc::operation_canceled); - } -- -+*/ - } // SUITE(connections_and_errors) - - }}}} diff --git a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/disable-test-timeouts.patch b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/disable-test-timeouts.patch deleted file mode 100644 index 93c3e8a269..0000000000 --- a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/disable-test-timeouts.patch +++ /dev/null @@ -1,103 +0,0 @@ -Description: Some tests takes too long on slow architectures and timeouts - We can safely disable them. - e.g. - Release/tests/functional/http/client/connections_and_errors.cpp:142: error: Failure in request_timeout_microsecond: Test case timed out and is hung. Aborting all remaining test cases. Expected under 180000ms. FAILED - -Index: casablanca/Release/tests/functional/http/client/connections_and_errors.cpp -=================================================================== ---- casablanca.orig/Release/tests/functional/http/client/connections_and_errors.cpp -+++ casablanca/Release/tests/functional/http/client/connections_and_errors.cpp -@@ -127,7 +127,7 @@ - // Try sending another request. - VERIFY_THROWS(client.request(methods::GET).wait(), web::http::http_exception); - } -- -+/* - TEST_FIXTURE(uri_address, request_timeout) - { - test_http_server::scoped_server scoped(m_uri); -@@ -146,7 +146,8 @@ - #endif - t.get(); - } -- -+*/ -+/* - TEST_FIXTURE(uri_address, request_timeout_microsecond) - { - pplx::task<test_request*> t; -@@ -168,7 +169,7 @@ - try { t.get(); } - catch (...) {} - } -- -+*/ - TEST_FIXTURE(uri_address, invalid_method) - { - web::http::uri uri(U("http://www.bing.com/")); -Index: casablanca/Release/tests/functional/http/listener/requests_tests.cpp -=================================================================== ---- casablanca.orig/Release/tests/functional/http/listener/requests_tests.cpp -+++ casablanca/Release/tests/functional/http/listener/requests_tests.cpp -@@ -173,7 +173,7 @@ - - listener.close().wait(); - } -- -+/* - TEST_FIXTURE(uri_address, response_order) - { - http_listener listener(m_uri); -@@ -217,7 +217,7 @@ - - listener.close().wait(); - } -- -+*/ - TEST_FIXTURE(uri_address, uri_encoding, "Ignore", "Codeplex 201") - { - http_listener listener(m_uri); -Index: casablanca/Release/tests/functional/websockets/client/authentication_tests.cpp -=================================================================== ---- casablanca.orig/Release/tests/functional/websockets/client/authentication_tests.cpp -+++ casablanca/Release/tests/functional/websockets/client/authentication_tests.cpp -@@ -221,7 +221,7 @@ - VERIFY_ARE_EQUAL("TLS handshake failed", e.error_code().message()); - } - } -- -+/* - TEST(self_signed_cert) - { - handshake_error_test_impl(U("wss://self-signed.badssl.com/")); -@@ -236,7 +236,7 @@ - { - handshake_error_test_impl(U("wss://expired.badssl.com/")); - } -- -+*/ - #endif - - } // SUITE(authentication_tests) -Index: casablanca/Release/tests/functional/websockets/client/client_construction.cpp -=================================================================== ---- casablanca.orig/Release/tests/functional/websockets/client/client_construction.cpp -+++ casablanca/Release/tests/functional/websockets/client/client_construction.cpp -@@ -81,7 +81,7 @@ - VERIFY_ARE_EQUAL(config2.credentials().username(), cred.username()); - } - -- -+/* - // Verify that we can get the baseuri from websocket_client connect. - TEST_FIXTURE(uri_address, uri_test) - { -@@ -101,7 +101,7 @@ - VERIFY_ARE_EQUAL(client2.uri(), m_uri); - client2.close().wait(); - } -- -+*/ - TEST_FIXTURE(uri_address, move_operations) - { - std::string body("hello"); diff --git a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/revert-9b670e5b33dfdbd501d618cd7e7498148ffbd559.patch b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/revert-9b670e5b33dfdbd501d618cd7e7498148ffbd559.patch new file mode 100644 index 0000000000..9af2cbf365 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/revert-9b670e5b33dfdbd501d618cd7e7498148ffbd559.patch @@ -0,0 +1,26 @@ +Description: revert upstream bugfix (see:https://github.com/Microsoft/cpprestsdk/issues/1090) +Last-Update: 2019-03-28 + +--- cpprest-2.10.12.orig/Release/src/utilities/asyncrt_utils.cpp ++++ cpprest-2.10.12/Release/src/utilities/asyncrt_utils.cpp +@@ -1393,16 +1393,15 @@ utility::seconds __cdecl timespan::xml_d + return utility::seconds(numSecs); + } + +-static const char c_allowed_chars[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; +-static const int chars_count = static_cast<int>(sizeof(c_allowed_chars) - 1); ++static const utility::char_t c_allowed_chars[] = ++ _XPLATSTR("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"); + + utility::string_t nonce_generator::generate() + { +- std::uniform_int_distribution<> distr(0, chars_count - 1); ++ std::uniform_int_distribution<> distr(0, static_cast<int>(sizeof(c_allowed_chars) / sizeof(utility::char_t)) - 1); + utility::string_t result; + result.reserve(length()); +- std::generate_n(std::back_inserter(result), length(), +- [&] { return static_cast<utility::char_t>(c_allowed_chars[distr(m_random)]); }); ++ std::generate_n(std::back_inserter(result), length(), [&]() { return c_allowed_chars[distr(m_random)]; }); + return result; + } + diff --git a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/revert-f10d9f8e214516d2c19aa6ef831ee874a58c0479.patch b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/revert-f10d9f8e214516d2c19aa6ef831ee874a58c0479.patch new file mode 100644 index 0000000000..01e4631130 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/revert-f10d9f8e214516d2c19aa6ef831ee874a58c0479.patch @@ -0,0 +1,1557 @@ +Description: revert upstream bugfix (see:https://github.com/Microsoft/cpprestsdk/issues/1090) +Last-Update: 2019-03-28 + +--- cpprest-2.10.12.orig/Release/include/cpprest/asyncrt_utils.h ++++ cpprest-2.10.12/Release/include/cpprest/asyncrt_utils.h +@@ -630,6 +630,15 @@ private: + static const interval_type _hourTicks = 60 * 60 * _secondTicks; + static const interval_type _dayTicks = 24 * 60 * 60 * _secondTicks; + ++#ifdef _WIN32 ++ // void* to avoid pulling in windows.h ++ static _ASYNCRTIMP bool __cdecl system_type_to_datetime(/*SYSTEMTIME*/ void* psysTime, ++ uint64_t seconds, ++ datetime* pdt); ++#else ++ static datetime timeval_to_datetime(const timeval& time); ++#endif ++ + // Private constructor. Use static methods to create an instance. + datetime(interval_type interval) : m_interval(interval) {} + +@@ -690,6 +699,7 @@ public: + void set_length(int length) { m_length = length; } + + private: ++ static const utility::string_t c_allowed_chars; + std::mt19937 m_random; + int m_length; + }; +--- cpprest-2.10.12.orig/Release/src/pch/stdafx.h ++++ cpprest-2.10.12/Release/src/pch/stdafx.h +@@ -61,6 +61,7 @@ + #undef BOOST_NO_CXX11_NULLPTR + #endif + #include "boost/bind/bind.hpp" ++#include "boost/date_time/posix_time/posix_time_types.hpp" + #include "boost/thread/condition_variable.hpp" + #include "boost/thread/mutex.hpp" + #include <fcntl.h> +--- cpprest-2.10.12.orig/Release/src/utilities/asyncrt_utils.cpp ++++ cpprest-2.10.12/Release/src/utilities/asyncrt_utils.cpp +@@ -15,9 +15,20 @@ + + #include <algorithm> + #include <cpprest/asyncrt_utils.h> +-#include <stdexcept> ++#include <sstream> + #include <string> +-#include <time.h> ++ ++#ifndef _WIN32 ++#if defined(__clang__) ++#pragma clang diagnostic push ++#pragma clang diagnostic ignored "-Wunused-local-typedef" ++#endif ++#include <boost/date_time/posix_time/posix_time.hpp> ++#include <boost/date_time/posix_time/posix_time_io.hpp> ++#if defined(__clang__) ++#pragma clang diagnostic pop ++#endif ++#endif + + using namespace web; + using namespace utility; +@@ -618,7 +629,18 @@ std::string __cdecl conversions::to_utf8 + + utf16string __cdecl conversions::to_utf16string(const std::string& value) { return utf8_to_utf16(value); } + +-static const uint64_t ntToUnixOffsetSeconds = 11644473600U; // diff between windows and unix epochs (seconds) ++#ifndef WIN32 ++datetime datetime::timeval_to_datetime(const timeval& time) ++{ ++ const uint64_t epoch_offset = 11644473600LL; // diff between windows and unix epochs (seconds) ++ uint64_t result = epoch_offset + time.tv_sec; ++ result *= _secondTicks; // convert to 10e-7 ++ result += time.tv_usec * 10; // convert and add microseconds, 10e-6 to 10e-7 ++ return datetime(result); ++} ++#endif ++ ++static bool is_digit(utility::char_t c) { return c >= _XPLATSTR('0') && c <= _XPLATSTR('9'); } + + datetime __cdecl datetime::utc_now() + { +@@ -634,649 +656,450 @@ datetime __cdecl datetime::utc_now() + #else // LINUX + struct timeval time; + gettimeofday(&time, nullptr); +- uint64_t result = ntToUnixOffsetSeconds + time.tv_sec; +- result *= _secondTicks; // convert to 10e-7 +- result += time.tv_usec * 10; // convert and add microseconds, 10e-6 to 10e-7 +- return datetime(result); ++ return timeval_to_datetime(time); + #endif + } + +-static const char dayNames[] = "Sun\0Mon\0Tue\0Wed\0Thu\0Fri\0Sat"; +-static const char monthNames[] = "Jan\0Feb\0Mar\0Apr\0May\0Jun\0Jul\0Aug\0Sep\0Oct\0Nov\0Dec"; +- + utility::string_t datetime::to_string(date_format format) const + { +- const uint64_t input = m_interval / _secondTicks; // convert to seconds +- const int frac_sec = static_cast<int>(m_interval % _secondTicks); +- const time_t time = static_cast<time_t>(input - ntToUnixOffsetSeconds); +- struct tm t; +-#ifdef _MSC_VER +- if (gmtime_s(&t, &time) != 0) +-#else // ^^^ _MSC_VER ^^^ // vvv !_MSC_VER vvv +- if (gmtime_r(&time, &t) == 0) +-#endif // _MSC_VER +- { +- throw std::invalid_argument("gmtime_r/s failed on the time supplied"); +- } +- +- char outBuffer[38]; // Thu, 01 Jan 1970 00:00:00 GMT\0 +- // 1970-01-01T00:00:00.1234567Z\0 +- char* outCursor = outBuffer; +- switch (format) +- { +- case RFC_1123: +-#ifdef _MSC_VER +- sprintf_s(outCursor, +- 26, +- "%s, %02d %s %04d %02d:%02d:%02d", +- dayNames + 4 * t.tm_wday, +- t.tm_mday, +- monthNames + 4 * t.tm_mon, +- t.tm_year + 1900, +- t.tm_hour, +- t.tm_min, +- t.tm_sec); +-#else // ^^^ _MSC_VER // !_MSC_VER vvv +- sprintf(outCursor, +- "%s, %02d %s %04d %02d:%02d:%02d", +- dayNames + 4 * t.tm_wday, +- t.tm_mday, +- monthNames + 4 * t.tm_mon, +- t.tm_year + 1900, +- t.tm_hour, +- t.tm_min, +- t.tm_sec); +-#endif // _MSC_VER +- outCursor += 25; +- memcpy(outCursor, " GMT", 4); +- outCursor += 4; +- return utility::string_t(outBuffer, outCursor); +- case ISO_8601: +-#ifdef _MSC_VER +- sprintf_s(outCursor, +- 20, +- "%04d-%02d-%02dT%02d:%02d:%02d", +- t.tm_year + 1900, +- t.tm_mon + 1, +- t.tm_mday, +- t.tm_hour, +- t.tm_min, +- t.tm_sec); +-#else // ^^^ _MSC_VER // !_MSC_VER vvv +- sprintf(outCursor, +- "%04d-%02d-%02dT%02d:%02d:%02d", +- t.tm_year + 1900, +- t.tm_mon + 1, +- t.tm_mday, +- t.tm_hour, +- t.tm_min, +- t.tm_sec); +-#endif // _MSC_VER +- outCursor += 19; +- if (frac_sec != 0) +- { +- // Append fractional second, which is a 7-digit value with no trailing zeros +- // This way, '1200' becomes '00012' +-#ifdef _MSC_VER +- size_t appended = sprintf_s(outCursor, 9, ".%07d", frac_sec); +-#else // ^^^ _MSC_VER // !_MSC_VER vvv +- size_t appended = sprintf(outCursor, ".%07d", frac_sec); +-#endif // _MSC_VER +- while (outCursor[appended - 1] == '0') +- { +- --appended; // trim trailing zeros +- } +- +- outCursor += appended; +- } +- +- *outCursor = 'Z'; +- ++outCursor; +- return utility::string_t(outBuffer, outCursor); +- default: throw std::invalid_argument("Unrecognized date format."); +- } +-} +- +-template<class CharT> +-static bool string_starts_with(const CharT* haystack, const char* needle) +-{ +- while (*needle) +- { +- if (*haystack != static_cast<CharT>(*needle)) +- { +- return false; +- } +- +- ++haystack; +- ++needle; +- } +- +- return true; +-} +- +-#define ascii_isdigit(c) ((unsigned char)((unsigned char)(c) - '0') <= 9) +-#define ascii_isdigit6(c) ((unsigned char)((unsigned char)(c) - '0') <= 6) +-#define ascii_isdigit5(c) ((unsigned char)((unsigned char)(c) - '0') <= 5) +-#define ascii_isdigit3(c) ((unsigned char)((unsigned char)(c) - '0') <= 3) +-#define ascii_isdigit2(c) ((unsigned char)((unsigned char)(c) - '0') <= 2) +-#define ascii_isdigit1(c) ((unsigned char)((unsigned char)(c) - '0') <= 1) +- +-static const unsigned char max_days_in_month[12] = { +- 31, // Jan +- 00, // Feb, special handling for leap years +- 31, // Mar +- 30, // Apr +- 31, // May +- 30, // Jun +- 31, // Jul +- 31, // Aug +- 30, // Sep +- 31, // Oct +- 30, // Nov +- 31 // Dec +-}; +- +-static bool validate_day_month(int day, int month, int year) +-{ +- int maxDaysThisMonth; +- if (month == 1) +- { // Feb needs leap year testing +- maxDaysThisMonth = 28 + (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)); +- } +- else +- { +- maxDaysThisMonth = max_days_in_month[month]; +- } +- +- return day >= 1 && day <= maxDaysThisMonth; +-} ++#ifdef _WIN32 ++ int status; + +-template<class CharT> +-static int atoi2(const CharT* str) +-{ +- return (static_cast<unsigned char>(str[0]) - '0') * 10 + (static_cast<unsigned char>(str[1]) - '0'); +-} ++ ULARGE_INTEGER largeInt; ++ largeInt.QuadPart = m_interval; + +-static const time_t maxTimeT = sizeof(time_t) == 4 ? (time_t)INT_MAX : (time_t)LLONG_MAX; ++ FILETIME ft; ++ ft.dwHighDateTime = largeInt.HighPart; ++ ft.dwLowDateTime = largeInt.LowPart; + +-static time_t timezone_adjust(time_t result, unsigned char chSign, int adjustHours, int adjustMinutes) +-{ +- if (adjustHours > 23) ++ SYSTEMTIME systemTime; ++ if (!FileTimeToSystemTime((const FILETIME*)&ft, &systemTime)) + { +- return (time_t)-1; ++ throw utility::details::create_system_error(GetLastError()); + } + +- // adjustMinutes > 59 is impossible due to digit 5 check +- const int tzAdjust = adjustMinutes * 60 + adjustHours * 60 * 60; +- if (chSign == '-') ++ std::wstring result; ++ if (format == RFC_1123) + { +- if (maxTimeT - result < tzAdjust) + { +- return (time_t)-1; ++ wchar_t dateStr[18] = {0}; ++#if _WIN32_WINNT < _WIN32_WINNT_VISTA ++ status = GetDateFormatW( ++ LOCALE_INVARIANT, 0, &systemTime, L"ddd',' dd MMM yyyy", dateStr, sizeof(dateStr) / sizeof(wchar_t)); ++#else ++ status = GetDateFormatEx(LOCALE_NAME_INVARIANT, ++ 0, ++ &systemTime, ++ L"ddd',' dd MMM yyyy", ++ dateStr, ++ sizeof(dateStr) / sizeof(wchar_t), ++ NULL); ++#endif // _WIN32_WINNT < _WIN32_WINNT_VISTA ++ if (status == 0) ++ { ++ throw utility::details::create_system_error(GetLastError()); ++ } ++ ++ result += dateStr; ++ result += L' '; + } + +- result += tzAdjust; +- } +- else +- { +- if (tzAdjust > result) + { +- return (time_t)-1; +- } +- +- result -= tzAdjust; +- } +- +- return result; +-} +- +-static time_t make_gm_time(struct tm* t) +-{ +-#ifdef _MSC_VER +- return _mkgmtime(t); +-#elif (defined(ANDROID) || defined(__ANDROID__)) +- // HACK: The (nonportable?) POSIX function timegm is not available in +- // bionic. As a workaround[1][2], we set the C library timezone to +- // UTC, call mktime, then set the timezone back. However, the C +- // environment is fundamentally a shared global resource and thread- +- // unsafe. We can protect our usage here, however any other code might +- // manipulate the environment at the same time. +- // +- // [1] http://linux.die.net/man/3/timegm +- // [2] http://www.gnu.org/software/libc/manual/html_node/Broken_002ddown-Time.html +- time_t time; +- static boost::mutex env_var_lock; +- { +- boost::lock_guard<boost::mutex> lock(env_var_lock); +- std::string prev_env; +- auto prev_env_cstr = getenv("TZ"); +- if (prev_env_cstr != nullptr) +- { +- prev_env = prev_env_cstr; +- } +- setenv("TZ", "UTC", 1); +- +- time = mktime(t); ++ wchar_t timeStr[10] = {0}; ++#if _WIN32_WINNT < _WIN32_WINNT_VISTA ++ status = GetTimeFormatW(LOCALE_INVARIANT, ++ TIME_NOTIMEMARKER | TIME_FORCE24HOURFORMAT, ++ &systemTime, ++ L"HH':'mm':'ss", ++ timeStr, ++ sizeof(timeStr) / sizeof(wchar_t)); ++#else ++ status = GetTimeFormatEx(LOCALE_NAME_INVARIANT, ++ TIME_NOTIMEMARKER | TIME_FORCE24HOURFORMAT, ++ &systemTime, ++ L"HH':'mm':'ss", ++ timeStr, ++ sizeof(timeStr) / sizeof(wchar_t)); ++#endif // _WIN32_WINNT < _WIN32_WINNT_VISTA ++ if (status == 0) ++ { ++ throw utility::details::create_system_error(GetLastError()); ++ } + +- if (prev_env_cstr) +- { +- setenv("TZ", prev_env.c_str(), 1); +- } +- else +- { +- unsetenv("TZ"); ++ result += timeStr; ++ result += L" GMT"; + } + } +- return time; +-#else // ^^^ ANDROID // Other POSIX platforms vvv +- return timegm(t); +-#endif // _MSC_VER +-} +- +-/* +-https://tools.ietf.org/html/rfc822 +-https://tools.ietf.org/html/rfc1123 +- +-date-time = [ day "," ] date time ; dd mm yy +- ; hh:mm:ss zzz +- +-day = "Mon" / "Tue" / "Wed" / "Thu" +- / "Fri" / "Sat" / "Sun" +- +-date = 1*2DIGIT month 2DIGIT ; day month year +- ; e.g. 20 Jun 82 +-RFC1123 changes this to: +-date = 1*2DIGIT month 2*4DIGIT ; day month year +- ; e.g. 20 Jun 1982 +-This implementation only accepts 4 digit years. +- +-month = "Jan" / "Feb" / "Mar" / "Apr" +- / "May" / "Jun" / "Jul" / "Aug" +- / "Sep" / "Oct" / "Nov" / "Dec" +- +-time = hour zone ; ANSI and Military +- +-hour = 2DIGIT ":" 2DIGIT [":" 2DIGIT] +- ; 00:00:00 - 23:59:59 +- +-zone = "UT" / "GMT" ; Universal Time +- ; North American : UT +- / "EST" / "EDT" ; Eastern: - 5/ - 4 +- / "CST" / "CDT" ; Central: - 6/ - 5 +- / "MST" / "MDT" ; Mountain: - 7/ - 6 +- / "PST" / "PDT" ; Pacific: - 8/ - 7 +- +-// military time deleted by RFC 1123 +- +- / ( ("+" / "-") 4DIGIT ) ; Local differential +- ; hours+min. (HHMM) +-*/ +- +- +-datetime __cdecl datetime::from_string(const utility::string_t& dateString, date_format format) +-{ +- datetime result; +- time_t seconds; +- uint64_t frac_sec = 0; +- struct tm t{}; +- auto str = dateString.c_str(); +- if (format == RFC_1123) ++ else if (format == ISO_8601) + { +- int parsedWeekday = -1; +- for (int day = 0; day < 7; ++day) ++ const size_t buffSize = 64; + { +- if (string_starts_with(str, dayNames + day * 4) && str[3] == _XPLATSTR(',') && str[4] == _XPLATSTR(' ')) ++ wchar_t dateStr[buffSize] = {0}; ++#if _WIN32_WINNT < _WIN32_WINNT_VISTA ++ status = GetDateFormatW(LOCALE_INVARIANT, 0, &systemTime, L"yyyy-MM-dd", dateStr, buffSize); ++#else ++ status = GetDateFormatEx(LOCALE_NAME_INVARIANT, 0, &systemTime, L"yyyy-MM-dd", dateStr, buffSize, NULL); ++#endif // _WIN32_WINNT < _WIN32_WINNT_VISTA ++ if (status == 0) + { +- parsedWeekday = day; +- str += 5; // parsed day of week +- break; ++ throw utility::details::create_system_error(GetLastError()); + } +- } + +- if (ascii_isdigit3(str[0]) && ascii_isdigit(str[1]) && str[2] == _XPLATSTR(' ')) +- { +- t.tm_mday = atoi2(str); // validity checked later +- str += 3; // parsed day +- } +- else if (ascii_isdigit(str[0]) && str[1] == _XPLATSTR(' ')) +- { +- t.tm_mday = str[0] - _XPLATSTR('0'); +- str += 2; // parsed day +- } +- else +- { +- return result; ++ result += dateStr; ++ result += L'T'; + } + +- t.tm_mon = -1; +- for (int month = 0; month < 12; ++month) + { +- if (string_starts_with(str, monthNames + month * 4)) ++ wchar_t timeStr[buffSize] = {0}; ++#if _WIN32_WINNT < _WIN32_WINNT_VISTA ++ status = GetTimeFormatW(LOCALE_INVARIANT, ++ TIME_NOTIMEMARKER | TIME_FORCE24HOURFORMAT, ++ &systemTime, ++ L"HH':'mm':'ss", ++ timeStr, ++ buffSize); ++#else ++ status = GetTimeFormatEx(LOCALE_NAME_INVARIANT, ++ TIME_NOTIMEMARKER | TIME_FORCE24HOURFORMAT, ++ &systemTime, ++ L"HH':'mm':'ss", ++ timeStr, ++ buffSize); ++#endif // _WIN32_WINNT < _WIN32_WINNT_VISTA ++ if (status == 0) + { +- t.tm_mon = month; +- break; ++ throw utility::details::create_system_error(GetLastError()); + } +- } + +- if (t.tm_mon == -1 || str[3] != _XPLATSTR(' ')) +- { +- return result; ++ result += timeStr; + } + +- str += 4; // parsed month +- +- if (!ascii_isdigit3(str[0]) || !ascii_isdigit(str[1]) || !ascii_isdigit(str[2]) || !ascii_isdigit(str[3]) || +- str[4] != ' ') ++ uint64_t frac_sec = largeInt.QuadPart % _secondTicks; ++ if (frac_sec > 0) + { +- return result; ++ // Append fractional second, which is a 7-digit value with no trailing zeros ++ // This way, '1200' becomes '00012' ++ wchar_t buf[9] = {0}; ++ size_t appended = swprintf_s(buf, 9, L".%07ld", static_cast<long>(frac_sec)); ++ while (buf[appended - 1] == L'0') ++ --appended; // trim trailing zeros ++ result.append(buf, appended); + } + +- t.tm_year = (str[0] - _XPLATSTR('0')) * 1000 + (str[1] - _XPLATSTR('0')) * 100 + +- (str[2] - _XPLATSTR('0')) * 10 + (str[3] - _XPLATSTR('0')); +- if (t.tm_year < 1970 || t.tm_year > 3000) +- { +- return result; +- } ++ result += L'Z'; ++ } + +- // days in month validity check +- if (!validate_day_month(t.tm_mday, t.tm_mon, t.tm_year)) +- { +- return result; +- } ++ return result; ++#else // LINUX ++ uint64_t input = m_interval; ++ uint64_t frac_sec = input % _secondTicks; ++ input /= _secondTicks; // convert to seconds ++ time_t time = (time_t)input - (time_t)11644473600LL; // diff between windows and unix epochs (seconds) ++ ++ struct tm datetime; ++ gmtime_r(&time, &datetime); ++ ++ const int max_dt_length = 64; ++ char output[max_dt_length + 1] = {0}; ++ ++ if (format != RFC_1123 && frac_sec > 0) ++ { ++ // Append fractional second, which is a 7-digit value with no trailing zeros ++ // This way, '1200' becomes '00012' ++ const int max_frac_length = 8; ++ char buf[max_frac_length + 1] = {0}; ++ snprintf(buf, sizeof(buf), ".%07ld", (long int)frac_sec); ++ // trim trailing zeros ++ for (int i = max_frac_length - 1; buf[i] == '0'; i--) ++ buf[i] = '\0'; ++ // format the datetime into a separate buffer ++ char datetime_str[max_dt_length - max_frac_length - 1 + 1] = {0}; ++ strftime(datetime_str, sizeof(datetime_str), "%Y-%m-%dT%H:%M:%S", &datetime); ++ // now print this buffer into the output buffer ++ snprintf(output, sizeof(output), "%s%sZ", datetime_str, buf); ++ } ++ else ++ { ++ strftime( ++ output, sizeof(output), format == RFC_1123 ? "%a, %d %b %Y %H:%M:%S GMT" : "%Y-%m-%dT%H:%M:%SZ", &datetime); ++ } + +- t.tm_year -= 1900; +- str += 5; // parsed year ++ return std::string(output); ++#endif ++} + +- if (!ascii_isdigit2(str[0]) || !ascii_isdigit(str[1]) || str[2] != _XPLATSTR(':') || !ascii_isdigit5(str[3]) || +- !ascii_isdigit(str[4])) +- { +- return result; +- } ++#ifdef _WIN32 ++bool __cdecl datetime::system_type_to_datetime(void* pvsysTime, uint64_t seconds, datetime* pdt) ++{ ++ SYSTEMTIME* psysTime = (SYSTEMTIME*)pvsysTime; ++ FILETIME fileTime; + +- t.tm_hour = atoi2(str); +- if (t.tm_hour > 23) +- { +- return result; +- } ++ if (SystemTimeToFileTime(psysTime, &fileTime)) ++ { ++ ULARGE_INTEGER largeInt; ++ largeInt.LowPart = fileTime.dwLowDateTime; ++ largeInt.HighPart = fileTime.dwHighDateTime; + +- str += 3; // parsed hour +- t.tm_min = atoi2(str); +- str += 2; // parsed mins ++ // Add hundredths of nanoseconds ++ largeInt.QuadPart += seconds; + +- if (str[0] == ':') +- { +- if (!ascii_isdigit6(str[1]) || !ascii_isdigit(str[2]) || str[3] != _XPLATSTR(' ')) +- { +- return result; +- } ++ *pdt = datetime(largeInt.QuadPart); ++ return true; ++ } ++ return false; ++} ++#endif + +- t.tm_sec = atoi2(str + 1); +- str += 4; // parsed seconds +- } +- else if (str[0] == _XPLATSTR(' ')) +- { +- t.tm_sec = 0; +- str += 1; // parsed seconds +- } +- else +- { +- return result; ++// Take a string that represents a fractional second and return the number of ticks ++// This is equivalent to doing atof on the string and multiplying by 10000000, ++// but does not lose precision ++template<typename StringIterator> ++uint64_t timeticks_from_second(StringIterator begin, StringIterator end) ++{ ++ int size = (int)(end - begin); ++ _ASSERTE(begin[0] == U('.')); ++ uint64_t ufrac_second = 0; ++ for (int i = 1; i <= 7; ++i) ++ { ++ ufrac_second *= 10; ++ int add = i < size ? begin[i] - U('0') : 0; ++ ufrac_second += add; ++ } ++ return ufrac_second; ++} ++ ++void extract_fractional_second(const utility::string_t& dateString, ++ utility::string_t& resultString, ++ uint64_t& ufrac_second) ++{ ++ resultString = dateString; ++ // First, the string must be strictly longer than 2 characters, and the trailing character must be 'Z' ++ if (resultString.size() > 2 && resultString[resultString.size() - 1] == U('Z')) ++ { ++ // Second, find the last non-digit by scanning the string backwards ++ auto last_non_digit = std::find_if_not(resultString.rbegin() + 1, resultString.rend(), is_digit); ++ if (last_non_digit < resultString.rend() - 1) ++ { ++ // Finally, make sure the last non-digit is a dot: ++ auto last_dot = last_non_digit.base() - 1; ++ if (*last_dot == U('.')) ++ { ++ // Got it! Now extract the fractional second ++ auto last_before_Z = std::end(resultString) - 1; ++ ufrac_second = timeticks_from_second(last_dot, last_before_Z); ++ // And erase it from the string ++ resultString.erase(last_dot, last_before_Z); ++ } + } ++ } ++} + +- if (t.tm_sec > 60) +- { // 60 to allow leap seconds +- return result; +- } ++datetime __cdecl datetime::from_string(const utility::string_t& dateString, date_format format) ++{ ++ // avoid floating point math to preserve precision ++ uint64_t ufrac_second = 0; + +- t.tm_isdst = 0; +- seconds = make_gm_time(&t); +- if (seconds < 0) +- { +- return result; +- } ++#ifdef _WIN32 ++ datetime result; ++ if (format == RFC_1123) ++ { ++ SYSTEMTIME sysTime = {0}; + +- if (parsedWeekday >= 0 && parsedWeekday != t.tm_wday) +- { +- return result; +- } ++ std::wstring month(3, L'\0'); ++ std::wstring unused(3, L'\0'); + +- if (!string_starts_with(str, "GMT") && !string_starts_with(str, "UT")) +- { +- // some timezone adjustment necessary +- auto tzCh = _XPLATSTR('-'); +- int tzHours; +- int tzMinutes = 0; +- if (string_starts_with(str, "EDT")) +- { +- tzHours = 4; +- } +- else if (string_starts_with(str, "EST") || string_starts_with(str, "CDT")) +- { +- tzHours = 5; +- } +- else if (string_starts_with(str, "CST") || string_starts_with(str, "MDT")) +- { +- tzHours = 6; +- } +- else if (string_starts_with(str, "MST") || string_starts_with(str, "PDT")) +- { +- tzHours = 7; +- } +- else if (string_starts_with(str, "PST")) +- { +- tzHours = 8; +- } +- else if ((tzCh == _XPLATSTR('+') || tzCh == _XPLATSTR('-')) && ascii_isdigit2(str[1]) && +- ascii_isdigit(str[2]) && ascii_isdigit5(str[3]) && ascii_isdigit(str[4])) +- { +- tzCh = str[0]; +- tzHours = atoi2(str + 1); +- tzMinutes = atoi2(str + 3); +- } +- else +- { +- return result; +- } ++ const wchar_t* formatString = L"%3c, %2d %3c %4d %2d:%2d:%2d %3c"; ++ auto n = swscanf_s(dateString.c_str(), ++ formatString, ++ unused.data(), ++ unused.size(), ++ &sysTime.wDay, ++ month.data(), ++ month.size(), ++ &sysTime.wYear, ++ &sysTime.wHour, ++ &sysTime.wMinute, ++ &sysTime.wSecond, ++ unused.data(), ++ unused.size()); ++ ++ if (n == 8) ++ { ++ std::wstring monthnames[12] = { ++ L"Jan", L"Feb", L"Mar", L"Apr", L"May", L"Jun", L"Jul", L"Aug", L"Sep", L"Oct", L"Nov", L"Dec"}; ++ auto loc = ++ std::find_if(monthnames, monthnames + 12, [&month](const std::wstring& m) { return m == month; }); + +- seconds = timezone_adjust(seconds, static_cast<unsigned char>(tzCh), tzHours, tzMinutes); +- if (seconds < 0) ++ if (loc != monthnames + 12) + { +- return result; ++ sysTime.wMonth = (short)((loc - monthnames) + 1); ++ if (system_type_to_datetime(&sysTime, ufrac_second, &result)) ++ { ++ return result; ++ } + } + } + } + else if (format == ISO_8601) + { +- // parse year +- if (!ascii_isdigit3(str[0]) || !ascii_isdigit(str[1]) || !ascii_isdigit(str[2]) || !ascii_isdigit(str[3])) +- { +- return result; +- } ++ // Unlike FILETIME, SYSTEMTIME does not have enough precision to hold seconds in 100 nanosecond ++ // increments. Therefore, start with seconds and milliseconds set to 0, then add them separately + +- t.tm_year = (str[0] - _XPLATSTR('0')) * 1000 + (str[1] - _XPLATSTR('0')) * 100 + +- (str[2] - _XPLATSTR('0')) * 10 + (str[3] - _XPLATSTR('0')); +- if (t.tm_year < 1970 || t.tm_year > 3000) +- { +- return result; +- } ++ // Try to extract the fractional second from the timestamp ++ utility::string_t input; ++ extract_fractional_second(dateString, input, ufrac_second); ++ { ++ SYSTEMTIME sysTime = {0}; ++ const wchar_t* formatString = L"%4d-%2d-%2dT%2d:%2d:%2dZ"; ++ auto n = swscanf_s(input.c_str(), ++ formatString, ++ &sysTime.wYear, ++ &sysTime.wMonth, ++ &sysTime.wDay, ++ &sysTime.wHour, ++ &sysTime.wMinute, ++ &sysTime.wSecond); + +- str += 4; +- if (*str == _XPLATSTR('-')) +- { +- ++str; ++ if (n == 3 || n == 6) ++ { ++ if (system_type_to_datetime(&sysTime, ufrac_second, &result)) ++ { ++ return result; ++ } ++ } + } +- +- // parse month +- if (!ascii_isdigit1(str[0]) || !ascii_isdigit(str[1])) + { +- return result; +- } ++ SYSTEMTIME sysTime = {0}; ++ DWORD date = 0; + +- t.tm_mon = atoi2(str); +- if (t.tm_mon < 1 || t.tm_mon > 12) +- { +- return result; +- } +- +- t.tm_mon -= 1; +- str += 2; ++ const wchar_t* formatString = L"%8dT%2d:%2d:%2dZ"; ++ auto n = swscanf_s(input.c_str(), formatString, &date, &sysTime.wHour, &sysTime.wMinute, &sysTime.wSecond); + +- if (*str == _XPLATSTR('-')) +- { +- ++str; +- } ++ if (n == 1 || n == 4) ++ { ++ sysTime.wDay = date % 100; ++ date /= 100; ++ sysTime.wMonth = date % 100; ++ date /= 100; ++ sysTime.wYear = (WORD)date; + +- // parse day +- if (!ascii_isdigit3(str[0]) || !ascii_isdigit(str[1])) +- { +- return result; ++ if (system_type_to_datetime(&sysTime, ufrac_second, &result)) ++ { ++ return result; ++ } ++ } + } +- +- t.tm_mday = atoi2(str); +- if (!validate_day_month(t.tm_mday, t.tm_mon, t.tm_year)) + { +- return result; +- } ++ SYSTEMTIME sysTime = {0}; ++ GetSystemTime(&sysTime); // Fill date portion with today's information ++ sysTime.wSecond = 0; ++ sysTime.wMilliseconds = 0; + +- t.tm_year -= 1900; +- str += 2; ++ const wchar_t* formatString = L"%2d:%2d:%2dZ"; ++ auto n = swscanf_s(input.c_str(), formatString, &sysTime.wHour, &sysTime.wMinute, &sysTime.wSecond); + +- if (str[0] != _XPLATSTR('T') && str[0] != _XPLATSTR('t')) +- { +- // No time +- seconds = make_gm_time(&t); +- if (seconds < 0) ++ if (n == 3) + { +- return result; ++ if (system_type_to_datetime(&sysTime, ufrac_second, &result)) ++ { ++ return result; ++ } + } +- +- seconds += ntToUnixOffsetSeconds; +- result.m_interval = static_cast<interval_type>(seconds) * _secondTicks; +- return result; + } ++ } + +- ++str; // skip 'T' ++ return datetime(); ++#else ++ std::string input(dateString); + +- // parse hour +- if (!ascii_isdigit2(str[0]) || !ascii_isdigit(str[1])) +- { +- return result; +- } ++ struct tm output = tm(); + +- t.tm_hour = atoi2(str); +- str += 2; +- if (t.tm_hour > 23) +- { +- return result; +- } ++ if (format == RFC_1123) ++ { ++ strptime(input.data(), "%a, %d %b %Y %H:%M:%S GMT", &output); ++ } ++ else ++ { ++ // Try to extract the fractional second from the timestamp ++ utility::string_t input; ++ extract_fractional_second(dateString, input, ufrac_second); + +- if (*str == _XPLATSTR(':')) +- { +- ++str; +- } ++ auto result = strptime(input.data(), "%Y-%m-%dT%H:%M:%SZ", &output); + +- // parse minute +- if (!ascii_isdigit5(str[0]) || !ascii_isdigit(str[1])) ++ if (result == nullptr) + { +- return result; ++ result = strptime(input.data(), "%Y%m%dT%H:%M:%SZ", &output); + } +- t.tm_min = atoi2(str); +- // t.tm_min > 59 is impossible because we checked that the first digit is <= 5 in the basic format +- // check above +- +- str += 2; +- +- if (*str == _XPLATSTR(':')) ++ if (result == nullptr) + { +- ++str; ++ // Fill the date portion with the epoch, ++ // strptime will do the rest ++ memset(&output, 0, sizeof(struct tm)); ++ output.tm_year = 70; ++ output.tm_mon = 1; ++ output.tm_mday = 1; ++ result = strptime(input.data(), "%H:%M:%SZ", &output); + } +- +- // parse seconds +- if (!ascii_isdigit6(str[0]) || !ascii_isdigit(str[1])) ++ if (result == nullptr) + { +- return result; ++ result = strptime(input.data(), "%Y-%m-%d", &output); + } +- +- t.tm_sec = atoi2(str); +- // We allow 60 to account for leap seconds +- if (t.tm_sec > 60) ++ if (result == nullptr) + { +- return result; ++ result = strptime(input.data(), "%Y%m%d", &output); + } +- +- str += 2; +- if (str[0] == _XPLATSTR('.') && ascii_isdigit(str[1])) ++ if (result == nullptr) + { +- ++str; +- int digits = 7; +- for (;;) +- { +- frac_sec *= 10; +- frac_sec += *str - _XPLATSTR('0'); +- --digits; +- ++str; +- if (digits == 0) +- { +- while (ascii_isdigit(*str)) +- { +- // consume remaining fractional second digits we can't use +- ++str; +- } +- +- break; +- } +- +- if (!ascii_isdigit(*str)) +- { +- // no more digits in the input, do the remaining multiplies we need +- for (; digits != 0; --digits) +- { +- frac_sec *= 10; +- } +- +- break; +- } +- } ++ return datetime(); + } ++ } + +- seconds = make_gm_time(&t); +- if (seconds < 0) +- { +- return result; +- } ++#if (defined(ANDROID) || defined(__ANDROID__)) ++ // HACK: The (nonportable?) POSIX function timegm is not available in ++ // bionic. As a workaround[1][2], we set the C library timezone to ++ // UTC, call mktime, then set the timezone back. However, the C ++ // environment is fundamentally a shared global resource and thread- ++ // unsafe. We can protect our usage here, however any other code might ++ // manipulate the environment at the same time. ++ // ++ // [1] http://linux.die.net/man/3/timegm ++ // [2] http://www.gnu.org/software/libc/manual/html_node/Broken_002ddown-Time.html ++ time_t time; + +- if (str[0] == _XPLATSTR('Z') || str[0] == _XPLATSTR('z')) ++ static boost::mutex env_var_lock; ++ { ++ boost::lock_guard<boost::mutex> lock(env_var_lock); ++ std::string prev_env; ++ auto prev_env_cstr = getenv("TZ"); ++ if (prev_env_cstr != nullptr) + { +- // no adjustment needed for zulu time ++ prev_env = prev_env_cstr; + } +- else if (str[0] == _XPLATSTR('+') || str[0] == _XPLATSTR('-')) +- { +- const unsigned char offsetDirection = static_cast<unsigned char>(str[0]); +- if (!ascii_isdigit2(str[1]) || !ascii_isdigit(str[2]) || str[3] != _XPLATSTR(':') || +- !ascii_isdigit5(str[4]) || !ascii_isdigit(str[5])) +- { +- return result; +- } ++ setenv("TZ", "UTC", 1); + +- seconds = timezone_adjust(seconds, offsetDirection, atoi2(str + 1), atoi2(str + 4)); +- if (seconds < 0) +- { +- return result; +- } ++ time = mktime(&output); ++ ++ if (prev_env_cstr) ++ { ++ setenv("TZ", prev_env.c_str(), 1); + } + else + { +- // the timezone is malformed, but cpprestsdk currently accepts this as no timezone ++ unsetenv("TZ"); + } + } +- else +- { +- throw std::invalid_argument("unrecognized date format"); +- } ++#else ++ time_t time = timegm(&output); ++#endif ++ ++ struct timeval tv = timeval(); ++ tv.tv_sec = time; ++ auto result = timeval_to_datetime(tv); + +- seconds += ntToUnixOffsetSeconds; +- result.m_interval = static_cast<interval_type>(seconds) * _secondTicks + frac_sec; ++ // fractional seconds are already in correct format so just add them. ++ result = result + ufrac_second; + return result; ++#endif + } + + /// <summary> +@@ -1358,32 +1181,38 @@ utility::seconds __cdecl timespan::xml_d + // The final S could be omitted + + int64_t numSecs = 0; +- auto cursor = timespanString.c_str(); +- auto c = *cursor++; // skip 'P' +- while (c) ++ ++ utility::istringstream_t is(timespanString); ++ is.imbue(std::locale::classic()); ++ auto eof = std::char_traits<utility::char_t>::eof(); ++ ++ std::basic_istream<utility::char_t>::int_type c; ++ c = is.get(); // P ++ ++ while (c != eof) + { + int val = 0; +- c = *cursor++; ++ c = is.get(); + +- while (ascii_isdigit(c)) ++ while (is_digit((utility::char_t)c)) + { +- val = val * 10 + (c - _XPLATSTR('0')); +- c = *cursor++; ++ val = val * 10 + (c - L'0'); ++ c = is.get(); + +- if (c == _XPLATSTR('.')) ++ if (c == '.') + { + // decimal point is not handled + do + { +- c = *cursor++; +- } while (ascii_isdigit(c)); ++ c = is.get(); ++ } while (is_digit((utility::char_t)c)); + } + } + +- if (c == _XPLATSTR('D')) numSecs += val * 24 * 3600; // days +- if (c == _XPLATSTR('H')) numSecs += val * 3600; // Hours +- if (c == _XPLATSTR('M')) numSecs += val * 60; // Minutes +- if (c == _XPLATSTR('S') || c == _XPLATSTR('\0')) ++ if (c == L'D') numSecs += val * 24 * 3600; // days ++ if (c == L'H') numSecs += val * 3600; // Hours ++ if (c == L'M') numSecs += val * 60; // Minutes ++ if (c == L'S' || c == eof) + { + numSecs += val; // seconds + break; +@@ -1393,12 +1222,12 @@ utility::seconds __cdecl timespan::xml_d + return utility::seconds(numSecs); + } + +-static const utility::char_t c_allowed_chars[] = +- _XPLATSTR("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"); ++const utility::string_t nonce_generator::c_allowed_chars( ++ _XPLATSTR("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789")); + + utility::string_t nonce_generator::generate() + { +- std::uniform_int_distribution<> distr(0, static_cast<int>(sizeof(c_allowed_chars) / sizeof(utility::char_t)) - 1); ++ std::uniform_int_distribution<> distr(0, static_cast<int>(c_allowed_chars.length() - 1)); + utility::string_t result; + result.reserve(length()); + std::generate_n(std::back_inserter(result), length(), [&]() { return c_allowed_chars[distr(m_random)]; }); +--- cpprest-2.10.12.orig/Release/tests/functional/utils/datetime.cpp ++++ cpprest-2.10.12/Release/tests/functional/utils/datetime.cpp +@@ -74,6 +74,16 @@ SUITE(datetime) + } + } + ++ TEST(parsing_time_extended) ++ { ++ // ISO 8601 ++ { ++ auto dt = utility::datetime::from_string(_XPLATSTR("14:30:01Z"), utility::datetime::ISO_8601); ++ ++ VERIFY_ARE_NOT_EQUAL(0u, dt.to_interval()); ++ } ++ } ++ + void TestDateTimeRoundtrip(utility::string_t str, utility::string_t strExpected) + { + auto dt = utility::datetime::from_string(str, utility::datetime::ISO_8601); +@@ -91,8 +101,6 @@ SUITE(datetime) + + TEST(parsing_time_roundtrip_datetime2) + { +- // lose the last '000' +- TestDateTimeRoundtrip(_XPLATSTR("2013-11-19T14:30:59.1234567000Z"), _XPLATSTR("2013-11-19T14:30:59.1234567Z")); + // lose the last '999' without rounding up + TestDateTimeRoundtrip(_XPLATSTR("2013-11-19T14:30:59.1234567999Z"), _XPLATSTR("2013-11-19T14:30:59.1234567Z")); + } +@@ -121,260 +129,16 @@ SUITE(datetime) + TestDateTimeRoundtrip(_XPLATSTR("2013-11-19T14:30:59.5Z")); + } + +- void TestRfc1123IsTimeT(const utility::char_t* str, time_t t) +- { +- datetime dt = datetime::from_string(str, utility::datetime::RFC_1123); +- uint64_t interval = dt.to_interval(); +- VERIFY_ARE_EQUAL(0, interval % 10000000); +- interval /= 10000000; +- interval -= 11644473600; // NT epoch adjustment +- VERIFY_ARE_EQUAL(static_cast<uint64_t>(t), interval); +- } +- +- TEST(parsing_time_rfc1123_accepts_each_day) +- { +- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 00:00:00 GMT"), (time_t) 0); +- TestRfc1123IsTimeT(_XPLATSTR("Fri, 02 Jan 1970 00:00:00 GMT"), (time_t) 86400 * 1); +- TestRfc1123IsTimeT(_XPLATSTR("Sat, 03 Jan 1970 00:00:00 GMT"), (time_t) 86400 * 2); +- TestRfc1123IsTimeT(_XPLATSTR("Sun, 04 Jan 1970 00:00:00 GMT"), (time_t) 86400 * 3); +- TestRfc1123IsTimeT(_XPLATSTR("Mon, 05 Jan 1970 00:00:00 GMT"), (time_t) 86400 * 4); +- TestRfc1123IsTimeT(_XPLATSTR("Tue, 06 Jan 1970 00:00:00 GMT"), (time_t) 86400 * 5); +- TestRfc1123IsTimeT(_XPLATSTR("Wed, 07 Jan 1970 00:00:00 GMT"), (time_t) 86400 * 6); +- } +- +- TEST(parsing_time_rfc1123_boundary_cases) +- { +- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 00:00:00 GMT"), (time_t) 0); +- TestRfc1123IsTimeT(_XPLATSTR("19 Jan 2038 03:14:06 GMT"), (time_t) INT_MAX - 1); +-#ifndef _USE_32BIT_TIME_T +- TestRfc1123IsTimeT(_XPLATSTR("19 Jan 2038 03:13:07 -0001"), (time_t) INT_MAX); +- TestRfc1123IsTimeT(_XPLATSTR("19 Jan 2038 03:14:07 -0000"), (time_t) INT_MAX); +-#endif // _USE_32BIT_TIME_T +- TestRfc1123IsTimeT(_XPLATSTR("14 Jan 2019 23:16:21 +0000"), (time_t) 1547507781); +- TestRfc1123IsTimeT(_XPLATSTR("14 Jan 2019 23:16:21 -0001"), (time_t) 1547507841); +- TestRfc1123IsTimeT(_XPLATSTR("14 Jan 2019 23:16:21 +0001"), (time_t) 1547507721); +- TestRfc1123IsTimeT(_XPLATSTR("14 Jan 2019 23:16:21 -0100"), (time_t) 1547511381); +- TestRfc1123IsTimeT(_XPLATSTR("14 Jan 2019 23:16:21 +0100"), (time_t) 1547504181); +- } +- +- TEST(parsing_time_rfc1123_uses_each_field) +- { +- TestRfc1123IsTimeT(_XPLATSTR("02 Jan 1970 00:00:00 GMT"), (time_t) 86400); +- TestRfc1123IsTimeT(_XPLATSTR("12 Jan 1970 00:00:00 GMT"), (time_t) 950400); +- TestRfc1123IsTimeT(_XPLATSTR("01 Feb 1970 00:00:00 GMT"), (time_t) 2678400); +- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 2000 00:00:00 GMT"), (time_t) 946684800); +-#ifndef _USE_32BIT_TIME_T +- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 2100 00:00:00 GMT"), (time_t) 4102444800); +-#endif // _USE_32BIT_TIME_T +- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1990 00:00:00 GMT"), (time_t) 631152000); +- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1971 00:00:00 GMT"), (time_t) 31536000); +- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 10:00:00 GMT"), (time_t) 36000); +- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 01:00:00 GMT"), (time_t) 3600); +- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 00:10:00 GMT"), (time_t) 600); +- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 00:01:00 GMT"), (time_t) 60); +- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 00:00:10 GMT"), (time_t) 10); +- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 00:00:01 GMT"), (time_t) 1); +- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 10:00:00 GMT"), (time_t) 36000); +- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 02:00:00 PST"), (time_t) 36000); +- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 03:00:00 PDT"), (time_t) 36000); +- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 03:00:00 MST"), (time_t) 36000); +- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 04:00:00 MDT"), (time_t) 36000); +- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 04:00:00 CST"), (time_t) 36000); +- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 05:00:00 CDT"), (time_t) 36000); +- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 05:00:00 EST"), (time_t) 36000); +- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 06:00:00 EDT"), (time_t) 36000); +- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 06:00:00 -0400"), (time_t) 36000); +- TestRfc1123IsTimeT(_XPLATSTR("01 Jan 1970 05:59:00 -0401"), (time_t) 36000); +- } +- +- TEST(parsing_time_rfc1123_max_days) +- { +- TestRfc1123IsTimeT(_XPLATSTR("31 Jan 1970 00:00:00 GMT"), (time_t) 2592000); +- TestRfc1123IsTimeT(_XPLATSTR("28 Feb 2019 00:00:00 GMT"), (time_t) 1551312000); // non leap year allows feb 28 +- TestRfc1123IsTimeT(_XPLATSTR("29 Feb 2020 00:00:00 GMT"), (time_t) 1582934400); // leap year allows feb 29 +- TestRfc1123IsTimeT(_XPLATSTR("31 Mar 1970 00:00:00 GMT"), (time_t) 7689600); +- TestRfc1123IsTimeT(_XPLATSTR("30 Apr 1970 00:00:00 GMT"), (time_t) 10281600); +- TestRfc1123IsTimeT(_XPLATSTR("31 May 1970 00:00:00 GMT"), (time_t) 12960000); +- TestRfc1123IsTimeT(_XPLATSTR("30 Jun 1970 00:00:00 GMT"), (time_t) 15552000); +- TestRfc1123IsTimeT(_XPLATSTR("31 Jul 1970 00:00:00 GMT"), (time_t) 18230400); +- TestRfc1123IsTimeT(_XPLATSTR("31 Aug 1970 00:00:00 GMT"), (time_t) 20908800); +- TestRfc1123IsTimeT(_XPLATSTR("30 Sep 1970 00:00:00 GMT"), (time_t) 23500800); +- TestRfc1123IsTimeT(_XPLATSTR("31 Oct 1970 00:00:00 GMT"), (time_t) 26179200); +- TestRfc1123IsTimeT(_XPLATSTR("30 Nov 1970 00:00:00 GMT"), (time_t) 28771200); +- TestRfc1123IsTimeT(_XPLATSTR("31 Dec 1970 00:00:00 GMT"), (time_t) 31449600); +- } +- +- TEST(parsing_time_rfc1123_invalid_cases) +- { +- const utility::string_t bad_strings[] = { +- _XPLATSTR("Ahu, 01 Jan 1970 00:00:00 GMT"), // bad letters in each place +- _XPLATSTR("TAu, 01 Jan 1970 00:00:00 GMT"), +- _XPLATSTR("ThA, 01 Jan 1970 00:00:00 GMT"), +- _XPLATSTR("ThuA 01 Jan 1970 00:00:00 GMT"), +- _XPLATSTR("Thu,A01 Jan 1970 00:00:00 GMT"), +- _XPLATSTR("Thu, A1 Jan 1970 00:00:00 GMT"), +- _XPLATSTR("Thu, 0A Jan 1970 00:00:00 GMT"), +- _XPLATSTR("Thu, 01AJan 1970 00:00:00 GMT"), +- _XPLATSTR("Thu, 01 Aan 1970 00:00:00 GMT"), +- _XPLATSTR("Thu, 01 JAn 1970 00:00:00 GMT"), +- _XPLATSTR("Thu, 01 JaA 1970 00:00:00 GMT"), +- _XPLATSTR("Thu, 01 JanA1970 00:00:00 GMT"), +- _XPLATSTR("Thu, 01 Jan A970 00:00:00 GMT"), +- _XPLATSTR("Thu, 01 Jan 1A70 00:00:00 GMT"), +- _XPLATSTR("Thu, 01 Jan 19A0 00:00:00 GMT"), +- _XPLATSTR("Thu, 01 Jan 197A 00:00:00 GMT"), +- _XPLATSTR("Thu, 01 Jan 1970A00:00:00 GMT"), +- _XPLATSTR("Thu, 01 Jan 1970 A0:00:00 GMT"), +- _XPLATSTR("Thu, 01 Jan 1970 0A:00:00 GMT"), +- _XPLATSTR("Thu, 01 Jan 1970 00A00:00 GMT"), +- _XPLATSTR("Thu, 01 Jan 1970 00:A0:00 GMT"), +- _XPLATSTR("Thu, 01 Jan 1970 00:0A:00 GMT"), +- _XPLATSTR("Thu, 01 Jan 1970 00:00A00 GMT"), +- _XPLATSTR("Thu, 01 Jan 1970 00:00:A0 GMT"), +- _XPLATSTR("Thu, 01 Jan 1970 00:00:0A GMT"), +- _XPLATSTR("Thu, 01 Jan 1970 00:00:00AGMT"), +- _XPLATSTR("Thu, 01 Jan 1970 00:00:00 AMT"), +- _XPLATSTR("Thu, 01 Jan 1970 00:00:00 GAT"), +- _XPLATSTR("Thu, 01 Jan 1970 00:00:00 GMA"), +- _XPLATSTR(""), // truncation +- _XPLATSTR("T"), +- _XPLATSTR("Th"), +- _XPLATSTR("Thu"), +- _XPLATSTR("Thu,"), +- _XPLATSTR("Thu, "), +- _XPLATSTR("Thu, 0"), +- _XPLATSTR("Thu, 01"), +- _XPLATSTR("Thu, 01 "), +- _XPLATSTR("Thu, 01 J"), +- _XPLATSTR("Thu, 01 Ja"), +- _XPLATSTR("Thu, 01 Jan"), +- _XPLATSTR("Thu, 01 Jan "), +- _XPLATSTR("Thu, 01 Jan 1"), +- _XPLATSTR("Thu, 01 Jan 19"), +- _XPLATSTR("Thu, 01 Jan 197"), +- _XPLATSTR("Thu, 01 Jan 1970"), +- _XPLATSTR("Thu, 01 Jan 1970 "), +- _XPLATSTR("Thu, 01 Jan 1970 0"), +- _XPLATSTR("Thu, 01 Jan 1970 00"), +- _XPLATSTR("Thu, 01 Jan 1970 00:"), +- _XPLATSTR("Thu, 01 Jan 1970 00:0"), +- _XPLATSTR("Thu, 01 Jan 1970 00:00"), +- _XPLATSTR("Thu, 01 Jan 1970 00:00:"), +- _XPLATSTR("Thu, 01 Jan 1970 00:00:0"), +- _XPLATSTR("Thu, 01 Jan 1970 00:00:00"), +- _XPLATSTR("Thu, 01 Jan 1970 00:00:00 "), +- _XPLATSTR("Thu, 01 Jan 1970 00:00:00 G"), +- _XPLATSTR("Thu, 01 Jan 1970 00:00:00 GM"), +- _XPLATSTR("Fri, 01 Jan 1970 00:00:00 GMT"), // wrong day +- _XPLATSTR("01 Jan 4970 00:00:00 GMT"), // year too big +- _XPLATSTR("01 Jan 3001 00:00:00 GMT"), +- _XPLATSTR("01 Xxx 1971 00:00:00 GMT"), // month bad +- _XPLATSTR("00 Jan 1971 00:00:00 GMT"), // day too small +- _XPLATSTR("32 Jan 1971 00:00:00 GMT"), // day too big +- _XPLATSTR("30 Feb 1971 00:00:00 GMT"), // day too big for feb +- _XPLATSTR("30 Feb 1971 00:00:00 GMT"), // day too big for feb (non-leap year) +- _XPLATSTR("32 Mar 1971 00:00:00 GMT"), // other months +- _XPLATSTR("31 Apr 1971 00:00:00 GMT"), +- _XPLATSTR("32 May 1971 00:00:00 GMT"), +- _XPLATSTR("31 Jun 1971 00:00:00 GMT"), +- _XPLATSTR("32 Jul 1971 00:00:00 GMT"), +- _XPLATSTR("32 Aug 1971 00:00:00 GMT"), +- _XPLATSTR("31 Sep 1971 00:00:00 GMT"), +- _XPLATSTR("32 Oct 1971 00:00:00 GMT"), +- _XPLATSTR("31 Nov 1971 00:00:00 GMT"), +- _XPLATSTR("32 Dec 1971 00:00:00 GMT"), +- _XPLATSTR("01 Jan 1971 70:00:00 GMT"), // hour too big +- _XPLATSTR("01 Jan 1971 24:00:00 GMT"), +- _XPLATSTR("01 Jan 1971 00:60:00 GMT"), // minute too big +- _XPLATSTR("01 Jan 1971 00:00:70 GMT"), // second too big +- _XPLATSTR("01 Jan 1971 00:00:61 GMT"), +- _XPLATSTR("01 Jan 1969 00:00:00 GMT"), // underflow +- _XPLATSTR("01 Jan 1969 00:00:00 CEST"), // bad tz +- _XPLATSTR("01 Jan 1970 00:00:00 +2400"), // bad tzoffsets +- _XPLATSTR("01 Jan 1970 00:00:00 -3000"), +- _XPLATSTR("01 Jan 1970 00:00:00 +2160"), +- _XPLATSTR("01 Jan 1970 00:00:00 -2400"), +- _XPLATSTR("01 Jan 1970 00:00:00 -2160"), +- }; +- +- for (const auto& str : bad_strings) +- { +- auto dt = utility::datetime::from_string(str, utility::datetime::RFC_1123); +- VERIFY_ARE_EQUAL(0, dt.to_interval()); +- } +- } +- +- TEST(parsing_time_iso8601_boundary_cases) +- { +- // boundary cases: +- TestDateTimeRoundtrip(_XPLATSTR("1970-01-01T00:00:00Z")); // epoch +- TestDateTimeRoundtrip(_XPLATSTR("2038-01-19T03:14:06+00:00"), _XPLATSTR("2038-01-19T03:14:06Z")); // INT_MAX - 1 +-#ifndef _USE_32BIT_TIME_T +- TestDateTimeRoundtrip(_XPLATSTR("2038-01-19T03:13:07-00:01"), +- _XPLATSTR("2038-01-19T03:14:07Z")); // INT_MAX after subtacting 1 +- TestDateTimeRoundtrip(_XPLATSTR("2038-01-19T03:14:07-00:00"), _XPLATSTR("2038-01-19T03:14:07Z")); +-#endif // _USE_32BIT_TIME_T +- } +- +- TEST(parsing_time_iso8601_uses_each_timezone_digit) +- { +- TestDateTimeRoundtrip(_XPLATSTR("2019-01-14T23:16:21+00:00"), _XPLATSTR("2019-01-14T23:16:21Z")); +- TestDateTimeRoundtrip(_XPLATSTR("2019-01-14T23:16:21-00:01"), _XPLATSTR("2019-01-14T23:17:21Z")); +- TestDateTimeRoundtrip(_XPLATSTR("2019-01-14T23:16:21+00:01"), _XPLATSTR("2019-01-14T23:15:21Z")); +- TestDateTimeRoundtrip(_XPLATSTR("2019-01-14T23:16:21-01:00"), _XPLATSTR("2019-01-15T00:16:21Z")); +- TestDateTimeRoundtrip(_XPLATSTR("2019-01-14T23:16:21+01:00"), _XPLATSTR("2019-01-14T22:16:21Z")); +- } +- +- TEST(parsing_time_iso8601_uses_each_digit) +- { +- TestDateTimeRoundtrip(_XPLATSTR("1970-01-01T00:00:01Z")); +- TestDateTimeRoundtrip(_XPLATSTR("1970-01-01T00:01:00Z")); +- TestDateTimeRoundtrip(_XPLATSTR("1970-01-01T01:00:00Z")); +- TestDateTimeRoundtrip(_XPLATSTR("1970-01-02T00:00:00Z")); +- TestDateTimeRoundtrip(_XPLATSTR("1970-02-01T00:00:00Z")); +- TestDateTimeRoundtrip(_XPLATSTR("1971-01-01T00:00:00Z")); +- +- TestDateTimeRoundtrip(_XPLATSTR("1999-01-01T00:00:00Z")); +- TestDateTimeRoundtrip(_XPLATSTR("1970-12-01T00:00:00Z")); +- TestDateTimeRoundtrip(_XPLATSTR("1970-09-01T00:00:00Z")); +- TestDateTimeRoundtrip(_XPLATSTR("1970-01-30T00:00:00Z")); +- TestDateTimeRoundtrip(_XPLATSTR("1970-01-31T00:00:00Z")); +- TestDateTimeRoundtrip(_XPLATSTR("1970-01-01T23:00:00Z")); +- TestDateTimeRoundtrip(_XPLATSTR("1970-01-01T19:00:00Z")); +- TestDateTimeRoundtrip(_XPLATSTR("1970-01-01T00:59:00Z")); +- TestDateTimeRoundtrip(_XPLATSTR("1970-01-01T00:00:59Z")); +- TestDateTimeRoundtrip(_XPLATSTR("1970-01-01T00:00:60Z"), _XPLATSTR("1970-01-01T00:01:00Z")); // leap seconds +- } +- +- TEST(parsing_time_iso8601_accepts_month_max_days) +- { +- TestDateTimeRoundtrip(_XPLATSTR("1970-01-31T00:00:00Z")); // jan +- TestDateTimeRoundtrip(_XPLATSTR("2019-02-28T00:00:00Z")); // non leap year allows feb 28 +- TestDateTimeRoundtrip(_XPLATSTR("2020-02-29T00:00:00Z")); // leap year allows feb 29 +- TestDateTimeRoundtrip(_XPLATSTR("1970-03-31T00:00:00Z")); // mar +- TestDateTimeRoundtrip(_XPLATSTR("1970-04-30T00:00:00Z")); // apr +- TestDateTimeRoundtrip(_XPLATSTR("1970-05-31T00:00:00Z")); // may +- TestDateTimeRoundtrip(_XPLATSTR("1970-06-30T00:00:00Z")); // jun +- TestDateTimeRoundtrip(_XPLATSTR("1970-07-31T00:00:00Z")); // jul +- TestDateTimeRoundtrip(_XPLATSTR("1970-08-31T00:00:00Z")); // aug +- TestDateTimeRoundtrip(_XPLATSTR("1970-09-30T00:00:00Z")); // sep +- TestDateTimeRoundtrip(_XPLATSTR("1970-10-31T00:00:00Z")); // oct +- TestDateTimeRoundtrip(_XPLATSTR("1970-11-30T00:00:00Z")); // nov +- TestDateTimeRoundtrip(_XPLATSTR("1970-12-31T00:00:00Z")); // dec +- } +- +- TEST(parsing_time_iso8601_accepts_lowercase_t_z) +- { +- TestDateTimeRoundtrip(_XPLATSTR("1970-01-01t00:00:00Z"), _XPLATSTR("1970-01-01T00:00:00Z")); +- TestDateTimeRoundtrip(_XPLATSTR("1970-01-01T00:00:00z"), _XPLATSTR("1970-01-01T00:00:00Z")); +- } +- +- TEST(parsing_time_roundtrip_datetime_accepts_invalid_no_trailing_timezone) ++ TEST(parsing_time_roundtrip_datetime_invalid1, ++ "Ignore:Linux", ++ "Codeplex issue #115", ++ "Ignore:Apple", ++ "Codeplex issue #115") + { + // No digits after the dot, or non-digits. This is not a valid input, but we should not choke on it, + // Simply ignore the bad fraction + const utility::string_t bad_strings[] = {_XPLATSTR("2013-11-19T14:30:59.Z"), +- _XPLATSTR("2013-11-19T14:30:59.a12Z")}; ++ _XPLATSTR("2013-11-19T14:30:59.1a2Z")}; + utility::string_t str_corrected = _XPLATSTR("2013-11-19T14:30:59Z"); + + for (const auto& str : bad_strings) +@@ -387,87 +151,12 @@ SUITE(datetime) + + TEST(parsing_time_roundtrip_datetime_invalid2) + { +- // Various unsupported cases. In all cases, we have produce an empty date time ++ // Variouls unsupported cases. In all cases, we have produce an empty date time + const utility::string_t bad_strings[] = { +- _XPLATSTR(""), // empty +- _XPLATSTR(".Z"), // too short +- _XPLATSTR(".Zx"), // no trailing Z +- _XPLATSTR("3.14Z") // not a valid date +- _XPLATSTR("a971-01-01T00:00:00Z"), // any non digits or valid separators +- _XPLATSTR("1a71-01-01T00:00:00Z"), +- _XPLATSTR("19a1-01-01T00:00:00Z"), +- _XPLATSTR("197a-01-01T00:00:00Z"), +- _XPLATSTR("1971a01-01T00:00:00Z"), +- _XPLATSTR("1971-a1-01T00:00:00Z"), +- _XPLATSTR("1971-0a-01T00:00:00Z"), +- _XPLATSTR("1971-01a01T00:00:00Z"), +- _XPLATSTR("1971-01-a1T00:00:00Z"), +- _XPLATSTR("1971-01-0aT00:00:00Z"), +- // _XPLATSTR("1971-01-01a00:00:00Z"), parsed as complete date +- _XPLATSTR("1971-01-01Ta0:00:00Z"), +- _XPLATSTR("1971-01-01T0a:00:00Z"), +- _XPLATSTR("1971-01-01T00a00:00Z"), +- _XPLATSTR("1971-01-01T00:a0:00Z"), +- _XPLATSTR("1971-01-01T00:0a:00Z"), +- _XPLATSTR("1971-01-01T00:00a00Z"), +- _XPLATSTR("1971-01-01T00:00:a0Z"), +- _XPLATSTR("1971-01-01T00:00:0aZ"), +- // "1971-01-01T00:00:00a", accepted as per invalid_no_trailing_timezone above +- _XPLATSTR("1"), // truncation +- _XPLATSTR("19"), +- _XPLATSTR("197"), +- _XPLATSTR("1970"), +- _XPLATSTR("1970-"), +- _XPLATSTR("1970-0"), +- _XPLATSTR("1970-01"), +- _XPLATSTR("1970-01-"), +- _XPLATSTR("1970-01-0"), +- // _XPLATSTR("1970-01-01"), complete date +- _XPLATSTR("1970-01-01T"), +- _XPLATSTR("1970-01-01T0"), +- _XPLATSTR("1970-01-01T00"), +- _XPLATSTR("1970-01-01T00:"), +- _XPLATSTR("1970-01-01T00:0"), +- _XPLATSTR("1970-01-01T00:00"), +- _XPLATSTR("1970-01-01T00:00:"), +- _XPLATSTR("1970-01-01T00:00:0"), +- // _XPLATSTR("1970-01-01T00:00:00"), // accepted as invalid timezone above +- _XPLATSTR("4970-01-01T00:00:00Z"), // year too big +- _XPLATSTR("3001-01-01T00:00:00Z"), +- _XPLATSTR("1971-00-01T00:00:00Z"), // month too small +- _XPLATSTR("1971-20-01T00:00:00Z"), // month too big +- _XPLATSTR("1971-13-01T00:00:00Z"), +- _XPLATSTR("1971-01-00T00:00:00Z"), // day too small +- _XPLATSTR("1971-01-32T00:00:00Z"), // day too big +- _XPLATSTR("1971-02-30T00:00:00Z"), // day too big for feb +- _XPLATSTR("1971-02-30T00:00:00Z"), // day too big for feb (non-leap year) +- _XPLATSTR("1971-03-32T00:00:00Z"), // other months +- _XPLATSTR("1971-04-31T00:00:00Z"), +- _XPLATSTR("1971-05-32T00:00:00Z"), +- _XPLATSTR("1971-06-31T00:00:00Z"), +- _XPLATSTR("1971-07-32T00:00:00Z"), +- _XPLATSTR("1971-08-32T00:00:00Z"), +- _XPLATSTR("1971-09-31T00:00:00Z"), +- _XPLATSTR("1971-10-32T00:00:00Z"), +- _XPLATSTR("1971-11-31T00:00:00Z"), +- _XPLATSTR("1971-12-32T00:00:00Z"), +- _XPLATSTR("1971-01-01T70:00:00Z"), // hour too big +- _XPLATSTR("1971-01-01T24:00:00Z"), +- _XPLATSTR("1971-01-01T00:60:00Z"), // minute too big +- _XPLATSTR("1971-01-01T00:00:70Z"), // second too big +- _XPLATSTR("1971-01-01T00:00:61Z"), +- _XPLATSTR("1969-01-01T00:00:00Z"), // underflow +-#ifdef _USE_32BIT_TIME_T +- _XPLATSTR("3000-01-01T00:00:01Z"), // overflow +-#endif +- _XPLATSTR("3001-01-01T00:00:00Z"), +- _XPLATSTR("1970-01-01T00:00:00+00:01"), // time zone underflow +- // _XPLATSTR("1970-01-01T00:00:00.Z"), // accepted as invalid timezone above +- _XPLATSTR("1970-01-01T00:00:00+24:00"), // bad tzoffsets +- _XPLATSTR("1970-01-01T00:00:00-30:00"), +- _XPLATSTR("1970-01-01T00:00:00+21:60"), +- _XPLATSTR("1970-01-01T00:00:00-24:00"), +- _XPLATSTR("1970-01-01T00:00:00-21:60"), ++ _XPLATSTR(""), // empty ++ _XPLATSTR(".Z"), // too short ++ _XPLATSTR(".Zx"), // no trailing Z ++ _XPLATSTR("3.14Z") // not a valid date + }; + + for (const auto& str : bad_strings) +@@ -477,6 +166,16 @@ SUITE(datetime) + } + } + ++ TEST(parsing_time_roundtrip_time) ++ { ++ // time only without date ++ utility::string_t str = _XPLATSTR("14:30:59.1234567Z"); ++ auto dt = utility::datetime::from_string(str, utility::datetime::ISO_8601); ++ utility::string_t str2 = dt.to_string(utility::datetime::ISO_8601); ++ // Must look for a substring now, since the date part is filled with today's date ++ VERIFY_IS_TRUE(str2.find(str) != std::string::npos); ++ } ++ + } // SUITE(datetime) + + } // namespace utils_tests diff --git a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/system-brotli.patch b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/system-brotli.patch deleted file mode 100644 index e6f64772d4..0000000000 --- a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/system-brotli.patch +++ /dev/null @@ -1,38 +0,0 @@ -Description: Find system brotli -Author: Gianfranco Costamagna <locutusofborg@debian.org> -Forwarded: https://github.com/Microsoft/cpprestsdk/pull/952 -Last-Update: 2018-11-05 - ---- cpprest-2.10.7.orig/Release/cmake/cpprest_find_brotli.cmake -+++ cpprest-2.10.7/Release/cmake/cpprest_find_brotli.cmake -@@ -3,8 +3,17 @@ function(cpprest_find_brotli) - return() - endif() - -- find_package(unofficial-brotli REQUIRED) - -- add_library(cpprestsdk_brotli_internal INTERFACE) -- target_link_libraries(cpprestsdk_brotli_internal INTERFACE unofficial::brotli::brotlienc unofficial::brotli::brotlidec unofficial::brotli::brotlicommon) -+ find_package(PkgConfig) -+ pkg_check_modules(BROTLIENC libbrotlienc) -+ pkg_check_modules(BROTLIDEC libbrotlidec) -+ if(BROTLIDEC_FOUND AND BROTLIENC_FOUND) -+ target_link_libraries(cpprest PRIVATE ${BROTLIDEC_LDFLAGS} ${BROTLIENC_LDFLAGS}) -+ else(BROTLIDEC_FOUND AND BROTLIENC_FOUND) -+ find_package(unofficial-brotli REQUIRED) -+ add_library(cpprestsdk_brotli_internal INTERFACE) -+ target_link_libraries(cpprestsdk_brotli_internal INTERFACE unofficial::brotli::brotlienc unofficial::brotli::brotlidec unofficial::brotli::brotlicommon) -+ target_link_libraries(cpprest PRIVATE cpprestsdk_brotli_internal) -+ endif(BROTLIDEC_FOUND AND BROTLIENC_FOUND) -+ - endfunction() ---- cpprest-2.10.7.orig/Release/src/CMakeLists.txt -+++ cpprest-2.10.7/Release/src/CMakeLists.txt -@@ -84,7 +84,6 @@ else() - target_compile_definitions(cpprest PRIVATE -DCPPREST_EXCLUDE_BROTLI=1) - else() - cpprest_find_brotli() -- target_link_libraries(cpprest PRIVATE cpprestsdk_brotli_internal) - endif() - endif() - diff --git a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest_2.10.7.bb b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest_2.10.12.bb index 5cc6385dfb..92c04535d7 100644 --- a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest_2.10.7.bb +++ b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest_2.10.12.bb @@ -8,16 +8,13 @@ DEPENDS = "openssl websocketpp zlib boost brotli" EXTRA_OECMAKE = "-DCPPREST_EXPORT_DIR=cmake -DCPPREST_EXCLUDE_BROTLI=OFF" SRC_URI = "git://github.com/Microsoft/cpprestsdk.git;protocol=https;branch=master \ - file://disable-outside-tests.patch \ - file://disable-test-timeouts.patch \ - file://disable-float-tests.patch \ - file://950-fix.patch \ - file://system-brotli.patch \ + file://revert-9b670e5b33dfdbd501d618cd7e7498148ffbd559.patch \ + file://revert-f10d9f8e214516d2c19aa6ef831ee874a58c0479.patch \ " -# tag 2.10.7 -SRCREV= "c4cef129e880a3f9c23a480e8c983793963173bb" +# tag 2.10.12 +SRCREV= "d4fb1cf7f7d22c12e2e442ba5a5e98d09b0a28ab" S = "${WORKDIR}/git" -inherit cmake +inherit cmake pkgconfig diff --git a/meta-openembedded/meta-oe/recipes-support/enchant/enchant2_2.2.3.bb b/meta-openembedded/meta-oe/recipes-support/enchant/enchant2_2.2.3.bb new file mode 100644 index 0000000000..42150c88f3 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/enchant/enchant2_2.2.3.bb @@ -0,0 +1,26 @@ +SUMMARY = "Enchant Spell checker API Library v2" +SECTION = "libs" +HOMEPAGE = "https://abiword.github.io/enchant/" +LICENSE = "LGPLv2.1+" +LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=a916467b91076e631dd8edb7424769c7" + +DEPENDS = "glib-2.0" + +inherit autotools pkgconfig + +SRC_URI = "https://github.com/AbiWord/enchant/releases/download/v${PV}/enchant-${PV}.tar.gz" +SRC_URI[md5sum] = "4b8abb58e00e93363591b3f5ea4f52d5" +SRC_URI[sha256sum] = "abd8e915675cff54c0d4da5029d95c528362266557c61c7149d53fa069b8076d" + +S = "${WORKDIR}/enchant-${PV}" + +EXTRA_OEMAKE = "pkgdatadir=${datadir}/enchant-2" + +PACKAGECONFIG ??= "hunspell" +PACKAGECONFIG[aspell] = "--with-aspell,--without-aspell,aspell,aspell" +PACKAGECONFIG[hunspell] = "--with-hunspell,--without-hunspell,hunspell,hunspell" + +FILES_${PN} += " \ + ${datadir}/enchant-2 \ + ${libdir}/enchant-2 \ +" diff --git a/meta-openembedded/meta-oe/recipes-support/espeak/espeak-data_1.48.04.bb b/meta-openembedded/meta-oe/recipes-support/espeak/espeak-data_1.48.04.bb deleted file mode 100644 index a4e5d14d17..0000000000 --- a/meta-openembedded/meta-oe/recipes-support/espeak/espeak-data_1.48.04.bb +++ /dev/null @@ -1,24 +0,0 @@ -require espeak.inc - -inherit native - -PACKAGES = "${PN}" -FILES_${PN} = "${layout_datadir}" - -PACKAGE_ARCH = "${MACHINE_ARCH}" -TARGET_ARCH = "${MACHINE_ARCH}" - -do_compile() { - # Fixing byte order of phoneme data files - cd "${S}/platforms/big_endian" - sed -i '/^ *CC *=/d' Makefile - sed -i 's/\(.*BYTE_ORDER\)/#undef BYTE_ORDER\n#define BYTE_ORDER BIG_ENDIAN\n\1/' espeak-phoneme-data.c - oe_runmake - ./espeak-phoneme-data "${S}/espeak-data" "." "${S}/espeak-data/phondata-manifest" - cp -f phondata phonindex phontab "${S}/espeak-data" -} - -do_install() { - install -d ${D}${layout_datadir}/espeak-data - install -m 0644 ${S}/espeak-data/phon* ${D}${layout_datadir}/espeak-data -} diff --git a/meta-openembedded/meta-oe/recipes-support/espeak/espeak.inc b/meta-openembedded/meta-oe/recipes-support/espeak/espeak.inc deleted file mode 100644 index f45455c7e1..0000000000 --- a/meta-openembedded/meta-oe/recipes-support/espeak/espeak.inc +++ /dev/null @@ -1,15 +0,0 @@ -DESCRIPTION = "eSpeak is a compact open source software speech synthesizer" -SECTION = "base" -LICENSE = "GPLv3" -LIC_FILES_CHKSUM = "file://License.txt;md5=cb7a20edb4c9f5f478de6523dcd7362c" - -SRC_URI = "http://downloads.sourceforge.net/espeak/espeak-1.48.04-source.zip \ - file://0001-Fix-build-of-shared-library-on-architectures-needing.patch \ - file://espeak-1.48-gcc-6-fix.patch \ -" -SRC_URI[md5sum] = "cadd7482eaafe9239546bdc09fa244c3" -SRC_URI[sha256sum] = "bf9a17673adffcc28ff7ea18764f06136547e97bbd9edf2ec612f09b207f0659" - -S = "${WORKDIR}/espeak-${PV}-source" - -DEPENDS = "portaudio-v19" diff --git a/meta-openembedded/meta-oe/recipes-support/espeak/espeak_1.48.04.bb b/meta-openembedded/meta-oe/recipes-support/espeak/espeak_1.48.04.bb index 57e30f0710..78f8f85c96 100644 --- a/meta-openembedded/meta-oe/recipes-support/espeak/espeak_1.48.04.bb +++ b/meta-openembedded/meta-oe/recipes-support/espeak/espeak_1.48.04.bb @@ -1,8 +1,20 @@ -require espeak.inc -inherit siteinfo +DESCRIPTION = "eSpeak is a compact open source software speech synthesizer" +SECTION = "base" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://License.txt;md5=cb7a20edb4c9f5f478de6523dcd7362c" + +SRC_URI = "http://downloads.sourceforge.net/espeak/espeak-1.48.04-source.zip \ + file://0001-Fix-build-of-shared-library-on-architectures-needing.patch \ + file://0002-tr_languages-cast-string_ordinal-init-values.patch \ +" +SRC_URI[md5sum] = "cadd7482eaafe9239546bdc09fa244c3" +SRC_URI[sha256sum] = "bf9a17673adffcc28ff7ea18764f06136547e97bbd9edf2ec612f09b207f0659" + +S = "${WORKDIR}/espeak-${PV}-source" + +DEPENDS = "portaudio-v19 qemu-helper-native" +inherit siteinfo qemu -EXTRA_PHONEMES = '${@bb.utils.contains("SITEINFO_ENDIANNESS", "be", "espeak-data (= ${PV})", "", d)}' -RDEPENDS_${PN} = "portaudio-v19 ${EXTRA_PHONEMES}" CXXFLAGS += "-DUSE_PORTAUDIO" TARGET_CC_ARCH += "${LDFLAGS}" @@ -11,12 +23,30 @@ FILES_${PN} += "${datadir}/espeak-data" do_configure() { # "speak" binary, a TTS engine, uses portaudio in either APIs V18 or V19, use V19 - cp "${S}/src/portaudio19.h" "${S}/src/portaudio.h" + install -m 0644 "${S}/src/portaudio19.h" "${S}/src/portaudio.h" } do_compile() { cd src oe_runmake + + cd "${S}/platforms/big_endian" + qemu_binary="${@qemu_wrapper_cmdline(d, '${STAGING_DIR_TARGET}', ['${S}/platforms/big_endian', '${STAGING_DIR_TARGET}${base_libdir}'])}" + cat >qemuwrapper <<EOF +#!/bin/sh +$qemu_binary "\$@" +EOF + chmod +x qemuwrapper + sed -i '/^ *CC *=/d' Makefile + # Fixing byte order of phoneme data files + if [ "${SITEINFO_ENDIANNESS}" = "be" ]; then + sed -i 's/\(.*BYTE_ORDER\)/#undef BYTE_ORDER\n#define BYTE_ORDER BIG_ENDIAN\n\1/' espeak-phoneme-data.c + else + sed -i 's/\(.*BYTE_ORDER\)/#undef BYTE_ORDER\n#define BYTE_ORDER LITTLE_ENDIAN\n\1/' espeak-phoneme-data.c + fi + oe_runmake + ./qemuwrapper ./espeak-phoneme-data "${S}/espeak-data" "." "${S}/espeak-data/phondata-manifest" + cp -f phondata phonindex phontab "${S}/espeak-data" } do_install() { @@ -31,10 +61,7 @@ do_install() { ln -sf espeak/espeak.h ${D}${includedir}/ oe_libinstall -so -C src libespeak ${D}${libdir} - if [ "${SITEINFO_ENDIANNESS}" = "be" ] ; then - # the big-endian phon* files are provided by the package espeak-data - rm -f ${S}/espeak-data/phon* - fi - cp -R --no-dereference --preserve=mode,links ${S}/espeak-data/* ${D}${datadir}/espeak-data } + +RDEPENDS_${PN} = "portaudio-v19" diff --git a/meta-openembedded/meta-oe/recipes-support/espeak/files/0002-tr_languages-cast-string_ordinal-init-values.patch b/meta-openembedded/meta-oe/recipes-support/espeak/files/0002-tr_languages-cast-string_ordinal-init-values.patch new file mode 100644 index 0000000000..cef360eaef --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/espeak/files/0002-tr_languages-cast-string_ordinal-init-values.patch @@ -0,0 +1,34 @@ +From 451330d09a6a3500b40bc4f5896ba790ab46cd6c Mon Sep 17 00:00:00 2001 +From: Romain Naour <romain.naour@gmail.com> +Date: Sun, 15 Jan 2017 19:37:31 +0100 +Subject: [PATCH 2/2] tr_languages: cast string_ordinal init values + +On some architecture, "char" is signed (x86_64, nios2...) so the +compiler try to convert int 0xc2 and 0xba to a signed char. +This is an error since gcc6 (Wnarrowing). + +Fixes: +http://autobuild.buildroot.net/results/bae/baef9888b1979d18171668a675985e3f3b45fda6 + +Upstream-Status: Pending [imported from BR] +Signed-off-by: Romain Naour <romain.naour@gmail.com> +--- + src/tr_languages.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/tr_languages.cpp b/src/tr_languages.cpp +index 5c80286..dbc6e36 100644 +--- a/src/tr_languages.cpp ++++ b/src/tr_languages.cpp +@@ -200,7 +200,7 @@ static const unsigned short chars_ignore_zwnj_hyphen[] = { + 0x200d, 1, // zero width joiner + 0, 0 }; + +-const char string_ordinal[] = {0xc2,0xba,0}; // masculine ordinal character, UTF-8 ++const char string_ordinal[] = {(char)0xc2,(char)0xba,0}; // masculine ordinal character, UTF-8 + + + static Translator* NewTranslator(void) +-- +2.9.3 + diff --git a/meta-openembedded/meta-oe/recipes-support/espeak/files/espeak-1.48-gcc-6-fix.patch b/meta-openembedded/meta-oe/recipes-support/espeak/files/espeak-1.48-gcc-6-fix.patch deleted file mode 100644 index 6e59c7892f..0000000000 --- a/meta-openembedded/meta-oe/recipes-support/espeak/files/espeak-1.48-gcc-6-fix.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/src/tr_languages.cpp b/src/tr_languages.cpp ---- a/src/tr_languages.cpp -+++ b/src/tr_languages.cpp -@@ -198,7 +198,7 @@ static const unsigned short chars_ignore_zwnj_hyphen[] = { - 0x200d, 1, // zero width joiner - 0, 0 }; - --const char string_ordinal[] = {0xc2,0xba,0}; // masculine ordinal character, UTF-8 -+const char string_ordinal[] = {'\xc2','\xba',0}; // masculine ordinal character, UTF-8 - - - static Translator* NewTranslator(void) diff --git a/meta-openembedded/meta-oe/recipes-support/farsight/libnice_0.1.14.bb b/meta-openembedded/meta-oe/recipes-support/farsight/libnice_0.1.14.bb index 775257f93c..967beeba42 100644 --- a/meta-openembedded/meta-oe/recipes-support/farsight/libnice_0.1.14.bb +++ b/meta-openembedded/meta-oe/recipes-support/farsight/libnice_0.1.14.bb @@ -15,15 +15,16 @@ DEPENDS = "glib-2.0 gnutls" PACKAGECONFIG ??= "gstreamer1.0" PACKAGECONFIG[gupnp] = "--enable-gupnp,--disable-gupnp,gupnp-igd" -PACKAGECONFIG[gstreamer0.10] = "--with-gstreamer-0.10,--without-gstreamer-0.10,gstreamer gst-plugins-base" PACKAGECONFIG[gstreamer1.0] = "--with-gstreamer,--without-gstreamer,gstreamer1.0 gstreamer1.0-plugins-base" inherit autotools pkgconfig gtk-doc gobject-introspection -FILES_${PN} += "${libdir}/gstreamer-0.10/*.so ${libdir}/gstreamer-1.0/*.so" -FILES_${PN}-dev += "${libdir}/gstreamer-0.10/*.la ${libdir}/gstreamer-1.0/*.la" -FILES_${PN}-staticdev += "${libdir}/gstreamer-0.10/*.a ${libdir}/gstreamer-1.0/*.a" -FILES_${PN}-dbg += "${libdir}/gstreamer-0.10/.debug ${libdir}/gstreamer-1.0/.debug" +EXTRA_OECONF += "--without-gstreamer-0.10" + +FILES_${PN} += "${libdir}/gstreamer-1.0/*.so" +FILES_${PN}-dev += "${libdir}/gstreamer-1.0/*.la" +FILES_${PN}-staticdev += "${libdir}/gstreamer-1.0/*.a" +FILES_${PN}-dbg += "${libdir}/gstreamer-1.0/.debug" do_configure_prepend() { mkdir ${S}/m4 || true diff --git a/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp/0001-Fix-gstreamer-1.0-detection.patch b/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp/0001-Fix-gstreamer-1.0-detection.patch deleted file mode 100644 index a567cba925..0000000000 --- a/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp/0001-Fix-gstreamer-1.0-detection.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 368989526c32cdf9d680a397fede3cb773fa2609 Mon Sep 17 00:00:00 2001 -From: Mike Gilbert <floppym@gentoo.org> -Date: Fri, 28 Jul 2017 16:31:41 -0400 -Subject: [PATCH] Fix gstreamer-1.0 detection - -Upstream State: Backport - ---- - cmake/FindGStreamer_1_0.cmake | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/cmake/FindGStreamer_1_0.cmake b/cmake/FindGStreamer_1_0.cmake -index 3aa8fc6..6fbc0ec 100644 ---- a/cmake/FindGStreamer_1_0.cmake -+++ b/cmake/FindGStreamer_1_0.cmake -@@ -59,7 +59,7 @@ macro(FIND_GSTREAMER_COMPONENT _component_prefix _pkgconfig_name _library) - - string(REGEX MATCH "(.*)>=(.*)" _dummy "${_pkgconfig_name}") - if ("${CMAKE_MATCH_2}" STREQUAL "") -- pkg_check_modules(PC_${_component_prefix} "${_pkgconfig_name} >= ${GStreamer_FIND_VERSION}") -+ pkg_check_modules(PC_${_component_prefix} "${_pkgconfig_name} >= ${GSTREAMER_1_0_MINIMUM_VERSION}") - else () - pkg_check_modules(PC_${_component_prefix} ${_pkgconfig_name}) - endif () --- -2.7.4 - diff --git a/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp/winpr-makecert-Build-with-install-RPATH.patch b/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp/winpr-makecert-Build-with-install-RPATH.patch index 0d7dcc28d7..0f6f575d02 100644 --- a/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp/winpr-makecert-Build-with-install-RPATH.patch +++ b/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp/winpr-makecert-Build-with-install-RPATH.patch @@ -12,13 +12,13 @@ Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com> winpr/tools/makecert-cli/CMakeLists.txt | 3 +++ 1 file changed, 3 insertions(+) -diff --git a/winpr/tools/makecert-cli/CMakeLists.txt b/winpr/tools/makecert-cli/CMakeLists.txt -index 74afa09..8d00ef1 100644 ---- a/winpr/tools/makecert-cli/CMakeLists.txt -+++ b/winpr/tools/makecert-cli/CMakeLists.txt +Index: git/winpr/tools/makecert-cli/CMakeLists.txt +=================================================================== +--- git.orig/winpr/tools/makecert-cli/CMakeLists.txt ++++ git/winpr/tools/makecert-cli/CMakeLists.txt @@ -44,6 +44,9 @@ set(${MODULE_PREFIX}_LIBS winpr-tools) - target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS}) + target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS} winpr) +set_target_properties(${MODULE_NAME} PROPERTIES + BUILD_WITH_INSTALL_RPATH 1) @@ -26,6 +26,3 @@ index 74afa09..8d00ef1 100644 set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "WinPR/Tools") install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT tools EXPORT WinPRTargets) --- -2.7.4 - diff --git a/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp_git.bb b/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp_git.bb index 88aec9c415..373c4979fd 100644 --- a/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp_git.bb +++ b/meta-openembedded/meta-oe/recipes-support/freerdp/freerdp_git.bb @@ -13,10 +13,10 @@ inherit pkgconfig cmake gitpkgv PV = "2.0.0+gitr${SRCPV}" PKGV = "${GITPKGVTAG}" -SRCREV = "1648deb435ad52206f7aa2afe4b4dff71d9329bc" +# 2.0.0-rc4 +SRCREV = "e21b72c95f857817b4b32b5ef5406355c005a9e8" SRC_URI = "git://github.com/FreeRDP/FreeRDP.git \ file://winpr-makecert-Build-with-install-RPATH.patch \ - file://0001-Fix-gstreamer-1.0-detection.patch \ " S = "${WORKDIR}/git" diff --git a/meta-openembedded/meta-oe/recipes-support/function2/function2_4.0.0.bb b/meta-openembedded/meta-oe/recipes-support/function2/function2_4.0.0.bb new file mode 100644 index 0000000000..556a25aa14 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/function2/function2_4.0.0.bb @@ -0,0 +1,21 @@ +SUMMARY = "Improved drop-in replacement for std::function" +DESCRIPTION = "Provides improved implementations of std::function." +HOMEPAGE = "https://naios.github.io/function2" +LICENSE = "BSL-1.0" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e4224ccaecb14d942c71d31bef20d78c" +SRCREV = "d2acdb6c3c7612a6133cd03464ef941161258f4e" +PV .= "+git${SRCPV}" + +SRC_URI += "gitsm://github.com/Naios/function2" + +S = "${WORKDIR}/git" + +inherit cmake +inherit ptest + +# Installs some data to incorrect top-level /usr directory +do_install_append() { + mkdir -p ${D}/${datadir}/function2 + mv ${D}/${prefix}/Readme.md ${D}/${datadir}/function2/ + mv ${D}/${prefix}/LICENSE.txt ${D}/${datadir}/function2/ +} diff --git a/meta-openembedded/meta-oe/recipes-support/gnulib/gnulib/CVE-2018-17942.patch b/meta-openembedded/meta-oe/recipes-support/gnulib/gnulib/CVE-2018-17942.patch deleted file mode 100644 index 77e82b1674..0000000000 --- a/meta-openembedded/meta-oe/recipes-support/gnulib/gnulib/CVE-2018-17942.patch +++ /dev/null @@ -1,88 +0,0 @@ -From e91600a7aae3bafbefbe13abf771e61badd16286 Mon Sep 17 00:00:00 2001 -From: Changqing Li <changqing.li@windriver.com> -Date: Tue, 16 Oct 2018 14:26:11 +0800 -Subject: [PATCH] vasnprintf: Fix heap memory overrun bug. - -Reported by Ben Pfaff <blp@cs.stanford.edu> in -<https://lists.gnu.org/archive/html/bug-gnulib/2018-09/msg00107.html>. - -* lib/vasnprintf.c (convert_to_decimal): Allocate one more byte of -memory. -* tests/test-vasnprintf.c (test_function): Add another test. - -Upstream-Status: Backport [http://git.savannah.gnu.org/gitweb/?p=gnulib.git; -a=commitdiff;h=278b4175c9d7dd47c1a3071554aac02add3b3c35] - -CVE: CVE-2018-17942 - -Signed-off-by: Changqing Li <changqing.li@windriver.com> ---- - ChangeLog | 8 ++++++++ - lib/vasnprintf.c | 4 +++- - tests/test-vasnprintf.c | 19 ++++++++++++++++++- - 3 files changed, 29 insertions(+), 2 deletions(-) - -diff --git a/ChangeLog b/ChangeLog -index 9864353..5ff76a3 100644 ---- a/ChangeLog -+++ b/ChangeLog -@@ -1,3 +1,11 @@ -+2018-09-23 Bruno Haible <bruno@clisp.org> -+ vasnprintf: Fix heap memory overrun bug. -+ Reported by Ben Pfaff <blp@cs.stanford.edu> in -+ <https://lists.gnu.org/archive/html/bug-gnulib/2018-09/msg00107.html>. -+ * lib/vasnprintf.c (convert_to_decimal): Allocate one more byte of -+ memory. -+ * tests/test-vasnprintf.c (test_function): Add another test. -+ - 2017-08-21 Paul Eggert <eggert@cs.ucla.edu> - - vc-list-files: port to Solaris 10 -diff --git a/lib/vasnprintf.c b/lib/vasnprintf.c -index 2e4eb19..45de49f 100644 ---- a/lib/vasnprintf.c -+++ b/lib/vasnprintf.c -@@ -860,7 +860,9 @@ convert_to_decimal (mpn_t a, size_t extra_zeroes) - size_t a_len = a.nlimbs; - /* 0.03345 is slightly larger than log(2)/(9*log(10)). */ - size_t c_len = 9 * ((size_t)(a_len * (GMP_LIMB_BITS * 0.03345f)) + 1); -- char *c_ptr = (char *) malloc (xsum (c_len, extra_zeroes)); -+ /* We need extra_zeroes bytes for zeroes, followed by c_len bytes for the -+ digits of a, followed by 1 byte for the terminating NUL. */ -+ char *c_ptr = (char *) malloc (xsum (xsum (extra_zeroes, c_len), 1)); - if (c_ptr != NULL) - { - char *d_ptr = c_ptr; -diff --git a/tests/test-vasnprintf.c b/tests/test-vasnprintf.c -index 2dd869f..ff68d5c 100644 ---- a/tests/test-vasnprintf.c -+++ b/tests/test-vasnprintf.c -@@ -53,7 +53,24 @@ test_function (char * (*my_asnprintf) (char *, size_t *, const char *, ...)) - ASSERT (result != NULL); - ASSERT (strcmp (result, "12345") == 0); - ASSERT (length == 5); -- if (size < 6) -+ if (size < 5 + 1) -+ ASSERT (result != buf); -+ ASSERT (memcmp (buf + size, &"DEADBEEF"[size], 8 - size) == 0); -+ if (result != buf) -+ free (result); -+ } -+ /* Note: This test assumes IEEE 754 representation of 'double' floats. */ -+ for (size = 0; size <= 8; size++) -+ { -+ size_t length; -+ char *result; -+ memcpy (buf, "DEADBEEF", 8); -+ length = size; -+ result = my_asnprintf (buf, &length, "%2.0f", 1.6314159265358979e+125); -+ ASSERT (result != NULL); -+ ASSERT (strcmp (result, "163141592653589790215729350939528493057529598899734151772468186268423257777068536614838678161083520756952076273094236944990208") == 0); -+ ASSERT (length == 126); -+ if (size < 126 + 1) - ASSERT (result != buf); - ASSERT (memcmp (buf + size, &"DEADBEEF"[size], 8 - size) == 0); - if (result != buf) --- -2.7.4 - diff --git a/meta-openembedded/meta-oe/recipes-support/gnulib/gnulib_2017-08-20.18.bb b/meta-openembedded/meta-oe/recipes-support/gnulib/gnulib_2018-03-07.03.bb index e048810554..146747eee1 100644 --- a/meta-openembedded/meta-oe/recipes-support/gnulib/gnulib_2017-08-20.18.bb +++ b/meta-openembedded/meta-oe/recipes-support/gnulib/gnulib_2018-03-07.03.bb @@ -11,20 +11,20 @@ SECTION = "devel" LICENSE = "LGPLv2+" LIC_FILES_CHKSUM = "file://COPYING;md5=56a22a6e5bcce45e2c8ac184f81412b5" -SRCREV = "b23000de1e47c7d580e0e220966dd1ee42a5e5bc" +SRCREV = "0d6e3307bbdb8df4d56043d5f373eeeffe4cbef3" -SRC_URI = "git://git.sv.gnu.org/gnulib;protocol=git \ - file://CVE-2018-17942.patch \ +SRC_URI = "git://git.sv.gnu.org/gnulib.git \ " S = "${WORKDIR}/git" +inherit utils + do_install () { cd ${S} + check_git_config git checkout master git clone ${S} ${D}/${datadir}/gnulib - cd ${D}/${datadir}/gnulib - git am ${WORKDIR}/CVE-2018-17942.patch } do_patch[noexec] = "1" diff --git a/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.7.bb b/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.7.bb index e9fcc4cc98..c8b91278da 100644 --- a/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.7.bb +++ b/meta-openembedded/meta-oe/recipes-support/gperftools/gperftools_2.7.bb @@ -26,4 +26,5 @@ COMPATIBLE_HOST_mipsarch_libc-glibc = "null" # {standard input}:434: Error: lo register required -- `ldr pc,[sp]' # Makefile:4538: recipe for target 'src/base/libtcmalloc_la-linuxthreads.lo' failed ARM_INSTRUCTION_SET_armv5 = "arm" +ARM_INSTRUCTION_SET_toolchain-clang_arm = "arm" diff --git a/meta-openembedded/meta-oe/recipes-support/hdf5/files/0001-cross-compiling-support.patch b/meta-openembedded/meta-oe/recipes-support/hdf5/files/0001-cross-compiling-support.patch new file mode 100644 index 0000000000..97f16bbc0b --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/hdf5/files/0001-cross-compiling-support.patch @@ -0,0 +1,71 @@ +From 1b4fadf550587b46e405d7ccb777dcb00aa791a2 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia <hongxu.jia@windriver.com> +Date: Tue, 29 Jan 2019 15:39:15 +0800 +Subject: [PATCH 1/2] cross compiling support + +Do not generate config files at build time, use pre-generated +files to instead. + +Upstream-Status: Inappropriate [oe specific] + +Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> +--- + CMakeLists.txt | 6 ++++++ + src/CMakeLists.txt | 23 ----------------------- + 2 files changed, 6 insertions(+), 23 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 08a65c4..9af14d5 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -817,4 +817,10 @@ endif () + #----------------------------------------------------------------------------- + configure_file (${HDF_RESOURCES_DIR}/H5pubconf.h.in ${HDF5_BINARY_DIR}/H5pubconf.h @ONLY) + ++#----------------------------------------------------------------------------- ++# Copy the pre-generated files in place ++#----------------------------------------------------------------------------- ++configure_file(H5Tinit.c H5Tinit.c COPYONLY) ++configure_file(H5lib_settings.c H5lib_settings.c COPYONLY) ++ + include (CMakeInstallation.cmake) +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index d343208..d11525b 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -613,32 +613,9 @@ set (H5_PRIVATE_HEADERS + #----------------------------------------------------------------------------- + add_executable (H5detect ${HDF5_SRC_DIR}/H5detect.c) + TARGET_C_PROPERTIES (H5detect STATIC " " " ") +-if (MSVC OR MINGW) +- target_link_libraries (H5detect "ws2_32.lib") +-endif () +- +-set (CMD $<TARGET_FILE:H5detect>) +-add_custom_command ( +- OUTPUT ${HDF5_BINARY_DIR}/H5Tinit.c +- COMMAND ${CMD} +- ARGS > ${HDF5_BINARY_DIR}/H5Tinit.c +- DEPENDS H5detect +-) + + add_executable (H5make_libsettings ${HDF5_SRC_DIR}/H5make_libsettings.c) + TARGET_C_PROPERTIES (H5make_libsettings STATIC " " " ") +-if (MSVC OR MINGW) +- target_link_libraries (H5make_libsettings "ws2_32.lib") +-endif () +- +-set (CMD $<TARGET_FILE:H5make_libsettings>) +-add_custom_command ( +- OUTPUT ${HDF5_BINARY_DIR}/H5lib_settings.c +- COMMAND ${CMD} +- ARGS > ${HDF5_BINARY_DIR}/H5lib_settings.c +- DEPENDS H5make_libsettings +- WORKING_DIRECTORY ${HDF5_BINARY_DIR} +-) + + if (GENERATE_ERROR_HEADERS) + find_package (Perl) +-- +2.7.4 + diff --git a/meta-openembedded/meta-oe/recipes-support/hdf5/files/0002-Remove-suffix-shared-from-shared-library-name.patch b/meta-openembedded/meta-oe/recipes-support/hdf5/files/0002-Remove-suffix-shared-from-shared-library-name.patch new file mode 100644 index 0000000000..6f893787f8 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/hdf5/files/0002-Remove-suffix-shared-from-shared-library-name.patch @@ -0,0 +1,50 @@ +From f76141864edf7100c1c29bec159ea629077a7fa0 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia <hongxu.jia@windriver.com> +Date: Tue, 29 Jan 2019 11:13:42 +0800 +Subject: [PATCH 2/2] Remove suffix `-shared' from shared library name + +Upstream-Status: Inappropriate [OE specific] + +Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> +--- + CMakeLists.txt | 24 ++++++++++++------------ + 1 file changed, 12 insertions(+), 12 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 9af14d5..05100e3 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -153,18 +153,18 @@ set (HDF5_F90_TEST_LIB_TARGET "${HDF5_F90_TEST_LIB_CORENAME}-static") + set (HDF5_F90_C_TEST_LIB_TARGET "${HDF5_F90_C_TEST_LIB_CORENAME}-static") + set (HDF5_HL_F90_LIB_TARGET "${HDF5_HL_F90_LIB_CORENAME}-static") + set (HDF5_HL_F90_C_LIB_TARGET "${HDF5_HL_F90_C_LIB_CORENAME}-static") +-set (HDF5_LIBSH_TARGET "${HDF5_LIB_CORENAME}-shared") +-set (HDF5_TEST_LIBSH_TARGET "${HDF5_TEST_LIB_CORENAME}-shared") +-set (HDF5_CPP_LIBSH_TARGET "${HDF5_CPP_LIB_CORENAME}-shared") +-set (HDF5_HL_LIBSH_TARGET "${HDF5_HL_LIB_CORENAME}-shared") +-set (HDF5_HL_CPP_LIBSH_TARGET "${HDF5_HL_CPP_LIB_CORENAME}-shared") +-set (HDF5_TOOLS_LIBSH_TARGET "${HDF5_TOOLS_LIB_CORENAME}-shared") +-set (HDF5_F90_LIBSH_TARGET "${HDF5_F90_LIB_CORENAME}-shared") +-set (HDF5_F90_C_LIBSH_TARGET "${HDF5_F90_C_LIB_CORENAME}-shared") +-set (HDF5_F90_TEST_LIBSH_TARGET "${HDF5_F90_TEST_LIB_CORENAME}-shared") +-set (HDF5_F90_C_TEST_LIBSH_TARGET "${HDF5_F90_C_TEST_LIB_CORENAME}-shared") +-set (HDF5_HL_F90_LIBSH_TARGET "${HDF5_HL_F90_LIB_CORENAME}-shared") +-set (HDF5_HL_F90_C_LIBSH_TARGET "${HDF5_HL_F90_C_LIB_CORENAME}-shared") ++set (HDF5_LIBSH_TARGET "${HDF5_LIB_CORENAME}") ++set (HDF5_TEST_LIBSH_TARGET "${HDF5_TEST_LIB_CORENAME}") ++set (HDF5_CPP_LIBSH_TARGET "${HDF5_CPP_LIB_CORENAME}") ++set (HDF5_HL_LIBSH_TARGET "${HDF5_HL_LIB_CORENAME}") ++set (HDF5_HL_CPP_LIBSH_TARGET "${HDF5_HL_CPP_LIB_CORENAME}") ++set (HDF5_TOOLS_LIBSH_TARGET "${HDF5_TOOLS_LIB_CORENAME}") ++set (HDF5_F90_LIBSH_TARGET "${HDF5_F90_LIB_CORENAME}") ++set (HDF5_F90_C_LIBSH_TARGET "${HDF5_F90_C_LIB_CORENAME}") ++set (HDF5_F90_TEST_LIBSH_TARGET "${HDF5_F90_TEST_LIB_CORENAME}") ++set (HDF5_F90_C_TEST_LIBSH_TARGET "${HDF5_F90_C_TEST_LIB_CORENAME}") ++set (HDF5_HL_F90_LIBSH_TARGET "${HDF5_HL_F90_LIB_CORENAME}") ++set (HDF5_HL_F90_C_LIBSH_TARGET "${HDF5_HL_F90_C_LIB_CORENAME}") + + #----------------------------------------------------------------------------- + # Define some CMake variables for use later in the project +-- +2.7.4 + diff --git a/meta-openembedded/meta-oe/recipes-support/hdf5/files/H5Tinit-32.c b/meta-openembedded/meta-oe/recipes-support/hdf5/files/H5Tinit-32.c new file mode 100755 index 0000000000..8057a7ad83 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/hdf5/files/H5Tinit-32.c @@ -0,0 +1,975 @@ +/* Generated automatically by H5detect -- do not edit */ + + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Copyright by The HDF Group. * + * Copyright by the Board of Trustees of the University of Illinois. * + * All rights reserved. * + * * + * This file is part of HDF5. The full HDF5 copyright notice, including * + * terms governing use, modification, and redistribution, is contained in * + * the COPYING file, which can be found at the root of the source code * + * distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases. * + * If you do not have access to either file, you may request a copy from * + * help@hdfgroup.org. * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * + * Created: Mar 5, 2019 + * root <root@qemuarm> + * + * Purpose: This machine-generated source code contains + * information about the various integer and + * floating point numeric formats found on this + * architecture. The parameters below should be + * checked carefully and errors reported to the + * HDF5 maintainer. + * + * Each of the numeric formats listed below are + * printed from most significant bit to least + * significant bit even though the actual bytes + * might be stored in a different order in + * memory. The integers above each binary byte + * indicate the relative order of the bytes in + * memory; little-endian machines have + * decreasing numbers while big-endian machines + * have increasing numbers. + * + * The fields of the numbers are printed as + * letters with `S' for the mantissa sign bit, + * `M' for the mantissa magnitude, and `E' for + * the exponent. The exponent has an associated + * bias which can be subtracted to find the + * true exponent. The radix point is assumed + * to be before the first `M' bit. Any bit + * of a floating-point value not falling into one + * of these categories is printed as a question + * mark. Bits of integer types are printed as + * `I' for 2's complement and `U' for magnitude. + * + * If the most significant bit of the normalized + * mantissa (always a `1' except for `0.0') is + * not stored then an `implicit=yes' appears + * under the field description. In thie case, + * the radix point is still assumed to be + * before the first `M' but after the implicit + * bit. + * + * Modifications: + * + * DO NOT MAKE MODIFICATIONS TO THIS FILE! + * It was generated by code in `H5detect.c'. + * + *------------------------------------------------------------------------- + */ + +/****************/ +/* Module Setup */ +/****************/ + +#define H5T_PACKAGE /*suppress error about including H5Tpkg.h*/ + + +/***********/ +/* Headers */ +/***********/ +#include "H5private.h" /* Generic Functions */ +#include "H5Eprivate.h" /* Error handling */ +#include "H5FLprivate.h" /* Free Lists */ +#include "H5Iprivate.h" /* IDs */ +#include "H5Tpkg.h" /* Datatypes */ + + +/****************/ +/* Local Macros */ +/****************/ + + +/******************/ +/* Local Typedefs */ +/******************/ + + +/********************/ +/* Package Typedefs */ +/********************/ + + +/********************/ +/* Local Prototypes */ +/********************/ + + +/********************/ +/* Public Variables */ +/********************/ + + +/*****************************/ +/* Library Private Variables */ +/*****************************/ + + +/*********************/ +/* Package Variables */ +/*********************/ + + + +/*******************/ +/* Local Variables */ +/*******************/ + + + +/*------------------------------------------------------------------------- + * Function: H5TN_init_interface + * + * Purpose: Initialize pre-defined native datatypes from code generated + * during the library configuration by H5detect. + * + * Return: Success: non-negative + * Failure: negative + * + * Programmer: Robb Matzke + * Wednesday, December 16, 1998 + * + *------------------------------------------------------------------------- + */ +herr_t +H5TN_init_interface(void) +{ + H5T_t *dt = NULL; + herr_t ret_value = SUCCEED; + + FUNC_ENTER_NOAPI(FAIL) + + /* + * 0 + * IIIIIIII + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 1; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 8; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_2; + if((H5T_NATIVE_SCHAR_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_SCHAR_ALIGN_g = 1; + H5T_NATIVE_SCHAR_COMP_ALIGN_g = 1; + + /* + * 0 + * UUUUUUUU + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 1; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 8; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; + if((H5T_NATIVE_UCHAR_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_UCHAR_ALIGN_g = 1; + + /* + * 1 0 + * IIIIIIII IIIIIIII + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 2; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 16; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_2; + if((H5T_NATIVE_SHORT_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_SHORT_ALIGN_g = 1; + H5T_NATIVE_SHORT_COMP_ALIGN_g = 2; + + /* + * 1 0 + * UUUUUUUU UUUUUUUU + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 2; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 16; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; + if((H5T_NATIVE_USHORT_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_USHORT_ALIGN_g = 1; + + /* + * 3 2 1 0 + * IIIIIIII IIIIIIII IIIIIIII IIIIIIII + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 4; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 32; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_2; + if((H5T_NATIVE_INT_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_INT_ALIGN_g = 1; + H5T_NATIVE_INT_COMP_ALIGN_g = 4; + + /* + * 3 2 1 0 + * UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 4; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 32; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; + if((H5T_NATIVE_UINT_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_UINT_ALIGN_g = 1; + + /* + * 3 2 1 0 + * IIIIIIII IIIIIIII IIIIIIII IIIIIIII + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 4; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 32; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_2; + if((H5T_NATIVE_LONG_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_LONG_ALIGN_g = 1; + H5T_NATIVE_LONG_COMP_ALIGN_g = 4; + + /* + * 3 2 1 0 + * UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 4; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 32; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; + if((H5T_NATIVE_ULONG_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_ULONG_ALIGN_g = 1; + + /* + * 0 + * IIIIIIII + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 1; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 8; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_2; + if((H5T_NATIVE_INT8_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_INT8_ALIGN_g = 1; + + /* + * 0 + * UUUUUUUU + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 1; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 8; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; + if((H5T_NATIVE_UINT8_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_UINT8_ALIGN_g = 1; + + /* + * 0 + * IIIIIIII + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 1; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 8; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_2; + if((H5T_NATIVE_INT_LEAST8_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_INT_LEAST8_ALIGN_g = 1; + + /* + * 0 + * UUUUUUUU + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 1; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 8; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; + if((H5T_NATIVE_UINT_LEAST8_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_UINT_LEAST8_ALIGN_g = 1; + + /* + * 0 + * IIIIIIII + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 1; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 8; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_2; + if((H5T_NATIVE_INT_FAST8_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_INT_FAST8_ALIGN_g = 1; + + /* + * 0 + * UUUUUUUU + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 1; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 8; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; + if((H5T_NATIVE_UINT_FAST8_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_UINT_FAST8_ALIGN_g = 1; + + /* + * 1 0 + * IIIIIIII IIIIIIII + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 2; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 16; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_2; + if((H5T_NATIVE_INT16_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_INT16_ALIGN_g = 1; + + /* + * 1 0 + * UUUUUUUU UUUUUUUU + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 2; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 16; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; + if((H5T_NATIVE_UINT16_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_UINT16_ALIGN_g = 1; + + /* + * 1 0 + * IIIIIIII IIIIIIII + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 2; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 16; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_2; + if((H5T_NATIVE_INT_LEAST16_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_INT_LEAST16_ALIGN_g = 1; + + /* + * 1 0 + * UUUUUUUU UUUUUUUU + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 2; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 16; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; + if((H5T_NATIVE_UINT_LEAST16_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_UINT_LEAST16_ALIGN_g = 1; + + /* + * 3 2 1 0 + * IIIIIIII IIIIIIII IIIIIIII IIIIIIII + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 4; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 32; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_2; + if((H5T_NATIVE_INT_FAST16_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_INT_FAST16_ALIGN_g = 1; + + /* + * 3 2 1 0 + * UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 4; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 32; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; + if((H5T_NATIVE_UINT_FAST16_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_UINT_FAST16_ALIGN_g = 1; + + /* + * 3 2 1 0 + * IIIIIIII IIIIIIII IIIIIIII IIIIIIII + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 4; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 32; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_2; + if((H5T_NATIVE_INT32_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_INT32_ALIGN_g = 1; + + /* + * 3 2 1 0 + * UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 4; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 32; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; + if((H5T_NATIVE_UINT32_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_UINT32_ALIGN_g = 1; + + /* + * 3 2 1 0 + * IIIIIIII IIIIIIII IIIIIIII IIIIIIII + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 4; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 32; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_2; + if((H5T_NATIVE_INT_LEAST32_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_INT_LEAST32_ALIGN_g = 1; + + /* + * 3 2 1 0 + * UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 4; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 32; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; + if((H5T_NATIVE_UINT_LEAST32_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_UINT_LEAST32_ALIGN_g = 1; + + /* + * 3 2 1 0 + * IIIIIIII IIIIIIII IIIIIIII IIIIIIII + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 4; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 32; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_2; + if((H5T_NATIVE_INT_FAST32_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_INT_FAST32_ALIGN_g = 1; + + /* + * 3 2 1 0 + * UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 4; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 32; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; + if((H5T_NATIVE_UINT_FAST32_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_UINT_FAST32_ALIGN_g = 1; + + /* + * 7 6 5 4 + * IIIIIIII IIIIIIII IIIIIIII IIIIIIII + * 3 2 1 0 + * IIIIIIII IIIIIIII IIIIIIII IIIIIIII + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 8; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 64; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_2; + if((H5T_NATIVE_INT64_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_INT64_ALIGN_g = 1; + + /* + * 7 6 5 4 + * UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU + * 3 2 1 0 + * UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 8; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 64; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; + if((H5T_NATIVE_UINT64_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_UINT64_ALIGN_g = 1; + + /* + * 7 6 5 4 + * IIIIIIII IIIIIIII IIIIIIII IIIIIIII + * 3 2 1 0 + * IIIIIIII IIIIIIII IIIIIIII IIIIIIII + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 8; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 64; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_2; + if((H5T_NATIVE_INT_LEAST64_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_INT_LEAST64_ALIGN_g = 1; + + /* + * 7 6 5 4 + * UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU + * 3 2 1 0 + * UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 8; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 64; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; + if((H5T_NATIVE_UINT_LEAST64_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_UINT_LEAST64_ALIGN_g = 1; + + /* + * 7 6 5 4 + * IIIIIIII IIIIIIII IIIIIIII IIIIIIII + * 3 2 1 0 + * IIIIIIII IIIIIIII IIIIIIII IIIIIIII + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 8; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 64; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_2; + if((H5T_NATIVE_INT_FAST64_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_INT_FAST64_ALIGN_g = 1; + + /* + * 7 6 5 4 + * UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU + * 3 2 1 0 + * UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 8; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 64; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; + if((H5T_NATIVE_UINT_FAST64_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_UINT_FAST64_ALIGN_g = 1; + + /* + * 7 6 5 4 + * IIIIIIII IIIIIIII IIIIIIII IIIIIIII + * 3 2 1 0 + * IIIIIIII IIIIIIII IIIIIIII IIIIIIII + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 8; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 64; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_2; + if((H5T_NATIVE_LLONG_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_LLONG_ALIGN_g = 1; + H5T_NATIVE_LLONG_COMP_ALIGN_g = 8; + + /* + * 7 6 5 4 + * UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU + * 3 2 1 0 + * UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 8; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 64; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; + if((H5T_NATIVE_ULLONG_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_ULLONG_ALIGN_g = 1; + + /* + * 3 2 1 0 + * SEEEEEEE EMMMMMMM MMMMMMMM MMMMMMMM + * Implicit bit? yes + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_FLOAT; + dt->shared->size = 4; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 32; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.f.sign = 31; + dt->shared->u.atomic.u.f.epos = 23; + dt->shared->u.atomic.u.f.esize = 8; + dt->shared->u.atomic.u.f.ebias = 0x0000007f; + dt->shared->u.atomic.u.f.mpos = 0; + dt->shared->u.atomic.u.f.msize = 23; + dt->shared->u.atomic.u.f.norm = H5T_NORM_IMPLIED; + dt->shared->u.atomic.u.f.pad = H5T_PAD_ZERO; + if((H5T_NATIVE_FLOAT_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_FLOAT_ALIGN_g = 1; + H5T_NATIVE_FLOAT_COMP_ALIGN_g = 4; + + /* + * 7 6 5 4 + * SEEEEEEE EEEEMMMM MMMMMMMM MMMMMMMM + * 3 2 1 0 + * MMMMMMMM MMMMMMMM MMMMMMMM MMMMMMMM + * Implicit bit? yes + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_FLOAT; + dt->shared->size = 8; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 64; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.f.sign = 63; + dt->shared->u.atomic.u.f.epos = 52; + dt->shared->u.atomic.u.f.esize = 11; + dt->shared->u.atomic.u.f.ebias = 0x000003ff; + dt->shared->u.atomic.u.f.mpos = 0; + dt->shared->u.atomic.u.f.msize = 52; + dt->shared->u.atomic.u.f.norm = H5T_NORM_IMPLIED; + dt->shared->u.atomic.u.f.pad = H5T_PAD_ZERO; + if((H5T_NATIVE_DOUBLE_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_DOUBLE_ALIGN_g = 1; + H5T_NATIVE_DOUBLE_COMP_ALIGN_g = 8; + + /* + * 7 6 5 4 + * SEEEEEEE EEEEMMMM MMMMMMMM MMMMMMMM + * 3 2 1 0 + * MMMMMMMM MMMMMMMM MMMMMMMM MMMMMMMM + * Implicit bit? yes + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_FLOAT; + dt->shared->size = 8; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 64; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.f.sign = 63; + dt->shared->u.atomic.u.f.epos = 52; + dt->shared->u.atomic.u.f.esize = 11; + dt->shared->u.atomic.u.f.ebias = 0x000003ff; + dt->shared->u.atomic.u.f.mpos = 0; + dt->shared->u.atomic.u.f.msize = 52; + dt->shared->u.atomic.u.f.norm = H5T_NORM_IMPLIED; + dt->shared->u.atomic.u.f.pad = H5T_PAD_ZERO; + if((H5T_NATIVE_LDOUBLE_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_LDOUBLE_ALIGN_g = 1; + H5T_NATIVE_LDOUBLE_COMP_ALIGN_g = 8; + + /* Set the native order for this machine */ + H5T_native_order_g = H5T_ORDER_LE; + + /* Structure alignment for pointers, hvl_t, hobj_ref_t, hdset_reg_ref_t */ + H5T_POINTER_COMP_ALIGN_g = 4; + H5T_HVL_COMP_ALIGN_g = 4; + H5T_HOBJREF_COMP_ALIGN_g = 8; + H5T_HDSETREGREF_COMP_ALIGN_g = 1; + +done: + if(ret_value < 0) { + if(dt != NULL) { + dt->shared = H5FL_FREE(H5T_shared_t, dt->shared); + dt = H5FL_FREE(H5T_t, dt); + } /* end if */ + } /* end if */ + + FUNC_LEAVE_NOAPI(ret_value); +} /* end H5TN_init_interface() */ + +/****************************************/ +/* ALIGNMENT and signal-handling status */ +/****************************************/ +/* Signal() support: yes */ +/* setjmp() support: yes */ +/* longjmp() support: yes */ +/* sigsetjmp() support: yes */ +/* siglongjmp() support: yes */ +/* sigprocmask() support: yes */ + +/******************************/ +/* signal handlers statistics */ +/******************************/ +/* signal_handlers tested: 15 times */ +/* sigbus_handler called: 5 times */ +/* sigsegv_handler called: 5 times */ +/* sigill_handler called: 5 times */ diff --git a/meta-openembedded/meta-oe/recipes-support/hdf5/files/H5Tinit-64.c b/meta-openembedded/meta-oe/recipes-support/hdf5/files/H5Tinit-64.c new file mode 100644 index 0000000000..85f79a6ae7 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/hdf5/files/H5Tinit-64.c @@ -0,0 +1,991 @@ +/* Generated automatically by H5detect -- do not edit */ + + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Copyright by The HDF Group. * + * Copyright by the Board of Trustees of the University of Illinois. * + * All rights reserved. * + * * + * This file is part of HDF5. The full HDF5 copyright notice, including * + * terms governing use, modification, and redistribution, is contained in * + * the COPYING file, which can be found at the root of the source code * + * distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases. * + * If you do not have access to either file, you may request a copy from * + * help@hdfgroup.org. * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * + * Created: Jan 29, 2019 + * root <root@qemux86-64> + * + * Purpose: This machine-generated source code contains + * information about the various integer and + * floating point numeric formats found on this + * architecture. The parameters below should be + * checked carefully and errors reported to the + * HDF5 maintainer. + * + * Each of the numeric formats listed below are + * printed from most significant bit to least + * significant bit even though the actual bytes + * might be stored in a different order in + * memory. The integers above each binary byte + * indicate the relative order of the bytes in + * memory; little-endian machines have + * decreasing numbers while big-endian machines + * have increasing numbers. + * + * The fields of the numbers are printed as + * letters with `S' for the mantissa sign bit, + * `M' for the mantissa magnitude, and `E' for + * the exponent. The exponent has an associated + * bias which can be subtracted to find the + * true exponent. The radix point is assumed + * to be before the first `M' bit. Any bit + * of a floating-point value not falling into one + * of these categories is printed as a question + * mark. Bits of integer types are printed as + * `I' for 2's complement and `U' for magnitude. + * + * If the most significant bit of the normalized + * mantissa (always a `1' except for `0.0') is + * not stored then an `implicit=yes' appears + * under the field description. In thie case, + * the radix point is still assumed to be + * before the first `M' but after the implicit + * bit. + * + * Modifications: + * + * DO NOT MAKE MODIFICATIONS TO THIS FILE! + * It was generated by code in `H5detect.c'. + * + *------------------------------------------------------------------------- + */ + +/****************/ +/* Module Setup */ +/****************/ + +#define H5T_PACKAGE /*suppress error about including H5Tpkg.h*/ + + +/***********/ +/* Headers */ +/***********/ +#include "H5private.h" /* Generic Functions */ +#include "H5Eprivate.h" /* Error handling */ +#include "H5FLprivate.h" /* Free Lists */ +#include "H5Iprivate.h" /* IDs */ +#include "H5Tpkg.h" /* Datatypes */ + + +/****************/ +/* Local Macros */ +/****************/ + + +/******************/ +/* Local Typedefs */ +/******************/ + + +/********************/ +/* Package Typedefs */ +/********************/ + + +/********************/ +/* Local Prototypes */ +/********************/ + + +/********************/ +/* Public Variables */ +/********************/ + + +/*****************************/ +/* Library Private Variables */ +/*****************************/ + + +/*********************/ +/* Package Variables */ +/*********************/ + + + +/*******************/ +/* Local Variables */ +/*******************/ + + + +/*------------------------------------------------------------------------- + * Function: H5TN_init_interface + * + * Purpose: Initialize pre-defined native datatypes from code generated + * during the library configuration by H5detect. + * + * Return: Success: non-negative + * Failure: negative + * + * Programmer: Robb Matzke + * Wednesday, December 16, 1998 + * + *------------------------------------------------------------------------- + */ +herr_t +H5TN_init_interface(void) +{ + H5T_t *dt = NULL; + herr_t ret_value = SUCCEED; + + FUNC_ENTER_NOAPI(FAIL) + + /* + * 0 + * IIIIIIII + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 1; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 8; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_2; + if((H5T_NATIVE_SCHAR_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_SCHAR_ALIGN_g = 1; + H5T_NATIVE_SCHAR_COMP_ALIGN_g = 1; + + /* + * 0 + * UUUUUUUU + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 1; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 8; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; + if((H5T_NATIVE_UCHAR_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_UCHAR_ALIGN_g = 1; + + /* + * 1 0 + * IIIIIIII IIIIIIII + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 2; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 16; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_2; + if((H5T_NATIVE_SHORT_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_SHORT_ALIGN_g = 1; + H5T_NATIVE_SHORT_COMP_ALIGN_g = 2; + + /* + * 1 0 + * UUUUUUUU UUUUUUUU + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 2; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 16; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; + if((H5T_NATIVE_USHORT_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_USHORT_ALIGN_g = 1; + + /* + * 3 2 1 0 + * IIIIIIII IIIIIIII IIIIIIII IIIIIIII + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 4; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 32; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_2; + if((H5T_NATIVE_INT_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_INT_ALIGN_g = 1; + H5T_NATIVE_INT_COMP_ALIGN_g = 4; + + /* + * 3 2 1 0 + * UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 4; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 32; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; + if((H5T_NATIVE_UINT_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_UINT_ALIGN_g = 1; + + /* + * 7 6 5 4 + * IIIIIIII IIIIIIII IIIIIIII IIIIIIII + * 3 2 1 0 + * IIIIIIII IIIIIIII IIIIIIII IIIIIIII + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 8; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 64; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_2; + if((H5T_NATIVE_LONG_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_LONG_ALIGN_g = 1; + H5T_NATIVE_LONG_COMP_ALIGN_g = 8; + + /* + * 7 6 5 4 + * UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU + * 3 2 1 0 + * UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 8; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 64; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; + if((H5T_NATIVE_ULONG_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_ULONG_ALIGN_g = 1; + + /* + * 0 + * IIIIIIII + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 1; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 8; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_2; + if((H5T_NATIVE_INT8_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_INT8_ALIGN_g = 1; + + /* + * 0 + * UUUUUUUU + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 1; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 8; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; + if((H5T_NATIVE_UINT8_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_UINT8_ALIGN_g = 1; + + /* + * 0 + * IIIIIIII + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 1; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 8; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_2; + if((H5T_NATIVE_INT_LEAST8_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_INT_LEAST8_ALIGN_g = 1; + + /* + * 0 + * UUUUUUUU + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 1; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 8; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; + if((H5T_NATIVE_UINT_LEAST8_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_UINT_LEAST8_ALIGN_g = 1; + + /* + * 0 + * IIIIIIII + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 1; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 8; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_2; + if((H5T_NATIVE_INT_FAST8_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_INT_FAST8_ALIGN_g = 1; + + /* + * 0 + * UUUUUUUU + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 1; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 8; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; + if((H5T_NATIVE_UINT_FAST8_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_UINT_FAST8_ALIGN_g = 1; + + /* + * 1 0 + * IIIIIIII IIIIIIII + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 2; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 16; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_2; + if((H5T_NATIVE_INT16_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_INT16_ALIGN_g = 1; + + /* + * 1 0 + * UUUUUUUU UUUUUUUU + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 2; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 16; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; + if((H5T_NATIVE_UINT16_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_UINT16_ALIGN_g = 1; + + /* + * 1 0 + * IIIIIIII IIIIIIII + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 2; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 16; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_2; + if((H5T_NATIVE_INT_LEAST16_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_INT_LEAST16_ALIGN_g = 1; + + /* + * 1 0 + * UUUUUUUU UUUUUUUU + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 2; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 16; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; + if((H5T_NATIVE_UINT_LEAST16_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_UINT_LEAST16_ALIGN_g = 1; + + /* + * 7 6 5 4 + * IIIIIIII IIIIIIII IIIIIIII IIIIIIII + * 3 2 1 0 + * IIIIIIII IIIIIIII IIIIIIII IIIIIIII + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 8; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 64; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_2; + if((H5T_NATIVE_INT_FAST16_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_INT_FAST16_ALIGN_g = 1; + + /* + * 7 6 5 4 + * UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU + * 3 2 1 0 + * UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 8; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 64; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; + if((H5T_NATIVE_UINT_FAST16_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_UINT_FAST16_ALIGN_g = 1; + + /* + * 3 2 1 0 + * IIIIIIII IIIIIIII IIIIIIII IIIIIIII + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 4; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 32; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_2; + if((H5T_NATIVE_INT32_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_INT32_ALIGN_g = 1; + + /* + * 3 2 1 0 + * UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 4; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 32; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; + if((H5T_NATIVE_UINT32_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_UINT32_ALIGN_g = 1; + + /* + * 3 2 1 0 + * IIIIIIII IIIIIIII IIIIIIII IIIIIIII + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 4; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 32; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_2; + if((H5T_NATIVE_INT_LEAST32_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_INT_LEAST32_ALIGN_g = 1; + + /* + * 3 2 1 0 + * UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 4; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 32; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; + if((H5T_NATIVE_UINT_LEAST32_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_UINT_LEAST32_ALIGN_g = 1; + + /* + * 7 6 5 4 + * IIIIIIII IIIIIIII IIIIIIII IIIIIIII + * 3 2 1 0 + * IIIIIIII IIIIIIII IIIIIIII IIIIIIII + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 8; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 64; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_2; + if((H5T_NATIVE_INT_FAST32_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_INT_FAST32_ALIGN_g = 1; + + /* + * 7 6 5 4 + * UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU + * 3 2 1 0 + * UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 8; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 64; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; + if((H5T_NATIVE_UINT_FAST32_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_UINT_FAST32_ALIGN_g = 1; + + /* + * 7 6 5 4 + * IIIIIIII IIIIIIII IIIIIIII IIIIIIII + * 3 2 1 0 + * IIIIIIII IIIIIIII IIIIIIII IIIIIIII + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 8; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 64; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_2; + if((H5T_NATIVE_INT64_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_INT64_ALIGN_g = 1; + + /* + * 7 6 5 4 + * UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU + * 3 2 1 0 + * UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 8; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 64; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; + if((H5T_NATIVE_UINT64_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_UINT64_ALIGN_g = 1; + + /* + * 7 6 5 4 + * IIIIIIII IIIIIIII IIIIIIII IIIIIIII + * 3 2 1 0 + * IIIIIIII IIIIIIII IIIIIIII IIIIIIII + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 8; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 64; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_2; + if((H5T_NATIVE_INT_LEAST64_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_INT_LEAST64_ALIGN_g = 1; + + /* + * 7 6 5 4 + * UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU + * 3 2 1 0 + * UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 8; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 64; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; + if((H5T_NATIVE_UINT_LEAST64_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_UINT_LEAST64_ALIGN_g = 1; + + /* + * 7 6 5 4 + * IIIIIIII IIIIIIII IIIIIIII IIIIIIII + * 3 2 1 0 + * IIIIIIII IIIIIIII IIIIIIII IIIIIIII + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 8; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 64; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_2; + if((H5T_NATIVE_INT_FAST64_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_INT_FAST64_ALIGN_g = 1; + + /* + * 7 6 5 4 + * UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU + * 3 2 1 0 + * UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 8; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 64; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; + if((H5T_NATIVE_UINT_FAST64_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_UINT_FAST64_ALIGN_g = 1; + + /* + * 7 6 5 4 + * IIIIIIII IIIIIIII IIIIIIII IIIIIIII + * 3 2 1 0 + * IIIIIIII IIIIIIII IIIIIIII IIIIIIII + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 8; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 64; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_2; + if((H5T_NATIVE_LLONG_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_LLONG_ALIGN_g = 1; + H5T_NATIVE_LLONG_COMP_ALIGN_g = 8; + + /* + * 7 6 5 4 + * UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU + * 3 2 1 0 + * UUUUUUUU UUUUUUUU UUUUUUUU UUUUUUUU + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_INTEGER; + dt->shared->size = 8; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 64; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.i.sign = H5T_SGN_NONE; + if((H5T_NATIVE_ULLONG_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_ULLONG_ALIGN_g = 1; + + /* + * 3 2 1 0 + * SEEEEEEE EMMMMMMM MMMMMMMM MMMMMMMM + * Implicit bit? yes + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_FLOAT; + dt->shared->size = 4; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 32; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.f.sign = 31; + dt->shared->u.atomic.u.f.epos = 23; + dt->shared->u.atomic.u.f.esize = 8; + dt->shared->u.atomic.u.f.ebias = 0x0000007f; + dt->shared->u.atomic.u.f.mpos = 0; + dt->shared->u.atomic.u.f.msize = 23; + dt->shared->u.atomic.u.f.norm = H5T_NORM_IMPLIED; + dt->shared->u.atomic.u.f.pad = H5T_PAD_ZERO; + if((H5T_NATIVE_FLOAT_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_FLOAT_ALIGN_g = 1; + H5T_NATIVE_FLOAT_COMP_ALIGN_g = 4; + + /* + * 7 6 5 4 + * SEEEEEEE EEEEMMMM MMMMMMMM MMMMMMMM + * 3 2 1 0 + * MMMMMMMM MMMMMMMM MMMMMMMM MMMMMMMM + * Implicit bit? yes + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_FLOAT; + dt->shared->size = 8; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 64; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.f.sign = 63; + dt->shared->u.atomic.u.f.epos = 52; + dt->shared->u.atomic.u.f.esize = 11; + dt->shared->u.atomic.u.f.ebias = 0x000003ff; + dt->shared->u.atomic.u.f.mpos = 0; + dt->shared->u.atomic.u.f.msize = 52; + dt->shared->u.atomic.u.f.norm = H5T_NORM_IMPLIED; + dt->shared->u.atomic.u.f.pad = H5T_PAD_ZERO; + if((H5T_NATIVE_DOUBLE_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_DOUBLE_ALIGN_g = 1; + H5T_NATIVE_DOUBLE_COMP_ALIGN_g = 8; + + /* + * 15 14 13 12 + * ???????? ???????? ???????? ???????? + * 11 10 9 8 + * ???????? ???????? SEEEEEEE EEEEEEEE + * 7 6 5 4 + * MMMMMMMM MMMMMMMM MMMMMMMM MMMMMMMM + * 3 2 1 0 + * MMMMMMMM MMMMMMMM MMMMMMMM MMMMMMMM + * Implicit bit? no + * Alignment: none + */ + if(NULL == (dt = H5T__alloc())) + HGOTO_ERROR(H5E_DATATYPE, H5E_NOSPACE, FAIL, "datatype allocation failed") + dt->shared->state = H5T_STATE_IMMUTABLE; + dt->shared->type = H5T_FLOAT; + dt->shared->size = 16; + dt->shared->u.atomic.order = H5T_ORDER_LE; + dt->shared->u.atomic.offset = 0; + dt->shared->u.atomic.prec = 80; + dt->shared->u.atomic.lsb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.msb_pad = H5T_PAD_ZERO; + dt->shared->u.atomic.u.f.sign = 79; + dt->shared->u.atomic.u.f.epos = 64; + dt->shared->u.atomic.u.f.esize = 15; + dt->shared->u.atomic.u.f.ebias = 0x00003fff; + dt->shared->u.atomic.u.f.mpos = 0; + dt->shared->u.atomic.u.f.msize = 64; + dt->shared->u.atomic.u.f.norm = H5T_NORM_NONE; + dt->shared->u.atomic.u.f.pad = H5T_PAD_ZERO; + if((H5T_NATIVE_LDOUBLE_g = H5I_register(H5I_DATATYPE, dt, FALSE)) < 0) + HGOTO_ERROR(H5E_DATATYPE, H5E_CANTINIT, FAIL, "can't register ID for built-in datatype") + H5T_NATIVE_LDOUBLE_ALIGN_g = 1; + H5T_NATIVE_LDOUBLE_COMP_ALIGN_g = 16; + + /* Set the native order for this machine */ + H5T_native_order_g = H5T_ORDER_LE; + + /* Structure alignment for pointers, hvl_t, hobj_ref_t, hdset_reg_ref_t */ + H5T_POINTER_COMP_ALIGN_g = 8; + H5T_HVL_COMP_ALIGN_g = 8; + H5T_HOBJREF_COMP_ALIGN_g = 8; + H5T_HDSETREGREF_COMP_ALIGN_g = 1; + +done: + if(ret_value < 0) { + if(dt != NULL) { + dt->shared = H5FL_FREE(H5T_shared_t, dt->shared); + dt = H5FL_FREE(H5T_t, dt); + } /* end if */ + } /* end if */ + + FUNC_LEAVE_NOAPI(ret_value); +} /* end H5TN_init_interface() */ + +/****************************************/ +/* ALIGNMENT and signal-handling status */ +/****************************************/ +/* Signal() support: yes */ +/* setjmp() support: yes */ +/* longjmp() support: yes */ +/* sigsetjmp() support: yes */ +/* siglongjmp() support: yes */ +/* sigprocmask() support: yes */ + +/******************************/ +/* signal handlers statistics */ +/******************************/ +/* signal_handlers tested: 15 times */ +/* sigbus_handler called: 5 times */ +/* sigsegv_handler called: 5 times */ +/* sigill_handler called: 5 times */ diff --git a/meta-openembedded/meta-oe/recipes-support/hdf5/files/H5lib_settings.c b/meta-openembedded/meta-oe/recipes-support/hdf5/files/H5lib_settings.c new file mode 100644 index 0000000000..c243aee121 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/hdf5/files/H5lib_settings.c @@ -0,0 +1,98 @@ +/* Generated automatically by H5make_libsettings -- do not edit */ + + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Copyright by The HDF Group. * + * Copyright by the Board of Trustees of the University of Illinois. * + * All rights reserved. * + * * + * This file is part of HDF5. The full HDF5 copyright notice, including * + * terms governing use, modification, and redistribution, is contained in * + * the COPYING file, which can be found at the root of the source code * + * distribution tree, or in https://support.hdfgroup.org/ftp/HDF5/releases. * + * If you do not have access to either file, you may request a copy from * + * help@hdfgroup.org. * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * + * Created: Jan 29, 2019 + * root <root@qemux86-64> + * + * Purpose: This machine-generated source code contains + * information about the library build configuration + * + * Modifications: + * + * DO NOT MAKE MODIFICATIONS TO THIS FILE! + * It was generated by code in `H5make_libsettings.c'. + * + *------------------------------------------------------------------------- + */ + +char H5libhdf5_settings[]= + " SUMMARY OF THE HDF5 CONFIGURATION\n" + " =================================\n" + "\n" + "General Information:\n" + "-------------------\n" + " HDF5 Version: 1.8.19\n" + " Configured on: 2019-01-29\n" + " Configured by: Ninja\n" + " Configure mode: CMAKE 3.12.2\n" + " Host system: Linux-4.4.0-31-generic\n" + " Uname information: Linux\n" + " Byte sex: little-endian\n" + " Libraries: \n" + " Installation point: /usr\n" + "\n" + "Compiling Options:\n" + "------------------\n" + " Compilation Mode: \n" + " H5_CFLAGS: \n" + " AM_CFLAGS: \n" + " CPPFLAGS: \n" + " H5_CPPFLAGS: \n" + " AM_CPPFLAGS: \n" + " Shared C Library: YES\n" + " Static C Library: YES\n" + " Statically Linked Executables: OFF\n" + " LDFLAGS: -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed\n" + " AM_LDFLAGS: \n" + " Extra libraries: m;dl\n" + " Debugged Packages: \n" + " API Tracing: OFF\n" + "\n" + "Languages:\n" + "----------\n" + " Fortran: OFF\n" + " Fortran Compiler: \n" + " Fortran 2003 Compiler: \n" + " Fortran Flags: \n" + " H5 Fortran Flags: \n" + " AM Fortran Flags: \n" + " Shared Fortran Library: YES\n" + " Static Fortran Library: YES\n" + "\n" + " H5 C++ Flags: \n" + " AM C++ Flags: \n" + " Shared C++ Library: YES\n" + " Static C++ Library: YES\n" + "\n" + "Features:\n" + "---------\n" + " Parallel HDF5: OFF\n" + " High Level library: ON\n" + " Threadsafety: OFF\n" + " Default API Mapping: v18\n" + " With Deprecated Public Symbols: ON\n" + " I/O filters (external): \n" + " MPE: \n" + " Direct VFD: \n" + " dmalloc: \n" + "Clear file buffers before write: ON\n" + " Using memory checker: OFF\n" + " Function Stack Tracing: OFF\n" + " Strict File Format Checks: OFF\n" + " Optimization Instrumentation: \n" +; + diff --git a/meta-openembedded/meta-oe/recipes-support/hdf5/hdf5_1.8.19.bb b/meta-openembedded/meta-oe/recipes-support/hdf5/hdf5_1.8.19.bb new file mode 100644 index 0000000000..fcbe9b0d62 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/hdf5/hdf5_1.8.19.bb @@ -0,0 +1,58 @@ +SUMMARY = "Unique technology suite that makes possible the management of \ +extremely large and complex data collections" +HOMEPAGE = "https://www.hdfgroup.org/" +SECTION = "libs" + +LICENSE = "HDF5" +LIC_FILES_CHKSUM = "file://COPYING;md5=57e5351b17591e659eedae107265c606" + +inherit cmake siteinfo + +SRC_URI = " \ + https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.8/hdf5-${PV}/src/${BPN}-${PV}.tar.bz2 \ + file://H5lib_settings.c \ + file://H5Tinit-64.c \ + file://H5Tinit-32.c \ + file://0001-cross-compiling-support.patch \ + file://0002-Remove-suffix-shared-from-shared-library-name.patch \ +" + +SRC_URI[md5sum] = "6f0353ee33e99089c110a1c8d2dd1b22" +SRC_URI[sha256sum] = "59c03816105d57990329537ad1049ba22c2b8afe1890085f0c022b75f1727238" + +FILES_${PN} += "${libdir}/libhdf5.settings ${datadir}/*" + +EXTRA_OECMAKE = " \ + -DTEST_LFS_WORKS_RUN=0 \ + -DTEST_LFS_WORKS_RUN__TRYRUN_OUTPUT=0 \ + -DH5_PRINTF_LL_TEST_RUN=1 \ + -DH5_PRINTF_LL_TEST_RUN__TRYRUN_OUTPUT='8' \ + -DH5_LDOUBLE_TO_LONG_SPECIAL_RUN=0 \ + -DH5_LDOUBLE_TO_LONG_SPECIAL_RUN__TRYRUN_OUTPUT= \ + -DH5_LONG_TO_LDOUBLE_SPECIAL_RUN=0 \ + -DH5_LONG_TO_LDOUBLE_SPECIAL_RUN__TRYRUN_OUTPUT= \ + -DH5_LDOUBLE_TO_LLONG_ACCURATE_RUN=0 \ + -DH5_LDOUBLE_TO_LLONG_ACCURATE_RUN__TRYRUN_OUTPUT= \ + -DH5_LLONG_TO_LDOUBLE_CORRECT_RUN=0 \ + -DH5_LLONG_TO_LDOUBLE_CORRECT_RUN__TRYRUN_OUTPUT= \ + -DH5_NO_ALIGNMENT_RESTRICTIONS_RUN=0 \ + -DH5_NO_ALIGNMENT_RESTRICTIONS_RUN__TRYRUN_OUTPUT= \ + -DCMAKE_INSTALL_PREFIX='${prefix}' \ + -DHDF5_INSTALL_LIB_DIR='${baselib}' \ +" + +do_unpack[postfuncs] += "gen_hd5file" +gen_hd5file() { + install -m 544 ${WORKDIR}/H5lib_settings.c ${S} + install -m 544 ${WORKDIR}/H5Tinit-${SITEINFO_BITS}.c ${S}/H5Tinit.c +} + +do_install_append() { + # Used for generating config files on target + install -m 755 ${B}/bin/H5detect ${D}${bindir} + install -m 755 ${B}/bin/H5make_libsettings ${D}${bindir} +} + +BBCLASSEXTEND = "native" + +SRC_DISTRIBUTE_LICENSES += "HDF5" diff --git a/meta-openembedded/meta-oe/recipes-support/hunspell/hunspell_1.6.2.bb b/meta-openembedded/meta-oe/recipes-support/hunspell/hunspell_1.6.2.bb deleted file mode 100644 index 5feea89874..0000000000 --- a/meta-openembedded/meta-oe/recipes-support/hunspell/hunspell_1.6.2.bb +++ /dev/null @@ -1,17 +0,0 @@ -SUMMARY = "A spell checker and morphological analyzer library" -HOMEPAGE = "http://hunspell.github.io/" -LICENSE = "GPLv3 | LGPLv3" -LIC_FILES_CHKSUM = " \ - file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \ - file://COPYING.LESSER;md5=e6a600fd5e1d9cbde2d983680233ad02 \ -" - -SRC_URI = "https://github.com/${BPN}/${BPN}/archive/v${PV}.tar.gz" -SRC_URI[md5sum] = "1a54504cb470aafa6530bb372a10dc04" -SRC_URI[sha256sum] = "3cd9ceb062fe5814f668e4f22b2fa6e3ba0b339b921739541ce180cac4d6f4c4" - -inherit autotools pkgconfig gettext - -RDEPENDS_${PN} = "perl" - -BBCLASSEXTEND = "native" diff --git a/meta-openembedded/meta-oe/recipes-support/hunspell/hunspell_1.7.0.bb b/meta-openembedded/meta-oe/recipes-support/hunspell/hunspell_1.7.0.bb new file mode 100644 index 0000000000..40da3b4965 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/hunspell/hunspell_1.7.0.bb @@ -0,0 +1,17 @@ +SUMMARY = "A spell checker and morphological analyzer library" +HOMEPAGE = "http://hunspell.github.io/" +LICENSE = "GPLv2 | LGPLv2.1" +LIC_FILES_CHKSUM = " \ + file://COPYING;md5=75859989545e37968a99b631ef42722e \ + file://COPYING.LESSER;md5=c96ca6c1de8adc025adfada81d06fba5 \ +" + +SRC_URI = "https://github.com/${BPN}/${BPN}/archive/v${PV}.tar.gz" +SRC_URI[md5sum] = "b2399a4aa927e8b3e171d9ea6737cc02" +SRC_URI[sha256sum] = "bb27b86eb910a8285407cf3ca33b62643a02798cf2eef468c0a74f6c3ee6bc8a" + +inherit autotools pkgconfig gettext + +RDEPENDS_${PN} = "perl" + +BBCLASSEXTEND = "native" diff --git a/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.0.7.bb b/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.0.7.bb index 46cc78ed7f..37d5a637a8 100644 --- a/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.0.7.bb +++ b/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.0.7.bb @@ -1,5 +1,8 @@ -SUMMARY = "ImageMagick is an image convertion tools" +SUMMARY = "ImageMagick is an image conversion toolkit" SECTION = "console/utils" +HOMEPAGE = "https://www.imagemagick.org/" +DESCRIPTION = "ImageMagick is a collection of tools for displaying, converting, and \ +editing raster and vector image files. It can read and write over 200 image file formats." LICENSE = "ImageMagick" LIC_FILES_CHKSUM = "file://LICENSE;md5=dad5a98f173fd3fa6958a1a58c6131c1" # FIXME: There are many more checked libraries. All should be added or explicitly disabled to get consistent results. diff --git a/meta-openembedded/meta-oe/recipes-support/itstool/itstool_2.0.5.bb b/meta-openembedded/meta-oe/recipes-support/itstool/itstool_2.0.5.bb new file mode 100644 index 0000000000..b74d5f6078 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/itstool/itstool_2.0.5.bb @@ -0,0 +1,22 @@ +SUMMARY = "ITS Tool allows you to translate your XML documents with PO files" +HOMEPAGE = "http://itstool.org/" +LICENSE = "GPLv3" +LIC_FILES_CHKSUM = "file://COPYING;md5=59c57b95fd7d0e9e238ebbc7ad47c5a5" + +inherit autotools python3native + +DEPENDS = "python3-native python3-lxml-native" + +SRC_URI = "http://files.itstool.org/${BPN}/${BPN}-${PV}.tar.bz2" +SRC_URI[md5sum] = "655c6f78fc64faee45adcc45ccc5a57e" +SRC_URI[sha256sum] = "100506f8df62cca6225ec3e631a8237e9c04650c77495af4919ac6a100d4b308" + +do_install_append() { + # fix shebang of main script + sed -i 's:${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN}:${bindir}/${PYTHON_PN}:g' ${D}${bindir}/itstool +} + +BBCLASSEXTEND = "native" + +RDEPENDS_${PN} += "python3 python3-lxml" + diff --git a/meta-openembedded/meta-oe/recipes-support/libbytesize/libbytesize_1.3.bb b/meta-openembedded/meta-oe/recipes-support/libbytesize/libbytesize_1.4.bb index caf84de2c5..863ce428f1 100644 --- a/meta-openembedded/meta-oe/recipes-support/libbytesize/libbytesize_1.3.bb +++ b/meta-openembedded/meta-oe/recipes-support/libbytesize/libbytesize_1.4.bb @@ -9,8 +9,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=c07cb499d259452f324bb90c3067d85c" S = "${WORKDIR}/git" B = "${S}" -SRCREV = "b0dcf6f457d700127b43c0e0a198253c266b78ae" -PV = "1.3+git${SRCPV}" +SRCREV = "ebbda2217d177d2a17f917d7a3e3d132a26db791" SRC_URI = "git://github.com/rhinstaller/libbytesize;branch=master \ " diff --git a/meta-openembedded/meta-oe/recipes-support/libeigen/libeigen_3.3.5.bb b/meta-openembedded/meta-oe/recipes-support/libeigen/libeigen_3.3.7.bb index 7078e50bb0..e1deb662ae 100644 --- a/meta-openembedded/meta-oe/recipes-support/libeigen/libeigen_3.3.5.bb +++ b/meta-openembedded/meta-oe/recipes-support/libeigen/libeigen_3.3.7.bb @@ -4,11 +4,11 @@ HOMEPAGE = "http://eigen.tuxfamily.org/" LICENSE = "MPL-2.0" LIC_FILES_CHKSUM = "file://COPYING.MPL2;md5=815ca599c9df247a0c7f619bab123dad" -SRC_URI = "http://bitbucket.org/eigen/eigen/get/${PV}.tar.bz2;downloadfilename=${BP}.tar.bz2" -SRC_URI[md5sum] = "e83549a79d1b721da0f8899ab34edf95" -SRC_URI[sha256sum] = "7352bff3ea299e4c7d7fbe31c504f8eb9149d7e685dec5a12fbaa26379f603e2" +SRC_URI = "https://bitbucket.org/eigen/eigen/get/${PV}.tar.bz2;downloadfilename=${BP}.tar.bz2" +SRC_URI[md5sum] = "05b1f7511c93980c385ebe11bd3c93fa" +SRC_URI[sha256sum] = "9f13cf90dedbe3e52a19f43000d71fdf72e986beb9a5436dddcd61ff9d77a3ce" -S = "${WORKDIR}/eigen-eigen-b3f3d4950030" +S = "${WORKDIR}/eigen-eigen-323c052e1731" inherit cmake diff --git a/meta-openembedded/meta-oe/recipes-support/libgit2/libgit2_0.27.4.bb b/meta-openembedded/meta-oe/recipes-support/libgit2/libgit2_0.27.8.bb index 816ae5e2ed..a43408908c 100644 --- a/meta-openembedded/meta-oe/recipes-support/libgit2/libgit2_0.27.4.bb +++ b/meta-openembedded/meta-oe/recipes-support/libgit2/libgit2_0.27.8.bb @@ -6,8 +6,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=3f2cd5d3cccd71d62066ba619614592b" DEPENDS = "curl openssl zlib libssh2 libgcrypt" SRC_URI = "git://github.com/libgit2/libgit2.git;branch=maint/v0.27" -#v0.27.5 -SRCREV = "8e0b172981a046d19f1d9efa5acd6186bccbd3ce" +#v0.27.8 +SRCREV = "2882803ca2b2cdedd069746422155a23fdd002b2" S = "${WORKDIR}/git" diff --git a/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_0.3.3.bb b/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_0.3.3.bb index 09fb65a082..96615ebf24 100644 --- a/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_0.3.3.bb +++ b/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_0.3.3.bb @@ -1,4 +1,6 @@ require libgpiod.inc +PACKAGECONFIG[tests] = "--enable-tests,--disable-tests,kmod udev" + SRC_URI[md5sum] = "2aa1e1a80c3c919ae142ab9a55fb59ca" SRC_URI[sha256sum] = "b773e557af1a497f786825462a776b7bf90168e67ee0a5bc5d2473a5674dc38c" diff --git a/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.2.bb b/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.3.bb index 30289b983b..e513a33bda 100644 --- a/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.2.bb +++ b/meta-openembedded/meta-oe/recipes-support/libgpiod/libgpiod_1.3.bb @@ -2,15 +2,16 @@ require libgpiod.inc DEPENDS += "autoconf-archive-native" -SRC_URI[md5sum] = "34a9972f2f4e9c32fa940301301b007d" -SRC_URI[sha256sum] = "b6b9079c933f7c8524815437937dda6b795a16141bca202a9eec70ba5844b5ba" +SRC_URI[md5sum] = "9f7530a5d56f070ba0af78d6ba077973" +SRC_URI[sha256sum] = "6ec837f23e8f2196e5976dec4ac81403170830075e7f33ede1394eaf67f2e962" PACKAGECONFIG[cxx] = "--enable-bindings-cxx,--disable-bindings-cxx" +PACKAGECONFIG[tests] = "--enable-tests --enable-install-tests,--disable-tests --disable-install-tests,kmod udev" -PACKAGECONFIG[python3] = "--enable-bindings-python,--disable-bindings-python,python3,python3-core" +PACKAGECONFIG[python3] = "--enable-bindings-python,--disable-bindings-python,python3" inherit ${@bb.utils.contains('PACKAGECONFIG', 'python3', 'python3native', '', d)} PACKAGES =+ "${PN}-python" FILES_${PN}-python = "${PYTHON_SITEPACKAGES_DIR}" RRECOMMENDS_PYTHON = "${@bb.utils.contains('PACKAGECONFIG', 'python3', '${PN}-python', '',d)}" -RRECOMMENDS_${PN} += "${RRECOMMENDS_PYTHON}" +RRECOMMENDS_${PN}-python += "${RRECOMMENDS_PYTHON}" diff --git a/meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb b/meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb index fa6f4c2ca5..cc0efccf99 100644 --- a/meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb +++ b/meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb @@ -4,8 +4,8 @@ SECTION = "libs" LICENSE = "LGPLv2.1+" LIC_FILES_CHKSUM = "file://COPYING.txt;md5=7c13b3376cea0ce68d2d2da0a1b3a72c" -SRCREV = "fa82974d8bd1fded78e630ab71a7ded1b11d0e33" -PV = "0.14+git${SRCPV}" +SRCREV = "6ecff5d46e1b12c2859f0b63a73282940e3402bb" +PV = "0.15+git${SRCPV}" SRC_URI = "git://github.com/analogdevicesinc/libiio.git;protocol=https" diff --git a/meta-openembedded/meta-oe/recipes-support/libmxml/libmxml_git.bb b/meta-openembedded/meta-oe/recipes-support/libmxml/libmxml_git.bb index 542fe81575..b17fc67e0a 100644 --- a/meta-openembedded/meta-oe/recipes-support/libmxml/libmxml_git.bb +++ b/meta-openembedded/meta-oe/recipes-support/libmxml/libmxml_git.bb @@ -1,13 +1,14 @@ DESCRIPTION = "Tiny XML Library" -LICENSE = "Mini-XML-License" -LIC_FILES_CHKSUM = "file://COPYING;md5=a6ba38606d63bb042c5d8cfee182e120" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327" HOMEPAGE = "https://www.msweet.org/mxml/" BUGTRACKER = "https://github.com/michaelrsweet/mxml/issues" SRC_URI = "git://github.com/michaelrsweet/mxml.git" -SRCREV = "ba3cca82e15a88a9cc6afb60f059288a99afc703" +SRCREV = "c7755b6992a2afdd34dde47fc9be97f1237cfded" S = "${WORKDIR}/git" -PV = "2.12+git${SRCPV}" +# v3.0 +PV = "3.0" CONFIGUREOPTS = " --prefix=${prefix} \ --bindir=${bindir} \ @@ -28,6 +29,8 @@ CONFIGUREOPTS = " --prefix=${prefix} \ " do_configure() { + install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.guess ${S} + install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.sub ${S} ./configure ${CONFIGUREOPTS} --enable-shared } diff --git a/meta-openembedded/meta-oe/recipes-support/libssh2/libssh2_1.8.0.bb b/meta-openembedded/meta-oe/recipes-support/libssh2/libssh2_1.8.2.bb index 94bfb8f87e..fe853cde4f 100644 --- a/meta-openembedded/meta-oe/recipes-support/libssh2/libssh2_1.8.0.bb +++ b/meta-openembedded/meta-oe/recipes-support/libssh2/libssh2_1.8.2.bb @@ -8,8 +8,9 @@ LICENSE = "BSD" LIC_FILES_CHKSUM = "file://COPYING;md5=c5cf34fc0acb44b082ef50ef5e4354ca" SRC_URI = "http://www.libssh2.org/download/${BP}.tar.gz" -SRC_URI[md5sum] = "3d1147cae66e2959ea5441b183de1b1c" -SRC_URI[sha256sum] = "39f34e2f6835f4b992cafe8625073a88e5a28ba78f83e8099610a7b3af4676d4" + +SRC_URI[md5sum] = "616efd99af3d9ef731a26bed6cee9593" +SRC_URI[sha256sum] = "088307d9f6b6c4b8c13f34602e8ff65d21c2dc4d55284dfe15d502c4ee190d67" inherit autotools pkgconfig diff --git a/meta-openembedded/meta-oe/recipes-support/libteam/libteam_1.27.bb b/meta-openembedded/meta-oe/recipes-support/libteam/libteam_1.28.bb index 442592de90..b80bb4efa8 100644 --- a/meta-openembedded/meta-oe/recipes-support/libteam/libteam_1.27.bb +++ b/meta-openembedded/meta-oe/recipes-support/libteam/libteam_1.28.bb @@ -13,10 +13,7 @@ SRC_URI = "git://github.com/jpirko/libteam \ file://0001-team_basic_test.py-disable-RedHat-specific-test.patch \ file://run-ptest \ " -SRCREV = "91a928a56a501daac5ce8b3c16bd9943661f1d16" - -SRC_URI[md5sum] = "565114d70c41bff6093d8e57be284e8a" -SRC_URI[sha256sum] = "d65286379141db141bea33424ec0507bb0f827a0bf03d9c65004bb593e3d5545" +SRCREV = "903950c7fcf28c32f4b62d9d1c07c0234e8378a2" S = "${WORKDIR}/git" diff --git a/meta-openembedded/meta-oe/recipes-support/libusbgx/libusbgx-config.bb b/meta-openembedded/meta-oe/recipes-support/libusbgx/libusbgx-config.bb new file mode 100644 index 0000000000..b269e33c44 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/libusbgx/libusbgx-config.bb @@ -0,0 +1,12 @@ +SUMMARY = "USB Gadget Configuration Files" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" + +SRC_URI = "file://usbgx.default" + +do_configure[noexec] = "1" +do_compile[noexec] = "1" + +do_install() { + install -Dm 0644 ${WORKDIR}/usbgx.default ${D}${sysconfdir}/default/usbgx +} diff --git a/meta-openembedded/meta-oe/recipes-support/libusbgx/libusbgx-config/usbgx.default b/meta-openembedded/meta-oe/recipes-support/libusbgx/libusbgx-config/usbgx.default new file mode 100644 index 0000000000..f690dfe2ab --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/libusbgx/libusbgx-config/usbgx.default @@ -0,0 +1,2 @@ +IMPORT_SCHEMAS="" +ENABLED_SCHEMAS="$IMPORT_SCHEMAS" diff --git a/meta-openembedded/meta-oe/recipes-support/libusbgx/libusbgx/gadget-start b/meta-openembedded/meta-oe/recipes-support/libusbgx/libusbgx/gadget-start new file mode 100644 index 0000000000..1a106b7851 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/libusbgx/libusbgx/gadget-start @@ -0,0 +1,11 @@ +#!/bin/sh + +[ -r /etc/default/usbgx ] && . /etc/default/usbgx + +for i in $IMPORT_SCHEMAS; do + /usr/bin/gadget-import "$i" /etc/usbgx/"$i".schema +done + +for i in $ENABLED_SCHEMAS; do + ls /sys/class/udc/ > /sys/kernel/config/usb_gadget/"$i"/UDC +done diff --git a/meta-openembedded/meta-oe/recipes-support/libusbgx/libusbgx/usbgx.initd b/meta-openembedded/meta-oe/recipes-support/libusbgx/libusbgx/usbgx.initd new file mode 100644 index 0000000000..d1938078f0 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/libusbgx/libusbgx/usbgx.initd @@ -0,0 +1,143 @@ +#! /bin/sh +### BEGIN INIT INFO +# Provides: usbg +# Required-Start: $local_fs +# Should-Start: +# Required-Stop: $local_fs +# Should-Stop: +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: Example initscript +# Description: This file should be used to construct scripts to be +# placed in /etc/init.d +### END INIT INFO + +# PATH should only include /usr/* if it runs after the mountnfs.sh script +PATH=/sbin:/usr/sbin:/bin:/usr/bin + +DESC="Load USB gadget schemas" +NAME="usbgx" +DAEMON=/usr/bin/gadget-start +DAEMON_ARGS="" +PIDFILE=/var/run/$NAME.pid + +. /etc/init.d/functions || exit 1 + +# Exit if the package is not installed +[ -x "$DAEMON" ] || exit 0 + +# Read configuration variable file if it is present +[ -r /etc/default/$NAME ] && . /etc/default/$NAME + +# +# Function that starts the daemon/service +# +do_start() { + local status pid + + status=0 + pid=`pidofproc $NAME` || status=$? + case $status in + 0) + echo "$DESC already running ($pid)." + exit 1 + ;; + *) + echo "Starting $DESC ..." + exec $DAEMON $DAEMON_ARGS >/dev/null 2>&1 || status=$? + echo "ERROR: Failed to start $DESC." + exit $status + ;; + esac +} + +# +# Function that stops the daemon/service +# +do_stop() { + local pid status + + status=0 + pid=`pidofproc $NAME` || status=$? + case $status in + 0) + # Exit when fail to stop, the kill would complain when fail + kill -s 15 $pid >/dev/null && rm -f $PIDFILE && \ + echo "Stopped $DESC ($pid)." || exit $? + ;; + *) + echo "$DESC is not running; none killed." >&2 + ;; + esac + + return $status +} + +# +# Function that sends a SIGHUP to the daemon/service +# +do_reload() { + local pid status + + status=0 + # If the daemon can reload its configuration without + # restarting (for example, when it is sent a SIGHUP), + # then implement that here. + pid=`pidofproc $NAME` || status=$? + case $status in + 0) + echo "Reloading $DESC ..." + kill -s 1 $pid || exit $? + ;; + *) + echo "$DESC is not running; none reloaded." >&2 + ;; + esac + exit $status +} + + +# +# Function that shows the daemon/service status +# +status_of_proc () { + local pid status + + status=0 + # pidof output null when no program is running, so no "2>/dev/null". + pid=`pidofproc $NAME` || status=$? + case $status in + 0) + echo "$DESC is running ($pid)." + exit 0 + ;; + *) + echo "$DESC is not running." >&2 + exit $status + ;; + esac +} + +case "$1" in + start) + do_start + ;; + stop) + do_stop || exit $? + ;; + status) + status_of_proc + ;; + restart) + # Always start the service regardless the status of do_stop + do_stop + do_start + ;; + try-restart|force-reload) + do_stop && do_start + ;; + *) + echo "Usage: $0 {start|stop|status|restart|try-restart|force-reload}" >&2 + exit 3 + ;; +esac diff --git a/meta-openembedded/meta-oe/recipes-support/libusbgx/libusbgx/usbgx.service b/meta-openembedded/meta-oe/recipes-support/libusbgx/libusbgx/usbgx.service new file mode 100644 index 0000000000..74541d3c2d --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/libusbgx/libusbgx/usbgx.service @@ -0,0 +1,9 @@ +[Unit] +Description=Load USB gadget schemas + +[Service] +Type=oneshot +ExecStart=/usr/bin/gadget-start + +[Install] +WantedBy=multi-user.target diff --git a/meta-openembedded/meta-oe/recipes-support/libusbgx/libusbgx_git.bb b/meta-openembedded/meta-oe/recipes-support/libusbgx/libusbgx_git.bb new file mode 100644 index 0000000000..d73ca61060 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/libusbgx/libusbgx_git.bb @@ -0,0 +1,40 @@ +SUMMARY = "USB Gadget neXt Configfs Library" +LICENSE = "GPLv2 & LGPLv2.1" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ + file://COPYING.LGPL;md5=4fbd65380cdd255951079008b364516c" + +DEPENDS = "libconfig" + +inherit autotools pkgconfig systemd update-rc.d + +PV = "0.2.0+git${SRCPV}" +SRCREV = "45c14ef4d5d7ced0fbf984208de44ced6d5ed898" +SRCBRANCH = "master" +SRC_URI = " \ + git://github.com/libusbgx/libusbgx.git;branch=${SRCBRANCH} \ + file://gadget-start \ + file://usbgx.initd \ + file://usbgx.service \ +" + +S = "${WORKDIR}/git" + +SYSTEMD_PACKAGES = "${PN}" +SYSTEMD_SERVICE_${PN} = "usbgx.service" + +INITSCRIPT_NAME = "usbgx" +INITSCRIPT_PARAMS = "defaults" + +EXTRA_OECONF = "--includedir=${includedir}/usbgx" + +do_install_append() { + install -Dm 0755 ${WORKDIR}/gadget-start ${D}/${bindir}/gadget-start + if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then + install -Dm 0644 ${WORKDIR}/usbgx.service ${D}${systemd_system_unitdir}/usbgx.service + fi + if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then + install -Dm 0755 ${WORKDIR}/usbgx.initd ${D}${sysconfdir}/init.d/usbgx + fi +} + +RDEPENDS_${PN} += "libusbgx-config" diff --git a/meta-openembedded/meta-oe/recipes-support/libutempter/libutempter.bb b/meta-openembedded/meta-oe/recipes-support/libutempter/libutempter.bb index 8c84cb376f..b8a700b7b7 100644 --- a/meta-openembedded/meta-oe/recipes-support/libutempter/libutempter.bb +++ b/meta-openembedded/meta-oe/recipes-support/libutempter/libutempter.bb @@ -12,6 +12,7 @@ PV = "1.1.6-alt2+git${SRCPV}" SRC_URI = "git://git.altlinux.org/people/ldv/packages/libutempter.git \ file://0001-Fix-macro-error.patch \ + file://0002-Proper-macro-path-generation.patch \ file://libutempter-remove-glibc-assumption.patch \ " diff --git a/meta-openembedded/meta-oe/recipes-support/libutempter/libutempter/0002-Proper-macro-path-generation.patch b/meta-openembedded/meta-oe/recipes-support/libutempter/libutempter/0002-Proper-macro-path-generation.patch new file mode 100644 index 0000000000..2a866c0796 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/libutempter/libutempter/0002-Proper-macro-path-generation.patch @@ -0,0 +1,34 @@ +From 48b6bcf9f5d8a05eace4bc463c47e8a4715d3000 Mon Sep 17 00:00:00 2001 +From: iddinev <xidinev@gmail.com> +Date: Mon, 18 Mar 2019 15:45:20 +0200 +Subject: [PATCH] Proper macro path generation. + +Signed-off-by: iddinev <xidinev@gmail.com> +--- + libutempter/iface.c | 7 +++---- + 1 file changed, 3 insertions(+), 4 deletions(-) + +diff --git libutempter/iface.c libutempter/iface.c +index 27793f0..c1c0ee9 100644 +--- libutempter/iface.c ++++ libutempter/iface.c +@@ -44,13 +44,12 @@ + #endif + + #ifdef LIBEXECDIR +-# define CAT_PATH(DIR1,DIR2) DIR1##DIR2 +-# define RAW_UTEMPTER_PATH CAT_PATH(LIBEXECDIR,/utempter/utempter) ++# define UTEMPTER_DEFAULT_PATHNAME XSTR_PATH(LIBEXECDIR)"/utempter/utempter" + #else +-# define RAW_UTEMPTER_PATH /usr/lib/libtempter/utempter/utempter ++# define UTEMPTER_DEFAULT_PATHNAME STR_PATH(/usr/lib/libtempter/utempter/utempter) + #endif + #define STR_PATH(RAW_STR) #RAW_STR +-#define UTEMPTER_DEFAULT_PATHNAME STR_PATH(RAW_UTEMPTER_PATH) ++#define XSTR_PATH(STR) STR_PATH(STR) + + static const char *utempter_pathname; + static int saved_fd = -1; +-- +2.7.4 + diff --git a/meta-openembedded/meta-oe/recipes-support/lio-utils/lio-utils_4.1.bb b/meta-openembedded/meta-oe/recipes-support/lio-utils/lio-utils_4.1.bb index d9780cfb4c..ea54e75523 100644 --- a/meta-openembedded/meta-oe/recipes-support/lio-utils/lio-utils_4.1.bb +++ b/meta-openembedded/meta-oe/recipes-support/lio-utils/lio-utils_4.1.bb @@ -6,10 +6,10 @@ LIC_FILES_CHKSUM = "file://debian/copyright;md5=c3ea231a32635cbb5debedf3e88aa3df PV = "4.1+git${SRCPV}" -SRC_URI = "git://risingtidesystems.com/lio-utils.git \ +SRC_URI = "git://github.com/Datera/lio-utils.git \ file://0001-Makefiles-Respect-environment-variables-and-add-LDFL.patch \ " -SRCREV = "28bd928655bdc7bd3cf380f0196630690c51e05f" +SRCREV = "0ac9091c1ff7a52d5435a4f4449e82637142e06e" S = "${WORKDIR}/git" inherit distutils diff --git a/meta-openembedded/meta-oe/recipes-support/lockdev/lockdev/0001-include-sys-sysmacros.h-for-major-minor-definitions.patch b/meta-openembedded/meta-oe/recipes-support/lockdev/lockdev/0001-include-sys-sysmacros.h-for-major-minor-definitions.patch deleted file mode 100644 index 12f5be981b..0000000000 --- a/meta-openembedded/meta-oe/recipes-support/lockdev/lockdev/0001-include-sys-sysmacros.h-for-major-minor-definitions.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 2f39dc3d6f920c0826aa74367da1a0a7cc49b0fe Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Sat, 11 Aug 2018 15:18:04 -0700 -Subject: [PATCH] include sys/sysmacros.h for major/minor definitions -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -inclusion of <sys/sysmacros.h> by <sys/types.h> is deprecated. -This means that in a future release, the macros “major”, “minor”, and -“makedev” will only be available from <sys/sysmacros.h>. - -Upstream-Status: Pending -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - src/lockdev.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/lockdev.c b/src/lockdev.c -index 9a0fca5..3581938 100644 ---- a/src/lockdev.c -+++ b/src/lockdev.c -@@ -117,6 +117,7 @@ - #include <sys/stat.h> - #include <sys/file.h> - #include <sys/types.h> -+#include <sys/sysmacros.h> - #include <sys/wait.h> - #include "lockdev.h" - #include "ttylock.h" diff --git a/meta-openembedded/meta-oe/recipes-support/lockdev/lockdev/build.patch b/meta-openembedded/meta-oe/recipes-support/lockdev/lockdev/build.patch new file mode 100644 index 0000000000..6ec91d2316 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/lockdev/lockdev/build.patch @@ -0,0 +1,28 @@ +commit 0dd47123655c52d68185f06b9da8fb0e1b925400 +Author: Ludwig Nussel <ludwig.nussel@suse.de> +Date: Tue Feb 9 14:56:23 2010 +0100 + + RedHat patch 2 + + - change library file name + - install devel symlink + +--- a/Makefile ++++ b/Makefile +@@ -11,7 +11,7 @@ VER = $(shell expr `pwd` : '.*-\([0-9.]* + MVER = ${shell expr `pwd` : '.*-\([0-9]*\).[0-9]*'} + + static = ${libname}.a +-shared = ${libname}.${VER}.so ++shared = ${libname}.so.${VER} + soname = ${libname}.so.${MVER} + + # overwritten by caller (e.g.: debian/rules) +@@ -72,6 +72,7 @@ install_doc: docs/lockdev.3 + install_run: ${shared} + install -m755 -d ${libdir} + install -m644 ${shared} ${libdir} ++ ln -s ${shared} ${libdir}/liblockdev.so + + .PHONY: clean distclean perl-clean mostyclean + perl-clean: clean diff --git a/meta-openembedded/meta-oe/recipes-support/lockdev/lockdev/cross_compile.patch b/meta-openembedded/meta-oe/recipes-support/lockdev/lockdev/cross_compile.patch new file mode 100644 index 0000000000..aa8f6a4d85 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/lockdev/lockdev/cross_compile.patch @@ -0,0 +1,25 @@ +--- a/Makefile ++++ b/Makefile +@@ -15,17 +15,17 @@ shared = ${libname}.${VER}.so + soname = ${libname}.so.${MVER} + + # overwritten by caller (e.g.: debian/rules) +-basedir = /usr/local ++basedir ?= /usr/local + srcdir=. + + libdir = ${basedir}/lib + incdir = ${basedir}/include + mandir = ${basedir}/share/man + +-CC = gcc +-LCFLAGS = -g -O2 -fPIC -Wall -pipe -D_REENTRANT +-CFLAGS = -g +-LDLIBS = -llockdev ++CC ?= gcc ++LCFLAGS ?= -g -O2 -fPIC -Wall -pipe -D_REENTRANT ++CFLAGS ?= -g ++LDLIBS ?= -llockdev + + .PHONY: shared static perl-lib + ALL: shared static perl-lib diff --git a/meta-openembedded/meta-oe/recipes-support/lockdev/lockdev_1.0.3.bb b/meta-openembedded/meta-oe/recipes-support/lockdev/lockdev_1.0.3.bb new file mode 100644 index 0000000000..5b862bd1fe --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/lockdev/lockdev_1.0.3.bb @@ -0,0 +1,29 @@ +SUMMARY = "Locking devices library" +SECTION = "libs" +LICENSE = "LGPLv2.1" +LIC_FILES_CHKSUM="file://LICENSE;md5=d8045f3b8f929c1cb29a1e3fd737b499" + +PE = "1" +SRC_URI = "http://snapshot.debian.org/archive/debian/20141023T043132Z/pool/main/l/lockdev/lockdev_${PV}.orig.tar.gz \ + http://snapshot.debian.org/archive/debian/20141023T043132Z/pool/main/l/lockdev/lockdev_${PV}-1.6.diff.gz;name=debianpatch \ + file://cross_compile.patch \ + file://build.patch \ + " +SRC_URI[md5sum] = "64b9c1b87b125fc348e892e24625524a" +SRC_URI[sha256sum] = "ccae635d7ac3fdd50897eceb250872b3d9a191d298f213e7f0c836910d869f82" +SRC_URI[debianpatch.md5sum] = "5ef6267c42fca9145e0af006ccb6aff7" +SRC_URI[debianpatch.sha256sum] = "a5405c6ee5e97e45eeb1c81330a7e9f444a58bda5e6771fa30007516c115007e" + +inherit lib_package perlnative +export basedir="${D}${prefix}" + +CFLAGS += " -D__GNU_LIBRARY__" + +TARGET_CC_ARCH += "${LDFLAGS}" + +do_compile() { + oe_runmake basedir=${D}${prefix} LD="${CC}" LD="${CC}" shared static +} +do_install() { + oe_runmake DESTDIR=${D} basedir=${D}${prefix} install +} diff --git a/meta-openembedded/meta-oe/recipes-support/lockdev/lockdev_git.bb b/meta-openembedded/meta-oe/recipes-support/lockdev/lockdev_git.bb deleted file mode 100644 index 5ad7f0c503..0000000000 --- a/meta-openembedded/meta-oe/recipes-support/lockdev/lockdev_git.bb +++ /dev/null @@ -1,24 +0,0 @@ -SUMMARY = "Locking devices library" -SECTION = "libs" -LICENSE = "LGPLv2.1" -LIC_FILES_CHKSUM="file://COPYING;md5=4fbd65380cdd255951079008b364516c" - -PV = "1.0.3+git${SRCPV}" - -SRCREV = "16b899645d32012cc94cc9232f64d4ddaaf0b795" -SRC_URI = "git://anonscm.debian.org/lockdev/lockdev.git \ - file://0001-include-sys-sysmacros.h-for-major-minor-definitions.patch \ - " - -S = "${WORKDIR}/git" - -inherit lib_package autotools-brokensep - -do_configure_prepend () { - ./scripts/git-version > VERSION - - # Make automake happy - touch ChangeLog -} - -CFLAGS_append_libc-musl = " -D__GNU_LIBRARY__" diff --git a/meta-openembedded/meta-oe/recipes-support/lvm2/files/0001-Avoid-bashisms-in-init-scripts.patch b/meta-openembedded/meta-oe/recipes-support/lvm2/files/0001-Avoid-bashisms-in-init-scripts.patch index 5b55111dc6..3c4a3a151d 100644 --- a/meta-openembedded/meta-oe/recipes-support/lvm2/files/0001-Avoid-bashisms-in-init-scripts.patch +++ b/meta-openembedded/meta-oe/recipes-support/lvm2/files/0001-Avoid-bashisms-in-init-scripts.patch @@ -1,26 +1,27 @@ -From 916ea0c70fd063ab7b81f16fd917a75dc02edf4f Mon Sep 17 00:00:00 2001 -From: Peter Kjellerstedt <pkj@axis.com> -Date: Fri, 17 Mar 2017 03:18:28 +0100 -Subject: [PATCH] Avoid bashisms in init scripts +From ea66faf68c93735edb1f2691cd7364b8cab83fef Mon Sep 17 00:00:00 2001 +From: Peter Kjellerstedt <peter.kjellerstedt@axis.com> +Date: Mon, 26 Nov 2018 14:53:09 +0800 +Subject: [PATCH 1/3] Avoid bashisms in init scripts Upstream-Status: Inappropriate Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com> + +Rebase to 2.03.01 + +Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> --- - scripts/blk_availability_init_red_hat.in | 4 ++-- - scripts/clvmd_init_red_hat.in | 6 +++--- - scripts/cmirrord_init_red_hat.in | 4 ++-- - scripts/lvm2_cluster_activation_red_hat.sh.in | 4 ++-- - scripts/lvm2_lvmetad_init_red_hat.in | 4 ++-- - scripts/lvm2_lvmpolld_init_red_hat.in | 4 ++-- - scripts/lvm2_monitoring_init_red_hat.in | 4 ++-- - scripts/lvm2_monitoring_init_rhel4 | 4 ++-- - 8 files changed, 17 insertions(+), 17 deletions(-) + scripts/blk_availability_init_red_hat.in | 4 ++-- + scripts/cmirrord_init_red_hat.in | 4 ++-- + scripts/lvm2_lvmpolld_init_red_hat.in | 4 ++-- + scripts/lvm2_monitoring_init_red_hat.in | 4 ++-- + scripts/lvm2_monitoring_init_rhel4 | 4 ++-- + 5 files changed, 10 insertions(+), 10 deletions(-) -Index: LVM2.2.02.177/scripts/blk_availability_init_red_hat.in -=================================================================== ---- LVM2.2.02.177.orig/scripts/blk_availability_init_red_hat.in -+++ LVM2.2.02.177/scripts/blk_availability_init_red_hat.in +diff --git a/scripts/blk_availability_init_red_hat.in b/scripts/blk_availability_init_red_hat.in +index 347c395..b2e9cf9 100644 +--- a/scripts/blk_availability_init_red_hat.in ++++ b/scripts/blk_availability_init_red_hat.in @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh @@ -35,38 +36,10 @@ Index: LVM2.2.02.177/scripts/blk_availability_init_red_hat.in + echo "Usage: $0 {start|stop|status}" ;; esac -Index: LVM2.2.02.177/scripts/clvmd_init_red_hat.in -=================================================================== ---- LVM2.2.02.177.orig/scripts/clvmd_init_red_hat.in -+++ LVM2.2.02.177/scripts/clvmd_init_red_hat.in -@@ -1,4 +1,4 @@ --#!/bin/bash -+#!/bin/sh - # - # clvmd - Clustered LVM Daemon init script - # -@@ -161,7 +161,7 @@ restart() { - fi - } - --[ "$EUID" != "0" ] && { -+[ "$(id -u)" != "0" ] && { - echo "clvmd init script can only be executed as root user" - exit 4 - } -@@ -206,7 +206,7 @@ case "$1" in - ;; - - *) -- echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}" -+ echo "Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}" - rtrn=2 - ;; - esac -Index: LVM2.2.02.177/scripts/cmirrord_init_red_hat.in -=================================================================== ---- LVM2.2.02.177.orig/scripts/cmirrord_init_red_hat.in -+++ LVM2.2.02.177/scripts/cmirrord_init_red_hat.in +diff --git a/scripts/cmirrord_init_red_hat.in b/scripts/cmirrord_init_red_hat.in +index c82f8f5..a3a321d 100755 +--- a/scripts/cmirrord_init_red_hat.in ++++ b/scripts/cmirrord_init_red_hat.in @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh @@ -82,48 +55,10 @@ Index: LVM2.2.02.177/scripts/cmirrord_init_red_hat.in ;; esac -Index: LVM2.2.02.177/scripts/lvm2_cluster_activation_red_hat.sh.in -=================================================================== ---- LVM2.2.02.177.orig/scripts/lvm2_cluster_activation_red_hat.sh.in -+++ LVM2.2.02.177/scripts/lvm2_cluster_activation_red_hat.sh.in -@@ -1,4 +1,4 @@ --#!/bin/bash -+#!/bin/sh - - sbindir="@SBINDIR@" - -@@ -54,7 +54,7 @@ case "$1" in - rtrn=$? - ;; - *) -- echo $"Usage: $0 {activate|deactivate}" -+ echo "Usage: $0 {activate|deactivate}" - rtrn=3 - ;; - esac -Index: LVM2.2.02.177/scripts/lvm2_lvmetad_init_red_hat.in -=================================================================== ---- LVM2.2.02.177.orig/scripts/lvm2_lvmetad_init_red_hat.in -+++ LVM2.2.02.177/scripts/lvm2_lvmetad_init_red_hat.in -@@ -1,4 +1,4 @@ --#!/bin/bash -+#!/bin/sh - # - # Copyright (C) 2012-2017 Red Hat, Inc. All rights reserved. - # -@@ -103,7 +103,7 @@ case "$1" in - ;; - - *) -- echo $"Usage: $0 {start|stop|force-stop|restart|condrestart|try-restart|status}" -+ echo "Usage: $0 {start|stop|force-stop|restart|condrestart|try-restart|status}" - ;; - esac - -Index: LVM2.2.02.177/scripts/lvm2_lvmpolld_init_red_hat.in -=================================================================== ---- LVM2.2.02.177.orig/scripts/lvm2_lvmpolld_init_red_hat.in -+++ LVM2.2.02.177/scripts/lvm2_lvmpolld_init_red_hat.in +diff --git a/scripts/lvm2_lvmpolld_init_red_hat.in b/scripts/lvm2_lvmpolld_init_red_hat.in +index 176ff5d..825f6ad 100644 +--- a/scripts/lvm2_lvmpolld_init_red_hat.in ++++ b/scripts/lvm2_lvmpolld_init_red_hat.in @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh @@ -139,10 +74,10 @@ Index: LVM2.2.02.177/scripts/lvm2_lvmpolld_init_red_hat.in ;; esac -Index: LVM2.2.02.177/scripts/lvm2_monitoring_init_red_hat.in -=================================================================== ---- LVM2.2.02.177.orig/scripts/lvm2_monitoring_init_red_hat.in -+++ LVM2.2.02.177/scripts/lvm2_monitoring_init_red_hat.in +diff --git a/scripts/lvm2_monitoring_init_red_hat.in b/scripts/lvm2_monitoring_init_red_hat.in +index 95e4125..dff89cd 100644 +--- a/scripts/lvm2_monitoring_init_red_hat.in ++++ b/scripts/lvm2_monitoring_init_red_hat.in @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh @@ -158,10 +93,10 @@ Index: LVM2.2.02.177/scripts/lvm2_monitoring_init_red_hat.in ;; esac -Index: LVM2.2.02.177/scripts/lvm2_monitoring_init_rhel4 -=================================================================== ---- LVM2.2.02.177.orig/scripts/lvm2_monitoring_init_rhel4 -+++ LVM2.2.02.177/scripts/lvm2_monitoring_init_rhel4 +diff --git a/scripts/lvm2_monitoring_init_rhel4 b/scripts/lvm2_monitoring_init_rhel4 +index 8eb06c5..2e8d0f7 100644 +--- a/scripts/lvm2_monitoring_init_rhel4 ++++ b/scripts/lvm2_monitoring_init_rhel4 @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh @@ -177,3 +112,6 @@ Index: LVM2.2.02.177/scripts/lvm2_monitoring_init_rhel4 ;; esac +-- +2.7.4 + diff --git a/meta-openembedded/meta-oe/recipes-support/lvm2/files/0003-include-fcntl.h-for-O_-defines-and-fcntl-signature.patch b/meta-openembedded/meta-oe/recipes-support/lvm2/files/0003-include-fcntl.h-for-O_-defines-and-fcntl-signature.patch deleted file mode 100644 index 9ab1c06d27..0000000000 --- a/meta-openembedded/meta-oe/recipes-support/lvm2/files/0003-include-fcntl.h-for-O_-defines-and-fcntl-signature.patch +++ /dev/null @@ -1,30 +0,0 @@ -From b1ad91a059d99afd1ce25823b7c0a8d3ac63d2fd Mon Sep 17 00:00:00 2001 -From: Dengke Du <dengke.du@windriver.com> -Date: Tue, 25 Oct 2016 11:55:49 +0000 -Subject: [PATCH 3/4] include fcntl.h for O_* defines and fcntl() signature - -On glibc _somehow_ this header gets pulled in indirectly - -Signed-off-by: Khem Raj <raj.khem@gmail.com> -Signed-off-by: Dengke Du <dengke.du@windriver.com> ---- -Upstream-Status: Pending ---- - libdaemon/server/daemon-server.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/libdaemon/server/daemon-server.c b/libdaemon/server/daemon-server.c -index 6af6de9..a9590e7 100644 ---- a/libdaemon/server/daemon-server.c -+++ b/libdaemon/server/daemon-server.c -@@ -18,6 +18,7 @@ - #include "daemon-server.h" - #include "daemon-log.h" - -+#include <fcntl.h> - #include <dlfcn.h> - #include <errno.h> - #include <pthread.h> --- -2.9.3 - diff --git a/meta-openembedded/meta-oe/recipes-support/lvm2/files/0005-do-not-build-manual.patch b/meta-openembedded/meta-oe/recipes-support/lvm2/files/0005-do-not-build-manual.patch index e3ce4c8ac2..7117d99a39 100644 --- a/meta-openembedded/meta-oe/recipes-support/lvm2/files/0005-do-not-build-manual.patch +++ b/meta-openembedded/meta-oe/recipes-support/lvm2/files/0005-do-not-build-manual.patch @@ -1,7 +1,7 @@ -From 51d661ff33bb254d7b335a9c87acf5c6e7a94192 Mon Sep 17 00:00:00 2001 +From 103ac1c1200df8190372d973e004776cffe8e659 Mon Sep 17 00:00:00 2001 From: Hongxu Jia <hongxu.jia@windriver.com> -Date: Tue, 31 Jul 2018 15:08:34 +0800 -Subject: [PATCH] do not build manual +Date: Mon, 26 Nov 2018 14:59:55 +0800 +Subject: [PATCH 2/3] do not build manual On some host (ubuntu 1404), build manual failed. ... @@ -14,34 +14,39 @@ Do not build man to workaround the issue. Upstream-Status: Pending Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> + + +Update context for lvm2 2.03.02. + +Signed-off-by: Kai Kang <kai.kang@windriver.com> --- Makefile.in | 6 +++--- configure.ac | 1 - 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/Makefile.in b/Makefile.in -index e2f5a84..acf31e5 100644 +index 6a1a990..80cba91 100644 --- a/Makefile.in +++ b/Makefile.in @@ -18,7 +18,7 @@ top_builddir = @top_builddir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ --SUBDIRS = conf daemons include lib libdaemon libdm man scripts device_mapper tools -+SUBDIRS = conf daemons include lib libdaemon libdm scripts device_mapper tools +-SUBDIRS = conf daemons include lib libdaemon libdm man scripts tools ++SUBDIRS = conf daemons include lib libdaemon libdm scripts tools ifeq ("@UDEV_RULES@", "yes") SUBDIRS += udev -@@ -41,7 +41,7 @@ ifeq ($(MAKECMDGOALS),clean) +@@ -33,7 +33,7 @@ ifeq ($(MAKECMDGOALS),clean) endif # FIXME Should use intermediate Makefiles here! ifeq ($(MAKECMDGOALS),distclean) - SUBDIRS = conf include man test scripts \ + SUBDIRS = conf include test scripts \ libdaemon lib tools daemons libdm \ - udev po liblvm python device_mapper + udev po tools.distclean: test.distclean -@@ -71,7 +71,7 @@ liblvm.device-mapper: include.device-mapper +@@ -65,7 +65,7 @@ libdm.device-mapper: include.device-mapper daemons.device-mapper: libdm.device-mapper tools.device-mapper: libdm.device-mapper scripts.device-mapper: include.device-mapper @@ -51,17 +56,17 @@ index e2f5a84..acf31e5 100644 ifeq ("@INTL@", "yes") lib.pofile: include.pofile diff --git a/configure.ac b/configure.ac -index aa374ea..5a92cba 100644 +index 7fd0561..4154dc0 100644 --- a/configure.ac +++ b/configure.ac -@@ -2124,7 +2124,6 @@ libdm/Makefile +@@ -1812,7 +1812,6 @@ libdaemon/server/Makefile + libdm/Makefile + libdm/dm-tools/Makefile libdm/libdevmapper.pc - liblvm/Makefile - liblvm/liblvm2app.pc -man/Makefile po/Makefile - python/Makefile - python/setup.py + scripts/lvm2-pvscan.service + scripts/blkdeactivate.sh -- 2.7.4 diff --git a/meta-openembedded/meta-oe/recipes-support/lvm2/files/0006-start-lvm2-monitor.service-after-tmp.mount.patch b/meta-openembedded/meta-oe/recipes-support/lvm2/files/0006-start-lvm2-monitor.service-after-tmp.mount.patch index 0e68d62fc2..e5ad4eaf2f 100644 --- a/meta-openembedded/meta-oe/recipes-support/lvm2/files/0006-start-lvm2-monitor.service-after-tmp.mount.patch +++ b/meta-openembedded/meta-oe/recipes-support/lvm2/files/0006-start-lvm2-monitor.service-after-tmp.mount.patch @@ -10,20 +10,25 @@ So start lvm2-monitor.service after tmp.mount Upstream-Status: Inappropriate [oe specific] Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> + + +Update context for lvm2 2.03.02. + +Signed-off-by: Kai Kang <kai.kang@windriver.com> --- scripts/lvm2_monitoring_systemd_red_hat.service.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/lvm2_monitoring_systemd_red_hat.service.in b/scripts/lvm2_monitoring_systemd_red_hat.service.in -index 22238b7..93b2bee 100644 +index 7ec4e4e..3282a95 100644 --- a/scripts/lvm2_monitoring_systemd_red_hat.service.in +++ b/scripts/lvm2_monitoring_systemd_red_hat.service.in @@ -2,7 +2,7 @@ Description=Monitoring of LVM2 mirrors, snapshots etc. using dmeventd or progress polling Documentation=man:dmeventd(8) man:lvcreate(8) man:lvchange(8) man:vgchange(8) - Requires=dm-event.socket lvm2-lvmetad.socket --After=dm-event.socket dm-event.service lvm2-lvmetad.socket lvm2-activation.service lvm2-lvmetad.service -+After=dm-event.socket dm-event.service lvm2-lvmetad.socket lvm2-activation.service lvm2-lvmetad.service tmp.mount + Requires=dm-event.socket +-After=dm-event.socket dm-event.service lvm2-activation.service ++After=dm-event.socket dm-event.service lvm2-activation.service tmp.mount Before=local-fs-pre.target DefaultDependencies=no Conflicts=shutdown.target diff --git a/meta-openembedded/meta-oe/recipes-support/lvm2/libdevmapper_2.02.180.bb b/meta-openembedded/meta-oe/recipes-support/lvm2/libdevmapper_2.03.02.bb index 26af3275d8..2c4febbe07 100644 --- a/meta-openembedded/meta-oe/recipes-support/lvm2/libdevmapper_2.02.180.bb +++ b/meta-openembedded/meta-oe/recipes-support/lvm2/libdevmapper_2.03.02.bb @@ -1,7 +1,6 @@ require lvm2.inc -SRC_URI[md5sum] = "bc26da66e96727babbd288bb0f050339" -SRC_URI[sha256sum] = "24997e26dfc916151707c9da504d38d0473bec3481a8230b676bc079041bead6" +SRCREV = "913c28917e62577a2ef67152b2e5159237503dda" DEPENDS += "autoconf-archive-native" @@ -9,7 +8,6 @@ TARGET_CC_ARCH += "${LDFLAGS}" do_install() { oe_runmake 'DESTDIR=${D}' -C libdm install - oe_runmake 'DESTDIR=${D}' -C tools install_device-mapper } RRECOMMENDS_${PN}_append_class-target = " lvm2-udevrules" diff --git a/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2.inc b/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2.inc index 26a887ea10..8617f25cb9 100644 --- a/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2.inc +++ b/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2.inc @@ -7,25 +7,23 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=12713b4d9386533feeb07d6e4831765a \ DEPENDS += "util-linux libaio" -SRC_URI = "ftp://sources.redhat.com/pub/lvm2/old/LVM2.${PV}.tgz \ +SRC_URI = "ftp://sources.redhat.com/pub/lvm2/releases/LVM2.${PV}.tgz \ file://lvm.conf \ file://0001-implement-libc-specific-reopen_stream.patch \ file://0002-Guard-use-of-mallinfo-with-__GLIBC__.patch \ - file://0003-include-fcntl.h-for-O_-defines-and-fcntl-signature.patch \ file://0004-tweak-MODPROBE_CMD-for-cross-compile.patch \ file://0001-Avoid-bashisms-in-init-scripts.patch \ file://0005-do-not-build-manual.patch \ file://0006-start-lvm2-monitor.service-after-tmp.mount.patch \ " - -UPSTREAM_CHECK_URI = "ftp://sources.redhat.com/pub/lvm2/" -UPSTREAM_CHECK_REGEX = "LVM2\.(?P<pver>\d+(\.\d+)+)" +SRC_URI[md5sum] = "5fc07da5461a3794a751dcfc355827d5" +SRC_URI[sha256sum] = "550ba750239fd75b7e52c9877565cabffef506bbf6d7f6f17b9700dee56c720f" S = "${WORKDIR}/LVM2.${PV}" inherit autotools-brokensep pkgconfig systemd license -LVM2_PACKAGECONFIG = "dmeventd lvmetad" +LVM2_PACKAGECONFIG = "dmeventd" LVM2_PACKAGECONFIG_append_class-target = " \ ${@bb.utils.filter('DISTRO_FEATURES', 'selinux', d)} \ ${@incompatible_license_contains('GPLv3', '', 'thin-provisioning-tools', d)} \ @@ -39,7 +37,6 @@ LVM2_PACKAGECONFIG_append_class-target = " \ PACKAGECONFIG ??= "odirect ${LVM2_PACKAGECONFIG}" PACKAGECONFIG[dmeventd] = "--enable-dmeventd,--disable-dmeventd" -PACKAGECONFIG[lvmetad] = "--enable-lvmetad,--disable-lvmetad" PACKAGECONFIG[odirect] = "--enable-o_direct,--disable-o_direct" PACKAGECONFIG[readline] = "--enable-readline,--disable-readline,readline" PACKAGECONFIG[selinux] = "--enable-selinux,--disable-selinux,libselinux" @@ -50,7 +47,6 @@ PACKAGECONFIG[udev] = "--enable-udev_sync --enable-udev_rules --with-udevdir=${n EXTRA_OECONF = "--with-user= \ --with-group= \ --enable-realtime \ - --enable-applib \ --enable-cmdlib \ --enable-pkgconfig \ --with-usrlibdir=${libdir} \ diff --git a/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0001-dev-hdc-open-failed-No-medium-found-will-print-out-i.patch b/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0001-dev-hdc-open-failed-No-medium-found-will-print-out-i.patch new file mode 100644 index 0000000000..24d5b1b486 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0001-dev-hdc-open-failed-No-medium-found-will-print-out-i.patch @@ -0,0 +1,32 @@ +From 93c93e3b85492e58f9451841e6079d00c497efa4 Mon Sep 17 00:00:00 2001 +From: Jiping Ma <jiping.ma2@windriver.com> +Date: Mon, 25 Feb 2019 13:29:12 +0800 +Subject: [PATCH] "/dev/hdc: open failed: No medium found" will print out in + lvmdiskscan. + +commit [57bb46c5e7f8] introduce this issue. +"/dev/hdc: open failed: No medium found" will be print out +after run lvmdiskscan. change dev_open_readonly() +to dev_open_readonly_quiet() in fuction _dev_get_size_dev(). + +Signed-off-by: Jiping Ma <jiping.ma2@windriver.com> +--- + lib/device/dev-io.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/device/dev-io.c b/lib/device/dev-io.c +index dc95131..81a66b0 100644 +--- a/lib/device/dev-io.c ++++ b/lib/device/dev-io.c +@@ -338,7 +338,7 @@ static int _dev_get_size_dev(struct device *dev, uint64_t *size) + } + + if (fd <= 0) { +- if (!dev_open_readonly(dev)) ++ if (!dev_open_readonly_quiet(dev)) + return_0; + fd = dev_fd(dev); + do_close = 1; +-- +1.9.1 + diff --git a/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0001-explicitly-do-not-install-libdm.patch b/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0001-explicitly-do-not-install-libdm.patch index 7f5dd93341..24160b405e 100644 --- a/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0001-explicitly-do-not-install-libdm.patch +++ b/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2/0001-explicitly-do-not-install-libdm.patch @@ -1,6 +1,6 @@ -From 5a3e13ae94318c2bed60f875bb3852c45ce0113c Mon Sep 17 00:00:00 2001 +From 3c16d9aaa46602e7594d717d86e7f02066d21134 Mon Sep 17 00:00:00 2001 From: Hongxu Jia <hongxu.jia@windriver.com> -Date: Thu, 25 May 2017 05:27:11 -0400 +Date: Mon, 26 Nov 2018 17:20:20 +0800 Subject: [PATCH] explicitly do not install libdm Already have package libdevmapper which split from lvm2, @@ -9,17 +9,21 @@ explicitly do not do the installation here. Upstream-Status: Inappropriate [meta-oe specific] Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> -Signed-off-by: Andrew Bresticker <abrestic@waymo.com> + + +Update context for lvm2 2.03.02. + +Signed-off-by: Kai Kang <kai.kang@windriver.com> --- - libdm/Makefile.in | 6 ++++-- - tools/Makefile.in | 3 ++- - 2 files changed, 6 insertions(+), 3 deletions(-) + libdm/Makefile.in | 6 ++++-- + libdm/dm-tools/Makefile.in | 6 ++++-- + 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/libdm/Makefile.in b/libdm/Makefile.in -index 66ec39513..c779c9d86 100644 +index e9bb5ae..4e9ae3f 100644 --- a/libdm/Makefile.in +++ b/libdm/Makefile.in -@@ -77,9 +77,11 @@ ifeq ("@PKGCONFIG@", "yes") +@@ -82,9 +82,11 @@ ifeq ("@PKGCONFIG@", "yes") INSTALL_TYPE += install_pkgconfig endif @@ -32,21 +36,30 @@ index 66ec39513..c779c9d86 100644 + echo "Do not install device mapper in lvm2" install_include: $(srcdir)/libdevmapper.h - $(INSTALL_DATA) -D $< $(includedir)/$(<F) -diff --git a/tools/Makefile.in b/tools/Makefile.in -index 103b76732..63ba7fc04 100644 ---- a/tools/Makefile.in -+++ b/tools/Makefile.in -@@ -267,7 +267,8 @@ install_dmsetup_static: dmsetup.static - $(Q) $(INSTALL_PROGRAM) -D $< $(staticdir)/$(<F) - $(Q) $(LN_S) -f $(<F) $(staticdir)/dmstats + @echo " [INSTALL] $<" +diff --git a/libdm/dm-tools/Makefile.in b/libdm/dm-tools/Makefile.in +index 15a9d8e..65e1306 100644 +--- a/libdm/dm-tools/Makefile.in ++++ b/libdm/dm-tools/Makefile.in +@@ -20,7 +20,8 @@ all: device-mapper --install_device-mapper: $(INSTALL_DMSETUP_TARGETS) + SOURCES2 = dmsetup.c + TARGETS_DM = dmsetup +-install_device-mapper: install_dmsetup_dynamic +install_device-mapper: + echo "Do not install device mapper in lvm2" - install_lvm2: $(INSTALL_LVM_TARGETS) + ifeq ("@STATIC_LINK@", "yes") + TARGETS_DM += dmsetup.static +@@ -93,6 +94,7 @@ install_dmfilemapd_static: dmfilemapd.static + .PHONY: install_dmsetup_dynamic install_dmsetup_static + .PHONY: install_dmfilemapd install_dmfilemapd_static + +-install: install_device-mapper install_dmfilemapd ++install: ++ echo "Do not install device mapper in lvm2" + device-mapper: $(TARGETS_DM) -- -2.19.0.397.gdd90340f6a-goog +2.7.4 diff --git a/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2_2.02.180.bb b/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2_2.03.02.bb index 7bd7b09d8f..e2ce95c815 100644 --- a/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2_2.02.180.bb +++ b/meta-openembedded/meta-oe/recipes-support/lvm2/lvm2_2.03.02.bb @@ -1,9 +1,10 @@ require lvm2.inc -SRC_URI[md5sum] = "bc26da66e96727babbd288bb0f050339" -SRC_URI[sha256sum] = "24997e26dfc916151707c9da504d38d0473bec3481a8230b676bc079041bead6" +SRCREV = "913c28917e62577a2ef67152b2e5159237503dda" -SRC_URI += "file://0001-explicitly-do-not-install-libdm.patch" +SRC_URI += "file://0001-explicitly-do-not-install-libdm.patch \ + file://0001-dev-hdc-open-failed-No-medium-found-will-print-out-i.patch \ + " DEPENDS += "autoconf-archive-native" @@ -32,8 +33,7 @@ PACKAGE_BEFORE_PN = "${PN}-scripts ${PN}-udevrules" SYSTEMD_PACKAGES = "${PN}" SYSTEMD_SERVICE_${PN} = "${@bb.utils.contains('PACKAGECONFIG', 'dmeventd', 'lvm2-monitor.service dm-event.socket dm-event.service', '', d)} \ - ${@bb.utils.contains('PACKAGECONFIG', 'lvmetad', 'lvm2-lvmetad.socket lvm2-pvscan@.service', '', d)} \ - blk-availability.service" + blk-availability.service lvm2-pvscan@.service" SYSTEMD_AUTO_ENABLE = "disable" TARGET_CC_ARCH += "${LDFLAGS}" diff --git a/meta-openembedded/meta-oe/recipes-support/mcelog/mce-test/makefile-remove-ldflags.patch b/meta-openembedded/meta-oe/recipes-support/mcelog/mce-test/makefile-remove-ldflags.patch new file mode 100644 index 0000000000..0ffedd2c17 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/mcelog/mce-test/makefile-remove-ldflags.patch @@ -0,0 +1,23 @@ +Remove the default CFLAGS and LDFLAGS in Makefile. Ensure the extra linker flags can be passed. + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Yi Zhao <yi.zhao@windriver.com> + +diff --git a/cases/stress/hwpoison/Makefile b/cases/stress/hwpoison/Makefile +index da1cbd8..dec5b14 100644 +--- a/cases/stress/hwpoison/Makefile ++++ b/cases/stress/hwpoison/Makefile +@@ -1,8 +1,8 @@ +-CFLAGS := -g -Wall +-LDFLAGS := -g ++#CFLAGS := -g -Wall ++#LDFLAGS := -g + +-export CFLAGS +-export LDFLAGS ++#export CFLAGS ++#export LDFLAGS + + all: + mkdir -p bin diff --git a/meta-openembedded/meta-oe/recipes-support/mcelog/mce-test_git.bb b/meta-openembedded/meta-oe/recipes-support/mcelog/mce-test_git.bb new file mode 100644 index 0000000000..888c729b3e --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/mcelog/mce-test_git.bb @@ -0,0 +1,30 @@ +# +# Copyright (C) 2012 Wind River Systems, Inc. +# +SUMMARY = "MCE test suite" + +DESCRIPTION = "The MCE test suite is a collection of tools and test scripts for \ +testing the Linux RAS related features, including CPU/Memory error \ +containment and recovery, ACPI/APEI support etc." + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3" + +SRC_URI = "git://git.kernel.org/pub/scm/utils/cpu/mce/mce-test.git;protocol=git \ + file://makefile-remove-ldflags.patch \ + " +SRCREV = "74bffd8b0aa27051aeaa1983a7b23975ca8d8726" +PV = "20171030+git${SRCPV}" + +RDEPENDS_${PN} = "mcelog mce-inject dialog bash" + +COMPATIBLE_HOST = '(i.86|x86_64).*-linux' + +S ="${WORKDIR}/git" + +do_install_append(){ + install -d ${D}/opt/mce-test + cp -rf ${S}/* ${D}/opt/mce-test/ +} + +FILES_${PN} += "/opt" diff --git a/meta-openembedded/meta-oe/recipes-support/mini-iconv/mini-iconv.bb b/meta-openembedded/meta-oe/recipes-support/mini-iconv/mini-iconv.bb index 0f1548aa28..44f55b58df 100644 --- a/meta-openembedded/meta-oe/recipes-support/mini-iconv/mini-iconv.bb +++ b/meta-openembedded/meta-oe/recipes-support/mini-iconv/mini-iconv.bb @@ -13,7 +13,7 @@ SRC_URI[md5sum] = "84412221e26505a2b3855d4a1cdcd0e0" SRC_URI[sha256sum] = "3552262bf1bcf8e859a2a3a7adfb0367af8593383e730c492e981477aac0a0d4" -S = "${WORKDIR}/${PN}" +S = "${WORKDIR}/${BPN}" do_install() { oe_runmake install DESTDIR=${D} PREFIX=${prefix} LIB=${base_libdir} diff --git a/meta-openembedded/meta-oe/recipes-support/mscgen/mscgen_0.20.bb b/meta-openembedded/meta-oe/recipes-support/mscgen/mscgen_0.20.bb new file mode 100644 index 0000000000..6ead015f85 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/mscgen/mscgen_0.20.bb @@ -0,0 +1,18 @@ +SUMMARY = "Mscgen is a small program that parses Message Sequence Chart descriptions and produces PNG, SVG, EPS or server side image maps (ismaps) as the output." +HOMEPAGE = "http://www.mcternan.me.uk/mscgen/" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=b1e6a340187c1cf716513439d07c1d79" + +SRC_URI = "http://www.mcternan.me.uk/mscgen/software/${PN}-src-${PV}.tar.gz" + +SRC_URI[md5sum] = "65c90fb5150d7176b65b793f0faa7377" +SRC_URI[sha256sum] = "3c3481ae0599e1c2d30b7ed54ab45249127533ab2f20e768a0ae58d8551ddc23" + +DEPENDS = "gd " + +inherit autotools gettext + +do_configure_prepend() { + sed -i "s#AC_PATH_PROG(GDLIB_CONFIG,gdlib-config)#AC_PATH_PROG([GDLIB_CONFIG],[gdlib-config], ,[${STAGING_BINDIR_CROSS}])#" ${S}/configure.ac +} diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-multipath-tools-add-RDAC-SUN-ArrayStorage-to-hwtable.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-multipath-tools-add-RDAC-SUN-ArrayStorage-to-hwtable.patch deleted file mode 100644 index 1d983e978f..0000000000 --- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0001-multipath-tools-add-RDAC-SUN-ArrayStorage-to-hwtable.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Xose Vazquez Perez <xose.vazquez@gmail.com> -Date: Wed, 11 Apr 2018 15:14:13 +0200 -Subject: [PATCH] multipath-tools: add RDAC SUN/ArrayStorage to hwtable - -Already in scsi_dh: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/scsi/scsi_dh.c#n70 - -Cc: NetApp RDAC team <ng-eseries-upstream-maintainers@netapp.com> -Cc: Christophe Varoqui <christophe.varoqui@opensvc.com> -Cc: DM ML <dm-devel@redhat.com> -Signed-off-by: Xose Vazquez Perez <xose.vazquez@gmail.com> -Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com> ---- - libmultipath/hwtable.c | 12 ++++++++++++ - 1 file changed, 12 insertions(+) - -diff --git a/libmultipath/hwtable.c b/libmultipath/hwtable.c -index 88b4700..827e899 100644 ---- a/libmultipath/hwtable.c -+++ b/libmultipath/hwtable.c -@@ -890,6 +890,18 @@ static struct hwentry default_hw[] = { - .no_path_retry = 30, - }, - { -+ .vendor = "SUN", -+ .product = "ArrayStorage", -+ .bl_product = "Universal Xport", -+ .pgpolicy = GROUP_BY_PRIO, -+ .checker_name = RDAC, -+ .features = "2 pg_init_retries 50", -+ .hwhandler = "1 rdac", -+ .prio_name = PRIO_RDAC, -+ .pgfailback = -FAILBACK_IMMEDIATE, -+ .no_path_retry = 30, -+ }, -+ { - /* ZFS Storage Appliances */ - .vendor = "SUN", - .product = "(Sun Storage|ZFS Storage|COMSTAR)", --- -2.7.4 - diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0002-multipath-tools-remove-c-from-__cpluscplus-misspelle.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0002-multipath-tools-remove-c-from-__cpluscplus-misspelle.patch deleted file mode 100644 index 73f000aca2..0000000000 --- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0002-multipath-tools-remove-c-from-__cpluscplus-misspelle.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Xose Vazquez Perez <xose.vazquez@gmail.com> -Date: Tue, 24 Apr 2018 15:03:40 +0200 -Subject: [PATCH] multipath-tools: remove "c" from __cpluscplus, misspelled - -found by cppcheck(http://cppcheck.sf.net/): -[libmpathcmd/mpath_cmd.h:24]: (error) Invalid number of character '{' when these macros are defined: '__cpluscplus'. - -Cc: Benjamin Marzinski <bmarzins@redhat.com> -Cc: Christophe Varoqui <christophe.varoqui@opensvc.com> -Cc: DM ML <dm-devel@redhat.com> -Signed-off-by: Xose Vazquez Perez <xose.vazquez@gmail.com> -Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com> ---- - libmpathcmd/mpath_cmd.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/libmpathcmd/mpath_cmd.h b/libmpathcmd/mpath_cmd.h -index aaa8da9..df9d938 100644 ---- a/libmpathcmd/mpath_cmd.h -+++ b/libmpathcmd/mpath_cmd.h -@@ -20,7 +20,7 @@ - #ifndef LIB_MPATH_CMD_H - #define LIB_MPATH_CMD_H - --#ifdef __cpluscplus -+#ifdef __cplusplus - extern "C" { - #endif - --- -2.7.4 - diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0003-multipath-tools-remove-emacs-autoconfig-of-kpartx-gp.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0003-multipath-tools-remove-emacs-autoconfig-of-kpartx-gp.patch deleted file mode 100644 index 7358e1ae97..0000000000 --- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0003-multipath-tools-remove-emacs-autoconfig-of-kpartx-gp.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Xose Vazquez Perez <xose.vazquez@gmail.com> -Date: Thu, 12 Apr 2018 18:17:13 +0200 -Subject: [PATCH] multipath-tools: remove emacs autoconfig of kpartx/gpt.h - -Cc: Christophe Varoqui <christophe.varoqui@opensvc.com> -Cc: DM ML <dm-devel@redhat.com> -Signed-off-by: Xose Vazquez Perez <xose.vazquez@gmail.com> -Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com> ---- - kpartx/gpt.h | 19 ------------------- - 1 file changed, 19 deletions(-) - -diff --git a/kpartx/gpt.h b/kpartx/gpt.h -index 66ce8f1..7bb54b7 100644 ---- a/kpartx/gpt.h -+++ b/kpartx/gpt.h -@@ -109,22 +109,3 @@ int read_gpt_pt (int fd, struct slice all, struct slice *sp, int ns); - - - #endif -- --/* -- * Overrides for Emacs so that we follow Linus's tabbing style. -- * Emacs will notice this stuff at the end of the file and automatically -- * adjust the settings for this buffer only. This must remain at the end -- * of the file. -- * --------------------------------------------------------------------------- -- * Local variables: -- * c-indent-level: 4 -- * c-brace-imaginary-offset: 0 -- * c-brace-offset: -4 -- * c-argdecl-indent: 4 -- * c-label-offset: -4 -- * c-continued-statement-offset: 4 -- * c-continued-brace-offset: 0 -- * indent-tabs-mode: nil -- * tab-width: 8 -- * End: -- */ --- -2.7.4 - diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0004-multipath-tools-replace-FSF-address-with-a-www-point.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0004-multipath-tools-replace-FSF-address-with-a-www-point.patch deleted file mode 100644 index 13f18b5761..0000000000 --- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0004-multipath-tools-replace-FSF-address-with-a-www-point.patch +++ /dev/null @@ -1,191 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Xose Vazquez Perez <xose.vazquez@gmail.com> -Date: Fri, 11 May 2018 15:42:43 +0200 -Subject: [PATCH] multipath-tools: replace FSF address with a www pointer - -Less prone to future modifications, new FSF licences -point exactly to this url: <http://www.gnu.org/licenses/>. -And sending a smail to FSF is outdated. - -First clean up was done in 5619a39c433ac3d10a88079593cec1aa6472cbeb - -Cc: Martin Wilck <mwilck@suse.com> -Cc: Benjamin Marzinski <bmarzins@redhat.com> -Cc: Christophe Varoqui <christophe.varoqui@opensvc.com> -Cc: DM ML <dm-devel@redhat.com> -Signed-off-by: Xose Vazquez Perez <xose.vazquez@gmail.com> -Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com> ---- - libmultipath/dm-generic.c | 4 +--- - libmultipath/dm-generic.h | 4 +--- - libmultipath/foreign.c | 4 +--- - libmultipath/foreign.h | 4 +--- - libmultipath/foreign/nvme.c | 4 +--- - libmultipath/generic.c | 4 +--- - libmultipath/generic.h | 4 +--- - tests/dmevents.c | 2 +- - tests/parser.c | 2 +- - tests/uevent.c | 2 +- - tests/util.c | 2 +- - 11 files changed, 11 insertions(+), 25 deletions(-) - -diff --git a/libmultipath/dm-generic.c b/libmultipath/dm-generic.c -index bdc9ca0..d752991 100644 ---- a/libmultipath/dm-generic.c -+++ b/libmultipath/dm-generic.c -@@ -12,9 +12,7 @@ - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License -- along with this program; if not, write to the Free Software -- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, -- USA. -+ along with this program. If not, see <https://www.gnu.org/licenses/>. - */ - - #include <stdint.h> -diff --git a/libmultipath/dm-generic.h b/libmultipath/dm-generic.h -index 5d59724..986429f 100644 ---- a/libmultipath/dm-generic.h -+++ b/libmultipath/dm-generic.h -@@ -12,9 +12,7 @@ - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License -- along with this program; if not, write to the Free Software -- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, -- USA. -+ along with this program. If not, see <https://www.gnu.org/licenses/>. - */ - #ifndef _DM_GENERIC_H - #define _DM_GENERIC_H -diff --git a/libmultipath/foreign.c b/libmultipath/foreign.c -index 7217184..80b399b 100644 ---- a/libmultipath/foreign.c -+++ b/libmultipath/foreign.c -@@ -12,9 +12,7 @@ - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License -- along with this program; if not, write to the Free Software -- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, -- USA. -+ along with this program. If not, see <https://www.gnu.org/licenses/>. - */ - - #include <sys/sysmacros.h> -diff --git a/libmultipath/foreign.h b/libmultipath/foreign.h -index 973f368..697f12f 100644 ---- a/libmultipath/foreign.h -+++ b/libmultipath/foreign.h -@@ -12,9 +12,7 @@ - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License -- along with this program; if not, write to the Free Software -- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, -- USA. -+ along with this program. If not, see <https://www.gnu.org/licenses/>. - */ - #ifndef _FOREIGN_H - #define _FOREIGN_H -diff --git a/libmultipath/foreign/nvme.c b/libmultipath/foreign/nvme.c -index 235f75d..280b6bd 100644 ---- a/libmultipath/foreign/nvme.c -+++ b/libmultipath/foreign/nvme.c -@@ -12,9 +12,7 @@ - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License -- along with this program; if not, write to the Free Software -- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, -- USA. -+ along with this program. If not, see <https://www.gnu.org/licenses/>. - */ - - #include <sys/sysmacros.h> -diff --git a/libmultipath/generic.c b/libmultipath/generic.c -index 6f7a2cd..0d1e632 100644 ---- a/libmultipath/generic.c -+++ b/libmultipath/generic.c -@@ -12,9 +12,7 @@ - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License -- along with this program; if not, write to the Free Software -- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, -- USA. -+ along with this program. If not, see <https://www.gnu.org/licenses/>. - */ - - -diff --git a/libmultipath/generic.h b/libmultipath/generic.h -index 7f7fe66..6346ffe 100644 ---- a/libmultipath/generic.h -+++ b/libmultipath/generic.h -@@ -12,9 +12,7 @@ - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License -- along with this program; if not, write to the Free Software -- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, -- USA. -+ along with this program. If not, see <https://www.gnu.org/licenses/>. - */ - #ifndef _GENERIC_H - #define _GENERIC_H -diff --git a/tests/dmevents.c b/tests/dmevents.c -index bba51dc..3399c81 100644 ---- a/tests/dmevents.c -+++ b/tests/dmevents.c -@@ -12,7 +12,7 @@ - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License -- * along with this program; if not, write to the Free Software -+ * along with this program. If not, see <https://www.gnu.org/licenses/>. - * - */ - -diff --git a/tests/parser.c b/tests/parser.c -index a7e7598..29859da 100644 ---- a/tests/parser.c -+++ b/tests/parser.c -@@ -12,7 +12,7 @@ - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License -- * along with this program; if not, write to the Free Software -+ * along with this program. If not, see <https://www.gnu.org/licenses/>. - * - */ - -diff --git a/tests/uevent.c b/tests/uevent.c -index acfcb14..b0d0bfd 100644 ---- a/tests/uevent.c -+++ b/tests/uevent.c -@@ -12,7 +12,7 @@ - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License -- * along with this program; if not, write to the Free Software -+ * along with this program. If not, see <https://www.gnu.org/licenses/>. - * - */ - -diff --git a/tests/util.c b/tests/util.c -index 113b134..839effd 100644 ---- a/tests/util.c -+++ b/tests/util.c -@@ -12,7 +12,7 @@ - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License -- * along with this program; if not, write to the Free Software -+ * along with this program. If not, see <https://www.gnu.org/licenses/>. - * - */ - --- -2.7.4 - diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0005-multipath-tools-Remove-trailing-leading-whitespaces-.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0005-multipath-tools-Remove-trailing-leading-whitespaces-.patch deleted file mode 100644 index 953e739efa..0000000000 --- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0005-multipath-tools-Remove-trailing-leading-whitespaces-.patch +++ /dev/null @@ -1,156 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Xose Vazquez Perez <xose.vazquez@gmail.com> -Date: Fri, 11 May 2018 15:43:11 +0200 -Subject: [PATCH] multipath-tools: Remove trailing/leading whitespaces and - reformat code - -Cc: Christophe Varoqui <christophe.varoqui@opensvc.com> -Cc: device-mapper development <dm-devel@redhat.com> -Signed-off-by: Xose Vazquez Perez <xose.vazquez@gmail.com> -Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com> ---- - Makefile.inc | 23 +++++++++++------------ - kpartx/mac.h | 2 +- - kpartx/test-kpartx | 2 +- - libmpathcmd/Makefile | 2 +- - libmultipath/hwtable.c | 14 +++++++------- - libmultipath/print.h | 2 +- - multipathd/main.h | 6 +++--- - 7 files changed, 25 insertions(+), 26 deletions(-) - -diff --git a/Makefile.inc b/Makefile.inc -index 57a1835..af2f5ba 100644 ---- a/Makefile.inc -+++ b/Makefile.inc -@@ -103,21 +103,20 @@ LDFLAGS = -Wl,-z,relro -Wl,-z,now - BIN_LDFLAGS = -pie - - # Check whether a function with name $1 has been declared in header file $2. --check_func = \ -- $(shell \ -+check_func = $(shell \ - if grep -Eq "^[^[:blank:]]+[[:blank:]]+$1[[:blank:]]*(.*)*" "$2"; then \ -- found=1; \ -- status="yes"; \ -- else \ -- found=0; \ -- status="no"; \ -- fi; \ -- echo 1>&2 "Checking for $1 in $2 ... $$status"; \ -- echo "$$found" \ -- ) -+ found=1; \ -+ status="yes"; \ -+ else \ -+ found=0; \ -+ status="no"; \ -+ fi; \ -+ echo 1>&2 "Checking for $1 in $2 ... $$status"; \ -+ echo "$$found" \ -+ ) - - # Checker whether a file with name $1 exists --check_file = $(shell \ -+check_file = $(shell \ - if [ -f "$1" ]; then \ - found=1; \ - status="yes"; \ -diff --git a/kpartx/mac.h b/kpartx/mac.h -index a44cf38..55c3ec9 100644 ---- a/kpartx/mac.h -+++ b/kpartx/mac.h -@@ -24,7 +24,7 @@ struct mac_driver_desc { - uint16_t signature; /* expected to be MAC_DRIVER_MAGIC */ - uint16_t block_size; - uint32_t block_count; -- /* ... more stuff */ -+ /* ... more stuff */ - }; - - #endif -diff --git a/kpartx/test-kpartx b/kpartx/test-kpartx -index 9cee20f..d2001dc 100755 ---- a/kpartx/test-kpartx -+++ b/kpartx/test-kpartx -@@ -131,7 +131,7 @@ step "create DM devices (spans)" - # They also serve as DM devices to test partition removal on those. - - TABLE="\ --0 $((SIZE/SECTSIZ-OFFS)) linear $DEV1 $OFFS -+0 $((SIZE/SECTSIZ-OFFS)) linear $DEV1 $OFFS - $((SIZE/SECTSIZ-OFFS)) $((SIZE/SECTSIZ-OFFS)) linear $DEV2 $OFFS" - - SPAN1=kpt -diff --git a/libmpathcmd/Makefile b/libmpathcmd/Makefile -index 53c0899..0f6b816 100644 ---- a/libmpathcmd/Makefile -+++ b/libmpathcmd/Makefile -@@ -27,7 +27,7 @@ uninstall: - $(RM) $(DESTDIR)$(includedir)/mpath_cmd.h - - clean: dep_clean -- $(RM) core *.a *.o *.so *.so.* *.gz -+ $(RM) core *.a *.o *.so *.so.* *.gz - - include $(wildcard $(OBJS:.o=.d)) - -diff --git a/libmultipath/hwtable.c b/libmultipath/hwtable.c -index 827e899..2ca6888 100644 ---- a/libmultipath/hwtable.c -+++ b/libmultipath/hwtable.c -@@ -78,13 +78,13 @@ - #endif - - static struct hwentry default_hw[] = { -- /* -- * Generic NVMe -- * -- * Due to the parsing logic in find_hwe(), generic entries -- * have to be put on top of this list, and more specific ones -- * below. -- */ -+ /* -+ * Generic NVMe devices -+ * -+ * Due to the parsing logic in find_hwe(), generic entries -+ * have to be put on top of this list, and more specific ones -+ * below. -+ */ - { - .vendor = "NVME", - .product = ".*", -diff --git a/libmultipath/print.h b/libmultipath/print.h -index 7ba6438..9b5a23a 100644 ---- a/libmultipath/print.h -+++ b/libmultipath/print.h -@@ -113,7 +113,7 @@ int _snprint_multipath (const struct gen_multipath *, char *, int, - const char *, int); - #define snprint_multipath(buf, len, fmt, mp, v) \ - _snprint_multipath(dm_multipath_to_gen(mp), buf, len, fmt, v) --int _snprint_multipath_topology (const struct gen_multipath *, char *, int, -+int _snprint_multipath_topology (const struct gen_multipath *, char *, int, - int verbosity); - #define snprint_multipath_topology(buf, len, mpp, v) \ - _snprint_multipath_topology (dm_multipath_to_gen(mpp), buf, len, v) -diff --git a/multipathd/main.h b/multipathd/main.h -index af39558..8fd426b 100644 ---- a/multipathd/main.h -+++ b/multipathd/main.h -@@ -29,11 +29,11 @@ int ev_remove_map (char *, char *, int, struct vectors *); - int set_config_state(enum daemon_status); - void * mpath_alloc_prin_response(int prin_sa); - int prin_do_scsi_ioctl(char *, int rq_servact, struct prin_resp * resp, -- int noisy); -+ int noisy); - void dumpHex(const char * , int len, int no_ascii); - int prout_do_scsi_ioctl(char * , int rq_servact, int rq_scope, -- unsigned int rq_type, struct prout_param_descriptor *param, -- int noisy); -+ unsigned int rq_type, -+ struct prout_param_descriptor *param, int noisy); - int mpath_pr_event_handle(struct path *pp); - void * mpath_pr_event_handler_fn (void * ); - int update_map_pr(struct multipath *mpp); --- -2.7.4 - diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0006-multipath-tools-fix-compilation-with-musl-libc.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0006-multipath-tools-fix-compilation-with-musl-libc.patch deleted file mode 100644 index c6fd5b4cfb..0000000000 --- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0006-multipath-tools-fix-compilation-with-musl-libc.patch +++ /dev/null @@ -1,58 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Xose Vazquez Perez <xose.vazquez@gmail.com> -Date: Fri, 11 May 2018 18:39:44 +0200 -Subject: [PATCH] multipath-tools: fix compilation with musl libc -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -In file included from alias.c:15: -file.h:9:47: error: unknown type name ‘mode_t’; did you mean ‘time_t’? - int ensure_directories_exist(const char *str, mode_t dir_mode); - ^~~~~~ - time_t - -sysfs.c: In function ‘sysfs_is_multipathed’: -sysfs.c:304:15: error: ‘PATH_MAX’ undeclared (first use in this function); did you mean ‘PATH_UP’? - char pathbuf[PATH_MAX]; - ^~~~~~~~ - PATH_UP - -Cc: Martin Wilck <mwilck@suse.com> -Cc: Christophe Varoqui <christophe.varoqui@opensvc.com> -Cc: DM ML <dm-devel@redhat.com> -Signed-off-by: Xose Vazquez Perez <xose.vazquez@gmail.com> -Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com> ---- - libmultipath/file.h | 2 ++ - libmultipath/sysfs.c | 1 + - 2 files changed, 3 insertions(+) - -diff --git a/libmultipath/file.h b/libmultipath/file.h -index 29520c7..3c75c90 100644 ---- a/libmultipath/file.h -+++ b/libmultipath/file.h -@@ -5,6 +5,8 @@ - #ifndef _FILE_H - #define _FILE_H - -+#include <sys/stat.h> -+ - #define FILE_TIMEOUT 30 - int ensure_directories_exist(const char *str, mode_t dir_mode); - int open_file(const char *file, int *can_write, const char *header); -diff --git a/libmultipath/sysfs.c b/libmultipath/sysfs.c -index ee72e6a..16e0a73 100644 ---- a/libmultipath/sysfs.c -+++ b/libmultipath/sysfs.c -@@ -28,6 +28,7 @@ - #include <dirent.h> - #include <libudev.h> - #include <fnmatch.h> -+#include <limits.h> - - #include "checkers.h" - #include "vector.h" --- -2.7.4 - diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0007-multipath-tools-add-x-to-doc-preclean.pl-and-split-m.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0007-multipath-tools-add-x-to-doc-preclean.pl-and-split-m.patch deleted file mode 100644 index 9e608e16ff..0000000000 --- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0007-multipath-tools-add-x-to-doc-preclean.pl-and-split-m.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Xose Vazquez Perez <xose.vazquez@gmail.com> -Date: Sun, 13 May 2018 00:39:41 +0200 -Subject: [PATCH] multipath-tools: add +x to doc-preclean.pl and split-man.pl - -It is not strictly necessary, but it helps identify bin files. - -Cc: Christophe Varoqui <christophe.varoqui@opensvc.com> -Cc: DM ML <dm-devel@redhat.com> -Signed-off-by: Xose Vazquez Perez <xose.vazquez@gmail.com> -Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com> ---- - libdmmp/docs/doc-preclean.pl | 0 - libdmmp/docs/split-man.pl | 0 - 2 files changed, 0 insertions(+), 0 deletions(-) - mode change 100644 => 100755 libdmmp/docs/doc-preclean.pl - mode change 100644 => 100755 libdmmp/docs/split-man.pl - -diff --git a/libdmmp/docs/doc-preclean.pl b/libdmmp/docs/doc-preclean.pl -old mode 100644 -new mode 100755 -diff --git a/libdmmp/docs/split-man.pl b/libdmmp/docs/split-man.pl -old mode 100644 -new mode 100755 --- -2.7.4 - diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0008-multipath-tools-refresh-kernel-doc-from-kernel-sourc.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0008-multipath-tools-refresh-kernel-doc-from-kernel-sourc.patch deleted file mode 100644 index 3752158704..0000000000 --- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0008-multipath-tools-refresh-kernel-doc-from-kernel-sourc.patch +++ /dev/null @@ -1,784 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Xose Vazquez Perez <xose.vazquez@gmail.com> -Date: Sun, 13 May 2018 00:39:42 +0200 -Subject: [PATCH] multipath-tools: refresh kernel-doc from kernel sources - -Cc: Gris Ge <fge@redhat.com> -Cc: Christophe Varoqui <christophe.varoqui@opensvc.com> -Cc: device-mapper development <dm-devel@redhat.com> -Signed-off-by: Xose Vazquez Perez <xose.vazquez@gmail.com> -Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com> ---- - libdmmp/docs/kernel-doc | 671 ++++++++++++++++++++++++++---------------------- - 1 file changed, 368 insertions(+), 303 deletions(-) - -diff --git a/libdmmp/docs/kernel-doc b/libdmmp/docs/kernel-doc -index fee8952..0057d8e 100755 ---- a/libdmmp/docs/kernel-doc -+++ b/libdmmp/docs/kernel-doc -@@ -1,4 +1,5 @@ - #!/usr/bin/env perl -+# SPDX-License-Identifier: GPL-2.0 - - use warnings; - use strict; -@@ -328,13 +329,15 @@ my $lineprefix=""; - use constant { - STATE_NORMAL => 0, # normal code - STATE_NAME => 1, # looking for function name -- STATE_FIELD => 2, # scanning field start -- STATE_PROTO => 3, # scanning prototype -- STATE_DOCBLOCK => 4, # documentation block -- STATE_INLINE => 5, # gathering documentation outside main block -+ STATE_BODY_MAYBE => 2, # body - or maybe more description -+ STATE_BODY => 3, # the body of the comment -+ STATE_PROTO => 4, # scanning prototype -+ STATE_DOCBLOCK => 5, # documentation block -+ STATE_INLINE => 6, # gathering documentation outside main block - }; - my $state; - my $in_doc_sect; -+my $leading_space; - - # Inline documentation state - use constant { -@@ -363,7 +366,7 @@ my $doc_sect = $doc_com . - my $doc_content = $doc_com_body . '(.*)'; - my $doc_block = $doc_com . 'DOC:\s*(.*)?'; - my $doc_inline_start = '^\s*/\*\*\s*$'; --my $doc_inline_sect = '\s*\*\s*(@[\w\s]+):(.*)'; -+my $doc_inline_sect = '\s*\*\s*(@\s*[\w][\w\.]*\s*):(.*)'; - my $doc_inline_end = '^\s*\*/\s*$'; - my $doc_inline_oneline = '^\s*/\*\*\s*(@[\w\s]+):\s*(.*)\s*\*/\s*$'; - my $export_symbol = '^\s*EXPORT_SYMBOL(_GPL)?\s*\(\s*(\w+)\s*\)\s*;'; -@@ -553,10 +556,9 @@ sub output_highlight { - } - if ($line eq ""){ - if (! $output_preformatted) { -- print $lineprefix, local_unescape($blankline); -+ print $lineprefix, $blankline; - } - } else { -- $line =~ s/\\\\\\/\&/g; - if ($output_mode eq "man" && substr($line, 0, 1) eq ".") { - print "\\&$line"; - } else { -@@ -747,17 +749,73 @@ sub output_blockhead_rst(%) { - } - } - --sub output_highlight_rst { -- my $contents = join "\n",@_; -- my $line; -- -- # undo the evil effects of xml_escape() earlier -- $contents = xml_unescape($contents); -- -+# -+# Apply the RST highlights to a sub-block of text. -+# -+sub highlight_block($) { -+ # The dohighlight kludge requires the text be called $contents -+ my $contents = shift; - eval $dohighlight; - die $@ if $@; -+ return $contents; -+} - -- foreach $line (split "\n", $contents) { -+# -+# Regexes used only here. -+# -+my $sphinx_literal = '^[^.].*::$'; -+my $sphinx_cblock = '^\.\.\ +code-block::'; -+ -+sub output_highlight_rst { -+ my $input = join "\n",@_; -+ my $output = ""; -+ my $line; -+ my $in_literal = 0; -+ my $litprefix; -+ my $block = ""; -+ -+ foreach $line (split "\n",$input) { -+ # -+ # If we're in a literal block, see if we should drop out -+ # of it. Otherwise pass the line straight through unmunged. -+ # -+ if ($in_literal) { -+ if (! ($line =~ /^\s*$/)) { -+ # -+ # If this is the first non-blank line in a literal -+ # block we need to figure out what the proper indent is. -+ # -+ if ($litprefix eq "") { -+ $line =~ /^(\s*)/; -+ $litprefix = '^' . $1; -+ $output .= $line . "\n"; -+ } elsif (! ($line =~ /$litprefix/)) { -+ $in_literal = 0; -+ } else { -+ $output .= $line . "\n"; -+ } -+ } else { -+ $output .= $line . "\n"; -+ } -+ } -+ # -+ # Not in a literal block (or just dropped out) -+ # -+ if (! $in_literal) { -+ $block .= $line . "\n"; -+ if (($line =~ /$sphinx_literal/) || ($line =~ /$sphinx_cblock/)) { -+ $in_literal = 1; -+ $litprefix = ""; -+ $output .= highlight_block($block); -+ $block = "" -+ } -+ } -+ } -+ -+ if ($block) { -+ $output .= highlight_block($block); -+ } -+ foreach $line (split "\n", $output) { - print $lineprefix . $line . "\n"; - } - } -@@ -1062,7 +1120,7 @@ sub dump_struct($$) { - # Handle bitmaps - $arg =~ s/:\s*\d+\s*//g; - # Handle arrays -- $arg =~ s/\[\S+\]//g; -+ $arg =~ s/\[.*\]//g; - # The type may have multiple words, - # and multiple IDs can be defined, like: - # const struct foo, *bar, foobar -@@ -1422,8 +1480,6 @@ sub push_parameter($$$$) { - } - } - -- $param = xml_escape($param); -- - # strip spaces from $param so that it is one continuous string - # on @parameterlist; - # this fixes a problem where check_sections() cannot find -@@ -1522,6 +1578,7 @@ sub dump_function($$) { - $prototype =~ s/__meminit +//; - $prototype =~ s/__must_check +//; - $prototype =~ s/__weak +//; -+ $prototype =~ s/__sched +//; - my $define = $prototype =~ s/^#\s*define\s+//; #ak added - $prototype =~ s/__attribute__\s*\(\( - (?: -@@ -1748,47 +1805,6 @@ sub process_proto_type($$) { - } - } - --# xml_escape: replace <, >, and & in the text stream; --# --# however, formatting controls that are generated internally/locally in the --# kernel-doc script are not escaped here; instead, they begin life like --# $blankline_html (4 of '\' followed by a mnemonic + ':'), then these strings --# are converted to their mnemonic-expected output, without the 4 * '\' & ':', --# just before actual output; (this is done by local_unescape()) --sub xml_escape($) { -- my $text = shift; -- if ($output_mode eq "man") { -- return $text; -- } -- $text =~ s/\&/\\\\\\amp;/g; -- $text =~ s/\</\\\\\\lt;/g; -- $text =~ s/\>/\\\\\\gt;/g; -- return $text; --} -- --# xml_unescape: reverse the effects of xml_escape --sub xml_unescape($) { -- my $text = shift; -- if ($output_mode eq "man") { -- return $text; -- } -- $text =~ s/\\\\\\amp;/\&/g; -- $text =~ s/\\\\\\lt;/</g; -- $text =~ s/\\\\\\gt;/>/g; -- return $text; --} -- --# convert local escape strings to html --# local escape strings look like: '\\\\menmonic:' (that's 4 backslashes) --sub local_unescape($) { -- my $text = shift; -- if ($output_mode eq "man") { -- return $text; -- } -- $text =~ s/\\\\\\\\lt:/</g; -- $text =~ s/\\\\\\\\gt:/>/g; -- return $text; --} - - sub map_filename($) { - my $file; -@@ -1826,15 +1842,291 @@ sub process_export_file($) { - close(IN); - } - --sub process_file($) { -- my $file; -+# -+# Parsers for the various processing states. -+# -+# STATE_NORMAL: looking for the /** to begin everything. -+# -+sub process_normal() { -+ if (/$doc_start/o) { -+ $state = STATE_NAME; # next line is always the function name -+ $in_doc_sect = 0; -+ $declaration_start_line = $. + 1; -+ } -+} -+ -+# -+# STATE_NAME: Looking for the "name - description" line -+# -+sub process_name($$) { -+ my $file = shift; - my $identifier; -- my $func; - my $descr; -- my $in_purpose = 0; -+ -+ if (/$doc_block/o) { -+ $state = STATE_DOCBLOCK; -+ $contents = ""; -+ $new_start_line = $. + 1; -+ -+ if ( $1 eq "" ) { -+ $section = $section_intro; -+ } else { -+ $section = $1; -+ } -+ } -+ elsif (/$doc_decl/o) { -+ $identifier = $1; -+ if (/\s*([\w\s]+?)(\(\))?\s*-/) { -+ $identifier = $1; -+ } -+ -+ $state = STATE_BODY; -+ # if there's no @param blocks need to set up default section -+ # here -+ $contents = ""; -+ $section = $section_default; -+ $new_start_line = $. + 1; -+ if (/-(.*)/) { -+ # strip leading/trailing/multiple spaces -+ $descr= $1; -+ $descr =~ s/^\s*//; -+ $descr =~ s/\s*$//; -+ $descr =~ s/\s+/ /g; -+ $declaration_purpose = $descr; -+ $state = STATE_BODY_MAYBE; -+ } else { -+ $declaration_purpose = ""; -+ } -+ -+ if (($declaration_purpose eq "") && $verbose) { -+ print STDERR "${file}:$.: warning: missing initial short description on line:\n"; -+ print STDERR $_; -+ ++$warnings; -+ } -+ -+ if ($identifier =~ m/^struct/) { -+ $decl_type = 'struct'; -+ } elsif ($identifier =~ m/^union/) { -+ $decl_type = 'union'; -+ } elsif ($identifier =~ m/^enum/) { -+ $decl_type = 'enum'; -+ } elsif ($identifier =~ m/^typedef/) { -+ $decl_type = 'typedef'; -+ } else { -+ $decl_type = 'function'; -+ } -+ -+ if ($verbose) { -+ print STDERR "${file}:$.: info: Scanning doc for $identifier\n"; -+ } -+ } else { -+ print STDERR "${file}:$.: warning: Cannot understand $_ on line $.", -+ " - I thought it was a doc line\n"; -+ ++$warnings; -+ $state = STATE_NORMAL; -+ } -+} -+ -+ -+# -+# STATE_BODY and STATE_BODY_MAYBE: the bulk of a kerneldoc comment. -+# -+sub process_body($$) { -+ my $file = shift; -+ -+ if (/$doc_sect/i) { # case insensitive for supported section names -+ $newsection = $1; -+ $newcontents = $2; -+ -+ # map the supported section names to the canonical names -+ if ($newsection =~ m/^description$/i) { -+ $newsection = $section_default; -+ } elsif ($newsection =~ m/^context$/i) { -+ $newsection = $section_context; -+ } elsif ($newsection =~ m/^returns?$/i) { -+ $newsection = $section_return; -+ } elsif ($newsection =~ m/^\@return$/) { -+ # special: @return is a section, not a param description -+ $newsection = $section_return; -+ } -+ -+ if (($contents ne "") && ($contents ne "\n")) { -+ if (!$in_doc_sect && $verbose) { -+ print STDERR "${file}:$.: warning: contents before sections\n"; -+ ++$warnings; -+ } -+ dump_section($file, $section, $contents); -+ $section = $section_default; -+ } -+ -+ $in_doc_sect = 1; -+ $state = STATE_BODY; -+ $contents = $newcontents; -+ $new_start_line = $.; -+ while (substr($contents, 0, 1) eq " ") { -+ $contents = substr($contents, 1); -+ } -+ if ($contents ne "") { -+ $contents .= "\n"; -+ } -+ $section = $newsection; -+ $leading_space = undef; -+ } elsif (/$doc_end/) { -+ if (($contents ne "") && ($contents ne "\n")) { -+ dump_section($file, $section, $contents); -+ $section = $section_default; -+ $contents = ""; -+ } -+ # look for doc_com + <text> + doc_end: -+ if ($_ =~ m'\s*\*\s*[a-zA-Z_0-9:\.]+\*/') { -+ print STDERR "${file}:$.: warning: suspicious ending line: $_"; -+ ++$warnings; -+ } -+ -+ $prototype = ""; -+ $state = STATE_PROTO; -+ $brcount = 0; -+ } elsif (/$doc_content/) { -+ # miguel-style comment kludge, look for blank lines after -+ # @parameter line to signify start of description -+ if ($1 eq "") { -+ if ($section =~ m/^@/ || $section eq $section_context) { -+ dump_section($file, $section, $contents); -+ $section = $section_default; -+ $contents = ""; -+ $new_start_line = $.; -+ } else { -+ $contents .= "\n"; -+ } -+ $state = STATE_BODY; -+ } elsif ($state == STATE_BODY_MAYBE) { -+ # Continued declaration purpose -+ chomp($declaration_purpose); -+ $declaration_purpose .= " " . $1; -+ $declaration_purpose =~ s/\s+/ /g; -+ } else { -+ my $cont = $1; -+ if ($section =~ m/^@/ || $section eq $section_context) { -+ if (!defined $leading_space) { -+ if ($cont =~ m/^(\s+)/) { -+ $leading_space = $1; -+ } else { -+ $leading_space = ""; -+ } -+ } -+ $cont =~ s/^$leading_space//; -+ } -+ $contents .= $cont . "\n"; -+ } -+ } else { -+ # i dont know - bad line? ignore. -+ print STDERR "${file}:$.: warning: bad line: $_"; -+ ++$warnings; -+ } -+} -+ -+ -+# -+# STATE_PROTO: reading a function/whatever prototype. -+# -+sub process_proto($$) { -+ my $file = shift; -+ -+ if (/$doc_inline_oneline/) { -+ $section = $1; -+ $contents = $2; -+ if ($contents ne "") { -+ $contents .= "\n"; -+ dump_section($file, $section, $contents); -+ $section = $section_default; -+ $contents = ""; -+ } -+ } elsif (/$doc_inline_start/) { -+ $state = STATE_INLINE; -+ $inline_doc_state = STATE_INLINE_NAME; -+ } elsif ($decl_type eq 'function') { -+ process_proto_function($_, $file); -+ } else { -+ process_proto_type($_, $file); -+ } -+} -+ -+# -+# STATE_DOCBLOCK: within a DOC: block. -+# -+sub process_docblock($$) { -+ my $file = shift; -+ -+ if (/$doc_end/) { -+ dump_doc_section($file, $section, $contents); -+ $section = $section_default; -+ $contents = ""; -+ $function = ""; -+ %parameterdescs = (); -+ %parametertypes = (); -+ @parameterlist = (); -+ %sections = (); -+ @sectionlist = (); -+ $prototype = ""; -+ $state = STATE_NORMAL; -+ } elsif (/$doc_content/) { -+ if ( $1 eq "" ) { -+ $contents .= $blankline; -+ } else { -+ $contents .= $1 . "\n"; -+ } -+ } -+} -+ -+# -+# STATE_INLINE: docbook comments within a prototype. -+# -+sub process_inline($$) { -+ my $file = shift; -+ -+ # First line (state 1) needs to be a @parameter -+ if ($inline_doc_state == STATE_INLINE_NAME && /$doc_inline_sect/o) { -+ $section = $1; -+ $contents = $2; -+ $new_start_line = $.; -+ if ($contents ne "") { -+ while (substr($contents, 0, 1) eq " ") { -+ $contents = substr($contents, 1); -+ } -+ $contents .= "\n"; -+ } -+ $inline_doc_state = STATE_INLINE_TEXT; -+ # Documentation block end */ -+ } elsif (/$doc_inline_end/) { -+ if (($contents ne "") && ($contents ne "\n")) { -+ dump_section($file, $section, $contents); -+ $section = $section_default; -+ $contents = ""; -+ } -+ $state = STATE_PROTO; -+ $inline_doc_state = STATE_INLINE_NA; -+ # Regular text -+ } elsif (/$doc_content/) { -+ if ($inline_doc_state == STATE_INLINE_TEXT) { -+ $contents .= $1 . "\n"; -+ # nuke leading blank lines -+ if ($contents =~ /^\s*$/) { -+ $contents = ""; -+ } -+ } elsif ($inline_doc_state == STATE_INLINE_NAME) { -+ $inline_doc_state = STATE_INLINE_ERROR; -+ print STDERR "${file}:$.: warning: "; -+ print STDERR "Incorrect use of kernel-doc format: $_"; -+ ++$warnings; -+ } -+ } -+} -+ -+ -+sub process_file($) { -+ my $file; - my $initial_section_counter = $section_counter; - my ($orig_file) = @_; -- my $leading_space; - - $file = map_filename($orig_file); - -@@ -1853,250 +2145,23 @@ sub process_file($) { - } - # Replace tabs by spaces - while ($_ =~ s/\t+/' ' x (length($&) * 8 - length($`) % 8)/e) {}; -+ # Hand this line to the appropriate state handler - if ($state == STATE_NORMAL) { -- if (/$doc_start/o) { -- $state = STATE_NAME; # next line is always the function name -- $in_doc_sect = 0; -- $declaration_start_line = $. + 1; -- } -- } elsif ($state == STATE_NAME) {# this line is the function name (always) -- if (/$doc_block/o) { -- $state = STATE_DOCBLOCK; -- $contents = ""; -- $new_start_line = $. + 1; -- -- if ( $1 eq "" ) { -- $section = $section_intro; -- } else { -- $section = $1; -- } -- } -- elsif (/$doc_decl/o) { -- $identifier = $1; -- if (/\s*([\w\s]+?)\s*-/) { -- $identifier = $1; -- } -- -- $state = STATE_FIELD; -- # if there's no @param blocks need to set up default section -- # here -- $contents = ""; -- $section = $section_default; -- $new_start_line = $. + 1; -- if (/-(.*)/) { -- # strip leading/trailing/multiple spaces -- $descr= $1; -- $descr =~ s/^\s*//; -- $descr =~ s/\s*$//; -- $descr =~ s/\s+/ /g; -- $declaration_purpose = xml_escape($descr); -- $in_purpose = 1; -- } else { -- $declaration_purpose = ""; -- } -- -- if (($declaration_purpose eq "") && $verbose) { -- print STDERR "${file}:$.: warning: missing initial short description on line:\n"; -- print STDERR $_; -- ++$warnings; -- } -- -- if ($identifier =~ m/^struct/) { -- $decl_type = 'struct'; -- } elsif ($identifier =~ m/^union/) { -- $decl_type = 'union'; -- } elsif ($identifier =~ m/^enum/) { -- $decl_type = 'enum'; -- } elsif ($identifier =~ m/^typedef/) { -- $decl_type = 'typedef'; -- } else { -- $decl_type = 'function'; -- } -- -- if ($verbose) { -- print STDERR "${file}:$.: info: Scanning doc for $identifier\n"; -- } -- } else { -- print STDERR "${file}:$.: warning: Cannot understand $_ on line $.", -- " - I thought it was a doc line\n"; -- ++$warnings; -- $state = STATE_NORMAL; -- } -- } elsif ($state == STATE_FIELD) { # look for head: lines, and include content -- if (/$doc_sect/i) { # case insensitive for supported section names -- $newsection = $1; -- $newcontents = $2; -- -- # map the supported section names to the canonical names -- if ($newsection =~ m/^description$/i) { -- $newsection = $section_default; -- } elsif ($newsection =~ m/^context$/i) { -- $newsection = $section_context; -- } elsif ($newsection =~ m/^returns?$/i) { -- $newsection = $section_return; -- } elsif ($newsection =~ m/^\@return$/) { -- # special: @return is a section, not a param description -- $newsection = $section_return; -- } -- -- if (($contents ne "") && ($contents ne "\n")) { -- if (!$in_doc_sect && $verbose) { -- print STDERR "${file}:$.: warning: contents before sections\n"; -- ++$warnings; -- } -- dump_section($file, $section, xml_escape($contents)); -- $section = $section_default; -- } -- -- $in_doc_sect = 1; -- $in_purpose = 0; -- $contents = $newcontents; -- $new_start_line = $.; -- while (substr($contents, 0, 1) eq " ") { -- $contents = substr($contents, 1); -- } -- if ($contents ne "") { -- $contents .= "\n"; -- } -- $section = $newsection; -- $leading_space = undef; -- } elsif (/$doc_end/) { -- if (($contents ne "") && ($contents ne "\n")) { -- dump_section($file, $section, xml_escape($contents)); -- $section = $section_default; -- $contents = ""; -- } -- # look for doc_com + <text> + doc_end: -- if ($_ =~ m'\s*\*\s*[a-zA-Z_0-9:\.]+\*/') { -- print STDERR "${file}:$.: warning: suspicious ending line: $_"; -- ++$warnings; -- } -- -- $prototype = ""; -- $state = STATE_PROTO; -- $brcount = 0; --# print STDERR "end of doc comment, looking for prototype\n"; -- } elsif (/$doc_content/) { -- # miguel-style comment kludge, look for blank lines after -- # @parameter line to signify start of description -- if ($1 eq "") { -- if ($section =~ m/^@/ || $section eq $section_context) { -- dump_section($file, $section, xml_escape($contents)); -- $section = $section_default; -- $contents = ""; -- $new_start_line = $.; -- } else { -- $contents .= "\n"; -- } -- $in_purpose = 0; -- } elsif ($in_purpose == 1) { -- # Continued declaration purpose -- chomp($declaration_purpose); -- $declaration_purpose .= " " . xml_escape($1); -- $declaration_purpose =~ s/\s+/ /g; -- } else { -- my $cont = $1; -- if ($section =~ m/^@/ || $section eq $section_context) { -- if (!defined $leading_space) { -- if ($cont =~ m/^(\s+)/) { -- $leading_space = $1; -- } else { -- $leading_space = ""; -- } -- } -- -- $cont =~ s/^$leading_space//; -- } -- $contents .= $cont . "\n"; -- } -- } else { -- # i dont know - bad line? ignore. -- print STDERR "${file}:$.: warning: bad line: $_"; -- ++$warnings; -- } -+ process_normal(); -+ } elsif ($state == STATE_NAME) { -+ process_name($file, $_); -+ } elsif ($state == STATE_BODY || $state == STATE_BODY_MAYBE) { -+ process_body($file, $_); - } elsif ($state == STATE_INLINE) { # scanning for inline parameters -- # First line (state 1) needs to be a @parameter -- if ($inline_doc_state == STATE_INLINE_NAME && /$doc_inline_sect/o) { -- $section = $1; -- $contents = $2; -- $new_start_line = $.; -- if ($contents ne "") { -- while (substr($contents, 0, 1) eq " ") { -- $contents = substr($contents, 1); -- } -- $contents .= "\n"; -- } -- $inline_doc_state = STATE_INLINE_TEXT; -- # Documentation block end */ -- } elsif (/$doc_inline_end/) { -- if (($contents ne "") && ($contents ne "\n")) { -- dump_section($file, $section, xml_escape($contents)); -- $section = $section_default; -- $contents = ""; -- } -- $state = STATE_PROTO; -- $inline_doc_state = STATE_INLINE_NA; -- # Regular text -- } elsif (/$doc_content/) { -- if ($inline_doc_state == STATE_INLINE_TEXT) { -- $contents .= $1 . "\n"; -- # nuke leading blank lines -- if ($contents =~ /^\s*$/) { -- $contents = ""; -- } -- } elsif ($inline_doc_state == STATE_INLINE_NAME) { -- $inline_doc_state = STATE_INLINE_ERROR; -- print STDERR "${file}:$.: warning: "; -- print STDERR "Incorrect use of kernel-doc format: $_"; -- ++$warnings; -- } -- } -- } elsif ($state == STATE_PROTO) { # scanning for function '{' (end of prototype) -- if (/$doc_inline_oneline/) { -- $section = $1; -- $contents = $2; -- if ($contents ne "") { -- $contents .= "\n"; -- dump_section($file, $section, xml_escape($contents)); -- $section = $section_default; -- $contents = ""; -- } -- } elsif (/$doc_inline_start/) { -- $state = STATE_INLINE; -- $inline_doc_state = STATE_INLINE_NAME; -- } elsif ($decl_type eq 'function') { -- process_proto_function($_, $file); -- } else { -- process_proto_type($_, $file); -- } -+ process_inline($file, $_); -+ } elsif ($state == STATE_PROTO) { -+ process_proto($file, $_); - } elsif ($state == STATE_DOCBLOCK) { -- if (/$doc_end/) -- { -- dump_doc_section($file, $section, xml_escape($contents)); -- $section = $section_default; -- $contents = ""; -- $function = ""; -- %parameterdescs = (); -- %parametertypes = (); -- @parameterlist = (); -- %sections = (); -- @sectionlist = (); -- $prototype = ""; -- $state = STATE_NORMAL; -- } -- elsif (/$doc_content/) -- { -- if ( $1 eq "" ) -- { -- $contents .= $blankline; -- } -- else -- { -- $contents .= $1 . "\n"; -- } -- } -+ process_docblock($file, $_); - } - } -+ -+ # Make sure we got something interesting. - if ($initial_section_counter == $section_counter) { - if ($output_mode ne "none") { - print STDERR "${file}:1: warning: no structured comments found\n"; --- -2.7.4 - diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0009-multipath-tools-configure-hitachi-ams2000-and-hus100.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0009-multipath-tools-configure-hitachi-ams2000-and-hus100.patch deleted file mode 100644 index 2cae0750ba..0000000000 --- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0009-multipath-tools-configure-hitachi-ams2000-and-hus100.patch +++ /dev/null @@ -1,56 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Xose Vazquez Perez <xose.vazquez@gmail.com> -Date: Mon, 14 May 2018 17:30:17 +0200 -Subject: [PATCH] multipath-tools: configure hitachi ams2000 and hus100 as full - active arrays - -AMS2000 and HUS100 families are active/active arrays. - -Based on https://support.hitachivantara.com/download/epcra/df818913.pdf -and internal hitachi docs. - -Cc: Matthias Rudolph <Matthias.Rudolph@hitachivantara.com> -Cc: Christophe Varoqui <christophe.varoqui@opensvc.com> -Cc: DM-DEV ML <dm-devel@redhat.com> -Signed-off-by: Xose Vazquez Perez <xose.vazquez@gmail.com> -Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com> ---- - libmultipath/hwtable.c | 10 ++++++++-- - 1 file changed, 8 insertions(+), 2 deletions(-) - -diff --git a/libmultipath/hwtable.c b/libmultipath/hwtable.c -index 2ca6888..148f0ba 100644 ---- a/libmultipath/hwtable.c -+++ b/libmultipath/hwtable.c -@@ -398,13 +398,13 @@ static struct hwentry default_hw[] = { - * Mail : matthias.rudolph@hds.com - */ - { -- /* USP-V, HUS VM, VSP, VSP G1X00 and VSP GX00 families */ -+ /* USP-V, HUS VM, VSP, VSP G1X00 and VSP GX00 families / HP XP */ - .vendor = "(HITACHI|HP)", - .product = "^OPEN-", - .pgpolicy = MULTIBUS, - }, - { -- /* AMS 2000 and HUS 100 families */ -+ /* AMS other than AMS 2000 */ - .vendor = "HITACHI", - .product = "^DF", - .no_path_retry = NO_PATH_RETRY_QUEUE, -@@ -412,6 +412,12 @@ static struct hwentry default_hw[] = { - .pgfailback = -FAILBACK_IMMEDIATE, - .prio_name = PRIO_HDS, - }, -+ { -+ /* AMS 2000 and HUS 100 families */ -+ .vendor = "HITACHI", -+ .product = "^DF600F", -+ .pgpolicy = MULTIBUS, -+ }, - /* - * IBM - * --- -2.7.4 - diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0010-libmultipath-don-t-reject-maps-with-undefined-prio.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0010-libmultipath-don-t-reject-maps-with-undefined-prio.patch deleted file mode 100644 index 2dda2edae5..0000000000 --- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0010-libmultipath-don-t-reject-maps-with-undefined-prio.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Martin Wilck <mwilck@suse.com> -Date: Wed, 21 Mar 2018 10:34:18 +0100 -Subject: [PATCH] libmultipath: don't reject maps with undefined prio - -libmultipath's prio routines can deal with pp->priority == PRIO_UNDEF -just fine. PRIO_UNDEF is just a very low priority. So there's -no reason to reject setting up a multipath map because paths have -undefined priority. - -Signed-off-by: Martin Wilck <mwilck@suse.com> -Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com> ---- - libmultipath/configure.c | 5 ----- - 1 file changed, 5 deletions(-) - -diff --git a/libmultipath/configure.c b/libmultipath/configure.c -index 5796683..5c54f9b 100644 ---- a/libmultipath/configure.c -+++ b/libmultipath/configure.c -@@ -1063,9 +1063,6 @@ int coalesce_paths (struct vectors * vecs, vector newmp, char * refwwid, - continue; - } - -- if (pp1->priority == PRIO_UNDEF) -- mpp->action = ACT_REJECT; -- - if (!mpp->paths) { - condlog(0, "%s: skip coalesce (no paths)", mpp->alias); - remove_map(mpp, vecs, 0); -@@ -1091,8 +1088,6 @@ int coalesce_paths (struct vectors * vecs, vector newmp, char * refwwid, - mpp->size); - mpp->action = ACT_REJECT; - } -- if (pp2->priority == PRIO_UNDEF) -- mpp->action = ACT_REJECT; - } - verify_paths(mpp, vecs); - --- -2.7.4 - diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0011-multipathd-handle-errors-in-uxlsnr-as-fatal.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0011-multipathd-handle-errors-in-uxlsnr-as-fatal.patch deleted file mode 100644 index 96a814ff8b..0000000000 --- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0011-multipathd-handle-errors-in-uxlsnr-as-fatal.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Martin Wilck <mwilck@suse.com> -Date: Wed, 21 Mar 2018 10:34:19 +0100 -Subject: [PATCH] multipathd: handle errors in uxlsnr as fatal - -The ppoll() calls of the uxlsnr thread are vital for proper functioning of -multipathd. If the uxlsnr thread can't open the socket or fails to call ppoll() -for other reasons, quit the daemon. If we don't do that, multipathd may -hang in a state where it can't be terminated any more, because the uxlsnr -thread is responsible for handling all signals. This happens e.g. if -systemd's multipathd.socket is running in and multipathd is started from -outside systemd. - -24f2844 "multipathd: fix signal blocking logic" has made this problem more -severe. Before that patch, the signals weren't actually blocked in any thread. -That's not to say 24f2844 was wrong. I still think it's correct, we just -need this one on top. - -Signed-off-by: Martin Wilck <mwilck@suse.com> -Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com> ---- - multipathd/uxlsnr.c | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/multipathd/uxlsnr.c b/multipathd/uxlsnr.c -index cdafd82..6f66666 100644 ---- a/multipathd/uxlsnr.c -+++ b/multipathd/uxlsnr.c -@@ -178,7 +178,7 @@ void * uxsock_listen(uxsock_trigger_fn uxsock_trigger, void * trigger_data) - - if (ux_sock == -1) { - condlog(1, "could not create uxsock: %d", errno); -- return NULL; -+ exit_daemon(); - } - - pthread_cleanup_push(uxsock_cleanup, (void *)ux_sock); -@@ -187,7 +187,7 @@ void * uxsock_listen(uxsock_trigger_fn uxsock_trigger, void * trigger_data) - polls = (struct pollfd *)MALLOC((MIN_POLLS + 1) * sizeof(struct pollfd)); - if (!polls) { - condlog(0, "uxsock: failed to allocate poll fds"); -- return NULL; -+ exit_daemon(); - } - sigfillset(&mask); - sigdelset(&mask, SIGINT); -@@ -249,6 +249,7 @@ void * uxsock_listen(uxsock_trigger_fn uxsock_trigger, void * trigger_data) - - /* something went badly wrong! */ - condlog(0, "uxsock: poll failed with %d", errno); -+ exit_daemon(); - break; - } - --- -2.7.4 - diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0012-libmultipath-fix-error-parsing-find_multipaths-stric.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0012-libmultipath-fix-error-parsing-find_multipaths-stric.patch deleted file mode 100644 index 8ce2431d60..0000000000 --- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0012-libmultipath-fix-error-parsing-find_multipaths-stric.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Martin Wilck <mwilck@suse.com> -Date: Tue, 15 May 2018 14:32:44 +0200 -Subject: [PATCH] libmultipath: fix error parsing "find_multipaths strict" - -If "find_multipaths strict" is set in multipath.conf, the error message -"illegal value for find_multipaths: strict" is printed. This causes no -functional problem, as "strict" happens to be the default, fallback -value. It should be fixed nonetheless. FIND_MULTIPATHS_STRICT, having -the highest numeric value, must be last in the enum. - -Fixes: c36f2f42 "libmultipath: change find_multipaths option to multi-value" -Signed-off-by: Martin Wilck <mwilck@suse.com> -Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com> ---- - libmultipath/structs.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/libmultipath/structs.h b/libmultipath/structs.h -index eb6a178..e424b15 100644 ---- a/libmultipath/structs.h -+++ b/libmultipath/structs.h -@@ -122,9 +122,9 @@ enum find_multipaths_states { - FIND_MULTIPATHS_UNDEF = YNU_UNDEF, - FIND_MULTIPATHS_OFF = YNU_NO, - FIND_MULTIPATHS_ON = _FIND_MULTIPATHS_F, -- FIND_MULTIPATHS_STRICT = _FIND_MULTIPATHS_F|_FIND_MULTIPATHS_N, - FIND_MULTIPATHS_GREEDY = _FIND_MULTIPATHS_I, - FIND_MULTIPATHS_SMART = _FIND_MULTIPATHS_F|_FIND_MULTIPATHS_I, -+ FIND_MULTIPATHS_STRICT = _FIND_MULTIPATHS_F|_FIND_MULTIPATHS_N, - __FIND_MULTIPATHS_LAST, - }; - --- -2.7.4 - diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0013-libmultipath-print-correct-default-for-delay_-_check.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0013-libmultipath-print-correct-default-for-delay_-_check.patch deleted file mode 100644 index c767804d1a..0000000000 --- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0013-libmultipath-print-correct-default-for-delay_-_check.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Benjamin Marzinski <bmarzins@redhat.com> -Date: Mon, 7 May 2018 17:16:05 -0500 -Subject: [PATCH] libmultipath: print correct default for delay_*_checks - -These options default to "no", so they should display that when the -config is printed. - -Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com> ---- - libmultipath/dict.c | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - -diff --git a/libmultipath/dict.c b/libmultipath/dict.c -index 4040611..3e7c5d6 100644 ---- a/libmultipath/dict.c -+++ b/libmultipath/dict.c -@@ -1115,7 +1115,8 @@ print_off_int_undef(char * buff, int len, long v) - } - - declare_def_handler(delay_watch_checks, set_off_int_undef) --declare_def_snprint(delay_watch_checks, print_off_int_undef) -+declare_def_snprint_defint(delay_watch_checks, print_off_int_undef, -+ DEFAULT_DELAY_CHECKS) - declare_ovr_handler(delay_watch_checks, set_off_int_undef) - declare_ovr_snprint(delay_watch_checks, print_off_int_undef) - declare_hw_handler(delay_watch_checks, set_off_int_undef) -@@ -1123,7 +1124,8 @@ declare_hw_snprint(delay_watch_checks, print_off_int_undef) - declare_mp_handler(delay_watch_checks, set_off_int_undef) - declare_mp_snprint(delay_watch_checks, print_off_int_undef) - declare_def_handler(delay_wait_checks, set_off_int_undef) --declare_def_snprint(delay_wait_checks, print_off_int_undef) -+declare_def_snprint_defint(delay_wait_checks, print_off_int_undef, -+ DEFAULT_DELAY_CHECKS) - declare_ovr_handler(delay_wait_checks, set_off_int_undef) - declare_ovr_snprint(delay_wait_checks, print_off_int_undef) - declare_hw_handler(delay_wait_checks, set_off_int_undef) --- -2.7.4 - diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0014-multipath.conf.5-clarify-property-whitelist-handling.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0014-multipath.conf.5-clarify-property-whitelist-handling.patch deleted file mode 100644 index 0ab4e06733..0000000000 --- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0014-multipath.conf.5-clarify-property-whitelist-handling.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Benjamin Marzinski <bmarzins@redhat.com> -Date: Wed, 9 May 2018 14:32:59 -0500 -Subject: [PATCH] multipath.conf.5: clarify property whitelist handling - -Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com> ---- - multipath/multipath.conf.5 | 7 +++---- - 1 file changed, 3 insertions(+), 4 deletions(-) - -diff --git a/multipath/multipath.conf.5 b/multipath/multipath.conf.5 -index f689795..96d1b66 100644 ---- a/multipath/multipath.conf.5 -+++ b/multipath/multipath.conf.5 -@@ -1181,10 +1181,9 @@ and - keywords. For a full description of these keywords please see the \fIdevices\fR - section description. - .LP --The \fIproperty\fR blacklist and whitelist handling is different from the usual --handling in the sense that the whitelist \fIhas\fR to be set, otherwise the --device will be blacklisted. In these cases the message \fIblacklisted, udev --property missing\fR will be displayed. -+The \fIproperty\fR whitelist handling is different from the usual -+handling in the sense that the device \fIhas\fR to have a udev property that -+matches the whitelist, otherwise the device will be blacklisted. In these cases the message \fIblacklisted, udev property missing\fR will be displayed. - . - . - .\" ---------------------------------------------------------------------------- --- -2.7.4 - diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0015-mpathpersist-add-all_tg_pt-option.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0015-mpathpersist-add-all_tg_pt-option.patch deleted file mode 100644 index be2681d70e..0000000000 --- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0015-mpathpersist-add-all_tg_pt-option.patch +++ /dev/null @@ -1,317 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Benjamin Marzinski <bmarzins@redhat.com> -Date: Thu, 31 May 2018 17:47:11 -0500 -Subject: [PATCH] mpathpersist: add all_tg_pt option - -Some arrays, such as the EMC VNX, don't follow the scsi persistent -reservations spec in making key registrations per I_T NEXUS. Instead, -the registration is shared by all target ports connected to a given -host. This causes mpathpersist to fail whenever it tries to register a -key, since it will receive a registration conflict on some of the paths. - -To deal with this, mpathpersist needs to track the hosts that it has -done a registration on, and only register once per host. The new -"all_tg_pt" multipath.conf option is used to set which arrays need this -feature. I currently don't know if all EMC VNX arrays handle persistent -reservations like this, or if it is configurable. A future patch will -update the VNX built-in config, if this is indeed their default (or -only) setting. - -Multipathd doesn't need to worry about this. It is often the case that -when a path device comes back, it will still have the keys registered to -it. Because of this, multipathd uses register-and-ignore, which means -that it won't cause an error if the registration has already happened -down a different target port. - -Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com> ---- - libmpathpersist/mpath_persist.c | 28 ++++++++++++++++++++++------ - libmultipath/config.c | 2 ++ - libmultipath/config.h | 2 ++ - libmultipath/defaults.h | 1 + - libmultipath/dict.c | 10 ++++++++++ - libmultipath/propsel.c | 15 +++++++++++++++ - libmultipath/propsel.h | 1 + - libmultipath/structs.h | 7 +++++++ - multipath/multipath.conf.5 | 11 +++++++++++ - 9 files changed, 71 insertions(+), 6 deletions(-) - -diff --git a/libmpathpersist/mpath_persist.c b/libmpathpersist/mpath_persist.c -index 907a17c..ca91c55 100644 ---- a/libmpathpersist/mpath_persist.c -+++ b/libmpathpersist/mpath_persist.c -@@ -335,6 +335,7 @@ int mpath_persistent_reserve_out ( int fd, int rq_servact, int rq_scope, - - conf = get_multipath_config(); - select_reservation_key(conf, mpp); -+ select_all_tg_pt(conf, mpp); - put_multipath_config(conf); - - memcpy(&prkey, paramp->sa_key, 8); -@@ -456,7 +457,7 @@ int mpath_prout_reg(struct multipath *mpp,int rq_servact, int rq_scope, - unsigned int rq_type, struct prout_param_descriptor * paramp, int noisy) - { - -- int i, j; -+ int i, j, k; - struct pathgroup *pgp = NULL; - struct path *pp = NULL; - int rollback = 0; -@@ -481,11 +482,13 @@ int mpath_prout_reg(struct multipath *mpp,int rq_servact, int rq_scope, - } - - struct threadinfo thread[active_pathcount]; -+ int hosts[active_pathcount]; - - memset(thread, 0, sizeof(thread)); - - /* init thread parameter */ - for (i =0; i< active_pathcount; i++){ -+ hosts[i] = -1; - thread[i].param.rq_servact = rq_servact; - thread[i].param.rq_scope = rq_scope; - thread[i].param.rq_type = rq_type; -@@ -514,6 +517,17 @@ int mpath_prout_reg(struct multipath *mpp,int rq_servact, int rq_scope, - condlog (1, "%s: %s path not up. Skip.", mpp->wwid, pp->dev); - continue; - } -+ if (mpp->all_tg_pt == ALL_TG_PT_ON && -+ pp->sg_id.host_no != -1) { -+ for (k = 0; k < count; k++) { -+ if (pp->sg_id.host_no == hosts[k]) { -+ condlog(3, "%s: %s host %d matches skip.", pp->wwid, pp->dev, pp->sg_id.host_no); -+ break; -+ } -+ } -+ if (k < count) -+ continue; -+ } - strncpy(thread[count].param.dev, pp->dev, - FILE_NAME_SIZE - 1); - -@@ -531,10 +545,12 @@ int mpath_prout_reg(struct multipath *mpp,int rq_servact, int rq_scope, - condlog (0, "%s: failed to create thread %d", mpp->wwid, rc); - thread[count].param.status = MPATH_PR_THREAD_ERROR; - } -+ else -+ hosts[count] = pp->sg_id.host_no; - count = count + 1; - } - } -- for( i=0; i < active_pathcount ; i++){ -+ for( i=0; i < count ; i++){ - if (thread[i].param.status != MPATH_PR_THREAD_ERROR) { - rc = pthread_join(thread[i].id, NULL); - if (rc){ -@@ -557,7 +573,7 @@ int mpath_prout_reg(struct multipath *mpp,int rq_servact, int rq_scope, - } - if (rollback && ((rq_servact == MPATH_PROUT_REG_SA) && sa_key != 0 )){ - condlog (3, "%s: ERROR: initiating pr out rollback", mpp->wwid); -- for( i=0 ; i < active_pathcount ; i++){ -+ for( i=0 ; i < count ; i++){ - if(thread[i].param.status == MPATH_PR_SUCCESS) { - memcpy(&thread[i].param.paramp->key, &thread[i].param.paramp->sa_key, 8); - memset(&thread[i].param.paramp->sa_key, 0, 8); -@@ -571,7 +587,7 @@ int mpath_prout_reg(struct multipath *mpp,int rq_servact, int rq_scope, - } else - thread[i].param.status = MPATH_PR_SKIP; - } -- for(i=0; i < active_pathcount ; i++){ -+ for(i=0; i < count ; i++){ - if (thread[i].param.status != MPATH_PR_SKIP && - thread[i].param.status != MPATH_PR_THREAD_ERROR) { - rc = pthread_join(thread[i].id, NULL); -@@ -720,7 +736,7 @@ int mpath_prout_rel(struct multipath *mpp,int rq_servact, int rq_scope, - } - } - pthread_attr_destroy (&attr); -- for (i = 0; i < active_pathcount; i++){ -+ for (i = 0; i < count; i++){ - if (thread[i].param.status != MPATH_PR_THREAD_ERROR) { - rc = pthread_join (thread[i].id, NULL); - if (rc){ -@@ -729,7 +745,7 @@ int mpath_prout_rel(struct multipath *mpp,int rq_servact, int rq_scope, - } - } - -- for (i = 0; i < active_pathcount; i++){ -+ for (i = 0; i < count; i++){ - /* check thread status here and return the status */ - - if (thread[i].param.status == MPATH_PR_RESERV_CONFLICT) -diff --git a/libmultipath/config.c b/libmultipath/config.c -index 085a3e1..5872927 100644 ---- a/libmultipath/config.c -+++ b/libmultipath/config.c -@@ -352,6 +352,7 @@ merge_hwe (struct hwentry * dst, struct hwentry * src) - merge_num(skip_kpartx); - merge_num(max_sectors_kb); - merge_num(ghost_delay); -+ merge_num(all_tg_pt); - - snprintf(id, sizeof(id), "%s/%s", dst->vendor, dst->product); - reconcile_features_with_options(id, &dst->features, -@@ -622,6 +623,7 @@ load_config (char * file) - conf->disable_changed_wwids = DEFAULT_DISABLE_CHANGED_WWIDS; - conf->remove_retries = 0; - conf->ghost_delay = DEFAULT_GHOST_DELAY; -+ conf->all_tg_pt = DEFAULT_ALL_TG_PT; - - /* - * preload default hwtable -diff --git a/libmultipath/config.h b/libmultipath/config.h -index 6e69a37..1bf708a 100644 ---- a/libmultipath/config.h -+++ b/libmultipath/config.h -@@ -82,6 +82,7 @@ struct hwentry { - int skip_kpartx; - int max_sectors_kb; - int ghost_delay; -+ int all_tg_pt; - char * bl_product; - }; - -@@ -194,6 +195,7 @@ struct config { - char * partition_delim; - char * config_dir; - int prkey_source; -+ int all_tg_pt; - struct be64 reservation_key; - - vector keywords; -diff --git a/libmultipath/defaults.h b/libmultipath/defaults.h -index d7b87b4..f076b4b 100644 ---- a/libmultipath/defaults.h -+++ b/libmultipath/defaults.h -@@ -43,6 +43,7 @@ - #define DEFAULT_GHOST_DELAY GHOST_DELAY_OFF - #define DEFAULT_FIND_MULTIPATHS_TIMEOUT -10 - #define DEFAULT_UNKNOWN_FIND_MULTIPATHS_TIMEOUT 1 -+#define DEFAULT_ALL_TG_PT ALL_TG_PT_OFF - - #define DEFAULT_CHECKINT 5 - #define MAX_CHECKINT(a) (a << 2) -diff --git a/libmultipath/dict.c b/libmultipath/dict.c -index 3e7c5d6..2557b8a 100644 ---- a/libmultipath/dict.c -+++ b/libmultipath/dict.c -@@ -1178,6 +1178,13 @@ declare_hw_snprint(ghost_delay, print_off_int_undef) - declare_mp_handler(ghost_delay, set_off_int_undef) - declare_mp_snprint(ghost_delay, print_off_int_undef) - -+declare_def_handler(all_tg_pt, set_yes_no_undef) -+declare_def_snprint_defint(all_tg_pt, print_yes_no_undef, DEFAULT_ALL_TG_PT) -+declare_ovr_handler(all_tg_pt, set_yes_no_undef) -+declare_ovr_snprint(all_tg_pt, print_yes_no_undef) -+declare_hw_handler(all_tg_pt, set_yes_no_undef) -+declare_hw_snprint(all_tg_pt, print_yes_no_undef) -+ - - static int - def_uxsock_timeout_handler(struct config *conf, vector strvec) -@@ -1509,6 +1516,7 @@ init_keywords(vector keywords) - install_keyword("prkeys_file", &def_prkeys_file_handler, &snprint_def_prkeys_file); - install_keyword("log_checker_err", &def_log_checker_err_handler, &snprint_def_log_checker_err); - install_keyword("reservation_key", &def_reservation_key_handler, &snprint_def_reservation_key); -+ install_keyword("all_tg_pt", &def_all_tg_pt_handler, &snprint_def_all_tg_pt); - install_keyword("retain_attached_hw_handler", &def_retain_hwhandler_handler, &snprint_def_retain_hwhandler); - install_keyword("detect_prio", &def_detect_prio_handler, &snprint_def_detect_prio); - install_keyword("detect_checker", &def_detect_checker_handler, &snprint_def_detect_checker); -@@ -1618,6 +1626,7 @@ init_keywords(vector keywords) - install_keyword("skip_kpartx", &hw_skip_kpartx_handler, &snprint_hw_skip_kpartx); - install_keyword("max_sectors_kb", &hw_max_sectors_kb_handler, &snprint_hw_max_sectors_kb); - install_keyword("ghost_delay", &hw_ghost_delay_handler, &snprint_hw_ghost_delay); -+ install_keyword("all_tg_pt", &hw_all_tg_pt_handler, &snprint_hw_all_tg_pt); - install_sublevel_end(); - - install_keyword_root("overrides", &overrides_handler); -@@ -1654,6 +1663,7 @@ init_keywords(vector keywords) - install_keyword("skip_kpartx", &ovr_skip_kpartx_handler, &snprint_ovr_skip_kpartx); - install_keyword("max_sectors_kb", &ovr_max_sectors_kb_handler, &snprint_ovr_max_sectors_kb); - install_keyword("ghost_delay", &ovr_ghost_delay_handler, &snprint_ovr_ghost_delay); -+ install_keyword("all_tg_pt", &ovr_all_tg_pt_handler, &snprint_ovr_all_tg_pt); - - install_keyword_root("multipaths", &multipaths_handler); - install_keyword_multi("multipath", &multipath_handler, NULL); -diff --git a/libmultipath/propsel.c b/libmultipath/propsel.c -index 627d366..9ca1355 100644 ---- a/libmultipath/propsel.c -+++ b/libmultipath/propsel.c -@@ -978,3 +978,18 @@ out: - pp->dev, pp->find_multipaths_timeout, origin); - return 0; - } -+ -+int select_all_tg_pt (struct config *conf, struct multipath * mp) -+{ -+ const char *origin; -+ -+ mp_set_ovr(all_tg_pt); -+ mp_set_hwe(all_tg_pt); -+ mp_set_conf(all_tg_pt); -+ mp_set_default(all_tg_pt, DEFAULT_ALL_TG_PT); -+out: -+ condlog(3, "%s: all_tg_pt = %s %s", mp->alias, -+ (mp->all_tg_pt == ALL_TG_PT_ON)? "yes" : "no", -+ origin); -+ return 0; -+} -diff --git a/libmultipath/propsel.h b/libmultipath/propsel.h -index a022bee..ae99b92 100644 ---- a/libmultipath/propsel.h -+++ b/libmultipath/propsel.h -@@ -34,3 +34,4 @@ int select_ghost_delay(struct config *conf, struct multipath * mp); - void reconcile_features_with_options(const char *id, char **features, - int* no_path_retry, - int *retain_hwhandler); -+int select_all_tg_pt (struct config *conf, struct multipath * mp); -diff --git a/libmultipath/structs.h b/libmultipath/structs.h -index e424b15..0194b1e 100644 ---- a/libmultipath/structs.h -+++ b/libmultipath/structs.h -@@ -217,6 +217,12 @@ enum prkey_sources { - PRKEY_SOURCE_FILE, - }; - -+enum all_tg_pt_states { -+ ALL_TG_PT_UNDEF = YNU_UNDEF, -+ ALL_TG_PT_OFF = YNU_NO, -+ ALL_TG_PT_ON = YNU_YES, -+}; -+ - struct sg_id { - int host_no; - int channel; -@@ -362,6 +368,7 @@ struct multipath { - int prkey_source; - struct be64 reservation_key; - unsigned char prflag; -+ int all_tg_pt; - struct gen_multipath generic_mp; - }; - -diff --git a/multipath/multipath.conf.5 b/multipath/multipath.conf.5 -index 96d1b66..0c1f174 100644 ---- a/multipath/multipath.conf.5 -+++ b/multipath/multipath.conf.5 -@@ -743,6 +743,17 @@ The default is: \fB<unset>\fR - . - . - .TP -+.B all_tg_pt -+This must be set to \fByes\fR to successfully use mpathpersist on arrays that -+automatically set and clear registration keys on all target ports from a -+host, instead of per target port per host. -+.RS -+.TP -+The default is: \fBno\fR -+.RE -+. -+. -+.TP - .B retain_attached_hw_handler - (Obsolete for kernels >= 4.3) If set to - .I yes --- -2.7.4 - diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0016-libmultipath-remove-rbd-code.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0016-libmultipath-remove-rbd-code.patch deleted file mode 100644 index 8d1954725c..0000000000 --- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0016-libmultipath-remove-rbd-code.patch +++ /dev/null @@ -1,1093 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Benjamin Marzinski <bmarzins@redhat.com> -Date: Fri, 1 Jun 2018 16:30:44 -0500 -Subject: [PATCH] libmultipath: remove rbd code - -The Ceph tean has asked to drop support for multipathed rbd, since it -was running into data corruption issues. There was never an upstream -Ceph release based on it, and because of the corruption, there should be -no users of this code. This patch simply reverts all the rbd code from -multipath. - -Cc: Michael Christie <mchristi@redhat.com> -Cc: Jason Dillaman <dillaman@redhat.com> -Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com> ---- - libmultipath/checkers.c | 22 -- - libmultipath/checkers.h | 6 - - libmultipath/checkers/Makefile | 7 - - libmultipath/checkers/cciss_tur.c | 5 - - libmultipath/checkers/directio.c | 5 - - libmultipath/checkers/emc_clariion.c | 5 - - libmultipath/checkers/hp_sw.c | 5 - - libmultipath/checkers/rbd.c | 653 ----------------------------------- - libmultipath/checkers/rdac.c | 5 - - libmultipath/checkers/readsector0.c | 5 - - libmultipath/checkers/tur.c | 5 - - libmultipath/discovery.c | 70 ---- - libmultipath/hwtable.c | 12 - - multipath/multipath.conf.5 | 3 - - multipathd/main.c | 11 - - 15 files changed, 819 deletions(-) - delete mode 100644 libmultipath/checkers/rbd.c - -diff --git a/libmultipath/checkers.c b/libmultipath/checkers.c -index 08cdfc3..0bacc86 100644 ---- a/libmultipath/checkers.c -+++ b/libmultipath/checkers.c -@@ -141,13 +141,6 @@ struct checker * add_checker (char *multipath_dir, char * name) - if (!c->free) - goto out; - -- c->repair = (void (*)(struct checker *)) dlsym(c->handle, -- "libcheck_repair"); -- errstr = dlerror(); -- if (errstr != NULL) -- condlog(0, "A dynamic linking error occurred: (%s)", errstr); -- if (!c->repair) -- goto out; - done: - c->fd = -1; - c->sync = 1; -@@ -222,20 +215,6 @@ void checker_put (struct checker * dst) - free_checker(src); - } - --void checker_repair (struct checker * c) --{ -- if (!checker_selected(c)) -- return; -- -- c->message[0] = '\0'; -- if (c->disable) { -- MSG(c, "checker disabled"); -- return; -- } -- if (c->repair) -- c->repair(c); --} -- - int checker_check (struct checker * c, int path_state) - { - int r; -@@ -310,7 +289,6 @@ void checker_get (char *multipath_dir, struct checker * dst, char * name) - dst->sync = src->sync; - strncpy(dst->name, src->name, CHECKER_NAME_LEN); - strncpy(dst->message, src->message, CHECKER_MSG_LEN); -- dst->repair = src->repair; - dst->check = src->check; - dst->init = src->init; - dst->free = src->free; -diff --git a/libmultipath/checkers.h b/libmultipath/checkers.h -index 52154ca..7b18a1a 100644 ---- a/libmultipath/checkers.h -+++ b/libmultipath/checkers.h -@@ -86,7 +86,6 @@ enum path_check_state { - #define READSECTOR0 "readsector0" - #define CCISS_TUR "cciss_tur" - #define NONE "none" --#define RBD "rbd" - - #define ASYNC_TIMEOUT_SEC 30 - -@@ -113,9 +112,6 @@ struct checker { - multipath-wide. Use MALLOC if - you want to stuff data in. */ - int (*check)(struct checker *); -- void (*repair)(struct checker *); /* called if check returns -- PATH_DOWN to bring path into -- usable state */ - int (*init)(struct checker *); /* to allocate the context */ - void (*free)(struct checker *); /* to free the context */ - }; -@@ -136,7 +132,6 @@ void checker_set_async (struct checker *); - void checker_set_fd (struct checker *, int); - void checker_enable (struct checker *); - void checker_disable (struct checker *); --void checker_repair (struct checker *); - int checker_check (struct checker *, int); - int checker_selected (struct checker *); - char * checker_name (struct checker *); -@@ -148,6 +143,5 @@ void checker_get (char *, struct checker *, char *); - int libcheck_check(struct checker *); - int libcheck_init(struct checker *); - void libcheck_free(struct checker *); --void libcheck_repair(struct checker *); - - #endif /* _CHECKERS_H */ -diff --git a/libmultipath/checkers/Makefile b/libmultipath/checkers/Makefile -index 87c15bd..02caea6 100644 ---- a/libmultipath/checkers/Makefile -+++ b/libmultipath/checkers/Makefile -@@ -15,15 +15,8 @@ LIBS= \ - libcheckhp_sw.so \ - libcheckrdac.so - --ifneq ($(call check_file,/usr/include/rados/librados.h),0) --LIBS += libcheckrbd.so --endif -- - all: $(LIBS) - --libcheckrbd.so: rbd.o -- $(CC) $(LDFLAGS) $(SHARED_FLAGS) -o $@ $^ -lrados -ludev -- - libcheckdirectio.so: libsg.o directio.o - $(CC) $(LDFLAGS) $(SHARED_FLAGS) -o $@ $^ -laio - -diff --git a/libmultipath/checkers/cciss_tur.c b/libmultipath/checkers/cciss_tur.c -index 436470c..1cab201 100644 ---- a/libmultipath/checkers/cciss_tur.c -+++ b/libmultipath/checkers/cciss_tur.c -@@ -59,11 +59,6 @@ void libcheck_free (struct checker * c) - return; - } - --void libcheck_repair (struct checker * c) --{ -- return; --} -- - int libcheck_check(struct checker * c) - { - int rc; -diff --git a/libmultipath/checkers/directio.c b/libmultipath/checkers/directio.c -index ce60e4c..a80848d 100644 ---- a/libmultipath/checkers/directio.c -+++ b/libmultipath/checkers/directio.c -@@ -118,11 +118,6 @@ void libcheck_free (struct checker * c) - free(ct); - } - --void libcheck_repair (struct checker * c) --{ -- return; --} -- - static int - check_state(int fd, struct directio_context *ct, int sync, int timeout_secs) - { -diff --git a/libmultipath/checkers/emc_clariion.c b/libmultipath/checkers/emc_clariion.c -index 9c1ffed..9115b1b 100644 ---- a/libmultipath/checkers/emc_clariion.c -+++ b/libmultipath/checkers/emc_clariion.c -@@ -90,11 +90,6 @@ void libcheck_free (struct checker * c) - free(c->context); - } - --void libcheck_repair (struct checker * c) --{ -- return; --} -- - int libcheck_check (struct checker * c) - { - unsigned char sense_buffer[128] = { 0, }; -diff --git a/libmultipath/checkers/hp_sw.c b/libmultipath/checkers/hp_sw.c -index cee9aab..0ad34a6 100644 ---- a/libmultipath/checkers/hp_sw.c -+++ b/libmultipath/checkers/hp_sw.c -@@ -45,11 +45,6 @@ void libcheck_free (struct checker * c) - return; - } - --void libcheck_repair (struct checker * c) --{ -- return; --} -- - static int - do_inq(int sg_fd, int cmddt, int evpd, unsigned int pg_op, - void *resp, int mx_resp_len, int noisy, unsigned int timeout) -diff --git a/libmultipath/checkers/rbd.c b/libmultipath/checkers/rbd.c -deleted file mode 100644 -index 4ff54f4..0000000 ---- a/libmultipath/checkers/rbd.c -+++ /dev/null -@@ -1,653 +0,0 @@ --/* -- * Copyright (c) 2016 Red Hat -- * Copyright (c) 2004 Christophe Varoqui -- * -- * Code based off of tur.c and ceph's krbd.cc -- */ --#define _GNU_SOURCE --#include <stdio.h> --#include <stdlib.h> --#include <string.h> --#include <unistd.h> --#include <fcntl.h> --#include <errno.h> --#include <pthread.h> --#include <libudev.h> --#include <ifaddrs.h> --#include <sys/types.h> --#include <sys/stat.h> --#include <sys/ioctl.h> --#include <sys/time.h> --#include <sys/wait.h> --#include <urcu.h> -- --#include "rados/librados.h" -- --#include "structs.h" --#include "checkers.h" -- --#include "../libmultipath/debug.h" --#include "../libmultipath/util.h" --#include "../libmultipath/time-util.h" --#include "../libmultipath/util.h" -- --struct rbd_checker_context; --typedef int (thread_fn)(struct rbd_checker_context *ct, char *msg); -- --#define RBD_MSG(msg, fmt, args...) snprintf(msg, CHECKER_MSG_LEN, fmt, ##args); -- --#define RBD_FEATURE_EXCLUSIVE_LOCK (1 << 2) -- --struct rbd_checker_context { -- int rbd_bus_id; -- char *client_addr; -- char *config_info; -- char *snap; -- char *pool; -- char *image; -- char *username; -- int remapped; -- int blacklisted; -- unsigned lock_on_read:1; -- -- rados_t cluster; -- -- int state; -- int running; -- time_t time; -- thread_fn *fn; -- pthread_t thread; -- pthread_mutex_t lock; -- pthread_cond_t active; -- pthread_spinlock_t hldr_lock; -- int holders; -- char message[CHECKER_MSG_LEN]; --}; -- --int libcheck_init(struct checker * c) --{ -- struct rbd_checker_context *ct; -- struct udev_device *block_dev; -- struct udev_device *bus_dev; -- struct udev *udev; -- struct stat sb; -- const char *block_name, *addr, *config_info, *features_str; -- const char *image, *pool, *snap, *username; -- uint64_t features = 0; -- char sysfs_path[PATH_SIZE]; -- int ret; -- -- ct = malloc(sizeof(struct rbd_checker_context)); -- if (!ct) -- return 1; -- memset(ct, 0, sizeof(struct rbd_checker_context)); -- ct->holders = 1; -- pthread_cond_init_mono(&ct->active); -- pthread_mutex_init(&ct->lock, NULL); -- pthread_spin_init(&ct->hldr_lock, PTHREAD_PROCESS_PRIVATE); -- c->context = ct; -- -- /* -- * The rbd block layer sysfs device is not linked to the rbd bus -- * device that we interact with, so figure that out now. -- */ -- if (fstat(c->fd, &sb) != 0) -- goto free_ct; -- -- udev = udev_new(); -- if (!udev) -- goto free_ct; -- -- block_dev = udev_device_new_from_devnum(udev, 'b', sb.st_rdev); -- if (!block_dev) -- goto free_udev; -- -- block_name = udev_device_get_sysname(block_dev); -- ret = sscanf(block_name, "rbd%d", &ct->rbd_bus_id); -- -- udev_device_unref(block_dev); -- if (ret != 1) -- goto free_udev; -- -- snprintf(sysfs_path, sizeof(sysfs_path), "/sys/bus/rbd/devices/%d", -- ct->rbd_bus_id); -- bus_dev = udev_device_new_from_syspath(udev, sysfs_path); -- if (!bus_dev) -- goto free_udev; -- -- addr = udev_device_get_sysattr_value(bus_dev, "client_addr"); -- if (!addr) { -- condlog(0, "rbd%d: Could not find client_addr in rbd sysfs. " -- "Try updating kernel", ct->rbd_bus_id); -- goto free_dev; -- } -- -- ct->client_addr = strdup(addr); -- if (!ct->client_addr) -- goto free_dev; -- -- features_str = udev_device_get_sysattr_value(bus_dev, "features"); -- if (!features_str) -- goto free_addr; -- features = strtoll(features_str, NULL, 16); -- if (!(features & RBD_FEATURE_EXCLUSIVE_LOCK)) { -- condlog(3, "rbd%d: Exclusive lock not set.", ct->rbd_bus_id); -- goto free_addr; -- } -- -- config_info = udev_device_get_sysattr_value(bus_dev, "config_info"); -- if (!config_info) -- goto free_addr; -- -- if (!strstr(config_info, "noshare")) { -- condlog(3, "rbd%d: Only nonshared clients supported.", -- ct->rbd_bus_id); -- goto free_addr; -- } -- -- if (strstr(config_info, "lock_on_read")) -- ct->lock_on_read = 1; -- -- ct->config_info = strdup(config_info); -- if (!ct->config_info) -- goto free_addr; -- -- username = strstr(config_info, "name="); -- if (username) { -- char *end; -- int len; -- -- username += 5; -- end = strchr(username, ','); -- if (!end) -- goto free_info; -- len = end - username; -- -- ct->username = malloc(len + 1); -- if (!ct->username) -- goto free_info; -- strncpy(ct->username, username, len); -- ct->username[len] = '\0'; -- } -- -- image = udev_device_get_sysattr_value(bus_dev, "name"); -- if (!image) -- goto free_username; -- -- ct->image = strdup(image); -- if (!ct->image) -- goto free_username; -- -- pool = udev_device_get_sysattr_value(bus_dev, "pool"); -- if (!pool) -- goto free_image; -- -- ct->pool = strdup(pool); -- if (!ct->pool) -- goto free_image; -- -- snap = udev_device_get_sysattr_value(bus_dev, "current_snap"); -- if (!snap) -- goto free_pool; -- -- if (strcmp("-", snap)) { -- ct->snap = strdup(snap); -- if (!ct->snap) -- goto free_pool; -- } -- -- if (rados_create(&ct->cluster, NULL) < 0) { -- condlog(0, "rbd%d: Could not create rados cluster", -- ct->rbd_bus_id); -- goto free_snap; -- } -- -- if (rados_conf_read_file(ct->cluster, NULL) < 0) { -- condlog(0, "rbd%d: Could not read rados conf", ct->rbd_bus_id); -- goto shutdown_rados; -- } -- -- ret = rados_connect(ct->cluster); -- if (ret < 0) { -- condlog(0, "rbd%d: Could not connect to rados cluster", -- ct->rbd_bus_id); -- goto shutdown_rados; -- } -- -- udev_device_unref(bus_dev); -- udev_unref(udev); -- -- condlog(3, "rbd%d checker init %s %s/%s@%s %s", ct->rbd_bus_id, -- ct->client_addr, ct->pool, ct->image, ct->snap ? ct->snap : "-", -- ct->username ? ct->username : "none"); -- return 0; -- --shutdown_rados: -- rados_shutdown(ct->cluster); --free_snap: -- if (ct->snap) -- free(ct->snap); --free_pool: -- free(ct->pool); --free_image: -- free(ct->image); --free_username: -- if (ct->username) -- free(ct->username); --free_info: -- free(ct->config_info); --free_addr: -- free(ct->client_addr); --free_dev: -- udev_device_unref(bus_dev); --free_udev: -- udev_unref(udev); --free_ct: -- free(ct); -- return 1; --} -- --static void cleanup_context(struct rbd_checker_context *ct) --{ -- pthread_mutex_destroy(&ct->lock); -- pthread_cond_destroy(&ct->active); -- pthread_spin_destroy(&ct->hldr_lock); -- -- rados_shutdown(ct->cluster); -- -- if (ct->username) -- free(ct->username); -- if (ct->snap) -- free(ct->snap); -- free(ct->pool); -- free(ct->image); -- free(ct->config_info); -- free(ct->client_addr); -- free(ct); --} -- --void libcheck_free(struct checker * c) --{ -- if (c->context) { -- struct rbd_checker_context *ct = c->context; -- int holders; -- pthread_t thread; -- -- pthread_spin_lock(&ct->hldr_lock); -- ct->holders--; -- holders = ct->holders; -- thread = ct->thread; -- pthread_spin_unlock(&ct->hldr_lock); -- if (holders) -- pthread_cancel(thread); -- else -- cleanup_context(ct); -- c->context = NULL; -- } --} -- --static int rbd_is_blacklisted(struct rbd_checker_context *ct, char *msg) --{ -- char *addr_tok, *start, *save; -- const char *cmd[2]; -- char *blklist, *stat; -- size_t blklist_len, stat_len; -- int ret; -- char *end; -- -- cmd[0] = "{\"prefix\": \"osd blacklist ls\"}"; -- cmd[1] = NULL; -- -- ret = rados_mon_command(ct->cluster, (const char **)cmd, 1, "", 0, -- &blklist, &blklist_len, &stat, &stat_len); -- if (ret < 0) { -- RBD_MSG(msg, "checker failed: mon command failed %d", ret); -- return ret; -- } -- -- if (!blklist || !blklist_len) -- goto free_bufs; -- -- /* -- * parse list of addrs with the format -- * ipv4:port/nonce date time\n -- * or -- * [ipv6]:port/nonce date time\n -- */ -- ret = 0; -- for (start = blklist; ; start = NULL) { -- addr_tok = strtok_r(start, "\n", &save); -- if (!addr_tok || !strlen(addr_tok)) -- break; -- -- end = strchr(addr_tok, ' '); -- if (!end) { -- RBD_MSG(msg, "checker failed: invalid blacklist %s", -- addr_tok); -- break; -- } -- *end = '\0'; -- -- if (!strcmp(addr_tok, ct->client_addr)) { -- ct->blacklisted = 1; -- RBD_MSG(msg, "%s is blacklisted", ct->client_addr); -- ret = 1; -- break; -- } -- } -- --free_bufs: -- rados_buffer_free(blklist); -- rados_buffer_free(stat); -- return ret; --} -- --static int rbd_check(struct rbd_checker_context *ct, char *msg) --{ -- if (ct->blacklisted || rbd_is_blacklisted(ct, msg) == 1) -- return PATH_DOWN; -- -- RBD_MSG(msg, "checker reports path is up"); -- /* -- * Path may have issues, but the ceph cluster is at least -- * accepting IO, so we can attempt to do IO. -- * -- * TODO: in future versions, we can run other tests to -- * verify OSDs and networks. -- */ -- return PATH_UP; --} -- --static int sysfs_write_rbd_bus(const char *which, const char *buf, -- size_t buf_len) --{ -- char sysfs_path[PATH_SIZE]; -- int fd; -- int r; -- -- /* we require newer kernels so single_major should always be there */ -- snprintf(sysfs_path, sizeof(sysfs_path), -- "/sys/bus/rbd/%s_single_major", which); -- fd = open(sysfs_path, O_WRONLY); -- if (fd < 0) -- return -errno; -- -- r = safe_write(fd, buf, buf_len); -- close(fd); -- return r; --} -- --static int rbd_remap(struct rbd_checker_context *ct) --{ -- char *argv[11]; -- pid_t pid; -- int ret = 0, i = 0; -- int status; -- -- pid = fork(); -- switch (pid) { -- case 0: -- argv[i++] = "rbd"; -- argv[i++] = "map"; -- if (ct->lock_on_read) -- argv[i++] = "-o noshare,lock_on_read"; -- else -- argv[i++] = "-o noshare"; -- if (ct->username) { -- argv[i++] = "--id"; -- argv[i++] = ct->username; -- } -- argv[i++] = "--pool"; -- argv[i++] = ct->pool; -- if (ct->snap) { -- argv[i++] = "--snap"; -- argv[i++] = ct->snap; -- } -- argv[i++] = ct->image; -- argv[i] = NULL; -- -- ret = execvp(argv[0], argv); -- condlog(0, "rbd%d: Error executing rbd: %s", ct->rbd_bus_id, -- strerror(errno)); -- exit(-1); -- case -1: -- condlog(0, "rbd%d: fork failed: %s", ct->rbd_bus_id, -- strerror(errno)); -- return -1; -- default: -- ret = -1; -- wait(&status); -- if (WIFEXITED(status)) { -- status = WEXITSTATUS(status); -- if (status == 0) -- ret = 0; -- else -- condlog(0, "rbd%d: failed with %d", -- ct->rbd_bus_id, status); -- } -- } -- -- return ret; --} -- --static int sysfs_write_rbd_remove(const char *buf, int buf_len) --{ -- return sysfs_write_rbd_bus("remove", buf, buf_len); --} -- --static int rbd_rm_blacklist(struct rbd_checker_context *ct) --{ -- const char *cmd[2]; -- char *stat, *cmd_str; -- size_t stat_len; -- int ret; -- -- ret = asprintf(&cmd_str, "{\"prefix\": \"osd blacklist\", \"blacklistop\": \"rm\", \"addr\": \"%s\"}", -- ct->client_addr); -- if (ret == -1) -- return -ENOMEM; -- -- cmd[0] = cmd_str; -- cmd[1] = NULL; -- -- ret = rados_mon_command(ct->cluster, (const char **)cmd, 1, "", 0, -- NULL, NULL, &stat, &stat_len); -- if (ret < 0) { -- condlog(1, "rbd%d: repair failed to remove blacklist for %s %d", -- ct->rbd_bus_id, ct->client_addr, ret); -- goto free_cmd; -- } -- -- condlog(1, "rbd%d: repair rm blacklist for %s", -- ct->rbd_bus_id, ct->client_addr); -- free(stat); --free_cmd: -- free(cmd_str); -- return ret; --} -- --static int rbd_repair(struct rbd_checker_context *ct, char *msg) --{ -- char del[17]; -- int ret; -- -- if (!ct->blacklisted) -- return PATH_UP; -- -- if (!ct->remapped) { -- ret = rbd_remap(ct); -- if (ret) { -- RBD_MSG(msg, "repair failed to remap. Err %d", ret); -- return PATH_DOWN; -- } -- } -- ct->remapped = 1; -- -- snprintf(del, sizeof(del), "%d force", ct->rbd_bus_id); -- ret = sysfs_write_rbd_remove(del, strlen(del) + 1); -- if (ret) { -- RBD_MSG(msg, "repair failed to clean up. Err %d", ret); -- return PATH_DOWN; -- } -- -- ret = rbd_rm_blacklist(ct); -- if (ret) { -- RBD_MSG(msg, "repair could not remove blacklist entry. Err %d", -- ret); -- return PATH_DOWN; -- } -- -- ct->remapped = 0; -- ct->blacklisted = 0; -- -- RBD_MSG(msg, "has been repaired"); -- return PATH_UP; --} -- --#define rbd_thread_cleanup_push(ct) pthread_cleanup_push(cleanup_func, ct) --#define rbd_thread_cleanup_pop(ct) pthread_cleanup_pop(1) -- --static void cleanup_func(void *data) --{ -- int holders; -- struct rbd_checker_context *ct = data; -- pthread_spin_lock(&ct->hldr_lock); -- ct->holders--; -- holders = ct->holders; -- ct->thread = 0; -- pthread_spin_unlock(&ct->hldr_lock); -- if (!holders) -- cleanup_context(ct); -- rcu_unregister_thread(); --} -- --static void *rbd_thread(void *ctx) --{ -- struct rbd_checker_context *ct = ctx; -- int state; -- -- /* This thread can be canceled, so setup clean up */ -- rbd_thread_cleanup_push(ct) -- rcu_register_thread(); -- condlog(3, "rbd%d: thread starting up", ct->rbd_bus_id); -- -- ct->message[0] = '\0'; -- -- /* checker start up */ -- pthread_mutex_lock(&ct->lock); -- ct->state = PATH_PENDING; -- pthread_mutex_unlock(&ct->lock); -- -- state = ct->fn(ct, ct->message); -- -- /* checker done */ -- pthread_mutex_lock(&ct->lock); -- ct->state = state; -- pthread_cond_signal(&ct->active); -- pthread_mutex_unlock(&ct->lock); -- -- condlog(3, "rbd%d: thead finished, state %s", ct->rbd_bus_id, -- checker_state_name(state)); -- rbd_thread_cleanup_pop(ct); -- return ((void *)0); --} -- --static void rbd_timeout(struct timespec *tsp) --{ -- clock_gettime(CLOCK_MONOTONIC, tsp); -- tsp->tv_nsec += 1000 * 1000; /* 1 millisecond */ -- normalize_timespec(tsp); --} -- --static int rbd_exec_fn(struct checker *c, thread_fn *fn) --{ -- struct rbd_checker_context *ct = c->context; -- struct timespec tsp; -- pthread_attr_t attr; -- int rbd_status, r; -- -- if (c->sync) -- return fn(ct, c->message); -- /* -- * Async mode -- */ -- r = pthread_mutex_lock(&ct->lock); -- if (r != 0) { -- condlog(2, "rbd%d: mutex lock failed with %d", ct->rbd_bus_id, -- r); -- MSG(c, "rbd%d: thread failed to initialize", ct->rbd_bus_id); -- return PATH_WILD; -- } -- -- if (ct->running) { -- /* Check if checker is still running */ -- if (ct->thread) { -- condlog(3, "rbd%d: thread not finished", -- ct->rbd_bus_id); -- rbd_status = PATH_PENDING; -- } else { -- /* checker done */ -- ct->running = 0; -- rbd_status = ct->state; -- strncpy(c->message, ct->message, CHECKER_MSG_LEN); -- c->message[CHECKER_MSG_LEN - 1] = '\0'; -- } -- pthread_mutex_unlock(&ct->lock); -- } else { -- /* Start new checker */ -- ct->state = PATH_UNCHECKED; -- ct->fn = fn; -- pthread_spin_lock(&ct->hldr_lock); -- ct->holders++; -- pthread_spin_unlock(&ct->hldr_lock); -- setup_thread_attr(&attr, 32 * 1024, 1); -- r = pthread_create(&ct->thread, &attr, rbd_thread, ct); -- if (r) { -- pthread_mutex_unlock(&ct->lock); -- ct->thread = 0; -- ct->holders--; -- condlog(3, "rbd%d failed to start rbd thread, using sync mode", -- ct->rbd_bus_id); -- return fn(ct, c->message); -- } -- pthread_attr_destroy(&attr); -- rbd_timeout(&tsp); -- r = pthread_cond_timedwait(&ct->active, &ct->lock, &tsp); -- rbd_status = ct->state; -- strncpy(c->message, ct->message,CHECKER_MSG_LEN); -- c->message[CHECKER_MSG_LEN -1] = '\0'; -- pthread_mutex_unlock(&ct->lock); -- -- if (ct->thread && -- (rbd_status == PATH_PENDING || rbd_status == PATH_UNCHECKED)) { -- condlog(3, "rbd%d: thread still running", -- ct->rbd_bus_id); -- ct->running = 1; -- rbd_status = PATH_PENDING; -- } -- } -- -- return rbd_status; --} -- --void libcheck_repair(struct checker * c) --{ -- struct rbd_checker_context *ct = c->context; -- -- if (!ct || !ct->blacklisted) -- return; -- rbd_exec_fn(c, rbd_repair); --} -- --int libcheck_check(struct checker * c) --{ -- struct rbd_checker_context *ct = c->context; -- -- if (!ct) -- return PATH_UNCHECKED; -- -- if (ct->blacklisted) -- return PATH_DOWN; -- -- return rbd_exec_fn(c, rbd_check); --} -diff --git a/libmultipath/checkers/rdac.c b/libmultipath/checkers/rdac.c -index a643a4a..5104e4e 100644 ---- a/libmultipath/checkers/rdac.c -+++ b/libmultipath/checkers/rdac.c -@@ -139,11 +139,6 @@ void libcheck_free (struct checker * c) - return; - } - --void libcheck_repair (struct checker * c) --{ -- return; --} -- - static int - do_inq(int sg_fd, unsigned int pg_op, void *resp, int mx_resp_len, - unsigned int timeout) -diff --git a/libmultipath/checkers/readsector0.c b/libmultipath/checkers/readsector0.c -index 8fccb46..1c2a868 100644 ---- a/libmultipath/checkers/readsector0.c -+++ b/libmultipath/checkers/readsector0.c -@@ -23,11 +23,6 @@ void libcheck_free (struct checker * c) - return; - } - --void libcheck_repair (struct checker * c) --{ -- return; --} -- - int libcheck_check (struct checker * c) - { - unsigned char buf[4096]; -diff --git a/libmultipath/checkers/tur.c b/libmultipath/checkers/tur.c -index eb3348d..bf8486d 100644 ---- a/libmultipath/checkers/tur.c -+++ b/libmultipath/checkers/tur.c -@@ -112,11 +112,6 @@ void libcheck_free (struct checker * c) - return; - } - --void libcheck_repair (struct checker * c) --{ -- return; --} -- - #define TUR_MSG(fmt, args...) \ - do { \ - char msg[CHECKER_MSG_LEN]; \ -diff --git a/libmultipath/discovery.c b/libmultipath/discovery.c -index 1ef1dfa..18ad0e2 100644 ---- a/libmultipath/discovery.c -+++ b/libmultipath/discovery.c -@@ -1246,21 +1246,6 @@ nvme_sysfs_pathinfo (struct path * pp, vector hwtable) - } - - static int --rbd_sysfs_pathinfo (struct path * pp, vector hwtable) --{ -- sprintf(pp->vendor_id, "Ceph"); -- sprintf(pp->product_id, "RBD"); -- -- condlog(3, "%s: vendor = %s product = %s", pp->dev, pp->vendor_id, -- pp->product_id); -- /* -- * set the hwe configlet pointer -- */ -- pp->hwe = find_hwe(hwtable, pp->vendor_id, pp->product_id, NULL); -- return 0; --} -- --static int - ccw_sysfs_pathinfo (struct path * pp, vector hwtable) - { - struct udev_device *parent; -@@ -1486,8 +1471,6 @@ sysfs_pathinfo(struct path * pp, vector hwtable) - pp->bus = SYSFS_BUS_CCW; - if (!strncmp(pp->dev,"sd", 2)) - pp->bus = SYSFS_BUS_SCSI; -- if (!strncmp(pp->dev,"rbd", 3)) -- pp->bus = SYSFS_BUS_RBD; - if (!strncmp(pp->dev,"nvme", 4)) - pp->bus = SYSFS_BUS_NVME; - -@@ -1502,9 +1485,6 @@ sysfs_pathinfo(struct path * pp, vector hwtable) - } else if (pp->bus == SYSFS_BUS_CCISS) { - if (cciss_sysfs_pathinfo(pp, hwtable)) - return 1; -- } else if (pp->bus == SYSFS_BUS_RBD) { -- if (rbd_sysfs_pathinfo(pp, hwtable)) -- return 1; - } else if (pp->bus == SYSFS_BUS_NVME) { - if (nvme_sysfs_pathinfo(pp, hwtable)) - return 1; -@@ -1753,53 +1733,6 @@ get_udev_uid(struct path * pp, char *uid_attribute, struct udev_device *udev) - } - - static int --get_rbd_uid(struct path * pp) --{ -- struct udev_device *rbd_bus_dev; -- int ret, rbd_bus_id; -- const char *pool, *image, *snap; -- char sysfs_path[PATH_SIZE]; -- uint64_t snap_id, max_snap_id = -3; -- -- ret = sscanf(pp->dev, "rbd%d", &rbd_bus_id); -- if (ret != 1) -- return -EINVAL; -- -- snprintf(sysfs_path, sizeof(sysfs_path), "/sys/bus/rbd/devices/%d", -- rbd_bus_id); -- rbd_bus_dev = udev_device_new_from_syspath(udev, sysfs_path); -- if (!rbd_bus_dev) -- return -ENODEV; -- -- ret = -EINVAL; -- pool = udev_device_get_sysattr_value(rbd_bus_dev, "pool_id"); -- if (!pool) -- goto free_dev; -- -- image = udev_device_get_sysattr_value(rbd_bus_dev, "image_id"); -- if (!image) -- goto free_dev; -- -- snap = udev_device_get_sysattr_value(rbd_bus_dev, "snap_id"); -- if (!snap) -- goto free_dev; -- snap_id = strtoull(snap, NULL, 19); -- if (snap_id >= max_snap_id) -- ret = snprintf(pp->wwid, WWID_SIZE, "%s-%s", pool, image); -- else -- ret = snprintf(pp->wwid, WWID_SIZE, "%s-%s-%s", pool, -- image, snap); -- if (ret >= WWID_SIZE) { -- condlog(0, "%s: wwid overflow", pp->dev); -- ret = -EOVERFLOW; -- } -- --free_dev: -- udev_device_unref(rbd_bus_dev); -- return ret; --} -- --static int - get_vpd_uid(struct path * pp) - { - struct udev_device *parent = pp->udev; -@@ -1876,9 +1809,6 @@ get_uid (struct path * pp, int path_state, struct udev_device *udev) - } else - len = strlen(pp->wwid); - origin = "callout"; -- } else if (pp->bus == SYSFS_BUS_RBD) { -- len = get_rbd_uid(pp); -- origin = "sysfs"; - } else { - - if (udev && pp->uid_attribute) { -diff --git a/libmultipath/hwtable.c b/libmultipath/hwtable.c -index 148f0ba..d529bae 100644 ---- a/libmultipath/hwtable.c -+++ b/libmultipath/hwtable.c -@@ -1000,18 +1000,6 @@ static struct hwentry default_hw[] = { - .prio_name = PRIO_ALUA, - }, - /* -- * Red Hat -- * -- * Maintainer: Mike Christie -- * Mail: mchristi@redhat.com -- */ -- { -- .vendor = "Ceph", -- .product = "RBD", -- .checker_name = RBD, -- .deferred_remove = DEFERRED_REMOVE_ON, -- }, -- /* - * Kove - */ - { -diff --git a/multipath/multipath.conf.5 b/multipath/multipath.conf.5 -index 0c1f174..31f4585 100644 ---- a/multipath/multipath.conf.5 -+++ b/multipath/multipath.conf.5 -@@ -482,9 +482,6 @@ Check the path state for HP/COMPAQ Smart Array(CCISS) controllers. - .I none - Do not check the device, fallback to use the values retrieved from sysfs - .TP --.I rbd --Check if the path is in the Ceph blacklist and remap the path if it is. --.TP - The default is: \fBtur\fR - .RE - . -diff --git a/multipathd/main.c b/multipathd/main.c -index 0db88ee..d40c416 100644 ---- a/multipathd/main.c -+++ b/multipathd/main.c -@@ -1783,15 +1783,6 @@ int update_path_groups(struct multipath *mpp, struct vectors *vecs, int refresh) - return 0; - } - --void repair_path(struct path * pp) --{ -- if (pp->state != PATH_DOWN) -- return; -- -- checker_repair(&pp->checker); -- LOG_MSG(1, checker_message(&pp->checker)); --} -- - /* - * Returns '1' if the path has been checked, '-1' if it was blacklisted - * and '0' otherwise -@@ -1972,7 +1963,6 @@ check_path (struct vectors * vecs, struct path * pp, int ticks) - pp->mpp->failback_tick = 0; - - pp->mpp->stat_path_failures++; -- repair_path(pp); - return 1; - } - -@@ -2071,7 +2061,6 @@ check_path (struct vectors * vecs, struct path * pp, int ticks) - } - - pp->state = newstate; -- repair_path(pp); - - if (pp->mpp->wait_for_udev) - return 1; --- -2.7.4 - diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0017-mpathpersist-fix-aptpl-support.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0017-mpathpersist-fix-aptpl-support.patch deleted file mode 100644 index b98d310a13..0000000000 --- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0017-mpathpersist-fix-aptpl-support.patch +++ /dev/null @@ -1,543 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Benjamin Marzinski <bmarzins@redhat.com> -Date: Mon, 4 Jun 2018 22:04:44 -0500 -Subject: [PATCH] mpathpersist: fix aptpl support - -The "Active Persist Through Power Loss" flag must be set whenever a key -is registered. However, there is no way for multipathd to know if this -was set by mpathpersist. The result is that if a path goes down and -comes back up (or if it wasn't up when mpathpersist was first run) -multipathd will clear the aptpl flag when it reregisters the key on it. - -To fix this, multipath.conf now accepts an optional ":aptpl" appended -on the reservation_key value. If this is added to the reservation_key -multipathd will set the aptpl flag when it reregisters the key. If -reservation_key is set to "file", this will automatically be tracked -in the /etc/multipath/prkeys file. - -To track this flag in the prkeys file, without changing the format -I've made "0x<key>" stand for non-aptpl keys, and "0X<key>" stand -for aptpl keys. Since previously, all keys used a lower-case x, this -will default to the current behavior for existing keys. Obviously, the -next time mpathpersist is run, this will be changed if --param-aptpl -is used. Since there are no more flags that are in sg_persist that -multipathd needs to care about in mpathpersist, there shouldn't need -to be any more flags added to the prkeys file. - -Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com> ---- - libmpathpersist/mpath_persist.c | 3 ++- - libmpathpersist/mpath_updatepr.c | 11 +++++++---- - libmpathpersist/mpathpr.h | 3 ++- - libmultipath/Makefile | 2 +- - libmultipath/config.h | 2 ++ - libmultipath/dict.c | 23 +++++++++++++++++++---- - libmultipath/dict.h | 3 ++- - libmultipath/prkey.c | 27 ++++++++++++++++++++++++--- - libmultipath/prkey.h | 6 ++++-- - libmultipath/propsel.c | 6 ++++-- - libmultipath/structs.h | 1 + - libmultipath/util.c | 16 ++++++++++++++++ - libmultipath/util.h | 1 + - multipath/multipath.conf.5 | 7 +++++-- - multipathd/cli_handlers.c | 15 ++++++++++----- - multipathd/main.c | 1 + - 16 files changed, 101 insertions(+), 26 deletions(-) - -diff --git a/libmpathpersist/mpath_persist.c b/libmpathpersist/mpath_persist.c -index ca91c55..6e9e67f 100644 ---- a/libmpathpersist/mpath_persist.c -+++ b/libmpathpersist/mpath_persist.c -@@ -344,7 +344,8 @@ int mpath_persistent_reserve_out ( int fd, int rq_servact, int rq_scope, - rq_servact == MPATH_PROUT_REG_SA) || - rq_servact == MPATH_PROUT_REG_IGN_SA)) { - memcpy(&mpp->reservation_key, paramp->sa_key, 8); -- if (update_prkey(alias, get_be64(mpp->reservation_key))) { -+ if (update_prkey_flags(alias, get_be64(mpp->reservation_key), -+ paramp->sa_flags)) { - condlog(0, "%s: failed to set prkey for multipathd.", - alias); - ret = MPATH_PR_DMMP_ERROR; -diff --git a/libmpathpersist/mpath_updatepr.c b/libmpathpersist/mpath_updatepr.c -index 8063e90..0aca28e 100644 ---- a/libmpathpersist/mpath_updatepr.c -+++ b/libmpathpersist/mpath_updatepr.c -@@ -1,7 +1,5 @@ - #include <stdio.h> - #include <unistd.h> --#include <errno.h> -- - #include <stdlib.h> - #include <stdarg.h> - #include <fcntl.h> -@@ -11,6 +9,8 @@ - #include <sys/un.h> - #include <poll.h> - #include <errno.h> -+#include <libudev.h> -+#include <mpath_persist.h> - #include "debug.h" - #include "mpath_cmd.h" - #include "uxsock.h" -@@ -59,11 +59,14 @@ int update_prflag(char *mapname, int set) { - return do_update_pr(mapname, (set)? "setprstatus" : "unsetprstatus"); - } - --int update_prkey(char *mapname, uint64_t prkey) { -+int update_prkey_flags(char *mapname, uint64_t prkey, uint8_t sa_flags) { - char str[256]; -+ char *flagstr = ""; - -+ if (sa_flags & MPATH_F_APTPL_MASK) -+ flagstr = ":aptpl"; - if (prkey) -- sprintf(str, "setprkey key %" PRIx64, prkey); -+ sprintf(str, "setprkey key %" PRIx64 "%s", prkey, flagstr); - else - sprintf(str, "unsetprkey"); - return do_update_pr(mapname, str); -diff --git a/libmpathpersist/mpathpr.h b/libmpathpersist/mpathpr.h -index 72feb60..5ea8cd6 100644 ---- a/libmpathpersist/mpathpr.h -+++ b/libmpathpersist/mpathpr.h -@@ -46,7 +46,8 @@ int send_prout_activepath(char * dev, int rq_servact, int rq_scope, - unsigned int rq_type, struct prout_param_descriptor * paramp, int noisy); - - int update_prflag(char *mapname, int set); --int update_prkey(char *mapname, uint64_t prkey); -+int update_prkey_flags(char *mapname, uint64_t prkey, uint8_t sa_flags); -+#define update_prkey(mapname, prkey) update_prkey_flags(mapname, prkey, 0) - void * mpath_alloc_prin_response(int prin_sa); - int update_map_pr(struct multipath *mpp); - -diff --git a/libmultipath/Makefile b/libmultipath/Makefile -index f51786d..33f5269 100644 ---- a/libmultipath/Makefile -+++ b/libmultipath/Makefile -@@ -7,7 +7,7 @@ SONAME = 0 - DEVLIB = libmultipath.so - LIBS = $(DEVLIB).$(SONAME) - --CFLAGS += $(LIB_CFLAGS) -I$(mpathcmddir) -+CFLAGS += $(LIB_CFLAGS) -I$(mpathcmddir) -I$(mpathpersistdir) - - LIBDEPS += -lpthread -ldl -ldevmapper -ludev -L$(mpathcmddir) -lmpathcmd -lurcu -laio - -diff --git a/libmultipath/config.h b/libmultipath/config.h -index 1bf708a..fcbe3fc 100644 ---- a/libmultipath/config.h -+++ b/libmultipath/config.h -@@ -98,6 +98,7 @@ struct mpentry { - char * prio_args; - int prkey_source; - struct be64 reservation_key; -+ uint8_t sa_flags; - int pgpolicy; - int pgfailback; - int rr_weight; -@@ -197,6 +198,7 @@ struct config { - int prkey_source; - int all_tg_pt; - struct be64 reservation_key; -+ uint8_t sa_flags; - - vector keywords; - vector mptable; -diff --git a/libmultipath/dict.c b/libmultipath/dict.c -index 2557b8a..7ad0f5a 100644 ---- a/libmultipath/dict.c -+++ b/libmultipath/dict.c -@@ -22,6 +22,8 @@ - #include "util.h" - #include <errno.h> - #include <inttypes.h> -+#include <libudev.h> -+#include <mpath_persist.h> - #include "mpath_cmd.h" - #include "dict.h" - -@@ -1012,10 +1014,12 @@ snprint_def_log_checker_err (struct config *conf, char * buff, int len, - } - - static int --set_reservation_key(vector strvec, struct be64 *be64_ptr, int *source_ptr) -+set_reservation_key(vector strvec, struct be64 *be64_ptr, uint8_t *flags_ptr, -+ int *source_ptr) - { - char *buff; - uint64_t prkey; -+ uint8_t sa_flags; - - buff = set_value(strvec); - if (!buff) -@@ -1023,35 +1027,43 @@ set_reservation_key(vector strvec, struct be64 *be64_ptr, int *source_ptr) - - if (strcmp(buff, "file") == 0) { - *source_ptr = PRKEY_SOURCE_FILE; -+ *flags_ptr = 0; - put_be64(*be64_ptr, 0); - FREE(buff); - return 0; - } - -- if (parse_prkey(buff, &prkey) != 0) { -+ if (parse_prkey_flags(buff, &prkey, &sa_flags) != 0) { - FREE(buff); - return 1; - } - *source_ptr = PRKEY_SOURCE_CONF; -+ *flags_ptr = sa_flags; - put_be64(*be64_ptr, prkey); - FREE(buff); - return 0; - } - - int --print_reservation_key(char * buff, int len, struct be64 key, int source) -+print_reservation_key(char * buff, int len, struct be64 key, uint8_t flags, -+ int source) - { -+ char *flagstr = ""; - if (source == PRKEY_SOURCE_NONE) - return 0; - if (source == PRKEY_SOURCE_FILE) - return snprintf(buff, len, "file"); -- return snprintf(buff, len, "0x%" PRIx64, get_be64(key)); -+ if (flags & MPATH_F_APTPL_MASK) -+ flagstr = ":aptpl"; -+ return snprintf(buff, len, "0x%" PRIx64 "%s", get_be64(key), -+ flagstr); - } - - static int - def_reservation_key_handler(struct config *conf, vector strvec) - { - return set_reservation_key(strvec, &conf->reservation_key, -+ &conf->sa_flags, - &conf->prkey_source); - } - -@@ -1060,6 +1072,7 @@ snprint_def_reservation_key (struct config *conf, char * buff, int len, - const void * data) - { - return print_reservation_key(buff, len, conf->reservation_key, -+ conf->sa_flags, - conf->prkey_source); - } - -@@ -1070,6 +1083,7 @@ mp_reservation_key_handler(struct config *conf, vector strvec) - if (!mpe) - return 1; - return set_reservation_key(strvec, &mpe->reservation_key, -+ &mpe->sa_flags, - &mpe->prkey_source); - } - -@@ -1079,6 +1093,7 @@ snprint_mp_reservation_key (struct config *conf, char * buff, int len, - { - const struct mpentry * mpe = (const struct mpentry *)data; - return print_reservation_key(buff, len, mpe->reservation_key, -+ mpe->sa_flags, - mpe->prkey_source); - } - -diff --git a/libmultipath/dict.h b/libmultipath/dict.h -index 7564892..a40ac66 100644 ---- a/libmultipath/dict.h -+++ b/libmultipath/dict.h -@@ -15,6 +15,7 @@ int print_pgpolicy(char *buff, int len, long v); - int print_no_path_retry(char *buff, int len, long v); - int print_fast_io_fail(char *buff, int len, long v); - int print_dev_loss(char *buff, int len, unsigned long v); --int print_reservation_key(char * buff, int len, struct be64 key, int source); -+int print_reservation_key(char * buff, int len, struct be64 key, uint8_t -+ flags, int source); - int print_off_int_undef(char *buff, int len, long v); - #endif /* _DICT_H */ -diff --git a/libmultipath/prkey.c b/libmultipath/prkey.c -index 89b90ed..d645f81 100644 ---- a/libmultipath/prkey.c -+++ b/libmultipath/prkey.c -@@ -11,6 +11,8 @@ - #include <string.h> - #include <inttypes.h> - #include <errno.h> -+#include <libudev.h> -+#include <mpath_persist.h> - - #define PRKEY_READ 0 - #define PRKEY_WRITE 1 -@@ -108,7 +110,8 @@ static int do_prkey(int fd, char *wwid, char *keystr, int cmd) - return 0; - } - --int get_prkey(struct config *conf, struct multipath *mpp, uint64_t *prkey) -+int get_prkey(struct config *conf, struct multipath *mpp, uint64_t *prkey, -+ uint8_t *sa_flags) - { - int fd; - int unused; -@@ -124,6 +127,9 @@ int get_prkey(struct config *conf, struct multipath *mpp, uint64_t *prkey) - ret = do_prkey(fd, mpp->wwid, keystr, PRKEY_READ); - if (ret) - goto out_file; -+ *sa_flags = 0; -+ if (strchr(keystr, 'X')) -+ *sa_flags = MPATH_F_APTPL_MASK; - ret = !!parse_prkey(keystr, prkey); - out_file: - close(fd); -@@ -131,7 +137,8 @@ out: - return ret; - } - --int set_prkey(struct config *conf, struct multipath *mpp, uint64_t prkey) -+int set_prkey(struct config *conf, struct multipath *mpp, uint64_t prkey, -+ uint8_t sa_flags) - { - int fd; - int can_write = 1; -@@ -141,6 +148,12 @@ int set_prkey(struct config *conf, struct multipath *mpp, uint64_t prkey) - if (!strlen(mpp->wwid)) - goto out; - -+ if (sa_flags & ~MPATH_F_APTPL_MASK) { -+ condlog(0, "unsupported pr flags, 0x%x", -+ sa_flags & ~MPATH_F_APTPL_MASK); -+ sa_flags &= MPATH_F_APTPL_MASK; -+ } -+ - fd = open_file(conf->prkeys_file, &can_write, PRKEYS_FILE_HEADER); - if (fd < 0) - goto out; -@@ -149,7 +162,15 @@ int set_prkey(struct config *conf, struct multipath *mpp, uint64_t prkey) - goto out_file; - } - if (prkey) { -- snprintf(keystr, PRKEY_SIZE, "0x%016" PRIx64, prkey); -+ /* using the capitalization of the 'x' is a hack, but -+ * it's unlikely that mpath_persist will support more options -+ * since sg_persist doesn't, and this lets us keep the -+ * same file format as before instead of needing to change -+ * the format of the prkeys file */ -+ if (sa_flags) -+ snprintf(keystr, PRKEY_SIZE, "0X%016" PRIx64, prkey); -+ else -+ snprintf(keystr, PRKEY_SIZE, "0x%016" PRIx64, prkey); - keystr[PRKEY_SIZE - 1] = '\0'; - ret = do_prkey(fd, mpp->wwid, keystr, PRKEY_WRITE); - } -diff --git a/libmultipath/prkey.h b/libmultipath/prkey.h -index 4028e70..6739191 100644 ---- a/libmultipath/prkey.h -+++ b/libmultipath/prkey.h -@@ -13,7 +13,9 @@ - "# prkey wwid\n" \ - "#\n" - --int set_prkey(struct config *conf, struct multipath *mpp, uint64_t prkey); --int get_prkey(struct config *conf, struct multipath *mpp, uint64_t *prkey); -+int set_prkey(struct config *conf, struct multipath *mpp, uint64_t prkey, -+ uint8_t sa_flags); -+int get_prkey(struct config *conf, struct multipath *mpp, uint64_t *prkey, -+ uint8_t *sa_flags); - - #endif /* _PRKEY_H */ -diff --git a/libmultipath/propsel.c b/libmultipath/propsel.c -index 9ca1355..62a6893 100644 ---- a/libmultipath/propsel.c -+++ b/libmultipath/propsel.c -@@ -106,6 +106,7 @@ do { \ - if (src && src->prkey_source != PRKEY_SOURCE_NONE) { \ - mp->prkey_source = src->prkey_source; \ - mp->reservation_key = src->reservation_key; \ -+ mp->sa_flags = src->sa_flags; \ - origin = msg; \ - goto out; \ - } \ -@@ -703,18 +704,19 @@ int select_reservation_key(struct config *conf, struct multipath *mp) - do_prkey_set(mp->mpe, multipaths_origin); - do_prkey_set(conf, conf_origin); - put_be64(mp->reservation_key, 0); -+ mp->sa_flags = 0; - mp->prkey_source = PRKEY_SOURCE_NONE; - return 0; - out: - if (mp->prkey_source == PRKEY_SOURCE_FILE) { - from_file = " (from prkeys file)"; -- if (get_prkey(conf, mp, &prkey) != 0) -+ if (get_prkey(conf, mp, &prkey, &mp->sa_flags) != 0) - put_be64(mp->reservation_key, 0); - else - put_be64(mp->reservation_key, prkey); - } - print_reservation_key(buff, PRKEY_SIZE, mp->reservation_key, -- mp->prkey_source); -+ mp->sa_flags, mp->prkey_source); - condlog(3, "%s: reservation_key = %s %s%s", mp->alias, buff, origin, - from_file); - return 0; -diff --git a/libmultipath/structs.h b/libmultipath/structs.h -index 0194b1e..987479f 100644 ---- a/libmultipath/structs.h -+++ b/libmultipath/structs.h -@@ -367,6 +367,7 @@ struct multipath { - /* persistent management data*/ - int prkey_source; - struct be64 reservation_key; -+ uint8_t sa_flags; - unsigned char prflag; - int all_tg_pt; - struct gen_multipath generic_mp; -diff --git a/libmultipath/util.c b/libmultipath/util.c -index 7251ad0..8d8fcc8 100644 ---- a/libmultipath/util.c -+++ b/libmultipath/util.c -@@ -10,6 +10,8 @@ - #include <dirent.h> - #include <unistd.h> - #include <errno.h> -+#include <libudev.h> -+#include <mpath_persist.h> - - #include "util.h" - #include "debug.h" -@@ -435,6 +437,20 @@ int parse_prkey(char *ptr, uint64_t *prkey) - return 0; - } - -+int parse_prkey_flags(char *ptr, uint64_t *prkey, uint8_t *flags) -+{ -+ char *flagstr; -+ -+ flagstr = strchr(ptr, ':'); -+ *flags = 0; -+ if (flagstr) { -+ *flagstr++ = '\0'; -+ if (strlen(flagstr) == 5 && strcmp(flagstr, "aptpl") == 0) -+ *flags = MPATH_F_APTPL_MASK; -+ } -+ return parse_prkey(ptr, prkey); -+} -+ - int safe_write(int fd, const void *buf, size_t count) - { - while (count > 0) { -diff --git a/libmultipath/util.h b/libmultipath/util.h -index a3ab894..56cec76 100644 ---- a/libmultipath/util.h -+++ b/libmultipath/util.h -@@ -19,6 +19,7 @@ void setup_thread_attr(pthread_attr_t *attr, size_t stacksize, int detached); - int systemd_service_enabled(const char *dev); - int get_linux_version_code(void); - int parse_prkey(char *ptr, uint64_t *prkey); -+int parse_prkey_flags(char *ptr, uint64_t *prkey, uint8_t *flags); - int safe_write(int fd, const void *buf, size_t count); - - #define KERNEL_VERSION(maj, min, ptc) ((((maj) * 256) + (min)) * 256 + (ptc)) -diff --git a/multipath/multipath.conf.5 b/multipath/multipath.conf.5 -index 31f4585..30d8598 100644 ---- a/multipath/multipath.conf.5 -+++ b/multipath/multipath.conf.5 -@@ -726,14 +726,17 @@ This is the service action reservation key used by mpathpersist. It must be - set for all multipath devices using persistent reservations, and it must be - the same as the RESERVATION KEY field of the PERSISTENT RESERVE OUT parameter - list which contains an 8-byte value provided by the application client to the --device server to identify the I_T nexus. -+device server to identify the I_T nexus. If the \fI--param-aptpl\fR option is -+used when registering the key with mpathpersist, \fB:aptpl\fR must be appended -+to the end of the reservation key. - .RS - .PP - Alternatively, this can be set to \fBfile\fR, which will store the RESERVATION - KEY registered by mpathpersist in the \fIprkeys_file\fR. multipathd will then - use this key to register additional paths as they appear. When the - registration is removed, the RESERVATION KEY is removed from the --\fIprkeys_file\fR. -+\fIprkeys_file\fR. The prkeys file will automatically keep track of whether -+the key was registered with \fI--param-aptpl\fR. - .TP - The default is: \fB<unset>\fR - .RE -diff --git a/multipathd/cli_handlers.c b/multipathd/cli_handlers.c -index ba50fb8..6452796 100644 ---- a/multipathd/cli_handlers.c -+++ b/multipathd/cli_handlers.c -@@ -21,6 +21,7 @@ - #include "sysfs.h" - #include <errno.h> - #include <libudev.h> -+#include <mpath_persist.h> - #include "util.h" - #include "prkey.h" - #include "propsel.h" -@@ -1463,6 +1464,7 @@ cli_getprkey(void * v, char ** reply, int * len, void * data) - struct multipath * mpp; - struct vectors * vecs = (struct vectors *)data; - char *mapname = get_keyparam(v, MAP); -+ char *flagstr = ""; - - mapname = convert_dev(mapname, 0); - condlog(3, "%s: get persistent reservation key (operator)", mapname); -@@ -1478,8 +1480,10 @@ cli_getprkey(void * v, char ** reply, int * len, void * data) - *len = strlen(*reply) + 1; - return 0; - } -- snprintf(*reply, 20, "0x%" PRIx64 "\n", -- get_be64(mpp->reservation_key)); -+ if (mpp->sa_flags & MPATH_F_APTPL_MASK) -+ flagstr = ":aptpl"; -+ snprintf(*reply, 20, "0x%" PRIx64 "%s\n", -+ get_be64(mpp->reservation_key), flagstr); - (*reply)[19] = '\0'; - *len = strlen(*reply) + 1; - return 0; -@@ -1503,7 +1507,7 @@ cli_unsetprkey(void * v, char ** reply, int * len, void * data) - - conf = get_multipath_config(); - pthread_cleanup_push(put_multipath_config, conf); -- ret = set_prkey(conf, mpp, 0); -+ ret = set_prkey(conf, mpp, 0, 0); - pthread_cleanup_pop(1); - - return ret; -@@ -1517,6 +1521,7 @@ cli_setprkey(void * v, char ** reply, int * len, void * data) - char *mapname = get_keyparam(v, MAP); - char *keyparam = get_keyparam(v, KEY); - uint64_t prkey; -+ uint8_t flags; - int ret; - struct config *conf; - -@@ -1527,14 +1532,14 @@ cli_setprkey(void * v, char ** reply, int * len, void * data) - if (!mpp) - return 1; - -- if (parse_prkey(keyparam, &prkey) != 0) { -+ if (parse_prkey_flags(keyparam, &prkey, &flags) != 0) { - condlog(0, "%s: invalid prkey : '%s'", mapname, keyparam); - return 1; - } - - conf = get_multipath_config(); - pthread_cleanup_push(put_multipath_config, conf); -- ret = set_prkey(conf, mpp, prkey); -+ ret = set_prkey(conf, mpp, prkey, flags); - pthread_cleanup_pop(1); - - return ret; -diff --git a/multipathd/main.c b/multipathd/main.c -index d40c416..6b1e782 100644 ---- a/multipathd/main.c -+++ b/multipathd/main.c -@@ -3089,6 +3089,7 @@ void * mpath_pr_event_handler_fn (void * pathp ) - - param= malloc(sizeof(struct prout_param_descriptor)); - memset(param, 0 , sizeof(struct prout_param_descriptor)); -+ param->sa_flags = mpp->sa_flags; - memcpy(param->sa_key, &mpp->reservation_key, 8); - param->num_transportid = 0; - --- -2.7.4 - diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0018-multipath-don-t-check-timestamps-without-a-path.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0018-multipath-don-t-check-timestamps-without-a-path.patch deleted file mode 100644 index 5a3fd8374b..0000000000 --- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0018-multipath-don-t-check-timestamps-without-a-path.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Benjamin Marzinski <bmarzins@redhat.com> -Date: Tue, 5 Jun 2018 15:31:55 -0500 -Subject: [PATCH] multipath: don't check timestamps without a path - -If a path was blacklisted, pathvec could exist but have no path in it. -print_cmd_valid wasn't checking this before calling -find_multipaths_check_timeout(). This was causing it to dereference a -NULL pointer in these cases. - -Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com> ---- - multipath/main.c | 4 +--- - 1 file changed, 1 insertion(+), 3 deletions(-) - -diff --git a/multipath/main.c b/multipath/main.c -index c69e996..3f0a6aa 100644 ---- a/multipath/main.c -+++ b/multipath/main.c -@@ -482,10 +482,8 @@ static int print_cmd_valid(int k, const vector pathvec, - pp, pp->find_multipaths_timeout, &until); - if (wait != FIND_MULTIPATHS_WAITING) - k = 1; -- } else if (pathvec != NULL) { -- pp = VECTOR_SLOT(pathvec, 0); -+ } else if (pathvec != NULL && (pp = VECTOR_SLOT(pathvec, 0))) - wait = find_multipaths_check_timeout(pp, 0, &until); -- } - if (wait == FIND_MULTIPATHS_WAITING) - printf("FIND_MULTIPATHS_WAIT_UNTIL=\"%ld.%06ld\"\n", - until.tv_sec, until.tv_nsec/1000); --- -2.7.4 - diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0019-libmultipath-fix-detect-alua-corner-case.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0019-libmultipath-fix-detect-alua-corner-case.patch deleted file mode 100644 index 23908fa585..0000000000 --- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0019-libmultipath-fix-detect-alua-corner-case.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Benjamin Marzinski <bmarzins@redhat.com> -Date: Fri, 8 Jun 2018 17:12:37 -0500 -Subject: [PATCH] libmultipath: fix detect alua corner case - -If retain_attach_hw_handler = no, then the paths tpgs state will never -be checked, and the multipath device will always select the alua -handler, if no other handler is selected. the paths tpgs state -should be checked, regardless of the retain_hwhandler value. - -Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com> ---- - libmultipath/propsel.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/libmultipath/propsel.c b/libmultipath/propsel.c -index 62a6893..f626c74 100644 ---- a/libmultipath/propsel.c -+++ b/libmultipath/propsel.c -@@ -403,9 +403,11 @@ int select_hwhandler(struct config *conf, struct multipath *mp) - bool all_tpgs = true; - - dh_state = &handler[2]; -+ -+ vector_foreach_slot(mp->paths, pp, i) -+ all_tpgs = all_tpgs && (pp->tpgs > 0); - if (mp->retain_hwhandler != RETAIN_HWHANDLER_OFF) { - vector_foreach_slot(mp->paths, pp, i) { -- all_tpgs = all_tpgs && (pp->tpgs > 0); - if (get_dh_state(pp, dh_state, sizeof(handler) - 2) > 0 - && strcmp(dh_state, "detached")) { - memcpy(handler, "1 ", 2); --- -2.7.4 - diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0020-multipath-fix-setting-conf-version.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0020-multipath-fix-setting-conf-version.patch deleted file mode 100644 index 624f45efd8..0000000000 --- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0020-multipath-fix-setting-conf-version.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Benjamin Marzinski <bmarzins@redhat.com> -Date: Fri, 8 Jun 2018 17:23:07 -0500 -Subject: [PATCH] multipath: fix setting conf->version - -Commit d3b71498 stopped multipath from setting conf->version. Instead, -it was always being set to 0.0.0. Multipathd was still setting this -correctly. - -Fixes: d3b71498 "multipath: fix rcu thread cancellation hang" -Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com> ---- - libmultipath/devmapper.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/libmultipath/devmapper.c b/libmultipath/devmapper.c -index f2befad..8136d15 100644 ---- a/libmultipath/devmapper.c -+++ b/libmultipath/devmapper.c -@@ -245,13 +245,13 @@ void libmp_dm_init(void) - int verbosity; - unsigned int version[3]; - -+ if (dm_prereq(version)) -+ exit(1); - conf = get_multipath_config(); - verbosity = conf->verbosity; -- memcpy(version, conf->version, sizeof(version)); -+ memcpy(conf->version, version, sizeof(version)); - put_multipath_config(conf); - dm_init(verbosity); -- if (dm_prereq(version)) -- exit(1); - dm_udev_set_sync_support(libmp_dm_udev_sync); - } - --- -2.7.4 - diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0021-RH-fixup-udev-rules-for-redhat.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0021-RH-fixup-udev-rules-for-redhat.patch index 4ef3e708da..e88e25617d 100644 --- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0021-RH-fixup-udev-rules-for-redhat.patch +++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0021-RH-fixup-udev-rules-for-redhat.patch @@ -10,18 +10,21 @@ false warnings that gcc throws because of the changed options. Fix these too. Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com> + +Update patch to 0.8.0 + +Signed-off-by: Changqing Li <changqing.li@windriver.com> --- Makefile.inc | 2 +- kpartx/kpartx.rules | 2 +- multipath/Makefile | 4 ++-- - multipath/main.c | 2 +- - 4 files changed, 5 insertions(+), 5 deletions(-) + 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Makefile.inc b/Makefile.inc -index af2f5ba..0b271ea 100644 +index fc728ca..2f0bcea 100644 --- a/Makefile.inc +++ b/Makefile.inc -@@ -51,7 +51,7 @@ endif +@@ -48,7 +48,7 @@ endif prefix = exec_prefix = $(prefix) usr_prefix = $(prefix) @@ -64,19 +67,6 @@ index 0828a8f..b9bbb3c 100644 $(RM) $(DESTDIR)$(man8dir)/$(EXEC).8.gz $(RM) $(DESTDIR)$(man5dir)/$(EXEC).conf.5.gz -diff --git a/multipath/main.c b/multipath/main.c -index 3f0a6aa..6fdde03 100644 ---- a/multipath/main.c -+++ b/multipath/main.c -@@ -389,7 +389,7 @@ static int find_multipaths_check_timeout(const struct path *pp, long tmo, - struct timespec now, ftimes[2], tdiff; - struct stat st; - long fd; -- int r, err, retries = 0; -+ int r, err = 0, retries = 0; - - clock_gettime(CLOCK_REALTIME, &now); - -- 2.7.4 diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0022-RH-Remove-the-property-blacklist-exception-builtin.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0022-RH-Remove-the-property-blacklist-exception-builtin.patch index 451c524c9a..fd10608926 100644 --- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0022-RH-Remove-the-property-blacklist-exception-builtin.patch +++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0022-RH-Remove-the-property-blacklist-exception-builtin.patch @@ -1,7 +1,7 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Benjamin Marzinski <bmarzins@redhat.com> -Date: Wed, 2 Jul 2014 12:49:53 -0500 -Subject: [PATCH] RH: Remove the property blacklist exception builtin +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From:Benjamin Marzinski <bmarzins@redhat.com> +Date: Wed, 2 Jul 2014 12:49:53 -0500 +Subject: [PATCH] RH: Remove the property blacklist exception builtin Multipath set the default property blacklist exceptions to (ID_SCSI_VPD|ID_WWN). This has the effect of blacklisting some internal @@ -12,76 +12,46 @@ blacklist_exception is given, then devices aren't failed for not matching it. Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com> + +Upsteam-Status: Pending + +Update patch to 0.8.0 +Signed-off-by: Changqing Li <changqing.li@windriver.com> --- - libmultipath/blacklist.c | 15 ++++++--------- - multipath/multipath.conf.5 | 14 ++++++++------ - 2 files changed, 14 insertions(+), 15 deletions(-) + libmultipath/blacklist.c | 13 +++++-------- + 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/libmultipath/blacklist.c b/libmultipath/blacklist.c -index ee396e2..19d4697 100644 +index e0d0279..9f58313 100644 --- a/libmultipath/blacklist.c +++ b/libmultipath/blacklist.c -@@ -181,12 +181,6 @@ setup_default_blist (struct config * conf) - if (store_ble(conf->blist_devnode, str, ORIGIN_DEFAULT)) - return 1; +@@ -192,12 +192,6 @@ setup_default_blist (struct config * conf) + char * str; + int i; -- str = STRDUP("(SCSI_IDENT_|ID_WWN)"); +- str = STRDUP("^(ram|zram|raw|loop|fd|md|dm-|sr|scd|st|dcssblk)[0-9]"); - if (!str) - return 1; -- if (store_ble(conf->elist_property, str, ORIGIN_DEFAULT)) +- if (store_ble(conf->blist_devnode, str, ORIGIN_DEFAULT)) - return 1; - - vector_foreach_slot (conf->hwtable, hwe, i) { - if (hwe->bl_product) { - if (_blacklist_device(conf->blist_device, hwe->vendor, -@@ -390,9 +384,12 @@ filter_property(struct config * conf, struct udev_device * udev) - * This is the inverse of the 'normal' matching; - * the environment variable _has_ to match. - */ -- log_filter(devname, NULL, NULL, NULL, NULL, -- MATCH_PROPERTY_BLIST_MISSING); -- return MATCH_PROPERTY_BLIST_MISSING; -+ if (VECTOR_SIZE(conf->elist_property)) { -+ log_filter(devname, NULL, NULL, NULL, NULL, -+ MATCH_PROPERTY_BLIST_MISSING); -+ return MATCH_PROPERTY_BLIST_MISSING; -+ } -+ return 0; + str = STRDUP("^(td|hd|vd)[a-z]"); + if (!str) + return 1; +@@ -415,8 +409,11 @@ filter_property(struct config *conf, struct udev_device *udev, int lvl) + } + } + +- log_filter(devname, NULL, NULL, NULL, env, NULL, r, lvl); +- return r; ++ if (VECTOR_SIZE(conf->elist_property)) { ++ log_filter(devname, NULL, NULL, NULL, env, NULL, r, lvl); ++ return r; ++ } ++ return 0; } - void -diff --git a/multipath/multipath.conf.5 b/multipath/multipath.conf.5 -index 30d8598..c45da9f 100644 ---- a/multipath/multipath.conf.5 -+++ b/multipath/multipath.conf.5 -@@ -1179,10 +1179,6 @@ The \fIWorld Wide Identification\fR of a device. - .TP - .B property - Regular expression of the udev property to be whitelisted. --.RS --.TP --The default is: \fB(SCSI_IDENT_|ID_WWN)\fR --.RE - .TP - .B device - Subsection for the device description. This subsection recognizes the -@@ -1193,8 +1189,14 @@ keywords. For a full description of these keywords please see the \fIdevices\fR - section description. - .LP - The \fIproperty\fR whitelist handling is different from the usual --handling in the sense that the device \fIhas\fR to have a udev property that --matches the whitelist, otherwise the device will be blacklisted. In these cases the message \fIblacklisted, udev property missing\fR will be displayed. -+handling in the sense that if the propery whitelist is set, the device -+\fIhas\fR to have a udev property that matches the whitelist, otherwise the -+device will be blacklisted. In these cases the message \fIblacklisted, udev -+property missing\fR will be displayed. For example settting the -+property blacklist_exception to \fB(SCSI_IDENT_|ID_WWN)\fR will blacklist -+all devices that have no udev property whose name regex matches either -+\fBSCSI_IDENT_\fR or \fBID_WWN\fR. This works to exclude most -+non-multipathable devices. - . - . - .\" ---------------------------------------------------------------------------- + static void free_ble(struct blentry *ble) -- 2.7.4 diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0023-RH-don-t-start-without-a-config-file.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0023-RH-don-t-start-without-a-config-file.patch index 886f1c86f1..ea6137f878 100644 --- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0023-RH-don-t-start-without-a-config-file.patch +++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0023-RH-don-t-start-without-a-config-file.patch @@ -1,7 +1,10 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Benjamin Marzinski <bmarzins@redhat.com> -Date: Wed, 15 Oct 2014 10:39:30 -0500 -Subject: [PATCH] RH: don't start without a config file +From 0bf8ff8dab26201b268b419809844c07e168f17d Mon Sep 17 00:00:00 2001 +From: Changqing Li <changqing.li@windriver.com> +Date: Fri, 23 Nov 2018 17:25:15 +0800 +Subject: [PATCH] From 0000000000000000000000000000000000000000 Mon Sep 17 + 00:00:00 2001 From: Benjamin Marzinski <bmarzins@redhat.com> Date: Wed, 15 + Oct 2014 10:39:30 -0500 Subject: [PATCH] RH: don't start without a config + file If /etc/multipath.conf doesn't exist, don't start multipathd and blacklist all devices when running multipath. A completely blank configuration file @@ -11,16 +14,21 @@ simple way to disable multipath. Simply removing or renaming /etc/multipath.conf will keep multipath from doing anything. Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com> + +Upstream-Status: Pending + +update this patch to new version +Signed-off-by: Changqing Li <changqing.li@windriver.com> --- - libmultipath/config.c | 15 +++++++++++++++ + libmultipath/config.c | 18 ++++++++++++++++++ libmultipath/config.h | 1 + multipath/multipath.rules | 1 + multipathd/multipathd.8 | 2 ++ multipathd/multipathd.service | 1 + - 5 files changed, 20 insertions(+) + 5 files changed, 23 insertions(+) diff --git a/libmultipath/config.c b/libmultipath/config.c -index 5872927..0607403 100644 +index 5af7af5..e4233f1 100644 --- a/libmultipath/config.c +++ b/libmultipath/config.c @@ -26,6 +26,7 @@ @@ -30,30 +38,33 @@ index 5872927..0607403 100644 +#include "version.h" static int - hwe_strmatch (struct hwentry *hwe1, struct hwentry *hwe2) -@@ -658,6 +659,20 @@ load_config (char * file) - factorize_hwtable(conf->hwtable, builtin_hwtable_size); + hwe_strmatch (const struct hwentry *hwe1, const struct hwentry *hwe2) +@@ -743,6 +745,23 @@ load_config (char * file) + goto out; } - + factorize_hwtable(conf->hwtable, builtin_hwtable_size, file); + } else { + condlog(0, "/etc/multipath.conf does not exist, blacklisting all devices."); + if (conf->blist_devnode == NULL) { + conf->blist_devnode = vector_alloc(); + if (!conf->blist_devnode) { -+ condlog(0, "cannot allocate blacklist\n"); ++ conf->blist_devnode = vector_alloc(); ++ if (!conf->blist_devnode) { ++ condlog(0, "cannot allocate blacklist\n"); ++ goto out; ++ } ++ } ++ if (store_ble(conf->blist_devnode, strdup(".*"), ++ ORIGIN_NO_CONFIG)) { ++ condlog(0, "cannot store default no-config blacklist\n"); + goto out; + } + } -+ if (store_ble(conf->blist_devnode, strdup(".*"), -+ ORIGIN_NO_CONFIG)) { -+ condlog(0, "cannot store default no-config blacklist\n"); -+ goto out; -+ } } conf->processed_main_config = 1; diff --git a/libmultipath/config.h b/libmultipath/config.h -index fcbe3fc..3a42435 100644 +index 7d0cd9a..d7fb8e2 100644 --- a/libmultipath/config.h +++ b/libmultipath/config.h @@ -9,6 +9,7 @@ @@ -65,7 +76,7 @@ index fcbe3fc..3a42435 100644 /* * In kernel, fast_io_fail == 0 means immediate failure on rport delete. diff --git a/multipath/multipath.rules b/multipath/multipath.rules -index d658073..b3f54d7 100644 +index 9df11a9..0486bf7 100644 --- a/multipath/multipath.rules +++ b/multipath/multipath.rules @@ -9,6 +9,7 @@ IMPORT{cmdline}="nompath" @@ -77,7 +88,7 @@ index d658073..b3f54d7 100644 ENV{DEVTYPE}!="partition", GOTO="test_dev" IMPORT{parent}="DM_MULTIPATH_DEVICE_PATH" diff --git a/multipathd/multipathd.8 b/multipathd/multipathd.8 -index e78ac9e..09cdead 100644 +index 94c3f97..ed13efd 100644 --- a/multipathd/multipathd.8 +++ b/multipathd/multipathd.8 @@ -38,6 +38,8 @@ map regains its maximum performance and redundancy. diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0024-RH-use-rpm-optflags-if-present.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0024-RH-use-rpm-optflags-if-present.patch index 9330bf0701..77dd96fee6 100644 --- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0024-RH-use-rpm-optflags-if-present.patch +++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0024-RH-use-rpm-optflags-if-present.patch @@ -1,49 +1,58 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Benjamin Marzinski <bmarzins@redhat.com> -Date: Wed, 19 Apr 2017 06:10:01 -0500 -Subject: [PATCH] RH: use rpm optflags if present +From 436f7594485e35523269e662c4b5dc3a2c10ff9b Mon Sep 17 00:00:00 2001 +From: Changqing Li <changqing.li@windriver.com> +Date: Mon, 26 Nov 2018 09:19:17 +0800 +Subject: [PATCH] From 0000000000000000000000000000000000000000 Mon Sep 17 + 00:00:00 2001 From: Benjamin Marzinski <bmarzins@redhat.com> Date: Wed, 19 + Apr 2017 06:10:01 -0500 Subject: [PATCH] RH: use rpm optflags if present Use the passed in optflags when compiling as an RPM, and keep the default flags as close as possible to the current fedora flags, while still being generic. Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com> + +Upstream-Status: Pending + +update this patch to new version + +Signed-off-by: Changqing Li <changqing.li@windriver.com> --- - Makefile.inc | 24 ++++++++++++++++-------- - 1 file changed, 16 insertions(+), 8 deletions(-) + Makefile.inc | 25 ++++++++++++++++--------- + 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/Makefile.inc b/Makefile.inc -index 0b271ea..5ff69a3 100644 +index b86cba6..295afb9 100644 --- a/Makefile.inc +++ b/Makefile.inc -@@ -85,14 +85,22 @@ TEST_CC_OPTION = $(shell \ +@@ -85,15 +85,22 @@ TEST_CC_OPTION = $(shell \ echo "$(2)"; \ fi) -STACKPROT := $(call TEST_CC_OPTION,-fstack-protector-strong,-fstack-protector) +-ERROR_DISCARDED_QUALIFIERS := $(call TEST_CC_OPTION,-Werror=discarded-qualifiers,) - -OPTFLAGS = -O2 -g -pipe -Wall -Wextra -Wformat=2 -Werror=implicit-int \ - -Werror=implicit-function-declaration -Werror=format-security \ - -Wno-sign-compare -Wno-unused-parameter -Wno-clobbered \ -- -Werror=cast-qual -Werror=discarded-qualifiers \ +- -Werror=cast-qual $(ERROR_DISCARDED_QUALIFIERS) \ - -Wp,-D_FORTIFY_SOURCE=2 $(STACKPROT) \ - --param=ssp-buffer-size=4 +ifndef RPM_OPT_FLAGS -+ STACKPROT := $(call TEST_CC_OPTION,-fstack-protector-strong,-fstack-protector) -+ OPTFLAGS = -O2 -g -pipe -Wall -Werror=format-security \ -+ -Wp,-D_FORTIFY_SOURCE=2 -fexceptions \ -+ $(STACKPROT) --param=ssp-buffer-size=4 \ -+ -grecord-gcc-switches -+ ifeq ($(shell test -f /usr/lib/rpm/redhat/redhat-hardened-cc1 && echo 1),1) -+ OPTFLAGS += -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -+ endif ++ STACKPROT := $(call TEST_CC_OPTION,-fstack-protector-strong,-fstack-protector) ++ OPTFLAGS = -O2 -g -pipe -Wall -Werror=format-security \ ++ -Wp,-D_FORTIFY_SOURCE=2 -fexceptions \ ++ $(STACKPROT) --param=ssp-buffer-size=4 \ ++ -grecord-gcc-switches ++ ifeq ($(shell test -f /usr/lib/rpm/redhat/redhat-hardened-cc1 && echo 1),1) ++ OPTFLAGS += -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 ++ endif +else -+ OPTFLAGS = $(RPM_OPT_FLAGS) ++ OPTFLAGS = $(RPM_OPT_FLAGS) +endif -+OPTFLAGS += -Wextra -Wstrict-prototypes -Wformat=2 -Werror=implicit-int \ -+ -Werror=implicit-function-declaration -Wno-sign-compare \ -+ -Wno-unused-parameter -Werror=cast-qual \ -+ -Werror=discarded-qualifiers ++OPTFLAGS += -Wextra -Wstrict-prototypes -Wformat=2 -Werror=implicit-int \ ++ -Werror=implicit-function-declaration -Wno-sign-compare \ ++ -Wno-unused-parameter -Werror=cast-qual \ ++ -Werror=discarded-qualifiers CFLAGS := $(OPTFLAGS) -DBIN_DIR=\"$(bindir)\" -DLIB_STRING=\"${LIB}\" -DRUN_DIR=\"${RUN}\" \ -MMD -MP $(CFLAGS) diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0025-RH-add-mpathconf.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0025-RH-add-mpathconf.patch index 5cad22b2b2..a1407718d5 100644 --- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0025-RH-add-mpathconf.patch +++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0025-RH-add-mpathconf.patch @@ -1,7 +1,9 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Benjamin Marzinski <bmarzins@redhat.com> -Date: Thu, 16 Oct 2014 15:49:01 -0500 -Subject: [PATCH] RH: add mpathconf +From eb5a36e6e0caedf06008e48eb77b7bf7c6534ee5 Mon Sep 17 00:00:00 2001 +From: Changqing Li <changqing.li@windriver.com> +Date: Mon, 26 Nov 2018 09:55:12 +0800 +Subject: [PATCH] From 0000000000000000000000000000000000000000 Mon Sep 17 + 00:00:00 2001 From: Benjamin Marzinski <bmarzins@redhat.com> Date: Thu, 16 + Oct 2014 15:49:01 -0500 Subject: [PATCH] RH: add mpathconf mpathconf is a program (largely based on lvmcomf) to help users configure /etc/multipath.conf and enable or disable multipathing. It @@ -11,6 +13,12 @@ with the OS defaults, and to enable and disable multipathing via a single command. Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com> + +Upstream-Status: Pending + +update this patch to new version + +Signed-off-by: Changqing Li <changqing.li@windriver.com> --- libmultipath/config.c | 1 + multipath/Makefile | 5 + @@ -21,11 +29,11 @@ Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com> create mode 100644 multipath/mpathconf.8 diff --git a/libmultipath/config.c b/libmultipath/config.c -index 0607403..5c98e48 100644 +index e4233f1..b779505 100644 --- a/libmultipath/config.c +++ b/libmultipath/config.c -@@ -661,6 +661,7 @@ load_config (char * file) - +@@ -747,6 +747,7 @@ load_config (char * file) + factorize_hwtable(conf->hwtable, builtin_hwtable_size, file); } else { condlog(0, "/etc/multipath.conf does not exist, blacklisting all devices."); + condlog(0, "You can run /sbin/mpathconf to create or modify /etc/multipath.conf"); diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0026-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0026-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch index ddf022f762..938262ba47 100644 --- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0026-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch +++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0026-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch @@ -1,7 +1,7 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Benjamin Marzinski <bmarzins@redhat.com> -Date: Fri, 17 Oct 2014 11:20:34 -0500 -Subject: [PATCH] RH: add wwids from kernel cmdline mpath.wwids with -A +Date: Fri, 17 Oct 2014 11:20:34 -0500 +Subject: [PATCH] RH: add wwids from kernel cmdline mpath.wwids with -A This patch adds another option to multipath, "-A", which reads /proc/cmdline for mpath.wwid=<WWID> options, and adds any wwids it finds @@ -13,16 +13,22 @@ patch also execs "/sbin/multipath -A" before running multipathd in multipathd.service Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com> + +Upstream-Status: Pending + +Update this patch to new version 0.8.0 + +Signed-off-by: Changqing Li <changqing.li@windriver.com> --- libmultipath/wwids.c | 44 +++++++++++++++++++++++++++++++++++++++++++ libmultipath/wwids.h | 1 + - multipath/main.c | 10 ++++++++-- - multipath/multipath.8 | 5 ++++- + multipath/main.c | 9 ++++++++- + multipath/multipath.8 | 3 +++ multipathd/multipathd.service | 1 + - 5 files changed, 58 insertions(+), 3 deletions(-) + 5 files changed, 57 insertions(+), 1 deletion(-) diff --git a/libmultipath/wwids.c b/libmultipath/wwids.c -index 53e7951..39e08cd 100644 +index 53e7951..9ba9b62 100644 --- a/libmultipath/wwids.c +++ b/libmultipath/wwids.c @@ -443,3 +443,47 @@ int op ## _wwid(const char *wwid) \ @@ -32,46 +38,46 @@ index 53e7951..39e08cd 100644 + +int remember_cmdline_wwid(void) +{ -+ FILE *f = NULL; -+ char buf[LINE_MAX], *next, *ptr; -+ int ret = 0; ++ FILE *f = NULL; ++ char buf[LINE_MAX], *next, *ptr; ++ int ret = 0; + -+ f = fopen("/proc/cmdline", "re"); -+ if (!f) { -+ condlog(0, "can't open /proc/cmdline : %s", strerror(errno)); -+ return -1; -+ } ++ f = fopen("/proc/cmdline", "re"); ++ if (!f) { ++ condlog(0, "can't open /proc/cmdline : %s", strerror(errno)); ++ return -1; ++ } + -+ if (!fgets(buf, sizeof(buf), f)) { -+ if (ferror(f)) -+ condlog(0, "read of /proc/cmdline failed : %s", -+ strerror(errno)); -+ else -+ condlog(0, "couldn't read /proc/cmdline"); -+ fclose(f); -+ return -1; -+ } -+ fclose(f); -+ next = buf; -+ while((ptr = strstr(next, "mpath.wwid="))) { -+ ptr += 11; -+ next = strpbrk(ptr, " \t\n"); -+ if (next) { -+ *next = '\0'; -+ next++; -+ } -+ if (strlen(ptr)) { -+ if (remember_wwid(ptr) != 0) -+ ret = -1; -+ } -+ else { -+ condlog(0, "empty mpath.wwid kernel command line option"); -+ ret = -1; -+ } -+ if (!next) -+ break; -+ } -+ return ret; ++ if (!fgets(buf, sizeof(buf), f)) { ++ if (ferror(f)) ++ condlog(0, "read of /proc/cmdline failed : %s", ++ strerror(errno)); ++ else ++ condlog(0, "couldn't read /proc/cmdline"); ++ fclose(f); ++ return -1; ++ } ++ fclose(f); ++ next = buf; ++ while((ptr = strstr(next, "mpath.wwid="))) { ++ ptr += 11; ++ next = strpbrk(ptr, " \t\n"); ++ if (next) { ++ *next = '\0'; ++ next++; ++ } ++ if (strlen(ptr)) { ++ if (remember_wwid(ptr) != 0) ++ ret = -1; ++ } ++ else { ++ condlog(0, "empty mpath.wwid kernel command line option"); ++ ret = -1; ++ } ++ if (!next) ++ break; ++ } ++ return ret; +} diff --git a/libmultipath/wwids.h b/libmultipath/wwids.h index 0c6ee54..e32a0b0 100644 @@ -86,19 +92,18 @@ index 0c6ee54..e32a0b0 100644 enum { WWID_IS_NOT_FAILED = 0, diff --git a/multipath/main.c b/multipath/main.c -index 6fdde03..7bac232 100644 +index 5abb118..c751b31 100644 --- a/multipath/main.c +++ b/multipath/main.c -@@ -109,7 +109,7 @@ usage (char * progname) - { +@@ -134,6 +134,7 @@ usage (char * progname) fprintf (stderr, VERSION_STRING); fprintf (stderr, "Usage:\n"); -- fprintf (stderr, " %s [-a|-c|-w|-W] [-d] [-r] [-i] [-v lvl] [-p pol] [-b fil] [-q] [dev]\n", progname); + fprintf (stderr, " %s [-a|-c|-w|-W] [-d] [-r] [-i] [-v lvl] [-p pol] [-b fil] [-q] [dev]\n", progname); + fprintf (stderr, " %s [-a|-A|-c|-w|-W] [-d] [-r] [-i] [-v lvl] [-p pol] [-b fil] [-q] [dev]\n", progname); fprintf (stderr, " %s -l|-ll|-f [-v lvl] [-b fil] [-R num] [dev]\n", progname); fprintf (stderr, " %s -F [-v lvl] [-R num]\n", progname); - fprintf (stderr, " %s -t\n", progname); -@@ -123,6 +123,8 @@ usage (char * progname) + fprintf (stderr, " %s [-t|-T]\n", progname); +@@ -147,6 +148,8 @@ usage (char * progname) " -f flush a multipath device map\n" " -F flush all multipath device maps\n" " -a add a device wwid to the wwids file\n" @@ -107,40 +112,31 @@ index 6fdde03..7bac232 100644 " -c check if a device should be a path in a multipath device\n" " -C check if a multipath device has usable paths\n" " -q allow queue_if_no_path when multipathd is not running\n" -@@ -907,7 +909,7 @@ main (int argc, char *argv[]) - exit(1); +@@ -870,7 +873,7 @@ main (int argc, char *argv[]) + exit(RTVL_FAIL); multipath_conf = conf; conf->retrigger_tries = 0; -- while ((arg = getopt(argc, argv, ":adcChl::FfM:v:p:b:BrR:itquUwW")) != EOF ) { -+ while ((arg = getopt(argc, argv, ":aAdcChl::FfM:v:p:b:BrR:itquUwW")) != EOF ) { +- while ((arg = getopt(argc, argv, ":adcChl::FfM:v:p:b:BrR:itTquUwW")) != EOF ) { ++ while ((arg = getopt(argc, argv, ":aAdcChl::FfM:v:p:b:BrR:itTquUwW")) != EOF ) { switch(arg) { case 1: printf("optarg : %s\n",optarg); break; -@@ -974,6 +976,10 @@ main (int argc, char *argv[]) +@@ -937,6 +940,10 @@ main (int argc, char *argv[]) case 't': - r = dump_config(conf); + r = dump_config(conf, NULL, NULL) ? RTVL_FAIL : RTVL_OK; goto out_free_config; + case 'A': + if (remember_cmdline_wwid() != 0) + exit(1); + exit(0); - case 'h': - usage(argv[0]); - exit(0); + case 'T': + cmd = CMD_DUMP_CONFIG; + break; diff --git a/multipath/multipath.8 b/multipath/multipath.8 -index 914a8cb..8c6a4c1 100644 +index 9cdd05a..1e120f3 100644 --- a/multipath/multipath.8 +++ b/multipath/multipath.8 -@@ -25,7 +25,7 @@ multipath \- Device mapper target autoconfig. - .RB [\| \-b\ \c - .IR bindings_file \|] - .RB [\| \-d \|] --.RB [\| \-h | \-l | \-ll | \-f | \-t | \-F | \-B | \-c | \-C | \-q | \-r | \-i | \-a | \-u | \-U | \-w | \-W \|] -+.RB [\| \-h | \-l | \-ll | \-f | \-t | \-F | \-B | \-c | \-C | \-q | \-r | \-i | \-a | \-A | \-u | \-U | \-w | \-W \|] - .RB [\| \-p\ \c - .IR failover | multibus | group_by_serial | group_by_prio | group_by_node_name \|] - .RB [\| \-R\ \c -@@ -135,6 +135,9 @@ Add the WWID for the specified device to the WWIDs file. +@@ -167,6 +167,9 @@ itself doesn't attempt to do I/O on the device. Check if the device specified in the program environment should be a path in a multipath device. . diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0027-RH-warn-on-invalid-regex-instead-of-failing.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0027-RH-warn-on-invalid-regex-instead-of-failing.patch index a23e167393..57d04d02bb 100644 --- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0027-RH-warn-on-invalid-regex-instead-of-failing.patch +++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0027-RH-warn-on-invalid-regex-instead-of-failing.patch @@ -1,7 +1,10 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Benjamin Marzinski <bmarzins@redhat.com> -Date: Mon, 6 Nov 2017 21:39:28 -0600 -Subject: [PATCH] RH: warn on invalid regex instead of failing +From d16de70b76919269561b4e404825f78286ea9a40 Mon Sep 17 00:00:00 2001 +From: Changqing Li <changqing.li@windriver.com> +Date: Mon, 26 Nov 2018 10:31:30 +0800 +Subject: [PATCH] From 0000000000000000000000000000000000000000 Mon Sep 17 + 00:00:00 2001 From: Benjamin Marzinski <bmarzins@redhat.com> Date: Mon, 6 Nov + 2017 21:39:28 -0600 Subject: [PATCH] RH: warn on invalid regex instead of + failing multipath.conf used to allow "*" as a match everything regular expression, instead of requiring ".*". Instead of erroring when the old style @@ -9,48 +12,56 @@ regular expressions are used, it should print a warning and convert them. Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com> + +Upstream-Status: Pending + +update this patch to new version + +Signed-off-by: Changqing Li <changqing.li@windriver.com> --- - libmultipath/dict.c | 27 +++++++++++++++++++++------ + libmultipath/dict.c | 29 ++++++++++++++++++++++------- libmultipath/parser.c | 13 +++++++++++++ - libmultipath/parser.h | 1 + - 3 files changed, 35 insertions(+), 6 deletions(-) + libmultipath/parser.h | 2 +- + 3 files changed, 36 insertions(+), 8 deletions(-) diff --git a/libmultipath/dict.c b/libmultipath/dict.c -index 7ad0f5a..ab808d6 100644 +index a81c051..0689763 100644 --- a/libmultipath/dict.c +++ b/libmultipath/dict.c -@@ -55,6 +55,21 @@ set_str(vector strvec, void *ptr) +@@ -59,6 +59,21 @@ set_str(vector strvec, void *ptr) } static int +set_regex(vector strvec, void *ptr) +{ -+ char **str_ptr = (char **)ptr; ++ char **str_ptr = (char **)ptr; + -+ if (*str_ptr) -+ FREE(*str_ptr); -+ *str_ptr = set_regex_value(strvec); ++ if (*str_ptr) ++ FREE(*str_ptr); ++ *str_ptr = set_regex_value(strvec); + -+ if (!*str_ptr) -+ return 1; ++ if (!*str_ptr) ++ return 1; + -+ return 0; ++ return 0; +} + +static int set_yes_no(vector strvec, void *ptr) { char * buff; -@@ -1271,7 +1286,7 @@ ble_ ## option ## _handler (struct config *conf, vector strvec) \ +@@ -1346,8 +1361,8 @@ ble_ ## option ## _handler (struct config *conf, vector strvec) \ + \ if (!conf->option) \ return 1; \ - \ +- \ - buff = set_value(strvec); \ ++ \ + buff = set_regex_value(strvec); \ if (!buff) \ return 1; \ \ -@@ -1287,7 +1302,7 @@ ble_ ## option ## _ ## name ## _handler (struct config *conf, vector strvec) \ +@@ -1363,7 +1378,7 @@ ble_ ## option ## _ ## name ## _handler (struct config *conf, vector strvec) \ if (!conf->option) \ return 1; \ \ @@ -59,7 +70,7 @@ index 7ad0f5a..ab808d6 100644 if (!buff) \ return 1; \ \ -@@ -1388,16 +1403,16 @@ device_handler(struct config *conf, vector strvec) +@@ -1466,16 +1481,16 @@ device_handler(struct config *conf, vector strvec) return 0; } @@ -81,37 +92,38 @@ index 7ad0f5a..ab808d6 100644 declare_hw_handler(hwhandler, set_str) diff --git a/libmultipath/parser.c b/libmultipath/parser.c -index b8b7e0d..34b4ad2 100644 +index 92ef7cf..0e2cf49 100644 --- a/libmultipath/parser.c +++ b/libmultipath/parser.c -@@ -380,6 +380,19 @@ set_value(vector strvec) +@@ -384,6 +384,19 @@ set_value(vector strvec) return alloc; } +void * +set_regex_value(vector strvec) +{ -+ char *buff = set_value(strvec); ++ char *buff = set_value(strvec); + -+ if (buff && strcmp("*", buff) == 0) { -+ condlog(0, "Invalid regular expression \"*\" in multipath.conf. Using \".*\""); -+ FREE(buff); -+ return strdup(".*"); -+ } -+ return buff; ++ if (buff && strcmp("*", buff) == 0) { ++ condlog(0, "Invalid regular expression \"*\" in multipath.conf. Using \".*\""); ++ FREE(buff); ++ return strdup(".*"); ++ } ++ return buff; +} + /* non-recursive configuration stream handler */ static int kw_level = 0; diff --git a/libmultipath/parser.h b/libmultipath/parser.h -index 62906e9..b791705 100644 +index 62906e9..b6899fc 100644 --- a/libmultipath/parser.h +++ b/libmultipath/parser.h -@@ -77,6 +77,7 @@ extern void dump_keywords(vector keydump, int level); +@@ -76,7 +76,7 @@ extern int _install_keyword(vector keywords, char *string, + extern void dump_keywords(vector keydump, int level); extern void free_keywords(vector keywords); extern vector alloc_strvec(char *string); - extern void *set_value(vector strvec); +-extern void *set_value(vector strvec); +extern void *set_regex_value(vector strvec); extern int process_file(struct config *conf, char *conf_file); extern struct keyword * find_keyword(vector keywords, vector v, char * name); diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0028-RH-reset-default-find_mutipaths-value-to-off.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0028-RH-reset-default-find_mutipaths-value-to-off.patch index 05e686492e..ad03b8acc4 100644 --- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0028-RH-reset-default-find_mutipaths-value-to-off.patch +++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0028-RH-reset-default-find_mutipaths-value-to-off.patch @@ -1,18 +1,27 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Benjamin Marzinski <bmarzins@redhat.com> -Date: Thu, 7 Jun 2018 17:43:52 -0500 -Subject: [PATCH] RH: reset default find_mutipaths value to off +From 16900150e02e5b367a8b33621b393975ad011130 Mon Sep 17 00:00:00 2001 +From: Changqing Li <changqing.li@windriver.com> +Date: Mon, 26 Nov 2018 11:12:01 +0800 +Subject: [PATCH] From 0000000000000000000000000000000000000000 Mon Sep 17 + 00:00:00 2001 From: Benjamin Marzinski <bmarzins@redhat.com> Date: Thu, 7 Jun + 2018 17:43:52 -0500 Subject: [PATCH] RH: reset default find_mutipaths value + to off Upstream has changed to default find_multipaths to "strict". For now Redhat will retain the previous default of "off". Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com> + +Upstream-Status: Pending + +Update this patch to new version + +Signed-off-by: Changqing Li <changqing.li@windriver.com> --- libmultipath/defaults.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libmultipath/defaults.h b/libmultipath/defaults.h -index f076b4b..70ba98a 100644 +index 6576939..a2404b2 100644 --- a/libmultipath/defaults.h +++ b/libmultipath/defaults.h @@ -17,7 +17,7 @@ @@ -20,7 +29,7 @@ index f076b4b..70ba98a 100644 #define DEFAULT_VERBOSITY 2 #define DEFAULT_REASSIGN_MAPS 0 -#define DEFAULT_FIND_MULTIPATHS FIND_MULTIPATHS_STRICT -+#define DEFAULT_FIND_MULTIPATHS FIND_MULTIPATHS_OFF ++#define DEFAULT_FIND_MULTIPATHS FIND_MULTIPATHS_OFF #define DEFAULT_FAST_IO_FAIL 5 #define DEFAULT_DEV_LOSS_TMO 600 #define DEFAULT_RETAIN_HWHANDLER RETAIN_HWHANDLER_ON diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0029-multipath-tools-modify-Makefile.inc-for-cross-compil.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0029-multipath-tools-modify-Makefile.inc-for-cross-compil.patch index 45cd32ac2e..4fa7960b17 100644 --- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0029-multipath-tools-modify-Makefile.inc-for-cross-compil.patch +++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0029-multipath-tools-modify-Makefile.inc-for-cross-compil.patch @@ -1,7 +1,10 @@ -From 8bdd4481d822b6625d8bf719431ca74ed1b5e021 Mon Sep 17 00:00:00 2001 +From a805b601fcf4bb9e269566a8d25e48d9e60915c0 Mon Sep 17 00:00:00 2001 From: Changqing Li <changqing.li@windriver.com> -Date: Mon, 16 Jul 2018 15:56:37 +0800 -Subject: [PATCH] multipath-tools: modify Makefile.inc for cross-compilation +Date: Mon, 26 Nov 2018 11:14:24 +0800 +Subject: [PATCH] From 8bdd4481d822b6625d8bf719431ca74ed1b5e021 Mon Sep 17 + 00:00:00 2001 From: Changqing Li <changqing.li@windriver.com> Date: Mon, 16 + Jul 2018 15:56:37 +0800 Subject: [PATCH] multipath-tools: modify Makefile.inc + for cross-compilation Do not look for systemd info on the host, and allow us to pass in CFLAGS using the OPTFLAGS variable. @@ -23,12 +26,15 @@ update for version 0.7.7 remove change about CFLAGS part, since patch 0024 already have similar function. Signed-off-by: Changqing Li <changqing.li@windriver.com> + +update for version 0.7.9 +Signed-off-by: Changqing Li <changqing.li@windriver.com> --- - Makefile.inc | 8 ++------ - 1 file changed, 2 insertions(+), 6 deletions(-) + Makefile.inc | 6 ------ + 1 file changed, 6 deletions(-) diff --git a/Makefile.inc b/Makefile.inc -index 57a1835..0c403c7 100644 +index 295afb9..7136db3 100644 --- a/Makefile.inc +++ b/Makefile.inc @@ -38,12 +38,6 @@ ifndef RUN diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0030-Always-use-devmapper.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0030-Always-use-devmapper.patch index 12811804a3..3e88b41004 100644 --- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0030-Always-use-devmapper.patch +++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0030-Always-use-devmapper.patch @@ -1,7 +1,7 @@ -From d929a1ea5e42ecbe30c990644ed4ada2817c6439 Mon Sep 17 00:00:00 2001 +From e4acb46b10484d1da6f093257e34f269832e6a37 Mon Sep 17 00:00:00 2001 From: Changqing Li <changqing.li@windriver.com> -Date: Mon, 16 Jul 2018 16:00:14 +0800 -Subject: [PATCH] Always use devmapper +Date: Mon, 26 Nov 2018 11:17:41 +0800 +Subject: [PATCH] Subject: [PATCH] Always use devmapper Do not try to compute several _API_ make variables from host information when cross-compiling. @@ -18,12 +18,15 @@ Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Rebase to 0.7.7 Signed-off-by: Changqing Li <changqing.li@windriver.com> + +Rebase to 0.7.9 +Signed-off-by: Changqing Li <changqing.li@windriver.com> --- libmultipath/Makefile | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/libmultipath/Makefile b/libmultipath/Makefile -index f51786d..3ad9c48 100644 +index 33f5269..adf6f4a 100644 --- a/libmultipath/Makefile +++ b/libmultipath/Makefile @@ -20,21 +20,10 @@ ifdef SYSTEMD diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0031-Always-use-devmapper-for-kpartx.patch b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0031-Always-use-devmapper-for-kpartx.patch index 88a758dcb7..418c0200f4 100644 --- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0031-Always-use-devmapper-for-kpartx.patch +++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/files/0031-Always-use-devmapper-for-kpartx.patch @@ -1,7 +1,7 @@ -From 145f2b829e5362cda975bebafd7fe4d00ff56d1c Mon Sep 17 00:00:00 2001 +From 1fe937835311a2d0afbc85ce4a4dbd3c9e0c912f Mon Sep 17 00:00:00 2001 From: Changqing Li <changqing.li@windriver.com> -Date: Mon, 16 Jul 2018 16:02:07 +0800 -Subject: [PATCH] Always use devmapper for kpartx +Date: Mon, 26 Nov 2018 11:19:45 +0800 +Subject: [PATCH] Subject: [PATCH] Always use devmapper for kpartx Do not try to compute the LIBDM_API_COOKIE make variable from host information when cross-compiling. @@ -16,6 +16,9 @@ Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Rebase to 0.7.7 Signed-off-by: Changqing Li <changqing.li@windriver.com> + +Rebase to 0.7.9 +Signed-off-by: Changqing Li <changqing.li@windriver.com> --- kpartx/Makefile | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_0.7.7.bb b/meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_0.8.0.bb index 5cc1546045..0cff48dc4a 100644 --- a/meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_0.7.7.bb +++ b/meta-openembedded/meta-oe/recipes-support/multipath-tools/multipath-tools_0.8.0.bb @@ -31,26 +31,6 @@ LICENSE = "GPLv2" SRC_URI = "git://git.opensvc.com/multipath-tools/.git;protocol=http \ file://multipathd.oe \ file://multipath.conf.example \ - file://0001-multipath-tools-add-RDAC-SUN-ArrayStorage-to-hwtable.patch \ - file://0002-multipath-tools-remove-c-from-__cpluscplus-misspelle.patch \ - file://0003-multipath-tools-remove-emacs-autoconfig-of-kpartx-gp.patch \ - file://0004-multipath-tools-replace-FSF-address-with-a-www-point.patch \ - file://0005-multipath-tools-Remove-trailing-leading-whitespaces-.patch \ - file://0006-multipath-tools-fix-compilation-with-musl-libc.patch \ - file://0007-multipath-tools-add-x-to-doc-preclean.pl-and-split-m.patch \ - file://0008-multipath-tools-refresh-kernel-doc-from-kernel-sourc.patch \ - file://0009-multipath-tools-configure-hitachi-ams2000-and-hus100.patch \ - file://0010-libmultipath-don-t-reject-maps-with-undefined-prio.patch \ - file://0011-multipathd-handle-errors-in-uxlsnr-as-fatal.patch \ - file://0012-libmultipath-fix-error-parsing-find_multipaths-stric.patch \ - file://0013-libmultipath-print-correct-default-for-delay_-_check.patch \ - file://0014-multipath.conf.5-clarify-property-whitelist-handling.patch \ - file://0015-mpathpersist-add-all_tg_pt-option.patch \ - file://0016-libmultipath-remove-rbd-code.patch \ - file://0017-mpathpersist-fix-aptpl-support.patch \ - file://0018-multipath-don-t-check-timestamps-without-a-path.patch \ - file://0019-libmultipath-fix-detect-alua-corner-case.patch \ - file://0020-multipath-fix-setting-conf-version.patch \ file://0021-RH-fixup-udev-rules-for-redhat.patch \ file://0022-RH-Remove-the-property-blacklist-exception-builtin.patch \ file://0023-RH-don-t-start-without-a-config-file.patch \ @@ -66,7 +46,7 @@ SRC_URI = "git://git.opensvc.com/multipath-tools/.git;protocol=http \ LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2" -SRCREV = "386d288b5595fc2c01dffe698b6eb306c6674908" +SRCREV = "eb688e1833e9533bfd9496ddc37eecc93590defa" S = "${WORKDIR}/git" diff --git a/meta-openembedded/meta-oe/recipes-support/nano/nano_3.0.bb b/meta-openembedded/meta-oe/recipes-support/nano/nano_4.0.bb index 2c7fbd549f..3d7921a375 100644 --- a/meta-openembedded/meta-oe/recipes-support/nano/nano_3.0.bb +++ b/meta-openembedded/meta-oe/recipes-support/nano/nano_4.0.bb @@ -2,18 +2,18 @@ DESCRIPTION = "GNU nano (Nano's ANOther editor, or \ Not ANOther editor) is an enhanced clone of the \ Pico text editor." HOMEPAGE = "http://www.nano-editor.org/" +SECTION = "console/utils" LICENSE = "GPLv3" LIC_FILES_CHKSUM = "file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949" -SECTION = "console/utils" + DEPENDS = "ncurses file" RDEPENDS_${PN} = "ncurses-terminfo-base" PV_MAJOR = "${@d.getVar('PV').split('.')[0]}" SRC_URI = "https://nano-editor.org/dist/v${PV_MAJOR}/nano-${PV}.tar.xz" - -SRC_URI[md5sum] = "74196427a09ec2f82a88facd220d2787" -SRC_URI[sha256sum] = "e0a5bca354514e64762c987c200a8758b05e7bcced3b00b3e48ea0a2d383c8a0" +SRC_URI[md5sum] = "2de3e8a60ecf09649e316e89be2aac65" +SRC_URI[sha256sum] = "1e2fcfea35784624a7d86785768b772d58bb3995d1aec9176a27a113b1e9bac3" inherit autotools gettext pkgconfig diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-misc-Do-not-print-NULL-string-into-logs.patch b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-misc-Do-not-print-NULL-string-into-logs.patch new file mode 100644 index 0000000000..7af265a999 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-misc-Do-not-print-NULL-string-into-logs.patch @@ -0,0 +1,31 @@ +From e25d00d8297cba044c3a4d2e38749e54adac66c1 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sat, 22 Dec 2018 19:59:02 -0800 +Subject: [PATCH] misc: Do not print NULL string into logs + +string format %s is getting a NULL pointer for 'expand' +parameter always since the check for chunks[i] == NULL will ensure that +its always null when the Log() API is called + +Upstream-Status: Submitted [https://github.com/vmware/open-vm-tools/pull/312] + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + open-vm-tools/lib/misc/util_misc.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git open-vm-tools/lib/misc/util_misc.c b/open-vm-tools/lib/misc/util_misc.c +index 198c23d2..0ac0a335 100644 +--- open-vm-tools/lib/misc/util_misc.c ++++ open-vm-tools/lib/misc/util_misc.c +@@ -719,8 +719,8 @@ Util_ExpandString(const char *fileName) // IN file path to expand + ASSERT(!freeChunk[i]); + chunks[i] = expand; + if (chunks[i] == NULL) { +- Log("%s: Cannot allocate memory to expand \"%s\" in \"%s\".\n", +- __FUNCTION__, expand, fileName); ++ Log("%s: Cannot allocate memory to expand in \"%s\".\n", ++ __FUNCTION__, fileName); + goto out; + } + chunkSize[i] = strlen(expand); diff --git a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools_10.3.0.bb b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools_10.3.5.bb index 2d7486da34..7ed6593727 100644 --- a/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools_10.3.0.bb +++ b/meta-openembedded/meta-oe/recipes-support/open-vm-tools/open-vm-tools_10.3.5.bb @@ -22,23 +22,25 @@ LICENSE_modules/linux = "GPL-2.0" LICENSE_modules/solaris = "CDDL-1.0" SRC_URI = "git://github.com/vmware/open-vm-tools.git;protocol=https \ - file://tools.conf \ - file://vmtoolsd.service \ - file://vmtoolsd.init \ - file://0001-configure.ac-don-t-use-dnet-config.patch \ - file://0002-add-include-sys-sysmacros.h.patch \ - file://0005-Use-configure-test-for-struct-timespec.patch \ - file://0006-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch \ - file://0007-Use-configure-to-test-for-feature-instead-of-platfor.patch \ - file://0011-Use-configure-test-for-sys-stat.h-include.patch \ - file://fix-subdir-objects-configure-error.patch \ - file://0001-include-poll.h-instead-of-sys-poll.h.patch \ - file://0002-Rename-poll.h-to-vm_poll.h.patch \ - file://0003-use-posix-strerror_r-unless-on-gnu-libc-system.patch \ - file://0004-Use-uintmax_t-for-handling-rlim_t.patch \ - file://0001-Use-off64_t-instead-of-__off64_t.patch \ -" -SRCREV = "2147df6aabe639fc5ff423ed791a8e7f02bf8d0a" + file://tools.conf \ + file://vmtoolsd.service \ + file://vmtoolsd.init \ + file://0001-configure.ac-don-t-use-dnet-config.patch \ + file://0002-add-include-sys-sysmacros.h.patch \ + file://0005-Use-configure-test-for-struct-timespec.patch \ + file://0006-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch \ + file://0007-Use-configure-to-test-for-feature-instead-of-platfor.patch \ + file://0011-Use-configure-test-for-sys-stat.h-include.patch \ + file://fix-subdir-objects-configure-error.patch \ + file://0001-include-poll.h-instead-of-sys-poll.h.patch \ + file://0002-Rename-poll.h-to-vm_poll.h.patch \ + file://0003-use-posix-strerror_r-unless-on-gnu-libc-system.patch \ + file://0004-Use-uintmax_t-for-handling-rlim_t.patch \ + file://0001-Use-off64_t-instead-of-__off64_t.patch \ + file://0001-misc-Do-not-print-NULL-string-into-logs.patch \ + " +# stable-10.3.5 +SRCREV = "f2ff192717375b95a6b7e278fb47dbb3d3bc56d1" S = "${WORKDIR}/git/open-vm-tools" diff --git a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Add-missing-multi-line-separator.patch b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Add-missing-multi-line-separator.patch deleted file mode 100644 index 513597b8c2..0000000000 --- a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Add-missing-multi-line-separator.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 60857229aab13ccc426572a43ab891409bb76ea4 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Sun, 9 Sep 2018 22:52:55 -0700 -Subject: [PATCH] Add missing multi-line separator - -Otherwise this fails to build ( found on mips ) - -Fixes -contrib/modules/surface_matching/src/hash_murmur86.hpp:97:15: error: -expected constructor, destructor, or type conversion before '(' token - && defined(__GNUC__) && (__GNUC__>4 || (__GNUC__==4 && -__GNUC_MINOR__>=3)) - ^ - -Upstream-Status: Submitted [https://github.com/opencv/opencv_contrib/pull/1764] -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - modules/surface_matching/src/hash_murmur86.hpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/modules/surface_matching/src/hash_murmur86.hpp b/modules/surface_matching/src/hash_murmur86.hpp -index 1edf6bf4..0477d37e 100644 ---- a/modules/surface_matching/src/hash_murmur86.hpp -+++ b/modules/surface_matching/src/hash_murmur86.hpp -@@ -93,7 +93,7 @@ void hashMurmurx86 ( const void * key, const int len, const uint seed, void * ou - /* Now find best way we can to READ_UINT32 */ - #ifndef WORDS_BIGENDIAN - # define READ_UINT32(ptr) (*((uint32_t*)(ptr))) --#elif defined(WORDS_BIGENDIAN) -+#elif defined(WORDS_BIGENDIAN) \ - && defined(__GNUC__) && (__GNUC__>4 || (__GNUC__==4 && __GNUC_MINOR__>=3)) - # define READ_UINT32(ptr) (__builtin_bswap32(*((uint32_t*)(ptr)))) - #endif --- -2.18.0 - diff --git a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Check-for-clang-before-using-isystem.patch b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Check-for-clang-before-using-isystem.patch deleted file mode 100644 index 319071a311..0000000000 --- a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Check-for-clang-before-using-isystem.patch +++ /dev/null @@ -1,32 +0,0 @@ -From fa76d8646bb2b9b514728eeef41afed7c43a36f2 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Tue, 11 Sep 2018 18:18:33 -0700 -Subject: [PATCH] Check for clang before using -isystem - -When cross compiling with clang, the internal C++ headers are not found -when adding sysroot to -isystem, that is redundant anyway because it -will look for headers insider --sysroot path with same quality as it -would do with -isystem otherwise - -Upstream-Status: Submitted [https://github.com/opencv/opencv/pull/12504] -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - cmake/OpenCVUtils.cmake | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/cmake/OpenCVUtils.cmake b/cmake/OpenCVUtils.cmake -index fae91c165f..60c20192dc 100644 ---- a/cmake/OpenCVUtils.cmake -+++ b/cmake/OpenCVUtils.cmake -@@ -259,7 +259,7 @@ function(ocv_include_directories) - ocv_is_opencv_directory(__is_opencv_dir "${dir}") - if(__is_opencv_dir) - list(APPEND __add_before "${dir}") -- elseif(CV_GCC AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS "6.0" AND -+ elseif(((CV_GCC AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS "6.0") OR CV_CLANG) AND - dir MATCHES "/usr/include$") - # workaround for GCC 6.x bug - else() --- -2.18.0 - diff --git a/meta-openembedded/meta-oe/recipes-support/opencv/opencv_3.4.3.bb b/meta-openembedded/meta-oe/recipes-support/opencv/opencv_3.4.5.bb index 0a99700b4a..fa6e06a255 100644 --- a/meta-openembedded/meta-oe/recipes-support/opencv/opencv_3.4.3.bb +++ b/meta-openembedded/meta-oe/recipes-support/opencv/opencv_3.4.5.bb @@ -10,9 +10,9 @@ ARM_INSTRUCTION_SET_armv5 = "arm" DEPENDS = "libtool swig-native bzip2 zlib glib-2.0 libwebp" -SRCREV_opencv = "b38c50b3d0c31e82294315ec44b54b7ef559ef12" -SRCREV_contrib = "1f6d6f06266e1ef336437ae5404bee1c65d42cda" -SRCREV_ipp = "bdb7bb85f34a8cb0d35e40a81f58da431aa1557a" +SRCREV_opencv = "8f1356c3c5b16721349582db461a2051653059e8" +SRCREV_contrib = "7292df62624ded8af8035231435dfd17c93e1a80" +SRCREV_ipp = "32e315a5b106a7b89dbed51c28f8120a48b368b4" SRCREV_boostdesc = "34e4206aef44d50e6bbcd0ab06354b52e7466d26" SRCREV_vgg = "fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d" SRC_URI[tinydnn.md5sum] = "adb1c512e09ca2c7a6faef36f9c53e59" @@ -20,19 +20,19 @@ SRC_URI[tinydnn.sha256sum] = "e2c61ce8c5debaa644121179e9dbdcf83f497f39de853f8dd5 def ipp_filename(d): import re - arch = d.getVar('TARGET_ARCH', True) + arch = d.getVar('TARGET_ARCH') if re.match("i.86$", arch): - return "ippicv_2017u3_lnx_ia32_general_20180518.tgz" + return "ippicv_2019_lnx_ia32_general_20180723.tgz" else: - return "ippicv_2017u3_lnx_intel64_general_20180518.tgz" + return "ippicv_2019_lnx_intel64_general_20180723.tgz" def ipp_md5sum(d): import re - arch = d.getVar('TARGET_ARCH', True) + arch = d.getVar('TARGET_ARCH') if re.match("i.86$", arch): - return "ea72de74dae3c604eb6348395366e78e" + return "4f38432c30bfd6423164b7a24bbc98a0" else: - return "b7cc351267db2d34b9efa1cd22ff0572" + return "c0bd78adb4156bbf552c1dfe90599607" IPP_FILENAME = "${@ipp_filename(d)}" IPP_MD5 = "${@ipp_md5sum(d)}" @@ -40,21 +40,19 @@ IPP_MD5 = "${@ipp_md5sum(d)}" SRCREV_FORMAT = "opencv_contrib_ipp_boostdesc_vgg" SRC_URI = "git://github.com/opencv/opencv.git;name=opencv \ git://github.com/opencv/opencv_contrib.git;destsuffix=contrib;name=contrib \ - git://github.com/opencv/opencv_3rdparty.git;branch=ippicv/master_20180518;destsuffix=ipp;name=ipp \ + git://github.com/opencv/opencv_3rdparty.git;branch=ippicv/master_20180723;destsuffix=ipp;name=ipp \ git://github.com/opencv/opencv_3rdparty.git;branch=contrib_xfeatures2d_boostdesc_20161012;destsuffix=boostdesc;name=boostdesc \ git://github.com/opencv/opencv_3rdparty.git;branch=contrib_xfeatures2d_vgg_20160317;destsuffix=vgg;name=vgg \ https://github.com/tiny-dnn/tiny-dnn/archive/v1.0.0a3.tar.gz;destsuffix=git/3rdparty/tinydnn/tiny-dnn-1.0.0a3;name=tinydnn;unpack=false \ file://0001-3rdparty-ippicv-Use-pre-downloaded-ipp.patch \ file://uselocalxfeatures.patch;patchdir=../contrib/ \ - file://0001-Add-missing-multi-line-separator.patch;patchdir=../contrib/ \ file://0002-Make-opencv-ts-create-share-library-intead-of-static.patch \ file://0003-To-fix-errors-as-following.patch \ file://fixpkgconfig.patch \ file://0001-Temporarliy-work-around-deprecated-ffmpeg-RAW-functi.patch \ file://0001-Dont-use-isystem.patch \ - file://0001-Check-for-clang-before-using-isystem.patch \ " -PV = "3.4.3+git${SRCPV}" +PV = "3.4.5" S = "${WORKDIR}/git" @@ -76,8 +74,6 @@ EXTRA_OECMAKE = "-DOPENCV_EXTRA_MODULES_PATH=${WORKDIR}/contrib/modules \ ${@bb.utils.contains("TARGET_CC_ARCH", "-msse3", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1", "", d)} \ ${@bb.utils.contains("TARGET_CC_ARCH", "-msse4.1", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1 -DENABLE_SSE41=1", "", d)} \ ${@bb.utils.contains("TARGET_CC_ARCH", "-msse4.2", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1 -DENABLE_SSE41=1 -DENABLE_SSE42=1", "", d)} \ - ${@oe.utils.conditional("libdir", "/usr/lib64", "-DLIB_SUFFIX=64", "", d)} \ - ${@oe.utils.conditional("libdir", "/usr/lib32", "-DLIB_SUFFIX=32", "", d)} \ " EXTRA_OECMAKE_append_x86 = " -DX86=ON" @@ -180,6 +176,8 @@ SUMMARY_python3-opencv = "Python bindings to opencv" FILES_python3-opencv = "${PYTHON_SITEPACKAGES_DIR}/*" RDEPENDS_python3-opencv = "python3-core python3-numpy" +RDEPENDS_opencv-apps = "bash" + do_install_append() { cp ${S}/include/opencv/*.h ${D}${includedir}/opencv/ sed -i '/blobtrack/d' ${D}${includedir}/opencv/cvaux.h diff --git a/meta-openembedded/meta-oe/recipes-support/openldap/openldap/remove-user-host-pwd-from-version.patch b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/remove-user-host-pwd-from-version.patch index 4eb3897972..870fc98adf 100644 --- a/meta-openembedded/meta-oe/recipes-support/openldap/openldap/remove-user-host-pwd-from-version.patch +++ b/meta-openembedded/meta-oe/recipes-support/openldap/openldap/remove-user-host-pwd-from-version.patch @@ -1,24 +1,36 @@ -diff -ru openldap-2.4.46.orig/build/mkversion openldap-2.4.46/build/mkversion ---- openldap-2.4.46.orig/build/mkversion 2018-10-25 18:46:10.383750480 +1300 -+++ openldap-2.4.46/build/mkversion 2018-10-25 18:46:33.156232586 +1300 -@@ -50,7 +50,15 @@ - fi - - APPLICATION=$1 --WHOWHERE="$USER@`uname -n`:`pwd`" -+if [ -n "${SOURCE_DATE_EPOCH}" ]; then -+ WHOWHERE="openldap" +From 868a04b0596e2df708ba14ed70815b1411db3db1 Mon Sep 17 00:00:00 2001 +From: Changqing Li <changqing.li@windriver.com> +Date: Thu, 21 Feb 2019 11:33:24 +0800 +Subject: [PATCH] mkversion: remove user host pwd from version + +Upstream-Status: Pending + +Update this patch to version 2.4.47 + +Signed-off-by: Changqing Li <changqing.li@windriver.com> +--- + build/mkversion | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +diff --git a/build/mkversion b/build/mkversion +index 4e35723..9fa3bee 100755 +--- a/build/mkversion ++++ b/build/mkversion +@@ -53,8 +53,12 @@ APPLICATION=$1 + # Reproducible builds set SOURCE_DATE_EPOCH, want constant strings + if [ -n "${SOURCE_DATE_EPOCH}" ]; then + WHOWHERE="openldap" + DATE=$(date -d@$SOURCE_DATE_EPOCH +' %b %d %Y ') + TIME=$(date -d@$SOURCE_DATE_EPOCH +' %H:%M:%S ') -+else -+ WHOWHERE="$USER@$(uname -n):$(pwd)" + else +- WHOWHERE="$USER@$(uname -n):$(pwd)" ++ WHOWHERE="openldap" + DATE='" __DATE__ "' + TIME='" __TIME__ "' -+fi + fi cat << __EOF__ - /* This work is part of OpenLDAP Software <http://www.openldap.org/>. -@@ -72,7 +80,7 @@ +@@ -77,7 +81,7 @@ static const char copyright[] = "COPYING RESTRICTIONS APPLY\n"; $static $const char $SYMBOL[] = @@ -27,3 +39,6 @@ diff -ru openldap-2.4.46.orig/build/mkversion openldap-2.4.46/build/mkversion "\t$WHOWHERE\n"; __EOF__ +-- +2.7.4 + diff --git a/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.46.bb b/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.47.bb index 7fe9fb0d77..4345d7d892 100644 --- a/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.46.bb +++ b/meta-openembedded/meta-oe/recipes-support/openldap/openldap_2.4.47.bb @@ -14,7 +14,7 @@ SECTION = "libs" LDAP_VER = "${@'.'.join(d.getVar('PV').split('.')[0:2])}" -SRC_URI = "ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/${BP}.tgz \ +SRC_URI = "http://www.openldap.org/software/download/OpenLDAP/openldap-release/${BP}.tgz \ file://openldap-m4-pthread.patch \ file://kill-icu.patch \ file://openldap-2.4.28-gnutls-gcrypt.patch \ @@ -26,8 +26,8 @@ SRC_URI = "ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/${BP}.tgz \ file://remove-user-host-pwd-from-version.patch \ " -SRC_URI[md5sum] = "829016c5a9f45c51adc50073ac6f9fd7" -SRC_URI[sha256sum] = "9a90dcb86b99ae790ccab93b7585a31fbcbeec8c94bf0f7ab0ca0a87ea0c4b2d" +SRC_URI[md5sum] = "e508f97bfd778fec7799f286e5c07176" +SRC_URI[sha256sum] = "f54c5877865233d9ada77c60c0f69b3e0bfd8b1b55889504c650047cc305520b" DEPENDS = "util-linux groff-native" diff --git a/meta-openembedded/meta-oe/recipes-support/opensc/opensc/0001-Fixed-gcc-8-compilation-errors-1353.patch b/meta-openembedded/meta-oe/recipes-support/opensc/opensc/0001-Fixed-gcc-8-compilation-errors-1353.patch deleted file mode 100644 index 48d8327546..0000000000 --- a/meta-openembedded/meta-oe/recipes-support/opensc/opensc/0001-Fixed-gcc-8-compilation-errors-1353.patch +++ /dev/null @@ -1,73 +0,0 @@ -From 87857d5cae7db94fdd776904886392b1e86053bd Mon Sep 17 00:00:00 2001 -From: Florian Bezdeka <1119693+fbezdeka@users.noreply.github.com> -Date: Fri, 18 May 2018 18:54:56 +0200 -Subject: [PATCH] Fixed gcc 8 compilation errors (#1353) -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -The following errors occured during a compilation using gcc 8: - -In function »gids_create_file.constprop«, - inserted by »gids_save_certificate.isra.8« beicard-gids.c:1548:7: -card-gids.c:465:2: Error: »strncpy« output may be truncated copying 8 bytes from a string of length 8 [-Werror=stringop-truncation] - strncpy(record->filename, filename, 8); - ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -pkcs15-oberthur.c: In function »sc_pkcs15emu_oberthur_add_prvkey«: -pkcs15-oberthur.c:741:5: Error: »strncpy« output may be truncated copying 254 bytes from a string of length 254 [-Werror=stringop-truncation] - strncpy(kobj.label, objs[ii]->label, sizeof(kobj.label) - 1); - ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Upstream-Status: Backport [https://github.com/OpenSC/OpenSC/pull/1353] -Signed-off-by Khem Raj <raj.khem@gmail.com> ---- - src/libopensc/card-gids.c | 3 ++- - src/libopensc/pkcs15-oberthur.c | 3 ++- - 2 files changed, 4 insertions(+), 2 deletions(-) - -diff --git a/src/libopensc/card-gids.c b/src/libopensc/card-gids.c -index fc5d2a7..ac3e579 100644 ---- a/src/libopensc/card-gids.c -+++ b/src/libopensc/card-gids.c -@@ -33,6 +33,7 @@ Some features are undocumented like the format used to store certificates. They - - #include <stdlib.h> - #include <string.h> -+#include "../common/compat_strlcpy.h" - - #ifdef ENABLE_OPENSSL - /* openssl only needed for card administration */ -@@ -462,7 +463,7 @@ static int gids_create_file(sc_card_t *card, char* directory, char* filename) { - memset(masterfilebuffer + offset, 0, sizeof(gids_mf_record_t)); - record = (gids_mf_record_t*) (masterfilebuffer + offset); - strncpy(record->directory, directory, 8); -- strncpy(record->filename, filename, 8); -+ strlcpy(record->filename, filename, sizeof(record->filename)); - record->fileIdentifier = fileIdentifier; - record->dataObjectIdentifier = dataObjectIdentifier; - -diff --git a/src/libopensc/pkcs15-oberthur.c b/src/libopensc/pkcs15-oberthur.c -index 4f841ed..3415be7 100644 ---- a/src/libopensc/pkcs15-oberthur.c -+++ b/src/libopensc/pkcs15-oberthur.c -@@ -29,6 +29,7 @@ - #include <stdlib.h> - #include <string.h> - #include <stdio.h> -+#include "../common/compat_strlcpy.h" - - #include "pkcs15.h" - #include "log.h" -@@ -738,7 +739,7 @@ sc_pkcs15emu_oberthur_add_prvkey(struct sc_pkcs15_card *p15card, - unsigned int id = path.value[path.len - 2] * 0x100 + path.value[path.len - 1]; - - if (id == ccont.id_cert) { -- strncpy(kobj.label, objs[ii]->label, sizeof(kobj.label) - 1); -+ strlcpy(kobj.label, objs[ii]->label, sizeof(kobj.label)); - break; - } - } --- -2.18.0 - diff --git a/meta-openembedded/meta-oe/recipes-support/opensc/opensc/0001-Remove-redundant-logging.patch b/meta-openembedded/meta-oe/recipes-support/opensc/opensc/0001-Remove-redundant-logging.patch new file mode 100644 index 0000000000..291f1a239a --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/opensc/opensc/0001-Remove-redundant-logging.patch @@ -0,0 +1,34 @@ +From c012f46965b3fe24e31367796e52c2d0b14ca5d9 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Mon, 17 Dec 2018 18:44:23 -0800 +Subject: [PATCH] Remove redundant logging + +Same information is printed a few line below in same function, the only +difference is that there it takes care of case when label is NULL pointer +unlike this line + +secondly, every function call to cosm_write_tokeninfo() in this file +passes label=NULL, and then it tries to print a null pointer + +Fixes errors like +src/libopensc/log.h:48:47: error: '%s' directive argument is null +[-Werror=format-overflow=] + +Upstream-Status: Submitted [https://github.com/OpenSC/OpenSC/pull/1557] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/pkcs15init/pkcs15-oberthur.c | 1 - + 1 file changed, 1 deletion(-) + +Index: git/src/pkcs15init/pkcs15-oberthur.c +=================================================================== +--- git.orig/src/pkcs15init/pkcs15-oberthur.c ++++ git/src/pkcs15init/pkcs15-oberthur.c +@@ -70,7 +70,6 @@ cosm_write_tokeninfo (struct sc_pkcs15_c + ctx = p15card->card->ctx; + + SC_FUNC_CALLED(ctx, SC_LOG_DEBUG_VERBOSE); +- sc_debug(ctx, SC_LOG_DEBUG_NORMAL, "cosm_write_tokeninfo() label '%s'; flags 0x%X", label, flags); + if (sc_profile_get_file(profile, COSM_TITLE"-token-info", &file)) { + rv = SC_ERROR_INCONSISTENT_PROFILE; + SC_TEST_GOTO_ERR(ctx, SC_LOG_DEBUG_NORMAL, rv, "Cannot find "COSM_TITLE"-token-info"); diff --git a/meta-openembedded/meta-oe/recipes-support/opensc/opensc_0.18.0.bb b/meta-openembedded/meta-oe/recipes-support/opensc/opensc_0.19.0.bb index 45c931e7bd..bc1722e394 100644 --- a/meta-openembedded/meta-oe/recipes-support/opensc/opensc_0.18.0.bb +++ b/meta-openembedded/meta-oe/recipes-support/opensc/opensc_0.19.0.bb @@ -8,22 +8,19 @@ eID cards have also been confirmed to work." HOMEPAGE = "http://www.opensc-project.org/opensc/" SECTION = "System Environment/Libraries" +LICENSE = "LGPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34" -SRC_URI = "https://snapshot.debian.org/archive/debian/20180521T101428Z/pool/main/o/opensc/opensc_0.18.0.orig.tar.gz \ - file://0001-Fixed-gcc-8-compilation-errors-1353.patch \ +#v0.19.0 +SRCREV = "f1691fc91fc113191c3a8aaf5facd6983334ec47" +SRC_URI = "git://github.com/OpenSC/OpenSC \ + file://0001-Remove-redundant-logging.patch \ " - -SRC_URI[md5sum] = "bce516f752e0db5327aa06cc0136fe27" -SRC_URI[sha256sum] = "6ef62b00e8fdbe3e386c3ee25c2cadb56c1931ea42f1a11dce8c947f51b45033" - DEPENDS = "openct pcsc-lite virtual/libiconv openssl" -LICENSE = "LGPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34" - -inherit autotools pkgconfig +S = "${WORKDIR}/git" +inherit autotools pkgconfig bash-completion -S = "${WORKDIR}/OpenSC-${PV}" EXTRA_OECONF = " \ --disable-static \ --enable-openct \ diff --git a/meta-openembedded/meta-oe/recipes-support/poco/poco/0001-Support-of-arch-riscv64-by-Manuel-A.-Fernandez-Monte.patch b/meta-openembedded/meta-oe/recipes-support/poco/poco/0001-Support-of-arch-riscv64-by-Manuel-A.-Fernandez-Monte.patch new file mode 100644 index 0000000000..72d89d09b2 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/poco/poco/0001-Support-of-arch-riscv64-by-Manuel-A.-Fernandez-Monte.patch @@ -0,0 +1,41 @@ +From ed04c97abe015a226269de391e36c4d251292725 Mon Sep 17 00:00:00 2001 +From: Francis ANDRE <francis.andre.kampbell@orange.fr> +Date: Sun, 6 May 2018 12:28:25 +0200 +Subject: [PATCH] Support of arch riscv64 by Manuel A. Fernandez Montecelo + <mafm@debian.org> + +--- + Foundation/include/Poco/Platform.h | 6 +++++- + Foundation/src/utils.h | 1 + + 2 files changed, 6 insertions(+), 1 deletion(-) + +--- a/Foundation/include/Poco/Platform.h ++++ b/Foundation/include/Poco/Platform.h +@@ -134,6 +134,7 @@ + #define POCO_ARCH_NIOS2 0x0e + #define POCO_ARCH_AARCH64 0x0f + #define POCO_ARCH_ARM64 0x0f // same as POCO_ARCH_AARCH64 ++#define POCO_ARCH_RISCV64 0x10 + + + #if defined(__ALPHA) || defined(__alpha) || defined(__alpha__) || defined(_M_ALPHA) +@@ -224,6 +225,9 @@ + #elif defined(__AARCH64EB__) + #define POCO_ARCH POCO_ARCH_AARCH64 + #define POCO_ARCH_BIG_ENDIAN 1 ++#elif defined(__riscv) && (__riscv_xlen == 64) ++ #define POCO_ARCH POCO_ARCH_RISCV64 ++ #define POCO_ARCH_LITTLE_ENDIAN 1 + #endif + + +--- a/Foundation/src/utils.h ++++ b/Foundation/src/utils.h +@@ -63,6 +63,7 @@ + defined(__SH4__) || defined(__alpha__) || \ + defined(_MIPS_ARCH_MIPS32R2) || \ + defined(__AARCH64EL__) || \ ++ defined(__riscv) || \ + defined(nios2) || defined(__nios2) || defined(__nios2__) + #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1 + #elif defined(_M_IX86) || defined(__i386__) || defined(__i386) diff --git a/meta-openembedded/meta-oe/recipes-support/poco/poco_1.9.0.bb b/meta-openembedded/meta-oe/recipes-support/poco/poco_1.9.0.bb index 258cc4994f..70b251034b 100644 --- a/meta-openembedded/meta-oe/recipes-support/poco/poco_1.9.0.bb +++ b/meta-openembedded/meta-oe/recipes-support/poco/poco_1.9.0.bb @@ -11,6 +11,7 @@ DEPENDS = "libpcre zlib" SRC_URI = " \ git://github.com/pocoproject/poco.git;branch=poco-${PV} \ file://0001-Don-t-try-to-install-non-existing-Encodings-testsuit.patch \ + file://0001-Support-of-arch-riscv64-by-Manuel-A.-Fernandez-Monte.patch \ file://run-ptest \ " SRCREV = "daf00da73ab917e4d4581e3aa00c0ee61e0cc58b" diff --git a/meta-openembedded/meta-oe/recipes-support/poppler/poppler/0001-glib-CMakeLists.txt-Add-libpoppler-to-link-along-wit.patch b/meta-openembedded/meta-oe/recipes-support/poppler/poppler/0001-glib-CMakeLists.txt-Add-libpoppler-to-link-along-wit.patch index 7ed795ef7b..c364d7372c 100644 --- a/meta-openembedded/meta-oe/recipes-support/poppler/poppler/0001-glib-CMakeLists.txt-Add-libpoppler-to-link-along-wit.patch +++ b/meta-openembedded/meta-oe/recipes-support/poppler/poppler/0001-glib-CMakeLists.txt-Add-libpoppler-to-link-along-wit.patch @@ -15,15 +15,18 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com> 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/glib/CMakeLists.txt b/glib/CMakeLists.txt -index 33c6608..87e1b44 100644 +index 6f91669..ca5021f 100644 --- a/glib/CMakeLists.txt +++ b/glib/CMakeLists.txt -@@ -127,7 +127,7 @@ if (HAVE_INTROSPECTION AND BUILD_SHARED_LIBS) +@@ -135,7 +135,7 @@ if (HAVE_INTROSPECTION AND BUILD_SHARED_LIBS) get_directory_property(_tmp_includes INCLUDE_DIRECTORIES) _list_prefix(_includes _tmp_includes "-I") - set(Poppler_0_18_gir_CFLAGS ${_includes} -L${CMAKE_BINARY_DIR}) + set(Poppler_0_18_gir_CFLAGS ${_includes} -L${CMAKE_BINARY_DIR} -L${CMAKE_CURRENT_BINARY_DIR}) - set(Poppler_0_18_gir_LIBS poppler-glib) + set(Poppler_0_18_gir_LIBS poppler-glib poppler) _list_prefix(_abs_introspection_files introspection_files "${CMAKE_CURRENT_SOURCE_DIR}/") list(APPEND _abs_introspection_files ${CMAKE_CURRENT_BINARY_DIR}/poppler-enums.c +-- +2.20.1 + diff --git a/meta-openembedded/meta-oe/recipes-support/poppler/poppler/basename-include.patch b/meta-openembedded/meta-oe/recipes-support/poppler/poppler/basename-include.patch index 528528ae7c..ab6bdb0806 100644 --- a/meta-openembedded/meta-oe/recipes-support/poppler/poppler/basename-include.patch +++ b/meta-openembedded/meta-oe/recipes-support/poppler/poppler/basename-include.patch @@ -8,8 +8,8 @@ Index: poppler-0.64.0/utils/pdfsig.cc --- poppler-0.64.0.orig/utils/pdfsig.cc +++ poppler-0.64.0/utils/pdfsig.cc @@ -35,6 +35,10 @@ - #include "Win32Console.h" #include "numberofcharacters.h" + #include <libgen.h> +#if !defined(__GLIBC__) +#define basename(src) (strrchr(src,'/') ? strrchr(src,'/')+1 : src) diff --git a/meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.70.1.bb b/meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.75.0.bb index b618f28c5f..0704f1a2af 100644 --- a/meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.70.1.bb +++ b/meta-openembedded/meta-oe/recipes-support/poppler/poppler_0.75.0.bb @@ -8,8 +8,8 @@ SRC_URI = "http://poppler.freedesktop.org/${BP}.tar.xz \ file://0001-glib-CMakeLists.txt-Add-libpoppler-to-link-along-wit.patch \ file://basename-include.patch \ " -SRC_URI[md5sum] = "fdb0699e9aa20e81acd1a50701374c8b" -SRC_URI[sha256sum] = "66972047d9ef8162cc8c389d7e7698291dfc9f2b3e4ea9a9f08ae604107451bd" +SRC_URI[md5sum] = "3fb4ca803d989742695ca586c5cc489e" +SRC_URI[sha256sum] = "3bbaedb0fa2797cac933a0659d144303e4d09eec6892c65600da987d8707199a" DEPENDS = "fontconfig zlib cairo lcms glib-2.0" @@ -31,7 +31,7 @@ SECURITY_CFLAGS = "${SECURITY_NO_PIE_CFLAGS}" EXTRA_OECMAKE += " \ -DENABLE_CMS=lcms2 \ - -DENABLE_XPDF_HEADERS=ON \ + -DENABLE_UNSTABLE_API_ABI_HEADERS=ON \ -DBUILD_GTK_TESTS=OFF \ -DENABLE_ZLIB=ON \ -DCMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES:PATH='${STAGING_INCDIR}' \ @@ -40,7 +40,7 @@ EXTRA_OECMAKE += " \ do_configure_append() { # poppler macro uses pkg-config to check for g-ir runtimes. Something # makes them point to /usr/bin. Align them to sysroot - that's where the - # git-wrappers are: + # gir-wrappers are: sed -i 's: ${bindir}/g-ir: ${STAGING_BINDIR}/g-ir:' ${B}/build.ninja } diff --git a/meta-openembedded/meta-oe/recipes-support/pv/pv_1.5.3.bb b/meta-openembedded/meta-oe/recipes-support/pv/pv_1.5.3.bb deleted file mode 100644 index 5e3dd67c5b..0000000000 --- a/meta-openembedded/meta-oe/recipes-support/pv/pv_1.5.3.bb +++ /dev/null @@ -1,11 +0,0 @@ -SUMMARY = "Terminal-based tool for monitoring the progress of data through a pipeline" - -LICENSE = "Artistic-2.0" -LIC_FILES_CHKSUM = "file://doc/COPYING;md5=9c50db2589ee3ef10a9b7b2e50ce1d02" - -SRC_URI = "http://www.ivarch.com/programs/sources/pv-${PV}.tar.bz2" -SRC_URI[md5sum] = "efe8e9e4cad5f3264a32258a63bf2c8e" -SRC_URI[sha256sum] = "76f3999b1c3b3027163dce6ef667cdf8dafb75218ee25e54a03bfe590478f90e" - -inherit autotools - diff --git a/meta-openembedded/meta-oe/recipes-support/pv/pv_1.6.6.bb b/meta-openembedded/meta-oe/recipes-support/pv/pv_1.6.6.bb new file mode 100644 index 0000000000..9649555b8e --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/pv/pv_1.6.6.bb @@ -0,0 +1,13 @@ +SUMMARY = "Terminal-based tool for monitoring the progress of data through a pipeline" + +LICENSE = "Artistic-2.0" +LIC_FILES_CHKSUM = "file://doc/COPYING;md5=9c50db2589ee3ef10a9b7b2e50ce1d02" + +SRC_URI = "http://www.ivarch.com/programs/sources/${BP}.tar.bz2" +SRC_URI[md5sum] = "ff3564fddcc2b9bd4a9c1d143aba4b4c" +SRC_URI[sha256sum] = "608ef935f7a377e1439c181c4fc188d247da10d51a19ef79bcdee5043b0973f1" + +inherit autotools + +LDEMULATION_mipsarchn32 = "${@bb.utils.contains('TUNE_FEATURES', 'bigendian', 'elf32btsmipn32', 'elf32ltsmipn32', d)}" +export LDEMULATION diff --git a/meta-openembedded/meta-oe/recipes-support/read-edid/read-edid/0001-Do-not-install-license-file.patch b/meta-openembedded/meta-oe/recipes-support/read-edid/read-edid/0001-Do-not-install-license-file.patch new file mode 100644 index 0000000000..a9b9476bd6 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/read-edid/read-edid/0001-Do-not-install-license-file.patch @@ -0,0 +1,17 @@ +Do not install license file + +File name is incorrect as well; must be LICENSE instead of COPYING. + +Upstream-Status: Submitted [pyrophobicman@gmail.com] + +Signed-off-by: Stefan Wiehler <stefan.wiehler@missinglinkelectronics.com> + +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -13,5 +13,5 @@ + add_subdirectory (parse-edid) + + INSTALL(FILES get-edid.1 DESTINATION share/man/man1) +-INSTALL(FILES AUTHORS ChangeLog COPYING README DESTINATION ++INSTALL(FILES AUTHORS ChangeLog README DESTINATION + share/doc/read-edid) diff --git a/meta-openembedded/meta-oe/recipes-support/read-edid/read-edid/0001-configure-remove-check-for-x86.h-we-don-t-build-get-.patch b/meta-openembedded/meta-oe/recipes-support/read-edid/read-edid/0001-configure-remove-check-for-x86.h-we-don-t-build-get-.patch deleted file mode 100644 index 4408002356..0000000000 --- a/meta-openembedded/meta-oe/recipes-support/read-edid/read-edid/0001-configure-remove-check-for-x86.h-we-don-t-build-get-.patch +++ /dev/null @@ -1,28 +0,0 @@ -From eb7590cc2cdd5c35403af4567d8524e017010f1c Mon Sep 17 00:00:00 2001 -From: Koen Kooi <koen@dominion.thruhere.net> -Date: Sat, 11 May 2013 07:58:17 +0200 -Subject: [PATCH] configure: remove check for x86.h, we don't build get-edid - -Signed-off-by: Koen Kooi <koen@dominion.thruhere.net> - -Upstream-status: Inappropriate [OE specific] ---- - configure.in | 2 -- - 1 file changed, 2 deletions(-) - -diff --git a/configure.in b/configure.in -index ac85a21..f53e904 100644 ---- a/configure.in -+++ b/configure.in -@@ -8,8 +8,6 @@ dnl Checks for programs - - AC_PROG_CC - --AC_CHECK_HEADER([libx86.h], [], [AC_MSG_ERROR([libx86.h not found])]) -- - dnl Simple, huh? - - AC_OUTPUT([Makefile]) --- -1.8.1.4 - diff --git a/meta-openembedded/meta-oe/recipes-support/read-edid/read-edid_2.0.0.bb b/meta-openembedded/meta-oe/recipes-support/read-edid/read-edid_2.0.0.bb deleted file mode 100644 index b002906fa6..0000000000 --- a/meta-openembedded/meta-oe/recipes-support/read-edid/read-edid_2.0.0.bb +++ /dev/null @@ -1,23 +0,0 @@ -DESCRIPTION = "read-edid elucidates various very useful informations from a conforming PnP monitor" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=d0bf70fa1ef81fe4741ec0e6231dadfd" - -SRC_URI = "http://polypux.org/projects/read-edid/read-edid-${PV}.tar.gz \ - file://0001-configure-remove-check-for-x86.h-we-don-t-build-get-.patch" - -SRC_URI[md5sum] = "586e7fa1167773b27f4e505edc93274b" -SRC_URI[sha256sum] = "246ec14ec509e09ac26fe6862b120481b2cc881e2f142ba40886d6eec15e77e8" - -inherit autotools - -do_compile() { - oe_runmake parse-edid -} - -do_install() { - install -d ${D}${bindir} - install -m 0755 parse-edid ${D}${bindir} -} - -PACKAGES =+ "parse-edid" -FILES_parse-edid = "${bindir}/parse-edid" diff --git a/meta-openembedded/meta-oe/recipes-support/read-edid/read-edid_3.0.2.bb b/meta-openembedded/meta-oe/recipes-support/read-edid/read-edid_3.0.2.bb new file mode 100644 index 0000000000..e4c2cadc2d --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/read-edid/read-edid_3.0.2.bb @@ -0,0 +1,20 @@ +SUMMARY = "A pair of tools for reading the EDID from a monitor" +DESCRIPTION = "read-edid is a set of two tools - get-edid, which gets the raw \ + EDID information from the monitor, and parse-edid, which turns \ + the raw binary information into a xorg.conf-compatible monitor \ + section." +AUTHOR = "Stefan Wiehler <stefan.wiehler@missinglinkelectronics.com>" +HOMEPAGE = "http://www.polypux.org/projects/read-edid/" +SECTION = "console/utils" +LICENSE = "read-edid" +LIC_FILES_CHKSUM = "file://LICENSE;md5=292c42e2aedc4af636636bf7af0e2b26" + +SRC_URI = "http://polypux.org/projects/read-edid/read-edid-${PV}.tar.gz \ + file://0001-Do-not-install-license-file.patch \ + " +SRC_URI[md5sum] = "016546e438bf6c98739ff74061df9854" +SRC_URI[sha256sum] = "c7c6d8440f5b90f98e276829271ccea5b2ff5a3413df8a0f87ec09f834af186f" + +EXTRA_OECMAKE = "-DCLASSICBUILD=OFF" + +inherit cmake diff --git a/meta-openembedded/meta-oe/recipes-support/sass/libsass_git.bb b/meta-openembedded/meta-oe/recipes-support/sass/libsass_git.bb new file mode 100644 index 0000000000..4c229cdb75 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/sass/libsass_git.bb @@ -0,0 +1,13 @@ +SUMMARY = "C/C++ port of the Sass CSS precompiler" +HOMEPAGE = "http://sass-lang.com/libsass" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=8f34396ca205f5e119ee77aae91fa27d" + +inherit autotools + +SRC_URI = "git://github.com/sass/libsass.git;branch=3.5-stable" +SRCREV = "39e30874b9a5dd6a802c20e8b0470ba44eeba929" +S = "${WORKDIR}/git" +PV = "3.5.5" + +BBCLASSEXTEND = "native" diff --git a/meta-openembedded/meta-oe/recipes-support/sass/sassc_git.bb b/meta-openembedded/meta-oe/recipes-support/sass/sassc_git.bb new file mode 100644 index 0000000000..044c0c7fcb --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/sass/sassc_git.bb @@ -0,0 +1,14 @@ +SUMMARY = "libsass command line driver " +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=2f8a76980411a3f1f1480b141ce06744" + +DEPENDS = "libsass" + +inherit autotools pkgconfig + +SRC_URI = "git://github.com/sass/sassc.git" +SRCREV = "aa6d5c635ea8faf44d542a23aaf85d27e5777d48" +S = "${WORKDIR}/git" +PV = "3.5.0" + +BBCLASSEXTEND = "native" diff --git a/meta-openembedded/meta-oe/recipes-support/satyr/satyr_0.26.bb b/meta-openembedded/meta-oe/recipes-support/satyr/satyr_0.27.bb index a09bea23d4..10dfc2bade 100644 --- a/meta-openembedded/meta-oe/recipes-support/satyr/satyr_0.26.bb +++ b/meta-openembedded/meta-oe/recipes-support/satyr/satyr_0.27.bb @@ -10,7 +10,7 @@ inherit autotools-brokensep python3native pkgconfig SRC_URI = "git://github.com/abrt/satyr.git \ file://0002-fix-compile-failure-against-musl-C-library.patch \ " -SRCREV = "4baa0c765071054314d1e7e78547ce6b7c133fbc" +SRCREV = "dff1b877d42bf2153f8f090905d9cc8fb333bf1e" S = "${WORKDIR}/git" LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" diff --git a/meta-openembedded/meta-oe/recipes-support/sg3-utils/sg3-utils/glibc-2.28.patch b/meta-openembedded/meta-oe/recipes-support/sg3-utils/sg3-utils/glibc-2.28.patch deleted file mode 100644 index fbad4135df..0000000000 --- a/meta-openembedded/meta-oe/recipes-support/sg3-utils/sg3-utils/glibc-2.28.patch +++ /dev/null @@ -1,24 +0,0 @@ -Fixes: -http://errors.yoctoproject.org/Errors/Details/185896/ - -TOPDIR/tmp-glibc/work/core2-64-oe-linux/sg3-utils/1.42-r0/recipe-sysroot-native/usr/bin/x86_64-oe-linux/../../libexec/x86_64-oe-linux/gcc/x86_64-oe-linux/8.2.0/ld: sg_map26.o: in function `nd_match_scandir_select': -/usr/src/debug/sg3-utils/1.42-r0/sg3_utils-1.42/src/sg_map26.c:359: undefined reference to `major' -TOPDIR/tmp-glibc/work/core2-64-oe-linux/sg3-utils/1.42-r0/recipe-sysroot-native/usr/bin/x86_64-oe-linux/../../libexec/x86_64-oe-linux/gcc/x86_64-oe-linux/8.2.0/ld: /usr/src/debug/sg3-utils/1.42-r0/sg3_utils-1.42/src/sg_map26.c:361: undefined reference to `minor' -TOPDIR/tmp-glibc/work/core2-64-oe-linux/sg3-utils/1.42-r0/recipe-sysroot-native/usr/bin/x86_64-oe-linux/../../libexec/x86_64-oe-linux/gcc/x86_64-oe-linux/8.2.0/ld: sg_map26.o: in function `nt_typ_from_filename': -/usr/src/debug/sg3-utils/1.42-r0/sg3_utils-1.42/src/sg_map26.c:218: undefined reference to `major' -TOPDIR/tmp-glibc/work/core2-64-oe-linux/sg3-utils/1.42-r0/recipe-sysroot-native/usr/bin/x86_64-oe-linux/../../libexec/x86_64-oe-linux/gcc/x86_64-oe-linux/8.2.0/ld: /usr/src/debug/sg3-utils/1.42-r0/sg3_utils-1.42/src/sg_map26.c:219: undefined reference to `minor' -collect2: error: ld returned 1 exit status -Makefile:806: recipe for target 'sg_map26' failed - -Upstream-Status: Pending - ---- sg3_utils-1.42.orig/src/sg_map26.c 2018-08-09 11:53:26.907493996 +0000 -+++ sg3_utils-1.42/src/sg_map26.c 2018-08-09 11:51:56.713490763 +0000 -@@ -33,6 +33,7 @@ - #include <sys/ioctl.h> - #include <sys/types.h> - #include <sys/stat.h> -+#include <sys/sysmacros.h> - #include <linux/major.h> - - #ifdef HAVE_CONFIG_H diff --git a/meta-openembedded/meta-oe/recipes-support/sg3-utils/sg3-utils_1.42.bb b/meta-openembedded/meta-oe/recipes-support/sg3-utils/sg3-utils_1.44.bb index c37c5e952e..4909035b3a 100644 --- a/meta-openembedded/meta-oe/recipes-support/sg3-utils/sg3-utils_1.42.bb +++ b/meta-openembedded/meta-oe/recipes-support/sg3-utils/sg3-utils_1.44.bb @@ -9,14 +9,13 @@ LICENSE = "GPLv2+ & BSD" LIC_FILES_CHKSUM = "file://COPYING;md5=f90da7fc52172599dbf082d7620f18ca" SRC_URI = "http://sg.danny.cz/sg/p/sg3_utils-${PV}.tgz \ - file://glibc-2.28.patch \ " MIRRORS += "http://sg.danny.cz/sg/p https://fossies.org/linux/misc" UPSTREAM_CHECK_REGEX = "sg3_utils-(?P<pver>\d+(\.\d+)+)\.tgz" -SRC_URI[md5sum] = "28080de5bf2222f8b55a29093bec8aea" -SRC_URI[sha256sum] = "1dcb7a0309bd0ba3d4a83acb526973b80106ee26cd9f7398186cd3f0633c9ef3" +SRC_URI[md5sum] = "c11d2b3ca4cc2fd01796473e5330afed" +SRC_URI[sha256sum] = "8dae684d22e71b11353a48b16c95597af90f0cbe9bbd57f98d7f5544da5cae7b" inherit autotools-brokensep diff --git a/meta-openembedded/meta-oe/recipes-support/sharutils/sharutils_4.15.2.bb b/meta-openembedded/meta-oe/recipes-support/sharutils/sharutils_4.15.2.bb index c12289b5d0..dca42676dc 100644 --- a/meta-openembedded/meta-oe/recipes-support/sharutils/sharutils_4.15.2.bb +++ b/meta-openembedded/meta-oe/recipes-support/sharutils/sharutils_4.15.2.bb @@ -20,3 +20,5 @@ do_install_append() { rmdir --ignore-fail-on-non-empty ${D}${libdir} fi } + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-openembedded/meta-oe/recipes-support/spdlog/spdlog_1.3.1.bb b/meta-openembedded/meta-oe/recipes-support/spdlog/spdlog_1.3.1.bb new file mode 100644 index 0000000000..91e3f67c2b --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/spdlog/spdlog_1.3.1.bb @@ -0,0 +1,19 @@ +DESCRIPTION = "Very fast, header only, C++ logging library." +HOMEPAGE = "https://github.com/gabime/spdlog/wiki" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" + +SRCREV = "a7148b718ea2fabb8387cb90aee9bf448da63e65" +SRC_URI = "git://github.com/gabime/spdlog.git;protocol=git;branch=v1.x;" + +S = "${WORKDIR}/git" + +BBCLASSEXTEND = "native" +# no need to build example&text&benchmarks on pure yocto +EXTRA_OECMAKE += "-DSPDLOG_INSTALL=on -DSPDLOG_BUILD_EXAMPLES=off -DSPDLOG_BUILD_TESTS=off -DSPDLOG_BUILD_BENCH=off" + +inherit cmake + +# Header-only library +RDEPENDS_${PN}-dev = "" +RRECOMMENDS_${PN}-dbg = "${PN}-dev (= ${EXTENDPKGV})" diff --git a/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0001-Add-linux-musleabi-to-ostable.patch b/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0001-Add-linux-musleabi-to-ostable.patch deleted file mode 100644 index 269441fc8b..0000000000 --- a/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0001-Add-linux-musleabi-to-ostable.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 087840efdbc86b1432ebdd81f25b4cb78c75f818 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Tue, 11 Sep 2018 12:28:10 -0700 -Subject: [PATCH] Add linux-musleabi to ostable - -Upstream-Status: Pending -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - ostable | 1 + - triplettable | 1 + - 2 files changed, 2 insertions(+) - -diff --git a/ostable b/ostable -index 3bb6819..d0ffdc7 100644 ---- a/ostable -+++ b/ostable -@@ -15,6 +15,7 @@ - uclibceabi-linux linux-uclibceabi linux[^-]*-uclibceabi - uclibc-linux linux-uclibc linux[^-]*-uclibc - musleabihf-linux linux-musleabihf linux[^-]*-musleabihf -+musleabi-linux linux-musleabi linux[^-]*-musleabi - musl-linux linux-musl linux[^-]*-musl - gnueabihf-linux linux-gnueabihf linux[^-]*-gnueabihf - gnueabi-linux linux-gnueabi linux[^-]*-gnueabi -diff --git a/triplettable b/triplettable -index 7257744..45864c3 100644 ---- a/triplettable -+++ b/triplettable -@@ -6,6 +6,7 @@ - uclibceabi-linux-arm uclibc-linux-armel - uclibc-linux-<cpu> uclibc-linux-<cpu> - musleabihf-linux-arm musl-linux-armhf -+musleabi-linux-arm musl-linux-arm - musl-linux-<cpu> musl-linux-<cpu> - gnueabihf-linux-arm armhf - gnueabi-linux-arm armel --- -2.18.0 - diff --git a/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0001-dpkg-Support-muslx32-build.patch b/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0001-dpkg-Support-muslx32-build.patch new file mode 100644 index 0000000000..50e6894406 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0001-dpkg-Support-muslx32-build.patch @@ -0,0 +1,41 @@ +From a328c8bec0bf8071ae8f20fee4c7475205064ba1 Mon Sep 17 00:00:00 2001 +From: sweeaun <swee.aun.khor@intel.com> +Date: Sun, 10 Sep 2017 00:14:15 -0700 +Subject: [PATCH] dpkg: Support muslx32 build + +Upstream-Status: Pending. +Changes made on ostable and tupletable to enable muslx32 build. + +Signed-off-by: sweeaun <swee.aun.khor@intel.com> +--- + data/ostable | 1 + + data/tupletable | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/data/ostable b/data/ostable +index be64342..87db273 100644 +--- a/data/ostable ++++ b/data/ostable +@@ -19,6 +19,7 @@ base-uclibc-linux linux-uclibc linux[^-]*-uclibc + eabihf-musl-linux linux-musleabihf linux[^-]*-musleabihf + eabi-musl-linux linux-musleabi linux[^-]*-musleabi + base-musl-linux linux-musl linux[^-]*-musl ++x32-musl-linux linux-muslx32 linux[^-]*-muslx32 + eabihf-gnu-linux linux-gnueabihf linux[^-]*-gnueabihf + eabi-gnu-linux linux-gnueabi linux[^-]*-gnueabi + abin32-gnu-linux linux-gnuabin32 linux[^-]*-gnuabin32 +diff --git a/data/tupletable b/data/tupletable +index 28f00bf..748ffab 100644 +--- a/data/tupletable ++++ b/data/tupletable +@@ -10,6 +10,7 @@ base-uclibc-linux-<cpu> uclibc-linux-<cpu> + eabihf-musl-linux-arm musl-linux-armhf + eabi-musl-linux-arm musl-linux-armel + base-musl-linux-<cpu> musl-linux-<cpu> ++x32-musl-linux-amd64 x32 + ilp32-gnu-linux-arm64 arm64ilp32 + eabihf-gnu-linux-arm armhf + eabi-gnu-linux-arm armel +-- +2.7.4 + diff --git a/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0002-Adapt-to-linux-wrs-kernel-version-which-has-characte.patch b/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0002-Adapt-to-linux-wrs-kernel-version-which-has-characte.patch new file mode 100644 index 0000000000..9fe0ca7600 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0002-Adapt-to-linux-wrs-kernel-version-which-has-characte.patch @@ -0,0 +1,38 @@ +From b4ea54158c399874e12394ebc91afe98954695e2 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex.kanavin@gmail.com> +Date: Wed, 26 Aug 2015 16:16:16 +0300 +Subject: [PATCH 2/5] Adapt to linux-wrs kernel version, which has character + '_' inside. Remove the first-char-digit-check (as the 1.15.8.5 version does). + +Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com> +Signed-off-by: Constantin Musca <constantinx.musca@intel.com> + +Upstream-Status: Inappropriate [embedded specific] +--- + lib/dpkg/parsehelp.c | 6 ++---- + 1 file changed, 2 insertions(+), 4 deletions(-) + +diff --git a/lib/dpkg/parsehelp.c b/lib/dpkg/parsehelp.c +index 453077fd9..f42ea2882 100644 +--- a/lib/dpkg/parsehelp.c ++++ b/lib/dpkg/parsehelp.c +@@ -243,14 +243,12 @@ parseversion(struct dpkg_version *rversion, const char *string, + ptr = rversion->version; + if (!*ptr) + return dpkg_put_error(err, _("version number is empty")); +- if (*ptr && !c_isdigit(*ptr++)) +- return dpkg_put_warn(err, _("version number does not start with digit")); + for (; *ptr; ptr++) { +- if (!c_isdigit(*ptr) && !c_isalpha(*ptr) && strchr(".-+~:", *ptr) == NULL) ++ if (!c_isdigit(*ptr) && !c_isalpha(*ptr) && strchr(".-+~:_", *ptr) == NULL) + return dpkg_put_warn(err, _("invalid character in version number")); + } + for (ptr = rversion->revision; *ptr; ptr++) { +- if (!c_isdigit(*ptr) && !c_isalpha(*ptr) && strchr(".+~", *ptr) == NULL) ++ if (!c_isdigit(*ptr) && !c_isalpha(*ptr) && strchr(".-+~_", *ptr) == NULL) + return dpkg_put_warn(err, _("invalid character in revision number")); + } + + +-- +2.11.0 diff --git a/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0003-Our-pre-postinsts-expect-D-to-be-set-when-running-in.patch b/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0003-Our-pre-postinsts-expect-D-to-be-set-when-running-in.patch new file mode 100644 index 0000000000..93d870443c --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0003-Our-pre-postinsts-expect-D-to-be-set-when-running-in.patch @@ -0,0 +1,75 @@ +From 24229971492515b64c81e8c6392e5dfbdc22b44c Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex.kanavin@gmail.com> +Date: Wed, 26 Aug 2015 16:25:45 +0300 +Subject: [PATCH 3/5] Our pre/postinsts expect $D to be set when running in a + sysroot and don't expect a chroot. This matches up our system expectations + with what dpkg does. + +Upstream-Status: Inappropriate [OE Specific] + +RP 2011/12/07 +ALIMON 2016/05/26 +ALIMON 2017/02/21 +--- + src/script.c | 44 +++----------------------------------------- + 1 file changed, 3 insertions(+), 41 deletions(-) + +diff --git a/src/script.c b/src/script.c +index 2f252ae..768a9d1 100644 +--- a/src/script.c ++++ b/src/script.c +@@ -97,48 +97,10 @@ setexecute(const char *path, struct stat *stab) + static const char * + maintscript_pre_exec(struct command *cmd) + { +- const char *admindir = dpkg_db_get_dir(); +- const char *changedir; +- size_t instdirlen = strlen(instdir); +- +- if (instdirlen > 0 && fc_script_chrootless) +- changedir = instdir; +- else +- changedir = "/"; +- +- if (instdirlen > 0 && !fc_script_chrootless) { +- if (strncmp(admindir, instdir, instdirlen) != 0) +- ohshit(_("admindir must be inside instdir for dpkg to work properly")); +- if (setenv("DPKG_ADMINDIR", admindir + instdirlen, 1) < 0) +- ohshite(_("unable to setenv for subprocesses")); +- if (setenv("DPKG_ROOT", "", 1) < 0) +- ohshite(_("unable to setenv for subprocesses")); +- +- if (chroot(instdir)) +- ohshite(_("failed to chroot to '%.250s'"), instdir); ++ if (*instdir) { ++ setenv("D", instdir, 1); + } +- /* Switch to a known good directory to give the maintainer script +- * a saner environment, also needed after the chroot(). */ +- if (chdir(changedir)) +- ohshite(_("failed to chdir to '%.255s'"), changedir); +- if (debug_has_flag(dbg_scripts)) { +- struct varbuf args = VARBUF_INIT; +- const char **argv = cmd->argv; +- +- while (*++argv) { +- varbuf_add_char(&args, ' '); +- varbuf_add_str(&args, *argv); +- } +- varbuf_end_str(&args); +- debug(dbg_scripts, "fork/exec %s (%s )", cmd->filename, +- args.buf); +- varbuf_destroy(&args); +- } +- if (instdirlen == 0 || fc_script_chrootless) +- return cmd->filename; +- +- assert(strlen(cmd->filename) >= instdirlen); +- return cmd->filename + instdirlen; ++ return cmd->filename; + } + + /** +-- +2.1.4 + diff --git a/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0004-The-lutimes-function-doesn-t-work-properly-for-all-s.patch b/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0004-The-lutimes-function-doesn-t-work-properly-for-all-s.patch new file mode 100644 index 0000000000..56c85c7733 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0004-The-lutimes-function-doesn-t-work-properly-for-all-s.patch @@ -0,0 +1,31 @@ +From adb6bfd0feeceaf030df0debe3343d7f73e708a0 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex.kanavin@gmail.com> +Date: Wed, 26 Aug 2015 16:27:45 +0300 +Subject: [PATCH 4/5] The lutimes function doesn't work properly for all + systems. + +Signed-off-by: Constantin Musca <constantinx.musca@intel.com> + +Upstream-Status: Inappropriate [embedded specific] +--- + src/archives.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/archives.c b/src/archives.c +index bff5f14..b711013 100644 +--- a/src/archives.c ++++ b/src/archives.c +@@ -449,8 +449,9 @@ tarobject_set_mtime(struct tar_entry *te, const char *path) + + if (te->type == TAR_FILETYPE_SYMLINK) { + #ifdef HAVE_LUTIMES +- if (lutimes(path, tv) && errno != ENOSYS) ++/* if (lutimes(path, tv) && errno != ENOSYS) + ohshite(_("error setting timestamps of '%.255s'"), path); ++*/ + #endif + } else { + if (utimes(path, tv)) +-- +2.1.4 + diff --git a/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0005-dpkg-compiler.m4-remove-Wvla.patch b/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0005-dpkg-compiler.m4-remove-Wvla.patch new file mode 100644 index 0000000000..96e96f277b --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0005-dpkg-compiler.m4-remove-Wvla.patch @@ -0,0 +1,36 @@ +From 0ad7bba80d5b9035089ff2b2f77a774b5b201915 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex.kanavin@gmail.com> +Date: Wed, 26 Aug 2015 16:28:59 +0300 +Subject: [PATCH 5/5] dpkg-compiler.m4: remove -Wvla +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Remove the -Wvla flag from the set of compiler warning flags, since gcc +on old host systems such as CentOS 5.8 doesn't support it, and it +causes a build error for dpkg-native. + +Upstream-Status: Pending + +Signed-off-by: Donn Seeley <donn.seeley@windriver.com> +Signed-off-by: Robert Yang <liezhi.yang@windriver.com> +Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com> +--- + m4/dpkg-compiler.m4 | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/m4/dpkg-compiler.m4 b/m4/dpkg-compiler.m4 +index 682857c..23ed7d0 100644 +--- a/m4/dpkg-compiler.m4 ++++ b/m4/dpkg-compiler.m4 +@@ -52,7 +52,6 @@ AC_DEFUN([DPKG_CHECK_COMPILER_WARNINGS], [ + DPKG_CHECK_COMPILER_FLAG([-Wlogical-op]) + DPKG_CHECK_COMPILER_FLAG([-Wlogical-not-parentheses]) + DPKG_CHECK_COMPILER_FLAG([-Wswitch-bool]) +- DPKG_CHECK_COMPILER_FLAG([-Wvla]) + DPKG_CHECK_COMPILER_FLAG([-Winit-self]) + DPKG_CHECK_COMPILER_FLAG([-Wwrite-strings]) + DPKG_CHECK_COMPILER_FLAG([-Wcast-align]) +-- +2.1.4 + diff --git a/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0006-add-musleabi-to-known-target-tripets.patch b/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0006-add-musleabi-to-known-target-tripets.patch new file mode 100644 index 0000000000..8797ea55c6 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0006-add-musleabi-to-known-target-tripets.patch @@ -0,0 +1,42 @@ +From f8910022dc3ec622272f168cd0022dbdf6dff93a Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Wed, 30 Dec 2015 23:05:41 +0000 +Subject: [PATCH] add musleabi to known target tripets + +helps compiling dpkg for musl/arm-softfloat + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com> +--- + data/ostable | 1 + + data/tupletable | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/data/ostable b/data/ostable +index 99c1f889d..be6434271 100644 +--- a/data/ostable ++++ b/data/ostable +@@ -17,6 +17,7 @@ + eabi-uclibc-linux linux-uclibceabi linux[^-]*-uclibceabi + base-uclibc-linux linux-uclibc linux[^-]*-uclibc + eabihf-musl-linux linux-musleabihf linux[^-]*-musleabihf ++eabi-musl-linux linux-musleabi linux[^-]*-musleabi + base-musl-linux linux-musl linux[^-]*-musl + eabihf-gnu-linux linux-gnueabihf linux[^-]*-gnueabihf + eabi-gnu-linux linux-gnueabi linux[^-]*-gnueabi +diff --git a/data/tupletable b/data/tupletable +index 5f500f6ca..28f00bfe6 100644 +--- a/data/tupletable ++++ b/data/tupletable +@@ -8,6 +8,7 @@ + eabi-uclibc-linux-arm uclibc-linux-armel + base-uclibc-linux-<cpu> uclibc-linux-<cpu> + eabihf-musl-linux-arm musl-linux-armhf ++eabi-musl-linux-arm musl-linux-armel + base-musl-linux-<cpu> musl-linux-<cpu> + ilp32-gnu-linux-arm64 arm64ilp32 + eabihf-gnu-linux-arm armhf +-- +2.11.0 + diff --git a/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0007-dpkg-deb-build.c-Remove-usage-of-clamp-mtime-in-tar.patch b/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0007-dpkg-deb-build.c-Remove-usage-of-clamp-mtime-in-tar.patch new file mode 100644 index 0000000000..1b985df0f5 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0007-dpkg-deb-build.c-Remove-usage-of-clamp-mtime-in-tar.patch @@ -0,0 +1,39 @@ +From 8659eeeeda74d71e12080121f0b13a88cbdda433 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?An=C3=ADbal=20Lim=C3=B3n?= <anibal.limon@linux.intel.com> +Date: Tue, 21 Feb 2017 11:23:27 -0600 +Subject: [PATCH] dpkg-deb/build.c: Remove usage of --clamp-mtime in tar +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Recently dpkg added --clamp-mtime to tar to create reproducible +build tarballs [1]. + +But host tools doesn't support this option because is new on tar +so disable in our builds. + +Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com> + +Upstream-Status: Inappropriate [Configuration] + +[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=759999#20 +[2] https://lists.gnu.org/archive/html/help-tar/2016-01/msg00000.html +--- + dpkg-deb/build.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/dpkg-deb/build.c b/dpkg-deb/build.c +index a92b58e..a3d1912 100644 +--- a/dpkg-deb/build.c ++++ b/dpkg-deb/build.c +@@ -450,7 +450,7 @@ tarball_pack(const char *dir, filenames_feed_func *tar_filenames_feeder, + + command_init(&cmd, TAR, "tar -cf"); + command_add_args(&cmd, "tar", "-cf", "-", "--format=gnu", +- "--mtime", mtime, "--clamp-mtime", NULL); ++ "--mtime", mtime, NULL); + /* Mode might become a positional argument, pass it before -T. */ + if (mode) + command_add_args(&cmd, "--mode", mode, NULL); +-- +2.11.0 diff --git a/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/add_armeb_triplet_entry.patch b/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/add_armeb_triplet_entry.patch new file mode 100644 index 0000000000..d165616a19 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/add_armeb_triplet_entry.patch @@ -0,0 +1,48 @@ +Author: Krishnanjanappa, Jagadeesh <jagadeesh.krishnanjanappa@caviumnetworks.com> +Date: Wed Apr 8 18:08:14 2015 +0530 + +[PATCH] add armeb triplet entry into triplettable. + +Cross-compling dpkg application for armeb fails with below error +during configure task, + +(snip) + configure:23141: checking dpkg cpu type + configure:23148: result: armeb + configure:23150: WARNING: armeb not found in cputable + configure:23162: checking dpkg operating system type + configure:23169: result: linux-gnueabi + configure:23171: WARNING: linux-gnueabi not found in ostable + configure:23183: checking dpkg architecture name + configure:23189: error: cannot determine host dpkg architecture +-- CUT -- + +the required combination of "gnueabi-linux-armeb" was not found in +the triplettable file thereby returning dpkg_arch as +empty in configure script. + +Upstream-Status: Pending + +Signed-off-by: Krishnanjanappa, Jagadeesh <jagadeesh.krishnanjanappa@caviumnetworks.com> +Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com> + +--- + data/tupletable | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/data/tupletable b/data/tupletable +index b7802bec3..5f500f6ca 100644 +--- a/data/tupletable ++++ b/data/tupletable +@@ -12,6 +12,7 @@ base-musl-linux-<cpu> musl-linux-<cpu> + ilp32-gnu-linux-arm64 arm64ilp32 + eabihf-gnu-linux-arm armhf + eabi-gnu-linux-arm armel ++eabi-gnu-linux-armeb armeb + abin32-gnu-linux-mips64r6el mipsn32r6el + abin32-gnu-linux-mips64r6 mipsn32r6 + abin32-gnu-linux-mips64el mipsn32el +-- +2.11.0 + + diff --git a/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/arch_pm.patch b/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/arch_pm.patch new file mode 100644 index 0000000000..4e0d22acbb --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/arch_pm.patch @@ -0,0 +1,29 @@ +configure cannot determine the proper cpu, os, or +architecture for mips64, and possibly other arch's +because of faulty code added to Arch.pm in the latest +release from upstream. We remove that code. + +Upstream-Status: Pending + +Signed-off-by: Joe Slater <jslater@windriver.com> + +--- + scripts/Dpkg/Arch.pm | 3 --- + 1 file changed, 3 deletions(-) + +diff --git a/scripts/Dpkg/Arch.pm b/scripts/Dpkg/Arch.pm +index 1720847b8..6345ce3b9 100644 +--- a/scripts/Dpkg/Arch.pm ++++ b/scripts/Dpkg/Arch.pm +@@ -323,9 +323,6 @@ sub _load_tupletable() + (my $dt = $debtuple) =~ s/<cpu>/$_cpu/; + (my $da = $debarch) =~ s/<cpu>/$_cpu/; + +- next if exists $debarch_to_debtuple{$da} +- or exists $debtuple_to_debarch{$dt}; +- + $debarch_to_debtuple{$da} = $dt; + $debtuple_to_debarch{$dt} = $da; + } +-- +2.11.0 diff --git a/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/noman.patch b/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/noman.patch new file mode 100644 index 0000000000..a7f3cb8f45 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/noman.patch @@ -0,0 +1,22 @@ +Upstream-Status: Inappropriate [disable feature] + +--- + Makefile.am | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/Makefile.am b/Makefile.am +index 0da52cb16..a1f79e0a2 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -13,8 +13,7 @@ SUBDIRS = \ + $(MAYBE_DSELECT) \ + scripts \ + t-func \ +- po \ +- man ++ po + + ACLOCAL_AMFLAGS = -I m4 + +-- +2.11.0 diff --git a/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/remove-tar-no-timestamp.patch b/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/remove-tar-no-timestamp.patch new file mode 100644 index 0000000000..4f408ff777 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/remove-tar-no-timestamp.patch @@ -0,0 +1,17 @@ +busybox-1.19.4 tar utility doesn't support --warning=no-timestamp + +Signed-off-by: Constantin Musca <constantinx.musca@intel.com> + +Upstream-Status: Inappropriate [configuration] +Index: dpkg-1.17.1/dpkg-deb/extract.c +=================================================================== +--- dpkg-1.17.1.orig/dpkg-deb/extract.c ++++ dpkg-1.17.1/dpkg-deb/extract.c +@@ -318,7 +318,6 @@ extracthalf(const char *debar, const cha + + command_add_arg(&cmd, "-f"); + command_add_arg(&cmd, "-"); +- command_add_arg(&cmd, "--warning=no-timestamp"); + + m_dup2(p2[0],0); + close(p2[0]); diff --git a/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon_1.17.25.bb b/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon_1.17.25.bb deleted file mode 100644 index b9b22a316e..0000000000 --- a/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon_1.17.25.bb +++ /dev/null @@ -1,39 +0,0 @@ -SUMMARY = "Debian's start-stop-daemon utility extracted from the dpkg \ -package" -LICENSE = "PD" -LIC_FILES_CHKSUM = "file://utils/start-stop-daemon.c;endline=21;md5=8fbd0497a7d0b01e99820bffcb58e9ad" -# start-stop-daemon is usually shipped by dpkg -DEPENDS = "ncurses" -RCONFLICTS_${PN} = "dpkg" - -SRC_URI = " \ - ${DEBIAN_MIRROR}/main/d/dpkg/dpkg_${PV}.tar.xz \ - file://0001-dpkg-start-stop-daemon-Accept-SIG-prefixed-signal-na.patch \ - file://0001-Add-linux-musleabi-to-ostable.patch \ -" - -SRC_URI[md5sum] = "e48fcfdb2162e77d72c2a83432d537ca" -SRC_URI[sha256sum] = "07019d38ae98fb107c79dbb3690cfadff877f153b8c4970e3a30d2e59aa66baa" - -inherit autotools gettext pkgconfig - -S = "${WORKDIR}/dpkg-${PV}" - -EXTRA_OECONF = " \ - --without-bz2 \ - --without-selinux \ -" - -do_install_append () { - # remove everything that is not related to start-stop-daemon, since there - # is no explicit rule for only installing ssd - find ${D} -type f -not -name "*start-stop-daemon*" -exec rm {} \; - find ${D} -depth -type d -empty -exec rmdir {} \; - - # support for buggy init.d scripts that refer to an alternative - # explicit path to start-stop-daemon - if [ "${base_sbindir}" != "${sbindir}" ]; then - mkdir -p ${D}${base_sbindir} - ln -sf ${sbindir}/start-stop-daemon ${D}${base_sbindir}/start-stop-daemon - fi -} diff --git a/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon_1.18.25.bb b/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon_1.18.25.bb new file mode 100644 index 0000000000..b372d3c4a1 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon_1.18.25.bb @@ -0,0 +1,87 @@ +SUMMARY = "Debian's start-stop-daemon utility extracted from the dpkg \ +package" +LICENSE = "PD" +LIC_FILES_CHKSUM = "file://utils/start-stop-daemon.c;endline=21;md5=8fbd0497a7d0b01e99820bffcb58e9ad" +DEPENDS = "zlib bzip2 perl ncurses" +# start-stop-daemon is usually shipped by dpkg +RCONFLICTS_${PN} = "dpkg" + +SRC_URI = " \ + ${DEBIAN_MIRROR}/main/d/dpkg/dpkg_${PV}.tar.xz \ + file://0001-dpkg-start-stop-daemon-Accept-SIG-prefixed-signal-na.patch \ + file://noman.patch \ + file://remove-tar-no-timestamp.patch \ + file://arch_pm.patch \ + file://add_armeb_triplet_entry.patch \ + file://0002-Adapt-to-linux-wrs-kernel-version-which-has-characte.patch \ + file://0003-Our-pre-postinsts-expect-D-to-be-set-when-running-in.patch \ + file://0004-The-lutimes-function-doesn-t-work-properly-for-all-s.patch \ + file://0005-dpkg-compiler.m4-remove-Wvla.patch \ + file://0006-add-musleabi-to-known-target-tripets.patch \ + file://0007-dpkg-deb-build.c-Remove-usage-of-clamp-mtime-in-tar.patch \ + file://0001-dpkg-Support-muslx32-build.patch \ +" +SRC_URI[md5sum] = "e463f58b04acb23659df23d2a7a05cff" +SRC_URI[sha256sum] = "c49c371953aea03f543814dcae37c069e86069333fb2e24e9252e76647663492" + +inherit autotools gettext perlnative pkgconfig perl-version + +S = "${WORKDIR}/dpkg-${PV}" + +EXTRA_OECONF = "\ + --disable-dselect \ + --enable-start-stop-daemon \ + --with-libz \ + --with-libbz2 \ + --without-libselinux \ + " + +PACKAGECONFIG = "liblzma" +PACKAGECONFIG[liblzma] = "--with-liblzma,--without-liblzma, xz" + +export PERL = "${bindir}/perl" +export PERL_LIBDIR = "${libdir}/perl/${@get_perl_version(d)}" +EXTRA_OECONF += "TAR=tar" + +EXTRA_OECONF_append_class-target = " DEB_HOST_ARCH=${DPKG_ARCH}" + +DPKG_ARCH ??= "${@deb_arch_map(d.getVar('TARGET_ARCH'), d.getVar('TUNE_FEATURES'))}" + +def deb_arch_map(arch, tune): + tune_features = tune.split() + if arch == "allarch": + return "all" + if arch in ["i586", "i686"]: + return "i386" + if arch == "x86_64": + if "mx32" in tune_features: + return "x32" + return "amd64" + if arch.startswith("mips"): + endian = ["el", ""]["bigendian" in tune_features] + if "n64" in tune_features: + return "mips64" + endian + if "n32" in tune_features: + return "mipsn32" + endian + return "mips" + endian + if arch == "powerpc": + return arch + ["", "spe"]["spe" in tune_features] + if arch == "aarch64": + return "arm64" + if arch == "arm": + return arch + ["el", "hf"]["callconvention-hard" in tune_features] + return arch + +do_install_append () { + # remove everything that is not related to start-stop-daemon, since there + # is no explicit rule for only installing ssd + find ${D} -type f -not -name "*start-stop-daemon*" -exec rm {} \; + find ${D} -depth -type d -empty -exec rmdir {} \; + + # support for buggy init.d scripts that refer to an alternative + # explicit path to start-stop-daemon + if [ "${base_sbindir}" != "${sbindir}" ]; then + mkdir -p ${D}${base_sbindir} + ln -sf ${sbindir}/start-stop-daemon ${D}${base_sbindir}/start-stop-daemon + fi +} diff --git a/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng_3.16.1.bb b/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng_3.19.1.bb index b5f42cf988..4eecf6b6a8 100644 --- a/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng_3.16.1.bb +++ b/meta-openembedded/meta-oe/recipes-support/syslog-ng/syslog-ng_3.19.1.bb @@ -12,5 +12,5 @@ SRC_URI = "https://github.com/balabit/syslog-ng/releases/download/${BP}/${BP}.ta file://0001-syslog-ng-fix-segment-fault-during-service-start.patch \ " -SRC_URI[md5sum] = "72d44ad02c2e9ba0748b3ecd3f15a7ff" -SRC_URI[sha256sum] = "c7ee6f1d5e98d86f191964e580111bfa71081ecbb3275cea035bbba177b73a29" +SRC_URI[md5sum] = "aa79bc13d9fd925aa5fb9516e87aacd3" +SRC_URI[sha256sum] = "5cf931a9d7bead0e6d9a2c65eee8f6005a005878f59aa280f3c4294257ed5178" diff --git a/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/files/use-sh-on-path.patch b/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/files/use-sh-on-path.patch new file mode 100644 index 0000000000..8cb16decb7 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/files/use-sh-on-path.patch @@ -0,0 +1,21 @@ + +thin-provisioning-tools: use sh on path when invoking txt2man + +txt2man contains a test which might try to use ksh to run the script, so we +avoid running /bin/sh. + +Upstream-Status: Inappropriate [oe specific] + +Signed-off-by: joe.slater <joe.slater@windriver.com> + +--- a/Makefile.in ++++ b/Makefile.in +@@ -210,7 +210,7 @@ endif + + %.8: %.txt bin/txt2man + @echo " [txt2man] $<" +- $(V) bin/txt2man -p -t $(basename $(notdir $<)) $< > $@ ++ $(V) sh bin/txt2man -p -t $(basename $(notdir $<)) $< > $@ + + #---------------------------------------------------------------- + diff --git a/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_0.7.6.bb b/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_0.7.6.bb index 20cb17aa2c..5f6ba9e37b 100644 --- a/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_0.7.6.bb +++ b/meta-openembedded/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_0.7.6.bb @@ -10,6 +10,7 @@ S = "${WORKDIR}/git" SRC_URI = "git://github.com/jthornber/thin-provisioning-tools \ file://0001-do-not-strip-pdata_tools-at-do_install.patch \ file://0001-fix-compile-failed-with-libc-musl.patch \ + file://use-sh-on-path.patch \ " SRCREV = "6f936992b8e6208a7838fcf1ec87c5bd3a694a77" diff --git a/meta-openembedded/meta-oe/recipes-support/udisks/udisks2_2.7.8.bb b/meta-openembedded/meta-oe/recipes-support/udisks/udisks2_2.8.1.bb index 64b338f11b..3f2130ecda 100644 --- a/meta-openembedded/meta-oe/recipes-support/udisks/udisks2_2.7.8.bb +++ b/meta-openembedded/meta-oe/recipes-support/udisks/udisks2_2.8.1.bb @@ -19,15 +19,17 @@ DEPENDS += "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" RDEPENDS_${PN} = "acl" SRC_URI = " \ - git://github.com/storaged-project/udisks.git;branch=2.7.x-branch \ + git://github.com/storaged-project/udisks.git;branch=master \ file://non-gnu-libc.patch \ " -SRCREV = "47bc0141cb84624ba1e2242d596a89a30df1f5ea" +SRCREV = "05ae471be3c2adf2255b3a01edb00bba06e02afb" S = "${WORKDIR}/git" CVE_PRODUCT = "udisks" -inherit autotools systemd gtk-doc gobject-introspection +inherit autotools systemd gtk-doc gobject-introspection distro_features_check + +REQUIRED_DISTRO_FEATURES = "polkit" EXTRA_OECONF = "--disable-man --disable-gtk-doc" diff --git a/meta-openembedded/meta-oe/recipes-support/udisks/udisks_1.0.5.bb b/meta-openembedded/meta-oe/recipes-support/udisks/udisks_1.0.5.bb index 7cd9992214..3ae8ecc15c 100644 --- a/meta-openembedded/meta-oe/recipes-support/udisks/udisks_1.0.5.bb +++ b/meta-openembedded/meta-oe/recipes-support/udisks/udisks_1.0.5.bb @@ -22,7 +22,10 @@ SRC_URI = "http://hal.freedesktop.org/releases/${BPN}-${PV}.tar.gz;name=${BPN} \ SRC_URI[udisks.md5sum] = "70d48dcfe523a74cd7c7fbbc2847fcdd" SRC_URI[udisks.sha256sum] = "f2ec82eb0ea7e01dc299b5b29b3c18cdf861236ec43dcff66b3552b4b31c6f71" -inherit autotools-brokensep systemd gtk-doc +inherit autotools-brokensep systemd gtk-doc distro_features_check + +REQUIRED_DISTRO_FEATURES = "polkit" + PACKAGECONFIG ??= "libdevmapper" PACKAGECONFIG[libdevmapper] = "--enable-devmapper,--disable-devmapper,libdevmapper" diff --git a/meta-openembedded/meta-oe/recipes-support/unixodbc/unixodbc_2.3.6.bb b/meta-openembedded/meta-oe/recipes-support/unixodbc/unixodbc_2.3.7.bb index 2674d3548d..563badf57b 100644 --- a/meta-openembedded/meta-oe/recipes-support/unixodbc/unixodbc_2.3.6.bb +++ b/meta-openembedded/meta-oe/recipes-support/unixodbc/unixodbc_2.3.7.bb @@ -8,11 +8,11 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d7b37bf80a3df5a65b355433ae36d206" DEPENDS = "libtool mysql5" -SRC_URI = "ftp://ftp.unixodbc.org/pub/unixODBC/unixODBC-${PV}.tar.gz \ +SRC_URI = "http://ftp.unixodbc.org/unixODBC-${PV}.tar.gz \ file://do-not-use-libltdl-source-directory.patch \ " -SRC_URI[md5sum] = "a8629fd2953b04b4639d0a9d8a5cf9d1" -SRC_URI[sha256sum] = "88b637f647c052ecc3861a3baa275c3b503b193b6a49ff8c28b2568656d14d69" +SRC_URI[md5sum] = "274a711b0c77394e052db6493840c6f9" +SRC_URI[sha256sum] = "45f169ba1f454a72b8fcbb82abd832630a3bf93baa84731cf2949f449e1e3e77" UPSTREAM_CHECK_REGEX = "unixODBC-(?P<pver>\d+(\.\d+)+)\.tar" diff --git a/meta-openembedded/meta-oe/recipes-support/upower/upower_0.99.7.bb b/meta-openembedded/meta-oe/recipes-support/upower/upower_0.99.7.bb index 2cf3163bb7..3fd91e958f 100644 --- a/meta-openembedded/meta-oe/recipes-support/upower/upower_0.99.7.bb +++ b/meta-openembedded/meta-oe/recipes-support/upower/upower_0.99.7.bb @@ -11,7 +11,9 @@ SRC_URI = " \ SRC_URI[md5sum] = "236bb439d9ff1151450b3d8582399532" SRC_URI[sha256sum] = "24bcc2f6ab25a2533bac70b587bcb019e591293076920f5b5e04bdedc140a401" -inherit autotools pkgconfig gettext gobject-introspection systemd +inherit autotools pkgconfig gettext gobject-introspection systemd distro_features_check + +REQUIRED_DISTRO_FEATURES = "polkit" PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" PACKAGECONFIG[idevice] = "--with-idevice,--without-idevice,libimobiledevice libplist" diff --git a/meta-openembedded/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch-data_20170205.bb b/meta-openembedded/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch-data_20170806.bb index eeed5e275d..6abd941680 100644 --- a/meta-openembedded/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch-data_20170205.bb +++ b/meta-openembedded/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch-data_20170806.bb @@ -7,8 +7,8 @@ inherit allarch DEPENDS += "tcl-native" SRC_URI = "http://www.draisberghof.de/usb_modeswitch/${BP}.tar.bz2" -SRC_URI[md5sum] = "0cc107cd0c4c83df0d9400c999e21dfd" -SRC_URI[sha256sum] = "e2dcfd9d28928d8d8f03381571a23442b3c50d48d343bc40a1a07d01662738d1" +SRC_URI[md5sum] = "fb50d15b52e909d742dd16f0a9882316" +SRC_URI[sha256sum] = "ce413ef2a50e648e9c81bc3ea6110e7324a8bf981034fc9ec4467d3562563c2c" do_install() { oe_runmake install DESTDIR=${D} diff --git a/meta-openembedded/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch_2.5.0.bb b/meta-openembedded/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch_2.5.2.bb index ac0df8bab4..33e40b36b4 100644 --- a/meta-openembedded/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch_2.5.0.bb +++ b/meta-openembedded/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch_2.5.2.bb @@ -5,8 +5,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" DEPENDS = "libusb1" SRC_URI = "http://www.draisberghof.de/usb_modeswitch/${BP}.tar.bz2" -SRC_URI[md5sum] = "38ad5c9d70e06227a00361bdc2b1e568" -SRC_URI[sha256sum] = "31c0be280d49a99ec3dc0be3325bef320d9c04b50714ef0ce1e36a614d687633" +SRC_URI[md5sum] = "16b9a8efa1bf8fbd7d5612757eae4f26" +SRC_URI[sha256sum] = "abffac09c87eacd78e101545967dc25af7e989745b4276756d45dbf4008a2ea6" inherit pkgconfig systemd diff --git a/meta-openembedded/meta-oe/recipes-support/uthash/uthash_2.0.2.bb b/meta-openembedded/meta-oe/recipes-support/uthash/uthash_2.1.0.bb index ccdd13b32d..7eb1383053 100644 --- a/meta-openembedded/meta-oe/recipes-support/uthash/uthash_2.0.2.bb +++ b/meta-openembedded/meta-oe/recipes-support/uthash/uthash_2.1.0.bb @@ -8,7 +8,7 @@ DESCRIPTION = " uthash-dev provides a hash table implementation using C preproce HOMEPAGE = "https://troydhanson.github.io/uthash/" SECTION = "base" LICENSE = "BSD-1-Clause" -LIC_FILES_CHKSUM = "file://LICENSE;md5=5cc1f1e4c71f19f580458586756c02b4" +LIC_FILES_CHKSUM = "file://LICENSE;md5=a2513f7d2291df840527b76b2a8f9718" SRC_URI = "\ https://github.com/troydhanson/${BPN}/archive/v${PV}.tar.gz;downloadfilename=${BP}.tar.gz \ @@ -16,8 +16,8 @@ SRC_URI = "\ " UPSTREAM_CHECK_URI = "https://github.com/troydhanson/${BPN}/releases" -SRC_URI[md5sum] = "d08632a58674274c9cd87e2930f5696a" -SRC_URI[sha256sum] = "34a31d51dd7a839819cecd6f46049b4ffe031d7f3147d9a042f5504fdb1348d1" +SRC_URI[md5sum] = "4d0a33f6393260926032f1fad4bad39a" +SRC_URI[sha256sum] = "152ccd8e64d0f495377232e3964d06c7ec8bb8c3fbd3217f8a5702614f9a669e" inherit ptest diff --git a/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/kernel-4.18.patch b/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/kernel-4.18.patch deleted file mode 100644 index 93eaa3d6c1..0000000000 --- a/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/kernel-4.18.patch +++ /dev/null @@ -1,33 +0,0 @@ -Description: Fix build failure with new kernel 4.18 -Author: Gianfranco Costamagna <locutusofborg@debian.org> - -Upstream-Status:Pending -Signed-off-by: Khem Raj <raj.khem@gmail.com> -Index: vbox_module/vboxsf/utils.c -=================================================================== ---- vbox_module.orig/vboxsf/utils.c -+++ vbox_module/vboxsf/utils.c -@@ -50,7 +50,11 @@ static void sf_timespec_from_ftime(RTTIM - RTTimeSpecSetNano(ts, t); - } - #else /* >= 2.6.0 */ -+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 18, 0) - static void sf_ftime_from_timespec(struct timespec *tv, RTTIMESPEC *ts) -+#else -+static void sf_ftime_from_timespec(struct timespec64 *tv, RTTIMESPEC *ts) -+#endif - { - int64_t t = RTTimeSpecGetNano(ts); - int64_t nsec; -@@ -60,7 +64,11 @@ static void sf_ftime_from_timespec(struc - tv->tv_nsec = nsec; - } - -+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 18, 0) - static void sf_timespec_from_ftime(RTTIMESPEC *ts, struct timespec *tv) -+#else -+static void sf_timespec_from_ftime(RTTIMESPEC *ts, struct timespec64 *tv) -+#endif - { - int64_t t = (int64_t)tv->tv_nsec + (int64_t)tv->tv_sec * 1000000000; - RTTimeSpecSetNano(ts, t); diff --git a/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_5.2.18.bb b/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_5.2.22.bb index 2a4cc387f7..e394f34c76 100644 --- a/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_5.2.18.bb +++ b/meta-openembedded/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_5.2.22.bb @@ -13,10 +13,9 @@ VBOX_NAME = "VirtualBox-${PV}" SRC_URI = "http://download.virtualbox.org/virtualbox/${PV}/${VBOX_NAME}.tar.bz2 \ file://Makefile.utils \ - file://kernel-4.18.patch \ " -SRC_URI[md5sum] = "d8e291525b84569356773eef507c49ce" -SRC_URI[sha256sum] = "ed0a7efd56c7f39fae79c7ec3321473da412ef0d7914457b66f42679d513efcf" +SRC_URI[md5sum] = "c9c2f162ac5f99d28d8c0ca43b19ed01" +SRC_URI[sha256sum] = "5580e875349341a1aabc6d5d2f697d242f277487316faaf1fbe68d9014f788d4" S = "${WORKDIR}/vbox_module" @@ -25,6 +24,9 @@ export BUILD_TARGET_ARCH_x86-64="amd64" EXTRA_OEMAKE += "KERN_DIR='${WORKDIR}/${KERNEL_VERSION}/build'" +# otherwise 5.2.22 builds just vboxguest +MAKE_TARGETS = "all" + addtask export_sources before do_patch after do_unpack do_export_sources() { diff --git a/meta-openembedded/meta-oe/recipes-support/vim/files/0001-src-Makefile-improve-reproducibility.patch b/meta-openembedded/meta-oe/recipes-support/vim/files/0001-src-Makefile-improve-reproducibility.patch deleted file mode 100644 index 63a7b78f12..0000000000 --- a/meta-openembedded/meta-oe/recipes-support/vim/files/0001-src-Makefile-improve-reproducibility.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 133ab27cdb17ca20ef6b0304cf30621d2bcbe757 Mon Sep 17 00:00:00 2001 -From: Mingli Yu <mingli.yu@windriver.com> -Date: Thu, 31 Jan 2019 21:32:26 -0800 -Subject: [PATCH] src/Makefile: improve reproducibility - -Clear all_cflags, all_lflags, compiled_user -and compiled_sys to avoid introducing build -info to improve reproducibility as below: - -WARNING: vim-8.1.0347-r0 do_package_qa: QA Issue: File /work/core2-64-wrs-linux/vim/8.1.0347-r0/packages-split/vim/usr/bin/vim.vim in package contained reference to tmpdir [buildpaths] - -Upstream-Status: Inappropriate [oe specific] - -Signed-off-by: Mingli Yu <mingli.yu@windriver.com> ---- - src/Makefile | 14 ++++---------- - 1 file changed, 4 insertions(+), 10 deletions(-) - -diff --git a/src/Makefile b/src/Makefile -index f2fafa4dc..7148d4bd9 100644 ---- a/src/Makefile -+++ b/src/Makefile -@@ -2845,16 +2845,10 @@ auto/pathdef.c: Makefile auto/config.mk - -@echo '#include "vim.h"' >> $@ - -@echo 'char_u *default_vim_dir = (char_u *)"$(VIMRCLOC)";' | $(QUOTESED) >> $@ - -@echo 'char_u *default_vimruntime_dir = (char_u *)"$(VIMRUNTIMEDIR)";' | $(QUOTESED) >> $@ -- -@echo 'char_u *all_cflags = (char_u *)"$(CC) -c -I$(srcdir) $(ALL_CFLAGS)";' | $(QUOTESED) >> $@ -- -@echo 'char_u *all_lflags = (char_u *)"$(CC) $(ALL_LIB_DIRS) $(LDFLAGS) -o $(VIMTARGET) $(ALL_LIBS) ";' | $(QUOTESED) >> $@ -- -@echo 'char_u *compiled_user = (char_u *)"' | tr -d $(NL) >> $@ -- -@if test -n "$(COMPILEDBY)"; then \ -- echo "$(COMPILEDBY)" | tr -d $(NL) >> $@; \ -- else ((logname) 2>/dev/null || whoami) | tr -d $(NL) >> $@; fi -- -@echo '";' >> $@ -- -@echo 'char_u *compiled_sys = (char_u *)"' | tr -d $(NL) >> $@ -- -@if test -z "$(COMPILEDBY)"; then hostname | tr -d $(NL) >> $@; fi -- -@echo '";' >> $@ -+ -@echo 'char_u *all_cflags = (char_u *)"";' | $(QUOTESED) >> $@ -+ -@echo 'char_u *all_lflags = (char_u *)"";' | $(QUOTESED) >> $@ -+ -@echo 'char_u *compiled_user = (char_u *)"";' >> $@ -+ -@echo 'char_u *compiled_sys = (char_u *)"";' >> $@ - -@sh $(srcdir)/pathdef.sh - - GUI_GTK_RES_INPUTS = \ --- -2.17.1 - diff --git a/meta-openembedded/meta-oe/recipes-support/vim/files/disable_acl_header_check.patch b/meta-openembedded/meta-oe/recipes-support/vim/files/disable_acl_header_check.patch deleted file mode 100644 index 4720003c25..0000000000 --- a/meta-openembedded/meta-oe/recipes-support/vim/files/disable_acl_header_check.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 5ed25c076a1fb1889a3c50dddf29f21850b59a13 Mon Sep 17 00:00:00 2001 -From: Wenzong Fan <wenzong.fan@windriver.com> -Date: Tue, 26 Jun 2018 17:29:09 +0800 -Subject: [PATCH] disable acl header check - -Don't check 'sys/acl.h' if acl support disabled for vim/vim-tiny. - -Upstream-Status: pending - -Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com> -Signed-off-by: Changqing Li <changqing.li@windriver.com> ---- - src/configure.ac | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/src/configure.ac b/src/configure.ac -index 107c170..0ee86ad 100644 ---- a/src/configure.ac -+++ b/src/configure.ac -@@ -3220,7 +3220,7 @@ AC_CHECK_HEADERS(stdint.h stdlib.h string.h \ - sys/systeminfo.h locale.h sys/stream.h termios.h \ - libc.h sys/statfs.h poll.h sys/poll.h pwd.h \ - utime.h sys/param.h libintl.h libgen.h \ -- util/debug.h util/msg18n.h frame.h sys/acl.h \ -+ util/debug.h util/msg18n.h frame.h \ - sys/access.h sys/sysinfo.h wchar.h wctype.h) - - dnl sys/ptem.h depends on sys/stream.h on Solaris -@@ -3848,6 +3848,7 @@ AC_ARG_ENABLE(acl, - , [enable_acl="yes"]) - if test "$enable_acl" = "yes"; then - AC_MSG_RESULT(no) -+ AC_CHECK_HEADERS(sys/acl.h) - AC_CHECK_LIB(posix1e, acl_get_file, [LIBS="$LIBS -lposix1e"], - AC_CHECK_LIB(acl, acl_get_file, [LIBS="$LIBS -lacl" - AC_CHECK_LIB(attr, fgetxattr, LIBS="$LIBS -lattr",,)],,),) --- -2.7.4 - diff --git a/meta-openembedded/meta-oe/recipes-support/vim/files/vim-add-knob-whether-elf.h-are-checked.patch b/meta-openembedded/meta-oe/recipes-support/vim/files/vim-add-knob-whether-elf.h-are-checked.patch deleted file mode 100644 index 37914d4cd9..0000000000 --- a/meta-openembedded/meta-oe/recipes-support/vim/files/vim-add-knob-whether-elf.h-are-checked.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 38de4bccdb8a861ffdd447f12fdab19d6d852c02 Mon Sep 17 00:00:00 2001 -From: Chong Lu <Chong.Lu@windriver.com> -Date: Tue, 26 Jun 2018 17:34:15 +0800 -Subject: [PATCH] vim: add knob whether elf.h are checked - -Previously, it still was checked when there was no elf library in sysroots directory. -Add knob to decide whether elf.h are checked or not. - -Upstream-Status: Pending - -Signed-off-by: Chong Lu <Chong.Lu@windriver.com> -Signed-off-by: Changqing Li <changqing.li@windriver.com> ---- - src/configure.ac | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/src/configure.ac b/src/configure.ac -index 0ee86ad..64736f0 100644 ---- a/src/configure.ac -+++ b/src/configure.ac -@@ -3192,11 +3192,18 @@ AC_TRY_COMPILE([#include <stdio.h>], [int x __attribute__((unused));], - AC_MSG_RESULT(no)) - - dnl Checks for header files. -+AC_MSG_CHECKING(whether or not to look for elf.h) -+AC_ARG_ENABLE(elf-check, -+ [ --enable-elf-check If elfutils, check for elf.h [default=no]], -+ , enable_elf_check="no") -+AC_MSG_RESULT($enable_elf_check) -+if test "x$enable_elf_check" != "xno"; then - AC_CHECK_HEADER(elf.h, HAS_ELF=1) - dnl AC_CHECK_HEADER(dwarf.h, SVR4=1) - if test "$HAS_ELF" = 1; then - AC_CHECK_LIB(elf, main) - fi -+fi - - AC_HEADER_DIRENT - --- -2.7.4 - diff --git a/meta-openembedded/meta-oe/recipes-support/vim/vim-tiny_8.1.0347.bb b/meta-openembedded/meta-oe/recipes-support/vim/vim-tiny_8.1.0347.bb deleted file mode 100644 index 8b1fb7b115..0000000000 --- a/meta-openembedded/meta-oe/recipes-support/vim/vim-tiny_8.1.0347.bb +++ /dev/null @@ -1,15 +0,0 @@ -require vim_${PV}.bb - -SUMMARY += " (with tiny features)" - -PROVIDES_remove = "xxd" -ALTERNATIVE_${PN}_remove = "xxd" - -PACKAGECONFIG += "tiny" - -do_install() { - install -D -m 0755 ${S}/vim ${D}/${bindir}/vim.tiny -} - -ALTERNATIVE_PRIORITY = "90" -ALTERNATIVE_TARGET = "${bindir}/vim.tiny" diff --git a/meta-openembedded/meta-oe/recipes-support/vim/vim_8.1.0347.bb b/meta-openembedded/meta-oe/recipes-support/vim/vim_8.1.0347.bb deleted file mode 100644 index 4de4d8e387..0000000000 --- a/meta-openembedded/meta-oe/recipes-support/vim/vim_8.1.0347.bb +++ /dev/null @@ -1,118 +0,0 @@ -SUMMARY = "Vi IMproved - enhanced vi editor" -SECTION = "console/utils" - -PROVIDES = "xxd" -DEPENDS = "ncurses gettext-native" -# vimdiff doesn't like busybox diff -RSUGGESTS_${PN} = "diffutils" -LICENSE = "vim" -LIC_FILES_CHKSUM = "file://../runtime/doc/uganda.txt;endline=287;md5=f1f82b42360005c70b8c19b0ef493f72" - -SRC_URI = "git://github.com/vim/vim.git \ - file://disable_acl_header_check.patch;patchdir=.. \ - file://vim-add-knob-whether-elf.h-are-checked.patch;patchdir=.. \ - file://0001-src-Makefile-improve-reproducibility.patch;patchdir=.. \ -" -SRCREV = "f1c118be93184e8e57e3e80b1b3383f464ed649e" - -S = "${WORKDIR}/git/src" - -VIMDIR = "vim${@d.getVar('PV').split('.')[0]}${@d.getVar('PV').split('.')[1]}" - -inherit autotools-brokensep update-alternatives - -CLEANBROKEN = "1" - -# vim configure.in contains functions which got 'dropped' by autotools.bbclass -do_configure () { - rm -f auto/* - touch auto/config.mk - aclocal - autoconf - oe_runconf - touch auto/configure - touch auto/config.mk auto/config.h -} - -#Available PACKAGECONFIG options are gtkgui, acl, x11, tiny -PACKAGECONFIG ??= "" -PACKAGECONFIG += "${@bb.utils.filter('DISTRO_FEATURES', 'acl selinux', d)}" - -PACKAGECONFIG[gtkgui] = "--enable-gtk2-test --enable-gui=gtk2,--enable-gui=no,gtk+," -PACKAGECONFIG[acl] = "--enable-acl,--disable-acl,acl," -PACKAGECONFIG[x11] = "--with-x,--without-x,xt," -PACKAGECONFIG[tiny] = "--with-features=tiny,--with-features=big,," -PACKAGECONFIG[selinux] = "--enable-selinux,--disable-selinux,libselinux," -PACKAGECONFIG[elfutils] = "--enable-elf-check,,elfutils," - -EXTRA_OECONF = " \ - --disable-gpm \ - --disable-gtktest \ - --disable-xim \ - --disable-netbeans \ - --with-tlib=ncurses \ - ac_cv_small_wchar_t=no \ - vim_cv_getcwd_broken=no \ - vim_cv_memmove_handles_overlap=yes \ - vim_cv_stat_ignores_slash=no \ - vim_cv_terminfo=yes \ - vim_cv_tgetent=non-zero \ - vim_cv_toupper_broken=no \ - vim_cv_tty_group=world \ - STRIP=/bin/true \ -" - -do_install() { - autotools_do_install - - # Work around file-rdeps picking up csh, awk, perl or python as a dep - chmod -x ${D}${datadir}/${BPN}/${VIMDIR}/tools/vim132 - chmod -x ${D}${datadir}/${BPN}/${VIMDIR}/tools/mve.awk - chmod -x ${D}${datadir}/${BPN}/${VIMDIR}/tools/*.pl - chmod -x ${D}${datadir}/${BPN}/${VIMDIR}/tools/*.py - - # Install example vimrc from runtime files - install -m 0644 ../runtime/vimrc_example.vim ${D}/${datadir}/${BPN}/vimrc - - # we use --with-features=big as default - mv ${D}${bindir}/${BPN} ${D}${bindir}/${BPN}.${BPN} -} - -PARALLEL_MAKEINST = "" - -PACKAGES =+ "${PN}-common ${PN}-syntax ${PN}-help ${PN}-tutor ${PN}-vimrc ${PN}-tools" -FILES_${PN}-syntax = "${datadir}/${BPN}/${VIMDIR}/syntax" -FILES_${PN}-help = "${datadir}/${BPN}/${VIMDIR}/doc" -FILES_${PN}-tutor = "${datadir}/${BPN}/${VIMDIR}/tutor ${bindir}/${BPN}tutor" -FILES_${PN}-vimrc = "${datadir}/${BPN}/vimrc" -FILES_${PN}-data = "${datadir}/${BPN}" -FILES_${PN}-tools = "${datadir}/${BPN}/${VIMDIR}/tools" -FILES_${PN}-common = " \ - ${datadir}/${BPN}/${VIMDIR}/*.vim \ - ${datadir}/${BPN}/${VIMDIR}/autoload \ - ${datadir}/${BPN}/${VIMDIR}/colors \ - ${datadir}/${BPN}/${VIMDIR}/compiler \ - ${datadir}/${BPN}/${VIMDIR}/ftplugin \ - ${datadir}/${BPN}/${VIMDIR}/indent \ - ${datadir}/${BPN}/${VIMDIR}/keymap \ - ${datadir}/${BPN}/${VIMDIR}/lang \ - ${datadir}/${BPN}/${VIMDIR}/macros \ - ${datadir}/${BPN}/${VIMDIR}/plugin \ - ${datadir}/${BPN}/${VIMDIR}/print \ - ${datadir}/${BPN}/${VIMDIR}/spell \ - ${datadir}/icons \ -" - -RDEPENDS_${BPN} = "ncurses-terminfo-base" -# Recommend that runtime data is installed along with vim -RRECOMMENDS_${BPN} = "${PN}-syntax ${PN}-help ${PN}-tutor ${PN}-vimrc ${PN}-common" - -ALTERNATIVE_${PN} = "vi vim xxd" -ALTERNATIVE_PRIORITY = "100" -ALTERNATIVE_TARGET = "${bindir}/${BPN}.${BPN}" -ALTERNATIVE_LINK_NAME[vi] = "${base_bindir}/vi" -ALTERNATIVE_LINK_NAME[vim] = "${bindir}/vim" -ALTERNATIVE_TARGET[xxd] = "${bindir}/xxd" -ALTERNATIVE_LINK_NAME[xxd] = "${bindir}/xxd" - -BBCLASSEXTEND = "native" diff --git a/meta-openembedded/meta-oe/recipes-test/catch2/catch2/0001-Fix-convert-from-char-on-ARM-build.patch b/meta-openembedded/meta-oe/recipes-test/catch2/catch2/0001-Fix-convert-from-char-on-ARM-build.patch deleted file mode 100644 index 3073775630..0000000000 --- a/meta-openembedded/meta-oe/recipes-test/catch2/catch2/0001-Fix-convert-from-char-on-ARM-build.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 5729874fa5059c39aa97cfa08fddf107b7a65c9e Mon Sep 17 00:00:00 2001 -From: Miguel Gaio <mgaio35@gmail.com> -Date: Wed, 3 Oct 2018 10:22:16 +0200 -Subject: [PATCH] Fix convert from char on ARM build - -Some platforms set the signedness of char to unsigned (eg. ARM). -Convert from char should not assume the signedness of char. - -Fix build issue with -Werror,-Wtautological-unsigned-zero-compare flags. - -Signed-off-by: Miguel Gaio <mgaio35@gmail.com> - -Upstream-Status: Accepted [Commit f1faaa9c107113692301ad8bb56084460ef1a2ff] - -Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com> ---- - include/internal/catch_tostring.cpp | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/include/internal/catch_tostring.cpp b/include/internal/catch_tostring.cpp -index 4e0c027d..8cbabbf2 100644 ---- a/include/internal/catch_tostring.cpp -+++ b/include/internal/catch_tostring.cpp -@@ -205,7 +205,7 @@ std::string StringMaker<bool>::convert(bool b) { - return b ? "true" : "false"; - } - --std::string StringMaker<char>::convert(char value) { -+std::string StringMaker<signed char>::convert(signed char value) { - if (value == '\r') { - return "'\\r'"; - } else if (value == '\f') { -@@ -222,8 +222,8 @@ std::string StringMaker<char>::convert(char value) { - return chstr; - } - } --std::string StringMaker<signed char>::convert(signed char c) { -- return ::Catch::Detail::stringify(static_cast<char>(c)); -+std::string StringMaker<char>::convert(char c) { -+ return ::Catch::Detail::stringify(static_cast<signed char>(c)); - } - std::string StringMaker<unsigned char>::convert(unsigned char c) { - return ::Catch::Detail::stringify(static_cast<char>(c)); --- -2.19.1 - diff --git a/meta-openembedded/meta-oe/recipes-test/catch2/catch2_2.4.1.bb b/meta-openembedded/meta-oe/recipes-test/catch2/catch2_2.6.1.bb index 0183c2e41a..08d6616401 100644 --- a/meta-openembedded/meta-oe/recipes-test/catch2/catch2_2.4.1.bb +++ b/meta-openembedded/meta-oe/recipes-test/catch2/catch2_2.6.1.bb @@ -6,19 +6,20 @@ LICENSE = "BSL-1.0" LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e4224ccaecb14d942c71d31bef20d78c" SRC_URI = "git://github.com/catchorg/Catch2.git \ - file://0001-Fix-convert-from-char-on-ARM-build.patch" -SRCREV = "9e1bdca4667295fcb16265eae00efa8423f07007" + file://0001-Fix-Wdefaulted-function-deleted-warning.patch \ + " +# v2.6.1 +SRCREV = "dbbab8727c342733f75045483048cdcb52421e32" S = "${WORKDIR}/git" inherit cmake python3native +do_install_append() { + rm ${D}${datadir}/Catch2/lldbinit + rm ${D}${datadir}/Catch2/gdbinit + rmdir ${D}${datadir}/Catch2/ +} # Header-only library RDEPENDS_${PN}-dev = "" RRECOMMENDS_${PN}-dbg = "${PN}-dev (= ${EXTENDPKGV})" - -do_install_append() { - rm ${D}/${datadir}/Catch2/lldbinit - rm ${D}/${datadir}/Catch2/gdbinit - rmdir ${D}/${datadir}/Catch2/ -} diff --git a/meta-openembedded/meta-oe/recipes-test/catch2/files/0001-Fix-Wdefaulted-function-deleted-warning.patch b/meta-openembedded/meta-oe/recipes-test/catch2/files/0001-Fix-Wdefaulted-function-deleted-warning.patch new file mode 100644 index 0000000000..555c71ad22 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-test/catch2/files/0001-Fix-Wdefaulted-function-deleted-warning.patch @@ -0,0 +1,35 @@ +From a39e0eaa8318335260967ffd1d16388eb5a1d6d8 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Tue, 12 Feb 2019 12:57:00 -0800 +Subject: [PATCH] Fix -Wdefaulted-function-deleted warning + +Clang8 warns + +catch_interfaces_reporter.h:84:25: error: explicitly defaulted move assignment operator is implicitly deleted [-Werror,-Wdefaulted-function-deleted] +| AssertionStats& operator = ( AssertionStats && ) = default; +| ^ + +Upstream-Status: Submitted [https://github.com/catchorg/Catch2/pull/1537] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + include/internal/catch_interfaces_reporter.h | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/include/internal/catch_interfaces_reporter.h b/include/internal/catch_interfaces_reporter.h +index 9d99c981..e5fbf8bb 100644 +--- a/include/internal/catch_interfaces_reporter.h ++++ b/include/internal/catch_interfaces_reporter.h +@@ -80,8 +80,8 @@ namespace Catch { + + AssertionStats( AssertionStats const& ) = default; + AssertionStats( AssertionStats && ) = default; +- AssertionStats& operator = ( AssertionStats const& ) = default; +- AssertionStats& operator = ( AssertionStats && ) = default; ++ AssertionStats& operator = ( AssertionStats const& ) = delete; ++ AssertionStats& operator = ( AssertionStats && ) = delete; + virtual ~AssertionStats(); + + AssertionResult assertionResult; +-- +2.20.1 + diff --git a/meta-openembedded/meta-oe/recipes-test/cppunit/cppunit_1.13.2.bb b/meta-openembedded/meta-oe/recipes-test/cppunit/cppunit_1.14.0.bb index 65b08b068d..04327862ce 100644 --- a/meta-openembedded/meta-oe/recipes-test/cppunit/cppunit_1.13.2.bb +++ b/meta-openembedded/meta-oe/recipes-test/cppunit/cppunit_1.14.0.bb @@ -2,13 +2,13 @@ DESCRIPTION = "CppUnit is the C++ port of the famous JUnit framework for unit te HOMEPAGE = "http://www.freedesktop.org/wiki/Software/cppunit" LICENSE = "LGPL-2.1" SECTION = "libs" +LIC_FILES_CHKSUM = "file://COPYING;md5=b0e9ef921ff780eb328bdcaeebec3269" -LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34" SRC_URI = " \ http://dev-www.libreoffice.org/src/cppunit-${PV}.tar.gz \ file://0001-doc-Makefile.am-do-not-preserve-file-flags-when-copy.patch \ " -SRC_URI[md5sum] = "d1c6bdd5a76c66d2c38331e2d287bc01" -SRC_URI[sha256sum] = "3f47d246e3346f2ba4d7c9e882db3ad9ebd3fcbd2e8b732f946e0e3eeb9f429f" +SRC_URI[md5sum] = "7ad93022171710a541bfe4bfd8b4a381" +SRC_URI[sha256sum] = "3d569869d27b48860210c758c4f313082103a5e58219a7669b52bfd29d674780" inherit autotools diff --git a/meta-openembedded/meta-oe/recipes-test/cppunit/files/0001-doc-Makefile.am-do-not-preserve-file-flags-when-copy.patch b/meta-openembedded/meta-oe/recipes-test/cppunit/files/0001-doc-Makefile.am-do-not-preserve-file-flags-when-copy.patch index 6a20c1283a..441876e404 100644 --- a/meta-openembedded/meta-oe/recipes-test/cppunit/files/0001-doc-Makefile.am-do-not-preserve-file-flags-when-copy.patch +++ b/meta-openembedded/meta-oe/recipes-test/cppunit/files/0001-doc-Makefile.am-do-not-preserve-file-flags-when-copy.patch @@ -17,15 +17,12 @@ diff --git a/doc/Makefile.am b/doc/Makefile.am index 8815476..3237499 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am -@@ -22,7 +22,7 @@ htmldir += $(pkgdatadir)/html +@@ -8,7 +8,7 @@ htmldir += $(pkgdatadir)/html html_DATA += $(static_pages) html/index.html install-data-hook: - cp -pR html/* $(DESTDIR)$(htmldir) + cp -R html/* $(DESTDIR)$(htmldir) - # Automake's "distcheck" is sensitive to having files left over - # after "make uninstall", so we have to clean up the install hook. --- -2.5.0 - + uninstall-local: + rm -rf $(DESTDIR)$(htmldir) diff --git a/meta-openembedded/meta-oe/recipes-test/cxxtest/cxxtest_4.3.bb b/meta-openembedded/meta-oe/recipes-test/cxxtest/cxxtest_4.4.bb index 2915011731..342fccf413 100644 --- a/meta-openembedded/meta-oe/recipes-test/cxxtest/cxxtest_4.3.bb +++ b/meta-openembedded/meta-oe/recipes-test/cxxtest/cxxtest_4.4.bb @@ -1,12 +1,13 @@ DESCRIPTION = "CxxTest is a unit testing framework for C++ that is similar in spirit to JUnit, CppUnit, and xUnit." HOMEPAGE = "http://cxxtest.com/" -LICENSE = "LGPL-2.0" SECTION = "devel" +LICENSE = "LGPL-2.0" +LIC_FILES_CHKSUM = "file://${WORKDIR}/cxxtest-${PV}/COPYING;md5=e6a600fd5e1d9cbde2d983680233ad02" SRC_URI = "http://downloads.sourceforge.net/project/cxxtest/cxxtest/${PV}/cxxtest-${PV}.tar.gz" -SRC_URI[md5sum] = "b3a24b3e1aad9acf6adac37f4c3f83ec" -SRC_URI[sha256sum] = "356d0f4810e8eb5c344147a0cca50fc0d84122c286e7644b61cb365c2ee22083" -LIC_FILES_CHKSUM = "file://${WORKDIR}/cxxtest-${PV}/COPYING;md5=e6a600fd5e1d9cbde2d983680233ad02" +SRC_URI[md5sum] = "c3cc3355e2ac64e34c215f28e44cfcec" +SRC_URI[sha256sum] = "1c154fef91c65dbf1cd4519af7ade70a61d85a923b6e0c0b007dc7f4895cf7d8" + S = "${WORKDIR}/cxxtest-${PV}/python" inherit distutils |