diff options
-rw-r--r-- | MANIFEST | 3 | ||||
-rw-r--r-- | META.yml | 1050 | ||||
-rw-r--r-- | Makefile.SH | 3 | ||||
-rw-r--r-- | Porting/Maintainers | 190 | ||||
-rw-r--r-- | Porting/Maintainers.pl | 2 | ||||
-rw-r--r-- | Porting/Maintainers.pm | 228 | ||||
-rw-r--r-- | Porting/makemeta | 36 |
7 files changed, 1325 insertions, 187 deletions
@@ -2111,6 +2111,7 @@ Makefile.SH A script that generates Makefile malloc.c A version of malloc you might not want malloc_ctl.h A version of malloc you might not want MANIFEST This list of files +META.yml Distribution meta-data in YAML mg.c Magic code mg.h Magic header minimod.pl Writes lib/ExtUtils/Miniperl.pm @@ -2405,7 +2406,9 @@ Porting/fixvars Find undeclared variables with C compiler and fix em Porting/genlog Generate formatted changelogs by querying p4d Porting/Glossary Glossary of config.sh variables Porting/Maintainers Program to pretty print info in Maintainers.pl +Porting/Maintainers.pm Library to pretty print info in Maintainers.pl Porting/Maintainers.pl Information about maintainers +Porting/makemeta Create the top-level META.yml Porting/makerel Release making utility Porting/manicheck Check against MANIFEST Porting/p4d2p Generate patch from p4 diff diff --git a/META.yml b/META.yml new file mode 100644 index 0000000000..8cdc3e4283 --- /dev/null +++ b/META.yml @@ -0,0 +1,1050 @@ +name: perl +version: 5.009 +abstract: Practical Extraction and Reporting Language +author: perl5-porters@perl.org +license: perl +distribution_type: core +private: + directory: + - ext/Data/Dumper + - ext/DB_File + - ext/Devel/PPPort + - ext/Digest/MD5 + - ext/Encode + - ext/Filter/Util/Call + - ext/List/Util + - ext/MIME/Base64 + - ext/PerlIO + - ext/Safe + - ext/Storable + - ext/threads + - ext/Time/HiRes + - ext/Unicode/Normalize + - lib/Attribute/Handlers + - lib/bignum + - lib/CGI + - lib/Class/ISA + - lib/CPAN + - lib/ExtUtils/t + - lib/File/Spec + - lib/File/Temp + - lib/Filter/Simple + - lib/Getopt/Long + - lib/I18N/LangTags + - lib/Locale/Maketext + - lib/Math/BigFloat + - lib/Math/BigInt + - lib/Math/BigRat + - lib/Memoize + - lib/Net/FTP + - lib/Net/Ping + - lib/Net/t + - lib/NEXT + - lib/PerlIO + - lib/Pod/Perldoc + - lib/Switch + - lib/Term/ANSIColor + - lib/Test/Harness + - lib/Test/Simple + - lib/Test/t + - lib/Text/Balanced + - lib/Text/TabsWrap + - lib/Tie/File + - lib/Unicode/Collate + - t/lib/Filter/Simple + - t/lib/MakeMaker + - t/lib/Math + - t/lib/sample-tests + - t/lib/Test/Simple + + file: + - ext/Data/Dumper/Changes + - ext/Data/Dumper/Dumper.pm + - ext/Data/Dumper/Dumper.xs + - ext/Data/Dumper/Makefile.PL + - ext/Data/Dumper/t/dumper.t + - ext/Data/Dumper/t/overload.t + - ext/Data/Dumper/t/pair.t + - ext/Data/Dumper/Todo + - ext/DB_File/Changes + - ext/DB_File/DB_File.pm + - ext/DB_File/DB_File.xs + - ext/DB_File/DB_File_BS + - ext/DB_File/dbinfo + - ext/DB_File/hints/dynixptx.pl + - ext/DB_File/hints/sco.pl + - ext/DB_File/Makefile.PL + - ext/DB_File/t/db-btree.t + - ext/DB_File/t/db-hash.t + - ext/DB_File/t/db-recno.t + - ext/DB_File/typemap + - ext/DB_File/version.c + - ext/Devel/PPPort/Changes + - ext/Devel/PPPort/Makefile.PL + - ext/Devel/PPPort/MANIFEST + - ext/Devel/PPPort/module2.c + - ext/Devel/PPPort/module3.c + - ext/Devel/PPPort/PPPort.pm + - ext/Devel/PPPort/PPPort.xs + - ext/Devel/PPPort/ppport_h.PL + - ext/Devel/PPPort/README + - ext/Devel/PPPort/soak + - ext/Devel/PPPort/t/test.t + - ext/Devel/PPPort/TODO + - ext/Digest/MD5/Changes + - ext/Digest/MD5/hints/dec_osf.pl + - ext/Digest/MD5/hints/irix_6.pl + - ext/Digest/MD5/hints/MacOS.pl + - ext/Digest/MD5/Makefile.PL + - ext/Digest/MD5/MD5.pm + - ext/Digest/MD5/MD5.xs + - ext/Digest/MD5/README + - ext/Digest/MD5/t/align.t + - ext/Digest/MD5/t/badfile.t + - ext/Digest/MD5/t/clone.t + - ext/Digest/MD5/t/files.t + - ext/Digest/MD5/t/md5-aaa.t + - ext/Digest/MD5/t/utf8.t + - ext/Digest/MD5/typemap + - ext/Encode/AUTHORS + - ext/Encode/bin/enc2xs + - ext/Encode/bin/piconv + - ext/Encode/bin/ucm2table + - ext/Encode/bin/ucmlint + - ext/Encode/bin/ucmsort + - ext/Encode/bin/unidump + - ext/Encode/Byte/Byte.pm + - ext/Encode/Byte/Makefile.PL + - ext/Encode/Changes + - ext/Encode/CN/CN.pm + - ext/Encode/CN/Makefile.PL + - ext/Encode/EBCDIC/EBCDIC.pm + - ext/Encode/EBCDIC/Makefile.PL + - ext/Encode/encengine.c + - ext/Encode/Encode.pm + - ext/Encode/Encode.xs + - ext/Encode/Encode/_PM.e2x + - ext/Encode/Encode/_T.e2x + - ext/Encode/Encode/Changes.e2x + - ext/Encode/Encode/ConfigLocal_PM.e2x + - ext/Encode/Encode/encode.h + - ext/Encode/Encode/Makefile_PL.e2x + - ext/Encode/Encode/README.e2x + - ext/Encode/encoding.pm + - ext/Encode/JP/JP.pm + - ext/Encode/JP/Makefile.PL + - ext/Encode/KR/KR.pm + - ext/Encode/KR/Makefile.PL + - ext/Encode/lib/Encode/Alias.pm + - ext/Encode/lib/Encode/CJKConstants.pm + - ext/Encode/lib/Encode/CN/HZ.pm + - ext/Encode/lib/Encode/Config.pm + - ext/Encode/lib/Encode/Encoder.pm + - ext/Encode/lib/Encode/Encoding.pm + - ext/Encode/lib/Encode/Guess.pm + - ext/Encode/lib/Encode/JP/H2Z.pm + - ext/Encode/lib/Encode/JP/JIS7.pm + - ext/Encode/lib/Encode/KR/2022_KR.pm + - ext/Encode/lib/Encode/MIME/Header.pm + - ext/Encode/lib/Encode/PerlIO.pod + - ext/Encode/lib/Encode/Supported.pod + - ext/Encode/lib/Encode/Unicode/UTF7.pm + - ext/Encode/Makefile.PL + - ext/Encode/MANIFEST + - ext/Encode/META.yml + - ext/Encode/README + - ext/Encode/Symbol/Makefile.PL + - ext/Encode/Symbol/Symbol.pm + - ext/Encode/t/Aliases.t + - ext/Encode/t/at-cn.t + - ext/Encode/t/at-tw.t + - ext/Encode/t/big5-eten.enc + - ext/Encode/t/big5-eten.utf + - ext/Encode/t/big5-hkscs.enc + - ext/Encode/t/big5-hkscs.utf + - ext/Encode/t/CJKT.t + - ext/Encode/t/enc_data.t + - ext/Encode/t/enc_eucjp.t + - ext/Encode/t/enc_module.enc + - ext/Encode/t/enc_module.t + - ext/Encode/t/enc_utf8.t + - ext/Encode/t/Encode.t + - ext/Encode/t/Encoder.t + - ext/Encode/t/encoding.t + - ext/Encode/t/fallback.t + - ext/Encode/t/gb2312.enc + - ext/Encode/t/gb2312.utf + - ext/Encode/t/grow.t + - ext/Encode/t/guess.t + - ext/Encode/t/jisx0201.enc + - ext/Encode/t/jisx0201.utf + - ext/Encode/t/jisx0208.enc + - ext/Encode/t/jisx0208.utf + - ext/Encode/t/jisx0212.enc + - ext/Encode/t/jisx0212.utf + - ext/Encode/t/jperl.t + - ext/Encode/t/ksc5601.enc + - ext/Encode/t/ksc5601.utf + - ext/Encode/t/mime-header.t + - ext/Encode/t/Mod_EUCJP.pm + - ext/Encode/t/perlio.t + - ext/Encode/t/rt.pl + - ext/Encode/t/unibench.pl + - ext/Encode/t/Unicode.t + - ext/Encode/TW/Makefile.PL + - ext/Encode/TW/TW.pm + - ext/Encode/ucm/8859-1.ucm + - ext/Encode/ucm/8859-10.ucm + - ext/Encode/ucm/8859-11.ucm + - ext/Encode/ucm/8859-13.ucm + - ext/Encode/ucm/8859-14.ucm + - ext/Encode/ucm/8859-15.ucm + - ext/Encode/ucm/8859-16.ucm + - ext/Encode/ucm/8859-2.ucm + - ext/Encode/ucm/8859-3.ucm + - ext/Encode/ucm/8859-4.ucm + - ext/Encode/ucm/8859-5.ucm + - ext/Encode/ucm/8859-6.ucm + - ext/Encode/ucm/8859-7.ucm + - ext/Encode/ucm/8859-8.ucm + - ext/Encode/ucm/8859-9.ucm + - ext/Encode/ucm/adobeStdenc.ucm + - ext/Encode/ucm/adobeSymbol.ucm + - ext/Encode/ucm/adobeZdingbat.ucm + - ext/Encode/ucm/ascii.ucm + - ext/Encode/ucm/big5-eten.ucm + - ext/Encode/ucm/big5-hkscs.ucm + - ext/Encode/ucm/cp037.ucm + - ext/Encode/ucm/cp1006.ucm + - ext/Encode/ucm/cp1026.ucm + - ext/Encode/ucm/cp1047.ucm + - ext/Encode/ucm/cp1250.ucm + - ext/Encode/ucm/cp1251.ucm + - ext/Encode/ucm/cp1252.ucm + - ext/Encode/ucm/cp1253.ucm + - ext/Encode/ucm/cp1254.ucm + - ext/Encode/ucm/cp1255.ucm + - ext/Encode/ucm/cp1256.ucm + - ext/Encode/ucm/cp1257.ucm + - ext/Encode/ucm/cp1258.ucm + - ext/Encode/ucm/cp424.ucm + - ext/Encode/ucm/cp437.ucm + - ext/Encode/ucm/cp500.ucm + - ext/Encode/ucm/cp737.ucm + - ext/Encode/ucm/cp775.ucm + - ext/Encode/ucm/cp850.ucm + - ext/Encode/ucm/cp852.ucm + - ext/Encode/ucm/cp855.ucm + - ext/Encode/ucm/cp856.ucm + - ext/Encode/ucm/cp857.ucm + - ext/Encode/ucm/cp860.ucm + - ext/Encode/ucm/cp861.ucm + - ext/Encode/ucm/cp862.ucm + - ext/Encode/ucm/cp863.ucm + - ext/Encode/ucm/cp864.ucm + - ext/Encode/ucm/cp865.ucm + - ext/Encode/ucm/cp866.ucm + - ext/Encode/ucm/cp869.ucm + - ext/Encode/ucm/cp874.ucm + - ext/Encode/ucm/cp875.ucm + - ext/Encode/ucm/cp932.ucm + - ext/Encode/ucm/cp936.ucm + - ext/Encode/ucm/cp949.ucm + - ext/Encode/ucm/cp950.ucm + - ext/Encode/ucm/ctrl.ucm + - ext/Encode/ucm/dingbats.ucm + - ext/Encode/ucm/euc-cn.ucm + - ext/Encode/ucm/euc-jp.ucm + - ext/Encode/ucm/euc-kr.ucm + - ext/Encode/ucm/gb12345.ucm + - ext/Encode/ucm/gb2312.ucm + - ext/Encode/ucm/gsm0338.ucm + - ext/Encode/ucm/hp-roman8.ucm + - ext/Encode/ucm/ir-165.ucm + - ext/Encode/ucm/jis0201.ucm + - ext/Encode/ucm/jis0208.ucm + - ext/Encode/ucm/jis0212.ucm + - ext/Encode/ucm/johab.ucm + - ext/Encode/ucm/koi8-f.ucm + - ext/Encode/ucm/koi8-r.ucm + - ext/Encode/ucm/koi8-u.ucm + - ext/Encode/ucm/ksc5601.ucm + - ext/Encode/ucm/macArabic.ucm + - ext/Encode/ucm/macCentEuro.ucm + - ext/Encode/ucm/macChinsimp.ucm + - ext/Encode/ucm/macChintrad.ucm + - ext/Encode/ucm/macCroatian.ucm + - ext/Encode/ucm/macCyrillic.ucm + - ext/Encode/ucm/macDingbats.ucm + - ext/Encode/ucm/macFarsi.ucm + - ext/Encode/ucm/macGreek.ucm + - ext/Encode/ucm/macHebrew.ucm + - ext/Encode/ucm/macIceland.ucm + - ext/Encode/ucm/macJapanese.ucm + - ext/Encode/ucm/macKorean.ucm + - ext/Encode/ucm/macRoman.ucm + - ext/Encode/ucm/macROMnn.ucm + - ext/Encode/ucm/macRUMnn.ucm + - ext/Encode/ucm/macSami.ucm + - ext/Encode/ucm/macSymbol.ucm + - ext/Encode/ucm/macThai.ucm + - ext/Encode/ucm/macTurkish.ucm + - ext/Encode/ucm/macUkraine.ucm + - ext/Encode/ucm/nextstep.ucm + - ext/Encode/ucm/null.ucm + - ext/Encode/ucm/posix-bc.ucm + - ext/Encode/ucm/shiftjis.ucm + - ext/Encode/ucm/symbol.ucm + - ext/Encode/ucm/viscii.ucm + - ext/Encode/Unicode/Makefile.PL + - ext/Encode/Unicode/Unicode.pm + - ext/Encode/Unicode/Unicode.xs + - ext/Filter/t/call.t + - ext/Filter/Util/Call/Call.pm + - ext/Filter/Util/Call/Call.xs + - ext/Filter/Util/Call/Makefile.PL + - ext/List/Util/ChangeLog + - ext/List/Util/lib/List/Util.pm + - ext/List/Util/lib/Scalar/Util.pm + - ext/List/Util/Makefile.PL + - ext/List/Util/README + - ext/List/Util/t/blessed.t + - ext/List/Util/t/dualvar.t + - ext/List/Util/t/first.t + - ext/List/Util/t/isvstring.t + - ext/List/Util/t/lln.t + - ext/List/Util/t/max.t + - ext/List/Util/t/maxstr.t + - ext/List/Util/t/min.t + - ext/List/Util/t/minstr.t + - ext/List/Util/t/openhan.t + - ext/List/Util/t/proto.t + - ext/List/Util/t/readonly.t + - ext/List/Util/t/reduce.t + - ext/List/Util/t/refaddr.t + - ext/List/Util/t/reftype.t + - ext/List/Util/t/shuffle.t + - ext/List/Util/t/sum.t + - ext/List/Util/t/tainted.t + - ext/List/Util/t/weak.t + - ext/List/Util/Util.xs + - ext/MIME/Base64/Base64.pm + - ext/MIME/Base64/Base64.xs + - ext/MIME/Base64/Changes + - ext/MIME/Base64/Makefile.PL + - ext/MIME/Base64/QuotedPrint.pm + - ext/MIME/Base64/t/base64.t + - ext/MIME/Base64/t/quoted-print.t + - ext/MIME/Base64/t/unicode.t + - ext/PerlIO/encoding/encoding.pm + - ext/PerlIO/encoding/encoding.xs + - ext/PerlIO/encoding/Makefile.PL + - ext/PerlIO/encoding/MANIFEST + - ext/PerlIO/scalar/Makefile.PL + - ext/PerlIO/scalar/scalar.pm + - ext/PerlIO/scalar/scalar.xs + - ext/PerlIO/t/encoding.t + - ext/PerlIO/t/fail.t + - ext/PerlIO/t/fallback.t + - ext/PerlIO/t/open.t + - ext/PerlIO/t/PerlIO.t + - ext/PerlIO/t/scalar.t + - ext/PerlIO/t/via.t + - ext/PerlIO/via/Makefile.PL + - ext/PerlIO/via/via.pm + - ext/PerlIO/via/via.xs + - ext/Safe/t/safe1.t + - ext/Safe/t/safe2.t + - ext/Safe/t/safe3.t + - ext/Storable/ChangeLog + - ext/Storable/Makefile.PL + - ext/Storable/MANIFEST + - ext/Storable/README + - ext/Storable/Storable.pm + - ext/Storable/Storable.xs + - ext/Storable/t/blessed.t + - ext/Storable/t/canonical.t + - ext/Storable/t/code.t + - ext/Storable/t/compat06.t + - ext/Storable/t/croak.t + - ext/Storable/t/dclone.t + - ext/Storable/t/downgrade.t + - ext/Storable/t/forgive.t + - ext/Storable/t/freeze.t + - ext/Storable/t/integer.t + - ext/Storable/t/interwork56.t + - ext/Storable/t/lock.t + - ext/Storable/t/make_56_interwork.pl + - ext/Storable/t/make_downgrade.pl + - ext/Storable/t/malice.t + - ext/Storable/t/overload.t + - ext/Storable/t/recurse.t + - ext/Storable/t/restrict.t + - ext/Storable/t/retrieve.t + - ext/Storable/t/st-dump.pl + - ext/Storable/t/store.t + - ext/Storable/t/tied.t + - ext/Storable/t/tied_hook.t + - ext/Storable/t/tied_items.t + - ext/Storable/t/utf8.t + - ext/Storable/t/utf8hash.t + - ext/threads/Changes + - ext/threads/Makefile.PL + - ext/threads/README + - ext/threads/shared/Makefile.PL + - ext/threads/shared/README + - ext/threads/shared/shared.pm + - ext/threads/shared/shared.xs + - ext/threads/shared/t/0nothread.t + - ext/threads/shared/t/av_refs.t + - ext/threads/shared/t/av_simple.t + - ext/threads/shared/t/cond.t + - ext/threads/shared/t/disabled.t + - ext/threads/shared/t/hv_refs.t + - ext/threads/shared/t/hv_simple.t + - ext/threads/shared/t/no_share.t + - ext/threads/shared/t/shared_attr.t + - ext/threads/shared/t/sv_refs.t + - ext/threads/shared/t/sv_simple.t + - ext/threads/shared/typemap + - ext/threads/t/basic.t + - ext/threads/t/end.t + - ext/threads/t/join.t + - ext/threads/t/libc.t + - ext/threads/t/list.t + - ext/threads/t/problems.t + - ext/threads/t/stress_cv.t + - ext/threads/t/stress_re.t + - ext/threads/t/stress_string.t + - ext/threads/t/thread.t + - ext/threads/threads.pm + - ext/threads/threads.xs + - ext/threads/typemap + - ext/Time/HiRes/Changes + - ext/Time/HiRes/fallback/const-c.inc + - ext/Time/HiRes/fallback/const-xs.inc + - ext/Time/HiRes/hints/dec_osf.pl + - ext/Time/HiRes/hints/dynixptx.pl + - ext/Time/HiRes/hints/irix.pl + - ext/Time/HiRes/hints/sco.pl + - ext/Time/HiRes/HiRes.pm + - ext/Time/HiRes/HiRes.xs + - ext/Time/HiRes/Makefile.PL + - ext/Time/HiRes/t/HiRes.t + - ext/Time/HiRes/typemap + - ext/Unicode/Normalize/Changes + - ext/Unicode/Normalize/Makefile.PL + - ext/Unicode/Normalize/mkheader + - ext/Unicode/Normalize/Normalize.pm + - ext/Unicode/Normalize/Normalize.xs + - ext/Unicode/Normalize/README + - ext/Unicode/Normalize/t/func.t + - ext/Unicode/Normalize/t/norm.t + - ext/Unicode/Normalize/t/test.t + - lib/Attribute/Handlers.pm + - lib/Attribute/Handlers/Changes + - lib/Attribute/Handlers/demo/demo.pl + - lib/Attribute/Handlers/demo/Demo.pm + - lib/Attribute/Handlers/demo/demo2.pl + - lib/Attribute/Handlers/demo/demo3.pl + - lib/Attribute/Handlers/demo/demo4.pl + - lib/Attribute/Handlers/demo/demo_call.pl + - lib/Attribute/Handlers/demo/demo_chain.pl + - lib/Attribute/Handlers/demo/demo_cycle.pl + - lib/Attribute/Handlers/demo/demo_hashdir.pl + - lib/Attribute/Handlers/demo/demo_phases.pl + - lib/Attribute/Handlers/demo/demo_range.pl + - lib/Attribute/Handlers/demo/demo_rawdata.pl + - lib/Attribute/Handlers/demo/Descriptions.pm + - lib/Attribute/Handlers/demo/MyClass.pm + - lib/Attribute/Handlers/README + - lib/Attribute/Handlers/t/multi.t + - lib/bigint.pm + - lib/bignum.pm + - lib/bignum/t/bigint.t + - lib/bignum/t/bignum.t + - lib/bignum/t/bigrat.t + - lib/bignum/t/biinfnan.t + - lib/bignum/t/bn_lite.t + - lib/bignum/t/bninfnan.t + - lib/bignum/t/br_lite.t + - lib/bignum/t/brinfnan.t + - lib/bignum/t/infnan.inc + - lib/bignum/t/option_a.t + - lib/bignum/t/option_l.t + - lib/bignum/t/option_p.t + - lib/bigrat.pm + - lib/CGI.pm + - lib/CGI/Apache.pm + - lib/CGI/Carp.pm + - lib/CGI/Cookie.pm + - lib/CGI/eg/caution.xbm + - lib/CGI/eg/clickable_image.cgi + - lib/CGI/eg/cookie.cgi + - lib/CGI/eg/crash.cgi + - lib/CGI/eg/customize.cgi + - lib/CGI/eg/diff_upload.cgi + - lib/CGI/eg/dna_small_gif.uu + - lib/CGI/eg/file_upload.cgi + - lib/CGI/eg/frameset.cgi + - lib/CGI/eg/index.html + - lib/CGI/eg/internal_links.cgi + - lib/CGI/eg/javascript.cgi + - lib/CGI/eg/make_links.pl + - lib/CGI/eg/monty.cgi + - lib/CGI/eg/multiple_forms.cgi + - lib/CGI/eg/nph-clock.cgi + - lib/CGI/eg/nph-multipart.cgi + - lib/CGI/eg/popup.cgi + - lib/CGI/eg/RunMeFirst + - lib/CGI/eg/save_state.cgi + - lib/CGI/eg/tryit.cgi + - lib/CGI/eg/wilogo_gif.uu + - lib/CGI/Fast.pm + - lib/CGI/Pretty.pm + - lib/CGI/Push.pm + - lib/CGI/Switch.pm + - lib/CGI/t/apache.t + - lib/CGI/t/carp.t + - lib/CGI/t/cookie.t + - lib/CGI/t/fast.t + - lib/CGI/t/form.t + - lib/CGI/t/function.t + - lib/CGI/t/html.t + - lib/CGI/t/pretty.t + - lib/CGI/t/push.t + - lib/CGI/t/request.t + - lib/CGI/t/switch.t + - lib/CGI/t/util-58.t + - lib/CGI/t/util.t + - lib/CGI/Util.pm + - lib/Class/ISA.pm + - lib/Class/ISA/test.pl + - lib/CPAN.pm + - lib/CPAN/bin/cpan + - lib/CPAN/FirstTime.pm + - lib/CPAN/META.yml + - lib/CPAN/Nox.pm + - lib/CPAN/PAUSE2003.pub + - lib/CPAN/SIGNATURE + - lib/CPAN/t/loadme.t + - lib/CPAN/t/mirroredby.t + - lib/CPAN/t/Nox.t + - lib/CPAN/t/signature.t + - lib/CPAN/t/vcmp.t + - lib/Digest.pm + - lib/Digest.t + - lib/ExtUtils/Command + - lib/ExtUtils/Command.pm + - lib/ExtUtils/Install.pm + - lib/ExtUtils/Installed.pm + - lib/ExtUtils/Liblist + - lib/ExtUtils/Liblist.pm + - lib/ExtUtils/MakeMaker + - lib/ExtUtils/MakeMaker.pm + - lib/ExtUtils/Manifest.pm + - lib/ExtUtils/Mkbootstrap.pm + - lib/ExtUtils/Mksymlists.pm + - lib/ExtUtils/MM.pm + - lib/ExtUtils/MM_Any.pm + - lib/ExtUtils/MM_BeOS.pm + - lib/ExtUtils/MM_Cygwin.pm + - lib/ExtUtils/MM_DOS.pm + - lib/ExtUtils/MM_MacOS.pm + - lib/ExtUtils/MM_NW5.pm + - lib/ExtUtils/MM_OS2.pm + - lib/ExtUtils/MM_Unix.pm + - lib/ExtUtils/MM_UWIN.pm + - lib/ExtUtils/MM_VMS.pm + - lib/ExtUtils/MM_Win32.pm + - lib/ExtUtils/MM_Win95.pm + - lib/ExtUtils/MY.pm + - lib/ExtUtils/Packlist.pm + - lib/ExtUtils/t/00compile.t + - lib/ExtUtils/t/00setup_dummy.t + - lib/ExtUtils/t/backwards.t + - lib/ExtUtils/t/basic.t + - lib/ExtUtils/t/bytes.t + - lib/ExtUtils/t/Command.t + - lib/ExtUtils/t/Constant.t + - lib/ExtUtils/t/Embed.t + - lib/ExtUtils/t/hints.t + - lib/ExtUtils/t/INST.t + - lib/ExtUtils/t/INST_PREFIX.t + - lib/ExtUtils/t/Install.t + - lib/ExtUtils/t/Installed.t + - lib/ExtUtils/t/Liblist.t + - lib/ExtUtils/t/Manifest.t + - lib/ExtUtils/t/Mkbootstrap.t + - lib/ExtUtils/t/MM_Any.t + - lib/ExtUtils/t/MM_BeOS.t + - lib/ExtUtils/t/MM_Cygwin.t + - lib/ExtUtils/t/MM_NW5.t + - lib/ExtUtils/t/MM_OS2.t + - lib/ExtUtils/t/MM_Unix.t + - lib/ExtUtils/t/MM_VMS.t + - lib/ExtUtils/t/MM_Win32.t + - lib/ExtUtils/t/oneliner.t + - lib/ExtUtils/t/Packlist.t + - lib/ExtUtils/t/postamble.t + - lib/ExtUtils/t/prefixify.t + - lib/ExtUtils/t/problems.t + - lib/ExtUtils/t/prompt.t + - lib/ExtUtils/t/recurs.t + - lib/ExtUtils/t/split_command.t + - lib/ExtUtils/t/testlib.t + - lib/ExtUtils/t/VERSION_FROM.t + - lib/ExtUtils/t/vmsish.t + - lib/ExtUtils/t/writemakefile_args.t + - lib/ExtUtils/t/zz_cleanup_dummy.t + - lib/ExtUtils/testlib.pm + - lib/File/Spec.pm + - lib/File/Spec/Cygwin.pm + - lib/File/Spec/Epoc.pm + - lib/File/Spec/Functions.pm + - lib/File/Spec/Mac.pm + - lib/File/Spec/OS2.pm + - lib/File/Spec/t/Functions.t + - lib/File/Spec/t/rel2abs2rel.t + - lib/File/Spec/t/Spec.t + - lib/File/Spec/Unix.pm + - lib/File/Spec/VMS.pm + - lib/File/Spec/Win32.pm + - lib/File/Temp.pm + - lib/File/Temp/t/mktemp.t + - lib/File/Temp/t/posix.t + - lib/File/Temp/t/security.t + - lib/File/Temp/t/tempfile.t + - lib/Filter/Simple.pm + - lib/Filter/Simple/Changes + - lib/Filter/Simple/README + - lib/Filter/Simple/t/data.t + - lib/Filter/Simple/t/export.t + - lib/Filter/Simple/t/filter.t + - lib/Filter/Simple/t/filter_only.t + - lib/Filter/Simple/t/import.t + - lib/Getopt/Long.pm + - lib/Getopt/Long/CHANGES + - lib/Getopt/Long/README + - lib/Getopt/Long/t/gol-basic.t + - lib/Getopt/Long/t/gol-compat.t + - lib/Getopt/Long/t/gol-linkage.t + - lib/Getopt/Long/t/gol-oo.t + - lib/I18N/LangTags.pm + - lib/I18N/LangTags/ChangeLog + - lib/I18N/LangTags/List.pm + - lib/I18N/LangTags/README + - lib/I18N/LangTags/t/01test.t + - lib/if.pm + - lib/if.t + - lib/Locale/Codes + - lib/Locale/Constants.pm + - lib/Locale/Constants.pod + - lib/Locale/Country.pm + - lib/Locale/Country.pod + - lib/Locale/Currency.pm + - lib/Locale/Currency.pod + - lib/Locale/Language.pm + - lib/Locale/Language.pod + - lib/Locale/Maketext.pm + - lib/Locale/Maketext/ChangeLog + - lib/Locale/Maketext/Guts.pm + - lib/Locale/Maketext/GutsLoader.pm + - lib/Locale/Maketext/README + - lib/Locale/Maketext/t/00about.t + - lib/Locale/Maketext/t/01make.t + - lib/Locale/Maketext/t/02get.t + - lib/Locale/Maketext/t/03http.t + - lib/Locale/Maketext/t/90utf8.t + - lib/Locale/Maketext/TPJ13.pod + - lib/Locale/Script.pm + - lib/Locale/Script.pod + - lib/Math/BigFloat.pm + - lib/Math/BigFloat/Trace.pm + - lib/Math/BigInt.pm + - lib/Math/BigInt/Calc.pm + - lib/Math/BigInt/Scalar.pm + - lib/Math/BigInt/t/bare_mbf.t + - lib/Math/BigInt/t/bare_mbi.t + - lib/Math/BigInt/t/bare_mif.t + - lib/Math/BigInt/t/bigfltpm.inc + - lib/Math/BigInt/t/bigfltpm.t + - lib/Math/BigInt/t/bigintc.t + - lib/Math/BigInt/t/bigintpm.inc + - lib/Math/BigInt/t/bigintpm.t + - lib/Math/BigInt/t/bigints.t + - lib/Math/BigInt/t/biglog.t + - lib/Math/BigInt/t/calling.t + - lib/Math/BigInt/t/config.t + - lib/Math/BigInt/t/constant.t + - lib/Math/BigInt/t/downgrade.t + - lib/Math/BigInt/t/inf_nan.t + - lib/Math/BigInt/t/isa.t + - lib/Math/BigInt/t/mbi_rand.t + - lib/Math/BigInt/t/mbimbf.inc + - lib/Math/BigInt/t/mbimbf.t + - lib/Math/BigInt/t/req_mbf0.t + - lib/Math/BigInt/t/req_mbf1.t + - lib/Math/BigInt/t/req_mbfa.t + - lib/Math/BigInt/t/req_mbfi.t + - lib/Math/BigInt/t/req_mbfn.t + - lib/Math/BigInt/t/req_mbfw.t + - lib/Math/BigInt/t/require.t + - lib/Math/BigInt/t/sub_mbf.t + - lib/Math/BigInt/t/sub_mbi.t + - lib/Math/BigInt/t/sub_mif.t + - lib/Math/BigInt/t/trap.t + - lib/Math/BigInt/t/upgrade.inc + - lib/Math/BigInt/t/upgrade.t + - lib/Math/BigInt/t/upgradef.t + - lib/Math/BigInt/t/use.t + - lib/Math/BigInt/t/use_lib1.t + - lib/Math/BigInt/t/use_lib2.t + - lib/Math/BigInt/t/use_lib3.t + - lib/Math/BigInt/t/use_lib4.t + - lib/Math/BigInt/t/use_mbfw.t + - lib/Math/BigInt/t/with_sub.t + - lib/Math/BigInt/Trace.pm + - lib/Math/BigRat.pm + - lib/Math/BigRat/t/big_ap.t + - lib/Math/BigRat/t/bigfltpm.inc + - lib/Math/BigRat/t/bigfltrt.t + - lib/Math/BigRat/t/bigrat.t + - lib/Math/BigRat/t/bigratpm.inc + - lib/Math/BigRat/t/bigratpm.t + - lib/Math/BigRat/t/bigratup.t + - lib/Math/BigRat/t/requirer.t + - lib/Math/BigRat/t/trap.t + - lib/Memoize.pm + - lib/Memoize/AnyDBM_File.pm + - lib/Memoize/Expire.pm + - lib/Memoize/ExpireFile.pm + - lib/Memoize/ExpireTest.pm + - lib/Memoize/NDBM_File.pm + - lib/Memoize/README + - lib/Memoize/SDBM_File.pm + - lib/Memoize/Storable.pm + - lib/Memoize/t/array.t + - lib/Memoize/t/array_confusion.t + - lib/Memoize/t/correctness.t + - lib/Memoize/t/errors.t + - lib/Memoize/t/expfile.t + - lib/Memoize/t/expire.t + - lib/Memoize/t/expmod_n.t + - lib/Memoize/t/expmod_t.t + - lib/Memoize/t/flush.t + - lib/Memoize/t/normalize.t + - lib/Memoize/t/prototype.t + - lib/Memoize/t/speed.t + - lib/Memoize/t/tie.t + - lib/Memoize/t/tie_gdbm.t + - lib/Memoize/t/tie_ndbm.t + - lib/Memoize/t/tie_sdbm.t + - lib/Memoize/t/tie_storable.t + - lib/Memoize/t/tiefeatures.t + - lib/Memoize/t/unmemoize.t + - lib/Memoize/TODO + - lib/Net/ChangeLog.libnet + - lib/Net/Cmd.pm + - lib/Net/Config.eg + - lib/Net/Config.pm + - lib/Net/Domain.pm + - lib/Net/FTP.pm + - lib/Net/FTP/A.pm + - lib/Net/FTP/dataconn.pm + - lib/Net/FTP/E.pm + - lib/Net/FTP/I.pm + - lib/Net/FTP/L.pm + - lib/Net/Hostname.eg + - lib/Net/libnetFAQ.pod + - lib/Net/Netrc.pm + - lib/Net/NNTP.pm + - lib/Net/Ping.pm + - lib/Net/Ping/Changes + - lib/Net/Ping/t/100_load.t + - lib/Net/Ping/t/110_icmp_inst.t + - lib/Net/Ping/t/120_udp_inst.t + - lib/Net/Ping/t/130_tcp_inst.t + - lib/Net/Ping/t/140_stream_inst.t + - lib/Net/Ping/t/150_syn_inst.t + - lib/Net/Ping/t/190_alarm.t + - lib/Net/Ping/t/200_ping_tcp.t + - lib/Net/Ping/t/250_ping_hires.t + - lib/Net/Ping/t/300_ping_stream.t + - lib/Net/Ping/t/400_ping_syn.t + - lib/Net/Ping/t/410_syn_host.t + - lib/Net/Ping/t/450_service.t + - lib/Net/Ping/t/500_ping_icmp.t + - lib/Net/Ping/t/510_ping_udp.t + - lib/Net/POP3.pm + - lib/Net/README.libnet + - lib/Net/SMTP.pm + - lib/Net/t/config.t + - lib/Net/t/ftp.t + - lib/Net/t/hostname.t + - lib/Net/t/libnet_t.pl + - lib/Net/t/netrc.t + - lib/Net/t/nntp.t + - lib/Net/t/require.t + - lib/Net/t/smtp.t + - lib/Net/t/time.t + - lib/Net/Time.pm + - lib/NEXT.pm + - lib/NEXT/Changes + - lib/NEXT/README + - lib/NEXT/t/actual.t + - lib/NEXT/t/actuns.t + - lib/NEXT/t/next.t + - lib/NEXT/t/unseen.t + - lib/PerlIO/via/QuotedPrint.pm + - lib/PerlIO/via/t/QuotedPrint.t + - lib/Pod/Checker.pm + - lib/Pod/Find.pm + - lib/Pod/Find.pm + - lib/Pod/Html.pm + - lib/Pod/InputObjects.pm + - lib/Pod/LaTeX.pm + - lib/Pod/Man.pm + - lib/Pod/ParseLink.pm + - lib/Pod/Parser.pm + - lib/Pod/ParseUtils.pm + - lib/Pod/Perldoc.pm + - lib/Pod/Perldoc/BaseTo.pm + - lib/Pod/Perldoc/GetOptsOO.pm + - lib/Pod/Perldoc/t/checkerbasic.t + - lib/Pod/Perldoc/t/perldocbasic.t + - lib/Pod/Perldoc/t/textbasic.t + - lib/Pod/Perldoc/ToChecker.pm + - lib/Pod/Perldoc/ToMan.pm + - lib/Pod/Perldoc/ToNroff.pm + - lib/Pod/Perldoc/ToPod.pm + - lib/Pod/Perldoc/ToRtf.pm + - lib/Pod/Perldoc/ToText.pm + - lib/Pod/Perldoc/ToTk.pm + - lib/Pod/Perldoc/ToXml.pm + - lib/Pod/Plainer.pm + - lib/Pod/PlainText.pm + - lib/Pod/Select.pm + - lib/Pod/t/basic.cap + - lib/Pod/t/basic.clr + - lib/Pod/t/basic.man + - lib/Pod/t/basic.ovr + - lib/Pod/t/basic.pod + - lib/Pod/t/basic.t + - lib/Pod/t/basic.t + - lib/Pod/t/basic.txt + - lib/Pod/t/InputObjects.t + - lib/Pod/t/man.t + - lib/Pod/t/parselink.t + - lib/Pod/t/pod2latex.t + - lib/Pod/t/Select.t + - lib/Pod/t/text-errors.t + - lib/Pod/t/text-options.t + - lib/Pod/t/text.t + - lib/Pod/t/Usage.t + - lib/Pod/t/utils.t + - lib/Pod/Text.pm + - lib/Pod/Text/Color.pm + - lib/Pod/Text/Overstrike.pm + - lib/Pod/Text/Termcap.pm + - lib/Pod/Usage.pm + - lib/Switch.pm + - lib/Switch/Changes + - lib/Switch/README + - lib/Switch/t/given.t + - lib/Switch/t/nested.t + - lib/Switch/t/switch.t + - lib/Term/ANSIColor.pm + - lib/Term/ANSIColor/ChangeLog + - lib/Term/ANSIColor/README + - lib/Term/ANSIColor/test.pl + - lib/Term/Cap.pm + - lib/Term/Cap.t + - lib/Test.pm + - lib/Test/Builder.pm + - lib/Test/Harness.pm + - lib/Test/Harness/Assert.pm + - lib/Test/Harness/Changes + - lib/Test/Harness/Iterator.pm + - lib/Test/Harness/Straps.pm + - lib/Test/Harness/t/00compile.t + - lib/Test/Harness/t/assert.t + - lib/Test/Harness/t/base.t + - lib/Test/Harness/t/callback.t + - lib/Test/Harness/t/nonumbers.t + - lib/Test/Harness/t/ok.t + - lib/Test/Harness/t/pod.t + - lib/Test/Harness/t/strap-analyze.t + - lib/Test/Harness/t/strap.t + - lib/Test/Harness/t/test-harness.t + - lib/Test/More.pm + - lib/Test/Simple.pm + - lib/Test/Simple/Changes + - lib/Test/Simple/README + - lib/Test/Simple/t/bad_plan.t + - lib/Test/Simple/t/buffer.t + - lib/Test/Simple/t/Builder.t + - lib/Test/Simple/t/curr_test.t + - lib/Test/Simple/t/details.t + - lib/Test/Simple/t/diag.t + - lib/Test/Simple/t/exit.t + - lib/Test/Simple/t/extra.t + - lib/Test/Simple/t/fail-like.t + - lib/Test/Simple/t/fail-more.t + - lib/Test/Simple/t/fail.t + - lib/Test/Simple/t/filehandles.t + - lib/Test/Simple/t/fork.t + - lib/Test/Simple/t/has_plan.t + - lib/Test/Simple/t/has_plan2.t + - lib/Test/Simple/t/import.t + - lib/Test/Simple/t/is_deeply.t + - lib/Test/Simple/t/maybe_regex.t + - lib/Test/Simple/t/missing.t + - lib/Test/Simple/t/More.t + - lib/Test/Simple/t/no_ending.t + - lib/Test/Simple/t/no_header.t + - lib/Test/Simple/t/no_plan.t + - lib/Test/Simple/t/ok_obj.t + - lib/Test/Simple/t/output.t + - lib/Test/Simple/t/plan.t + - lib/Test/Simple/t/plan_is_noplan.t + - lib/Test/Simple/t/plan_no_plan.t + - lib/Test/Simple/t/plan_skip_all.t + - lib/Test/Simple/t/simple.t + - lib/Test/Simple/t/skip.t + - lib/Test/Simple/t/skipall.t + - lib/Test/Simple/t/strays.t + - lib/Test/Simple/t/threads.t + - lib/Test/Simple/t/todo.t + - lib/Test/Simple/t/undef.t + - lib/Test/Simple/t/use_ok.t + - lib/Test/Simple/t/useing.t + - lib/Test/t/fail.t + - lib/Test/t/mix.t + - lib/Test/t/onfail.t + - lib/Test/t/qr.t + - lib/Test/t/skip.t + - lib/Test/t/success.t + - lib/Test/t/todo.t + - lib/Text/Balanced.pm + - lib/Text/Balanced/Changes + - lib/Text/Balanced/README + - lib/Text/Balanced/t/extbrk.t + - lib/Text/Balanced/t/extcbk.t + - lib/Text/Balanced/t/extdel.t + - lib/Text/Balanced/t/extmul.t + - lib/Text/Balanced/t/extqlk.t + - lib/Text/Balanced/t/exttag.t + - lib/Text/Balanced/t/extvar.t + - lib/Text/Balanced/t/gentag.t + - lib/Text/Tabs.pm + - lib/Text/TabsWrap/CHANGELOG + - lib/Text/TabsWrap/t/fill.t + - lib/Text/TabsWrap/t/tabs.t + - lib/Text/TabsWrap/t/wrap.t + - lib/Text/Wrap.pm + - lib/Tie/File.pm + - lib/Tie/File/t/00_version.t + - lib/Tie/File/t/01_gen.t + - lib/Tie/File/t/02_fetchsize.t + - lib/Tie/File/t/03_longfetch.t + - lib/Tie/File/t/04_splice.t + - lib/Tie/File/t/05_size.t + - lib/Tie/File/t/06_fixrec.t + - lib/Tie/File/t/07_rv_splice.t + - lib/Tie/File/t/08_ro.t + - lib/Tie/File/t/09_gen_rs.t + - lib/Tie/File/t/10_splice_rs.t + - lib/Tie/File/t/11_rv_splice_rs.t + - lib/Tie/File/t/12_longfetch_rs.t + - lib/Tie/File/t/13_size_rs.t + - lib/Tie/File/t/14_lock.t + - lib/Tie/File/t/15_pushpop.t + - lib/Tie/File/t/16_handle.t + - lib/Tie/File/t/17_misc_meth.t + - lib/Tie/File/t/18_rs_fixrec.t + - lib/Tie/File/t/19_cache.t + - lib/Tie/File/t/20_cache_full.t + - lib/Tie/File/t/21_win32.t + - lib/Tie/File/t/22_autochomp.t + - lib/Tie/File/t/23_rv_ac_splice.t + - lib/Tie/File/t/24_cache_loop.t + - lib/Tie/File/t/25_gen_nocache.t + - lib/Tie/File/t/26_twrite.t + - lib/Tie/File/t/27_iwrite.t + - lib/Tie/File/t/28_mtwrite.t + - lib/Tie/File/t/29_downcopy.t + - lib/Tie/File/t/29a_upcopy.t + - lib/Tie/File/t/30_defer.t + - lib/Tie/File/t/31_autodefer.t + - lib/Tie/File/t/32_defer_misc.t + - lib/Tie/File/t/33_defer_vs.t + - lib/Tie/File/t/40_abs_cache.t + - lib/Tie/File/t/41_heap.t + - lib/Tie/File/t/42_offset.t + - lib/Time/Local.pm + - lib/Time/Local.t + - lib/Unicode/Collate.pm + - lib/Unicode/Collate/Changes + - lib/Unicode/Collate/keys.txt + - lib/Unicode/Collate/README + - lib/Unicode/Collate/t/index.t + - lib/Unicode/Collate/t/test.t + - pod/pod2man.PL + - pod/pod2text.PL + - t/lib/filter-util.pl + - t/lib/Filter/Simple/ExportTest.pm + - t/lib/Filter/Simple/FilterOnlyTest.pm + - t/lib/Filter/Simple/FilterTest.pm + - t/lib/Filter/Simple/ImportTest.pm + - t/lib/MakeMaker/Test/Setup/Recurs.pm + - t/lib/MakeMaker/Test/Utils.pm + - t/lib/Math/BigFloat/Subclass.pm + - t/lib/Math/BigInt/BareCalc.pm + - t/lib/Math/BigInt/Subclass.pm + - t/lib/Math/BigRat/Test.pm + - t/lib/sample-tests/bailout + - t/lib/sample-tests/bignum + - t/lib/sample-tests/combined + - t/lib/sample-tests/descriptive + - t/lib/sample-tests/die + - t/lib/sample-tests/die_head_end + - t/lib/sample-tests/die_last_minute + - t/lib/sample-tests/duplicates + - t/lib/sample-tests/head_end + - t/lib/sample-tests/head_fail + - t/lib/sample-tests/lone_not_bug + - t/lib/sample-tests/no_nums + - t/lib/sample-tests/no_output + - t/lib/sample-tests/out_of_order + - t/lib/sample-tests/segfault + - t/lib/sample-tests/shbang_misparse + - t/lib/sample-tests/simple + - t/lib/sample-tests/simple_fail + - t/lib/sample-tests/skip + - t/lib/sample-tests/skip_nomsg + - t/lib/sample-tests/skipall + - t/lib/sample-tests/skipall_nomsg + - t/lib/sample-tests/switches + - t/lib/sample-tests/taint + - t/lib/sample-tests/todo + - t/lib/sample-tests/todo_inline + - t/lib/sample-tests/too_many + - t/lib/sample-tests/vms_nit + - t/lib/sample-tests/with_comments + - t/lib/Test/Simple/Catch.pm + - t/lib/Test/Simple/sample_tests/death.plx + - t/lib/Test/Simple/sample_tests/death_in_eval.plx + - t/lib/Test/Simple/sample_tests/extras.plx + - t/lib/Test/Simple/sample_tests/five_fail.plx + - t/lib/Test/Simple/sample_tests/last_minute_death.plx + - t/lib/Test/Simple/sample_tests/one_fail.plx + - t/lib/Test/Simple/sample_tests/pre_plan_death.plx + - t/lib/Test/Simple/sample_tests/require.plx + - t/lib/Test/Simple/sample_tests/success.plx + - t/lib/Test/Simple/sample_tests/too_few.plx + - t/lib/Test/Simple/sample_tests/two_fail.plx + - t/lib/TieIn.pm + - t/lib/TieOut.pm + - t/pod/find.t + diff --git a/Makefile.SH b/Makefile.SH index 1f2263816c..cb04d7cc98 100644 --- a/Makefile.SH +++ b/Makefile.SH @@ -765,6 +765,9 @@ extras.install: perl$(EXE_EXT) .PHONY: install install-strip install-all install-verbose install-silent \ no-install install.perl install.man install.html +META.yml: Porting/makemeta Porting/Maintainers.pl Porting/Maintainers.pm + $(LDLIBPTH) ./miniperl -Ilib Porting/makemeta + install-strip: $(MAKE) STRIPFLAGS=-s install diff --git a/Porting/Maintainers b/Porting/Maintainers index 9c878031af..20a14df989 100644 --- a/Porting/Maintainers +++ b/Porting/Maintainers @@ -5,194 +5,10 @@ # use strict; +use lib "Porting"; -use FindBin qw($Bin); -require "$Bin/Maintainers.pl"; -use vars qw(%Modules %Maintainers); +use Maintainers qw(show_results process_options); -use Getopt::Long; -use File::Find; +show_results(process_options()); -sub usage { - print <<__EOF__; -$0: Usage: $0 [[--maintainer M --module M --files]|file ...] ---maintainer M list all maintainers matching M ---module M list all modules matching M ---files list all files -Matching is case-ignoring regexp, author matching is both by -the short id and by the full name and email. A "module" may -not be just a module, it may be a file or files or a subdirectory. -The options may be abbreviated to their unique prefixes -__EOF__ - exit(0); -} - -my $Maintainer; -my $Module; -my $Files; - -usage() - unless - GetOptions( - 'maintainer=s' => \$Maintainer, - 'module=s' => \$Module, - 'files' => \$Files, - ); - -my @Files = @ARGV; - -usage() if @Files && ($Maintainer || $Module || $Files); - -for my $mean ($Maintainer, $Module) { - warn "$0: Did you mean '$0 $mean'?\n" - if $mean && -e $mean && $mean ne '.' && !$Files; -} - -warn "$0: Did you mean '$0 -mo $Maintainer'?\n" - if defined $Maintainer && exists $Modules{$Maintainer}; - -warn "$0: Did you mean '$0 -ma $Module'?\n" - if defined $Module && exists $Maintainers{$Module}; - -sub get_module_pat { - my $m = shift; - split ' ', $Modules{$m}{FILES}; -} - -sub get_module_files { - my $m = shift; - sort { lc $a cmp lc $b } - map { - -f $_ ? # Files as-is. - $_ : - -d _ ? # Recurse into directories. - do { - my @files; - find( - sub { - push @files, $File::Find::name - if -f $_; - }, $_); - @files; - } - : glob($_) # The rest are globbable patterns. - } get_module_pat($m); -} - -sub get_maintainer_modules { - my $m = shift; - sort { lc $a cmp lc $b } - grep { $Modules{$_}{MAINTAINER} eq $m } - keys %Modules; -} - -if ($Maintainer) { - for my $m (sort keys %Maintainers) { - if ($m =~ /$Maintainer/io || $Maintainers{$m} =~ /$Maintainer/io) { - my @modules = get_maintainer_modules($m); - if ($Module) { - @modules = grep { /$Module/io } @modules; - } - if ($Files) { - my @files; - for my $module (@modules) { - push @files, get_module_files($module); - } - printf "%-15s @files\n", $m; - } else { - if ($Module) { - printf "%-15s @modules\n", $m; - } else { - printf "%-15s $Maintainers{$m}\n", $m; - } - } - } - } -} elsif ($Module) { - for my $m (sort { lc $a cmp lc $b } keys %Modules) { - if ($m =~ /$Module/io) { - if ($Files) { - my @files = get_module_files($m); - printf "%-15s @files\n", $m; - } else { - printf "%-15s $Modules{$m}{MAINTAINER}\n", $m; - } - } - } -} elsif (@Files) { - my %ModuleByFile; - - for (@Files) { s:^\./:: } - - @ModuleByFile{@Files} = (); - - # First try fast match. - - my %ModuleByPat; - for my $module (keys %Modules) { - for my $pat (get_module_pat($module)) { - $ModuleByPat{$pat} = $module; - } - } - # Expand any globs. - my %ExpModuleByPat; - for my $pat (keys %ModuleByPat) { - if (-e $pat) { - $ExpModuleByPat{$pat} = $ModuleByPat{$pat}; - } else { - for my $exp (glob($pat)) { - $ExpModuleByPat{$exp} = $ModuleByPat{$pat}; - } - } - } - %ModuleByPat = %ExpModuleByPat; - for my $file (@Files) { - $ModuleByFile{$file} = $ModuleByPat{$file} - if exists $ModuleByPat{$file}; - } - - # If still unresolved files.. - if (my @ToDo = grep { !defined $ModuleByFile{$_} } keys %ModuleByFile) { - - # Cannot match what isn't there. - @ToDo = grep { -e $_ } @ToDo; - - if (@ToDo) { - # Try prefix matching. - - # Remove trailing slashes. - for (@ToDo) { s|/$|| } - - my %ToDo; - @ToDo{@ToDo} = (); - - for my $pat (keys %ModuleByPat) { - last unless keys %ToDo; - if (-d $pat) { - my @Done; - for my $file (keys %ToDo) { - if ($file =~ m|^$pat|i) { - $ModuleByFile{$file} = $ModuleByPat{$pat}; - push @Done, $file; - } - } - delete @ToDo{@Done}; - } - } - } - } - - for my $file (@Files) { - if (defined $ModuleByFile{$file}) { - my $module = $ModuleByFile{$file}; - my $maintainer = $Modules{$ModuleByFile{$file}}{MAINTAINER}; - printf "%-15s $module $maintainer $Maintainers{$maintainer}\n", $file; - } else { - printf "%-15s ?\n", $file; - } - } -} -else { - usage(); -} diff --git a/Porting/Maintainers.pl b/Porting/Maintainers.pl index 3d04db7c45..27c07cf1d0 100644 --- a/Porting/Maintainers.pl +++ b/Porting/Maintainers.pl @@ -6,6 +6,8 @@ # and in CPAN. Those that have a CPAN existence, have the CPAN # attribute set to true. +package Maintainers; + %Maintainers = ( 'abergman' => 'Arthur Bergman <abergman@cpan.org>', diff --git a/Porting/Maintainers.pm b/Porting/Maintainers.pm new file mode 100644 index 0000000000..3cf48560c6 --- /dev/null +++ b/Porting/Maintainers.pm @@ -0,0 +1,228 @@ +# +# Maintainers.pm - show information about maintainers +# + +package Maintainers; + +use strict; + +use lib "Porting"; + +require "Maintainers.pl"; +use vars qw(%Modules %Maintainers); + +use vars qw(@ISA @EXPORT_OK); +@ISA = qw(Exporter); +@EXPORT_OK = qw(%Modules %Maintainers + get_module_files get_module_pat + show_results process_options); +require Exporter; + +use File::Find; +use Getopt::Long; + +my %MANIFEST; +if (open(MANIFEST, "MANIFEST")) { + while (<MANIFEST>) { + if (/^(\S+)\t+(.+)$/) { + $MANIFEST{$1}++; + } + } + close MANIFEST; +} else { + die "$0: Failed to open MANIFEST for reading: $!\n"; +} + +sub get_module_pat { + my $m = shift; + split ' ', $Modules{$m}{FILES}; +} + +sub get_module_files { + my $m = shift; + sort { lc $a cmp lc $b } + map { + -f $_ ? # Files as-is. + $_ : + -d _ ? # Recurse into directories. + do { + my @files; + find( + sub { + push @files, $File::Find::name + if -f $_ && exists $MANIFEST{$File::Find::name}; + }, $_); + @files; + } + : glob($_) # The rest are globbable patterns. + } get_module_pat($m); +} + +sub get_maintainer_modules { + my $m = shift; + sort { lc $a cmp lc $b } + grep { $Modules{$_}{MAINTAINER} eq $m } + keys %Modules; +} + +sub usage { + print <<__EOF__; +$0: Usage: $0 [[--maintainer M --module M --files]|file ...] +--maintainer M list all maintainers matching M +--module M list all modules matching M +--files list all files +Matching is case-ignoring regexp, author matching is both by +the short id and by the full name and email. A "module" may +not be just a module, it may be a file or files or a subdirectory. +The options may be abbreviated to their unique prefixes +__EOF__ + exit(0); +} + +my $Maintainer; +my $Module; +my $Files; + +sub process_options { + usage() + unless + GetOptions( + 'maintainer=s' => \$Maintainer, + 'module=s' => \$Module, + 'files' => \$Files, + ); + + my @Files = @ARGV; + + usage() if @Files && ($Maintainer || $Module || $Files); + + for my $mean ($Maintainer, $Module) { + warn "$0: Did you mean '$0 $mean'?\n" + if $mean && -e $mean && $mean ne '.' && !$Files; + } + + warn "$0: Did you mean '$0 -mo $Maintainer'?\n" + if defined $Maintainer && exists $Modules{$Maintainer}; + + warn "$0: Did you mean '$0 -ma $Module'?\n" + if defined $Module && exists $Maintainers{$Module}; + + return ($Maintainer, $Module, $Files, @Files); +} + +sub show_results { + my ($Maintainer, $Module, $Files, @Files) = @_; + + if ($Maintainer) { + for my $m (sort keys %Maintainers) { + if ($m =~ /$Maintainer/io || $Maintainers{$m} =~ /$Maintainer/io) { + my @modules = get_maintainer_modules($m); + if ($Module) { + @modules = grep { /$Module/io } @modules; + } + if ($Files) { + my @files; + for my $module (@modules) { + push @files, get_module_files($module); + } + printf "%-15s @files\n", $m; + } else { + if ($Module) { + printf "%-15s @modules\n", $m; + } else { + printf "%-15s $Maintainers{$m}\n", $m; + } + } + } + } + } elsif ($Module) { + for my $m (sort { lc $a cmp lc $b } keys %Modules) { + if ($m =~ /$Module/io) { + if ($Files) { + my @files = get_module_files($m); + printf "%-15s @files\n", $m; + } else { + printf "%-15s $Modules{$m}{MAINTAINER}\n", $m; + } + } + } + } elsif (@Files) { + my %ModuleByFile; + + for (@Files) { s:^\./:: } + + @ModuleByFile{@Files} = (); + + # First try fast match. + + my %ModuleByPat; + for my $module (keys %Modules) { + for my $pat (get_module_pat($module)) { + $ModuleByPat{$pat} = $module; + } + } + # Expand any globs. + my %ExpModuleByPat; + for my $pat (keys %ModuleByPat) { + if (-e $pat) { + $ExpModuleByPat{$pat} = $ModuleByPat{$pat}; + } else { + for my $exp (glob($pat)) { + $ExpModuleByPat{$exp} = $ModuleByPat{$pat}; + } + } + } + %ModuleByPat = %ExpModuleByPat; + for my $file (@Files) { + $ModuleByFile{$file} = $ModuleByPat{$file} + if exists $ModuleByPat{$file}; + } + + # If still unresolved files... + if (my @ToDo = grep { !defined $ModuleByFile{$_} } keys %ModuleByFile) { + + # Cannot match what isn't there. + @ToDo = grep { -e $_ } @ToDo; + + if (@ToDo) { + # Try prefix matching. + + # Remove trailing slashes. + for (@ToDo) { s|/$|| } + + my %ToDo; + @ToDo{@ToDo} = (); + + for my $pat (keys %ModuleByPat) { + last unless keys %ToDo; + if (-d $pat) { + my @Done; + for my $file (keys %ToDo) { + if ($file =~ m|^$pat|i) { + $ModuleByFile{$file} = $ModuleByPat{$pat}; + push @Done, $file; + } + } + delete @ToDo{@Done}; + } + } + } + } + + for my $file (@Files) { + if (defined $ModuleByFile{$file}) { + my $module = $ModuleByFile{$file}; + my $maintainer = $Modules{$ModuleByFile{$file}}{MAINTAINER}; + printf "%-15s $module $maintainer $Maintainers{$maintainer}\n", $file; + } else { + printf "%-15s ?\n", $file; + } + } + } + else { + usage(); + } +} + +1; + diff --git a/Porting/makemeta b/Porting/makemeta new file mode 100644 index 0000000000..9889c8e81a --- /dev/null +++ b/Porting/makemeta @@ -0,0 +1,36 @@ +#!/usr/bin/perl -w + +use strict; +use warnings; +use lib "Porting"; + +my $file = "META.yml"; +die "$0: will not override $file, delete it first.\n" if -e $file; + +use Maintainers qw(%Modules get_module_files get_module_pat); + +my @CPAN = grep { $Modules{$_}{CPAN} } keys %Modules; +my @files = map { get_module_files($_) } @CPAN; +my @dirs = grep { -d $_ } map { get_module_pat($_) } @CPAN; + +my $files = join '', map { " - $_\n" } sort { lc $a cmp lc $b } @files; +my $dirs = join '', map { " - $_\n" } sort { lc $a cmp lc $b } @dirs; + +open my $fh, ">$file" or die "Can't open $file: $!"; + +print $fh <<"EOI"; +name: perl +version: $] +abstract: Practical Extraction and Reporting Language +author: perl5-porters\@perl.org +license: perl +distribution_type: core +private: + directory: +$dirs + file: +$files +EOI + +close $fh; + |