--- /dev/null
+Revision history for Alien-Libxml2
+
+0.19 2022-09-25 08:54:48 -0600
+
+0.18_01 2022-09-23 21:05:53 -0600
+ - Use Download::GitLab plugin to fetch recent version of
+ libxml2
+
+0.17 2020-11-02 12:03:28 -0700
+ - Bump required version of AB for bug fixes (gh#23, gh#24)
+
+0.16 2020-04-22 03:50:16 -0600
+ - Fix mixed probe on macOS (gh#20)
+
+0.15 2020-03-18 23:16:56 -0600
+ - Updated documentation to use Alien::Base::Wrapper
+ - Updated documentation refrences to Alien::LibXML (gh#18, gh#19)
+
+0.14 2020-03-09 10:59:12 -0600
+ - Support for Visual C++ Perl + Vcpkg system install (gh#17)
+
+0.12 2019-12-13 17:35:02 -0700
+ - Support for Visual C++ Perl (gh#14)
+
+0.11 2019-10-28 09:54:24 -0600
+ - Production release identical to 0.11.
+
+0.10_01 2019-07-05 09:36:21 -0400
+ - Prefer xml2-config over pkg-config (gh#11, gh#12)
+
+0.09 2019-05-14 06:57:21 -0600
+ - Production release identical to 0.08_01.
+
+0.08_01 2019-05-13 22:10:45 -0600
+ - Fix bug in xml2-config logic
+
+0.07 2019-03-27 11:37:47 -0400
+ - Add ability to find libxml2 via pkg-config (requires Alien::Build
+ 1.61 or better). Previous methods for finding libxml2 like
+ xml2-config or if -lxml2 happens to work will still work (gh#6).
+
+0.06 2019-03-19 22:54:55 -0400
+ - Fixes for Windows (gh#2, gh#3)
+
+0.05 2019-03-03 14:36:02 -0500
+ - Use http instead of ftp to fetch libxml2 sources.
+
+0.04_01 2018-07-10 14:15:41 -0400
+ - Fixed the blacklist of bad versions of libxml2. It is based
+ on the list of versions rejected by XML-LibXML.
+ - As with XML-LibXML, you can force Alien-Libxml2 to install by
+ setting the environment variable FORCE to a true value.
+
+0.03 2017-09-22 06:46:14 -0400
+ - Look for libxml2 in some standard places.
+ OS X, for example provides a libxml2, but (unhelpfully) does not
+ provide the .pc file to go along with it.
+ - Do not accept same bad versions refused by XML::LibXML
+ on share install
+
+0.02 2017-08-08 15:17:54 -0400
+ - Require Alien::Build 0.73 for bug fixes
+ related to parallel builds
+
+0.01 2017-03-30 18:05:22 -0400
+ - initial version
--- /dev/null
+This is the Perl distribution Alien-Libxml2.
+
+Installing Alien-Libxml2 is straightforward.
+
+## Installation with cpanm
+
+If you have cpanm, you only need one line:
+
+ % cpanm Alien::Libxml2
+
+If it does not have permission to install modules to the current perl, cpanm
+will automatically set up and install to a local::lib in your home directory.
+See the local::lib documentation (https://metacpan.org/pod/local::lib) for
+details on enabling it in your environment.
+
+## Installing with the CPAN shell
+
+Alternatively, if your CPAN shell is set up, you should just be able to do:
+
+ % cpan Alien::Libxml2
+
+## Manual installation
+
+As a last resort, you can manually install it. If you have not already
+downloaded the release tarball, you can find the download link on the module's
+MetaCPAN page: https://metacpan.org/pod/Alien::Libxml2
+
+Untar the tarball, install configure prerequisites (see below), then build it:
+
+ % perl Makefile.PL
+ % make && make test
+
+Then install it:
+
+ % make install
+
+On Windows platforms, you should use `dmake` or `nmake`, instead of `make`.
+
+If your perl is system-managed, you can create a local::lib in your home
+directory to install modules to. For details, see the local::lib documentation:
+https://metacpan.org/pod/local::lib
+
+The prerequisites of this distribution will also have to be installed manually. The
+prerequisites are listed in one of the files: `MYMETA.yml` or `MYMETA.json` generated
+by running the manual build process described above.
+
+## Configure Prerequisites
+
+This distribution requires other modules to be installed before this
+distribution's installer can be run. They can be found under the
+"configure_requires" key of META.yml or the
+"{prereqs}{configure}{requires}" key of META.json.
+
+## Other Prerequisites
+
+This distribution may require additional modules to be installed after running
+Makefile.PL.
+Look for prerequisites in the following phases:
+
+* to run make, PHASE = build
+* to use the module code itself, PHASE = runtime
+* to run tests, PHASE = test
+
+They can all be found in the "PHASE_requires" key of MYMETA.yml or the
+"{prereqs}{PHASE}{requires}" key of MYMETA.json.
+
+## Documentation
+
+Alien-Libxml2 documentation is available as POD.
+You can run `perldoc` from a shell to read the documentation:
+
+ % perldoc Alien::Libxml2
+
+For more information on installing Perl modules via CPAN, please see:
+https://www.cpan.org/modules/INSTALL.html
--- /dev/null
+This software is copyright (c) 2013-2022 by Graham Ollis.
+
+This is free software; you can redistribute it and/or modify it under
+the same terms as the Perl 5 programming language system itself.
+
+Terms of the Perl programming language system itself
+
+a) the GNU General Public License as published by the Free
+ Software Foundation; either version 1, or (at your option) any
+ later version, or
+b) the "Artistic License"
+
+--- The GNU General Public License, Version 1, February 1989 ---
+
+This software is Copyright (c) 2013-2022 by Graham Ollis.
+
+This is free software, licensed under:
+
+ The GNU General Public License, Version 1, February 1989
+
+ GNU GENERAL PUBLIC LICENSE
+ Version 1, February 1989
+
+ Copyright (C) 1989 Free Software Foundation, Inc.
+ 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The license agreements of most software companies try to keep users
+at the mercy of those companies. By contrast, our General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. The
+General Public License applies to the Free Software Foundation's
+software and to any other program whose authors commit to using it.
+You can use it for your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Specifically, the General Public License is designed to make
+sure that you have the freedom to give away or sell copies of free
+software, that you receive source code or can get it if you want it,
+that you can change the software or use pieces of it in new free
+programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of a such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must tell them their rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License Agreement applies to any program or other work which
+contains a notice placed by the copyright holder saying it may be
+distributed under the terms of this General Public License. The
+"Program", below, refers to any such program or work, and a "work based
+on the Program" means either the Program or any work containing the
+Program or a portion of it, either verbatim or with modifications. Each
+licensee is addressed as "you".
+
+ 1. You may copy and distribute 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 and
+disclaimer of warranty; keep intact all the notices that refer to this
+General Public License and to the absence of any warranty; and give any
+other recipients of the Program a copy of this General Public License
+along with the Program. You may charge a fee for the physical act of
+transferring a copy.
+
+ 2. You may modify your copy or copies of the Program or any portion of
+it, and copy and distribute such modifications under the terms of Paragraph
+1 above, provided that you also do the following:
+
+ a) cause the modified files to carry prominent notices stating that
+ you changed the files and the date of any change; and
+
+ b) cause the whole of any work that you distribute or publish, that
+ in whole or in part contains the Program or any part thereof, either
+ with or without modifications, to be licensed at no charge to all
+ third parties under the terms of this General Public License (except
+ that you may choose to grant warranty protection to some or all
+ third parties, at your option).
+
+ c) If the modified program normally reads commands interactively when
+ run, you must cause it, when started running for such interactive use
+ in the simplest and most usual way, to print or display an
+ announcement including an appropriate copyright notice and a notice
+ that there is no warranty (or else, saying that you provide a
+ warranty) and that users may redistribute the program under these
+ conditions, and telling the user how to view a copy of this General
+ Public License.
+
+ d) You may charge a fee for the physical act of transferring a
+ copy, and you may at your option offer warranty protection in
+ exchange for a fee.
+
+Mere aggregation of another independent work with the Program (or its
+derivative) on a volume of a storage or distribution medium does not bring
+the other work under the scope of these terms.
+
+ 3. You may copy and distribute the Program (or a portion or derivative of
+it, under Paragraph 2) in object code or executable form under the terms of
+Paragraphs 1 and 2 above provided that you also do one of the following:
+
+ a) accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of
+ Paragraphs 1 and 2 above; or,
+
+ b) accompany it with a written offer, valid for at least three
+ years, to give any third party free (except for a nominal charge
+ for the cost of distribution) a complete machine-readable copy of the
+ corresponding source code, to be distributed under the terms of
+ Paragraphs 1 and 2 above; or,
+
+ c) accompany it with the information you received as to where the
+ corresponding source code may be obtained. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form alone.)
+
+Source code for a work means the preferred form of the work for making
+modifications to it. For an executable file, complete source code means
+all the source code for all modules it contains; but, as a special
+exception, it need not include source code for modules which are standard
+libraries that accompany the operating system on which the executable
+file runs, or for standard header files or definitions files that
+accompany that operating system.
+
+ 4. You may not copy, modify, sublicense, distribute or transfer the
+Program except as expressly provided under this General Public License.
+Any attempt otherwise to copy, modify, sublicense, distribute or transfer
+the Program is void, and will automatically terminate your rights to use
+the Program under this License. However, parties who have received
+copies, or rights to use copies, from you under this General Public
+License will not have their licenses terminated so long as such parties
+remain in full compliance.
+
+ 5. By copying, distributing or modifying the Program (or any work based
+on the Program) you indicate your acceptance of this license to do so,
+and all its terms and conditions.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the original
+licensor to copy, distribute or modify the Program subject to these
+terms and conditions. You may not impose any further restrictions on the
+recipients' exercise of the rights granted herein.
+
+ 7. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of the license which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+the license, you may choose any version ever published by the Free Software
+Foundation.
+
+ 8. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 9. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, 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.
+
+ 10. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE 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.
+
+ END OF TERMS AND CONDITIONS
+
+ Appendix: How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to humanity, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these
+terms.
+
+ To do so, attach the following notices to the program. It is safest to
+attach them to the start of each source file to most effectively convey
+the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) 19yy <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 1, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ 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
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) 19xx name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the
+appropriate parts of the General Public License. Of course, the
+commands you use may be called something other than `show w' and `show
+c'; they could even be mouse-clicks or menu items--whatever suits your
+program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the
+ program `Gnomovision' (a program to direct compilers to make passes
+ at assemblers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+That's all there is to it!
+
+
+--- The Artistic License 1.0 ---
+
+This software is Copyright (c) 2013-2022 by Graham Ollis.
+
+This is free software, licensed under:
+
+ The Artistic License 1.0
+
+The Artistic License
+
+Preamble
+
+The intent of this document is to state the conditions under which a Package
+may be copied, such that the Copyright Holder maintains some semblance of
+artistic control over the development of the package, while giving the users of
+the package the right to use and distribute the Package in a more-or-less
+customary fashion, plus the right to make reasonable modifications.
+
+Definitions:
+
+ - "Package" refers to the collection of files distributed by the Copyright
+ Holder, and derivatives of that collection of files created through
+ textual modification.
+ - "Standard Version" refers to such a Package if it has not been modified,
+ or has been modified in accordance with the wishes of the Copyright
+ Holder.
+ - "Copyright Holder" is whoever is named in the copyright or copyrights for
+ the package.
+ - "You" is you, if you're thinking about copying or distributing this Package.
+ - "Reasonable copying fee" is whatever you can justify on the basis of media
+ cost, duplication charges, time of people involved, and so on. (You will
+ not be required to justify it to the Copyright Holder, but only to the
+ computing community at large as a market that must bear the fee.)
+ - "Freely Available" means that no fee is charged for the item itself, though
+ there may be fees involved in handling the item. It also means that
+ recipients of the item may redistribute it under the same conditions they
+ received it.
+
+1. You may make and give away verbatim copies of the source form of the
+Standard Version of this Package without restriction, provided that you
+duplicate all of the original copyright notices and associated disclaimers.
+
+2. You may apply bug fixes, portability fixes and other modifications derived
+from the Public Domain or from the Copyright Holder. A Package modified in such
+a way shall still be considered the Standard Version.
+
+3. You may otherwise modify your copy of this Package in any way, provided that
+you insert a prominent notice in each changed file stating how and when you
+changed that file, and provided that you do at least ONE of the following:
+
+ a) place your modifications in the Public Domain or otherwise make them
+ Freely Available, such as by posting said modifications to Usenet or an
+ equivalent medium, or placing the modifications on a major archive site
+ such as ftp.uu.net, or by allowing the Copyright Holder to include your
+ modifications in the Standard Version of the Package.
+
+ b) use the modified Package only within your corporation or organization.
+
+ c) rename any non-standard executables so the names do not conflict with
+ standard executables, which must also be provided, and provide a separate
+ manual page for each non-standard executable that clearly documents how it
+ differs from the Standard Version.
+
+ d) make other distribution arrangements with the Copyright Holder.
+
+4. You may distribute the programs of this Package in object code or executable
+form, provided that you do at least ONE of the following:
+
+ a) distribute a Standard Version of the executables and library files,
+ together with instructions (in the manual page or equivalent) on where to
+ get the Standard Version.
+
+ b) accompany the distribution with the machine-readable source of the Package
+ with your modifications.
+
+ c) accompany any non-standard executables with their corresponding Standard
+ Version executables, giving the non-standard executables non-standard
+ names, and clearly documenting the differences in manual pages (or
+ equivalent), together with instructions on where to get the Standard
+ Version.
+
+ d) make other distribution arrangements with the Copyright Holder.
+
+5. You may charge a reasonable copying fee for any distribution of this
+Package. You may charge any fee you choose for support of this Package. You
+may not charge a fee for this Package itself. However, you may distribute this
+Package in aggregate with other (possibly commercial) programs as part of a
+larger (possibly commercial) software distribution provided that you do not
+advertise this Package as a product of your own.
+
+6. The scripts and library files supplied as input to or produced as output
+from the programs of this Package do not automatically fall under the copyright
+of this Package, but belong to whomever generated them, and may be sold
+commercially, and may be aggregated with this Package.
+
+7. C or perl subroutines supplied by you and linked into this Package shall not
+be considered part of this Package.
+
+8. The name of the Copyright Holder may not be used to endorse or promote
+products derived from this software without specific prior written permission.
+
+9. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
+WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+
+The End
+
--- /dev/null
+# This file was automatically generated by Dist::Zilla::Plugin::Manifest v6.025.
+Changes
+INSTALL
+LICENSE
+MANIFEST
+META.json
+META.yml
+Makefile.PL
+README
+alienfile
+author.yml
+corpus/basic.xml
+dist.ini
+lib/Alien/Libxml2.pm
+maint/cip-before-install
+maint/tags-to-versions.pl
+perlcriticrc
+t/00_diag.t
+t/alien_libxml2.t
+t/c/test.c
+xt/author/critic.t
+xt/author/eol.t
+xt/author/no_tabs.t
+xt/author/pod.t
+xt/author/pod_coverage.t
+xt/author/pod_spelling_common.t
+xt/author/pod_spelling_system.t
+xt/author/strict.t
+xt/author/version.t
+xt/release/changes.t
+xt/release/fixme.t
--- /dev/null
+{
+ "abstract" : "Install the C libxml2 library on your system",
+ "author" : [
+ "Graham Ollis <plicease@cpan.org>"
+ ],
+ "dynamic_config" : 1,
+ "generated_by" : "Dist::Zilla version 6.025, CPAN::Meta::Converter version 2.150010",
+ "license" : [
+ "perl_5"
+ ],
+ "meta-spec" : {
+ "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",
+ "version" : 2
+ },
+ "name" : "Alien-Libxml2",
+ "prereqs" : {
+ "build" : {
+ "requires" : {
+ "Alien::Build" : "2.37",
+ "Alien::Build::MM" : "0.32",
+ "ExtUtils::MakeMaker" : "6.52"
+ }
+ },
+ "configure" : {
+ "requires" : {
+ "Alien::Build" : "2.37",
+ "Alien::Build::MM" : "2.37",
+ "Alien::Build::Plugin::Build::SearchDep" : "0.35",
+ "Alien::Build::Plugin::Download::GitLab" : "0",
+ "Alien::Build::Plugin::Prefer::BadVersion" : "1.05",
+ "Alien::Build::Plugin::Probe::Vcpkg" : "0",
+ "ExtUtils::CBuilder" : "0",
+ "ExtUtils::MakeMaker" : "6.52",
+ "perl" : "5.006"
+ }
+ },
+ "develop" : {
+ "recommends" : {
+ "Alien::Build::Plugin::Probe::Vcpkg" : "0",
+ "Dist::Zilla::Plugin::AlienBase::Doc" : "0",
+ "Dist::Zilla::Plugin::AlienBuild" : "0.11",
+ "Dist::Zilla::Plugin::Author::Plicease::Thanks" : "0",
+ "Dist::Zilla::Plugin::Author::Plicease::Upload" : "0",
+ "Dist::Zilla::Plugin::Prereqs" : "0",
+ "Dist::Zilla::Plugin::PruneFiles" : "0",
+ "Dist::Zilla::Plugin::RemovePrereqs" : "0",
+ "Dist::Zilla::PluginBundle::Author::Plicease" : "2.69",
+ "Perl::Critic::Policy::BuiltinFunctions::ProhibitBooleanGrep" : "0",
+ "Perl::Critic::Policy::BuiltinFunctions::ProhibitStringyEval" : "0",
+ "Perl::Critic::Policy::BuiltinFunctions::ProhibitStringySplit" : "0",
+ "Perl::Critic::Policy::BuiltinFunctions::ProhibitVoidGrep" : "0",
+ "Perl::Critic::Policy::BuiltinFunctions::ProhibitVoidMap" : "0",
+ "Perl::Critic::Policy::ClassHierarchies::ProhibitExplicitISA" : "0",
+ "Perl::Critic::Policy::ClassHierarchies::ProhibitOneArgBless" : "0",
+ "Perl::Critic::Policy::CodeLayout::ProhibitHardTabs" : "0",
+ "Perl::Critic::Policy::CodeLayout::ProhibitTrailingWhitespace" : "0",
+ "Perl::Critic::Policy::CodeLayout::RequireConsistentNewlines" : "0",
+ "Perl::Critic::Policy::ControlStructures::ProhibitLabelsWithSpecialBlockNames" : "0",
+ "Perl::Critic::Policy::ControlStructures::ProhibitMutatingListFunctions" : "0",
+ "Perl::Critic::Policy::ControlStructures::ProhibitUnreachableCode" : "0",
+ "Perl::Critic::Policy::Freenode::ArrayAssignAref" : "0",
+ "Perl::Critic::Policy::Freenode::BarewordFilehandles" : "0",
+ "Perl::Critic::Policy::Freenode::ConditionalDeclarations" : "0",
+ "Perl::Critic::Policy::Freenode::ConditionalImplicitReturn" : "0",
+ "Perl::Critic::Policy::Freenode::DeprecatedFeatures" : "0",
+ "Perl::Critic::Policy::Freenode::DiscouragedModules" : "0",
+ "Perl::Critic::Policy::Freenode::DollarAB" : "0",
+ "Perl::Critic::Policy::Freenode::Each" : "0",
+ "Perl::Critic::Policy::Freenode::EmptyReturn" : "0",
+ "Perl::Critic::Policy::Freenode::IndirectObjectNotation" : "0",
+ "Perl::Critic::Policy::Freenode::LexicalForeachIterator" : "0",
+ "Perl::Critic::Policy::Freenode::LoopOnHash" : "0",
+ "Perl::Critic::Policy::Freenode::ModPerl" : "0",
+ "Perl::Critic::Policy::Freenode::OpenArgs" : "0",
+ "Perl::Critic::Policy::Freenode::OverloadOptions" : "0",
+ "Perl::Critic::Policy::Freenode::POSIXImports" : "0",
+ "Perl::Critic::Policy::Freenode::PackageMatchesFilename" : "0",
+ "Perl::Critic::Policy::Freenode::PreferredAlternatives" : "0",
+ "Perl::Critic::Policy::Freenode::StrictWarnings" : "0",
+ "Perl::Critic::Policy::Freenode::Threads" : "0",
+ "Perl::Critic::Policy::Freenode::Wantarray" : "0",
+ "Perl::Critic::Policy::Freenode::WarningsSwitch" : "0",
+ "Perl::Critic::Policy::Freenode::WhileDiamondDefaultAssignment" : "0",
+ "Perl::Critic::Policy::InputOutput::ProhibitBarewordFileHandles" : "0",
+ "Perl::Critic::Policy::InputOutput::ProhibitJoinedReadline" : "0",
+ "Perl::Critic::Policy::InputOutput::ProhibitTwoArgOpen" : "0",
+ "Perl::Critic::Policy::Miscellanea::ProhibitFormats" : "0",
+ "Perl::Critic::Policy::Miscellanea::ProhibitUselessNoCritic" : "0",
+ "Perl::Critic::Policy::Modules::ProhibitConditionalUseStatements" : "0",
+ "Perl::Critic::Policy::Modules::RequireNoMatchVarsWithUseEnglish" : "0",
+ "Perl::Critic::Policy::Objects::ProhibitIndirectSyntax" : "0",
+ "Perl::Critic::Policy::RegularExpressions::ProhibitUselessTopic" : "0",
+ "Perl::Critic::Policy::Subroutines::ProhibitNestedSubs" : "0",
+ "Perl::Critic::Policy::ValuesAndExpressions::ProhibitLeadingZeros" : "0",
+ "Perl::Critic::Policy::ValuesAndExpressions::ProhibitMixedBooleanOperators" : "0",
+ "Perl::Critic::Policy::ValuesAndExpressions::ProhibitSpecialLiteralHeredocTerminator" : "0",
+ "Perl::Critic::Policy::ValuesAndExpressions::RequireUpperCaseHeredocTerminator" : "0",
+ "Perl::Critic::Policy::Variables::ProhibitPerl4PackageNames" : "0",
+ "Perl::Critic::Policy::Variables::ProhibitUnusedVariables" : "0",
+ "Software::License::Perl_5" : "0"
+ },
+ "requires" : {
+ "File::Spec" : "0",
+ "FindBin" : "0",
+ "Perl::Critic" : "0",
+ "Test2::Require::Module" : "0.000121",
+ "Test2::Tools::PerlCritic" : "0",
+ "Test2::V0" : "0.000121",
+ "Test::CPAN::Changes" : "0",
+ "Test::EOL" : "0",
+ "Test::Fixme" : "0.07",
+ "Test::More" : "0.98",
+ "Test::NoTabs" : "0",
+ "Test::Pod" : "0",
+ "Test::Pod::Coverage" : "0",
+ "Test::Pod::Spelling::CommonMistakes" : "0",
+ "Test::Spelling" : "0",
+ "Test::Strict" : "0",
+ "YAML" : "0"
+ }
+ },
+ "runtime" : {
+ "requires" : {
+ "Alien::Base" : "2.37",
+ "perl" : "5.006"
+ }
+ },
+ "test" : {
+ "requires" : {
+ "Test2::V0" : "0.000121",
+ "Test::Alien" : "0",
+ "perl" : "5.006"
+ }
+ }
+ },
+ "release_status" : "stable",
+ "resources" : {
+ "bugtracker" : {
+ "web" : "https://github.com/PerlAlien/Alien-Libxml2/issues"
+ },
+ "homepage" : "https://metacpan.org/pod/Alien::Libxml2",
+ "repository" : {
+ "type" : "git",
+ "url" : "git://github.com/PerlAlien/Alien-Libxml2.git",
+ "web" : "https://github.com/PerlAlien/Alien-Libxml2"
+ },
+ "x_IRC" : "irc://irc.perl.org/#native"
+ },
+ "version" : "0.19",
+ "x_alienfile" : {
+ "generated_by" : "Dist::Zilla::Plugin::AlienBuild version 0.32",
+ "requires" : {
+ "share" : {
+ "Config" : "0",
+ "HTTP::Tiny" : "0.044",
+ "IO::Socket::SSL" : "1.56",
+ "Mozilla::CA" : "0",
+ "Net::SSLeay" : "1.49",
+ "URI" : "0"
+ },
+ "system" : {}
+ }
+ },
+ "x_contributors" : [
+ "Graham Ollis <plicease@cpan.org>",
+ "Shlomi Fish (shlomif)"
+ ],
+ "x_generated_by_perl" : "v5.36.0",
+ "x_serialization_backend" : "Cpanel::JSON::XS version 4.30",
+ "x_spdx_expression" : "Artistic-1.0-Perl OR GPL-1.0-or-later",
+ "x_use_unsafe_inc" : 0
+}
+
--- /dev/null
+---
+abstract: 'Install the C libxml2 library on your system'
+author:
+ - 'Graham Ollis <plicease@cpan.org>'
+build_requires:
+ Alien::Build: '2.37'
+ Alien::Build::MM: '0.32'
+ ExtUtils::MakeMaker: '6.52'
+ Test2::V0: '0.000121'
+ Test::Alien: '0'
+ perl: '5.006'
+configure_requires:
+ Alien::Build: '2.37'
+ Alien::Build::MM: '2.37'
+ Alien::Build::Plugin::Build::SearchDep: '0.35'
+ Alien::Build::Plugin::Download::GitLab: '0'
+ Alien::Build::Plugin::Prefer::BadVersion: '1.05'
+ Alien::Build::Plugin::Probe::Vcpkg: '0'
+ ExtUtils::CBuilder: '0'
+ ExtUtils::MakeMaker: '6.52'
+ perl: '5.006'
+dynamic_config: 1
+generated_by: 'Dist::Zilla version 6.025, CPAN::Meta::Converter version 2.150010'
+license: perl
+meta-spec:
+ url: http://module-build.sourceforge.net/META-spec-v1.4.html
+ version: '1.4'
+name: Alien-Libxml2
+requires:
+ Alien::Base: '2.37'
+ perl: '5.006'
+resources:
+ IRC: irc://irc.perl.org/#native
+ bugtracker: https://github.com/PerlAlien/Alien-Libxml2/issues
+ homepage: https://metacpan.org/pod/Alien::Libxml2
+ repository: git://github.com/PerlAlien/Alien-Libxml2.git
+version: '0.19'
+x_alienfile:
+ generated_by: 'Dist::Zilla::Plugin::AlienBuild version 0.32'
+ requires:
+ share:
+ Config: '0'
+ HTTP::Tiny: '0.044'
+ IO::Socket::SSL: '1.56'
+ Mozilla::CA: '0'
+ Net::SSLeay: '1.49'
+ URI: '0'
+ system: {}
+x_contributors:
+ - 'Graham Ollis <plicease@cpan.org>'
+ - 'Shlomi Fish (shlomif)'
+x_generated_by_perl: v5.36.0
+x_serialization_backend: 'YAML::Tiny version 1.73'
+x_spdx_expression: 'Artistic-1.0-Perl OR GPL-1.0-or-later'
+x_use_unsafe_inc: 0
--- /dev/null
+BEGIN {
+ use strict; use warnings;
+ unless(eval q{ use 5.006; 1}) {
+ print "Perl 5.006 or better required\n";
+ exit;
+ }
+}
+# This file was automatically generated by Dist::Zilla::Plugin::Author::Plicease::MakeMaker v2.72.
+use strict;
+use warnings;
+use 5.006;
+use ExtUtils::MakeMaker;
+
+my %WriteMakefileArgs = (
+ "ABSTRACT" => "Install the C libxml2 library on your system",
+ "AUTHOR" => "Graham Ollis <plicease\@cpan.org>",
+ "BUILD_REQUIRES" => {
+ "Alien::Build" => "2.37",
+ "Alien::Build::MM" => "0.32",
+ "ExtUtils::MakeMaker" => "6.52"
+ },
+ "CONFIGURE_REQUIRES" => {
+ "Alien::Build" => "2.37",
+ "Alien::Build::MM" => "2.37",
+ "Alien::Build::Plugin::Build::SearchDep" => "0.35",
+ "Alien::Build::Plugin::Download::GitLab" => 0,
+ "Alien::Build::Plugin::Prefer::BadVersion" => "1.05",
+ "Alien::Build::Plugin::Probe::Vcpkg" => 0,
+ "ExtUtils::CBuilder" => 0,
+ "ExtUtils::MakeMaker" => "6.52"
+ },
+ "DISTNAME" => "Alien-Libxml2",
+ "LICENSE" => "perl",
+ "MIN_PERL_VERSION" => "5.006",
+ "NAME" => "Alien::Libxml2",
+ "PM" => {
+ "lib/Alien/Libxml2.pm" => "\$(INST_LIB)/Alien/Libxml2.pm"
+ },
+ "PREREQ_PM" => {
+ "Alien::Base" => "2.37"
+ },
+ "TEST_REQUIRES" => {
+ "Test2::V0" => "0.000121",
+ "Test::Alien" => 0
+ },
+ "VERSION" => "0.19",
+ "test" => {
+ "TESTS" => "t/*.t"
+ }
+);
+
+my %FallbackPrereqs = (
+ "Alien::Base" => "2.37",
+ "Alien::Build" => "2.37",
+ "Alien::Build::MM" => "0.32",
+ "ExtUtils::MakeMaker" => "6.52",
+ "Test2::V0" => "0.000121",
+ "Test::Alien" => 0
+);
+
+# BEGIN code inserted by Dist::Zilla::Plugin::AlienBuild
+use Alien::Build::MM;
+my $abmm = Alien::Build::MM->new;
+%WriteMakefileArgs = $abmm->mm_args(%WriteMakefileArgs);
+
+# END code inserted by Dist::Zilla::Plugin::AlienBuild
+
+unless ( eval { ExtUtils::MakeMaker->VERSION(6.63_03) } ) {
+ delete $WriteMakefileArgs{TEST_REQUIRES};
+ delete $WriteMakefileArgs{BUILD_REQUIRES};
+ $WriteMakefileArgs{PREREQ_PM} = \%FallbackPrereqs;
+}
+
+delete $WriteMakefileArgs{CONFIGURE_REQUIRES}
+ unless eval { ExtUtils::MakeMaker->VERSION(6.52) };
+
+WriteMakefile(%WriteMakefileArgs);
+
+# BEGIN code inserted by Dist::Zilla::Plugin::AlienBuild
+{ package
+ MY;
+
+ sub postamble {
+ $abmm->mm_postamble(@_);
+ }
+
+ sub install {
+ $abmm->can('mm_install')
+ ? $abmm->mm_install(@_)
+ : shift->SUPER::install(@_);
+ }
+}
+
+# END code inserted by Dist::Zilla::Plugin::AlienBuild
\ No newline at end of file
--- /dev/null
+NAME
+
+ Alien::Libxml2 - Install the C libxml2 library on your system
+
+VERSION
+
+ version 0.19
+
+SYNOPSIS
+
+ In your Makefile.PL:
+
+ use ExtUtils::MakeMaker;
+ use Alien::Base::Wrapper ();
+
+ WriteMakefile(
+ Alien::Base::Wrapper->new('Alien::Libxml2')->mm_args2(
+ # MakeMaker args
+ NAME => 'My::XS',
+ ...
+ ),
+ );
+
+ In your Build.PL:
+
+ use Module::Build;
+ use Alien::Base::Wrapper qw( Alien::Libxml2 !export );
+
+ my $builder = Module::Build->new(
+ ...
+ configure_requires => {
+ 'Alien::Libxml2' => '0',
+ ...
+ },
+ Alien::Base::Wrapper->mb_args,
+ ...
+ );
+
+ $build->create_build_script;
+
+ In your FFI::Platypus script or module:
+
+ use FFI::Platypus;
+ use Alien::Libxml2;
+
+ my $ffi = FFI::Platypus->new(
+ lib => [ Alien::Libxml2->dynamic_libs ],
+ );
+
+DESCRIPTION
+
+ This module provides libxml2 for other modules to use.
+
+CAVEATS
+
+ There was an older existing Alien::LibXML, but it uses the older
+ Alien::Build::ModuleBuild and the author prefers this version which is
+ based on the more robust alienfile system.
+
+ libxml2 has some optional prereqs, including zlib and iconv. For a
+ share install you will want to make sure that these are installed prior
+ to installing Alien::Libxml2 if you want to make use of features
+ relying on them.
+
+ For a system install, you want to make sure the development packages
+ for libxml2, zlib and iconv are installed if libxml2 has been
+ configured to use them, otherwise XML::LibXML will not install as
+ expected. If the tests for this module fail with a missing iconv.h or
+ zlib.h, then this is likely the reason.
+
+SEE ALSO
+
+ Alien::LibXML
+
+ Older Alien for the same library.
+
+ XML::LibXML
+
+ Perl interface to libxml2, which uses this Alien
+
+AUTHOR
+
+ Author: Graham Ollis <plicease@cpan.org>
+
+ Contributors:
+
+ Shlomi Fish (shlomif)
+
+COPYRIGHT AND LICENSE
+
+ This software is copyright (c) 2013-2022 by Graham Ollis.
+
+ This is free software; you can redistribute it and/or modify it under
+ the same terms as the Perl 5 programming language system itself.
+
--- /dev/null
+use alienfile;
+use Config;
+
+configure { requires 'Alien::Build' => '2.37' };
+
+my $test_program = <<'EOF';
+#include <stdio.h>
+#include <libxml/xmlversion.h>
+#include <libxml/parser.h>
+#include <libxml/tree.h>
+
+int
+main(int argc, char *argv[])
+{
+ xmlDoc *doc = NULL;
+ /*
+ * xmlRead should fail, but having this call ensures
+ * that the we have access to the symbols in -lxml2
+ * (LIBXML_DOTTED_VERSION below is in the header file)
+ */
+ doc = xmlReadFile("foo.xml", NULL, 0);
+ printf("xml version = '%s'\n", LIBXML_DOTTED_VERSION);
+}
+EOF
+
+my @try_flags = (
+ { cflags => '', libs => '-lxml2' },
+ { cflags => '-I/usr/include/libxml2', libs => '-lxml2' },
+ { cflags => '-I/usr/local/include/libxml2', libs => '-lxml2' },
+);
+
+plugin 'Probe::Vcpkg' => 'libxml2';
+
+probe [
+ ['xml2-config', '--version' => \'%{.install.my_version}'],
+ ['xml2-config', '--cflags' => \'%{.install.my_cflags}'],
+ ['xml2-config', '--libs' => \'%{.install.my_libs}'],
+];
+
+plugin 'PkgConfig' => 'libxml-2.0';
+
+plugin 'Probe::CBuilder' => (
+ cflags => $_->{cflags},
+ libs => $_->{libs},
+ program => $test_program,
+ version => qr{xml version = '(.*?)'},
+) for @try_flags;
+plugin 'PkgConfig::MakeStatic' => ();
+
+my %bad_versions = map { $_ => 1 } (
+ # known bad versions
+ # may have some extras, and may be incomplete.
+ # but probably sufficient.
+ # computed using maint/tags-to-versions.pl and the git repository
+ # for libxml2.
+ '2.0.0',
+ '2.1.0','2.1.1',
+ '2.2.0','2.2.1','2.2.2','2.2.3','2.2.4','2.2.5','2.2.6','2.2.7','2.2.8',
+ '2.3.0','2.3.1','2.3.2','2.3.3','2.3.4','2.3.5','2.3.6','2.3.7','2.3.8','2.3.9','2.3.10','2.3.11','2.3.12','2.3.13','2.3.14',
+ '2.4.0','2.4.1','2.4.2','2.4.3','2.4.4','2.4.5','2.4.6','2.4.7','2.4.8','2.4.9','2.4.10','2.4.11','2.4.12','2.4.13','2.4.14','2.4.15','2.4.16','2.4.17','2.4.18','2.4.19','2.4.20','2.4.21','2.4.22','2.4.23','2.4.24','2.4.25','2.4.26','2.4.27','2.4.28','2.4.29','2.4.30',
+ '2.5.0','2.5.1','2.5.2','2.5.3','2.5.4','2.5.5','2.5.6','2.5.7','2.5.8','2.5.9','2.5.10','2.5.11',
+ '2.6.0','2.6.1','2.6.2','2.6.3','2.6.4','2.6.5','2.6.6','2.6.7','2.6.8','2.6.9','2.6.10','2.6.11','2.6.12','2.6.13','2.6.14','2.6.15','2.6.19','2.6.20','2.6.25',
+ '2.7.0','2.7.1',
+ '2.9.4',
+);
+
+meta->around_hook(
+ probe => sub {
+ my $orig = shift;
+ my $build = shift;
+ my $install_type = $orig->($build, @_);
+ # if the system type is install, make sure the version isn't on the
+ # blacklist.
+ # Honor $ENV{FORCE} used in the Makefile.PL for XML-LibXML to allow
+ # versions on the blacklist.
+ if($install_type eq 'system' && !$ENV{FORCE})
+ {
+ # the first is provided by Probe::CBuilder, or pkg-config plugins for AB >= 1.61
+ # the second is generated by the Probe::CBuilder plugin since forever (or thereabouts)
+ # the thirds is from this alienfile, (see above with the xml2-config probe).
+ my $version = $build->hook_prop->{version} ||
+ $build->install_prop->{plugin_probe_cbuilder_gather}->{version} ||
+ $build->install_prop->{my_version};
+
+ $version =~ s/-.*$//g;
+
+ unless(defined $version)
+ {
+ print STDERR "Unfortunately, Alien::Libxml2 requires the version from the system libxml2 in\n",
+ "order to determine if it is acceptible for use, but Alien::Build prior to 1.61\n",
+ "did not provide this information in the probe step. Alien::Libxml2 can still\n",
+ "find the system libxml2 on systems with xml2-config in the PATH, or if libxml2\n",
+ "is available from one of the commonly known locations. If you want to detect\n",
+ "the system libxml2 with a .pc file via pkg-config, then please upgrade\n",
+ "Alien::Build to 1.61 or better\n";
+ return 'share';
+ }
+
+ if($bad_versions{$version})
+ {
+ print STDERR "Alien::Libxml2 is designed to work with XML::LibXML.\n\n".
+ "The installed system version of libxml2 $version is not compatible with XML::LibXML (and probably buggy)!\n\n".
+ " - don't expect XML::LibXML to build or work correctly with this version of libxml2!\n" .
+ " - don't report errors with this version of libxml2!\n" .
+ " - don't send patches for this version of libxml2!\n\n";
+ if($version eq '2.9.4')
+ {
+ print STDERR "XML::LibXML typically attempts to install with this version anyway, so will we.\n";
+ }
+ else
+ {
+ print STDERR "XML::LibXML typcially refuses to install with this version unless forced, so we will\n";
+ print STDERR "attempt to download a newer version from the internet. If you prefer you can force\n";
+ print STDERR "Alien::Libxml2 to install with this possibly buggy version using:\n";
+ print STDERR "env FORCE=1 perl Makefile.PL\n";
+ print STDERR "or\n";
+ print STDERR "env FORCE=1 cpanm Alien::Libxml2\n";
+ return 'share';
+ }
+ }
+ }
+ $install_type;
+ },
+);
+
+plugin 'Prefer::BadVersion' => [ keys %bad_versions ];
+
+share {
+
+ # out of source build is borked on Windows, so we turn it
+ # off there. Turn it on elsewhere as it saves a copy.
+ meta->prop->{out_of_source} = $^O eq 'MSWin32' ? 0 : 1;
+
+ plugin 'Download::GitLab' => (
+ gitlab_host => 'https://gitlab.gnome.org',
+ gitlab_user => 'GNOME',
+ gitlab_project => 'libxml2',
+ type => 'link',
+ format => 'tar.xz',
+ version_from => 'tag_name',
+ convert_version => sub {
+ my $version = shift;
+ $version =~ s/^v//;
+ $version;
+ },
+ );
+
+ if($^O eq 'MSWin32' && $Config{ccname} eq 'cl')
+ {
+ build [
+ sub { shift->install_prop->{prefix} =~ s/\//\\/g;},
+ 'cd win32',
+ 'cscript configure.js prefix=%{.install.prefix} iconv=no compiler=msvc static=yes',
+ 'nmake -f Makefile.msvc',
+ 'nmake -f Makefile.msvc install',
+ ];
+
+ plugin 'Gather::IsolateDynamic';
+
+ gather sub {
+ my($build) = @_;
+ my $prefix = $build->runtime_prop->{prefix};
+ $build->runtime_prop->{cflags} = "-I$prefix/include/libxml2";
+ $build->runtime_prop->{libs} = "-L$prefix/lib libxml2_a.lib";
+ };
+ }
+ else
+ {
+ plugin 'Build::Autoconf' => ();
+
+ build [
+ '%{configure} --prefix=%{.install.autoconf_prefix} --without-python --disable-shared --enable-static',
+ '%{make}',
+ '%{make} install',
+ ];
+
+ plugin 'PkgConfig::MakeStatic' => ();
+ }
+
+};
+
+sys {
+
+ meta->after_hook(
+ gather_system => sub {
+ my($build) = @_;
+ return if defined $build->runtime_prop->{libs};
+ if($build->install_prop->{my_libs})
+ {
+ $build->runtime_prop->{$_} = $build->install_prop->{"my_$_"} for qw( version cflags libs );
+ }
+ },
+ );
+
+};
--- /dev/null
+---
+pod_spelling_system:
+ # list of words that are spelled correctly
+ # (regardless of what spell check thinks)
+ stopwords:
+ - libxml
+ - FFI
+ - Shlomi
+ - shlomif
+
+pod_coverage:
+ # format is "Class#method" or "Class", regex allowed
+ # for either Class or method.
+ private: []
--- /dev/null
+<foo><bar/></foo>
--- /dev/null
+name = Alien-Libxml2
+author = Graham Ollis <plicease@cpan.org>
+license = Perl_5
+copyright_holder = Graham Ollis
+copyright_year = 2013-2022
+version = 0.19
+
+; authordep Alien::Build::Plugin::Probe::Vcpkg
+
+[AlienBase::Doc]
+name = libxml2
+type = library
+type = ffi
+
+[@Author::Plicease]
+:version = 2.69
+release_tests = 1
+installer = Author::Plicease::MakeMaker
+irc = irc://irc.perl.org/#native
+test2_v0 = 1
+github_user = PerlAlien
+
+workflow = linux
+workflow = macos-share
+workflow = macos-system
+workflow = windows-share
+workflow = windows-system
+
+diag_preamble = | $post_diag = sub {
+diag_preamble = | require Alien::Libxml2;
+diag_preamble = | diag "version = ", Alien::Libxml2->config('version');
+diag_preamble = | diag "cflags = ", Alien::Libxml2->cflags;
+diag_preamble = | diag "cflags_static = ", Alien::Libxml2->cflags_static;
+diag_preamble = | diag "libs = ", Alien::Libxml2->libs;
+diag_preamble = | diag "libs_static = ", Alien::Libxml2->libs_static;
+diag_preamble = | diag "bin_dir = ", $_ for Alien::Libxml2->bin_dir;
+diag_preamble = | };
+
+[AlienBuild]
+:version = 0.11
+
+[RemovePrereqs]
+; comes with Perl
+remove = strict
+remove = warnings
+remove = base
+
+[Prereqs]
+Alien::Base = 2.37
+
+[Prereqs / ConfigureRequires]
+-phase = configure
+Alien::Build = 2.37
+Alien::Build::MM = 2.37
+
+[Prereqs / BuildRequires]
+-phase = build
+Alien::Build = 2.37
+
+[Author::Plicease::Upload]
+cpan = 1
+
+[Author::Plicease::Thanks]
+current = Graham Ollis <plicease@cpan.org>
+contributor = Shlomi Fish (shlomif)
+
+[PruneFiles]
+filename = a.out
--- /dev/null
+package Alien::Libxml2;
+
+use strict;
+use warnings;
+use base qw( Alien::Base );
+
+# ABSTRACT: Install the C libxml2 library on your system
+our $VERSION = '0.19'; # VERSION
+
+
+
+
+1;
+
+__END__
+
+=pod
+
+=encoding UTF-8
+
+=head1 NAME
+
+Alien::Libxml2 - Install the C libxml2 library on your system
+
+=head1 VERSION
+
+version 0.19
+
+=head1 SYNOPSIS
+
+In your Makefile.PL:
+
+ use ExtUtils::MakeMaker;
+ use Alien::Base::Wrapper ();
+
+ WriteMakefile(
+ Alien::Base::Wrapper->new('Alien::Libxml2')->mm_args2(
+ # MakeMaker args
+ NAME => 'My::XS',
+ ...
+ ),
+ );
+
+In your Build.PL:
+
+ use Module::Build;
+ use Alien::Base::Wrapper qw( Alien::Libxml2 !export );
+
+ my $builder = Module::Build->new(
+ ...
+ configure_requires => {
+ 'Alien::Libxml2' => '0',
+ ...
+ },
+ Alien::Base::Wrapper->mb_args,
+ ...
+ );
+
+ $build->create_build_script;
+
+In your L<FFI::Platypus> script or module:
+
+ use FFI::Platypus;
+ use Alien::Libxml2;
+
+ my $ffi = FFI::Platypus->new(
+ lib => [ Alien::Libxml2->dynamic_libs ],
+ );
+
+=head1 DESCRIPTION
+
+This module provides C<libxml2> for other modules to use.
+
+=head1 CAVEATS
+
+There was an older existing L<Alien::LibXML>, but it uses the older
+L<Alien::Build::ModuleBuild> and the author prefers this version which
+is based on the more robust L<alienfile> system.
+
+C<libxml2> has some optional prereqs, including C<zlib> and C<iconv>.
+For a C<share> install you will want to make sure that these are installed
+prior to installing L<Alien::Libxml2> if you want to make use of features
+relying on them.
+
+For a system install, you want to make sure the development packages for
+C<libxml2>, C<zlib> and C<iconv> are installed if C<libxml2> has been
+configured to use them, otherwise L<XML::LibXML> will not install as
+expected. If the tests for this module fail with a missing C<iconv.h>
+or C<zlib.h>, then this is likely the reason.
+
+=head1 SEE ALSO
+
+=over 4
+
+=item L<Alien::LibXML>
+
+Older Alien for the same library.
+
+=item L<XML::LibXML>
+
+Perl interface to C<libxml2>, which uses this L<Alien>
+
+=back
+
+=head1 AUTHOR
+
+Author: Graham Ollis E<lt>plicease@cpan.orgE<gt>
+
+Contributors:
+
+Shlomi Fish (shlomif)
+
+=head1 COPYRIGHT AND LICENSE
+
+This software is copyright (c) 2013-2022 by Graham Ollis.
+
+This is free software; you can redistribute it and/or modify it under
+the same terms as the Perl 5 programming language system itself.
+
+=cut
--- /dev/null
+#!/bin/bash
+
+set -ex
+
+if [ "x$CIP_ENV" == "x" ]; then
+ echo "please set CIP_ENV to one of:"
+ echo " export CIP_ENV=ALIEN_INSTALL_TYPE=share"
+ echo " export CIP_ENV=ALIEN_INSTALL_TYPE=system"
+ false
+fi
+
+if echo $CIP_ENV | grep -q system; then
+ echo use system libxml2
+ cip sudo apt-get update
+ cip sudo apt-get -y install libxml2-dev
+else
+ echo use internet libxml2
+fi
+
+cip exec dzil-cpanm -n Alien::Build::Plugin::Download::GitLab
--- /dev/null
+use strict;
+use warnings;
+use version;
+
+my @tags = `git tag`;
+chomp @tags;
+
+my %v;
+
+foreach my $version (@tags)
+{
+ next if $version =~ /-rc[0-9]$/; # ignore rc
+ next if $version =~ /^CVE/;
+ next if $version =~ /^PRE_MUCKUP/;
+ next if $version eq 'help';
+ next if $version =~ /^(help|GNUMERIC_FIRST_PUBLIC_RELEASE|ChangeLog|EAZEL-NAUTILUS-MS-AUG07|FOR_GNOME_0_99_1|GNOME_0_30|GNOME_PRINT_0_24|LIBXML2_2_5_x|LIB_XML_1_X)$/;
+
+ my @v;
+
+ if($version =~ /^LIBXML([0-9]+)\.([0-9]+)\.([0-9]+)$/)
+ {
+ @v = ($1,$2,$3);
+ }
+ elsif($version =~ /^LIBXML2_([0-9]+)_([0-9]+)_([0-9]+)$/)
+ {
+ @v = ($1,$2,$3);
+ }
+ elsif($version =~ /^LIBXML_?([0-9]+)_([0-9]+)_([0-9]+)(_REAL)?$/)
+ {
+ @v = ($1,$2,$3);
+ }
+ elsif($version =~ /^LIBXML_TEST_([0-9]+)_([0-9]+)_([0-9]+)?$/)
+ {
+ @v = ($1,$2,$3);
+ }
+ elsif($version =~ /^LIB_?XML_([0-9]+)_([0-9]+)$/)
+ {
+ @v = ($1,$2,$3);
+ }
+ elsif($version =~ /^LIB_?XML_([0-9]+)_([0-9]+)_([0-9]+)$/)
+ {
+ @v = ($1,$2,$3);
+ }
+ elsif($version =~ /^v([0-9]+)\.([0-9]+)\.([0-9]+)$/)
+ {
+ @v = ($1,$2,$3);
+ }
+ else
+ {
+ die "unrecognized tag format: $version";
+ }
+
+ next if $v[0] != 2;
+
+ for(0..$3)
+ {
+ $v{"$v[0].$v[1].$_"} = 1;
+ }
+}
+
+my $bl = [
+ # format X,Y,Z,is_ok, X,Y,Z is version,
+ # is_ok applies also to *preceding* versions
+ [2,4,22,0],
+ [2,4,25,0], # broken XPath
+ [2,4,28,0], # unsupported, may work fine with earlier XML::LibXML versions
+ [2,4,29,0], # broken
+ [2,4,30,0], # broken
+ [2,5,0,0], # unsupported
+ [2,5,1,0], # all pre 2.5.4 version have broken attr output
+ [2,5,5,0], # tests pass, but known as broken
+ [2,5,11,0], # will partially work
+ [2,6,0,0], # unsupported
+ [2,6,4,0], # schema error
+ [2,6,5,0], # broken xincludes
+ [2,6,15,0],
+# [2,6,16,1], # first version to pass all tests
+ [2,6,18,1], # up to 2.6.18 all ok
+ [2,6,19,0], # broken c14n
+ [2,6,20,0], # broken schemas
+ [2,6,24,1], # all tests pass
+ [2,6,25,0], # broken XPath
+ [2,6,32,1], # tested, works ok
+ [2,7,1,0], # broken release, broken utf-16
+ [2,7,6,1], # tested, ok
+ [2,7,8,1], # tested, ok
+ [2,9,3,1], # schema regression
+ [2,9,4,0], # schema regression
+ [2,9,6,1],
+];
+
+my @bad;
+
+foreach my $ver (sort map { version->parse($_) } keys %v)
+{
+ my($major, $minor, $point) = $ver =~ /([0-9]+).([0-9]+)\.([0-9]+)/g;
+
+ my $state = undef;
+
+ foreach my $i (@$bl)
+ {
+ $state = $i->[3];
+ last if $major < $i->[0];
+ next if $major > $i->[0];
+ last if $minor < $i->[1];
+ next if $minor > $i->[1];
+ last if $point <= $i->[2];
+ $state = undef;
+ }
+
+ if(defined $state and $state == 0)
+ {
+ print "'$ver',";
+ }
+}
+
+print "\n";
+
--- /dev/null
+severity = 1
+only = 1
+
+[Freenode::ArrayAssignAref]
+[Freenode::BarewordFilehandles]
+[Freenode::ConditionalDeclarations]
+[Freenode::ConditionalImplicitReturn]
+[Freenode::DeprecatedFeatures]
+[Freenode::DiscouragedModules]
+[Freenode::DollarAB]
+[Freenode::Each]
+[Freenode::EmptyReturn]
+[Freenode::IndirectObjectNotation]
+[Freenode::LexicalForeachIterator]
+[Freenode::LoopOnHash]
+[Freenode::ModPerl]
+[Freenode::OpenArgs]
+[Freenode::OverloadOptions]
+[Freenode::POSIXImports]
+[Freenode::PackageMatchesFilename]
+[Freenode::PreferredAlternatives]
+[Freenode::StrictWarnings]
+extra_importers = Test2::V0
+[Freenode::Threads]
+[Freenode::Wantarray]
+[Freenode::WarningsSwitch]
+[Freenode::WhileDiamondDefaultAssignment]
+
+[BuiltinFunctions::ProhibitBooleanGrep]
+[BuiltinFunctions::ProhibitStringyEval]
+[BuiltinFunctions::ProhibitStringySplit]
+[BuiltinFunctions::ProhibitVoidGrep]
+[BuiltinFunctions::ProhibitVoidMap]
+[ClassHierarchies::ProhibitExplicitISA]
+[ClassHierarchies::ProhibitOneArgBless]
+[CodeLayout::ProhibitHardTabs]
+allow_leading_tabs = 0
+[CodeLayout::ProhibitTrailingWhitespace]
+[CodeLayout::RequireConsistentNewlines]
+[ControlStructures::ProhibitLabelsWithSpecialBlockNames]
+[ControlStructures::ProhibitMutatingListFunctions]
+[ControlStructures::ProhibitUnreachableCode]
+[InputOutput::ProhibitBarewordFileHandles]
+[InputOutput::ProhibitJoinedReadline]
+[InputOutput::ProhibitTwoArgOpen]
+[Miscellanea::ProhibitFormats]
+[Miscellanea::ProhibitUselessNoCritic]
+[Modules::ProhibitConditionalUseStatements]
+;[Modules::RequireEndWithOne]
+[Modules::RequireNoMatchVarsWithUseEnglish]
+[Objects::ProhibitIndirectSyntax]
+[RegularExpressions::ProhibitUselessTopic]
+[Subroutines::ProhibitNestedSubs]
+[ValuesAndExpressions::ProhibitLeadingZeros]
+[ValuesAndExpressions::ProhibitMixedBooleanOperators]
+[ValuesAndExpressions::ProhibitSpecialLiteralHeredocTerminator]
+[ValuesAndExpressions::RequireUpperCaseHeredocTerminator]
+[Variables::ProhibitPerl4PackageNames]
+[Variables::ProhibitUnusedVariables]
--- /dev/null
+use Test2::V0 -no_srand => 1;
+use Config;
+
+eval { require 'Test/More.pm' };
+
+# This .t file is generated.
+# make changes instead to dist.ini
+
+my %modules;
+my $post_diag;
+
+$modules{$_} = $_ for qw(
+ Alien::Base
+ Alien::Build
+ Alien::Build::MM
+ Alien::Build::Plugin::Build::SearchDep
+ Alien::Build::Plugin::Download::GitLab
+ Alien::Build::Plugin::Prefer::BadVersion
+ Alien::Build::Plugin::Probe::Vcpkg
+ ExtUtils::CBuilder
+ ExtUtils::MakeMaker
+ Test2::V0
+ Test::Alien
+);
+
+$post_diag = sub {
+ require Alien::Libxml2;
+ diag "version = ", Alien::Libxml2->config('version');
+ diag "cflags = ", Alien::Libxml2->cflags;
+ diag "cflags_static = ", Alien::Libxml2->cflags_static;
+ diag "libs = ", Alien::Libxml2->libs;
+ diag "libs_static = ", Alien::Libxml2->libs_static;
+ diag "bin_dir = ", $_ for Alien::Libxml2->bin_dir;
+};
+
+my @modules = sort keys %modules;
+
+sub spacer ()
+{
+ diag '';
+ diag '';
+ diag '';
+}
+
+pass 'okay';
+
+my $max = 1;
+$max = $_ > $max ? $_ : $max for map { length $_ } @modules;
+our $format = "%-${max}s %s";
+
+spacer;
+
+my @keys = sort grep /(MOJO|PERL|\A(LC|HARNESS)_|\A(SHELL|LANG)\Z)/i, keys %ENV;
+
+if(@keys > 0)
+{
+ diag "$_=$ENV{$_}" for @keys;
+
+ if($ENV{PERL5LIB})
+ {
+ spacer;
+ diag "PERL5LIB path";
+ diag $_ for split $Config{path_sep}, $ENV{PERL5LIB};
+
+ }
+ elsif($ENV{PERLLIB})
+ {
+ spacer;
+ diag "PERLLIB path";
+ diag $_ for split $Config{path_sep}, $ENV{PERLLIB};
+ }
+
+ spacer;
+}
+
+diag sprintf $format, 'perl', "$] $^O $Config{archname}";
+
+foreach my $module (sort @modules)
+{
+ my $pm = "$module.pm";
+ $pm =~ s{::}{/}g;
+ if(eval { require $pm; 1 })
+ {
+ my $ver = eval { $module->VERSION };
+ $ver = 'undef' unless defined $ver;
+ diag sprintf $format, $module, $ver;
+ }
+ else
+ {
+ diag sprintf $format, $module, '-';
+ }
+}
+
+if($post_diag)
+{
+ spacer;
+ $post_diag->();
+}
+
+spacer;
+
+done_testing;
+
--- /dev/null
+use Test2::V0 -no_srand => 1;
+use Test::Alien;
+use Config;
+use Alien::Libxml2;
+
+alien_ok 'Alien::Libxml2';
+
+if($^O eq 'MSWin32' && $Config{ccname} eq 'cl')
+{
+ my $code = q{
+ package Alien::Libxml2;
+ sub libs_static
+ {
+ my($self) = @_;
+ my $str = $self->SUPER::libs_static;
+ $str =~ s/-L/-LIBPATH:/;
+ $str;
+ }
+ };
+ eval $code; ## no critic (BuiltinFunctions::ProhibitStringyEval)
+ die $@ if $@;
+}
+
+my $xs = do { local $/; <DATA> };
+xs_ok $xs, with_subtest {
+ ok(Libxml2::mytest());
+};
+
+done_testing;
+
+__DATA__
+
+#include "EXTERN.h"
+#include "perl.h"
+#include "XSUB.h"
+#include <libxml/parser.h>
+#include <libxml/tree.h>
+
+MODULE = Libxml2 PACKAGE = Libxml2
+
+int
+mytest()
+ INIT:
+ xmlDoc *doc = NULL;
+ xmlNode *root_element = NULL;
+ const char *filename = "corpus/basic.xml";
+ CODE:
+ doc = xmlReadFile(filename, NULL, 0);
+ if(doc == NULL)
+ {
+ printf("error reading %s\n", filename);
+ RETVAL = 0;
+ }
+ else
+ {
+ xmlFreeDoc(doc);
+ xmlCleanupParser();
+ RETVAL = 1;
+ }
+ OUTPUT:
+ RETVAL
--- /dev/null
+#include <libxml/parser.h>
+#include <libxml/tree.h>
+
+/*
+ * C version of the test can be used to see verify if alien is doing something wonky
+ * compile and run with pkg-config:
+ * cc `pkg-config --cflags libxml-2.0` t/c/test.c `pkg-config --libs libxml-2.0` && ./a.out
+ * compile and run with xml2-config:
+ * cc `xml2-config --cflags` t/c/test.c `xml2-config --libs` && ./a.out
+ */
+
+int
+main(int argc, char *argv[])
+{
+ xmlDoc *doc = NULL;
+ xmlNode *root_element = NULL;
+ const char *filename = "corpus/basic.xml";
+ doc = xmlReadFile(filename, NULL, 0);
+ if(doc == NULL)
+ {
+ printf("error reading %s\n", filename);
+ return 2;
+ }
+ else
+ {
+ xmlFreeDoc(doc);
+ xmlCleanupParser();
+ printf("ok\n");
+ return 0;
+ }
+}
--- /dev/null
+use Test2::Require::Module 'Test2::Tools::PerlCritic';
+use Test2::Require::Module 'Perl::Critic';
+use Test2::Require::Module 'Perl::Critic::Freenode';
+use Test2::V0;
+use Perl::Critic;
+use Test2::Tools::PerlCritic;
+
+my $critic = Perl::Critic->new(
+ -profile => 'perlcriticrc',
+);
+
+perl_critic_ok ['lib','t'], $critic;
+
+done_testing;
--- /dev/null
+use strict;
+use warnings;
+use Test::More;
+BEGIN {
+ plan skip_all => 'test requires Test::EOL'
+ unless eval q{ use Test::EOL; 1 };
+};
+use Test::EOL;
+use FindBin;
+use File::Spec;
+
+chdir(File::Spec->catdir($FindBin::Bin, File::Spec->updir, File::Spec->updir));
+
+all_perl_files_ok(grep { -e $_ } qw( bin lib t Makefile.PL ));
+
+
--- /dev/null
+use strict;
+use warnings;
+use Test::More;
+BEGIN {
+ plan skip_all => 'test requires Test::NoTabs'
+ unless eval q{ use Test::NoTabs; 1 };
+};
+use Test::NoTabs;
+use FindBin;
+use File::Spec;
+
+chdir(File::Spec->catdir($FindBin::Bin, File::Spec->updir, File::Spec->updir));
+
+all_perl_files_ok( grep { -e $_ } qw( bin lib t Makefile.PL ));
+
+
--- /dev/null
+use strict;
+use warnings;
+use Test::More;
+BEGIN {
+ plan skip_all => 'test requires Test::Pod'
+ unless eval q{ use Test::Pod; 1 };
+};
+use Test::Pod;
+use FindBin;
+use File::Spec;
+
+chdir(File::Spec->catdir($FindBin::Bin, File::Spec->updir, File::Spec->updir));
+
+all_pod_files_ok( grep { -e $_ } qw( bin lib ));
+
+
--- /dev/null
+use strict;
+use warnings;
+use Test::More;
+BEGIN {
+ plan skip_all => 'test requires 5.010 or better'
+ unless $] >= 5.010;
+ plan skip_all => 'test requires Test::Pod::Coverage'
+ unless eval q{ use Test::Pod::Coverage; 1 };
+ plan skip_all => 'test requires YAML'
+ unless eval q{ use YAML; 1; };
+ plan skip_all => 'test does not always work in cip check'
+ if defined $ENV{CIPSTATIC} && $ENV{CIPSTATIC} eq 'true';
+};
+use Test::Pod::Coverage;
+use YAML qw( LoadFile );
+use FindBin;
+use File::Spec;
+
+my $config_filename = File::Spec->catfile(
+ $FindBin::Bin, File::Spec->updir, File::Spec->updir, 'author.yml'
+);
+
+my $config;
+$config = LoadFile($config_filename)
+ if -r $config_filename;
+
+plan skip_all => 'disabled' if $config->{pod_coverage}->{skip};
+
+chdir(File::Spec->catdir($FindBin::Bin, File::Spec->updir, File::Spec->updir));
+
+my @private_classes;
+my %private_methods;
+
+push $config->{pod_coverage}->{private}->@*,
+ 'Alien::.*::Install::Files#Inline';
+
+foreach my $private ($config->{pod_coverage}->{private}->@*)
+{
+ my($class,$method) = split /#/, $private;
+ if(defined $class && $class ne '')
+ {
+ my $regex = eval 'qr{^' . $class . '$}';
+ if(defined $method && $method ne '')
+ {
+ push @private_classes, { regex => $regex, method => $method };
+ }
+ else
+ {
+ push @private_classes, { regex => $regex, all => 1 };
+ }
+ }
+ elsif(defined $method && $method ne '')
+ {
+ $private_methods{$_} = 1 for split /,/, $method;
+ }
+}
+
+my @classes = all_modules;
+
+plan tests => scalar @classes;
+
+foreach my $class (@classes)
+{
+ SKIP: {
+ my($is_private_class) = map { 1 } grep { $class =~ $_->{regex} && $_->{all} } @private_classes;
+ skip "private class: $class", 1 if $is_private_class;
+
+ my %methods = map {; $_ => 1 } map { split /,/, $_->{method} } grep { $class =~ $_->{regex} } @private_classes;
+ $methods{$_} = 1 for keys %private_methods;
+
+ my $also_private = eval 'qr{^' . join('|', keys %methods ) . '$}';
+
+ pod_coverage_ok $class, { also_private => [$also_private] };
+ };
+}
+
+
--- /dev/null
+use strict;
+use warnings;
+use Test::More;
+BEGIN {
+ plan skip_all => 'test requires Test::Pod::Spelling::CommonMistakes'
+ unless eval q{ use Test::Pod::Spelling::CommonMistakes; 1 };
+ plan skip_all => 'test requires YAML'
+ unless eval q{ use YAML qw( LoadFile ); 1 };
+};
+use Test::Pod::Spelling::CommonMistakes;
+use FindBin;
+use File::Spec;
+
+my $config_filename = File::Spec->catfile(
+ $FindBin::Bin, File::Spec->updir, File::Spec->updir, 'author.yml'
+);
+
+my $config;
+$config = LoadFile($config_filename)
+ if -r $config_filename;
+
+plan skip_all => 'disabled' if $config->{pod_spelling_common}->{skip};
+
+chdir(File::Spec->catdir($FindBin::Bin, File::Spec->updir, File::Spec->updir));
+
+# TODO: test files in bin too.
+all_pod_files_ok;
+
+
--- /dev/null
+use strict;
+use warnings;
+use Test::More;
+BEGIN {
+ plan skip_all => 'test requires Test::Spelling'
+ unless eval q{ use Test::Spelling; 1 };
+ plan skip_all => 'test requires YAML'
+ unless eval q{ use YAML; 1; };
+};
+use Test::Spelling;
+use YAML qw( LoadFile );
+use FindBin;
+use File::Spec;
+
+my $config_filename = File::Spec->catfile(
+ $FindBin::Bin, File::Spec->updir, File::Spec->updir, 'author.yml'
+);
+
+my $config;
+$config = LoadFile($config_filename)
+ if -r $config_filename;
+
+plan skip_all => 'disabled' if $config->{pod_spelling_system}->{skip};
+
+chdir(File::Spec->catdir($FindBin::Bin, File::Spec->updir, File::Spec->updir));
+
+add_stopwords($config->{pod_spelling_system}->{stopwords}->@*);
+add_stopwords(qw(
+Plicease
+stdout
+stderr
+stdin
+subref
+loopback
+username
+os
+Ollis
+Mojolicious
+plicease
+CPAN
+reinstall
+TODO
+filename
+filenames
+login
+callback
+callbacks
+standalone
+VMS
+hostname
+hostnames
+TCP
+UDP
+IP
+API
+MSWin32
+OpenBSD
+FreeBSD
+NetBSD
+unencrypted
+WebSocket
+WebSockets
+timestamp
+timestamps
+poney
+BackPAN
+portably
+RedHat
+AIX
+BSD
+XS
+FFI
+perlish
+optimizations
+subdirectory
+RESTful
+SQLite
+JavaScript
+dir
+plugins
+munge
+jQuery
+namespace
+PDF
+PDFs
+usernames
+DBI
+pluggable
+APIs
+SSL
+JSON
+YAML
+uncommented
+Solaris
+OpenVMS
+URI
+URL
+CGI
+));
+all_pod_files_spelling_ok;
+
+
--- /dev/null
+use strict;
+use warnings;
+use Test::More;
+BEGIN {
+ plan skip_all => 'test requires Test::Strict'
+ unless eval q{ use Test::Strict; 1 };
+};
+use Test::Strict;
+use FindBin;
+use File::Spec;
+
+chdir(File::Spec->catdir($FindBin::Bin, File::Spec->updir, File::Spec->updir));
+
+unshift @Test::Strict::MODULES_ENABLING_STRICT,
+ 'ozo',
+ 'Test2::Bundle::SIPS',
+ 'Test2::V0',
+ 'Test2::Bundle::Extended';
+note "enabling strict = $_" for @Test::Strict::MODULES_ENABLING_STRICT;
+
+all_perl_files_ok( grep { -e $_ } qw( bin lib t Makefile.PL ));
+
+
--- /dev/null
+use strict;
+use warnings;
+use Test::More;
+use FindBin ();
+BEGIN {
+
+ plan skip_all => "test requires Test::Version 2.00"
+ unless eval q{
+ use Test::Version 2.00 qw( version_all_ok ), {
+ has_version => 1,
+ filename_match => sub { $_[0] !~ m{/(ConfigData|Install/Files)\.pm$} },
+ };
+ 1
+ };
+
+ plan skip_all => 'test requires YAML'
+ unless eval q{ use YAML; 1; };
+}
+
+use YAML qw( LoadFile );
+use FindBin;
+use File::Spec;
+
+my $config_filename = File::Spec->catfile(
+ $FindBin::Bin, File::Spec->updir, File::Spec->updir, 'author.yml'
+);
+
+my $config;
+$config = LoadFile($config_filename)
+ if -r $config_filename;
+
+if($config->{version}->{dir})
+{
+ note "using dir " . $config->{version}->{dir}
+}
+
+version_all_ok($config->{version}->{dir} ? ($config->{version}->{dir}) : ());
+done_testing;
+
--- /dev/null
+use strict;
+use warnings;
+use Test::More;
+BEGIN {
+ plan skip_all => 'test requires Test::CPAN::Changes'
+ unless eval q{ use Test::CPAN::Changes; 1 };
+};
+use Test::CPAN::Changes;
+use FindBin;
+use File::Spec;
+
+chdir(File::Spec->catdir($FindBin::Bin, File::Spec->updir, File::Spec->updir));
+
+do {
+ my $old = \&Test::Builder::carp;
+ my $new = sub {
+ my($self, @messages) = @_;
+ return if $messages[0] =~ /^Date ".*" is not in the recommend format/;
+ $old->($self, @messages);
+ };
+ no warnings 'redefine';
+ *Test::Builder::carp = $new;
+};
+
+changes_file_ok;
+
+done_testing;
+
+
--- /dev/null
+use strict;
+use warnings;
+use Test::More;
+BEGIN {
+ plan skip_all => 'test requires Test::Fixme'
+ unless eval q{ use Test::Fixme 0.14; 1 };
+};
+use Test::Fixme 0.07;
+use FindBin;
+use File::Spec;
+
+chdir(File::Spec->catdir($FindBin::Bin, File::Spec->updir, File::Spec->updir));
+
+run_tests(
+ match => qr/FIXME/,
+ where => [ grep { -e $_ } qw( bin lib t Makefile.PL Build.PL )],
+ warn => 1,
+);
+
+