From 4b09efa8a399bd8d52c11474a6616a244bce1bbc Mon Sep 17 00:00:00 2001 From: Timothy Legge Date: Mon, 7 Aug 2023 21:23:42 -0300 Subject: [PATCH 1/2] Increment version for next release --- PKCS10.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PKCS10.pm b/PKCS10.pm index b9f7081..6426025 100644 --- a/PKCS10.pm +++ b/PKCS10.pm @@ -30,7 +30,7 @@ our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } ); #); -our $VERSION = '0.21'; +our $VERSION = '0.22'; require XSLoader; XSLoader::load('Crypt::OpenSSL::PKCS10', $VERSION); From 52d952563cfbc208392bd96a8b5ef8fb71727f4a Mon Sep 17 00:00:00 2001 From: Timothy Legge Date: Sat, 12 Aug 2023 09:26:26 -0300 Subject: [PATCH 2/2] Add Dist::Zilla support for making releases --- .gitignore | 3 + LICENSE | 412 +++++++++++++++++++++++++++++++++++++++ MANIFEST | 13 -- META.json | 49 +++-- META.yml | 28 +-- Makefile.PL | 99 ++++++---- PKCS10.pm | 2 + cpanfile | 8 +- dist.ini | 121 ++++++++++++ maint/Makefile_header.PL | 44 +++++ 10 files changed, 689 insertions(+), 90 deletions(-) create mode 100644 .gitignore create mode 100644 LICENSE delete mode 100644 MANIFEST create mode 100644 dist.ini create mode 100644 maint/Makefile_header.PL diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..78b6367 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +Crypt-OpenSSL-PKCS10* +Release* + diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..efb4407 --- /dev/null +++ b/LICENSE @@ -0,0 +1,412 @@ +This software is copyright (c) 2006 - 2023 by JoNO. + +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) 2006 - 2023 by JoNO. + +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. + + + Copyright (C) 19yy + + 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. + + , 1 April 1989 + Ty Coon, President of Vice + +That's all there is to it! + + +--- The Perl Artistic License 1.0 --- + +This software is Copyright (c) 2006 - 2023 by JoNO. + +This is free software, licensed under: + + The Perl 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 as specified below. + + "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 uunet.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) give non-standard executables non-standard names, and clearly + document 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. You may embed this Package's interpreter within +an executable of yours (by linking); this shall be construed as a mere +form of aggregation, provided that the complete Standard Version of the +interpreter is so embedded. + +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 whoever generated +them, and may be sold commercially, and may be aggregated with this +Package. If such scripts or library files are aggregated with this +Package via the so-called "undump" or "unexec" methods of producing a +binary executable image, then distribution of such an image shall +neither be construed as a distribution of this Package nor shall it +fall under the restrictions of Paragraphs 3 and 4, provided that you do +not represent such an executable image as a Standard Version of this +Package. + +7. C subroutines (or comparably compiled subroutines in other +languages) supplied by you and linked into this Package in order to +emulate subroutines and variables of the language defined by this +Package shall not be considered part of this Package, but are the +equivalent of input as in Paragraph 6, provided these subroutines do +not change the language in any way that would cause it to fail the +regression tests for the language. + +8. Aggregation of this Package with a commercial distribution is always +permitted provided that the use of this Package is embedded; that is, +when no overt attempt is made to make this Package's interfaces visible +to the end user of the commercial distribution. Such use shall not be +construed as a distribution of this Package. + +9. The name of the Copyright Holder may not be used to endorse or promote +products derived from this software without specific prior written permission. + +10. 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 + diff --git a/MANIFEST b/MANIFEST deleted file mode 100644 index 089e6d9..0000000 --- a/MANIFEST +++ /dev/null @@ -1,13 +0,0 @@ -Changes -cpanfile -Makefile.PL -MANIFEST This list of files -META.json -META.yml -PKCS10.pm -PKCS10.xs -ppport.h -README.md -t/CSR.csr -t/Mytest.t -typemap diff --git a/META.json b/META.json index 209a3b2..077c224 100644 --- a/META.json +++ b/META.json @@ -3,8 +3,8 @@ "author" : [ "JoNO " ], - "dynamic_config" : 1, - "generated_by" : "ExtUtils::MakeMaker version 7.62, CPAN::Meta::Converter version 2.150010", + "dynamic_config" : 0, + "generated_by" : "Dist::Zilla version 6.030, CPAN::Meta::Converter version 2.150010", "license" : [ "perl_5" ], @@ -13,17 +13,10 @@ "version" : 2 }, "name" : "Crypt-OpenSSL-PKCS10", - "no_index" : { - "directory" : [ - "t", - "inc" - ] - }, "prereqs" : { "build" : { "requires" : { - "ExtUtils::MakeMaker" : "0", - "Test" : "0" + "Crypt::OpenSSL::Guess" : "0.11" } }, "configure" : { @@ -32,30 +25,48 @@ "ExtUtils::MakeMaker" : "0" } }, + "develop" : { + "requires" : { + "Test::CPAN::Meta::JSON" : "0.16", + "Test::Pod" : "1.41", + "Test::Spelling" : "0.12" + } + }, "runtime" : { "recommends" : { "Crypt::OpenSSL::Bignum" : "0" }, "requires" : { - "Crypt::OpenSSL::RSA" : "0" + "Crypt::OpenSSL::RSA" : "0", + "perl" : "5.008" + } + }, + "test" : { + "requires" : { + "Crypt::OpenSSL::RSA" : "0", + "Test::More" : "0" } } }, + "provides" : {}, "release_status" : "stable", "resources" : { "bugtracker" : { "web" : "https://rt.cpan.org/Public/Dist/Display.html?Name=Crypt-OpenSSL-PKCS10" }, + "homepage" : "http://search.cpan.org/dist/Crypt-OpenSSL-PKCS10/", "repository" : { "type" : "git", - "url" : "git@github.com:perl-net-saml2/perl-Crypt-OpenSSL-PKCS10.git", + "url" : "git://github.com/perl-net-saml2/perl-Crypt-OpenSSL-PKCS10.git", "web" : "https://github.com/perl-net-saml2/perl-Crypt-OpenSSL-PKCS10" - }, - "homepage" : "https://metacpan.org/pod/Crypt::OpenSSL::PKCS10", - "license" : [ - "http://dev.perl.org/licenses/" - ] + } }, - "version" : "0.20", - "x_serialization_backend" : "JSON::PP version 4.06" + "version" : "0.22", + "x_generated_by_perl" : "v5.36.1", + "x_maintainers" : [ + "Timothy Legge " + ], + "x_serialization_backend" : "JSON::PP version 4.07", + "x_spdx_expression" : "Artistic-1.0-Perl OR GPL-1.0-or-later" } + diff --git a/META.yml b/META.yml index 5c23225..d852ab2 100644 --- a/META.yml +++ b/META.yml @@ -3,30 +3,32 @@ abstract: "Perl extension to OpenSSL's PKCS10 API." author: - 'JoNO ' build_requires: - ExtUtils::MakeMaker: '0' - Test: '0' + Crypt::OpenSSL::Guess: '0.11' + Crypt::OpenSSL::RSA: '0' + Test::More: '0' configure_requires: Crypt::OpenSSL::Guess: '0.11' ExtUtils::MakeMaker: '0' -dynamic_config: 1 -generated_by: 'ExtUtils::MakeMaker version 7.62, CPAN::Meta::Converter version 2.150010' +dynamic_config: 0 +generated_by: 'Dist::Zilla version 6.030, 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: Crypt-OpenSSL-PKCS10 -no_index: - directory: - - t - - inc +provides: {} recommends: Crypt::OpenSSL::Bignum: '0' requires: Crypt::OpenSSL::RSA: '0' + perl: '5.008' resources: bugtracker: https://rt.cpan.org/Public/Dist/Display.html?Name=Crypt-OpenSSL-PKCS10 - repository: git@github.com:perl-net-saml2/perl-Crypt-OpenSSL-PKCS10.git - homepage: https://metacpan.org/pod/Crypt::OpenSSL::PKCS10 - license: http://dev.perl.org/licenses/ -version: '0.20' -x_serialization_backend: 'CPAN::Meta::YAML version 0.018' + homepage: http://search.cpan.org/dist/Crypt-OpenSSL-PKCS10/ + repository: git://github.com/perl-net-saml2/perl-Crypt-OpenSSL-PKCS10.git +version: '0.22' +x_generated_by_perl: v5.36.1 +x_maintainers: + - 'Timothy Legge ' +x_serialization_backend: 'YAML::Tiny version 1.74' +x_spdx_expression: 'Artistic-1.0-Perl OR GPL-1.0-or-later' diff --git a/Makefile.PL b/Makefile.PL index da27e07..4490812 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -1,10 +1,17 @@ -use 5.008000; +# This Makefile.PL for Crypt-OpenSSL-PKCS10 was generated by +# Dist::Zilla::Plugin::MakeMaker::Awesome 0.49. +# Don't edit it but the dist.ini and plugins used to construct it. + +use strict; +use warnings; + +use 5.008; use ExtUtils::MakeMaker; -use Crypt::OpenSSL::Guess qw(openssl_inc_paths openssl_lib_paths); use Config; use File::Spec; -use Crypt::OpenSSL::Guess; +use Crypt::OpenSSL::Guess qw(openssl_version openssl_inc_paths openssl_lib_paths); + my %args; my ($major, $minor, $patch) = openssl_version(); @@ -14,8 +21,6 @@ $args{INC} = openssl_inc_paths(); $args{LIBS} = [openssl_lib_paths() . ' -lssl -lcrypto']; my $cc_option_flags; -#my $cc_option_flags = $major ge 3 ? ' -DOPENSSL_API_COMPAT=30000' : ' -DOPENSSL_API_COMPAT=10100'; -#my $cc_option_flags = $major ge 3 ? ' -DOPENSSL_API_COMPAT=10100' : ' -DOPENSSL_API_COMPAT=10100'; if ($Config::Config{cc} =~ /gcc/i) { $cc_option_flags .= $ENV{AUTHOR_TESTING} ? ' -Wall -Werror' : ' -Wall'; @@ -37,7 +42,7 @@ if ($Config{gccversion} =~ /llvm/i) { $cc_option_flags .= ' -Wno-compound-token-split-by-macro'; } - if ($Config{perl_version} <= 20) { + if ($Config{PERL_VERSION} <= 20) { $cc_option_flags .= ' -Wno-error=pointer-bool-conversion'; } } @@ -48,41 +53,51 @@ if ($Config{myuname} =~ /sunos|solaris/i) { $args{OPTIMIZE} = $cc_option_flags; } -# See lib/ExtUtils/MakeMaker.pm for details of how to influence -# the contents of the Makefile that is written. -WriteMakefile( - NAME => 'Crypt::OpenSSL::PKCS10', - VERSION_FROM => 'PKCS10.pm', - PREREQ_PM => { Crypt::OpenSSL::RSA => 0}, # e.g., Module::Name => 1.1 - ($] >= 5.005 ? ## Add these new keywords supported since 5.005 - (ABSTRACT_FROM => 'PKCS10.pm', - AUTHOR => 'JoNO ') : ()), - INC => openssl_inc_paths(), - - 'dist' => { COMPRESS => 'gzip -9f', SUFFIX => 'gz', }, - 'clean' => { FILES => 'Crypt-OpenSSL-PKCS10-*' }, - ( $ExtUtils::MakeMaker::VERSION >= 6.3002 ? ( 'LICENSE' => 'perl', ) : () ), - ( - $ExtUtils::MakeMaker::VERSION >= 6.46 - ? ( - 'META_MERGE' => { - recommends => { - 'Crypt::OpenSSL::Bignum' => 0, - }, - configure_requires => { - 'Crypt::OpenSSL::Guess' => '0.11', - }, - build_requires => { - 'Test' => 0, # For testing - }, - resources => { - 'license' => 'http://dev.perl.org/licenses/', - 'homepage' => 'https://metacpan.org/pod/Crypt::OpenSSL::PKCS10', - 'bugtracker' => 'https://rt.cpan.org/Public/Dist/Display.html?Name=Crypt-OpenSSL-PKCS10', - } - } - ) - : () - ), +my %WriteMakefileArgs = ( + "ABSTRACT" => "Perl extension to OpenSSL's PKCS10 API.", + "AUTHOR" => "JoNO ", + "BUILD_REQUIRES" => { + "Crypt::OpenSSL::Guess" => "0.11" + }, + "CONFIGURE_REQUIRES" => { + "Crypt::OpenSSL::Guess" => "0.11", + "ExtUtils::MakeMaker" => 0 + }, + "DISTNAME" => "Crypt-OpenSSL-PKCS10", + "LICENSE" => "perl", + "MIN_PERL_VERSION" => "5.008", + "NAME" => "Crypt::OpenSSL::PKCS10", + "PREREQ_PM" => { + "Crypt::OpenSSL::RSA" => 0 + }, + "TEST_REQUIRES" => { + "Crypt::OpenSSL::RSA" => 0, + "Test::More" => 0 + }, + "VERSION" => "0.22", + "test" => { + "TESTS" => "t/*.t" + } +); + +%WriteMakefileArgs = ( + %WriteMakefileArgs, %args, ); + +my %FallbackPrereqs = ( + "Crypt::OpenSSL::Guess" => "0.11", + "Crypt::OpenSSL::RSA" => 0, + "Test::More" => 0 +); + +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); diff --git a/PKCS10.pm b/PKCS10.pm index 6426025..db0c2f8 100644 --- a/PKCS10.pm +++ b/PKCS10.pm @@ -49,6 +49,8 @@ sub new_from_rsa { 1; __END__ +# ABSTRACT: Perl extension to OpenSSL's PKCS10 API. + =head1 NAME Crypt::OpenSSL::PKCS10 - Perl extension to OpenSSL's PKCS10 API. diff --git a/cpanfile b/cpanfile index b12df55..b4c0276 100644 --- a/cpanfile +++ b/cpanfile @@ -1,10 +1,12 @@ # This file is generated by Dist::Zilla::Plugin::CPANFile v6.030 # Do not edit this file directly. To change prereqs, edit the `dist.ini` file. +requires "Crypt::OpenSSL::RSA" => "0"; requires "perl" => "5.008"; +recommends "Crypt::OpenSSL::Bignum" => "0"; on 'build' => sub { - requires "Crypt::OpenSSL::Guess" => "0"; + requires "Crypt::OpenSSL::Guess" => "0.11"; }; on 'test' => sub { @@ -13,12 +15,12 @@ on 'test' => sub { }; on 'configure' => sub { - requires "Crypt::OpenSSL::Guess" => "0"; + requires "Crypt::OpenSSL::Guess" => "0.11"; + requires "ExtUtils::MakeMaker" => "0"; }; on 'develop' => sub { requires "Test::CPAN::Meta::JSON" => "0.16"; - requires "Test::Kwalitee" => "1.21"; requires "Test::Pod" => "1.41"; requires "Test::Spelling" => "0.12"; }; diff --git a/dist.ini b/dist.ini new file mode 100644 index 0000000..22dbd55 --- /dev/null +++ b/dist.ini @@ -0,0 +1,121 @@ +name = Crypt-OpenSSL-PKCS10 +author = JoNO +main_module = PKCS10.pm +license = Perl_5 +copyright_holder = JoNO +copyright_year = 2006 - 2023 + +[Meta::Maintainers] +maintainer = Timothy Legge + +[@Filter] +-bundle = @Basic +-remove = GatherDir +-remove = MakeMaker +-remove = Readme + +[AutoPrereqs] +skip = ^vars$ +skip = utf8 +skip = warnings +skip = strict +skip = overload +skip = base + +[Prereqs / BuildRequires] +Crypt::OpenSSL::Guess = 0.11 + +[Prereqs / ConfigureRequires] +Crypt::OpenSSL::Guess = 0.11 + +[Prereqs / RuntimeRequires] +perl = 5.008 +Crypt::OpenSSL::RSA = 0 + +[Prereqs / RuntimeRecommends] +Crypt::OpenSSL::Bignum=0 + +[Prereqs / TestRequires] +Crypt::OpenSSL::RSA = 0 + +[MakeMaker::Awesome] +header_file = maint/Makefile_header.PL +WriteMakefile_arg = %args + +[Pod2Readme] + +[ReadmeAnyFromPod / ReadmePodInRoot] +type = gfm +filename = README.md +location = root + +[ExtraTests] + +[PodSyntaxTests] + +[Test::PodSpelling] +directories = . +stopword = Legge +stopword = OpenSSL +stopword = PEM +stopword = pem +stopword = ASN +stopword = DER +stopword = OID +stopword = PKCS +stopword = RSA + +[MetaJSON] +[MetaProvides::Package] + +[Test::CPAN::Meta::JSON] + +[CPANFile] + +[NextRelease] +format = %v -- %{EEE MMM dd HH:mm:ss VVV yyyy}d +filename = Changes + +[CopyFilesFromBuild] +copy = Makefile.PL +copy = LICENSE +copy = cpanfile +copy = META.json +copy = META.yml + + +[Repository] +git_remote = upstream + +[Bugtracker] +web = https://rt.cpan.org/Public/Dist/Display.html?Name=Crypt-OpenSSL-PKCS10 + +[Homepage] +metadata = https://metacpan.org/pod/Crypt::OpenSSL::PKCS10 + +[Git::NextVersion] +first_version = 0.22 ; this is the default +version_by_branch = 0 ; this is the default +version_regexp = ^(0.\d+)$ ; this is the default + +[Git::GatherDir] +exclude_filename = cpanfile +exclude_filename = Makefile.PL +exclude_filename = MANIFEST +exclude_filename = README.md +exclude_filename = LICENSE +exclude_filename = META.json +exclude_filename = META.yml +exclude_filename = README + +[OurPkgVersion] +[WriteVersion] + +[@Git] +changelog = Changes ; this is the default +tag_format = %V ; Don't proceed tags with "v" +tag_message = %V ; this is the default +push_to = origin ; see Git::Push + +[Signature] +[SignReleaseNotes] diff --git a/maint/Makefile_header.PL b/maint/Makefile_header.PL new file mode 100644 index 0000000..2a4179b --- /dev/null +++ b/maint/Makefile_header.PL @@ -0,0 +1,44 @@ +use Config; +use File::Spec; +use Crypt::OpenSSL::Guess qw(openssl_version openssl_inc_paths openssl_lib_paths); + +my %args; + +my ($major, $minor, $patch) = openssl_version(); +print "Installed OpenSSL: $major.$minor.$patch\n"; + +$args{INC} = openssl_inc_paths(); +$args{LIBS} = [openssl_lib_paths() . ' -lssl -lcrypto']; + +my $cc_option_flags; + +if ($Config::Config{cc} =~ /gcc/i) { + $cc_option_flags .= $ENV{AUTHOR_TESTING} ? ' -Wall -Werror' : ' -Wall'; +} else { + $cc_option_flags .= ''; +} + +if ($Config{gccversion} =~ /llvm/i) { + if ( $^O eq 'darwin' && ( + $Config{gccversion} =~ /LLVM 1[2-9].\d.[5-9]/ || + $Config{gccversion} =~ /LLVM 1[3-9]/ )) + { + $cc_option_flags .= ' -Wno-deprecated-declarations -Wno-compound-token-split-by-macro'; + } else { + $cc_option_flags .= ' -Wno-deprecated-declarations'; + } + + if ($Config{gccversion} =~ /llvm 13/i) { + $cc_option_flags .= ' -Wno-compound-token-split-by-macro'; + } + + if ($Config{PERL_VERSION} <= 20) { + $cc_option_flags .= ' -Wno-error=pointer-bool-conversion'; + } +} + +if ($Config{myuname} =~ /sunos|solaris/i) { + $args{OPTIMIZE} = $cc_option_flags; +} else { + $args{OPTIMIZE} = $cc_option_flags; +}