From 9235c81891f90483b524a2ccb1f8c15689c8dfd3 Mon Sep 17 00:00:00 2001 From: Nito Martinez Date: Tue, 13 Apr 2010 23:58:24 +0100 Subject: [PATCH] Modified source files and compiled any and armel versions of packages --- deb-src/core | Bin 0 -> 557056 bytes .../dh-make-perl-0.47/debian/changelog | 9 +- .../debian/dh-make-perl.debhelper.log | 11 + .../debian/dh-make-perl.substvars | 2 + .../debian/dh-make-perl/DEBIAN/control | 15 + .../debian/dh-make-perl/DEBIAN/md5sums | 12 + .../debian/dh-make-perl/usr/bin/dh-make-perl | 1557 ++++++++++++++++++ .../dh-make-perl/usr/share/dh-make-perl/overrides | 39 + .../usr/share/dh-make-perl/rules.MakeMaker.noxs | 64 + .../usr/share/dh-make-perl/rules.MakeMaker.xs | 77 + .../usr/share/dh-make-perl/rules.Module-Build.noxs | 64 + .../usr/share/dh-make-perl/rules.Module-Build.xs | 74 + .../usr/share/dh-make-perl/rules.dh7.noxs | 23 + .../usr/share/dh-make-perl/rules.dh7.xs | 23 + .../dh-make-perl/usr/share/doc/dh-make-perl/README | 19 + .../usr/share/doc/dh-make-perl/changelog.gz | Bin 0 -> 9792 bytes .../usr/share/doc/dh-make-perl/copyright | 16 + .../usr/share/man/man1/dh-make-perl.1.gz | Bin 0 -> 5986 bytes .../dh-make-perl/dh-make-perl-0.47/debian/files | 1 + .../dh-make-perl/dh-make-perl-0.47/dh-make-perl.1 | 400 +++++ .../dh-make-perl/dh-make-perl-0.47maemo1/COPYING | 340 ++++ .../dh-make-perl/dh-make-perl-0.47maemo1/README | 19 + .../dh-make-perl-0.47maemo1/Strange-0.1/Changes | 5 + .../dh-make-perl-0.47maemo1/Strange-0.1/MANIFEST | 5 + .../Strange-0.1/Makefile.PL | 7 + .../dh-make-perl-0.47maemo1/Strange-0.1/Strange.pm | 52 + .../dh-make-perl-0.47maemo1/Strange-0.1/test.pl | 20 + .../dh-make-perl-0.47maemo1/Strange-2.1/Changes | 5 + .../dh-make-perl-0.47maemo1/Strange-2.1/MANIFEST | 6 + .../Strange-2.1/Makefile.PL | 10 + .../dh-make-perl-0.47maemo1/Strange-2.1/README | 1 + .../dh-make-perl-0.47maemo1/Strange-2.1/Strange.pm | 78 + .../dh-make-perl-0.47maemo1/Strange-2.1/Strange.xs | 34 + .../dh-make-perl-0.47maemo1/Strange-2.1/test.pl | 20 + .../dh-make-perl-0.47maemo1/debian/changelog | 686 ++++++++ .../dh-make-perl-0.47maemo1/debian/compat | 1 + .../dh-make-perl-0.47maemo1/debian/control | 28 + .../dh-make-perl-0.47maemo1/debian/copyright | 16 + .../dh-make-perl-0.47maemo1/debian/rules | 76 + .../dh-make-perl-0.47maemo1/dh-make-perl | 1557 ++++++++++++++++++ .../dh-make-perl/dh-make-perl-0.47maemo1/overrides | 39 + .../dh-make-perl-0.47maemo1/rules.MakeMaker.noxs | 64 + .../dh-make-perl-0.47maemo1/rules.MakeMaker.xs | 77 + .../rules.Module-Build.noxs | 64 + .../dh-make-perl-0.47maemo1/rules.Module-Build.xs | 74 + .../dh-make-perl-0.47maemo1/rules.dh7.noxs | 23 + .../dh-make-perl-0.47maemo1/rules.dh7.xs | 23 + deb-src/dh-make-perl/dh-make-perl_0.47maemo1.dsc | 12 + .../dh-make-perl/dh-make-perl_0.47maemo1.tar.gz | Bin 0 -> 37032 bytes .../dh-make-perl_0.47maemo1_i386.changes | 20 + .../libarchive-zip-perl-1.18/debian/changelog | 9 +- .../libarchive-zip-perl_1.18-1maemo1.diff.gz | Bin 0 -> 3457 bytes .../libarchive-zip-perl_1.18-1maemo1.dsc | 13 + .../libarchive-zip-perl_1.18-1maemo1_i386.changes | 20 + .../libarray-compare-perl-1.16/debian/changelog | 9 +- .../libarray-compare-perl_1.16-1maemo1.diff.gz | Bin 0 -> 2505 bytes .../libarray-compare-perl_1.16-1maemo1.dsc | 13 + ...libarray-compare-perl_1.16-1maemo1_i386.changes | 20 + .../Build.PL | 15 + .../Changes | 2 + .../MANIFEST | 10 + .../META.yml | 18 + .../Makefile.PL | 14 + .../README | 57 + .../debian/changelog | 29 + .../debian/compat | 1 + .../debian/control | 20 + .../debian/copyright | 21 + .../debian/rules | 90 ++ .../debian/watch | 2 + .../lib/Class/Accessor/Chained.pm | 82 + .../lib/Class/Accessor/Chained/Fast.pm | 70 + .../t/00compile.t | 5 + .../t/chained.t | 24 + .../Makefile | 718 +++++++++ .../blib/lib/Class/Accessor/Chained.pm | 82 + .../blib/lib/Class/Accessor/Chained/Fast.pm | 70 + .../blib/man3/Class::Accessor::Chained.3pm | 166 ++ .../blib/man3/Class::Accessor::Chained::Fast.3pm | 160 ++ .../debian/changelog | 9 +- .../debian/files | 1 + .../libclass-accessor-chained-perl.debhelper.log | 11 + .../libclass-accessor-chained-perl.substvars | 2 + .../libclass-accessor-chained-perl/DEBIAN/control | 17 + .../libclass-accessor-chained-perl/DEBIAN/md5sums | 8 + .../doc/libclass-accessor-chained-perl/README | 57 + .../changelog.Debian.gz | Bin 0 -> 478 bytes .../libclass-accessor-chained-perl/changelog.gz | Bin 0 -> 74 bytes .../doc/libclass-accessor-chained-perl/copyright | 21 + .../share/man/man3/Class::Accessor::Chained.3pm.gz | Bin 0 -> 2140 bytes .../man/man3/Class::Accessor::Chained::Fast.3pm.gz | Bin 0 -> 2052 bytes .../usr/share/perl5/Class/Accessor/Chained.pm | 82 + .../usr/share/perl5/Class/Accessor/Chained/Fast.pm | 70 + ...libclass-accessor-chained-perl_0.01.1maemo1.dsc | 11 + ...class-accessor-chained-perl_0.01.1maemo1.tar.gz | Bin 0 -> 4363 bytes ...accessor-chained-perl_0.01.1maemo1_i386.changes | 20 + .../libclass-accessor-perl-0.31/debian/changelog | 9 +- .../libclass-accessor-perl_0.31-2maemo1.diff.gz | Bin 0 -> 3503 bytes .../libclass-accessor-perl_0.31-2maemo1.dsc | 15 + ...ibclass-accessor-perl_0.31-2maemo1_i386.changes | 20 + .../debian/changelog | 9 +- .../libcompress-raw-zlib-perl-2.012/debian/control | 2 +- ...ibcompress-raw-zlib-perl_2.012-11maemo1.diff.gz | Bin 0 -> 3737 bytes .../libcompress-raw-zlib-perl_2.012-11maemo1.dsc | 12 + ...press-raw-zlib-perl_2.012-11maemo1_i386.changes | 20 + .../libdevel-symdump-perl-2.08/debian/changelog | 9 +- .../libdevel-symdump-perl_2.08-1maemo1.diff.gz | Bin 0 -> 2970 bytes .../libdevel-symdump-perl_2.08-1maemo1.dsc | 12 + ...libdevel-symdump-perl_2.08-1maemo1_i386.changes | 20 + .../debian/changelog | 9 +- .../libemail-date-format-perl-1.002/debian/control | 2 +- ...libemail-date-format-perl_1.002-1maemo1.diff.gz | Bin 0 -> 2069 bytes .../libemail-date-format-perl_1.002-1maemo1.dsc | 13 + ...ail-date-format-perl_1.002-1maemo1_i386.changes | 20 + .../debian/changelog | 9 +- .../libextutils-cbuilder-perl-0.23/debian/control | 2 +- .../libextutils-cbuilder-perl_0.23-1maemo1.diff.gz | Bin 0 -> 2449 bytes .../libextutils-cbuilder-perl_0.23-1maemo1.dsc | 13 + ...xtutils-cbuilder-perl_0.23-1maemo1_i386.changes | 20 + .../libextutils-parsexs-perl-2.19/debian/changelog | 9 +- .../libextutils-parsexs-perl_2.19-1maemo1.diff.gz | Bin 0 -> 3305 bytes .../libextutils-parsexs-perl_2.19-1maemo1.dsc | 13 + ...extutils-parsexs-perl_2.19-1maemo1_i386.changes | 20 + .../libfile-chdir-perl-0.06/debian/changelog | 9 +- .../libfile-chdir-perl_0.06-2.1maemo1.dsc | 11 + .../libfile-chdir-perl_0.06-2.1maemo1.tar.gz | Bin 0 -> 24289 bytes .../libfile-chdir-perl_0.06-2.1maemo1_i386.changes | 20 + .../libfile-which-perl-0.05/debian/changelog | 9 +- .../libfile-which-perl_0.05-7maemo1.diff.gz | Bin 0 -> 2212 bytes .../libfile-which-perl_0.05-7maemo1.dsc | 13 + .../libfile-which-perl_0.05-7maemo1_i386.changes | 20 + .../libhtml-parser-perl-3.56/debian/changelog | 9 +- .../libhtml-parser-perl_3.56-11maemo1.diff.gz | Bin 0 -> 6204 bytes .../libhtml-parser-perl_3.56-11maemo1.dsc | 12 + .../libhtml-parser-perl_3.56-11maemo1_i386.changes | 20 + .../libhtml-tagset-perl-3.20/debian/changelog | 9 +- .../libhtml-tagset-perl-3.20/debian/control | 2 +- .../libhtml-tagset-perl_3.20-2maemo1.diff.gz | Bin 0 -> 3097 bytes .../libhtml-tagset-perl_3.20-2maemo1.dsc | 13 + .../libhtml-tagset-perl_3.20-2maemo1_i386.changes | 20 + .../libhtml-tree-perl-3.23/debian/changelog | 9 +- .../libhtml-tree-perl_3.23-1maemo1.diff.gz | Bin 0 -> 3706 bytes .../libhtml-tree-perl_3.23-1maemo1.dsc | 13 + .../libhtml-tree-perl_3.23-1maemo1_i386.changes | 20 + .../debian/changelog | 9 +- .../libio-compress-base-perl-2.012/debian/control | 4 +- .../libio-compress-base-perl_2.012-1maemo1.diff.gz | Bin 0 -> 2701 bytes .../libio-compress-base-perl_2.012-1maemo1.dsc | 13 + ...o-compress-base-perl_2.012-1maemo1_i386.changes | 20 + .../debian/changelog | 9 +- .../libio-compress-zlib-perl-2.012/debian/control | 2 +- .../libio-compress-zlib-perl_2.012-1maemo1.diff.gz | Bin 0 -> 3128 bytes .../libio-compress-zlib-perl_2.012-1maemo1.dsc | 13 + ...o-compress-zlib-perl_2.012-1maemo1_i386.changes | 20 + .../libio-socket-ssl-perl-1.16/debian/changelog | 9 +- .../libio-socket-ssl-perl-1.16/debian/control | 2 +- .../libio-socket-ssl-perl_1.16-11maemo1.dsc | 12 + .../libio-socket-ssl-perl_1.16-11maemo1.tar.gz | Bin 0 -> 66232 bytes ...ibio-socket-ssl-perl_1.16-11maemo1_i386.changes | 20 + .../io-stringy-2.110/debian/changelog | 9 +- .../io-stringy_2.110-4maemo1.diff.gz | Bin 0 -> 3709 bytes .../io-stringy_2.110-4maemo1.dsc | 12 + .../io-stringy_2.110-4maemo1_i386.changes | 20 + .../libmodule-depends-perl-0.14/debian/changelog | 9 +- .../libmodule-depends-perl_0.14-1maemo1.diff.gz | Bin 0 -> 2429 bytes .../libmodule-depends-perl_0.14-1maemo1.dsc | 12 + ...ibmodule-depends-perl_0.14-1maemo1_i386.changes | 20 + .../libnet-libidn-perl-0.07/Artistic | 131 ++ .../libnet-libidn-perl-0.07/Changes | 42 + .../libnet-libidn-perl-0.07/LibIDN.xs | 549 +++++++ .../libnet-libidn-perl-0.07/MANIFEST | 14 + .../libnet-libidn-perl-0.07/META.yml | 10 + .../libnet-libidn-perl-0.07/Makefile.PL | 226 +++ .../libnet-libidn-perl-0.07/README | 88 ++ .../libnet-libidn-perl-0.07/_LibIDN.pm | 256 +++ .../libnet-libidn-perl-0.07/_test.pl | 75 + .../libnet-libidn-perl-0.07/debian/changelog | 44 + .../libnet-libidn-perl-0.07/debian/compat | 1 + .../libnet-libidn-perl-0.07/debian/control | 14 + .../libnet-libidn-perl-0.07/debian/copyright | 19 + .../libnet-libidn-perl-0.07/debian/rules | 99 ++ .../libnet-libidn-perl_0.07-1.diff.gz | Bin 0 -> 20 bytes .../libnet-libidn-perl_0.07-1.dsc | 22 + .../libnet-libidn-perl_0.07-1maemo1.diff.gz | Bin 0 -> 260 bytes .../libnet-libidn-perl_0.07-1maemo1.dsc | 11 + .../libnet-libidn-perl_0.07-1maemo1_i386.changes | 20 + .../libnet-libidn-perl_0.07.orig.tar.gz | Bin 0 -> 13366 bytes .../libnet-ssleay-perl-1.35/debian/changelog | 9 +- .../libnet-ssleay-perl-1.35/debian/control | 4 +- .../libnet-ssleay-perl_1.35-1maemo1.diff.gz | Bin 0 -> 6381 bytes .../libnet-ssleay-perl_1.35-1maemo1.dsc | 12 + .../libnet-ssleay-perl_1.35-1maemo1_i386.changes | 20 + .../libpar-dist-perl-0.31/debian/changelog | 9 +- .../libpar-dist-perl-0.31/debian/control | 2 +- .../libpar-dist-perl_0.31-1maemo1.diff.gz | Bin 0 -> 2665 bytes .../libpar-dist-perl_0.31-1maemo1.dsc | 13 + .../libpar-dist-perl_0.31-1maemo1_i386.changes | 20 + .../libperl-critic-perl-1.088/Build.PL | 178 +++ .../libperl-critic-perl-1.088/Changes | 1260 +++++++++++++++ .../libperl-critic-perl-1.088/INSTALL | 35 + .../libperl-critic-perl-1.088/LICENSE | 377 +++++ .../libperl-critic-perl-1.088/MANIFEST | 413 +++++ .../libperl-critic-perl-1.088/META.yml | 595 +++++++ .../libperl-critic-perl-1.088/Makefile.PL | 124 ++ .../libperl-critic-perl-1.088/README | 704 +++++++++ .../libperl-critic-perl-1.088/TODO.pod | 574 +++++++ .../libperl-critic-perl-1.088/bin/perlcritic | 1387 ++++++++++++++++ .../libperl-critic-perl-1.088/debian/changelog | 84 + .../libperl-critic-perl-1.088/debian/compat | 1 + .../libperl-critic-perl-1.088/debian/control | 47 + .../libperl-critic-perl-1.088/debian/copyright | 30 + .../libperl-critic-perl-1.088/debian/docs | 1 + .../libperl-critic-perl-1.088/debian/examples | 1 + .../libperl-critic-perl-1.088/debian/rules | 3 + .../libperl-critic-perl-1.088/debian/watch | 3 + .../examples/generatestats | 309 ++++ .../examples/loadanalysisdb | 349 +++++ .../examples/perlcriticrc | 148 ++ .../examples/perlcriticrc-conway | 283 ++++ .../extras/KomodoIntegration.pod | 88 ++ .../libperl-critic-perl-1.088/extras/perlcritic.el | 681 ++++++++ .../inc/Devel/AssertOS.pm | 81 + .../inc/Devel/AssertOS/AIX.pm | 13 + .../inc/Devel/AssertOS/Amiga.pm | 13 + .../inc/Devel/AssertOS/Apple.pm | 13 + .../inc/Devel/AssertOS/BSDOS.pm | 13 + .../inc/Devel/AssertOS/BeOS.pm | 13 + .../inc/Devel/AssertOS/Cygwin.pm | 13 + .../inc/Devel/AssertOS/DEC.pm | 13 + .../inc/Devel/AssertOS/DGUX.pm | 13 + .../inc/Devel/AssertOS/DragonflyBSD.pm | 13 + .../inc/Devel/AssertOS/Dynix.pm | 13 + .../inc/Devel/AssertOS/FreeBSD.pm | 13 + .../inc/Devel/AssertOS/HPUX.pm | 13 + .../inc/Devel/AssertOS/Interix.pm | 13 + .../inc/Devel/AssertOS/Irix.pm | 13 + .../inc/Devel/AssertOS/Linux.pm | 13 + .../inc/Devel/AssertOS/MPEiX.pm | 13 + .../inc/Devel/AssertOS/MSDOS.pm | 13 + .../inc/Devel/AssertOS/MSWin32.pm | 13 + .../inc/Devel/AssertOS/MacOSX.pm | 13 + .../inc/Devel/AssertOS/MacOSclassic.pm | 13 + .../inc/Devel/AssertOS/MachTen.pm | 13 + .../inc/Devel/AssertOS/MicrosoftWindows.pm | 13 + .../inc/Devel/AssertOS/NeXT.pm | 13 + .../inc/Devel/AssertOS/NetBSD.pm | 13 + .../inc/Devel/AssertOS/Netware.pm | 13 + .../inc/Devel/AssertOS/OS2.pm | 13 + .../inc/Devel/AssertOS/OS390.pm | 13 + .../inc/Devel/AssertOS/OS400.pm | 13 + .../inc/Devel/AssertOS/OSF.pm | 13 + .../inc/Devel/AssertOS/OpenBSD.pm | 13 + .../inc/Devel/AssertOS/POSIXBC.pm | 13 + .../inc/Devel/AssertOS/RISCOS.pm | 13 + .../inc/Devel/AssertOS/SCO.pm | 13 + .../inc/Devel/AssertOS/Solaris.pm | 13 + .../inc/Devel/AssertOS/Sun.pm | 13 + .../inc/Devel/AssertOS/SunOS.pm | 13 + .../inc/Devel/AssertOS/SysVr4.pm | 13 + .../inc/Devel/AssertOS/SysVr5.pm | 13 + .../inc/Devel/AssertOS/Unicos.pm | 13 + .../inc/Devel/AssertOS/Unix.pm | 40 + .../inc/Devel/AssertOS/VMESA.pm | 13 + .../inc/Devel/AssertOS/VMS.pm | 13 + .../inc/Devel/AssertOS/VOS.pm | 13 + .../libperl-critic-perl-1.088/inc/Devel/CheckOS.pm | 238 +++ .../inc/Perl/Critic/BuildUtilities.pm | 230 +++ .../libperl-critic-perl-1.088/lib/Perl/Critic.pm | 1158 ++++++++++++++ .../lib/Perl/Critic/Config.pm | 1165 ++++++++++++++ .../lib/Perl/Critic/DEVELOPER.pod | 1058 +++++++++++++ .../lib/Perl/Critic/Document.pm | 326 ++++ .../lib/Perl/Critic/Exception.pm | 95 ++ .../Critic/Exception/AggregateConfiguration.pm | 202 +++ .../lib/Perl/Critic/Exception/Configuration.pm | 90 ++ .../Perl/Critic/Exception/Configuration/Generic.pm | 95 ++ .../Perl/Critic/Exception/Configuration/Option.pm | 142 ++ .../Exception/Configuration/Option/Global.pm | 71 + .../Configuration/Option/Global/ExtraParameter.pm | 123 ++ .../Configuration/Option/Global/ParameterValue.pm | 132 ++ .../Exception/Configuration/Option/Policy.pm | 98 ++ .../Configuration/Option/Policy/ExtraParameter.pm | 125 ++ .../Configuration/Option/Policy/ParameterValue.pm | 133 ++ .../lib/Perl/Critic/Exception/Fatal.pm | 112 ++ .../lib/Perl/Critic/Exception/Fatal/Generic.pm | 80 + .../lib/Perl/Critic/Exception/Fatal/Internal.pm | 80 + .../Critic/Exception/Fatal/PolicyDefinition.pm | 81 + .../lib/Perl/Critic/Exception/IO.pm | 97 ++ .../lib/Perl/Critic/Exception/Parse.pm | 92 ++ .../lib/Perl/Critic/OptionsProcessor.pm | 291 ++++ .../lib/Perl/Critic/Policy.pm | 881 +++++++++++ .../Policy/BuiltinFunctions/ProhibitBooleanGrep.pm | 156 ++ .../BuiltinFunctions/ProhibitComplexMappings.pm | 146 ++ .../BuiltinFunctions/ProhibitLvalueSubstr.pm | 100 ++ .../BuiltinFunctions/ProhibitReverseSortBlock.pm | 135 ++ .../BuiltinFunctions/ProhibitSleepViaSelect.pm | 110 ++ .../Policy/BuiltinFunctions/ProhibitStringyEval.pm | 106 ++ .../BuiltinFunctions/ProhibitStringySplit.pm | 116 ++ .../BuiltinFunctions/ProhibitUniversalCan.pm | 107 ++ .../BuiltinFunctions/ProhibitUniversalIsa.pm | 110 ++ .../Policy/BuiltinFunctions/ProhibitVoidGrep.pm | 104 ++ .../Policy/BuiltinFunctions/ProhibitVoidMap.pm | 104 ++ .../Policy/BuiltinFunctions/RequireBlockGrep.pm | 113 ++ .../Policy/BuiltinFunctions/RequireBlockMap.pm | 109 ++ .../Policy/BuiltinFunctions/RequireGlobFunction.pm | 97 ++ .../BuiltinFunctions/RequireSimpleSortBlock.pm | 116 ++ .../Policy/ClassHierarchies/ProhibitAutoloading.pm | 97 ++ .../Policy/ClassHierarchies/ProhibitExplicitISA.pm | 93 ++ .../Policy/ClassHierarchies/ProhibitOneArgBless.pm | 101 ++ .../Critic/Policy/CodeLayout/ProhibitHardTabs.pm | 133 ++ .../CodeLayout/ProhibitParensWithBuiltins.pm | 237 +++ .../Policy/CodeLayout/ProhibitQuotedWordLists.pm | 163 ++ .../CodeLayout/ProhibitTrailingWhitespace.pm | 148 ++ .../Policy/CodeLayout/RequireConsistentNewlines.pm | 125 ++ .../Critic/Policy/CodeLayout/RequireTidyCode.pm | 193 +++ .../Policy/CodeLayout/RequireTrailingCommas.pm | 126 ++ .../ControlStructures/ProhibitCStyleForLoops.pm | 109 ++ .../ControlStructures/ProhibitCascadingIfElse.pm | 133 ++ .../Policy/ControlStructures/ProhibitDeepNests.pm | 124 ++ .../ProhibitLabelsWithSpecialBlockNames.pm | 124 ++ .../ProhibitMutatingListFunctions.pm | 308 ++++ ...egativeExpressionsInUnlessAndUntilConditions.pm | 208 +++ .../ControlStructures/ProhibitPostfixControls.pm | 191 +++ .../ControlStructures/ProhibitUnlessBlocks.pm | 103 ++ .../ControlStructures/ProhibitUnreachableCode.pm | 222 +++ .../ControlStructures/ProhibitUntilBlocks.pm | 102 ++ .../Critic/Policy/Documentation/PodSpelling.pm | 335 ++++ .../Documentation/RequirePackageMatchesPodName.pm | 115 ++ .../Critic/Policy/Documentation/RequirePodAtEnd.pm | 131 ++ .../Policy/Documentation/RequirePodSections.pm | 477 ++++++ .../Critic/Policy/ErrorHandling/RequireCarping.pm | 430 +++++ .../RequireCheckingReturnValueOfEval.pm | 374 +++++ .../InputOutput/ProhibitBacktickOperators.pm | 143 ++ .../InputOutput/ProhibitBarewordFileHandles.pm | 119 ++ .../Policy/InputOutput/ProhibitExplicitStdin.pm | 126 ++ .../Policy/InputOutput/ProhibitInteractiveTest.pm | 89 ++ .../Policy/InputOutput/ProhibitJoinedReadline.pm | 119 ++ .../Policy/InputOutput/ProhibitOneArgSelect.pm | 108 ++ .../InputOutput/ProhibitReadlineInForLoop.pm | 99 ++ .../Policy/InputOutput/ProhibitTwoArgOpen.pm | 140 ++ .../RequireBracedFileHandleWithPrint.pm | 143 ++ .../Critic/Policy/InputOutput/RequireBriefOpen.pm | 310 ++++ .../Policy/InputOutput/RequireCheckedClose.pm | 105 ++ .../Policy/InputOutput/RequireCheckedOpen.pm | 105 ++ .../Policy/InputOutput/RequireCheckedSyscalls.pm | 190 +++ .../Critic/Policy/Miscellanea/ProhibitFormats.pm | 95 ++ .../Perl/Critic/Policy/Miscellanea/ProhibitTies.pm | 94 ++ .../Policy/Miscellanea/RequireRcsKeywords.pm | 195 +++ .../Policy/Modules/ProhibitAutomaticExportation.pm | 151 ++ .../Critic/Policy/Modules/ProhibitEvilModules.pm | 178 +++ .../Policy/Modules/ProhibitExcessMainComplexity.pm | 150 ++ .../Policy/Modules/ProhibitMultiplePackages.pm | 95 ++ .../Policy/Modules/RequireBarewordIncludes.pm | 128 ++ .../Critic/Policy/Modules/RequireEndWithOne.pm | 112 ++ .../Policy/Modules/RequireExplicitPackage.pm | 153 ++ .../Modules/RequireFilenameMatchesPackage.pm | 126 ++ .../Modules/RequireNoMatchVarsWithUseEnglish.pm | 199 +++ .../Critic/Policy/Modules/RequireVersionVar.pm | 176 +++ .../NamingConventions/ProhibitAmbiguousNames.pm | 203 +++ .../NamingConventions/ProhibitMixedCaseSubs.pm | 114 ++ .../NamingConventions/ProhibitMixedCaseVars.pm | 127 ++ .../Policy/References/ProhibitDoubleSigils.pm | 102 ++ .../ProhibitCaptureWithoutTest.pm | 161 ++ .../RegularExpressions/ProhibitComplexRegexes.pm | 190 +++ .../ProhibitEnumeratedClasses.pm | 216 +++ .../ProhibitEscapedMetacharacters.pm | 173 ++ .../ProhibitFixedStringMatches.pm | 177 +++ .../ProhibitSingleCharAlternation.pm | 134 ++ .../RegularExpressions/ProhibitUnusedCapture.pm | 403 +++++ .../ProhibitUnusualDelimiters.pm | 144 ++ .../RequireBracesForMultiline.pm | 162 ++ .../RequireExtendedFormatting.pm | 121 ++ .../RequireLineBoundaryMatching.pm | 111 ++ .../Policy/Subroutines/ProhibitAmpersandSigils.pm | 105 ++ .../Policy/Subroutines/ProhibitBuiltinHomonyms.pm | 112 ++ .../Policy/Subroutines/ProhibitExcessComplexity.pm | 143 ++ .../Subroutines/ProhibitExplicitReturnUndef.pm | 148 ++ .../Critic/Policy/Subroutines/ProhibitManyArgs.pm | 189 +++ .../Policy/Subroutines/ProhibitNestedSubs.pm | 115 ++ .../Subroutines/ProhibitSubroutinePrototypes.pm | 91 ++ .../Policy/Subroutines/ProtectPrivateSubs.pm | 129 ++ .../Policy/Subroutines/RequireArgUnpacking.pm | 242 +++ .../Policy/Subroutines/RequireFinalReturn.pm | 261 +++ .../Policy/TestingAndDebugging/ProhibitNoStrict.pm | 152 ++ .../TestingAndDebugging/ProhibitNoWarnings.pm | 151 ++ .../ProhibitProlongedStrictureOverride.pm | 118 ++ .../TestingAndDebugging/RequireTestLabels.pm | 157 ++ .../Policy/TestingAndDebugging/RequireUseStrict.pm | 155 ++ .../TestingAndDebugging/RequireUseWarnings.pm | 168 ++ .../ProhibitCommaSeparatedStatements.pm | 252 +++ .../ValuesAndExpressions/ProhibitConstantPragma.pm | 98 ++ .../ValuesAndExpressions/ProhibitEmptyQuotes.pm | 110 ++ .../ProhibitEscapedCharacters.pm | 105 ++ .../ProhibitImplicitNewlines.pm | 110 ++ .../ProhibitInterpolationOfLiterals.pm | 172 ++ .../ValuesAndExpressions/ProhibitLeadingZeros.pm | 249 +++ .../ProhibitLongChainsOfMethodCalls.pm | 185 +++ .../ValuesAndExpressions/ProhibitMagicNumbers.pm | 607 +++++++ .../ProhibitMismatchedOperators.pm | 154 ++ .../ProhibitMixedBooleanOperators.pm | 150 ++ .../ValuesAndExpressions/ProhibitNoisyQuotes.pm | 114 ++ .../ProhibitQuotesAsQuotelikeOperatorDelimiters.pm | 300 ++++ .../ValuesAndExpressions/ProhibitVersionStrings.pm | 112 ++ .../RequireInterpolationOfMetachars.pm | 121 ++ .../RequireNumberSeparators.pm | 124 ++ .../RequireQuotedHeredocTerminator.pm | 108 ++ .../RequireUpperCaseHeredocTerminator.pm | 106 ++ .../Variables/ProhibitConditionalDeclarations.pm | 114 ++ .../Critic/Policy/Variables/ProhibitLocalVars.pm | 130 ++ .../Critic/Policy/Variables/ProhibitMatchVars.pm | 125 ++ .../Critic/Policy/Variables/ProhibitPackageVars.pm | 228 +++ .../Policy/Variables/ProhibitPerl4PackageNames.pm | 121 ++ .../Policy/Variables/ProhibitPunctuationVars.pm | 129 ++ .../Policy/Variables/ProhibitUnusedVariables.pm | 158 ++ .../Critic/Policy/Variables/ProtectPrivateVars.pm | 102 ++ .../Variables/RequireInitializationForLocalVars.pm | 116 ++ .../Variables/RequireLexicalLoopIterators.pm | 137 ++ .../Variables/RequireLocalizedPunctuationVars.pm | 186 +++ .../Policy/Variables/RequireNegativeIndices.pm | 254 +++ .../lib/Perl/Critic/PolicyConfig.pm | 314 ++++ .../lib/Perl/Critic/PolicyFactory.pm | 421 +++++ .../lib/Perl/Critic/PolicyListing.pm | 113 ++ .../lib/Perl/Critic/PolicyParameter.pm | 402 +++++ .../lib/Perl/Critic/PolicyParameter/Behavior.pm | 115 ++ .../Critic/PolicyParameter/Behavior/Boolean.pm | 112 ++ .../Critic/PolicyParameter/Behavior/Enumeration.pm | 236 +++ .../Critic/PolicyParameter/Behavior/Integer.pm | 205 +++ .../Perl/Critic/PolicyParameter/Behavior/String.pm | 107 ++ .../Critic/PolicyParameter/Behavior/StringList.pm | 165 ++ .../lib/Perl/Critic/PolicySummary.pod.PL | 154 ++ .../lib/Perl/Critic/ProfilePrototype.pm | 248 +++ .../lib/Perl/Critic/Statistics.pm | 315 ++++ .../lib/Perl/Critic/TestUtils.pm | 542 +++++++ .../lib/Perl/Critic/Theme.pm | 244 +++ .../lib/Perl/Critic/ThemeListing.pm | 124 ++ .../lib/Perl/Critic/UserProfile.pm | 424 +++++ .../lib/Perl/Critic/Utils.pm | 1657 ++++++++++++++++++++ .../lib/Perl/Critic/Utils/Constants.pm | 125 ++ .../lib/Perl/Critic/Utils/DataConversion.pm | 111 ++ .../lib/Perl/Critic/Utils/McCabe.pm | 200 +++ .../lib/Perl/Critic/Utils/POD.pm | 719 +++++++++ .../lib/Perl/Critic/Utils/PPI.pm | 141 ++ .../lib/Perl/Critic/Utils/PPIRegexp.pm | 328 ++++ .../lib/Perl/Critic/Violation.pm | 451 ++++++ .../libperl-critic-perl-1.088/t/00_modules.t | 296 ++++ .../t/01_bad_perlcriticrc | 29 + .../libperl-critic-perl-1.088/t/01_config.t | 407 +++++ .../t/01_config_bad_perlcriticrc.t | 151 ++ .../libperl-critic-perl-1.088/t/01_policy_config.t | 184 +++ .../libperl-critic-perl-1.088/t/02_policy.t | 164 ++ .../libperl-critic-perl-1.088/t/03_pragmas.t | 857 ++++++++++ .../t/04_optionsprocessor.t | 104 ++ .../libperl-critic-perl-1.088/t/05_utils.t | 421 +++++ .../libperl-critic-perl-1.088/t/05_utils_pod.t | 696 ++++++++ .../libperl-critic-perl-1.088/t/05_utils_ppi.t | 280 ++++ .../libperl-critic-perl-1.088/t/06_violation.t | 185 +++ .../libperl-critic-perl-1.088/t/07_perlcritic.t | 192 +++ .../libperl-critic-perl-1.088/t/08_document.t | 130 ++ .../libperl-critic-perl-1.088/t/09_theme.t | 259 +++ .../libperl-critic-perl-1.088/t/10_userprofile.t | 173 ++ .../libperl-critic-perl-1.088/t/11_policyfactory.t | 118 ++ .../libperl-critic-perl-1.088/t/12_policylisting.t | 63 + .../libperl-critic-perl-1.088/t/12_themelisting.t | 62 + .../t/13_bundled_policies.t | 45 + .../t/14_policy_parameter_behavior_boolean.t | 101 ++ .../t/14_policy_parameter_behavior_enumeration.t | 163 ++ .../t/14_policy_parameter_behavior_integer.t | 170 ++ .../t/14_policy_parameter_behavior_list_string.t | 170 ++ .../t/14_policy_parameter_behavior_string.t | 66 + .../t/14_policy_parameters.t | 130 ++ .../libperl-critic-perl-1.088/t/15_statistics.t | 105 ++ .../t/16_roundtrip_defaults.t | 236 +++ .../libperl-critic-perl-1.088/t/20_policies.t | 127 ++ .../t/20_policy_podspelling.t | 147 ++ .../t/20_policy_prohibithardtabs.t | 107 ++ .../t/20_policy_prohibittrailingwhitespace.t | 66 + .../t/20_policy_requireconsistentnewlines.t | 74 + .../t/20_policy_requiretidycode.t | 143 ++ .../libperl-critic-perl-1.088/t/92_memory_leaks.t | 72 + .../libperl-critic-perl-1.088/t/98_pod_syntax.t | 27 + .../libperl-critic-perl-1.088/t/99_pod_coverage.t | 70 + .../t/BuiltinFunctions/ProhibitBooleanGrep.run | 140 ++ .../t/BuiltinFunctions/ProhibitComplexMappings.run | 71 + .../t/BuiltinFunctions/ProhibitLvalueSubstr.run | 55 + .../BuiltinFunctions/ProhibitReverseSortBlock.run | 58 + .../t/BuiltinFunctions/ProhibitSleepViaSelect.run | 71 + .../t/BuiltinFunctions/ProhibitStringyEval.run | 45 + .../t/BuiltinFunctions/ProhibitStringySplit.run | 100 ++ .../t/BuiltinFunctions/ProhibitUniversalCan.run | 34 + .../t/BuiltinFunctions/ProhibitUniversalIsa.run | 34 + .../t/BuiltinFunctions/ProhibitVoidGrep.run | 65 + .../t/BuiltinFunctions/ProhibitVoidMap.run | 64 + .../t/BuiltinFunctions/RequireBlockGrep.run | 48 + .../t/BuiltinFunctions/RequireBlockMap.run | 48 + .../t/BuiltinFunctions/RequireGlobFunction.run | 51 + .../t/BuiltinFunctions/RequireSimpleSortBlock.run | 59 + .../t/ClassHierarchies/ProhibitAutoloading.run | 44 + .../t/ClassHierarchies/ProhibitExplicitISA.run | 34 + .../t/ClassHierarchies/ProhibitOneArgBless.run | 44 + .../t/CodeLayout/ProhibitParensWithBuiltins.run | 138 ++ .../t/CodeLayout/ProhibitQuotedWordLists.run | 67 + .../t/CodeLayout/RequireTrailingCommas.run | 122 ++ .../t/ControlStructures/ProhibitCStyleForLoops.run | 45 + .../ControlStructures/ProhibitCascadingIfElse.run | 91 ++ .../t/ControlStructures/ProhibitDeepNests.run | 139 ++ .../ProhibitLabelsWithSpecialBlockNames.run | 51 + .../ProhibitMutatingListFunctions.run | 133 ++ ...iveExpressionsInUnlessAndUntilConditions.run.PL | 296 ++++ .../ControlStructures/ProhibitPostfixControls.run | 163 ++ .../t/ControlStructures/ProhibitUnlessBlocks.run | 37 + .../ControlStructures/ProhibitUnreachableCode.run | 200 +++ .../t/ControlStructures/ProhibitUntilBlocks.run | 37 + .../Documentation/RequirePackageMatchesPodName.run | 262 ++++ .../t/Documentation/RequirePodAtEnd.run | 131 ++ .../t/Documentation/RequirePodSections.run | 130 ++ .../t/ErrorHandling/RequireCarping.run | 344 ++++ .../RequireCheckingReturnValueOfEval.run | 393 +++++ .../t/InputOutput/ProhibitBacktickOperators.run | 91 ++ .../t/InputOutput/ProhibitBarewordFileHandles.run | 37 + .../t/InputOutput/ProhibitExplicitStdin.run | 59 + .../t/InputOutput/ProhibitInteractiveTest.run | 14 + .../t/InputOutput/ProhibitJoinedReadline.run | 62 + .../t/InputOutput/ProhibitOneArgSelect.run | 39 + .../t/InputOutput/ProhibitReadlineInForLoop.run | 20 + .../t/InputOutput/ProhibitTwoArgOpen.run | 95 ++ .../RequireBracedFileHandleWithPrint.run | 98 ++ .../t/InputOutput/RequireBriefOpen.run | 345 ++++ .../t/InputOutput/RequireCheckedClose.run | 146 ++ .../t/InputOutput/RequireCheckedOpen.run | 148 ++ .../t/InputOutput/RequireCheckedSyscalls.run | 328 ++++ .../t/Miscellanea/ProhibitFormats.run | 31 + .../t/Miscellanea/ProhibitTies.run | 27 + .../t/Miscellanea/RequireRcsKeywords.run | 76 + .../t/Modules/ProhibitAutomaticExportation.run | 97 ++ .../t/Modules/ProhibitEvilModules.run | 66 + .../t/Modules/ProhibitExcessMainComplexity.run | 102 ++ .../t/Modules/ProhibitMultiplePackages.run | 34 + .../t/Modules/RequireBarewordIncludes.run | 35 + .../t/Modules/RequireEndWithOne.run | 109 ++ .../t/Modules/RequireExplicitPackage.run | 109 ++ .../t/Modules/RequireFilenameMatchesPackage.run | 203 +++ .../t/Modules/RequireNoMatchVarsWithUseEnglish.run | 232 +++ .../t/Modules/RequireVersionVar.run | 105 ++ .../t/NamingConventions/ProhibitAmbiguousNames.run | 110 ++ .../t/NamingConventions/ProhibitMixedCaseSubs.run | 30 + .../t/NamingConventions/ProhibitMixedCaseVars.run | 58 + .../t/References/ProhibitDoubleSigils.run | 54 + .../ProhibitCaptureWithoutTest.run | 95 ++ .../RegularExpressions/ProhibitComplexRegexes.run | 75 + .../ProhibitEnumeratedClasses.run | 92 ++ .../ProhibitEscapedMetacharacters.run | 62 + .../ProhibitFixedStringMatches.run | 112 ++ .../ProhibitSingleCharAlternation.run | 54 + .../t/RegularExpressions/ProhibitUnusedCapture.run | 314 ++++ .../ProhibitUnusualDelimiters.run | 89 ++ .../RequireBracesForMultiline.run | 109 ++ .../RequireExtendedFormatting.run | 85 + .../RequireLineBoundaryMatching.run | 84 + .../t/Subroutines/ProhibitAmpersandSigils.run | 39 + .../t/Subroutines/ProhibitBuiltinHomonyms.run | 28 + .../t/Subroutines/ProhibitExcessComplexity.run | 46 + .../t/Subroutines/ProhibitExplicitReturnUndef.run | 38 + .../t/Subroutines/ProhibitManyArgs.run | 105 ++ .../t/Subroutines/ProhibitNestedSubs.run | 33 + .../t/Subroutines/ProhibitSubroutinePrototypes.run | 16 + .../t/Subroutines/ProtectPrivateSubs.run | 29 + .../t/Subroutines/RequireArgUnpacking.run | 202 +++ .../t/Subroutines/RequireFinalReturn.run | 158 ++ .../t/TestingAndDebugging/ProhibitNoStrict.run | 96 ++ .../t/TestingAndDebugging/ProhibitNoWarnings.run | 69 + .../ProhibitProlongedStrictureOverride.run | 79 + .../t/TestingAndDebugging/RequireTestLabels.run | 94 ++ .../t/TestingAndDebugging/RequireUseStrict.run | 161 ++ .../t/TestingAndDebugging/RequireUseWarnings.run | 196 +++ .../ProhibitCommaSeparatedStatements.run | 283 ++++ .../ProhibitConstantPragma.run | 34 + .../t/ValuesAndExpressions/ProhibitEmptyQuotes.run | 52 + .../ProhibitEscapedCharacters.run | 37 + .../ProhibitImplicitNewlines.run | 65 + .../ProhibitInterpolationOfLiterals.run | 83 + .../ValuesAndExpressions/ProhibitLeadingZeros.run | 168 ++ .../ProhibitLongChainsOfMethodCalls.run | 90 ++ .../ValuesAndExpressions/ProhibitMagicNumbers.run | 935 +++++++++++ .../ProhibitMismatchedOperators.run | 61 + .../ProhibitMixedBooleanOperators.run | 76 + .../t/ValuesAndExpressions/ProhibitNoisyQuotes.run | 85 + ...ProhibitQuotesAsQuotelikeOperatorDelimiters.run | 181 +++ .../ProhibitVersionStrings.run | 62 + .../RequireInterpolationOfMetachars.run | 69 + .../RequireNumberSeparators.run | 95 ++ .../RequireQuotedHeredocTerminator.run | 65 + .../RequireUpperCaseHeredocTerminator.run | 54 + .../Variables/ProhibitConditionalDeclarations.run | 106 ++ .../t/Variables/ProhibitLocalVars.run | 46 + .../t/Variables/ProhibitMatchVars.run | 46 + .../t/Variables/ProhibitPackageVars.run | 149 ++ .../t/Variables/ProhibitPerl4PackageNames.run | 259 +++ .../t/Variables/ProhibitPunctuationVars.run | 72 + .../t/Variables/ProhibitUnusedVariables.run | 132 ++ .../t/Variables/ProtectPrivateVars.run | 41 + .../RequireInitializationForLocalVars.run | 53 + .../t/Variables/RequireLexicalLoopIterators.run | 52 + .../RequireLocalizedPunctuationVars.run.PL | 244 +++ .../t/Variables/RequireNegativeIndices.run | 79 + ...erate_without_optional_dependencies_wrappers.PL | 156 ++ .../t/tlib/Perl/Critic/Policy/Test.pm | 34 + .../Critic/TestUtilitiesWithMinimalDependencies.pm | 97 ++ .../t/tlib/ViolationTest.pm | 35 + .../t/tlib/ViolationTest2.pm | 28 + .../libperl-critic-perl-1.088/tools/ppidump | 66 + .../libperl-critic-perl-1.088/tools/svnkeywords | 1 + .../xt/author/40_criticize-code.t | 93 ++ .../xt/author/40_perlcriticrc-code | 37 + .../xt/author/41_criticize-policies.t | 67 + .../xt/author/41_perlcriticrc-policies | 15 + .../xt/author/80_policysummary.t | 96 ++ .../xt/author/93_version.t | 56 + .../xt/author/94_includes.t | 102 ++ .../xt/author/95_kwalitee.t | 21 + .../libperl-critic-perl_1.088-1.diff.gz | Bin 0 -> 2874 bytes .../libperl-critic-perl_1.088-1.dsc | 33 + .../libperl-critic-perl_1.088.orig.tar.gz | Bin 0 -> 367270 bytes .../libpod-coverage-perl-0.19/debian/changelog | 9 +- .../libpod-coverage-perl_0.19-1maemo1.diff.gz | Bin 0 -> 2960 bytes .../libpod-coverage-perl_0.19-1maemo1.dsc | 13 + .../libpod-coverage-perl_0.19-1maemo1_i386.changes | 20 + .../libpod-escapes-perl-1.04/debian/changelog | 9 +- .../libpod-escapes-perl_1.04-1maemo1.diff.gz | Bin 0 -> 1632 bytes .../libpod-escapes-perl_1.04-1maemo1.dsc | 11 + .../libpod-escapes-perl_1.04-1maemo1_i386.changes | 20 + .../libpod-simple-perl-3.07/debian/changelog | 9 +- .../libpod-simple-perl-3.07/debian/control | 6 +- .../libpod-simple-perl_3.07-1maemo1.dsc | 12 + .../libpod-simple-perl_3.07-1maemo1.tar.gz | Bin 0 -> 264805 bytes .../libpod-simple-perl_3.07-1maemo1_i386.changes | 20 + .../libsub-uplevel-perl-0.1901/debian/changelog | 9 +- .../libsub-uplevel-perl-0.1901/debian/control | 2 +- .../libtest-exception-perl-0.27/debian/changelog | 9 +- .../libtest-harness-perl-3.12/debian/changelog | 9 +- .../libtest-harness-perl-3.12/debian/control | 2 +- .../libtest-harness-perl_3.12-1maemo1.diff.gz | Bin 0 -> 4124 bytes .../libtest-harness-perl_3.12-1maemo1.dsc | 13 + .../libtest-harness-perl_3.12-1maemo1_i386.changes | 22 + .../libtest-perl-critic-perl-1.01/debian/changelog | 9 +- .../libtest-perl-critic-perl-1.01/debian/control | 2 +- .../debian/changelog | 9 +- .../libtest-pod-coverage-perl_1.08-3maemo1.diff.gz | Bin 0 -> 2688 bytes .../libtest-pod-coverage-perl_1.08-3maemo1.dsc | 13 + ...est-pod-coverage-perl_1.08-3maemo1_i386.changes | 20 + .../libtest-pod-perl-1.26/debian/changelog | 9 +- .../libtest-pod-perl_1.26-2maemo1.diff.gz | Bin 0 -> 2825 bytes .../libtest-pod-perl_1.26-2maemo1.dsc | 13 + .../libtest-pod-perl_1.26-2maemo1_i386.changes | 20 + .../libtest-simple-perl-0.80/debian/changelog | 9 +- .../libtest-simple-perl-0.80/debian/control | 2 +- .../libtest-simple-perl_0.80-1maemo1.diff.gz | Bin 0 -> 2004 bytes .../libtest-simple-perl_0.80-1maemo1.dsc | 13 + .../libtest-simple-perl_0.80-1maemo1_i386.changes | 20 + .../libtree-dagnode-perl-1.06/debian/changelog | 9 +- .../libtree-dagnode-perl-1.06/debian/control | 2 +- .../libtree-dagnode-perl_1.06-1maemo1.diff.gz | Bin 0 -> 2239 bytes .../libtree-dagnode-perl_1.06-1maemo1.dsc | 13 + .../libtree-dagnode-perl_1.06-1maemo1_i386.changes | 20 + .../liburi-perl-1.35.dfsg.1/debian/changelog | 9 +- .../liburi-perl_1.35.dfsg.1-1maemo1.diff.gz | Bin 0 -> 3780 bytes .../liburi-perl_1.35.dfsg.1-1maemo1.dsc | 12 + .../liburi-perl_1.35.dfsg.1-1maemo1_i386.changes | 20 + .../libwww-mechanize-perl-1.34/debian/changelog | 9 +- .../libwww-mechanize-perl-1.34/debian/control | 2 +- .../libwww-perl/libwww-perl-5.813/debian/changelog | 9 +- .../libwww-perl/libwww-perl_5.813-1maemo1.diff.gz | Bin 0 -> 9163 bytes deb-src/libwww-perl/libwww-perl_5.813-1maemo1.dsc | 13 + .../libwww-perl_5.813-1maemo1_i386.changes | 20 + .../d/dh-make-perl/dh-make-perl_0.47maemo1_all.deb | Bin 0 -> 36904 bytes .../libarchive-zip-perl_1.18-1maemo1_all.deb | Bin 0 -> 90526 bytes .../libarray-compare-perl_1.16-1maemo1_all.deb | Bin 0 -> 14050 bytes ...lass-accessor-chained-perl_0.01.1maemo1_all.deb | Bin 0 -> 8118 bytes .../libclass-accessor-perl_0.31-2maemo1_all.deb | Bin 0 -> 24654 bytes ...bcompress-raw-zlib-perl_2.012-11maemo1_i386.deb | Bin 0 -> 56346 bytes .../libdevel-symdump-perl_2.08-1maemo1_all.deb | Bin 0 -> 16502 bytes ...libemail-date-format-perl_1.002-1maemo1_all.deb | Bin 0 -> 6360 bytes .../libextutils-cbuilder-perl_0.23-1maemo1_all.deb | Bin 0 -> 27458 bytes .../libextutils-parsexs-perl_2.19-1maemo1_all.deb | Bin 0 -> 29794 bytes .../libfile-chdir-perl_0.06-2.1maemo1_all.deb | Bin 0 -> 9764 bytes .../libfile-which-perl_0.05-7maemo1_all.deb | Bin 0 -> 12252 bytes .../libhtml-parser-perl_3.56-11maemo1_i386.deb | Bin 0 -> 106514 bytes .../libhtml-tagset-perl_3.20-2maemo1_all.deb | Bin 0 -> 13596 bytes .../libhtml-tree-perl_3.23-1maemo1_all.deb | Bin 0 -> 208854 bytes .../libio-compress-base-perl_2.012-1maemo1_all.deb | Bin 0 -> 59498 bytes .../libio-compress-zlib-perl_2.012-1maemo1_all.deb | Bin 0 -> 151274 bytes .../libio-socket-ssl-perl_1.16-11maemo1_all.deb | Bin 0 -> 55164 bytes .../libio-stringy-perl_2.110-4maemo1_all.deb | Bin 0 -> 99462 bytes .../libmodule-depends-perl_0.14-1maemo1_all.deb | Bin 0 -> 11290 bytes .../libnet-libidn-perl_0.07-1maemo1_i386.deb | Bin 0 -> 23292 bytes .../libnet-ssleay-perl_1.35-1maemo1_i386.deb | Bin 0 -> 211240 bytes .../libpar-dist-perl_0.31-1maemo1_all.deb | Bin 0 -> 23374 bytes .../libpod-coverage-perl_0.19-1maemo1_all.deb | Bin 0 -> 23920 bytes .../libpod-escapes-perl_1.04-1maemo1_all.deb | Bin 0 -> 13054 bytes .../libpod-simple-perl_3.07-1maemo1_all.deb | Bin 0 -> 189336 bytes .../libtap-parser-perl_3.12-1maemo1_all.deb | Bin 0 -> 15162 bytes .../libtest-harness-perl_3.12-1maemo1_all.deb | Bin 0 -> 216366 bytes .../libtest-pod-coverage-perl_1.08-3maemo1_all.deb | Bin 0 -> 10872 bytes .../libtest-pod-perl_1.26-2maemo1_all.deb | Bin 0 -> 11110 bytes .../libtest-simple-perl_0.80-1maemo1_all.deb | Bin 0 -> 99622 bytes .../libtree-dagnode-perl_1.06-1maemo1_all.deb | Bin 0 -> 53546 bytes .../liburi-perl_1.35.dfsg.1-1maemo1_all.deb | Bin 0 -> 88122 bytes .../libwww-perl/libwww-perl_5.813-1maemo1_all.deb | Bin 0 -> 373304 bytes 706 files changed, 75230 insertions(+), 56 deletions(-) create mode 100644 deb-src/core create mode 100644 deb-src/dh-make-perl/dh-make-perl-0.47/build-stamp create mode 100644 deb-src/dh-make-perl/dh-make-perl-0.47/debian/dh-make-perl.debhelper.log create mode 100644 deb-src/dh-make-perl/dh-make-perl-0.47/debian/dh-make-perl.substvars create mode 100644 deb-src/dh-make-perl/dh-make-perl-0.47/debian/dh-make-perl/DEBIAN/control create mode 100644 deb-src/dh-make-perl/dh-make-perl-0.47/debian/dh-make-perl/DEBIAN/md5sums create mode 100755 deb-src/dh-make-perl/dh-make-perl-0.47/debian/dh-make-perl/usr/bin/dh-make-perl create mode 100644 deb-src/dh-make-perl/dh-make-perl-0.47/debian/dh-make-perl/usr/share/dh-make-perl/overrides create mode 100755 deb-src/dh-make-perl/dh-make-perl-0.47/debian/dh-make-perl/usr/share/dh-make-perl/rules.MakeMaker.noxs create mode 100755 deb-src/dh-make-perl/dh-make-perl-0.47/debian/dh-make-perl/usr/share/dh-make-perl/rules.MakeMaker.xs create mode 100755 deb-src/dh-make-perl/dh-make-perl-0.47/debian/dh-make-perl/usr/share/dh-make-perl/rules.Module-Build.noxs create mode 100755 deb-src/dh-make-perl/dh-make-perl-0.47/debian/dh-make-perl/usr/share/dh-make-perl/rules.Module-Build.xs create mode 100755 deb-src/dh-make-perl/dh-make-perl-0.47/debian/dh-make-perl/usr/share/dh-make-perl/rules.dh7.noxs create mode 100755 deb-src/dh-make-perl/dh-make-perl-0.47/debian/dh-make-perl/usr/share/dh-make-perl/rules.dh7.xs create mode 100644 deb-src/dh-make-perl/dh-make-perl-0.47/debian/dh-make-perl/usr/share/doc/dh-make-perl/README create mode 100644 deb-src/dh-make-perl/dh-make-perl-0.47/debian/dh-make-perl/usr/share/doc/dh-make-perl/changelog.gz create mode 100644 deb-src/dh-make-perl/dh-make-perl-0.47/debian/dh-make-perl/usr/share/doc/dh-make-perl/copyright create mode 100644 deb-src/dh-make-perl/dh-make-perl-0.47/debian/dh-make-perl/usr/share/man/man1/dh-make-perl.1.gz create mode 100644 deb-src/dh-make-perl/dh-make-perl-0.47/debian/files create mode 100644 deb-src/dh-make-perl/dh-make-perl-0.47/dh-make-perl.1 create mode 100644 deb-src/dh-make-perl/dh-make-perl-0.47maemo1/COPYING create mode 100644 deb-src/dh-make-perl/dh-make-perl-0.47maemo1/README create mode 100644 deb-src/dh-make-perl/dh-make-perl-0.47maemo1/Strange-0.1/Changes create mode 100644 deb-src/dh-make-perl/dh-make-perl-0.47maemo1/Strange-0.1/MANIFEST create mode 100644 deb-src/dh-make-perl/dh-make-perl-0.47maemo1/Strange-0.1/Makefile.PL create mode 100644 deb-src/dh-make-perl/dh-make-perl-0.47maemo1/Strange-0.1/Strange.pm create mode 100644 deb-src/dh-make-perl/dh-make-perl-0.47maemo1/Strange-0.1/test.pl create mode 100644 deb-src/dh-make-perl/dh-make-perl-0.47maemo1/Strange-2.1/Changes create mode 100644 deb-src/dh-make-perl/dh-make-perl-0.47maemo1/Strange-2.1/MANIFEST create mode 100644 deb-src/dh-make-perl/dh-make-perl-0.47maemo1/Strange-2.1/Makefile.PL create mode 100644 deb-src/dh-make-perl/dh-make-perl-0.47maemo1/Strange-2.1/README create mode 100644 deb-src/dh-make-perl/dh-make-perl-0.47maemo1/Strange-2.1/Strange.pm create mode 100644 deb-src/dh-make-perl/dh-make-perl-0.47maemo1/Strange-2.1/Strange.xs create mode 100644 deb-src/dh-make-perl/dh-make-perl-0.47maemo1/Strange-2.1/test.pl create mode 100644 deb-src/dh-make-perl/dh-make-perl-0.47maemo1/debian/changelog create mode 100644 deb-src/dh-make-perl/dh-make-perl-0.47maemo1/debian/compat create mode 100644 deb-src/dh-make-perl/dh-make-perl-0.47maemo1/debian/control create mode 100644 deb-src/dh-make-perl/dh-make-perl-0.47maemo1/debian/copyright create mode 100755 deb-src/dh-make-perl/dh-make-perl-0.47maemo1/debian/rules create mode 100755 deb-src/dh-make-perl/dh-make-perl-0.47maemo1/dh-make-perl create mode 100644 deb-src/dh-make-perl/dh-make-perl-0.47maemo1/overrides create mode 100755 deb-src/dh-make-perl/dh-make-perl-0.47maemo1/rules.MakeMaker.noxs create mode 100755 deb-src/dh-make-perl/dh-make-perl-0.47maemo1/rules.MakeMaker.xs create mode 100755 deb-src/dh-make-perl/dh-make-perl-0.47maemo1/rules.Module-Build.noxs create mode 100755 deb-src/dh-make-perl/dh-make-perl-0.47maemo1/rules.Module-Build.xs create mode 100755 deb-src/dh-make-perl/dh-make-perl-0.47maemo1/rules.dh7.noxs create mode 100755 deb-src/dh-make-perl/dh-make-perl-0.47maemo1/rules.dh7.xs create mode 100644 deb-src/dh-make-perl/dh-make-perl_0.47maemo1.dsc create mode 100644 deb-src/dh-make-perl/dh-make-perl_0.47maemo1.tar.gz create mode 100644 deb-src/dh-make-perl/dh-make-perl_0.47maemo1_i386.changes create mode 100644 deb-src/libarchive-zip-perl/libarchive-zip-perl_1.18-1maemo1.diff.gz create mode 100644 deb-src/libarchive-zip-perl/libarchive-zip-perl_1.18-1maemo1.dsc create mode 100644 deb-src/libarchive-zip-perl/libarchive-zip-perl_1.18-1maemo1_i386.changes create mode 100644 deb-src/libarray-compare-perl/libarray-compare-perl_1.16-1maemo1.diff.gz create mode 100644 deb-src/libarray-compare-perl/libarray-compare-perl_1.16-1maemo1.dsc create mode 100644 deb-src/libarray-compare-perl/libarray-compare-perl_1.16-1maemo1_i386.changes create mode 100644 deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/Build.PL create mode 100644 deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/Changes create mode 100644 deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/MANIFEST create mode 100644 deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/META.yml create mode 100644 deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/Makefile.PL create mode 100644 deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/README create mode 100644 deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/debian/changelog create mode 100644 deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/debian/compat create mode 100644 deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/debian/control create mode 100644 deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/debian/copyright create mode 100755 deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/debian/rules create mode 100644 deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/debian/watch create mode 100644 deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/lib/Class/Accessor/Chained.pm create mode 100644 deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/lib/Class/Accessor/Chained/Fast.pm create mode 100644 deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/t/00compile.t create mode 100644 deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/t/chained.t create mode 100644 deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/Makefile create mode 100644 deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/blib/arch/auto/Class/Accessor/Chained/.exists create mode 100644 deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/blib/lib/Class/Accessor/.exists create mode 100644 deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/blib/lib/Class/Accessor/Chained.pm create mode 100644 deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/blib/lib/Class/Accessor/Chained/Fast.pm create mode 100644 deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/blib/lib/auto/Class/Accessor/Chained/.exists create mode 100644 deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/blib/man3/.exists create mode 100644 deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/blib/man3/Class::Accessor::Chained.3pm create mode 100644 deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/blib/man3/Class::Accessor::Chained::Fast.3pm create mode 100644 deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/build-stamp create mode 100644 deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/debian/files create mode 100644 deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/debian/libclass-accessor-chained-perl.debhelper.log create mode 100644 deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/debian/libclass-accessor-chained-perl.substvars create mode 100644 deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/debian/libclass-accessor-chained-perl/DEBIAN/control create mode 100644 deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/debian/libclass-accessor-chained-perl/DEBIAN/md5sums create mode 100644 deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/debian/libclass-accessor-chained-perl/usr/share/doc/libclass-accessor-chained-perl/README create mode 100644 deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/debian/libclass-accessor-chained-perl/usr/share/doc/libclass-accessor-chained-perl/changelog.Debian.gz create mode 100644 deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/debian/libclass-accessor-chained-perl/usr/share/doc/libclass-accessor-chained-perl/changelog.gz create mode 100644 deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/debian/libclass-accessor-chained-perl/usr/share/doc/libclass-accessor-chained-perl/copyright create mode 100644 deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/debian/libclass-accessor-chained-perl/usr/share/man/man3/Class::Accessor::Chained.3pm.gz create mode 100644 deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/debian/libclass-accessor-chained-perl/usr/share/man/man3/Class::Accessor::Chained::Fast.3pm.gz create mode 100644 deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/debian/libclass-accessor-chained-perl/usr/share/perl5/Class/Accessor/Chained.pm create mode 100644 deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/debian/libclass-accessor-chained-perl/usr/share/perl5/Class/Accessor/Chained/Fast.pm create mode 100644 deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/install-stamp create mode 100644 deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/pm_to_blib create mode 100644 deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl_0.01.1maemo1.dsc create mode 100644 deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl_0.01.1maemo1.tar.gz create mode 100644 deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl_0.01.1maemo1_i386.changes create mode 100644 deb-src/libclass-accessor-perl/libclass-accessor-perl_0.31-2maemo1.diff.gz create mode 100644 deb-src/libclass-accessor-perl/libclass-accessor-perl_0.31-2maemo1.dsc create mode 100644 deb-src/libclass-accessor-perl/libclass-accessor-perl_0.31-2maemo1_i386.changes create mode 100644 deb-src/libcompress-raw-zlib-perl/libcompress-raw-zlib-perl_2.012-11maemo1.diff.gz create mode 100644 deb-src/libcompress-raw-zlib-perl/libcompress-raw-zlib-perl_2.012-11maemo1.dsc create mode 100644 deb-src/libcompress-raw-zlib-perl/libcompress-raw-zlib-perl_2.012-11maemo1_i386.changes create mode 100644 deb-src/libdevel-symdump-perl/libdevel-symdump-perl_2.08-1maemo1.diff.gz create mode 100644 deb-src/libdevel-symdump-perl/libdevel-symdump-perl_2.08-1maemo1.dsc create mode 100644 deb-src/libdevel-symdump-perl/libdevel-symdump-perl_2.08-1maemo1_i386.changes create mode 100644 deb-src/libemail-date-format-perl/libemail-date-format-perl_1.002-1maemo1.diff.gz create mode 100644 deb-src/libemail-date-format-perl/libemail-date-format-perl_1.002-1maemo1.dsc create mode 100644 deb-src/libemail-date-format-perl/libemail-date-format-perl_1.002-1maemo1_i386.changes create mode 100644 deb-src/libextutils-cbuilder-perl/libextutils-cbuilder-perl_0.23-1maemo1.diff.gz create mode 100644 deb-src/libextutils-cbuilder-perl/libextutils-cbuilder-perl_0.23-1maemo1.dsc create mode 100644 deb-src/libextutils-cbuilder-perl/libextutils-cbuilder-perl_0.23-1maemo1_i386.changes create mode 100644 deb-src/libextutils-parsexs-perl/libextutils-parsexs-perl_2.19-1maemo1.diff.gz create mode 100644 deb-src/libextutils-parsexs-perl/libextutils-parsexs-perl_2.19-1maemo1.dsc create mode 100644 deb-src/libextutils-parsexs-perl/libextutils-parsexs-perl_2.19-1maemo1_i386.changes create mode 100644 deb-src/libfile-chdir-perl/libfile-chdir-perl_0.06-2.1maemo1.dsc create mode 100644 deb-src/libfile-chdir-perl/libfile-chdir-perl_0.06-2.1maemo1.tar.gz create mode 100644 deb-src/libfile-chdir-perl/libfile-chdir-perl_0.06-2.1maemo1_i386.changes create mode 100644 deb-src/libfile-which-perl/libfile-which-perl_0.05-7maemo1.diff.gz create mode 100644 deb-src/libfile-which-perl/libfile-which-perl_0.05-7maemo1.dsc create mode 100644 deb-src/libfile-which-perl/libfile-which-perl_0.05-7maemo1_i386.changes create mode 100644 deb-src/libhtml-parser-perl/libhtml-parser-perl_3.56-11maemo1.diff.gz create mode 100644 deb-src/libhtml-parser-perl/libhtml-parser-perl_3.56-11maemo1.dsc create mode 100644 deb-src/libhtml-parser-perl/libhtml-parser-perl_3.56-11maemo1_i386.changes create mode 100644 deb-src/libhtml-tagset-perl/libhtml-tagset-perl_3.20-2maemo1.diff.gz create mode 100644 deb-src/libhtml-tagset-perl/libhtml-tagset-perl_3.20-2maemo1.dsc create mode 100644 deb-src/libhtml-tagset-perl/libhtml-tagset-perl_3.20-2maemo1_i386.changes create mode 100644 deb-src/libhtml-tree-perl/libhtml-tree-perl_3.23-1maemo1.diff.gz create mode 100644 deb-src/libhtml-tree-perl/libhtml-tree-perl_3.23-1maemo1.dsc create mode 100644 deb-src/libhtml-tree-perl/libhtml-tree-perl_3.23-1maemo1_i386.changes create mode 100644 deb-src/libio-compress-base-perl/libio-compress-base-perl_2.012-1maemo1.diff.gz create mode 100644 deb-src/libio-compress-base-perl/libio-compress-base-perl_2.012-1maemo1.dsc create mode 100644 deb-src/libio-compress-base-perl/libio-compress-base-perl_2.012-1maemo1_i386.changes create mode 100644 deb-src/libio-compress-zlib-perl/libio-compress-zlib-perl_2.012-1maemo1.diff.gz create mode 100644 deb-src/libio-compress-zlib-perl/libio-compress-zlib-perl_2.012-1maemo1.dsc create mode 100644 deb-src/libio-compress-zlib-perl/libio-compress-zlib-perl_2.012-1maemo1_i386.changes create mode 100644 deb-src/libio-socket-ssl-perl/libio-socket-ssl-perl_1.16-11maemo1.dsc create mode 100644 deb-src/libio-socket-ssl-perl/libio-socket-ssl-perl_1.16-11maemo1.tar.gz create mode 100644 deb-src/libio-socket-ssl-perl/libio-socket-ssl-perl_1.16-11maemo1_i386.changes create mode 100644 deb-src/libio-stringy-perl/io-stringy_2.110-4maemo1.diff.gz create mode 100644 deb-src/libio-stringy-perl/io-stringy_2.110-4maemo1.dsc create mode 100644 deb-src/libio-stringy-perl/io-stringy_2.110-4maemo1_i386.changes create mode 100644 deb-src/libmodule-depends-perl/libmodule-depends-perl_0.14-1maemo1.diff.gz create mode 100644 deb-src/libmodule-depends-perl/libmodule-depends-perl_0.14-1maemo1.dsc create mode 100644 deb-src/libmodule-depends-perl/libmodule-depends-perl_0.14-1maemo1_i386.changes create mode 100644 deb-src/libnet-libidn-perl/libnet-libidn-perl-0.07/Artistic create mode 100644 deb-src/libnet-libidn-perl/libnet-libidn-perl-0.07/Changes create mode 100644 deb-src/libnet-libidn-perl/libnet-libidn-perl-0.07/LibIDN.xs create mode 100644 deb-src/libnet-libidn-perl/libnet-libidn-perl-0.07/MANIFEST create mode 100644 deb-src/libnet-libidn-perl/libnet-libidn-perl-0.07/META.yml create mode 100644 deb-src/libnet-libidn-perl/libnet-libidn-perl-0.07/Makefile.PL create mode 100644 deb-src/libnet-libidn-perl/libnet-libidn-perl-0.07/README create mode 100644 deb-src/libnet-libidn-perl/libnet-libidn-perl-0.07/_LibIDN.pm create mode 100644 deb-src/libnet-libidn-perl/libnet-libidn-perl-0.07/_test.pl create mode 100644 deb-src/libnet-libidn-perl/libnet-libidn-perl-0.07/debian/changelog create mode 100644 deb-src/libnet-libidn-perl/libnet-libidn-perl-0.07/debian/compat create mode 100644 deb-src/libnet-libidn-perl/libnet-libidn-perl-0.07/debian/control create mode 100644 deb-src/libnet-libidn-perl/libnet-libidn-perl-0.07/debian/copyright create mode 100755 deb-src/libnet-libidn-perl/libnet-libidn-perl-0.07/debian/rules create mode 100644 deb-src/libnet-libidn-perl/libnet-libidn-perl_0.07-1.diff.gz create mode 100644 deb-src/libnet-libidn-perl/libnet-libidn-perl_0.07-1.dsc create mode 100644 deb-src/libnet-libidn-perl/libnet-libidn-perl_0.07-1maemo1.diff.gz create mode 100644 deb-src/libnet-libidn-perl/libnet-libidn-perl_0.07-1maemo1.dsc create mode 100644 deb-src/libnet-libidn-perl/libnet-libidn-perl_0.07-1maemo1_i386.changes create mode 100644 deb-src/libnet-libidn-perl/libnet-libidn-perl_0.07.orig.tar.gz create mode 100644 deb-src/libnet-ssleay-perl/libnet-ssleay-perl_1.35-1maemo1.diff.gz create mode 100644 deb-src/libnet-ssleay-perl/libnet-ssleay-perl_1.35-1maemo1.dsc create mode 100644 deb-src/libnet-ssleay-perl/libnet-ssleay-perl_1.35-1maemo1_i386.changes create mode 100644 deb-src/libpar-dist-perl/libpar-dist-perl_0.31-1maemo1.diff.gz create mode 100644 deb-src/libpar-dist-perl/libpar-dist-perl_0.31-1maemo1.dsc create mode 100644 deb-src/libpar-dist-perl/libpar-dist-perl_0.31-1maemo1_i386.changes create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/Build.PL create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/Changes create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/INSTALL create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/LICENSE create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/MANIFEST create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/META.yml create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/Makefile.PL create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/README create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/TODO.pod create mode 100755 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/bin/perlcritic create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/debian/changelog create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/debian/compat create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/debian/control create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/debian/copyright create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/debian/docs create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/debian/examples create mode 100755 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/debian/rules create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/debian/watch create mode 100755 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/examples/generatestats create mode 100755 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/examples/loadanalysisdb create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/examples/perlcriticrc create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/examples/perlcriticrc-conway create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/extras/KomodoIntegration.pod create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/extras/perlcritic.el create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/AIX.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/Amiga.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/Apple.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/BSDOS.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/BeOS.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/Cygwin.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/DEC.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/DGUX.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/DragonflyBSD.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/Dynix.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/FreeBSD.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/HPUX.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/Interix.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/Irix.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/Linux.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/MPEiX.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/MSDOS.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/MSWin32.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/MacOSX.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/MacOSclassic.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/MachTen.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/MicrosoftWindows.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/NeXT.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/NetBSD.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/Netware.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/OS2.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/OS390.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/OS400.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/OSF.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/OpenBSD.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/POSIXBC.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/RISCOS.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/SCO.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/Solaris.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/Sun.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/SunOS.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/SysVr4.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/SysVr5.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/Unicos.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/Unix.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/VMESA.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/VMS.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/VOS.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/CheckOS.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Perl/Critic/BuildUtilities.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Config.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/DEVELOPER.pod create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Document.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/AggregateConfiguration.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/Configuration.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/Configuration/Generic.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/Configuration/Option.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/Configuration/Option/Global.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/Configuration/Option/Global/ExtraParameter.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/Configuration/Option/Global/ParameterValue.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/Configuration/Option/Policy.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/Configuration/Option/Policy/ExtraParameter.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/Configuration/Option/Policy/ParameterValue.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/Fatal.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/Fatal/Generic.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/Fatal/Internal.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/Fatal/PolicyDefinition.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/IO.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/Parse.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/OptionsProcessor.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitBooleanGrep.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitComplexMappings.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitLvalueSubstr.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitReverseSortBlock.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitSleepViaSelect.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitStringyEval.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitStringySplit.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitUniversalCan.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitUniversalIsa.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitVoidGrep.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitVoidMap.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/BuiltinFunctions/RequireBlockGrep.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/BuiltinFunctions/RequireBlockMap.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/BuiltinFunctions/RequireGlobFunction.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/BuiltinFunctions/RequireSimpleSortBlock.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ClassHierarchies/ProhibitAutoloading.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ClassHierarchies/ProhibitExplicitISA.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ClassHierarchies/ProhibitOneArgBless.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/CodeLayout/ProhibitHardTabs.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/CodeLayout/ProhibitParensWithBuiltins.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/CodeLayout/ProhibitQuotedWordLists.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/CodeLayout/ProhibitTrailingWhitespace.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/CodeLayout/RequireConsistentNewlines.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/CodeLayout/RequireTidyCode.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/CodeLayout/RequireTrailingCommas.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ControlStructures/ProhibitCStyleForLoops.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ControlStructures/ProhibitCascadingIfElse.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ControlStructures/ProhibitDeepNests.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ControlStructures/ProhibitLabelsWithSpecialBlockNames.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ControlStructures/ProhibitMutatingListFunctions.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ControlStructures/ProhibitNegativeExpressionsInUnlessAndUntilConditions.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ControlStructures/ProhibitPostfixControls.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ControlStructures/ProhibitUnlessBlocks.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ControlStructures/ProhibitUnreachableCode.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ControlStructures/ProhibitUntilBlocks.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/Documentation/PodSpelling.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/Documentation/RequirePackageMatchesPodName.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/Documentation/RequirePodAtEnd.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/Documentation/RequirePodSections.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ErrorHandling/RequireCarping.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ErrorHandling/RequireCheckingReturnValueOfEval.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/InputOutput/ProhibitBacktickOperators.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/InputOutput/ProhibitBarewordFileHandles.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/InputOutput/ProhibitExplicitStdin.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/InputOutput/ProhibitInteractiveTest.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/InputOutput/ProhibitJoinedReadline.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/InputOutput/ProhibitOneArgSelect.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/InputOutput/ProhibitReadlineInForLoop.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/InputOutput/ProhibitTwoArgOpen.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/InputOutput/RequireBracedFileHandleWithPrint.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/InputOutput/RequireBriefOpen.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/InputOutput/RequireCheckedClose.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/InputOutput/RequireCheckedOpen.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/InputOutput/RequireCheckedSyscalls.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/Miscellanea/ProhibitFormats.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/Miscellanea/ProhibitTies.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/Miscellanea/RequireRcsKeywords.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/Modules/ProhibitAutomaticExportation.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/Modules/ProhibitEvilModules.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/Modules/ProhibitExcessMainComplexity.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/Modules/ProhibitMultiplePackages.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/Modules/RequireBarewordIncludes.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/Modules/RequireEndWithOne.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/Modules/RequireExplicitPackage.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/Modules/RequireFilenameMatchesPackage.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/Modules/RequireNoMatchVarsWithUseEnglish.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/Modules/RequireVersionVar.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/NamingConventions/ProhibitAmbiguousNames.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/NamingConventions/ProhibitMixedCaseSubs.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/NamingConventions/ProhibitMixedCaseVars.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/References/ProhibitDoubleSigils.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/RegularExpressions/ProhibitCaptureWithoutTest.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/RegularExpressions/ProhibitComplexRegexes.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/RegularExpressions/ProhibitEnumeratedClasses.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/RegularExpressions/ProhibitEscapedMetacharacters.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/RegularExpressions/ProhibitFixedStringMatches.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/RegularExpressions/ProhibitSingleCharAlternation.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/RegularExpressions/ProhibitUnusedCapture.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/RegularExpressions/ProhibitUnusualDelimiters.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/RegularExpressions/RequireBracesForMultiline.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/RegularExpressions/RequireExtendedFormatting.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/RegularExpressions/RequireLineBoundaryMatching.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/Subroutines/ProhibitAmpersandSigils.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/Subroutines/ProhibitBuiltinHomonyms.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/Subroutines/ProhibitExcessComplexity.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/Subroutines/ProhibitExplicitReturnUndef.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/Subroutines/ProhibitManyArgs.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/Subroutines/ProhibitNestedSubs.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/Subroutines/ProhibitSubroutinePrototypes.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/Subroutines/ProtectPrivateSubs.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/Subroutines/RequireArgUnpacking.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/Subroutines/RequireFinalReturn.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/TestingAndDebugging/ProhibitNoStrict.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/TestingAndDebugging/ProhibitNoWarnings.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/TestingAndDebugging/ProhibitProlongedStrictureOverride.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/TestingAndDebugging/RequireTestLabels.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/TestingAndDebugging/RequireUseStrict.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/TestingAndDebugging/RequireUseWarnings.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitCommaSeparatedStatements.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitConstantPragma.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitEmptyQuotes.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitEscapedCharacters.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitImplicitNewlines.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitInterpolationOfLiterals.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitLeadingZeros.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitLongChainsOfMethodCalls.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitMagicNumbers.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitMismatchedOperators.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitMixedBooleanOperators.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitNoisyQuotes.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitQuotesAsQuotelikeOperatorDelimiters.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitVersionStrings.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ValuesAndExpressions/RequireInterpolationOfMetachars.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ValuesAndExpressions/RequireNumberSeparators.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ValuesAndExpressions/RequireQuotedHeredocTerminator.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ValuesAndExpressions/RequireUpperCaseHeredocTerminator.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/Variables/ProhibitConditionalDeclarations.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/Variables/ProhibitLocalVars.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/Variables/ProhibitMatchVars.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/Variables/ProhibitPackageVars.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/Variables/ProhibitPerl4PackageNames.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/Variables/ProhibitPunctuationVars.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/Variables/ProhibitUnusedVariables.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/Variables/ProtectPrivateVars.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/Variables/RequireInitializationForLocalVars.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/Variables/RequireLexicalLoopIterators.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/Variables/RequireLocalizedPunctuationVars.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/Variables/RequireNegativeIndices.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/PolicyConfig.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/PolicyFactory.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/PolicyListing.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/PolicyParameter.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/PolicyParameter/Behavior.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/PolicyParameter/Behavior/Boolean.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/PolicyParameter/Behavior/Enumeration.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/PolicyParameter/Behavior/Integer.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/PolicyParameter/Behavior/String.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/PolicyParameter/Behavior/StringList.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/PolicySummary.pod.PL create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/ProfilePrototype.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Statistics.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/TestUtils.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Theme.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/ThemeListing.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/UserProfile.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Utils.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Utils/Constants.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Utils/DataConversion.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Utils/McCabe.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Utils/POD.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Utils/PPI.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Utils/PPIRegexp.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Violation.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/00_modules.t create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/01_bad_perlcriticrc create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/01_config.t create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/01_config_bad_perlcriticrc.t create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/01_policy_config.t create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/02_policy.t create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/03_pragmas.t create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/04_optionsprocessor.t create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/05_utils.t create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/05_utils_pod.t create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/05_utils_ppi.t create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/06_violation.t create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/07_perlcritic.t create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/08_document.t create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/09_theme.t create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/10_userprofile.t create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/11_policyfactory.t create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/12_policylisting.t create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/12_themelisting.t create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/13_bundled_policies.t create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/14_policy_parameter_behavior_boolean.t create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/14_policy_parameter_behavior_enumeration.t create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/14_policy_parameter_behavior_integer.t create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/14_policy_parameter_behavior_list_string.t create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/14_policy_parameter_behavior_string.t create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/14_policy_parameters.t create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/15_statistics.t create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/16_roundtrip_defaults.t create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/20_policies.t create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/20_policy_podspelling.t create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/20_policy_prohibithardtabs.t create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/20_policy_prohibittrailingwhitespace.t create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/20_policy_requireconsistentnewlines.t create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/20_policy_requiretidycode.t create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/92_memory_leaks.t create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/98_pod_syntax.t create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/99_pod_coverage.t create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/BuiltinFunctions/ProhibitBooleanGrep.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/BuiltinFunctions/ProhibitComplexMappings.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/BuiltinFunctions/ProhibitLvalueSubstr.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/BuiltinFunctions/ProhibitReverseSortBlock.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/BuiltinFunctions/ProhibitSleepViaSelect.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/BuiltinFunctions/ProhibitStringyEval.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/BuiltinFunctions/ProhibitStringySplit.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/BuiltinFunctions/ProhibitUniversalCan.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/BuiltinFunctions/ProhibitUniversalIsa.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/BuiltinFunctions/ProhibitVoidGrep.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/BuiltinFunctions/ProhibitVoidMap.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/BuiltinFunctions/RequireBlockGrep.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/BuiltinFunctions/RequireBlockMap.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/BuiltinFunctions/RequireGlobFunction.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/BuiltinFunctions/RequireSimpleSortBlock.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/ClassHierarchies/ProhibitAutoloading.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/ClassHierarchies/ProhibitExplicitISA.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/ClassHierarchies/ProhibitOneArgBless.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/CodeLayout/ProhibitParensWithBuiltins.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/CodeLayout/ProhibitQuotedWordLists.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/CodeLayout/RequireTrailingCommas.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/ControlStructures/ProhibitCStyleForLoops.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/ControlStructures/ProhibitCascadingIfElse.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/ControlStructures/ProhibitDeepNests.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/ControlStructures/ProhibitLabelsWithSpecialBlockNames.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/ControlStructures/ProhibitMutatingListFunctions.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/ControlStructures/ProhibitNegativeExpressionsInUnlessAndUntilConditions.run.PL create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/ControlStructures/ProhibitPostfixControls.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/ControlStructures/ProhibitUnlessBlocks.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/ControlStructures/ProhibitUnreachableCode.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/ControlStructures/ProhibitUntilBlocks.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/Documentation/RequirePackageMatchesPodName.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/Documentation/RequirePodAtEnd.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/Documentation/RequirePodSections.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/ErrorHandling/RequireCarping.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/ErrorHandling/RequireCheckingReturnValueOfEval.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/InputOutput/ProhibitBacktickOperators.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/InputOutput/ProhibitBarewordFileHandles.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/InputOutput/ProhibitExplicitStdin.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/InputOutput/ProhibitInteractiveTest.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/InputOutput/ProhibitJoinedReadline.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/InputOutput/ProhibitOneArgSelect.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/InputOutput/ProhibitReadlineInForLoop.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/InputOutput/ProhibitTwoArgOpen.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/InputOutput/RequireBracedFileHandleWithPrint.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/InputOutput/RequireBriefOpen.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/InputOutput/RequireCheckedClose.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/InputOutput/RequireCheckedOpen.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/InputOutput/RequireCheckedSyscalls.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/Miscellanea/ProhibitFormats.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/Miscellanea/ProhibitTies.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/Miscellanea/RequireRcsKeywords.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/Modules/ProhibitAutomaticExportation.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/Modules/ProhibitEvilModules.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/Modules/ProhibitExcessMainComplexity.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/Modules/ProhibitMultiplePackages.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/Modules/RequireBarewordIncludes.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/Modules/RequireEndWithOne.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/Modules/RequireExplicitPackage.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/Modules/RequireFilenameMatchesPackage.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/Modules/RequireNoMatchVarsWithUseEnglish.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/Modules/RequireVersionVar.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/NamingConventions/ProhibitAmbiguousNames.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/NamingConventions/ProhibitMixedCaseSubs.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/NamingConventions/ProhibitMixedCaseVars.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/References/ProhibitDoubleSigils.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/RegularExpressions/ProhibitCaptureWithoutTest.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/RegularExpressions/ProhibitComplexRegexes.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/RegularExpressions/ProhibitEnumeratedClasses.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/RegularExpressions/ProhibitEscapedMetacharacters.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/RegularExpressions/ProhibitFixedStringMatches.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/RegularExpressions/ProhibitSingleCharAlternation.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/RegularExpressions/ProhibitUnusedCapture.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/RegularExpressions/ProhibitUnusualDelimiters.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/RegularExpressions/RequireBracesForMultiline.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/RegularExpressions/RequireExtendedFormatting.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/RegularExpressions/RequireLineBoundaryMatching.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/Subroutines/ProhibitAmpersandSigils.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/Subroutines/ProhibitBuiltinHomonyms.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/Subroutines/ProhibitExcessComplexity.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/Subroutines/ProhibitExplicitReturnUndef.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/Subroutines/ProhibitManyArgs.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/Subroutines/ProhibitNestedSubs.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/Subroutines/ProhibitSubroutinePrototypes.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/Subroutines/ProtectPrivateSubs.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/Subroutines/RequireArgUnpacking.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/Subroutines/RequireFinalReturn.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/TestingAndDebugging/ProhibitNoStrict.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/TestingAndDebugging/ProhibitNoWarnings.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/TestingAndDebugging/ProhibitProlongedStrictureOverride.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/TestingAndDebugging/RequireTestLabels.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/TestingAndDebugging/RequireUseStrict.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/TestingAndDebugging/RequireUseWarnings.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/ValuesAndExpressions/ProhibitCommaSeparatedStatements.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/ValuesAndExpressions/ProhibitConstantPragma.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/ValuesAndExpressions/ProhibitEmptyQuotes.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/ValuesAndExpressions/ProhibitEscapedCharacters.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/ValuesAndExpressions/ProhibitImplicitNewlines.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/ValuesAndExpressions/ProhibitInterpolationOfLiterals.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/ValuesAndExpressions/ProhibitLeadingZeros.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/ValuesAndExpressions/ProhibitLongChainsOfMethodCalls.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/ValuesAndExpressions/ProhibitMagicNumbers.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/ValuesAndExpressions/ProhibitMismatchedOperators.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/ValuesAndExpressions/ProhibitMixedBooleanOperators.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/ValuesAndExpressions/ProhibitNoisyQuotes.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/ValuesAndExpressions/ProhibitQuotesAsQuotelikeOperatorDelimiters.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/ValuesAndExpressions/ProhibitVersionStrings.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/ValuesAndExpressions/RequireInterpolationOfMetachars.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/ValuesAndExpressions/RequireNumberSeparators.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/ValuesAndExpressions/RequireQuotedHeredocTerminator.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/ValuesAndExpressions/RequireUpperCaseHeredocTerminator.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/Variables/ProhibitConditionalDeclarations.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/Variables/ProhibitLocalVars.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/Variables/ProhibitMatchVars.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/Variables/ProhibitPackageVars.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/Variables/ProhibitPerl4PackageNames.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/Variables/ProhibitPunctuationVars.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/Variables/ProhibitUnusedVariables.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/Variables/ProtectPrivateVars.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/Variables/RequireInitializationForLocalVars.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/Variables/RequireLexicalLoopIterators.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/Variables/RequireLocalizedPunctuationVars.run.PL create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/Variables/RequireNegativeIndices.run create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/generate_without_optional_dependencies_wrappers.PL create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/tlib/Perl/Critic/Policy/Test.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/tlib/Perl/Critic/TestUtilitiesWithMinimalDependencies.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/tlib/ViolationTest.pm create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/t/tlib/ViolationTest2.pm create mode 100755 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/tools/ppidump create mode 100755 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/tools/svnkeywords create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/xt/author/40_criticize-code.t create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/xt/author/40_perlcriticrc-code create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/xt/author/41_criticize-policies.t create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/xt/author/41_perlcriticrc-policies create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/xt/author/80_policysummary.t create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/xt/author/93_version.t create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/xt/author/94_includes.t create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl-1.088/xt/author/95_kwalitee.t create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl_1.088-1.diff.gz create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl_1.088-1.dsc create mode 100644 deb-src/libperl-critic-perl/libperl-critic-perl_1.088.orig.tar.gz create mode 100644 deb-src/libpod-coverage-perl/libpod-coverage-perl_0.19-1maemo1.diff.gz create mode 100644 deb-src/libpod-coverage-perl/libpod-coverage-perl_0.19-1maemo1.dsc create mode 100644 deb-src/libpod-coverage-perl/libpod-coverage-perl_0.19-1maemo1_i386.changes create mode 100644 deb-src/libpod-escapes-perl/libpod-escapes-perl_1.04-1maemo1.diff.gz create mode 100644 deb-src/libpod-escapes-perl/libpod-escapes-perl_1.04-1maemo1.dsc create mode 100644 deb-src/libpod-escapes-perl/libpod-escapes-perl_1.04-1maemo1_i386.changes create mode 100644 deb-src/libpod-simple-perl/libpod-simple-perl_3.07-1maemo1.dsc create mode 100644 deb-src/libpod-simple-perl/libpod-simple-perl_3.07-1maemo1.tar.gz create mode 100644 deb-src/libpod-simple-perl/libpod-simple-perl_3.07-1maemo1_i386.changes create mode 100644 deb-src/libtest-harness-perl/libtest-harness-perl_3.12-1maemo1.diff.gz create mode 100644 deb-src/libtest-harness-perl/libtest-harness-perl_3.12-1maemo1.dsc create mode 100644 deb-src/libtest-harness-perl/libtest-harness-perl_3.12-1maemo1_i386.changes create mode 100644 deb-src/libtest-pod-coverage-perl/libtest-pod-coverage-perl_1.08-3maemo1.diff.gz create mode 100644 deb-src/libtest-pod-coverage-perl/libtest-pod-coverage-perl_1.08-3maemo1.dsc create mode 100644 deb-src/libtest-pod-coverage-perl/libtest-pod-coverage-perl_1.08-3maemo1_i386.changes create mode 100644 deb-src/libtest-pod-perl/libtest-pod-perl_1.26-2maemo1.diff.gz create mode 100644 deb-src/libtest-pod-perl/libtest-pod-perl_1.26-2maemo1.dsc create mode 100644 deb-src/libtest-pod-perl/libtest-pod-perl_1.26-2maemo1_i386.changes create mode 100644 deb-src/libtest-simple-perl/libtest-simple-perl_0.80-1maemo1.diff.gz create mode 100644 deb-src/libtest-simple-perl/libtest-simple-perl_0.80-1maemo1.dsc create mode 100644 deb-src/libtest-simple-perl/libtest-simple-perl_0.80-1maemo1_i386.changes create mode 100644 deb-src/libtree-dagnode-perl/libtree-dagnode-perl_1.06-1maemo1.diff.gz create mode 100644 deb-src/libtree-dagnode-perl/libtree-dagnode-perl_1.06-1maemo1.dsc create mode 100644 deb-src/libtree-dagnode-perl/libtree-dagnode-perl_1.06-1maemo1_i386.changes create mode 100644 deb-src/liburi-perl/liburi-perl_1.35.dfsg.1-1maemo1.diff.gz create mode 100644 deb-src/liburi-perl/liburi-perl_1.35.dfsg.1-1maemo1.dsc create mode 100644 deb-src/liburi-perl/liburi-perl_1.35.dfsg.1-1maemo1_i386.changes create mode 100644 deb-src/libwww-perl/libwww-perl_5.813-1maemo1.diff.gz create mode 100644 deb-src/libwww-perl/libwww-perl_5.813-1maemo1.dsc create mode 100644 deb-src/libwww-perl/libwww-perl_5.813-1maemo1_i386.changes create mode 100644 deb/pool/main/d/dh-make-perl/dh-make-perl_0.47maemo1_all.deb create mode 100644 deb/pool/main/liba/libarchive-zip-perl/libarchive-zip-perl_1.18-1maemo1_all.deb create mode 100644 deb/pool/main/liba/libarray-compare-perl/libarray-compare-perl_1.16-1maemo1_all.deb create mode 100644 deb/pool/main/libc/libclass-accessor-chained-perl/libclass-accessor-chained-perl_0.01.1maemo1_all.deb create mode 100644 deb/pool/main/libc/libclass-accessor-perl/libclass-accessor-perl_0.31-2maemo1_all.deb create mode 100644 deb/pool/main/libc/libcompress-raw-zlib-perl/libcompress-raw-zlib-perl_2.012-11maemo1_i386.deb create mode 100644 deb/pool/main/libd/libdevel-symdump-perl/libdevel-symdump-perl_2.08-1maemo1_all.deb create mode 100644 deb/pool/main/libe/libemail-date-format-perl/libemail-date-format-perl_1.002-1maemo1_all.deb create mode 100644 deb/pool/main/libe/libextutils-cbuilder-perl/libextutils-cbuilder-perl_0.23-1maemo1_all.deb create mode 100644 deb/pool/main/libe/libextutils-parsexs-perl/libextutils-parsexs-perl_2.19-1maemo1_all.deb create mode 100644 deb/pool/main/libf/libfile-chdir-perl/libfile-chdir-perl_0.06-2.1maemo1_all.deb create mode 100644 deb/pool/main/libf/libfile-which-perl/libfile-which-perl_0.05-7maemo1_all.deb create mode 100644 deb/pool/main/libh/libhtml-parser-perl/libhtml-parser-perl_3.56-11maemo1_i386.deb create mode 100644 deb/pool/main/libh/libhtml-tagset-perl/libhtml-tagset-perl_3.20-2maemo1_all.deb create mode 100644 deb/pool/main/libh/libhtml-tree-perl/libhtml-tree-perl_3.23-1maemo1_all.deb create mode 100644 deb/pool/main/libi/libio-compress-base-perl/libio-compress-base-perl_2.012-1maemo1_all.deb create mode 100644 deb/pool/main/libi/libio-compress-zlib-perl/libio-compress-zlib-perl_2.012-1maemo1_all.deb create mode 100644 deb/pool/main/libi/libio-socket-ssl-perl/libio-socket-ssl-perl_1.16-11maemo1_all.deb create mode 100644 deb/pool/main/libi/libio-stringy-perl/libio-stringy-perl_2.110-4maemo1_all.deb create mode 100644 deb/pool/main/libm/libmodule-depends-perl/libmodule-depends-perl_0.14-1maemo1_all.deb create mode 100644 deb/pool/main/libn/libnet-libidn-perl/libnet-libidn-perl_0.07-1maemo1_i386.deb create mode 100644 deb/pool/main/libn/libnet-ssleay-perl/libnet-ssleay-perl_1.35-1maemo1_i386.deb create mode 100644 deb/pool/main/libp/libpar-dist-perl/libpar-dist-perl_0.31-1maemo1_all.deb create mode 100644 deb/pool/main/libp/libpod-coverage-perl/libpod-coverage-perl_0.19-1maemo1_all.deb create mode 100644 deb/pool/main/libp/libpod-escapes-perl/libpod-escapes-perl_1.04-1maemo1_all.deb create mode 100644 deb/pool/main/libp/libpod-simple-perl/libpod-simple-perl_3.07-1maemo1_all.deb create mode 100644 deb/pool/main/libt/libtap-parser-perl/libtap-parser-perl_3.12-1maemo1_all.deb create mode 100644 deb/pool/main/libt/libtest-harness-perl/libtest-harness-perl_3.12-1maemo1_all.deb create mode 100644 deb/pool/main/libt/libtest-pod-coverage-perl/libtest-pod-coverage-perl_1.08-3maemo1_all.deb create mode 100644 deb/pool/main/libt/libtest-pod-perl/libtest-pod-perl_1.26-2maemo1_all.deb create mode 100644 deb/pool/main/libt/libtest-simple-perl/libtest-simple-perl_0.80-1maemo1_all.deb create mode 100644 deb/pool/main/libt/libtree-dagnode-perl/libtree-dagnode-perl_1.06-1maemo1_all.deb create mode 100644 deb/pool/main/libu/liburi-perl/liburi-perl_1.35.dfsg.1-1maemo1_all.deb create mode 100644 deb/pool/main/libw/libwww-perl/libwww-perl_5.813-1maemo1_all.deb diff --git a/deb-src/core b/deb-src/core new file mode 100644 index 0000000000000000000000000000000000000000..ee2409e262fd50171e9f654acef271f341dcfcb2 GIT binary patch literal 557056 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 W=yc5RDMvk`kX{b^Gw>N{5BdM&LJ*n& literal 0 HcmV?d00001 diff --git a/deb-src/dh-make-perl/dh-make-perl-0.47/build-stamp b/deb-src/dh-make-perl/dh-make-perl-0.47/build-stamp new file mode 100644 index 0000000..e69de29 diff --git a/deb-src/dh-make-perl/dh-make-perl-0.47/debian/changelog b/deb-src/dh-make-perl/dh-make-perl-0.47/debian/changelog index 91110b2..48ac7b7 100644 --- a/deb-src/dh-make-perl/dh-make-perl-0.47/debian/changelog +++ b/deb-src/dh-make-perl/dh-make-perl-0.47/debian/changelog @@ -1,4 +1,11 @@ -dh-make-perl (0.47) unstable; urgency=low +dh-make-perl (0.47maemo1) fremantle; urgency=low + + * New Maemo packaging + + -- Nito Martinez Tue, 13 Apr 2010 22:52:07 +0100 + + +ldh-make-perl (0.47) unstable; urgency=low * rules.Module-Build.xs: add config=optimize="$(CFLAGS)" to Build.PL invocation, causing honoring DEB_BUILD_OPTS=noopt. Thanks to Niko Tyni. diff --git a/deb-src/dh-make-perl/dh-make-perl-0.47/debian/dh-make-perl.debhelper.log b/deb-src/dh-make-perl/dh-make-perl-0.47/debian/dh-make-perl.debhelper.log new file mode 100644 index 0000000..0c91324 --- /dev/null +++ b/deb-src/dh-make-perl/dh-make-perl-0.47/debian/dh-make-perl.debhelper.log @@ -0,0 +1,11 @@ +dh_installdirs +dh_installdocs +dh_installman +dh_installchangelogs +dh_compress +dh_fixperms +dh_installdeb +dh_perl +dh_gencontrol +dh_md5sums +dh_builddeb diff --git a/deb-src/dh-make-perl/dh-make-perl-0.47/debian/dh-make-perl.substvars b/deb-src/dh-make-perl/dh-make-perl-0.47/debian/dh-make-perl.substvars new file mode 100644 index 0000000..bcb0957 --- /dev/null +++ b/deb-src/dh-make-perl/dh-make-perl-0.47/debian/dh-make-perl.substvars @@ -0,0 +1,2 @@ +perl:Depends=perl +misc:Depends= diff --git a/deb-src/dh-make-perl/dh-make-perl-0.47/debian/dh-make-perl/DEBIAN/control b/deb-src/dh-make-perl/dh-make-perl-0.47/debian/dh-make-perl/DEBIAN/control new file mode 100644 index 0000000..60f70d0 --- /dev/null +++ b/deb-src/dh-make-perl/dh-make-perl-0.47/debian/dh-make-perl/DEBIAN/control @@ -0,0 +1,15 @@ +Package: dh-make-perl +Version: 0.47maemo1 +Architecture: all +Maintainer: Debian Perl Group +Installed-Size: 144 +Depends: debhelper (>= 4.0.2), libpod-parser-perl, perl, make, dpkg-dev, fakeroot, libyaml-perl, libmodule-depends-perl, libwww-mechanize-perl, libemail-date-format-perl +Recommends: apt-file (>= 2.1.0), libmodule-build-perl +Section: devel +Priority: optional +Description: Create Debian packages from perl modules + dh-make-perl will create the files required to build a Debian source + package out of a perl package. This works for most simple packages + and is also useful for getting started with packaging perl modules. + Given a perl package name, it can also automatically download it from + CPAN. diff --git a/deb-src/dh-make-perl/dh-make-perl-0.47/debian/dh-make-perl/DEBIAN/md5sums b/deb-src/dh-make-perl/dh-make-perl-0.47/debian/dh-make-perl/DEBIAN/md5sums new file mode 100644 index 0000000..ab30f7d --- /dev/null +++ b/deb-src/dh-make-perl/dh-make-perl-0.47/debian/dh-make-perl/DEBIAN/md5sums @@ -0,0 +1,12 @@ +f40ab4632be652bc04f3cd68b3e0af86 usr/share/dh-make-perl/overrides +9afc98c99fd9c652920554b84f754563 usr/share/dh-make-perl/rules.dh7.xs +215c5b3939d905f8a31df650d9032fed usr/share/dh-make-perl/rules.dh7.noxs +8ae1f54f8a0a87b0fd50a79c1e18087e usr/share/dh-make-perl/rules.MakeMaker.noxs +55d946a21b019e1449f41211cfffd150 usr/share/dh-make-perl/rules.MakeMaker.xs +3277f7ab796a051be9ec5b48b4d54acf usr/share/dh-make-perl/rules.Module-Build.xs +777b868dc8a463e0a8bd436e735d5b30 usr/share/dh-make-perl/rules.Module-Build.noxs +c4754c02a471205249e63a13dcffd6b7 usr/share/doc/dh-make-perl/copyright +e04cf62136827fb5d5596412b3736e43 usr/share/doc/dh-make-perl/changelog.gz +7151cadfb192b6338d8b3bb93ba99252 usr/share/doc/dh-make-perl/README +e5abbd97e7cba48049ec17fa5b93a09c usr/share/man/man1/dh-make-perl.1.gz +1769e7a5b94bfd29d94182f63dfb368d usr/bin/dh-make-perl diff --git a/deb-src/dh-make-perl/dh-make-perl-0.47/debian/dh-make-perl/usr/bin/dh-make-perl b/deb-src/dh-make-perl/dh-make-perl-0.47/debian/dh-make-perl/usr/bin/dh-make-perl new file mode 100755 index 0000000..ae0f1f4 --- /dev/null +++ b/deb-src/dh-make-perl/dh-make-perl-0.47/debian/dh-make-perl/usr/bin/dh-make-perl @@ -0,0 +1,1557 @@ +#!/usr/bin/perl -w +use Pod::Parser; +use YAML; +use IO::File; +use File::Basename; +use File::Find; +use File::Copy qw(copy move); +use User::pwent; +use Getopt::Long; +use Cwd; +use CPAN; +use Module::Depends::Intrusive; +use Email::Date::Format qw(email_date); +use strict; + +# TODO: +# * get more info from the package (maybe using CPAN methods) + +###################################################################### +# This Pod::Parser must be declared before the main program flow. If you +# are trying to figure out what happens inside dh-make-perl, skip down +# until 'package main'. +package MyPod; + +@MyPod::ISA = qw(Pod::Parser); + +sub set_names { + my ($parser, @names) = @_; + foreach my $n (@names) { + $parser->{_deb_}->{$n} = undef; + } +} + +sub get { + my ($parser, $name) = @_; + $parser->{_deb_}->{$name}; +} + +sub cleanup { + my $parser = shift; + delete $parser->{_current_}; + foreach my $k ( keys %{$parser->{_deb_}}) { + $parser->{_deb_}->{$k} = undef; + } +} + +sub command { + my ($parser, $command, $paragraph, $line_num) = @_; + $paragraph =~ s/\s+$//s; + if ($command =~ /head/ && exists($parser->{_deb_}->{$paragraph})) { + $parser->{_current_} = $paragraph; + $parser->{_lineno_} = $line_num; + } else { + delete $parser->{_current_}; + } + #print "GOT: $command -> $paragraph\n"; +} + +sub add_text { + my ($parser, $paragraph, $line_num) = @_; + return unless exists $parser->{_current_}; + return if ($line_num - $parser->{_lineno_} > 15); + $paragraph =~ s/^\s+//s; + $paragraph =~ s/\s+$//s; + $paragraph = $parser->interpolate($paragraph, $line_num); + $parser->{_deb_}->{$parser->{_current_}} .= "\n\n".$paragraph; + #print "GOTT: $paragraph'\n"; +} + +sub verbatim { shift->add_text(@_)} + +sub textblock { shift->add_text(@_)} + +sub interior_sequence { + my ($parser, $seq_command, $seq_argument) = @_; + if ($seq_command eq 'E') { + my %map = ('gt' => '>', 'lt' => '<', 'sol' => '/', 'verbar' => '|'); + return $map{$seq_argument} if exists $map{$seq_argument}; + return chr($seq_argument) if ($seq_argument =~ /^\d+$/); + # html names... + } + return $seq_argument; +} + +###################################################################### +# Main dh-make-perl starts here, don't look any further! +package main; +my (@stdmodules, $min_perl_version, $debstdversion, $priority, $section, + $depends, $bdepends, $bdependsi, $maintainer, $arch, $closes, $date, + $debiandir, $startdir, $datadir, $homedir, $email); +our %overrides; + +$debstdversion = '3.8.0'; +$priority = 'optional'; +$section = 'perl'; +$depends = '${perl:Depends}'; +# 5.6.0-12 is where arch-indep modules are moved in /usr/share/perl5 +# (according to dh_perl) +# if the module has stricter requirements, this build-dependency +# is replaced below by calling substitute_perl_dependency +$min_perl_version = '5.6.10-12'; +$bdependsi = "perl (>= $min_perl_version)"; +$arch = 'all'; +$date = email_date(time); +$startdir = getcwd(); +$datadir = '/usr/share/dh-make-perl'; +$homedir = "$ENV{HOME}/.dh-make-perl"; + +my ($perlname, $maindir, $modulepm, $meta); +my ($pkgname, $srcname, + # $version is the version from the perl module itself + $version, + # $pkgversion is the resulting version of the package: User's + # --version=s or "$version-1" + $pkgversion, + $desc, $longdesc, $copyright, $author, $upsurl); +my ($extrasfields, $extrapfields); +my ($module_build); +my (@docs, @examples, $changelog, @args); + +my %opts = ( + 'dh' => 5, +); + +my $mod_cpan_version; + +$opts{dbflags} = $>==0?"":"-rfakeroot"; +chomp($date); + +GetOptions(\%opts, + 'arch=s', 'basepkgs=s', 'bdepends=s', 'bdependsi=s', + 'build!', 'core-ok', 'cpan=s', 'cpanplus=s', 'closes=i', + 'cpan-mirror=s', 'dbflags=s', 'depends=s', 'desc=s', + 'exclude|i:s{,}', 'help', 'install!', 'nometa', 'notest', + 'pkg-perl!', 'requiredeps', 'version=s', 'e=s', 'email=s', + 'p=s', 'packagename=s', 'refresh|R', 'dh=i' +) or die usage_instructions(); + +$bdepends = "debhelper (>= $opts{dh})"; +@stdmodules = get_stdmodules(); + +# Help requested? Nice, we can just die! Isn't it helpful? +die usage_instructions() if $opts{help}; +die "CPANPLUS support disabled, sorry" if $opts{cpanplus}; + +$opts{exclude} = '(?:\/|^)(?:CVS|\.svn)\/' if (!defined $opts{exclude} or + $opts{exclude} eq ''); + +$arch = $opts{arch} if defined $opts{arch}; + +if ( $opts{refresh} ) +{ + print "Engaging refresh mode\n"; + $maindir='.'; + $meta = process_meta("$maindir/META.yml") if (-f "$maindir/META.yml"); # package name + ($pkgname, $version) = extract_basic(); # also detects arch-dep package + $module_build = (-f "$maindir/Build.PL") ? "Module-Build" : "MakeMaker"; + $debiandir='./debian'; + extract_changelog($maindir); + extract_docs($maindir); + extract_examples($maindir); + print "Found changelog: $changelog\n" if defined $changelog; + print "Found docs: @docs\n"; + print "Found examples: @examples\n" if @examples; + create_rules("$debiandir/rules"); + fix_rules( + "$debiandir/rules", + (defined $changelog ? $changelog : ''), + \@docs, \@examples, + ); + print "Done\n"; + exit 0; +} + +load_overrides(); +my $tarball = setup_dir(); +$meta = process_meta("$maindir/META.yml") if (-f "$maindir/META.yml"); +findbin_fix(); + +if (defined $opts{e}) { + $email = $opts{e}; +} elsif (defined $opts{email}) { + $email = $opts{email}; +} else { + $email = ''; +} +$maintainer = get_maintainer($email); + +if (defined $opts{desc}) { + $desc = $opts{desc}; +} else { + $desc = ''; +} +($pkgname, $version) = extract_basic(); +if (defined $opts{p}) { + $pkgname = $opts{p}; +} elsif (defined $opts{packagename}) { + $pkgname = $opts{packagename}; +} +unless (defined $opts{version}) { + $pkgversion = $version . "-1"; +} else { + $pkgversion = $opts{version}; +} + +move ($tarball, dirname($tarball) . "/${pkgname}_${version}.orig.tar.gz") if ($tarball && $tarball =~ /(?:\.tar\.gz|\.tgz)$/); +$module_build = (-f "$maindir/Build.PL") ? "Module-Build" : "MakeMaker"; +extract_changelog($maindir); +extract_docs($maindir); +extract_examples($maindir); + +if (defined $opts{bdepends}) { + $bdepends = $opts{bdepends}; +} else { + $bdepends .= ', libmodule-build-perl' if ($module_build eq "Module-Build"); +} +$bdependsi = $opts{bdependsi} if defined $opts{bdependsi}; + +if (defined $opts{depends}) { + $depends = $opts{depends}; +} else { + $depends .= ', ${shlibs:Depends}' if $arch eq 'any'; + $depends .= ', ${misc:Depends}'; + my $extradeps = extract_depends($maindir, $meta); + $depends .= ( $extradeps ? ", $extradeps" : '' ); +} + +apply_overrides(); + +die "Cannot find a description for the package: use the --desc switch\n" + unless $desc; +print "Package does not provide a long description - " , + " Please fill it in manually.\n" + if (!defined $longdesc or $longdesc =~ /^\s*\.?\s*$/); +print "Using maintainer: $maintainer\n"; +print "Found changelog: $changelog\n" if defined $changelog; +print "Found docs: @docs\n"; +print "Found examples: @examples\n" if @examples; +-d $debiandir && die "The directory $debiandir is already present and I won't overwrite it: remove it yourself.\n"; +# start writing out the data +mkdir ($debiandir, 0755) || die "Cannot create $debiandir dir: $!\n"; +create_control("$debiandir/control"); +if (defined $opts{closes}) { + $closes = $opts{closes}; +} else { + $closes = get_itp($pkgname); +} +create_changelog("$debiandir/changelog", $closes); +create_rules("$debiandir/rules"); +create_compat("$debiandir/compat"); +create_watch("$debiandir/watch") if $upsurl; +#create_readme("$debiandir/README.Debian"); +create_copyright("$debiandir/copyright"); +fix_rules("$debiandir/rules", (defined $changelog ? $changelog : ''), \@docs, \@examples); +apply_final_overrides(); +build_package($maindir) if $opts{build} or $opts{install}; +install_package($debiandir) if $opts{install}; +print "Done\n"; +exit(0); + +sub usage_instructions { +return <<"USAGE" +Usage: +$0 [ --build ] [ --install ] [ SOURCE_DIR | --cpan MODULE ] +$0 --refresh|-R +Other options: [ --desc DESCRIPTION ] [ --arch all|any ] [ --version VERSION ] + [ --depends DEPENDS ] [ --bdepends BUILD-DEPENDS ] + [ --bdependsi BUILD-DEPENDS-INDEP ] [ --cpan-mirror MIRROR ] + [ --exclude|-i [REGEX] ] [ --notest ] [ --nometa ] + [ --requiredeps ] [ --core-ok ] [ --basepkgs PKGSLIST ] + [ --closes ITPBUG ] [ --packagename|-p PACKAGENAME ] + [ --email|-e EMAIL ] [ --pkg-perl ] [ --dh ] +USAGE +} + +sub get_stdmodules { + my ($base_packages, @modules, $paths); + $base_packages = $opts{basepkgs} || 'perl,perl-base,perl-modules'; + + # We will check on all the base Perl packages for the modules they provide. + # To know which files we care for, we look at @INC - In a format easy to + # integrate into a regex + $paths = join('|', @INC); + + for my $pkg (split(/,/,$base_packages)) { + for my $file (map {chomp;$_} `dpkg -L $pkg`) { + next unless $file =~ s!^(?:$paths)[\d\.]*/(.*).pm$!$1!x; + + $file =~ s!/!::!g; + push @modules, $file; + } + } + + return sort @modules; +} + +sub setup_dir { + my ($dist, $mod, $cpanversion, $tarball); + $mod_cpan_version = ''; + if ($opts{cpan}) { + my ($new_maindir); + # Is the module a core module? + if (grep(/$opts{cpan}/, @stdmodules)) { + die "$opts{cpan} is a standard module.\n" + unless $opts{'core-ok'}; + } + + # Make CPAN happy, make the user happy: Be more tolerant! + # Accept names to be specified with double-colon, dash or slash + $opts{cpan} =~ s![/-]!::!g; + +### require CPAN; + CPAN::Config->load; + + unshift(@{$CPAN::Config->{'urllist'}}, $opts{'cpan-mirror'}) + if $opts{'cpan-mirror'}; + + $CPAN::Config->{'build_dir'} = $ENV{'HOME'} . "/.cpan/build"; + $CPAN::Config->{'cpan_home'} = $ENV{'HOME'} . "/.cpan/"; + $CPAN::Config->{'histfile'} = $ENV{'HOME'} . "/.cpan/history"; + $CPAN::Config->{'keep_source_where'} = $ENV{'HOME'} . "/.cpan/source"; + + # This modification allows to retrieve all the modules that + # match the user-provided string. + # + # expand() returns a list of matching items when called in list + # context, so after retrieving it, I try to match exactly what + # the user asked for. Specially important when there are + # different modules which only differ in case. + # + # This Closes: #451838 + my @mod = CPAN::Shell->expand('Module', '/^'.$opts{cpan}.'$/') + or die "Can't find '$opts{cpan}' module on CPAN\n"; + foreach(@mod) { + my $file = $_->cpan_file(); + $file =~ s#.*/##; # remove directory + $file =~ s/(.*)-.*/$1/; # remove version and extension + $file =~ s/-/::/g; # convert dashes to colons + if($file eq $opts{cpan}) { + $mod = $_; + last; + } + } + $mod = shift @mod unless($mod); + $mod_cpan_version = $mod->cpan_version; + $cpanversion = $CPAN::VERSION; + $cpanversion =~ s/_.*//; + + $tarball = $CPAN::Config->{'keep_source_where'} . "/authors/id/"; + + if ($cpanversion < 1.59) { # wild guess on the version number + $dist = $CPAN::META->instance('CPAN::Distribution', $mod->{CPAN_FILE}); + $dist->get || die "Cannot get $mod->{CPAN_FILE}\n"; + $tarball .= $mod->{CPAN_FILE}; + $maindir = $dist->{'build_dir'}; + } else { + # CPAN internals changed + $dist = $CPAN::META->instance('CPAN::Distribution', $mod->cpan_file); + $dist->get || die "Cannot get ", $mod->cpan_file, "\n"; + $tarball .= $mod->cpan_file; + $maindir = $dist->dir; + } + + copy ($tarball, $ENV{'PWD'}); + $tarball = $ENV{'PWD'} . "/" . basename($tarball); + # build_dir contains a random part since 1.88_59 + # use the new CPAN::Distribution::base_id (introduced in 1.91_53) + $new_maindir = $ENV{PWD} . "/" . ( + $cpanversion < 1.9153 ? basename($maindir) : $dist->base_id + ); + # rename existing directory + if (-d $new_maindir && system("mv", "$new_maindir", "$new_maindir.$$") == 0) { + print '='x70,"\n"; + print "Unpacked tarball already existed, directory renamed to $new_maindir.$$\n"; + print '='x70,"\n"; + } + system("mv", "$maindir", "$new_maindir") == 0 + or die "Failed to move $maindir to $new_maindir: $!"; + $maindir = $new_maindir; + + } elsif ($opts{cpanplus}) { + die "CPANPLUS support is b0rken at the moment."; +# my ($cb, $href, $file); + +# eval "use CPANPLUS 0.045;"; +# $cb = CPANPLUS::Backend->new(conf => {debug => 1, verbose => 1}); +# $href = $cb->fetch( modules => [ $opts{cpanplus} ], fetchdir => $ENV{'PWD'}); +# die "Cannot get $opts{cpanplus}\n" if keys(%$href) != 1; +# $file = (values %$href)[0]; +# print $file, "\n\n"; +# $maindir = $cb->extract( files => [ $file ], extractdir => $ENV{'PWD'} )->{$file}; + } else { + $maindir = shift(@ARGV) || '.'; + $maindir =~ s/\/$//; + } + return $tarball; +} + +sub build_package { + my $maindir = shift; + # uhmf! dpkg-genchanges doesn't cope with the deb being in another dir.. + #system("dpkg-buildpackage -b -us -uc $opts{dbflags}") == 0 + system("fakeroot make -C $maindir -f debian/rules clean"); + system("fakeroot make -C $maindir -f debian/rules binary") == 0 + || die "Cannot create deb package\n"; +} + +sub install_package { + my ($archspec, $debname); + + if ($arch eq 'any') { + $archspec = `dpkg --print-architecture`; + chomp($archspec); + } else { + $archspec = $arch; + } + + $debname = "${pkgname}_$version-1_$archspec.deb"; + + system("dpkg -i $startdir/$debname") == 0 + || die "Cannot install package $startdir/$debname\n"; +} + +sub process_meta { + my ($file, $yaml); + $file = shift; + # Command line option nometa causes this function not to be run + return {} if $opts{nometa}; + + # YAML::LoadFile has the bad habit of dying when it cannot properly parse + # a file - Catch it in an eval, and if it dies, return -again- just an + # empty hashref. Oh, were it not enough: It dies, but $! is not set, so we + # check against $@. Crap, crap, crap :-/ + eval { + $yaml = YAML::LoadFile($file); + }; + if ($@) { + print "Error parsing $file - Ignoring it.\n"; + print "Please notify module upstream maintainer.\n"; + $yaml = {}; + } + + # Returns a simple hashref with all the keys/values defined in META.yml + return $yaml; +} + +sub extract_basic_copyright { + for my $f (qw(LICENSE LICENCE COPYING)) { + if (-f $f) { + return `cat $f`; + } + } + return undef; +} + +sub extract_basic { + ($perlname, $version) = extract_name_ver(); + find(\&check_for_xs, $maindir); + $pkgname = lc $perlname; + $pkgname = 'lib'.$pkgname unless $pkgname =~ /^lib/; + $pkgname .= '-perl' unless ($pkgname =~ /-perl$/ and $opts{cpan} !~ /::perl$/i); + + # ensure policy compliant names and versions (from Joeyh)... + $pkgname =~ s/[^-.+a-zA-Z0-9]+/-/g; + + $srcname = $pkgname; + $version =~ s/[^-.+a-zA-Z0-9]+/-/g; + $version = "0$version" unless $version =~ /^\d/; + + print "Found: $perlname $version ($pkgname arch=$arch)\n"; + $debiandir = "$maindir/debian"; + + $upsurl = "http://search.cpan.org/dist/$perlname/"; + + $copyright = extract_basic_copyright(); + if ($modulepm) { + extract_desc($modulepm); + } + + $opts{exclude} = '^$' unless $opts{exclude}; + find(sub { + $File::Find::name !~ /$opts{exclude}/ && + /\.(pm|pod)$/ && + extract_desc($_); + }, $maindir); + + return ($pkgname, $version); +} + +sub makefile_pl { + return "$maindir/Makefile.PL"; +} + +sub findbin_fix { + # FindBin requires to know the name of the invoker - and requires it to be + # Makefile.PL to function properly :-/ + $0 = makefile_pl(); + if (exists $FindBin::{Bin}) { + FindBin::again(); + } +} + +sub extract_name_ver { + my ($name, $ver, $makefile); + $makefile = makefile_pl(); + + if (defined $meta->{name} and defined $meta->{version}) { + $name = $meta->{name}; + $ver = $meta->{version}; + + } else { + ($name, $ver) = extract_name_ver_from_makefile($makefile); + } + + $name =~ s/::/-/g; + return ($name, $ver); +} + +sub extract_name_ver_from_makefile { + my ($file, $name, $ver, $vfrom, $dir, $makefile); + $makefile = shift; + + { + local $/ = undef; + my $fh = _file_r($makefile); + $file = $fh->getline; + } + + # Replace q[quotes] by "quotes" + $file =~ s/q\[(.+)]/'$1'/g; + + # Get the name + if ($file =~ /([\'\"]?) + DISTNAME\1\s* + (=>|,) + \s* + ([\'\"]?) + (\S+)\3/xs) { + # Regular MakeMaker + $name = $4; + } elsif ($file =~ /([\'\"]?) + NAME\1\s* + (=>|,) + \s* + ([\'\"]?) + (\S+)\3/xs) { + # Regular MakeMaker + $name = $4; + } elsif ($file =~ /name + \s* + \( + ([\'\"]?) + (\S+) + \1 + \);/xs) { + # Module::Install syntax + $name = $2; + } + $name =~ s/,.*$//; + # band aid: need to find a solution also for build in directories + # warn "name is $name (cpan name: $opts{cpan})\n"; + $name = $opts{cpan} if ($name eq '__PACKAGE__' && $opts{cpan}); + $name = $opts{cpanplus} if ($name eq '__PACKAGE__' && $opts{cpanplus}); + + # Get the version + if (defined $opts{version}) { + # Explicitly specified + $ver = $opts{version}; + + } elsif ($file =~ /([\'\"]?)VERSION\1\s*(=>|,)\s*([\'\"]?)(\S+)\3/s) { + # Regular MakeMaker + $ver = $4; + # Where is the version taken from? + $vfrom = $4 if + $file =~ /([\'\"]?)VERSION_FROM\1\s*(=>|,)\s*([\'\"]?)(\S+)\3/s; + + } elsif ($file =~ /([\'\"]?)VERSION_FROM\1\s*(=>|,)\s*([\'\"]?)(\S+)\3/s) { + # Regular MakeMaker pointing to where the version is taken from + $vfrom = $4; + + } elsif ($file =~ /version\((\S+)\)/s) { + # Module::Install + $ver = $1; + } + + $dir = dirname($makefile) || './'; + + $modulepm = "$dir/$vfrom" if defined $vfrom; + + for (($name, $ver)) { + next unless defined; + next unless /^\$/; + # decode simple vars + s/(\$\w+).*/$1/; + if ($file =~ /\Q$_\E\s*=\s*([\'\"]?)(\S+)\1\s*;/) { + $_ = $2; + } + } + + unless (defined $ver) { + local $/ = "\n"; + # apply the method used by makemaker + if (defined $dir and defined $vfrom and -f "$dir/$vfrom" + and -r "$dir/$vfrom") { + my $fh = _file_r("$dir/$vfrom"); + while (my $lin = $fh->getline) { + if ($lin =~ /([\$*])(([\w\:\']*)\bVERSION)\b.*\=/) { + no strict; + #warn "ver: $lin"; + $ver = (eval $lin)[0]; + last; + } + } + $fh->close; + } else { + if ( $mod_cpan_version ) { + $ver = $mod_cpan_version; + warn "Cannot use internal module data to gather the ". + "version; using cpan_version\n"; + } else { + die "Cannot use internal module data to gather the ". + "version; use --cpan or --version\n"; + } + } + } + + return ($name, $ver); +} + +sub extract_desc { + my ($file, $parser); + $file = shift; + $parser = new MyPod; + return unless -f $file; + $parser->set_names(qw(NAME DESCRIPTION DETAILS COPYRIGHT AUTHOR AUTHORS)); + $parser->parse_from_file($file); + if ($desc) { + # No-op - We already have it, probably from the command line + + } elsif ($meta->{abstract}) { + # Get it from META.yml + $desc = $meta->{abstract}; + + } elsif (my $my_desc = $parser->get('NAME')) { + # Parse it, fix it, send it! + $my_desc =~ s/^\s*\S+\s+-\s+//s; + $my_desc =~ s/^\s+//s; + $my_desc =~ s/\s+$//s; + $my_desc =~ s/^([^\s])/ $1/mg; + $my_desc =~ s/\n.*$//s; + $desc = $my_desc; + } + # Replace linefeeds (not followed by a space) in $desc with spaces + $desc =~ s/\n(?=\S)/ /gs; + + unless ($longdesc) { + $longdesc = $parser->get('DESCRIPTION') + || $parser->get('DETAILS') + || $desc; + } + if (defined $longdesc && $longdesc !~ /^$/) { + $longdesc =~ s/^\s+//s; + $longdesc =~ s/\s+$//s; + $longdesc =~ s/^\t/ /mg; + $longdesc =~ s/^\s*$/ ./mg; + $longdesc =~ s/^\s*/ /mg; + $longdesc =~ s/^([^\s])/ $1/mg; + $longdesc =~ s/\r//g; + } + + $copyright = $copyright || $parser->get('COPYRIGHT'); + if (!$author) { + if (ref $meta->{author}) { + # Does the author information appear in META.yml? + $author = join(', ', @{$meta->{author}}); + } else { + # Get it from the POD + $author = $parser->get('AUTHOR') || $parser->get('AUTHORS'); + } + } + + $parser->cleanup; +} + +sub extract_changelog { + my ($dir) = shift; + $dir .= '/' unless $dir =~ m(/$); + find(sub { + $changelog = substr($File::Find::name, length($dir)) + if (!defined($changelog) && /^change(s|log)$/i and (! $opts{exclude} or $File::Find::name !~ /$opts{exclude}/)); + }, $dir); +} + +sub extract_docs { + my ($dir) = shift; + $dir .= '/' unless $dir =~ m(/$); + find(sub { + push (@docs, substr($File::Find::name, length($dir))) + if (/^(README|TODO|BUGS|NEWS|ANNOUNCE)/i and (! $opts{exclude} or $File::Find::name !~ /$opts{exclude}/)) ; + }, $dir); +} + +sub extract_examples { + my ($dir) = shift; + $dir .= '/' unless $dir =~ m(/$); + find(sub { + push (@examples, substr($File::Find::name, length($dir)) . '/*') + if (/^(examples|eg|samples?)$/i and (! $opts{exclude} or $File::Find::name !~ /$opts{exclude}/)) ; + }, $dir); +} + +sub run_depends { + my ($depends_module, $dir) = @_; + + no warnings; + local *STDERR; + open(STDERR, ">/dev/null"); + my $mod_dep = $depends_module->new(); + + $mod_dep->dist_dir( $dir ); + $mod_dep->find_modules(); + + my %dep_hash = %{$mod_dep->requires}; + + my $error = $mod_dep->error(); + die "Error: $error\n" if $error; + return %dep_hash; +} + +sub extract_depends { + my $dir = shift; + my $meta = shift; + my (%dep_hash, @uses, @deps, @not_debs, $has_apt_file); + local @INC = ($dir, @INC); + + $dir .= '/' unless $dir =~ m/\/$/; + + # try Module::Depends::Intrusive, but if that fails then + # fall back to Module::Depends. + + eval { + %dep_hash = run_depends('Module::Depends::Intrusive',$dir); + }; + if ($@) { + warn '='x70,"\n"; + warn "First attempt (Module::Depends::Intrusive) at a dependency\n" . + "check failed. Possible use of Module::Install ?\n" . + "Trying again with Module::Depends ... \n"; + warn '='x70,"\n"; + + eval { + %dep_hash = run_depends('Module::Depends',$dir); + }; + + if ($@) { + warn '='x70,"\n"; + warn "Could not find the dependencies for the requested module.\n"; + warn "Generated error: $@"; + + warn "Please check if your module depends on Module::Install\n" . + "for its build process - Automatically finding its\n" . + "dependencies is unsupported, please specify them manually\n" . + "using the 'depends' option. \n"; + warn "Alternatively, including a META.yml file with dependencies\n" . + "should allow discovery even for Module::Install modules. \n"; + warn '='x70,"\n"; + + exit 1; + } + } + + foreach my $module (keys( %dep_hash )) { + next if (grep ( /^$module$/, @stdmodules)); + + push @uses, $module; + } + + if (`which apt-file`) { + $has_apt_file = 1; + foreach my $module (@uses) { + my (@rawsearch, @search, $ls, $ver, $re, $mod); + + if ($module eq 'perl') { + substitute_perl_dependency($dep_hash{perl}); + next; + } + + $mod = $module; + print "Searching for package containing $module using apt-file.\n"; + $module =~ s|::|/|g; + + # Regex's to search the return of apt-file to find the right pkg + $ls = '(?:lib|share)'; + $ver = '\d+(\.\d+)+'; + $re = "usr/(?:$ls/perl/$ver|$ls/perl5)/$module\\.pm"; + + @rawsearch = `apt-file search -x '$re'`; + + # rank non -perl packages lower + @search = sort { + if ($a !~ /-perl: /) { return 1; } + elsif ($b !~ /-perl: /) { return -1; } + else { return $a cmp $b; } # or 0? + } @rawsearch; + + for (@search) { + # apt-file output + # package-name: path/to/perl/module.pm + chomp; + my ($p, $f) = split / /, $_; + chop($p); #Get rid of the ":" + if ($f =~ /$re/ && ! + grep { $_ eq $p } @deps, split(/,/,@stdmodules)) { + if (exists $dep_hash{$mod}) { + my $v = $dep_hash{$mod}; + $v =~ s/^v//; # strip leading 'v' from version + push @deps, {name=>$p, + version=>$v}; + } else { + push @deps, {name => $p}; + } + last; + } + } + + unless (@search) { + $module =~ s|/|::|g; + push @not_debs, $module; + } + } + } elsif ( $opts{requiredeps} ) { + die "--requiredeps was specified, but apt-file was not found\n"; + } + + print "\n"; + print "Needs the following debian packages: " . + join (", ", map {$_->{name}} @deps) . "\n" if (@deps); + if (@not_debs) { + my ($missing_debs_str); + if ($has_apt_file) { + $missing_debs_str = join("\n", "Needs the following modules for which there are no debian packages available", + map({" - $_"} @not_debs), ''); + } else { + $missing_debs_str = join("\n", "The following Perl modules are required and not installed in your system:", + map({" - $_"} @not_debs), + "You do not have 'apt-file' currently installed - If you install it, I will", + "be able to tell you which Debian packages are those modules in (if they are", + "packaged)."); + } + + if ( $opts{requiredeps} ) { + die $missing_debs_str; + } else { + print $missing_debs_str; + } + + } + + return join (", ", map { $_->{version} ? + $_->{name} ." (>= ". $_->{version} .")" : + $_->{name} } @deps); +} + +sub get_itp { + use WWW::Mechanize; + + my ($package) = shift @_; + + my $wnpp = "http://bugs.debian.org/cgi-bin/pkgreport.cgi?pkg=wnpp;includesubj=ITP: $package"; + my $mech = WWW::Mechanize->new(); + + $mech->get($wnpp); + + my @links = $mech->links(); + + foreach my $link (@links) { + my $desc = $link->text(); + + return $1 if $desc =~ /^#(\d+): ITP: $package /; + } + return 0; +} + +sub substitute_perl_dependency { + # If we get 'perl' specified in here, the module requires a + # specific version of Perl in order to be run. This is only + # reliable if we have ${perl:Depends} in $depends and either + # of $bdepends and $bdependsi - Warn otherwise. + my ($version, $dep_str, $old_dep_str, $old_bdep_str); + $version = shift; + + # Over-escaping? I'm putting this in variables to get a bit more clarity. + # Remember they will be fed into the regex engine. + $dep_str = "perl (>= $version)"; + $old_dep_str = '\\$\\{perl:Depends\\}'; + $old_bdep_str = "perl \\(>= $min_perl_version\\)"; + + unless ($depends =~ s/$old_dep_str/$dep_str/ and + ($bdepends =~ s/$old_bdep_str/$dep_str/ or + $bdependsi =~ s/$old_bdep_str/$dep_str/)) { + warn "The module requires Perl version $version, but you have ", + "apparently overriden the default dependency handling.\n", + "Please note that you might need to manually edit your debian/control ", + "- It might not make sense at all!\n"; + } +} + +sub check_for_xs { + (! $opts{exclude} or $File::Find::name !~ /$opts{exclude}/) && /\.(xs|c|cpp|cxx)$/i && do { + $arch = 'any'; + }; +} + +sub fix_rules { + my ($rules_file, $changelog_file, $docs, $examples, $test_line, $fh, @content); + ($rules_file, $changelog_file, $docs, $examples) = @_; + + if( $opts{dh} < 7 ) + { + $test_line = ($module_build eq 'Module-Build') ? + '$(PERL) Build test' : '$(MAKE) test'; + $test_line = "#$test_line" if $opts{notest}; + + $fh = _file_rw($rules_file); + @content = $fh->getlines; + + $fh->seek(0, 0) || die "Can't rewind $rules_file: $!"; + $fh->truncate(0)|| die "Can't truncate $rules_file: $!"; + for (@content) { + s/#CHANGES#/$changelog_file/g; + s/#EXAMPLES#/join " ", @examples/eg; + s/\s+dh_installexamples\s+$//g; # no need for empty dh_installexamples + s/#DOCS#/join " ", @docs/eg; + s/#TEST#/$test_line/g; + $fh->print($_); + } + $fh->close; + } + else + { + if( @examples ) + { + open F, '>>', "$maindir/debian/$pkgname.examples" or die $!; + print F "$_\n" foreach @examples; + close F; + } + if( @docs ) + { + open F, '>>', "$maindir/debian/$pkgname.docs" or die $!; + print F "$_\n" foreach @docs; + close F; + } + } +} + +sub create_control { + my $fh = _file_w(shift); + + if ($arch ne 'all' and + !defined($opts{bdepends}) and !defined($opts{bdependsi})) { + $bdepends .= ", $bdependsi"; + $bdependsi = ''; + } + + $fh->print("Source: $srcname\n"); + $fh->print("Section: $section\n"); + $fh->print("Priority: $priority\n"); + $fh->print("Build-Depends: $bdepends\n") if $bdepends; + $fh->print("Build-Depends-Indep: $bdependsi\n") if $bdependsi; + $fh->print($extrasfields) if defined $extrasfields; + if( $opts{'pkg-perl'} ) + { + $fh->print("Maintainer: Debian Perl Group \n"); + $fh->print("Uploaders: $maintainer\n"); + } + else + { + $fh->print("Maintainer: $maintainer\n"); + } + $fh->print("Standards-Version: $debstdversion\n"); + $fh->print("Homepage: $upsurl\n") if $upsurl; + do { + $fh->print("Vcs-Svn: svn://svn.debian.org/pkg-perl/trunk/$srcname/\n"); + $fh->print("Vcs-Browser: http://svn.debian.org/wsvn/pkg-perl/trunk/$srcname/\n"); + } if $opts{'pkg-perl'}; + $fh->print("\n"); + $fh->print("Package: $pkgname\n"); + $fh->print("Architecture: $arch\n"); + $fh->print("Depends: $depends\n") if $depends; + $fh->print($extrapfields) if defined $extrapfields; + $fh->print("Description: $desc\n$longdesc\n .\n This description was automagically extracted from the module by dh-make-perl.\n"); + $fh->close; +} + +sub create_changelog { + my $fh = _file_w(shift); + my $bug = shift; + + my $closes = $bug ? " (Closes: #$bug)" : ''; + + $fh->print("$srcname ($pkgversion) unstable; urgency=low\n"); + $fh->print("\n * Initial Release.$closes\n\n"); + $fh->print(" -- $maintainer $date\n"); + #$fh->print("Local variables:\nmode: debian-changelog\nEnd:\n"); + $fh->close +} + +sub create_rules { + my ($file, $rulesname, $error); + ($file) = shift; + $rulesname = ( + ($opts{dh} eq 7) + ? $arch eq 'all'?'rules.dh7.noxs' :'rules.dh7.xs' + : $arch eq 'all'?"rules.$module_build.noxs":"rules.$module_build.xs" + ); + + for my $source (("$homedir/$rulesname", "$datadir/$rulesname")) { + copy($source, $file) && do { + print "Using rules: $source\n"; + last; + }; + $error = $!; + } + die "Cannot copy rules file ($rulesname): $error\n" unless -e $file; + chmod(0755, $file); +} + +sub create_compat { + my $fh = _file_w(shift); + $fh->print("$opts{dh}\n"); + $fh->close; +} + +sub create_copyright { + my $fh = _file_w(shift); + my $incomplete = ''; + + $fh->print( +"This is the debian package for the $perlname module. +It was created by $maintainer using dh-make-perl. + +"); + if (defined $upsurl) { + $fh->print("It was downloaded from $upsurl\n\n"); + } else { + $incomplete .= "No upstream URL\n"; + } + $fh->print( +"This copyright info was automatically extracted from the perl module. +It may not be accurate, so you better check the module sources +if you don\'t want to get into legal troubles. + +"); + if (defined $author) { + $fh->print("The upstream author is: $author.\n"); + } else { + $incomplete .= "No upstream author\n"; + } + + if (defined($copyright)) { + $fh->print($copyright); + # Fun with regexes + if ( $copyright =~ /terms as Perl itself/i ) { + $fh->print(" + +Perl is distributed under your choice of the GNU General Public License or +the Artistic License. On Debian GNU/Linux systems, the complete text of the +GNU General Public License can be found in \`/usr/share/common-licenses/GPL\' +and the Artistic Licence in \`/usr/share/common-licenses/Artistic\'. +"); + } elsif ( $copyright =~ /GPL/ ) { + $fh->print(" + +The full text of the GPL is available on Debian systems in +/usr/share/common-licenses/GPL +"); + } + } else { + $incomplete .= "No licensing information\n"; + } + + my $year = (localtime)[5]+1900; + $fh->print(" + +The Debian packaging is (C) $year, $maintainer and +is licensed under the same terms as the software itself (see above). +"); + + $fh->close; + + if ($incomplete) { + _warn_incomplete_copyright($incomplete) + } +} + +sub create_readme { + my $fh = _file_w(shift); + $fh->print( +"This is the debian package for the $perlname module. +It was created by $maintainer using dh-make-perl. +"); + $fh->close; +} + +sub create_watch { + my $fh = _file_w(shift); + + my $version_re = 'v?(\d[\d_.-]+)\.(?:tar(?:\.gz|\.bz2)?|tgz|zip)'; + + $fh->print( +"\# format version number, currently 3; this line is compulsory! +version=3 +\# URL to the package page followed by a regex to search +$upsurl .*/$perlname-$version_re\$ +"); + $fh->close; +} + +sub get_maintainer { + my ($user, $pwnam, $email, $name, $mailh); + $user = $ENV{LOGNAME} || $ENV{USER}; + $pwnam = getpwuid($<); + die "Cannot determine current user\n" unless $pwnam; + if (defined $ENV{DEBFULLNAME}) { + $name = $ENV{DEBFULLNAME}; + } else { + $name = $pwnam->gecos; + $name =~ s/,.*//; + } + $user ||= $pwnam->name; + $name ||= $user; + $email = shift @_ || ($ENV{DEBEMAIL} || $ENV{EMAIL}); + unless ($email) { + chomp($mailh = `cat /etc/mailname`); + $email = $user.'@'.$mailh; + } + + $email =~ s/^(.*)\s+<(.*)>$/$2/; + + return "$name <$email>"; +} + +sub load_overrides { + eval { + do "$datadir/overrides" if -f "$datadir/overrides"; + do "$homedir/overrides" if -f "$homedir/overrides"; + }; + if ($@) { + die "Error when processing the overrides files: $@"; + } +} + +sub apply_overrides { + my ($data, $val, $subkey); + + ($data, $subkey) = get_override_data(); + return unless defined $data; + $pkgname = $val if (defined($val=get_override_val($data, $subkey, 'pkgname'))); + $srcname = $val if (defined($val=get_override_val($data, $subkey, 'srcname'))); + $section = $val if (defined($val=get_override_val($data, $subkey, 'section'))); + $priority = $val if (defined($val=get_override_val($data, $subkey, 'priority'))); + $depends = $val if (defined($val=get_override_val($data, $subkey, 'depends'))); + $bdepends = $val if (defined($val=get_override_val($data, $subkey, 'bdepends'))); + $bdependsi = $val if (defined($val=get_override_val($data, $subkey, 'bdependsi'))); + $desc = $val if (defined($val=get_override_val($data, $subkey, 'desc'))); + $longdesc = $val if (defined($val=get_override_val($data, $subkey, 'longdesc'))); + $pkgversion = $val if (defined($val=get_override_val($data, $subkey, 'version'))); + $arch = $val if (defined($val=get_override_val($data, $subkey, 'arch'))); + $changelog = $val if (defined($val=get_override_val($data, $subkey, 'changelog'))); + @docs = split(/\s+/, $val) if (defined($val=get_override_val($data, $subkey, 'docs'))); + + $extrasfields = $val if (defined($val=get_override_val($data, $subkey, 'sfields'))); + $extrapfields = $val if (defined($val=get_override_val($data, $subkey, 'pfields'))); + $maintainer = $val if (defined($val=get_override_val($data, $subkey, 'maintainer'))); + # fix longdesc if needed + $longdesc =~ s/^\s*/ /mg; +} + +sub apply_final_overrides { + my ($data, $val, $subkey); + + ($data, $subkey) = get_override_data(); + return unless defined $data; + get_override_val($data, $subkey, 'finish'); +} + +sub get_override_data { + my ($data, $checkver, $subkey); + $data = $overrides{$perlname}; + + return unless defined $data; + die "Value of '$perlname' in overrides not a hashref\n" unless ref($data) eq 'HASH'; + if (defined($checkver = $data->{checkver})) { + die "checkver not a function\n" unless (ref($checkver) eq 'CODE'); + $subkey = &$checkver($maindir); + } else { + $subkey = $pkgversion; + } + return ($data, $subkey); +} + +sub get_override_val { + my ($data, $subkey, $key, $val); + ($data, $subkey, $key) = @_; + $val = defined($data->{$subkey.$key})?$data->{$subkey.$key}:$data->{$key}; + return &$val() if (defined($val) && ref($val) eq 'CODE'); + return $val; +} + +sub _warn_incomplete_copyright { + print '*'x10, ' +Copyright information incomplete! + +Upstream copyright information could not be automatically determined. + +If you are building this package for your personal use, you might disregard +this information; however, if you intend to upload this package to Debian +(or in general, if you plan on distributing it), you must look into the +complete copyright information. + +The causes for this warning are: +', @_; +} + +sub _file_r { + my ($file, $fh); + $file = shift; + $fh = IO::File->new($file, 'r') or die "Cannot open $file: $!\n"; + return $fh; +} + +sub _file_w { + my ($file, $fh); + $file = shift; + $fh = IO::File->new($file, 'w') or die "Cannot open $file: $!\n"; + return $fh; +} + +sub _file_rw { + my ($file, $fh); + $file = shift; + $fh = IO::File->new($file, 'r+') or die "Cannot open $file: $!\n"; + return $fh; +} + +=head1 NAME + +B - Create debian source packages from perl modules + +=head1 SYNOPSIS + +B [B | B<--cpan> I] + +B B<--refresh> + +You can modify B's behaviour with some switches: + +=over + +=item B<--desc> I + +Uses the argument to --desc as short description for the package. + +=item B<--arch> I | I + +This switches between arch-dependent and arch-independet packages. If B<--arch> +isn't used, B uses a relatively good-working algorithms to +decide this alone. + +=item B<--version> I + +Specifies the version of the resulting package. + +=item B<--email> | B<-e> I + +Manually specify the Maintainer email address to use in debian/control and +in debian/changelog. + +=item B<--packagename> | B<-p> I + +Manually specify the Package Name, useful when the module has dashes in its +name. + +=item B<--closes> I + +Manually specify the ITP bug number that this package closes. If not +given, dh-make-perl will try to connect to bugs.debian.org to fetch the +appropriate bug number, using WWW::Mechanize. + +=item B<--depends> I + +Manually specify the string to be used for the module's dependencies. This +should be used when building modules where dh-make-perl cannot guess the Perl +dependencies (such as modules built using L), or when the +Perl code depends on non-Perl binaries or libraries. Usually, dh-make-perl +will figure out the dependencies by itself. If you need to pass dh-make-perl +dependency information, you must do it using the debian package format. i.e. + +dh-make-perl --depends libtest-more-perl + +=item B<--bdepends> I + +Manually specify the string to be used for the module's build-dependencies +(that is, the packages and their versions that have to be installed in order to +successfully build the package). Keep in mind that packages generated by +dh-make-perl require debhelper to be specified as a build dependency. Same note +as for --depends applies here - Use only when needed. + +=item B<--bdependsi> I + +Manually specify the string to be used for the module's build-dependencies +for architecture-independent builds. Same notes as those for the --depends +and --bdepends options apply here. + +Note that for --depends, --bdepends and --bdependsi you can also specify that +the field should not appear in debian/rules (if you really mean it, of course +;-) ) by giving it an empty string as an argument. + +=item B<--pkg-perl> + +Useful when preparing a package for the Debian Perl Group +L. + +Sets C, C, C and C fields in +debian/control accordingly. + +=item B<--cpan-mirror> I + +Specifies a CPAN site to use as mirror. + +=item B<--exclude> | B<-i> [I] + +This allows you to specify a PCRE to exclude some files from the search for +docs and stuff like that. If no argument is given (but the switch is specified +- not specifying the switch will include everything), it defaults to exclude +CVS and .svn directories. + +=item B<--build> + +Builds the package after setting it up. + +NB: This builds only a binary package (by calling "fakeroot debian/rules +binary") and does not sign the package. It is meant for a quick local +install of a package, not for creating a package ready for submission to the +Debian archive. + +=item B<--install> + +Installs the freshly built package. Specifying --install implies --build - The +package will not be installed unless it was built (obviously ;-) ) + +=item B<--notest> + +Does not run the automatic testing of the module as part of the build script. +This is mostly useful when packaging buggy or incomplete software. + +=item B<--basepkgs> + +Explicitly gives a comma-separated list of packages to consider "base" +packages (i.e. packages that should always be available in Debian +systems). This option defaults to C - It +is used to check for module dependencies. If a needed module is in the +C, it won't be mentioned in the C field of +C. + +If this option is specified, the above mentioned default packages will +not be included (but will be mentioned as explicit dependencies in the +resulting package). You can, of course, mention your own modules +and explicitly specify the default values. + +Note that this option should be used sparsingly and with care, as it +might lead to packages not being rebuildable because of unfulfilled +dependencies. + +=item B<--requiredeps> + +Fail if a dependency perl package was not found (dependency tracking +requires the apt-file package installed and updated) + +=item B<--core-ok> + +Allows building core Perl modules. By default, dh-make-perl will not allow +building a module that is shipped as part of the standard Perl library; by +specifying this option, dh-make-perl will build them anyway. + +Note that, although it is not probable, this might break unrelated items in +your system - If a newer version of a core module breaks the API, all kinds +of daemons might get upset ;-) + +=item B<--refresh> + +Refresh mode. + +Instead of creating new debian/ directory, B<--refresh> makes B +to re-create only B according to the current templates. + +This is useful when B was created using older templates and +doesn't contain much customisations. As always, you're strongly encouraged to +verify if B looks sane. + +=back + +=item B<--dh ver> + +Set desired debhelper version. If C is 7, generated debian/rules is +minimalistic, using the auto-mode of debhelper. Also, any additional +documentation and examples are listed in additional files under debian/, instead +of being listed in debian/rules + +=back + +=head1 DESCRIPTION + +B will create the files required to build +a debian source package out of a perl package. +This works for most simple packages and is also useful +for getting started with packaging perl modules. + +You can specify a module name with the B<--cpan> switch +and B will download the module for you from +a CPAN mirror, or you can specify the directory with the +already unpacked sources. If neither --cpan nor a directory +is given as argument, dh-make-perl tries to create a +perl package from the data in F<.> + +There is an override mechanism in place to handle most of +the little changes that may be needed for some modules +(this hasn't been tested much, though, and the override +database needs to be filled in). + +You can build and install the debian package using the --build +and --install command line switches. + +Using this program is no excuse for not reading the +debian developer documentation, including the Debian policy, +the perl policy, the packaging manual and so on. + +=head1 FILES + +The following directories will be searched to find additional files +required by dh-make-perl: + + /usr/share/dh-make-perl/ + $HOME/.dh-make-perl/ + +=over 4 + +=item * overrides + +File that overrides information retreived (or guessed) about the package. +All the files in the library directories are loaded: entries in the home +take precedence. See the distributed overrides file for usage information. + +=item * rules.MakeMaker.noxs + +A debian/rules makefile for modules that use ExtUtils::MakeMaker, but don't +have C/XS code. + +=item * rules.MakeMaker.xs + +A debian/rules makefile for modules that use ExtUtils::MakerMaker and +C/XS code. + +=item * rules.Module-Build.noxs + +A debian/rules makefile for modules that use Module::Build, but don't have +C/XS code. + +=item * rules.Module-Build.xs + +A debian/rules makefile for modules that use Module::Build and C/XS code. + +=back + +=head1 ENVIRONMENT + +HOME - get user's home directory + +DEBFULLNAME - get the real name of the maintainer + +LOGNAME or USER - get the username + +DEBEMAIL or EMAIL - get the email address of the user + +=head1 BUGS + +Several, let me know when you find them. + +=head1 AUTHOR + +Paolo Molaro Elupus@debian.orgE (MIA) + +Maintained for a time by Ivan Kohler Eivan-debian@420.amE. + +Maintained for a time by Marc Brockschmdit Emarc@dch-faq.deE. + +Now maintained by Gunnar Wolf Egwolf@gwolf.orgE, and team-maintained +by the Debian pkg-perl team, http://alioth.debian.org/projects/pkg-perl + +Patches from: + +=over + +=item Adam Sjoegren Easjo@koldfront.dkE + +=item Adrian Phillips Eadrianp@powertech.noE + +=item Amos Shapira Eamos.shapira@gmail.comE + +=item Christian Kurz Eshorty@debian.orgE + +=item Damyan Ivanov Edivanov@creditreform.bgE + +=item David Paleino Ed.paleino@gmail.comE + +=item David Pashley Edavid@davidpashley.comE + +=item Edward Betts Eedward@debian.orgE + +=item Fermin Galan Egalan@dit.upm.esE + +=item Geoff Richards Eqef@ungwe.orgE + +=item Gergely Nagy Ealgernon@bonehunter.rulez.orgE + +=item gregor herrmann Egregoa@debian.orgE + +=item Hilko Bengen Ebengen@debian.orgE + +=item Kees Cook Ekeex@outflux.netE + +=item Jesper Krogh Ejesper@krogh.ccE + +=item Johnny Morano Ejmorano@moretrix.comE + +=item Juerd Ejuerd@ouranos.juerd.netE + +=item Marc Chantreux (mail withheld) + +=item Matt Hope Edopey@debian.orgE + +=item Noel Maddy Enoel@zhtwn.comE + +=item Oliver Gorwits Eoliver.gorwits@oucs.ox.ac.ukE + +=item Peter Moerch Emn3k66i02@sneakemail.comE + +=item Stephen Oberholtzer Eoliverklozoff@gmail.comE + +=item Ton Nijkes Etonn@wau.mis.ah.nlE + +=back + +... And others who, sadly, we have forgot to add :-/ + +=cut + diff --git a/deb-src/dh-make-perl/dh-make-perl-0.47/debian/dh-make-perl/usr/share/dh-make-perl/overrides b/deb-src/dh-make-perl/dh-make-perl-0.47/debian/dh-make-perl/usr/share/dh-make-perl/overrides new file mode 100644 index 0000000..9863fc1 --- /dev/null +++ b/deb-src/dh-make-perl/dh-make-perl-0.47/debian/dh-make-perl/usr/share/dh-make-perl/overrides @@ -0,0 +1,39 @@ +# override file for dh-make-perl +# chdir is set to the module dir while executing the code in the override hashes +# you can have your own overrides to this overrides in a similar file +# in ~/.dh-make-perl/overrides +# Please contribute back the fixes that may be needed for some modules +# to lupus@debian.org. + +# sample overrides entry +$overrides{'Strange'} = { + pkgname => 'libstrange-perl', + srcname => 'libstrange-perl', + section => 'misc', + priority => 'Extra', + depends => 'perl6', + # build depends + bdepends => 'perl6, xlib-dev', + desc => 'A really ugly module to test dh-make-perl', + longdesc => "A really ugly long description\nfor a really ugly perl module.", + arch => 'all', + # starting from version 2 it's an xs module + checkver => sub {return 'v2-' if (($version || "") =~ /^[2-9]\./);return '';}, + 'v2-arch' => 'any', + 'v2-version' => sub { + if (($version || "") =~ /^\d+\.(\d+)/ && length($1) < 3) { + return $version.("0"x(3-length($1))); # maitain 3 digits after the dot + } else { + return $version; + } }, + # Note the \n in pfield and sfields (extra fields for the source and package section) + pfields => "Conflicts: ba-ba-buma\n", + +}; + +$overrides{'Crypt::SSLeay'} = { + finish => sub { + my @a=("perl", "-pi", "-e", 's,(Makefile\.PL),$1 /usr,', "debian/rules"); + system(@a);}, +}; + diff --git a/deb-src/dh-make-perl/dh-make-perl-0.47/debian/dh-make-perl/usr/share/dh-make-perl/rules.MakeMaker.noxs b/deb-src/dh-make-perl/dh-make-perl-0.47/debian/dh-make-perl/usr/share/dh-make-perl/rules.MakeMaker.noxs new file mode 100755 index 0000000..2c480cd --- /dev/null +++ b/deb-src/dh-make-perl/dh-make-perl-0.47/debian/dh-make-perl/usr/share/dh-make-perl/rules.MakeMaker.noxs @@ -0,0 +1,64 @@ +#!/usr/bin/make -f +# This debian/rules file is provided as a template for normal perl +# packages. It was created by Marc Brockschmidt for +# the Debian Perl Group (http://pkg-perl.alioth.debian.org/) but may +# be used freely wherever it is useful. + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +# If set to a true value then MakeMaker's prompt function will +# always return the default without waiting for user input. +export PERL_MM_USE_DEFAULT=1 + +PERL ?= /usr/bin/perl +PACKAGE = $(shell dh_listpackages) +TMP = $(CURDIR)/debian/$(PACKAGE) + +build: build-stamp +build-stamp: + dh_testdir + # Add commands to compile the package here + $(PERL) Makefile.PL INSTALLDIRS=vendor + $(MAKE) + #TEST# + touch $@ + +clean: + dh_testdir + dh_testroot + dh_clean build-stamp install-stamp + # Add commands to clean up after the build process here + [ ! -f Makefile ] || $(MAKE) realclean + +install: install-stamp +install-stamp: build-stamp + dh_testdir + dh_testroot + dh_clean -k + # Add commands to install the package into $(TMP) here + $(MAKE) install DESTDIR=$(TMP) PREFIX=/usr + [ ! -d $(TMP)/usr/lib/perl5 ] || \ + rmdir --ignore-fail-on-non-empty --parents --verbose \ + $(TMP)/usr/lib/perl5 + touch $@ + +binary-arch: +# We have nothing to do here for an architecture-independent package + +binary-indep: build install + dh_testdir + dh_testroot + dh_installexamples #EXAMPLES# + dh_installdocs #DOCS# + dh_installchangelogs #CHANGES# + dh_perl + dh_compress + dh_fixperms + dh_installdeb + dh_gencontrol + dh_md5sums + dh_builddeb + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary install diff --git a/deb-src/dh-make-perl/dh-make-perl-0.47/debian/dh-make-perl/usr/share/dh-make-perl/rules.MakeMaker.xs b/deb-src/dh-make-perl/dh-make-perl-0.47/debian/dh-make-perl/usr/share/dh-make-perl/rules.MakeMaker.xs new file mode 100755 index 0000000..419edfc --- /dev/null +++ b/deb-src/dh-make-perl/dh-make-perl-0.47/debian/dh-make-perl/usr/share/dh-make-perl/rules.MakeMaker.xs @@ -0,0 +1,77 @@ +#!/usr/bin/make -f +# This debian/rules file is provided as a template for normal perl +# packages. It was created by Marc Brockschmidt for +# the Debian Perl Group (http://pkg-perl.alioth.debian.org/) but may +# be used freely wherever it is useful. + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +# If set to a true value then MakeMaker's prompt function will +# always return the default without waiting for user input. +export PERL_MM_USE_DEFAULT=1 + +PERL ?= /usr/bin/perl +PACKAGE = $(shell dh_listpackages) +TMP = $(CURDIR)/debian/$(PACKAGE) + +# Allow disabling build optimisation by setting noopt in +# $DEB_BUILD_OPTIONS +CFLAGS = -Wall -g +ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) + CFLAGS += -O0 +else + CFLAGS += -O2 +endif + +build: build-stamp +build-stamp: + dh_testdir + # Add commands to compile the package here + $(PERL) Makefile.PL INSTALLDIRS=vendor + $(MAKE) OPTIMIZE="$(CFLAGS)" LD_RUN_PATH="" + #TEST# + touch $@ + +clean: + dh_testdir + dh_testroot + dh_clean build-stamp install-stamp + # Add commands to clean up after the build process here + [ ! -f Makefile ] || $(MAKE) realclean + +install: install-stamp +install-stamp: build-stamp + dh_testdir + dh_testroot + dh_clean -k + # Add commands to install the package into $(TMP) + $(MAKE) install DESTDIR=$(TMP) PREFIX=/usr + [ ! -d $(TMP)/usr/share/perl5 ] || \ + rmdir --ignore-fail-on-non-empty --parents --verbose \ + $(TMP)/usr/share/perl5 + touch $@ + +# Build architecture-independent files here. +binary-indep: build install +# We have nothing to do here for an architecture-dependent package + +# Build architecture-dependent files here. +binary-arch: build install + dh_testdir + dh_testroot + dh_installexamples #EXAMPLES# + dh_installdocs #DOCS# + dh_installchangelogs #CHANGES# + dh_shlibdeps + dh_strip + dh_perl + dh_compress + dh_fixperms + dh_installdeb + dh_gencontrol + dh_md5sums + dh_builddeb + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary install diff --git a/deb-src/dh-make-perl/dh-make-perl-0.47/debian/dh-make-perl/usr/share/dh-make-perl/rules.Module-Build.noxs b/deb-src/dh-make-perl/dh-make-perl-0.47/debian/dh-make-perl/usr/share/dh-make-perl/rules.Module-Build.noxs new file mode 100755 index 0000000..fbde886 --- /dev/null +++ b/deb-src/dh-make-perl/dh-make-perl-0.47/debian/dh-make-perl/usr/share/dh-make-perl/rules.Module-Build.noxs @@ -0,0 +1,64 @@ +#!/usr/bin/make -f +# This debian/rules file is provided as a template for normal perl +# packages. It was created by Marc Brockschmidt for +# the Debian Perl Group (http://pkg-perl.alioth.debian.org/) but may +# be used freely wherever it is useful. +# +# It was later modified by Jason Kohles +# http://www.jasonkohles.com/ to support Module::Build installed modules + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +# If set to a true value then MakeMaker's prompt function will +# always return the default without waiting for user input. +export PERL_MM_USE_DEFAULT=1 + +PERL ?= /usr/bin/perl +PACKAGE = $(shell dh_listpackages) +TMP = $(CURDIR)/debian/$(PACKAGE) + +build: build-stamp +build-stamp: + dh_testdir + # Add commands to compile the package here + $(PERL) Build.PL installdirs=vendor + $(PERL) Build + #TEST# + touch $@ + +clean: + dh_testdir + dh_testroot + dh_clean build-stamp install-stamp + # Add commands to clean up after the build process here + [ ! -f Build ] || $(PERL) Build --allow_mb_mismatch 1 distclean + +install: install-stamp +install-stamp: build-stamp + dh_testdir + dh_testroot + dh_clean -k + # Add commands to install the package into $(TMP) here + $(PERL) Build install destdir=$(TMP) create_packlist=0 + touch $@ + +binary-arch: +# We have nothing to do here for an architecture-independent package + +binary-indep: build install + dh_testdir + dh_testroot + dh_installdocs #DOCS# + dh_installexamples #EXAMPLES# + dh_installchangelogs #CHANGES# + dh_perl + dh_compress + dh_fixperms + dh_installdeb + dh_gencontrol + dh_md5sums + dh_builddeb + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary install diff --git a/deb-src/dh-make-perl/dh-make-perl-0.47/debian/dh-make-perl/usr/share/dh-make-perl/rules.Module-Build.xs b/deb-src/dh-make-perl/dh-make-perl-0.47/debian/dh-make-perl/usr/share/dh-make-perl/rules.Module-Build.xs new file mode 100755 index 0000000..c1584ce --- /dev/null +++ b/deb-src/dh-make-perl/dh-make-perl-0.47/debian/dh-make-perl/usr/share/dh-make-perl/rules.Module-Build.xs @@ -0,0 +1,74 @@ +#!/usr/bin/make -f +# This debian/rules file is provided as a template for normal perl +# packages. It was created by Marc Brockschmidt for +# the Debian Perl Group (http://pkg-perl.alioth.debian.org/) but may +# be used freely wherever it is useful. + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +# If set to a true value then MakeMaker's prompt function will +# always return the default without waiting for user input. +export PERL_MM_USE_DEFAULT=1 + +PERL ?= /usr/bin/perl +PACKAGE = $(shell dh_listpackages) +TMP = $(CURDIR)/debian/$(PACKAGE) + +# Allow disabling build optimisation by setting noopt in +# $DEB_BUILD_OPTIONS +CFLAGS = -Wall -g +ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) + CFLAGS += -O0 +else + CFLAGS += -O2 +endif + +build: build-stamp +build-stamp: + dh_testdir + # Add commands to compile the package here + $(PERL) Build.PL installdirs=vendor config=optimize="$(CFLAGS)" + OPTIMIZE="$(CFLAGS)" $(PERL) Build + #TEST# + touch $@ + +clean: + dh_testdir + dh_testroot + dh_clean build-stamp install-stamp + # Add commands to clean up after the build process here + [ ! -f Build ] || $(PERL) Build --allow_mb_mismatch 1 distclean + +install: install-stamp +install-stamp: build-stamp + dh_testdir + dh_testroot + dh_clean -k + # Add commands to install the package into $(TMP) here + $(PERL) Build install destdir=$(TMP) create_packlist=0 + touch $@ + +# Build architecture-independent files here. +binary-indep: build install +# We have nothing to do here for an architecture-dependent package + +# Build architecture-dependent files here. +binary-arch: build install + dh_testdir + dh_testroot + dh_installdocs #DOCS# + dh_installexamples #EXAMPLES# + dh_installchangelogs #CHANGES# + dh_shlibdeps + dh_strip + dh_perl + dh_compress + dh_fixperms + dh_installdeb + dh_gencontrol + dh_md5sums + dh_builddeb + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary install diff --git a/deb-src/dh-make-perl/dh-make-perl-0.47/debian/dh-make-perl/usr/share/dh-make-perl/rules.dh7.noxs b/deb-src/dh-make-perl/dh-make-perl-0.47/debian/dh-make-perl/usr/share/dh-make-perl/rules.dh7.noxs new file mode 100755 index 0000000..0d045f4 --- /dev/null +++ b/deb-src/dh-make-perl/dh-make-perl-0.47/debian/dh-make-perl/usr/share/dh-make-perl/rules.dh7.noxs @@ -0,0 +1,23 @@ +#!/usr/bin/make -f + +build: build-stamp +build-stamp: + dh build + touch $@ + +clean: + dh $@ + +install: install-stamp +install-stamp: build-stamp + dh install + touch $@ + +binary-arch: + +binary-indep: install + dh $@ + +binary: binary-arch binary-indep + +.PHONY: binary binary-arch binary-indep install clean build diff --git a/deb-src/dh-make-perl/dh-make-perl-0.47/debian/dh-make-perl/usr/share/dh-make-perl/rules.dh7.xs b/deb-src/dh-make-perl/dh-make-perl-0.47/debian/dh-make-perl/usr/share/dh-make-perl/rules.dh7.xs new file mode 100755 index 0000000..3850db1 --- /dev/null +++ b/deb-src/dh-make-perl/dh-make-perl-0.47/debian/dh-make-perl/usr/share/dh-make-perl/rules.dh7.xs @@ -0,0 +1,23 @@ +#!/usr/bin/make -f + +build: build-stamp +build-stamp: + dh build + touch $@ + +clean: + dh $@ + +install: install-stamp +install-stamp: build-stamp + dh install + touch $@ + +binary-arch: install + dh $@ + +binary-indep: + +binary: binary-arch binary-indep + +.PHONY: binary binary-arch binary-indep install clean build diff --git a/deb-src/dh-make-perl/dh-make-perl-0.47/debian/dh-make-perl/usr/share/doc/dh-make-perl/README b/deb-src/dh-make-perl/dh-make-perl-0.47/debian/dh-make-perl/usr/share/doc/dh-make-perl/README new file mode 100644 index 0000000..ed9f7e2 --- /dev/null +++ b/deb-src/dh-make-perl/dh-make-perl-0.47/debian/dh-make-perl/usr/share/doc/dh-make-perl/README @@ -0,0 +1,19 @@ +dh-make-perl + +Create debian packages from perl modules + +dh-make-perl will create the files required to build +a debian source package out of a perl package. +This works for most simple packages and is also useful +for getting started with packaging perl modules. + +There is an override mechanism in place to handle most of +the little changes that may be needed for some modules +(this hasn't been tested much, though). + +Using this program is no excuse for not reading the +debian developer documentation, including the policy, +the perl policy, the packaging manual and so on. + +lupus@debian.org + diff --git a/deb-src/dh-make-perl/dh-make-perl-0.47/debian/dh-make-perl/usr/share/doc/dh-make-perl/changelog.gz b/deb-src/dh-make-perl/dh-make-perl-0.47/debian/dh-make-perl/usr/share/doc/dh-make-perl/changelog.gz new file mode 100644 index 0000000000000000000000000000000000000000..82b8dc63c1be1dc524275baa983d70ca6df16c6e GIT binary patch literal 9792 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 + +Copyright (c) 2000,2001 Paolo Molaro + (c) 2002,2003,2008 Ivan Kohler + (c) 2003,2004 Marc 'HE' Brockschmidt + (c) 2005-2007 Gunnar Wolf + (c) 2006 Frank Lichtenheld + (c) 2007-2008 Gregor Herrmann + (c) 2007-2008 Damyan Ivanov + +You can do anything with it according to the GPLv2: look +in /usr/share/common-licenses/GPL-2 on your Debian system. + diff --git a/deb-src/dh-make-perl/dh-make-perl-0.47/debian/dh-make-perl/usr/share/man/man1/dh-make-perl.1.gz b/deb-src/dh-make-perl/dh-make-perl-0.47/debian/dh-make-perl/usr/share/man/man1/dh-make-perl.1.gz new file mode 100644 index 0000000000000000000000000000000000000000..d640787f5865cb4314771c8678c0160bf6331c07 GIT binary patch literal 5986 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 Q_uc)~FAmH}YC}B$00z^gMF0Q* literal 0 HcmV?d00001 diff --git a/deb-src/dh-make-perl/dh-make-perl-0.47/debian/files b/deb-src/dh-make-perl/dh-make-perl-0.47/debian/files new file mode 100644 index 0000000..86cff2f --- /dev/null +++ b/deb-src/dh-make-perl/dh-make-perl-0.47/debian/files @@ -0,0 +1 @@ +dh-make-perl_0.47maemo1_all.deb devel optional diff --git a/deb-src/dh-make-perl/dh-make-perl-0.47/dh-make-perl.1 b/deb-src/dh-make-perl/dh-make-perl-0.47/dh-make-perl.1 new file mode 100644 index 0000000..69d8cd0 --- /dev/null +++ b/deb-src/dh-make-perl/dh-make-perl-0.47/dh-make-perl.1 @@ -0,0 +1,400 @@ +.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14 +.\" +.\" Standard preamble: +.\" ======================================================================== +.de Sh \" Subsection heading +.br +.if t .Sp +.ne 5 +.PP +\fB\\$1\fR +.PP +.. +.de Sp \" Vertical space (when we can't use .PP) +.if t .sp .5v +.if n .sp +.. +.de Vb \" Begin verbatim text +.ft CW +.nf +.ne \\$1 +.. +.de Ve \" End verbatim text +.ft R +.fi +.. +.\" Set up some character translations and predefined strings. \*(-- will +.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left +.\" double quote, and \*(R" will give a right double quote. | will give a +.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to +.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C' +.\" expand to `' in nroff, nothing in troff, for use with C<>. +.tr \(*W-|\(bv\*(Tr +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.ie n \{\ +. ds -- \(*W- +. ds PI pi +. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +. ds L" "" +. ds R" "" +. ds C` "" +. ds C' "" +'br\} +.el\{\ +. ds -- \|\(em\| +. ds PI \(*p +. ds L" `` +. ds R" '' +'br\} +.\" +.\" If the F register is turned on, we'll generate index entries on stderr for +.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index +.\" entries marked with X<> in POD. Of course, you'll have to process the +.\" output yourself in some meaningful fashion. +.if \nF \{\ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" +.. +. nr % 0 +. rr F +.\} +.\" +.\" For nroff, turn off justification. Always turn off hyphenation; it makes +.\" way too many mistakes in technical documents. +.hy 0 +.if n .na +.\" +.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). +.\" Fear. Run. Save yourself. No user-serviceable parts. +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds / +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +.\} +.rm #[ #] #H #V #F C +.\" ======================================================================== +.\" +.IX Title "DH-MAKE-PERL 1" +.TH DH-MAKE-PERL 1 "2008-06-17" "perl v5.8.4" "debian" +.SH "NAME" +\&\fBdh\-make\-perl\fR \- Create debian source packages from perl modules +.SH "SYNOPSIS" +.IX Header "SYNOPSIS" +\&\fBdh-make-perl\fR [\fB\s-1SOURCE_DIR\s0\fR | \fB\-\-cpan\fR \fI\s-1MODULE\s0\fR] +.PP +\&\fBdh-make-perl\fR \fB\-\-refresh\fR +.PP +You can modify \fBdh-make-perl\fR's behaviour with some switches: +.IP "\fB\-\-desc\fR \fI\s-1SHORT\s0 \s-1DESCRIPTION\s0\fR" 4 +.IX Item "--desc SHORT DESCRIPTION" +Uses the argument to \-\-desc as short description for the package. +.IP "\fB\-\-arch\fR \fIany\fR | \fIall\fR" 4 +.IX Item "--arch any | all" +This switches between arch-dependent and arch-independet packages. If \fB\-\-arch\fR +isn't used, \fBdh-make-perl\fR uses a relatively good-working algorithms to +decide this alone. +.IP "\fB\-\-version\fR \fI\s-1VERSION\s0\fR" 4 +.IX Item "--version VERSION" +Specifies the version of the resulting package. +.IP "\fB\-\-email\fR | \fB\-e\fR \fI\s-1EMAIL\s0\fR" 4 +.IX Item "--email | -e EMAIL" +Manually specify the Maintainer email address to use in debian/control and +in debian/changelog. +.IP "\fB\-\-packagename\fR | \fB\-p\fR \fI\s-1PACKAGENAME\s0\fR" 4 +.IX Item "--packagename | -p PACKAGENAME" +Manually specify the Package Name, useful when the module has dashes in its +name. +.IP "\fB\-\-closes\fR \fI\s-1ITPBUG\s0\fR" 4 +.IX Item "--closes ITPBUG" +Manually specify the \s-1ITP\s0 bug number that this package closes. If not +given, dh-make-perl will try to connect to bugs.debian.org to fetch the +appropriate bug number, using WWW::Mechanize. +.IP "\fB\-\-depends\fR \fI\s-1DEPENDS\s0\fR" 4 +.IX Item "--depends DEPENDS" +Manually specify the string to be used for the module's dependencies. This +should be used when building modules where dh-make-perl cannot guess the Perl +dependencies (such as modules built using Module::Install), or when the +Perl code depends on non-Perl binaries or libraries. Usually, dh-make-perl +will figure out the dependencies by itself. If you need to pass dh-make-perl +dependency information, you must do it using the debian package format. i.e. +.Sp +dh-make-perl \-\-depends libtest-more-perl +.IP "\fB\-\-bdepends\fR \fIBUILD-DEPENDS\fR" 4 +.IX Item "--bdepends BUILD-DEPENDS" +Manually specify the string to be used for the module's build-dependencies +(that is, the packages and their versions that have to be installed in order to +successfully build the package). Keep in mind that packages generated by +dh-make-perl require debhelper to be specified as a build dependency. Same note +as for \-\-depends applies here \- Use only when needed. +.IP "\fB\-\-bdependsi\fR \fIBUILD-DEPENDS-INDEP\fR" 4 +.IX Item "--bdependsi BUILD-DEPENDS-INDEP" +Manually specify the string to be used for the module's build-dependencies +for architecture-independent builds. Same notes as those for the \-\-depends +and \-\-bdepends options apply here. +.Sp +Note that for \-\-depends, \-\-bdepends and \-\-bdependsi you can also specify that +the field should not appear in debian/rules (if you really mean it, of course +;\-) ) by giving it an empty string as an argument. +.IP "\fB\-\-pkg\-perl\fR" 4 +.IX Item "--pkg-perl" +Useful when preparing a package for the Debian Perl Group +. +.Sp +Sets \f(CW\*(C`Maintainer\*(C'\fR, \f(CW\*(C`Uploaders\*(C'\fR, \f(CW\*(C`Vcs\-Svn\*(C'\fR and \f(CW\*(C`Vcs\-Browser\*(C'\fR fields in +debian/control accordingly. +.IP "\fB\-\-cpan\-mirror\fR \fI\s-1MIRROR\s0\fR" 4 +.IX Item "--cpan-mirror MIRROR" +Specifies a \s-1CPAN\s0 site to use as mirror. +.IP "\fB\-\-exclude\fR | \fB\-i\fR [\fI\s-1REGEX\s0\fR]" 4 +.IX Item "--exclude | -i [REGEX]" +This allows you to specify a \s-1PCRE\s0 to exclude some files from the search for +docs and stuff like that. If no argument is given (but the switch is specified +\&\- not specifying the switch will include everything), it defaults to exclude +\&\s-1CVS\s0 and .svn directories. +.IP "\fB\-\-build\fR" 4 +.IX Item "--build" +Builds the package after setting it up. +.Sp +\&\s-1NB:\s0 This builds only a binary package (by calling \*(L"fakeroot debian/rules +binary\*(R") and does not sign the package. It is meant for a quick local +install of a package, not for creating a package ready for submission to the +Debian archive. +.IP "\fB\-\-install\fR" 4 +.IX Item "--install" +Installs the freshly built package. Specifying \-\-install implies \-\-build \- The +package will not be installed unless it was built (obviously ;\-) ) +.IP "\fB\-\-notest\fR" 4 +.IX Item "--notest" +Does not run the automatic testing of the module as part of the build script. +This is mostly useful when packaging buggy or incomplete software. +.IP "\fB\-\-basepkgs\fR" 4 +.IX Item "--basepkgs" +Explicitly gives a comma-separated list of packages to consider \*(L"base\*(R" +packages (i.e. packages that should always be available in Debian +systems). This option defaults to \f(CW\*(C`perl,perl\-base,perl\-modules\*(C'\fR \- It +is used to check for module dependencies. If a needed module is in the +\&\f(CW\*(C`basepkgs\*(C'\fR, it won't be mentioned in the \f(CW\*(C`depends:\*(C'\fR field of +\&\f(CW\*(C`debian/control\*(C'\fR. +.Sp +If this option is specified, the above mentioned default packages will +not be included (but will be mentioned as explicit dependencies in the +resulting package). You can, of course, mention your own modules +and explicitly specify the default values. +.Sp +Note that this option should be used sparsingly and with care, as it +might lead to packages not being rebuildable because of unfulfilled +dependencies. +.IP "\fB\-\-requiredeps\fR" 4 +.IX Item "--requiredeps" +Fail if a dependency perl package was not found (dependency tracking +requires the apt-file package installed and updated) +.IP "\fB\-\-core\-ok\fR" 4 +.IX Item "--core-ok" +Allows building core Perl modules. By default, dh-make-perl will not allow +building a module that is shipped as part of the standard Perl library; by +specifying this option, dh-make-perl will build them anyway. +.Sp +Note that, although it is not probable, this might break unrelated items in +your system \- If a newer version of a core module breaks the \s-1API\s0, all kinds +of daemons might get upset ;\-) +.IP "\fB\-\-refresh\fR" 4 +.IX Item "--refresh" +Refresh mode. +.Sp +Instead of creating new debian/ directory, \fB\-\-refresh\fR makes \fBdh-make-perl\fR +to re-create only \fBdebian/rules\fR according to the current templates. +.Sp +This is useful when \fBdebian/rules\fR was created using older templates and +doesn't contain much customisations. As always, you're strongly encouraged to +verify if \fBdebian/rules\fR looks sane. +.RE +.IP "\fB\-\-dh ver\fR" +.IX Item "--dh ver" +Set desired debhelper version. If \f(CW\*(C`ver\*(C'\fR is 7, generated debian/rules is +minimalistic, using the auto-mode of debhelper. Also, any additional +documentation and examples are listed in additional files under debian/, instead +of being listed in debian/rules +.SH "DESCRIPTION" +.IX Header "DESCRIPTION" +\&\fBdh-make-perl\fR will create the files required to build +a debian source package out of a perl package. +This works for most simple packages and is also useful +for getting started with packaging perl modules. +.PP +You can specify a module name with the \fB\-\-cpan\fR switch +and \fBdh-make-perl\fR will download the module for you from +a \s-1CPAN\s0 mirror, or you can specify the directory with the +already unpacked sources. If neither \-\-cpan nor a directory +is given as argument, dh-make-perl tries to create a +perl package from the data in \fI.\fR +.PP +There is an override mechanism in place to handle most of +the little changes that may be needed for some modules +(this hasn't been tested much, though, and the override +database needs to be filled in). +.PP +You can build and install the debian package using the \-\-build +and \-\-install command line switches. +.PP +Using this program is no excuse for not reading the +debian developer documentation, including the Debian policy, +the perl policy, the packaging manual and so on. +.SH "FILES" +.IX Header "FILES" +The following directories will be searched to find additional files +required by dh\-make\-perl: +.PP +.Vb 2 +\& /usr/share/dh-make-perl/ +\& $HOME/.dh-make-perl/ +.Ve +.IP "* overrides" 4 +.IX Item "overrides" +File that overrides information retreived (or guessed) about the package. +All the files in the library directories are loaded: entries in the home +take precedence. See the distributed overrides file for usage information. +.IP "* rules.MakeMaker.noxs" 4 +.IX Item "rules.MakeMaker.noxs" +A debian/rules makefile for modules that use ExtUtils::MakeMaker, but don't +have C/XS code. +.IP "* rules.MakeMaker.xs" 4 +.IX Item "rules.MakeMaker.xs" +A debian/rules makefile for modules that use ExtUtils::MakerMaker and +C/XS code. +.IP "* rules.Module\-Build.noxs" 4 +.IX Item "rules.Module-Build.noxs" +A debian/rules makefile for modules that use Module::Build, but don't have +C/XS code. +.IP "* rules.Module\-Build.xs" 4 +.IX Item "rules.Module-Build.xs" +A debian/rules makefile for modules that use Module::Build and C/XS code. +.SH "ENVIRONMENT" +.IX Header "ENVIRONMENT" +\&\s-1HOME\s0 \- get user's home directory +.PP +\&\s-1DEBFULLNAME\s0 \- get the real name of the maintainer +.PP +\&\s-1LOGNAME\s0 or \s-1USER\s0 \- get the username +.PP +\&\s-1DEBEMAIL\s0 or \s-1EMAIL\s0 \- get the email address of the user +.SH "BUGS" +.IX Header "BUGS" +Several, let me know when you find them. +.SH "AUTHOR" +.IX Header "AUTHOR" +Paolo Molaro (\s-1MIA\s0) +.PP +Maintained for a time by Ivan Kohler . +.PP +Maintained for a time by Marc Brockschmdit . +.PP +Now maintained by Gunnar Wolf , and team-maintained +by the Debian pkg-perl team, http://alioth.debian.org/projects/pkg\-perl +.PP +Patches from: +.IP "Adam Sjoegren " 4 +.IX Item "Adam Sjoegren " +.PD 0 +.IP "Adrian Phillips " 4 +.IX Item "Adrian Phillips " +.IP "Amos Shapira " 4 +.IX Item "Amos Shapira " +.IP "Christian Kurz " 4 +.IX Item "Christian Kurz " +.IP "Damyan Ivanov " 4 +.IX Item "Damyan Ivanov " +.IP "David Paleino " 4 +.IX Item "David Paleino " +.IP "David Pashley " 4 +.IX Item "David Pashley " +.IP "Edward Betts " 4 +.IX Item "Edward Betts " +.IP "Fermin Galan " 4 +.IX Item "Fermin Galan " +.IP "Geoff Richards " 4 +.IX Item "Geoff Richards " +.IP "Gergely Nagy " 4 +.IX Item "Gergely Nagy " +.IP "gregor herrmann " 4 +.IX Item "gregor herrmann " +.IP "Hilko Bengen " 4 +.IX Item "Hilko Bengen " +.IP "Kees Cook " 4 +.IX Item "Kees Cook " +.IP "Jesper Krogh " 4 +.IX Item "Jesper Krogh " +.IP "Johnny Morano " 4 +.IX Item "Johnny Morano " +.IP "Juerd " 4 +.IX Item "Juerd " +.IP "Marc Chantreux (mail withheld)" 4 +.IX Item "Marc Chantreux (mail withheld)" +.IP "Matt Hope " 4 +.IX Item "Matt Hope " +.IP "Noel Maddy " 4 +.IX Item "Noel Maddy " +.IP "Oliver Gorwits " 4 +.IX Item "Oliver Gorwits " +.IP "Peter Moerch " 4 +.IX Item "Peter Moerch " +.IP "Stephen Oberholtzer " 4 +.IX Item "Stephen Oberholtzer " +.IP "Ton Nijkes " 4 +.IX Item "Ton Nijkes " +.PD +.PP +\&... And others who, sadly, we have forgot to add :\-/ diff --git a/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/COPYING b/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/COPYING new file mode 100644 index 0000000..d60c31a --- /dev/null +++ b/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/COPYING @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU 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. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), 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 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 show them these terms so they know 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. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + 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 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 derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 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 License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +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. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary 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 + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 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 Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing 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 for copying, distributing or modifying +the Program or works based on it. + + 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. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. 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 this 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 +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. 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 + + 11. 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. + + 12. 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 + + 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 the public, 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) + + 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 2 of the License, 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 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) year 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 is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/README b/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/README new file mode 100644 index 0000000..ed9f7e2 --- /dev/null +++ b/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/README @@ -0,0 +1,19 @@ +dh-make-perl + +Create debian packages from perl modules + +dh-make-perl will create the files required to build +a debian source package out of a perl package. +This works for most simple packages and is also useful +for getting started with packaging perl modules. + +There is an override mechanism in place to handle most of +the little changes that may be needed for some modules +(this hasn't been tested much, though). + +Using this program is no excuse for not reading the +debian developer documentation, including the policy, +the perl policy, the packaging manual and so on. + +lupus@debian.org + diff --git a/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/Strange-0.1/Changes b/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/Strange-0.1/Changes new file mode 100644 index 0000000..9286d94 --- /dev/null +++ b/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/Strange-0.1/Changes @@ -0,0 +1,5 @@ +Revision history for Perl extension Strange. + +0.1 Tue Oct 24 16:25:04 2000 + - original version; created by h2xs 1.19 + diff --git a/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/Strange-0.1/MANIFEST b/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/Strange-0.1/MANIFEST new file mode 100644 index 0000000..1c88ddb --- /dev/null +++ b/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/Strange-0.1/MANIFEST @@ -0,0 +1,5 @@ +Changes +MANIFEST +Makefile.PL +Strange.pm +test.pl diff --git a/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/Strange-0.1/Makefile.PL b/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/Strange-0.1/Makefile.PL new file mode 100644 index 0000000..5f9529c --- /dev/null +++ b/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/Strange-0.1/Makefile.PL @@ -0,0 +1,7 @@ +use ExtUtils::MakeMaker; +# See lib/ExtUtils/MakeMaker.pm for details of how to influence +# the contents of the Makefile that is written. +WriteMakefile( + 'NAME' => 'Strange', + 'VERSION_FROM' => 'Strange.pm', # finds $VERSION +); diff --git a/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/Strange-0.1/Strange.pm b/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/Strange-0.1/Strange.pm new file mode 100644 index 0000000..e49a06f --- /dev/null +++ b/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/Strange-0.1/Strange.pm @@ -0,0 +1,52 @@ +package Strange; + +use strict; +use vars qw($VERSION @ISA @EXPORT @EXPORT_OK); + +require Exporter; +require AutoLoader; + +@ISA = qw(Exporter AutoLoader); +# Items to export into callers namespace by default. Note: do not export +# names by default without a very good reason. Use EXPORT_OK instead. +# Do not simply export all your public functions/methods/constants. +@EXPORT = qw( + +); +$VERSION = '0.1'; + + +# Preloaded methods go here. + +# Autoload methods go after =cut, and are processed by the autosplit program. + +1; +__END__ +# Below is the stub of documentation for your module. You better edit it! + +=head1 NAME + +Strange - Perl extension for blah blah blah + +=head1 SYNOPSIS + + use Strange; + blah blah blah + +=head1 DESCRIPTION + +Stub documentation for Strange was created by C. It looks like the +author of the extension was negligent enough to leave the stub +unedited. + +Blah blah blah. + +=head1 AUTHOR + +A. U. Thor, a.u.thor@a.galaxy.far.far.away + +=head1 SEE ALSO + +perl(1). + +=cut diff --git a/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/Strange-0.1/test.pl b/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/Strange-0.1/test.pl new file mode 100644 index 0000000..2db141a --- /dev/null +++ b/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/Strange-0.1/test.pl @@ -0,0 +1,20 @@ +# Before `make install' is performed this script should be runnable with +# `make test'. After `make install' it should work as `perl test.pl' + +######################### We start with some black magic to print on failure. + +# Change 1..1 below to 1..last_test_to_print . +# (It may become useful if the test is moved to ./t subdirectory.) + +BEGIN { $| = 1; print "1..1\n"; } +END {print "not ok 1\n" unless $loaded;} +use Strange; +$loaded = 1; +print "ok 1\n"; + +######################### End of black magic. + +# Insert your test code below (better if it prints "ok 13" +# (correspondingly "not ok 13") depending on the success of chunk 13 +# of the test code): + diff --git a/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/Strange-2.1/Changes b/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/Strange-2.1/Changes new file mode 100644 index 0000000..82b4832 --- /dev/null +++ b/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/Strange-2.1/Changes @@ -0,0 +1,5 @@ +Revision history for Perl extension Strange. + +2.1 Tue Oct 24 16:24:40 2000 + - original version; created by h2xs 1.19 + diff --git a/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/Strange-2.1/MANIFEST b/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/Strange-2.1/MANIFEST new file mode 100644 index 0000000..3fdba67 --- /dev/null +++ b/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/Strange-2.1/MANIFEST @@ -0,0 +1,6 @@ +Changes +MANIFEST +Makefile.PL +Strange.pm +Strange.xs +test.pl diff --git a/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/Strange-2.1/Makefile.PL b/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/Strange-2.1/Makefile.PL new file mode 100644 index 0000000..ae97c05 --- /dev/null +++ b/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/Strange-2.1/Makefile.PL @@ -0,0 +1,10 @@ +use ExtUtils::MakeMaker; +# See lib/ExtUtils/MakeMaker.pm for details of how to influence +# the contents of the Makefile that is written. +WriteMakefile( + 'NAME' => 'Strange', + 'VERSION_FROM' => 'Strange.pm', # finds $VERSION + 'LIBS' => [''], # e.g., '-lm' + 'DEFINE' => '', # e.g., '-DHAVE_SOMETHING' + 'INC' => '', # e.g., '-I/usr/include/other' +); diff --git a/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/Strange-2.1/README b/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/Strange-2.1/README new file mode 100644 index 0000000..56900a9 --- /dev/null +++ b/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/Strange-2.1/README @@ -0,0 +1 @@ +burp diff --git a/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/Strange-2.1/Strange.pm b/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/Strange-2.1/Strange.pm new file mode 100644 index 0000000..f41fa4c --- /dev/null +++ b/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/Strange-2.1/Strange.pm @@ -0,0 +1,78 @@ +package Strange; + +use strict; +use Carp; +use vars qw($VERSION @ISA @EXPORT @EXPORT_OK $AUTOLOAD); + +require Exporter; +require DynaLoader; +require AutoLoader; + +@ISA = qw(Exporter DynaLoader); +# Items to export into callers namespace by default. Note: do not export +# names by default without a very good reason. Use EXPORT_OK instead. +# Do not simply export all your public functions/methods/constants. +@EXPORT = qw( + +); +$VERSION = '2.1'; + +sub AUTOLOAD { + # This AUTOLOAD is used to 'autoload' constants from the constant() + # XS function. If a constant is not found then control is passed + # to the AUTOLOAD in AutoLoader. + + my $constname; + ($constname = $AUTOLOAD) =~ s/.*:://; + croak "& not defined" if $constname eq 'constant'; + my $val = constant($constname, @_ ? $_[0] : 0); + if ($! != 0) { + if ($! =~ /Invalid/) { + $AutoLoader::AUTOLOAD = $AUTOLOAD; + goto &AutoLoader::AUTOLOAD; + } + else { + croak "Your vendor has not defined Strange macro $constname"; + } + } + no strict 'refs'; + *$AUTOLOAD = sub () { $val }; + goto &$AUTOLOAD; +} + +bootstrap Strange $VERSION; + +# Preloaded methods go here. + +# Autoload methods go after =cut, and are processed by the autosplit program. + +1; +__END__ +# Below is the stub of documentation for your module. You better edit it! + +=head1 NAME + +Strange - Perl extension for blah blah blah + +=head1 SYNOPSIS + + use Strange; + blah blah blah + +=head1 DESCRIPTION + +Stub documentation for Strange was created by h2xs. It looks like the +author of the extension was negligent enough to leave the stub +unedited. + +Blah blah blah. + +=head1 AUTHOR + +A. U. Thor, a.u.thor@a.galaxy.far.far.away + +=head1 SEE ALSO + +perl(1). + +=cut diff --git a/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/Strange-2.1/Strange.xs b/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/Strange-2.1/Strange.xs new file mode 100644 index 0000000..1e11158 --- /dev/null +++ b/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/Strange-2.1/Strange.xs @@ -0,0 +1,34 @@ +#include "EXTERN.h" +#include "perl.h" +#include "XSUB.h" + +static int +not_here(char *s) +{ + croak("%s not implemented on this architecture", s); + return -1; +} + +static double +constant(char *name, int arg) +{ + errno = 0; + switch (*name) { + } + errno = EINVAL; + return 0; + +not_there: + errno = ENOENT; + return 0; +} + + +MODULE = Strange PACKAGE = Strange + + +double +constant(name,arg) + char * name + int arg + diff --git a/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/Strange-2.1/test.pl b/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/Strange-2.1/test.pl new file mode 100644 index 0000000..2db141a --- /dev/null +++ b/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/Strange-2.1/test.pl @@ -0,0 +1,20 @@ +# Before `make install' is performed this script should be runnable with +# `make test'. After `make install' it should work as `perl test.pl' + +######################### We start with some black magic to print on failure. + +# Change 1..1 below to 1..last_test_to_print . +# (It may become useful if the test is moved to ./t subdirectory.) + +BEGIN { $| = 1; print "1..1\n"; } +END {print "not ok 1\n" unless $loaded;} +use Strange; +$loaded = 1; +print "ok 1\n"; + +######################### End of black magic. + +# Insert your test code below (better if it prints "ok 13" +# (correspondingly "not ok 13") depending on the success of chunk 13 +# of the test code): + diff --git a/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/debian/changelog b/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/debian/changelog new file mode 100644 index 0000000..48ac7b7 --- /dev/null +++ b/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/debian/changelog @@ -0,0 +1,686 @@ +dh-make-perl (0.47maemo1) fremantle; urgency=low + + * New Maemo packaging + + -- Nito Martinez Tue, 13 Apr 2010 22:52:07 +0100 + + +ldh-make-perl (0.47) unstable; urgency=low + + * rules.Module-Build.xs: add config=optimize="$(CFLAGS)" to Build.PL + invocation, causing honoring DEB_BUILD_OPTS=noopt. Thanks to Niko Tyni. + Closes: #480110 + + -- Damyan Ivanov Wed, 18 Jun 2008 21:38:20 +0300 + +dh-make-perl (0.46) unstable; urgency=low + + [ gregor herrmann ] + * Replace "::" with "-" in $perlname in all cases, otherwise the URLs in + debian/watch and debian/control's Homepage field are wrong. + + [ Damyan Ivanov ] + * add --dh switch, controlling the set of rules files to use and + desired debhelper compatibility level. Defaults to 5 + * add rules.dh7.{xs,noxs} + * fix not detecting arch-dep packages in refresh mode (-R) + * Bump Standards-Version to 3.8.0 (both in dh-make-perl and generated + packages) + * replace a call to `date -R` with a call to Email::Date::Format's + email_date function. Avoids a fork. Thanks to Stephen Gran. + + Add libemail-date-format-perl to Depends. + + [ gregor herrmann ] + * Add stamp-files to rules.dh7.{xs,noxs} (cf. + /usr/share/doc/debhelper/examples/rules.simple from debhelper 7.0.11) + * Call process_meta also in refresh mode to get package name more easily. + + -- Damyan Ivanov Wed, 18 Jun 2008 21:09:48 +0300 + +dh-make-perl (0.45) unstable; urgency=low + + * Fix mangling of long description, which was broken in 0.44; thanks to + Kevin Ryde for the bugreport (closes: #481560). + * Tighten regexp when checking for empty long description, avoids spurious + warnings. + + -- gregor herrmann Sat, 17 May 2008 15:09:59 +0200 + +dh-make-perl (0.44) unstable; urgency=low + + [ gregor herrmann ] + * Fix check_for_xs(), thanks to Kevin Ryde for the bug report and the + patch (closes: #480420). + * Escape dot in exclude pattern, also reported by Kevin Ryde in the same + bugreport. + * CPAN.pm creates build directories with a random part since 1.88_59; use + the new CPAN::Distribution::base_id method to get nice directory names + again (introduced in 1.91_53), if our CPAN.pm is new enough. + * Initialize $desc to avoid a warning. + * Only mangle $longdesc if it is not empty, avoids results like " .". + * If the directory containing the unpacked tarball already exists rename + it instead of moving the contents beneath it. + * Slightly improve wording when searching with apt-file. + * Handle errors from moving directories. + * Change my email address in several files. + * debian/copyright: update years of contributions. + + [ Damyan Ivanov ] + * Remove Roberto C. Sanchez from Uploaders on his request. + + -- gregor herrmann Sat, 10 May 2008 22:41:06 +0200 + +dh-make-perl (0.43) unstable; urgency=low + + [ gregor herrmann ] + * Evaluate --arch command line option earlier. + * Improve searching for dependencies with apt-file by using regexps; needs + a recent version of apt-file. + * Rank packages not ending in -perl lower in apt-file search results. + * Improve documentation of the --build option, thanks to Antony Gelberg + for the proposal. + + -- Damyan Ivanov Thu, 08 May 2008 09:58:23 +0300 + +dh-make-perl (0.42) unstable; urgency=low + + * Add a line to actually use the command line option --arch; thanks to + Jack Bates for reporting the problem (closes: #474180). + + -- gregor herrmann Fri, 04 Apr 2008 00:55:56 +0200 + +dh-make-perl (0.41) unstable; urgency=low + + [ Damyan Ivanov ] + * new command line switch, --refresh, causing re-creation of debian/rules + using the current templates. Useful when updating packages with ancient + debian/rules. + * remove trailing blank from usage text + * create debian/watch whenever upstream URL is available, not only if --cpan + is given + * when module has no specific perl version requirements, fall back to "perl + (>= 5.6.0-12)" for B-D-I, like dh_perl. Remove retrieval of (now unised) + information about the available perl version. + + [ Ivan Kohler ] + * Add "--allow_mb_mismatch 1" to M:B invocation of "Build distclean" in + rules.Module-Build.* templates. + + -- Damyan Ivanov Mon, 31 Mar 2008 21:51:24 +0300 + +dh-make-perl (0.40) unstable; urgency=low + + * use debhelper compatibility level 5 (and respective build-dependency on + debhelper) for generated packages + * all rules.* templates: drop obsolete 'source' and 'diff' targets + + -- Damyan Ivanov Wed, 19 Mar 2008 12:29:54 +0200 + +dh-make-perl (0.39) unstable; urgency=low + + [ gregor herrmann ] + * Set debhelper compatibility level of the created package to 6. + * Add comment and additional spaces to the created watch files to make the + pattern easier to read and understand. + * Fix small error in output of create_copyright(). + * Automatically find examples/eg/samples/sample directories for + dh_installexamples; otherwise remove empty dh_installexamples line from + debian/rules. + * Format the contributors' section in the POD with over/item/back, in the + verbatim paragraph the formatting codes were not rendered; thanks to + Nacho Barrientos Arias for spotting. + * Don't add a trailing comma to Depends: if there are no extra + dependencies. + + [ Damyan Ivanov ] + * rules.* templates: add "install" to phony targets list + * dh-make-perl: when storing versioned dependencies, remove any leading 'v' + + [ Martín Ferrari ] + * rules.* templates: Make source and diff .PHONY targets too, prettify a + little: remove unneeded whitespace, make PERL a conditional assignment + instead of an "#if" block, align the assignment of the variables. + + [ Roberto C. Sanchez ] + * Add /me to uploaders + * Remove obsolete README.Debian + * Update copyright to name GPL-2 explicitly (GPL now links to GPL-3 on sid) + + -- Roberto C. Sanchez Tue, 18 Mar 2008 18:47:31 -0400 + +dh-make-perl (0.38) unstable; urgency=low + + [ gregor herrmann ] + * Fix inline documentation: it's Vcs-Svn and Vcs-Browser nowadays. + + [ Damyan Ivanov ] + * all templates: use $(TMP) in the comment before the install + * MakeMaker templates: do not set INSTALLVENDORARCH and VENDORARCHEXP when + configuring. Instead, verbosely remove the empty dirs if they exist. Perl + 5.10's MakeMaker is reported to be fixed. + + -- Damyan Ivanov Thu, 10 Jan 2008 17:00:03 +0200 + +dh-make-perl (0.37) unstable; urgency=low + + [ Martín Ferrari ] + * Replace erroneous reference to $opts{basepkgs} in extract_depends, thanks + to Hilko Bengen for the correction. (Closes: #452122). + * Obtain a list of matching modules when querying CPAN (instead of just the + first match) to allow it to correctly choose between module names that + only differ in case. (Closes: #451838). + + [ Gunnar Wolf ] + * Now generates packages with standards-version: 3.7.3 + (i.e. meta-bumped-up standards-version) + + [ gregor herrmann ] + * Extend regex for matching upstream versions on the creation of + debian/watch. + + -- Damyan Ivanov Fri, 28 Dec 2007 15:16:51 +0200 + +dh-make-perl (0.36) unstable; urgency=low + + * Fix install dependencies in rules templates + Before: + install: build install-stamp + install-stamp: + After: + install: install-stamp + install-stamp: build-stamp + Avoids problems with parallel builds + * Use "$@" when touching stamps + * Bump standards-version to 3.7.3 (no changes) + + -- Damyan Ivanov Fri, 07 Dec 2007 11:28:18 +0200 + +dh-make-perl (0.35) unstable; urgency=low + + [ Oliver Gorwits ] + * Try Module::Depends if M::D::Intrusive fails (Closes: #447520). This + helps Module::Install modules (with META.yml) to work with dh-make-perl. + + -- Damyan Ivanov Wed, 14 Nov 2007 16:46:02 +0200 + +dh-make-perl (0.34) unstable; urgency=low + + * Add Vcs-* fields instead of the obsolete XS-Vcs-* fields when invoked + with --pkg-perl. + + -- gregor herrmann Wed, 17 Oct 2007 17:51:46 +0200 + +dh-make-perl (0.33) unstable; urgency=low + + [ David Paleino ] + * Added --email|-e and --packagename|-p switches (Closes: #443170). + + [ gregor herrmann ] + * Create Homepage: field in source stanza instead of pseudo-field in long + description. + * Add "--pkg-perl" to output of usage instructions. + * debian/control: Added: Vcs-Svn field (source stanza); Vcs-Browser + field (source stanza). Removed: XS-Vcs-Svn fields. + + [ Damyan Ivanov ] + * Add "create_packlist=0" to Module-Build templates + * Replace `pwd` with $(CURDIR) in debian/rules + + -- Damyan Ivanov Mon, 15 Oct 2007 11:23:06 +0300 + +dh-make-perl (0.32) unstable; urgency=low + + [ Frank Lichtenheld ] + * Unbreak handling of --version which was broken by the + getopts overhaul in 0.27 + + [ David Paleino ] + * Added new command line switch (--closes), to specify the ITP that + the new package is going to close + * Now dh-make-perl automagically fetches the ITP bug number from WNPP! + + -- Damyan Ivanov Mon, 17 Sep 2007 15:02:54 +0300 + +dh-make-perl (0.31) unstable; urgency=low + + [ David Paleino ] + * rules.MakeMaker.*: changed approach to the removal of unneeded (and + unwanted) dirs: + - /usr/lib/perl5/ for architecture-independent packages; + - /usr/share/perl5/ for architecture-dependent packages + + [ Damyan Ivanov ] + * Use http://search.cpan.org/dist/$perlname/ for upstream URL, watch and + Homepage. Idea borrowed from David Paleino. + * Document --pkg-perl option + + -- Damyan Ivanov Fri, 14 Sep 2007 11:38:10 +0300 + +dh-make-perl (0.30) unstable; urgency=low + + [ Gunnar Wolf ] + * Added warning when the extracted copyright information is incomplete + Closes: #439328 -- Stricter checks for debian/copyright + + [ Damyan Ivanov ] + * rules* clean: Move dh_clean $stamp_files call before the $(MAKE) clean + call as that may fail half-way, leaving the stamps in place + + -- Damyan Ivanov Tue, 11 Sep 2007 11:53:18 +0300 + +dh-make-perl (0.29) unstable; urgency=low + + * rules*.xs: add a call to dh_shlibdeps for arch-dependent packages + Thanks to Martín Ferrari for spotting + + -- Damyan Ivanov Tue, 21 Aug 2007 09:47:49 +0300 + +dh-make-perl (0.28) unstable; urgency=low + + [ Gunnar Wolf ] + * Added "basepkgs" option to specify which packages should be + considered base + * The list of base modules is no longer specified by hand - Base + packages are now queried and this list is generated from it. + * Pragmas and base modules are handled the same way - There is no real + way to differentiate them... And they were used interchangeably, so + there ;-) + * Homogeneized the usage of dh_* helpers in the different cases of + generated debian/rules + + [ Damyan Ivanov ] + * current watch file version is 3, this is what we generate too + stricter debian/watch patterns, omit capturing file extension + * Move tests from install to build target + * better explaination in binary-arch target for arch-indep packages and in + binary-indep target of arch-dep packages why the target is empty + * Add new option "--pkg-perl" which adds some functionality useful when + packages are created for the Debian Perl Group. Currently adds XS-Vcs-* + fields to debian/control and sets the Maintainer and Uploaders fields + accordingly + + -- Damyan Ivanov Mon, 20 Aug 2007 10:26:31 +0300 + +dh-make-perl (0.27) unstable; urgency=low + + [ Gunnar Wolf ] + * Moved all the options received from the user to %opts, for better + code readability + * When the module to be packaged declares a dependency on a specific + Perl version, reflect it in the output dependency/build dependency + information, rather than complaining that no such module exists + + [ gregor herrmann ] + * Add "It was downloaded from ..." to debian/copyright if called with + "--cpan $modulename". + * Define $dir before using it in "$modulepm =" in + extract_name_ver_from_makefile(). + * Replace q[quotes] by "quotes" when parsing Makefile.PL in + extract_name_ver_from_makefile(). + * Actually use command line option "--desc". + + [ Damyan Ivanov ] + * Added packaging copyright/licensing to the generated debian/copyright + * Added myself to Uploaders + * Wrap long fields in debian/control + * Add detailed copyright info in debian/copyright according to SVN logs and + debian/changelog + + [ Gunnar Wolf ] + * Clarified the messages when called in a system where apt-file + (recommended but not depended upon) is not present (Closes: #428415) + * Added some modules should be part of @stdmodules; the list is hand- + crafted and incomplete - we need a better solution! + + -- Gunnar Wolf Tue, 07 Aug 2007 10:50:45 -0500 + +dh-make-perl (0.26) unstable; urgency=low + + [ Frank Lichtenheld ] + * s/debian/Debian/ in Description + + [ Gunnar Wolf ] + * Trimmed unneeded whitespace from generated files - Thanks to Kees + Cook for the patch! (Closes: #411282) + * Patched regex for finding the module name when unde Module::Install, + allowing for whitespace between the "name" string and the module + name. Thanks to Marc Chantreux for the patch (and the patience ;-) ) + * Replaced the (now deprecated) call to the external program 822-date + for date -R + * Started reorganizing the code - All bare open() calls are now + handled through IO::File; shuffled some functions around so the code + is more followable + * Added --core-ok option to allow building core modules (Closes: + #409017) + + -- Gunnar Wolf Wed, 09 May 2007 19:24:16 -0500 + +dh-make-perl (0.25) unstable; urgency=low + + * Fixed the Perl package data parsing function, fixing an unneeded + warning. Thanks to Johnny Morano for the patch! (Closes: #396846) + * Generated dependency on Perl was incomplete (it _only_ missed the + package name :-/ ) - Thanks to Hilko Bengen for pointing it out. + (Closes: #400400) + * No longer dies when building Module::Install modules - It now asks + the user to manually specify the dependencies. (Closes: #396536) + * Can now specify via command line depends, build-depends and build- + depends-indep + * A bit of basic cleaning, trying to deuglify this very much love- + needing source code + * Added patch by Jesper Krogh which allows dh-make-perl to generate + versioned dependency strings (Closes: #364325) + + -- Gunnar Wolf Tue, 28 Nov 2006 11:47:32 -0600 + +dh-make-perl (0.24) unstable; urgency=low + + * Transferred package ownership to the Debian Perl Group + * Added patch by Fermin Galan, allowing to specify the maintainer from + the overrides file + * Fixed Perl package version parsing (Closes: #386086, #393438) + * Fixed: Was not properly ignoring Subversion/CVS directories when + called with an implicit --exclude/-i (Closes: #394314) + * Fixes the cases where Makefile.PL depends on FindBin (Closes: + #375146) + + -- Gunnar Wolf Fri, 27 Oct 2006 13:22:17 -0500 + +dh-make-perl (0.23) unstable; urgency=low + + * Added --requiredeps option, to force dh-make-perl to choke on + unresolvable dependencies (Closes: #382027) + * Packages which are not arch-indep will correctly list perl as build- + depends, not build-depends-indep (Closes: #381148) + * The version of Perl depended upon for building is the one currently + installed in the system, as reported by dpkg + + -- Gunnar Wolf Mon, 28 Aug 2006 20:57:15 -0500 + +dh-make-perl (0.22) unstable; urgency=low + + * Added patch by Peter Morch allowing user again + to specify packaging version number (which we had, but was trampled upon + by autodetection code). (Closes: #382039) + * Updated generated standards-version to 3.7.2, after checking nothing + specifically refers to Perl packaging. Updated debhelper required + version to >= 5.0.0 (Closes: #381130) + * Updated this package's standards-version to 3.7.2 and debhelper + required version to >= 5.0.0 + + -- Gunnar Wolf Sun, 13 Aug 2006 20:09:12 -0500 + +dh-make-perl (0.21) unstable; urgency=low + + * Added patch by Adam Sjoegren/Damyan Ivanov fixing newlines in + descriptions that broke the generated debian/control files (Closes: + #350728) + + -- Gunnar Wolf Wed, 8 Mar 2006 12:56:03 -0600 + +dh-make-perl (0.20) unstable; urgency=low + + * No longer ignores META.yml due to the silly oversight of yours + truly, that was handing back an empty hashref :-/ Thanks to Adam + Sj�gren and to Noel Maddy for two equivalent reports and two + identical patches. (Closes: #331658, #328687) + * Added yet-another-case of how to get version information - Thanks to + Noel Maddy for the patch (Closes: #328700) + + -- Gunnar Wolf Mon, 24 Oct 2005 12:31:59 -0500 + +dh-make-perl (0.19) unstable; urgency=low + + * Generated debian/watch was including the trailing dot as part of the + version number - fixed + * Does not die anymore when META.yml is wrongly formed (Closes: + #326807) + + -- Gunnar Wolf Tue, 6 Sep 2005 16:50:14 -0500 + +dh-make-perl (0.18) unstable; urgency=low + + * Generated modules don't ignore the result of the cleaning process in + the presence of a Makefile/Build (Closes: #325452) + * Supports also getting information from modules that use + Module::Install + * Better support for getting information out of the META.yml file, + needed for correct building of Module::Build-based modules (Closes: + #315798) + + -- Gunnar Wolf Mon, 29 Aug 2005 11:56:28 -0500 + +dh-make-perl (0.17) unstable; urgency=low + + * Fixed: Module::Depends::Intrusive was unable to find files because + the build dir was not part of @INC (Closes: #303806) + * Fixed: Oversight in previous version breaks information gathering + from modules including a valid META.yml (Closes: #309552) + + -- Gunnar Wolf Wed, 18 May 2005 09:36:11 -0500 + +dh-make-perl (0.16) unstable; urgency=low + + * dh-make-perl: Die on error from Module::Depends::Intrusive + * Fixed extract_name_ver to correctly deal with empty META.yml files + + -- Gunnar Wolf Sat, 14 May 2005 17:20:30 -0500 + +dh-make-perl (0.15) unstable; urgency=low + + * dh-make-perl: Fix documentation to respect the new names for the rules + templates. + * dh-make-perl: Check if module from cpan is a standard module + (Closes: #136732) + * dh-make-perl: Uses Module::Depends::Intrusive in extract_depends() to find + dependencies now. This simulates a build of the module ensuring that you + get all the dependencies. (Closes: #297537) + * debian/control: Added dependency on libmodule-depends-perl for dependency + detection fix. + * dh-make-perl: Added a function to make a watch file for modules from + CPAN. (Closes: #253919) + + -- Gunnar Wolf Fri, 1 Apr 2005 18:05:14 -0600 + +dh-make-perl (0.14) unstable; urgency=medium + + * rules.ModuleBuild.{noxs,xs}: Add rules templates for Module::Build + based packages. Thanks for the (slightly modified) patch from + Jason Kohles . (Closes: #258123, #285941, #300121). + Thanks to Marc 'HE' Brockschmidt for incorporating this work. + * Now performs tests as part of the build process. Added the --notest + switch to revert the behavior to the old one. + * Added a Recommends: libmodule-build-perl relationship + + -- Gunnar Wolf Wed, 23 Mar 2005 19:32:08 -0600 + +dh-make-perl (0.13) unstable; urgency=low + + * New maintainer, Gunnar Wolf , with Wolfgang Schemmel + as a co-maintainer. + * Fixed bug which made dh-make-perl get the module name wrong when it ended + in ::Perl. Applied patch by David Pashley - Thanks! (Closes: #249472) + * Fixed an uninitialized substitution warning if there is no + changelog. Applied patch semantically equivalent to Edward Bett's, + thanks! (Closes: #243338) + * Handles the cases where POD has DETAILS instead of DESCRIPTION, as + well as cases where the POD files are DOS-like (i.e., lines end with + \r\n). Applied Edward Betts' patch, thanks! (Closes: #267899) + * Documented the --build and --install switches in the synopsis, + forced the module to be built if only --install is specified. + (Closes: #269606) + + -- Gunnar Wolf Mon, 14 Mar 2005 14:03:17 -0600 + +dh-make-perl (0.12) unstable; urgency=low + + * debian/rules: Make make clean cleaner. + * debian/control: I'm a DD now! + * dh-make-perl: + + Don't use rename, as it won't work across devices. + + Rewrite the ugly stuff that inserts the found docs and the changes file + into the rules file. IMO this whole thing has to be rewritten *sigh* + + Fix --build switch by calling make directly with the -C switch. Thanks + for the report to Emanuele Zeppieri (Closes: + #241159) + + Work with DEBEMAIL and DEBFULLNAME as dch does. + + Fix regexp finding the used modules to allow stuff like use Gtk2"-init" + and Foobar(). Thanks for the report to Eric Schwartz + . (Closes: #234774) + . + ### I'm planning to rewrite dh-make-perl over the next few weeks. Please + ### mail me if you want to contribute or have ideas for new features. + + -- Marc 'HE' Brockschmidt Wed, 31 Mar 2004 17:30:44 +0200 + +dh-make-perl (0.11) unstable; urgency=low + + * Let dh-make-perl also work on directories other than ".". (Closes: + #230382) + * Apply patch from Gaal Yahas to the CPAN code, now + CPAN.pm itself chooses the default mirror. Thanks Gaal! (Closes: #230409) + * Fixed "Use of uninitialized value" warnings in the default override file. + * Introducing the --exclude|i switch to allow people to exclude some files + from the search for docs and stuff. This defaults to the exclusion of + CVS/.svn dirs. (Closes: #223411, #227183, #227113) + * Now prints out the Perl error message when failing to open a file. + * Add a note to the end of the long description to state that it was + automagically extracted from the source. (Closes: #226146) + * Updated both rules.noxs and rules.xs. + * Updated manpage. + + -- Marc Brockschmidt Mon, 9 Feb 2004 20:39:46 +0100 + +dh-make-perl (0.10) unstable; urgency=low + + * New maintainer. (Closes: #206877) + * Acknowledge fixes in the 3 NMUs. (Closes: #153311, #138517, #149295, + #158427, #131937, #134404, #143631) + * Changed debhelper version number in the generated debian/rules file to + woody standard 4.0.2. (Closes: #188313) + * Changed some CPAN things: The package will be build in ./$packagename/, + a tarball will be moved to ./$packagename_$version.orig.tar.gz. + * Use Build-Depends-Indep for perl instead of Build-Depends to make packages + lintian clean. + * Search for packages containing needed perl modules with apt-file (if + installed), otherwise just output the list of needed modules. (Closes: + #194755) + * Applied patch to enable overrides again. Thanks to Adrian Phillips + . (Closes: #207822) + * Applied patch to parse Makefile.PL right (Sometimes we need DISTNAME and + not NAME). Thanks to Adrian Phillips . (Closes: #207833) + * Applied patch to get information from META.yml instead of Makefile.PL. + Thanks to Ilya Martynov . (Closes: #209059) + + -- Marc Brockschmidt Fri, 24 Oct 2003 13:03:11 +0200 + +dh-make-perl (0.9-0.4) unstable; urgency=low + + * Non-maintainer upload + * Change from section "interpreters" to "perl" in boilerplate. + * changed to debian/compat instead of DH_COMPAT + * change to debhelper compatibility level v4 from v3: added ${misc:Depends} + + -- Ivan Kohler Mon, 31 Mar 2003 13:16:29 -0800 + +dh-make-perl (0.9-0.3) unstable; urgency=low + + * Non-maintainer upload + * Use version from CPAN if --cpan was used and Paolo's parsing fails, + as per suggestion from joeyh (closes: Bug#158427) + + -- Ivan Kohler Mon, 2 Sep 2002 03:57:49 -0700 + +dh-make-perl (0.9-0.2) unstable; urgency=low + + * Non-maintainer upload + * Reformat description (closes: Bug#134404) + * Fix binary-arch vs. binary-indep in package's own debian/rules + * Don't create a README.Debian file or use Emacs vars in changelog + (closes: Bug#153311) + * Use an extension on perl -pi invocations (closes: Bug#149295) + * Better $VERSION parsing, perhaps (closes: Bug#138517) might be better to + just ask CPAN(PLUS)? + * fix typo in manpage (closes: Bug#131937) + * CPANPLUS option (closes: Bug#143631) + * Fix binary-arch vs. binary-indep in rules.noxs + * Automatically add links to /usr/share/common-licenses for some common + licenses. + + -- Ivan Kohler Thu, 22 Aug 2002 18:18:51 -0700 + +dh-make-perl (0.9) unstable; urgency=low + + * Handle better files without pod info (Closes: bug#109437). + * Require the user to specify the version if the euristics don't work: + closes: bug#112373. + * Use dh_installman in the rules files instead of dh_installmanpages: + closes: bug#118130. + + -- Paolo Molaro Sun, 11 Nov 2001 19:36:06 +0100 + +dh-make-perl (0.8) unstable; urgency=low + + * Quick, before anyone notices. + + -- Paolo Molaro Wed, 13 Jun 2001 09:49:38 +0200 + +dh-make-perl (0.7) unstable; urgency=low + + * gzclose error was on CPAN module (Closes: bug#86644). + * Fixed descriptions (Closes: bug#94570). + * Updates for new version of CPAN.pm. + * Limit somewhat the lines of text in the descriptions. + * Handle better some weird situations (Closes: bug#89733). + * Also consider $ENV{DEBFULLNAME) for the maintainer's name (Closes: bug#98316). + + -- Paolo Molaro Tue, 12 Jun 2001 15:39:50 +0200 + +dh-make-perl (0.6) unstable; urgency=low + + * Handle correctly interior sequences in pod parser. + * Shut up some warnings. + * Correctly set maintainer email in some cases. + * Better copyright guesses. + * Ensure policy compliant names and version numbers. + * Fixes in rules files (support DEB_BUILD_OPTIONS). + * Better checks for binary modules (added a --arch option, too). + + -- Paolo Molaro Mon, 19 Feb 2001 13:52:39 +0100 + +dh-make-perl (0.5) unstable; urgency=low + + * Do not use install-stamp in sample rules files (Closes: bug#84509). + * Updates to policy 3.5.1. + + -- Paolo Molaro Sun, 18 Feb 2001 21:42:27 +0100 + +dh-make-perl (0.4) unstable; urgency=low + + * Use Pod::Parser to parse the pod tags. + * Build package in current directory. + * Updated generated rules files to new perl policy. + + -- Paolo Molaro Fri, 16 Feb 2001 23:39:08 +0100 + +dh-make-perl (0.3) unstable; urgency=low + + * Fix typo in README.Debian filename (Closes: bug#77499). + * Handle description creation better (Closes: bug#78970). + * Fixed docs about DEBEMAIL env var (Closes: bug#80607). + + -- Paolo Molaro Sun, 28 Jan 2001 13:20:52 +0100 + +dh-make-perl (0.2) unstable; urgency=low + + * Added support for downloading modules from CPAN. + * Added switches to build and install the resulting package. + + -- Paolo Molaro Wed, 25 Oct 2000 15:52:55 +0200 + +dh-make-perl (0.1) unstable; urgency=low + + * Initial Release. + + -- Paolo Molaro Mon, 16 Oct 2000 19:14:24 +0200 + diff --git a/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/debian/compat b/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/debian/compat new file mode 100644 index 0000000..7ed6ff8 --- /dev/null +++ b/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/debian/compat @@ -0,0 +1 @@ +5 diff --git a/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/debian/control b/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/debian/control new file mode 100644 index 0000000..4c4dca7 --- /dev/null +++ b/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/debian/control @@ -0,0 +1,28 @@ +Source: dh-make-perl +Section: devel +Priority: optional +Build-Depends: debhelper (>= 5) +Build-Depends-Indep: perl +Maintainer: Debian Perl Group +Uploaders: Gunnar Wolf , Wolfgang Schemmel , + Christopher Sacca , + Damyan Ivanov , gregor herrmann , + David Paleino , + Oliver Gorwits +Standards-Version: 3.8.0 +Vcs-Svn: svn://svn.debian.org/pkg-perl/trunk/dh-make-perl/ +Vcs-Browser: http://svn.debian.org/wsvn/pkg-perl/trunk/dh-make-perl/ + +Package: dh-make-perl +Architecture: all +Depends: debhelper (>= 4.0.2), libpod-parser-perl, ${perl:Depends}, make, + dpkg-dev, fakeroot, ${misc:Depends}, libyaml-perl, libmodule-depends-perl, + libwww-mechanize-perl, libemail-date-format-perl +Recommends: apt-file (>= 2.1.0), libmodule-build-perl +Description: Create Debian packages from perl modules + dh-make-perl will create the files required to build a Debian source + package out of a perl package. This works for most simple packages + and is also useful for getting started with packaging perl modules. + Given a perl package name, it can also automatically download it from + CPAN. + diff --git a/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/debian/copyright b/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/debian/copyright new file mode 100644 index 0000000..557374e --- /dev/null +++ b/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/debian/copyright @@ -0,0 +1,16 @@ +dh-make-perl was created by Paolo Molaro. + +It is currently maintained by Gunnar Wolf and others, under the umbrella of the +Debian Perl Group + +Copyright (c) 2000,2001 Paolo Molaro + (c) 2002,2003,2008 Ivan Kohler + (c) 2003,2004 Marc 'HE' Brockschmidt + (c) 2005-2007 Gunnar Wolf + (c) 2006 Frank Lichtenheld + (c) 2007-2008 Gregor Herrmann + (c) 2007-2008 Damyan Ivanov + +You can do anything with it according to the GPLv2: look +in /usr/share/common-licenses/GPL-2 on your Debian system. + diff --git a/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/debian/rules b/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/debian/rules new file mode 100755 index 0000000..d9fb347 --- /dev/null +++ b/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/debian/rules @@ -0,0 +1,76 @@ +#!/usr/bin/make -f +#-*- makefile -*- +# Made with the aid of dh_make, by Craig Small +# Sample debian/rules that uses debhelper. GNU copyright 1997 by Joey Hess. +# Some lines taken from debmake, by Christoph Lameter. + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +INST=$(CURDIR)/debian/dh-make-perl + +build: build-stamp +build-stamp: + dh_testdir + + # Add here commands to compile the package. + pod2man --center debian dh-make-perl > dh-make-perl.1 + + touch build-stamp + +clean: + dh_testdir + dh_testroot + rm -f build-stamp + + # Add here commands to clean up after the build process. + @for i in Strange-0.1 Strange-2.1; do\ + if test -d "$$i/debian"; then \ + cd $$i; \ + debian/rules clean; \ + cd ..; \ + rm -rf $$i/debian; \ + fi \ + done + + dh_clean dh-make-perl.1 $(wildcard *.changes) $(wildcard *.deb) $(wildcard *.gz) + +install: + dh_testdir + dh_testroot + dh_clean -k + dh_installdirs + + # Add here commands to install the package into debian/tmp. + #$(MAKE) install DESTDIR=`pwd`/debian/tmp + mkdir -p $(INST)/usr/bin + mkdir -p $(INST)/usr/share/dh-make-perl + cp dh-make-perl $(INST)/usr/bin + cp rules* $(INST)/usr/share/dh-make-perl + cp overrides $(INST)/usr/share/dh-make-perl + + +# Build architecture-independent files here. +binary-arch: build install +# We have nothing to do by default. + +# Build architecture-dependent files here. +binary-indep: build install + dh_testdir + dh_testroot + dh_installdocs README + dh_installman dh-make-perl.1 + dh_installchangelogs + dh_compress + dh_fixperms + dh_installdeb + dh_perl + dh_gencontrol + dh_md5sums + dh_builddeb + +source diff: + @echo >&2 'source and diff are obsolete - use dpkg-source -b'; false + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary diff --git a/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/dh-make-perl b/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/dh-make-perl new file mode 100755 index 0000000..ae0f1f4 --- /dev/null +++ b/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/dh-make-perl @@ -0,0 +1,1557 @@ +#!/usr/bin/perl -w +use Pod::Parser; +use YAML; +use IO::File; +use File::Basename; +use File::Find; +use File::Copy qw(copy move); +use User::pwent; +use Getopt::Long; +use Cwd; +use CPAN; +use Module::Depends::Intrusive; +use Email::Date::Format qw(email_date); +use strict; + +# TODO: +# * get more info from the package (maybe using CPAN methods) + +###################################################################### +# This Pod::Parser must be declared before the main program flow. If you +# are trying to figure out what happens inside dh-make-perl, skip down +# until 'package main'. +package MyPod; + +@MyPod::ISA = qw(Pod::Parser); + +sub set_names { + my ($parser, @names) = @_; + foreach my $n (@names) { + $parser->{_deb_}->{$n} = undef; + } +} + +sub get { + my ($parser, $name) = @_; + $parser->{_deb_}->{$name}; +} + +sub cleanup { + my $parser = shift; + delete $parser->{_current_}; + foreach my $k ( keys %{$parser->{_deb_}}) { + $parser->{_deb_}->{$k} = undef; + } +} + +sub command { + my ($parser, $command, $paragraph, $line_num) = @_; + $paragraph =~ s/\s+$//s; + if ($command =~ /head/ && exists($parser->{_deb_}->{$paragraph})) { + $parser->{_current_} = $paragraph; + $parser->{_lineno_} = $line_num; + } else { + delete $parser->{_current_}; + } + #print "GOT: $command -> $paragraph\n"; +} + +sub add_text { + my ($parser, $paragraph, $line_num) = @_; + return unless exists $parser->{_current_}; + return if ($line_num - $parser->{_lineno_} > 15); + $paragraph =~ s/^\s+//s; + $paragraph =~ s/\s+$//s; + $paragraph = $parser->interpolate($paragraph, $line_num); + $parser->{_deb_}->{$parser->{_current_}} .= "\n\n".$paragraph; + #print "GOTT: $paragraph'\n"; +} + +sub verbatim { shift->add_text(@_)} + +sub textblock { shift->add_text(@_)} + +sub interior_sequence { + my ($parser, $seq_command, $seq_argument) = @_; + if ($seq_command eq 'E') { + my %map = ('gt' => '>', 'lt' => '<', 'sol' => '/', 'verbar' => '|'); + return $map{$seq_argument} if exists $map{$seq_argument}; + return chr($seq_argument) if ($seq_argument =~ /^\d+$/); + # html names... + } + return $seq_argument; +} + +###################################################################### +# Main dh-make-perl starts here, don't look any further! +package main; +my (@stdmodules, $min_perl_version, $debstdversion, $priority, $section, + $depends, $bdepends, $bdependsi, $maintainer, $arch, $closes, $date, + $debiandir, $startdir, $datadir, $homedir, $email); +our %overrides; + +$debstdversion = '3.8.0'; +$priority = 'optional'; +$section = 'perl'; +$depends = '${perl:Depends}'; +# 5.6.0-12 is where arch-indep modules are moved in /usr/share/perl5 +# (according to dh_perl) +# if the module has stricter requirements, this build-dependency +# is replaced below by calling substitute_perl_dependency +$min_perl_version = '5.6.10-12'; +$bdependsi = "perl (>= $min_perl_version)"; +$arch = 'all'; +$date = email_date(time); +$startdir = getcwd(); +$datadir = '/usr/share/dh-make-perl'; +$homedir = "$ENV{HOME}/.dh-make-perl"; + +my ($perlname, $maindir, $modulepm, $meta); +my ($pkgname, $srcname, + # $version is the version from the perl module itself + $version, + # $pkgversion is the resulting version of the package: User's + # --version=s or "$version-1" + $pkgversion, + $desc, $longdesc, $copyright, $author, $upsurl); +my ($extrasfields, $extrapfields); +my ($module_build); +my (@docs, @examples, $changelog, @args); + +my %opts = ( + 'dh' => 5, +); + +my $mod_cpan_version; + +$opts{dbflags} = $>==0?"":"-rfakeroot"; +chomp($date); + +GetOptions(\%opts, + 'arch=s', 'basepkgs=s', 'bdepends=s', 'bdependsi=s', + 'build!', 'core-ok', 'cpan=s', 'cpanplus=s', 'closes=i', + 'cpan-mirror=s', 'dbflags=s', 'depends=s', 'desc=s', + 'exclude|i:s{,}', 'help', 'install!', 'nometa', 'notest', + 'pkg-perl!', 'requiredeps', 'version=s', 'e=s', 'email=s', + 'p=s', 'packagename=s', 'refresh|R', 'dh=i' +) or die usage_instructions(); + +$bdepends = "debhelper (>= $opts{dh})"; +@stdmodules = get_stdmodules(); + +# Help requested? Nice, we can just die! Isn't it helpful? +die usage_instructions() if $opts{help}; +die "CPANPLUS support disabled, sorry" if $opts{cpanplus}; + +$opts{exclude} = '(?:\/|^)(?:CVS|\.svn)\/' if (!defined $opts{exclude} or + $opts{exclude} eq ''); + +$arch = $opts{arch} if defined $opts{arch}; + +if ( $opts{refresh} ) +{ + print "Engaging refresh mode\n"; + $maindir='.'; + $meta = process_meta("$maindir/META.yml") if (-f "$maindir/META.yml"); # package name + ($pkgname, $version) = extract_basic(); # also detects arch-dep package + $module_build = (-f "$maindir/Build.PL") ? "Module-Build" : "MakeMaker"; + $debiandir='./debian'; + extract_changelog($maindir); + extract_docs($maindir); + extract_examples($maindir); + print "Found changelog: $changelog\n" if defined $changelog; + print "Found docs: @docs\n"; + print "Found examples: @examples\n" if @examples; + create_rules("$debiandir/rules"); + fix_rules( + "$debiandir/rules", + (defined $changelog ? $changelog : ''), + \@docs, \@examples, + ); + print "Done\n"; + exit 0; +} + +load_overrides(); +my $tarball = setup_dir(); +$meta = process_meta("$maindir/META.yml") if (-f "$maindir/META.yml"); +findbin_fix(); + +if (defined $opts{e}) { + $email = $opts{e}; +} elsif (defined $opts{email}) { + $email = $opts{email}; +} else { + $email = ''; +} +$maintainer = get_maintainer($email); + +if (defined $opts{desc}) { + $desc = $opts{desc}; +} else { + $desc = ''; +} +($pkgname, $version) = extract_basic(); +if (defined $opts{p}) { + $pkgname = $opts{p}; +} elsif (defined $opts{packagename}) { + $pkgname = $opts{packagename}; +} +unless (defined $opts{version}) { + $pkgversion = $version . "-1"; +} else { + $pkgversion = $opts{version}; +} + +move ($tarball, dirname($tarball) . "/${pkgname}_${version}.orig.tar.gz") if ($tarball && $tarball =~ /(?:\.tar\.gz|\.tgz)$/); +$module_build = (-f "$maindir/Build.PL") ? "Module-Build" : "MakeMaker"; +extract_changelog($maindir); +extract_docs($maindir); +extract_examples($maindir); + +if (defined $opts{bdepends}) { + $bdepends = $opts{bdepends}; +} else { + $bdepends .= ', libmodule-build-perl' if ($module_build eq "Module-Build"); +} +$bdependsi = $opts{bdependsi} if defined $opts{bdependsi}; + +if (defined $opts{depends}) { + $depends = $opts{depends}; +} else { + $depends .= ', ${shlibs:Depends}' if $arch eq 'any'; + $depends .= ', ${misc:Depends}'; + my $extradeps = extract_depends($maindir, $meta); + $depends .= ( $extradeps ? ", $extradeps" : '' ); +} + +apply_overrides(); + +die "Cannot find a description for the package: use the --desc switch\n" + unless $desc; +print "Package does not provide a long description - " , + " Please fill it in manually.\n" + if (!defined $longdesc or $longdesc =~ /^\s*\.?\s*$/); +print "Using maintainer: $maintainer\n"; +print "Found changelog: $changelog\n" if defined $changelog; +print "Found docs: @docs\n"; +print "Found examples: @examples\n" if @examples; +-d $debiandir && die "The directory $debiandir is already present and I won't overwrite it: remove it yourself.\n"; +# start writing out the data +mkdir ($debiandir, 0755) || die "Cannot create $debiandir dir: $!\n"; +create_control("$debiandir/control"); +if (defined $opts{closes}) { + $closes = $opts{closes}; +} else { + $closes = get_itp($pkgname); +} +create_changelog("$debiandir/changelog", $closes); +create_rules("$debiandir/rules"); +create_compat("$debiandir/compat"); +create_watch("$debiandir/watch") if $upsurl; +#create_readme("$debiandir/README.Debian"); +create_copyright("$debiandir/copyright"); +fix_rules("$debiandir/rules", (defined $changelog ? $changelog : ''), \@docs, \@examples); +apply_final_overrides(); +build_package($maindir) if $opts{build} or $opts{install}; +install_package($debiandir) if $opts{install}; +print "Done\n"; +exit(0); + +sub usage_instructions { +return <<"USAGE" +Usage: +$0 [ --build ] [ --install ] [ SOURCE_DIR | --cpan MODULE ] +$0 --refresh|-R +Other options: [ --desc DESCRIPTION ] [ --arch all|any ] [ --version VERSION ] + [ --depends DEPENDS ] [ --bdepends BUILD-DEPENDS ] + [ --bdependsi BUILD-DEPENDS-INDEP ] [ --cpan-mirror MIRROR ] + [ --exclude|-i [REGEX] ] [ --notest ] [ --nometa ] + [ --requiredeps ] [ --core-ok ] [ --basepkgs PKGSLIST ] + [ --closes ITPBUG ] [ --packagename|-p PACKAGENAME ] + [ --email|-e EMAIL ] [ --pkg-perl ] [ --dh ] +USAGE +} + +sub get_stdmodules { + my ($base_packages, @modules, $paths); + $base_packages = $opts{basepkgs} || 'perl,perl-base,perl-modules'; + + # We will check on all the base Perl packages for the modules they provide. + # To know which files we care for, we look at @INC - In a format easy to + # integrate into a regex + $paths = join('|', @INC); + + for my $pkg (split(/,/,$base_packages)) { + for my $file (map {chomp;$_} `dpkg -L $pkg`) { + next unless $file =~ s!^(?:$paths)[\d\.]*/(.*).pm$!$1!x; + + $file =~ s!/!::!g; + push @modules, $file; + } + } + + return sort @modules; +} + +sub setup_dir { + my ($dist, $mod, $cpanversion, $tarball); + $mod_cpan_version = ''; + if ($opts{cpan}) { + my ($new_maindir); + # Is the module a core module? + if (grep(/$opts{cpan}/, @stdmodules)) { + die "$opts{cpan} is a standard module.\n" + unless $opts{'core-ok'}; + } + + # Make CPAN happy, make the user happy: Be more tolerant! + # Accept names to be specified with double-colon, dash or slash + $opts{cpan} =~ s![/-]!::!g; + +### require CPAN; + CPAN::Config->load; + + unshift(@{$CPAN::Config->{'urllist'}}, $opts{'cpan-mirror'}) + if $opts{'cpan-mirror'}; + + $CPAN::Config->{'build_dir'} = $ENV{'HOME'} . "/.cpan/build"; + $CPAN::Config->{'cpan_home'} = $ENV{'HOME'} . "/.cpan/"; + $CPAN::Config->{'histfile'} = $ENV{'HOME'} . "/.cpan/history"; + $CPAN::Config->{'keep_source_where'} = $ENV{'HOME'} . "/.cpan/source"; + + # This modification allows to retrieve all the modules that + # match the user-provided string. + # + # expand() returns a list of matching items when called in list + # context, so after retrieving it, I try to match exactly what + # the user asked for. Specially important when there are + # different modules which only differ in case. + # + # This Closes: #451838 + my @mod = CPAN::Shell->expand('Module', '/^'.$opts{cpan}.'$/') + or die "Can't find '$opts{cpan}' module on CPAN\n"; + foreach(@mod) { + my $file = $_->cpan_file(); + $file =~ s#.*/##; # remove directory + $file =~ s/(.*)-.*/$1/; # remove version and extension + $file =~ s/-/::/g; # convert dashes to colons + if($file eq $opts{cpan}) { + $mod = $_; + last; + } + } + $mod = shift @mod unless($mod); + $mod_cpan_version = $mod->cpan_version; + $cpanversion = $CPAN::VERSION; + $cpanversion =~ s/_.*//; + + $tarball = $CPAN::Config->{'keep_source_where'} . "/authors/id/"; + + if ($cpanversion < 1.59) { # wild guess on the version number + $dist = $CPAN::META->instance('CPAN::Distribution', $mod->{CPAN_FILE}); + $dist->get || die "Cannot get $mod->{CPAN_FILE}\n"; + $tarball .= $mod->{CPAN_FILE}; + $maindir = $dist->{'build_dir'}; + } else { + # CPAN internals changed + $dist = $CPAN::META->instance('CPAN::Distribution', $mod->cpan_file); + $dist->get || die "Cannot get ", $mod->cpan_file, "\n"; + $tarball .= $mod->cpan_file; + $maindir = $dist->dir; + } + + copy ($tarball, $ENV{'PWD'}); + $tarball = $ENV{'PWD'} . "/" . basename($tarball); + # build_dir contains a random part since 1.88_59 + # use the new CPAN::Distribution::base_id (introduced in 1.91_53) + $new_maindir = $ENV{PWD} . "/" . ( + $cpanversion < 1.9153 ? basename($maindir) : $dist->base_id + ); + # rename existing directory + if (-d $new_maindir && system("mv", "$new_maindir", "$new_maindir.$$") == 0) { + print '='x70,"\n"; + print "Unpacked tarball already existed, directory renamed to $new_maindir.$$\n"; + print '='x70,"\n"; + } + system("mv", "$maindir", "$new_maindir") == 0 + or die "Failed to move $maindir to $new_maindir: $!"; + $maindir = $new_maindir; + + } elsif ($opts{cpanplus}) { + die "CPANPLUS support is b0rken at the moment."; +# my ($cb, $href, $file); + +# eval "use CPANPLUS 0.045;"; +# $cb = CPANPLUS::Backend->new(conf => {debug => 1, verbose => 1}); +# $href = $cb->fetch( modules => [ $opts{cpanplus} ], fetchdir => $ENV{'PWD'}); +# die "Cannot get $opts{cpanplus}\n" if keys(%$href) != 1; +# $file = (values %$href)[0]; +# print $file, "\n\n"; +# $maindir = $cb->extract( files => [ $file ], extractdir => $ENV{'PWD'} )->{$file}; + } else { + $maindir = shift(@ARGV) || '.'; + $maindir =~ s/\/$//; + } + return $tarball; +} + +sub build_package { + my $maindir = shift; + # uhmf! dpkg-genchanges doesn't cope with the deb being in another dir.. + #system("dpkg-buildpackage -b -us -uc $opts{dbflags}") == 0 + system("fakeroot make -C $maindir -f debian/rules clean"); + system("fakeroot make -C $maindir -f debian/rules binary") == 0 + || die "Cannot create deb package\n"; +} + +sub install_package { + my ($archspec, $debname); + + if ($arch eq 'any') { + $archspec = `dpkg --print-architecture`; + chomp($archspec); + } else { + $archspec = $arch; + } + + $debname = "${pkgname}_$version-1_$archspec.deb"; + + system("dpkg -i $startdir/$debname") == 0 + || die "Cannot install package $startdir/$debname\n"; +} + +sub process_meta { + my ($file, $yaml); + $file = shift; + # Command line option nometa causes this function not to be run + return {} if $opts{nometa}; + + # YAML::LoadFile has the bad habit of dying when it cannot properly parse + # a file - Catch it in an eval, and if it dies, return -again- just an + # empty hashref. Oh, were it not enough: It dies, but $! is not set, so we + # check against $@. Crap, crap, crap :-/ + eval { + $yaml = YAML::LoadFile($file); + }; + if ($@) { + print "Error parsing $file - Ignoring it.\n"; + print "Please notify module upstream maintainer.\n"; + $yaml = {}; + } + + # Returns a simple hashref with all the keys/values defined in META.yml + return $yaml; +} + +sub extract_basic_copyright { + for my $f (qw(LICENSE LICENCE COPYING)) { + if (-f $f) { + return `cat $f`; + } + } + return undef; +} + +sub extract_basic { + ($perlname, $version) = extract_name_ver(); + find(\&check_for_xs, $maindir); + $pkgname = lc $perlname; + $pkgname = 'lib'.$pkgname unless $pkgname =~ /^lib/; + $pkgname .= '-perl' unless ($pkgname =~ /-perl$/ and $opts{cpan} !~ /::perl$/i); + + # ensure policy compliant names and versions (from Joeyh)... + $pkgname =~ s/[^-.+a-zA-Z0-9]+/-/g; + + $srcname = $pkgname; + $version =~ s/[^-.+a-zA-Z0-9]+/-/g; + $version = "0$version" unless $version =~ /^\d/; + + print "Found: $perlname $version ($pkgname arch=$arch)\n"; + $debiandir = "$maindir/debian"; + + $upsurl = "http://search.cpan.org/dist/$perlname/"; + + $copyright = extract_basic_copyright(); + if ($modulepm) { + extract_desc($modulepm); + } + + $opts{exclude} = '^$' unless $opts{exclude}; + find(sub { + $File::Find::name !~ /$opts{exclude}/ && + /\.(pm|pod)$/ && + extract_desc($_); + }, $maindir); + + return ($pkgname, $version); +} + +sub makefile_pl { + return "$maindir/Makefile.PL"; +} + +sub findbin_fix { + # FindBin requires to know the name of the invoker - and requires it to be + # Makefile.PL to function properly :-/ + $0 = makefile_pl(); + if (exists $FindBin::{Bin}) { + FindBin::again(); + } +} + +sub extract_name_ver { + my ($name, $ver, $makefile); + $makefile = makefile_pl(); + + if (defined $meta->{name} and defined $meta->{version}) { + $name = $meta->{name}; + $ver = $meta->{version}; + + } else { + ($name, $ver) = extract_name_ver_from_makefile($makefile); + } + + $name =~ s/::/-/g; + return ($name, $ver); +} + +sub extract_name_ver_from_makefile { + my ($file, $name, $ver, $vfrom, $dir, $makefile); + $makefile = shift; + + { + local $/ = undef; + my $fh = _file_r($makefile); + $file = $fh->getline; + } + + # Replace q[quotes] by "quotes" + $file =~ s/q\[(.+)]/'$1'/g; + + # Get the name + if ($file =~ /([\'\"]?) + DISTNAME\1\s* + (=>|,) + \s* + ([\'\"]?) + (\S+)\3/xs) { + # Regular MakeMaker + $name = $4; + } elsif ($file =~ /([\'\"]?) + NAME\1\s* + (=>|,) + \s* + ([\'\"]?) + (\S+)\3/xs) { + # Regular MakeMaker + $name = $4; + } elsif ($file =~ /name + \s* + \( + ([\'\"]?) + (\S+) + \1 + \);/xs) { + # Module::Install syntax + $name = $2; + } + $name =~ s/,.*$//; + # band aid: need to find a solution also for build in directories + # warn "name is $name (cpan name: $opts{cpan})\n"; + $name = $opts{cpan} if ($name eq '__PACKAGE__' && $opts{cpan}); + $name = $opts{cpanplus} if ($name eq '__PACKAGE__' && $opts{cpanplus}); + + # Get the version + if (defined $opts{version}) { + # Explicitly specified + $ver = $opts{version}; + + } elsif ($file =~ /([\'\"]?)VERSION\1\s*(=>|,)\s*([\'\"]?)(\S+)\3/s) { + # Regular MakeMaker + $ver = $4; + # Where is the version taken from? + $vfrom = $4 if + $file =~ /([\'\"]?)VERSION_FROM\1\s*(=>|,)\s*([\'\"]?)(\S+)\3/s; + + } elsif ($file =~ /([\'\"]?)VERSION_FROM\1\s*(=>|,)\s*([\'\"]?)(\S+)\3/s) { + # Regular MakeMaker pointing to where the version is taken from + $vfrom = $4; + + } elsif ($file =~ /version\((\S+)\)/s) { + # Module::Install + $ver = $1; + } + + $dir = dirname($makefile) || './'; + + $modulepm = "$dir/$vfrom" if defined $vfrom; + + for (($name, $ver)) { + next unless defined; + next unless /^\$/; + # decode simple vars + s/(\$\w+).*/$1/; + if ($file =~ /\Q$_\E\s*=\s*([\'\"]?)(\S+)\1\s*;/) { + $_ = $2; + } + } + + unless (defined $ver) { + local $/ = "\n"; + # apply the method used by makemaker + if (defined $dir and defined $vfrom and -f "$dir/$vfrom" + and -r "$dir/$vfrom") { + my $fh = _file_r("$dir/$vfrom"); + while (my $lin = $fh->getline) { + if ($lin =~ /([\$*])(([\w\:\']*)\bVERSION)\b.*\=/) { + no strict; + #warn "ver: $lin"; + $ver = (eval $lin)[0]; + last; + } + } + $fh->close; + } else { + if ( $mod_cpan_version ) { + $ver = $mod_cpan_version; + warn "Cannot use internal module data to gather the ". + "version; using cpan_version\n"; + } else { + die "Cannot use internal module data to gather the ". + "version; use --cpan or --version\n"; + } + } + } + + return ($name, $ver); +} + +sub extract_desc { + my ($file, $parser); + $file = shift; + $parser = new MyPod; + return unless -f $file; + $parser->set_names(qw(NAME DESCRIPTION DETAILS COPYRIGHT AUTHOR AUTHORS)); + $parser->parse_from_file($file); + if ($desc) { + # No-op - We already have it, probably from the command line + + } elsif ($meta->{abstract}) { + # Get it from META.yml + $desc = $meta->{abstract}; + + } elsif (my $my_desc = $parser->get('NAME')) { + # Parse it, fix it, send it! + $my_desc =~ s/^\s*\S+\s+-\s+//s; + $my_desc =~ s/^\s+//s; + $my_desc =~ s/\s+$//s; + $my_desc =~ s/^([^\s])/ $1/mg; + $my_desc =~ s/\n.*$//s; + $desc = $my_desc; + } + # Replace linefeeds (not followed by a space) in $desc with spaces + $desc =~ s/\n(?=\S)/ /gs; + + unless ($longdesc) { + $longdesc = $parser->get('DESCRIPTION') + || $parser->get('DETAILS') + || $desc; + } + if (defined $longdesc && $longdesc !~ /^$/) { + $longdesc =~ s/^\s+//s; + $longdesc =~ s/\s+$//s; + $longdesc =~ s/^\t/ /mg; + $longdesc =~ s/^\s*$/ ./mg; + $longdesc =~ s/^\s*/ /mg; + $longdesc =~ s/^([^\s])/ $1/mg; + $longdesc =~ s/\r//g; + } + + $copyright = $copyright || $parser->get('COPYRIGHT'); + if (!$author) { + if (ref $meta->{author}) { + # Does the author information appear in META.yml? + $author = join(', ', @{$meta->{author}}); + } else { + # Get it from the POD + $author = $parser->get('AUTHOR') || $parser->get('AUTHORS'); + } + } + + $parser->cleanup; +} + +sub extract_changelog { + my ($dir) = shift; + $dir .= '/' unless $dir =~ m(/$); + find(sub { + $changelog = substr($File::Find::name, length($dir)) + if (!defined($changelog) && /^change(s|log)$/i and (! $opts{exclude} or $File::Find::name !~ /$opts{exclude}/)); + }, $dir); +} + +sub extract_docs { + my ($dir) = shift; + $dir .= '/' unless $dir =~ m(/$); + find(sub { + push (@docs, substr($File::Find::name, length($dir))) + if (/^(README|TODO|BUGS|NEWS|ANNOUNCE)/i and (! $opts{exclude} or $File::Find::name !~ /$opts{exclude}/)) ; + }, $dir); +} + +sub extract_examples { + my ($dir) = shift; + $dir .= '/' unless $dir =~ m(/$); + find(sub { + push (@examples, substr($File::Find::name, length($dir)) . '/*') + if (/^(examples|eg|samples?)$/i and (! $opts{exclude} or $File::Find::name !~ /$opts{exclude}/)) ; + }, $dir); +} + +sub run_depends { + my ($depends_module, $dir) = @_; + + no warnings; + local *STDERR; + open(STDERR, ">/dev/null"); + my $mod_dep = $depends_module->new(); + + $mod_dep->dist_dir( $dir ); + $mod_dep->find_modules(); + + my %dep_hash = %{$mod_dep->requires}; + + my $error = $mod_dep->error(); + die "Error: $error\n" if $error; + return %dep_hash; +} + +sub extract_depends { + my $dir = shift; + my $meta = shift; + my (%dep_hash, @uses, @deps, @not_debs, $has_apt_file); + local @INC = ($dir, @INC); + + $dir .= '/' unless $dir =~ m/\/$/; + + # try Module::Depends::Intrusive, but if that fails then + # fall back to Module::Depends. + + eval { + %dep_hash = run_depends('Module::Depends::Intrusive',$dir); + }; + if ($@) { + warn '='x70,"\n"; + warn "First attempt (Module::Depends::Intrusive) at a dependency\n" . + "check failed. Possible use of Module::Install ?\n" . + "Trying again with Module::Depends ... \n"; + warn '='x70,"\n"; + + eval { + %dep_hash = run_depends('Module::Depends',$dir); + }; + + if ($@) { + warn '='x70,"\n"; + warn "Could not find the dependencies for the requested module.\n"; + warn "Generated error: $@"; + + warn "Please check if your module depends on Module::Install\n" . + "for its build process - Automatically finding its\n" . + "dependencies is unsupported, please specify them manually\n" . + "using the 'depends' option. \n"; + warn "Alternatively, including a META.yml file with dependencies\n" . + "should allow discovery even for Module::Install modules. \n"; + warn '='x70,"\n"; + + exit 1; + } + } + + foreach my $module (keys( %dep_hash )) { + next if (grep ( /^$module$/, @stdmodules)); + + push @uses, $module; + } + + if (`which apt-file`) { + $has_apt_file = 1; + foreach my $module (@uses) { + my (@rawsearch, @search, $ls, $ver, $re, $mod); + + if ($module eq 'perl') { + substitute_perl_dependency($dep_hash{perl}); + next; + } + + $mod = $module; + print "Searching for package containing $module using apt-file.\n"; + $module =~ s|::|/|g; + + # Regex's to search the return of apt-file to find the right pkg + $ls = '(?:lib|share)'; + $ver = '\d+(\.\d+)+'; + $re = "usr/(?:$ls/perl/$ver|$ls/perl5)/$module\\.pm"; + + @rawsearch = `apt-file search -x '$re'`; + + # rank non -perl packages lower + @search = sort { + if ($a !~ /-perl: /) { return 1; } + elsif ($b !~ /-perl: /) { return -1; } + else { return $a cmp $b; } # or 0? + } @rawsearch; + + for (@search) { + # apt-file output + # package-name: path/to/perl/module.pm + chomp; + my ($p, $f) = split / /, $_; + chop($p); #Get rid of the ":" + if ($f =~ /$re/ && ! + grep { $_ eq $p } @deps, split(/,/,@stdmodules)) { + if (exists $dep_hash{$mod}) { + my $v = $dep_hash{$mod}; + $v =~ s/^v//; # strip leading 'v' from version + push @deps, {name=>$p, + version=>$v}; + } else { + push @deps, {name => $p}; + } + last; + } + } + + unless (@search) { + $module =~ s|/|::|g; + push @not_debs, $module; + } + } + } elsif ( $opts{requiredeps} ) { + die "--requiredeps was specified, but apt-file was not found\n"; + } + + print "\n"; + print "Needs the following debian packages: " . + join (", ", map {$_->{name}} @deps) . "\n" if (@deps); + if (@not_debs) { + my ($missing_debs_str); + if ($has_apt_file) { + $missing_debs_str = join("\n", "Needs the following modules for which there are no debian packages available", + map({" - $_"} @not_debs), ''); + } else { + $missing_debs_str = join("\n", "The following Perl modules are required and not installed in your system:", + map({" - $_"} @not_debs), + "You do not have 'apt-file' currently installed - If you install it, I will", + "be able to tell you which Debian packages are those modules in (if they are", + "packaged)."); + } + + if ( $opts{requiredeps} ) { + die $missing_debs_str; + } else { + print $missing_debs_str; + } + + } + + return join (", ", map { $_->{version} ? + $_->{name} ." (>= ". $_->{version} .")" : + $_->{name} } @deps); +} + +sub get_itp { + use WWW::Mechanize; + + my ($package) = shift @_; + + my $wnpp = "http://bugs.debian.org/cgi-bin/pkgreport.cgi?pkg=wnpp;includesubj=ITP: $package"; + my $mech = WWW::Mechanize->new(); + + $mech->get($wnpp); + + my @links = $mech->links(); + + foreach my $link (@links) { + my $desc = $link->text(); + + return $1 if $desc =~ /^#(\d+): ITP: $package /; + } + return 0; +} + +sub substitute_perl_dependency { + # If we get 'perl' specified in here, the module requires a + # specific version of Perl in order to be run. This is only + # reliable if we have ${perl:Depends} in $depends and either + # of $bdepends and $bdependsi - Warn otherwise. + my ($version, $dep_str, $old_dep_str, $old_bdep_str); + $version = shift; + + # Over-escaping? I'm putting this in variables to get a bit more clarity. + # Remember they will be fed into the regex engine. + $dep_str = "perl (>= $version)"; + $old_dep_str = '\\$\\{perl:Depends\\}'; + $old_bdep_str = "perl \\(>= $min_perl_version\\)"; + + unless ($depends =~ s/$old_dep_str/$dep_str/ and + ($bdepends =~ s/$old_bdep_str/$dep_str/ or + $bdependsi =~ s/$old_bdep_str/$dep_str/)) { + warn "The module requires Perl version $version, but you have ", + "apparently overriden the default dependency handling.\n", + "Please note that you might need to manually edit your debian/control ", + "- It might not make sense at all!\n"; + } +} + +sub check_for_xs { + (! $opts{exclude} or $File::Find::name !~ /$opts{exclude}/) && /\.(xs|c|cpp|cxx)$/i && do { + $arch = 'any'; + }; +} + +sub fix_rules { + my ($rules_file, $changelog_file, $docs, $examples, $test_line, $fh, @content); + ($rules_file, $changelog_file, $docs, $examples) = @_; + + if( $opts{dh} < 7 ) + { + $test_line = ($module_build eq 'Module-Build') ? + '$(PERL) Build test' : '$(MAKE) test'; + $test_line = "#$test_line" if $opts{notest}; + + $fh = _file_rw($rules_file); + @content = $fh->getlines; + + $fh->seek(0, 0) || die "Can't rewind $rules_file: $!"; + $fh->truncate(0)|| die "Can't truncate $rules_file: $!"; + for (@content) { + s/#CHANGES#/$changelog_file/g; + s/#EXAMPLES#/join " ", @examples/eg; + s/\s+dh_installexamples\s+$//g; # no need for empty dh_installexamples + s/#DOCS#/join " ", @docs/eg; + s/#TEST#/$test_line/g; + $fh->print($_); + } + $fh->close; + } + else + { + if( @examples ) + { + open F, '>>', "$maindir/debian/$pkgname.examples" or die $!; + print F "$_\n" foreach @examples; + close F; + } + if( @docs ) + { + open F, '>>', "$maindir/debian/$pkgname.docs" or die $!; + print F "$_\n" foreach @docs; + close F; + } + } +} + +sub create_control { + my $fh = _file_w(shift); + + if ($arch ne 'all' and + !defined($opts{bdepends}) and !defined($opts{bdependsi})) { + $bdepends .= ", $bdependsi"; + $bdependsi = ''; + } + + $fh->print("Source: $srcname\n"); + $fh->print("Section: $section\n"); + $fh->print("Priority: $priority\n"); + $fh->print("Build-Depends: $bdepends\n") if $bdepends; + $fh->print("Build-Depends-Indep: $bdependsi\n") if $bdependsi; + $fh->print($extrasfields) if defined $extrasfields; + if( $opts{'pkg-perl'} ) + { + $fh->print("Maintainer: Debian Perl Group \n"); + $fh->print("Uploaders: $maintainer\n"); + } + else + { + $fh->print("Maintainer: $maintainer\n"); + } + $fh->print("Standards-Version: $debstdversion\n"); + $fh->print("Homepage: $upsurl\n") if $upsurl; + do { + $fh->print("Vcs-Svn: svn://svn.debian.org/pkg-perl/trunk/$srcname/\n"); + $fh->print("Vcs-Browser: http://svn.debian.org/wsvn/pkg-perl/trunk/$srcname/\n"); + } if $opts{'pkg-perl'}; + $fh->print("\n"); + $fh->print("Package: $pkgname\n"); + $fh->print("Architecture: $arch\n"); + $fh->print("Depends: $depends\n") if $depends; + $fh->print($extrapfields) if defined $extrapfields; + $fh->print("Description: $desc\n$longdesc\n .\n This description was automagically extracted from the module by dh-make-perl.\n"); + $fh->close; +} + +sub create_changelog { + my $fh = _file_w(shift); + my $bug = shift; + + my $closes = $bug ? " (Closes: #$bug)" : ''; + + $fh->print("$srcname ($pkgversion) unstable; urgency=low\n"); + $fh->print("\n * Initial Release.$closes\n\n"); + $fh->print(" -- $maintainer $date\n"); + #$fh->print("Local variables:\nmode: debian-changelog\nEnd:\n"); + $fh->close +} + +sub create_rules { + my ($file, $rulesname, $error); + ($file) = shift; + $rulesname = ( + ($opts{dh} eq 7) + ? $arch eq 'all'?'rules.dh7.noxs' :'rules.dh7.xs' + : $arch eq 'all'?"rules.$module_build.noxs":"rules.$module_build.xs" + ); + + for my $source (("$homedir/$rulesname", "$datadir/$rulesname")) { + copy($source, $file) && do { + print "Using rules: $source\n"; + last; + }; + $error = $!; + } + die "Cannot copy rules file ($rulesname): $error\n" unless -e $file; + chmod(0755, $file); +} + +sub create_compat { + my $fh = _file_w(shift); + $fh->print("$opts{dh}\n"); + $fh->close; +} + +sub create_copyright { + my $fh = _file_w(shift); + my $incomplete = ''; + + $fh->print( +"This is the debian package for the $perlname module. +It was created by $maintainer using dh-make-perl. + +"); + if (defined $upsurl) { + $fh->print("It was downloaded from $upsurl\n\n"); + } else { + $incomplete .= "No upstream URL\n"; + } + $fh->print( +"This copyright info was automatically extracted from the perl module. +It may not be accurate, so you better check the module sources +if you don\'t want to get into legal troubles. + +"); + if (defined $author) { + $fh->print("The upstream author is: $author.\n"); + } else { + $incomplete .= "No upstream author\n"; + } + + if (defined($copyright)) { + $fh->print($copyright); + # Fun with regexes + if ( $copyright =~ /terms as Perl itself/i ) { + $fh->print(" + +Perl is distributed under your choice of the GNU General Public License or +the Artistic License. On Debian GNU/Linux systems, the complete text of the +GNU General Public License can be found in \`/usr/share/common-licenses/GPL\' +and the Artistic Licence in \`/usr/share/common-licenses/Artistic\'. +"); + } elsif ( $copyright =~ /GPL/ ) { + $fh->print(" + +The full text of the GPL is available on Debian systems in +/usr/share/common-licenses/GPL +"); + } + } else { + $incomplete .= "No licensing information\n"; + } + + my $year = (localtime)[5]+1900; + $fh->print(" + +The Debian packaging is (C) $year, $maintainer and +is licensed under the same terms as the software itself (see above). +"); + + $fh->close; + + if ($incomplete) { + _warn_incomplete_copyright($incomplete) + } +} + +sub create_readme { + my $fh = _file_w(shift); + $fh->print( +"This is the debian package for the $perlname module. +It was created by $maintainer using dh-make-perl. +"); + $fh->close; +} + +sub create_watch { + my $fh = _file_w(shift); + + my $version_re = 'v?(\d[\d_.-]+)\.(?:tar(?:\.gz|\.bz2)?|tgz|zip)'; + + $fh->print( +"\# format version number, currently 3; this line is compulsory! +version=3 +\# URL to the package page followed by a regex to search +$upsurl .*/$perlname-$version_re\$ +"); + $fh->close; +} + +sub get_maintainer { + my ($user, $pwnam, $email, $name, $mailh); + $user = $ENV{LOGNAME} || $ENV{USER}; + $pwnam = getpwuid($<); + die "Cannot determine current user\n" unless $pwnam; + if (defined $ENV{DEBFULLNAME}) { + $name = $ENV{DEBFULLNAME}; + } else { + $name = $pwnam->gecos; + $name =~ s/,.*//; + } + $user ||= $pwnam->name; + $name ||= $user; + $email = shift @_ || ($ENV{DEBEMAIL} || $ENV{EMAIL}); + unless ($email) { + chomp($mailh = `cat /etc/mailname`); + $email = $user.'@'.$mailh; + } + + $email =~ s/^(.*)\s+<(.*)>$/$2/; + + return "$name <$email>"; +} + +sub load_overrides { + eval { + do "$datadir/overrides" if -f "$datadir/overrides"; + do "$homedir/overrides" if -f "$homedir/overrides"; + }; + if ($@) { + die "Error when processing the overrides files: $@"; + } +} + +sub apply_overrides { + my ($data, $val, $subkey); + + ($data, $subkey) = get_override_data(); + return unless defined $data; + $pkgname = $val if (defined($val=get_override_val($data, $subkey, 'pkgname'))); + $srcname = $val if (defined($val=get_override_val($data, $subkey, 'srcname'))); + $section = $val if (defined($val=get_override_val($data, $subkey, 'section'))); + $priority = $val if (defined($val=get_override_val($data, $subkey, 'priority'))); + $depends = $val if (defined($val=get_override_val($data, $subkey, 'depends'))); + $bdepends = $val if (defined($val=get_override_val($data, $subkey, 'bdepends'))); + $bdependsi = $val if (defined($val=get_override_val($data, $subkey, 'bdependsi'))); + $desc = $val if (defined($val=get_override_val($data, $subkey, 'desc'))); + $longdesc = $val if (defined($val=get_override_val($data, $subkey, 'longdesc'))); + $pkgversion = $val if (defined($val=get_override_val($data, $subkey, 'version'))); + $arch = $val if (defined($val=get_override_val($data, $subkey, 'arch'))); + $changelog = $val if (defined($val=get_override_val($data, $subkey, 'changelog'))); + @docs = split(/\s+/, $val) if (defined($val=get_override_val($data, $subkey, 'docs'))); + + $extrasfields = $val if (defined($val=get_override_val($data, $subkey, 'sfields'))); + $extrapfields = $val if (defined($val=get_override_val($data, $subkey, 'pfields'))); + $maintainer = $val if (defined($val=get_override_val($data, $subkey, 'maintainer'))); + # fix longdesc if needed + $longdesc =~ s/^\s*/ /mg; +} + +sub apply_final_overrides { + my ($data, $val, $subkey); + + ($data, $subkey) = get_override_data(); + return unless defined $data; + get_override_val($data, $subkey, 'finish'); +} + +sub get_override_data { + my ($data, $checkver, $subkey); + $data = $overrides{$perlname}; + + return unless defined $data; + die "Value of '$perlname' in overrides not a hashref\n" unless ref($data) eq 'HASH'; + if (defined($checkver = $data->{checkver})) { + die "checkver not a function\n" unless (ref($checkver) eq 'CODE'); + $subkey = &$checkver($maindir); + } else { + $subkey = $pkgversion; + } + return ($data, $subkey); +} + +sub get_override_val { + my ($data, $subkey, $key, $val); + ($data, $subkey, $key) = @_; + $val = defined($data->{$subkey.$key})?$data->{$subkey.$key}:$data->{$key}; + return &$val() if (defined($val) && ref($val) eq 'CODE'); + return $val; +} + +sub _warn_incomplete_copyright { + print '*'x10, ' +Copyright information incomplete! + +Upstream copyright information could not be automatically determined. + +If you are building this package for your personal use, you might disregard +this information; however, if you intend to upload this package to Debian +(or in general, if you plan on distributing it), you must look into the +complete copyright information. + +The causes for this warning are: +', @_; +} + +sub _file_r { + my ($file, $fh); + $file = shift; + $fh = IO::File->new($file, 'r') or die "Cannot open $file: $!\n"; + return $fh; +} + +sub _file_w { + my ($file, $fh); + $file = shift; + $fh = IO::File->new($file, 'w') or die "Cannot open $file: $!\n"; + return $fh; +} + +sub _file_rw { + my ($file, $fh); + $file = shift; + $fh = IO::File->new($file, 'r+') or die "Cannot open $file: $!\n"; + return $fh; +} + +=head1 NAME + +B - Create debian source packages from perl modules + +=head1 SYNOPSIS + +B [B | B<--cpan> I] + +B B<--refresh> + +You can modify B's behaviour with some switches: + +=over + +=item B<--desc> I + +Uses the argument to --desc as short description for the package. + +=item B<--arch> I | I + +This switches between arch-dependent and arch-independet packages. If B<--arch> +isn't used, B uses a relatively good-working algorithms to +decide this alone. + +=item B<--version> I + +Specifies the version of the resulting package. + +=item B<--email> | B<-e> I + +Manually specify the Maintainer email address to use in debian/control and +in debian/changelog. + +=item B<--packagename> | B<-p> I + +Manually specify the Package Name, useful when the module has dashes in its +name. + +=item B<--closes> I + +Manually specify the ITP bug number that this package closes. If not +given, dh-make-perl will try to connect to bugs.debian.org to fetch the +appropriate bug number, using WWW::Mechanize. + +=item B<--depends> I + +Manually specify the string to be used for the module's dependencies. This +should be used when building modules where dh-make-perl cannot guess the Perl +dependencies (such as modules built using L), or when the +Perl code depends on non-Perl binaries or libraries. Usually, dh-make-perl +will figure out the dependencies by itself. If you need to pass dh-make-perl +dependency information, you must do it using the debian package format. i.e. + +dh-make-perl --depends libtest-more-perl + +=item B<--bdepends> I + +Manually specify the string to be used for the module's build-dependencies +(that is, the packages and their versions that have to be installed in order to +successfully build the package). Keep in mind that packages generated by +dh-make-perl require debhelper to be specified as a build dependency. Same note +as for --depends applies here - Use only when needed. + +=item B<--bdependsi> I + +Manually specify the string to be used for the module's build-dependencies +for architecture-independent builds. Same notes as those for the --depends +and --bdepends options apply here. + +Note that for --depends, --bdepends and --bdependsi you can also specify that +the field should not appear in debian/rules (if you really mean it, of course +;-) ) by giving it an empty string as an argument. + +=item B<--pkg-perl> + +Useful when preparing a package for the Debian Perl Group +L. + +Sets C, C, C and C fields in +debian/control accordingly. + +=item B<--cpan-mirror> I + +Specifies a CPAN site to use as mirror. + +=item B<--exclude> | B<-i> [I] + +This allows you to specify a PCRE to exclude some files from the search for +docs and stuff like that. If no argument is given (but the switch is specified +- not specifying the switch will include everything), it defaults to exclude +CVS and .svn directories. + +=item B<--build> + +Builds the package after setting it up. + +NB: This builds only a binary package (by calling "fakeroot debian/rules +binary") and does not sign the package. It is meant for a quick local +install of a package, not for creating a package ready for submission to the +Debian archive. + +=item B<--install> + +Installs the freshly built package. Specifying --install implies --build - The +package will not be installed unless it was built (obviously ;-) ) + +=item B<--notest> + +Does not run the automatic testing of the module as part of the build script. +This is mostly useful when packaging buggy or incomplete software. + +=item B<--basepkgs> + +Explicitly gives a comma-separated list of packages to consider "base" +packages (i.e. packages that should always be available in Debian +systems). This option defaults to C - It +is used to check for module dependencies. If a needed module is in the +C, it won't be mentioned in the C field of +C. + +If this option is specified, the above mentioned default packages will +not be included (but will be mentioned as explicit dependencies in the +resulting package). You can, of course, mention your own modules +and explicitly specify the default values. + +Note that this option should be used sparsingly and with care, as it +might lead to packages not being rebuildable because of unfulfilled +dependencies. + +=item B<--requiredeps> + +Fail if a dependency perl package was not found (dependency tracking +requires the apt-file package installed and updated) + +=item B<--core-ok> + +Allows building core Perl modules. By default, dh-make-perl will not allow +building a module that is shipped as part of the standard Perl library; by +specifying this option, dh-make-perl will build them anyway. + +Note that, although it is not probable, this might break unrelated items in +your system - If a newer version of a core module breaks the API, all kinds +of daemons might get upset ;-) + +=item B<--refresh> + +Refresh mode. + +Instead of creating new debian/ directory, B<--refresh> makes B +to re-create only B according to the current templates. + +This is useful when B was created using older templates and +doesn't contain much customisations. As always, you're strongly encouraged to +verify if B looks sane. + +=back + +=item B<--dh ver> + +Set desired debhelper version. If C is 7, generated debian/rules is +minimalistic, using the auto-mode of debhelper. Also, any additional +documentation and examples are listed in additional files under debian/, instead +of being listed in debian/rules + +=back + +=head1 DESCRIPTION + +B will create the files required to build +a debian source package out of a perl package. +This works for most simple packages and is also useful +for getting started with packaging perl modules. + +You can specify a module name with the B<--cpan> switch +and B will download the module for you from +a CPAN mirror, or you can specify the directory with the +already unpacked sources. If neither --cpan nor a directory +is given as argument, dh-make-perl tries to create a +perl package from the data in F<.> + +There is an override mechanism in place to handle most of +the little changes that may be needed for some modules +(this hasn't been tested much, though, and the override +database needs to be filled in). + +You can build and install the debian package using the --build +and --install command line switches. + +Using this program is no excuse for not reading the +debian developer documentation, including the Debian policy, +the perl policy, the packaging manual and so on. + +=head1 FILES + +The following directories will be searched to find additional files +required by dh-make-perl: + + /usr/share/dh-make-perl/ + $HOME/.dh-make-perl/ + +=over 4 + +=item * overrides + +File that overrides information retreived (or guessed) about the package. +All the files in the library directories are loaded: entries in the home +take precedence. See the distributed overrides file for usage information. + +=item * rules.MakeMaker.noxs + +A debian/rules makefile for modules that use ExtUtils::MakeMaker, but don't +have C/XS code. + +=item * rules.MakeMaker.xs + +A debian/rules makefile for modules that use ExtUtils::MakerMaker and +C/XS code. + +=item * rules.Module-Build.noxs + +A debian/rules makefile for modules that use Module::Build, but don't have +C/XS code. + +=item * rules.Module-Build.xs + +A debian/rules makefile for modules that use Module::Build and C/XS code. + +=back + +=head1 ENVIRONMENT + +HOME - get user's home directory + +DEBFULLNAME - get the real name of the maintainer + +LOGNAME or USER - get the username + +DEBEMAIL or EMAIL - get the email address of the user + +=head1 BUGS + +Several, let me know when you find them. + +=head1 AUTHOR + +Paolo Molaro Elupus@debian.orgE (MIA) + +Maintained for a time by Ivan Kohler Eivan-debian@420.amE. + +Maintained for a time by Marc Brockschmdit Emarc@dch-faq.deE. + +Now maintained by Gunnar Wolf Egwolf@gwolf.orgE, and team-maintained +by the Debian pkg-perl team, http://alioth.debian.org/projects/pkg-perl + +Patches from: + +=over + +=item Adam Sjoegren Easjo@koldfront.dkE + +=item Adrian Phillips Eadrianp@powertech.noE + +=item Amos Shapira Eamos.shapira@gmail.comE + +=item Christian Kurz Eshorty@debian.orgE + +=item Damyan Ivanov Edivanov@creditreform.bgE + +=item David Paleino Ed.paleino@gmail.comE + +=item David Pashley Edavid@davidpashley.comE + +=item Edward Betts Eedward@debian.orgE + +=item Fermin Galan Egalan@dit.upm.esE + +=item Geoff Richards Eqef@ungwe.orgE + +=item Gergely Nagy Ealgernon@bonehunter.rulez.orgE + +=item gregor herrmann Egregoa@debian.orgE + +=item Hilko Bengen Ebengen@debian.orgE + +=item Kees Cook Ekeex@outflux.netE + +=item Jesper Krogh Ejesper@krogh.ccE + +=item Johnny Morano Ejmorano@moretrix.comE + +=item Juerd Ejuerd@ouranos.juerd.netE + +=item Marc Chantreux (mail withheld) + +=item Matt Hope Edopey@debian.orgE + +=item Noel Maddy Enoel@zhtwn.comE + +=item Oliver Gorwits Eoliver.gorwits@oucs.ox.ac.ukE + +=item Peter Moerch Emn3k66i02@sneakemail.comE + +=item Stephen Oberholtzer Eoliverklozoff@gmail.comE + +=item Ton Nijkes Etonn@wau.mis.ah.nlE + +=back + +... And others who, sadly, we have forgot to add :-/ + +=cut + diff --git a/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/overrides b/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/overrides new file mode 100644 index 0000000..9863fc1 --- /dev/null +++ b/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/overrides @@ -0,0 +1,39 @@ +# override file for dh-make-perl +# chdir is set to the module dir while executing the code in the override hashes +# you can have your own overrides to this overrides in a similar file +# in ~/.dh-make-perl/overrides +# Please contribute back the fixes that may be needed for some modules +# to lupus@debian.org. + +# sample overrides entry +$overrides{'Strange'} = { + pkgname => 'libstrange-perl', + srcname => 'libstrange-perl', + section => 'misc', + priority => 'Extra', + depends => 'perl6', + # build depends + bdepends => 'perl6, xlib-dev', + desc => 'A really ugly module to test dh-make-perl', + longdesc => "A really ugly long description\nfor a really ugly perl module.", + arch => 'all', + # starting from version 2 it's an xs module + checkver => sub {return 'v2-' if (($version || "") =~ /^[2-9]\./);return '';}, + 'v2-arch' => 'any', + 'v2-version' => sub { + if (($version || "") =~ /^\d+\.(\d+)/ && length($1) < 3) { + return $version.("0"x(3-length($1))); # maitain 3 digits after the dot + } else { + return $version; + } }, + # Note the \n in pfield and sfields (extra fields for the source and package section) + pfields => "Conflicts: ba-ba-buma\n", + +}; + +$overrides{'Crypt::SSLeay'} = { + finish => sub { + my @a=("perl", "-pi", "-e", 's,(Makefile\.PL),$1 /usr,', "debian/rules"); + system(@a);}, +}; + diff --git a/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/rules.MakeMaker.noxs b/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/rules.MakeMaker.noxs new file mode 100755 index 0000000..2c480cd --- /dev/null +++ b/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/rules.MakeMaker.noxs @@ -0,0 +1,64 @@ +#!/usr/bin/make -f +# This debian/rules file is provided as a template for normal perl +# packages. It was created by Marc Brockschmidt for +# the Debian Perl Group (http://pkg-perl.alioth.debian.org/) but may +# be used freely wherever it is useful. + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +# If set to a true value then MakeMaker's prompt function will +# always return the default without waiting for user input. +export PERL_MM_USE_DEFAULT=1 + +PERL ?= /usr/bin/perl +PACKAGE = $(shell dh_listpackages) +TMP = $(CURDIR)/debian/$(PACKAGE) + +build: build-stamp +build-stamp: + dh_testdir + # Add commands to compile the package here + $(PERL) Makefile.PL INSTALLDIRS=vendor + $(MAKE) + #TEST# + touch $@ + +clean: + dh_testdir + dh_testroot + dh_clean build-stamp install-stamp + # Add commands to clean up after the build process here + [ ! -f Makefile ] || $(MAKE) realclean + +install: install-stamp +install-stamp: build-stamp + dh_testdir + dh_testroot + dh_clean -k + # Add commands to install the package into $(TMP) here + $(MAKE) install DESTDIR=$(TMP) PREFIX=/usr + [ ! -d $(TMP)/usr/lib/perl5 ] || \ + rmdir --ignore-fail-on-non-empty --parents --verbose \ + $(TMP)/usr/lib/perl5 + touch $@ + +binary-arch: +# We have nothing to do here for an architecture-independent package + +binary-indep: build install + dh_testdir + dh_testroot + dh_installexamples #EXAMPLES# + dh_installdocs #DOCS# + dh_installchangelogs #CHANGES# + dh_perl + dh_compress + dh_fixperms + dh_installdeb + dh_gencontrol + dh_md5sums + dh_builddeb + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary install diff --git a/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/rules.MakeMaker.xs b/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/rules.MakeMaker.xs new file mode 100755 index 0000000..419edfc --- /dev/null +++ b/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/rules.MakeMaker.xs @@ -0,0 +1,77 @@ +#!/usr/bin/make -f +# This debian/rules file is provided as a template for normal perl +# packages. It was created by Marc Brockschmidt for +# the Debian Perl Group (http://pkg-perl.alioth.debian.org/) but may +# be used freely wherever it is useful. + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +# If set to a true value then MakeMaker's prompt function will +# always return the default without waiting for user input. +export PERL_MM_USE_DEFAULT=1 + +PERL ?= /usr/bin/perl +PACKAGE = $(shell dh_listpackages) +TMP = $(CURDIR)/debian/$(PACKAGE) + +# Allow disabling build optimisation by setting noopt in +# $DEB_BUILD_OPTIONS +CFLAGS = -Wall -g +ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) + CFLAGS += -O0 +else + CFLAGS += -O2 +endif + +build: build-stamp +build-stamp: + dh_testdir + # Add commands to compile the package here + $(PERL) Makefile.PL INSTALLDIRS=vendor + $(MAKE) OPTIMIZE="$(CFLAGS)" LD_RUN_PATH="" + #TEST# + touch $@ + +clean: + dh_testdir + dh_testroot + dh_clean build-stamp install-stamp + # Add commands to clean up after the build process here + [ ! -f Makefile ] || $(MAKE) realclean + +install: install-stamp +install-stamp: build-stamp + dh_testdir + dh_testroot + dh_clean -k + # Add commands to install the package into $(TMP) + $(MAKE) install DESTDIR=$(TMP) PREFIX=/usr + [ ! -d $(TMP)/usr/share/perl5 ] || \ + rmdir --ignore-fail-on-non-empty --parents --verbose \ + $(TMP)/usr/share/perl5 + touch $@ + +# Build architecture-independent files here. +binary-indep: build install +# We have nothing to do here for an architecture-dependent package + +# Build architecture-dependent files here. +binary-arch: build install + dh_testdir + dh_testroot + dh_installexamples #EXAMPLES# + dh_installdocs #DOCS# + dh_installchangelogs #CHANGES# + dh_shlibdeps + dh_strip + dh_perl + dh_compress + dh_fixperms + dh_installdeb + dh_gencontrol + dh_md5sums + dh_builddeb + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary install diff --git a/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/rules.Module-Build.noxs b/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/rules.Module-Build.noxs new file mode 100755 index 0000000..fbde886 --- /dev/null +++ b/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/rules.Module-Build.noxs @@ -0,0 +1,64 @@ +#!/usr/bin/make -f +# This debian/rules file is provided as a template for normal perl +# packages. It was created by Marc Brockschmidt for +# the Debian Perl Group (http://pkg-perl.alioth.debian.org/) but may +# be used freely wherever it is useful. +# +# It was later modified by Jason Kohles +# http://www.jasonkohles.com/ to support Module::Build installed modules + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +# If set to a true value then MakeMaker's prompt function will +# always return the default without waiting for user input. +export PERL_MM_USE_DEFAULT=1 + +PERL ?= /usr/bin/perl +PACKAGE = $(shell dh_listpackages) +TMP = $(CURDIR)/debian/$(PACKAGE) + +build: build-stamp +build-stamp: + dh_testdir + # Add commands to compile the package here + $(PERL) Build.PL installdirs=vendor + $(PERL) Build + #TEST# + touch $@ + +clean: + dh_testdir + dh_testroot + dh_clean build-stamp install-stamp + # Add commands to clean up after the build process here + [ ! -f Build ] || $(PERL) Build --allow_mb_mismatch 1 distclean + +install: install-stamp +install-stamp: build-stamp + dh_testdir + dh_testroot + dh_clean -k + # Add commands to install the package into $(TMP) here + $(PERL) Build install destdir=$(TMP) create_packlist=0 + touch $@ + +binary-arch: +# We have nothing to do here for an architecture-independent package + +binary-indep: build install + dh_testdir + dh_testroot + dh_installdocs #DOCS# + dh_installexamples #EXAMPLES# + dh_installchangelogs #CHANGES# + dh_perl + dh_compress + dh_fixperms + dh_installdeb + dh_gencontrol + dh_md5sums + dh_builddeb + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary install diff --git a/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/rules.Module-Build.xs b/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/rules.Module-Build.xs new file mode 100755 index 0000000..c1584ce --- /dev/null +++ b/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/rules.Module-Build.xs @@ -0,0 +1,74 @@ +#!/usr/bin/make -f +# This debian/rules file is provided as a template for normal perl +# packages. It was created by Marc Brockschmidt for +# the Debian Perl Group (http://pkg-perl.alioth.debian.org/) but may +# be used freely wherever it is useful. + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +# If set to a true value then MakeMaker's prompt function will +# always return the default without waiting for user input. +export PERL_MM_USE_DEFAULT=1 + +PERL ?= /usr/bin/perl +PACKAGE = $(shell dh_listpackages) +TMP = $(CURDIR)/debian/$(PACKAGE) + +# Allow disabling build optimisation by setting noopt in +# $DEB_BUILD_OPTIONS +CFLAGS = -Wall -g +ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) + CFLAGS += -O0 +else + CFLAGS += -O2 +endif + +build: build-stamp +build-stamp: + dh_testdir + # Add commands to compile the package here + $(PERL) Build.PL installdirs=vendor config=optimize="$(CFLAGS)" + OPTIMIZE="$(CFLAGS)" $(PERL) Build + #TEST# + touch $@ + +clean: + dh_testdir + dh_testroot + dh_clean build-stamp install-stamp + # Add commands to clean up after the build process here + [ ! -f Build ] || $(PERL) Build --allow_mb_mismatch 1 distclean + +install: install-stamp +install-stamp: build-stamp + dh_testdir + dh_testroot + dh_clean -k + # Add commands to install the package into $(TMP) here + $(PERL) Build install destdir=$(TMP) create_packlist=0 + touch $@ + +# Build architecture-independent files here. +binary-indep: build install +# We have nothing to do here for an architecture-dependent package + +# Build architecture-dependent files here. +binary-arch: build install + dh_testdir + dh_testroot + dh_installdocs #DOCS# + dh_installexamples #EXAMPLES# + dh_installchangelogs #CHANGES# + dh_shlibdeps + dh_strip + dh_perl + dh_compress + dh_fixperms + dh_installdeb + dh_gencontrol + dh_md5sums + dh_builddeb + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary install diff --git a/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/rules.dh7.noxs b/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/rules.dh7.noxs new file mode 100755 index 0000000..0d045f4 --- /dev/null +++ b/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/rules.dh7.noxs @@ -0,0 +1,23 @@ +#!/usr/bin/make -f + +build: build-stamp +build-stamp: + dh build + touch $@ + +clean: + dh $@ + +install: install-stamp +install-stamp: build-stamp + dh install + touch $@ + +binary-arch: + +binary-indep: install + dh $@ + +binary: binary-arch binary-indep + +.PHONY: binary binary-arch binary-indep install clean build diff --git a/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/rules.dh7.xs b/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/rules.dh7.xs new file mode 100755 index 0000000..3850db1 --- /dev/null +++ b/deb-src/dh-make-perl/dh-make-perl-0.47maemo1/rules.dh7.xs @@ -0,0 +1,23 @@ +#!/usr/bin/make -f + +build: build-stamp +build-stamp: + dh build + touch $@ + +clean: + dh $@ + +install: install-stamp +install-stamp: build-stamp + dh install + touch $@ + +binary-arch: install + dh $@ + +binary-indep: + +binary: binary-arch binary-indep + +.PHONY: binary binary-arch binary-indep install clean build diff --git a/deb-src/dh-make-perl/dh-make-perl_0.47maemo1.dsc b/deb-src/dh-make-perl/dh-make-perl_0.47maemo1.dsc new file mode 100644 index 0000000..0007633 --- /dev/null +++ b/deb-src/dh-make-perl/dh-make-perl_0.47maemo1.dsc @@ -0,0 +1,12 @@ +Format: 1.0 +Source: dh-make-perl +Version: 0.47maemo1 +Binary: dh-make-perl +Maintainer: Debian Perl Group +Architecture: all +Standards-Version: 3.8.0 +Build-Depends: debhelper (>= 5) +Build-Depends-Indep: perl +Uploaders: Gunnar Wolf , Wolfgang Schemmel , Christopher Sacca , Damyan Ivanov , gregor herrmann , David Paleino , Oliver Gorwits +Files: + 180abd2c7199280597c61d6e61477921 37032 dh-make-perl_0.47maemo1.tar.gz diff --git a/deb-src/dh-make-perl/dh-make-perl_0.47maemo1.tar.gz b/deb-src/dh-make-perl/dh-make-perl_0.47maemo1.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..38b4e0843b8be1543e63940c76961b749b914a06 GIT binary patch literal 37032 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 sDcE>K73J&u3Stck#@5*8q8jpp4b1ZX z_215I{1cK0b3Rltut$9~ZyH=a=I~5f`8gTl^x+p~Kac(#Kd%masUe+F|3kP%M(z@S z+u1!h#Mo5-;yeO=6FQJ{-(3|c+2uAA_cKHutDVamYV${kN>O>bI7^C0iG&EL*Eo#uZ8QkUqDW{*RqeNuKYH3(zkV=D+$o&?;!fDRMuPvvHSw5ZP9 zIbeA8-+uriEq#f?wL)2)iNm!DP`~9rdV0w_EB<(_^%4;Dq(9mFJ*E@UvFwj0k*>pu zEB+UI{xN=+IxuW@lA7h13iJ%R&64@5Uu|<>JTHcjQ8PV!hrzL`@KWUfviqO_i7fJY z+BR?*l~A921!Q=YvDliyL}wfP@1Dfx-0U0C%?92d=N`ZrgCHE{FMt8c>YLU6t3JA2Idm-nj{Rb#cbzs3VOR z%r>h2?R9wG$;=8NdF-iESI!FbkDMHquB*RciOgwwpDb1V-1*$|HBC?QwAb+hXRFad zBwK>W*r)2y_SnYyQfrZQRAYZJ^Qv64zErGqLru1{u}*=u32(5lsJZij&ZD)!Rt@l2 z?2^|lr!Sr1d(E?n87O`3vj;`H8Q`OGVQT8?_ABy+4+?jN^*b0pJ{@ z^n-w*T@q<{ZYzF4VJp|8>`7oDkwn;Gi(V3S3G$)H=>zq^v7334tr<%zeHJA zpeLIn_xiGPqFpGQQoCNi;ZFvNozFNeDDAdpYsHO45bXTdzd^z;L-xFYkYY)sp>XS_ z68Ph--V*1eE-F#Gy~)oOgPo*!e7KWenQo6YPJGaH=srB4HGI$AMfG|9_lR4s^}{Sc zF3r;CEM;cliS0TX{Q($-n+n81ZJff*h<)^bx%fFCYiW~tzPQ)dKbb|Q6O zPZhHB_eA}4rfQto17f=j-0}Fma+CQf2VB$b^FK@rm!{F zDX~xQcndiik+J3hgQTPxplXILaTZZa{A`Dou^d2nr;vcqUBp6;{M#IWEf?|fT-I_s zT2XiUhw&-VzAseZ&~u@+mEss zmW&(eRysM(>q_9iVE%=NkAzcPLX^1EN?h-)->FL2Fc5~Y3p_pmxe9aYgx&`FhfD-A zBh5B7M{T(v^yS?sJQ49JxE}Dq6NWK%fc+ESvJv2)my0uSYO7hYcsyYa;~c=>EE&9$ zL1AgJ)f+~d#{f|Ljyn9)DQt_dO-5H7BQ615_y6WAGsglNGPy1gT_gbii41g*0IyFK zJAn73>H*@o?-KO+$o|d%rXBz~PXIH`SkB_*=!m~=J_?FA4POhsV2x)(*YBKDN5mVy zFpJsUn9EeU{a*`{$zkO7jwY<_kjT9$4Lq-4TcwxN#2aAtA@$YQM9%OwaCAfIHwNY8+_bhPiIuW_ ze0Y_y>=&@^Sfde5p%@mhGfHVYLeban%asFmAJhE3vc;is6U)98{5b{*$#}xb{Ag4*5XS1_r$hG}v6em{iGaYhec0y2t|b zmFYkhNlUB|hp_<0t1iuj$X~h|XSAi6-(FYZJOI#ofXp^xitLeGhMah~%}U!Q?kLwn zK#L2kj2a{ZFRA=|fK*)FI!hmJDvtQGZfk2x@VG_S8Yia5%GPRfH z1cQAp_RiBe{Sfsu{ZK3+9f@cn*smQKaQgaD4eX}pS?`~ zg);Pt)Gy@7cI0^AJP+>_7T{ma|tVK%lQY LFg6~+Gm-C!eU literal 0 HcmV?d00001 diff --git a/deb-src/dh-make-perl/dh-make-perl_0.47maemo1_i386.changes b/deb-src/dh-make-perl/dh-make-perl_0.47maemo1_i386.changes new file mode 100644 index 0000000..0cee07d --- /dev/null +++ b/deb-src/dh-make-perl/dh-make-perl_0.47maemo1_i386.changes @@ -0,0 +1,20 @@ +Format: 1.7 +Date: Tue, 13 Apr 2010 22:52:07 +0100 +Source: dh-make-perl +Binary: dh-make-perl +Architecture: source all +Version: 0.47maemo1 +Distribution: fremantle +Urgency: low +Maintainer: Debian Perl Group +Changed-By: Nito Martinez +Description: + dh-make-perl - Create Debian packages from perl modules +Changes: + dh-make-perl (0.47maemo1) fremantle; urgency=low + . + * New Maemo packaging +Files: + 25555d6ffff09cb4cc0d4b8b5dfac68f 600 devel optional dh-make-perl_0.47maemo1.dsc + 180abd2c7199280597c61d6e61477921 37032 devel optional dh-make-perl_0.47maemo1.tar.gz + 3d10e0b84b23dbf221e39c30457da872 36904 devel optional dh-make-perl_0.47maemo1_all.deb diff --git a/deb-src/libarchive-zip-perl/libarchive-zip-perl-1.18/debian/changelog b/deb-src/libarchive-zip-perl/libarchive-zip-perl-1.18/debian/changelog index 39a34b0..9f8564c 100644 --- a/deb-src/libarchive-zip-perl/libarchive-zip-perl-1.18/debian/changelog +++ b/deb-src/libarchive-zip-perl/libarchive-zip-perl-1.18/debian/changelog @@ -1,4 +1,11 @@ -libarchive-zip-perl (1.18-1) unstable; urgency=low +libarchive-zip-perl (1.18-1maemo1) fremantle; urgency=low + + * New Maemo packaging + + -- Nito Martinez Tue, 13 Apr 2010 22:52:07 +0100 + + +llibarchive-zip-perl (1.18-1) unstable; urgency=low * New upstream release. * Added build-depends on libfile-which-perl, which is now used in the test diff --git a/deb-src/libarchive-zip-perl/libarchive-zip-perl_1.18-1maemo1.diff.gz b/deb-src/libarchive-zip-perl/libarchive-zip-perl_1.18-1maemo1.diff.gz new file mode 100644 index 0000000000000000000000000000000000000000..b66686cb7675541540b9a2894d942dc34812f558 GIT binary patch literal 3457 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 literal 0 HcmV?d00001 diff --git a/deb-src/libarchive-zip-perl/libarchive-zip-perl_1.18-1maemo1.dsc b/deb-src/libarchive-zip-perl/libarchive-zip-perl_1.18-1maemo1.dsc new file mode 100644 index 0000000..b83ec9f --- /dev/null +++ b/deb-src/libarchive-zip-perl/libarchive-zip-perl_1.18-1maemo1.dsc @@ -0,0 +1,13 @@ +Format: 1.0 +Source: libarchive-zip-perl +Version: 1.18-1maemo1 +Binary: libarchive-zip-perl +Maintainer: Ben Burton +Architecture: all +Standards-Version: 3.7.2.2 +Build-Depends: debhelper (>= 5.0.0) +Build-Depends-Indep: perl, libcompress-zlib-perl, libfile-which-perl +Uploaders: Matthias Klose +Files: + dab6bb56f593c153faaa1192df8a69de 179285 libarchive-zip-perl_1.18.orig.tar.gz + 2de09e9d0d073987e2b4ffe3fc6e5409 3457 libarchive-zip-perl_1.18-1maemo1.diff.gz diff --git a/deb-src/libarchive-zip-perl/libarchive-zip-perl_1.18-1maemo1_i386.changes b/deb-src/libarchive-zip-perl/libarchive-zip-perl_1.18-1maemo1_i386.changes new file mode 100644 index 0000000..c55c190 --- /dev/null +++ b/deb-src/libarchive-zip-perl/libarchive-zip-perl_1.18-1maemo1_i386.changes @@ -0,0 +1,20 @@ +Format: 1.7 +Date: Tue, 13 Apr 2010 22:52:07 +0100 +Source: libarchive-zip-perl +Binary: libarchive-zip-perl +Architecture: source all +Version: 1.18-1maemo1 +Distribution: fremantle +Urgency: low +Maintainer: Ben Burton +Changed-By: Nito Martinez +Description: + libarchive-zip-perl - Module for manipulation of ZIP archives +Changes: + libarchive-zip-perl (1.18-1maemo1) fremantle; urgency=low + . + * New Maemo packaging +Files: + 96038b51bd8665830b0fd22944fa6c6d 490 perl optional libarchive-zip-perl_1.18-1maemo1.dsc + 2de09e9d0d073987e2b4ffe3fc6e5409 3457 perl optional libarchive-zip-perl_1.18-1maemo1.diff.gz + c574a024a671c9b01a741a0af0992861 90526 perl optional libarchive-zip-perl_1.18-1maemo1_all.deb diff --git a/deb-src/libarray-compare-perl/libarray-compare-perl-1.16/debian/changelog b/deb-src/libarray-compare-perl/libarray-compare-perl-1.16/debian/changelog index c412499..5edad17 100644 --- a/deb-src/libarray-compare-perl/libarray-compare-perl-1.16/debian/changelog +++ b/deb-src/libarray-compare-perl/libarray-compare-perl-1.16/debian/changelog @@ -1,4 +1,11 @@ -libarray-compare-perl (1.16-1) unstable; urgency=low +libarray-compare-perl (1.16-1maemo1) fremantle; urgency=low + + * New Maemo packaging + + -- Nito Martinez Tue, 13 Apr 2010 22:52:07 +0100 + + +llibarray-compare-perl (1.16-1) unstable; urgency=low * New upstream release * Added myself as an uploader diff --git a/deb-src/libarray-compare-perl/libarray-compare-perl_1.16-1maemo1.diff.gz b/deb-src/libarray-compare-perl/libarray-compare-perl_1.16-1maemo1.diff.gz new file mode 100644 index 0000000000000000000000000000000000000000..0e9a5daae7ee60c18205423b98d9016ff4c1d3d4 GIT binary patch literal 2505 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 TFqETGi^l%|@Irg6m>K{8zL@gP literal 0 HcmV?d00001 diff --git a/deb-src/libarray-compare-perl/libarray-compare-perl_1.16-1maemo1.dsc b/deb-src/libarray-compare-perl/libarray-compare-perl_1.16-1maemo1.dsc new file mode 100644 index 0000000..42d98c7 --- /dev/null +++ b/deb-src/libarray-compare-perl/libarray-compare-perl_1.16-1maemo1.dsc @@ -0,0 +1,13 @@ +Format: 1.0 +Source: libarray-compare-perl +Version: 1.16-1maemo1 +Binary: libarray-compare-perl +Maintainer: Debian Perl Group +Architecture: all +Standards-Version: 3.8.0 +Build-Depends: debhelper (>= 5) +Build-Depends-Indep: libmodule-build-perl, libtest-pod-perl, libtest-pod-coverage-perl +Uploaders: Jay Bonci , Damyan Ivanov , Gunnar Wolf +Files: + 0e9741b0e6f4db2e1457092d261c64e2 8108 libarray-compare-perl_1.16.orig.tar.gz + 4cef5d0d39be2498f4b3a0eaa2d3814f 2505 libarray-compare-perl_1.16-1maemo1.diff.gz diff --git a/deb-src/libarray-compare-perl/libarray-compare-perl_1.16-1maemo1_i386.changes b/deb-src/libarray-compare-perl/libarray-compare-perl_1.16-1maemo1_i386.changes new file mode 100644 index 0000000..2031d65 --- /dev/null +++ b/deb-src/libarray-compare-perl/libarray-compare-perl_1.16-1maemo1_i386.changes @@ -0,0 +1,20 @@ +Format: 1.7 +Date: Tue, 13 Apr 2010 22:52:07 +0100 +Source: libarray-compare-perl +Binary: libarray-compare-perl +Architecture: source all +Version: 1.16-1maemo1 +Distribution: fremantle +Urgency: low +Maintainer: Debian Perl Group +Changed-By: Nito Martinez +Description: + libarray-compare-perl - Array::Compare - easily compare arrays +Changes: + libarray-compare-perl (1.16-1maemo1) fremantle; urgency=low + . + * New Maemo packaging +Files: + b1f43d408bb58f365ca51e477134e3d3 608 perl optional libarray-compare-perl_1.16-1maemo1.dsc + 4cef5d0d39be2498f4b3a0eaa2d3814f 2505 perl optional libarray-compare-perl_1.16-1maemo1.diff.gz + 994e92cae772572e2fd8c5ffa0201d27 14050 perl optional libarray-compare-perl_1.16-1maemo1_all.deb diff --git a/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/Build.PL b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/Build.PL new file mode 100644 index 0000000..c681835 --- /dev/null +++ b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/Build.PL @@ -0,0 +1,15 @@ +use strict; +use Module::Build; + +Module::Build + ->new( module_name => "Class::Accessor::Chained", + license => 'perl', + build_requires => { + 'Test::More' => 0, + }, + requires => { + 'Class::Accessor' => 0, + }, + create_makefile_pl => 'traditional', + ) + ->create_build_script; diff --git a/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/Changes b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/Changes new file mode 100644 index 0000000..5086c5f --- /dev/null +++ b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/Changes @@ -0,0 +1,2 @@ +0.01 Monday 24th November, 2003 + initial CPAN release diff --git a/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/MANIFEST b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/MANIFEST new file mode 100644 index 0000000..62c0aae --- /dev/null +++ b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/MANIFEST @@ -0,0 +1,10 @@ +Build.PL +Changes +MANIFEST +Makefile.PL +README +META.yml +lib/Class/Accessor/Chained.pm +lib/Class/Accessor/Chained/Fast.pm +t/00compile.t +t/chained.t diff --git a/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/META.yml b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/META.yml new file mode 100644 index 0000000..470285b --- /dev/null +++ b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/META.yml @@ -0,0 +1,18 @@ +--- #YAML:1.0 +name: Class-Accessor-Chained +version: 0.01 +license: perl +distribution_type: module +requires: + Class::Accessor: 0 +recommends: {} +build_requires: + Test::More: 0 +conflicts: {} +provides: + Class::Accessor::Chained: + file: lib/Class/Accessor/Chained.pm + version: 0.01 + Class::Accessor::Chained::Fast: + file: lib/Class/Accessor/Chained/Fast.pm +generated_by: Module::Build version 0.21 diff --git a/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/Makefile.PL b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/Makefile.PL new file mode 100644 index 0000000..7333547 --- /dev/null +++ b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/Makefile.PL @@ -0,0 +1,14 @@ +# Generated by Module::Build::Compat->create_makefile_pl + +use ExtUtils::MakeMaker; +WriteMakefile + ( + NAME => 'Class::Accessor::Chained', + VERSION => '0.01', + PL_FILES => {}, + INSTALLDIRS => 'site', + PREREQ_PM => { + 'Test::More' => '0', + 'Class::Accessor' => '0', + }, + ); diff --git a/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/README b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/README new file mode 100644 index 0000000..6443345 --- /dev/null +++ b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/README @@ -0,0 +1,57 @@ +README for Class::Accessor::Chained 0.01 + +=head1 NAME + +Class::Accessor::Chained - make chained accessors + +=head1 SYNOPSIS + + package Foo; + use base qw( Class::Accessor::Chained ); + __PACKAGE__->mk_accessors(qw( foo bar baz )); + + my $foo = Foo->new->foo(1)->bar(2)->baz(4); + print $foo->bar; # prints 2 + + +=head1 DEPENDENCIES + +This module has external dependencies on the following modules: + + Class::Accessor + +=head1 INSTALLATION + + perl Build.PL + perl Build test + +and if all goes well + + perl Build install + +=head1 HISTORY + +What changed over the last 3 revisions + +=over + +=item 0.01 Monday 24th November, 2003 + + initial CPAN release +=back + +=head1 AUTHOR + +Richard Clamp + +=head1 COPYRIGHT + +Copyright (C) 2003 Richard Clamp. All Rights Reserved. + +This module is free software; you can redistribute it and/or modify it +under the same terms as Perl itself. + +=head1 SEE ALSO + +L, L + diff --git a/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/debian/changelog b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/debian/changelog new file mode 100644 index 0000000..6cd2488 --- /dev/null +++ b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/debian/changelog @@ -0,0 +1,29 @@ +libclass-accessor-chained-perl (0.01.1maemo1) fremantle; urgency=low + + * New Maemo packaging + + -- Nito Martinez Tue, 13 Apr 2010 22:52:07 +0100 + + +llibclass-accessor-chained-perl (0.01.1~debian-2.1) unstable; urgency=low + + * Non-maintainer upload. + * Conditionally remove $(TMP)/usr/lib/perl5 (closes: #467707) + * Stop ignoring clean errors in debian/rules + * This is not a native package + * Update Standards-Version (no changes) + + -- Stephen Gran Sun, 06 Apr 2008 01:38:30 +0100 + +libclass-accessor-chained-perl (0.01-2) unstable; urgency=low + + * Update standards version to 3.7.2 (no changes required). + + -- James Bromberger Wed, 20 Dec 2006 22:31:13 +0000 + +libclass-accessor-chained-perl (0.01-1) unstable; urgency=low + + * Initial Release. Closes: #258742. + + -- James Bromberger Tue, 13 Jul 2004 13:17:40 +0100 + diff --git a/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/debian/compat b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/debian/compat new file mode 100644 index 0000000..b8626c4 --- /dev/null +++ b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/debian/compat @@ -0,0 +1 @@ +4 diff --git a/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/debian/control b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/debian/control new file mode 100644 index 0000000..74ddbd2 --- /dev/null +++ b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/debian/control @@ -0,0 +1,20 @@ +Source: libclass-accessor-chained-perl +Section: perl +Priority: optional +Build-Depends: debhelper (>= 4.0.2) +Build-Depends-Indep: perl (>= 5.8.0-7) +Maintainer: James Bromberger +Standards-Version: 3.7.3 + +Package: libclass-accessor-chained-perl +Architecture: all +Depends: ${perl:Depends}, libclass-accessor-perl +Description: make chained accessors + A chained accessor is one that always returns the object when called + with parameters (to set), and the value of the field when called with + no arguments. + . + This module subclasses Class::Accessor in order to provide the same + mk_accessors interface. + . + This description was automagically extracted from the module by dh-make-perl. diff --git a/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/debian/copyright b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/debian/copyright new file mode 100644 index 0000000..94d58a7 --- /dev/null +++ b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/debian/copyright @@ -0,0 +1,21 @@ +This is the debian package for the Class-Accessor-Chained module. +It was created by James Bromberger using dh-make-perl. + +This copyright info was automatically extracted from the perl module. +It may not be accurate, so you better check the module sources +if don't want to get into legal troubles. + +The upstream author is: + +Richard Clamp . + + +Copyright (C) 2003 Richard Clamp. All Rights Reserved. + +This module is free software; you can redistribute it and/or modify it +under the same terms as Perl itself. + +Perl is distributed under your choice of the GNU General Public License or +the Artistic License. On Debian GNU/Linux systems, the complete text of the +GNU General Public License can be found in `/usr/share/common-licenses/GPL' +and the Artistic Licence in `/usr/share/common-licenses/Artistic'. diff --git a/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/debian/rules b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/debian/rules new file mode 100755 index 0000000..c3de9e6 --- /dev/null +++ b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/debian/rules @@ -0,0 +1,90 @@ +#!/usr/bin/make -f +# This debian/rules file is provided as a template for normal perl +# packages. It was created by Marc Brockschmidt for +# the Debian Perl Group (http://pkg-perl.alioth.debian.org/) but may +# be used freely wherever it is useful. + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +# If set to a true value then MakeMaker's prompt function will +# always return the default without waiting for user input. +export PERL_MM_USE_DEFAULT=1 + +PACKAGE=$(shell dh_listpackages) + +ifndef PERL +PERL = /usr/bin/perl +endif + +TMP =$(CURDIR)/debian/$(PACKAGE) + +# Allow disabling build optimation by setting noopt in +# $DEB_BUILD_OPTIONS +CFLAGS = -Wall -g +ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) + CFLAGS += -O0 +else + CFLAGS += -O2 +endif + +build: build-stamp +build-stamp: + dh_testdir + + # Add commands to compile the package here + $(PERL) Makefile.PL INSTALLDIRS=vendor + $(MAKE) OPTIMIZE="$(CFLAGS)" + + touch build-stamp + +clean: + dh_testdir + dh_testroot + + # Add commands to clean up after the build process here + [ ! -f Makefile ] || $(MAKE) distclean + + dh_clean build-stamp install-stamp + +install: install-stamp +install-stamp: build-stamp + dh_testdir + dh_testroot + dh_clean -k + + #$(MAKE) test + $(MAKE) install DESTDIR=$(TMP) PREFIX=/usr + + # As this is a architecture independent package, we are not supposed to install + # stuff to /usr/lib. MakeMaker creates the dirs, we delete them from the deb: + [ ! -d $(TMP)/usr/lib/perl5 ] || rmdir --ignore-fail-on-non-empty --parents $(TMP)/usr/lib/perl5 + + touch install-stamp + +binary-arch: +# We have nothing to do by default. + +binary-indep: build install + dh_testdir + dh_testroot +# dh_installcron +# dh_installmenu +# dh_installexamples + dh_installdocs README + dh_installchangelogs Changes + dh_perl + dh_link + dh_strip + dh_compress + dh_fixperms + dh_installdeb + dh_gencontrol + dh_md5sums + dh_builddeb + +source diff: + @echo >&2 'source and diff are obsolete - use dpkg-source -b'; false + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary diff --git a/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/debian/watch b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/debian/watch new file mode 100644 index 0000000..46329c0 --- /dev/null +++ b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/debian/watch @@ -0,0 +1,2 @@ +version=2 +http://www.cpan.org/modules/by-module/Class/Class-Accessor-Chained-(.*)\.tar\.gz debian uupdate diff --git a/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/lib/Class/Accessor/Chained.pm b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/lib/Class/Accessor/Chained.pm new file mode 100644 index 0000000..2c99070 --- /dev/null +++ b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/lib/Class/Accessor/Chained.pm @@ -0,0 +1,82 @@ +use strict; +package Class::Accessor::Chained; +use base 'Class::Accessor'; +our $VERSION = '0.01'; + +sub make_accessor { + my($class, $field) = @_; + + # Build a closure around $field. + return sub { + my($self) = shift; + + if (@_) { + $self->set($field, @_); + return $self; + } + else { + return $self->get($field); + } + }; +} + +sub make_wo_accessor { + my($class, $field) = @_; + + return sub { + my($self) = shift; + + unless (@_) { + my $caller = caller; + require Carp; + Carp::croak("'$caller' cannot access the value of '$field' on ". + "objects of class '$class'"); + } + else { + $self->set($field, @_); + return $self; + } + }; +} + +1; +__END__ + +=head1 NAME + +Class::Accessor::Chained - make chained accessors + +=head1 SYNOPSIS + + package Foo; + use base qw( Class::Accessor::Chained ); + __PACKAGE__->mk_accessors(qw( foo bar baz )); + + my $foo = Foo->new->foo(1)->bar(2)->baz(4); + print $foo->bar; # prints 2 + +=head1 DESCRIPTION + +A chained accessor is one that always returns the object when called +with parameters (to set), and the value of the field when called with +no arguments. + +This module subclasses Class::Accessor in order to provide the same +mk_accessors interface. + +=head1 AUTHOR + +Richard Clamp + +=head1 COPYRIGHT + +Copyright (C) 2003 Richard Clamp. All Rights Reserved. + +This module is free software; you can redistribute it and/or modify it +under the same terms as Perl itself. + +=head1 SEE ALSO + +L, L + +=cut diff --git a/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/lib/Class/Accessor/Chained/Fast.pm b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/lib/Class/Accessor/Chained/Fast.pm new file mode 100644 index 0000000..d52f89f --- /dev/null +++ b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/lib/Class/Accessor/Chained/Fast.pm @@ -0,0 +1,70 @@ +use strict; +package Class::Accessor::Chained::Fast; +use base 'Class::Accessor::Fast'; + +sub make_accessor { + my($class, $field) = @_; + + return sub { + my $self = shift; + if(@_) { + $self->{$field} = (@_ == 1 ? $_[0] : [@_]); + return $self; + } + return $self->{$field}; + }; +} + +sub make_wo_accessor { + my($class, $field) = @_; + + return sub { + my($self) = shift; + + unless (@_) { + my $caller = caller; + require Carp; + Carp::croak("'$caller' cannot access the value of '$field' on ". + "objects of class '$class'"); + } + else { + $self->{$field} = (@_ == 1 ? $_[0] : [@_]); + return $self; + } + }; +} + +1; + +=head1 NAME + +Class::Accessor::Chained::Fast - Faster, but less expandable, chained accessors + +=head1 SYNOPSIS + + package Foo; + use base qw(Class::Accessor::Chained::Fast); + + # The rest as Class::Accessor::Chained except no set() or get(). + +=head1 DESCRIPTION + +By analogue to Class::Accessor and Class::Accessor::Fast this module +provides a faster less-flexible chained accessor maker. + +=head1 AUTHOR + +Richard Clamp + +=head1 COPYRIGHT + +Copyright (C) 2003 Richard Clamp. All Rights Reserved. + +This module is free software; you can redistribute it and/or modify it +under the same terms as Perl itself. + +=head1 SEE ALSO + +L, L + +=cut diff --git a/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/t/00compile.t b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/t/00compile.t new file mode 100644 index 0000000..536d27a --- /dev/null +++ b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/t/00compile.t @@ -0,0 +1,5 @@ +#!perl -w +use strict; +use Test::More tests => 2; +require_ok('Class::Accessor::Chained'); +require_ok('Class::Accessor::Chained::Fast'); diff --git a/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/t/chained.t b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/t/chained.t new file mode 100644 index 0000000..ea41abf --- /dev/null +++ b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1maemo1/t/chained.t @@ -0,0 +1,24 @@ +#!perl -w +use strict; +use Test::More tests => 6; + +package Foo; +use base 'Class::Accessor::Chained'; +__PACKAGE__->mk_accessors(qw( foo bar baz )); +package main; + +my $foo = Foo->new->foo(1)->baz(2)->bar(4); +isa_ok( $foo, 'Foo' ); +is( $foo->bar, 4, "get gets the value" ); +is( $foo->foo( 5 ), $foo, "set gets the object" ); + +# and again, but with Fast accessors +package Bar; +use base 'Class::Accessor::Chained::Fast'; +__PACKAGE__->mk_accessors(qw( foo bar baz )); +package main; + +my $bar = Bar->new->foo(1)->baz(2)->bar(4); +isa_ok( $bar, 'Bar' ); +is( $bar->bar, 4, "get gets the value" ); +is( $bar->foo( 5 ), $bar, "set gets the object" ); diff --git a/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/Makefile b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/Makefile new file mode 100644 index 0000000..d9925b4 --- /dev/null +++ b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/Makefile @@ -0,0 +1,718 @@ +# This Makefile is for the Class::Accessor::Chained extension to perl. +# +# It was generated automatically by MakeMaker version +# 6.17 (Revision: 1.133) from the contents of +# Makefile.PL. Don't edit this file, edit Makefile.PL instead. +# +# ANY CHANGES MADE HERE WILL BE LOST! +# +# MakeMaker ARGV: (q[INSTALLDIRS=vendor]) +# +# MakeMaker Parameters: + +# INSTALLDIRS => q[site] +# NAME => q[Class::Accessor::Chained] +# PL_FILES => { } +# PREREQ_PM => { Test::More=>q[0], Class::Accessor=>q[0] } +# VERSION => q[0.01] + +# --- MakeMaker post_initialize section: + + +# --- MakeMaker const_config section: + +# These definitions are from config.sh (via /usr/lib/perl/5.8/Config.pm) + +# They may have been overridden via Makefile.PL or on the command line +AR = ar +CC = cc +CCCDLFLAGS = -fPIC +CCDLFLAGS = -rdynamic +DLEXT = so +DLSRC = dl_dlopen.xs +LD = cc +LDDLFLAGS = -shared -L/usr/local/lib +LDFLAGS = -L/usr/local/lib +LIBC = /lib/libc-2.5.so +LIB_EXT = .a +OBJ_EXT = .o +OSNAME = linux +OSVERS = 2.6.24-etchnhalf.1-amd64 +RANLIB = : +SITELIBEXP = /usr/local/share/perl/5.8.3 +SITEARCHEXP = /usr/local/lib/perl/5.8.3 +SO = so +EXE_EXT = +FULL_AR = /scratchbox/compilers/bin/ar +VENDORARCHEXP = /usr/lib/perl5 +VENDORLIBEXP = /usr/share/perl5 + + +# --- MakeMaker constants section: +AR_STATIC_ARGS = cr +DIRFILESEP = / +NAME = Class::Accessor::Chained +NAME_SYM = Class_Accessor_Chained +VERSION = 0.01 +VERSION_MACRO = VERSION +VERSION_SYM = 0_01 +DEFINE_VERSION = -D$(VERSION_MACRO)=\"$(VERSION)\" +XS_VERSION = 0.01 +XS_VERSION_MACRO = XS_VERSION +XS_DEFINE_VERSION = -D$(XS_VERSION_MACRO)=\"$(XS_VERSION)\" +INST_ARCHLIB = blib/arch +INST_SCRIPT = blib/script +INST_BIN = blib/bin +INST_LIB = blib/lib +INST_MAN1DIR = blib/man1 +INST_MAN3DIR = blib/man3 +MAN1EXT = 1p +MAN3EXT = 3pm +INSTALLDIRS = vendor +DESTDIR = +PREFIX = /usr +PERLPREFIX = $(PREFIX) +SITEPREFIX = $(PREFIX)/local +VENDORPREFIX = $(PREFIX) +INSTALLPRIVLIB = $(PERLPREFIX)/share/perl/5.8 +DESTINSTALLPRIVLIB = $(DESTDIR)$(INSTALLPRIVLIB) +INSTALLSITELIB = $(SITEPREFIX)/share/perl/5.8.3 +DESTINSTALLSITELIB = $(DESTDIR)$(INSTALLSITELIB) +INSTALLVENDORLIB = $(VENDORPREFIX)/share/perl5 +DESTINSTALLVENDORLIB = $(DESTDIR)$(INSTALLVENDORLIB) +INSTALLARCHLIB = $(PERLPREFIX)/lib/perl/5.8 +DESTINSTALLARCHLIB = $(DESTDIR)$(INSTALLARCHLIB) +INSTALLSITEARCH = $(SITEPREFIX)/lib/perl/5.8.3 +DESTINSTALLSITEARCH = $(DESTDIR)$(INSTALLSITEARCH) +INSTALLVENDORARCH = $(VENDORPREFIX)/lib/perl5 +DESTINSTALLVENDORARCH = $(DESTDIR)$(INSTALLVENDORARCH) +INSTALLBIN = $(PERLPREFIX)/bin +DESTINSTALLBIN = $(DESTDIR)$(INSTALLBIN) +INSTALLSITEBIN = $(SITEPREFIX)/bin +DESTINSTALLSITEBIN = $(DESTDIR)$(INSTALLSITEBIN) +INSTALLVENDORBIN = $(VENDORPREFIX)/bin +DESTINSTALLVENDORBIN = $(DESTDIR)$(INSTALLVENDORBIN) +INSTALLSCRIPT = $(PERLPREFIX)/bin +DESTINSTALLSCRIPT = $(DESTDIR)$(INSTALLSCRIPT) +INSTALLMAN1DIR = $(PERLPREFIX)/share/man/man1 +DESTINSTALLMAN1DIR = $(DESTDIR)$(INSTALLMAN1DIR) +INSTALLSITEMAN1DIR = $(SITEPREFIX)/man/man1 +DESTINSTALLSITEMAN1DIR = $(DESTDIR)$(INSTALLSITEMAN1DIR) +INSTALLVENDORMAN1DIR = $(VENDORPREFIX)/share/man/man1 +DESTINSTALLVENDORMAN1DIR = $(DESTDIR)$(INSTALLVENDORMAN1DIR) +INSTALLMAN3DIR = $(PERLPREFIX)/share/man/man3 +DESTINSTALLMAN3DIR = $(DESTDIR)$(INSTALLMAN3DIR) +INSTALLSITEMAN3DIR = $(SITEPREFIX)/man/man3 +DESTINSTALLSITEMAN3DIR = $(DESTDIR)$(INSTALLSITEMAN3DIR) +INSTALLVENDORMAN3DIR = $(VENDORPREFIX)/share/man/man3 +DESTINSTALLVENDORMAN3DIR = $(DESTDIR)$(INSTALLVENDORMAN3DIR) +PERL_LIB = /usr/share/perl/5.8 +PERL_ARCHLIB = /usr/lib/perl/5.8 +LIBPERL_A = libperl.a +FIRST_MAKEFILE = Makefile +MAKEFILE_OLD = $(FIRST_MAKEFILE).old +MAKE_APERL_FILE = $(FIRST_MAKEFILE).aperl +PERLMAINCC = $(CC) +PERL_INC = /usr/lib/perl/5.8/CORE +PERL = /targets/FREMANTLE_X86/usr/bin/perl +FULLPERL = /targets/FREMANTLE_X86/usr/bin/perl +ABSPERL = $(PERL) +PERLRUN = $(PERL) +FULLPERLRUN = $(FULLPERL) +ABSPERLRUN = $(ABSPERL) +PERLRUNINST = $(PERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" +FULLPERLRUNINST = $(FULLPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" +ABSPERLRUNINST = $(ABSPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" +PERL_CORE = 0 +PERM_RW = 644 +PERM_RWX = 755 + +MAKEMAKER = /usr/share/perl/5.8/ExtUtils/MakeMaker.pm +MM_VERSION = 6.17 +MM_REVISION = 1.133 + +# FULLEXT = Pathname for extension directory (eg Foo/Bar/Oracle). +# BASEEXT = Basename part of FULLEXT. May be just equal FULLEXT. (eg Oracle) +# PARENT_NAME = NAME without BASEEXT and no trailing :: (eg Foo::Bar) +# DLBASE = Basename part of dynamic library. May be just equal BASEEXT. +FULLEXT = Class/Accessor/Chained +BASEEXT = Chained +PARENT_NAME = Class::Accessor +DLBASE = $(BASEEXT) +VERSION_FROM = +OBJECT = +LDFROM = $(OBJECT) +LINKTYPE = dynamic + +# Handy lists of source code files: +XS_FILES = +C_FILES = +O_FILES = +H_FILES = +MAN1PODS = +MAN3PODS = lib/Class/Accessor/Chained.pm \ + lib/Class/Accessor/Chained/Fast.pm + +# Where is the Config information that we are using/depend on +CONFIGDEP = $(PERL_ARCHLIB)$(DIRFILESEP)Config.pm $(PERL_INC)$(DIRFILESEP)config.h + +# Where to build things +INST_LIBDIR = $(INST_LIB)/Class/Accessor +INST_ARCHLIBDIR = $(INST_ARCHLIB)/Class/Accessor + +INST_AUTODIR = $(INST_LIB)/auto/$(FULLEXT) +INST_ARCHAUTODIR = $(INST_ARCHLIB)/auto/$(FULLEXT) + +INST_STATIC = +INST_DYNAMIC = +INST_BOOT = + +# Extra linker info +EXPORT_LIST = +PERL_ARCHIVE = +PERL_ARCHIVE_AFTER = + + +TO_INST_PM = lib/Class/Accessor/Chained.pm \ + lib/Class/Accessor/Chained/Fast.pm + +PM_TO_BLIB = lib/Class/Accessor/Chained/Fast.pm \ + blib/lib/Class/Accessor/Chained/Fast.pm \ + lib/Class/Accessor/Chained.pm \ + blib/lib/Class/Accessor/Chained.pm + + +# --- MakeMaker platform_constants section: +MM_Unix_VERSION = 1.42 +PERL_MALLOC_DEF = -DPERL_EXTMALLOC_DEF -Dmalloc=Perl_malloc -Dfree=Perl_mfree -Drealloc=Perl_realloc -Dcalloc=Perl_calloc + + +# --- MakeMaker tool_autosplit section: +# Usage: $(AUTOSPLITFILE) FileToSplit AutoDirToSplitInto +AUTOSPLITFILE = $(PERLRUN) -e 'use AutoSplit; autosplit($$ARGV[0], $$ARGV[1], 0, 1, 1)' + + + +# --- MakeMaker tool_xsubpp section: + + +# --- MakeMaker tools_other section: +SHELL = /bin/sh +CHMOD = chmod +CP = cp +MV = mv +NOOP = $(SHELL) -c true +NOECHO = @ +RM_F = rm -f +RM_RF = rm -rf +TEST_F = test -f +TOUCH = touch +UMASK_NULL = umask 0 +DEV_NULL = > /dev/null 2>&1 +MKPATH = $(PERLRUN) "-MExtUtils::Command" -e mkpath +EQUALIZE_TIMESTAMP = $(PERLRUN) "-MExtUtils::Command" -e eqtime +ECHO = echo +ECHO_N = echo -n +UNINST = 0 +VERBINST = 0 +MOD_INSTALL = $(PERLRUN) -MExtUtils::Install -e 'install({@ARGV}, '\''$(VERBINST)'\'', 0, '\''$(UNINST)'\'');' +DOC_INSTALL = $(PERLRUN) "-MExtUtils::Command::MM" -e perllocal_install +UNINSTALL = $(PERLRUN) "-MExtUtils::Command::MM" -e uninstall +WARN_IF_OLD_PACKLIST = $(PERLRUN) "-MExtUtils::Command::MM" -e warn_if_old_packlist + + +# --- MakeMaker makemakerdflt section: +makemakerdflt: all + $(NOECHO) $(NOOP) + + +# --- MakeMaker dist section: +TAR = tar +TARFLAGS = cvf +ZIP = zip +ZIPFLAGS = -r +COMPRESS = gzip --best +SUFFIX = .gz +SHAR = shar +PREOP = $(NOECHO) $(NOOP) +POSTOP = $(NOECHO) $(NOOP) +TO_UNIX = $(NOECHO) $(NOOP) +CI = ci -u +RCS_LABEL = rcs -Nv$(VERSION_SYM): -q +DIST_CP = best +DIST_DEFAULT = tardist +DISTNAME = Class-Accessor-Chained +DISTVNAME = Class-Accessor-Chained-0.01 + + +# --- MakeMaker macro section: + + +# --- MakeMaker depend section: + + +# --- MakeMaker cflags section: + + +# --- MakeMaker const_loadlibs section: + + +# --- MakeMaker const_cccmd section: + + +# --- MakeMaker post_constants section: + + +# --- MakeMaker pasthru section: + +PASTHRU = LIB="$(LIB)"\ + LIBPERL_A="$(LIBPERL_A)"\ + LINKTYPE="$(LINKTYPE)"\ + PREFIX="$(PREFIX)"\ + OPTIMIZE="$(OPTIMIZE)"\ + PASTHRU_DEFINE="$(PASTHRU_DEFINE)"\ + PASTHRU_INC="$(PASTHRU_INC)" + + +# --- MakeMaker special_targets section: +.SUFFIXES: .xs .c .C .cpp .i .s .cxx .cc $(OBJ_EXT) + +.PHONY: all config static dynamic test linkext manifest + + + +# --- MakeMaker c_o section: + + +# --- MakeMaker xs_c section: + + +# --- MakeMaker xs_o section: + + +# --- MakeMaker top_targets section: +all :: pure_all manifypods + $(NOECHO) $(NOOP) + + +pure_all :: config pm_to_blib subdirs linkext + $(NOECHO) $(NOOP) + +subdirs :: $(MYEXTLIB) + $(NOECHO) $(NOOP) + +config :: $(FIRST_MAKEFILE) $(INST_LIBDIR)$(DIRFILESEP).exists + $(NOECHO) $(NOOP) + +config :: $(INST_ARCHAUTODIR)$(DIRFILESEP).exists + $(NOECHO) $(NOOP) + +config :: $(INST_AUTODIR)$(DIRFILESEP).exists + $(NOECHO) $(NOOP) + +$(INST_AUTODIR)/.exists :: /usr/lib/perl/5.8/CORE/perl.h + $(NOECHO) $(MKPATH) $(INST_AUTODIR) + $(NOECHO) $(EQUALIZE_TIMESTAMP) /usr/lib/perl/5.8/CORE/perl.h $(INST_AUTODIR)/.exists + + -$(NOECHO) $(CHMOD) $(PERM_RWX) $(INST_AUTODIR) + +$(INST_LIBDIR)/.exists :: /usr/lib/perl/5.8/CORE/perl.h + $(NOECHO) $(MKPATH) $(INST_LIBDIR) + $(NOECHO) $(EQUALIZE_TIMESTAMP) /usr/lib/perl/5.8/CORE/perl.h $(INST_LIBDIR)/.exists + + -$(NOECHO) $(CHMOD) $(PERM_RWX) $(INST_LIBDIR) + +$(INST_ARCHAUTODIR)/.exists :: /usr/lib/perl/5.8/CORE/perl.h + $(NOECHO) $(MKPATH) $(INST_ARCHAUTODIR) + $(NOECHO) $(EQUALIZE_TIMESTAMP) /usr/lib/perl/5.8/CORE/perl.h $(INST_ARCHAUTODIR)/.exists + + -$(NOECHO) $(CHMOD) $(PERM_RWX) $(INST_ARCHAUTODIR) + +config :: $(INST_MAN3DIR)$(DIRFILESEP).exists + $(NOECHO) $(NOOP) + + +$(INST_MAN3DIR)/.exists :: /usr/lib/perl/5.8/CORE/perl.h + $(NOECHO) $(MKPATH) $(INST_MAN3DIR) + $(NOECHO) $(EQUALIZE_TIMESTAMP) /usr/lib/perl/5.8/CORE/perl.h $(INST_MAN3DIR)/.exists + + -$(NOECHO) $(CHMOD) $(PERM_RWX) $(INST_MAN3DIR) + +help: + perldoc ExtUtils::MakeMaker + + +# --- MakeMaker linkext section: + +linkext :: $(LINKTYPE) + $(NOECHO) $(NOOP) + + +# --- MakeMaker dlsyms section: + + +# --- MakeMaker dynamic section: + +dynamic :: $(FIRST_MAKEFILE) $(INST_DYNAMIC) $(INST_BOOT) + $(NOECHO) $(NOOP) + + +# --- MakeMaker dynamic_bs section: + +BOOTSTRAP = + + +# --- MakeMaker dynamic_lib section: + + +# --- MakeMaker static section: + +## $(INST_PM) has been moved to the all: target. +## It remains here for awhile to allow for old usage: "make static" +static :: $(FIRST_MAKEFILE) $(INST_STATIC) + $(NOECHO) $(NOOP) + + +# --- MakeMaker static_lib section: + + +# --- MakeMaker manifypods section: + +POD2MAN_EXE = $(PERLRUN) "-MExtUtils::Command::MM" -e pod2man "--" +POD2MAN = $(POD2MAN_EXE) + + +manifypods : pure_all \ + lib/Class/Accessor/Chained/Fast.pm \ + lib/Class/Accessor/Chained.pm \ + lib/Class/Accessor/Chained/Fast.pm \ + lib/Class/Accessor/Chained.pm + $(NOECHO) $(POD2MAN) --section=3 --perm_rw=$(PERM_RW)\ + lib/Class/Accessor/Chained/Fast.pm $(INST_MAN3DIR)/Class::Accessor::Chained::Fast.$(MAN3EXT) \ + lib/Class/Accessor/Chained.pm $(INST_MAN3DIR)/Class::Accessor::Chained.$(MAN3EXT) + + + + +# --- MakeMaker processPL section: + + +# --- MakeMaker installbin section: + + +# --- MakeMaker subdirs section: + +# none + +# --- MakeMaker clean_subdirs section: +clean_subdirs : + $(NOECHO) $(NOOP) + + +# --- MakeMaker clean section: + +# Delete temporary files but do not touch installed files. We don't delete +# the Makefile here so a later make realclean still has a makefile to use. + +clean :: clean_subdirs + -$(RM_RF) ./blib $(MAKE_APERL_FILE) $(INST_ARCHAUTODIR)/extralibs.all $(INST_ARCHAUTODIR)/extralibs.ld perlmain.c tmon.out mon.out so_locations pm_to_blib *$(OBJ_EXT) *$(LIB_EXT) perl.exe perl perl$(EXE_EXT) $(BOOTSTRAP) $(BASEEXT).bso $(BASEEXT).def lib$(BASEEXT).def $(BASEEXT).exp $(BASEEXT).x core core.*perl.*.? *perl.core core.[0-9] core.[0-9][0-9] core.[0-9][0-9][0-9] core.[0-9][0-9][0-9][0-9] core.[0-9][0-9][0-9][0-9][0-9] + -$(MV) $(FIRST_MAKEFILE) $(MAKEFILE_OLD) $(DEV_NULL) + + +# --- MakeMaker realclean_subdirs section: +realclean_subdirs : + $(NOECHO) $(NOOP) + + +# --- MakeMaker realclean section: + +# Delete temporary files (via clean) and also delete installed files +realclean purge :: clean realclean_subdirs + $(RM_RF) $(INST_AUTODIR) $(INST_ARCHAUTODIR) + $(RM_RF) $(DISTVNAME) + $(RM_F) blib/lib/Class/Accessor/Chained.pm blib/lib/Class/Accessor/Chained/Fast.pm $(MAKEFILE_OLD) $(FIRST_MAKEFILE) + + +# --- MakeMaker metafile section: +metafile : + $(NOECHO) $(ECHO) '# http://module-build.sourceforge.net/META-spec.html' > META.yml + $(NOECHO) $(ECHO) '#XXXXXXX This is a prototype!!! It will change in the future!!! XXXXX#' >> META.yml + $(NOECHO) $(ECHO) 'name: Class-Accessor-Chained' >> META.yml + $(NOECHO) $(ECHO) 'version: 0.01' >> META.yml + $(NOECHO) $(ECHO) 'version_from: ' >> META.yml + $(NOECHO) $(ECHO) 'installdirs: vendor' >> META.yml + $(NOECHO) $(ECHO) 'requires:' >> META.yml + $(NOECHO) $(ECHO) ' Class::Accessor: 0' >> META.yml + $(NOECHO) $(ECHO) ' Test::More: 0' >> META.yml + $(NOECHO) $(ECHO) '' >> META.yml + $(NOECHO) $(ECHO) 'distribution_type: module' >> META.yml + $(NOECHO) $(ECHO) 'generated_by: ExtUtils::MakeMaker version 6.17' >> META.yml + + +# --- MakeMaker metafile_addtomanifest section: +metafile_addtomanifest: + $(NOECHO) $(PERLRUN) -MExtUtils::Manifest=maniadd -e 'eval { maniadd({q{META.yml} => q{Module meta-data (added by MakeMaker)}}) } ' \ + -e ' or print "Could not add META.yml to MANIFEST: $${'\''@'\''}\n"' + + +# --- MakeMaker dist_basics section: +distclean :: realclean distcheck + $(NOECHO) $(NOOP) + +distcheck : + $(PERLRUN) "-MExtUtils::Manifest=fullcheck" -e fullcheck + +skipcheck : + $(PERLRUN) "-MExtUtils::Manifest=skipcheck" -e skipcheck + +manifest : + $(PERLRUN) "-MExtUtils::Manifest=mkmanifest" -e mkmanifest + +veryclean : realclean + $(RM_F) *~ *.orig */*~ */*.orig + + + +# --- MakeMaker dist_core section: + +dist : $(DIST_DEFAULT) $(FIRST_MAKEFILE) + $(NOECHO) $(PERLRUN) -l -e 'print '\''Warning: Makefile possibly out of date with $(VERSION_FROM)'\''' \ + -e ' if -e '\''$(VERSION_FROM)'\'' and -M '\''$(VERSION_FROM)'\'' < -M '\''$(FIRST_MAKEFILE)'\'';' + +tardist : $(DISTVNAME).tar$(SUFFIX) + $(NOECHO) $(NOOP) + +uutardist : $(DISTVNAME).tar$(SUFFIX) + uuencode $(DISTVNAME).tar$(SUFFIX) $(DISTVNAME).tar$(SUFFIX) > $(DISTVNAME).tar$(SUFFIX)_uu + +$(DISTVNAME).tar$(SUFFIX) : distdir + $(PREOP) + $(TO_UNIX) + $(TAR) $(TARFLAGS) $(DISTVNAME).tar $(DISTVNAME) + $(RM_RF) $(DISTVNAME) + $(COMPRESS) $(DISTVNAME).tar + $(POSTOP) + +zipdist : $(DISTVNAME).zip + $(NOECHO) $(NOOP) + +$(DISTVNAME).zip : distdir + $(PREOP) + $(ZIP) $(ZIPFLAGS) $(DISTVNAME).zip $(DISTVNAME) + $(RM_RF) $(DISTVNAME) + $(POSTOP) + +shdist : distdir + $(PREOP) + $(SHAR) $(DISTVNAME) > $(DISTVNAME).shar + $(RM_RF) $(DISTVNAME) + $(POSTOP) + + +# --- MakeMaker distdir section: +distdir : metafile metafile_addtomanifest + $(RM_RF) $(DISTVNAME) + $(PERLRUN) "-MExtUtils::Manifest=manicopy,maniread" \ + -e "manicopy(maniread(),'$(DISTVNAME)', '$(DIST_CP)');" + + + +# --- MakeMaker dist_test section: + +disttest : distdir + cd $(DISTVNAME) && $(ABSPERLRUN) Makefile.PL + cd $(DISTVNAME) && $(MAKE) $(PASTHRU) + cd $(DISTVNAME) && $(MAKE) test $(PASTHRU) + + +# --- MakeMaker dist_ci section: + +ci : + $(PERLRUN) "-MExtUtils::Manifest=maniread" \ + -e "@all = keys %{ maniread() };" \ + -e "print(qq{Executing $(CI) @all\n}); system(qq{$(CI) @all});" \ + -e "print(qq{Executing $(RCS_LABEL) ...\n}); system(qq{$(RCS_LABEL) @all});" + + +# --- MakeMaker install section: + +install :: all pure_install doc_install + +install_perl :: all pure_perl_install doc_perl_install + +install_site :: all pure_site_install doc_site_install + +install_vendor :: all pure_vendor_install doc_vendor_install + +pure_install :: pure_$(INSTALLDIRS)_install + +doc_install :: doc_$(INSTALLDIRS)_install + +pure__install : pure_site_install + $(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site + +doc__install : doc_site_install + $(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site + +pure_perl_install :: + $(NOECHO) umask 022; $(MOD_INSTALL) \ + $(INST_LIB) $(DESTINSTALLPRIVLIB) \ + $(INST_ARCHLIB) $(DESTINSTALLARCHLIB) \ + $(INST_BIN) $(DESTINSTALLBIN) \ + $(INST_SCRIPT) $(DESTINSTALLSCRIPT) \ + $(INST_MAN1DIR) $(DESTINSTALLMAN1DIR) \ + $(INST_MAN3DIR) $(DESTINSTALLMAN3DIR) + $(NOECHO) $(WARN_IF_OLD_PACKLIST) \ + $(SITEARCHEXP)/auto/$(FULLEXT) + + +pure_site_install :: + $(NOECHO) umask 02; $(MOD_INSTALL) \ + read $(SITEARCHEXP)/auto/$(FULLEXT)/.packlist \ + write $(DESTINSTALLSITEARCH)/auto/$(FULLEXT)/.packlist \ + $(INST_LIB) $(DESTINSTALLSITELIB) \ + $(INST_ARCHLIB) $(DESTINSTALLSITEARCH) \ + $(INST_BIN) $(DESTINSTALLSITEBIN) \ + $(INST_SCRIPT) $(DESTINSTALLSCRIPT) \ + $(INST_MAN1DIR) $(DESTINSTALLSITEMAN1DIR) \ + $(INST_MAN3DIR) $(DESTINSTALLSITEMAN3DIR) + $(NOECHO) $(WARN_IF_OLD_PACKLIST) \ + $(PERL_ARCHLIB)/auto/$(FULLEXT) + +pure_vendor_install :: + $(NOECHO) umask 022; $(MOD_INSTALL) \ + $(INST_LIB) $(DESTINSTALLVENDORLIB) \ + $(INST_ARCHLIB) $(DESTINSTALLVENDORARCH) \ + $(INST_BIN) $(DESTINSTALLVENDORBIN) \ + $(INST_SCRIPT) $(DESTINSTALLSCRIPT) \ + $(INST_MAN1DIR) $(DESTINSTALLVENDORMAN1DIR) \ + $(INST_MAN3DIR) $(DESTINSTALLVENDORMAN3DIR) + +doc_perl_install :: + +doc_site_install :: + $(NOECHO) $(ECHO) Appending installation info to $(DESTINSTALLSITEARCH)/perllocal.pod + -$(NOECHO) umask 02; $(MKPATH) $(DESTINSTALLSITEARCH) + -$(NOECHO) umask 02; $(DOC_INSTALL) \ + "Module" "$(NAME)" \ + "installed into" "$(INSTALLSITELIB)" \ + LINKTYPE "$(LINKTYPE)" \ + VERSION "$(VERSION)" \ + EXE_FILES "$(EXE_FILES)" \ + >> $(DESTINSTALLSITEARCH)/perllocal.pod + +doc_vendor_install :: + + +uninstall :: uninstall_from_$(INSTALLDIRS)dirs + +uninstall_from_perldirs :: + $(NOECHO) $(UNINSTALL) $(PERL_ARCHLIB)/auto/$(FULLEXT)/.packlist + +uninstall_from_sitedirs :: + $(NOECHO) $(UNINSTALL) $(SITEARCHEXP)/auto/$(FULLEXT)/.packlist + +uninstall_from_vendordirs :: + $(NOECHO) $(UNINSTALL) $(VENDORARCHEXP)/auto/$(FULLEXT)/.packlist + + +# --- MakeMaker force section: +# Phony target to force checking subdirectories. +FORCE: + $(NOECHO) $(NOOP) + + +# --- MakeMaker perldepend section: + + +# --- MakeMaker makefile section: + +# We take a very conservative approach here, but it's worth it. +# We move Makefile to Makefile.old here to avoid gnu make looping. +$(FIRST_MAKEFILE) : Makefile.PL $(CONFIGDEP) + $(NOECHO) $(ECHO) "Makefile out-of-date with respect to $?" + $(NOECHO) $(ECHO) "Cleaning current config before rebuilding Makefile..." + $(NOECHO) $(RM_F) $(MAKEFILE_OLD) + $(NOECHO) $(MV) $(FIRST_MAKEFILE) $(MAKEFILE_OLD) + -$(MAKE) -f $(MAKEFILE_OLD) clean $(DEV_NULL) || $(NOOP) + $(PERLRUN) Makefile.PL "INSTALLDIRS=vendor" + $(NOECHO) $(ECHO) "==> Your Makefile has been rebuilt. <==" + $(NOECHO) $(ECHO) "==> Please rerun the make command. <==" + false + + + +# --- MakeMaker staticmake section: + +# --- MakeMaker makeaperl section --- +MAP_TARGET = perl +FULLPERL = /targets/FREMANTLE_X86/usr/bin/perl + +$(MAP_TARGET) :: static $(MAKE_APERL_FILE) + $(MAKE) -f $(MAKE_APERL_FILE) $@ + +$(MAKE_APERL_FILE) : $(FIRST_MAKEFILE) + $(NOECHO) $(ECHO) Writing \"$(MAKE_APERL_FILE)\" for this $(MAP_TARGET) + $(NOECHO) $(PERLRUNINST) \ + Makefile.PL DIR= \ + MAKEFILE=$(MAKE_APERL_FILE) LINKTYPE=static \ + MAKEAPERL=1 NORECURS=1 CCCDLFLAGS= \ + INSTALLDIRS=vendor + + +# --- MakeMaker test section: + +TEST_VERBOSE=0 +TEST_TYPE=test_$(LINKTYPE) +TEST_FILE = test.pl +TEST_FILES = t/*.t +TESTDB_SW = -d + +testdb :: testdb_$(LINKTYPE) + +test :: $(TEST_TYPE) + +test_dynamic :: pure_all + PERL_DL_NONLAZY=1 $(FULLPERLRUN) "-MExtUtils::Command::MM" "-e" "test_harness($(TEST_VERBOSE), '$(INST_LIB)', '$(INST_ARCHLIB)')" $(TEST_FILES) + +testdb_dynamic :: pure_all + PERL_DL_NONLAZY=1 $(FULLPERLRUN) $(TESTDB_SW) "-I$(INST_LIB)" "-I$(INST_ARCHLIB)" $(TEST_FILE) + +test_ : test_dynamic + +test_static :: test_dynamic +testdb_static :: testdb_dynamic + + +# --- MakeMaker ppd section: +# Creates a PPD (Perl Package Description) for a binary distribution. +ppd: + $(NOECHO) $(ECHO) '' > $(DISTNAME).ppd + $(NOECHO) $(ECHO) ' $(DISTNAME)' >> $(DISTNAME).ppd + $(NOECHO) $(ECHO) ' ' >> $(DISTNAME).ppd + $(NOECHO) $(ECHO) ' ' >> $(DISTNAME).ppd + $(NOECHO) $(ECHO) ' ' >> $(DISTNAME).ppd + $(NOECHO) $(ECHO) ' ' >> $(DISTNAME).ppd + $(NOECHO) $(ECHO) ' ' >> $(DISTNAME).ppd + $(NOECHO) $(ECHO) ' ' >> $(DISTNAME).ppd + $(NOECHO) $(ECHO) ' ' >> $(DISTNAME).ppd + $(NOECHO) $(ECHO) ' ' >> $(DISTNAME).ppd + $(NOECHO) $(ECHO) ' ' >> $(DISTNAME).ppd + $(NOECHO) $(ECHO) '' >> $(DISTNAME).ppd + + +# --- MakeMaker pm_to_blib section: + +pm_to_blib: $(TO_INST_PM) + $(NOECHO) $(PERLRUN) -MExtUtils::Install -e 'pm_to_blib({@ARGV}, '\''$(INST_LIB)/auto'\'', '\''$(PM_FILTER)'\'')'\ + lib/Class/Accessor/Chained/Fast.pm blib/lib/Class/Accessor/Chained/Fast.pm \ + lib/Class/Accessor/Chained.pm blib/lib/Class/Accessor/Chained.pm + $(NOECHO) $(TOUCH) $@ + +# --- MakeMaker selfdocument section: + + +# --- MakeMaker postamble section: + + +# End. diff --git a/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/blib/arch/auto/Class/Accessor/Chained/.exists b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/blib/arch/auto/Class/Accessor/Chained/.exists new file mode 100644 index 0000000..e69de29 diff --git a/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/blib/lib/Class/Accessor/.exists b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/blib/lib/Class/Accessor/.exists new file mode 100644 index 0000000..e69de29 diff --git a/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/blib/lib/Class/Accessor/Chained.pm b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/blib/lib/Class/Accessor/Chained.pm new file mode 100644 index 0000000..2c99070 --- /dev/null +++ b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/blib/lib/Class/Accessor/Chained.pm @@ -0,0 +1,82 @@ +use strict; +package Class::Accessor::Chained; +use base 'Class::Accessor'; +our $VERSION = '0.01'; + +sub make_accessor { + my($class, $field) = @_; + + # Build a closure around $field. + return sub { + my($self) = shift; + + if (@_) { + $self->set($field, @_); + return $self; + } + else { + return $self->get($field); + } + }; +} + +sub make_wo_accessor { + my($class, $field) = @_; + + return sub { + my($self) = shift; + + unless (@_) { + my $caller = caller; + require Carp; + Carp::croak("'$caller' cannot access the value of '$field' on ". + "objects of class '$class'"); + } + else { + $self->set($field, @_); + return $self; + } + }; +} + +1; +__END__ + +=head1 NAME + +Class::Accessor::Chained - make chained accessors + +=head1 SYNOPSIS + + package Foo; + use base qw( Class::Accessor::Chained ); + __PACKAGE__->mk_accessors(qw( foo bar baz )); + + my $foo = Foo->new->foo(1)->bar(2)->baz(4); + print $foo->bar; # prints 2 + +=head1 DESCRIPTION + +A chained accessor is one that always returns the object when called +with parameters (to set), and the value of the field when called with +no arguments. + +This module subclasses Class::Accessor in order to provide the same +mk_accessors interface. + +=head1 AUTHOR + +Richard Clamp + +=head1 COPYRIGHT + +Copyright (C) 2003 Richard Clamp. All Rights Reserved. + +This module is free software; you can redistribute it and/or modify it +under the same terms as Perl itself. + +=head1 SEE ALSO + +L, L + +=cut diff --git a/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/blib/lib/Class/Accessor/Chained/Fast.pm b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/blib/lib/Class/Accessor/Chained/Fast.pm new file mode 100644 index 0000000..d52f89f --- /dev/null +++ b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/blib/lib/Class/Accessor/Chained/Fast.pm @@ -0,0 +1,70 @@ +use strict; +package Class::Accessor::Chained::Fast; +use base 'Class::Accessor::Fast'; + +sub make_accessor { + my($class, $field) = @_; + + return sub { + my $self = shift; + if(@_) { + $self->{$field} = (@_ == 1 ? $_[0] : [@_]); + return $self; + } + return $self->{$field}; + }; +} + +sub make_wo_accessor { + my($class, $field) = @_; + + return sub { + my($self) = shift; + + unless (@_) { + my $caller = caller; + require Carp; + Carp::croak("'$caller' cannot access the value of '$field' on ". + "objects of class '$class'"); + } + else { + $self->{$field} = (@_ == 1 ? $_[0] : [@_]); + return $self; + } + }; +} + +1; + +=head1 NAME + +Class::Accessor::Chained::Fast - Faster, but less expandable, chained accessors + +=head1 SYNOPSIS + + package Foo; + use base qw(Class::Accessor::Chained::Fast); + + # The rest as Class::Accessor::Chained except no set() or get(). + +=head1 DESCRIPTION + +By analogue to Class::Accessor and Class::Accessor::Fast this module +provides a faster less-flexible chained accessor maker. + +=head1 AUTHOR + +Richard Clamp + +=head1 COPYRIGHT + +Copyright (C) 2003 Richard Clamp. All Rights Reserved. + +This module is free software; you can redistribute it and/or modify it +under the same terms as Perl itself. + +=head1 SEE ALSO + +L, L + +=cut diff --git a/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/blib/lib/auto/Class/Accessor/Chained/.exists b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/blib/lib/auto/Class/Accessor/Chained/.exists new file mode 100644 index 0000000..e69de29 diff --git a/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/blib/man3/.exists b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/blib/man3/.exists new file mode 100644 index 0000000..e69de29 diff --git a/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/blib/man3/Class::Accessor::Chained.3pm b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/blib/man3/Class::Accessor::Chained.3pm new file mode 100644 index 0000000..0ffba67 --- /dev/null +++ b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/blib/man3/Class::Accessor::Chained.3pm @@ -0,0 +1,166 @@ +.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14 +.\" +.\" Standard preamble: +.\" ======================================================================== +.de Sh \" Subsection heading +.br +.if t .Sp +.ne 5 +.PP +\fB\\$1\fR +.PP +.. +.de Sp \" Vertical space (when we can't use .PP) +.if t .sp .5v +.if n .sp +.. +.de Vb \" Begin verbatim text +.ft CW +.nf +.ne \\$1 +.. +.de Ve \" End verbatim text +.ft R +.fi +.. +.\" Set up some character translations and predefined strings. \*(-- will +.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left +.\" double quote, and \*(R" will give a right double quote. | will give a +.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to +.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C' +.\" expand to `' in nroff, nothing in troff, for use with C<>. +.tr \(*W-|\(bv\*(Tr +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.ie n \{\ +. ds -- \(*W- +. ds PI pi +. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +. ds L" "" +. ds R" "" +. ds C` "" +. ds C' "" +'br\} +.el\{\ +. ds -- \|\(em\| +. ds PI \(*p +. ds L" `` +. ds R" '' +'br\} +.\" +.\" If the F register is turned on, we'll generate index entries on stderr for +.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index +.\" entries marked with X<> in POD. Of course, you'll have to process the +.\" output yourself in some meaningful fashion. +.if \nF \{\ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" +.. +. nr % 0 +. rr F +.\} +.\" +.\" For nroff, turn off justification. Always turn off hyphenation; it makes +.\" way too many mistakes in technical documents. +.hy 0 +.if n .na +.\" +.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). +.\" Fear. Run. Save yourself. No user-serviceable parts. +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds / +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +.\} +.rm #[ #] #H #V #F C +.\" ======================================================================== +.\" +.IX Title "Class::Accessor::Chained 3" +.TH Class::Accessor::Chained 3 "2003-11-24" "perl v5.8.3" "User Contributed Perl Documentation" +.SH "NAME" +Class::Accessor::Chained \- make chained accessors +.SH "SYNOPSIS" +.IX Header "SYNOPSIS" +.Vb 3 +\& package Foo; +\& use base qw( Class::Accessor::Chained ); +\& __PACKAGE__->mk_accessors(qw( foo bar baz )); +.Ve +.PP +.Vb 2 +\& my $foo = Foo->new->foo(1)->bar(2)->baz(4); +\& print $foo->bar; # prints 2 +.Ve +.SH "DESCRIPTION" +.IX Header "DESCRIPTION" +A chained accessor is one that always returns the object when called +with parameters (to set), and the value of the field when called with +no arguments. +.PP +This module subclasses Class::Accessor in order to provide the same +mk_accessors interface. +.SH "AUTHOR" +.IX Header "AUTHOR" +Richard Clamp +.SH "COPYRIGHT" +.IX Header "COPYRIGHT" +Copyright (C) 2003 Richard Clamp. All Rights Reserved. +.PP +This module is free software; you can redistribute it and/or modify it +under the same terms as Perl itself. +.SH "SEE ALSO" +.IX Header "SEE ALSO" +Class::Accessor, Class::Accessor::Chained::Fast diff --git a/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/blib/man3/Class::Accessor::Chained::Fast.3pm b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/blib/man3/Class::Accessor::Chained::Fast.3pm new file mode 100644 index 0000000..eb18ab9 --- /dev/null +++ b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/blib/man3/Class::Accessor::Chained::Fast.3pm @@ -0,0 +1,160 @@ +.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14 +.\" +.\" Standard preamble: +.\" ======================================================================== +.de Sh \" Subsection heading +.br +.if t .Sp +.ne 5 +.PP +\fB\\$1\fR +.PP +.. +.de Sp \" Vertical space (when we can't use .PP) +.if t .sp .5v +.if n .sp +.. +.de Vb \" Begin verbatim text +.ft CW +.nf +.ne \\$1 +.. +.de Ve \" End verbatim text +.ft R +.fi +.. +.\" Set up some character translations and predefined strings. \*(-- will +.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left +.\" double quote, and \*(R" will give a right double quote. | will give a +.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to +.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C' +.\" expand to `' in nroff, nothing in troff, for use with C<>. +.tr \(*W-|\(bv\*(Tr +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.ie n \{\ +. ds -- \(*W- +. ds PI pi +. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +. ds L" "" +. ds R" "" +. ds C` "" +. ds C' "" +'br\} +.el\{\ +. ds -- \|\(em\| +. ds PI \(*p +. ds L" `` +. ds R" '' +'br\} +.\" +.\" If the F register is turned on, we'll generate index entries on stderr for +.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index +.\" entries marked with X<> in POD. Of course, you'll have to process the +.\" output yourself in some meaningful fashion. +.if \nF \{\ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" +.. +. nr % 0 +. rr F +.\} +.\" +.\" For nroff, turn off justification. Always turn off hyphenation; it makes +.\" way too many mistakes in technical documents. +.hy 0 +.if n .na +.\" +.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). +.\" Fear. Run. Save yourself. No user-serviceable parts. +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds / +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +.\} +.rm #[ #] #H #V #F C +.\" ======================================================================== +.\" +.IX Title "Class::Accessor::Chained::Fast 3" +.TH Class::Accessor::Chained::Fast 3 "2003-11-24" "perl v5.8.3" "User Contributed Perl Documentation" +.SH "NAME" +Class::Accessor::Chained::Fast \- Faster, but less expandable, chained accessors +.SH "SYNOPSIS" +.IX Header "SYNOPSIS" +.Vb 2 +\& package Foo; +\& use base qw(Class::Accessor::Chained::Fast); +.Ve +.PP +.Vb 1 +\& # The rest as Class::Accessor::Chained except no set() or get(). +.Ve +.SH "DESCRIPTION" +.IX Header "DESCRIPTION" +By analogue to Class::Accessor and Class::Accessor::Fast this module +provides a faster less-flexible chained accessor maker. +.SH "AUTHOR" +.IX Header "AUTHOR" +Richard Clamp +.SH "COPYRIGHT" +.IX Header "COPYRIGHT" +Copyright (C) 2003 Richard Clamp. All Rights Reserved. +.PP +This module is free software; you can redistribute it and/or modify it +under the same terms as Perl itself. +.SH "SEE ALSO" +.IX Header "SEE ALSO" +Class::Accessor::Fast, Class::Accessor::Chained diff --git a/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/build-stamp b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/build-stamp new file mode 100644 index 0000000..e69de29 diff --git a/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/debian/changelog b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/debian/changelog index 4c8eeb0..6cd2488 100644 --- a/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/debian/changelog +++ b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/debian/changelog @@ -1,4 +1,11 @@ -libclass-accessor-chained-perl (0.01.1~debian-2.1) unstable; urgency=low +libclass-accessor-chained-perl (0.01.1maemo1) fremantle; urgency=low + + * New Maemo packaging + + -- Nito Martinez Tue, 13 Apr 2010 22:52:07 +0100 + + +llibclass-accessor-chained-perl (0.01.1~debian-2.1) unstable; urgency=low * Non-maintainer upload. * Conditionally remove $(TMP)/usr/lib/perl5 (closes: #467707) diff --git a/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/debian/files b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/debian/files new file mode 100644 index 0000000..de3e240 --- /dev/null +++ b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/debian/files @@ -0,0 +1 @@ +libclass-accessor-chained-perl_0.01.1maemo1_all.deb perl optional diff --git a/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/debian/libclass-accessor-chained-perl.debhelper.log b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/debian/libclass-accessor-chained-perl.debhelper.log new file mode 100644 index 0000000..91f616f --- /dev/null +++ b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/debian/libclass-accessor-chained-perl.debhelper.log @@ -0,0 +1,11 @@ +dh_installdocs +dh_installchangelogs +dh_perl +dh_link +dh_strip +dh_compress +dh_fixperms +dh_installdeb +dh_gencontrol +dh_md5sums +dh_builddeb diff --git a/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/debian/libclass-accessor-chained-perl.substvars b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/debian/libclass-accessor-chained-perl.substvars new file mode 100644 index 0000000..bcb0957 --- /dev/null +++ b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/debian/libclass-accessor-chained-perl.substvars @@ -0,0 +1,2 @@ +perl:Depends=perl +misc:Depends= diff --git a/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/debian/libclass-accessor-chained-perl/DEBIAN/control b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/debian/libclass-accessor-chained-perl/DEBIAN/control new file mode 100644 index 0000000..8770e6f --- /dev/null +++ b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/debian/libclass-accessor-chained-perl/DEBIAN/control @@ -0,0 +1,17 @@ +Package: libclass-accessor-chained-perl +Version: 0.01.1maemo1 +Architecture: all +Maintainer: James Bromberger +Installed-Size: 80 +Depends: perl, libclass-accessor-perl +Section: perl +Priority: optional +Description: make chained accessors + A chained accessor is one that always returns the object when called + with parameters (to set), and the value of the field when called with + no arguments. + . + This module subclasses Class::Accessor in order to provide the same + mk_accessors interface. + . + This description was automagically extracted from the module by dh-make-perl. diff --git a/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/debian/libclass-accessor-chained-perl/DEBIAN/md5sums b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/debian/libclass-accessor-chained-perl/DEBIAN/md5sums new file mode 100644 index 0000000..e83b7db --- /dev/null +++ b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/debian/libclass-accessor-chained-perl/DEBIAN/md5sums @@ -0,0 +1,8 @@ +ac37dd5d6ad828c5113073bf19780333 usr/share/doc/libclass-accessor-chained-perl/copyright +3beb5937434b1d7da19b7eecee53d774 usr/share/doc/libclass-accessor-chained-perl/changelog.Debian.gz +d2edbe115bf44d9af44b798e59c44aba usr/share/doc/libclass-accessor-chained-perl/changelog.gz +fa61ea98195d87eff3bc08ae8c76c319 usr/share/doc/libclass-accessor-chained-perl/README +a7876acee13bf2e4ed4339089333ac7a usr/share/perl5/Class/Accessor/Chained.pm +544678632aaf294dc280944a83c509bc usr/share/perl5/Class/Accessor/Chained/Fast.pm +da449e463cfb478101370d67518accef usr/share/man/man3/Class::Accessor::Chained.3pm.gz +8dac92f586034714764767c42beb02ca usr/share/man/man3/Class::Accessor::Chained::Fast.3pm.gz diff --git a/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/debian/libclass-accessor-chained-perl/usr/share/doc/libclass-accessor-chained-perl/README b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/debian/libclass-accessor-chained-perl/usr/share/doc/libclass-accessor-chained-perl/README new file mode 100644 index 0000000..6443345 --- /dev/null +++ b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/debian/libclass-accessor-chained-perl/usr/share/doc/libclass-accessor-chained-perl/README @@ -0,0 +1,57 @@ +README for Class::Accessor::Chained 0.01 + +=head1 NAME + +Class::Accessor::Chained - make chained accessors + +=head1 SYNOPSIS + + package Foo; + use base qw( Class::Accessor::Chained ); + __PACKAGE__->mk_accessors(qw( foo bar baz )); + + my $foo = Foo->new->foo(1)->bar(2)->baz(4); + print $foo->bar; # prints 2 + + +=head1 DEPENDENCIES + +This module has external dependencies on the following modules: + + Class::Accessor + +=head1 INSTALLATION + + perl Build.PL + perl Build test + +and if all goes well + + perl Build install + +=head1 HISTORY + +What changed over the last 3 revisions + +=over + +=item 0.01 Monday 24th November, 2003 + + initial CPAN release +=back + +=head1 AUTHOR + +Richard Clamp + +=head1 COPYRIGHT + +Copyright (C) 2003 Richard Clamp. All Rights Reserved. + +This module is free software; you can redistribute it and/or modify it +under the same terms as Perl itself. + +=head1 SEE ALSO + +L, L + diff --git a/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/debian/libclass-accessor-chained-perl/usr/share/doc/libclass-accessor-chained-perl/changelog.Debian.gz b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/debian/libclass-accessor-chained-perl/usr/share/doc/libclass-accessor-chained-perl/changelog.Debian.gz new file mode 100644 index 0000000000000000000000000000000000000000..f018204c3ad328d33472af0ee1bf05ef60319d65 GIT binary patch literal 478 zcmV<40U`b$iwFP!000021C5f=Z__Xk#^3W-oCFUIYf>j^n<^AE7!zXBra=olJIRq6 zoO7_9P2+*TeV3+1Afc&GiGB9n@B92|RaRO$7s;wZ=ZuZ2om7N%)S=Zd5wS?(q?Op3 zB!q7kTS;EyOXzKbR6V@X<~|4jUce3B!}V|uI$8aYjiQDNQ3N;28?IQ-ZGXXfSe}1W zRHKeBH?IM)UYFJ3C{L*)VbelS&(hu7GFrWuA*X z+~41L(}8NpSe6f!MoECy8tXt2jC?cOYjpeL+nwTq12P^Yko1bjjrQUGz~`=(9=WZg zTH4x0U(hVmX8*OA3z9nGh$7csd^+h$A31d_sOdhcR3npE_Nv@_BkX?J?R{y&h=i U{9hz_G5=%vBd!Jr^M3;X0D_<6lK=n! literal 0 HcmV?d00001 diff --git a/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/debian/libclass-accessor-chained-perl/usr/share/doc/libclass-accessor-chained-perl/changelog.gz b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/debian/libclass-accessor-chained-perl/usr/share/doc/libclass-accessor-chained-perl/changelog.gz new file mode 100644 index 0000000000000000000000000000000000000000..15499f4c42bcc39ad2b583e733348199109e1e95 GIT binary patch literal 74 zcmb2|=3oE;CT8Oc#s(oD&Yt)7ToYnoq using dh-make-perl. + +This copyright info was automatically extracted from the perl module. +It may not be accurate, so you better check the module sources +if don't want to get into legal troubles. + +The upstream author is: + +Richard Clamp . + + +Copyright (C) 2003 Richard Clamp. All Rights Reserved. + +This module is free software; you can redistribute it and/or modify it +under the same terms as Perl itself. + +Perl is distributed under your choice of the GNU General Public License or +the Artistic License. On Debian GNU/Linux systems, the complete text of the +GNU General Public License can be found in `/usr/share/common-licenses/GPL' +and the Artistic Licence in `/usr/share/common-licenses/Artistic'. diff --git a/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/debian/libclass-accessor-chained-perl/usr/share/man/man3/Class::Accessor::Chained.3pm.gz b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/debian/libclass-accessor-chained-perl/usr/share/man/man3/Class::Accessor::Chained.3pm.gz new file mode 100644 index 0000000000000000000000000000000000000000..40fbc8d45a06be35fff9a4c881cf0f19d0fc45e7 GIT binary patch literal 2140 zcmV-i2&4BOiwFP!000021FcwXQ`^QC{_bCK#%UrMus{axrB1@sF;F~Bf(H|tPSu9B zwZbZTt9E6_xw-uI`<#_*%MjZ8q0ErzoIUSvdltuQQm@cyEOa;#QM902naEsd>C<>Y z!_@C~--(1~uCxE|of003T*;hK?m@%xn*2*6EfQbkK4rNS@i>xQgMR%F{WKh3(r8Mo zsTeCc(P5goLoEBX2{*NakaNF(xfP>xL6( z>i-O50%H){v0{?Ubej0zV1cDUXb9O=2}?3kX$-rjA{P^l!0TKjDiRz4MTk0w+?PR^ zAZJSF2#9isye+%krg<1eM$~OMlOU!d86!b=0vRG-sOb(94hM#?B+5dAd)utx1Vu8? zMv$Kt%=>4NYPn<7gZOfjI1g{9dV>-MeXWxiQ7|Op5R`csi@Y?uzr7(W2`6y6zrBsq zzQ{riS_I@)P^dUhKIycw?2&h}43M76Tn1?_X`XU+$B;V{VZ?Nm&YPtxeai@wpEJXm z(v3w(Zjz@#utQ0zrwA}(bcumjQ!VpQPpSXv7@5;KdG^-N?XR9aotQuE?fQy38P=mLj;;uq5 z=_2PIN|PN70*foKnuSQWFF%t^&|N4gOdh3undh8*BTk1p!h!8vows((Sduw|BL>xK zU>VdDs8Gw8fkDX<8TcyR)sE&`gQ1xD}=Ez*L`oC-7w zDmBZ~iByU`GosQ$XN6`eP)7laFry@vB0&)cMMMFb1co_gvU$l_t=J?DK9-+4rUBd6 zHN#YUUh>@2O#q#ynN&=Z|_@X}wrNaQ7&w&A3FPe*m zTAxoB878theTjG>9(Ph1X`q9*DKN=`Vq}j`Oh?MeG%>TpPbWo;NGe!2U9er{;7-KK zrru-%0uyF3(=)6x^n?AZ6)Q(fCgeJYbab@4*V)}WqS3p-OA7KdrVsr$bl`Ma<&Zv; zW^i2=?8S&vu?#ri_bCsDyp7)(=9n2wnaGV{94hb!g?}rNh>1>7Gr=-c<>2D4%J_N{ zJUd^;nt^L_j^Z_VM$Uc>{FS`GU4y>?9G2NJSK9-zw(S;e+rtl9KPaAeidJjOarfia zhQ5Do=-b=S_F_ZXi&9tRtP0}{ArL0`|F5@JUFJ<4_`MG7)PZ}tUw!XB;V$HQcU_)b zwsCh}Y#r^odu@#DXXh=;!yImY#Ywkl*46(d&kc@B9;g=i7Q( z*3LJG?;jDDqH)#4E$jXp9J_zx#uv|4QJt@rL%m9v?Tb(?+E|@r)LJI8Os%=`x__l* z8^&$(*BSKTTIA1bXm&vFbgCoESsMYOlE%nBBAggOeE*DDNeP+L^pWOmZw^9VT2*XX zyB#C4?d&H;&adpWFZl{)%vvqZeltS-c3o%Y8=Z6O-l_z34r9v;I-WgUpvPE{!E9P~ z(x#K8ZD2lGGP`bU!VX?u0^HcDhu`O^PNkV_AWqe`JHYIJSI4%cK;uK zq4C8!_()g03sJKl38lJSzGjt5^KQ3473PVu53;LsditE2oxQ#NHqzHQz>b*79Iu2! z=g8Ry^nstA{gjuaalxH5Y&?@`!ze@^kv)l-3H zDR;SC@-}DoQA)>uU<8nPW%C~zq~9>BEtVk>OKsL=tguSzY9nT*nTQIomb-co%E+$^ zFuQRhK|kfUt8EYQxthY3IQ0vZA$IQx=KyW|AQ!wara8M-ZqBpNmqw3*J&k%YKneS> zph>5UQSZam`NidCc$T=!kRR$kYl|~_m6zb;haw3-kFhEGP9pVjDW`ui{N-}+GM}DZP zX5uv)q2EPtz!wG!AR0wtVpIhNJ9dtji%@0Xh1%@7Rm+^7Qt$2P;z7%-un!Wj^JI5) SyJte_#{U4XjjWiQ5&!^HzaW?Z literal 0 HcmV?d00001 diff --git a/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/debian/libclass-accessor-chained-perl/usr/share/man/man3/Class::Accessor::Chained::Fast.3pm.gz b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/debian/libclass-accessor-chained-perl/usr/share/man/man3/Class::Accessor::Chained::Fast.3pm.gz new file mode 100644 index 0000000000000000000000000000000000000000..1ec2cadccca2d02fc4b205856d4a64584c7789d1 GIT binary patch literal 2052 zcmV+f2>bURiwFP!000021FcwXQ`<-q{_bDV1^`OF|D$5BK-6 zI}}-{!Ha;*1ci$8?~l9nlFcM9Bv2qWgJbl$C98CnKRe#wkv zN_Q3^xk;V|L5Gr5&kjTJ*VNTH^`jM$!+cZ(*5eTrVBvcpgMg87ij1% ztgh`WEO%~ooy>Aox4&O~@4Kpp?b!YImqUFS|`}iPxD`s%}g;oFVa^ylpA|EbYy|3D^5R+)0VHf$P`dAcm4^HaFDu z4uu5NDT^s${U_(|{baz)*WLayls$Go&E(*Fp4bDQvrwYZS zi=59;nsm?zEUv(+7b4xh{6aFp=|V}N^C<1hJm=&aI34N;8!h|hvfVLlN#;yWm{gmF zWtQex3bl-x7-jA93>gJw;Z;gvk$;9UrmQ}_dczerzB+?XR{?oxffn4MRa&r_bAf|` zO3m`rlS;8?1}ZIdR%qq|cN8#$X(h1~35qxo10wJicQk!Q~9Z58nJx? z(@eGNCeK~n1krDrPQ^S)PS2@Vej_j!Fkl<)3!IVa0C9{7U-Yj+=`g^_=fFVhG+K(4 z+V0O+89K7reTjG>9-pN$XyAjlDOQpd#mFA-m=h_zd188rpL#`%NGe!2U$I?f<4(lJ zrc=)Yg9$U4?ip4Y`nmP29V=US9y#_gotzx>`Ukxen!F#qq##dY`Z#<`M|QtmHt7p# z8rOBfUQ9R@>wts)kaBa#yZBw8kD11liQE{*p@Mu+_%n$_csfPR1nW?hjf=l31vJY$IZ{!Bfmi!&$xXg~Z+8)5RT29ezx%k1+4~pmgqTSxJox`}j zqwnuK`g%LsUhF7)QR=FkRbiYV1i}RW|Mk|YW8T$?Kk7uMPTbS|=KJ6q?gH2SJmAjN zGVU&my^{l{*G0>IcG8Vj*lAz#70fGJwb=XJfco9K&dfJDm)5;i0rih#%MJQ&Yreu6V<5A#YuQ_5zt!cJB#y4i=-FUmgdD<%G%$%2pH;=hFqa&lqql2Ss5C7s9 z8egoVPjthx5H*L9P--yXYgVZ=9}I?b!B3RI;6f-(hhVMzptCDZ(B zmWVgXUM+fdPQ-nZw3+`crw#?xR8>%)h5*Wj6duWl07&( zpA4@@)@nXU_oBBm08yHa+q0i4U9zA*P z<}i1INPY=*!(rSr{-Y5Wg>`1vLj5&!`C1qdww literal 0 HcmV?d00001 diff --git a/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/debian/libclass-accessor-chained-perl/usr/share/perl5/Class/Accessor/Chained.pm b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/debian/libclass-accessor-chained-perl/usr/share/perl5/Class/Accessor/Chained.pm new file mode 100644 index 0000000..2c99070 --- /dev/null +++ b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/debian/libclass-accessor-chained-perl/usr/share/perl5/Class/Accessor/Chained.pm @@ -0,0 +1,82 @@ +use strict; +package Class::Accessor::Chained; +use base 'Class::Accessor'; +our $VERSION = '0.01'; + +sub make_accessor { + my($class, $field) = @_; + + # Build a closure around $field. + return sub { + my($self) = shift; + + if (@_) { + $self->set($field, @_); + return $self; + } + else { + return $self->get($field); + } + }; +} + +sub make_wo_accessor { + my($class, $field) = @_; + + return sub { + my($self) = shift; + + unless (@_) { + my $caller = caller; + require Carp; + Carp::croak("'$caller' cannot access the value of '$field' on ". + "objects of class '$class'"); + } + else { + $self->set($field, @_); + return $self; + } + }; +} + +1; +__END__ + +=head1 NAME + +Class::Accessor::Chained - make chained accessors + +=head1 SYNOPSIS + + package Foo; + use base qw( Class::Accessor::Chained ); + __PACKAGE__->mk_accessors(qw( foo bar baz )); + + my $foo = Foo->new->foo(1)->bar(2)->baz(4); + print $foo->bar; # prints 2 + +=head1 DESCRIPTION + +A chained accessor is one that always returns the object when called +with parameters (to set), and the value of the field when called with +no arguments. + +This module subclasses Class::Accessor in order to provide the same +mk_accessors interface. + +=head1 AUTHOR + +Richard Clamp + +=head1 COPYRIGHT + +Copyright (C) 2003 Richard Clamp. All Rights Reserved. + +This module is free software; you can redistribute it and/or modify it +under the same terms as Perl itself. + +=head1 SEE ALSO + +L, L + +=cut diff --git a/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/debian/libclass-accessor-chained-perl/usr/share/perl5/Class/Accessor/Chained/Fast.pm b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/debian/libclass-accessor-chained-perl/usr/share/perl5/Class/Accessor/Chained/Fast.pm new file mode 100644 index 0000000..d52f89f --- /dev/null +++ b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/debian/libclass-accessor-chained-perl/usr/share/perl5/Class/Accessor/Chained/Fast.pm @@ -0,0 +1,70 @@ +use strict; +package Class::Accessor::Chained::Fast; +use base 'Class::Accessor::Fast'; + +sub make_accessor { + my($class, $field) = @_; + + return sub { + my $self = shift; + if(@_) { + $self->{$field} = (@_ == 1 ? $_[0] : [@_]); + return $self; + } + return $self->{$field}; + }; +} + +sub make_wo_accessor { + my($class, $field) = @_; + + return sub { + my($self) = shift; + + unless (@_) { + my $caller = caller; + require Carp; + Carp::croak("'$caller' cannot access the value of '$field' on ". + "objects of class '$class'"); + } + else { + $self->{$field} = (@_ == 1 ? $_[0] : [@_]); + return $self; + } + }; +} + +1; + +=head1 NAME + +Class::Accessor::Chained::Fast - Faster, but less expandable, chained accessors + +=head1 SYNOPSIS + + package Foo; + use base qw(Class::Accessor::Chained::Fast); + + # The rest as Class::Accessor::Chained except no set() or get(). + +=head1 DESCRIPTION + +By analogue to Class::Accessor and Class::Accessor::Fast this module +provides a faster less-flexible chained accessor maker. + +=head1 AUTHOR + +Richard Clamp + +=head1 COPYRIGHT + +Copyright (C) 2003 Richard Clamp. All Rights Reserved. + +This module is free software; you can redistribute it and/or modify it +under the same terms as Perl itself. + +=head1 SEE ALSO + +L, L + +=cut diff --git a/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/install-stamp b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/install-stamp new file mode 100644 index 0000000..e69de29 diff --git a/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/pm_to_blib b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl-0.01.1~debian/pm_to_blib new file mode 100644 index 0000000..e69de29 diff --git a/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl_0.01.1maemo1.dsc b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl_0.01.1maemo1.dsc new file mode 100644 index 0000000..1deca2d --- /dev/null +++ b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl_0.01.1maemo1.dsc @@ -0,0 +1,11 @@ +Format: 1.0 +Source: libclass-accessor-chained-perl +Version: 0.01.1maemo1 +Binary: libclass-accessor-chained-perl +Maintainer: James Bromberger +Architecture: all +Standards-Version: 3.7.3 +Build-Depends: debhelper (>= 4.0.2) +Build-Depends-Indep: perl (>= 5.8.0-7) +Files: + fc5f81eb0db17be909622e6ca05a57cc 4363 libclass-accessor-chained-perl_0.01.1maemo1.tar.gz diff --git a/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl_0.01.1maemo1.tar.gz b/deb-src/libclass-accessor-chained-perl/libclass-accessor-chained-perl_0.01.1maemo1.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..9ae29780a5b28322dd8dd0a930505e7a66e83ee4 GIT binary patch literal 4363 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 +Changed-By: Nito Martinez +Description: + libclass-accessor-chained-perl - make chained accessors +Changes: + libclass-accessor-chained-perl (0.01.1maemo1) fremantle; urgency=low + . + * New Maemo packaging +Files: + 5060a6954ebb4c0da74a2cf7065d55bf 374 perl optional libclass-accessor-chained-perl_0.01.1maemo1.dsc + fc5f81eb0db17be909622e6ca05a57cc 4363 perl optional libclass-accessor-chained-perl_0.01.1maemo1.tar.gz + 2e6325bd0247cf7326490bcf185826d3 8118 perl optional libclass-accessor-chained-perl_0.01.1maemo1_all.deb diff --git a/deb-src/libclass-accessor-perl/libclass-accessor-perl-0.31/debian/changelog b/deb-src/libclass-accessor-perl/libclass-accessor-perl-0.31/debian/changelog index 1c8b365..2abd567 100644 --- a/deb-src/libclass-accessor-perl/libclass-accessor-perl-0.31/debian/changelog +++ b/deb-src/libclass-accessor-perl/libclass-accessor-perl-0.31/debian/changelog @@ -1,4 +1,11 @@ -libclass-accessor-perl (0.31-2) unstable; urgency=low +libclass-accessor-perl (0.31-2maemo1) fremantle; urgency=low + + * New Maemo packaging + + -- Nito Martinez Tue, 13 Apr 2010 22:52:07 +0100 + + +llibclass-accessor-perl (0.31-2) unstable; urgency=low * Add patch to fix errors in manpage (closes: #443737). diff --git a/deb-src/libclass-accessor-perl/libclass-accessor-perl_0.31-2maemo1.diff.gz b/deb-src/libclass-accessor-perl/libclass-accessor-perl_0.31-2maemo1.diff.gz new file mode 100644 index 0000000000000000000000000000000000000000..f6a6950e6fcfba5d07ec96ed703dc13e803704f7 GIT binary patch literal 3503 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 literal 0 HcmV?d00001 diff --git a/deb-src/libclass-accessor-perl/libclass-accessor-perl_0.31-2maemo1.dsc b/deb-src/libclass-accessor-perl/libclass-accessor-perl_0.31-2maemo1.dsc new file mode 100644 index 0000000..5171cad --- /dev/null +++ b/deb-src/libclass-accessor-perl/libclass-accessor-perl_0.31-2maemo1.dsc @@ -0,0 +1,15 @@ +Format: 1.0 +Source: libclass-accessor-perl +Version: 0.31-2maemo1 +Binary: libclass-accessor-perl +Maintainer: Debian Perl Group +Architecture: all +Standards-Version: 3.7.2 +Build-Depends: debhelper (>= 5), quilt +Build-Depends-Indep: perl (>= 5.6.0-16) +Vcs-Browser: http://svn.debian.org/wsvn/pkg-perl/trunk/libclass-accessor-perl/ +Uploaders: Krzysztof Krzyzaniak (eloy) , gregor herrmann +Vcs-Svn: svn://svn.debian.org/pkg-perl/trunk/libclass-accessor-perl/ +Files: + d13df2381878ccdb847c23ab6af7e4fa 10964 libclass-accessor-perl_0.31.orig.tar.gz + 49816099797bd32b0785f7e8448e762c 3503 libclass-accessor-perl_0.31-2maemo1.diff.gz diff --git a/deb-src/libclass-accessor-perl/libclass-accessor-perl_0.31-2maemo1_i386.changes b/deb-src/libclass-accessor-perl/libclass-accessor-perl_0.31-2maemo1_i386.changes new file mode 100644 index 0000000..0991cf1 --- /dev/null +++ b/deb-src/libclass-accessor-perl/libclass-accessor-perl_0.31-2maemo1_i386.changes @@ -0,0 +1,20 @@ +Format: 1.7 +Date: Tue, 13 Apr 2010 22:52:07 +0100 +Source: libclass-accessor-perl +Binary: libclass-accessor-perl +Architecture: source all +Version: 0.31-2maemo1 +Distribution: fremantle +Urgency: low +Maintainer: Debian Perl Group +Changed-By: Nito Martinez +Description: + libclass-accessor-perl - Automated accessor generator +Changes: + libclass-accessor-perl (0.31-2maemo1) fremantle; urgency=low + . + * New Maemo packaging +Files: + 835fd10be39c54cf6539a40b2d04dff7 719 perl optional libclass-accessor-perl_0.31-2maemo1.dsc + 49816099797bd32b0785f7e8448e762c 3503 perl optional libclass-accessor-perl_0.31-2maemo1.diff.gz + e3fbbb10748b1d5e5ae091217289735d 24654 perl optional libclass-accessor-perl_0.31-2maemo1_all.deb diff --git a/deb-src/libcompress-raw-zlib-perl/libcompress-raw-zlib-perl-2.012/debian/changelog b/deb-src/libcompress-raw-zlib-perl/libcompress-raw-zlib-perl-2.012/debian/changelog index f9471ac..e8183f5 100644 --- a/deb-src/libcompress-raw-zlib-perl/libcompress-raw-zlib-perl-2.012/debian/changelog +++ b/deb-src/libcompress-raw-zlib-perl/libcompress-raw-zlib-perl-2.012/debian/changelog @@ -1,4 +1,11 @@ -libcompress-raw-zlib-perl (2.012-1lenny1) stable; urgency=high +libcompress-raw-zlib-perl (2.012-11maemo1) fremantle; urgency=low + + * New Maemo packaging + + -- Nito Martinez Tue, 13 Apr 2010 22:52:07 +0100 + + +llibcompress-raw-zlib-perl (2.012-1lenny1) stable; urgency=high * [SECURITY] CVE-2009-1391: Fix a buffer overflow in inflate(). (Closes: #532738) diff --git a/deb-src/libcompress-raw-zlib-perl/libcompress-raw-zlib-perl-2.012/debian/control b/deb-src/libcompress-raw-zlib-perl/libcompress-raw-zlib-perl-2.012/debian/control index bab51c2..e774c26 100644 --- a/deb-src/libcompress-raw-zlib-perl/libcompress-raw-zlib-perl-2.012/debian/control +++ b/deb-src/libcompress-raw-zlib-perl/libcompress-raw-zlib-perl-2.012/debian/control @@ -1,7 +1,7 @@ Source: libcompress-raw-zlib-perl Section: perl Priority: optional -Build-Depends: debhelper (>= 7), perl (>= 5.8.8-7), +Build-Depends: debhelper7, perl (>= 5.8.3), libtest-pod-perl, zlib1g-dev, quilt (>= 0.40) Uploaders: Krzysztof Krzyzaniak (eloy) , Damyan Ivanov , gregor herrmann diff --git a/deb-src/libcompress-raw-zlib-perl/libcompress-raw-zlib-perl_2.012-11maemo1.diff.gz b/deb-src/libcompress-raw-zlib-perl/libcompress-raw-zlib-perl_2.012-11maemo1.diff.gz new file mode 100644 index 0000000000000000000000000000000000000000..653bb551b8c5e734c37c87a8f4c37719c42a1c80 GIT binary patch literal 3737 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 D6){6# literal 0 HcmV?d00001 diff --git a/deb-src/libcompress-raw-zlib-perl/libcompress-raw-zlib-perl_2.012-11maemo1.dsc b/deb-src/libcompress-raw-zlib-perl/libcompress-raw-zlib-perl_2.012-11maemo1.dsc new file mode 100644 index 0000000..4b52b6d --- /dev/null +++ b/deb-src/libcompress-raw-zlib-perl/libcompress-raw-zlib-perl_2.012-11maemo1.dsc @@ -0,0 +1,12 @@ +Format: 1.0 +Source: libcompress-raw-zlib-perl +Version: 2.012-11maemo1 +Binary: libcompress-raw-zlib-perl +Maintainer: Debian Perl Group +Architecture: any +Standards-Version: 3.8.0 +Build-Depends: debhelper7, perl (>= 5.8.3), libtest-pod-perl, zlib1g-dev, quilt (>= 0.40) +Uploaders: Krzysztof Krzyzaniak (eloy) , Damyan Ivanov , gregor herrmann +Files: + 7eb9fc5a21232700db8708e5a07e5cb6 208481 libcompress-raw-zlib-perl_2.012.orig.tar.gz + 88d6e21a8197a5fd0b008d24653dd12b 3737 libcompress-raw-zlib-perl_2.012-11maemo1.diff.gz diff --git a/deb-src/libcompress-raw-zlib-perl/libcompress-raw-zlib-perl_2.012-11maemo1_i386.changes b/deb-src/libcompress-raw-zlib-perl/libcompress-raw-zlib-perl_2.012-11maemo1_i386.changes new file mode 100644 index 0000000..28846d4 --- /dev/null +++ b/deb-src/libcompress-raw-zlib-perl/libcompress-raw-zlib-perl_2.012-11maemo1_i386.changes @@ -0,0 +1,20 @@ +Format: 1.7 +Date: Tue, 13 Apr 2010 22:52:07 +0100 +Source: libcompress-raw-zlib-perl +Binary: libcompress-raw-zlib-perl +Architecture: source i386 +Version: 2.012-11maemo1 +Distribution: fremantle +Urgency: low +Maintainer: Debian Perl Group +Changed-By: Nito Martinez +Description: + libcompress-raw-zlib-perl - low-level interface to zlib compression library +Changes: + libcompress-raw-zlib-perl (2.012-11maemo1) fremantle; urgency=low + . + * New Maemo packaging +Files: + 2fda3b84c9ca83f245f1ced32ae214a5 621 perl optional libcompress-raw-zlib-perl_2.012-11maemo1.dsc + 88d6e21a8197a5fd0b008d24653dd12b 3737 perl optional libcompress-raw-zlib-perl_2.012-11maemo1.diff.gz + 777b5e4f8b683cb5b3036fcdbaf30b86 56346 perl optional libcompress-raw-zlib-perl_2.012-11maemo1_i386.deb diff --git a/deb-src/libdevel-symdump-perl/libdevel-symdump-perl-2.08/debian/changelog b/deb-src/libdevel-symdump-perl/libdevel-symdump-perl-2.08/debian/changelog index 9559ada..0ce1e12 100644 --- a/deb-src/libdevel-symdump-perl/libdevel-symdump-perl-2.08/debian/changelog +++ b/deb-src/libdevel-symdump-perl/libdevel-symdump-perl-2.08/debian/changelog @@ -1,4 +1,11 @@ -libdevel-symdump-perl (2.08-1) unstable; urgency=low +libdevel-symdump-perl (2.08-1maemo1) fremantle; urgency=low + + * New Maemo packaging + + -- Nito Martinez Tue, 13 Apr 2010 22:52:07 +0100 + + +llibdevel-symdump-perl (2.08-1) unstable; urgency=low * New upstream release. * Update debian/copyright. diff --git a/deb-src/libdevel-symdump-perl/libdevel-symdump-perl_2.08-1maemo1.diff.gz b/deb-src/libdevel-symdump-perl/libdevel-symdump-perl_2.08-1maemo1.diff.gz new file mode 100644 index 0000000000000000000000000000000000000000..9788c7838f3b00f8bed73153cf2289e04fa39feb GIT binary patch literal 2970 zcmV;L3uW{liwFSz>cmR|1EpE}TH8hz|2sUzDex_Jv1H4}fR&Kqa7k&oEl%3)mi@A_ zG`7{qlB$s)PU$|@zQDfN{?3eK%LHQkD_>$P&CI#YIlptkFboR(z9;TPV93eX%f_)0 zizG0bW@F!s5`S3tMBjJ9x*LsSCtcg#-u}voN1G21$!OFXv~AJh;o5e4%~*wBJi+5= zd6vcg8P{5?tr))>`I2JC{pbt@-8+)>8UM5Js6U~j#PNsJb3#ufl3Yg~rp{+G6shTC z6oqTs7g1OvYSRx{Kvt*IA**G#cJ0OvX({LI|C>V!?*&`Si^{`kNDhW?OO zjtVQ<{6zRswi`!Y76_t;c|8w8}tOG<rw;*#hRbDn6WED>4(E& zXR6MoKF&r1x=;L+7a8%Jw;skV^^`QctD>amiF~5-`?XSH3l!fZ$LTN(yIgP;2N&P5%nX{oggbSX@ zsu85Cz!Xp*p(y5ERY*Odz=3R28uiXuZ$AW}BYr<85;$P${&BXh9v`vTXNaX^Rk?|LSa zx*Wj}jA`R2G_(Tser7|C`5p4k<6P?c9wR5$}8t zaqb{&!#iXM5pqHV9z_LlP1`aDZc>_)M?(@$m0HyfiRRdasf1 zG9+QEMcp_-8DKT2*|ghDRXE|P!DJxfS7ods&q;OH&kC2tNR|Q_H4y=73}Nb}_X=j{ zaeZhO!Y>ZrT!Ds_E6~^{t7%)ic6)!O!1L0#jGYD2pM`Fad4irPE+F0$((}PGzS~^u z5F@tHhxQ)5zd6shDfpOHz9854LzGPhUr}5`y_yzp6#VCQlcI!1ckTT34LsmZkjiJ! zxz1{~Nk!N=Lb)Szq~o~Fj~qwgR!aUbTHM!1ppr4O^h@86vo`?(rj&!Zr6QQyHX zNdhb-6`0zJ=Jh#0!nhtxYRWsfm7f4pfjR)niWGU7w_$ZqtGBB;)!rm@b?G&w%H(X) zh(l7ROQs#`+U!Y_w#|->i_A}PMgMyS_TEZ%?l~#!yjuifi|yQM+O5`df!JJN=O={T zvq@%g93?3opS=0-=Kb0E@rSGHcV}0Zy@N19NiZK65|t{sNj6BekLP!mAm7QAR8`%k zWzl7Hr}`*-*j5`2=W;If7Z8)($eF_yb>S+~p?FO*3vCNe< z|B40}==LLzmP_HMvbhlVyuJQc3Wj4`@ z`zpt9Qc2iR`HRUJ0Zm`-sS)Q0RUIS_9jj9VS~Pa{ zcJ>RjIQ7wi#RAzJ92D5={57o`OBAf;PN%h3oev;D0=Jl`{B+S|>Z_>bogmuf-!iG& z?INR zxi0&S#jf9M+f8d3ziAll1%87oL3ayPJjUL!3RD!I^f!DDwHE-`O`6@9Wp!FL{@vc$ z)ih>4(9ecy_%!f8fuO?>?F=K6X2)Cmo%a4z|G8<|tNC$R5i>2Th#5Hs%$j(8$0dlvO=FG zKB8rpuH2M`-sgmeM6s;(t%XIlpZX|`Zl+kef-ReS)Dy853w0g-wF^gHp{0{qU#53X zvTP?g+yAJYEO+GxPs{;UkV!?!lJe-irS@{Sqr}?=>5&{ z*-f=D^)u5OHwp)^86BKm_TF{R&vB%8a0hyNl$tZG!e`l5QR zRuP&H!a%6}Coot{>T~XpO3B{i6HhNtIZDO6+EUrCpISI@;(z~kfx>k#F9ouDOo5Bd+QhWeO(5E|cW8nCK z5rsyG|6&}c6D-9}f)J2T5>bMbZ(}1LFqAWZo-M#vIFi_|lF-_7+>~bzxoHY@78<88 zhZ@F}UQEj~Nk{7IIgibF0|!BFbS{<>;Ddfb4vTrZqMvkhm05^>PGF=$G0rz~S}CT` z{5y@#WpdJny$qh9slmU&fg`!=bAYA?S12}4uCGmbc(dG`Fr8W8+ +Architecture: all +Standards-Version: 3.7.3 +Build-Depends: debhelper (>= 5.0.0) +Build-Depends-Indep: perl (>= 5.6.0-16) +Files: + 68e3a2f2f989bff295ee63aed5a2a1e5 15089 libdevel-symdump-perl_2.08.orig.tar.gz + afb8ddd70e98051bc4564cd0ffe6f982 2970 libdevel-symdump-perl_2.08-1maemo1.diff.gz diff --git a/deb-src/libdevel-symdump-perl/libdevel-symdump-perl_2.08-1maemo1_i386.changes b/deb-src/libdevel-symdump-perl/libdevel-symdump-perl_2.08-1maemo1_i386.changes new file mode 100644 index 0000000..471a618 --- /dev/null +++ b/deb-src/libdevel-symdump-perl/libdevel-symdump-perl_2.08-1maemo1_i386.changes @@ -0,0 +1,20 @@ +Format: 1.7 +Date: Tue, 13 Apr 2010 22:52:07 +0100 +Source: libdevel-symdump-perl +Binary: libdevel-symdump-perl +Architecture: source all +Version: 2.08-1maemo1 +Distribution: fremantle +Urgency: low +Maintainer: Colin Watson +Changed-By: Nito Martinez +Description: + libdevel-symdump-perl - Perl module for inspecting perl's symbol table +Changes: + libdevel-symdump-perl (2.08-1maemo1) fremantle; urgency=low + . + * New Maemo packaging +Files: + 31432554f69f13ca4ac280632ed32d97 429 perl optional libdevel-symdump-perl_2.08-1maemo1.dsc + afb8ddd70e98051bc4564cd0ffe6f982 2970 perl optional libdevel-symdump-perl_2.08-1maemo1.diff.gz + fe732364d93e10a58dcc7b073342d828 16502 perl optional libdevel-symdump-perl_2.08-1maemo1_all.deb diff --git a/deb-src/libemail-date-format-perl/libemail-date-format-perl-1.002/debian/changelog b/deb-src/libemail-date-format-perl/libemail-date-format-perl-1.002/debian/changelog index 78cee78..ed5c13b 100644 --- a/deb-src/libemail-date-format-perl/libemail-date-format-perl-1.002/debian/changelog +++ b/deb-src/libemail-date-format-perl/libemail-date-format-perl-1.002/debian/changelog @@ -1,4 +1,11 @@ -libemail-date-format-perl (1.002-1) unstable; urgency=low +libemail-date-format-perl (1.002-1maemo1) fremantle; urgency=low + + * New Maemo packaging + + -- Nito Martinez Tue, 13 Apr 2010 22:52:07 +0100 + + +llibemail-date-format-perl (1.002-1) unstable; urgency=low * Initial Release. (Closes: #456252) diff --git a/deb-src/libemail-date-format-perl/libemail-date-format-perl-1.002/debian/control b/deb-src/libemail-date-format-perl/libemail-date-format-perl-1.002/debian/control index fd3d2d1..067e108 100644 --- a/deb-src/libemail-date-format-perl/libemail-date-format-perl-1.002/debian/control +++ b/deb-src/libemail-date-format-perl/libemail-date-format-perl-1.002/debian/control @@ -2,7 +2,7 @@ Source: libemail-date-format-perl Section: perl Priority: optional Build-Depends: debhelper (>= 5.0.0) -Build-Depends-Indep: perl (>= 5.8.8-12) +Build-Depends-Indep: perl (>= 5.8.3) Maintainer: Debian Perl Group Uploaders: Gunnar Wolf Standards-Version: 3.7.3 diff --git a/deb-src/libemail-date-format-perl/libemail-date-format-perl_1.002-1maemo1.diff.gz b/deb-src/libemail-date-format-perl/libemail-date-format-perl_1.002-1maemo1.diff.gz new file mode 100644 index 0000000000000000000000000000000000000000..e82398e605738987f8faf146fc5343b78285b788 GIT binary patch literal 2069 zcmV+w26yC|9Jg+3M)ic`+QYc}Hqdv1H=ju_e_-nk5`6%EMtm(kx5K%W($1vOS1@Lc1VR5*^HvOm$GZ_T!oc8JCR&uiDVH>#Y(0$Hzp4{ z9nF~v=YE)%RyvW;rt`?Fjy3cV{ua45a402Km^oq)I-rRNnTjM`oE)EzF6fQ=&s6to zgNM$CqdH5}3|rLecK5eSH5pZEK9NgT8NSV0tT-nvW3yn2zow-uC}dfqt+@43iD_XV zXNYA{2cAGt#7nzTWDzg3t69p)aFuF82FAz;o@<`O&Z%;Z%-oraDqWnVD4a_Xa+0w# zb$otF$2{YTB{VLki3sTwk24Jk)o5Fhfikdk{{SI<$Y@v=9{QbAkrlV3m)h`DZ#%OV zy9qbe%Ue^O)o6d`FrSZ89-nSC+Q<(*b`Oy~ zqg~5y`E~J!s~EOeL-LwObv>U!C){YXp-|b6o-C8wsmflJi<%l(U{iU+TmIU8yvv@Oam2{`T4b9R1#IefFFG2nG7wDjn2TvP<2oDX?5m31tD*>sc9JdMBs*3Cf{;mI!I) z{tA{G?aSOzse)7AhdshHKtA|Ud!Nes2ej+&`vAdvnerUNAXuA=KZV-6xPc{&59r-w zEADmbSUN@(*>&g15>$rXD!I@$EwvX9tu3%#$0RCQ&baRue}F)R0RjpIL6%_auFRYN zvob-o{$m>(snFrdh85PK5_t)rvvOt_Ni#>9pwr2_Bd_rzKE;?WLZ9&=|=m( zq{)@M5fKOVkQSDVDdjBFZbDb)EY$%ouu0ZtN!rK{E(*@F5ovARr)u0P9<$I$RgYU& z#vrhDw2rbH3AYlaX51Qak%5$#m^uKTUZ3Qkm(6%0XKVHEoziLt_gn`*X@Z*0hPRV4 zp30q;9n>k3kzhy{hzC&|BywSqK=cEh^97w*$@{tC9wEMSflQn+%$baTp*MEf|EEAA z5`T1Yhzmi%w`pgW2D!qF+38ZR7wq+d?mo4#>RL1K^La;Gm^Iq4=@TBFWWoqc+6hlM zvtzq?lt@g#fHr>I`>D6rYt;@vGva`&!Z|$Tp&N>{vmf++40>H8_a`{KZc!Bgs@ExK zsjyPaSLJ1R9q2*>pNj3dE=HgC^ zaB-uQEv*$?j0){Kj&n@o#hfdSscSEV2nvtlqP!Dt&}C-tJDA$#zy=UOMHykLLt%>Y zTYj+D@C|;OOJ!*I{_4|c^7g~U=wPQbaT1f}#&t7+7de4z@QF||gnrHKpW1TCOmjnV zk-33K3z4|gv1GxPmMPrHBrK!@!;s^!SU!|v#BvL6TB2$*;mM>`BW|-7)_0{ZCcV_#{IY;|-piyK;2e>kFfU{%7_M1JRelN6$g)p*;g0!65wkQ4ZY3&1&e{lduBVgh) zL|;7e?O^3nZ|k_%DFq+6`dG*vdp7vlRNhQ@tTL6Sk2;u63QH-{>WX>@G+2JAM61wd1IA;tV;cm!}5b z9{*tZ4Q#&?+A)YteWz zdUx`xE8L@!pl6v{dbWK6%PqeEO6;j zo1jXL-!glt(hoKx8ETr02E((_gZ;bvh^8a=vr;SB$fX@Uqkw^O6^q;4zBWEI&Zp(t z4*L3?#;((7PZzbY3&x2y+SQ9G%>(N&A#5THp>X=7PwRErSp5~N~&yy@0!idmvpvWL8_WRX@1)oA +Architecture: all +Standards-Version: 3.7.3 +Build-Depends: debhelper (>= 5.0.0) +Build-Depends-Indep: perl (>= 5.8.3) +Uploaders: Gunnar Wolf +Files: + 7ae25275da6ab272aa8b40141eac9f82 10150 libemail-date-format-perl_1.002.orig.tar.gz + bfe3f38772304b9ecfe1eda99863c292 2069 libemail-date-format-perl_1.002-1maemo1.diff.gz diff --git a/deb-src/libemail-date-format-perl/libemail-date-format-perl_1.002-1maemo1_i386.changes b/deb-src/libemail-date-format-perl/libemail-date-format-perl_1.002-1maemo1_i386.changes new file mode 100644 index 0000000..883a2ae --- /dev/null +++ b/deb-src/libemail-date-format-perl/libemail-date-format-perl_1.002-1maemo1_i386.changes @@ -0,0 +1,20 @@ +Format: 1.7 +Date: Tue, 13 Apr 2010 22:52:07 +0100 +Source: libemail-date-format-perl +Binary: libemail-date-format-perl +Architecture: source all +Version: 1.002-1maemo1 +Distribution: fremantle +Urgency: low +Maintainer: Debian Perl Group +Changed-By: Nito Martinez +Description: + libemail-date-format-perl - Module to generate RFC-2822-valid date strings +Changes: + libemail-date-format-perl (1.002-1maemo1) fremantle; urgency=low + . + * New Maemo packaging +Files: + ab815413eb9f364ac498abddbb168dc5 517 perl optional libemail-date-format-perl_1.002-1maemo1.dsc + bfe3f38772304b9ecfe1eda99863c292 2069 perl optional libemail-date-format-perl_1.002-1maemo1.diff.gz + 788a3522d011799e57e72e05661350f4 6360 perl optional libemail-date-format-perl_1.002-1maemo1_all.deb diff --git a/deb-src/libextutils-cbuilder-perl/libextutils-cbuilder-perl-0.23/debian/changelog b/deb-src/libextutils-cbuilder-perl/libextutils-cbuilder-perl-0.23/debian/changelog index 9f0bc21..8b46638 100644 --- a/deb-src/libextutils-cbuilder-perl/libextutils-cbuilder-perl-0.23/debian/changelog +++ b/deb-src/libextutils-cbuilder-perl/libextutils-cbuilder-perl-0.23/debian/changelog @@ -1,4 +1,11 @@ -libextutils-cbuilder-perl (0.23-1) unstable; urgency=low +libextutils-cbuilder-perl (0.23-1maemo1) fremantle; urgency=low + + * New Maemo packaging + + -- Nito Martinez Tue, 13 Apr 2010 22:52:08 +0100 + + +llibextutils-cbuilder-perl (0.23-1) unstable; urgency=low [ gregor herrmann ] * Take over for the Debian Perl Group with maintainer's permission diff --git a/deb-src/libextutils-cbuilder-perl/libextutils-cbuilder-perl-0.23/debian/control b/deb-src/libextutils-cbuilder-perl/libextutils-cbuilder-perl-0.23/debian/control index 400372c..233d9f2 100644 --- a/deb-src/libextutils-cbuilder-perl/libextutils-cbuilder-perl-0.23/debian/control +++ b/deb-src/libextutils-cbuilder-perl/libextutils-cbuilder-perl-0.23/debian/control @@ -1,7 +1,7 @@ Source: libextutils-cbuilder-perl Section: perl Priority: optional -Build-Depends: debhelper (>= 7), libmodule-build-perl, quilt (>= 0.40) +Build-Depends: debhelper7, libmodule-build-perl, quilt (>= 0.40) Build-Depends-Indep: perl (>= 5.8.0-7) Maintainer: Debian Perl Group Uploaders: Florian Ragwitz , Damyan Ivanov diff --git a/deb-src/libextutils-cbuilder-perl/libextutils-cbuilder-perl_0.23-1maemo1.diff.gz b/deb-src/libextutils-cbuilder-perl/libextutils-cbuilder-perl_0.23-1maemo1.diff.gz new file mode 100644 index 0000000000000000000000000000000000000000..c2ceeaf9d524732ef32714b1123b861360c9ee11 GIT binary patch literal 2449 zcmV;C32ycuiwFQ{>cmR|1D#p>QyV!F{yF|DdXrQgoINvs;6P?c0)Yg`g@om?TUVQ{ zlsqHbT4tms&WKfDM?S)EFfMf(y60=C^?mZ@TDLlVr}z^%qbD$!!hWfFCb)!mOiKm3jK;n0 zo<9M#AH4*Yrb3RultrPm1*_ob!&OutMdD~oC(=@$lH3cHmpp^Zu^6y2v#@L2L};st zJuXdUrjhyDN05n7zj!8nv+r?&b-3Wi>;mZ zR=Z8|m`ni<&h|gR`DHDK78aF^vvQD$Bzj$rqC;Vdj7`I_&9he`ebMW0?{phYiY|*V z6w#Y6_KIQ=9lZ9j2#cKJ)P%u3&&lzK za2;j*r!!DMbU$x}kI42&vuf>}3IC1#A0&X5BnJk7_Lq~eCd8M+DfQ9T-b;C7<) zb)&gK$+Zc)SLg5J%7~fvFGIlG=k?i6fLDN+#443Fnvc_Qkh5#7IP zMdh@A8IWoMITO<2pQjhQBKt_IvVdLh11E4VLkBLB#!C{ne|35M@f?!?fBu84_nXKv z!E)1r>q+%>uQtND`s3Mu&rgnyFa4H-8XmBbY(lr)?gjYKUlJ9l>ar zTS$Tf5n@p@JtZ&^%rOK*J7Jpt3{zD?f<|dh@z-KdS`NYznMKN>NepqH^};Y<+yf8U zm4oFvH-K(*E)mx7Z0HVlN~0q)Mt4zJ&Xo-6UD01hXYX6JM*oEC62@fB@;g~AuU*FzH(VQ`e55HqdzI*}gaI3w!A|W_IkQe?yx2PZPgzaD(*PYg+qT{d8NpU^$*3ZaC zn~GOhCX^j7)5}%icwM8;Z!@$CrJXaZ>-H9QH5+D&6y1VDmQQiT$qke02B|BTdrQ(T zEG9kEsQ<4XP%-pK@kaAl<-9;DkJqjpza}QQxIswhSWP%`Sj%@0mDPf( zutohWx)Kk@Jq$*^HmoR&B50W&vV_xR0fR(!O{1@z-^d@5^VGN=0gL@am8kWYVRJFy zoIH@1M8tTu#_;3=fetPWj1#P3Dm3 zbMX>=R`M2fdaz$;Y(YA0=yv0NH*W7h6Gv?lgK9pg=Oz|^W7*)V3jR)g*a*RbP|*ZH z_`~aci47YlgvYGsy~~@(c;k7$rm=y;b1@T%#C+qjQBlTfj}|R7a1nM^J5l>tl$%i- zJFVyLdba7+Sgu4dT^@NFL&a|}6dVz?;agikE9EWQ{23Nl%j@xtbv40${doun4j*ak zh0Kcx81Ame_mvXA=X(kYY+$zEDJ6dYoqB>=KUi}xpKj<em8D2HX8L>(XPuyL+Ly#_|AgpB>!L0?prdBjLc2pwy1pQaF zPW}YE*=Ix{l}_5NcGzMFJnWmX@sqAoW%AmP-)EfyYY4nk~`Z+xWLYq%b5gZO3aJ1qx!a(lv?BCg{XTC>MI%DZxG5v zp3aUlg)Qy0F88$|_g;>_@-Bz!%F1gPui(o297^QH7dmbuseMe+SHjs|bb;@?yyNE~ zqV21_<$TZioBhMnH=$3dn)2@Ng)qgGM9O;x?@CFxt{v!f;{HzD-A2mmdCI$&?>ajV z@ZHz(TqVZqGB5BM-08^3^j^3fc3}hk?W=~_tae=?j1G@KAACGL+rPw~v$pl&G{tb0 zXl@$=IwEtQL3=B1_v3yK&Fy}Vx&0q97dB?G?scE{d;QuJU#w;<=W{T*M%ZRN9XaUx zcNv5lLNP8BU>yai=>kd-pq~^Pp2sBz79u&z#S~ z@3njQg^MrB(65SeyAN%I=kpjb8~ChQw{Ka=lke_bmiI06FAFcR=C6VJ1BjRA{P7mqLO7~o)b_#{xeJ%lD{Jw8=Q zv4a9fAW*ljb1R*`zZ*9ji!)ER^sJgL2IwE`wVFvc?b6} zJq_qO7S|)FCWX6(HkyypF+AOKt4TAww`}}!b@Kl5^Tp-<>Dk*4n~O^lL?Yf*N?HAH PpnCFuHR5`l@fZLAH7~xl literal 0 HcmV?d00001 diff --git a/deb-src/libextutils-cbuilder-perl/libextutils-cbuilder-perl_0.23-1maemo1.dsc b/deb-src/libextutils-cbuilder-perl/libextutils-cbuilder-perl_0.23-1maemo1.dsc new file mode 100644 index 0000000..210b7d7 --- /dev/null +++ b/deb-src/libextutils-cbuilder-perl/libextutils-cbuilder-perl_0.23-1maemo1.dsc @@ -0,0 +1,13 @@ +Format: 1.0 +Source: libextutils-cbuilder-perl +Version: 0.23-1maemo1 +Binary: libextutils-cbuilder-perl +Maintainer: Debian Perl Group +Architecture: all +Standards-Version: 3.8.0 +Build-Depends: debhelper7, libmodule-build-perl, quilt (>= 0.40) +Build-Depends-Indep: perl (>= 5.8.0-7) +Uploaders: Florian Ragwitz , Damyan Ivanov +Files: + a955994a1395d517aa38643faff5f0a0 20844 libextutils-cbuilder-perl_0.23.orig.tar.gz + c10b82d0e5a004ea9ff0887fb2277e60 2449 libextutils-cbuilder-perl_0.23-1maemo1.diff.gz diff --git a/deb-src/libextutils-cbuilder-perl/libextutils-cbuilder-perl_0.23-1maemo1_i386.changes b/deb-src/libextutils-cbuilder-perl/libextutils-cbuilder-perl_0.23-1maemo1_i386.changes new file mode 100644 index 0000000..7820946 --- /dev/null +++ b/deb-src/libextutils-cbuilder-perl/libextutils-cbuilder-perl_0.23-1maemo1_i386.changes @@ -0,0 +1,20 @@ +Format: 1.7 +Date: Tue, 13 Apr 2010 22:52:08 +0100 +Source: libextutils-cbuilder-perl +Binary: libextutils-cbuilder-perl +Architecture: source all +Version: 0.23-1maemo1 +Distribution: fremantle +Urgency: low +Maintainer: Debian Perl Group +Changed-By: Nito Martinez +Description: + libextutils-cbuilder-perl - Compile and link C code for Perl modules +Changes: + libextutils-cbuilder-perl (0.23-1maemo1) fremantle; urgency=low + . + * New Maemo packaging +Files: + de49579f8fc8807bc880d69e7fe12e65 580 perl optional libextutils-cbuilder-perl_0.23-1maemo1.dsc + c10b82d0e5a004ea9ff0887fb2277e60 2449 perl optional libextutils-cbuilder-perl_0.23-1maemo1.diff.gz + 5e22480d776d4ace1ea2351509f20698 27458 perl optional libextutils-cbuilder-perl_0.23-1maemo1_all.deb diff --git a/deb-src/libextutils-parsexs-perl/libextutils-parsexs-perl-2.19/debian/changelog b/deb-src/libextutils-parsexs-perl/libextutils-parsexs-perl-2.19/debian/changelog index dcf9b43..0b57801 100644 --- a/deb-src/libextutils-parsexs-perl/libextutils-parsexs-perl-2.19/debian/changelog +++ b/deb-src/libextutils-parsexs-perl/libextutils-parsexs-perl-2.19/debian/changelog @@ -1,4 +1,11 @@ -libextutils-parsexs-perl (2.19-1) unstable; urgency=low +libextutils-parsexs-perl (2.19-1maemo1) fremantle; urgency=low + + * New Maemo packaging + + -- Nito Martinez Tue, 13 Apr 2010 22:52:08 +0100 + + +llibextutils-parsexs-perl (2.19-1) unstable; urgency=low [ gregor herrmann ] * Take over for the Debian Perl Group with maintainer's permission diff --git a/deb-src/libextutils-parsexs-perl/libextutils-parsexs-perl_2.19-1maemo1.diff.gz b/deb-src/libextutils-parsexs-perl/libextutils-parsexs-perl_2.19-1maemo1.diff.gz new file mode 100644 index 0000000000000000000000000000000000000000..81f468ca0aee7fbb4c9ce2fa091f46f06c78ede0 GIT binary patch literal 3305 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 +Architecture: all +Standards-Version: 3.8.0 +Build-Depends: debhelper (>= 5.0.0), libmodule-build-perl +Build-Depends-Indep: perl (>= 5.8.0-7), libextutils-cbuilder-perl +Uploaders: Florian Ragwitz , AGOSTINI Yves +Files: + f236a751551e5288b4061352e3424b7a 25214 libextutils-parsexs-perl_2.19.orig.tar.gz + aabf2ef40d722075772510628048b34c 3305 libextutils-parsexs-perl_2.19-1maemo1.diff.gz diff --git a/deb-src/libextutils-parsexs-perl/libextutils-parsexs-perl_2.19-1maemo1_i386.changes b/deb-src/libextutils-parsexs-perl/libextutils-parsexs-perl_2.19-1maemo1_i386.changes new file mode 100644 index 0000000..bbd6160 --- /dev/null +++ b/deb-src/libextutils-parsexs-perl/libextutils-parsexs-perl_2.19-1maemo1_i386.changes @@ -0,0 +1,20 @@ +Format: 1.7 +Date: Tue, 13 Apr 2010 22:52:08 +0100 +Source: libextutils-parsexs-perl +Binary: libextutils-parsexs-perl +Architecture: source all +Version: 2.19-1maemo1 +Distribution: fremantle +Urgency: low +Maintainer: Debian Perl Group +Changed-By: Nito Martinez +Description: + libextutils-parsexs-perl - convert Perl XS code into C code +Changes: + libextutils-parsexs-perl (2.19-1maemo1) fremantle; urgency=low + . + * New Maemo packaging +Files: + 4f9c2aa23b2fdff08b91930ee2d9425b 603 perl optional libextutils-parsexs-perl_2.19-1maemo1.dsc + aabf2ef40d722075772510628048b34c 3305 perl optional libextutils-parsexs-perl_2.19-1maemo1.diff.gz + ec3ef073f3dd5701dcc402862aebbcf8 29794 perl optional libextutils-parsexs-perl_2.19-1maemo1_all.deb diff --git a/deb-src/libfile-chdir-perl/libfile-chdir-perl-0.06/debian/changelog b/deb-src/libfile-chdir-perl/libfile-chdir-perl-0.06/debian/changelog index 33f0583..8346b18 100644 --- a/deb-src/libfile-chdir-perl/libfile-chdir-perl-0.06/debian/changelog +++ b/deb-src/libfile-chdir-perl/libfile-chdir-perl-0.06/debian/changelog @@ -1,4 +1,11 @@ -libfile-chdir-perl (0.06-2.1) unstable; urgency=low +libfile-chdir-perl (0.06-2.1maemo1) fremantle; urgency=low + + * New Maemo packaging + + -- Nito Martinez Tue, 13 Apr 2010 22:52:08 +0100 + + +llibfile-chdir-perl (0.06-2.1) unstable; urgency=low * Non-maintainer upload. * Empty dir is gone (closes: #467782) diff --git a/deb-src/libfile-chdir-perl/libfile-chdir-perl_0.06-2.1maemo1.dsc b/deb-src/libfile-chdir-perl/libfile-chdir-perl_0.06-2.1maemo1.dsc new file mode 100644 index 0000000..604abe1 --- /dev/null +++ b/deb-src/libfile-chdir-perl/libfile-chdir-perl_0.06-2.1maemo1.dsc @@ -0,0 +1,11 @@ +Format: 1.0 +Source: libfile-chdir-perl +Version: 0.06-2.1maemo1 +Binary: libfile-chdir-perl +Maintainer: James Bromberger +Architecture: all +Standards-Version: 3.7.2 +Build-Depends: debhelper (>= 4.0.2) +Build-Depends-Indep: perl (>= 5.8.0-7) +Files: + b9362d9cbf368c9af8dbf0a074e095e1 24289 libfile-chdir-perl_0.06-2.1maemo1.tar.gz diff --git a/deb-src/libfile-chdir-perl/libfile-chdir-perl_0.06-2.1maemo1.tar.gz b/deb-src/libfile-chdir-perl/libfile-chdir-perl_0.06-2.1maemo1.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..a3a00558a3ff10387163666e49fcde6d95384ca9 GIT binary patch literal 24289 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 +Changed-By: Nito Martinez +Description: + libfile-chdir-perl - A more sensible way to change directories +Changes: + libfile-chdir-perl (0.06-2.1maemo1) fremantle; urgency=low + . + * New Maemo packaging +Files: + 70e545fd87faad60ce0a455149b4e931 343 perl optional libfile-chdir-perl_0.06-2.1maemo1.dsc + b9362d9cbf368c9af8dbf0a074e095e1 24289 perl optional libfile-chdir-perl_0.06-2.1maemo1.tar.gz + 59ac6fc89e51e29c67f1c72d253f0042 9764 perl optional libfile-chdir-perl_0.06-2.1maemo1_all.deb diff --git a/deb-src/libfile-which-perl/libfile-which-perl-0.05/debian/changelog b/deb-src/libfile-which-perl/libfile-which-perl-0.05/debian/changelog index 0935fef..9c30f1f 100644 --- a/deb-src/libfile-which-perl/libfile-which-perl-0.05/debian/changelog +++ b/deb-src/libfile-which-perl/libfile-which-perl-0.05/debian/changelog @@ -1,4 +1,11 @@ -libfile-which-perl (0.05-7) unstable; urgency=low +libfile-which-perl (0.05-7maemo1) fremantle; urgency=low + + * New Maemo packaging + + -- Nito Martinez Tue, 13 Apr 2010 22:52:08 +0100 + + +llibfile-which-perl (0.05-7) unstable; urgency=low * Use $(CURDIR) [make] instead of $(PWD) [sh] to fix issues with sudo. diff --git a/deb-src/libfile-which-perl/libfile-which-perl_0.05-7maemo1.diff.gz b/deb-src/libfile-which-perl/libfile-which-perl_0.05-7maemo1.diff.gz new file mode 100644 index 0000000000000000000000000000000000000000..2252895d527f26b75272762232c3a8dc2716cb9d GIT binary patch literal 2212 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 +Architecture: all +Standards-Version: 3.7.2 +Build-Depends: debhelper (>= 5.0.0) +Build-Depends-Indep: perl +Uploaders: Daniel Ruoso , gregor herrmann , Carlo Segre +Files: + bd671a65f770fc0a124095e74c7c8013 7264 libfile-which-perl_0.05.orig.tar.gz + 09242723c37b4689b34d3400f345249e 2212 libfile-which-perl_0.05-7maemo1.diff.gz diff --git a/deb-src/libfile-which-perl/libfile-which-perl_0.05-7maemo1_i386.changes b/deb-src/libfile-which-perl/libfile-which-perl_0.05-7maemo1_i386.changes new file mode 100644 index 0000000..3e4f1bd --- /dev/null +++ b/deb-src/libfile-which-perl/libfile-which-perl_0.05-7maemo1_i386.changes @@ -0,0 +1,20 @@ +Format: 1.7 +Date: Tue, 13 Apr 2010 22:52:08 +0100 +Source: libfile-which-perl +Binary: libfile-which-perl +Architecture: source all +Version: 0.05-7maemo1 +Distribution: fremantle +Urgency: low +Maintainer: Debian Perl Group +Changed-By: Nito Martinez +Description: + libfile-which-perl - Perl module for searching paths for executable programs +Changes: + libfile-which-perl (0.05-7maemo1) fremantle; urgency=low + . + * New Maemo packaging +Files: + 3424445e2cf309dd07480ce4ecbd89bb 555 perl optional libfile-which-perl_0.05-7maemo1.dsc + 09242723c37b4689b34d3400f345249e 2212 perl optional libfile-which-perl_0.05-7maemo1.diff.gz + 9463deb8055c2cd5d576839a1c020ed5 12252 perl optional libfile-which-perl_0.05-7maemo1_all.deb diff --git a/deb-src/libhtml-parser-perl/libhtml-parser-perl-3.56/debian/changelog b/deb-src/libhtml-parser-perl/libhtml-parser-perl-3.56/debian/changelog index 19aaa14..8f75373 100644 --- a/deb-src/libhtml-parser-perl/libhtml-parser-perl-3.56/debian/changelog +++ b/deb-src/libhtml-parser-perl/libhtml-parser-perl-3.56/debian/changelog @@ -1,4 +1,11 @@ -libhtml-parser-perl (3.56-1+lenny1) stable-security; urgency=high +libhtml-parser-perl (3.56-11maemo1) fremantle; urgency=low + + * New Maemo packaging + + -- Nito Martinez Tue, 13 Apr 2010 22:52:08 +0100 + + +llibhtml-parser-perl (3.56-1+lenny1) stable-security; urgency=high * Fix decode_entities which can be confused by trailing incomplete entity and leading to potential DoS attacks - CVE-2009-3627 (Closes: #552531). diff --git a/deb-src/libhtml-parser-perl/libhtml-parser-perl_3.56-11maemo1.diff.gz b/deb-src/libhtml-parser-perl/libhtml-parser-perl_3.56-11maemo1.diff.gz new file mode 100644 index 0000000000000000000000000000000000000000..1ffc81ea5e49060057675c9f1986984444c77849 GIT binary patch literal 6204 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 +Architecture: any +Standards-Version: 3.7.2.1 +Build-Depends: debhelper (>= 5.0.0), perl (>= 5.8.1), libhtml-tagset-perl, libtest-pod-perl, liburi-perl +Uploaders: Krzysztof Krzyzaniak (eloy) , Kenneth J. Pronovici , Florian Ragwitz +Files: + bddc432e5ed9df4d4153a62234f04fc2 86040 libhtml-parser-perl_3.56.orig.tar.gz + e3635649d8ce5d83103e8181dbfae847 6204 libhtml-parser-perl_3.56-11maemo1.diff.gz diff --git a/deb-src/libhtml-parser-perl/libhtml-parser-perl_3.56-11maemo1_i386.changes b/deb-src/libhtml-parser-perl/libhtml-parser-perl_3.56-11maemo1_i386.changes new file mode 100644 index 0000000..7688845 --- /dev/null +++ b/deb-src/libhtml-parser-perl/libhtml-parser-perl_3.56-11maemo1_i386.changes @@ -0,0 +1,20 @@ +Format: 1.7 +Date: Tue, 13 Apr 2010 22:52:08 +0100 +Source: libhtml-parser-perl +Binary: libhtml-parser-perl +Architecture: source i386 +Version: 3.56-11maemo1 +Distribution: fremantle +Urgency: low +Maintainer: Debian Catalyst Maintainers +Changed-By: Nito Martinez +Description: + libhtml-parser-perl - A collection of modules that parse HTML text documents +Changes: + libhtml-parser-perl (3.56-11maemo1) fremantle; urgency=low + . + * New Maemo packaging +Files: + 8207b13d3e71505a8f8c480854e3a5a4 638 perl optional libhtml-parser-perl_3.56-11maemo1.dsc + e3635649d8ce5d83103e8181dbfae847 6204 perl optional libhtml-parser-perl_3.56-11maemo1.diff.gz + 9468faa722583d1f7f479fc781439cd1 106514 perl optional libhtml-parser-perl_3.56-11maemo1_i386.deb diff --git a/deb-src/libhtml-tagset-perl/libhtml-tagset-perl-3.20/debian/changelog b/deb-src/libhtml-tagset-perl/libhtml-tagset-perl-3.20/debian/changelog index 630c81d..4462682 100644 --- a/deb-src/libhtml-tagset-perl/libhtml-tagset-perl-3.20/debian/changelog +++ b/deb-src/libhtml-tagset-perl/libhtml-tagset-perl-3.20/debian/changelog @@ -1,4 +1,11 @@ -libhtml-tagset-perl (3.20-2) unstable; urgency=low +libhtml-tagset-perl (3.20-2maemo1) fremantle; urgency=low + + * New Maemo packaging + + -- Nito Martinez Tue, 13 Apr 2010 22:52:08 +0100 + + +llibhtml-tagset-perl (3.20-2) unstable; urgency=low * Add patch isbodyelement.patch: fixes documentation for isBodyElement() (closes: #402272); thanks to Jamey Sharp and Josh Triplett for the bug diff --git a/deb-src/libhtml-tagset-perl/libhtml-tagset-perl-3.20/debian/control b/deb-src/libhtml-tagset-perl/libhtml-tagset-perl-3.20/debian/control index 7c99282..60b8894 100644 --- a/deb-src/libhtml-tagset-perl/libhtml-tagset-perl-3.20/debian/control +++ b/deb-src/libhtml-tagset-perl/libhtml-tagset-perl-3.20/debian/control @@ -4,7 +4,7 @@ Uploaders: Krzysztof Krzyżaniak (eloy) , gregor herrmann Section: perl Priority: optional -Build-Depends: debhelper (>= 6), quilt (>= 0.40) +Build-Depends: debhelper7, quilt (>= 0.40) Build-Depends-Indep: perl, libtest-pod-perl Maintainer: Debian Perl Group Standards-Version: 3.7.3 diff --git a/deb-src/libhtml-tagset-perl/libhtml-tagset-perl_3.20-2maemo1.diff.gz b/deb-src/libhtml-tagset-perl/libhtml-tagset-perl_3.20-2maemo1.diff.gz new file mode 100644 index 0000000000000000000000000000000000000000..b26a6b31a6a4a8a069f90cc92ddf4fd60898a5e3 GIT binary patch literal 3097 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 n6(}*M63tm{t?r+_dVBiMO3gA +Architecture: all +Standards-Version: 3.7.3 +Build-Depends: debhelper7, quilt (>= 0.40) +Build-Depends-Indep: perl, libtest-pod-perl +Uploaders: Krzysztof Krzyżaniak (eloy) , Kenneth J. Pronovici , gregor herrmann +Files: + d2bfa18fe1904df7f683e96611e87437 8150 libhtml-tagset-perl_3.20.orig.tar.gz + 62648e0c5c0474aeea48ef4cf90150b2 3097 libhtml-tagset-perl_3.20-2maemo1.diff.gz diff --git a/deb-src/libhtml-tagset-perl/libhtml-tagset-perl_3.20-2maemo1_i386.changes b/deb-src/libhtml-tagset-perl/libhtml-tagset-perl_3.20-2maemo1_i386.changes new file mode 100644 index 0000000..4ca2e32 --- /dev/null +++ b/deb-src/libhtml-tagset-perl/libhtml-tagset-perl_3.20-2maemo1_i386.changes @@ -0,0 +1,20 @@ +Format: 1.7 +Date: Tue, 13 Apr 2010 22:52:08 +0100 +Source: libhtml-tagset-perl +Binary: libhtml-tagset-perl +Architecture: source all +Version: 3.20-2maemo1 +Distribution: fremantle +Urgency: low +Maintainer: Debian Perl Group +Changed-By: Nito Martinez +Description: + libhtml-tagset-perl - Data tables pertaining to HTML +Changes: + libhtml-tagset-perl (3.20-2maemo1) fremantle; urgency=low + . + * New Maemo packaging +Files: + 016bead347ee050b91426c8d130c53c1 611 perl optional libhtml-tagset-perl_3.20-2maemo1.dsc + 62648e0c5c0474aeea48ef4cf90150b2 3097 perl optional libhtml-tagset-perl_3.20-2maemo1.diff.gz + 21badba17bf10f6edbcc8b36dffc1669 13596 perl optional libhtml-tagset-perl_3.20-2maemo1_all.deb diff --git a/deb-src/libhtml-tree-perl/libhtml-tree-perl-3.23/debian/changelog b/deb-src/libhtml-tree-perl/libhtml-tree-perl-3.23/debian/changelog index 0bb4a81..a42ff5f 100644 --- a/deb-src/libhtml-tree-perl/libhtml-tree-perl-3.23/debian/changelog +++ b/deb-src/libhtml-tree-perl/libhtml-tree-perl-3.23/debian/changelog @@ -1,4 +1,11 @@ -libhtml-tree-perl (3.23-1) unstable; urgency=low +libhtml-tree-perl (3.23-1maemo1) fremantle; urgency=low + + * New Maemo packaging + + -- Nito Martinez Tue, 13 Apr 2010 22:52:08 +0100 + + +llibhtml-tree-perl (3.23-1) unstable; urgency=low * New upstream release * Package updated to Standards-Version 3.7.2.1 diff --git a/deb-src/libhtml-tree-perl/libhtml-tree-perl_3.23-1maemo1.diff.gz b/deb-src/libhtml-tree-perl/libhtml-tree-perl_3.23-1maemo1.diff.gz new file mode 100644 index 0000000000000000000000000000000000000000..829e66220097b801d27a6735163478a6d5fff0bf GIT binary patch literal 3706 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 YwFIj}LZ?y9lW9i(1-GU65`--P0Q#aF@c;k- literal 0 HcmV?d00001 diff --git a/deb-src/libhtml-tree-perl/libhtml-tree-perl_3.23-1maemo1.dsc b/deb-src/libhtml-tree-perl/libhtml-tree-perl_3.23-1maemo1.dsc new file mode 100644 index 0000000..18f780a --- /dev/null +++ b/deb-src/libhtml-tree-perl/libhtml-tree-perl_3.23-1maemo1.dsc @@ -0,0 +1,13 @@ +Format: 1.0 +Source: libhtml-tree-perl +Version: 3.23-1maemo1 +Binary: libhtml-tree-perl +Maintainer: Debian Catalyst Maintainers +Architecture: all +Standards-Version: 3.7.2.1 +Build-Depends: debhelper (>= 5) +Build-Depends-Indep: libhtml-parser-perl, libhtml-tagset-perl (>= 3.02), perl +Uploaders: Krzysztof Krzyzaniak (eloy) , Florian Ragwitz +Files: + 6352f50be402301f79b580dd235d7762 121438 libhtml-tree-perl_3.23.orig.tar.gz + d4dbe686f90124a3798b576f6512cbbe 3706 libhtml-tree-perl_3.23-1maemo1.diff.gz diff --git a/deb-src/libhtml-tree-perl/libhtml-tree-perl_3.23-1maemo1_i386.changes b/deb-src/libhtml-tree-perl/libhtml-tree-perl_3.23-1maemo1_i386.changes new file mode 100644 index 0000000..8bc7fa1 --- /dev/null +++ b/deb-src/libhtml-tree-perl/libhtml-tree-perl_3.23-1maemo1_i386.changes @@ -0,0 +1,20 @@ +Format: 1.7 +Date: Tue, 13 Apr 2010 22:52:08 +0100 +Source: libhtml-tree-perl +Binary: libhtml-tree-perl +Architecture: source all +Version: 3.23-1maemo1 +Distribution: fremantle +Urgency: low +Maintainer: Debian Catalyst Maintainers +Changed-By: Nito Martinez +Description: + libhtml-tree-perl - represent and create HTML syntax trees +Changes: + libhtml-tree-perl (3.23-1maemo1) fremantle; urgency=low + . + * New Maemo packaging +Files: + df6790dead218b21e443c027e6a438b3 590 perl optional libhtml-tree-perl_3.23-1maemo1.dsc + d4dbe686f90124a3798b576f6512cbbe 3706 perl optional libhtml-tree-perl_3.23-1maemo1.diff.gz + 1712449dbe3982068fcf8d97802376b1 208854 perl optional libhtml-tree-perl_3.23-1maemo1_all.deb diff --git a/deb-src/libio-compress-base-perl/libio-compress-base-perl-2.012/debian/changelog b/deb-src/libio-compress-base-perl/libio-compress-base-perl-2.012/debian/changelog index c908c3c..de7d3ef 100644 --- a/deb-src/libio-compress-base-perl/libio-compress-base-perl-2.012/debian/changelog +++ b/deb-src/libio-compress-base-perl/libio-compress-base-perl-2.012/debian/changelog @@ -1,4 +1,11 @@ -libio-compress-base-perl (2.012-1) unstable; urgency=low +libio-compress-base-perl (2.012-1maemo1) fremantle; urgency=low + + * New Maemo packaging + + -- Nito Martinez Tue, 13 Apr 2010 22:52:08 +0100 + + +llibio-compress-base-perl (2.012-1) unstable; urgency=low * New upstream release * trim debian/rules using debhelper 7 diff --git a/deb-src/libio-compress-base-perl/libio-compress-base-perl-2.012/debian/control b/deb-src/libio-compress-base-perl/libio-compress-base-perl-2.012/debian/control index 6b4e693..e9154d3 100644 --- a/deb-src/libio-compress-base-perl/libio-compress-base-perl-2.012/debian/control +++ b/deb-src/libio-compress-base-perl/libio-compress-base-perl-2.012/debian/control @@ -1,8 +1,8 @@ Source: libio-compress-base-perl Section: perl Priority: optional -Build-Depends: debhelper (>= 7) -Build-Depends-Indep: perl (>= 5.8.8-7), libtest-pod-perl +Build-Depends: debhelper7 +Build-Depends-Indep: perl (>= 5.8.3), libtest-pod-perl Maintainer: Debian Perl Group Uploaders: gregor herrmann , Damyan Ivanov diff --git a/deb-src/libio-compress-base-perl/libio-compress-base-perl_2.012-1maemo1.diff.gz b/deb-src/libio-compress-base-perl/libio-compress-base-perl_2.012-1maemo1.diff.gz new file mode 100644 index 0000000000000000000000000000000000000000..6f3272b2533b59720a4c64ac2818cc8416b67957 GIT binary patch literal 2701 zcmV;83Uc)yiwFRE>%>a}1I1ZwQ`<-q{v7{`-c724V=q)|qa9q0D$x8KtAdr%hMCbaVQM>fpP{aO0-Nb}VgkK@(0 zF4tV`zTSRj6gV3PDdAr>mSm?>A_kXYBx$I$89sRD?3O#c!VVNEKM$o#2N_L8N&_uL zCjCmSKckVBBP<(Bts@b~^xO{AtmqCjRlaf)9ZX!2y`Ve|;t}~{ClZ%da}u!+eJZs` z1aXF6=@aC#9(z{36Q1=(t2}WlwMwl}!dKHcRKmyfp;i&?o^+4BN^P8FiC3?uQs}|h z9V8+KngBCMv-)+r>MZUI8|6uw!KR2ro{eEmka~0?@{o>%{*+@nJx`)fX{QwT!YJ}! zw}hG2232Y`8k-J2wwIT>)D1&2(^A6LQct9B*PEkAv>It_jjuy3C8cVZO@)>}(M;tu zfc;vs_B!b2nWP|N!0J#Ezy`w^1|TVqeQD1w6_KP&>L?|EWS|SORE9&drF{l?bAdkD zwb)G4V61|HBsDam-W;FP8yQP2LORL&VKAUWypG`zN>^$;rK>YYx_aRfy^G6p!}|JR z5a*vMou!$K(sd)2oi~&jYxy}V_Nvsru^D5~XYb6}Q)2pOJx_H#9Rnl|vPi{FXs4$2 zHz$XWD>Zhho9e-`J64zT9~-d#^LPA|E;dwQsHW`v!yuH1A!VE$CovpKE#r*lK})fM z4l?z4ZB{>%aNQ%NrJF=1Sc;)uz&K*iv(EVL`s@N0_V5Szq5q4U78btBgAfbuHgUnY!5GOv@R>iKf9*_1 zUrgAtPFQN@==Q&~sxSY{@cm1WR97#Dai&$cQZckE7R_!LyL-ra z1L@r=2Q%a#12P`j#}geumu%*dN_bpg%s8pDCleX_C>z*xEJIA+y7tOBfCD5}60N=1 zp-p$&ZCBTM_YB_dB+4&#Jt`}q_HNcdl%mU#HFI7ub=nDWLa8glKxJdsT5epvQaevf znbc73>&04h7Ur*4YP2V!8TLGwh*(YNxgW)yC5gQZ{w*|YdT%|)qc)6bRBCTkBoj~x zk5;V1?+2;Vn?O*C4=kI+3r5sSi|d)r`EP$g-!9if<&CUrAOcL zlP-)5GB``FF;9dTntQ~ffAJizc>eb~2BIJx%m;XCI?zF4JZSH59{Dbitx0!~S;6O~$Z6c_9??>j~x%jmvl$;ufIi8~(2P>ohe0P{5q zDPViUq=4Hb(3%n9G$SD+)vR*jN62I$l76m7AQQ74)N^(Zq9=4LryzWoS#W98dGiX! z9S1-IWH3XVexc|5*!d*@z@fX}dqH%T%XMnDshemNv1Wr>EpM~sfkxKw)L=1C^G-dh z;Bjdt`rlA+&T_R3B?QxsrIG zaNx8NM;J1x(gq8IjDHo$ZfV**k}lDaiecX~ILfTBuj#d(daV}hYu(4b#$U0o>mxNB z_s%X34_@s&2KnxDMtsb19K;hyQ?yiL^jXB@m7;8QmNGlilr9BHg6pYmg#(hIu@&#G?$PTRgN-A(|1= zR)8kk_ZgG#aLQJ*NKMu$n;Twh^S+R8JFPn)U$oG(@HiMW{h?{p*cVygCaE|Cl^(Jq z$I4H3XH=b@i+uW$m1*rHj7cy*&7!_fpQY?y+Y(}U1-MyoI6vG*6kd{kY z7<%lPV#hqiSmX2g6(ILyb~Cy0F}B?;x4oF&stYTw5~;lr0%9RJB!zN<9t5kO-f=3o zUZzkl#{o53Twd$}H5%R~&gj`y?YQfJz8w=EZm9If%E=PRMfx5U3=g?ehCZzo!GWFQ zFQWPrEf6<*inq)w8RpmDy9gZ)H0<|V&#{7*Hog`w*6)ayAh#WLf8MVWlX1gf410&* zC?Pa3NMdCe12OoBU!=Y9#S`>^VORtgFk3EW1!5l-xBSDdts%r9ZgD5yutGisd#zPE zu}Q_|tDRU1*ah@4*|qj&p)Wz)tOpPHWjS+Cs|1?c!pmxN!cg%6(`_WAjc_4&opSknc||Ad5+_y|LZiu6}p+ zc&!7Z_pOpsZJCO?={2{DBVCc2YulRKo0i-83zU4rQu2pCn8e=?;yPavlQYDaZFrVw zDtkNG+nGtgE-ldGAbO)D|V?B#Zg#)ikXY-DcTY-t5KeRYZD5k(jX*G)SC8%#9NKbBbd_LC{>@ z0_Nayn1|+QACl?VBEBQc#0Hu8g!qIhv7u`Gs~;OMQ6}d+gQh`fpcCO#%=rG=>}>zF)mA zeX~zHNX;oqXvj&6?>WkIM7=*dI^m!;b9T>9_YO|0rGJ5|S^=iXFgey+OtrPbve6{?7toVi7 zc!=fScKsG9E_S+Z(E^ZH1}(w}cM=+fLW9|{BmXLCEKqY}#3s8dBEnakGi}CzWn$qj z$KgiZ7UZl<9}7|gd!=`^v%kD84r5^=E$C9IxhHSm9sgb&7n#$(b$0Q6zR`aHm8_D# HyBq)jjpI1| literal 0 HcmV?d00001 diff --git a/deb-src/libio-compress-base-perl/libio-compress-base-perl_2.012-1maemo1.dsc b/deb-src/libio-compress-base-perl/libio-compress-base-perl_2.012-1maemo1.dsc new file mode 100644 index 0000000..cc2193a --- /dev/null +++ b/deb-src/libio-compress-base-perl/libio-compress-base-perl_2.012-1maemo1.dsc @@ -0,0 +1,13 @@ +Format: 1.0 +Source: libio-compress-base-perl +Version: 2.012-1maemo1 +Binary: libio-compress-base-perl +Maintainer: Debian Perl Group +Architecture: all +Standards-Version: 3.8.0 +Build-Depends: debhelper7 +Build-Depends-Indep: perl (>= 5.8.3), libtest-pod-perl +Uploaders: gregor herrmann , Damyan Ivanov +Files: + 7bfb434447df841a7d733b131f7219d5 95022 libio-compress-base-perl_2.012.orig.tar.gz + 0787151de3b7b9925f02d25ec39248fd 2701 libio-compress-base-perl_2.012-1maemo1.diff.gz diff --git a/deb-src/libio-compress-base-perl/libio-compress-base-perl_2.012-1maemo1_i386.changes b/deb-src/libio-compress-base-perl/libio-compress-base-perl_2.012-1maemo1_i386.changes new file mode 100644 index 0000000..c3413e4 --- /dev/null +++ b/deb-src/libio-compress-base-perl/libio-compress-base-perl_2.012-1maemo1_i386.changes @@ -0,0 +1,20 @@ +Format: 1.7 +Date: Tue, 13 Apr 2010 22:52:08 +0100 +Source: libio-compress-base-perl +Binary: libio-compress-base-perl +Architecture: source all +Version: 2.012-1maemo1 +Distribution: fremantle +Urgency: low +Maintainer: Debian Perl Group +Changed-By: Nito Martinez +Description: + libio-compress-base-perl - Base Class for IO::Compress modules +Changes: + libio-compress-base-perl (2.012-1maemo1) fremantle; urgency=low + . + * New Maemo packaging +Files: + 43ba9ad813cd56d25291d69c4f34c481 558 perl optional libio-compress-base-perl_2.012-1maemo1.dsc + 0787151de3b7b9925f02d25ec39248fd 2701 perl optional libio-compress-base-perl_2.012-1maemo1.diff.gz + f92669478ad0cb345e545de26be93dd1 59498 perl optional libio-compress-base-perl_2.012-1maemo1_all.deb diff --git a/deb-src/libio-compress-zlib-perl/libio-compress-zlib-perl-2.012/debian/changelog b/deb-src/libio-compress-zlib-perl/libio-compress-zlib-perl-2.012/debian/changelog index c4a6c87..94b17cd 100644 --- a/deb-src/libio-compress-zlib-perl/libio-compress-zlib-perl-2.012/debian/changelog +++ b/deb-src/libio-compress-zlib-perl/libio-compress-zlib-perl-2.012/debian/changelog @@ -1,4 +1,11 @@ -libio-compress-zlib-perl (2.012-1) unstable; urgency=low +libio-compress-zlib-perl (2.012-1maemo1) fremantle; urgency=low + + * New Maemo packaging + + -- Nito Martinez Tue, 13 Apr 2010 22:52:08 +0100 + + +llibio-compress-zlib-perl (2.012-1) unstable; urgency=low * New upstream release * adjust build-dependencies to match diff --git a/deb-src/libio-compress-zlib-perl/libio-compress-zlib-perl-2.012/debian/control b/deb-src/libio-compress-zlib-perl/libio-compress-zlib-perl-2.012/debian/control index 14973b9..c299661 100644 --- a/deb-src/libio-compress-zlib-perl/libio-compress-zlib-perl-2.012/debian/control +++ b/deb-src/libio-compress-zlib-perl/libio-compress-zlib-perl-2.012/debian/control @@ -2,7 +2,7 @@ Source: libio-compress-zlib-perl Section: perl Priority: optional Build-Depends: debhelper (>= 5.0.0) -Build-Depends-Indep: perl (>= 5.8.8-7), +Build-Depends-Indep: perl (>= 5.8.3), libcompress-raw-zlib-perl (>= 2.012), libcompress-raw-zlib-perl (<< 2.013), libio-compress-base-perl (>= 2.012), diff --git a/deb-src/libio-compress-zlib-perl/libio-compress-zlib-perl_2.012-1maemo1.diff.gz b/deb-src/libio-compress-zlib-perl/libio-compress-zlib-perl_2.012-1maemo1.diff.gz new file mode 100644 index 0000000000000000000000000000000000000000..b0598807f16a564f423f246fcd56e64da529fe4c GIT binary patch literal 3128 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 +Architecture: all +Standards-Version: 3.8.0 +Build-Depends: debhelper (>= 5.0.0) +Build-Depends-Indep: perl (>= 5.8.3), libcompress-raw-zlib-perl (>= 2.012), libcompress-raw-zlib-perl (<< 2.013), libio-compress-base-perl (>= 2.012), libio-compress-base-perl (<< 2.013), libtest-pod-perl +Uploaders: gregor herrmann , Damyan Ivanov +Files: + 05f847de950b5767cac6e38f0e41e11c 141182 libio-compress-zlib-perl_2.012.orig.tar.gz + 7d5a14934cbe1fdbd86656e9851e097a 3128 libio-compress-zlib-perl_2.012-1maemo1.diff.gz diff --git a/deb-src/libio-compress-zlib-perl/libio-compress-zlib-perl_2.012-1maemo1_i386.changes b/deb-src/libio-compress-zlib-perl/libio-compress-zlib-perl_2.012-1maemo1_i386.changes new file mode 100644 index 0000000..d350a14 --- /dev/null +++ b/deb-src/libio-compress-zlib-perl/libio-compress-zlib-perl_2.012-1maemo1_i386.changes @@ -0,0 +1,20 @@ +Format: 1.7 +Date: Tue, 13 Apr 2010 22:52:08 +0100 +Source: libio-compress-zlib-perl +Binary: libio-compress-zlib-perl +Architecture: source all +Version: 2.012-1maemo1 +Distribution: fremantle +Urgency: low +Maintainer: Debian Perl Group +Changed-By: Nito Martinez +Description: + libio-compress-zlib-perl - Perl interface to zlib +Changes: + libio-compress-zlib-perl (2.012-1maemo1) fremantle; urgency=low + . + * New Maemo packaging +Files: + abaec1c725f99fcbe2d25ac3c2a010fd 719 perl optional libio-compress-zlib-perl_2.012-1maemo1.dsc + 7d5a14934cbe1fdbd86656e9851e097a 3128 perl optional libio-compress-zlib-perl_2.012-1maemo1.diff.gz + 180c37694e8a5bdc46bd87a56592087b 151274 perl optional libio-compress-zlib-perl_2.012-1maemo1_all.deb diff --git a/deb-src/libio-socket-ssl-perl/libio-socket-ssl-perl-1.16/debian/changelog b/deb-src/libio-socket-ssl-perl/libio-socket-ssl-perl-1.16/debian/changelog index 818709d..c5f2f7e 100644 --- a/deb-src/libio-socket-ssl-perl/libio-socket-ssl-perl-1.16/debian/changelog +++ b/deb-src/libio-socket-ssl-perl/libio-socket-ssl-perl-1.16/debian/changelog @@ -1,4 +1,11 @@ -libio-socket-ssl-perl (1.16-1+lenny1) stable; urgency=low +libio-socket-ssl-perl (1.16-11maemo1) fremantle; urgency=low + + * New Maemo packaging + + -- Nito Martinez Tue, 13 Apr 2010 22:52:08 +0100 + + +llibio-socket-ssl-perl (1.16-1+lenny1) stable; urgency=low * Fix partial hostname matching security vulnerability (closes: #535946) * Add myself to Uploaders diff --git a/deb-src/libio-socket-ssl-perl/libio-socket-ssl-perl-1.16/debian/control b/deb-src/libio-socket-ssl-perl/libio-socket-ssl-perl-1.16/debian/control index 31e0f8f..e8c3557 100644 --- a/deb-src/libio-socket-ssl-perl/libio-socket-ssl-perl-1.16/debian/control +++ b/deb-src/libio-socket-ssl-perl/libio-socket-ssl-perl-1.16/debian/control @@ -6,7 +6,7 @@ Uploaders: Florian Ragwitz , gregor herrmann , Ansgar Burchardt , Dominic Hargreaves -Build-Depends: debhelper (>= 7), quilt +Build-Depends: debhelper7, quilt Build-Depends-Indep: perl (>= 5.8.0-7), libnet-ssleay-perl (>= 1.35), netbase, libnet-libidn-perl Standards-Version: 3.8.0 diff --git a/deb-src/libio-socket-ssl-perl/libio-socket-ssl-perl_1.16-11maemo1.dsc b/deb-src/libio-socket-ssl-perl/libio-socket-ssl-perl_1.16-11maemo1.dsc new file mode 100644 index 0000000..b32b1e0 --- /dev/null +++ b/deb-src/libio-socket-ssl-perl/libio-socket-ssl-perl_1.16-11maemo1.dsc @@ -0,0 +1,12 @@ +Format: 1.0 +Source: libio-socket-ssl-perl +Version: 1.16-11maemo1 +Binary: libio-socket-ssl-perl +Maintainer: Debian Perl Group +Architecture: all +Standards-Version: 3.8.0 +Build-Depends: debhelper7, quilt +Build-Depends-Indep: perl (>= 5.8.0-7), libnet-ssleay-perl (>= 1.35), netbase, libnet-libidn-perl +Uploaders: Florian Ragwitz , gregor herrmann , Ansgar Burchardt , Dominic Hargreaves +Files: + 78154460676144b6e43bcba86d129b7d 66232 libio-socket-ssl-perl_1.16-11maemo1.tar.gz diff --git a/deb-src/libio-socket-ssl-perl/libio-socket-ssl-perl_1.16-11maemo1.tar.gz b/deb-src/libio-socket-ssl-perl/libio-socket-ssl-perl_1.16-11maemo1.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..026713310f1238b5e1080d19012f2729a70ce01a GIT binary patch literal 66232 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 +Changed-By: Nito Martinez +Description: + libio-socket-ssl-perl - Perl module implementing object oriented interface to SSL sockets +Changes: + libio-socket-ssl-perl (1.16-11maemo1) fremantle; urgency=low + . + * New Maemo packaging +Files: + 840778fe95bc73d802ae1ffed4185bb3 590 perl optional libio-socket-ssl-perl_1.16-11maemo1.dsc + 78154460676144b6e43bcba86d129b7d 66232 perl optional libio-socket-ssl-perl_1.16-11maemo1.tar.gz + 5c87ed8a0664b4ecdec31680328fd69f 55164 perl optional libio-socket-ssl-perl_1.16-11maemo1_all.deb diff --git a/deb-src/libio-stringy-perl/io-stringy-2.110/debian/changelog b/deb-src/libio-stringy-perl/io-stringy-2.110/debian/changelog index 7e01181..15935ee 100644 --- a/deb-src/libio-stringy-perl/io-stringy-2.110/debian/changelog +++ b/deb-src/libio-stringy-perl/io-stringy-2.110/debian/changelog @@ -1,4 +1,11 @@ -io-stringy (2.110-4) unstable; urgency=low +io-stringy (2.110-4maemo1) fremantle; urgency=low + + * New Maemo packaging + + -- Nito Martinez Tue, 13 Apr 2010 22:52:08 +0100 + + +lio-stringy (2.110-4) unstable; urgency=low * debian/control: Edited short description. Closes: #454767. * debian/control: Standards-Version, Homepage. diff --git a/deb-src/libio-stringy-perl/io-stringy_2.110-4maemo1.diff.gz b/deb-src/libio-stringy-perl/io-stringy_2.110-4maemo1.diff.gz new file mode 100644 index 0000000000000000000000000000000000000000..6297d11ecc2d95f65932b1379b017cab82859678 GIT binary patch literal 3709 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 b(`Y})A~LcG@hf>WvW@=-h(U!X-zfk9cI9L@ literal 0 HcmV?d00001 diff --git a/deb-src/libio-stringy-perl/io-stringy_2.110-4maemo1.dsc b/deb-src/libio-stringy-perl/io-stringy_2.110-4maemo1.dsc new file mode 100644 index 0000000..4c7ea99 --- /dev/null +++ b/deb-src/libio-stringy-perl/io-stringy_2.110-4maemo1.dsc @@ -0,0 +1,12 @@ +Format: 1.0 +Source: io-stringy +Version: 2.110-4maemo1 +Binary: libio-stringy-perl +Maintainer: Bart Martens +Architecture: all +Standards-Version: 3.8.0 +Build-Depends: cdbs, debhelper (>= 5) +Build-Depends-Indep: perl (>> 5.8.1) +Files: + 1f529caaab46747d91e9f043faac8f6f 66217 io-stringy_2.110.orig.tar.gz + 9fadba2fe3c5ccff8d62204fade44406 3709 io-stringy_2.110-4maemo1.diff.gz diff --git a/deb-src/libio-stringy-perl/io-stringy_2.110-4maemo1_i386.changes b/deb-src/libio-stringy-perl/io-stringy_2.110-4maemo1_i386.changes new file mode 100644 index 0000000..255ec0b --- /dev/null +++ b/deb-src/libio-stringy-perl/io-stringy_2.110-4maemo1_i386.changes @@ -0,0 +1,20 @@ +Format: 1.7 +Date: Tue, 13 Apr 2010 22:52:08 +0100 +Source: io-stringy +Binary: libio-stringy-perl +Architecture: source all +Version: 2.110-4maemo1 +Distribution: fremantle +Urgency: low +Maintainer: Bart Martens +Changed-By: Nito Martinez +Description: + libio-stringy-perl - Perl modules for IO from scalars and arrays +Changes: + io-stringy (2.110-4maemo1) fremantle; urgency=low + . + * New Maemo packaging +Files: + e6d8a806152390294eb50385e0ff16ff 392 perl optional io-stringy_2.110-4maemo1.dsc + 9fadba2fe3c5ccff8d62204fade44406 3709 perl optional io-stringy_2.110-4maemo1.diff.gz + cbc87e088960dfd22853729a339614ce 99462 perl optional libio-stringy-perl_2.110-4maemo1_all.deb diff --git a/deb-src/libmodule-depends-perl/libmodule-depends-perl-0.14/debian/changelog b/deb-src/libmodule-depends-perl/libmodule-depends-perl-0.14/debian/changelog index 8ae9e6c..ca95056 100644 --- a/deb-src/libmodule-depends-perl/libmodule-depends-perl-0.14/debian/changelog +++ b/deb-src/libmodule-depends-perl/libmodule-depends-perl-0.14/debian/changelog @@ -1,4 +1,11 @@ -libmodule-depends-perl (0.14-1) unstable; urgency=low +libmodule-depends-perl (0.14-1maemo1) fremantle; urgency=low + + * New Maemo packaging + + -- Nito Martinez Tue, 13 Apr 2010 22:52:08 +0100 + + +llibmodule-depends-perl (0.14-1) unstable; urgency=low * New upstream release * Correct watch file to not get the wrong module (was matching diff --git a/deb-src/libmodule-depends-perl/libmodule-depends-perl_0.14-1maemo1.diff.gz b/deb-src/libmodule-depends-perl/libmodule-depends-perl_0.14-1maemo1.diff.gz new file mode 100644 index 0000000000000000000000000000000000000000..93891b3c6bdd867aa38d65d6a3cd0c016fb9e03e GIT binary patch literal 2429 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 literal 0 HcmV?d00001 diff --git a/deb-src/libmodule-depends-perl/libmodule-depends-perl_0.14-1maemo1.dsc b/deb-src/libmodule-depends-perl/libmodule-depends-perl_0.14-1maemo1.dsc new file mode 100644 index 0000000..c937795 --- /dev/null +++ b/deb-src/libmodule-depends-perl/libmodule-depends-perl_0.14-1maemo1.dsc @@ -0,0 +1,12 @@ +Format: 1.0 +Source: libmodule-depends-perl +Version: 0.14-1maemo1 +Binary: libmodule-depends-perl +Maintainer: James Bromberger +Architecture: all +Standards-Version: 3.8.0 +Build-Depends: debhelper (>= 4.0.2) +Build-Depends-Indep: perl (>= 5.8.0-7) +Files: + 4aa5efab8d177626bb7d66af2c56cd74 6702 libmodule-depends-perl_0.14.orig.tar.gz + 4dc3661f1301f5e7a867dd3802920947 2429 libmodule-depends-perl_0.14-1maemo1.diff.gz diff --git a/deb-src/libmodule-depends-perl/libmodule-depends-perl_0.14-1maemo1_i386.changes b/deb-src/libmodule-depends-perl/libmodule-depends-perl_0.14-1maemo1_i386.changes new file mode 100644 index 0000000..19b14bc --- /dev/null +++ b/deb-src/libmodule-depends-perl/libmodule-depends-perl_0.14-1maemo1_i386.changes @@ -0,0 +1,20 @@ +Format: 1.7 +Date: Tue, 13 Apr 2010 22:52:08 +0100 +Source: libmodule-depends-perl +Binary: libmodule-depends-perl +Architecture: source all +Version: 0.14-1maemo1 +Distribution: fremantle +Urgency: low +Maintainer: James Bromberger +Changed-By: Nito Martinez +Description: + libmodule-depends-perl - identify the dependencies of a distribution +Changes: + libmodule-depends-perl (0.14-1maemo1) fremantle; urgency=low + . + * New Maemo packaging +Files: + 0c21e3b1dfbda50d0474da51d5c0315e 430 perl optional libmodule-depends-perl_0.14-1maemo1.dsc + 4dc3661f1301f5e7a867dd3802920947 2429 perl optional libmodule-depends-perl_0.14-1maemo1.diff.gz + a00dffdc202182ea9b53d6662cc23e71 11290 perl optional libmodule-depends-perl_0.14-1maemo1_all.deb diff --git a/deb-src/libnet-libidn-perl/libnet-libidn-perl-0.07/Artistic b/deb-src/libnet-libidn-perl/libnet-libidn-perl-0.07/Artistic new file mode 100644 index 0000000..5f22124 --- /dev/null +++ b/deb-src/libnet-libidn-perl/libnet-libidn-perl-0.07/Artistic @@ -0,0 +1,131 @@ + + + + + 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 MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. + + The End diff --git a/deb-src/libnet-libidn-perl/libnet-libidn-perl-0.07/Changes b/deb-src/libnet-libidn-perl/libnet-libidn-perl-0.07/Changes new file mode 100644 index 0000000..f10da4c --- /dev/null +++ b/deb-src/libnet-libidn-perl/libnet-libidn-perl-0.07/Changes @@ -0,0 +1,42 @@ +Revision history for Perl extension Net::LibIDN. + +0.07 + - More debianization fixes from Matthias Urlichs + - Makefile.PL remembers calling options in generated Makefile + - Rewrote tests to not depend on "de"-Tables + +0.06 Mon Mar 29 19:31:06 CEST 2004 + - Added Cygwin compile infos (Thanks to Sergei Kolodka) + - Fixed builddeps, dependency bug in Makefile.PL (Thanks to Matthias Urlichs) + - A number of cosmetic changes + +0.05 Thu Mar 18 16:15:33 CET 2004 + - Test code now uses \xHH literals instead of direct non-ASCII + character input, to be more portable, thanks to Sergei Kolodka + for pointing out the problem + - Added Perl prototypes + - Using xs default parameters instead of C ellipsis in most functions + - Remove typemap, we don't use types that require it + - Tweak META.yml a little + +0.04 Sun Feb 29 16:34:44 CET 2004 + - Adapting to Dataformat changes in actual Libidn 0.4.0 release + +0.03 Mon Feb 16 21:25:21 CET 2004 + - Changed name to Net::LibIDN + - Added support for TLD checking stuff in LibIDN >= 0.4.0 + - Generally cleaned up the code + - Wrote some meaningful docs + - Makefile.PL checks if it can find Libidn with or without TLD checking + - Added debian control files, thanks to dh-make-perl + +0.02 Tue Jan 29 17:21:50 2004 + - Minor Doc changes + +0.01 Tue Dec 2 11:04:50 2003 + - original version; created by h2xs 1.21 with options + -xan NET::LibIDN idna.h + - worked on it till it resembled the interface of php-idn + of Turbo Fredriksson's php-idn bindings + (http://php-idn.bayour.com/) + diff --git a/deb-src/libnet-libidn-perl/libnet-libidn-perl-0.07/LibIDN.xs b/deb-src/libnet-libidn-perl/libnet-libidn-perl-0.07/LibIDN.xs new file mode 100644 index 0000000..36d9eb3 --- /dev/null +++ b/deb-src/libnet-libidn-perl/libnet-libidn-perl-0.07/LibIDN.xs @@ -0,0 +1,549 @@ +#include "EXTERN.h" +#include "perl.h" +#include "XSUB.h" + +#include +#include +#include + +#ifdef HAVE_TLD +#include +#endif + +#define MAX_DNSLEN 4096 + +static char * default_charset= "ISO-8859-1"; + +char * +idn_prep(char * string, char * charset, char * profile) +{ + char * output = NULL; + char * res_str = NULL; + char * utf8 = NULL; + int res; + + utf8 = stringprep_convert(string, "UTF-8", charset); + if (!utf8) + return NULL; + + res = stringprep_profile(utf8, &output, profile, 0); + free(utf8); + + if( (res != STRINGPREP_OK) || !output) + return NULL; + + res_str = stringprep_convert(output, charset, "UTF-8"); + free(output); + + return res_str; +} + +static double +constant(char *name, int len, int arg) +{ + errno = 0; + if (0 + 5 >= len ) + { + errno = EINVAL; + return 0; + } + switch (name[0 + 5]) + { + case 'A': + if (strEQ(name + 0, "IDNA_ALLOW_UNASSIGNED")) + { + return IDNA_ALLOW_UNASSIGNED; + } + case 'U': + if (strEQ(name + 0, "IDNA_USE_STD3_ASCII_RULES")) + { + return IDNA_USE_STD3_ASCII_RULES; + } + } + errno = EINVAL; + return 0; +} + +MODULE = Net::LibIDN PACKAGE = Net::LibIDN + + +double +constant(sv,arg) + PREINIT: + STRLEN len; + INPUT: + SV * sv + char * s = SvPV(sv, len); + int arg + CODE: + RETVAL = constant(s,len,arg); + OUTPUT: + RETVAL + + +char * +idn_to_ascii(string, charset=default_charset, flags=0) + char * string + char * charset + int flags + PROTOTYPE: $;$$ + PREINIT: + char * utf8_str = NULL; + char * tmp_str = NULL; + int res; + CODE: + utf8_str = stringprep_convert(string, "UTF-8", charset); + if (utf8_str) + { + res = idna_to_ascii_8z(utf8_str, &tmp_str, flags); + free(utf8_str); + } + else + { + XSRETURN_UNDEF; + } + if (res!=IDNA_SUCCESS) + { + XSRETURN_UNDEF; + } + RETVAL = tmp_str; + OUTPUT: + RETVAL + CLEANUP: + if (tmp_str) + free(tmp_str); + + +char * +idn_to_unicode(string, charset=default_charset, flags=0) + char * string + char * charset + int flags; + PROTOTYPE: $;$$ + PREINIT: + char * tmp_str = NULL; + char * res_str = NULL; + int res; + CODE: + res = idna_to_unicode_8z8z(string, &tmp_str, flags); + if(res != IDNA_SUCCESS) + { + XSRETURN_UNDEF; + } + if (tmp_str) + { + res_str = stringprep_convert(tmp_str, charset, "UTF-8"); + free(tmp_str); + } + else + { + XSRETURN_UNDEF; + } + if (!res_str) + { + XSRETURN_UNDEF; + } + RETVAL = res_str; + OUTPUT: + RETVAL + CLEANUP: + free(res_str); + + +char * +idn_punycode_encode(string, charset=default_charset) + char * string + char * charset + PROTOTYPE: $;$ + PREINIT: + char * utf8_str = NULL; + uint32_t * q = NULL; + size_t len,len2; + char * tmp_str = NULL; + char * res_str = NULL; + int res; + CODE: + utf8_str = stringprep_convert(string, "UTF-8", charset); + if (utf8_str) + { + q = stringprep_utf8_to_ucs4(utf8_str, -1, &len); + free(utf8_str); + } + else + { + XSRETURN_UNDEF; + } + + if (!q) + { + XSRETURN_UNDEF; + } + + tmp_str = malloc(MAX_DNSLEN*sizeof(char)); + len2 = MAX_DNSLEN-1; + res = punycode_encode(len, q, NULL, &len2, tmp_str); + free(q); + + if (res != PUNYCODE_SUCCESS) + { + XSRETURN_UNDEF; + } + + tmp_str[len2] = '\0'; + + res_str = stringprep_convert(tmp_str, charset, "UTF-8"); + free(tmp_str); + if (!res_str) + { + XSRETURN_UNDEF; + } + RETVAL = res_str; + OUTPUT: + RETVAL + CLEANUP: + free(res_str); + + +char * +idn_punycode_decode(string, charset=default_charset) + char * string + char * charset; + PROTOTYPE: $;$ + PREINIT: + char * utf8_str = NULL; + uint32_t * q = NULL; + size_t len; + char * res_str = NULL; + int res; + CODE: + len = MAX_DNSLEN-1; + q = (uint32_t *) malloc(MAX_DNSLEN * sizeof(q[0])); + + if (q) + { + res = punycode_decode(strlen(string), string, &len, q, NULL ); + } + else + { + XSRETURN_UNDEF; + } + if (res != PUNYCODE_SUCCESS) + { + XSRETURN_UNDEF; + } + q[len] = '\0'; + + utf8_str = stringprep_ucs4_to_utf8(q, -1, NULL, NULL); + free(q); + + if (utf8_str) + { + res_str = stringprep_convert(utf8_str, charset, "UTF-8"); + free(utf8_str); + } + else + { + XSRETURN_UNDEF; + } + + if (!res_str) + { + XSRETURN_UNDEF; + } + RETVAL = res_str; + OUTPUT: + RETVAL + CLEANUP: + free(res_str); + + +char * +idn_prep_name(string, charset=default_charset) + char * string + char * charset; + PROTOTYPE: $;$ + PREINIT: + char * res_str = NULL; + CODE: + res_str = idn_prep(string, charset, "Nameprep"); + if (!res_str) + { + XSRETURN_UNDEF; + } + RETVAL = res_str; + OUTPUT: + RETVAL + CLEANUP: + free(res_str); + + +char * +idn_prep_kerberos5(string, charset=default_charset) + char * string + char * charset + PROTOTYPE: $;$ + PREINIT: + char * res_str = NULL; + CODE: + res_str = idn_prep(string, charset, "KRBprep"); + if (!res_str) + { + XSRETURN_UNDEF; + } + RETVAL = res_str; + OUTPUT: + RETVAL + CLEANUP: + free(res_str); + +char * +idn_prep_node(string, charset=default_charset) + char * string + char * charset + PROTOTYPE: $;$ + PREINIT: + char * res_str = NULL; + CODE: + res_str = idn_prep(string, charset, "Nodeprep"); + if (!res_str) + { + XSRETURN_UNDEF; + } + RETVAL = res_str; + OUTPUT: + RETVAL + CLEANUP: + free(res_str); + + +char * +idn_prep_resource(string, charset=default_charset) + char * string + char * charset + PROTOTYPE: $;$ + PREINIT: + char * res_str = NULL; + CODE: + res_str = idn_prep(string, charset, "Resourceprep"); + if (!res_str) + { + XSRETURN_UNDEF; + } + RETVAL = res_str; + OUTPUT: + RETVAL + CLEANUP: + free(res_str); + + +char * +idn_prep_plain(string, charset=default_charset) + char * string + char * charset + PROTOTYPE: $;$ + PREINIT: + char * res_str = NULL; + CODE: + res_str = idn_prep(string, charset, "plain"); + if (!res_str) + { + XSRETURN_UNDEF; + } + RETVAL = res_str; + OUTPUT: + RETVAL + CLEANUP: + free(res_str); + + +char * +idn_prep_trace(string, charset=default_charset) + char * string + char * charset + PROTOTYPE: $;$ + PREINIT: + char * res_str = NULL; + CODE: + res_str = idn_prep(string, charset, "trace"); + if (!res_str) + { + XSRETURN_UNDEF; + } + RETVAL = res_str; + OUTPUT: + RETVAL + CLEANUP: + free(res_str); + + +char * +idn_prep_sasl(string, charset=default_charset) + char * string + char * charset + PROTOTYPE: $;$ + PREINIT: + char * res_str = NULL; + CODE: + res_str = idn_prep(string, charset, "SASLprep"); + if (!res_str) + { + XSRETURN_UNDEF; + } + RETVAL = res_str; + OUTPUT: + RETVAL + CLEANUP: + free(res_str); + + +char * +idn_prep_iscsi(string, charset=default_charset) + char * string + char * charset + PROTOTYPE: $;$ + PREINIT: + char * res_str = NULL; + CODE: + res_str = idn_prep(string, charset, "ISCSIprep"); + if (!res_str) + { + XSRETURN_UNDEF; + } + RETVAL = res_str; + OUTPUT: + RETVAL + CLEANUP: + free(res_str); + + +#ifdef HAVE_TLD + +int +tld_check(string, errpos, ...) + char *string + size_t errpos + PROTOTYPE: $$;$$ + PREINIT: + STRLEN c_len; + char * charset = default_charset; + char * tld = NULL; + const Tld_table * tld_table = NULL; + uint32_t *q; + size_t len; + char * utf8_str = NULL; + char * tmp_str = NULL; + int res; + CODE: + if (items>2) + { + if (ST(2) != &PL_sv_undef) + charset = (char*)SvPV(ST(2), c_len); + } + if (items>3) + { + tld = (char*)SvPV(ST(3), c_len); + tld_table = tld_default_table(tld, NULL); + } + utf8_str = stringprep_convert(string, "UTF-8", charset); + if (!utf8_str) + { + XSRETURN_UNDEF; + } + res = stringprep_profile(utf8_str, &tmp_str, "Nameprep", 0); + free(utf8_str); + if (res != STRINGPREP_OK) + { + XSRETURN_UNDEF; + } + if (tld) + { + q = stringprep_utf8_to_ucs4(tmp_str, -1, &len); + free(tmp_str); + if (!q) + { + XSRETURN_UNDEF; + } + res = tld_check_4t(q, len, &errpos, tld_table); + free(q); + } + else + { + res = tld_check_8z(tmp_str, &errpos, NULL); + free(tmp_str); + } + if (res == TLD_SUCCESS) + { + RETVAL = 1; + } + else if (res == TLD_INVALID) + { + RETVAL = 0; + } + else + { + XSRETURN_UNDEF; + } + OUTPUT: + RETVAL + errpos + +char * +tld_get(string) + char *string + PROTOTYPE: $ + PREINIT: + char *res_str = NULL; + int res; + CODE: + res = tld_get_z(string, &res_str); + if (res == TLD_SUCCESS) + { + RETVAL = res_str; + } + else + { + XSRETURN_UNDEF; + } + OUTPUT: + RETVAL + CLEANUP: + free(res_str); + + +SV * +tld_get_table(tld) + char * tld + PROTOTYPE: $ + PREINIT: + const Tld_table * tld_table = NULL; + HV * rh, * reh; + AV * ra; + const Tld_table_element *e; + size_t pos; + CODE: + tld_table = tld_default_table(tld, NULL); + if (tld_table) + { + rh = (HV *)sv_2mortal((SV *)newHV()); + hv_store(rh, "name", 4, newSVpv(tld_table->name, 0), 0); + hv_store(rh, "version", 7, newSVpv(tld_table->version, 0), 0); + hv_store(rh, "nvalid", 6, newSVuv(tld_table->nvalid), 0); + ra = (AV *)sv_2mortal((SV *)newAV()); + for (pos=0, e = tld_table->valid; posnvalid; pos++,e++) + { + reh = (HV *)sv_2mortal((SV *)newHV()); + hv_store(reh, "start", 5, newSVuv(e->start), 0); + hv_store(reh, "end", 3, newSVuv(e->end), 0); + av_push(ra, newRV((SV *)reh)); + } + hv_store(rh, "valid", 5, newRV((SV*)ra), 0); + RETVAL = newRV((SV*)rh); + } + else + { + XSRETURN_UNDEF; + } + OUTPUT: + RETVAL + +#endif /* #ifdef HAVE_TLD */ diff --git a/deb-src/libnet-libidn-perl/libnet-libidn-perl-0.07/MANIFEST b/deb-src/libnet-libidn-perl/libnet-libidn-perl-0.07/MANIFEST new file mode 100644 index 0000000..cbdf511 --- /dev/null +++ b/deb-src/libnet-libidn-perl/libnet-libidn-perl-0.07/MANIFEST @@ -0,0 +1,14 @@ +Changes +_LibIDN.pm +LibIDN.xs +Makefile.PL +MANIFEST +README +_test.pl +Artistic +META.yml Module meta-data (added by MakeMaker) +debian/changelog +debian/compat +debian/control +debian/copyright +debian/rules diff --git a/deb-src/libnet-libidn-perl/libnet-libidn-perl-0.07/META.yml b/deb-src/libnet-libidn-perl/libnet-libidn-perl-0.07/META.yml new file mode 100644 index 0000000..c56e781 --- /dev/null +++ b/deb-src/libnet-libidn-perl/libnet-libidn-perl-0.07/META.yml @@ -0,0 +1,10 @@ +# http://module-build.sourceforge.net/META-spec.html +#XXXXXXX This is a prototype!!! It will change in the future!!! XXXXX# +name: Net-LibIDN +version: 0.07 +version_from: LibIDN.pm +installdirs: site +requires: + +distribution_type: module +generated_by: ExtUtils::MakeMaker version 6.17 diff --git a/deb-src/libnet-libidn-perl/libnet-libidn-perl-0.07/Makefile.PL b/deb-src/libnet-libidn-perl/libnet-libidn-perl-0.07/Makefile.PL new file mode 100644 index 0000000..5eb5efb --- /dev/null +++ b/deb-src/libnet-libidn-perl/libnet-libidn-perl-0.07/Makefile.PL @@ -0,0 +1,226 @@ +use strict; +use ExtUtils::MakeMaker; +use Getopt::Long; + +# See lib/ExtUtils/MakeMaker.pm for details of how to influence +# the contents of the Makefile that is written. + +my %MakeParams = InitMakeParams(); +my $options; + +WriteMakefile(%MakeParams); + + +sub MY::postamble { + " +LibIDN.pm: _LibIDN.pm _test.pl + perl Makefile.PL $options + +test.pl: _test.pl + perl Makefile.PL $options +" +} + +sub InitMakeParams +{ + my %Params = + ( + 'NAME' => 'Net::LibIDN', + 'VERSION_FROM' => 'LibIDN.pm', # finds $VERSION + 'PREREQ_PM' => {}, # e.g., Module::Name => 1.1 + ($] >= 5.005 ? ## Add these new keywords supported since 5.005 + (ABSTRACT_FROM => 'LibIDN.pm', # retrieve abstract from module + AUTHOR => 'Thomas Jacob ') : ()), +# MAN3PODS => { 'LibIDN.pm' }, + PM => { 'LibIDN.pm' => '$(INST_LIB)/Net/LibIDN.pm' }, +# PL_FILES => {}, +# EXE_FILES => [], + clean => { FILES => "test.pl LibIDN.pm" } + ); + my ($libdir, $incdir, $disable_tld); + + $options=join(' ', @ARGV); + + GetOptions + ( + "with-libidn=s" => \$libdir, + "with-libidn-inc=s" => \$incdir, + "disable-tld" => \$disable_tld + ); + + if ($libdir) + { + $Params{LIBS} = "-L$libdir -lidn"; + } + else + { + $Params{LIBS} = '-lidn'; + } + + if ($incdir) + { + $Params{INC} = "-I$incdir"; + } + else + { + $Params{INC} = ''; + } + + my $libidn = CheckLibidn($Params{INC}, $Params{LIBS}); + + die "This module requires GNU Libidn, which could not be found.\n" unless $libidn; + + print "Found LibIDN, "; + print $libidn == 1? "without": "with"; + print " TLD checking support\n"; + + if ($libidn == 2 && $disable_tld) + { + print "TLD checking support disabled at user request\n"; + } + + $disable_tld = 1 if ($libidn<2); + + if ($disable_tld) + { + $Params{DEFINE} = ''; + } + else + { + $Params{DEFINE} = '-DHAVE_TLD'; + } + FilterTLD("_LibIDN.pm", "LibIDN.pm", !$disable_tld); + FilterTLD("_test.pl", "test.pl", !$disable_tld); + + return(%Params); +} + +sub FilterTLD +{ + my $in = shift; + my $out = shift; + my $tld = shift; + local *IN, *OUT; + + open(IN, "<$in") || die "Can't open file $in\n"; + open(OUT, ">$out") || die "Can't write file $out\n"; + + my ($inside, $else); + while() + { + if (m/^#IF_TLD/) + { + $inside = 1; + next; + } + if (m/^#ELSE_TLD/) + { + $else = 1; + next; + } + if (m/^#ENDIF_TLD/) + { + $inside = 0; + $else = 0; + next; + } + if ($inside) + { + if ($tld) + { + print OUT $_ unless $else; + } + elsif($else) + { + print OUT $_; + } + } + else + { + print OUT $_; + } + + } +} + +sub CheckLibidn +{ + my $cflags = shift; + my $ldflags = shift; + my $result; + my $final; + local * FILE; + + my $test1 = < +#include +int main(void) +{ + char * output; + int res; + + res = idna_to_ascii_8z("libidn", &output, 0); + printf("%d-%s", res, output); +} +EOT + + open(FILE, ">__test1.c"); + print FILE $test1; + close(FILE); + + system "cc $cflags $ldflags -o __test1 __test1.c"; + $final=1 if ($? >> 8); + + unless ($final) + { + open(FILE, "./__test1|"); + while() + { + $final=1 if $_ ne "0-libidn"; + } + close(FILE); + } + unlink("__test1"); + unlink("__test1.c"); + + return $result if ($final); + + $result = 1; + + my $test2 = < +#include +int main(void) +{ + char * output; + int res; + + res =tld_get_z ("libidn.idn", &output); + printf("%d-%s", res, output); +} +EOT + + open(FILE, ">__test2.c"); + print FILE $test2; + close(FILE); + + system "cc $cflags $ldflags -o __test2 __test2.c "; + $final = 1 if ($? >> 8); + + unless ($final) + { + open(FILE, "./__test2|"); + while() + { + $final = 1 if $_ ne "0-idn"; + } + close(FILE); + } + unlink("__test2"); + unlink("__test2.c"); + + return $result if $final; + + return 2; +} + diff --git a/deb-src/libnet-libidn-perl/libnet-libidn-perl-0.07/README b/deb-src/libnet-libidn-perl/libnet-libidn-perl-0.07/README new file mode 100644 index 0000000..8ed54cb --- /dev/null +++ b/deb-src/libnet-libidn-perl/libnet-libidn-perl-0.07/README @@ -0,0 +1,88 @@ +Net/LibIDN version 0.07 +======================= + +This module provides Perl bindings for GNU Libidn by Simon Josefsson +(http://www.gnu.org/software/libidn/) in way that was heavily inspired +by PHP bindings for the same library done by Turbo Fredriksson +(http://php-idn.bayour.com/). + +INSTALLATION + +To install this module type the following: + + perl Makefile.PL [--with-libidn= --with-libidn-inc= --disable-tld] + make + make test + make install + +Installing under Cygwin: + + Sergei Koladka reports that the first make line above needs to be replaced by + + make LD_RUN_PATH="/usr/lib" LDLOADLIBS="/usr/lib/libidn.a + \/usr/lib/libiconv.dll.a" + + assuming that Libidn was compiled with --prefix=/usr. You also will need to + remove the >>die "This module requires GNU Libidn..."<<-line and manually set + $libidn either to 2 or 1 depending on whether you have/want to use TLD + checking support. + +DEPENDENCIES + +This module requires these other modules and libraries: + + GNU Libidn >=0.4.0, >=0.3.5 (without TLD checking support) + (lower versions might work, don't know) + +COPYRIGHT AND LICENCE + + Perl Module Net::LibIDN + + Copyright 2003-2004, Thomas Jacob, Internet24.de + All rights reserved + + This program is free software; you can redistribute it and/or modify + it under the terms of either: + + 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" which comes with this Kit. + + 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 either + the GNU General Public License or the Artistic License for more details. + + You should have received a copy of the Artistic License with this + Kit, in the file named "Artistic". If not, I'll be glad to provide one. + + You should also have received a copy of the GNU General Public License + along with this program in the file named "Copying". If not, write to the + Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307, USA or visit their web page on the internet at + http://www.gnu.org/copyleft/gpl.html. + + For those of you that choose to use the GNU General Public License, + my interpretation of the GNU General Public License is that no Perl + script falls under the terms of the GPL unless you explicitly put + said script under the terms of the GPL yourself. Furthermore, any + object code linked with perl does not automatically fall under the + terms of the GPL, provided such object code only adds definitions + of subroutines and variables, and does not otherwise impair the + resulting interpreter from executing any standard Perl script. I + consider linking in C subroutines in this manner to be the moral + equivalent of defining subroutines in the Perl language itself. You + may sell such an object file as proprietary provided that you provide + or offer to provide the Perl source, as specified by the GNU General + Public License. (This is merely an alternate way of specifying input + to the program.) You may also sell a binary produced by the dumping of + a running Perl script that belongs to you, provided that you provide or + offer to provide the Perl source as specified by the GPL. (The + fact that a Perl interpreter and your code are in the same binary file + is, in this case, a form of mere aggregation.) This is my interpretation + of the GPL. If you still have concerns or difficulties understanding + my intent, feel free to contact me. Of course, the Artistic License + spells all this out for your protection, so you may prefer to use that. + diff --git a/deb-src/libnet-libidn-perl/libnet-libidn-perl-0.07/_LibIDN.pm b/deb-src/libnet-libidn-perl/libnet-libidn-perl-0.07/_LibIDN.pm new file mode 100644 index 0000000..edf8e9f --- /dev/null +++ b/deb-src/libnet-libidn-perl/libnet-libidn-perl-0.07/_LibIDN.pm @@ -0,0 +1,256 @@ +package Net::LibIDN; + +use 5.006; +use strict; +use warnings; +use Errno; +use Carp; + +require Exporter; +require DynaLoader; +use AutoLoader; + +our @ISA = qw(Exporter DynaLoader); + +# Items to export into callers namespace by default. Note: do not export +# names by default without a very good reason. Use EXPORT_OK instead. +# Do not simply export all your public functions/methods/constants. + +# This allows declaration use Net::LibIDN ':all'; +# If you do not need this, moving things directly into @EXPORT or @EXPORT_OK +# will save memory. +our %EXPORT_TAGS = ( 'all' => [ qw( + idn_to_ascii + idn_to_unicode + idn_punycode_encode + idn_punycode_decode + idn_prep_name + idn_prep_kerberos5 + idn_prep_node + idn_prep_resource + idn_prep_plain + idn_prep_trace + idn_prep_sasl + idn_prep_iscsi +#IF_TLD + tld_check + tld_get + tld_get_table +#ENDIF_TLD + IDNA_ALLOW_UNASSIGNED + IDNA_USE_STD3_ASCII_RULES +) ] ); + +our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } ); + +our @EXPORT = qw( + IDNA_ALLOW_UNASSIGNED + IDNA_USE_STD3_ASCII_RULES +); +our $VERSION = '0.07'; + +# avoid prototyping error message + +sub IDNA_ALLOW_UNASSIGNED +{ + return constant("IDNA_ALLOW_UNASSIGNED", length("IDNA_ALLOW_UNASSIGNED")); +} + +sub IDNA_USE_STD3_ASCII_RULES +{ + return constant("IDNA_USE_STD3_ASCII_RULES", length("IDNA_USE_STD3_ASCII_RULES")); +} + +sub AUTOLOAD { + # This AUTOLOAD is used to 'autoload' constants from the constant() + # XS function. If a constant is not found then control is passed + # to the AUTOLOAD in AutoLoader. + + my $constname; + our $AUTOLOAD; + ($constname = $AUTOLOAD) =~ s/.*:://; + croak "& not defined" if $constname eq 'constant'; + my $val = constant($constname, @_ ? $_[0] : 0); + if ($! != 0) + { + if ($!{EINVAL}) + { + $AutoLoader::AUTOLOAD = $AUTOLOAD; + goto &AutoLoader::AUTOLOAD; + } + else + { + croak "Your vendor has not defined Net::LibIDN macro $constname"; + } + } + { + no strict 'refs'; + # Fixed between 5.005_53 and 5.005_61 + if ($] >= 5.00561) + { + *$AUTOLOAD = sub () { $val }; + } + else + { + *$AUTOLOAD = sub { $val }; + } + } + goto &$AUTOLOAD; +} + +bootstrap Net::LibIDN $VERSION; + +# Preloaded methods go here. + +# Autoload methods go after =cut, and are processed by the autosplit program. + +1; +__END__ + +=head1 NAME + +Net::LibIDN - Perl bindings for GNU Libidn + +=head1 SYNOPSIS + + use Net::LibIDN ':all'; + + idn_to_ascii("Räksmörgås.Josefßon.ORG") eq + idn_to_ascii(idn_to_unicode("xn--rksmrgs-5wao1o.josefsson.org")); + + idn_prep_name("LibÜDN") eq "libüdn"; + + idn_punycode_encode("kistenmöhre") eq + idn_punycode_encode(idn_punycode_decode("kistenmhre-kcb")); +#IF_TLD + + my $errpos; + tld_check("mèrle.se", $errpos) eq undef; + $errpos == 1; + + tld_get("mainbase.mars") eq "mars"; + + my $hashref = Net::LibIDN::tld_get_table("de"); + + print "$hashref->{version}\n"; + foreach (@{$hashref->{valid}}) + { + print "Unicode range from ".$_->{start}." to ".$_->{end}."\n"; + } +#ENDIF_TLD + +=head1 DESCRIPTION + +Provides bindings for GNU Libidn, a C library for handling Internationalized +Domain Names according to IDNA (RFC 3490), in a way very much inspired by +Turbo Fredriksson's PHP-IDN. + +=head2 Functions + +=over 4 + +=item B(I<$clear_hostname>, [I<$charset>, [I<$flags>]]); + +Converts I<$clear_hostname> which might contain characters outside +the range allowed in DNS names, to IDNA ACE. If I<$charset> is +specified, treats string as being encoded in it, otherwise +assumes it is ISO-8859-1 encoded. If flag +B is set in I<$flags>, accepts also unassigned +Unicode characters, if B is set, accepts +only ASCII LDH characters (letter-digit-hyphen). Flags can be +combined with ||. Returns result of conversion or B on +error. + +=item B(I<$idn_hostname>, [I<$charset>, [I<$flags>]]); + +Converts ASCII I<$idn_hostname>, which might be IDNA ACE +encoded, into the decoded form in I<$charset> or ISO-8859-1. Flags +are interpreted as above. Returns result of conversion +or B on error. + +=item B(I<$string>, [I<$charset>]); + +Encodes I<$string> into "punycode" (RFC 3492). If I<$charset> +is present, treats I<$string> as being in I<$charset>, otherwise +uses ISO-8859-1. Returns result of conversion +or B on error. + +=item B(I<$string>, [I<$charset>]); + +Decodes I<$string> from "punycode" (RFC 3492). If I<$charset> +is present, result is converted to I<$charset>, otherwise +it is converted to ISO-8859-1. Returns result of conversion +or B on error. + +=item B(I<$string>, [I<$charset>]); + +=item B(I<$string>, [I<$charset>]); + +=item B(I<$string>, [I<$charset>]); + +=item B(I<$string>, [I<$charset>]); + +=item B(I<$string>, [I<$charset>]); + +=item B(I<$string>, [I<$charset>]); + +=item B(I<$string>, [I<$charset>]); + +=item B(I<$string>, [I<$charset>]); + +Performs "stringprep" (RFC 3454) on $string according to the named +profile (e.g. *_name -> "nameprep" (RFC 3491)). +If I<$charset> is present, converts from and to this charset before and after +the operation respectively. Returns result string, or B on error. + + +#IF_TLD + +=item B(I<$string>, I<$errpos>, [I<$charset>, [I<$tld>]]); + +Checks whether or not I<$string> conforms to the restrictions on the sets +of valid characters defined by TLD authorities around the World. Treats +I<$string> as a hostname if I<$tld> is not present, determining the TLD +from the hostname. If I<$tld> is present, uses the restrictions defined +by the parties responsible for TLD I<$tld>. I<$charset> may be used to +specify the character set the I<$string> is in. Should an invalid character +be detected, returns 0 and the 0-based position of the offending character +in I<$errpos>. In case of other failure conditions, I<$errpos> is not touched, +and B is returned. Should I<$string> conform to the TLD restrictions, +1 is returned. + +=item B(I<$hostname>); + +Returns top level domain of I<$hostname>, or B if an error +occurs or if no top level domain was found. + +=item B(I<$tld>); + +Retrieves a hash reference with the TLD restriction info of given +TLD I<$tld>, or B if I<$tld> is not found. The hash ref contains the +following fields: + +=over 4 + +=item * I<$h->>I<{name}> ... name of TLD + +=item * I<$h->>I<{version}> ... version string of this restriction table + +=item * I<$h->>I<{nvalid}> ... number of Unicode intervals + +=item * I<$h->>I<{valid}> ... [ {I => number, I => number}, ...] ... Unicode intervals + +=back + +#ENDIF_TLD +=back + +=head1 AUTHOR + +Thomas Jacob, http://internet24.de + +=head1 SEE ALSO + +perl(1), RFC 3454, RFC 3490-3492, http://www.gnu.org/software/libidn. + +=cut diff --git a/deb-src/libnet-libidn-perl/libnet-libidn-perl-0.07/_test.pl b/deb-src/libnet-libidn-perl/libnet-libidn-perl-0.07/_test.pl new file mode 100644 index 0000000..731f00c --- /dev/null +++ b/deb-src/libnet-libidn-perl/libnet-libidn-perl-0.07/_test.pl @@ -0,0 +1,75 @@ +# Before `make install' is performed this script should be runnable with +# `make test'. After `make install' it should work as `perl test.pl' + +######################### + +use strict; +use Test; + +#IF_TLD +BEGIN { plan tests => 21, todo => [] }; +#ELSE_TLD +BEGIN { plan tests => 10, todo => [] }; +#ENDIF_TLD + +use Net::LibIDN; + +######################### + +ok(Net::LibIDN::idn_to_ascii("b\xF6se.de", "ISO-8859-1"), "xn--bse-sna.de"); +ok(Net::LibIDN::idn_to_ascii("b\xC3\xB6se.de","UTF-8"), "xn--bse-sna.de"); + +ok(Net::LibIDN::idn_to_unicode("xn--bse-sna.de", "ISO-8859-1"), "b\xF6se.de"); +ok(Net::LibIDN::idn_to_unicode("xn--bse-sna.de", "UTF-8"), "b\xC3\xB6se.de"); + +ok(Net::LibIDN::idn_punycode_encode("\xDCHHH\xC4AHHH", "ISO-8859-1"), "HHHAHHH-wpa6s"); +ok(Net::LibIDN::idn_punycode_encode("\xC3\x9CHHH\xC3\x84AHHH", "UTF-8"), "HHHAHHH-wpa6s"); + +ok(Net::LibIDN::idn_punycode_decode("HHHAHHH-wpa6s", "ISO-8859-1"), "\xDCHHH\xC4AHHH"); +ok(Net::LibIDN::idn_punycode_decode("HHHAHHH-wpa6s", "UTF-8"), "\xC3\x9CHHH\xC3\x84AHHH"); + +ok(Net::LibIDN::idn_prep_name("GR\xD6\xDFeR", "ISO-8859-1"), "gr\xF6sser"); +ok(Net::LibIDN::idn_prep_name("GR\xC3\xB6\xC3\x9Fer", "UTF-8"), "gr\xC3\xB6sser"); + +#IF_TLD + +my $has_nono; + +{ +my $res = Net::LibIDN::tld_get_table("no"); +$has_nono = $$res{name} ne "no"; +skip($has_nono, $$res{name}, "no"); +skip($has_nono, $$res{nvalid}, 13); +my $sum = 0; +my $zero = 0; +for (my $i=0; $i<13; $i++) +{ + $zero = 1 if (!$$res{valid}[$i]{start} && !$$res{valid}[$i]{end}); + $sum += $$res{valid}[$i]{start}; + $sum += $$res{valid}[$i]{end}; +} +skip($has_nono, $sum, 7470); +skip($has_nono, $zero, 0); +} + + +{ +my $errpos; +my $res = Net::LibIDN::tld_check("p\xFBrle.no", $errpos, "ISO-8859-1"); +skip($has_nono, $errpos, 1); +skip($has_nono, $res, 0); +} + +{ +my $errpos; +my $res = Net::LibIDN::tld_check("p\xFBrle.no", $errpos, "ISO-8859-1", "com"); +ok($errpos, 0); +ok($res, 1); +} + +ok(Net::LibIDN::tld_get("Kruder.DorfMeister"), "dorfmeister"); +ok(Net::LibIDN::tld_get("GR\xC3\xB6\xC3\x9Fer"), undef); + +ok(Net::LibIDN::tld_get_table("mars"), undef); + +#ENDIF_TLD diff --git a/deb-src/libnet-libidn-perl/libnet-libidn-perl-0.07/debian/changelog b/deb-src/libnet-libidn-perl/libnet-libidn-perl-0.07/debian/changelog new file mode 100644 index 0000000..c324342 --- /dev/null +++ b/deb-src/libnet-libidn-perl/libnet-libidn-perl-0.07/debian/changelog @@ -0,0 +1,44 @@ +libnet-libidn-perl (0.07-1maemo1) fremantle; urgency=low + + * New Maemo packaging + + -- Nito Martinez Tue, 13 Apr 2010 23:42:50 +0100 + + +llibnet-libidn-perl (0.07-1) unstable; urgency=low + + * Improved debianization, Makefile generation and portability + + -- Mon, 26 Apr 2004 11:45:14 +0200 + +libnet-libidn-perl (0.06-1) unstable; urgency=low + + * Doc changes, improved debianization + * Submit to Debian. Closes: #240437. + + -- Mon, 29 Mar 2004 19:31:37 +0200 + +libnet-libidn-perl (0.05-2) unstable; urgency=low + + * minor packaging issues + + -- Matthias Urlichs Sat, 27 Mar 2004 11:35:33 +0100 + +libnet-libidn-perl (0.05-1) unstable; urgency=low + + * Minor fixes and optimizations + + -- Thu, 18 Mar 2004 16:13:50 +0100 + +libnet-libidn-perl (0.04-1) unstable; urgency=low + + * Update for real release of Libidn 0.4.0 + + -- Sun, 29 Feb 2004 16:33:41 +0100 + +libnet-libidn-perl (0.03-1) unstable; urgency=low + + * Initial Release. + + -- Thomas Jacob Sat, 14 Feb 2004 01:04:56 +0100 + diff --git a/deb-src/libnet-libidn-perl/libnet-libidn-perl-0.07/debian/compat b/deb-src/libnet-libidn-perl/libnet-libidn-perl-0.07/debian/compat new file mode 100644 index 0000000..b8626c4 --- /dev/null +++ b/deb-src/libnet-libidn-perl/libnet-libidn-perl-0.07/debian/compat @@ -0,0 +1 @@ +4 diff --git a/deb-src/libnet-libidn-perl/libnet-libidn-perl-0.07/debian/control b/deb-src/libnet-libidn-perl/libnet-libidn-perl-0.07/debian/control new file mode 100644 index 0000000..44a05a2 --- /dev/null +++ b/deb-src/libnet-libidn-perl/libnet-libidn-perl-0.07/debian/control @@ -0,0 +1,14 @@ +Source: libnet-libidn-perl +Section: perl +Priority: optional +Build-Depends: debhelper (>= 4.0.2), perl (>= 5.8.0-7), libidn11-dev +Maintainer: Thomas Jacob +Standards-Version: 3.6.1 + +Package: libnet-libidn-perl +Architecture: any +Depends: ${perl:Depends}, ${shlibs:Depends}, ${misc:Depends}, +Description: Perl bindings for GNU Libidn + Provides bindings for GNU Libidn, a C library for handling Internationalized + Domain Names according to IDNA (RFC 3490), in a way very much inspired by + Turbo Fredriksson's PHP-IDN. diff --git a/deb-src/libnet-libidn-perl/libnet-libidn-perl-0.07/debian/copyright b/deb-src/libnet-libidn-perl/libnet-libidn-perl-0.07/debian/copyright new file mode 100644 index 0000000..d0d9ba5 --- /dev/null +++ b/deb-src/libnet-libidn-perl/libnet-libidn-perl-0.07/debian/copyright @@ -0,0 +1,19 @@ +This is the debian package for the Net-LibIDN module. +It was created by Thomas Jacob using dh-make-perl. + +The upstream author is: + +Thomas Jacob, http://internet24.de. + +Copyright: + Copyright (c) 2003-2004, Thomas Jacob, http://internet24.de + + All rights reserved + +This program is free software; you can redistribute it under the +"Artistic License" or the GNU General Public License as published by the Free +Software Foundation; either version 1, or (at your option) any later version. +On Debian GNU/Linux systems, a copy of the Artistic License can be found in +/usr/share/common-licenses/Artistic, a copy of the GPL in the same directory +in file GPL. + diff --git a/deb-src/libnet-libidn-perl/libnet-libidn-perl-0.07/debian/rules b/deb-src/libnet-libidn-perl/libnet-libidn-perl-0.07/debian/rules new file mode 100755 index 0000000..bdf3bdf --- /dev/null +++ b/deb-src/libnet-libidn-perl/libnet-libidn-perl-0.07/debian/rules @@ -0,0 +1,99 @@ +#!/usr/bin/make -f +# This debian/rules file is provided as a template for normal perl +# packages. It was created by Marc Brockschmidt for +# the Debian Perl Group (http://pkg-perl.alioth.debian.org/) but may +# be used freely wherever it is useful. + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +# If set to a true value then MakeMaker's prompt function will +# always return the default without waiting for user input. +export PERL_MM_USE_DEFAULT=1 + +PACKAGE=$(shell dh_listpackages) + +ifndef PERL +PERL = /usr/bin/perl +endif + +TMP =$(CURDIR)/debian/$(PACKAGE) + +# Allow disabling build optimation by setting noopt in +# $DEB_BUILD_OPTIONS +CFLAGS = -Wall -g +ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) + CFLAGS += -O0 +else + CFLAGS += -O2 +endif + +build: build-stamp +build-stamp: + dh_testdir + + # Add commands to compile the package here + $(PERL) Makefile.PL INSTALLDIRS=vendor + $(MAKE) OPTIMIZE="$(CFLAGS)" LD_RUN_PATH="" + + touch build-stamp + +clean: + dh_testdir + dh_testroot + + # Add commands to clean up after the build process here + -$(MAKE) realclean + + dh_clean build-stamp install-stamp + +install: install-stamp +install-stamp: + dh_testdir + dh_testroot + dh_clean -k + + # Add here commands to install the package into debian/tmp. + #$(MAKE) test + $(MAKE) install DESTDIR=$(TMP) PREFIX=/usr + + # As this is a architecture dependent package, we are not supposed to install + # stuff to /usr/share/perl5. MakeMaker creates the dirs, we delete them from + # the deb: + -rmdir --ignore-fail-on-non-empty --parents $(TMP)/usr/share/perl5 + + touch install-stamp + +# Build architecture-independent files here. +binary-indep: build install +# We have nothing to do by default. + +# Build architecture-dependent files here. +binary-arch: build install + dh_testdir + dh_testroot + dh_installdocs README + dh_installexamples +# dh_installmenu +# dh_installcron +# dh_installman + dh_installchangelogs Changes + dh_link +ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) + dh_strip +endif + dh_compress + dh_fixperms + dh_makeshlibs + dh_installdeb + dh_perl + dh_shlibdeps + dh_gencontrol + dh_md5sums + dh_builddeb + +source diff: + @echo >&2 'source and diff are obsolete - use dpkg-source -b'; false + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary diff --git a/deb-src/libnet-libidn-perl/libnet-libidn-perl_0.07-1.diff.gz b/deb-src/libnet-libidn-perl/libnet-libidn-perl_0.07-1.diff.gz new file mode 100644 index 0000000000000000000000000000000000000000..1a39674605eb273d9d8b00f3919be73916c5b3d9 GIT binary patch literal 20 Ucmb2|=3t1j?sH&bW@dl^03p!=9smFU literal 0 HcmV?d00001 diff --git a/deb-src/libnet-libidn-perl/libnet-libidn-perl_0.07-1.dsc b/deb-src/libnet-libidn-perl/libnet-libidn-perl_0.07-1.dsc new file mode 100644 index 0000000..da60676 --- /dev/null +++ b/deb-src/libnet-libidn-perl/libnet-libidn-perl_0.07-1.dsc @@ -0,0 +1,22 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA1 + +Format: 1.0 +Source: libnet-libidn-perl +Version: 0.07-1 +Binary: libnet-libidn-perl +Maintainer: Thomas Jacob +Architecture: any +Standards-Version: 3.6.1 +Build-Depends: debhelper (>= 4.0.2), perl (>= 5.8.0-7), libidn11-dev +Files: + 6d7c2a06d0254b63dd3151cd275a3fe5 13366 libnet-libidn-perl_0.07.orig.tar.gz + 8df07e18a5c6aacd6bb94ddcf39056a5 20 libnet-libidn-perl_0.07-1.diff.gz + +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.2.4 (GNU/Linux) + +iD8DBQFAjjte8+hUANcKr/kRApkeAJ9K8DoXBRB0w/bMjF4t2sVrEjo5QQCdGMQO +q5Cl91CK6OxS5IViBvbgmLo= +=lhKG +-----END PGP SIGNATURE----- diff --git a/deb-src/libnet-libidn-perl/libnet-libidn-perl_0.07-1maemo1.diff.gz b/deb-src/libnet-libidn-perl/libnet-libidn-perl_0.07-1maemo1.diff.gz new file mode 100644 index 0000000000000000000000000000000000000000..d6f950220ac20522588033348b8e66a88613b882 GIT binary patch literal 260 zcmV+f0sH^GWSDJ2}Yo|4RkdoM?dPO3`XRUxun^whHPi|)&KOD@<#2yuy+ zFE{q`)EZ4w$T^CuiIw^qd;gtG>*yZ)XvufSM;8u-xQq;jhLFK+q`~+!BMSlC zU_%GIO`8}^w= +Architecture: any +Standards-Version: 3.6.1 +Build-Depends: debhelper (>= 4.0.2), perl (>= 5.8.0-7), libidn11-dev +Files: + 6d7c2a06d0254b63dd3151cd275a3fe5 13366 libnet-libidn-perl_0.07.orig.tar.gz + dde1a22e18063a66c189a2ed99523ade 260 libnet-libidn-perl_0.07-1maemo1.diff.gz diff --git a/deb-src/libnet-libidn-perl/libnet-libidn-perl_0.07-1maemo1_i386.changes b/deb-src/libnet-libidn-perl/libnet-libidn-perl_0.07-1maemo1_i386.changes new file mode 100644 index 0000000..b8d3813 --- /dev/null +++ b/deb-src/libnet-libidn-perl/libnet-libidn-perl_0.07-1maemo1_i386.changes @@ -0,0 +1,20 @@ +Format: 1.7 +Date: Tue, 13 Apr 2010 23:42:50 +0100 +Source: libnet-libidn-perl +Binary: libnet-libidn-perl +Architecture: source i386 +Version: 0.07-1maemo1 +Distribution: fremantle +Urgency: low +Maintainer: Thomas Jacob +Changed-By: Nito Martinez +Description: + libnet-libidn-perl - Perl bindings for GNU Libidn +Changes: + libnet-libidn-perl (0.07-1maemo1) fremantle; urgency=low + . + * New Maemo packaging +Files: + 790813d078adcbb0e1985df50e635604 409 perl optional libnet-libidn-perl_0.07-1maemo1.dsc + dde1a22e18063a66c189a2ed99523ade 260 perl optional libnet-libidn-perl_0.07-1maemo1.diff.gz + 4feef0805b1c481bf7ffac57928c9eed 23292 perl optional libnet-libidn-perl_0.07-1maemo1_i386.deb diff --git a/deb-src/libnet-libidn-perl/libnet-libidn-perl_0.07.orig.tar.gz b/deb-src/libnet-libidn-perl/libnet-libidn-perl_0.07.orig.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..b82ebb17dc0e6ccbdf412edfefc68f2767843e7b GIT binary patch literal 13366 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 M2Tzcze*nk;0Egf^WdHyG literal 0 HcmV?d00001 diff --git a/deb-src/libnet-ssleay-perl/libnet-ssleay-perl-1.35/debian/changelog b/deb-src/libnet-ssleay-perl/libnet-ssleay-perl-1.35/debian/changelog index 2fa319b..a0dbb8d 100644 --- a/deb-src/libnet-ssleay-perl/libnet-ssleay-perl-1.35/debian/changelog +++ b/deb-src/libnet-ssleay-perl/libnet-ssleay-perl-1.35/debian/changelog @@ -1,4 +1,11 @@ -libnet-ssleay-perl (1.35-1) unstable; urgency=low +libnet-ssleay-perl (1.35-1maemo1) fremantle; urgency=low + + * New Maemo packaging + + -- Nito Martinez Tue, 13 Apr 2010 22:52:08 +0100 + + +llibnet-ssleay-perl (1.35-1) unstable; urgency=low * New upstream release. * debian/copyright: add information about files under inc/. diff --git a/deb-src/libnet-ssleay-perl/libnet-ssleay-perl-1.35/debian/control b/deb-src/libnet-ssleay-perl/libnet-ssleay-perl-1.35/debian/control index 5af72eb..369cbc1 100644 --- a/deb-src/libnet-ssleay-perl/libnet-ssleay-perl-1.35/debian/control +++ b/deb-src/libnet-ssleay-perl/libnet-ssleay-perl-1.35/debian/control @@ -8,8 +8,8 @@ Standards-Version: 3.8.0 Homepage: http://search.cpan.org/dist/Net-SSLeay/ Vcs-Svn: svn://svn.debian.org/pkg-perl/trunk/libnet-ssleay-perl/ Vcs-Browser: http://svn.debian.org/wsvn/pkg-perl/trunk/libnet-ssleay-perl/ -Build-Depends: debhelper (>= 7), perl (>> 5.8.1), libssl-dev (>> 0.9.7), - openssl, quilt (>= 0.40), libtest-pod-perl, libtest-exception-perl +Build-Depends: debhelper7, perl (>> 5.8.1), libssl-dev (>> 0.9.7), + openssl, quilt (>= 0.40) Package: libnet-ssleay-perl Architecture: any diff --git a/deb-src/libnet-ssleay-perl/libnet-ssleay-perl_1.35-1maemo1.diff.gz b/deb-src/libnet-ssleay-perl/libnet-ssleay-perl_1.35-1maemo1.diff.gz new file mode 100644 index 0000000000000000000000000000000000000000..b8e7a148e3fe1416c35ab13a99981690a0c66572 GIT binary patch literal 6381 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 vZkE>c2_U1W$<$@~8} +Architecture: any +Standards-Version: 3.8.0 +Build-Depends: debhelper7, perl (>> 5.8.1), libssl-dev (>> 0.9.7), openssl, quilt (>= 0.40) +Uploaders: Florian Ragwitz , Damyan Ivanov , gregor herrmann +Files: + 1e4ec37a4467eb66a62d3c090ac9029b 132198 libnet-ssleay-perl_1.35.orig.tar.gz + 81cd7b051b04c68c948bf6a2c243264d 6381 libnet-ssleay-perl_1.35-1maemo1.diff.gz diff --git a/deb-src/libnet-ssleay-perl/libnet-ssleay-perl_1.35-1maemo1_i386.changes b/deb-src/libnet-ssleay-perl/libnet-ssleay-perl_1.35-1maemo1_i386.changes new file mode 100644 index 0000000..7efb854 --- /dev/null +++ b/deb-src/libnet-ssleay-perl/libnet-ssleay-perl_1.35-1maemo1_i386.changes @@ -0,0 +1,20 @@ +Format: 1.7 +Date: Tue, 13 Apr 2010 22:52:08 +0100 +Source: libnet-ssleay-perl +Binary: libnet-ssleay-perl +Architecture: source i386 +Version: 1.35-1maemo1 +Distribution: fremantle +Urgency: low +Maintainer: Debian Perl Group +Changed-By: Nito Martinez +Description: + libnet-ssleay-perl - Perl module for Secure Sockets Layer (SSL) +Changes: + libnet-ssleay-perl (1.35-1maemo1) fremantle; urgency=low + . + * New Maemo packaging +Files: + dde8432f0724f4e1697f1f6d239fb539 578 perl optional libnet-ssleay-perl_1.35-1maemo1.dsc + 81cd7b051b04c68c948bf6a2c243264d 6381 perl optional libnet-ssleay-perl_1.35-1maemo1.diff.gz + d59dd7ab464bfb65a103cbac94626092 211240 perl optional libnet-ssleay-perl_1.35-1maemo1_i386.deb diff --git a/deb-src/libpar-dist-perl/libpar-dist-perl-0.31/debian/changelog b/deb-src/libpar-dist-perl/libpar-dist-perl-0.31/debian/changelog index 1f3b9dc..76cd6b3 100644 --- a/deb-src/libpar-dist-perl/libpar-dist-perl-0.31/debian/changelog +++ b/deb-src/libpar-dist-perl/libpar-dist-perl-0.31/debian/changelog @@ -1,4 +1,11 @@ -libpar-dist-perl (0.31-1) unstable; urgency=low +libpar-dist-perl (0.31-1maemo1) fremantle; urgency=low + + * New Maemo packaging + + -- Nito Martinez Tue, 13 Apr 2010 22:52:08 +0100 + + +llibpar-dist-perl (0.31-1) unstable; urgency=low * New upstream release. * Set Standards-Version to 3.8.0 (no changes). diff --git a/deb-src/libpar-dist-perl/libpar-dist-perl-0.31/debian/control b/deb-src/libpar-dist-perl/libpar-dist-perl-0.31/debian/control index b609476..9911ebb 100644 --- a/deb-src/libpar-dist-perl/libpar-dist-perl-0.31/debian/control +++ b/deb-src/libpar-dist-perl/libpar-dist-perl-0.31/debian/control @@ -1,7 +1,7 @@ Source: libpar-dist-perl Section: perl Priority: optional -Build-Depends: debhelper (>= 6) +Build-Depends: debhelper7 Build-Depends-Indep: perl (>= 5.8.0-7), libtest-pod-perl, libtest-pod-coverage-perl Uploaders: Florian Ragwitz , diff --git a/deb-src/libpar-dist-perl/libpar-dist-perl_0.31-1maemo1.diff.gz b/deb-src/libpar-dist-perl/libpar-dist-perl_0.31-1maemo1.diff.gz new file mode 100644 index 0000000000000000000000000000000000000000..0789aad040be2fca4f70b4252356ecafdb0146dd GIT binary patch literal 2665 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 +Architecture: all +Standards-Version: 3.8.0 +Build-Depends: debhelper7 +Build-Depends-Indep: perl (>= 5.8.0-7), libtest-pod-perl, libtest-pod-coverage-perl +Uploaders: Florian Ragwitz , Krzysztof Krzyzaniak (eloy) , gregor herrmann +Files: + 6718c9a3824e4e9060877254aa196831 14615 libpar-dist-perl_0.31.orig.tar.gz + 86b78828d787c5bb5a2d8a8433bc032b 2665 libpar-dist-perl_0.31-1maemo1.diff.gz diff --git a/deb-src/libpar-dist-perl/libpar-dist-perl_0.31-1maemo1_i386.changes b/deb-src/libpar-dist-perl/libpar-dist-perl_0.31-1maemo1_i386.changes new file mode 100644 index 0000000..109bb6a --- /dev/null +++ b/deb-src/libpar-dist-perl/libpar-dist-perl_0.31-1maemo1_i386.changes @@ -0,0 +1,20 @@ +Format: 1.7 +Date: Tue, 13 Apr 2010 22:52:08 +0100 +Source: libpar-dist-perl +Binary: libpar-dist-perl +Architecture: source all +Version: 0.31-1maemo1 +Distribution: fremantle +Urgency: low +Maintainer: Debian Perl Group +Changed-By: Nito Martinez +Description: + libpar-dist-perl - perl module to create and manipulate PAR distributions +Changes: + libpar-dist-perl (0.31-1maemo1) fremantle; urgency=low + . + * New Maemo packaging +Files: + f6163822a25fabbe280448548c35f967 602 perl optional libpar-dist-perl_0.31-1maemo1.dsc + 86b78828d787c5bb5a2d8a8433bc032b 2665 perl optional libpar-dist-perl_0.31-1maemo1.diff.gz + c8c42f0ed6e431c3ec683490388ead95 23374 perl optional libpar-dist-perl_0.31-1maemo1_all.deb diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/Build.PL b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/Build.PL new file mode 100644 index 0000000..c187e6b --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/Build.PL @@ -0,0 +1,178 @@ +####################################################################### +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/Build.PL $ +# $Date: 2008-06-17 14:27:21 -0500 (Tue, 17 Jun 2008) $ +# $Author: clonezone $ +# $Revision: 2450 $ +######################################################################## + +use 5.006001; + +use strict; +use warnings; + +use lib 'inc'; +use lib 't/tlib'; + +use Module::Build; + +use Perl::Critic::BuildUtilities qw< + recommended_module_versions + test_wrappers_to_generate + get_PL_files + dump_unlisted_or_optional_module_versions + emit_tar_warning_if_necessary +>; + +emit_tar_warning_if_necessary(); + + +my $class = Module::Build->subclass( code => <<'END_SUBCLASS' ); + + sub ACTION_test { + my ($self) = @_; + + $self->depends_on('manifest'); + + return $self->SUPER::ACTION_test(); + } + + sub ACTION_authortest { + my ($self) = @_; + + $self->depends_on('build'); + $self->depends_on('manifest'); + $self->depends_on('distmeta'); + + $self->test_files( qw< t xt/author > ); + $self->recursive_test_files(1); + + $self->depends_on('test'); + + return; + } + + sub ACTION_distdir { + my ($self) = @_; + + $self->depends_on('authortest'); + + return $self->SUPER::ACTION_distdir(); + } + +END_SUBCLASS + +my $builder = $class->new( + module_name => 'Perl::Critic', + dist_author => 'Jeffrey Thalhammer ', + dist_abstract => 'Critique Perl source code for best-practices.', + license => 'perl', + dynamic_config => 1, + create_readme => 1, + create_packlist => 1, + sign => 0, + + requires => { + 'B::Keywords' => 1.05, + 'Carp' => 0, + 'Config::Tiny' => 2, + 'English' => 0, + 'Exception::Class' => 1.23, + 'Exporter' => 0, + 'File::Basename' => 0, + 'File::Find' => 0, + 'File::Path' => 0, + 'File::Spec' => 0, + 'File::Spec::Unix' => 0, + 'File::Temp' => 0, + 'Getopt::Long' => 0, + 'IO::String' => 0, + 'List::MoreUtils' => 0, + 'List::Util' => 0, + 'Module::Pluggable' => 3.1, + 'PPI' => 1.203, + 'PPI::Document' => 1.203, + 'PPI::Document::File' => 1.203, + 'PPI::Node' => 1.203, + 'PPI::Token::Quote::Single' => 1.203, + 'PPI::Token::Whitespace' => 1.203, + 'Pod::PlainText' => 0, + 'Pod::Select' => 0, + 'Pod::Usage' => 0, + 'Readonly' => 1.03, + 'Scalar::Util' => 0, + 'String::Format' => 1.13, + 'base' => 0, + 'charnames' => 0, + 'overload' => 0, + 'strict' => 0, + 'version' => 0, + 'warnings' => 0, + 'overload' => 0, + 'strict' => 0, + 'version' => 0, + 'warnings' => 0, + }, + + recommends => { recommended_module_versions() }, + + build_requires => { + 'lib' => 0, + 'Test::More' => 0, + }, + + PL_files => get_PL_files(), + + script_files => ['bin/perlcritic'], + + meta_merge => { + resources => { + homepage => 'http://perlcritic.com', + license => 'http://dev.perl.org/licenses/', + Repository => 'http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/', + MailingList => 'http://perlcritic.tigris.org/servlets/SummarizeList?listName=users', + }, + no_index => { + file => [ + qw< + TODO.pod + lib/Perl/Critic/PolicySummary.pod.PL + > + ], + directory => [ + qw< + doc + > + ], + }, + }, + + add_to_cleanup => [ + qw< + lib/Perl/Critic/PolicySummary.pod + Makefile + Makefile.old + MANIFEST + MANIFEST.bak + META.yml + pm_to_blib + README + t/ControlStructures/ProhibitNegativeExpressionsInUnlessAndUntilConditions.run + t/Variables/RequireLocalizedPunctuationVars.run + >, + test_wrappers_to_generate(), + ], +); + +$builder->create_build_script(); + +dump_unlisted_or_optional_module_versions(); + +############################################################################## +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/Changes b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/Changes new file mode 100644 index 0000000..467b3fe --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/Changes @@ -0,0 +1,1260 @@ +[1.088] Released on 2008-07-03 + + New Policies + * ErrorHandling::RequireCheckingReturnValueOfEval + + Policy Changes: + * ValuesAndExpressions::ProhibitLeadingZeros now accepts octal numbers + for the Unix permissions argument to chmod, dbmopen, mkdir, sysopen, or + umask, by default. Use the "strict" option to get the old behavior. + RT #31977. + * Due to the consensus at YAPC::NA 2008, + Variables::ProhibitUnusedVariables default severity has been raised to + medium/3. + + Minor Changes: + * The perlcritic "--Version" option is now "--version" in order to act + like the rest of the world. + +[1.087] Released on 2008-06-21 + + Policy Changes: + * CodeLayout::ProhibitParensWithBuiltins no longer complains about + sort(foo(@x)). + * TestingAndDebugging::RequireUseWarnings will not complain about files + that contain a "use 5.005" statement or similar for perls prior to 5.6. + Lesson of the day: computer conferences where you can meet in the real + world can clarify conversations greatly. Good to finally meet you Adam. + * InputOutput::ProhibitTwoArgOpen similarly will not complain if there's + a "use/require 5.005" statement in the file. RT #34385. + + Bug fixes: + * Perl::Critic can now critique a file named "0". However, PPI will give + a parse error until the next version comes out. Fixes RT #36127. + * Moved detection of the lack of any enabled Policies from P::C::Config + to Perl::Critic. This was causing the perlcritic.t in Parrot to fail. + Note, however, there are plans afoot to change how Perl::Critic is + configured and things that depend upon that may break. Please contact + users@perlcritic.tigris.org and tell us how you're using P::C::Config + directly so that we can take your needs into account. + +[1.086] Released on 2008-06-12 + + Policy Changes: + * NamingConventions::ProhibitAmbiguousNames now specifies the name that + it had problems with in its violation descriptions. + + Bug fixes: + * The color option wasn't being correctly set from a .perlcriticrc. + RT #36569. + + Minor changes: + * --colour is now a synonym for --color. + +[1.085] Released on 2008-06-07 + + New Policies: + * Documentation::RequirePackageMatchesPodName + + Policy Changes: + * Variables::ProhibitUnusedVariables detects a few more cases. It's + still very limited, though. + + Bug fixes: + * ControlStructures::ProhibitUnreachableCode didn't notice "until" was an + conditional expression. + + Minor documentation updates. + +[1.084] Released on 2008-05-24 + + New Features: + * perlcritic now supports a --list-themes option. + * You can specify the maximum number of violations you want per Policy + per document. Developers can give a default value for this for a + Policy by overriding default_maximum_violations_per_document(). + See RequireUseStrict and ProhibitMagicNumbers for examples. + + Policy Moved: + * The ValuesAndExpressions::ProhibitMagicNumbers policy has been moved + from Perl::Critic::More into the primary Perl::Critic distribution. + + New Policies: + * Variables::ProhibitUnusedVariables (very dumb, limited initial + implementation.) + * ControlStructures::ProhibitLabelsWithSpecialBlockNames + Contributed by Mike O'Regan. Kickin' ass, Mike. + + Policy Changes: + * ControlStructures::ProhibitUnreachableCode now handles the perl 5.10 + "//" and "err" operators. RT #36080 + * InputOutput::RequireBriefOpen now ignores opens of STDIN, STDOUT, + and STDERR. You're generally trying to make long-lasting global + effects when manipulating these. (RT #35774) + * RegularExpressions::ProhibitUnusualDelimiters now supports an + "allow_all_brackets" option. + * RegularExpressions::RequireBracesForMultiline now supports an + "allow_all_brackets" option. + * TestingAndDebugging::RequireUseStrict now accepts "use Moose::Role" + as equivalent to "use strict". (RT #34838) + * TestingAndDebugging::RequireUseWarnings now accepts "use Moose::Role" + as equivalent to "use warnings". (RT #34838) + * ValuesAndExpressions::ProhibitMagicNumbers now accepts constant + subroutines. + * Variables::ProhibitMatchVars no longer detects "use English;". + This problem is detected in a more clear way by + Modules::RequireNoMatchVarsWithUseEnglish. + * Variables::ProhibitPerl4PackageNames no longer complains about + $'/$POSTMATCH. RT #36059 + * Variables::RequireLocalizedPunctuationVars now allows the use of "my". + RT #33937 + + Bug Fixes: + * No longer falls over if a single file has a parse error. + + New Developer Features: + * If a document specifies a minimum perl version, e.g. "use 5.008003", + P::C::Document::highest_explicit_perl_version() will tell you what it + is. + * The parameter to P::C::Policy::initialize_if_enabled is now a + P::C::PolicyConfig object instead of a hash reference. + + Minor Changes: + * LOTS of documentation updates. + * A few more statistics are emitted by perlcritic with the --statistics + option. + * perlcritic --profile-proto now includes policy abstracts in its + output. + + Prerequisites: + * Now depends upon PPI 1.203. + * New dependency upon version. + +[1.083_006] Released on 2008-05-20 +[1.083_005] Released on 2008-05-19 +[1.083_004] Released on 2008-05-18 +[1.083_003] Released on 2008-05-17 +[1.083_002] Released on 2008-05-17 +[1.083_001] Released on 2008-04-13 + + Changes summarized into 1.084 above. For exact details, see Changes in + 1.083_006 on BackPAN. + +[1.082] Released on 2008-03-08 + + New Features: + * A new metadata system for defining policy parameters/options has been + added. This makes the life of policy authors easier because + configuration validation and parsing can be taken care of + automatically, in most cases. This allows greater integration with + IDEs and allows the perlcritic "--profile-proto" option to produce + better output. + + Note: This change does NOT REQUIRE ANY CHANGES to policies outside of + this distribution; they should continue to work as is. However, use + of this facility can reduce the size of your code and provide the + means for tools to discover more about your policy. If this change + does break any of your policies, please let us know. + + To learn how to take advantage of this facility, read + Perl::Critic::DEVELOPER and look at the source of any of the + configurable policies included in this distribution. + + There is a discussion of the design considerations for this facility in + the source repository under doc/PolicyParameter_Notes.pod. + + * Added support for "criticism-fatal" option in your perlcriticrc + file. This will be used by the criticism pragma to cause execution + to abort if the file contains any violations. + + New Policy: + * Module::RequireNoMatchVarsWithUseEnglish + + Policy Changes: + * Added an allow_last_statement_to_be_comma_separated_in_map_and_grep + option to ValuesAndExpressions::ProhibitCommaSeparatedStatements. + Partial response to http://rt.cpan.org/Public/Bug/Display.html?id=27654. + * ControlStructures::ProhibitPostfixControls gains the ability to have + the flow control statements allowed to be modified. This in response + to RT #29540. + * TestingAndDebugging::RequireUseStrict now accepts "use Moose" as + equivalent to "use strict". + * TestingAndDebugging::RequireUseWarnings now accepts "use Moose" as + equivalent to "use warnings". + + Bug Fixes: + * RT #31281 perlcritic doesn't recognize "#!/bin/env perl" shebang + * Replace usage of Unicode property escapes with POSIX character classes + order to restore 5.6 compatability. + * RT #30388 ValuesAndExpressions::ProhibitVersionStrings complained + about numbered directories in "use lib". + * Fixed handling of badly behaved spelling programs in PodSpelling. + +[1.081_006] Released on 2008-03-02 +[1.081_005] Released on 2007-12-29 +[1.081_004] Released on 2007-12-20 +[1.081_003] Released on 2007-12-16 +[1.081_002] Released on 2007-12-16 +[1.081_001] Released on 2007-12-15 + + Changes summarized into 1.082 above. For exact details, see Changes in + 1.081_006 on BackPAN. + +[1.080] Released on 2007-11-11 + + New Features: + * Allow a "## no critic" statement after a shebang on line 1 of a + file. This allows users to block violations that apply to + whole files and still allow shebangs. + + New Policies: (funded by a Perl Foundation grant) + * InputOutput::ProhibitExplicitStdin + * RegularExpressions::ProhibitFixedStringMatches + * RegularExpressions::RequireBracesForMultiline + * RegularExpressions::ProhibitUnusualDelimiters + * RegularExpressions::ProhibitUnusedCapture + * RegularExpressions::ProhibitComplexRegexes + * RegularExpressions::ProhibitSingleCharAlternation + * RegularExpressions::ProhibitEscapedMetacharacters + * RegularExpressions::ProhibitEnumeratedClasses + * InputOutput::RequireBriefOpen + * InputOutput::RequireCheckedSyscalls + + Other New Policies + * ControlStructures::ProhibitNegativeExpressionsInUnlessAndUntilConditions + + Policy Changes: + * Variables::ProhibitConditionalDeclarations now permits you to local-ize + variables in conditional declarations. This makes sense, since + C is actually a variable modifier, rather than a declaration. + Thanks to David Golden for reporting this. + + New Developer Features: + * Perl::Critic::Utils::PPIRegexp encapsulates interaction with + the PPI Regexp token classes. Those classes have very sparse + APIs, so this package hides away the ugly fiddling with PPI + internals. + * Added a new optional_modules parameter for the .run syntax. + + Bug fixes: + * PPI::Structure::List can now contain multiple children, + so P::C::Utils::parse_arg_list() needs to handle it. + + This was done in the process of fixing + http://rt.cpan.org/Ticket/Display.html?id=24924, which was a problem + with TestingAndDebugging::RequireTestLabels. + + * ValuesAndExpressions::ProhibitLongChainsOfMethodCalls wasn't resetting + chain length when it ran into the end of a sub-expression. + + http://rt.cpan.org/Public/Bug/Display.html?id=30040 + + * ValuesAndExpressions::ProhibitCommaSeparatedStatements was reporting + false positives when builtins which accept both no and multiple + arguments were involved. + + http://rt.cpan.org/Public/Bug/Display.html?id=27654 + + Internals: + * Removed all use of Carp in favor of exceptions. + + Prerequisites: + * Now requires PPI 1.201. A number of workarounds for PPI bugs have been + removed. + * New dependency upon Exception::Class. + + Installation: + * Use Devel::CheckOS to see whether Perl::Critic is being installed on + a Solaris system and warn about tar(1) chopping file names off if it + is. + +[1.079_003] Released on 2007-10-22 +[1.079_002] Released on 2007-10-21 +[1.079_001] Released on 2007-10-09 + + Changes summarized into 1.080 above. For exact details, see Changes in + 1.079_003 on BackPAN. + +[1.078] Released on 2007-09-19 + + Restore Perl::Critic::TestUtils::should_skip_author_tests() and + get_author_test_skip_message(). Some Perl::Critic add-on distributions + are using them. + +[1.077] Released on 2007-09-15 + + Note: if you don't have any problems installing Perl::Critic 1.076, there + is no need to upgrade to this version. There are no functionality + changes. This release only contains changes related to installation that + a few people were experiencing. + + Minor changes: + * Removed build-time use of Readonly, again, due to problems some people + were having when trying to compile the code by hand, rather than using + CPAN(PLUS)?. + * Don't run author tests if there's a .svn directory present because + users who grabbed the code from the source repository were executing + them and getting failures. + * Don't generate optional, module-hiding test wrappers if author tests + are not enabled. + + +[1.076] Released on 2007-09-07 + + It appears from reports on the 1.075_001 release that the subroutine + sigils were indeed the problem. Release to the general populace. + + +[1.075_001] Released on 2007-09-06 + + Bug Fixes: + Undo the changes in 1.073 and 1.074. Instead, stop using the subroutine + sigil in import and export lists. It is suspected that the problem lies + with Exporter stripping off ampersands. + +[1.074] Released on 2007-09-04 + + Bug Fixes: + Repeat the Makefile.PL change on + t/generate_without_optional_dependencies_wrappers.PL. + I love CPAN Testers. + +[1.073] Released on 2007-09-04 + + Bug Fixes: + Work around problems with the combination of Exporter & Readonly in + Makefile.PL on some machines. + +[1.072] Released on 2007-09-03 + + Bug Fixes: + * The Makefile generated by Makefile.PL was not syntactically correct + according to some versions of Solaris. Thanks to Diab Jerius + (DJERIUS) for discovery and testing. + * Fixed mis-definition of "quiet" value for the "--profile-strictness" + option. + * Enhanced testing with the absence of optional modules. + +[1.071] Released on 2007-08-24 + + The "Brown Paper Bag" Release + + Bug Fixes: + * Tests would not pass in environments that did not have all optional + dependencies installed. + +[1.07] Released on 2007-08-21 + + New Policies: (funded by a Perl Foundation grant) + * BuiltinFunctions::ProhibitBooleanGrep + * BuiltinFunctions::ProhibitComplexMappings + * Documentation::PodSpelling + * InputOutput::ProhibitJoinedReadline + * Subroutines::ProhibitManyArgs + * Subroutines::RequireArgUnpacking + * ValuesAndExpressions::ProhibitImplicitNewlines + * Variables::RequireLocalizedPunctuationVars + + Other New Policies + * Subroutines::ProhibitNestedSubs + + New Features: + * The "perlcritic --profile-proto" output now includes the "add_themes" + parameter for each policy. + * The perlcritic "--strict-profile" option has been replaced with a + "--profile-strictness" option. This new option takes values of "warn" + (the default), "fatal", and "quiet", which controls what happens with + ignorable problems in a .perlcriticrc file. + + New Developer Features: + * Perl::Critic::Policy now has an overridable initialize_if_enabled() + method which allows a Policy to perform expensive initialization after + it has been determined whether the user has it enabled or not. Also, + this method allows a Policy to say that it should be disabled + regardless of what the user says. + + Actually, use of this method is now encouraged over using a + constructor. + + Other Stuff: + * Now requires the Readonly module in order to be more self-compliant. + +[1.061] Released on 2007-07-24 + + Bug Fixes: + * Fix P::C::Theme-- Exporter in Perl 5.6 does not export import(), so you + must subclass it. *sigh* + * Fix P::C::Config::_validate_and_save_theme()-- eval of an empty string + does not reset $@/$EVAL_ERROR in Perl 5.6. + + Big thanks to Anirvan Chatterjee for identifying and helping debug these + issues. + +[1.06] Released on 2007-06-27 + + New Features: + * perlcritic now emits errors for all the problems it can find for the + global options in the command-line parameters and .perlcriticrc file, + rather than bailing on the first one it encounters. + + * perlcritic now has a "--strict-profile" option which will make warnings + about problems in a profile fatal. + + * perlcritic now has a "--statistics-only" option which suppresses the + display of individual violations and only shows the additional output + produced by the "--statistics" option. + + Feature requests: + * A value for "color" can now be specified in a .perlcriticrc. + http://rt.cpan.org/Ticket/Display.html?id=24877 + + New Policies: + * ValuesAndExpressions::ProhibitQuotesAsQuotelikeOperatorDelimiters + As suggested in http://rt.cpan.org/Ticket/Display.html?id=23290. + * ValuesAndExpressions::ProhibitLongChainsOfMethodCalls + * Modules::ProhibitExcessMainComplexity + As suggested in http://rt.cpan.org/Ticket/Display.html?id=24699 + + Minor changes: + * The perlcritic "--profile-proto" option now emits the short names for + policies, rather than the full ones. + + * The "-profileproto" and "-singlepolicy" options have been renamed to + "-profile-proto" and "-single-policy" in order to make the growing + number of command-line options comprehensible. The change of + "singlepolicy" also affects your F<.perlcriticrc> file. + +[1.053] Released on 2007-06-02 + + *DEVELOPMENT RELEASE* + + Bug Fixes: + Fixed bug in 15_statustics.t test script, which caused the build + to fail on machines that don't have Perl::Tidy installed. + +[1.052] Released on 2007-06-01 + + *DEVELOPMENT RELEASE* + + New Features: + * perlcritic now emits a summary about the scanned code when enabled by + the "-statistics" option. + + Policy Enhancements: + * InputOutput::ProhibitBacktickOperators can now be configured to only + check in void contexts. + + Bug Fixes: + * 27073: False positive in RequireUpperCaseHeredocTerminator + * 27065: CodeLayout::ProhibitTrailingWhitespace breaks under Perl 5.6.1 + * 26462: ControlStructures::ProhibitCascadingIfElse pod typo + * ValuesAndExpressions::ProhibitCommaSeparatedStatements was complaining + about multiple values in the list to be iterated over by a foreach loop. + * Corrected PBP page numbers for some policies (Quinn Weaver). + +[1.051] Released on 2007-04-12 + + *DEVELOPMENT RELEASE* + + No new policies. + No particular bug fixes. + + Internals: + * Added several new utility functions to support the StricterSubs distro. + Also, some of the existing functions in Perl-Critic-Utils have + changed in ways that might break your custom policies. + + Miscellanea: + * Updated Emacs plugin (Courtesy Josh ben Jore). + See extras/perlcritic.el for details. + * Added copy of BBEdit plugin (Courtesy of Josh Clark). + See extras/perl_critic_for_bbedit-1_0.zip for details + +[1.05] Released on 2007-03-19 + + Bug Fixes: + * 25557: t/20_policy_prohibittrailingwhitespace.t fails on Perl 5.8.0 + +[1.04] Released on 2007-03-18 + + Bug Fixes: + * 25008: Subroutines::RequireFinalReturn should allow "throw" + * 25085: False Positive - Heredoc terminator must be quoted + * 18423: VERSION check does not notice Readonly::Scalar version + * 25449: Proposal of $VERSION declaration (DUPLICATE) + + New Policies: + * CodeLayout::ProhibitTrailingWhitespace + * ValuesAndExpressions::ProhibitCommaSeparatedStatements + * Variables::ProhibitPerl4PackageNames + + Policy Enhancements: + * Subroutines::RequireFinalReturn can now be configured to recognize + your custom functions that behave like "die" or "exit". + * Documentation::RequirePodSections can be configured to match + Module::Starter:PBP or to really match the PBP book. + +[1.03] Released on 2007-02-13 + + Bug Fixes: + * Fixed a few more problems with the %f, %F, and %r format escapes. + * I forgot to put Conway's perlcriticrc file in the MANIFEST. Sorry. + + Interface Changes: + * Perl::Critic::Utils automatically exports everything. However, + this is deprecated. In the future, you must request your exports. + + Policy Changes: + * Duplicate violations of RequireExcplicitPackage are now squelched, + in the same way as RequireUseStrict and RequireUseWarnings. + +[1.02] Released on 2007-02-11 + + Bug Fixes: + * "undef" incorrectly triggered ProhibitMutatingListFunctions. + * 24876: %f and %F escapes not working in custom "verbose" format strings. + * 24875: Documentation bug in TestingAndDebugging::ProhibitNoStrict + + New Policies: + * InputOutput::RequireCheckedOpen + * InputOutput::RequireCheckedClose + + Other Cool Stuff: + * Added Conway's own suggested Perl::Critic configuration as + examples/perlcriticrc-conway. + + * See the examples/ directory for some neat demonstrations of using + the Perl::Critic API. Contributed by Elliot Shank. + + Interface Changes: + * Perl::Critic::Utils no longer exports anything by default. Policies + outside the distribution will need to specify what exactly they need + from this module. There are a number of tags that can be used in + addition to individual imports. + +[1.01] Released on 2007-01-24 + + PRODUCTION RELEASE: You may now consider the public Perl::Critic + API as "stable." Future minor releases will focus on bug fixes, + new policies, and internal refactoring. + + Bug Fixes: + * Fixed memory leak. This was reported by the Parrot team at + http://rt.perl.org/rt3/Ticket/Display.html?id=41230 + +[0.23] Released on 2007-01-19 + + Bug Fixes: + * 23994: Test 56 in t/05_utils.t of Perl::Critic v0.22 fails + * 24005: test 95 in t/13_bundled_policies fails in 0.22 + + + Groovy New Features: + * Added '%F' to the Violation format specifications. This will + give you just the name of file where the violation occurred + (i.e. without the path). + + * Improved validation of .perlcriticrc file. An invalid + default setting will now cause a fatal exception. A + strange-looking policy name will cause a warning. + + + Interface Changes: + * The syntax for theme expressions has changed. Instead of using + mathematical operators qw(+ * -) you must now use the logical + operators qw(|| && !). See the Perl::Critic docs for more info. + + * The @GLOBALS and @BUILTINS variables are no longer exported by + Perl::Critic::Utils. Use the is_perl_global() and is_perl_builtin() + functions instead. + + * Perl::Critic::Policy::policy_parameters() has bee renamed to + Perl::Critic::Policy::supported_paramters(). This was an + undocumented feature anyway, so it shouldn't affect anyone. + + + Other Internal Changes: + * Perl::Critic now requires B::Keywords v1.05 or newer. + + * A few internal classes have been refactored. As a result, + Set::Scalar is no longer a required dependency. + + +[0.22] Released on 2006-12-15 + + New Features: + * Introduced named severity levels: gentle, stern, harsh, cruel, brutal + You can use these named levels instead of the numeric ones. + For example: "perlcritic --severity=cruel MyModule.pm" + Or just: "perlcritic --cruel MyModule.pm" + + * For perlcritic, the "-List" option has been renamed to + "-profileproto". The output now includes the names of the + parameters that each Policy supports, if any. + + * Improved validation of Policy parameters in your F<.perlcriticrc> + Any invalid parameter now causes a fatal exception. + + Major Changes: + * Reassigned themes for most policies. Now there are fewer + themes and they are organized around programming concepts + instead of severity levels. If you have assigned your own + themes to any Policies, they should still work as expected. + + Policy Changes: + * ErrorHandling::RequireCarping will not complain if it can figure + out that the die or warn message will always end in a newline + ("\n"). The idea is that, if you put the newline there, you + don't indend for there to be any file/line/stack information + emitted, in which case you really don't want carp/croak. + + You can restore the old strict behavior by giving the policy + a false value for "allow_messages_ending_with_newlines" in your + configuration. + + Misc Changes: + + Added single-letter uppercase alternatives for some perlcritic options. + +[0.21_01] Released on 2006-12-03 + + New Policies: + * TestingAndDebugging::ProhibitProlongedStrictureOverride + * ControlStructures::ProhibitMutatingListFunctions + + New Features: + * Say "perlcritic -List" to get an expanded listing of all Policies. + The format is suitable for use as your .perlcriticrc file. + * Say "perlcritic -doc PATTERN" to get the documentation for all + Policies that match m/PATTERN/imx. This is a little easier than + typing in the full name of the Policy module with "perldoc". + * Say "perlcritic --singlepolicy PATTERN" to use one and only one + policy. + * Can now specify exceptions to Variables::ProhibitPackageVars, + for packages like File::Find that only interface through + package variables. + + Bug Fixes: + * 21713 false positive for parens used with substr and unpack. + * 22890 allow Rcs keywords in POD. + + Internals: + * Testing system overhauled. Details on the Policy/subtest + framework is in t/run.t. + * Added Perl::Critic::Utils::words_from_string. This is safer + than plain old C. + +[0.21] Released on 2006-11-05 + + New Policies: + * BuiltinFunctions::ProhibitReverseSortBlock + * BuiltinFunctions::ProhibitVoidGrep + * BuiltinFunctions::ProhibitVoidMap + * CodeLayout::RequireConsistentNewlines + * Modules::RequireFilenameMatchesPackage + * TestingAndDebugging::RequireTestLabels + * ValuesAndExpressions::ProhibitMismatchedOperators + + New Features: + * Introduced policy "themes." Themes are arbitrary names that can + be used to identify a group of related Policies. You can select + your favorite policies by combining themes in a mathematic expression + such as "pbp * (danger + risky)". See POD for details. + * perlcritic output is colorized if you have Term::ANSIColor. This + only works on non-Win32 platforms. Use -nocolor switch to disable. + * Say "perlcritic -count" to get just the the total number of + violations per file. Use this feature to quickly identify hot-spots. + * Use the -only switch to choose only from policies mentioned in your + .perlcriticrc file. This is useful if you usually only want to + work with a small subset of the policies. + * Default values for most of the perlcritic and Perl::Critic options + can now be defined in your .perlcriticrc file. See POD for details. + + Bug Fixes: + * 21236: wrong page number for "printing to filehandles" + * 21916: File handle ... wrong page reference in PBP [DUPE] + * 21714: false positive for capture var used in ternary condition + * 21718: No skip for File::Slurp in includes.t + * ProhibitBarewordFilehandles doesn't complain if you open + STDIN, STDOUT or STDERR. + * Parrot 40564: Subroutines::RequireFinalReturn should allow die, + exit, etc. + * Each "for" and "foreach" loop now adds one point to the McCabe + complexity score. + + Other Stuff: + * The internals of Perl::Critic have been significantly refactored, + but should still be compatible with existing third-party Policies. + * Added author-only tests to the release, but disabled by default + * New Perl::Critic::Utils::shebang_line() method + * Support for filename-based policies + * Additional prerequisite: Set::Scalar + * Now requires PPI version 1.118 + +[0.20] Released on 2006-09-10 + + Perl::Critic now requires PPI version 1.117, which fixes + several bugs that were introduced in version 1.116. + + Bug Fixes: + * 21079: grep clears @SITE_POLICIES + * 21352: Test failures with PPI 1.117 + * 11365: sub DESTROY detected as a builtin homonym + +[0.19] Released on 2006-08-20 + + New Policies: + * BuiltinFunctions::ProhibitStringySplit + * ControlStructures::ProhibitDeepNests + * RegularExpressions::ProhibitCaptureWithoutTest + * Variables::RequireLexicalLoopIterator + + New Features: + * "perlcritic -quiet" suppresses the "source OK" message. + * Variables::ProhibitPunctuationVars is now configurable. + + Bug Fixes: + * 20965: "Hard tabs used at" shouldn't check __DATA__ + * 21070: ProhibitNoisyQuotes hates overload + * Punctuation variables are now exempt from ProhibitLocalVars + + Other Stuff: + * Test coverage is now over 95% + +[0.18_01] Released on 2006-08-06 + + New Policies: + * Variables::RequireNegativeIndices + * InputOutput::ProhibitInteractiveTest + * ErrorHandling::RequireCarping + + Bug Fixes: + * RequireTidyCode tests fail if user has custom .perltidyrc file + * 20612: RequirePerlTidy was ignoring HEREDOCs + * 20659: __END__ statement considered "unreachable" + * Fix for PPI::XS (no C support) + * Support for 'goto' in ProhibitAmpersandSigils and + Subroutines::RequireFinalReturn + + Performance Enhancements: + * Introduced Perl::Critic::Document class. This is a facade for + PPI::Document which internally caches search results. This + reduces the running time by about 35%. The facade should be + invisible, unless you are doing something really sneaky. + * Extraction of the 'diagnostics' information is postponed + until it is really needed. Speedup has not been measured. + * Calls to helper-subs have been reordered for maximum efficiency. + + Other Cool Stuff: + * Includes updated version of perlcritic mode for emacs. See + "extras/perlcritic.el" for details. + +[0.18] Released on 2006-07-16 + + Bug Fixes: + * 14855: Home discovery is dangerously naive. + * 20060: Incorrect page numbers in ProhibitLeadingZeros + and RequireNumberSeparator policies. + * 20068: .perlrc file - inconsistent documentation + * 20254: "use vars qw(@EXPORT_OK)" not recognized + * 20463: No-case heredoc terminator incorrectly detected as lower case. + * ProhibitOneArgBless doesn't understand "bless {} => $class;" + * ProhibitExcessComplexity doesn't count 'while' and 'until' stmnts + * ProhibitLeadingZeros was falsely hits '.0456' + + Enhancements: + * If File::HomeDir is available, we use it to locate the + .perlcriticrc file. This should help make Perl::Critic + more portable to Win32 platforms. If File::HomeDir is + not installed, we resort to looking at the usual + environment variables. + + Other Stuff: + * Added "perlcritic.el", which is a super-cool emacs minor-mode + that runs perl-critic on the current buffer and returns the + results in a sexy hot-linked "compiler" window. You can run + it on demand, or have it run automatically every time you + save the buffer. You can find this in the extras/ directory. + Thanks to Josh ben Jore for contributing this. + + * Moved "Perl::Critic::TestUtils" into the installed build. This + module is only used for unit-testing Perl::Critic, but we + are putting it in the installation so folks who want to + extend Perl::Critic can make use of it. + +[0.17] Released on 2006-06-13 + + Bug Fixes: + * 19836: Perl-Critic0.16 fails tests during install. This was + caused by a bug in version 3.01 of Module::Pluggable. See + http://rt.cpan.org/Ticket/Display.html?id=19857 for details. + * Fixed bug in no-critic pragma parser. + + New Policies: + * ValuesAndExpressions::ProhibitEscapedCharacters + * BuiltinFunctions::RequireSimpleSortBlock + + Enhancements: + * Perl::Critic can export critique() as a static function. This + may appeal to folks who dislike the object-oriented interface. + +[0.16] Released on 2006-05-14 + + Enhancements: + * Perl::Critic->critique() now accepts a PPI::Document as the + argument. This feature creates an additional dependency on + Scalar::Util, but that shouldn't be a problem because it is + included with List::Util, which we already use. + + Miscellanea: + * Increased PPI dependency from v1.110 to v1.112 + +[0.15_03] Released on 2006-05-07 + + Bug Fixes: + * The "## no critic" feature is now implemented without eval-ing + the code. This keeps Perl::Critic pure and safe :) + * 19082: Page number for AUTOLOAD is incorrect + + New Policies: + * ControlStructures::ProhibitUnreachableCode (by Peter Guzis) + * Modules::ProhibitAutomaticExportation + * ValuesAndExpressions::ProhibitVersionStrings + +[0.15_02] Released on 2006-04-26 + + Bug Fixes: + * Reimplemented the '##no critic' pragmas to have effect on the + line where the violation is reported, not on the line where + the candidate element lives. This is because some policies + may report violations that are nowhere near the element that + is being evaluated. + * RequireUseStrict, RequireUseWarnings, and RequireExplcitPackage + all emit violations for _every_ statement that violates the + Policy. This closes a loophole that allowed you to circumvent + the Policy by using '## no critic' on just the first statement + that violated the policy. + * Fixed the workaround for the magic shebang that is inserted + by EU::MM and M::B. This had stopped working around version 13. + * Fixed -noprofile option on 'perlcritic'. This also had stopped + working at some point. + +[0.15_01] Released on 2006-04-16 + + Enhancements: + * Added diagnostic messages if the .perlcriticrc contains entries + for Policy modules that don't seem to exist. + * Now you can specify which policies to disable with the + "## no critic" pseudo-pragmas. This feature is still + experimental. See docs for details. + * perlcritic's directory searching now skips backup files, such + as *.swp, *.bak and *~. It also ignores version control system + directories, and the blib directory in module build directories. + + Bug Fixes: + * 18386: Bad example in POD for Documentation::RequirePodSections + * 18670: Test failure if Perl::Tidy is not installed + * 18698: Policy idea ProhibitUniversalFunctions (see New Policies) + * RequireInterpolationOfMetachars falsely hit strings like 'foo=s@' + which are commonly used with Getopt::Long. + + New Policies: + * BuiltinFunctions::ProhibitUniversalCan (by Chris Dolan) + * BuiltinFunctions::ProhibitUniversalIsa (by Chris Dolan) + + Miscellanea: + * All spurrious options for `perlcritic` are now fatal. + * Changed several of the -verbose formats to be more readable. + * Explicit -severity option now overrides -[12345] shortcuts instead + of being the other way around. + + + +[0.15] Released on 2006-03-26 + + Bug Fixes: + * 17964: Insists my code is not tidy (may not be fixed for all cases) + +[0.14_02] Released on 2006-03-19 + + Bug Fixes: + * 15653: False positive in OneArgSelect (fixed for real this time) + + New Policies: + * ClassHierarchies::ProhibitAutoloading + * Documentation::RequirePodSections + * InputOutput::RequireBracedFileHandleWithPrint + * ValuesAndExpressions::ProhibitMixedBooleanOperators + * Variables::RequireInitializationForLocalVars + +[0.14_01] Released on 2006-03-05 + + Bug Fixes: + * 14731: False positive: Builtin function called with parens + * 17554: False positive in CodeLayout::RequireTrailingCommas + + New Policies: + * ClassHierarchies::ProhibitExplicitISA + * InputOutput::ProhibitReadlineInForLoop + * Miscellanea::ProhibitFormats + * Miscellanea::ProhibitTies + * Variables::ProhibitConditionalDeclarations + +[0.14] Released on 2006-01-29 + + More documentation edits. + + New Policies: + * Documentation::RequirePodAtEnd + * Subroutines::ProtectPrivateSubs + * Variables::ProhibitMatchVars + * Variables::ProtectPrivateVars + + Bug Fixes: + * 15295: "## no critic" pragmas too aggresive on compound statements. + * t/01_config.t failed in the presence of third-party policies + +[0.13_05] Not released + + More documentation edits. + + Implemented workaround for failing pod_coverage tests. + + Bug Fixes: + * 16906: tr/// created false-postives with RegularExpression polices. + +[0.13_04] Released on 2005-12-31 + + Moved DEVELOPER.pod file into the Perl/Critic dir. + + More documentation edits. + +[0.13_03] Released on 20051230 + + perlcritic now prints 'source OK' if it doesn't find any + violations. This gives folks a warm fuzzy feeling. + + Tweaked some test cases that were failing on my Solaris + environment at work. + +[0.13_02] Released on 2005-12-29 + + Fixed Config to recognize fully-qualified module names in the + .perlcriticrc file. + + Various documentation edits. + +[0.13_01] Released on 2005-12-28 + + Replaced 'priority' concept with 'severity'. Now each Policy module + has a predefined severity level ranging from 1 to 5. By default, + perlcritic only reports the most severe violations. You can adjust + the severity threshold at the command line, and you can change + the severity for any Policy using the config file. + + Chris implemented the applies_to() mechanism, which allows each Policy + class to declare the types of PPI elements that it wants to examine. + When traversing the document, Perl::Critic invokes the Policy only + for elements that are of the correct type. This improves performance + by about 33%. + + Perl::Critic now uses a Plugin architecture to automatically + discover Policy modules. So if you have custom Policies, all you + have to do is install them in the Perl::Critic::Policy namespace -- + no need to add anything to your .perlcriticrc file. If you write + policies in a different namespace, you can configure that too. See + the Perl::Critic::Config docs for details. + + New Policies: + * Modules::RequireEndWithOne + * NamingConventions::ProhibitAmbiguousNames + * References::ProhibitDoubleSigils + * Subroutines::RequireFinalReturn + * Subroutines::ProhibitAmpersandSigils + * Subroutines::ProhibitExcessComplexity + * TestingAndDebugging::ProhibitNoStrict + * TestingAndDebugging::ProhibitNoWarnings + + Bug Fixes: + * 15101: Plugin architecture improves support for 3rd-party code + * 16319: Fixed incorrect PBP page number in ProhibitBarwordFilehandle + * 16321: Lists of empty quotes are now allowed by ProhibitQuotedWordLists + * 16288: Empty lists caused a fatal error RequireTrailingCommas + * 15653: Fixed false positive in OneArgSelect. + +[0.13] Released on 2005-10-31 + + Official release of 0.12_03. No code major changes. + +[0.12_03] Not released + + Renamed -Policy option to -include. Added -exclude to give the + opposite effect. + + Refactored constructor of Perl::Critic. Now, most of the work + is delegated to Perl::Critic::Config. I'm not sure I like how + this turned out, but we'll see how it goes. + + Renamed some Policy modules to be a bit more comprehensible. Note + that you may need to change your .perlcriticrc file accordingly. + I also suggest removing your current Perl::Critic installation + before installing this one. + + Name Changes: + * ProhibitUnpackagedCode => RequireExplicitPackage + * RequireQuotedWords => ProhibitQuotedWordLists + + Improved error message when Perl::Critic dies because PPI can't + parsee the input code. + + Changed output of -help to be more terse. + + Edited POD. + +[0.12_02] Not released + + Added -Policy option to perlcritic. The idea is to provide a + compact interface for selecting Policy modules at the command-line. + This feature is experimental and subject to change. + + Added a warning message if -verbose value looks strange. In most + applications, the -verbose option does not require a value, so people + might be puzzled when they write 'perlcritic -verbose my_file.pm' and + nothing seems to happen. + + Command-line options to perlcritic are now case-sensitive. This + makes it easier to abbreviate options that start with the same letters + (e.g. 'Version' and 'verbose') + + Fixed the new Policy modules that were misnamed and misplaced in the + previous distribution. + +[0.12_01] Not released + + Rewrote some of the ControlStructures and BuiltinFunction + policies to be simpler (and probably a little faster). + + Edited POD. Fixed some typos. Added PREREQUISITES section + to Perl::Critic documentation. + + Fixed the -verbose FORMAT option so that you can put metachars + in the FORMAT specification. If using perlcritic, be careful to + protect them from getting munged by the shell first. + + Replaced ProhibitRequireStatements with RequireBarewordIncludes + module. Courtesy of Chris Dolan + + Added configuration to ProhibitInterpolationOfLiterals so that + certain flavors of quotes can be exempt. This is for folks who + have configured their editor to use special syntax highlighting + for certain kinds of strings (SQL, for example). + + perlcritic now accepts multiple file arguments, so now you can + critique your entire distribution in one shot. As a result, the + output-formats have changed slightly. + + New Policy modules: + * BuiltinFunctions::ProhibitLvalueSubstr + * BuiltinFunctions::ProhibitSleepViaSelect + * ClassHierarchies::ProhibitOneArgBless + * CodeLayout::RequireTrailingCommas + * CodeLayout::RequireQuotedWordLists + * InputOutput::ProhibitTwoArgOpen + * InputOutput::ProhibitOneArgSelect + * InputOutput::ProhibitBarewordFileHandles + * Miscellanea::RequireRcsKeywords + * Modules::RequireVersionVar + * RegularExpressions::RequireExtendedFormatting + * RegularExpressions::RequireLineBoundaryMatching + + + Bug fixes: + 14923: 'require' is now permitted. See RequireBarewordIncludes. + 15022: Fixed false-positives when keywords are used as hash keys. + 15023: Fixed spurious Violations by removing magic shebang. + 15031: Fixed spelling mistakes (and probably added some new ones). + 15233: Postfix 'if' is now allowed with 'die', 'croak', etc. + +[0.12] Released 2005-10-10 + + Redesigned the 'verbose' feature. Now the output format + can be user-defined using a sprintf-like specification. + perlciritc also has a predefined output format that is + compatible with grep mode in editors like vim and emacs. + + 'return' is now exempt from ProhibitParensWithBuiltins. I may + extend this exemption to all unary functions. + + Edited POD. Added a super brief description of each policy + in the main Perl::Critic documentation. Added details about + editor integration. + + Additional Prerequisites: + * String::Format + +[0.11] Not released + + The internal dynamics and API of Perl::Critic have changed + considerably. The result is a 300% increase in performance. + See the POD in Perl::Critic::Policy for details. + + New Features: + * Added -verbose option to put more stuff in the output. In the + extreme, you can get the POD from Policy attached to each + and every violation. + + Additional Prerequisites: + * IO::String + * Pod::PlainText + +[0.10] Released 2005-10-05 + + Fixed stupid bug in newest Policy modules. They were returning + PPI objects instead of Perl::Critic::Violation objects. Doh! + + Fixed test scripts to prevent failures if the user already has a + .perlcriticrc file. + + 'ProhibitHardTabs' now allows leading tabs by default. + + Put the Changes file in reverse-chronological order, so the most + recent stuff is easy to find at the top of the file + +[0.09] Released 2005-10-04 + + Fixed several bugs: + * 14810: Now you are allowed to create your own 'import' function, + since this is frequently done with fancy modules. + * 14817: Parens, brackets, and braces are now excluded from + 'ProhibitNoisyQuotes' since they look better in quotes anyway. + * 14787: $1..$9 and '_' are exempt from ProhibitPunctuationVars + * 14899: Object methods with the same name as a built-in can + be called with parens (ProhibitParensWithBuiltins). + * 14901: Normalized the exit status of perlcritic to 0, 1, or 2. + See documentation for explanation. + * 14855: Partially fixed home directory discovery. Still not + completely portable, but at least doesn't create warnings. + + New features: + * 14734: Limit for number separators is now configurable + + New Policy modules: + * CodeLayout::ProhibitHardTabs + * ControlStructures::ProhibitUnlessBlocks + * ControlStructures::ProhibitUntilBlocks + * ControlStructures::ProhibitCStyleForLoops + + Changed the syntax for the magic comments. Adam had the + idea of using a pragma-like notation. I liked it. + +[0.08_2] Released 2005-09-27 + + Fixed problems with Perl::Critic::Config that caused File::Spec + to emit 'uninitialized value' warnings during the build. + + Added 1 Policy module contributed by Graham TerMarsch + + Switched from File::Spec::Functions to plain File::Spec because + I think its usage is more common. + + Removed 'FindBin' from the test files so I can be sure that the + right libraries are getting loaded. This means I'll have to + use the -l option with C. + + Edited more POD. + +[0.08_01] Not released + + Fixed "ProhibitParensWithBuiltins" to allow parens to be used with + object method calls that have the same name as a builtin functions. + + Introduced magical comments that allow developers to configure + Perl::Critic on-the-fly from within their code. + + Added META.yml files and POD tests to the build. I did this + mostly just to boost the Kwalitee score on CPANTS. + + Switched from "Config::Std" to "Config::Tiny" because it doesn't + require those fancy Damian modules that don't seem to work on + some older versions of Perl. + +[0.07] Released on 2005-09-21 + + Fixed bugs in the ProhibitCascadingIfElse policy. + + Added ProhibitExplicitReturnUndef policy + + Made ProhibitUnpackagedCode configurable so you can exempt scripts, + which typically don't have an explicit 'package' statement. + + ProhibitPackageVars policy now exempts vars in ALL_CAPS. This + is to permit common package variables like @EXPORT and $VERSION. + + Renamed "ProhibitStringyGrep and "ProhibitStringyMap" because + the so-called string form doesn't really exist. Now called + "RequireBlockGrep" and "RequireBlockMap" + + Corrected documentation on defining Policy names within the + configuration file. This still isn't very clear and needs + to be rewritten. + + Perl::Critic now requires PPI version 1.003, which has a few bug + fixes of its own. + + Rewrite some code just to make Perl::Critic more self-compliant. + + Added test cases to verify the configuration functionality. These + are not completely thorough and need more work. + +[0.06] Released on 2005-09-17 + + Now called 'Perl::Critic'. + + Added 4 new policy modules. + + Fixed bugs in build process. + + Added support for Module::Build. + +[0.05] Released on 2005-09-17 + + End of 'Perl::Review' releases. I have changed the name to + 'Perl::Critic' to avoid possible confusion with "The Perl Review" + magazine. + +[0.04] Released on 2005-09-14 + + Version 0.03 was a bust because I uploaded the wrong tarball to PAUSE. + +[0.03] Released on 2005-09-13. + + Fixed some POD links. + + Removed test cases for missing policy module. + +[0.02] Released on 2005-09-13. + + Major overhaul based on feedback from Perl community. + + Factored coding standards into separate modules (known as + Policies). The idea here is to allow other developers to easily + contribute additional coding standards. + + Reworked Perl::Review into a simple engine for loading and running + Policy modules. + + Gave perlreview a command-line interface and configuration file + for selecting which Policy modules to use. + +[0.01] Released on 2005-08-16. + + Initial version. + +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/Changes $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +# ex: set ts=8 sts=4 sw=4 tw=78 ft= expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/INSTALL b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/INSTALL new file mode 100644 index 0000000..6c7d522 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/INSTALL @@ -0,0 +1,35 @@ +####################################################################### +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/INSTALL $ +# $Date: 2007-07-25 10:34:04 -0500 (Wed, 25 Jul 2007) $ +# $Author: clonezone $ +# $Revision: 1790 $ +######################################################################## + +NOTICE + + The Perl::Critic distribution contains a fairly large number + of modules. And since it is still developing rapidly, some + of those modules may disappear or be renamed fron one release + to the next. Therefore, I suggest removing any existing + installation of Perl::Critic before installing a new one. + +INSTALLATION + + To install Perl::Critic with C give the following + commands to your favorite shell: + + tar -zxf Perl-Critic-1.061.tar.gz + cd Perl-Critic-1.061 + perl Makefile.PL + make + make test + make install + + Or if you prefer C, try this: + + tar -zxf Perl-Critic-1.061.tar.gz + cd Perl-Critic-1.061 + perl Build.pl + ./Build + ./Build test + ./Build install diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/LICENSE b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/LICENSE new file mode 100644 index 0000000..691d481 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/LICENSE @@ -0,0 +1,377 @@ +Terms of Perl 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 General Public License (GPL) +Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave, +Cambridge, MA 02139, USA. Everyone is permitted to copy and distribute +verbatim copies of this license document, but changing it is not allowed. + +Preamble + +The licenses for most software are designed to take away your freedom to share +and change it. By contrast, the GNU 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. This General Public License applies to most of +the Free Software Foundation's software and to any other program whose +authors commit to using it. (Some other Free Software Foundation software is +covered by the GNU Library General Public License instead.) You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the freedom +to distribute copies of free software (and charge for this service if you wish), 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 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 show +them these terms so they know 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. + +Finally, any free program is threatened constantly by software patents. We wish +to avoid the danger that redistributors of a free program will individually obtain +patent licenses, in effect making the program proprietary. To prevent this, we +have made it clear that any patent must be licensed for everyone's free use or +not licensed at all. + +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 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 +derivative work under copyright law: that is to say, a work containing the +Program or a portion of it, either verbatim or with modifications and/or translated +into another language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not covered by +this License; they are outside its scope. The act of running the Program is not +restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made by +running the Program). Whether that is true depends on what the Program does. + +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 License and to the absence of any +warranty; and give any other recipients of the Program a copy of this License +along with the Program. + +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. + +2. You may modify your copy or copies of the Program or any portion of it, thus +forming a work based on the Program, and copy and distribute such +modifications or work under the terms of Section 1 above, provided that you also +meet all of these conditions: + +a) You must cause the modified files to carry prominent notices stating that you +changed the files and the date of any change. + +b) You must cause any work that you distribute or publish, that in whole or in +part contains or is derived from the Program or any part thereof, to be licensed +as a whole at no charge to all third parties under the terms of this License. + +c) If the modified program normally reads commands interactively when run, you +must cause it, when started running for such interactive use in the most ordinary +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 License. (Exception: if the +Program itself is interactive but does not normally print such an announcement, +your work based on the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be reasonably +considered independent and separate works in themselves, then this License, +and its terms, do not apply to those sections when you distribute them as +separate works. But when you distribute the same sections as part of a whole +which is a work based on the Program, the distribution of the whole must be on +the terms of this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your rights to +work written entirely by you; rather, the intent is to exercise the right to control +the distribution of derivative or collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program with the +Program (or with a work based on the Program) on a volume of a storage or +distribution medium does not bring the other work under the scope of this +License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 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 Sections 1 and 2 above on a +medium customarily used for software interchange; or, + +b) Accompany it with a written offer, valid for at least three years, to give any +third party, for a charge no more than your cost of physically performing source +distribution, a complete machine-readable copy of the corresponding source +code, to be distributed under the terms of Sections 1 and 2 above on a medium +customarily used for software interchange; or, + +c) Accompany it with the information you received as to the offer to distribute +corresponding source code. (This alternative is allowed only for noncommercial +distribution and only if you received the program in object code or executable +form with such an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for making +modifications to it. For an executable work, complete source code means all the +source code for all modules it contains, plus any associated interface definition +files, plus the scripts used to control compilation and installation of the +executable. However, as a special exception, the source code distributed need +not include anything that is normally distributed (in either source or binary form) +with the major components (compiler, kernel, and so on) of the operating system +on which the executable runs, unless that component itself accompanies the +executable. + +If distribution of executable or object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the source +code from the same place counts as distribution of the source code, even though +third parties are not compelled to copy the source along with the object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, modify, +sublicense or distribute the Program is void, and will automatically terminate +your rights under this License. However, parties who have received copies, or +rights, from you under this License will not have their licenses terminated so long +as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the Program +or its derivative works. These actions are prohibited by law if you do not accept +this License. Therefore, by modifying or distributing 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 for copying, distributing or modifying the +Program or works based on it. + +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. You are not responsible for enforcing compliance by third parties +to this License. + +7. If, as a consequence of a court judgment or allegation of patent infringement +or for any other reason (not limited to patent issues), conditions are imposed on +you (whether by court order, agreement or otherwise) that contradict the +conditions of this License, they do not excuse you from the conditions of this +License. If you cannot distribute so as to satisfy simultaneously your obligations +under this License and any other pertinent obligations, then as a consequence +you may not distribute the Program at all. For example, if a patent license would +not permit royalty-free redistribution of the Program by all those who receive +copies directly or indirectly through you, then the only way you could satisfy +both it and this License would be to refrain entirely from distribution of the +Program. + +If any portion of this section is held invalid or unenforceable under any particular +circumstance, the balance of the section is intended to apply and the section as +a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or other +property right claims or to contest validity of any such claims; this section has +the sole purpose of protecting the integrity of the free software distribution +system, which is implemented by public license practices. Many people have +made generous contributions to the wide range of software distributed through +that system in reliance on consistent application of that system; it is up to the +author/donor to decide if he or she is willing to distribute software through any +other system and a licensee cannot impose that choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain countries +either by patents or by copyrighted interfaces, the original copyright holder who +places the Program under this License may add an explicit geographical +distribution limitation excluding those countries, so that distribution is permitted +only in or among countries not thus excluded. In such case, this License +incorporates the limitation as if written in the body of this License. + +9. 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 this 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 this License, you may choose any version ever +published by the Free Software Foundation. + +10. 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 + +11. 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. + +12. 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 + + +---------------------------------------------------------------------------- + +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 MERCHANTIBILITY AND FITNESS FOR A PARTICULAR +PURPOSE. + +The End + + diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/MANIFEST b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/MANIFEST new file mode 100644 index 0000000..7e9bb46 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/MANIFEST @@ -0,0 +1,413 @@ +bin/perlcritic +Build.PL +Changes +examples/generatestats +examples/loadanalysisdb +examples/perlcriticrc +examples/perlcriticrc-conway +extras/KomodoIntegration.pod +extras/perlcritic.el +inc/Devel/AssertOS.pm +inc/Devel/AssertOS/AIX.pm +inc/Devel/AssertOS/Amiga.pm +inc/Devel/AssertOS/Apple.pm +inc/Devel/AssertOS/BeOS.pm +inc/Devel/AssertOS/BSDOS.pm +inc/Devel/AssertOS/Cygwin.pm +inc/Devel/AssertOS/DEC.pm +inc/Devel/AssertOS/DGUX.pm +inc/Devel/AssertOS/DragonflyBSD.pm +inc/Devel/AssertOS/Dynix.pm +inc/Devel/AssertOS/FreeBSD.pm +inc/Devel/AssertOS/HPUX.pm +inc/Devel/AssertOS/Interix.pm +inc/Devel/AssertOS/Irix.pm +inc/Devel/AssertOS/Linux.pm +inc/Devel/AssertOS/MachTen.pm +inc/Devel/AssertOS/MacOSclassic.pm +inc/Devel/AssertOS/MacOSX.pm +inc/Devel/AssertOS/MicrosoftWindows.pm +inc/Devel/AssertOS/MPEiX.pm +inc/Devel/AssertOS/MSDOS.pm +inc/Devel/AssertOS/MSWin32.pm +inc/Devel/AssertOS/NetBSD.pm +inc/Devel/AssertOS/Netware.pm +inc/Devel/AssertOS/NeXT.pm +inc/Devel/AssertOS/OpenBSD.pm +inc/Devel/AssertOS/OS2.pm +inc/Devel/AssertOS/OS390.pm +inc/Devel/AssertOS/OS400.pm +inc/Devel/AssertOS/OSF.pm +inc/Devel/AssertOS/POSIXBC.pm +inc/Devel/AssertOS/RISCOS.pm +inc/Devel/AssertOS/SCO.pm +inc/Devel/AssertOS/Solaris.pm +inc/Devel/AssertOS/Sun.pm +inc/Devel/AssertOS/SunOS.pm +inc/Devel/AssertOS/SysVr4.pm +inc/Devel/AssertOS/SysVr5.pm +inc/Devel/AssertOS/Unicos.pm +inc/Devel/AssertOS/Unix.pm +inc/Devel/AssertOS/VMESA.pm +inc/Devel/AssertOS/VMS.pm +inc/Devel/AssertOS/VOS.pm +inc/Devel/CheckOS.pm +inc/Perl/Critic/BuildUtilities.pm +INSTALL +lib/Perl/Critic.pm +lib/Perl/Critic/Config.pm +lib/Perl/Critic/DEVELOPER.pod +lib/Perl/Critic/Document.pm +lib/Perl/Critic/Exception.pm +lib/Perl/Critic/Exception/AggregateConfiguration.pm +lib/Perl/Critic/Exception/Configuration.pm +lib/Perl/Critic/Exception/Configuration/Generic.pm +lib/Perl/Critic/Exception/Configuration/Option.pm +lib/Perl/Critic/Exception/Configuration/Option/Global.pm +lib/Perl/Critic/Exception/Configuration/Option/Global/ExtraParameter.pm +lib/Perl/Critic/Exception/Configuration/Option/Global/ParameterValue.pm +lib/Perl/Critic/Exception/Configuration/Option/Policy.pm +lib/Perl/Critic/Exception/Configuration/Option/Policy/ExtraParameter.pm +lib/Perl/Critic/Exception/Configuration/Option/Policy/ParameterValue.pm +lib/Perl/Critic/Exception/Fatal.pm +lib/Perl/Critic/Exception/Fatal/Generic.pm +lib/Perl/Critic/Exception/Fatal/Internal.pm +lib/Perl/Critic/Exception/Fatal/PolicyDefinition.pm +lib/Perl/Critic/Exception/IO.pm +lib/Perl/Critic/Exception/Parse.pm +lib/Perl/Critic/OptionsProcessor.pm +lib/Perl/Critic/Policy.pm +lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitBooleanGrep.pm +lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitComplexMappings.pm +lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitLvalueSubstr.pm +lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitReverseSortBlock.pm +lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitSleepViaSelect.pm +lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitStringyEval.pm +lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitStringySplit.pm +lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitUniversalCan.pm +lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitUniversalIsa.pm +lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitVoidGrep.pm +lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitVoidMap.pm +lib/Perl/Critic/Policy/BuiltinFunctions/RequireBlockGrep.pm +lib/Perl/Critic/Policy/BuiltinFunctions/RequireBlockMap.pm +lib/Perl/Critic/Policy/BuiltinFunctions/RequireGlobFunction.pm +lib/Perl/Critic/Policy/BuiltinFunctions/RequireSimpleSortBlock.pm +lib/Perl/Critic/Policy/ClassHierarchies/ProhibitAutoloading.pm +lib/Perl/Critic/Policy/ClassHierarchies/ProhibitExplicitISA.pm +lib/Perl/Critic/Policy/ClassHierarchies/ProhibitOneArgBless.pm +lib/Perl/Critic/Policy/CodeLayout/ProhibitHardTabs.pm +lib/Perl/Critic/Policy/CodeLayout/ProhibitParensWithBuiltins.pm +lib/Perl/Critic/Policy/CodeLayout/ProhibitQuotedWordLists.pm +lib/Perl/Critic/Policy/CodeLayout/ProhibitTrailingWhitespace.pm +lib/Perl/Critic/Policy/CodeLayout/RequireConsistentNewlines.pm +lib/Perl/Critic/Policy/CodeLayout/RequireTidyCode.pm +lib/Perl/Critic/Policy/CodeLayout/RequireTrailingCommas.pm +lib/Perl/Critic/Policy/ControlStructures/ProhibitCascadingIfElse.pm +lib/Perl/Critic/Policy/ControlStructures/ProhibitCStyleForLoops.pm +lib/Perl/Critic/Policy/ControlStructures/ProhibitDeepNests.pm +lib/Perl/Critic/Policy/ControlStructures/ProhibitLabelsWithSpecialBlockNames.pm +lib/Perl/Critic/Policy/ControlStructures/ProhibitMutatingListFunctions.pm +lib/Perl/Critic/Policy/ControlStructures/ProhibitNegativeExpressionsInUnlessAndUntilConditions.pm +lib/Perl/Critic/Policy/ControlStructures/ProhibitPostfixControls.pm +lib/Perl/Critic/Policy/ControlStructures/ProhibitUnlessBlocks.pm +lib/Perl/Critic/Policy/ControlStructures/ProhibitUnreachableCode.pm +lib/Perl/Critic/Policy/ControlStructures/ProhibitUntilBlocks.pm +lib/Perl/Critic/Policy/Documentation/PodSpelling.pm +lib/Perl/Critic/Policy/Documentation/RequirePackageMatchesPodName.pm +lib/Perl/Critic/Policy/Documentation/RequirePodAtEnd.pm +lib/Perl/Critic/Policy/Documentation/RequirePodSections.pm +lib/Perl/Critic/Policy/ErrorHandling/RequireCarping.pm +lib/Perl/Critic/Policy/ErrorHandling/RequireCheckingReturnValueOfEval.pm +lib/Perl/Critic/Policy/InputOutput/ProhibitBacktickOperators.pm +lib/Perl/Critic/Policy/InputOutput/ProhibitBarewordFileHandles.pm +lib/Perl/Critic/Policy/InputOutput/ProhibitExplicitStdin.pm +lib/Perl/Critic/Policy/InputOutput/ProhibitInteractiveTest.pm +lib/Perl/Critic/Policy/InputOutput/ProhibitJoinedReadline.pm +lib/Perl/Critic/Policy/InputOutput/ProhibitOneArgSelect.pm +lib/Perl/Critic/Policy/InputOutput/ProhibitReadlineInForLoop.pm +lib/Perl/Critic/Policy/InputOutput/ProhibitTwoArgOpen.pm +lib/Perl/Critic/Policy/InputOutput/RequireBracedFileHandleWithPrint.pm +lib/Perl/Critic/Policy/InputOutput/RequireBriefOpen.pm +lib/Perl/Critic/Policy/InputOutput/RequireCheckedClose.pm +lib/Perl/Critic/Policy/InputOutput/RequireCheckedOpen.pm +lib/Perl/Critic/Policy/InputOutput/RequireCheckedSyscalls.pm +lib/Perl/Critic/Policy/Miscellanea/ProhibitFormats.pm +lib/Perl/Critic/Policy/Miscellanea/ProhibitTies.pm +lib/Perl/Critic/Policy/Miscellanea/RequireRcsKeywords.pm +lib/Perl/Critic/Policy/Modules/ProhibitAutomaticExportation.pm +lib/Perl/Critic/Policy/Modules/ProhibitEvilModules.pm +lib/Perl/Critic/Policy/Modules/ProhibitExcessMainComplexity.pm +lib/Perl/Critic/Policy/Modules/ProhibitMultiplePackages.pm +lib/Perl/Critic/Policy/Modules/RequireBarewordIncludes.pm +lib/Perl/Critic/Policy/Modules/RequireEndWithOne.pm +lib/Perl/Critic/Policy/Modules/RequireExplicitPackage.pm +lib/Perl/Critic/Policy/Modules/RequireFilenameMatchesPackage.pm +lib/Perl/Critic/Policy/Modules/RequireNoMatchVarsWithUseEnglish.pm +lib/Perl/Critic/Policy/Modules/RequireVersionVar.pm +lib/Perl/Critic/Policy/NamingConventions/ProhibitAmbiguousNames.pm +lib/Perl/Critic/Policy/NamingConventions/ProhibitMixedCaseSubs.pm +lib/Perl/Critic/Policy/NamingConventions/ProhibitMixedCaseVars.pm +lib/Perl/Critic/Policy/References/ProhibitDoubleSigils.pm +lib/Perl/Critic/Policy/RegularExpressions/ProhibitCaptureWithoutTest.pm +lib/Perl/Critic/Policy/RegularExpressions/ProhibitComplexRegexes.pm +lib/Perl/Critic/Policy/RegularExpressions/ProhibitEnumeratedClasses.pm +lib/Perl/Critic/Policy/RegularExpressions/ProhibitEscapedMetacharacters.pm +lib/Perl/Critic/Policy/RegularExpressions/ProhibitFixedStringMatches.pm +lib/Perl/Critic/Policy/RegularExpressions/ProhibitSingleCharAlternation.pm +lib/Perl/Critic/Policy/RegularExpressions/ProhibitUnusedCapture.pm +lib/Perl/Critic/Policy/RegularExpressions/ProhibitUnusualDelimiters.pm +lib/Perl/Critic/Policy/RegularExpressions/RequireBracesForMultiline.pm +lib/Perl/Critic/Policy/RegularExpressions/RequireExtendedFormatting.pm +lib/Perl/Critic/Policy/RegularExpressions/RequireLineBoundaryMatching.pm +lib/Perl/Critic/Policy/Subroutines/ProhibitAmpersandSigils.pm +lib/Perl/Critic/Policy/Subroutines/ProhibitBuiltinHomonyms.pm +lib/Perl/Critic/Policy/Subroutines/ProhibitExcessComplexity.pm +lib/Perl/Critic/Policy/Subroutines/ProhibitExplicitReturnUndef.pm +lib/Perl/Critic/Policy/Subroutines/ProhibitManyArgs.pm +lib/Perl/Critic/Policy/Subroutines/ProhibitNestedSubs.pm +lib/Perl/Critic/Policy/Subroutines/ProhibitSubroutinePrototypes.pm +lib/Perl/Critic/Policy/Subroutines/ProtectPrivateSubs.pm +lib/Perl/Critic/Policy/Subroutines/RequireArgUnpacking.pm +lib/Perl/Critic/Policy/Subroutines/RequireFinalReturn.pm +lib/Perl/Critic/Policy/TestingAndDebugging/ProhibitNoStrict.pm +lib/Perl/Critic/Policy/TestingAndDebugging/ProhibitNoWarnings.pm +lib/Perl/Critic/Policy/TestingAndDebugging/ProhibitProlongedStrictureOverride.pm +lib/Perl/Critic/Policy/TestingAndDebugging/RequireTestLabels.pm +lib/Perl/Critic/Policy/TestingAndDebugging/RequireUseStrict.pm +lib/Perl/Critic/Policy/TestingAndDebugging/RequireUseWarnings.pm +lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitCommaSeparatedStatements.pm +lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitConstantPragma.pm +lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitEmptyQuotes.pm +lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitEscapedCharacters.pm +lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitImplicitNewlines.pm +lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitInterpolationOfLiterals.pm +lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitLeadingZeros.pm +lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitLongChainsOfMethodCalls.pm +lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitMagicNumbers.pm +lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitMismatchedOperators.pm +lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitMixedBooleanOperators.pm +lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitNoisyQuotes.pm +lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitQuotesAsQuotelikeOperatorDelimiters.pm +lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitVersionStrings.pm +lib/Perl/Critic/Policy/ValuesAndExpressions/RequireInterpolationOfMetachars.pm +lib/Perl/Critic/Policy/ValuesAndExpressions/RequireNumberSeparators.pm +lib/Perl/Critic/Policy/ValuesAndExpressions/RequireQuotedHeredocTerminator.pm +lib/Perl/Critic/Policy/ValuesAndExpressions/RequireUpperCaseHeredocTerminator.pm +lib/Perl/Critic/Policy/Variables/ProhibitConditionalDeclarations.pm +lib/Perl/Critic/Policy/Variables/ProhibitLocalVars.pm +lib/Perl/Critic/Policy/Variables/ProhibitMatchVars.pm +lib/Perl/Critic/Policy/Variables/ProhibitPackageVars.pm +lib/Perl/Critic/Policy/Variables/ProhibitPerl4PackageNames.pm +lib/Perl/Critic/Policy/Variables/ProhibitPunctuationVars.pm +lib/Perl/Critic/Policy/Variables/ProhibitUnusedVariables.pm +lib/Perl/Critic/Policy/Variables/ProtectPrivateVars.pm +lib/Perl/Critic/Policy/Variables/RequireInitializationForLocalVars.pm +lib/Perl/Critic/Policy/Variables/RequireLexicalLoopIterators.pm +lib/Perl/Critic/Policy/Variables/RequireLocalizedPunctuationVars.pm +lib/Perl/Critic/Policy/Variables/RequireNegativeIndices.pm +lib/Perl/Critic/PolicyConfig.pm +lib/Perl/Critic/PolicyFactory.pm +lib/Perl/Critic/PolicyListing.pm +lib/Perl/Critic/PolicyParameter.pm +lib/Perl/Critic/PolicyParameter/Behavior.pm +lib/Perl/Critic/PolicyParameter/Behavior/Boolean.pm +lib/Perl/Critic/PolicyParameter/Behavior/Enumeration.pm +lib/Perl/Critic/PolicyParameter/Behavior/Integer.pm +lib/Perl/Critic/PolicyParameter/Behavior/String.pm +lib/Perl/Critic/PolicyParameter/Behavior/StringList.pm +lib/Perl/Critic/PolicySummary.pod.PL +lib/Perl/Critic/ProfilePrototype.pm +lib/Perl/Critic/Statistics.pm +lib/Perl/Critic/TestUtils.pm +lib/Perl/Critic/Theme.pm +lib/Perl/Critic/ThemeListing.pm +lib/Perl/Critic/UserProfile.pm +lib/Perl/Critic/Utils.pm +lib/Perl/Critic/Utils/Constants.pm +lib/Perl/Critic/Utils/DataConversion.pm +lib/Perl/Critic/Utils/McCabe.pm +lib/Perl/Critic/Utils/POD.pm +lib/Perl/Critic/Utils/PPI.pm +lib/Perl/Critic/Utils/PPIRegexp.pm +lib/Perl/Critic/Violation.pm +LICENSE +Makefile.PL +MANIFEST This list of files +META.yml +README +t/00_modules.t +t/01_bad_perlcriticrc +t/01_config.t +t/01_config_bad_perlcriticrc.t +t/01_policy_config.t +t/02_policy.t +t/03_pragmas.t +t/04_optionsprocessor.t +t/05_utils.t +t/05_utils_pod.t +t/05_utils_ppi.t +t/06_violation.t +t/07_perlcritic.t +t/08_document.t +t/09_theme.t +t/10_userprofile.t +t/11_policyfactory.t +t/12_policylisting.t +t/12_themelisting.t +t/13_bundled_policies.t +t/14_policy_parameter_behavior_boolean.t +t/14_policy_parameter_behavior_enumeration.t +t/14_policy_parameter_behavior_integer.t +t/14_policy_parameter_behavior_list_string.t +t/14_policy_parameter_behavior_string.t +t/14_policy_parameters.t +t/15_statistics.t +t/16_roundtrip_defaults.t +t/20_policies.t +t/20_policy_podspelling.t +t/20_policy_prohibithardtabs.t +t/20_policy_prohibittrailingwhitespace.t +t/20_policy_requireconsistentnewlines.t +t/20_policy_requiretidycode.t +t/92_memory_leaks.t +t/98_pod_syntax.t +t/99_pod_coverage.t +t/BuiltinFunctions/ProhibitBooleanGrep.run +t/BuiltinFunctions/ProhibitComplexMappings.run +t/BuiltinFunctions/ProhibitLvalueSubstr.run +t/BuiltinFunctions/ProhibitReverseSortBlock.run +t/BuiltinFunctions/ProhibitSleepViaSelect.run +t/BuiltinFunctions/ProhibitStringyEval.run +t/BuiltinFunctions/ProhibitStringySplit.run +t/BuiltinFunctions/ProhibitUniversalCan.run +t/BuiltinFunctions/ProhibitUniversalIsa.run +t/BuiltinFunctions/ProhibitVoidGrep.run +t/BuiltinFunctions/ProhibitVoidMap.run +t/BuiltinFunctions/RequireBlockGrep.run +t/BuiltinFunctions/RequireBlockMap.run +t/BuiltinFunctions/RequireGlobFunction.run +t/BuiltinFunctions/RequireSimpleSortBlock.run +t/ClassHierarchies/ProhibitAutoloading.run +t/ClassHierarchies/ProhibitExplicitISA.run +t/ClassHierarchies/ProhibitOneArgBless.run +t/CodeLayout/ProhibitParensWithBuiltins.run +t/CodeLayout/ProhibitQuotedWordLists.run +t/CodeLayout/RequireTrailingCommas.run +t/ControlStructures/ProhibitCascadingIfElse.run +t/ControlStructures/ProhibitCStyleForLoops.run +t/ControlStructures/ProhibitDeepNests.run +t/ControlStructures/ProhibitLabelsWithSpecialBlockNames.run +t/ControlStructures/ProhibitMutatingListFunctions.run +t/ControlStructures/ProhibitNegativeExpressionsInUnlessAndUntilConditions.run.PL +t/ControlStructures/ProhibitPostfixControls.run +t/ControlStructures/ProhibitUnlessBlocks.run +t/ControlStructures/ProhibitUnreachableCode.run +t/ControlStructures/ProhibitUntilBlocks.run +t/Documentation/RequirePackageMatchesPodName.run +t/Documentation/RequirePodAtEnd.run +t/Documentation/RequirePodSections.run +t/ErrorHandling/RequireCarping.run +t/ErrorHandling/RequireCheckingReturnValueOfEval.run +t/generate_without_optional_dependencies_wrappers.PL +t/InputOutput/ProhibitBacktickOperators.run +t/InputOutput/ProhibitBarewordFileHandles.run +t/InputOutput/ProhibitExplicitStdin.run +t/InputOutput/ProhibitInteractiveTest.run +t/InputOutput/ProhibitJoinedReadline.run +t/InputOutput/ProhibitOneArgSelect.run +t/InputOutput/ProhibitReadlineInForLoop.run +t/InputOutput/ProhibitTwoArgOpen.run +t/InputOutput/RequireBracedFileHandleWithPrint.run +t/InputOutput/RequireBriefOpen.run +t/InputOutput/RequireCheckedClose.run +t/InputOutput/RequireCheckedOpen.run +t/InputOutput/RequireCheckedSyscalls.run +t/Miscellanea/ProhibitFormats.run +t/Miscellanea/ProhibitTies.run +t/Miscellanea/RequireRcsKeywords.run +t/Modules/ProhibitAutomaticExportation.run +t/Modules/ProhibitEvilModules.run +t/Modules/ProhibitExcessMainComplexity.run +t/Modules/ProhibitMultiplePackages.run +t/Modules/RequireBarewordIncludes.run +t/Modules/RequireEndWithOne.run +t/Modules/RequireExplicitPackage.run +t/Modules/RequireFilenameMatchesPackage.run +t/Modules/RequireNoMatchVarsWithUseEnglish.run +t/Modules/RequireVersionVar.run +t/NamingConventions/ProhibitAmbiguousNames.run +t/NamingConventions/ProhibitMixedCaseSubs.run +t/NamingConventions/ProhibitMixedCaseVars.run +t/References/ProhibitDoubleSigils.run +t/RegularExpressions/ProhibitCaptureWithoutTest.run +t/RegularExpressions/ProhibitComplexRegexes.run +t/RegularExpressions/ProhibitEnumeratedClasses.run +t/RegularExpressions/ProhibitEscapedMetacharacters.run +t/RegularExpressions/ProhibitFixedStringMatches.run +t/RegularExpressions/ProhibitSingleCharAlternation.run +t/RegularExpressions/ProhibitUnusedCapture.run +t/RegularExpressions/ProhibitUnusualDelimiters.run +t/RegularExpressions/RequireBracesForMultiline.run +t/RegularExpressions/RequireExtendedFormatting.run +t/RegularExpressions/RequireLineBoundaryMatching.run +t/Subroutines/ProhibitAmpersandSigils.run +t/Subroutines/ProhibitBuiltinHomonyms.run +t/Subroutines/ProhibitExcessComplexity.run +t/Subroutines/ProhibitExplicitReturnUndef.run +t/Subroutines/ProhibitManyArgs.run +t/Subroutines/ProhibitNestedSubs.run +t/Subroutines/ProhibitSubroutinePrototypes.run +t/Subroutines/ProtectPrivateSubs.run +t/Subroutines/RequireArgUnpacking.run +t/Subroutines/RequireFinalReturn.run +t/TestingAndDebugging/ProhibitNoStrict.run +t/TestingAndDebugging/ProhibitNoWarnings.run +t/TestingAndDebugging/ProhibitProlongedStrictureOverride.run +t/TestingAndDebugging/RequireTestLabels.run +t/TestingAndDebugging/RequireUseStrict.run +t/TestingAndDebugging/RequireUseWarnings.run +t/tlib/Perl/Critic/Policy/Test.pm +t/tlib/Perl/Critic/TestUtilitiesWithMinimalDependencies.pm +t/tlib/ViolationTest.pm +t/tlib/ViolationTest2.pm +t/ValuesAndExpressions/ProhibitCommaSeparatedStatements.run +t/ValuesAndExpressions/ProhibitConstantPragma.run +t/ValuesAndExpressions/ProhibitEmptyQuotes.run +t/ValuesAndExpressions/ProhibitEscapedCharacters.run +t/ValuesAndExpressions/ProhibitImplicitNewlines.run +t/ValuesAndExpressions/ProhibitInterpolationOfLiterals.run +t/ValuesAndExpressions/ProhibitLeadingZeros.run +t/ValuesAndExpressions/ProhibitLongChainsOfMethodCalls.run +t/ValuesAndExpressions/ProhibitMagicNumbers.run +t/ValuesAndExpressions/ProhibitMismatchedOperators.run +t/ValuesAndExpressions/ProhibitMixedBooleanOperators.run +t/ValuesAndExpressions/ProhibitNoisyQuotes.run +t/ValuesAndExpressions/ProhibitQuotesAsQuotelikeOperatorDelimiters.run +t/ValuesAndExpressions/ProhibitVersionStrings.run +t/ValuesAndExpressions/RequireInterpolationOfMetachars.run +t/ValuesAndExpressions/RequireNumberSeparators.run +t/ValuesAndExpressions/RequireQuotedHeredocTerminator.run +t/ValuesAndExpressions/RequireUpperCaseHeredocTerminator.run +t/Variables/ProhibitConditionalDeclarations.run +t/Variables/ProhibitLocalVars.run +t/Variables/ProhibitMatchVars.run +t/Variables/ProhibitPackageVars.run +t/Variables/ProhibitPerl4PackageNames.run +t/Variables/ProhibitPunctuationVars.run +t/Variables/ProhibitUnusedVariables.run +t/Variables/ProtectPrivateVars.run +t/Variables/RequireInitializationForLocalVars.run +t/Variables/RequireLexicalLoopIterators.run +t/Variables/RequireLocalizedPunctuationVars.run.PL +t/Variables/RequireNegativeIndices.run +TODO.pod +tools/ppidump +tools/svnkeywords +xt/author/40_criticize-code.t +xt/author/40_perlcriticrc-code +xt/author/41_criticize-policies.t +xt/author/41_perlcriticrc-policies +xt/author/80_policysummary.t +xt/author/93_version.t +xt/author/94_includes.t +xt/author/95_kwalitee.t diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/META.yml b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/META.yml new file mode 100644 index 0000000..18a1735 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/META.yml @@ -0,0 +1,595 @@ +--- +name: Perl-Critic +version: 1.088 +author: + - 'Jeffrey Thalhammer ' +abstract: Critique Perl source code for best-practices. +license: perl +resources: + MailingList: http://perlcritic.tigris.org/servlets/SummarizeList?listName=users + Repository: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/ + homepage: http://perlcritic.com + license: http://dev.perl.org/licenses/ +requires: + B::Keywords: 1.05 + Carp: 0 + Config::Tiny: 2 + English: 0 + Exception::Class: 1.23 + Exporter: 0 + File::Basename: 0 + File::Find: 0 + File::Path: 0 + File::Spec: 0 + File::Spec::Unix: 0 + File::Temp: 0 + Getopt::Long: 0 + IO::String: 0 + List::MoreUtils: 0 + List::Util: 0 + Module::Pluggable: 3.1 + PPI: 1.203 + PPI::Document: 1.203 + PPI::Document::File: 1.203 + PPI::Node: 1.203 + PPI::Token::Quote::Single: 1.203 + PPI::Token::Whitespace: 1.203 + Pod::PlainText: 0 + Pod::Select: 0 + Pod::Usage: 0 + Readonly: 1.03 + Scalar::Util: 0 + String::Format: 1.13 + base: 0 + charnames: 0 + overload: 0 + strict: 0 + version: 0 + warnings: 0 +build_requires: + Test::More: 0 + lib: 0 +recommends: + File::HomeDir: 0 + File::Which: 0 + IPC::Open2: 1 + Perl::Tidy: 0 + Pod::Spell: 1 + Readonly::XS: 0 + Regexp::Parser: 0.20 + Term::ANSIColor: 0 + Text::ParseWords: 3 +dynamic_config: 1 +provides: + Perl::Critic: + file: lib/Perl/Critic.pm + version: 1.088 + Perl::Critic::Config: + file: lib/Perl/Critic/Config.pm + version: 1.088 + Perl::Critic::Document: + file: lib/Perl/Critic/Document.pm + version: 1.088 + Perl::Critic::Exception: + file: lib/Perl/Critic/Exception.pm + version: 1.088 + Perl::Critic::Exception::AggregateConfiguration: + file: lib/Perl/Critic/Exception/AggregateConfiguration.pm + version: 1.088 + Perl::Critic::Exception::Configuration: + file: lib/Perl/Critic/Exception/Configuration.pm + version: 1.088 + Perl::Critic::Exception::Configuration::Generic: + file: lib/Perl/Critic/Exception/Configuration/Generic.pm + version: 1.088 + Perl::Critic::Exception::Configuration::Option: + file: lib/Perl/Critic/Exception/Configuration/Option.pm + version: 1.088 + Perl::Critic::Exception::Configuration::Option::Global: + file: lib/Perl/Critic/Exception/Configuration/Option/Global.pm + version: 1.088 + Perl::Critic::Exception::Configuration::Option::Global::ExtraParameter: + file: lib/Perl/Critic/Exception/Configuration/Option/Global/ExtraParameter.pm + version: 1.088 + Perl::Critic::Exception::Configuration::Option::Global::ParameterValue: + file: lib/Perl/Critic/Exception/Configuration/Option/Global/ParameterValue.pm + version: 1.088 + Perl::Critic::Exception::Configuration::Option::Policy: + file: lib/Perl/Critic/Exception/Configuration/Option/Policy.pm + version: 1.088 + Perl::Critic::Exception::Configuration::Option::Policy::ExtraParameter: + file: lib/Perl/Critic/Exception/Configuration/Option/Policy/ExtraParameter.pm + version: 1.088 + Perl::Critic::Exception::Configuration::Option::Policy::ParameterValue: + file: lib/Perl/Critic/Exception/Configuration/Option/Policy/ParameterValue.pm + version: 1.088 + Perl::Critic::Exception::Fatal: + file: lib/Perl/Critic/Exception/Fatal.pm + version: 1.088 + Perl::Critic::Exception::Fatal::Generic: + file: lib/Perl/Critic/Exception/Fatal/Generic.pm + version: 1.088 + Perl::Critic::Exception::Fatal::Internal: + file: lib/Perl/Critic/Exception/Fatal/Internal.pm + version: 1.088 + Perl::Critic::Exception::Fatal::PolicyDefinition: + file: lib/Perl/Critic/Exception/Fatal/PolicyDefinition.pm + version: 1.088 + Perl::Critic::Exception::IO: + file: lib/Perl/Critic/Exception/IO.pm + version: 1.088 + Perl::Critic::Exception::Parse: + file: lib/Perl/Critic/Exception/Parse.pm + version: 1.088 + Perl::Critic::OptionsProcessor: + file: lib/Perl/Critic/OptionsProcessor.pm + version: 1.088 + Perl::Critic::Policy: + file: lib/Perl/Critic/Policy.pm + version: 1.088 + Perl::Critic::Policy::BuiltinFunctions::ProhibitBooleanGrep: + file: lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitBooleanGrep.pm + version: 1.088 + Perl::Critic::Policy::BuiltinFunctions::ProhibitComplexMappings: + file: lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitComplexMappings.pm + version: 1.088 + Perl::Critic::Policy::BuiltinFunctions::ProhibitLvalueSubstr: + file: lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitLvalueSubstr.pm + version: 1.088 + Perl::Critic::Policy::BuiltinFunctions::ProhibitReverseSortBlock: + file: lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitReverseSortBlock.pm + version: 1.088 + Perl::Critic::Policy::BuiltinFunctions::ProhibitSleepViaSelect: + file: lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitSleepViaSelect.pm + version: 1.088 + Perl::Critic::Policy::BuiltinFunctions::ProhibitStringyEval: + file: lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitStringyEval.pm + version: 1.088 + Perl::Critic::Policy::BuiltinFunctions::ProhibitStringySplit: + file: lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitStringySplit.pm + version: 1.088 + Perl::Critic::Policy::BuiltinFunctions::ProhibitUniversalCan: + file: lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitUniversalCan.pm + version: 1.088 + Perl::Critic::Policy::BuiltinFunctions::ProhibitUniversalIsa: + file: lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitUniversalIsa.pm + version: 1.088 + Perl::Critic::Policy::BuiltinFunctions::ProhibitVoidGrep: + file: lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitVoidGrep.pm + version: 1.088 + Perl::Critic::Policy::BuiltinFunctions::ProhibitVoidMap: + file: lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitVoidMap.pm + version: 1.088 + Perl::Critic::Policy::BuiltinFunctions::RequireBlockGrep: + file: lib/Perl/Critic/Policy/BuiltinFunctions/RequireBlockGrep.pm + version: 1.088 + Perl::Critic::Policy::BuiltinFunctions::RequireBlockMap: + file: lib/Perl/Critic/Policy/BuiltinFunctions/RequireBlockMap.pm + version: 1.088 + Perl::Critic::Policy::BuiltinFunctions::RequireGlobFunction: + file: lib/Perl/Critic/Policy/BuiltinFunctions/RequireGlobFunction.pm + version: 1.088 + Perl::Critic::Policy::BuiltinFunctions::RequireSimpleSortBlock: + file: lib/Perl/Critic/Policy/BuiltinFunctions/RequireSimpleSortBlock.pm + version: 1.088 + Perl::Critic::Policy::ClassHierarchies::ProhibitAutoloading: + file: lib/Perl/Critic/Policy/ClassHierarchies/ProhibitAutoloading.pm + version: 1.088 + Perl::Critic::Policy::ClassHierarchies::ProhibitExplicitISA: + file: lib/Perl/Critic/Policy/ClassHierarchies/ProhibitExplicitISA.pm + version: 1.088 + Perl::Critic::Policy::ClassHierarchies::ProhibitOneArgBless: + file: lib/Perl/Critic/Policy/ClassHierarchies/ProhibitOneArgBless.pm + version: 1.088 + Perl::Critic::Policy::CodeLayout::ProhibitHardTabs: + file: lib/Perl/Critic/Policy/CodeLayout/ProhibitHardTabs.pm + version: 1.088 + Perl::Critic::Policy::CodeLayout::ProhibitParensWithBuiltins: + file: lib/Perl/Critic/Policy/CodeLayout/ProhibitParensWithBuiltins.pm + version: 1.088 + Perl::Critic::Policy::CodeLayout::ProhibitQuotedWordLists: + file: lib/Perl/Critic/Policy/CodeLayout/ProhibitQuotedWordLists.pm + version: 1.088 + Perl::Critic::Policy::CodeLayout::ProhibitTrailingWhitespace: + file: lib/Perl/Critic/Policy/CodeLayout/ProhibitTrailingWhitespace.pm + version: 1.088 + Perl::Critic::Policy::CodeLayout::RequireConsistentNewlines: + file: lib/Perl/Critic/Policy/CodeLayout/RequireConsistentNewlines.pm + version: 1.088 + Perl::Critic::Policy::CodeLayout::RequireTidyCode: + file: lib/Perl/Critic/Policy/CodeLayout/RequireTidyCode.pm + version: 1.088 + Perl::Critic::Policy::CodeLayout::RequireTrailingCommas: + file: lib/Perl/Critic/Policy/CodeLayout/RequireTrailingCommas.pm + version: 1.088 + Perl::Critic::Policy::ControlStructures::ProhibitCStyleForLoops: + file: lib/Perl/Critic/Policy/ControlStructures/ProhibitCStyleForLoops.pm + version: 1.088 + Perl::Critic::Policy::ControlStructures::ProhibitCascadingIfElse: + file: lib/Perl/Critic/Policy/ControlStructures/ProhibitCascadingIfElse.pm + version: 1.088 + Perl::Critic::Policy::ControlStructures::ProhibitDeepNests: + file: lib/Perl/Critic/Policy/ControlStructures/ProhibitDeepNests.pm + version: 1.088 + Perl::Critic::Policy::ControlStructures::ProhibitLabelsWithSpecialBlockNames: + file: lib/Perl/Critic/Policy/ControlStructures/ProhibitLabelsWithSpecialBlockNames.pm + version: 1.088 + Perl::Critic::Policy::ControlStructures::ProhibitMutatingListFunctions: + file: lib/Perl/Critic/Policy/ControlStructures/ProhibitMutatingListFunctions.pm + version: 1.088 + Perl::Critic::Policy::ControlStructures::ProhibitNegativeExpressionsInUnlessAndUntilConditions: + file: lib/Perl/Critic/Policy/ControlStructures/ProhibitNegativeExpressionsInUnlessAndUntilConditions.pm + version: 1.088 + Perl::Critic::Policy::ControlStructures::ProhibitPostfixControls: + file: lib/Perl/Critic/Policy/ControlStructures/ProhibitPostfixControls.pm + version: 1.088 + Perl::Critic::Policy::ControlStructures::ProhibitUnlessBlocks: + file: lib/Perl/Critic/Policy/ControlStructures/ProhibitUnlessBlocks.pm + version: 1.088 + Perl::Critic::Policy::ControlStructures::ProhibitUnreachableCode: + file: lib/Perl/Critic/Policy/ControlStructures/ProhibitUnreachableCode.pm + version: 1.088 + Perl::Critic::Policy::ControlStructures::ProhibitUntilBlocks: + file: lib/Perl/Critic/Policy/ControlStructures/ProhibitUntilBlocks.pm + version: 1.088 + Perl::Critic::Policy::Documentation::PodSpelling: + file: lib/Perl/Critic/Policy/Documentation/PodSpelling.pm + version: 1.088 + Perl::Critic::Policy::Documentation::RequirePackageMatchesPodName: + file: lib/Perl/Critic/Policy/Documentation/RequirePackageMatchesPodName.pm + version: 1.088 + Perl::Critic::Policy::Documentation::RequirePodAtEnd: + file: lib/Perl/Critic/Policy/Documentation/RequirePodAtEnd.pm + version: 1.088 + Perl::Critic::Policy::Documentation::RequirePodSections: + file: lib/Perl/Critic/Policy/Documentation/RequirePodSections.pm + version: 1.088 + Perl::Critic::Policy::ErrorHandling::RequireCarping: + file: lib/Perl/Critic/Policy/ErrorHandling/RequireCarping.pm + version: 1.088 + Perl::Critic::Policy::ErrorHandling::RequireCheckingReturnValueOfEval: + file: lib/Perl/Critic/Policy/ErrorHandling/RequireCheckingReturnValueOfEval.pm + version: 1.088 + Perl::Critic::Policy::InputOutput::ProhibitBacktickOperators: + file: lib/Perl/Critic/Policy/InputOutput/ProhibitBacktickOperators.pm + version: 1.088 + Perl::Critic::Policy::InputOutput::ProhibitBarewordFileHandles: + file: lib/Perl/Critic/Policy/InputOutput/ProhibitBarewordFileHandles.pm + version: 1.088 + Perl::Critic::Policy::InputOutput::ProhibitExplicitStdin: + file: lib/Perl/Critic/Policy/InputOutput/ProhibitExplicitStdin.pm + version: 1.088 + Perl::Critic::Policy::InputOutput::ProhibitInteractiveTest: + file: lib/Perl/Critic/Policy/InputOutput/ProhibitInteractiveTest.pm + version: 1.088 + Perl::Critic::Policy::InputOutput::ProhibitJoinedReadline: + file: lib/Perl/Critic/Policy/InputOutput/ProhibitJoinedReadline.pm + version: 1.088 + Perl::Critic::Policy::InputOutput::ProhibitOneArgSelect: + file: lib/Perl/Critic/Policy/InputOutput/ProhibitOneArgSelect.pm + version: 1.088 + Perl::Critic::Policy::InputOutput::ProhibitReadlineInForLoop: + file: lib/Perl/Critic/Policy/InputOutput/ProhibitReadlineInForLoop.pm + version: 1.088 + Perl::Critic::Policy::InputOutput::ProhibitTwoArgOpen: + file: lib/Perl/Critic/Policy/InputOutput/ProhibitTwoArgOpen.pm + version: 1.088 + Perl::Critic::Policy::InputOutput::RequireBracedFileHandleWithPrint: + file: lib/Perl/Critic/Policy/InputOutput/RequireBracedFileHandleWithPrint.pm + version: 1.088 + Perl::Critic::Policy::InputOutput::RequireBriefOpen: + file: lib/Perl/Critic/Policy/InputOutput/RequireBriefOpen.pm + version: 1.088 + Perl::Critic::Policy::InputOutput::RequireCheckedClose: + file: lib/Perl/Critic/Policy/InputOutput/RequireCheckedClose.pm + version: 1.088 + Perl::Critic::Policy::InputOutput::RequireCheckedOpen: + file: lib/Perl/Critic/Policy/InputOutput/RequireCheckedOpen.pm + version: 1.088 + Perl::Critic::Policy::InputOutput::RequireCheckedSyscalls: + file: lib/Perl/Critic/Policy/InputOutput/RequireCheckedSyscalls.pm + version: 1.088 + Perl::Critic::Policy::Miscellanea::ProhibitFormats: + file: lib/Perl/Critic/Policy/Miscellanea/ProhibitFormats.pm + version: 1.088 + Perl::Critic::Policy::Miscellanea::ProhibitTies: + file: lib/Perl/Critic/Policy/Miscellanea/ProhibitTies.pm + version: 1.088 + Perl::Critic::Policy::Miscellanea::RequireRcsKeywords: + file: lib/Perl/Critic/Policy/Miscellanea/RequireRcsKeywords.pm + version: 1.088 + Perl::Critic::Policy::Modules::ProhibitAutomaticExportation: + file: lib/Perl/Critic/Policy/Modules/ProhibitAutomaticExportation.pm + version: 1.088 + Perl::Critic::Policy::Modules::ProhibitEvilModules: + file: lib/Perl/Critic/Policy/Modules/ProhibitEvilModules.pm + version: 1.088 + Perl::Critic::Policy::Modules::ProhibitExcessMainComplexity: + file: lib/Perl/Critic/Policy/Modules/ProhibitExcessMainComplexity.pm + version: 1.088 + Perl::Critic::Policy::Modules::ProhibitMultiplePackages: + file: lib/Perl/Critic/Policy/Modules/ProhibitMultiplePackages.pm + version: 1.088 + Perl::Critic::Policy::Modules::RequireBarewordIncludes: + file: lib/Perl/Critic/Policy/Modules/RequireBarewordIncludes.pm + version: 1.088 + Perl::Critic::Policy::Modules::RequireEndWithOne: + file: lib/Perl/Critic/Policy/Modules/RequireEndWithOne.pm + version: 1.088 + Perl::Critic::Policy::Modules::RequireExplicitPackage: + file: lib/Perl/Critic/Policy/Modules/RequireExplicitPackage.pm + version: 1.088 + Perl::Critic::Policy::Modules::RequireFilenameMatchesPackage: + file: lib/Perl/Critic/Policy/Modules/RequireFilenameMatchesPackage.pm + version: 1.088 + Perl::Critic::Policy::Modules::RequireNoMatchVarsWithUseEnglish: + file: lib/Perl/Critic/Policy/Modules/RequireNoMatchVarsWithUseEnglish.pm + version: 1.088 + Perl::Critic::Policy::Modules::RequireVersionVar: + file: lib/Perl/Critic/Policy/Modules/RequireVersionVar.pm + version: 1.088 + Perl::Critic::Policy::NamingConventions::ProhibitAmbiguousNames: + file: lib/Perl/Critic/Policy/NamingConventions/ProhibitAmbiguousNames.pm + version: 1.088 + Perl::Critic::Policy::NamingConventions::ProhibitMixedCaseSubs: + file: lib/Perl/Critic/Policy/NamingConventions/ProhibitMixedCaseSubs.pm + version: 1.088 + Perl::Critic::Policy::NamingConventions::ProhibitMixedCaseVars: + file: lib/Perl/Critic/Policy/NamingConventions/ProhibitMixedCaseVars.pm + version: 1.088 + Perl::Critic::Policy::References::ProhibitDoubleSigils: + file: lib/Perl/Critic/Policy/References/ProhibitDoubleSigils.pm + version: 1.088 + Perl::Critic::Policy::RegularExpressions::ProhibitCaptureWithoutTest: + file: lib/Perl/Critic/Policy/RegularExpressions/ProhibitCaptureWithoutTest.pm + version: 1.088 + Perl::Critic::Policy::RegularExpressions::ProhibitComplexRegexes: + file: lib/Perl/Critic/Policy/RegularExpressions/ProhibitComplexRegexes.pm + version: 1.088 + Perl::Critic::Policy::RegularExpressions::ProhibitEnumeratedClasses: + file: lib/Perl/Critic/Policy/RegularExpressions/ProhibitEnumeratedClasses.pm + version: 1.088 + Perl::Critic::Policy::RegularExpressions::ProhibitEscapedMetacharacters: + file: lib/Perl/Critic/Policy/RegularExpressions/ProhibitEscapedMetacharacters.pm + version: 1.088 + Perl::Critic::Policy::RegularExpressions::ProhibitFixedStringMatches: + file: lib/Perl/Critic/Policy/RegularExpressions/ProhibitFixedStringMatches.pm + version: 1.088 + Perl::Critic::Policy::RegularExpressions::ProhibitSingleCharAlternation: + file: lib/Perl/Critic/Policy/RegularExpressions/ProhibitSingleCharAlternation.pm + version: 1.088 + Perl::Critic::Policy::RegularExpressions::ProhibitUnusedCapture: + file: lib/Perl/Critic/Policy/RegularExpressions/ProhibitUnusedCapture.pm + version: 1.088 + Perl::Critic::Policy::RegularExpressions::ProhibitUnusualDelimiters: + file: lib/Perl/Critic/Policy/RegularExpressions/ProhibitUnusualDelimiters.pm + version: 1.088 + Perl::Critic::Policy::RegularExpressions::RequireBracesForMultiline: + file: lib/Perl/Critic/Policy/RegularExpressions/RequireBracesForMultiline.pm + version: 1.088 + Perl::Critic::Policy::RegularExpressions::RequireExtendedFormatting: + file: lib/Perl/Critic/Policy/RegularExpressions/RequireExtendedFormatting.pm + version: 1.088 + Perl::Critic::Policy::RegularExpressions::RequireLineBoundaryMatching: + file: lib/Perl/Critic/Policy/RegularExpressions/RequireLineBoundaryMatching.pm + version: 1.088 + Perl::Critic::Policy::Subroutines::ProhibitAmpersandSigils: + file: lib/Perl/Critic/Policy/Subroutines/ProhibitAmpersandSigils.pm + version: 1.088 + Perl::Critic::Policy::Subroutines::ProhibitBuiltinHomonyms: + file: lib/Perl/Critic/Policy/Subroutines/ProhibitBuiltinHomonyms.pm + version: 1.088 + Perl::Critic::Policy::Subroutines::ProhibitExcessComplexity: + file: lib/Perl/Critic/Policy/Subroutines/ProhibitExcessComplexity.pm + version: 1.088 + Perl::Critic::Policy::Subroutines::ProhibitExplicitReturnUndef: + file: lib/Perl/Critic/Policy/Subroutines/ProhibitExplicitReturnUndef.pm + version: 1.088 + Perl::Critic::Policy::Subroutines::ProhibitManyArgs: + file: lib/Perl/Critic/Policy/Subroutines/ProhibitManyArgs.pm + version: 1.088 + Perl::Critic::Policy::Subroutines::ProhibitNestedSubs: + file: lib/Perl/Critic/Policy/Subroutines/ProhibitNestedSubs.pm + version: 1.088 + Perl::Critic::Policy::Subroutines::ProhibitSubroutinePrototypes: + file: lib/Perl/Critic/Policy/Subroutines/ProhibitSubroutinePrototypes.pm + version: 1.088 + Perl::Critic::Policy::Subroutines::ProtectPrivateSubs: + file: lib/Perl/Critic/Policy/Subroutines/ProtectPrivateSubs.pm + version: 1.088 + Perl::Critic::Policy::Subroutines::RequireArgUnpacking: + file: lib/Perl/Critic/Policy/Subroutines/RequireArgUnpacking.pm + version: 1.088 + Perl::Critic::Policy::Subroutines::RequireFinalReturn: + file: lib/Perl/Critic/Policy/Subroutines/RequireFinalReturn.pm + version: 1.088 + Perl::Critic::Policy::TestingAndDebugging::ProhibitNoStrict: + file: lib/Perl/Critic/Policy/TestingAndDebugging/ProhibitNoStrict.pm + version: 1.088 + Perl::Critic::Policy::TestingAndDebugging::ProhibitNoWarnings: + file: lib/Perl/Critic/Policy/TestingAndDebugging/ProhibitNoWarnings.pm + version: 1.088 + Perl::Critic::Policy::TestingAndDebugging::ProhibitProlongedStrictureOverride: + file: lib/Perl/Critic/Policy/TestingAndDebugging/ProhibitProlongedStrictureOverride.pm + version: 1.088 + Perl::Critic::Policy::TestingAndDebugging::RequireTestLabels: + file: lib/Perl/Critic/Policy/TestingAndDebugging/RequireTestLabels.pm + version: 1.088 + Perl::Critic::Policy::TestingAndDebugging::RequireUseStrict: + file: lib/Perl/Critic/Policy/TestingAndDebugging/RequireUseStrict.pm + version: 1.088 + Perl::Critic::Policy::TestingAndDebugging::RequireUseWarnings: + file: lib/Perl/Critic/Policy/TestingAndDebugging/RequireUseWarnings.pm + version: 1.088 + Perl::Critic::Policy::ValuesAndExpressions::ProhibitCommaSeparatedStatements: + file: lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitCommaSeparatedStatements.pm + version: 1.088 + Perl::Critic::Policy::ValuesAndExpressions::ProhibitConstantPragma: + file: lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitConstantPragma.pm + version: 1.088 + Perl::Critic::Policy::ValuesAndExpressions::ProhibitEmptyQuotes: + file: lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitEmptyQuotes.pm + version: 1.088 + Perl::Critic::Policy::ValuesAndExpressions::ProhibitEscapedCharacters: + file: lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitEscapedCharacters.pm + version: 1.088 + Perl::Critic::Policy::ValuesAndExpressions::ProhibitImplicitNewlines: + file: lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitImplicitNewlines.pm + version: 1.088 + Perl::Critic::Policy::ValuesAndExpressions::ProhibitInterpolationOfLiterals: + file: lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitInterpolationOfLiterals.pm + version: 1.088 + Perl::Critic::Policy::ValuesAndExpressions::ProhibitLeadingZeros: + file: lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitLeadingZeros.pm + version: 1.088 + Perl::Critic::Policy::ValuesAndExpressions::ProhibitLongChainsOfMethodCalls: + file: lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitLongChainsOfMethodCalls.pm + version: 1.088 + Perl::Critic::Policy::ValuesAndExpressions::ProhibitMagicNumbers: + file: lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitMagicNumbers.pm + version: 1.088 + Perl::Critic::Policy::ValuesAndExpressions::ProhibitMismatchedOperators: + file: lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitMismatchedOperators.pm + version: 1.088 + Perl::Critic::Policy::ValuesAndExpressions::ProhibitMixedBooleanOperators: + file: lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitMixedBooleanOperators.pm + version: 1.088 + Perl::Critic::Policy::ValuesAndExpressions::ProhibitNoisyQuotes: + file: lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitNoisyQuotes.pm + version: 1.088 + Perl::Critic::Policy::ValuesAndExpressions::ProhibitQuotesAsQuotelikeOperatorDelimiters: + file: lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitQuotesAsQuotelikeOperatorDelimiters.pm + version: 1.088 + Perl::Critic::Policy::ValuesAndExpressions::ProhibitVersionStrings: + file: lib/Perl/Critic/Policy/ValuesAndExpressions/ProhibitVersionStrings.pm + version: 1.088 + Perl::Critic::Policy::ValuesAndExpressions::RequireInterpolationOfMetachars: + file: lib/Perl/Critic/Policy/ValuesAndExpressions/RequireInterpolationOfMetachars.pm + version: 1.088 + Perl::Critic::Policy::ValuesAndExpressions::RequireNumberSeparators: + file: lib/Perl/Critic/Policy/ValuesAndExpressions/RequireNumberSeparators.pm + version: 1.088 + Perl::Critic::Policy::ValuesAndExpressions::RequireQuotedHeredocTerminator: + file: lib/Perl/Critic/Policy/ValuesAndExpressions/RequireQuotedHeredocTerminator.pm + version: 1.088 + Perl::Critic::Policy::ValuesAndExpressions::RequireUpperCaseHeredocTerminator: + file: lib/Perl/Critic/Policy/ValuesAndExpressions/RequireUpperCaseHeredocTerminator.pm + version: 1.088 + Perl::Critic::Policy::Variables::ProhibitConditionalDeclarations: + file: lib/Perl/Critic/Policy/Variables/ProhibitConditionalDeclarations.pm + version: 1.088 + Perl::Critic::Policy::Variables::ProhibitLocalVars: + file: lib/Perl/Critic/Policy/Variables/ProhibitLocalVars.pm + version: 1.088 + Perl::Critic::Policy::Variables::ProhibitMatchVars: + file: lib/Perl/Critic/Policy/Variables/ProhibitMatchVars.pm + version: 1.088 + Perl::Critic::Policy::Variables::ProhibitPackageVars: + file: lib/Perl/Critic/Policy/Variables/ProhibitPackageVars.pm + version: 1.088 + Perl::Critic::Policy::Variables::ProhibitPerl4PackageNames: + file: lib/Perl/Critic/Policy/Variables/ProhibitPerl4PackageNames.pm + version: 1.088 + Perl::Critic::Policy::Variables::ProhibitPunctuationVars: + file: lib/Perl/Critic/Policy/Variables/ProhibitPunctuationVars.pm + version: 1.088 + Perl::Critic::Policy::Variables::ProhibitUnusedVariables: + file: lib/Perl/Critic/Policy/Variables/ProhibitUnusedVariables.pm + version: 1.088 + Perl::Critic::Policy::Variables::ProtectPrivateVars: + file: lib/Perl/Critic/Policy/Variables/ProtectPrivateVars.pm + version: 1.088 + Perl::Critic::Policy::Variables::RequireInitializationForLocalVars: + file: lib/Perl/Critic/Policy/Variables/RequireInitializationForLocalVars.pm + version: 1.088 + Perl::Critic::Policy::Variables::RequireLexicalLoopIterators: + file: lib/Perl/Critic/Policy/Variables/RequireLexicalLoopIterators.pm + version: 1.088 + Perl::Critic::Policy::Variables::RequireLocalizedPunctuationVars: + file: lib/Perl/Critic/Policy/Variables/RequireLocalizedPunctuationVars.pm + version: 1.088 + Perl::Critic::Policy::Variables::RequireNegativeIndices: + file: lib/Perl/Critic/Policy/Variables/RequireNegativeIndices.pm + version: 1.088 + Perl::Critic::PolicyConfig: + file: lib/Perl/Critic/PolicyConfig.pm + version: 1.088 + Perl::Critic::PolicyFactory: + file: lib/Perl/Critic/PolicyFactory.pm + version: 1.088 + Perl::Critic::PolicyListing: + file: lib/Perl/Critic/PolicyListing.pm + version: 1.088 + Perl::Critic::PolicyParameter: + file: lib/Perl/Critic/PolicyParameter.pm + version: 1.088 + Perl::Critic::PolicyParameter::Behavior: + file: lib/Perl/Critic/PolicyParameter/Behavior.pm + version: 1.088 + Perl::Critic::PolicyParameter::Behavior::Boolean: + file: lib/Perl/Critic/PolicyParameter/Behavior/Boolean.pm + version: 1.088 + Perl::Critic::PolicyParameter::Behavior::Enumeration: + file: lib/Perl/Critic/PolicyParameter/Behavior/Enumeration.pm + version: 1.088 + Perl::Critic::PolicyParameter::Behavior::Integer: + file: lib/Perl/Critic/PolicyParameter/Behavior/Integer.pm + version: 1.088 + Perl::Critic::PolicyParameter::Behavior::String: + file: lib/Perl/Critic/PolicyParameter/Behavior/String.pm + version: 1.088 + Perl::Critic::PolicyParameter::Behavior::StringList: + file: lib/Perl/Critic/PolicyParameter/Behavior/StringList.pm + version: 1.088 + Perl::Critic::ProfilePrototype: + file: lib/Perl/Critic/ProfilePrototype.pm + version: 1.088 + Perl::Critic::Statistics: + file: lib/Perl/Critic/Statistics.pm + version: 1.088 + Perl::Critic::TestUtils: + file: lib/Perl/Critic/TestUtils.pm + version: 1.088 + Perl::Critic::Theme: + file: lib/Perl/Critic/Theme.pm + version: 1.088 + Perl::Critic::ThemeListing: + file: lib/Perl/Critic/ThemeListing.pm + version: 1.088 + Perl::Critic::UserProfile: + file: lib/Perl/Critic/UserProfile.pm + version: 1.088 + Perl::Critic::Utils: + file: lib/Perl/Critic/Utils.pm + version: 1.088 + Perl::Critic::Utils::Constants: + file: lib/Perl/Critic/Utils/Constants.pm + version: 1.088 + Perl::Critic::Utils::DataConversion: + file: lib/Perl/Critic/Utils/DataConversion.pm + version: 1.088 + Perl::Critic::Utils::McCabe: + file: lib/Perl/Critic/Utils/McCabe.pm + version: 1.088 + Perl::Critic::Utils::POD: + file: lib/Perl/Critic/Utils/POD.pm + version: 1.088 + Perl::Critic::Utils::PPI: + file: lib/Perl/Critic/Utils/PPI.pm + version: 1.088 + Perl::Critic::Utils::PPIRegexp: + file: lib/Perl/Critic/Utils/PPIRegexp.pm + version: 1.088 + Perl::Critic::Violation: + file: lib/Perl/Critic/Violation.pm + version: 1.088 +generated_by: Module::Build version 0.280801 +meta-spec: + url: http://module-build.sourceforge.net/META-spec-v1.2.html + version: 1.2 +no_index: + directory: + - doc + file: + - TODO.pod + - lib/Perl/Critic/PolicySummary.pod.PL diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/Makefile.PL b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/Makefile.PL new file mode 100644 index 0000000..58ca83a --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/Makefile.PL @@ -0,0 +1,124 @@ +####################################################################### +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/Makefile.PL $ +# $Date: 2008-06-17 14:27:21 -0500 (Tue, 17 Jun 2008) $ +# $Author: clonezone $ +# $Revision: 2450 $ +######################################################################## + +use 5.006001; + +use strict; +use warnings; + +use lib 'inc'; +use lib 'lib'; + +use ExtUtils::MakeMaker; + +use Perl::Critic::BuildUtilities qw< + test_wrappers_to_generate + get_PL_files + dump_unlisted_or_optional_module_versions + emit_tar_warning_if_necessary +>; + + +emit_tar_warning_if_necessary(); + + +# An attempt was made by Elliot to get the "resources" META.yml entry going +# here, but he failed. The version in Build.PL works. See the Makefile.PL +# in the ack distribution for an example. + +WriteMakefile( + NAME => 'Perl::Critic', + AUTHOR => 'Jeffrey Thalhammer ', + ABSTRACT_FROM => 'lib/Perl/Critic.pm', + VERSION_FROM => 'lib/Perl/Critic.pm', + EXE_FILES => ['bin/perlcritic'], + PL_FILES => get_PL_files(), + PREREQ_PM => { + 'B::Keywords' => 1.05, + 'Carp' => 0, + 'Config::Tiny' => 2, + 'English' => 0, + 'Exception::Class' => 1.23, + 'Exporter' => 0, + 'File::Basename' => 0, + 'File::Find' => 0, + 'File::Path' => 0, + 'File::Spec' => 0, + 'File::Spec::Unix' => 0, + 'File::Temp' => 0, + 'Getopt::Long' => 0, + 'IO::String' => 0, + 'List::MoreUtils' => 0, + 'List::Util' => 0, + 'Module::Pluggable' => 3.1, + 'PPI' => 1.203, + 'PPI::Document' => 1.203, + 'PPI::Document::File' => 1.203, + 'PPI::Node' => 1.203, + 'PPI::Token::Quote::Single' => 1.203, + 'PPI::Token::Whitespace' => 1.203, + 'Pod::PlainText' => 0, + 'Pod::Select' => 0, + 'Pod::Usage' => 0, + 'Readonly' => 1.03, + 'Scalar::Util' => 0, + 'String::Format' => 1.13, + 'base' => 0, + 'charnames' => 0, + 'overload' => 0, + 'strict' => 0, + 'version' => 0, + 'warnings' => 0, + 'overload' => 0, + 'strict' => 0, + 'version' => 0, + 'warnings' => 0, + + 'lib' => 0, + 'Test::More' => 0, + }, + realclean => { + FILES => + join + q< >, + 'lib/Perl/Critic/PolicySummary.pod', + test_wrappers_to_generate(), + 't/ControlStructures/ProhibitNegativeExpressionsInUnlessAndUntilConditions.run', + 't/Variables/RequireLocalizedPunctuationVars.run', + }, +); + +sub MY::postamble { + return <<"MAKE_FRAG"; +.PHONY: tags + +tags: +\tctags -f tags \\ +\t\t--recurse \\ +\t\t--totals \\ +\t\t\\ +\t\t--exclude=blib/ \\ +\t\t--exclude=t/lib \\ +\t\t--exclude=.svn \\ +\t\t--exclude='*~' \\ +\t\t\\ +\t\t--languages=Perl \\ +\t\t--langmap=Perl:+.t +MAKE_FRAG +} + +dump_unlisted_or_optional_module_versions(); + +############################################################################## +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/README b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/README new file mode 100644 index 0000000..f8d5aeb --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/README @@ -0,0 +1,704 @@ +NAME + Perl::Critic - Critique Perl source code for best-practices. + +SYNOPSIS + use Perl::Critic; + my $file = shift; + my $critic = Perl::Critic->new(); + my @violations = $critic->critique($file); + print @violations; + +DESCRIPTION + Perl::Critic is an extensible framework for creating and applying coding + standards to Perl source code. Essentially, it is a static source code + analysis engine. Perl::Critic is distributed with a number of + Perl::Critic::Policy modules that attempt to enforce various coding + guidelines. Most Policy modules are based on Damian Conway's book Perl + Best Practices. However, Perl::Critic is not limited to PBP and will + even support Policies that contradict Conway. You can enable, disable, + and customize those Polices through the Perl::Critic interface. You can + also create new Policy modules that suit your own tastes. + + For a command-line interface to Perl::Critic, see the documentation for + perlcritic. If you want to integrate Perl::Critic with your build + process, Test::Perl::Critic provides an interface that is suitable for + test scripts. Also, Test::Perl::Critic::Progressive is useful for + gradually applying coding standards to legacy code. For the ultimate + convenience (at the expense of some flexibility) see the criticism + pragma. + + Win32 and ActivePerl users can find PPM distributions of Perl::Critic at + . + + If you'd like to try Perl::Critic without installing anything, there is + a web-service available at . The web-service does + not yet support all the configuration features that are available in the + native Perl::Critic API, but it should give you a good idea of what it + does. You can also invoke the perlcritic web-service from the + command-line by doing an HTTP-post, such as one of these: + + $> POST http://perlcritic.com/perl/critic.pl < MyModule.pm + $> lwp-request -m POST http://perlcritic.com/perl/critic.pl < MyModule.pm + $> wget -q -O - --post-file=MyModule.pm http://perlcritic.com/perl/critic.pl + + Please note that the perlcritic web-service is still alpha code. The URL + and interface to the service are subject to change. + +CONSTRUCTOR + "new( [ -profile => $FILE, -severity => $N, -theme => $string, -include + => \@PATTERNS, -exclude => \@PATTERNS, -top => $N, -only => $B, + -profile-strictness => $PROFILE_STRICTNESS_{WARN|FATAL|QUIET}, -force => + $B, -verbose => $N ], -color => $B, -criticism-fatal => $B)" + "new( -config => Perl::Critic::Config->new() )" + "new()" + Returns a reference to a new Perl::Critic object. Most arguments are + just passed directly into Perl::Critic::Config, but I have described + them here as well. The default value for all arguments can be + defined in your .perlcriticrc file. See the "CONFIGURATION" section + for more information about that. All arguments are optional + key-value pairs as follows: + + -profile is a path to a configuration file. If $FILE is not defined, + Perl::Critic::Config attempts to find a .perlcriticrc configuration + file in the current directory, and then in your home directory. + Alternatively, you can set the "PERLCRITIC" environment variable to + point to a file in another location. If a configuration file can't + be found, or if $FILE is an empty string, then all Policies will be + loaded with their default configuration. See "CONFIGURATION" for + more information. + + -severity is the minimum severity level. Only Policy modules that + have a severity greater than $N will be applied. Severity values are + integers ranging from 1 (least severe) to 5 (most severe). The + default is 5. For a given "-profile", decreasing the "-severity" + will usually reveal more Policy violations. You can set the default + value for this option in your .perlcriticrc file. Users can redefine + the severity level for any Policy in their .perlcriticrc file. See + "CONFIGURATION" for more information. + + If it is difficult for you to remember whether severity "5" is the + most or least restrictive level, then you can use one of these named + values: + + SEVERITY NAME ...is equivalent to... SEVERITY NUMBER + -------------------------------------------------------- + -severity => 'gentle' -severity => 5 + -severity => 'stern' -severity => 4 + -severity => 'harsh' -severity => 3 + -severity => 'cruel' -severity => 2 + -severity => 'brutal' -severity => 1 + + -theme is special expression that determines which Policies to apply + based on their respective themes. For example, the following would + load only Policies that have a 'bugs' AND 'pbp' theme: + + my $critic = Perl::Critic->new( -theme => 'bugs && pbp' ); + + Unless the "-severity" option is explicitly given, setting "-theme" + silently causes the "-severity" to be set to 1. You can set the + default value for this option in your .perlcriticrc file. See the + "POLICY THEMES" section for more information about themes. + + -include is a reference to a list of string @PATTERNS. Policy + modules that match at least one "m/$PATTERN/imx" will always be + loaded, irrespective of all other settings. For example: + + my $critic = Perl::Critic->new(-include => ['layout'] -severity => 4); + + This would cause Perl::Critic to apply all the "CodeLayout::*" + Policy modules even though they have a severity level that is less + than 4. You can set the default value for this option in your + .perlcriticrc file. You can also use "-include" in conjunction with + the "-exclude" option. Note that "-exclude" takes precedence over + "-include" when a Policy matches both patterns. + + -exclude is a reference to a list of string @PATTERNS. Policy + modules that match at least one "m/$PATTERN/imx" will not be loaded, + irrespective of all other settings. For example: + + my $critic = Perl::Critic->new(-exclude => ['strict'] -severity => 1); + + This would cause Perl::Critic to not apply the "RequireUseStrict" + and "ProhibitNoStrict" Policy modules even though they have a + severity level that is greater than 1. You can set the default value + for this option in your .perlcriticrc file. You can also use + "-exclude" in conjunction with the "-include" option. Note that + "-exclude" takes precedence over "-include" when a Policy matches + both patterns. + + -single-policy is a string "PATTERN". Only one policy that matches + "m/$PATTERN/imx" will be used. Policies that do not match will be + excluded. This option has precedence over the "-severity", "-theme", + "-include", "-exclude", and "-only" options. You can set the default + value for this option in your .perlcriticrc file. + + -top is the maximum number of Violations to return when ranked by + their severity levels. This must be a positive integer. Violations + are still returned in the order that they occur within the file. + Unless the "-severity" option is explicitly given, setting "-top" + silently causes the "-severity" to be set to 1. You can set the + default value for this option in your .perlcriticrc file. + + -only is a boolean value. If set to a true value, Perl::Critic will + only choose from Policies that are mentioned in the user's profile. + If set to a false value (which is the default), then Perl::Critic + chooses from all the Policies that it finds at your site. You can + set the default value for this option in your .perlcriticrc file. + + -profile-strictness is an enumerated value, one of + "$PROFILE_STRICTNESS_WARN" in Perl::Critic::Utils::Constants (the + default), "$PROFILE_STRICTNESS_FATAL" in + Perl::Critic::Utils::Constants, and "$PROFILE_STRICTNESS_QUIET" in + Perl::Critic::Utils::Constants. If set to + "$PROFILE_STRICTNESS_FATAL" in Perl::Critic::Utils::Constants, + Perl::Critic will make certain warnings about problems found in a + .perlcriticrc or file specified via the -profile option fatal. For + example, Perl::Critic normally only "warn"s about profiles referring + to non-existent Policies, but this value makes this situation fatal. + Correspondingly, "$PROFILE_STRICTNESS_QUIET" in + Perl::Critic::Utils::Constants makes Perl::Critic shut up about + these things. + + -force is a boolean value that controls whether Perl::Critic + observes the magical "## no critic" pseudo-pragmas in your code. If + set to a true value, Perl::Critic will analyze all code. If set to a + false value (which is the default) Perl::Critic will ignore code + that is tagged with these comments. See "BENDING THE RULES" for more + information. You can set the default value for this option in your + .perlcriticrc file. + + -verbose can be a positive integer (from 1 to 11), or a literal + format specification. See Perl::Critic::Violation for an explanation + of format specifications. You can set the default value for this + option in your .perlcriticrc file. + + -color is not used by Perl::Critic but is provided for the benefit + of perlcritic. + + -criticism-fatal is not used by Perl::Critic but is provided for the + benefit of criticism. + + -config is a reference to a Perl::Critic::Config object. If you have + created your own Config object for some reason, you can pass it in + here instead of having Perl::Critic create one for you. Using the + "-config" option causes all the other options to be silently + ignored. + +METHODS + "critique( $source_code )" + Runs the $source_code through the Perl::Critic engine using all the + Policies that have been loaded into this engine. If $source_code is + a scalar reference, then it is treated as a string of actual Perl + code. If $source_code is a reference to an instance of + PPI::Document, then that instance is used directly. Otherwise, it is + treated as a path to a local file containing Perl code. This method + returns a list of Perl::Critic::Violation objects for each violation + of the loaded Policies. The list is sorted in the order that the + Violations appear in the code. If there are no violations, this + method returns an empty list. + + "add_policy( -policy => $policy_name, -params => \%param_hash )" + Creates a Policy object and loads it into this Critic. If the object + cannot be instantiated, it will throw a fatal exception. Otherwise, + it returns a reference to this Critic. + + -policy is the name of a Perl::Critic::Policy subclass module. The + 'Perl::Critic::Policy' portion of the name can be omitted for + brevity. This argument is required. + + -params is an optional reference to a hash of Policy parameters. The + contents of this hash reference will be passed into to the + constructor of the Policy module. See the documentation in the + relevant Policy module for a description of the arguments it + supports. + + " policies() " + Returns a list containing references to all the Policy objects that + have been loaded into this engine. Objects will be in the order that + they were loaded. + + " config() " + Returns the Perl::Critic::Config object that was created for or + given to this Critic. + + " statistics() " + Returns the Perl::Critic::Statistics object that was created for + this Critic. The Statistics object accumulates data for all files + that are analyzed by this Critic. + +FUNCTIONAL INTERFACE + For those folks who prefer to have a functional interface, The + "critique" method can be exported on request and called as a static + function. If the first argument is a hashref, its contents are used to + construct a new Perl::Critic object internally. The keys of that hash + should be the same as those supported by the "Perl::Critic::new" method. + Here are some examples: + + use Perl::Critic qw(critique); + + # Use default parameters... + @violations = critique( $some_file ); + + # Use custom parameters... + @violations = critique( {-severity => 2}, $some_file ); + + # As a one-liner + %> perl -MPerl::Critic=critique -e 'print critique(shift)' some_file.pm + + None of the other object-methods are currently supported as static + functions. Sorry. + +CONFIGURATION + Most of the settings for Perl::Critic and each of the Policy modules can + be controlled by a configuration file. The default configuration file is + called .perlcriticrc. Perl::Critic will look for this file in the + current directory first, and then in your home directory. Alternatively, + you can set the "PERLCRITIC" environment variable to explicitly point to + a different file in another location. If none of these files exist, and + the "-profile" option is not given to the constructor, then all the + modules that are found in the Perl::Critic::Policy namespace will be + loaded with their default configuration. + + The format of the configuration file is a series of INI-style blocks + that contain key-value pairs separated by '='. Comments should start + with '#' and can be placed on a separate line or after the name-value + pairs if you desire. + + Default settings for Perl::Critic itself can be set before the first + named block. For example, putting any or all of these at the top of your + configuration file will set the default value for the corresponding + constructor argument. + + severity = 3 #Integer or named level + only = 1 #Zero or One + force = 0 #Zero or One + verbose = 4 #Integer or format spec + top = 50 #A positive integer + theme = (pbp || security) && bugs #A theme expression + include = NamingConventions ClassHierarchies #Space-delimited list + exclude = Variables Modules::RequirePackage #Space-delimited list + criticism-fatal = 1 #Zero or One + color = 1 #Zero or One + + The remainder of the configuration file is a series of blocks like this: + + [Perl::Critic::Policy::Category::PolicyName] + severity = 1 + set_themes = foo bar + add_themes = baz + maximum_violations_per_document = 57 + arg1 = value1 + arg2 = value2 + + "Perl::Critic::Policy::Category::PolicyName" is the full name of a + module that implements the policy. The Policy modules distributed with + Perl::Critic have been grouped into categories according to the table of + contents in Damian Conway's book Perl Best Practices. For brevity, you + can omit the 'Perl::Critic::Policy' part of the module name. + + "severity" is the level of importance you wish to assign to the Policy. + All Policy modules are defined with a default severity value ranging + from 1 (least severe) to 5 (most severe). However, you may disagree with + the default severity and choose to give it a higher or lower severity, + based on your own coding philosophy. You can set the "severity" to an + integer from 1 to 5, or use one of the equivalent names: + + SEVERITY NAME ...is equivalent to... SEVERITY NUMBER + ---------------------------------------------------- + gentle 5 + stern 4 + harsh 3 + cruel 2 + brutal 1 + + "set_themes" sets the theme for the Policy and overrides its default + theme. The argument is a string of one or more whitespace-delimited + alphanumeric words. Themes are case-insensitive. See "POLICY THEMES" for + more information. + + "add_themes" appends to the default themes for this Policy. The argument + is a string of one or more whitespace-delimited words. Themes are + case-insensitive. See "POLICY THEMES" for more information. + + "maximum_violations_per_document" limits the number of Violations the + Policy will return for a given document. Some Policies have a default + limit; see the documentation for the individual Policies to see whether + there is one. To force a Policy to not have a limit, specify "no_limit" + or the empty string for the value of this parameter. + + The remaining key-value pairs are configuration parameters that will be + passed into the constructor for that Policy. The constructors for most + Policy objects do not support arguments, and those that do should have + reasonable defaults. See the documentation on the appropriate Policy + module for more details. + + Instead of redefining the severity for a given Policy, you can + completely disable a Policy by prepending a '-' to the name of the + module in your configuration file. In this manner, the Policy will never + be loaded, regardless of the "-severity" given to the Perl::Critic + constructor. + + A simple configuration might look like this: + + #-------------------------------------------------------------- + # I think these are really important, so always load them + + [TestingAndDebugging::RequireUseStrict] + severity = 5 + + [TestingAndDebugging::RequireUseWarnings] + severity = 5 + + #-------------------------------------------------------------- + # I think these are less important, so only load when asked + + [Variables::ProhibitPackageVars] + severity = 2 + + [ControlStructures::ProhibitPostfixControls] + allow = if unless # My custom configuration + severity = cruel # Same as "severity = 2" + + #-------------------------------------------------------------- + # Give these policies a custom theme. I can activate just + # these policies by saying `perlcritic -theme larry` + + [Modules::RequireFilenameMatchesPackage] + add_themes = larry + + [TestingAndDebugging::RequireTestLables] + add_themes = larry curly moe + + #-------------------------------------------------------------- + # I do not agree with these at all, so never load them + + [-NamingConventions::ProhibitMixedCaseVars] + [-NamingConventions::ProhibitMixedCaseSubs] + + #-------------------------------------------------------------- + # For all other Policies, I accept the default severity, + # so no additional configuration is required for them. + + For additional configuration examples, see the perlcriticrc file that is + included in this examples directory of this distribution. + + Damian Conway's own Perl::Critic configuration is also included in this + distribution as examples/perlcriticrc-conway. + +THE POLICIES + A large number of Policy modules are distributed with Perl::Critic. They + are described briefly in the companion document + Perl::Critic::PolicySummary and in more detail in the individual modules + themselves. Say ""perlcritic -doc PATTERN"" to see the perldoc for all + Policy modules that match the regex "m/PATTERN/imx" + + There are a number of distributions of additional policies on CPAN. If + Perl::Critic doesn't contain a policy that you want, some one may have + already written it. See the "SEE ALSO" section below for a list of some + of these distributions. + +POLICY THEMES + Each Policy is defined with one or more "themes". Themes can be used to + create arbitrary groups of Policies. They are intended to provide an + alternative mechanism for selecting your preferred set of Policies. For + example, you may wish disable a certain subset of Policies when + analyzing test scripts. Conversely, you may wish to enable only a + specific subset of Policies when analyzing modules. + + The Policies that ship with Perl::Critic are have been broken into the + following themes. This is just our attempt to provide some basic logical + groupings. You are free to invent new themes that suit your needs. + + THEME DESCRIPTION + -------------------------------------------------------------------------- + core All policies that ship with Perl::Critic + pbp Policies that come directly from "Perl Best Practices" + bugs Policies that that prevent or reveal bugs + maintenance Policies that affect the long-term health of the code + cosmetic Policies that only have a superficial effect + complexity Policies that specificaly relate to code complexity + security Policies that relate to security issues + tests Policies that are specific to test scripts + + Any Policy may fit into multiple themes. Say "perlcritic -list" to get a + listing of all available Policies and the themes that are associated + with each one. You can also change the theme for any Policy in your + .perlcriticrc file. See the "CONFIGURATION" section for more information + about that. + + Using the "-theme" option, you can create an arbitrarily complex rule + that determines which Policies will be loaded. Precedence is the same as + regular Perl code, and you can use parentheses to enforce precedence as + well. Supported operators are: + + Operator Altertative Example + ---------------------------------------------------------------------------- + && and 'pbp && core' + || or 'pbp || (bugs && security)' + ! not 'pbp && ! (portability || complexity)' + + Theme names are case-insensitive. If the "-theme" is set to an empty + string, then it evaluates as true all Policies. + +BENDING THE RULES + Perl::Critic takes a hard-line approach to your code: either you comply + or you don't. In the real world, it is not always practical (nor even + possible) to fully comply with coding standards. In such cases, it is + wise to show that you are knowingly violating the standards and that you + have a Damn Good Reason (DGR) for doing so. + + To help with those situations, you can direct Perl::Critic to ignore + certain lines or blocks of code by using pseudo-pragmas: + + require 'LegacyLibaray1.pl'; ## no critic + require 'LegacyLibrary2.pl'; ## no critic + + for my $element (@list) { + + ## no critic + + $foo = ""; #Violates 'ProhibitEmptyQuotes' + $barf = bar() if $foo; #Violates 'ProhibitPostfixControls' + #Some more evil code... + + ## use critic + + #Some good code... + do_something($_); + } + + The "## no critic" comments direct Perl::Critic to ignore the remaining + lines of code until the end of the current block, or until a ""## use + critic"" comment is found (whichever comes first). If the "## no critic" + comment is on the same line as a code statement, then only that line of + code is overlooked. To direct perlcritic to ignore the "## no critic" + comments, use the "-force" option. + + A bare "## no critic" comment disables all the active Policies. If you + wish to disable only specific Policies, add a list of Policy names as + arguments, just as you would for the "no strict" or "no warnings" + pragmas. For example, this would disable the "ProhibitEmptyQuotes" and + "ProhibitPostfixControls" policies until the end of the block or until + the next "## use critic" comment (whichever comes first): + + ## no critic (EmptyQuotes, PostfixControls) + + # Now exempt from ValuesAndExpressions::ProhibitEmptyQuotes + $foo = ""; + + # Now exempt ControlStructures::ProhibitPostfixControls + $barf = bar() if $foo; + + # Still subjected to ValuesAndExpression::RequireNumberSeparators + $long_int = 10000000000; + + Since the Policy names are matched against the "## no critic" arguments + as regular expressions, you can abbreviate the Policy names or disable + an entire family of Policies in one shot like this: + + ## no critic (NamingConventions) + + # Now exempt from NamingConventions::ProhibitMixedCaseVars + my $camelHumpVar = 'foo'; + + # Now exempt from NamingConventions::ProhibitMixedCaseSubs + sub camelHumpSub {} + + The argument list must be enclosed in parentheses and must contain one + or more comma-separated barewords (e.g. don't use quotes). The "## no + critic" pragmas can be nested, and Policies named by an inner pragma + will be disabled along with those already disabled an outer pragma. + + Some Policies like "Subroutines::ProhibitExcessComplexity" apply to an + entire block of code. In those cases, "## no critic" must appear on the + line where the violation is reported. For example: + + sub complicated_function { ## no critic (ProhibitExcessComplexity) + # Your code here... + } + + Policies such as "Documentation::RequirePodSections" apply to the entire + document, in which case violations are reported at line 1. But if the + file requires a shebang line, it is impossible to put "## no critic" on + the first line of the file. This is a known limitation and it will be + addressed in a future release. As a workaround, you can disable the + affected policies at the command-line or in your .perlcriticrc file. But + beware that this will affect the analysis of all files. + + Use this feature wisely. "## no critic" should be used in the smallest + possible scope, or only on individual lines of code. And you should + always be as specific as possible about which policies you want to + disable (i.e. never use a bare "## no critic"). If Perl::Critic + complains about your code, try and find a compliant solution before + resorting to this feature. + +THE Perl::Critic PHILOSOPHY + Coding standards are deeply personal and highly subjective. The goal of + Perl::Critic is to help you write code that conforms with a set of best + practices. Our primary goal is not to dictate what those practices are, + but rather, to implement the practices discovered by others. Ultimately, + you make the rules -- Perl::Critic is merely a tool for encouraging + consistency. If there is a policy that you think is important or that we + have overlooked, we would be very grateful for contributions, or you can + simply load your own private set of policies into Perl::Critic. + +EXTENDING THE CRITIC + The modular design of Perl::Critic is intended to facilitate the + addition of new Policies. You'll need to have some understanding of PPI, + but most Policy modules are pretty straightforward and only require + about 20 lines of code. Please see the Perl::Critic::DEVELOPER file + included in this distribution for a step-by-step demonstration of how to + create new Policy modules. + + If you develop any new Policy modules, feel free to send them to + "" and I'll be happy to put them into the Perl::Critic + distribution. Or if you would like to work on the Perl::Critic project + directly, check out our repository at . To + subscribe to our mailing list, send a message to + "". + + The Perl::Critic team is also available for hire. If your organization + has its own coding standards, we can create custom Policies to enforce + your local guidelines. Or if your code base is prone to a particular + defect pattern, we can design Policies that will help you catch those + costly defects before they go into production. To discuss your needs + with the Perl::Critic team, just contact "". + +PREREQUISITES + Perl::Critic requires the following modules: + + B::Keywords + + Config::Tiny + + Exception::Class + + File::Spec + + File::Spec::Unix + + IO::String + + List::MoreUtils + + List::Util + + Module::Pluggable + + PPI + + Pod::PlainText + + Pod::Usage + + Readonly + + Scalar::Util + + String::Format + + version + + The following modules are optional, but recommended for complete + testing: + + File::HomeDir + + File::Which + + IO::String + + IPC::Open2 + + Perl::Tidy + + Pod::Spell + + Test::Pod + + Test::Pod::Coverage + + Text::ParseWords + +CONTACTING THE DEVELOPMENT TEAM + You are encouraged to subscribe to the mailing list; send a message to + "". See also the archives. You + can also contact the author at "". + + At least one member of the development team has started hanging around + in . + +SEE ALSO + There are a number of distributions of additional Policies available. A + few are listed here: + + Perl::Critic::More + + Perl::Critic::Bangs + + Perl::Critic::Lax + + Perl::Critic::StricterSubs + + Perl::Critic::Swift + + Perl::Critic::Tics + + These distributions enable you to use Perl::Critic in your unit tests: + + Test::Perl::Critic + + Test::Perl::Critic::Progressive + + There are also a couple of distributions that will install all the + Perl::Critic related modules known to the development team: + + Bundle::Perl::Critic + + Task::Perl::Critic + + If you want to make sure you have absolutely everything, you can use + these: + + Bundle::Perl::Critic::IncludingOptionalDependencies + + Task::Perl::Critic::IncludingOptionalDependencies + +BUGS + Scrutinizing Perl code is hard for humans, let alone machines. If you + find any bugs, particularly false-positives or false-negatives from a + Perl::Critic::Policy, please submit them to + . Thanks. + + Most policies will produce false-negatives if they cannot understand a + particular block of code. + +CREDITS + Adam Kennedy - For creating PPI, the heart and soul of Perl::Critic. + + Damian Conway - For writing Perl Best Practices, finally :) + + Chris Dolan - For contributing the best features and Policy modules. + + Andy Lester - Wise sage and master of all-things-testing. + + Elliot Shank - The self-proclaimed quality freak. + + Giuseppe Maxia - For all the great ideas and positive encouragement. + + and Sharon, my wife - For putting up with my all-night code sessions. + + Thanks also to the Perl Foundation for providing a grant to support + Chris Dolan's project to implement twenty PBP policies. + + +AUTHOR + Jeffrey Ryan Thalhammer + +COPYRIGHT + Copyright (c) 2005-2008 Jeffrey Ryan Thalhammer. All rights reserved. + + This program is free software; you can redistribute it and/or modify it + under the same terms as Perl itself. The full text of this license can + be found in the LICENSE file included with this module. + diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/TODO.pod b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/TODO.pod new file mode 100644 index 0000000..69dab1f --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/TODO.pod @@ -0,0 +1,574 @@ +# best viewed via "perldoc TODO.pod" + +=pod + +=for stopwords LHS RHS REFACTORINGS FH SVN stopwords + +=head1 NAME + +Perl::Critic::TODO - Things for Perl::Critic developers to do + + +=head1 SOURCE + + ####################################################################### + # $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/TODO.pod $ + # $Date: 2008-07-03 09:36:05 -0500 (Thu, 03 Jul 2008) $ + # $Author: clonezone $ + # $Revision: 2487 $ + ####################################################################### + + +=head1 SEE ALSO + +Perl-Critic-More is a separate distribution for less-widely-accepted +policies. It contains its own TODO.pod. + + +=head1 NEW FEATURES + +=over + +=item * Report Safari sections in addition to book page numbers. + + +=item * Add --files-with-violations/-l and --files-without-violations/-L options to F. + +Just print out file names. I could have used this at work when combined with +C<--single-policy>. + + gvim `perlcritic --single-policy QuotedWordLists -l` + + +=item * Add a file Behavior. + + +=item * Allow values of (at least) string-list Parameters to be specified in a file. + +For the benefit of PodSpelling, etc. + + +=item * Enhance string-list Behavior to allow specification of delimiters. + +For things like RequirePodSections. + + +=item * Add queries to --list option to F. + +List Policies based upon severity, theme, and (what I want this second) +applies_to. + +=item * Add --prohibit-unrestricted-no-critic option to F. + +Requires C<## no critic> to take an argument: + + ## no critic (SomePolicyPattern) # ok + ## no critic # not ok + +Can't be done as a regular Policy because any line that violated it would disable it. + + +=item * Support for C<#line 123 "filename"> directives. + +For code generators and template languages that allow inline Perl code. + +Yes, somebody has an in-house templating system where they've written a custom +test module that extracts the perl code from a template and critiques it. + +Actually, this would be useful for programs: Module::Build "fixes" shebang +lines so that there's the bit about invoking perl if the program is attempted +to be run by a Bourne shell, which throws the line numbers off when using +Test::P::C on the contents of a C directory. + + +=item * Enhance statistics. + +- Blank line count + +- POD line count + +- Comment line count + +- Data section count + + +=item * Detect 5.10 source and enable stuff for that. + +For example, treat C as equivalent to C. + + +=item * Support a means of failing if a Policy isn't installed. + +For example, the self compliance test now depends upon a Policy in the More +distribution. + +Something like using a "+" sign in front of the Policy name in its +configuration block, analogous to the "-" sign used for disabling a policy, +e.g. "C<[+Example::Policy]>". + + +=back + + +=head1 BUGS/LIMITATIONS + +=over + +=item * NamingConventions::ProhibitAmbiguousNames + +Don't allow compound names with forbidden words, like "last_record". +Allow forbidden words in RHS of variable declarations + +Also, we should make it easeir to add (or delete) words from the +forbbiden list. + + +=item * Subroutines::ProtectPrivateSubs + +Doesn't forbid C<< $pkg->_foo() >> because it can't tell the +difference between that and C<< $self->_foo() >> + + +=item * ErrorHandling::RequireCarping + +This should not complain about using C or C if it's not in a +function, or if it's in main::. + +Also, should allow C when it is obvious that the "message" is a reference. + + +=item * RegularExpressions::ProhibitCaptureWithoutTest + +Allow this construct: + + for ( ... ) { + next unless /(....)/; + if ( $1 ) { + .... + } + } + +Right now, P::C thinks that the C<$1> isn't legal to use because it's +"outside" of the match. The thing is, we can only get to the C +if the regex matched. + while ( $str =~ /(expression)/ ) + + +=item * CodeLayout::ProhibitParensWithBuiltins + +Some builtin functions (particularly those that take a variable number of +scalar arguments) should probably get parentheses. This policy should be +enhanced to allow the user to specify a list of builtins that are expempt +from the policy. + + +=item * ValuesAndExpressions::ProhibitCommaSeparatedStatements + +Needs to check for C. + + +=item * Variables::ProhibitPunctuationVars + +Needs to look inside strings. RT #35970. + + +=item * TestingAndDebugging::RequireUseWarnings + +Check for -w on the shbang line. + + +=item * Change formatting in Violation to eliminate double periods. + + +=back + + +=head1 OTHER PBP POLICIES THAT SEEM FEASIBLE TO IMPLEMENT + +=over + +=item * Modules::RequireUseVersion [405-406] + +=item * Modules::RequireThreePartVersion [405-406] + +=item * RegularExpressions::RequireDotMatchAnything [240-241] + +=back + + +=head1 NON-PBP POLICIES WANTED + +=over + +=item * Documentation::RequireModuleAbstract + +Require a C<=head1 NAME> POD section with content that matches +C<\A \s* [\w:]+ \s+ - \s+ \S>. The single hyphen is the important bit. Also, +must be a single line. + +=item * Expressions::RequireFatCommasInHashConstructors + +=item * ErrorHandling::RequireLocalizingEvalErrorInDESTROY + +Prevent C<$@> from being cleared unexpectedly by DESTROY methods. + + package Foo; + + sub DESTROY { + die "Died in Foo::DESTROY()"; + } + + package main; + + eval { + my $foo = Foo->new(); + + die "Died in eval." + } + print $@; # "Died in Foo::DESTROY()", not "Died in eval.". + +See L. + +=item * Expressions::ProhibitDecimalWithBitwiseOperator + +=item * Expressions::ProhibitStringsWithBitwiseOperator + + +=item * InputOutput::ProhibitMagicDiamond + +Steal the idea from L. + + +=item * TBD::AllProgramsNeedShebangs + +Anything that is a program should have a shebang line. This includes .t files. + + +=item * BuiltInFunctions::RequireConstantSprintfFormat + + +=item * BuiltInFunctions::RequireConstantUnpackFormat + +L + + +=item * Miscellanea::ProhibitObnoxiousComments + +Forbid excessive hash marks e.g. "#### This is a loud comment ####". +Make the obnoxious pattern configurable + + +=item * ValuesAndExpressions::RequireNotOperator + +Require the use of "not" instead of "!", except when this would contradict +ProhibitMixedBooleanOperators. This may be better suited for +Perl::Critic::More. + + +=item * Modules::RequireExplicitImporting + +Require every C statement to have an explicit import list. You could +still get around this by calling C directly. + + +=item * Modules::ForbidImporting + +Require every C to have an explicitly empty import list. This is for +folks who like to see fully-qualified function names. Should probably provide +a list of exempt modules (like FindBin); + + +=item * ControlStructures::ProhibitIncludeViaDo + +Forbid C. Not sure about this policy name. + + +=item * Variables::ProhibitUseVars + +Disallow C and require C instead. This +contradicts Miscellanea::Prohibit5006isms. Maybe verify C +before applying this policy. Low severity. + + +=item * VariablesAndExpressions::ProhibitQuotedHashKeys + +Forbid quotes around hash keys, unless they are really needed. This +is against what Damian says. Suggested by Adam Kennedy. Low +severity. + + +=item * CodeLayout::ProhibitFunctionalNew + +Good: C<< Foo::Bar->new >>, Bad: C<< new Foo::Bar >> + + +=item * RegularExpressions::ProhibitSWSWSW + +Require C instead of C. From MJD's Red Flags. + + +=item * VariablesAndExpressions::RequireConstantVersion (low severity) + + +=item * VariablesAndExpressions::ProhibitComplexVersion (medium severity) + +L + + +=item * Documentation::RequireSynopsis + + +=item * Documentation::RequireLicense + +These are simplified versions of Documentation::RequirePodSections. + + +=item * Documentation::RequireValidSynopsis + +The Synopsis section must be all indented and must be syntactically valid Perl +(as validated by PPI). + + +=item * Documentation::ProhibitEmptySections + +Any C<=headN> and C<=over> sections must not be empty. This helps catch +boilerplate (althought Test::Pod should catch empty C<=over> blocks). + +On the other hand, C<=item ...> sections can be empty, since the item label is +content. + + +=item * Miscellaneous::ProhibitBoilerplate + +Complain about copy-and-paste code or docs from h2xs, Module::Starter::*, +etc. + +Here's a non-PPI implementation: +L + + +=item * BuiltinFunctions::ProhibitExtraneousScalarCall + +Recommend that C be rewritten as C. + + +=item * RegularExpressions::ProhibitMixedDelimiters + +Ban s{foo}(bar) + + +=item * RegularExpressions::ProhibitScalarAsRegexp + +Ban naked srtings as regexps, like: + + print 1 if $str =~ $regexp; + +Instead, it should be: + + print 1 if $str =~ m/$regexp/; + +or + + print 1 if $str =~ m/$regexp/xms; + + +=item * ValuesAndExpressions::RequireInterpolatedStringyEval + +Ensure that the argument to a stringy eval is not a constant string. That's +just wasteful. Real world examples include: + + eval 'use Optional::Module'; + +which is better written as + + eval { require Optional::Module; Optional::Module->import }; + +for performance gains and compile-time syntax checking. + + +=item * RegularExpressions::ProhibitUnnecessaryEscapes + +Complain if user puts a backslash escape in front of non-special characters. For example: + + m/\!/; + +Make exceptions for C<\">, C<\'> and C<\`> since those are often inserted to +workaround bugs in syntax highlighting. + +Note that this is different inside character classes, where only C<^>, C<]> +and C<-> need to be escaped, I think. Caret only needs to be escaped at the +beginning, and dash does NOT need to be escaped at the beginning and end. See +L. + + +=item * Steal ideas from L. + +Can someone expand this entry, please? + +=item * ControlStructures::ProhibitAssigmentInConditional + +=item * ValuesAndExpressions::RequireConstantBeforeEquals + +=item * ValuesAndExpressions::RequireConstantBeforeOperator + +L + +Just about everyone has been bitten by C when they meant +to use C<==>. A safer style is C<10 == $x> because omitting the second C<=> +yields a noisy compile-time failure instead of silent runtime error. + +ProhibitAssigmentInConditional complains if the condition of a while, until, +if or unless is solely an assignment. If it's anything more complex (like +C or C), there is no warning. + +RequireConstantBeforeEquals complains if the left side of an C<==> is a +variable while the right side is a constant. + +RequireConstantBeforeOperator complains if the left side of any comparison +operator (C<==>, C, C<<>, etc) is a variable while the right side is a +constant. + + +=item * InputOutput::ProhibitUTF8IOLayer + +http://www.perlfoundation.org/perl5/index.cgi?the_utf8_perlio_layer + +=item * BuiltinFunctions::ProhibitExit(?:InModules)? + +Forbid C in files that lack a shebang. Inspired by +L and an analgous checker in +FindBugs. + +=back + + +=head1 REFACTORINGS and ENHANCEMENTS + +=over + +=item * Create constants for the PPI location array elements. + + +=item * MOVE THE LINE-DISABLING INTO P::C::Document + +All the code that deals with finding all the '##no critic' comments and noting +which policies are disabled at each line seems like it would be better placed +in Perl::Critic::Document. P::C::Document could then provide methods to +indicate if a policy is disabled at a particular line. So the basic algorithm +in Perl::Critic might look something like this: + + foreach $element (@PPI_ELEMENTS) { + foreach $policy (@POLICIES) { + $line = $element->location->[0]; + next if $doc->policy_is_disabled_at_line( $policy, $line ); + push @violations, $policy->violates( $elem, $doc ); + } + } + + +=item * Some means of detecting "runnaway" C<##no critic> + +Elliot was talking to a couple of users at ETech and one of their major +concerns was that they were using C<##no critic> and forgetting to do a +C<##use critic> after the problematic section. Perhaps an option to +F to scan for such things is in order. + + +=item * Change API to use named parameters + +Most of the methods on the public classes use named parameters for passing +arguments. I'd like to extend that pattern to include all object-methods. +Static methods can still use positional parameters. + + +=item * Enhance P::C::critique() to accept files, directories, or code strings + +Just like F does now. + + +=item * Add C<-cache> flag to F + +If enabled, this turns on L: + + require PPI::Cache; + my $cache_path = "/tmp/test-perl-critic-cache-$ENV{USER}"; + mkdir $cache_path, oct 700 if (! -d $cache_path); + PPI::Cache->import(path => $cache_path); + +This cachedir should perhaps include the PPI version number! At least +until PPI incorporates its own version number in the cache. + +(see F for a more robust implementation) + + +=item * Use hash-lookup instead of C function. + +In several places, Perl::Critic uses C to see if +a string is a member of a list. Instead, I suggest using a named +subroutine that does a hash-lookup like this: + + my %logical_ops = hashify( qw( ! || && ||= &&= and or not ) ); + sub is_logical_op { return exists $logical_ops{ $_[0] }; } + +Why? + + +=item * Allow color output to work through a pipe. + +http://rt.cpan.org/Ticket/Display.html?id=30140 + +F now supports this. + + +=back + +=head1 PPI BUGS + +We're waiting on the following bugs to get fixed in a CPAN release of PPI: + + +=over + +=item PPI::Token::descendant_of() + +Exists in svn. Replace _descendant_of() in RequireCheckingReturnValueOfEval +with that, once it is released, because it's faster and native. + +=item Newlines + +PPI does not preserve newlines. That makes +CodeLayout::RequireConsistentNewlines impossible to implement under PPI. For +now, it's implemented by pulling the source out of the file and skipping PPI. + +It's unlikely that PPI will support mixde newlines anytime soon. + + +=item Operators + +ValuesAndExpressions::ProhibitMismatchedOperators has two workarounds +for PPI bugs with parsing operators. Many of these bugs have been +fixed in PPI, so it would be good to check if those workarounds are +still needed. + + +=item Regexp methods + +Not strictly a bug -- the PPI Regexp classes have a dearth of accessor methods +as of v1.118, meaning that we have to do messy digging into internals. I +wrote Perl::Critic:Utils::PPIRegexp to encapsulate this messiness, but it +would be nicer to have an official interface in PPI. + + +=back + +=cut + +############################################################################## +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=pod expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/bin/perlcritic b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/bin/perlcritic new file mode 100755 index 0000000..213d75e --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/bin/perlcritic @@ -0,0 +1,1387 @@ +#!/usr/bin/perl + +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/bin/perlcritic $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +## no critic (ErrorHandling::RequireUseOfExceptions) +package main; + +use 5.006001; +use strict; +use warnings; + +use English qw< -no_match_vars >; +use Readonly; + +use Getopt::Long qw< GetOptions >; +use List::Util qw< first >; +use Pod::Usage qw< pod2usage >; + +use Perl::Critic::Exception::Parse (); +use Perl::Critic::Utils qw< + :characters :severities policy_short_name + $DEFAULT_VERBOSITY $DEFAULT_VERBOSITY_WITH_FILE_NAME +>; +use Perl::Critic::Violation qw<>; + +#----------------------------------------------------------------------------- + +our $VERSION = '1.088'; + +Readonly::Scalar my $DEFAULT_VIOLATIONS_FOR_TOP => 20; + +Readonly::Scalar my $EXIT_SUCCESS => 0; +Readonly::Scalar my $EXIT_NO_FILES => 1; +Readonly::Scalar my $EXIT_HAD_VIOLATIONS => 2; +Readonly::Scalar my $EXIT_HAD_FILE_PROBLEMS => 3; + +#----------------------------------------------------------------------------- +# Begin script. Don't run when loaded as a library + +my @FILES = (); +my $CRITIC = undef; +exit run() if not caller; + +#----------------------------------------------------------------------------- +# Begin subroutines + +sub run { + my %options = get_options(); + @FILES = get_input(@ARGV); + + my ($violations, $had_error_in_file) = critique(\%options, @FILES); + + return $EXIT_HAD_FILE_PROBLEMS if $had_error_in_file; + return $EXIT_NO_FILES if not defined $violations; + return $EXIT_HAD_VIOLATIONS if $violations; + + return $EXIT_SUCCESS; +} + +#----------------------------------------------------------------------------- + +sub get_options { + + my %opts = _parse_command_line(); + _dispatch_special_requests( %opts ); + _validate_options( %opts ); + + # Convert severity shortcut options. If multiple shortcuts + # are given, the lowest one wins. If an explicit --severity + # option has been given, then the shortcuts are ignored. The + # @SEVERITY_NAMES variable is exported by Perl::Critic::Utils. + $opts{severity} ||= first { exists $opts{$_} } @SEVERITY_NAMES; + $opts{severity} ||= + first { exists $opts{$_} } ($SEVERITY_LOWEST .. $SEVERITY_HIGHEST); + + + # If --top is specified, default the severity level to 1, unless an + # explicit severity is defined. This provides us flexibility to + # report top-offenders across just some or all of the severity levels. + # We also default the --top count to twenty if none is given + if ( exists $opts{top} ) { + $opts{severity} ||= 1; + $opts{top} ||= $DEFAULT_VIOLATIONS_FOR_TOP; + } + + #Override profile, if --noprofile is specified + if ( exists $opts{noprofile} ) { + $opts{profile} = q{}; + } + + # I've adopted the convention of using key-value pairs for + # arguments to most functions. And to increase legibility, + # I have also adopted the familiar command-line practice + # of denoting argument names with a leading dash (-). + my %dashed_opts = map { ( "-$_" => $opts{$_} ) } keys %opts; + return %dashed_opts; +} + +#----------------------------------------------------------------------------- + +sub _parse_command_line { + my %opts = ( -color => 1 ); + my @opt_specs = _get_option_specification(); + Getopt::Long::Configure('no_ignore_case'); + GetOptions( \%opts, @opt_specs ) || pod2usage(); #Exits + return %opts; +} + +#----------------------------------------------------------------------------- + +sub _dispatch_special_requests { + my (%opts) = @_; + if ( $opts{help} ) { pod2usage( -verbose => 0 ) } #Exits + if ( $opts{options} ) { pod2usage( -verbose => 1 ) } #Exits + if ( $opts{man} ) { pod2usage( -verbose => 2 ) } #Exits + if ( $opts{version} ) { print "$VERSION\n"; exit 0; } #Exits + if ( $opts{list} ) { render_policy_listing(); } #Exits + if ( $opts{'list-themes'} ) { render_theme_listing(); } #Exits + if ( $opts{'profile-proto'} ) { render_profile_prototype(); } #Exits + if ( $opts{doc} ) { policy_docs( $opts{doc} ); } #Exits + return 1; +} + +#----------------------------------------------------------------------------- + +sub _validate_options { + my (%opts) = @_; + my $msg = q{}; + + + if ( $opts{noprofile} && $opts{profile} ) { + $msg .= qq{Warning: Cannot use -noprofile with -profile option.\n}; + } + + if ( $opts{verbose} && $opts{verbose} !~ m{(?: \d+ | %[mfFlcedrpPs] )}mx) { + $msg .= qq; + $msg .= qq; + } + + if ( exists $opts{top} && $opts{top} < 0 ) { + $msg .= qq; + $msg .= qq; + } + + if ( + exists $opts{severity} + && ( + $opts{severity} < $SEVERITY_LOWEST + || $opts{severity} > $SEVERITY_HIGHEST + ) + ) { + $msg .= qq; + $msg .= qq; + $msg .= qq<"$SEVERITY_HIGHEST" (highest).\n>; + } + + + if ( $msg ) { + pod2usage( -exitstatus => 1, -message => $msg, -verbose => 0); #Exits + } + + + return 1; +} + +#----------------------------------------------------------------------------- + +sub get_input { + + my @args = @_; + + if ( !@args || (@args == 1 && $args[0] eq q{-}) ) { + + # Reading code from STDIN. All the code is slurped into + # a string. PPI will barf if the string is just whitespace. + my $code_string = do { local $RS = undef; }; + + # Notice if STDIN was closed (pipe error, etc) + if ( ! defined $code_string ) { + $code_string = q{}; + } + + $code_string =~ m{ \S+ }mx || die qq{Nothing to critique.\n}; + return \$code_string; #Convert to SCALAR ref for PPI + } + else { + + # Test to make sure all the specified files or directories + # actually exist. If any one of them is bogus, then die. + if ( my $nonexistant = first { ! -e $_ } @args ) { + my $msg = qq{No such file or directory: '$nonexistant'}; + pod2usage( -exitstatus => 1, -message => $msg, -verbose => 0); + } + + # Reading code from files or dirs. If argument is a file, + # then we process it as-is (even though it may not actually + # be Perl code). If argument is a directory, recursively + # search the directory for files that look like Perl code. + return map { -d $_ ? Perl::Critic::Utils::all_perl_files($_) : $_ } @args; + } +} + +#------------------------------------------------------------------------------ + +sub critique { + + my ( $opts_ref, @files ) = @_; + @files || die "No perl files were found.\n"; + + # Perl::Critic has lots of dependencies, so loading is delayed + # until it is really needed. This hack reduces startup time for + # doing other things like getting the version number or dumping + # the man page. Arguably, those things are pretty rare, but hey, + # why not save a few seconds if you can. + + require Perl::Critic; + $CRITIC = Perl::Critic->new( %{$opts_ref} ); + $CRITIC->policies() || die "No policies selected.\n"; + + my $number_of_violations = undef; + my $had_error_in_file = 0; + + for my $file (@files) { + + eval { + my @violations = $CRITIC->critique($file); + $number_of_violations += scalar @violations; + + if (not $opts_ref->{'-statistics-only'}) { + render_report( $file, $opts_ref, @violations ) + } + 1; + } + or do { + if ( my $exception = Perl::Critic::Exception::Parse->caught() ) { + $had_error_in_file = 1; + warn qq; + } + elsif ($EVAL_ERROR) { + # P::C::Exception::Fatal includes the stack trace in its + # stringification. + die qq; + } + else { + die qq, + q<$@/$EVAL_ERROR >, ## no critic (RequireInterpolationOfMetachars) + qq; + } + } + } + + if ( $opts_ref->{-statistics} or $opts_ref->{'-statistics-only'} ) { + my $stats = $CRITIC->statistics(); + report_statistics( $opts_ref, $stats ); + } + + return $number_of_violations, $had_error_in_file; +} + +#------------------------------------------------------------------------------ + +sub render_report { + + my ( $file, $opts_ref, @violations ) = @_; + + # Only report the number of violations, if asked. + my $number_of_violations = scalar @violations; + if( $opts_ref->{-count} ){ + ref $file || print "$file: "; + print "$number_of_violations\n"; + return $number_of_violations; + } + + # Hail all-clear unless we should shut up. + if( !@violations && !$opts_ref->{-quiet} ) { + ref $file || print "$file "; + print "source OK\n"; + return 0; + } + + # Otherwise, format and print violations + my $verbosity = $CRITIC->config->verbose(); + # $verbosity can be numeric or string, so use "eq" for comparison; + $verbosity = + ($verbosity eq $DEFAULT_VERBOSITY && @FILES > 1) + ? $DEFAULT_VERBOSITY_WITH_FILE_NAME + : $verbosity; + my $fmt = Perl::Critic::Utils::verbosity_to_format( $verbosity ); + if (not -f $file) { $fmt =~ s{\%[fF]}{STDIN}mx; } #HACK! + Perl::Critic::Violation::set_format( $fmt ); + + my $color = $CRITIC->config->color(); + print $color ? _colorize_by_severity(@violations) : @violations; + + return $number_of_violations; +} + +#----------------------------------------------------------------------------- + +sub report_statistics { + my ($opts_ref, $statistics) = @_; + + if ( + not $opts_ref->{'-statistics-only'} + and ( + $statistics->total_violations() + or not $opts_ref->{-quiet} and $statistics->modules() + ) + ) { + print "\n"; # There's prior output that we want to separate from. + } + + print _commaify($statistics->modules()), " files.\n"; + print _commaify($statistics->subs()), " subroutines/methods.\n"; + print _commaify($statistics->statements_other_than_subs()), " statements.\n"; + print _commaify($statistics->lines()), " lines.\n"; + + my $average_sub_mccabe = $statistics->average_sub_mccabe(); + if (defined $average_sub_mccabe) { + printf + "\nAverage McCabe score of subroutines was %.2f.\n", + $average_sub_mccabe; + } + + print "\n"; + + print _commaify($statistics->total_violations()), " violations.\n"; + + my $violations_per_file = $statistics->violations_per_file(); + if (defined $violations_per_file) { + printf + "Violations per file was %.3f.\n", + $violations_per_file; + } + my $violations_per_statement = $statistics->violations_per_statement(); + if (defined $violations_per_statement) { + printf + "Violations per statement was %.3f.\n", + $violations_per_statement; + } + my $violations_per_line = $statistics->violations_per_line_of_code(); + if (defined $violations_per_line) { + printf + "Violations per line of code was %.3f.\n", + $violations_per_line; + } + + if ( $statistics->total_violations() ) { + print "\n"; + + my %severity_violations = %{ $statistics->violations_by_severity() }; + foreach my $severity ( reverse sort keys %severity_violations ) { + print + _commaify($severity_violations{$severity}), + " severity $severity violations.\n"; + } + + print "\n"; + + my %policy_violations = %{ $statistics->violations_by_policy() }; + foreach my $policy ( sort keys %policy_violations ) { + print + _commaify($policy_violations{$policy}), + ' violations of ', + policy_short_name($policy), + ".\n"; + } + } + + return; +} + +#----------------------------------------------------------------------------- + +# Only works for integers. +sub _commaify { + my ( $number ) = @_; + + while ($number =~ s/ \A ( [-+]? \d+ ) ( \d{3} ) /$1,$2/xms) { + # nothing + } + + return $number; +} + +#----------------------------------------------------------------------------- + +sub _get_option_specification { + + return qw( + 5 4 3 2 1 + Safari + version + brutal + count|C + cruel + doc=s + exclude=s@ + force! + gentle + harsh + help|?|H + include=s@ + list + list-themes + man + color|colour! + noprofile + only! + options + profile=s + profile-proto + quiet + severity=i + single-policy=s + stern + statistics! + statistics-only! + profile-strictness=s + theme=s + top:i + verbose=s + ); +} + +#----------------------------------------------------------------------------- + +sub _colorize_by_severity { + my (@violations) = @_; + return @violations if not _at_tty(); + return @violations if _this_is_windows(); + return @violations if not eval { require Term::ANSIColor }; + + my %color_of = ( + $SEVERITY_HIGHEST => 'bold red', + $SEVERITY_HIGH => 'yellow', + ); + return map { _colorize( "$_", $color_of{$_->severity()} ) } @violations; + +} + +#----------------------------------------------------------------------------- + +sub _colorize { + my ($string, $color) = @_; + return $string if not defined $color; + return Term::ANSIColor::colored( $string, $color ); +} + +#----------------------------------------------------------------------------- + +sub _this_is_windows { + return 1 if $OSNAME =~ m/MSWin32/mx; + return 0; +} + +#----------------------------------------------------------------------------- + +sub _at_tty { + return -t STDOUT; ##no critic 'InteractiveTest'; +} + +#----------------------------------------------------------------------------- + +sub render_policy_listing { + + require Perl::Critic::PolicyListing; + require Perl::Critic; + + my %pc_params = (-profile => $EMPTY, -severity => $SEVERITY_LOWEST); + my @policies = Perl::Critic->new( %pc_params )->policies(); + my $listing = Perl::Critic::PolicyListing->new( -policies => \@policies ); + print $listing; + exit 0; +} + +#----------------------------------------------------------------------------- + +sub render_theme_listing { + require Perl::Critic::ThemeListing; + require Perl::Critic; + + my %pc_params = (-profile => $EMPTY, -severity => $SEVERITY_LOWEST); + my @policies = Perl::Critic->new( %pc_params )->policies(); + my $listing = Perl::Critic::ThemeListing->new( -policies => \@policies ); + print $listing; + exit 0; +} + +#----------------------------------------------------------------------------- + +sub render_profile_prototype { + + require Perl::Critic::ProfilePrototype; + require Perl::Critic; + + my %pc_params = (-profile => $EMPTY, -severity => $SEVERITY_LOWEST); + my @policies = Perl::Critic->new( %pc_params )->policies(); + my $prototype = Perl::Critic::ProfilePrototype->new( -policies => \@policies ); + print $prototype; + exit 0; +} + +#----------------------------------------------------------------------------- + +sub policy_docs { + + my $pattern = shift; + require Perl::Critic; + + my %pc_params = (-profile => $EMPTY, -severity => $SEVERITY_LOWEST); + my @policies = Perl::Critic::Config->new( %pc_params )->policies(); + my @matches = grep { $_ =~ m/$pattern/imx } @policies; + + for my $matching_policy ( @matches ) { + my @perldoc_cmd = qw(perldoc -T); #-T means don't send to pager + system @perldoc_cmd, ref $matching_policy; + } + exit 0; +} + +1; + +__END__ + +#----------------------------------------------------------------------------- + +=pod + +=for stopwords DGR INI-style vim-fu minibuffer -noprofile API -singlepolicy +singlepolicy -profileproto -profile-proto ben Jore formatter Peshak pbp Komodo +screenshots tty emacs gVIM plugin Perlish templating ActiveState + +=head1 NAME + +C - Command-line interface to critique Perl source. + +=head1 SYNOPSIS + + perlcritic [-12345 | --brutal | --cruel | --harsh | --stern | --gentle] + [--severity number | name] [--profile file | --noprofile] + [--top [ number ]] [--theme expression] [--include pattern] + [--exclude pattern] [--single-policy pattern] [--only | --noonly] + [--profile-strictness {warn|fatal|quiet}] [--force | --noforce] + [--statistics] [--statistics-only] [--verbose {number | format}] + [--color | --nocolor] [--quiet] {FILE | DIRECTORY | STDIN} + + perlcritic --profile-proto + + perlcritic { --list | --list-themes | --doc pattern [...] } + + perlcritic { --help | --options | --man | --version } + +=head1 DESCRIPTION + +C is a Perl source code analyzer. It is the executable +front-end to the L engine, which attempts to identify +awkward, hard to read, error-prone, or unconventional constructs in +your code. Most of the rules are based on Damian Conway's book B. However, C is B limited to +enforcing PBP, and it will even support rules that contradict Conway. +All rules can easily be configured or disabled to your liking. + +This documentation only covers how to drive this command. For all +other information, including how to persistently configure this +command so that you don't have to say so much on the command-line, +see the documentation for L itself. + + +=head1 USAGE EXAMPLES + +Before getting into all the gory details, here are some basic usage +examples to help get you started. + + # Report only most severe violations (severity = 5) + perlcritic YourModule.pm + + # Same as above, but read input from STDIN + perlcritic + + # Recursively process all Perl files beneath directory + perlcritic /some/directory + + # Report slightly less severe violations too (severity >= 4) + perlcritic -4 YourModule.pm + + # Same as above, but using named severity level + perlcritic --stern YourModule.pm + + # Report all violations, regardless of severity (severity >= 1) + perlcritic -1 YourModule.pm + + # Same as above, but using named severity level + perlcritic --brutal YourModule.pm + + # Report only violations of things from "Perl Best Practices" + perlcritic --theme pbp YourModule.pm + + # Report top 20 most severe violations (severity >= 1) + perlcritic --top YourModule.pm + + # Report additional violations of Policies that match m/variables/ix + perlcritic --include variables YourModule.pm + + # Use defaults from somewhere other than ~/.perlcriticrc + perlcriticrc --profile project/specific/perlcriticrc YourModule.pm + +=head1 ARGUMENTS + +The arguments are paths to the files you wish to analyze. You may +specify multiple files. If an argument is a directory, C +will analyze all Perl files below the directory. If no arguments +are specified, then input is read from STDIN. + +=head1 OPTIONS + +Option names can be abbreviated to uniqueness and can be stated with +singe or double dashes, and option values can be separated from the +option name by a space or '=' (as with L). Option names +are also case-sensitive. + +=over 8 + +=item C<--profile FILE> + +Directs C to use a profile named by FILE rather than looking +for the default F<.perlcriticrc> file in the current directory or your +home directory. See L for more information. + +=item C<--noprofile> + +Directs C not to load any configuration file, thus reverting +to the default configuration for all Policies. + +=item C<--severity N> + +Directs C to only apply Policies with a severity greater than +C. Severity values are integers ranging from 1 (least severe) to 5 (most +severe). The default is 5. For a given C<--profile>, decreasing the +C<--severity> will usually produce more violations. You can set the default +value for this option in your F<.perlcriticrc> file. You can also redefine +the C for any Policy in your F<.perlcriticrc> file. See +L<"CONFIGURATION"> for more information. + +=item C<-5 | -4 | -3 | -2 | -1> + +These are numeric shortcuts for setting the C<--severity> option. For example, +C<"-4"> is equivalent to C<"--severity 4">. If multiple shortcuts are +specified, then the most restrictive one wins. If an explicit C<--severity> +option is also given, then all shortcut options are silently ignored. NOTE: +Be careful not to put one of the number severity shortcut options immediately +after the C<--top> flag or C will interpret it as the number of +violations to report. + +=item C<--severity NAME> + +If it is difficult for you to remember whether severity "5" is the most +or least restrictive level, then you can use one of these named values: + + SEVERITY NAME ...is equivalent to... SEVERITY NUMBER + -------------------------------------------------------- + --severity gentle --severity 5 + --severity stern --severity 4 + --severity harsh --severity 3 + --severity cruel --severity 2 + --severity brutal --severity 1 + +=item C<--gentle | --stern | --harsh | --cruel | --brutal> + +These are named shortcuts for setting the C<--severity> option. For example, +C<"--cruel"> is equivalent to C<"--severity 2">. If multiple shortcuts are +specified, then the most restrictive one wins. If an explicit C<--severity> +option is also given, then all shortcut options are silently ignored. + +=item C<--theme RULE> + +Directs C to apply only Policies with themes that satisfy the +C. Themes are arbitrary names for groups of related policies. You can +combine theme names with boolean operators to create an arbitrarily complex +C. For example, the following would apply only Policies that have a +'bugs' AND 'pbp' theme: + + $> perlcritic --theme='bugs && pbp' MyModule.pm + +Unless the C<--severity> option is explicitly given, setting C<--theme> silently +causes the C<--severity> to be set to 1. You can set the default value for +this option in your F<.perlcriticrc> file. See L +for more information about themes. + +=item C<--include PATTERN> + +Directs C to apply additional Policies that match the regex +C. Use this option to temporarily override your profile and/or +the severity settings at the command-line. For example: + + perlcritic --include=layout my_file.pl + +This would cause C to apply all the C policies even +if they have a severity level that is less than the default level of 5, or +have been disabled in your F<.perlcriticrc> file. You can specify multiple +C<--include> options and you can use it in conjunction with the C<--exclude> +option. Note that C<--exclude> takes precedence over C<--include> when a Policy +matches both patterns. You can set the default value for this option in your +F<.perlcriticrc> file. + +=item C<--exclude PATTERN> + +Directs C to not apply any Policy that matches the regex +C. Use this option to temporarily override your profile and/or +the severity settings at the command-line. For example: + + perlcritic --exclude=strict my_file.pl + +This would cause C to not apply the C and +C Policies even though they have the highest severity level. +You can specify multiple C<--exclude> options and you can use it in conjunction +with the C<--include> option. Note that C<--exclude> takes precedence over +C<--include> when a Policy matches both patterns. You can set the default +value for this option in your F<.perlcriticrc> file. + +=item C<--single-policy PATTERN> + +Directs C to apply just one Policy module matching the regex +C, and exclude all other Policies. This option has precedence +over the C<--severity>, C<--theme>, C<--include>, C<--exclude>, and C<--only> +options. For example: + + perlcritic --single-policy=nowarnings my_file.pl + +This would cause C to apply just the C Policy, +regardless of the severity level setting. No other Policies would be applied. + +This is equivalent to what one might intend by... + + perlcritic --exclude=. --include=nowarnings my_file.pl + +... but this won't work because the C<--exclude> option overrides the +C<--include> option. + +The equivalent of this option can be accomplished by creating a custom profile +containing only the desired policy and then running... + + perlcritic --profile=customprofile --only my_file.pl + +=item C<--top [ N ]> + +Directs C to report only the top C Policy violations in each +file, ranked by their severity. If C is not specified, it defaults to 20. +If the C<--severity> option (or one of the shortcuts) is not explicitly given, +the C<--top> option implies that the minimum severity level is "1" +(i.e. "brutal"). Users can redefine the severity for any Policy in their +F<.perlcriticrc> file. See L<"CONFIGURATION"> for more information. You can +set the default value for this option in your F<.perlcriticrc> file. NOTE: Be +careful not to put one of the severity shortcut options immediately after the +C<--top> flag or C will interpret it as the number of violations to +report. + +=item C<--force> + +Directs C to ignore the magical C<"## no critic"> pseudo-pragmas +in the source code. See L<"BENDING THE RULES"> for more information. You can +set the default value for this option in your F<.perlcriticrc> file. + +=item C<--statistics> + +Causes several statistics about the code being scanned and the violations +found to be reported after any other output. + +=item C<--statistics-only> + +Like the C<--statistics> option, but suppresses normal output and only shows +the statistics. + +=item C<--verbose N | FORMAT> + +Sets the verbosity level or format for reporting violations. If given a +number (C), C reports violations using one of the predefined +formats described below. If given a string (C), it is interpreted to +be an actual format specification. If the C<--verbose> option is not +specified, it defaults to either 4 or 5, depending on whether multiple files +were given as arguments to C. You can set the default value for +this option in your F<.perlcriticrc> file. + + Verbosity Format Specification + ----------- ------------------------------------------------------------- + 1 "%f:%l:%c:%m\n", + 2 "%f: (%l:%c) %m\n", + 3 "%m at %f line %l\n", + 4 "%m at line %l, column %c. %e. (Severity: %s)\n", + 5 "%f: %m at line %l, column %c. %e. (Severity: %s)\n", + 6 "%m at line %l, near '%r'. (Severity: %s)\n", + 7 "%f: %m at line %l near '%r'. (Severity: %s)\n", + 8 "[%p] %m at line %l, column %c. (Severity: %s)\n", + 9 "[%p] %m at line %l, near '%r'. (Severity: %s)\n", + 10 "%m at line %l, column %c.\n %p (Severity: %s)\n%d\n", + 11 "%m at line %l, near '%r'.\n %p (Severity: %s)\n%d\n" + +Formats are a combination of literal and escape characters similar to the way +C works. See L for a full explanation of the +formatting capabilities. Valid escape characters are: + + Escape Meaning + ------- ---------------------------------------------------------------- + %c Column number where the violation occurred + %d Full diagnostic discussion of the violation + %e Explanation of violation or page numbers in PBP + %F Just the name of the file where the violation occurred. + %f Path to the file where the violation occurred. + %l Line number where the violation occurred + %m Brief description of the violation + %P Full name of the Policy module that created the violation + %p Name of the Policy without the Perl::Critic::Policy:: prefix + %r The string of source code that caused the violation + %s The severity level of the violation + +The purpose of these formats is to provide some compatibility with text +editors that have an interface for parsing certain kinds of input. See +L<"EDITOR INTEGRATION"> for more information about that. + +=item C<--list> + +Displays a condensed listing of all the L modules that +are found on this machine. For each Policy, the name, default severity and +default themes are shown. + +=item C<--list-themes> + +Displays a list of all the themes of the L modules that +are found on this machine. + +=item C<--profile-proto> + +Displays an expanded listing of all the L modules that +are found on this machine. For each Policy, the name, default severity and +default themes are shown, as well as the name of any additional parameters +that the Policy supports. The format is suitable as a prototype for your +F<.perlcriticrc> file. + +=item C<--only> + +Directs perlcritic to apply only Policies that are explicitly mentioned in +your F<.perlcriticrc> file. This is useful if you want to use just a small +subset of Policies without having to disable all the others. You can set the +default value for this option in your F<.perlcriticrc> file. + +=item C<--profile-strictness {warn|fatal|quiet}> + +Directs perlcritic how to treat certain recoverable problems found in a +F<.perlcriticrc> or file specified via the C<--profile> option. Valid values +are C (the default), C, and C. For example, perlcritic +normally only warns about profiles referring to non-existent Policies, but +this option can make this situation fatal. You can set the default value for +this option in your F<.perlcriticrc> file. + +=item C<--count> + +=item C<-C> + +Display only the number of violations for each file. Use this feature to get +a quick handle on where a large pile of code might need the most attention. + +=item C<--Safari> + +Report "Perl Best Practice" citations as section numbers from +L instead of page numbers from the actual book. +NOTE: This feature is not implemented yet. + +=item C<--color> + +This option is on by default. When set, Severity 5 and 4 are colored red and +yellow, respectively. Colorization only happens if STDOUT is a tty and +L is installed. And it only works on non-Windows +environments. Negate this switch to disable color. You can set the default +value for this option in your F<.perlcriticrc> file. + +Can also be specified as C<--colour>. + +=item C<--doc PATTERN> + +Displays the perldoc for all L modules that match +C. Since Policy modules tend to have rather long names, this +just provides a more convenient way to say something like: C<"perldoc +Perl::Critic::Policy::ValuesAndExpressions::RequireUpperCaseHeredocTerminator"> +at the command prompt. + +=item C<--quiet> + +Suppress the "source OK" message when no violations are found. + +=item C<--help> + +=item C<-?> + +=item C<-H> + +Displays a brief summary of options and exits. + +=item C<--options> + +Displays the descriptions of the options and exits. While this output is +long, it it nowhere near the length of the output of C<--man>. + +=item C<--man> + +Displays the complete C manual and exits. + +=item C<--version> + +=item C<-V> + +Displays the version number of C and exits. + +=back + +=head1 CONFIGURATION + +Most of the settings for Perl::Critic and each of the Policy modules can be +controlled by a configuration file. The default configuration file is called +F<.perlcriticrc>. C will look for this file in the current +directory first, and then in your home directory. Alternatively, you can set +the C environment variable to explicitly point to a different file +in another location. If none of these files exist, and the C<--profile> option +is not given on the command-line, then all Policies will be loaded with their +default configuration. + +The format of the configuration file is a series of INI-style blocks that +contain key-value pairs separated by "=". Comments should start with "#" and +can be placed on a separate line or after the name-value pairs if you desire. + +Default settings for perlcritic itself can be set B For example, putting any or all of these at the top of your +F<.perlcriticrc> file will set the default value for the corresponding +command-line argument. + + severity = 3 #Integer or named level + only = 1 #Zero or One + force = 0 #Zero or One + verbose = 4 #Integer or format spec + top = 50 #A positive integer + theme = (pbp + security) * bugs #A theme expression + include = NamingConventions ClassHierarchies #Space-delimited list + exclude = Variables Modules::RequirePackage #Space-delimited list + +The remainder of the configuration file is a series of blocks like this: + + [Perl::Critic::Policy::Category::PolicyName] + severity = 1 + set_themes = foo bar + add_themes = baz + arg1 = value1 + arg2 = value2 + +C is the full name of a module +that implements the policy. The Policy modules distributed with Perl::Critic +have been grouped into categories according to the table of contents in Damian +Conway's book B. For brevity, you can omit the +C<'Perl::Critic::Policy'> part of the module name. + +C is the level of importance you wish to assign to the Policy. All +Policy modules are defined with a default severity value ranging from 1 (least +severe) to 5 (most severe). However, you may disagree with the default +severity and choose to give it a higher or lower severity, based on your own +coding philosophy. You can set the C to an integer from 1 to 5, or +use one of the equivalent names: + + SEVERITY NAME ...is equivalent to... SEVERITY NUMBER + ---------------------------------------------------- + gentle 5 + stern 4 + harsh 3 + cruel 2 + brutal 1 + +C sets the theme for the Policy and overrides its default theme. +The argument is a string of one or more whitespace-delimited alphanumeric +words. Themes are case-insensitive. See L<"POLICY THEMES"> for more +information. + +C appends to the default themes for this Policy. The argument is +a string of one or more whitespace-delimited words. Themes are +case-insensitive. See L<"POLICY THEMES"> for more information. + +The remaining key-value pairs are configuration parameters that will be passed +into the constructor of that Policy. The constructors for most Policy modules +do not support arguments, and those that do should have reasonable defaults. +See the documentation on the appropriate Policy module for more details. + +Instead of redefining the severity for a given Policy, you can completely +disable a Policy by prepending a '-' to the name of the module in your +configuration file. In this manner, the Policy will never be loaded, +regardless of the C<--severity> given on the command line. + +A simple configuration might look like this: + + #-------------------------------------------------------------- + # I think these are really important, so always load them + + [TestingAndDebugging::RequireUseStrict] + severity = 5 + + [TestingAndDebugging::RequireUseWarnings] + severity = 5 + + #-------------------------------------------------------------- + # I think these are less important, so only load when asked + + [Variables::ProhibitPackageVars] + severity = 2 + + [ControlStructures::ProhibitPostfixControls] + allow = if unless # My custom configuration + severity = cruel # Same as "severity = 2" + + #-------------------------------------------------------------- + # Give these policies a custom theme. I can activate just + # these policies by saying "perlcritic --theme 'larry || curly'" + + [Modules::RequireFilenameMatchesPackage] + add_themes = larry + + [TestingAndDebugging::RequireTestLabels] + add_themes = curly moe + + #-------------------------------------------------------------- + # I do not agree with these at all, so never load them + + [-NamingConventions::ProhibitMixedCaseVars] + [-NamingConventions::ProhibitMixedCaseSubs] + + #-------------------------------------------------------------- + # For all other Policies, I accept the default severity, + # so no additional configuration is required for them. + +Note that all policies included with the Perl::Critic distribution that have +integer parameters accept underscores ("_") in their values, as with Perl +numeric literals. For example, + + [ValuesAndExpressions::RequireNumberSeparators] + min_value = 1_000 + +For additional configuration examples, see the F file that is +included in this F directory of this distribution. + +Damian Conway's own Perl::Critic configuration is also included in this +distribution as F. + +=head1 THE POLICIES + +A large number of Policy modules are distributed with Perl::Critic. They are +described briefly in the companion document L and +in more detail in the individual modules themselves. Say C<"perlcritic --doc +PATTERN"> to see the perldoc for all Policy modules that match the regex +C + +There are a number of distributions of additional policies on CPAN. If +L doesn't contain a policy that you want, some one may have +already written it. See L for a list of some of +these distributions. + +=head1 POLICY THEMES + +Each Policy is defined with one or more "themes". Themes can be used to +create arbitrary groups of Policies. They are intended to provide an +alternative mechanism for selecting your preferred set of Policies. For +example, you may wish disable a certain set of Policies when analyzing test +scripts. Conversely, you may wish to enable only a specific subset of +Policies when analyzing modules. + +The Policies that ship with Perl::Critic are have been divided into the +following themes. This is just our attempt to provide some basic logical +groupings. You are free to invent new themes that suit your needs. + + THEME DESCRIPTION + -------------------------------------------------------------------------- + core All policies that ship with Perl::Critic + pbp Policies that come directly from "Perl Best Practices" + bugs Policies that that prevent or reveal bugs + maintenance Policies that affect the long-term health of the code + cosmetic Policies that only have a superficial effect + complexity Policies that specificaly relate to code complexity + security Policies that relate to security issues + tests Policies that are specific to test scripts + +Say C<"perlcritic --list"> to get a listing of all available policies and the +themes that are associated with each one. You can also change the theme for +any Policy in your F<.perlcriticrc> file. See the L<"CONFIGURATION"> section +for more information about that. + +Using the C<--theme> command-line option, you can create an arbitrarily complex +rule that determines which Policies to apply. Precedence is the same as +regular Perl code, and you can use parentheses to enforce precedence as well. +Supported operators are: + + Operator Altertative Example + ---------------------------------------------------------------------------- + && and 'pbp && core' + || or 'pbp || (bugs && security)' + ! not 'pbp && ! (portability || complexity)' + +Theme names are case-insensitive. If the C<--theme> is set to an empty string, +then it evaluates as true all Policies. + +=head1 BENDING THE RULES + +Perl::Critic takes a hard-line approach to your code: either you +comply or you don't. In the real world, it is not always practical +(or even possible) to fully comply with coding standards. In such +cases, it is wise to show that you are knowingly violating the +standards and that you have a Damn Good Reason (DGR) for doing so. + +To help with those situations, you can direct Perl::Critic to ignore +certain lines or blocks of code by using pseudo-pragmas: + + require 'LegacyLibaray1.pl'; ## no critic + require 'LegacyLibrary2.pl'; ## no critic + + for my $element (@list) { + + ## no critic + + $foo = ""; #Violates 'ProhibitEmptyQuotes' + $barf = bar() if $foo; #Violates 'ProhibitPostfixControls' + #Some more evil code... + + ## use critic + + #Some good code... + do_something($_); + } + +The C<"## no critic"> comments direct Perl::Critic to ignore the remaining +lines of code until the end of the current block, or until a C<"## use +critic"> comment is found (whichever comes first). If the C<"## no critic"> +comment is on the same line as a code statement, then only that line of code +is overlooked. To direct perlcritic to ignore the C<"## no critic"> comments, +use the C<--force> option. + +A bare C<"## no critic"> comment disables all the active Policies. If you +wish to disable only specific Policies, add a list of Policy names as +arguments just as you would for the C<"no strict"> or C<"no warnings"> pragma. +For example, this would disable the C and +C policies until the end of the block or until the +next C<"## use critic"> comment (whichever comes first): + + ## no critic (EmptyQuotes, PostfixControls); + + # Now exempt from ValuesAndExpressions::ProhibitEmptyQuotes + $foo = ""; + + # Now exempt ControlStructures::ProhibitPostfixControls + $barf = bar() if $foo; + + # Still subject to ValuesAndExpression::RequireNumberSeparators + $long_int = 10000000000; + +Since the Policy names are matched against the C<"## no critic"> arguments as +regular expressions, you can abbreviate the Policy names or disable an entire +family of Policies in one shot like this: + + ## no critic (NamingConventions) + + # Now exempt from NamingConventions::ProhibitMixedCaseVars + my $camelHumpVar = 'foo'; + + # Now exempt from NamingConventions::ProhibitMixedCaseSubs + sub camelHumpSub {} + +The argument list must be enclosed in parentheses and must contain one or more +comma-separated barewords (i.e. don't use quotes). The C<"## no critic"> +pragmas can be nested, and Policies named by an inner pragma will be disabled +along with those already disabled an outer pragma. + +Some Policies like C apply to an entire +block of code. In those cases, C<"## no critic"> must appear on the line +where the violation is reported. For example: + + sub complicated_function { ## no critic (ProhibitExcessComplexity) + # Your code here... + } + +Some Policies like C apply to the entire +document, in which case violations are reported at line 1. But if the file +requires a shebang line, it is impossible to put C<"## no critic"> on the +first line of the file. This is a known limitation and it will be addressed +in a future release. As a workaround, you can disable the affected policies +at the command-line or in your F<.perlcriticrc> file. But beware that this +will affect the analysis of B files. + +Use this feature wisely. C<"## no critic"> should be used in the smallest +possible scope, or only on individual lines of code. And you should always be +as specific as possible about which policies you want to disable (i.e. never +use a bare C<"## no critic">). If Perl::Critic complains about your code, try +and find a compliant solution before resorting to this feature. + +=head1 EDITOR INTEGRATION + +For ease-of-use, C can be integrated with your favorite text +editor. The output-formatting capabilities of C are specifically +intended for use with the "grep" or "compile" modes available in editors like +C and C. In these modes, you can run an arbitrary command and the +editor will parse the output into an interactive buffer that you can click on +and jump to the relevant line of code. + +The Perl::Critic team thanks everyone who has helped integrate Perl-Critic +with their favorite editor. Your contributions in particular have made +Perl-Critic a convenient and user-friendly tool for Perl developers of all +stripes. We sincerely appreciate your hard work. + +=head2 EMACS + +Joshua ben Jore has authored a minor-mode for emacs that allows you to run +perlcritic on the current region or buffer. You can run it on demand, or +configure it to run automatically when you save the buffer. The output +appears in a hot-linked compiler buffer. The code and installation +instructions can be found in the F directory inside this distribution. + +=head2 VIM + +Scott Peshak has published F, which is available at +L. + +=head2 gVIM + +Fritz Mehner recently added support for C to his fantastic gVIM +plugin. In addition to providing a very Perlish IDE, Fritz's plugin enables +one-click access to C and many other very useful utilities. And +all is seamlessly integrated into the editor. See +L for complete details. + +=head2 EPIC + +EPIC is an open source Perl IDE based on the Eclipse platform. Features +supported are syntax highlighting, on-the-fly syntax check, content assist, +perldoc support, source formatter, templating support and a Perl debugger. Go +to L for more information about EPIC. + +The EPIC team is currently working on integration with Perl::Critic. In the +meantime, you can use the L pragma and EPIC will highlight +violations whenever it does a syntax check on your code. I haven't tried this +myself, but other folks say it works. + +=head2 BBEdit + +Josh Clark has produced an excellent Perl-Critic plugin for BBEdit. A copy is +included in this distribution at F. See +L for +screenshots and additional installation info. Apple users rejoice! + +=head2 Komodo + +Komodo is a proprietary IDE for Perl and several other dynamic languages. +Free trial copies of Komodo can be obtained from the ActiveState website at +L. For instructions on integrating F +with Komodo, see F in this distribution. + +=head1 EXIT STATUS + +If C has any errors itself, exits with status == 1. If there are +no errors, but C finds Policy violations in your source code, +exits with status == 2. If there were no errors and no violations were found, +exits with status == 0. + +=head1 THE L PHILOSOPHY + +=over + +Coding standards are deeply personal and highly subjective. The goal of +Perl::Critic is to help you write code that conforms with a set of best +practices. Our primary goal is not to dictate what those practices are, but +rather, to implement the practices discovered by others. Ultimately, you make +the rules -- Perl::Critic is merely a tool for encouraging consistency. If +there is a policy that you think is important or that we have overlooked, we +would be very grateful for contributions, or you can simply load your own +private set of policies into Perl::Critic. + +=back + +=head1 EXTENDING THE CRITIC + +The modular design of Perl::Critic is intended to facilitate the addition of +new Policies. You'll need to have some understanding of L, but most +Policy modules are pretty straightforward and only require about 20 lines of +code, and half of those lines are simple use statements and simple +declarations.. Please see the L file included in +this distribution for a step-by-step demonstration of how to create new Policy +modules. + +If you develop any new Policy modules, feel free to send them to +C<< >> and I'll be happy to put them into the Perl::Critic +distribution. Or if you would like to work on the Perl::Critic project +directly, check out our repository at L. To +subscribe to our mailing list, send a message to +C<< >>. + +The Perl::Critic team is also available for hire. If your organization has +its own coding standards, we can create custom Policies to enforce your local +guidelines. Or if your code base is prone to a particular defect pattern, we +can design Policies that will help you catch those costly defects B +they go into production. To discuss your needs with the Perl::Critic team, +just contact C<< >>. + +=head1 CONTACTING THE DEVELOPMENT TEAM + +You are encouraged to subscribe to the mailing list; send a message to +C<< >>. See also +L. +You can also contact the author at C<< >>. + +At least one member of the development team has started hanging around in +L. + +=head1 SEE ALSO + +There are a number of distributions of additional Policies available. A few +are listed here: + +L +L +L +L +L + +These distributions enable you to use Perl::Critic in your unit tests: + +L +L + +There are also a couple of distributions that will install all the +Perl::Critic related modules known to the development team: + +L +L + +=head1 BUGS + +Scrutinizing Perl code is hard for humans, let alone machines. If you find +any bugs, particularly false-positives or false-negatives from a +Perl::Critic::Policy, please submit them to +L. Thanks. + +Most policies will produce false-negatives if they cannot understand a +particular block of code. + +=head1 CREDITS + +Adam Kennedy - For creating L, the heart and soul of L. + +Damian Conway - For writing B, finally :) + +Chris Dolan - For contributing the best features and Policy modules. + +Andy Lester - Wise sage and master of all-things-testing. + +Elliot Shank - The self-proclaimed quality freak. + +Giuseppe Maxia - For all the great ideas and positive encouragement. + +and Sharon, my wife - For putting up with my all-night code sessions. + +=head1 AUTHOR + +Jeffrey Ryan Thalhammer + +=head1 COPYRIGHT + +Copyright (c) 2005-2008 Jeffrey Ryan Thalhammer. All rights reserved. + +This program is free software; you can redistribute it and/or modify it under +the same terms as Perl itself. The full text of this license can be found in +the LICENSE file included with this module. + +=cut + +############################################################################## +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/debian/changelog b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/debian/changelog new file mode 100644 index 0000000..c76d798 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/debian/changelog @@ -0,0 +1,84 @@ +libperl-critic-perl (1.088-1maemo1) fremantle; urgency=low + + * New Maemo packaging + + -- Nito Martinez Tue, 13 Apr 2010 23:34:03 +0100 + + +llibperl-critic-perl (1.088-1) unstable; urgency=low + + * New upstream release + + Adjust (build-)dependencies: + - add perl-modules + - bump libppi-perl's version to 1.203 + - add perl-modules (>= 5.10) | libversion-perl + * add libtest-deep-perl to B-D-I for additional tests + * remove manpages-whatis.patch; fixed upstream + + drop quilt from B-D and rules + * minimize debian/rules with debhelper 7 + * Standards-Version: 3.8.0 (no changes needed) + + -- Damyan Ivanov Mon, 07 Jul 2008 13:25:48 +0300 + +libperl-critic-perl (1.082-1) unstable; urgency=low + + * New upstream release. + * debian/copyright: update years of copyright. + * debian/control: use a versioned dependency on quilt because we use + quilt.make in debian/rules. + * Refresh and extend manpages-whatis.patch. + + -- gregor herrmann Sun, 16 Mar 2008 03:32:47 +0100 + +libperl-critic-perl (1.080-2) unstable; urgency=low + + * debian/rules: delete /usr/lib/perl5 only if it exists (closes: #468002). + * debian/watch: adapt regexp for matching upstream releases. + * debian/rules: + - create install-stamp target + - introduce PERL and TMP variables + - use $@ for touching stamp-files + - use dh_clean for removing them + - use DESTDIR and PREFIX for make install + - don't create usr/lib directory, which we delete afterwards anyway + * Set Standards-Version to 3.7.3 (no changes). + * Set debhelper compatibility level to 6. + + -- gregor herrmann Sun, 02 Mar 2008 01:35:54 +0100 + +libperl-critic-perl (1.080-1) unstable; urgency=low + + [ gregor herrmann ] + * debian/control: Added: Vcs-Svn field (source stanza); Vcs-Browser + field (source stanza); Homepage field (source stanza). Removed: XS- + Vcs-Svn fields. + * Remove empty /usr/lib/perl5 directory. + * Move dh_clean before make distclean. + * Add libreadonly-perl to (build-)dependecies (only recommended, not + depended upon by libreadonly-xs-perl). + + [ Damyan Ivanov ] + * New upstream release + * Fixed debian/watch to use search.cpan.org/dist/-based URL + * Remove unused dh_link from debian/rules + * Wrap long fields in debian/control + * Add libfile-homedir-perl, libfile-which-perl, perltidy, + libpod-spell-perl, libexception-class-perl and libreadonly-xs-perl to + (build-)dependencies + * Bump libppi-perl (build-)dependency to 1.201 + * Add manpages-whatis.patch fixing whatis lintian warnings of 120 modules + Add quilt as a build-dependency + * debian/copyright: + + refreshed info, added two more copyright holders + + use direct search.cpan.org/dist/ URL as download location + * Add myself to Uploaders + * Add libtest-pod-perl and libtest-pod-coverage-perl to B-D-I + + -- Damyan Ivanov Thu, 15 Nov 2007 21:30:16 +0200 + +libperl-critic-perl (1.061-1) unstable; urgency=low + + * First release. + * Depend on libppi-perl 1.116, for PPI::Document::File. + + -- Joey Hess Tue, 14 Aug 2007 20:44:42 -0400 diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/debian/compat b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/debian/compat new file mode 100644 index 0000000..7f8f011 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/debian/compat @@ -0,0 +1 @@ +7 diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/debian/control b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/debian/control new file mode 100644 index 0000000..c4b6b0a --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/debian/control @@ -0,0 +1,47 @@ +Source: libperl-critic-perl +Section: perl +Priority: optional +Build-Depends-Indep: perl (>= 5.8), perl-modules, libb-keywords-perl, libconfig-tiny-perl, + libfile-spec-perl, libio-string-perl, liblist-moreutils-perl, + libmodule-pluggable-perl, libppi-perl (>= 1.203), libstring-format-perl, + libfile-homedir-perl, libfile-which-perl, perltidy, + libpod-spell-perl, libreadonly-xs-perl, libreadonly-perl, + libexception-class-perl, libtest-pod-perl, libtest-pod-coverage-perl, + perl-modules (>= 5.8.3) | libversion-perl, libtest-deep-perl +Build-Depends: debhelper7 +Maintainer: Debian Perl Group +Uploaders: gregor herrmann , + Damyan Ivanov +Standards-Version: 3.8.0 +Homepage: http://search.cpan.org/dist/Perl-Critic/ +Vcs-Svn: svn://svn.debian.org/pkg-perl/trunk/libperl-critic-perl/ +Vcs-Browser: http://svn.debian.org/wsvn/pkg-perl/trunk/libperl-critic-perl/ + +Package: libperl-critic-perl +Architecture: all +Depends: ${perl:Depends}, ${misc:Depends}, perl-modules, libb-keywords-perl, + libconfig-tiny-perl, libfile-spec-perl, libio-string-perl, + liblist-moreutils-perl, libmodule-pluggable-perl, libppi-perl (>= 1.203), + libstring-format-perl, libfile-homedir-perl, libfile-which-perl, + perltidy, libpod-spell-perl, libreadonly-xs-perl, libreadonly-perl, + libexception-class-perl, perl-modules (>= 5.8.3) | libversion-perl +Description: Critique Perl source code for best-practices + Perl::Critic is an extensible framework for creating and applying + coding standards to Perl source code. Essentially, it is a static source code + analysis engine. Perl::Critic is distributed with a number of + Perl::Critic::Policy modules that attempt to enforce various coding + guidelines. Most Policy modules are based on Damian Conway's book Perl + Best Practices. However, Perl::Critic is not limited to PBP and will + even support Policies that contradict Conway. You can enable, disable, + and customize those Polices through the Perl::Critic interface. You can + also create new Policy modules that suit your own tastes. + . + A command-line interface to Perl::Critic is included in the perlcritic + program. + . + Coding standards are deeply personal and highly subjective. The + goal of Perl::Critic is to help you write code that conforms with a + set of best practices. Its primary goal is not to dictate what + those practices are, but rather, to implement the practices + discovered by others. Ultimately, you make the rules -- + Perl::Critic is merely a tool for encouraging consistency. diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/debian/copyright b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/debian/copyright new file mode 100644 index 0000000..cb55bcc --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/debian/copyright @@ -0,0 +1,30 @@ +This is a Debian prepackaged version of the perl critic. + +This package was put together by Joey Hess , using +sources from CPAN, http://search.cpan.org/dist/Perl-Critic/ + +The following copyright applies to this package: + +Copyright (c) 2005-2008 Jeffrey Ryan Thalhammer. All rights reserved. + +This program is free software; you can redistribute it and/or modify it +under the same terms as Perl itself. + +Some individual modules are individually copyright by other authors/years: + +Copyright (C) 2006 Jeffrey Ryan Thalhammer. All rights reserved. +Copyright (C) 2005-2007 Graham TerMarsch. All rights reserved. +Copyright (c) 2005-2007 Chris Dolan and Jeffrey Ryan Thalhammer. All rights reserved. +Copyright (c) 2005-2007 Chris Dolan. All rights reserved. +Copyright (c) 2006 Chris Dolan. All rights reserved. +Copyright (c) 2007 Chris Dolan. Many rights reserved. +Copyright (c) 2006 Peter Guzis. All rights reserved. +Copyright (c) 2007 Andrew Moore. All rights reserved. +Copyright (c) 2007 Elliot Shank. All rights reserved. +Copyright (C) 2005-2007 Graham TerMarsch. All rights reserved. +Copyright (c) 2007 Ricardo SIGNES. + +Each of these modules are also licensed under the same terms as Perl itself. + +(Those terms are either of the Artistic license or the GPL; both licenses +can be found in full in /usr/share/common-licenses/) diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/debian/docs b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/debian/docs new file mode 100644 index 0000000..8949c75 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/debian/docs @@ -0,0 +1 @@ +TODO.pod extras/* diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/debian/examples b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/debian/examples new file mode 100644 index 0000000..e39721e --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/debian/examples @@ -0,0 +1 @@ +examples/* diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/debian/rules b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/debian/rules new file mode 100755 index 0000000..cbe925d --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/debian/rules @@ -0,0 +1,3 @@ +#!/usr/bin/make -f +%: + dh $@ diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/debian/watch b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/debian/watch new file mode 100644 index 0000000..bd7363e --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/debian/watch @@ -0,0 +1,3 @@ +version=3 +# no developer versions +http://search.cpan.org/dist/Perl-Critic/ .*/Perl-Critic-v?(\d[\d.]+)\.(?:tar(?:\.gz|\.bz2)?|tgz|zip) diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/examples/generatestats b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/examples/generatestats new file mode 100755 index 0000000..a6f232a --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/examples/generatestats @@ -0,0 +1,309 @@ +#!/usr/bin/perl + +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/examples/generatestats $ +# $Date: 2008-05-18 23:24:38 -0500 (Sun, 18 May 2008) $ +# $Author: clonezone $ +# $Revision: 2376 $ +############################################################################## + +## no critic (ErrorHandling::RequireUseOfExceptions) +use 5.008001; +use strict; +use warnings; + +use version; our $VERSION = qv('1.002'); + +use Carp qw{ croak }; +use English qw{ -no_match_vars }; +use Readonly; + +use File::Spec qw{ }; +use Perl6::Say; + +use Perl::Critic::Utils qw{ all_perl_files }; +use Perl::Critic; + + +if ( ! @ARGV ) { + die qq{usage: generatestats path [...]\n}; +} + +main(); + +exit 0; + + +sub main { + foreach my $path ( @ARGV ) { + say "Looking at $path."; + + my @files = all_perl_files($path); + say 'Analyzing ', scalar @files, ' files.'; + + my $results = summarize( \@files, File::Spec->canonpath($path) ); + + report($results); + + say; say; + } + + return; +} + + +sub summarize { + my ( $files, $path ) = @_; + + # Force reporting level to be really strict, just so that the statistics + # include everything. + my $critic = Perl::Critic->new( -severity => 1 ); + + my %total_severities; + my %total_policies; + my %types; + my %files; + + foreach my $file ( @{$files} ) { + my $relative_path; + my $type; + + if ($file eq $path) { + $relative_path = $file; + } else { + my $absolute_path_length = ( length $path ) + 1; + + $relative_path = substr $file, $absolute_path_length; + } + + if ($file =~ m/ [.] ([^.]+) \z /xms) { + $type = $1; + } else { + $type = ''; + } + + $types{$type}{files}++; + foreach my $violation ( $critic->critique($file) ) { + $files{ $relative_path }{ severities }{ $violation->severity() }++; + $files{ $relative_path }{ policies }{ $violation->policy() }++; + + $types{ $type }{ severities }{ $violation->severity() }++; + $types{ $type }{ policies }{ $violation->policy() }++; + + $total_severities{ $violation->severity() }++; + $total_policies{ $violation->policy() }++; + } + } + + return { + severities => \%total_severities, + policies => \%total_policies, + types => \%types, + files => \%files, + }; +} + + +sub report { + my ( $results ) = @_; + + report_totals( $results ); + report_types( $results ); + report_files( $results ); + + return; +} + + +sub report_totals { + my ( $results ) = @_; + + say; + say 'Total violations by severity:'; + report_severities( $results->{severities} ); + + say; + say 'Total violations by policy:'; + report_policies( $results->{policies} ); + + return; +} + + +sub report_types { + my ( $results ) = @_; + my $types = $results->{types}; + + say; + say 'Total files by type:'; + foreach my $type ( sort keys %{$types} ) { + say qq{\t}, $type, ': ', $types->{$type}{files}; + } + + foreach my $type ( sort keys %{$types} ) { + say; + say "Violations in $type files by severity:"; + report_severities( $types->{$type}{severities} ); + + say; + say "Violations in $type files by policy:"; + report_policies( $types->{$type}{policies} ); + } + + return; +} + + +sub report_files { + my ( $results ) = @_; + my $files = $results->{files}; + + foreach my $file ( sort keys %{$files} ) { + say; + say "Violations in $file by severity:"; + report_severities( $files->{$file}{severities} ); + + say; + say "Violations in $file by policy:"; + report_policies( $files->{$file}{policies} ); + } + + return; +} + + +sub report_severities { + my ($severities) = @_; + + foreach my $severity ( reverse sort { $a <=> $b } keys %{$severities} ) { + say qq{\t}, $severity, ': ', $severities->{$severity}; + } + + return; +} + + +sub report_policies { + my ($policies) = @_; + + foreach my $policy ( sort keys %{$policies} ) { + (my $short_policy = $policy) =~ s/ \A Perl::Critic::Policy:: //xms; + + say qq{\t}, $short_policy, ': ', $policies->{$policy}; + } + + return; +} + + +__END__ + +=pod + +=for stopwords codebase + +=head1 NAME + +C - Produce some simple quality statistics of a codebase + + +=head1 USAGE + + generatestats path [...] + + +=head1 DESCRIPTION + +Scan a body of code and generate some statistics on violations of the +installed L policies. While there is no means of configuring +the policies here, this will take into account your F<.perlcriticrc>, if +available. + + +=head1 REQUIRED ARGUMENTS + +A list of paths to files and directories to find code in. + + +=head1 OPTIONS + +None. + + +=head1 DIAGNOSTICS + +None. + + +=head1 EXIT STATUS + +0 + + +=head1 CONFIGURATION + +None. + + +=head1 DEPENDENCIES + +L +L +L + + +=head1 INCOMPATIBILITIES + +None reported. + + +=head1 BUGS AND LIMITATIONS + +This is an example program and thus does minimal error handling. + + +=head1 AUTHOR + +Elliot Shank C<< >> + + +=head1 COPYRIGHT + +Copyright (c) 2006-2007, Elliot Shank C<< >>. All rights +reserved. + +This module is free software; you can redistribute it and/or modify it under +the same terms as Perl itself. See L. + + +=head1 DISCLAIMER OF WARRANTY + +BECAUSE THIS SOFTWARE IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE +SOFTWARE, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +SOFTWARE "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 SOFTWARE IS WITH YOU. SHOULD THE SOFTWARE PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR, OR CORRECTION. + +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 +SOFTWARE AS PERMITTED BY THE ABOVE LICENSE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE SOFTWARE (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 SOFTWARE TO OPERATE WITH ANY OTHER +SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/examples/loadanalysisdb b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/examples/loadanalysisdb new file mode 100755 index 0000000..0985e0a --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/examples/loadanalysisdb @@ -0,0 +1,349 @@ +#!/usr/bin/perl + +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/examples/loadanalysisdb $ +# $Date: 2008-03-16 17:40:45 -0500 (Sun, 16 Mar 2008) $ +# $Author: clonezone $ +# $Revision: 2187 $ +############################################################################## + +## no critic (ErrorHandling::RequireUseOfExceptions) +use 5.008001; +use strict; +use warnings; + +use version; our $VERSION = qv('1.002'); + +use Carp qw{ croak }; +use English qw{ -no_match_vars }; +use Readonly; + +use DBI qw{ :sql_types }; +use File::Spec qw{ }; +use Perl6::Say; + +use Perl::Critic::Utils qw{ all_perl_files policy_short_name $EMPTY }; +use Perl::Critic; + + +if ( ! @ARGV ) { + die qq{usage: loadanalysisdb path [...]\n}; +} + +main(); + +exit 0; + + +sub main { + say 'Connecting to database.'; + say; + + my $database_connection = connect_to_database(); + my $insert_statement = prepare_insert_statement($database_connection); + + foreach my $path ( @ARGV ) { + say "Looking at $path."; + + my @files = all_perl_files($path); + say 'Analyzing ', scalar @files, ' files.'; + + load( \@files, File::Spec->canonpath($path), $insert_statement ); + + say; say; + } + + say 'Disconnecting from database.'; + say; + + close_insert_statement($insert_statement); + # Need to do this or DBI emits warning at disconnect + $insert_statement = undef; + + disconnect_from_database($database_connection); + + say 'Done.'; + say; + + return; +} + + +sub load { + my ( $files, $path, $insert_statement ) = @_; + + # Force reporting level to be really strict, just so that the database + # has everything. + my $critic = Perl::Critic->new( -severity => 1 ); + + foreach my $file ( @{$files} ) { + my $relative_path; + + if ($file eq $path) { + $relative_path = $file; + } else { + my $absolute_path_length = ( length $path ) + 1; + + $relative_path = substr $file, $absolute_path_length; + } + + say "Processing $relative_path."; + + foreach my $violation ( $critic->critique($file) ) { + my ($line, $column) = @{ $violation->location() }; + + execute_insert_statement( + $insert_statement, + $relative_path, + $line, + $column, + $violation->severity(), + policy_short_name( $violation->policy() ), + $violation->explanation(), + $violation->source(), + ); + } + } + + return; +} + + +sub connect_to_database { + my $database_file_name = 'perl_critic_analysis.sqlite'; + + my $database_connection = + DBI->connect( + "dbi:SQLite:dbname=$database_file_name", + $EMPTY, # login + $EMPTY, # password + { + AutoCommit => 1, # In real life, this should be 0 + RaiseError => 1, + } + ); + + defined $database_connection or + croak "Could not connect to $database_file_name."; + + return $database_connection; +} + + +sub prepare_insert_statement { + my ( $database_connection ) = @_; + + my $insert_statement = + $database_connection->prepare(<<'END_SQL'); + INSERT INTO + violation + ( + file_path, + line_number, + column_number, + severity, + policy, + explanation, + source_code + ) + VALUES + (?, ?, ?, ?, ?, ?, ?) +END_SQL + + + # The following values are bogus-- these statements are simply to tell + # the driver what the parameter types are so that we can use execute() + # without calling bind_param() each time. See "Binding Values Without + # bind_param()" on pages 126-7 of "Programming the Perl DBI". + + ## no critic (ProhibitMagicNumbers) + $insert_statement->bind_param( 1, 'x', SQL_VARCHAR); + $insert_statement->bind_param( 2, 1, SQL_INTEGER); + $insert_statement->bind_param( 3, 1, SQL_INTEGER); + $insert_statement->bind_param( 4, 1, SQL_INTEGER); + $insert_statement->bind_param( 5, 'x', SQL_VARCHAR); + $insert_statement->bind_param( 6, 'x', SQL_VARCHAR); + $insert_statement->bind_param( 7, 'x', SQL_VARCHAR); + ## use critic + + return $insert_statement; +} + + +sub execute_insert_statement { ##no critic(ProhibitManyArgs) + my ( + $statement, + $file_path, + $line_number, + $column_number, + $severity, + $policy, + $explanation, + $source_code, + ) + = @_; + + $statement->execute( + $file_path, + $line_number, + $column_number, + $severity, + $policy, + $explanation, + $source_code, + ); + + return; +} + + +sub close_insert_statement { + my ( $insert_statement ) = @_; + + $insert_statement->finish(); + + return; +} + +sub disconnect_from_database { + my ( $database_connection ) = @_; + + $database_connection->disconnect(); + + return; +} + + +__END__ + +=pod + +=for stopwords SQLite analyses + +=head1 NAME + +C - Critique a body of code and load the results into a database for later processing. + + +=head1 USAGE + + loadanalysisdb path [...] + + +=head1 DESCRIPTION + +Scan a body of code and, rather than emit the results in a textual format, put +them into a database so that analyses can be made. + +This example doesn't put anything into the database that isn't available from +L in order to keep the code easier to understand. In +a full application of the idea presented here, one might want to include the +current date and a distribution name in the database so that progress on +cleaning up a code corpus can be tracked. + +Note the explanation attribute of L is constant for +most policies, but some of them do provide more specific diagnostics of the +code in question. + + +=head1 REQUIRED ARGUMENTS + +A list of paths to files and directories to find code in. + + +=head1 OPTIONS + +None. + + +=head1 DIAGNOSTICS + +Errors from L. + + +=head1 EXIT STATUS + +0 + + +=head1 CONFIGURATION + +None. + + +=head1 DEPENDENCIES + +L +L +L +L + +An SQLite database named "perl_critic_analysis.sqlite" with the following +schema: + + CREATE TABLE violation ( + file_path VARCHAR(1024), + line_number INTEGER, + column_number INTEGER, + severity INTEGER, + policy VARCHAR(512), + explanation TEXT, + source_code TEXT + ) + + +=head1 INCOMPATIBILITIES + +None reported. + + +=head1 BUGS AND LIMITATIONS + +This is an example program and thus does minimal error handling. + + +=head1 AUTHOR + +Elliot Shank C<< >> + + +=head1 COPYRIGHT + +Copyright (c) 2006-2007, Elliot Shank C<< >>. All rights +reserved. + +This module is free software; you can redistribute it and/or modify it under +the same terms as Perl itself. See L. + + +=head1 DISCLAIMER OF WARRANTY + +BECAUSE THIS SOFTWARE IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE +SOFTWARE, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE +SOFTWARE "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 SOFTWARE IS WITH YOU. SHOULD THE SOFTWARE PROVE DEFECTIVE, +YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR, OR CORRECTION. + +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 +SOFTWARE AS PERMITTED BY THE ABOVE LICENSE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE SOFTWARE (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 SOFTWARE TO OPERATE WITH ANY OTHER +SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/examples/perlcriticrc b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/examples/perlcriticrc new file mode 100644 index 0000000..59fb925 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/examples/perlcriticrc @@ -0,0 +1,148 @@ +############################################################################## +# This file is an example of a Perl::Critic configuration file. This +# file is usually called ".perlcriticrc" and is usually located in +# your home directory or the working directory of your project. +# However, you can use the -profile option to tell Perl::Critic use a +# different file in another location. +# +# The area before any of the [Perl::Critic::Policy] sections is used +# to set default values for the arguments to the Perl::Critic engine. +# If you are using the "perlcritic" program, you can override these +# settings at the command-line. Or if you are using the Perl::Critic +# library, your API arguments will override these settings as well. + + +#----------------------------------------------------------------------------- +# exclude: Directs Perl::Critic to never apply Policies with names that +# match one of the patterns. To specify multiple patterns, separate them +# with whitespace. Do not put quotes around anything. + +exclude = Documentation Naming + +#----------------------------------------------------------------------------- +# include: Directs Perl::Critic to always apply Policies with names that +# match one of the patterns. To specify multiple patterns, separate them +# with whitespace. Do not put quotes around anything. + +include = CodeLayout Modules + +#----------------------------------------------------------------------------- +# force: Directs Perl::Critic to ignore the special "##no critic" +# comments embedded in the source code. The default is 0. If +# defined, this should be either 1 or 0. + +force = 1 + +#----------------------------------------------------------------------------- +# only: Directs Perl::Critic to only choose from Policies that are +# explicitly mentioned in this file. Otherwise, Perl::Critic chooses +# from all the Perl::Critic::Policy classes that are found on the +# local machine. The default is 0. If defined, this should be either +# 1 or 0. + +only = 1 + +#----------------------------------------------------------------------------- +# severity: Sets the default minimum severity level for Policies. The +# default is 5. If defined, this should be an integer from 1 to 5, +# where 5 is the highest severity. + +severity = 3 + +#----------------------------------------------------------------------------- +# theme: Sets the default theme. Only Policies that fit into this +# them shall be applied. If defined, this should be a valid theme +# expression. See the Perl::Critic POD for more details about this. + +theme = danger + risky - pbp + +#----------------------------------------------------------------------------- +# top: Directs Perl::Critic to only report the top N Policy violations, +# as ranked by their individual severity. If defined, this should be +# a positive integer. + +top = 50 + +#----------------------------------------------------------------------------- +# verbose: Sets the format for printing Policy violations. If +# defined, this should be either a format spcecification, or a numeric +# verbosity level. See the Perl::Critic POD for more details. + +verbose = 5 + +############################################################################## +# The rest of the file consists of several named blocks that contain +# configuration parameters for each of the Policies. The names of +# each blocks correspond to the names of the Policy modules. For +# brevity, the "Perl::Critic::Policy" portion of the name can be +# omitted. See the POD for the appropriate Policy for a complete +# description of the configuration parameters that it supports. + + +#----------------------------------------------------------------------------- +# If you vehmently disagree with a particular Policy, putting a "-" in +# front of the Policy name will effectively disables that Policy. It +# will never be applied unless you use the "-include" option to apply +# it explicitly. + +[-NamingConventions::ProhibitMixedCaseVars] +[-NamingConventions::ProhibitMixedCaseSubs] +[-TestingAndDebugging::RequireUseWarnings] + +#----------------------------------------------------------------------------- +# If you agree with a Policy, but feel that it's severity level is not +# appropriate, then you can change the severity for any Policy. If +# defined this should be an integer from 1 to 5, where 5 is the +# highest severity. + +[BuiltinFunctions::RequireBlockGrep] +severity = 2 + +[CodeLayout::ProhibitHardTabs] +severity = 1 + +[ClassHierarchies::ProhibitAutoloading] +severity = 5 + +#----------------------------------------------------------------------------- +# Policies are also organized into themes. Themes are just names for +# arbitrary groups of Policies. You can define new themes and add +# them to any Policy. If defined, this should be a string of +# whitespace-delimited words. + +[RegularExpressions::RequireExtendedFormatting] +add_themes = client_foo +severity = 3 + +[RegularExpressions::RequireExtendedFormatting] +add_themes = client_foo client_bar +severity = 3 + +#----------------------------------------------------------------------------- +# Some Policies also have specialized configuration parameters. In +# all cases, these are repsented as simple name=value pairs. See the +# POD for the appropriate Policy for a complete discussion of its +# configuration parameters. + +[ControlStructures::ProhibitPostfixControls] +allow = for if +severity = 4 + +[Documentation::RequirePodSections] +lib_sections = NAME | SYNOPSIS | METHODS | AUTHOR +add_themes = my_favorites +severity = 4 + +#----------------------------------------------------------------------------- +# If you set the "only" flag, then Perl::Critic only chooses from +# Policies that are mentioned in your configuration file. This is +# helpful when you want to use only a very small subset of the +# Policies. So just create blocks for any other Policies that you +# want to use. + +[ValuesAndExpressions::ProhibitInterpolationOfLiterals] +[ValuesAndExpressions::ProhibitLeadingZeros] +[InputOutput::ProhibitBarewordFileHandles] +[Miscellanea::ProhibitTies] + + diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/examples/perlcriticrc-conway b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/examples/perlcriticrc-conway new file mode 100644 index 0000000..eb2d6dc --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/examples/perlcriticrc-conway @@ -0,0 +1,283 @@ +############################################################################## +# This Perl::Critic configuration file sets the Policy severity levels +# according to Damian Conway's own personal recommendations. Feel free to +# use this as your own, or make modifications. +############################################################################## + +[Perl::Critic::Policy::BuiltinFunctions::ProhibitLvalueSubstr] +severity = 3 + +[Perl::Critic::Policy::BuiltinFunctions::ProhibitReverseSortBlock] +severity = 1 + +[Perl::Critic::Policy::BuiltinFunctions::ProhibitSleepViaSelect] +severity = 5 + +[Perl::Critic::Policy::BuiltinFunctions::ProhibitStringyEval] +severity = 5 + +[Perl::Critic::Policy::BuiltinFunctions::ProhibitStringySplit] +severity = 2 + +[Perl::Critic::Policy::BuiltinFunctions::ProhibitUniversalCan] +severity = 4 + +[Perl::Critic::Policy::BuiltinFunctions::ProhibitUniversalIsa] +severity = 4 + +[Perl::Critic::Policy::BuiltinFunctions::ProhibitVoidGrep] +severity = 3 + +[Perl::Critic::Policy::BuiltinFunctions::ProhibitVoidMap] +severity = 3 + +[Perl::Critic::Policy::BuiltinFunctions::RequireBlockGrep] +severity = 4 + +[Perl::Critic::Policy::BuiltinFunctions::RequireBlockMap] +severity = 4 + +[Perl::Critic::Policy::BuiltinFunctions::RequireGlobFunction] +severity = 5 + +[Perl::Critic::Policy::BuiltinFunctions::RequireSimpleSortBlock] +severity = 3 + +[Perl::Critic::Policy::ClassHierarchies::ProhibitAutoloading] +severity = 3 + +[Perl::Critic::Policy::ClassHierarchies::ProhibitExplicitISA] +severity = 4 + +[Perl::Critic::Policy::ClassHierarchies::ProhibitOneArgBless] +severity = 5 + +[Perl::Critic::Policy::CodeLayout::ProhibitHardTabs] +severity = 3 + +[Perl::Critic::Policy::CodeLayout::ProhibitParensWithBuiltins] +severity = 1 + +[Perl::Critic::Policy::CodeLayout::ProhibitQuotedWordLists] +severity = 2 + +[Perl::Critic::Policy::CodeLayout::RequireConsistentNewlines] +severity = 4 + +[Perl::Critic::Policy::CodeLayout::RequireTidyCode] +severity = 1 + +[Perl::Critic::Policy::CodeLayout::RequireTrailingCommas] +severity = 3 + +[Perl::Critic::Policy::ControlStructures::ProhibitCStyleForLoops] +severity = 3 + +[Perl::Critic::Policy::ControlStructures::ProhibitCascadingIfElse] +severity = 3 + +[Perl::Critic::Policy::ControlStructures::ProhibitDeepNests] +severity = 3 + +[Perl::Critic::Policy::ControlStructures::ProhibitMutatingListFunctions] +severity = 5 + +[Perl::Critic::Policy::ControlStructures::ProhibitPostfixControls] +severity = 4 + +[Perl::Critic::Policy::ControlStructures::ProhibitUnlessBlocks] +severity = 4 + +[Perl::Critic::Policy::ControlStructures::ProhibitUnreachableCode] +severity = 4 + +[Perl::Critic::Policy::ControlStructures::ProhibitUntilBlocks] +severity = 4 + +[Perl::Critic::Policy::Documentation::RequirePodAtEnd] +severity = 2 + +[Perl::Critic::Policy::Documentation::RequirePodSections] +severity = 2 + +[Perl::Critic::Policy::ErrorHandling::RequireCarping] +severity = 4 + +[Perl::Critic::Policy::InputOutput::ProhibitBacktickOperators] +severity = 3 + +[Perl::Critic::Policy::InputOutput::ProhibitBarewordFileHandles] +severity = 5 + +[Perl::Critic::Policy::InputOutput::ProhibitInteractiveTest] +severity = 4 + +[Perl::Critic::Policy::InputOutput::ProhibitOneArgSelect] +severity = 4 + +[Perl::Critic::Policy::InputOutput::ProhibitReadlineInForLoop] +severity = 5 + +[Perl::Critic::Policy::InputOutput::ProhibitTwoArgOpen] +severity = 4 + +[Perl::Critic::Policy::InputOutput::RequireBracedFileHandleWithPrint] +severity = 3 + +[Perl::Critic::Policy::Miscellanea::ProhibitFormats] +severity = 3 + +[Perl::Critic::Policy::Miscellanea::ProhibitTies] +severity = 4 + +[-Perl::Critic::Policy::Miscellanea::RequireRcsKeywords] + +[Perl::Critic::Policy::Modules::ProhibitAutomaticExportation] +severity = 4 + +[Perl::Critic::Policy::Modules::ProhibitEvilModules] +severity = 5 + +[Perl::Critic::Policy::Modules::ProhibitMultiplePackages] +severity = 4 + +[Perl::Critic::Policy::Modules::RequireBarewordIncludes] +severity = 5 + +[Perl::Critic::Policy::Modules::RequireEndWithOne] +severity = 4 + +[Perl::Critic::Policy::Modules::RequireExplicitPackage] +severity = 4 + +[Perl::Critic::Policy::Modules::RequireFilenameMatchesPackage] +severity = 5 + +[Perl::Critic::Policy::Modules::RequireVersionVar] +severity = 4 + +[Perl::Critic::Policy::NamingConventions::ProhibitAmbiguousNames] +severity = 3 + +[Perl::Critic::Policy::NamingConventions::ProhibitMixedCaseSubs] +severity = 1 + +[Perl::Critic::Policy::NamingConventions::ProhibitMixedCaseVars] +severity = 1 + +[Perl::Critic::Policy::References::ProhibitDoubleSigils] +severity = 4 + +[Perl::Critic::Policy::RegularExpressions::ProhibitCaptureWithoutTest] +severity = 4 + +[Perl::Critic::Policy::RegularExpressions::RequireExtendedFormatting] +severity = 5 + +[Perl::Critic::Policy::RegularExpressions::RequireLineBoundaryMatching] +severity = 5 + +[Perl::Critic::Policy::Subroutines::ProhibitAmpersandSigils] +severity = 2 + +[Perl::Critic::Policy::Subroutines::ProhibitBuiltinHomonyms] +severity = 4 + +[Perl::Critic::Policy::Subroutines::ProhibitExcessComplexity] +severity = 3 + +[Perl::Critic::Policy::Subroutines::ProhibitExplicitReturnUndef] +severity = 5 + +[Perl::Critic::Policy::Subroutines::ProhibitSubroutinePrototypes] +severity = 4 + +[Perl::Critic::Policy::Subroutines::ProtectPrivateSubs] +severity = 3 + +[Perl::Critic::Policy::Subroutines::RequireFinalReturn] +severity = 5 + +[Perl::Critic::Policy::TestingAndDebugging::ProhibitNoStrict] +severity = 5 + +[Perl::Critic::Policy::TestingAndDebugging::ProhibitNoWarnings] +severity = 4 + +[Perl::Critic::Policy::TestingAndDebugging::ProhibitProlongedStrictureOverride] +severity = 4 + +[Perl::Critic::Policy::TestingAndDebugging::RequireTestLabels] +severity = 3 + +[Perl::Critic::Policy::TestingAndDebugging::RequireUseStrict] +severity = 5 + +[Perl::Critic::Policy::TestingAndDebugging::RequireUseWarnings] +severity = 4 + +[Perl::Critic::Policy::ValuesAndExpressions::ProhibitConstantPragma] +severity = 4 + +[Perl::Critic::Policy::ValuesAndExpressions::ProhibitEmptyQuotes] +severity = 2 + +[Perl::Critic::Policy::ValuesAndExpressions::ProhibitEscapedCharacters] +severity = 2 + +[Perl::Critic::Policy::ValuesAndExpressions::ProhibitInterpolationOfLiterals] +severity = 1 + +[Perl::Critic::Policy::ValuesAndExpressions::ProhibitLeadingZeros] +severity = 5 + +[Perl::Critic::Policy::ValuesAndExpressions::ProhibitMismatchedOperators] +severity = 2 + +[Perl::Critic::Policy::ValuesAndExpressions::ProhibitMixedBooleanOperators] +severity = 4 + +[Perl::Critic::Policy::ValuesAndExpressions::ProhibitNoisyQuotes] +severity = 2 + +[Perl::Critic::Policy::ValuesAndExpressions::ProhibitVersionStrings] +severity = 3 + +[Perl::Critic::Policy::ValuesAndExpressions::RequireInterpolationOfMetachars] +severity = 1 + +[Perl::Critic::Policy::ValuesAndExpressions::RequireNumberSeparators] +severity = 2 + +[Perl::Critic::Policy::ValuesAndExpressions::RequireQuotedHeredocTerminator] +severity = 4 + +[Perl::Critic::Policy::ValuesAndExpressions::RequireUpperCaseHeredocTerminator] +severity = 4 + +[Perl::Critic::Policy::Variables::ProhibitConditionalDeclarations] +severity = 5 + +[Perl::Critic::Policy::Variables::ProhibitLocalVars] +severity = 2 + +[Perl::Critic::Policy::Variables::ProhibitMatchVars] +severity = 4 + +[Perl::Critic::Policy::Variables::ProhibitPackageVars] +severity = 3 + +[Perl::Critic::Policy::Variables::ProhibitPunctuationVars] +severity = 2 + +[Perl::Critic::Policy::Variables::ProtectPrivateVars] +severity = 3 + +[Perl::Critic::Policy::Variables::RequireInitializationForLocalVars] +severity = 5 + +[Perl::Critic::Policy::Variables::RequireLexicalLoopIterators] +severity = 5 + +[Perl::Critic::Policy::Variables::RequireNegativeIndices] +severity = 4 \ No newline at end of file diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/extras/KomodoIntegration.pod b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/extras/KomodoIntegration.pod new file mode 100644 index 0000000..b51de10 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/extras/KomodoIntegration.pod @@ -0,0 +1,88 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/extras/KomodoIntegration.pod $ +# $Date: 2008-06-22 11:08:37 -0700 (Sun, 22 Jun 2008) $ +# $Author: clonezone $ +# $Revision: 2467 $ +############################################################################## + +=head1 NAME + +KomodoIntegration - Integrating perlcritic and Komodo. + +=head1 DESCRIPTION + +This document describes the steps for integrating F with Komodo 4.0 +from ActiveState. More information about Komodo can be found at +L + +These instructions assume that F has been installed somewhere in +your C<$PATH>. If it is not in your C<$PATH>, you must give the full path to +F instead of using the C<-S> switch. Also, I'm assuming that you +have installed Perl-Critic with the same Perl that Komodo is using. If that +is not the case, you'll probably have to give a full path to F instead +of using the C<%perl> placeholder. + +=over 4 + +=item * Start Komodo. + +=item * Select C<< Toolbox -> Add -> New Command... >> from the menu. + +=item * Enter a name for the command (e.g. "perlcritic"). + +=item * In the C field, enter the following: + + %perl -S perlcritic --severity=%(ask:Severity level [1-5]?:5) --verbose=1 %F + +=item * Uncheck the C and C boxes. + +=item * In the C drop-down list, select C. + +=item * Uncheck the C box. + +=item * Check the C box, and type this into the field: + + ^(?P.+):(?P.+):(?P.+):(?P.+)$ + +=item * Check the C box. + +=item * Click the C tab. + +=item * Click the C text field, and press C. + +=item * Click the C button. + +=item * Click the C button. + +=back + +Now to run F on the current file, just press C, or +select C from the C menu. Each time, you will be +prompted to enter the minimum severity level (defaulting to 5). After a few +moments, the output will appear in the C pane. By +double-clicking on the output messages, you can navigate to the appropriate +point in the code. + +=head1 AUTHOR + +Jeffrey Ryan Thalhammer + +=head1 COPYRIGHT + +Copyright (c) 2005-2008 Jeffrey Ryan Thalhammer. All rights reserved. + +This program is free software; you can redistribute it and/or modify it under +the same terms as Perl itself. The full text of this license can be found in +the LICENSE file included with this module. + +=cut + +############################################################################## +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/extras/perlcritic.el b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/extras/perlcritic.el new file mode 100644 index 0000000..f48b397 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/extras/perlcritic.el @@ -0,0 +1,681 @@ +;;; perlcritic.el --- minor mode for Perl::Critic integration + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/extras/perlcritic.el $ +;;; $Date: 2008-03-16 17:40:45 -0500 (Sun, 16 Mar 2008) $ +;;; $Author: clonezone $ +;;; $Revision: 2187 $ +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + + +;;; Readme +;; +;; This is a minor mode for emacs intended to allow you to +;; automatically incorporate perlcritic into your daily code +;; writing. When enabled it can optionally prevent you from saving +;; code that doesn't pass your enabled perlcritic policies. +;; +;; Even if you don't enable the automatic code checking you can still +;; use the automatic checking or the `perlcritic' function. + + +;;; Installation instructions: +;; +;; Copy perlcritic.el to your ~/.site-lib directory. If you don't +;; have a .site-lib directory create it and add the following line +;; to your .emacs file. This location isn't special, you could use +;; a different location if you wished. +;; +;; (add-to-list 'load-path "/home/your-name/.site-lisp") +;; +;; Add the following lines to your .emacs file. This allows Emacs +;; to load your perlcritic library only when needed. +;; +;; (autoload 'perlcritic "perlcritic" "" t) +;; (autoload 'perlcritic-region "perlcritic" "" t) +;; (autoload 'perlcritic-mode "perlcritic" "" t) +;; +;; Add the following to your .emacs file to get perlcritic-mode to +;; run automatically for the `cperl-mode' and `perl-mode'. +;; +;; (eval-after-load "cperl-mode" +;; '(add-hook 'cperl-mode-hook 'perlcritic-mode)) +;; (eval-after-load "perl-mode" +;; '(add-hook 'perl-mode-hook 'perlcritic-mode)) +;; +;; +;; If you think you need perlcritic loaded all the time you can +;; make this unconditional by using the following command instead +;; of the above autoloading. +;; +;; (require 'perlcritic) +;; +;; Compile the file for extra performance. This is optional. You +;; will have to redo this everytime you modify or upgrade your +;; perlcritic.el file. +;; +;; M-x byte-compile-file ~/.site-lib/perlcritic.el +;; +;; Additional customization can be found in the Perl::Critic group +;; in the Tools section in the Programming section of your Emacs' +;; customization menus. + + +;;; TODO +;; +;; Find out how to get perlcritic customization stuff into the +;; customization menus without having to load perlcritic.el +;; first. +;; +;; This needs an installer. Is there anything I can use in +;; ExtUtils::MakeMaker, Module::Build, or Module::Install? +;; Alien::? +;; +;; XEmacs compatibility. I use GNU Emacs and don't test in +;; XEmacs. I'm happy to do what it takes to be compatible but +;; someone will have to point things out to me. +;; +;; Make all documentation strings start with a sentence that fits +;; on one line. See "Tips for Documentation Strings" in the Emacs +;; Lisp manual. +;; +;; Any FIXME, TODO, or XXX tags below. + + +;;; Change Log: +;; 0.10 +;; * Synched up regexp alist with Perl::Critic::Utils and accounted for all +;; past patterns too. +;; 0.09 +;; * Added documentation for perlcritic-top, perlcritic-include, +;; perlcritic-exclude, perlcritic-force, perlcritic-verbose. +;; * Added emacs/vim editor hints to the bottom. +;; * Corrected indentation. +;; 0.08 +;; * Fixed perlcritic-compilation-error-regexp-alist for all +;; severity levels. +;; * Added documentation strings for functions. +;; 0.07 +;; * Moved perlcritic-compilation-error-regexp-alist so it is in the +;; source before it's used. This only seems to matter when +;; perlcritic.el is compiled to bytecode. +;; * Added perlcritic-exclude, perlcritic-include + +;; 0.06 +;; * Code cleanliness. +;; * Comment cleanliness. +;; * Nice error message when perlcritic warns. +;; * Documented perlcritic-top, perlcritic-verbose. +;; * Regular expressions for the other standard -verbose levels. +;; * Reversed Changes list so the most recent is first. +;; * Standard emacs library declarations. +;; * Added autoloading metadata. +;; 0.05 +;; * perlcritic-bin invocation now shown in output. +;; * Fixed indentation. +;; * perlcritic-region is now interactive. +;; 0.04 +;; * Removed a roque file-level (setq perlcritic-top 1) +;; * Moved cl library to compile-time. +;; 0.03 +;; * compile.el integration. This makes for hotlink happiness. +;; * Better sanity when starting the *perlcritic* buffer. +;; 0.02 +;; * perlcritic-severity-level added. +;; * Touched up the installation documentation. +;; * perlcritic-pass-required is now buffer local. +;; 0.01 +;; * It's new. I copied much of this from perl-lint-mode. + +;;; Copyright and license +;; +;; 2006 Joshua ben Jore +;; +;; This program is free software; you can redistribute it and/or +;; modify it under the same terms as Perl itself + + + + +;;; Code: + +;;; Customization and variables. +(defgroup perlcritic nil "Perl::Critic" + :prefix "perlcritic-" + :group 'tools) + +(defcustom perlcritic-bin "perlcritic" + "The perlcritic program used by `perlcritic'." + :type 'string + :group 'perlcritic) + +(defcustom perlcritic-pass-required nil + "When \\[perlcritic-mode] is enabled then this boolean controls +whether your file can be saved when there are perlcritic warnings. + +This variable is automatically buffer-local and may be overridden on a +per-file basis with File Variables." + :type '(radio + (const :tag "Require no warnings from perlcritic to save" t) + (const :tag "Allow warnings from perlcritic when saving" nil)) + :group 'perlcritic) +(make-variable-buffer-local 'perlcritic-pass-required) + +(defcustom perlcritic-profile nil + "Specify an alternate .perlcriticrc file. This is only used if +non-nil." + :type '(string) + :group 'perlcritic) +(make-variable-buffer-local 'perlcritic-profile) + +(defcustom perlcritic-noprofile nil + "Disables the use of any .perlcriticrc file." + :type '(boolean) + :group 'perlcritic) +(make-variable-buffer-local 'perlcritic-noprofile) + +(defcustom perlcritic-severity nil + "Directs perlcritic to only report violations of Policies with a +severity greater than N. Severity values are integers ranging from +1 (least severe) to 5 (most severe). The default is 5. For a given +-profile, decreasing the -severity will usually produce more +violations. Users can redefine the severity for any Policy in their +.perlcriticrc file. + +This variable is automatically buffer-local and may be overridden on a +per-file basis with File Variables." + ;; FIXME: My GNU Emacs doesn't show a radio widget or a menu here. + :type '(radio + (const :tag "Show only the most severe: 5" 5) + (const :tag "4" 4) + (const :tag "3" 3) + (const :tag "2" 2) + (const :tag "Show everything including the least severe: 1" 1)) + :group 'perlcritic) +(make-variable-buffer-local 'perlcritic-severity) + +(defcustom perlcritic-top nil + "Directs \"perlcritic\" to report only the top N Policy violations in +each file, ranked by their severity. If the -severity option is not +explicitly given, the -top option implies that the minimum severity +level is 1. Users can redefine the severity for any Policy in their +.perlcriticrc file. + +This variable is automatically buffer-local and may be overridden on a +per-file basis with File Variables." + :type '(integer) + :group 'perlcritic) +(make-variable-buffer-local 'perlcritic-top) + +(defcustom perlcritic-include nil + "Directs \"perlcritic\" to apply additional Policies that match the regex \"/PATTERN/imx\". +Use this option to override your profile and/or the severity settings. + +For example: + + layout + +This would cause \"perlcritic\" to apply all the \"CodeLayout::*\" policies +even if they have a severity level that is less than the default level of 5, +or have been disabled in your .perlcriticrc file. You can specify multiple +`perlcritic-include' options and you can use it in conjunction with the +`perlcritic-exclude' option. Note that `perlcritic-exclude' takes precedence +over `perlcritic-include' when a Policy matches both patterns. You can set +the default value for this option in your .perlcriticrc file." + :type '(string) + :group 'perlcritic) +(make-variable-buffer-local 'perlcritic-include) + +(defcustom perlcritic-exclude nil + "Directs \"perlcritic\" to not apply any Policy that matches the regex +\"/PATTERN/imx\". Use this option to temporarily override your profile and/or +the severity settings at the command-line. For example: + + strict + +This would cause \"perlcritic\" to not apply the \"RequireUseStrict\" and +\"ProhibitNoStrict\" Policies even though they have the highest severity +level. You can specify multiple `perlcritic-exclude' options and you can use +it in conjunction with the `perlcritic-include' option. Note that +`perlcritic-exclude' takes precedence over `perlcritic-include' when a Policy +matches both patterns. You can set the default value for this option in your +.perlcriticrc file." + :type '(string) + :group 'perlcritic) +(make-variable-buffer-local 'perlcritic-exclude) + + +(defcustom perlcritic-force nil + "Directs \"perlcritic\" to ignore the magical \"## no critic\" +pseudo-pragmas in the source code. You can set the default value for this +option in your .perlcriticrc file." + :type '(boolean) + :group 'perlcritic) +(make-variable-buffer-local 'perlcritic-force) + +(defcustom perlcritic-verbose nil + "Sets the numeric verbosity level or format for reporting violations. If +given a number (\"N\"), \"perlcritic\" reports violations using one of the +predefined formats described below. If the `perlcritic-verbose' option is not +specified, it defaults to either 4 or 5, depending on whether multiple files +were given as arguments to \"perlcritic\". You can set the default value for +this option in your .perlcriticrc file. + +Verbosity Format Specification +----------- ------------------------------------------------------------- + 1 \"%f:%l:%c:%m\n\", + 2 \"%f: (%l:%c) %m\n\", + 3 \"%m at %f line %l\n\", + 4 \"%m at line %l, column %c. %e. (Severity: %s)\n\", + 5 \"%f: %m at line %l, column %c. %e. (Severity: %s)\n\", + 6 \"%m at line %l, near ’%r’. (Severity: %s)\n\", + 7 \"%f: %m at line %l near ’%r’. (Severity: %s)\n\", + 8 \"[%p] %m at line %l, column %c. (Severity: %s)\n\", + 9 \"[%p] %m at line %l, near ’%r’. (Severity: %s)\n\", +10 \"%m at line %l, column %c.\n %p (Severity: %s)\n%d\n\", +11 \"%m at line %l, near ’%r’.\n %p (Severity: %s)\n%d\n\" + +Formats are a combination of literal and escape characters similar to the way +\"sprintf\" works. See String::Format for a full explanation of the +formatting capabilities. Valid escape characters are: + +Escape Meaning +------- ---------------------------------------------------------------- +%c Column number where the violation occurred +%d Full diagnostic discussion of the violation +%e Explanation of violation or page numbers in PBP +%F Just the name of the file where the violation occurred. +%f Path to the file where the violation occurred. +%l Line number where the violation occurred +%m Brief description of the violation +%P Full name of the Policy module that created the violation +%p Name of the Policy without the Perl::Critic::Policy:: prefix +%r The string of source code that caused the violation +%s The severity level of the violation + +The purpose of these formats is to provide some compatibility with text +editors that have an interface for parsing certain kinds of input. + + +This variable is automatically buffer-local and may be overridden on a +per-file basis with File Variables." + :type '(integer) + :group 'perlcritic) +(make-variable-buffer-local 'perlcritic-verbose) + +;; TODO: Enable strings in perlcritic-verbose. +;; (defcustom perlcritic-verbose-regexp nil +;; "An optional regexp to match the warning output. +;; +;; This is used when `perlcritic-verbose' has a regexp instead of one of +;; the standard verbose levels.") +;; (make-local-variable 'perlcritic-verbose-regexp) + + +;; compile.el requires that something be the "filename." I've tagged +;; the severity with that. It happens to make it get highlighted in +;; red. The following advice on COMPILATION-FIND-FILE makes sure that +;; the "filename" is getting ignored when perlcritic is using it. + +;; These patterns are defined in Perl::Critic::Utils + +(defvar perlcritic-compilation-error-regexp-alist + '(;; Verbose level 1 + ;; "%f:%l:%c:%m\n" + ("^\\([^\n]+\\):\\([0-9]+\\):\\([0-9]+\\)" 1 2 3) + + ;; Verbose level 2 + ;; "%f: (%l:%c) %m\n" + ("^\\([^\n]+\\): (\\([0-9]+\\):\\([0-9]+\\))" 1 2 3) + + ;; Verbose level 3 + ;; "%m at %f line %l\n" + ("^[^\n]+ at \\([^\n]+\\) line \\([0-9]+\\)" 1 2) + ;; "%m at line %l, column %c. %e. (Severity: %s)\n" + ("^[^\n]+ at line\\( \\)\\([0-9]+\\), column \\([0-9]+\\)." 1 2 3) + + ;; Verbose level 4 + ;; "%m at line %l, column %c. %e. (Severity: %s)\n" + ("^[^\n]+ at line\\( \\)\\([0-9]+\\), column \\([0-9]+\\)." 1 2 3) + ;; "%f: %m at line %l, column %c. %e. (Severity: %s)\n" + ("^\\([^\n]+\\): [^\n]+ at line \\([0-9]+\\), column \\([0-9]+\\)" 1 2 3) + + ;; Verbose level 5 + ;; "%m at line %l, near '%r'. (Severity: %s)\n" + ("^[^\n]+ at line\\( \\)\\([0-9]+\\)," 1 2) + ;; "%f: %m at line %l, column %c. %e. (Severity: %s)\n" + ("^\\([^\n]+\\): [^\n]+ at line \\([0-9]+\\), column \\([0-9]+\\)" 1 2 3) + + ;; Verbose level 6 + ;; "%m at line %l, near '%r'. (Severity: %s)\\n" + ("^[^\n]+ at line\\( \\)\\([0-9]+\\)" 1 2) + ;; "%f: %m at line %l near '%r'. (Severity: %s)\n" + ("^\\([^\n]+\\): [^\n]+ at line \\([0-9]+\\)" 1 2) + + ;; Verbose level 7 + ;; "%f: %m at line %l near '%r'. (Severity: %s)\n" + ("^\\([^\n]+\\): [^\n]+ at line \\([0-9]+\\)" 1 2) + ;; "[%p] %m at line %l, column %c. (Severity: %s)\n" + ("^\\[[^\n]+\\] [^\n]+ at line\\( \\)\\([0-9]+\\), column \\([0-9]+\\)" 1 2 3) + + ;; Verbose level 8 + ;; "[%p] %m at line %l, column %c. (Severity: %s)\n" + ("^\\[[^\n]+\\] [^\n]+ at line\\( \\)\\([0-9]+\\), column \\([0-9]+\\)" 1 2 3) + ;; "[%p] %m at line %l, near '%r'. (Severity: %s)\n" + ("^\\[[^\n]+\\] [^\n]+ at line\\( \\)\\([0-9]+\\)" 1 2) + + ;; Verbose level 9 + ;; "%m at line %l, column %c.\n %p (Severity: %s)\n%d\n" + ("^[^\n]+ at line\\( \\)\\([0-9]+\\), column \\([0-9]+\\)" 1 2 3) + ;; "[%p] %m at line %l, near '%r'. (Severity: %s)\n" + ("^\\[[^\n]+\\] [^\n]+ at line\\( \\)\\([0-9]+\\)" 1 2) + + ;; Verbose level 10 + ;; "%m at line %l, near '%r'.\n %p (Severity: %s)\n%d\n" + ("^[^\n]+ at line\\( \\)\\([0-9]+\\)" 1 2) + ;; "%m at line %l, column %c.\n %p (Severity: %s)\n%d\n" + ("^[^\n]+ at line\\( \\)\\([0-9]+\\), column \\([0-9]+\\)" 1 2 3) + + ;; Verbose level 11 + ;; "%m at line %l, near '%r'.\n %p (Severity: %s)\n%d\n" + ("^[^\n]+ at line\\( \\)\\([0-9]+\\)" 1 2) + ) + "Alist that specified how to match errors in perlcritic output.") + + + +;; The Emacs Lisp manual says to do this with the cl library. +(eval-when-compile (require 'cl)) + +;;;###autoload +(defun perlcritic () + "\\[perlcritic]] returns a either nil or t depending on whether the +current buffer passes perlcritic's check. If there are any warnings +those are displayed in a separate buffer." + (interactive) + (save-restriction + (widen) + (perlcritic-region (point-min) (point-max)))) + +;;;###autoload +(defun perlcritic-region (start end) + "\\[perlcritic-region] returns a either nil or t depending on +whether the region passes perlcritic's check. If there are any +warnings those are displayed in a separate buffer." + + (interactive "r") + + ;; Kill the perlcritic buffer so I can make a new one. + (if (get-buffer "*perlcritic*") + (kill-buffer "*perlcritic*")) + + ;; In the following lines I'll be switching between buffers + ;; freely. This upper save-excursion will keep things sane. + (save-excursion + (let ((src-buf (current-buffer)) + (err-buf (get-buffer-create "*perlcritic*"))) + + (set-buffer src-buf) + (let ((perlcritic-args (loop for p in (list + ;; Add new bin/perlcritic + ;; parameters here! + (perlcritic--param-profile) + (perlcritic--param-noprofile) + (perlcritic--param-severity) + (perlcritic--param-top) + (perlcritic--param-include) + (perlcritic--param-exclude) + (perlcritic--param-force) + (perlcritic--param-verbose)) + unless (null p) + append p))) + ; + (message "Perl critic...running") + ;; Seriously. Is this the nicest way to call + ;; CALL-PROCESS-REGION with variadic arguments? This blows! + ;; (apply FUNCTION (append STATIC-PART DYNAMIC-PART)) + (let ((rc (apply 'call-process-region + (nconc (list start end + perlcritic-bin nil + (list err-buf t) + nil) + perlcritic-args)))) + + ;; Figure out whether we're ok or not. perlcritic has to + ;; return zero and the output buffer has to be empty except + ;; for that "... source OK" line. Different versions of the + ;; perlcritic script will print different things when + ;; they're ok. I expect to see things like "some-file source + ;; OK", "SCALAR=(0x123457) source OK", "STDIN source OK", + ;; and "source OK". + (let ((perlcritic-ok (and (numberp rc) + (zerop rc) + (progn + (set-buffer err-buf) + (goto-char (point-min)) + (delete-matching-lines "source OK$") + (zerop (buffer-size)))))) + ;; Either clean up or finish setting up my output. + (if perlcritic-ok + ;; Ok! + (progn + (kill-buffer err-buf) + (message "Perl critic...ok")) + + + ;; Not ok! + (message "Perl critic...not ok") + + ;; Set up the output buffer now I know it'll be used. I + ;; scooped the guts out of compile-internal. It is + ;; CRITICAL that the errors start at least two lines + ;; from the top. compile.el normally assumes the first + ;; line is an informational `cd somedirectory' command + ;; and the second line shows the program's invocation. + ;; + ;; Since I have the space available I've put the + ;; program's invocation here. Maybe it'd make sense to + ;; put the buffer's directory here somewhere too. + (set-buffer err-buf) + (goto-char (point-min)) + (insert (reduce (lambda (a b) (concat a " " b)) + (nconc (list perlcritic-bin) + perlcritic-args)) + "\n" + ;; TODO: instead of a blank line, print the + ;; buffer's directory+file. + "\n") + (goto-char (point-min)) + ;; TODO: get `recompile' to work. + + ;; just an fyi. compilation-mode will delete my local + ;; variables so be sure to call it *first*. + (compilation-mode "perlcritic") + (set (make-local-variable 'perlcritic-buffer) src-buf) + (set (make-local-variable 'compilation-error-regexp-alist) + perlcritic-compilation-error-regexp-alist) + (ad-activate #'compilation-find-file) + ; (ad-deactivate #'compilation-find-file) + (display-buffer err-buf)) + + ;; Return our success or failure. + perlcritic-ok)))))) + + + + +;;; Parameters for use by perlcritic-region. +(defun perlcritic--param-profile () + "A private method that supplies the -profile FILENAME parameter for +\\[perlcritic-region]" + (if perlcritic-profile (list "-profile" perlcritic-profile))) + +(defun perlcritic--param-noprofile () + "A private method that supplies the -noprofile parameter for +\\[perlcritic-region]" + (if perlcritic-noprofile (list "-noprofile"))) + +(defun perlcritic--param-force () + "A private method that supplies the -force parameter for +\\[perlcritic-region]" + (if perlcritic-force (list "-force"))) + +(defun perlcritic--param-severity () + "A private method that supplies the -severity NUMBER parameter for +\\[perlcritic-region]" + (cond ((stringp perlcritic-severity) + (list "-severity" perlcritic-severity)) + ((numberp perlcritic-severity) + (list "-severity" (number-to-string perlcritic-severity))) + (t nil))) + +(defun perlcritic--param-top () + "A private method that supplies the -top NUMBER parameter for +\\[perlcritic-region]" + (cond ((stringp perlcritic-top) + (list "-top" perlcritic-top)) + ((numberp perlcritic-top) + (list "-top" (number-to-string perlcritic-top))) + (t nil))) + +(defun perlcritic--param-include () + "A private method that supplies the -include REGEXP parameter for +\\[perlcritic-region]" + (if perlcritic-include + (list "-include" perlcritic-include) + nil)) + +(defun perlcritic--param-exclude () + "A private method that supplies the -exclude REGEXP parameter for +\\[perlcritic-region]" + (if perlcritic-exclude + (list "-exclude" perlcritic-exclude) + nil)) + +(defun perlcritic--param-verbose () + "A private method that supplies the -verbose NUMBER parameter for +\\[perlcritic-region]" + (cond ((stringp perlcritic-verbose) + (list "-verbose" perlcritic-verbose)) + ((numberp perlcritic-verbose) + (list "-verbose" (number-to-string perlcritic-verbose))) + (t nil))) + + +;; Interactive functions for use by the user to modify parameters on +;; an adhoc basis. I'm sure there's room for significant niceness +;; here. Suggest something. Please. +(defun perlcritic-profile (profile) + "Sets perlcritic's -profile FILENAME parameter." + (interactive "sperlcritic -profile: ") + (setq perlcritic-profile (if (string= profile "") nil profile))) + +(defun perlcritic-noprofile (noprofile) + "Toggles perlcritic's -noprofile parameter." + (interactive (list (yes-or-no-p "Enable perlcritic -noprofile? "))) + (setq perlcritic-noprofile noprofile)) + +(defun perlcritic-force (force) + "Toggles perlcritic's -force parameter." + (interactive (list (yes-or-no-p "Enable perlcritic -force? "))) + (setq perlcritic-force force)) + +(defun perlcritic-severity (severity) + "Sets perlcritic's -severity NUMBER parameter." + (interactive "nperlcritic -severity: ") + (setq perlcritic-severity severity)) + +(defun perlcritic-top (top) + "Sets perlcritic's -top NUMBER parameter." + (interactive "nperlcritic -top: ") + (setq perlcritic-top top)) + +(defun perlcritic-include (include) + "Sets perlcritic's -include REGEXP parameter." + (interactive "sperlcritic -include: ") + (setq perlcritic-include include)) + +(defun perlcritic-exclude (exclude) + "Sets perlcritic's -exclude REGEXP parameter." + (interactive "sperlcritic -exclude: ") + (setq perlcritic-exclude exclude)) + +(defun perlcritic-verbose (verbose) + "Sets perlcritic's -verbose NUMBER parameter." + (interactive "nperlcritic -verbose: ") + (setq perlcritic-verbose verbose)) + + + + + +;; Hooks compile.el's compilation-find-file to enable our file-less +;; operation. We feed `perlcritic-bin' from STDIN, not from a file. +(defadvice compilation-find-file (around perlcritic-find-file) + "Lets perlcritic lookup into the buffer we just came from and don't +require that the perl document exist in a file anywhere." + (let ((debug-buffer (marker-buffer marker))) + (if (local-variable-p 'perlcritic-buffer debug-buffer) + (setq ad-return-value perlcritic-buffer) + ad-do-it))) + + + + + +;; All the scaffolding of having a minor mode. +(defvar perlcritic-mode nil + "Toggle `perlcritic-mode'") +(make-variable-buffer-local 'perlcritic-mode) + +(defun perlcritic-write-hook () + "Check perlcritic during `write-file-hooks' for `perlcritic-mode'" + (if perlcritic-mode + (save-excursion + (widen) + (mark-whole-buffer) + (let ((perlcritic-ok (perlcritic))) + (if perlcritic-pass-required + ;; Impede saving if we're not ok. + (not perlcritic-ok) + ;; Don't impede saving. We might not be ok but that + ;; doesn't matter now. + nil))) + ;; Don't impede saving. We're not in perlcritic-mode. + nil)) + +;;;###autoload +(defun perlcritic-mode (&optional arg) + "Perl::Critic checking minor mode." + (interactive "P") + + ;; Enable/disable perlcritic-mode + (setq perlcritic-mode (if (null arg) + ;; Nothing! Just toggle it. + (not perlcritic-mode) + ;; Set it. + (> (prefix-numeric-value arg) 0))) + + (make-local-hook 'write-file-hooks) + (if perlcritic-mode + (add-hook 'write-file-hooks 'perlcritic-write-hook) + (remove-hook 'write-file-hooks 'perlcritic-write-hook))) + +;; Make a nice name for perl critic mode. This string will appear at +;; the bottom of the screen. +(if (not (assq 'perlcritic-mode minor-mode-alist)) + (setq minor-mode-alist + (cons '(perlcritic-mode " Critic") + minor-mode-alist))) + +(provide 'perlcritic) + +;; Local Variables: +;; mode: emacs-lisp +;; tab-width: 8 +;; fill-column: 78 +;; indent-tabs-mode: nil +;; End: +;; ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : + +;;; perlcritic.el ends here diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS.pm new file mode 100644 index 0000000..2cc268e --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS.pm @@ -0,0 +1,81 @@ +# $Id: AssertOS.pm,v 1.2 2007/09/28 16:30:11 drhyde Exp $ + +package Devel::AssertOS; + +use Devel::CheckOS qw(die_if_os_isnt); + +use strict; + +use vars qw($VERSION); + +$VERSION = '1.0'; + +# localising prevents the warningness leaking out of this module +local $^W = 1; # use warnings is a 5.6-ism + +=head1 NAME + +Devel::AssertOS - require that we are running on a particular OS + +=head1 DESCRIPTION + +Devel::AssertOS is a utility module for Devel::CheckOS and +Devel::AssertOS::*. It is nothing but a magic C that lets you +do this: + + use Devel::AssertOS qw(Linux FreeBSD Cygwin); + +which will die unless the platform the code is running on is Linux, FreeBSD +or Cygwin. + +=cut + +sub import { + shift; + die("Devel::AssertOS needs at least one parameter\n") unless(@_); + die_if_os_isnt(@_); +} + +=head1 BUGS and FEEDBACK + +I welcome feedback about my code, including constructive criticism. +Bug reports should be made using L or by email. + +You will need to include in your bug report the exact value of $^O, what +the OS is called (eg Windows Vista 64 bit Ultimate Home Edition), and, +if relevant, what "OS family" it should be in and who wrote it. + +If you are feeling particularly generous you can encourage me in my +open source endeavours by buying me something from my wishlist: + L + +=head1 SEE ALSO + +$^O in L + +L + +L + +L + +=head1 AUTHOR + +David Cantrell EFE + +Thanks to David Golden for suggesting that I add this utility module. + +=head1 COPYRIGHT and LICENCE + +Copyright 2007 David Cantrell + +This module is free-as-in-speech software, and may be used, distributed, +and modified under the same conditions as perl itself. + +=head1 CONSPIRACY + +This module is also free-as-in-mason software. + +=cut + +$^O; diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/AIX.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/AIX.pm new file mode 100644 index 0000000..c6acc9d --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/AIX.pm @@ -0,0 +1,13 @@ +# $Id: AIX.pm,v 1.1 2007/09/27 16:41:24 drhyde Exp $ + +package Devel::AssertOS::AIX; + +use Devel::CheckOS qw(die_unsupported); + +$VERSION = '1.0'; + +sub os_is { $^O eq 'aix' ? 1 : 0; } + +die_unsupported() unless(os_is()); + +1; \ No newline at end of file diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/Amiga.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/Amiga.pm new file mode 100644 index 0000000..27c7b3d --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/Amiga.pm @@ -0,0 +1,13 @@ +# $Id: Amiga.pm,v 1.1 2007/09/27 16:41:24 drhyde Exp $ + +package Devel::AssertOS::Amiga; + +use Devel::CheckOS qw(die_unsupported); + +$VERSION = '1.0'; + +sub os_is { $^O eq 'amigaos' ? 1 : 0; } + +die_unsupported() unless(os_is()); + +1; \ No newline at end of file diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/Apple.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/Apple.pm new file mode 100644 index 0000000..7b4cfaf --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/Apple.pm @@ -0,0 +1,13 @@ +# $Id: Apple.pm,v 1.2 2007/09/28 14:35:08 drhyde Exp $ + +package Devel::AssertOS::Apple; + +use Devel::CheckOS qw(die_unsupported); + +$VERSION = '1.0'; + +sub os_is { $^O =~ /^(darwin|MacOS)/ ? 1 : 0; } + +die_unsupported() unless(os_is()); + +1; diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/BSDOS.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/BSDOS.pm new file mode 100644 index 0000000..654f57f --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/BSDOS.pm @@ -0,0 +1,13 @@ +# $Id: BSDOS.pm,v 1.1 2007/09/27 16:41:24 drhyde Exp $ + +package Devel::AssertOS::BSDOS; + +use Devel::CheckOS qw(die_unsupported); + +$VERSION = '1.0'; + +sub os_is { $^O eq 'bsdos' ? 1 : 0; } + +die_unsupported() unless(os_is()); + +1; \ No newline at end of file diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/BeOS.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/BeOS.pm new file mode 100644 index 0000000..561daa4 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/BeOS.pm @@ -0,0 +1,13 @@ +# $Id: BeOS.pm,v 1.1 2007/09/27 16:41:24 drhyde Exp $ + +package Devel::AssertOS::BeOS; + +use Devel::CheckOS qw(die_unsupported); + +$VERSION = '1.0'; + +sub os_is { $^O eq 'beos' ? 1 : 0; } + +die_unsupported() unless(os_is()); + +1; \ No newline at end of file diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/Cygwin.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/Cygwin.pm new file mode 100644 index 0000000..9814083 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/Cygwin.pm @@ -0,0 +1,13 @@ +# $Id: Cygwin.pm,v 1.1 2007/09/27 16:41:24 drhyde Exp $ + +package Devel::AssertOS::Cygwin; + +use Devel::CheckOS qw(die_unsupported); + +$VERSION = '1.0'; + +sub os_is { $^O eq 'cygwin' ? 1 : 0; } + +die_unsupported() unless(os_is()); + +1; \ No newline at end of file diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/DEC.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/DEC.pm new file mode 100644 index 0000000..71c449c --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/DEC.pm @@ -0,0 +1,13 @@ +# $Id: DEC.pm,v 1.2 2007/09/28 14:35:08 drhyde Exp $ + +package Devel::AssertOS::DEC; + +use Devel::CheckOS qw(die_unsupported); + +$VERSION = '1.0'; + +sub os_is { $^O =~ /^(VMS|dec_osf)$/ ? 1 : 0; } + +die_unsupported() unless(os_is()); + +1; diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/DGUX.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/DGUX.pm new file mode 100644 index 0000000..66c2a9e --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/DGUX.pm @@ -0,0 +1,13 @@ +# $Id: DGUX.pm,v 1.1 2007/09/27 16:41:24 drhyde Exp $ + +package Devel::AssertOS::DGUX; + +use Devel::CheckOS qw(die_unsupported); + +$VERSION = '1.0'; + +sub os_is { $^O eq 'dgux' ? 1 : 0; } + +die_unsupported() unless(os_is()); + +1; \ No newline at end of file diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/DragonflyBSD.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/DragonflyBSD.pm new file mode 100644 index 0000000..039fe5a --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/DragonflyBSD.pm @@ -0,0 +1,13 @@ +# $Id: DragonflyBSD.pm,v 1.1 2007/09/27 16:41:24 drhyde Exp $ + +package Devel::AssertOS::DragonflyBSD; + +use Devel::CheckOS qw(die_unsupported); + +$VERSION = '1.0'; + +sub os_is { $^O eq 'dragonfly' ? 1 : 0; } + +die_unsupported() unless(os_is()); + +1; \ No newline at end of file diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/Dynix.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/Dynix.pm new file mode 100644 index 0000000..ef72d7d --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/Dynix.pm @@ -0,0 +1,13 @@ +# $Id: Dynix.pm,v 1.1 2007/09/27 16:41:24 drhyde Exp $ + +package Devel::AssertOS::Dynix; + +use Devel::CheckOS qw(die_unsupported); + +$VERSION = '1.0'; + +sub os_is { $^O eq 'dynixptx' ? 1 : 0; } + +die_unsupported() unless(os_is()); + +1; \ No newline at end of file diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/FreeBSD.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/FreeBSD.pm new file mode 100644 index 0000000..87f3c5f --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/FreeBSD.pm @@ -0,0 +1,13 @@ +# $Id: FreeBSD.pm,v 1.3 2007/09/27 16:41:24 drhyde Exp $ + +package Devel::AssertOS::FreeBSD; + +use Devel::CheckOS qw(die_unsupported); + +$VERSION = '1.0'; + +sub os_is { $^O eq 'freebsd' ? 1 : 0; } + +die_unsupported() unless(os_is()); + +1; \ No newline at end of file diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/HPUX.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/HPUX.pm new file mode 100644 index 0000000..396fa10 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/HPUX.pm @@ -0,0 +1,13 @@ +# $Id: HPUX.pm,v 1.1 2007/09/27 16:41:25 drhyde Exp $ + +package Devel::AssertOS::HPUX; + +use Devel::CheckOS qw(die_unsupported); + +$VERSION = '1.0'; + +sub os_is { $^O eq 'hpux' ? 1 : 0; } + +die_unsupported() unless(os_is()); + +1; \ No newline at end of file diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/Interix.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/Interix.pm new file mode 100644 index 0000000..6d8640e --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/Interix.pm @@ -0,0 +1,13 @@ +# $Id: Interix.pm,v 1.1 2007/09/27 16:41:25 drhyde Exp $ + +package Devel::AssertOS::Interix; + +use Devel::CheckOS qw(die_unsupported); + +$VERSION = '1.0'; + +sub os_is { $^O eq 'interix' ? 1 : 0; } + +die_unsupported() unless(os_is()); + +1; \ No newline at end of file diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/Irix.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/Irix.pm new file mode 100644 index 0000000..d4ce927 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/Irix.pm @@ -0,0 +1,13 @@ +# $Id: Irix.pm,v 1.1 2007/09/27 16:41:25 drhyde Exp $ + +package Devel::AssertOS::Irix; + +use Devel::CheckOS qw(die_unsupported); + +$VERSION = '1.0'; + +sub os_is { $^O eq 'irix' ? 1 : 0; } + +die_unsupported() unless(os_is()); + +1; \ No newline at end of file diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/Linux.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/Linux.pm new file mode 100644 index 0000000..f36698f --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/Linux.pm @@ -0,0 +1,13 @@ +# $Id: Linux.pm,v 1.3 2007/09/27 16:41:25 drhyde Exp $ + +package Devel::AssertOS::Linux; + +use Devel::CheckOS qw(die_unsupported); + +$VERSION = '1.0'; + +sub os_is { $^O eq 'linux' ? 1 : 0; } + +die_unsupported() unless(os_is()); + +1; \ No newline at end of file diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/MPEiX.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/MPEiX.pm new file mode 100644 index 0000000..dc1a6c5 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/MPEiX.pm @@ -0,0 +1,13 @@ +# $Id: MPEiX.pm,v 1.1 2007/09/27 16:41:25 drhyde Exp $ + +package Devel::AssertOS::MPEiX; + +use Devel::CheckOS qw(die_unsupported); + +$VERSION = '1.0'; + +sub os_is { $^O eq 'mpeix' ? 1 : 0; } + +die_unsupported() unless(os_is()); + +1; \ No newline at end of file diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/MSDOS.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/MSDOS.pm new file mode 100644 index 0000000..d63c6d1 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/MSDOS.pm @@ -0,0 +1,13 @@ +# $Id: MSDOS.pm,v 1.1 2007/09/27 16:41:25 drhyde Exp $ + +package Devel::AssertOS::MSDOS; + +use Devel::CheckOS qw(die_unsupported); + +$VERSION = '1.0'; + +sub os_is { $^O eq 'dos' ? 1 : 0; } + +die_unsupported() unless(os_is()); + +1; \ No newline at end of file diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/MSWin32.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/MSWin32.pm new file mode 100644 index 0000000..9965437 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/MSWin32.pm @@ -0,0 +1,13 @@ +# $Id: MSWin32.pm,v 1.1 2007/09/28 14:35:08 drhyde Exp $ + +package Devel::AssertOS::MSWin32; + +use Devel::CheckOS qw(die_unsupported); + +$VERSION = '1.0'; + +sub os_is { $^O eq 'MSWin32' ? 1 : 0; } + +die_unsupported() unless(os_is()); + +1; diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/MacOSX.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/MacOSX.pm new file mode 100644 index 0000000..f1c600f --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/MacOSX.pm @@ -0,0 +1,13 @@ +# $Id: MacOSX.pm,v 1.1 2007/09/27 16:41:25 drhyde Exp $ + +package Devel::AssertOS::MacOSX; + +use Devel::CheckOS qw(die_unsupported); + +$VERSION = '1.0'; + +sub os_is { $^O eq 'darwin' ? 1 : 0; } + +die_unsupported() unless(os_is()); + +1; \ No newline at end of file diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/MacOSclassic.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/MacOSclassic.pm new file mode 100644 index 0000000..0e34ef1 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/MacOSclassic.pm @@ -0,0 +1,13 @@ +# $Id: MacOSclassic.pm,v 1.1 2007/09/27 16:41:25 drhyde Exp $ + +package Devel::AssertOS::MacOSclassic; + +use Devel::CheckOS qw(die_unsupported); + +$VERSION = '1.0'; + +sub os_is { $^O eq 'MacOS' ? 1 : 0; } + +die_unsupported() unless(os_is()); + +1; \ No newline at end of file diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/MachTen.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/MachTen.pm new file mode 100644 index 0000000..912576f --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/MachTen.pm @@ -0,0 +1,13 @@ +# $Id: MachTen.pm,v 1.1 2007/09/27 16:41:25 drhyde Exp $ + +package Devel::AssertOS::MachTen; + +use Devel::CheckOS qw(die_unsupported); + +$VERSION = '1.0'; + +sub os_is { $^O eq 'machten' ? 1 : 0; } + +die_unsupported() unless(os_is()); + +1; \ No newline at end of file diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/MicrosoftWindows.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/MicrosoftWindows.pm new file mode 100644 index 0000000..ccdcb5b --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/MicrosoftWindows.pm @@ -0,0 +1,13 @@ +# $Id: MicrosoftWindows.pm,v 1.3 2007/09/28 14:35:08 drhyde Exp $ + +package Devel::AssertOS::MicrosoftWindows; + +use Devel::CheckOS qw(die_unsupported); + +$VERSION = '1.0'; + +sub os_is { $^O =~ /^(cygwin|MSWin32)$/ ? 1 : 0; } + +die_unsupported() unless(os_is()); + +1; diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/NeXT.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/NeXT.pm new file mode 100644 index 0000000..0341e5c --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/NeXT.pm @@ -0,0 +1,13 @@ +# $Id: NeXT.pm,v 1.1 2007/09/27 16:41:25 drhyde Exp $ + +package Devel::AssertOS::NeXT; + +use Devel::CheckOS qw(die_unsupported); + +$VERSION = '1.0'; + +sub os_is { $^O eq 'next' ? 1 : 0; } + +die_unsupported() unless(os_is()); + +1; \ No newline at end of file diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/NetBSD.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/NetBSD.pm new file mode 100644 index 0000000..25ee800 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/NetBSD.pm @@ -0,0 +1,13 @@ +# $Id: NetBSD.pm,v 1.1 2007/09/27 16:41:25 drhyde Exp $ + +package Devel::AssertOS::NetBSD; + +use Devel::CheckOS qw(die_unsupported); + +$VERSION = '1.0'; + +sub os_is { $^O eq 'netbsd' ? 1 : 0; } + +die_unsupported() unless(os_is()); + +1; \ No newline at end of file diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/Netware.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/Netware.pm new file mode 100644 index 0000000..7fca8bf --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/Netware.pm @@ -0,0 +1,13 @@ +# $Id: Netware.pm,v 1.1 2007/09/27 16:41:25 drhyde Exp $ + +package Devel::AssertOS::Netware; + +use Devel::CheckOS qw(die_unsupported); + +$VERSION = '1.0'; + +sub os_is { $^O eq 'netware' ? 1 : 0; } + +die_unsupported() unless(os_is()); + +1; \ No newline at end of file diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/OS2.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/OS2.pm new file mode 100644 index 0000000..554ade2 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/OS2.pm @@ -0,0 +1,13 @@ +# $Id: OS2.pm,v 1.1 2007/09/27 16:41:25 drhyde Exp $ + +package Devel::AssertOS::OS2; + +use Devel::CheckOS qw(die_unsupported); + +$VERSION = '1.0'; + +sub os_is { $^O eq 'os2' ? 1 : 0; } + +die_unsupported() unless(os_is()); + +1; \ No newline at end of file diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/OS390.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/OS390.pm new file mode 100644 index 0000000..b466c6a --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/OS390.pm @@ -0,0 +1,13 @@ +# $Id: OS390.pm,v 1.1 2007/09/27 16:41:25 drhyde Exp $ + +package Devel::AssertOS::OS390; + +use Devel::CheckOS qw(die_unsupported); + +$VERSION = '1.0'; + +sub os_is { $^O eq 'os390' ? 1 : 0; } + +die_unsupported() unless(os_is()); + +1; \ No newline at end of file diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/OS400.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/OS400.pm new file mode 100644 index 0000000..2869dba --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/OS400.pm @@ -0,0 +1,13 @@ +# $Id: OS400.pm,v 1.1 2007/09/27 16:41:25 drhyde Exp $ + +package Devel::AssertOS::OS400; + +use Devel::CheckOS qw(die_unsupported); + +$VERSION = '1.0'; + +sub os_is { $^O eq 'os400' ? 1 : 0; } + +die_unsupported() unless(os_is()); + +1; \ No newline at end of file diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/OSF.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/OSF.pm new file mode 100644 index 0000000..cb66c2a --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/OSF.pm @@ -0,0 +1,13 @@ +# $Id: OSF.pm,v 1.1 2007/09/27 16:41:25 drhyde Exp $ + +package Devel::AssertOS::OSF; + +use Devel::CheckOS qw(die_unsupported); + +$VERSION = '1.0'; + +sub os_is { $^O eq 'dec_osf' ? 1 : 0; } + +die_unsupported() unless(os_is()); + +1; \ No newline at end of file diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/OpenBSD.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/OpenBSD.pm new file mode 100644 index 0000000..6f59f7c --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/OpenBSD.pm @@ -0,0 +1,13 @@ +# $Id: OpenBSD.pm,v 1.1 2007/09/27 16:41:25 drhyde Exp $ + +package Devel::AssertOS::OpenBSD; + +use Devel::CheckOS qw(die_unsupported); + +$VERSION = '1.0'; + +sub os_is { $^O eq 'openbsd' ? 1 : 0; } + +die_unsupported() unless(os_is()); + +1; \ No newline at end of file diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/POSIXBC.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/POSIXBC.pm new file mode 100644 index 0000000..b899c52 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/POSIXBC.pm @@ -0,0 +1,13 @@ +# $Id: POSIXBC.pm,v 1.1 2007/09/27 16:41:25 drhyde Exp $ + +package Devel::AssertOS::POSIXBC; + +use Devel::CheckOS qw(die_unsupported); + +$VERSION = '1.0'; + +sub os_is { $^O eq 'posix-bc' ? 1 : 0; } + +die_unsupported() unless(os_is()); + +1; \ No newline at end of file diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/RISCOS.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/RISCOS.pm new file mode 100644 index 0000000..1be1a7f --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/RISCOS.pm @@ -0,0 +1,13 @@ +# $Id: RISCOS.pm,v 1.1 2007/09/27 16:41:25 drhyde Exp $ + +package Devel::AssertOS::RISCOS; + +use Devel::CheckOS qw(die_unsupported); + +$VERSION = '1.0'; + +sub os_is { $^O eq 'riscos' ? 1 : 0; } + +die_unsupported() unless(os_is()); + +1; \ No newline at end of file diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/SCO.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/SCO.pm new file mode 100644 index 0000000..9049a15 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/SCO.pm @@ -0,0 +1,13 @@ +# $Id: SCO.pm,v 1.1 2007/09/27 16:41:25 drhyde Exp $ + +package Devel::AssertOS::SCO; + +use Devel::CheckOS qw(die_unsupported); + +$VERSION = '1.0'; + +sub os_is { $^O eq 'sco_sv' ? 1 : 0; } + +die_unsupported() unless(os_is()); + +1; \ No newline at end of file diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/Solaris.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/Solaris.pm new file mode 100644 index 0000000..0c5eaf9 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/Solaris.pm @@ -0,0 +1,13 @@ +# $Id: Solaris.pm,v 1.1 2007/09/27 16:41:25 drhyde Exp $ + +package Devel::AssertOS::Solaris; + +use Devel::CheckOS qw(die_unsupported); + +$VERSION = '1.0'; + +sub os_is { $^O eq 'solaris' ? 1 : 0; } + +die_unsupported() unless(os_is()); + +1; \ No newline at end of file diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/Sun.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/Sun.pm new file mode 100644 index 0000000..3e95ca2 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/Sun.pm @@ -0,0 +1,13 @@ +# $Id: Sun.pm,v 1.2 2007/09/28 14:35:08 drhyde Exp $ + +package Devel::AssertOS::Sun; + +use Devel::CheckOS qw(die_unsupported); + +$VERSION = '1.0'; + +sub os_is { $^O =~ /^(sunos|solaris)$/ ? 1 : 0; } + +die_unsupported() unless(os_is()); + +1; diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/SunOS.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/SunOS.pm new file mode 100644 index 0000000..de12a79 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/SunOS.pm @@ -0,0 +1,13 @@ +# $Id: SunOS.pm,v 1.1 2007/09/27 16:41:25 drhyde Exp $ + +package Devel::AssertOS::SunOS; + +use Devel::CheckOS qw(die_unsupported); + +$VERSION = '1.0'; + +sub os_is { $^O eq 'sunos' ? 1 : 0; } + +die_unsupported() unless(os_is()); + +1; \ No newline at end of file diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/SysVr4.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/SysVr4.pm new file mode 100644 index 0000000..f21247c --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/SysVr4.pm @@ -0,0 +1,13 @@ +# $Id: SysVr4.pm,v 1.1 2007/09/27 16:41:25 drhyde Exp $ + +package Devel::AssertOS::SysVr4; + +use Devel::CheckOS qw(die_unsupported); + +$VERSION = '1.0'; + +sub os_is { $^O eq 'svr4' ? 1 : 0; } + +die_unsupported() unless(os_is()); + +1; \ No newline at end of file diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/SysVr5.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/SysVr5.pm new file mode 100644 index 0000000..badac2b --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/SysVr5.pm @@ -0,0 +1,13 @@ +# $Id: SysVr5.pm,v 1.1 2007/09/27 16:41:25 drhyde Exp $ + +package Devel::AssertOS::SysVr5; + +use Devel::CheckOS qw(die_unsupported); + +$VERSION = '1.0'; + +sub os_is { $^O eq 'svr5' ? 1 : 0; } + +die_unsupported() unless(os_is()); + +1; \ No newline at end of file diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/Unicos.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/Unicos.pm new file mode 100644 index 0000000..3664864 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/Unicos.pm @@ -0,0 +1,13 @@ +# $Id: Unicos.pm,v 1.1 2007/09/27 16:41:25 drhyde Exp $ + +package Devel::AssertOS::Unicos; + +use Devel::CheckOS qw(die_unsupported); + +$VERSION = '1.0'; + +sub os_is { $^O =~ /^unicos(mk)?$/ ? 1 : 0; } + +die_unsupported() unless(os_is()); + +1; diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/Unix.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/Unix.pm new file mode 100644 index 0000000..0464953 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/Unix.pm @@ -0,0 +1,40 @@ +# $Id: Unix.pm,v 1.4 2007/09/28 14:35:08 drhyde Exp $ + +package Devel::AssertOS::Unix; + +use Devel::CheckOS qw(die_unsupported); + +$VERSION = '1.0'; + +# list of OSes lifted from Module::Build 0.2808 +# +sub os_is { + $^O =~ /^( + aix | + bsdos | + dgux | + dragonfly | + dynixptx | + freebsd | + linux | + hpux | + irix | + darwin | + machten | + openbsd | + netbsd | + dec_osf | + svr4 | + svr5 | + sco_sv | + unicos | + unicosmk | + solaris | + sunos | + interix + )$/x ? 1 : 0; +} + +die_unsupported() unless(os_is()); + +1; diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/VMESA.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/VMESA.pm new file mode 100644 index 0000000..9bd5964 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/VMESA.pm @@ -0,0 +1,13 @@ +# $Id: VMESA.pm,v 1.1 2007/09/27 16:41:25 drhyde Exp $ + +package Devel::AssertOS::VMESA; + +use Devel::CheckOS qw(die_unsupported); + +$VERSION = '1.0'; + +sub os_is { $^O eq 'vmesa' ? 1 : 0; } + +die_unsupported() unless(os_is()); + +1; \ No newline at end of file diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/VMS.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/VMS.pm new file mode 100644 index 0000000..f6533cf --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/VMS.pm @@ -0,0 +1,13 @@ +# $Id: VMS.pm,v 1.1 2007/09/27 16:41:25 drhyde Exp $ + +package Devel::AssertOS::VMS; + +use Devel::CheckOS qw(die_unsupported); + +$VERSION = '1.0'; + +sub os_is { $^O eq 'VMS' ? 1 : 0; } + +die_unsupported() unless(os_is()); + +1; \ No newline at end of file diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/VOS.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/VOS.pm new file mode 100644 index 0000000..0921b5b --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/AssertOS/VOS.pm @@ -0,0 +1,13 @@ +# $Id: VOS.pm,v 1.1 2007/09/27 16:41:25 drhyde Exp $ + +package Devel::AssertOS::VOS; + +use Devel::CheckOS qw(die_unsupported); + +$VERSION = '1.0'; + +sub os_is { $^O eq 'VOS' ? 1 : 0; } + +die_unsupported() unless(os_is()); + +1; \ No newline at end of file diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/CheckOS.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/CheckOS.pm new file mode 100644 index 0000000..155eee5 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Devel/CheckOS.pm @@ -0,0 +1,238 @@ +# $Id: CheckOS.pm,v 1.13 2007/10/04 20:15:05 drhyde Exp $ + +package Devel::CheckOS; + +use strict; +use Exporter; + +use vars qw($VERSION @ISA @EXPORT_OK %EXPORT_TAGS); + +$VERSION = '1.2'; + +# localising prevents the warningness leaking out of this module +local $^W = 1; # use warnings is a 5.6-ism + +@ISA = qw(Exporter); +@EXPORT_OK = qw(os_is os_isnt die_if_os_is die_if_os_isnt die_unsupported list_platforms); +%EXPORT_TAGS = ( + all => \@EXPORT_OK, + booleans => [qw(os_is os_isnt die_unsupported)], + fatal => [qw(die_if_os_is die_if_os_isnt)] +); + +=head1 NAME + +Devel::CheckOS - check what OS we're running on + +=head1 DESCRIPTION + +Devel::CheckOS provides a more friendly interface to $^O, and also lets +you check for various OS "families" such as "Unix", which includes things +like Linux, Solaris, AIX etc. + +=head1 SYNOPSIS + + use Devel::CheckOS; + print "Hey, I know this, it's a Unix system\n" if(os_is('Unix')); + +=head1 FUNCTIONS + +Devel::CheckOS implements the following functions, which load subsidiary +OS-specific modules on demand to do the real work. They can be exported +by listing their names after C. You can also export +groups of functions thus: + + use Devel::CheckOS qw(:booleans); # export the boolean functions + # and 'die_unsupported' + + use Devel::CheckOS qw(:fatal); # export those that die on no match + + use Devel::CheckOS qw(:all); # export everything + +=head2 Boolean functions + +=head3 os_is + +Takes a list of OS names. If the current platform matches any of them, +it returns true, otherwise it returns false. The names can be a mixture +of OSes and OS families, eg ... + + os_is(qw(Unix VMS)); # Unix is a family, VMS is an OS + +=cut + +sub os_is { + my @targets = @_; + foreach my $target (@targets) { + die("Devel::CheckOS: $target isn't a legal OS name\n") + unless($target =~ /^\w+$/); + eval "use Devel::AssertOS::$target"; + if(!$@) { + no strict 'refs'; + return 1 if(&{"Devel::AssertOS::${target}::os_is"}()); + } + } + return 0; +} + +=head3 os_isnt + +If the current platform matches any of the parameters it returns false, +otherwise it returns true. + +=cut + +sub os_isnt { + my @targets = @_; + foreach my $target (@targets) { + return 0 if(os_is($target)); + } + return 1; +} + +=head2 Fatal functions + +=head3 die_if_os_isnt + +As C, except that it dies instead of returning false. The die() +message matches what the CPAN-testers look for to determine if a module +doesn't support a particular platform. + +=cut + +sub die_if_os_isnt { + os_is(@_) ? 1 : die_unsupported(); +} + +=head3 die_if_os_is + +As C, except that it dies instead of returning false. + +=cut + +sub die_if_os_is { + os_isnt(@_) ? 1 : die_unsupported(); +} + +=head2 And some utility functions ... + +=head3 die_unsupported + +This function simply dies with the message "OS unsupported", which is what +the CPAN testers look for to figure out whether a platform is supported or +not. + +=cut + +sub die_unsupported { die("OS unsupported\n"); } + +=head3 list_platforms + +Return a list of all the platforms for which the corresponding +Devel::AssertOS::* module is available. This includes both OSes and OS +families, and both those bundled with this module and any third-party +add-ons you have installed. + +Unfortunately, on some platforms this list may have file case +broken. eg, some platforms might return 'freebsd' instead of 'FreeBSD'. +This is because they have case-insensitive filesystems so things +should Just Work anyway. + +=cut + +sub list_platforms { + eval " # only load these if needed + use File::Find::Rule; + use File::Spec; + "; + + die($@) if($@); + return sort { $a cmp $b } map { + s/^.*\///g; + s/\.pm$//gi; + $_; + } File::Find::Rule->file()->name('*.pm')->in( + grep { -d } + map { File::Spec->catdir($_, qw(Devel AssertOS)) } + @INC + ); +} + +=head1 PLATFORMS SUPPORTED + +To see the list of platforms for which information is available, run this: + + perl -MDevel::CheckOS -e 'print join(", ", Devel::CheckOS::list_platforms())' + +Note that capitalisation is important. These are the names of the +underlying Devel::AssertOS::* modules +which do the actual platform detection, so they have to +be 'legal' filenames and module names, which unfortunately precludes +funny characters, so platforms like OS/2 are mis-spelt deliberately. +Sorry. + +Also be aware that not all of them have been properly tested. I don't +have access to most of them and have had to work from information +gleaned from L and a few other places. + +The following OS 'families' are supported 'out of the box': + + Apple (Mac OS, both classic and OS X) + DEC + MicrosoftWindows (this matches either MSWin32 or Cygwin) + Sun + Unix + +If you want to add your own OSes or families, see L +and please feel free to upload the results to the CPAN. + +=head1 BUGS and FEEDBACK + +I welcome feedback about my code, including constructive criticism. +Bug reports should be made using L or by email. + +You will need to include in your bug report the exact value of $^O, what +the OS is called (eg Windows Vista 64 bit Ultimate Home Edition), and, +if relevant, what "OS family" it should be in and who wrote it. + +If you are feeling particularly generous you can encourage me in my +open source endeavours by buying me something from my wishlist: + L + +=head1 SEE ALSO + +$^O in L + +L + +L + +L + +=head1 AUTHOR + +David Cantrell EFE + +Thanks to David Golden for the name and ideas about the interface, and +to the cpan-testers-discuss mailing list for prompting me to write it +in the first place. + +Thanks to Ken Williams, from whose L I lifted some of the +information about what should be in the Unix family. + +Thanks to Billy Abbott for finding some bugs for me on VMS. + +=head1 COPYRIGHT and LICENCE + +Copyright 2007 David Cantrell + +This module is free-as-in-speech software, and may be used, distributed, +and modified under the same conditions as perl itself. + +=head1 CONSPIRACY + +This module is also free-as-in-mason software. + +=cut + +$^O; diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Perl/Critic/BuildUtilities.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Perl/Critic/BuildUtilities.pm new file mode 100644 index 0000000..063366c --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/inc/Perl/Critic/BuildUtilities.pm @@ -0,0 +1,230 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/inc/Perl/Critic/BuildUtilities.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::BuildUtilities; + +use 5.006001; +use strict; +use warnings; + +use English q<-no_match_vars>; + +our $VERSION = '1.088'; + +use base qw{ Exporter }; + +our @EXPORT_OK = qw< + recommended_module_versions + test_wrappers_to_generate + get_PL_files + dump_unlisted_or_optional_module_versions + emit_tar_warning_if_necessary +>; + + +use lib 't/tlib'; + +use Devel::CheckOS qw< os_is >; + + +sub recommended_module_versions { + return ( + 'File::HomeDir' => 0, + 'Perl::Tidy' => 0, + 'Readonly::XS' => 0, + 'Regexp::Parser' => '0.20', + 'Term::ANSIColor' => 0, + + # All of these are for Documentation::PodSpelling + 'File::Which' => 0, + 'IPC::Open2' => 1, + 'Pod::Spell' => 1, + 'Text::ParseWords' => 3, + ); +} + + +sub test_wrappers_to_generate { + my @tests_to_be_wrapped = qw< + t/00_modules.t + t/01_config.t + t/01_config_bad_perlcriticrc.t + t/01_policy_config.t + t/02_policy.t + t/03_pragmas.t + t/04_optionsprocessor.t + t/05_utils.t + t/05_utils_ppi.t + t/05_utils_pod.t + t/06_violation.t + t/07_perlcritic.t + t/08_document.t + t/09_theme.t + t/10_userprofile.t + t/11_policyfactory.t + t/12_policylisting.t + t/12_themelisting.t + t/13_bundled_policies.t + t/14_policy_parameters.t + t/15_statistics.t + t/20_policy_podspelling.t + t/20_policy_requiretidycode.t + xt/author/80_policysummary.t + t/92_memory_leaks.t + xt/author/94_includes.t + >; + + return + map + { "xt/author/generated/${_}_without_optional_dependencies.t" } + @tests_to_be_wrapped; +} + +my @TARGET_FILES = qw< + lib/Perl/Critic/PolicySummary.pod + t/ControlStructures/ProhibitNegativeExpressionsInUnlessAndUntilConditions.run + t/Variables/RequireLocalizedPunctuationVars.run +>; + +sub get_PL_files { + my %PL_files = map { ( "$_.PL" => $_ ) } @TARGET_FILES; + + $PL_files{'t/generate_without_optional_dependencies_wrappers.PL'} = + [ test_wrappers_to_generate() ]; + + return \%PL_files; +} + +sub dump_unlisted_or_optional_module_versions { + print + "\nVersions of optional/unlisted/indirect dependencies:\n\n"; + + my @unlisted_modules = ( + qw< + >, + keys %{ { recommended_module_versions() } }, + ); + + foreach my $module (sort @unlisted_modules) { + my $version; + + if ($module eq 'Readonly::XS') { + eval 'use Readonly; use Readonly::XS; $version = $Readonly::XS::VERSION;'; + } + else { + eval "use $module; \$version = \$${module}::VERSION;"; + } + if ($EVAL_ERROR) { + $version = 'not installed'; + } elsif (not defined $version) { + $version = 'undef'; + } + + print " $module = $version\n"; + } + + print "\n"; + + return; +} + +sub emit_tar_warning_if_necessary { + if ( os_is( qw ) ) { + print <<'END_OF_TAR_WARNING'; +NOTE: tar(1) on some Solaris systems cannot deal well with long file +names. + +If you get warnings about missing files below, please ensure that you +extracted the Perl::Critic tarball using GNU tar. + +END_OF_TAR_WARNING + } +} + +1; + +__END__ + +=head1 NAME + +Perl::Critic::BuildUtilities - Common bits of compiling Perl::Critic. + + +=head1 DESCRIPTION + +Various utilities used in assembling Perl::Critic, primary for use by +*.PL programs that generate code. + + +=head1 IMPORTABLE SUBROUTINES + +=over + +=item C + +Returns a hash mapping between recommended (but not required) modules +for Perl::Critic and the minimum version required of each module, + + +=item C + +Returns a list of test wrappers to be generated by +F. + + +=item C + +Returns a reference to a hash with a mapping from the name of a .PL +program to an array of the parameters to be passed to it, suited for +use by L or +L. May print to C messages +about what it is doing. + + +=item C + +Prints to C a list of all the unlisted (e.g. things in core +like L), optional (e.g. L), or potentially +indirect (e.g. L) dependencies, plus their versions, if +they're installed. + + +=item C + +On some Solaris systems, C can't deal with long file names and +thus files are not correctly extracted from the tarball. So this +prints a warning if the current system is Solaris. + + +=back + + +=head1 AUTHOR + +Elliot Shank C<< >> + + +=head1 LICENCE AND COPYRIGHT + +Copyright (c) 2007, Elliot Shank C<< >>. All rights +reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module. + +=cut + +############################################################################## +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic.pm new file mode 100644 index 0000000..20aa6b3 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic.pm @@ -0,0 +1,1158 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic; + +use 5.006001; +use strict; +use warnings; + +use English qw(-no_match_vars); +use Readonly; + +use base qw(Exporter); + +use File::Spec; +use Scalar::Util qw(blessed); + +use PPI::Document; +use PPI::Document::File; + +use Perl::Critic::Exception::Configuration::Generic; +use Perl::Critic::Exception::Parse qw{ throw_parse }; +use Perl::Critic::Config; +use Perl::Critic::Violation; +use Perl::Critic::Document; +use Perl::Critic::Statistics; +use Perl::Critic::Utils qw{ :characters }; + +#----------------------------------------------------------------------------- + +our $VERSION = '1.088'; + +Readonly::Array our @EXPORT_OK => qw(critique); + +#----------------------------------------------------------------------------- + +sub new { + my ( $class, %args ) = @_; + my $self = bless {}, $class; + $self->{_config} = $args{-config} || Perl::Critic::Config->new( %args ); + $self->{_stats} = Perl::Critic::Statistics->new(); + return $self; +} + +#----------------------------------------------------------------------------- + +sub config { + my $self = shift; + return $self->{_config}; +} + +#----------------------------------------------------------------------------- + +sub add_policy { + my ( $self, @args ) = @_; + #Delegate to Perl::Critic::Config + return $self->config()->add_policy( @args ); +} + +#----------------------------------------------------------------------------- + +sub policies { + my $self = shift; + + #Delegate to Perl::Critic::Config + return $self->config()->policies(); +} + +#----------------------------------------------------------------------------- + +sub statistics { + my $self = shift; + return $self->{_stats}; +} + +#----------------------------------------------------------------------------- + +sub critique { ##no critic (ArgUnpacking) + + #------------------------------------------------------------------- + # This subroutine can be called as an object method or as a static + # function. In the latter case, the first argument can be a + # hashref of configuration parameters that shall be used to create + # an object behind the scenes. Note that this object does not + # persist. In other words, it is not a singleton. Here are some + # of the ways this subroutine might get called: + # + # #Object style... + # $critic->critique( $code ); + # + # #Functional style... + # critique( $code ); + # critique( {}, $code ); + # critique( {-foo => bar}, $code ); + #------------------------------------------------------------------ + + my ( $self, $source_code ) = @_ >= 2 ? @_ : ( {}, $_[0] ); + $self = ref $self eq 'HASH' ? __PACKAGE__->new(%{ $self }) : $self; + return if not defined $source_code; # If no code, then nothing to do. + + my $doc = $self->_create_perl_critic_document($source_code); + + if ( 0 == $self->policies() ) { + Perl::Critic::Exception::Configuration::Generic->throw( + message => 'There are no enabled policies.', + ) + } + + return $self->_gather_violations($doc); +} + +#============================================================================= +# PRIVATE functions + +sub _create_perl_critic_document { + my ($self, $source_code) = @_; + + # $source_code can be a file name, or a reference to a + # PPI::Document, or a reference to a scalar containing source + # code. In the last case, PPI handles the translation for us. + + my $doc = _is_ppi_doc( $source_code ) ? $source_code + : ref $source_code ? PPI::Document->new($source_code) + : PPI::Document::File->new($source_code); + + # Bail on error + if ( not defined $doc ) { + my $errstr = PPI::Document::errstr(); + my $file = ref $source_code ? undef : $source_code; + throw_parse + message => qq, + file_name => $file; + } + + # Pre-index location of each node (for speed) + $doc->index_locations(); + + # Wrap the doc in a caching layer + return Perl::Critic::Document->new($doc); +} + +#----------------------------------------------------------------------------- + +sub _gather_violations { + my ($self, $doc) = @_; + + # Disable the magic shebang fix + my %is_line_disabled = _unfix_shebang($doc); + + # Filter exempt code, if desired + if ( not $self->config->force() ) { + my @site_policies = $self->config->site_policy_names(); + %is_line_disabled = ( %is_line_disabled, + _filter_code($doc, @site_policies) ); + } + + # Evaluate each policy + my @policies = $self->config->policies(); + my @violations = + map { _critique( $_, $doc, \%is_line_disabled) } @policies; + + # Accumulate statistics + $self->statistics->accumulate( $doc, \@violations ); + + # If requested, rank violations by their severity and return the top N. + if ( @violations && (my $top = $self->config->top()) ) { + my $limit = @violations < $top ? $#violations : $top-1; + @violations = Perl::Critic::Violation::sort_by_severity(@violations); + @violations = ( reverse @violations )[ 0 .. $limit ]; #Slicing... + } + + # Always return violations sorted by location + return Perl::Critic::Violation->sort_by_location(@violations); +} + +#----------------------------------------------------------------------------- + +sub _is_ppi_doc { + my ($ref) = @_; + return blessed($ref) && $ref->isa('PPI::Document'); +} + +#----------------------------------------------------------------------------- + +sub _critique { + + my ($policy, $doc, $is_line_disabled) = @_; + my @violations = (); + my $maximum_violations = $policy->get_maximum_violations_per_document(); + + if (defined $maximum_violations && $maximum_violations == 0) { + return; + } + + my $policy_name = $policy->get_long_name(); + + TYPE: + for my $type ( $policy->applies_to() ) { + + ELEMENT: + for my $element ( @{ $doc->find($type) || [] } ) { + + # Evaluate the policy on this $element. A policy may + # return zero or more violations. We only want the + # violations that occur on lines that have not been + # disabled. + + VIOLATION: + for my $violation ( $policy->violates( $element, $doc ) ) { + my $line = $violation->location()->[0]; + if (exists $is_line_disabled->{$line}) { + next VIOLATION if $is_line_disabled->{$line}->{$policy_name}; + next VIOLATION if $is_line_disabled->{$line}->{ALL}; + } + + push @violations, $violation; + if ( + defined $maximum_violations + and @violations >= $maximum_violations + ) { + last TYPE; + } + } + } + } + + return @violations; +} + +#----------------------------------------------------------------------------- + +sub _filter_code { + + my ($doc, @site_policies)= @_; + + my $nodes_ref = $doc->find('PPI::Token::Comment') || return; + my %disabled_lines; + + _filter_shebang_line($nodes_ref, \%disabled_lines, \@site_policies); + _filter_other_lines($nodes_ref, \%disabled_lines, \@site_policies); + return %disabled_lines; +} + +sub _filter_shebang_line { + my ($nodes_ref, $disabled_lines, $site_policies) = @_; + + my $shebang_no_critic = qr{\A [#]! .*? [#][#] \s* no \s+ critic}mx; + + # Special case for the very beginning of the file: allow "##no critic" after the shebang + if (0 < @{$nodes_ref}) { + my $loc = $nodes_ref->[0]->location; + if (1 == $loc->[0] && 1 == $loc->[1] && $nodes_ref->[0] =~ $shebang_no_critic) { + my $pragma = shift @{$nodes_ref}; + for my $policy (_parse_nocritic_import($pragma, $site_policies)) { + $disabled_lines->{ 1 }->{$policy} = 1; + } + } + } + return; +} + +sub _filter_other_lines { + my ($nodes_ref, $disabled_lines, $site_policies) = @_; + + my $no_critic = qr{\A \s* [#][#] \s* no \s+ critic}mx; + my $use_critic = qr{\A \s* [#][#] \s* use \s+ critic}mx; + + PRAGMA: + for my $pragma ( grep { $_ =~ $no_critic } @{$nodes_ref} ) { + + # Parse out the list of Policy names after the + # 'no critic' pragma. I'm thinking of this just + # like a an C argument for real pragmas. + my @no_policies = _parse_nocritic_import($pragma, $site_policies); + + # Grab surrounding nodes to determine the context. + # This determines whether the pragma applies to + # the current line or the block that follows. + my $parent = $pragma->parent(); + my $grandparent = $parent ? $parent->parent() : undef; + my $sib = $pragma->sprevious_sibling(); + + + # Handle single-line usage on simple statements + if ( $sib && $sib->location->[0] == $pragma->location->[0] ) { + my $line = $pragma->location->[0]; + for my $policy ( @no_policies ) { + $disabled_lines->{ $line }->{$policy} = 1; + } + next PRAGMA; + } + + + # Handle single-line usage on compound statements + if ( ref $parent eq 'PPI::Structure::Block' ) { + if ( ref $grandparent eq 'PPI::Statement::Compound' + || ref $grandparent eq 'PPI::Statement::Sub' ) { + if ( $parent->location->[0] == $pragma->location->[0] ) { + my $line = $grandparent->location->[0]; + for my $policy ( @no_policies ) { + $disabled_lines->{ $line }->{$policy} = 1; + } + next PRAGMA; + } + } + } + + + # Handle multi-line usage. This is either a "no critic" .. + # "use critic" region or a block where "no critic" persists + # until the end of the scope. The start is the always the "no + # critic" which we already found. So now we have to search + # for the end. + + my $start = $pragma; + my $end = $pragma; + + SIB: + while ( my $sib = $end->next_sibling() ) { + $end = $sib; # keep track of last sibling encountered in this scope + last SIB + if $sib->isa('PPI::Token::Comment') && $sib =~ $use_critic; + } + + # We either found an end or hit the end of the scope. + # Flag all intervening lines + for my $line ( $start->location->[0] .. $end->location->[0] ) { + for my $policy ( @no_policies ) { + $disabled_lines->{ $line }->{$policy} = 1; + } + } + } + + return; +} + +#----------------------------------------------------------------------------- + +sub _parse_nocritic_import { + + my ($pragma, $site_policies) = @_; + + my $module = qr{ [\w:]+ }mx; + my $delim = qr{ \s* [,\s] \s* }mx; + my $qw = qr{ (?: qw )? }mx; + my $qualifier = qr{ $qw [(]? \s* ( $module (?: $delim $module)* ) \s* [)]? }mx; + my $no_critic = qr{ \#\# \s* no \s+ critic \s* $qualifier }mx; ##no critic(EscapedMetacharacters) + + if ( my ($module_list) = $pragma =~ $no_critic ) { + my @modules = split $delim, $module_list; + + # Compose the specified modules into a regex alternation. Wrap each + # in a no-capturing group to permit "|" in the modules specification + # (backward compatibility) + my $re = join q{|}, map {"(?:$_)"} @modules; + return grep {m/$re/imx} @{$site_policies}; + } + + # Default to disabling ALL policies. + return qw(ALL); +} + +#----------------------------------------------------------------------------- +sub _unfix_shebang { + + # When you install a script using ExtUtils::MakeMaker or Module::Build, it + # inserts some magical code into the top of the file (just after the + # shebang). This code allows people to call your script using a shell, + # like `sh my_script`. Unfortunately, this code causes several Policy + # violations, so we just disable it as if a "## no critic" comment had + # been attached. + + my $doc = shift; + my $first_stmnt = $doc->schild(0) || return; + + # Different versions of MakeMaker and Build use slightly differnt shebang + # fixing strings. This matches most of the ones I've found in my own Perl + # distribution, but it may not be bullet-proof. + + my $fixin_rx = qr{^eval 'exec .* \$0 \${1\+"\$@"}'\s*[\r\n]\s*if.+;}m; ##no critic(RequireExtendedFormatting) + if ( $first_stmnt =~ $fixin_rx ) { + my $line = $first_stmnt->location()->[0]; + return ( $line => {ALL => 1}, $line + 1 => {ALL => 1} ); + } + + #No magic shebang was found! + return; +} + +#----------------------------------------------------------------------------- + +1; + +#----------------------------------------------------------------------------- + +__END__ + +=pod + +=for stopwords DGR INI-style API -params pbp refactored ActivePerl +ben Jore Dolan's + +=head1 NAME + +Perl::Critic - Critique Perl source code for best-practices. + + +=head1 SYNOPSIS + + use Perl::Critic; + my $file = shift; + my $critic = Perl::Critic->new(); + my @violations = $critic->critique($file); + print @violations; + + +=head1 DESCRIPTION + +Perl::Critic is an extensible framework for creating and applying coding +standards to Perl source code. Essentially, it is a static source code +analysis engine. Perl::Critic is distributed with a number of +L modules that attempt to enforce various coding +guidelines. Most Policy modules are based on Damian Conway's book B. However, Perl::Critic is B limited to PBP and will even +support Policies that contradict Conway. You can enable, disable, and +customize those Polices through the Perl::Critic interface. You can also +create new Policy modules that suit your own tastes. + +For a command-line interface to Perl::Critic, see the documentation for +L. If you want to integrate Perl::Critic with your build process, +L provides an interface that is suitable for test scripts. +Also, L is useful for gradually applying +coding standards to legacy code. For the ultimate convenience (at the expense +of some flexibility) see the L pragma. + +Win32 and ActivePerl users can find PPM distributions of Perl::Critic at +L. + +If you'd like to try L without installing anything, there is a +web-service available at L. The web-service does not +yet support all the configuration features that are available in the native +Perl::Critic API, but it should give you a good idea of what it does. You can +also invoke the perlcritic web-service from the command-line by doing an +HTTP-post, such as one of these: + + $> POST http://perlcritic.com/perl/critic.pl < MyModule.pm + $> lwp-request -m POST http://perlcritic.com/perl/critic.pl < MyModule.pm + $> wget -q -O - --post-file=MyModule.pm http://perlcritic.com/perl/critic.pl + +Please note that the perlcritic web-service is still alpha code. The URL and +interface to the service are subject to change. + + +=head1 CONSTRUCTOR + +=over + +=item C<< new( [ -profile => $FILE, -severity => $N, -theme => $string, -include => \@PATTERNS, -exclude => \@PATTERNS, -top => $N, -only => $B, -profile-strictness => $PROFILE_STRICTNESS_{WARN|FATAL|QUIET}, -force => $B, -verbose => $N ], -color => $B, -criticism-fatal => $B) >> + +=item C<< new( -config => Perl::Critic::Config->new() ) >> + +=item C<< new() >> + +Returns a reference to a new Perl::Critic object. Most arguments are just +passed directly into L, but I have described them here +as well. The default value for all arguments can be defined in your +F<.perlcriticrc> file. See the L<"CONFIGURATION"> section for more +information about that. All arguments are optional key-value pairs as +follows: + +B<-profile> is a path to a configuration file. If C<$FILE> is not defined, +Perl::Critic::Config attempts to find a F<.perlcriticrc> configuration file in +the current directory, and then in your home directory. Alternatively, you +can set the C environment variable to point to a file in another +location. If a configuration file can't be found, or if C<$FILE> is an empty +string, then all Policies will be loaded with their default configuration. +See L<"CONFIGURATION"> for more information. + +B<-severity> is the minimum severity level. Only Policy modules that have a +severity greater than C<$N> will be applied. Severity values are integers +ranging from 1 (least severe) to 5 (most severe). The default is 5. For a +given C<-profile>, decreasing the C<-severity> will usually reveal more Policy +violations. You can set the default value for this option in your +F<.perlcriticrc> file. Users can redefine the severity level for any Policy +in their F<.perlcriticrc> file. See L<"CONFIGURATION"> for more information. + +If it is difficult for you to remember whether severity "5" is the most or +least restrictive level, then you can use one of these named values: + + SEVERITY NAME ...is equivalent to... SEVERITY NUMBER + -------------------------------------------------------- + -severity => 'gentle' -severity => 5 + -severity => 'stern' -severity => 4 + -severity => 'harsh' -severity => 3 + -severity => 'cruel' -severity => 2 + -severity => 'brutal' -severity => 1 + +B<-theme> is special expression that determines which Policies to apply based +on their respective themes. For example, the following would load only +Policies that have a 'bugs' AND 'pbp' theme: + + my $critic = Perl::Critic->new( -theme => 'bugs && pbp' ); + +Unless the C<-severity> option is explicitly given, setting C<-theme> silently +causes the C<-severity> to be set to 1. You can set the default value for +this option in your F<.perlcriticrc> file. See the L<"POLICY THEMES"> section +for more information about themes. + + +B<-include> is a reference to a list of string C<@PATTERNS>. Policy modules +that match at least one C will always be loaded, irrespective +of all other settings. For example: + + my $critic = Perl::Critic->new(-include => ['layout'] -severity => 4); + +This would cause Perl::Critic to apply all the C Policy modules +even though they have a severity level that is less than 4. You can set the +default value for this option in your F<.perlcriticrc> file. You can also use +C<-include> in conjunction with the C<-exclude> option. Note that C<-exclude> +takes precedence over C<-include> when a Policy matches both patterns. + +B<-exclude> is a reference to a list of string C<@PATTERNS>. Policy modules +that match at least one C will not be loaded, irrespective of +all other settings. For example: + + my $critic = Perl::Critic->new(-exclude => ['strict'] -severity => 1); + +This would cause Perl::Critic to not apply the C and +C Policy modules even though they have a severity level that +is greater than 1. You can set the default value for this option in your +F<.perlcriticrc> file. You can also use C<-exclude> in conjunction with the +C<-include> option. Note that C<-exclude> takes precedence over C<-include> +when a Policy matches both patterns. + +B<-single-policy> is a string C. Only one policy that matches +C will be used. Policies that do not match will be excluded. +This option has precedence over the C<-severity>, C<-theme>, C<-include>, +C<-exclude>, and C<-only> options. You can set the default value for this +option in your F<.perlcriticrc> file. + +B<-top> is the maximum number of Violations to return when ranked by their +severity levels. This must be a positive integer. Violations are still +returned in the order that they occur within the file. Unless the +C<-severity> option is explicitly given, setting C<-top> silently causes the +C<-severity> to be set to 1. You can set the default value for this option in +your F<.perlcriticrc> file. + +B<-only> is a boolean value. If set to a true value, Perl::Critic will only +choose from Policies that are mentioned in the user's profile. If set to a +false value (which is the default), then Perl::Critic chooses from all the +Policies that it finds at your site. You can set the default value for this +option in your F<.perlcriticrc> file. + +B<-profile-strictness> is an enumerated value, one of +L (the +default), +L, and +L. If set +to L, +Perl::Critic will make certain warnings about problems found in a +F<.perlcriticrc> or file specified via the B<-profile> option fatal. +For example, Perl::Critic normally only Cs about profiles +referring to non-existent Policies, but this value makes this +situation fatal. Correspondingly, +L makes +Perl::Critic shut up about these things. + +B<-force> is a boolean value that controls whether Perl::Critic observes the +magical C<"## no critic"> pseudo-pragmas in your code. If set to a true +value, Perl::Critic will analyze all code. If set to a false value (which is +the default) Perl::Critic will ignore code that is tagged with these comments. +See L<"BENDING THE RULES"> for more information. You can set the default +value for this option in your F<.perlcriticrc> file. + +B<-verbose> can be a positive integer (from 1 to 11), or a literal format +specification. See L for an explanation of format +specifications. You can set the default value for this option in your +F<.perlcriticrc> file. + +B<-color> is not used by Perl::Critic but is provided for the benefit of +L. + +B<-criticism-fatal> is not used by Perl::Critic but is provided for the +benefit of L. + +B<-config> is a reference to a L object. If you have +created your own Config object for some reason, you can pass it in here +instead of having Perl::Critic create one for you. Using the C<-config> +option causes all the other options to be silently ignored. + +=back + + +=head1 METHODS + +=over + +=item C + +Runs the C<$source_code> through the Perl::Critic engine using all the +Policies that have been loaded into this engine. If C<$source_code> is a +scalar reference, then it is treated as a string of actual Perl code. If +C<$source_code> is a reference to an instance of L, then that +instance is used directly. Otherwise, it is treated as a path to a local file +containing Perl code. This method returns a list of +L objects for each violation of the loaded Policies. +The list is sorted in the order that the Violations appear in the code. If +there are no violations, this method returns an empty list. + +=item C<< add_policy( -policy => $policy_name, -params => \%param_hash ) >> + +Creates a Policy object and loads it into this Critic. If the object cannot +be instantiated, it will throw a fatal exception. Otherwise, it returns a +reference to this Critic. + +B<-policy> is the name of a L subclass module. The +C<'Perl::Critic::Policy'> portion of the name can be omitted for brevity. +This argument is required. + +B<-params> is an optional reference to a hash of Policy parameters. The +contents of this hash reference will be passed into to the constructor of the +Policy module. See the documentation in the relevant Policy module for a +description of the arguments it supports. + +=item C< policies() > + +Returns a list containing references to all the Policy objects that have been +loaded into this engine. Objects will be in the order that they were loaded. + +=item C< config() > + +Returns the L object that was created for or given +to this Critic. + +=item C< statistics() > + +Returns the L object that was created for this +Critic. The Statistics object accumulates data for all files that are +analyzed by this Critic. + +=back + + +=head1 FUNCTIONAL INTERFACE + +For those folks who prefer to have a functional interface, The C +method can be exported on request and called as a static function. If the +first argument is a hashref, its contents are used to construct a new +Perl::Critic object internally. The keys of that hash should be the same as +those supported by the C method. Here are some examples: + + use Perl::Critic qw(critique); + + # Use default parameters... + @violations = critique( $some_file ); + + # Use custom parameters... + @violations = critique( {-severity => 2}, $some_file ); + + # As a one-liner + %> perl -MPerl::Critic=critique -e 'print critique(shift)' some_file.pm + +None of the other object-methods are currently supported as static +functions. Sorry. + + +=head1 CONFIGURATION + +Most of the settings for Perl::Critic and each of the Policy modules can be +controlled by a configuration file. The default configuration file is called +F<.perlcriticrc>. Perl::Critic will look for this file in the current +directory first, and then in your home directory. Alternatively, you can set +the C environment variable to explicitly point to a different file +in another location. If none of these files exist, and the C<-profile> option +is not given to the constructor, then all the modules that are found in the +Perl::Critic::Policy namespace will be loaded with their default +configuration. + +The format of the configuration file is a series of INI-style blocks that +contain key-value pairs separated by '='. Comments should start with '#' and +can be placed on a separate line or after the name-value pairs if you desire. + +Default settings for Perl::Critic itself can be set B For example, putting any or all of these at the top of your +configuration file will set the default value for the corresponding +constructor argument. + + severity = 3 #Integer or named level + only = 1 #Zero or One + force = 0 #Zero or One + verbose = 4 #Integer or format spec + top = 50 #A positive integer + theme = (pbp || security) && bugs #A theme expression + include = NamingConventions ClassHierarchies #Space-delimited list + exclude = Variables Modules::RequirePackage #Space-delimited list + criticism-fatal = 1 #Zero or One + color = 1 #Zero or One + +The remainder of the configuration file is a series of blocks like this: + + [Perl::Critic::Policy::Category::PolicyName] + severity = 1 + set_themes = foo bar + add_themes = baz + maximum_violations_per_document = 57 + arg1 = value1 + arg2 = value2 + +C is the full name of a module +that implements the policy. The Policy modules distributed with Perl::Critic +have been grouped into categories according to the table of contents in Damian +Conway's book B. For brevity, you can omit the +C<'Perl::Critic::Policy'> part of the module name. + +C is the level of importance you wish to assign to the Policy. All +Policy modules are defined with a default severity value ranging from 1 (least +severe) to 5 (most severe). However, you may disagree with the default +severity and choose to give it a higher or lower severity, based on your own +coding philosophy. You can set the C to an integer from 1 to 5, or +use one of the equivalent names: + + SEVERITY NAME ...is equivalent to... SEVERITY NUMBER + ---------------------------------------------------- + gentle 5 + stern 4 + harsh 3 + cruel 2 + brutal 1 + +C sets the theme for the Policy and overrides its default theme. +The argument is a string of one or more whitespace-delimited alphanumeric +words. Themes are case-insensitive. See L<"POLICY THEMES"> for more +information. + +C appends to the default themes for this Policy. The argument is +a string of one or more whitespace-delimited words. Themes are +case-insensitive. See L<"POLICY THEMES"> for more information. + +C limits the number of Violations the Policy +will return for a given document. Some Policies have a default limit; see the +documentation for the individual Policies to see whether there is one. To +force a Policy to not have a limit, specify "no_limit" or the empty string for +the value of this parameter. + +The remaining key-value pairs are configuration parameters that will be passed +into the constructor for that Policy. The constructors for most Policy +objects do not support arguments, and those that do should have reasonable +defaults. See the documentation on the appropriate Policy module for more +details. + +Instead of redefining the severity for a given Policy, you can completely +disable a Policy by prepending a '-' to the name of the module in your +configuration file. In this manner, the Policy will never be loaded, +regardless of the C<-severity> given to the Perl::Critic constructor. + +A simple configuration might look like this: + + #-------------------------------------------------------------- + # I think these are really important, so always load them + + [TestingAndDebugging::RequireUseStrict] + severity = 5 + + [TestingAndDebugging::RequireUseWarnings] + severity = 5 + + #-------------------------------------------------------------- + # I think these are less important, so only load when asked + + [Variables::ProhibitPackageVars] + severity = 2 + + [ControlStructures::ProhibitPostfixControls] + allow = if unless # My custom configuration + severity = cruel # Same as "severity = 2" + + #-------------------------------------------------------------- + # Give these policies a custom theme. I can activate just + # these policies by saying `perlcritic -theme larry` + + [Modules::RequireFilenameMatchesPackage] + add_themes = larry + + [TestingAndDebugging::RequireTestLables] + add_themes = larry curly moe + + #-------------------------------------------------------------- + # I do not agree with these at all, so never load them + + [-NamingConventions::ProhibitMixedCaseVars] + [-NamingConventions::ProhibitMixedCaseSubs] + + #-------------------------------------------------------------- + # For all other Policies, I accept the default severity, + # so no additional configuration is required for them. + +For additional configuration examples, see the F file +that is included in this F directory of this distribution. + +Damian Conway's own Perl::Critic configuration is also included in this +distribution as F. + + +=head1 THE POLICIES + +A large number of Policy modules are distributed with Perl::Critic. They are +described briefly in the companion document L and +in more detail in the individual modules themselves. Say C<"perlcritic -doc +PATTERN"> to see the perldoc for all Policy modules that match the regex +C + +There are a number of distributions of additional policies on CPAN. If +L doesn't contain a policy that you want, some one may have +already written it. See the L section below for a list of some +of these distributions. + + +=head1 POLICY THEMES + +Each Policy is defined with one or more "themes". Themes can be used to +create arbitrary groups of Policies. They are intended to provide an +alternative mechanism for selecting your preferred set of Policies. For +example, you may wish disable a certain subset of Policies when analyzing test +scripts. Conversely, you may wish to enable only a specific subset of +Policies when analyzing modules. + +The Policies that ship with Perl::Critic are have been broken into the +following themes. This is just our attempt to provide some basic logical +groupings. You are free to invent new themes that suit your needs. + + THEME DESCRIPTION + -------------------------------------------------------------------------- + core All policies that ship with Perl::Critic + pbp Policies that come directly from "Perl Best Practices" + bugs Policies that that prevent or reveal bugs + maintenance Policies that affect the long-term health of the code + cosmetic Policies that only have a superficial effect + complexity Policies that specificaly relate to code complexity + security Policies that relate to security issues + tests Policies that are specific to test scripts + + +Any Policy may fit into multiple themes. Say C<"perlcritic -list"> to get a +listing of all available Policies and the themes that are associated with each +one. You can also change the theme for any Policy in your F<.perlcriticrc> +file. See the L<"CONFIGURATION"> section for more information about that. + +Using the C<-theme> option, you can create an arbitrarily complex rule that +determines which Policies will be loaded. Precedence is the same as regular +Perl code, and you can use parentheses to enforce precedence as well. +Supported operators are: + + Operator Altertative Example + ---------------------------------------------------------------------------- + && and 'pbp && core' + || or 'pbp || (bugs && security)' + ! not 'pbp && ! (portability || complexity)' + +Theme names are case-insensitive. If the C<-theme> is set to an empty string, +then it evaluates as true all Policies. + + +=head1 BENDING THE RULES + +Perl::Critic takes a hard-line approach to your code: either you comply or you +don't. In the real world, it is not always practical (nor even possible) to +fully comply with coding standards. In such cases, it is wise to show that +you are knowingly violating the standards and that you have a Damn Good Reason +(DGR) for doing so. + +To help with those situations, you can direct Perl::Critic to ignore certain +lines or blocks of code by using pseudo-pragmas: + + require 'LegacyLibaray1.pl'; ## no critic + require 'LegacyLibrary2.pl'; ## no critic + + for my $element (@list) { + + ## no critic + + $foo = ""; #Violates 'ProhibitEmptyQuotes' + $barf = bar() if $foo; #Violates 'ProhibitPostfixControls' + #Some more evil code... + + ## use critic + + #Some good code... + do_something($_); + } + +The C<"## no critic"> comments direct Perl::Critic to ignore the remaining +lines of code until the end of the current block, or until a C<"## use +critic"> comment is found (whichever comes first). If the C<"## no critic"> +comment is on the same line as a code statement, then only that line of code +is overlooked. To direct perlcritic to ignore the C<"## no critic"> comments, +use the C<-force> option. + +A bare C<"## no critic"> comment disables all the active Policies. If you +wish to disable only specific Policies, add a list of Policy names as +arguments, just as you would for the C<"no strict"> or C<"no warnings"> +pragmas. For example, this would disable the C and +C policies until the end of the block or until the +next C<"## use critic"> comment (whichever comes first): + + ## no critic (EmptyQuotes, PostfixControls) + + # Now exempt from ValuesAndExpressions::ProhibitEmptyQuotes + $foo = ""; + + # Now exempt ControlStructures::ProhibitPostfixControls + $barf = bar() if $foo; + + # Still subjected to ValuesAndExpression::RequireNumberSeparators + $long_int = 10000000000; + +Since the Policy names are matched against the C<"## no critic"> arguments as +regular expressions, you can abbreviate the Policy names or disable an entire +family of Policies in one shot like this: + + ## no critic (NamingConventions) + + # Now exempt from NamingConventions::ProhibitMixedCaseVars + my $camelHumpVar = 'foo'; + + # Now exempt from NamingConventions::ProhibitMixedCaseSubs + sub camelHumpSub {} + +The argument list must be enclosed in parentheses and must contain one or more +comma-separated barewords (e.g. don't use quotes). The C<"## no critic"> +pragmas can be nested, and Policies named by an inner pragma will be disabled +along with those already disabled an outer pragma. + +Some Policies like C apply to an entire +block of code. In those cases, C<"## no critic"> must appear on the line +where the violation is reported. For example: + + sub complicated_function { ## no critic (ProhibitExcessComplexity) + # Your code here... + } + +Policies such as C apply to the entire +document, in which case violations are reported at line 1. But if the file +requires a shebang line, it is impossible to put C<"## no critic"> on the +first line of the file. This is a known limitation and it will be addressed +in a future release. As a workaround, you can disable the affected policies +at the command-line or in your F<.perlcriticrc> file. But beware that this +will affect the analysis of B files. + +Use this feature wisely. C<"## no critic"> should be used in the smallest +possible scope, or only on individual lines of code. And you should always be +as specific as possible about which policies you want to disable (i.e. never +use a bare C<"## no critic">). If Perl::Critic complains about your code, try +and find a compliant solution before resorting to this feature. + + +=head1 THE L PHILOSOPHY + +Coding standards are deeply personal and highly subjective. The goal of +Perl::Critic is to help you write code that conforms with a set of best +practices. Our primary goal is not to dictate what those practices are, but +rather, to implement the practices discovered by others. Ultimately, you make +the rules -- Perl::Critic is merely a tool for encouraging consistency. If +there is a policy that you think is important or that we have overlooked, we +would be very grateful for contributions, or you can simply load your own +private set of policies into Perl::Critic. + + +=head1 EXTENDING THE CRITIC + +The modular design of Perl::Critic is intended to facilitate the addition of +new Policies. You'll need to have some understanding of L, but most +Policy modules are pretty straightforward and only require about 20 lines of +code. Please see the L file included in this +distribution for a step-by-step demonstration of how to create new Policy +modules. + +If you develop any new Policy modules, feel free to send them to C<< + >> and I'll be happy to put them into the Perl::Critic +distribution. Or if you would like to work on the Perl::Critic project +directly, check out our repository at L. To +subscribe to our mailing list, send a message to C<< + >>. + +The Perl::Critic team is also available for hire. If your organization has +its own coding standards, we can create custom Policies to enforce your local +guidelines. Or if your code base is prone to a particular defect pattern, we +can design Policies that will help you catch those costly defects B +they go into production. To discuss your needs with the Perl::Critic team, +just contact C<< >>. + + +=head1 PREREQUISITES + +Perl::Critic requires the following modules: + +L + +L + +L + +L + +L + +L + +L + +L + +L + +L + +L + +L + +L + +L + +L + +L + + +The following modules are optional, but recommended for complete +testing: + +L + +L + +L + +L + +L + +L + +L + +L + +L + + +=head1 CONTACTING THE DEVELOPMENT TEAM + +You are encouraged to subscribe to the mailing list; send a message to +C<< >>. See also +L. +You can also contact the author at C<< >>. + +At least one member of the development team has started hanging around in +L. + + +=head1 SEE ALSO + +There are a number of distributions of additional Policies available. A few +are listed here: + +L + +L + +L + +L + +L + +L + +These distributions enable you to use Perl::Critic in your unit tests: + +L + +L + +There are also a couple of distributions that will install all the +Perl::Critic related modules known to the development team: + +L + +L + +If you want to make sure you have absolutely everything, you can use these: + +L + +L + + +=head1 BUGS + +Scrutinizing Perl code is hard for humans, let alone machines. If you find +any bugs, particularly false-positives or false-negatives from a +Perl::Critic::Policy, please submit them to +L. Thanks. + +Most policies will produce false-negatives if they cannot understand a +particular block of code. + + +=head1 CREDITS + +Adam Kennedy - For creating L, the heart and soul of L. + +Damian Conway - For writing B, finally :) + +Chris Dolan - For contributing the best features and Policy modules. + +Andy Lester - Wise sage and master of all-things-testing. + +Elliot Shank - The self-proclaimed quality freak. + +Giuseppe Maxia - For all the great ideas and positive encouragement. + +and Sharon, my wife - For putting up with my all-night code sessions. + +Thanks also to the Perl Foundation for providing a grant to support Chris +Dolan's project to implement twenty PBP policies. +L + + +=head1 AUTHOR + +Jeffrey Ryan Thalhammer + + +=head1 COPYRIGHT + +Copyright (c) 2005-2008 Jeffrey Ryan Thalhammer. All rights reserved. + +This program is free software; you can redistribute it and/or modify it under +the same terms as Perl itself. The full text of this license can be found in +the LICENSE file included with this module. + +=cut + +############################################################################## +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Config.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Config.pm new file mode 100644 index 0000000..575d167 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Config.pm @@ -0,0 +1,1165 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Config.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Config; + +use 5.006001; +use strict; +use warnings; + +use English qw(-no_match_vars); +use Readonly; + +use List::MoreUtils qw(any none apply); +use Scalar::Util qw(blessed); + +use Perl::Critic::Exception::AggregateConfiguration; +use Perl::Critic::Exception::Configuration; +use Perl::Critic::Exception::Configuration::Option::Global::ParameterValue; +use Perl::Critic::Exception::Fatal::Internal qw{ throw_internal }; +use Perl::Critic::PolicyFactory; +use Perl::Critic::Theme qw( $RULE_INVALID_CHARACTER_REGEX cook_rule ); +use Perl::Critic::UserProfile qw(); +use Perl::Critic::Utils qw{ + :booleans :characters :severities :internal_lookup :classification +}; +use Perl::Critic::Utils::Constants qw{ :profile_strictness }; +use Perl::Critic::Utils::DataConversion qw{ boolean_to_number dor }; + +#----------------------------------------------------------------------------- + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +Readonly::Scalar my $SINGLE_POLICY_CONFIG_KEY => 'single-policy'; + +#----------------------------------------------------------------------------- +# Constructor + +sub new { + + my ( $class, %args ) = @_; + my $self = bless {}, $class; + $self->_init( %args ); + return $self; +} + +#----------------------------------------------------------------------------- + +sub _init { + my ( $self, %args ) = @_; + + # -top or -theme imply that -severity is 1, unless it is already defined + if ( defined $args{-top} || defined $args{-theme} ) { + $args{-severity} ||= $SEVERITY_LOWEST; + } + + my $errors = Perl::Critic::Exception::AggregateConfiguration->new(); + + # Construct the UserProfile to get default options. + my $profile_source = $args{-profile}; #Can be file path or data struct + my $profile = + Perl::Critic::UserProfile->new( -profile => $profile_source ); + my $options_processor = $profile->options_processor(); + $self->{_profile} = $profile; + + $self->_validate_and_save_profile_strictness( + $args{'-profile-strictness'}, + $errors, + ); + + # If given, these options should always have a true value. + $self->_validate_and_save_regex( + 'include', $args{-include}, $options_processor->include(), $errors + ); + $self->_validate_and_save_regex( + 'exclude', $args{-exclude}, $options_processor->exclude(), $errors + ); + $self->_validate_and_save_regex( + $SINGLE_POLICY_CONFIG_KEY, + $args{ qq/-$SINGLE_POLICY_CONFIG_KEY/ }, + $options_processor->single_policy(), + $errors, + ); + + $self->_validate_and_save_verbosity($args{-verbose}, $errors); + $self->_validate_and_save_severity($args{-severity}, $errors); + $self->_validate_and_save_top($args{-top}, $errors); + + # If given, these options can be true or false (but defined) + # We normalize these to numeric values by multiplying them by 1; + { + $self->{_force} = boolean_to_number( dor( $args{-force}, $options_processor->force() ) ); + $self->{_only} = boolean_to_number( dor( $args{-only}, $options_processor->only() ) ); + $self->{_color} = boolean_to_number( dor( $args{-color}, $options_processor->color() ) ); + $self->{_criticism_fatal} = + boolean_to_number(dor( $args{'-criticism_fatal'}, $options_processor->criticism_fatal() ) ); + } + + $self->_validate_and_save_theme($args{-theme}, $errors); + + # Construct a Factory with the Profile + my $factory = + Perl::Critic::PolicyFactory->new( + -profile => $profile, + -errors => $errors, + '-profile-strictness' => $self->profile_strictness(), + ); + $self->{_factory} = $factory; + + # Initialize internal storage for Policies + $self->{_policies} = []; + + # "NONE" means don't load any policies + if ( not defined $profile_source or $profile_source ne 'NONE' ) { + # Heavy lifting here... + $self->_load_policies($errors); + } + + if ( $errors->has_exceptions() ) { + $errors->rethrow(); + } + + return $self; +} + +#----------------------------------------------------------------------------- + +sub add_policy { + + my ( $self, %args ) = @_; + + if ( not $args{-policy} ) { + throw_internal q{The -policy argument is required}; + } + + my $policy = $args{-policy}; + + # If the -policy is already a blessed object, then just add it directly. + if ( blessed $policy ) { + $self->_add_policy_if_enabled($policy); + return $self; + } + + # NOTE: The "-config" option is supported for backward compatibility. + my $params = $args{-params} || $args{-config}; + + my $factory = $self->{_factory}; + my $policy_object = + $factory->create_policy(-name=>$policy, -params=>$params); + $self->_add_policy_if_enabled($policy_object); + + return $self; +} + +#----------------------------------------------------------------------------- + +sub _add_policy_if_enabled { + my ( $self, $policy_object ) = @_; + + my $config = $policy_object->__get_config() + or throw_internal + q{Policy was not set up properly because it doesn't have } + . q{a value for its config attribute.}; + + if ( $policy_object->initialize_if_enabled( $config ) ) { + push @{ $self->{_policies} }, $policy_object; + } + + return; +} + +#----------------------------------------------------------------------------- + +sub _load_policies { + + my ( $self, $errors ) = @_; + my $factory = $self->{_factory}; + my @policies = $factory->create_all_policies( $errors ); + + return if $errors->has_exceptions(); + + for my $policy ( @policies ) { + + # If -single-policy is true, only load policies that match it + if ( $self->single_policy() ) { + if ( $self->_policy_is_single_policy( $policy ) ) { + $self->add_policy( -policy => $policy ); + } + next; + } + + # To load, or not to load -- that is the question. + my $load_me = $self->only() ? $FALSE : $TRUE; + + ## no critic (ProhibitPostfixControls) + $load_me = $FALSE if $self->_policy_is_disabled( $policy ); + $load_me = $TRUE if $self->_policy_is_enabled( $policy ); + $load_me = $FALSE if $self->_policy_is_unimportant( $policy ); + $load_me = $FALSE if not $self->_policy_is_thematic( $policy ); + $load_me = $TRUE if $self->_policy_is_included( $policy ); + $load_me = $FALSE if $self->_policy_is_excluded( $policy ); + + + next if not $load_me; + $self->add_policy( -policy => $policy ); + } + + # When using -single-policy, only one policy should ever be loaded. + if ($self->single_policy() && scalar $self->policies() != 1) { + $self->_add_single_policy_exception_to($errors); + } + + return; +} + +#----------------------------------------------------------------------------- + +sub _policy_is_disabled { + my ($self, $policy) = @_; + my $profile = $self->_profile(); + return $profile->policy_is_disabled( $policy ); +} + +#----------------------------------------------------------------------------- + +sub _policy_is_enabled { + my ($self, $policy) = @_; + my $profile = $self->_profile(); + return $profile->policy_is_enabled( $policy ); +} + +#----------------------------------------------------------------------------- + +sub _policy_is_thematic { + my ($self, $policy) = @_; + my $theme = $self->theme(); + return $theme->policy_is_thematic( -policy => $policy ); +} + +#----------------------------------------------------------------------------- + +sub _policy_is_unimportant { + my ($self, $policy) = @_; + my $policy_severity = $policy->get_severity(); + my $min_severity = $self->{_severity}; + return $policy_severity < $min_severity; +} + +#----------------------------------------------------------------------------- + +sub _policy_is_included { + my ($self, $policy) = @_; + my $policy_long_name = ref $policy; + my @inclusions = $self->include(); + return any { $policy_long_name =~ m/$_/imx } @inclusions; +} + +#----------------------------------------------------------------------------- + +sub _policy_is_excluded { + my ($self, $policy) = @_; + my $policy_long_name = ref $policy; + my @exclusions = $self->exclude(); + return any { $policy_long_name =~ m/$_/imx } @exclusions; +} + +#----------------------------------------------------------------------------- + +sub _policy_is_single_policy { + my ($self, $policy) = @_; + + my @patterns = $self->single_policy(); + return if not @patterns; + + my $policy_long_name = ref $policy; + return any { $policy_long_name =~ m/$_/imx } @patterns; +} + +#----------------------------------------------------------------------------- + +sub _new_global_value_exception { + my ($self, @args) = @_; + + return + Perl::Critic::Exception::Configuration::Option::Global::ParameterValue + ->new(@args); +} + +#----------------------------------------------------------------------------- + +sub _add_single_policy_exception_to { + my ($self, $errors) = @_; + + my $message_suffix = $EMPTY; + my $patterns = join q{", "}, $self->single_policy(); + + if (scalar $self->policies() == 0) { + $message_suffix = + q{did not match any policies (in combination with } + . q{other policy restrictions).}; + } + else { + $message_suffix = qq{matched multiple policies:\n\t}; + $message_suffix .= join qq{,\n\t}, apply { chomp } sort $self->policies(); + } + + $errors->add_exception( + $self->_new_global_value_exception( + option_name => $SINGLE_POLICY_CONFIG_KEY, + option_value => $patterns, + message_suffix => $message_suffix, + ) + ); + + return; +} + +#----------------------------------------------------------------------------- + +sub _validate_and_save_regex { + my ($self, $option_name, $args_value, $default_value, $errors) = @_; + + my $full_option_name; + my $source; + my @regexes; + + if ($args_value) { + $full_option_name = "-$option_name"; + + if (ref $args_value) { + @regexes = @{ $args_value }; + } + else { + @regexes = ( $args_value ); + } + } + + if (not @regexes) { + $full_option_name = $option_name; + $source = $self->_profile()->source(); + + if (ref $default_value) { + @regexes = @{ $default_value }; + } + elsif ($default_value) { + @regexes = ( $default_value ); + } + } + + my $found_errors; + foreach my $regex (@regexes) { + eval { my $test = qr/$regex/imx; } + or do { + my $cleaned_error = $EVAL_ERROR || ''; + $cleaned_error =~ + s/ [ ] at [ ] .* Config [.] pm [ ] line [ ] \d+ [.] \n? \z/./xms; + + $errors->add_exception( + $self->_new_global_value_exception( + option_name => $option_name, + option_value => $regex, + source => $source, + message_suffix => qq{is not valid: $cleaned_error}, + ) + ); + + $found_errors = 1; + } + } + + if (not $found_errors) { + my $option_key = $option_name; + $option_key =~ s/ - /_/xmsg; + + $self->{"_$option_key"} = \@regexes; + } + + return; +} + +#----------------------------------------------------------------------------- + +sub _validate_and_save_profile_strictness { + my ($self, $args_value, $errors) = @_; + + my $option_name; + my $source; + my $profile_strictness; + + if ($args_value) { + $option_name = '-profile-strictness'; + $profile_strictness = $args_value; + } + else { + $option_name = 'profile-strictness'; + + my $profile = $self->_profile(); + $source = $profile->source(); + $profile_strictness = $profile->options_processor()->profile_strictness(); + } + + if ( not $PROFILE_STRICTNESSES{$profile_strictness} ) { + $errors->add_exception( + $self->_new_global_value_exception( + option_name => $option_name, + option_value => $profile_strictness, + source => $source, + message_suffix => q{is not one of "} + . join ( q{", "}, (sort keys %PROFILE_STRICTNESSES) ) + . q{".}, + ) + ); + + $profile_strictness = $PROFILE_STRICTNESS_FATAL; + } + + $self->{_profile_strictness} = $profile_strictness; + + return; +} + +#----------------------------------------------------------------------------- + +sub _validate_and_save_verbosity { + my ($self, $args_value, $errors) = @_; + + my $option_name; + my $source; + my $verbosity; + + if ($args_value) { + $option_name = '-verbose'; + $verbosity = $args_value; + } + else { + $option_name = 'verbose'; + + my $profile = $self->_profile(); + $source = $profile->source(); + $verbosity = $profile->options_processor()->verbose(); + } + + if ( + is_integer($verbosity) + and not is_valid_numeric_verbosity($verbosity) + ) { + $errors->add_exception( + $self->_new_global_value_exception( + option_name => $option_name, + option_value => $verbosity, + source => $source, + message_suffix => + 'is not the number of one of the pre-defined verbosity formats.', + ) + ); + } + else { + $self->{_verbose} = $verbosity; + } + + return; +} + +#----------------------------------------------------------------------------- + +sub _validate_and_save_severity { + my ($self, $args_value, $errors) = @_; + + my $option_name; + my $source; + my $severity; + + if ($args_value) { + $option_name = '-severity'; + $severity = $args_value; + } + else { + $option_name = 'severity'; + + my $profile = $self->_profile(); + $source = $profile->source(); + $severity = $profile->options_processor()->severity(); + } + + if ( is_integer($severity) ) { + if ( + $severity >= $SEVERITY_LOWEST and $severity <= $SEVERITY_HIGHEST + ) { + $self->{_severity} = $severity; + } + else { + $errors->add_exception( + $self->_new_global_value_exception( + option_name => $option_name, + option_value => $severity, + source => $source, + message_suffix => + "is not between $SEVERITY_LOWEST (low) and $SEVERITY_HIGHEST (high).", + ) + ); + } + } + elsif ( not any { $_ eq lc $severity } @SEVERITY_NAMES ) { + $errors->add_exception( + $self->_new_global_value_exception( + option_name => $option_name, + option_value => $severity, + source => $source, + message_suffix => + q{is not one of the valid severity names: "} + . join (q{", "}, @SEVERITY_NAMES) + . q{".}, + ) + ); + } + else { + $self->{_severity} = severity_to_number($severity); + } + + return; +} + +#----------------------------------------------------------------------------- + +sub _validate_and_save_top { + my ($self, $args_value, $errors) = @_; + + my $option_name; + my $source; + my $top; + + if (defined $args_value and $args_value ne q{}) { + $option_name = '-top'; + $top = $args_value; + } + else { + $option_name = 'top'; + + my $profile = $self->_profile(); + $source = $profile->source(); + $top = $profile->options_processor()->top(); + } + + if ( is_integer($top) and $top >= 0 ) { + $self->{_top} = $top; + } + else { + $errors->add_exception( + $self->_new_global_value_exception( + option_name => $option_name, + option_value => $top, + source => $source, + message_suffix => q{is not a non-negative integer.}, + ) + ); + } + + return; +} + +#----------------------------------------------------------------------------- + +sub _validate_and_save_theme { + my ($self, $args_value, $errors) = @_; + + my $option_name; + my $source; + my $theme_rule; + + if ($args_value) { + $option_name = '-theme'; + $theme_rule = $args_value; + } + else { + $option_name = 'theme'; + + my $profile = $self->_profile(); + $source = $profile->source(); + $theme_rule = $profile->options_processor()->theme(); + } + + if ( $theme_rule =~ m/$RULE_INVALID_CHARACTER_REGEX/xms ) { + my $bad_character = $1; + + $errors->add_exception( + $self->_new_global_value_exception( + option_name => $option_name, + option_value => $theme_rule, + source => $source, + message_suffix => + qq{contains an illegal character ("$bad_character").}, + ) + ); + } + else { + my $rule_as_code = cook_rule($theme_rule); + $rule_as_code =~ s/ [\w\d]+ / 1 /gxms; + + # eval of an empty string does not reset $@ in Perl 5.6. + local $EVAL_ERROR = $EMPTY; + eval $rule_as_code; ## no critic (ProhibitStringyEval, RequireCheckingReturnValueOfEval) + + if ($EVAL_ERROR) { + $errors->add_exception( + $self->_new_global_value_exception( + option_name => $option_name, + option_value => $theme_rule, + source => $source, + message_suffix => q{is not syntactically valid.}, + ) + ); + } + else { + eval { + $self->{_theme} = + Perl::Critic::Theme->new( -rule => $theme_rule ); + } + or do { + $errors->add_exception_or_rethrow( $EVAL_ERROR ); + }; + } + } + + return; +} + +#----------------------------------------------------------------------------- +# Begin ACCESSSOR methods + +sub _profile { + my $self = shift; + return $self->{_profile}; +} + +#----------------------------------------------------------------------------- + +sub policies { + my $self = shift; + return @{ $self->{_policies} }; +} + +#----------------------------------------------------------------------------- + +sub exclude { + my $self = shift; + return @{ $self->{_exclude} }; +} + +#----------------------------------------------------------------------------- + +sub force { + my $self = shift; + return $self->{_force}; +} + +#----------------------------------------------------------------------------- + +sub include { + my $self = shift; + return @{ $self->{_include} }; +} + +#----------------------------------------------------------------------------- + +sub only { + my $self = shift; + return $self->{_only}; +} + +#----------------------------------------------------------------------------- + +sub profile_strictness { + my $self = shift; + return $self->{_profile_strictness}; +} + +#----------------------------------------------------------------------------- + +sub severity { + my $self = shift; + return $self->{_severity}; +} + +#----------------------------------------------------------------------------- + +sub single_policy { + my $self = shift; + return @{ $self->{_single_policy} }; +} + +#----------------------------------------------------------------------------- + +sub theme { + my $self = shift; + return $self->{_theme}; +} + +#----------------------------------------------------------------------------- + +sub top { + my $self = shift; + return $self->{_top}; +} + +#----------------------------------------------------------------------------- + +sub verbose { + my $self = shift; + return $self->{_verbose}; +} + +#----------------------------------------------------------------------------- + +sub color { + my $self = shift; + return $self->{_color}; +} + +#----------------------------------------------------------------------------- + +sub criticism_fatal { + my $self = shift; + return $self->{_criticism_fatal}; +} + +#----------------------------------------------------------------------------- + +sub site_policy_names { + return Perl::Critic::PolicyFactory::site_policy_names(); +} + +1; + +#----------------------------------------------------------------------------- + +__END__ + +=pod + +=for stopwords -params INI-style + +=head1 NAME + +Perl::Critic::Config - The final derived Perl::Critic configuration, combined from any profile file and command-line parameters. + +=head1 DESCRIPTION + +Perl::Critic::Config takes care of finding and processing +user-preferences for L. The Config object defines which +Policy modules will be loaded into the Perl::Critic engine and how +they should be configured. You should never really need to +instantiate Perl::Critic::Config directly because the Perl::Critic +constructor will do it for you. + +=head1 CONSTRUCTOR + +=over 8 + +=item C<< new( [ -profile => $FILE, -severity => $N, -theme => $string, -include => \@PATTERNS, -exclude => \@PATTERNS, -single-policy => $PATTERN, -top => $N, -only => $B, -profile-strictness => $PROFILE_STRICTNESS_{WARN|FATAL|QUIET}, -force => $B, -verbose => $N, -color => $B, -criticism-fatal => $B] ) >> + +=item C<< new() >> + +Returns a reference to a new Perl::Critic::Config object. The default +value for all arguments can be defined in your F<.perlcriticrc> file. +See the L<"CONFIGURATION"> section for more information about that. +All arguments are optional key-value pairs as follows: + +B<-profile> is a path to a configuration file. If C<$FILE> is not +defined, Perl::Critic::Config attempts to find a F<.perlcriticrc> +configuration file in the current directory, and then in your home +directory. Alternatively, you can set the C environment +variable to point to a file in another location. If a configuration +file can't be found, or if C<$FILE> is an empty string, then all +Policies will be loaded with their default configuration. See +L<"CONFIGURATION"> for more information. + +B<-severity> is the minimum severity level. Only Policy modules that +have a severity greater than C<$N> will be loaded into this Config. +Severity values are integers ranging from 1 (least severe) to 5 (most +severe). The default is 5. For a given C<-profile>, decreasing the +C<-severity> will usually result in more Policy violations. Users can +redefine the severity level for any Policy in their F<.perlcriticrc> +file. See L<"CONFIGURATION"> for more information. + +B<-theme> is special string that defines a set of Policies based on +their respective themes. If C<-theme> is given, only policies that +are members of that set will be loaded. See the L<"POLICY THEMES"> +section for more information about themes. Unless the C<-severity> +option is explicitly given, setting C<-theme> causes the C<-severity> +to be set to 1. + +B<-include> is a reference to a list of string C<@PATTERNS>. Policies +that match at least one C will be loaded into this +Config, irrespective of the severity settings. You can use it in +conjunction with the C<-exclude> option. Note that C<-exclude> takes +precedence over C<-include> when a Policy matches both patterns. + +B<-exclude> is a reference to a list of string C<@PATTERNS>. Polices +that match at least one C will not be loaded into this +Config, irrespective of the severity settings. You can use it in +conjunction with the C<-include> option. Note that C<-exclude> takes +precedence over C<-include> when a Policy matches both patterns. + +B<-single-policy> is a string C. Only the policy that matches +C will be used. This value overrides the +C<-severity>, C<-theme>, C<-include>, C<-exclude>, and C<-only> +options. + +B<-top> is the maximum number of Violations to return when ranked by +their severity levels. This must be a positive integer. Violations +are still returned in the order that they occur within the file. +Unless the C<-severity> option is explicitly given, setting C<-top> +silently causes the C<-severity> to be set to 1. + +B<-only> is a boolean value. If set to a true value, Perl::Critic +will only choose from Policies that are mentioned in the user's +profile. If set to a false value (which is the default), then +Perl::Critic chooses from all the Policies that it finds at your site. + +B<-profile-strictness> is an enumerated value, one of +L (the +default), +L, and +L. If set +to L, +Perl::Critic will make certain warnings about problems found in a +F<.perlcriticrc> or file specified via the B<-profile> option fatal. +For example, Perl::Critic normally only Cs about profiles +referring to non-existent Policies, but this value makes this +situation fatal. Correspondingly, +L makes +Perl::Critic shut up about these things. + +B<-force> controls whether Perl::Critic observes the magical C<"## no +critic"> pseudo-pragmas in your code. If set to a true value, +Perl::Critic will analyze all code. If set to a false value (which is +the default) Perl::Critic will ignore code that is tagged with these +comments. See L for more +information. + +B<-verbose> can be a positive integer (from 1 to 10), or a literal +format specification. See L for an +explanation of format specifications. + +B<-color> is not used by Perl::Critic but is provided for the benefit +of L. + +B<-criticism-fatal> is not used by Perl::Critic but is provided for the benefit +of L. + + + +=back + +=head1 METHODS + +=over 8 + +=item C<< add_policy( -policy => $policy_name, -params => \%param_hash ) >> + +Creates a Policy object and loads it into this Config. If the object +cannot be instantiated, it will throw a fatal exception. Otherwise, +it returns a reference to this Critic. + +B<-policy> is the name of a L subclass +module. The C<'Perl::Critic::Policy'> portion of the name can be +omitted for brevity. This argument is required. + +B<-params> is an optional reference to a hash of Policy parameters. +The contents of this hash reference will be passed into to the +constructor of the Policy module. See the documentation in the +relevant Policy module for a description of the arguments it supports. + +=item C< policies() > + +Returns a list containing references to all the Policy objects that +have been loaded into this Config. Objects will be in the order that +they were loaded. + +=item C< exclude() > + +Returns the value of the C<-exclude> attribute for this Config. + +=item C< include() > + +Returns the value of the C<-include> attribute for this Config. + +=item C< force() > + +Returns the value of the C<-force> attribute for this Config. + +=item C< only() > + +Returns the value of the C<-only> attribute for this Config. + +=item C< profile_strictness() > + +Returns the value of the C<-profile-strictness> attribute for this +Config. + +=item C< severity() > + +Returns the value of the C<-severity> attribute for this Config. + +=item C< single_policy() > + +Returns the value of the C<-single-policy> attribute for this Config. + +=item C< theme() > + +Returns the L object that was created for +this Config. + +=item C< top() > + +Returns the value of the C<-top> attribute for this Config. + +=item C< verbose() > + +Returns the value of the C<-verbose> attribute for this Config. + +=item C< color() > + +Returns the value of the C<-color> attribute for this Config. + +=item C< criticism_fatal() > + +Returns the value of the C<-criticsm-fatal> attribute for this Config. + +=back + +=head1 SUBROUTINES + +Perl::Critic::Config has a few static subroutines that are used +internally, but may be useful to you in some way. + +=over 8 + +=item C + +Returns a list of all the Policy modules that are currently installed +in the Perl::Critic:Policy namespace. These will include modules that +are distributed with Perl::Critic plus any third-party modules that +have been installed. + +=back + +=head1 CONFIGURATION + +Most of the settings for Perl::Critic and each of the Policy modules +can be controlled by a configuration file. The default configuration +file is called F<.perlcriticrc>. L will look +for this file in the current directory first, and then in your home +directory. Alternatively, you can set the C environment +variable to explicitly point to a different file in another location. +If none of these files exist, and the C<-profile> option is not given +to the constructor, then all Policies will be loaded with their +default configuration. + +The format of the configuration file is a series of INI-style +blocks that contain key-value pairs separated by '='. Comments +should start with '#' and can be placed on a separate line or after +the name-value pairs if you desire. + +Default settings for Perl::Critic itself can be set B For example, putting any or all of these at the top of +your configuration file will set the default value for the +corresponding Perl::Critic constructor argument. + + severity = 3 #Integer from 1 to 5 + only = 1 #Zero or One + force = 0 #Zero or One + verbose = 4 #Integer or format spec + top = 50 #A positive integer + theme = risky + (pbp * security) - cosmetic #A theme expression + include = NamingConventions ClassHierarchies #Space-delimited list + exclude = Variables Modules::RequirePackage #Space-delimited list + color = 1 #Zero or One + +The remainder of the configuration file is a series of blocks like +this: + + [Perl::Critic::Policy::Category::PolicyName] + severity = 1 + set_themes = foo bar + add_themes = baz + arg1 = value1 + arg2 = value2 + +C is the full name of a +module that implements the policy. The Policy modules distributed +with Perl::Critic have been grouped into categories according to the +table of contents in Damian Conway's book B. For +brevity, you can omit the C<'Perl::Critic::Policy'> part of the +module name. + +C is the level of importance you wish to assign to the +Policy. All Policy modules are defined with a default severity value +ranging from 1 (least severe) to 5 (most severe). However, you may +disagree with the default severity and choose to give it a higher or +lower severity, based on your own coding philosophy. + +The remaining key-value pairs are configuration parameters that will +be passed into the constructor of that Policy. The constructors for +most Policy modules do not support arguments, and those that do should +have reasonable defaults. See the documentation on the appropriate +Policy module for more details. + +Instead of redefining the severity for a given Policy, you can +completely disable a Policy by prepending a '-' to the name of the +module in your configuration file. In this manner, the Policy will +never be loaded, regardless of the C<-severity> given to the +Perl::Critic::Config constructor. + +A simple configuration might look like this: + + #-------------------------------------------------------------- + # I think these are really important, so always load them + + [TestingAndDebugging::RequireUseStrict] + severity = 5 + + [TestingAndDebugging::RequireUseWarnings] + severity = 5 + + #-------------------------------------------------------------- + # I think these are less important, so only load when asked + + [Variables::ProhibitPackageVars] + severity = 2 + + [ControlStructures::ProhibitPostfixControls] + allow = if unless #My custom configuration + severity = 2 + + #-------------------------------------------------------------- + # Give these policies a custom theme. I can activate just + # these policies by saying (-theme => 'larry + curly') + + [Modules::RequireFilenameMatchesPackage] + add_themes = larry + + [TestingAndDebugging::RequireTestLables] + add_themes = curly moe + + #-------------------------------------------------------------- + # I do not agree with these at all, so never load them + + [-NamingConventions::ProhibitMixedCaseVars] + [-NamingConventions::ProhibitMixedCaseSubs] + + #-------------------------------------------------------------- + # For all other Policies, I accept the default severity, theme + # and other parameters, so no additional configuration is + # required for them. + +For additional configuration examples, see the F file +that is included in this F directory of this distribution. + +=head1 THE POLICIES + +A large number of Policy modules are distributed with Perl::Critic. +They are described briefly in the companion document +L and in more detail in the individual +modules themselves. + +=head1 POLICY THEMES + +Each Policy is defined with one or more "themes". Themes can be used to +create arbitrary groups of Policies. They are intended to provide an +alternative mechanism for selecting your preferred set of Policies. For +example, you may wish disable a certain subset of Policies when analyzing test +scripts. Conversely, you may wish to enable only a specific subset of +Policies when analyzing modules. + +The Policies that ship with Perl::Critic are have been broken into the +following themes. This is just our attempt to provide some basic logical +groupings. You are free to invent new themes that suit your needs. + + THEME DESCRIPTION + -------------------------------------------------------------------------- + core All policies that ship with Perl::Critic + pbp Policies that come directly from "Perl Best Practices" + bugs Policies that that prevent or reveal bugs + maintenance Policies that affect the long-term health of the code + cosmetic Policies that only have a superficial effect + complexity Policies that specificaly relate to code complexity + security Policies that relate to security issues + tests Policies that are specific to test scripts + + +Say C<`perlcritic -list`> to get a listing of all available policies +and the themes that are associated with each one. You can also change +the theme for any Policy in your F<.perlcriticrc> file. See the +L<"CONFIGURATION"> section for more information about that. + +Using the C<-theme> option, you can combine theme names with mathematical and +boolean operators to create an arbitrarily complex expression that represents +a custom "set" of Policies. The following operators are supported + + Operator Alternative Meaning + ---------------------------------------------------------------------------- + * and Intersection + - not Difference + + or Union + +Operator precedence is the same as that of normal mathematics. You +can also use parenthesis to enforce precedence. Here are some examples: + + Expression Meaning + ---------------------------------------------------------------------------- + pbp * bugs All policies that are "pbp" AND "bugs" + pbp and bugs Ditto + + bugs + cosmetic All policies that are "bugs" OR "cosmetic" + bugs or cosmetic Ditto + + pbp - cosmetic All policies that are "pbp" BUT NOT "cosmetic" + pbp not cosmetic Ditto + + -maintenance All policies that are NOT "maintenance" + not maintenance Ditto + + (pbp - bugs) * complexity All policies that are "pbp" BUT NOT "bugs", + AND "complexity" + (pbp not bugs) and complexity Ditto + +Theme names are case-insensitive. If C<-theme> is set to an empty string, +then it is equivalent to the set of all Policies. A theme name that doesn't +exist is equivalent to an empty set. Please See +L for a discussion on set theory. + +=head1 SEE ALSO + +L, L + + +=head1 AUTHOR + +Jeffrey Ryan Thalhammer + +=head1 COPYRIGHT + +Copyright (c) 2005-2008 Jeffrey Ryan Thalhammer. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module. + +=cut + +############################################################################## +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/DEVELOPER.pod b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/DEVELOPER.pod new file mode 100644 index 0000000..d08e89a --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/DEVELOPER.pod @@ -0,0 +1,1058 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/DEVELOPER.pod $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +=pod + +=for stopwords lookup RequireBlockGrep + +=head1 NAME + +Perl::Critic::DEVELOPER - How to make new Perl::Critic::Policy modules. + + +=head1 DESCRIPTION + +For developers who want to create custom coding standards, the +following tells how to create a Policy module for L. +Although the Perl::Critic distribution already includes a number of +Policies based on Damian Conway's book I (which +will be referred to via "I" from here on), Perl::Critic is not +limited to his guidelines and can be used to enforce any practice, +preference, or style that you want to follow. You can even write +Policies to enforce contradictory guidelines. All you need to do is +write a corresponding L subclass, which may +require as little as 10 lines of code. + + +=head1 BACKGROUND + +The heart of Perl::Critic is L, a parser and lexer for Perl. PPI +transforms Perl source code into a Document Object Model (DOM). Each +token in the document is represented by a PPI class, such as +L or L, and then organized +into structure classes, like L and +L. The root node of the hierarchy is the +L. + +The L engine traverses each node in the L +tree and invokes each of the L subclasses at the +appropriate node. The Policy can inspect the node, look at the +surrounding nodes, and do whatever else it wants. If the Policy +decides that that a coding standard has been violated, it returns one +or more L objects. If there are no +violations, then the Policy returns nothing. + +Policies are usually written based on existing policies, so let's look +at one to see how it works. The F Policy is +relatively simple and demonstrates most of the important issues. The +goal of this Policy is to enforce that every call to C uses a +block for the first argument and not an expression. The reasons for +this Policy are discussed in detail in I. + + +=head1 EXAMPLE POLICY + +First, the Policy module needs to have a name. Perl::Critic uses +L to automatically discover all modules in the +C namespace. Also, we've adopted the convention +of grouping Policies into directories according to the chapters of +I. Since the goal of this Policy is to enforce the use of block +arguments to C and it comes from the "Builtin Functions" chapter +of I, we call it +C<"Perl::Critic::Policy::BuiltinFunctions::RequireBlockGrep">. + + package Perl::Critic::Policy::BuiltinFunctions::RequireBlockGrep; + +Next, we set some pragmas and load the modules that we'll need. All +Policy modules inherit from the L class, which +provides no-op implementations of the basic methods. Our job is to +override these methods to make them do something useful. + +Technically, C and C are optional, but we +don't want Perl::Critic to be a hypocrite, now do we? + + use strict; + use warnings; + + use Readonly; + + use Perl::Critic::Utils qw{ :severities :classification :ppi }; + use base 'Perl::Critic::Policy'; + + our $VERSION = '1.05'; + +Next, we'll declare a description and explanation for this Policy. +The description is always just a string that basically says "this is +what's wrong." The explanation can be either a string with further +details, or a reference to an array of integers that correspond to +page numbers in I. We make them read-only because they never +change. (See +L for why +we don't C.) + + Readonly::Scalar my $DESC => q{Expression form of "grep"}; + Readonly::Scalar my $EXPL => [ 169 ]; + +Most policies don't need to override the C +method provided by L. However, if your Policy +is configurable via F<.perlcriticrc>, you should implement a +C method and need to implement +C to examine the C<$config> values. Since +this Policy isn't configurable, we'll declare that by providing an +implementation of C that returns an empty +list. + + sub supported_parameters { return () } + +Next, we define the C method, which must return an +integer indicating the severity of violating this Policy. Severity +values range from 1 to 5, where 5 is the "most severe." In general, +level 5 is reserved for things that are frequently misused and/or +cause bugs. Level 1 is for things that are highly subjective or +purely cosmetic. The L package exports several +severity constants that you can use here via the C<:severities> tag. + + sub default_severity { return $SEVERITY_HIGH } + +Likewise, the C method returns a list of theme +names. Themes are intended to be named groups of Policies. All +Policies that ship with Perl::Critic have a C<"core"> theme. Since +use of C without blocks often leads to bugs, we include a +C<"bugs"> theme. And since this Policy comes directly from I, +this Policy should be a member of the C<"pbp"> theme. + + sub default_themes { return qw( core bugs pbp ) } + +As a Policy author, you can assign any themes you want to the Policy. +If you're publishing a suite of custom Policies, we suggest that you +create a unique theme that covers all the Policies in the +distribution. That way, users can easily enable or disable all of +your policies at once. For example, Policies in the +L distribution all have a C<"more"> theme. + +Next, we indicate what elements of the code this Policy will analyze, +like statements or variables or conditionals or POD. These elements +are specified as PPI classes such as L, +L, L or +L respectively. The applies_to() method returns a +list of PPI package names. (You can get that list of available +package names via C.) As Perl::Critic traverses the +document, it will call the C method from this module +whenever it encounters one of the PPI types that are given here. In +this case, we just want to test calls to C. Since the token +"grep" is a L, we return that package name from the +C method. + + sub applies_to { return 'PPI::Token::Word' } + +If your Policy needs to analyze several different types of elements, +the C method may return the name of several PPI packages. +If your Policy needs to examine the file as a whole, then the +C method should return L. Since there is +only one PPI::Document element, your Policy would only be invoked once +per file. + +Now comes the interesting part. The C method does all the +work. It is always called with 2 arguments: a reference to the +current PPI element that Perl::Critic is traversing, and a reference +to the entire PPI document. [And since this is an object method, there +will be an additional argument that is a reference to this object +(C<$self>), but you already knew that!] Since this Policy does not +need access to the document as a whole, we ignore the last parameter +by assigning to C. + + sub violates { + my ( $self, $elem, undef ) = @_; + +The violates() method then often performs some tests to make sure we +have the right "type" of element. In our example, we know that the +element will be a L because that's what we declared +back in the C method. However, we didn't specify +exactly which "word" we were looking for. Evaluating a PPI element in +a string context returns the literal form of the code. (You can also +use the c method.) So we make sure that this +PPI::Token::Word is, in fact, "grep". If it's not, then we don't' +need to bother examining it. + + return if $elem ne 'grep'; + +The C class is also used for barewords and methods +called on object references. It is possible for someone to declare a +bareword hash key as C<<%hash = ( grep => 'foo' )>>. We don't want to +test those types of elements because they don't represent function +calls to C. So we use one of handy utility functions from +L to make sure that this "grep" is actually in +the right context. (The C subroutine is brought +in via the C<:classification> tag.) + + return if ! is_function_call($elem); + +Now that we know this element is a call to the C function, we +can look at the nearby elements to see what kind of arguments are +being passed to it. In the following paragraphs, we discuss how to do +this manually in order to explore L; after that, we'll show how +this Policy actually uses facilities provided by +L to get this done. + +Every PPI element is linked to its siblings, parent, and children (if +it has any). Since those siblings could just be whitespace, we use +the C to get the next code-sibling (the "s" in +C stands for "significant"). + + my $sib = $elem->snext_sibling() or return; + +In Perl, the parenthesis around argument lists are usually optional, +and PPI packs the elements into a L object when +parentheses are used. So if the sibling is a PPI::Structure::List, we +pull out the first (significant) child of that list. This child will +be the first argument to C. If parentheses were not used, then +the sibling itself is the first argument. + + my $arg = $sib->isa('PPI::Structure::List') ? $sib->schild(0) : $sib; + +In actuality, this sort of function argument lookup is common, so +there is a L subroutine available via +the C<:ppi> tag. So we use that instead. + + my $arg = first_arg($elem); + +Finally, we now have a reference to the first argument to C. If +that argument is a block (i.e. something in curly braces), then it +will be a L, in which case our Policy is +satisfied and we just return nothing. + + return if !$arg; + return if $arg->isa('PPI::Structure::Block'); + +But if it is not a L, then we know that this +call to C must be using the expression form, and that violates +our Policy. So we create and return a new L +object via the L method, passing in +the description, explanation, and a reference to the PPI element that +caused the violation. And that's all there is to it! + + return $self->violation( $DESC, $EXPL, $elem ); + } + + 1; + +One last thing -- people are going to need to understand what is wrong +with the code when your Policy finds a problem. It isn't reasonable +to include all the details in your violation description or +explanation. So please include a DESCRIPTION section in the POD for +your Policy. It should succinctly describe the behavior and +motivation for your Policy and include a few examples of both good and +bad code. Here's an example: + + =pod + + =head1 NAME + + Perl::Critic::Policy::BuiltinFunctions::RequireBlockGrep + + + =head1 DESCRIPTION + + The expression forms of C and C are awkward and hard to read. + Use the block forms instead. + + @matches = grep /pattern/, @list; #not ok + @matches = grep { /pattern/ } @list; #ok + + @mapped = map transform($_), @list; #not ok + @mapped = map { transform($_) } @list; #ok + + =cut + +When your policy has a section like this, users can invoke +L with a C<--verbose> parameter of C<10> or C<11> to see +it along with the rest of the output for violations of your policy. + + +=head1 MAKING YOUR POLICY CONFIGURABLE + +L takes care of gathering configuration information for +your Policy, from whatever source the user specifies. (See +L for the details of how a user specifies +the values you're going to receive.) What your Policy ends up +receiving for the value of a parameter is a string with leading and +trailing whitespace removed. By default, you will need to handle +conversion of that string to a useful form yourself. However, if you +provide some metadata about your parameters, the parameter handling +will be taken care of for you. (Additionally, tools that deal with +Policies themselves can use this information to enhance their +functionality. See the L C<--profile-proto> option for an +example.) + +You can look at +L +for a simple example of a configurable Policy and +L for a more +complex one. + +=head2 Do It All Yourself + +The C method for a Policy receives one +argument: an instance of L. This method +is only called if the user's configuration has enabled the policy. It +returns a boolean stating whether the Policy should continue to be +enabled. Generally, the only reason to return C<$FALSE> is when some +external requirement is missing. For example, +L disables itself +if L is not installed. + +A basic, do-nothing implementation of C would +be: + + use Perl::Critic::Utils qw< :booleans >; + + ... + + sub initialize_if_enabled { + my ( $self, $config ) = @_; + + return $TRUE; + } + +As stated above, what you get in C<$config> are trimmed strings. For +example, if the user's F<.perlcritic> contains + + [Your::Policy] + foo = bar baz + factor = 5.52 + selections = 2 78 92 + +then C<$config> will contain the equivalent of + + my $config = { + foo => 'bar baz', + factor => '5.52', + selections => '2 78 92', + }; + +To make this available to the C method, the values are +usually put into C<$self> under the name of the configuration item +prefixed with an underscore. E.g. + + sub initialize_if_enabled { + my ( $self, $config ) = @_; + + $self->{_foo} = $config->get{foo}; + $self->{_factor} = $config->get{factor}; + $self->{_selections} = $config->get{selections}; + + return $TRUE; + } + +Often, you'll want to convert the configuration values into something +more useful. In this example, C is supposed to be a list +of integers. L contains a number of functions +that can help you with this. Assuming that C wants to +have C as an array, you'll want to have something like +this: + + use Perl::Critic::Utils qw{ :booleans :characters :data_conversion }; + + sub initialize_if_enabled { + my ( $self, $config ) = @_; + + $self->{_foo} = $config->get{foo}; + $self->{_factor} = $config->get{factor}; + + my $selections = $config->get{selections}; + $selections = defined $selections ? $selections : $EMPTY_STRING; + $self->{_selections} = [ words_from_string($selections) ]; + + return $TRUE; + } + +Since C contains numbers, it may be desirable to change +the assignment to look like + + $self->{_selections} = [ map { $_ + 0 } words_from_string($selections) ]; + +If C needs to quickly determine whether a particular value +is in C, you would want to use a hash instead of an array, +like this: + + $self->{_selections} = { hashify( words_from_string($selections) ) }; + +For an example of a Policy that has some simple, but non-standard +configuration handling, see +L. + + +=head2 Note On Constructors + +It used to be the case that Policies handled configuration by +implementing a constructor. However, there was no requirement to call +the base constructor; as long as the Policy ended up being a blessed +hash reference, everything was fine. Unfortunately, this meant that +Policies would be loaded and their prerequisites would be Cd, +even if the Policy wasn't enabled, slowing things down. Also, this +severely restricted the core of L's ability to enhance +things. Use of constructors is deprecated and is incompatible with +C metadata below. Kindly use +C, instead, to do any sort of set up that you +need. + + + +=head2 Providing Basic Configuration Information Via C + +As minimum for a well behaved Policy, you should implement +C in order to tell the rest of C +what configuration values the Policy looks for, even if it is only to say +that the Policy is not configurable. In the simple form, this +function returns a list of the names of the parameters the Policy +supports. So, for an non-configurable Policy, as in the +C example above, this looked like + + sub supported_parameters { return () } + +For the example being used in the C section +above, this would be + + sub supported_parameters { return qw< foo factor selections >; } + +Given this information, C can tell the user when they +have specified a parameter for a Policy which isn't valid, e.g. when +they've misspelled the name of the parameter, and can emit the +parameter as part of a F<.perlcritic> prototype. + +You can provide even more information about your Policy's +configuration by giving each parameter a description and a string +representation of the default value for the parameter. You do this by +having the values in the list returned by C be +hash references instead of strings, with keys of C, +C, and C. For example, + + sub supported_parameters { + return ( + { + name => 'allowed_values', + description => + 'Individual and ranges of values to allow, and/or "all_integers".', + default_string => '0 1 2', + }, + { + name => 'allowed_types', + description => 'Kind of literals to allow.', + default_string => 'Float', + }, + ); + } + +Note that use of constructors is +L with specifying parameters in +this way. + + +=head2 Using C to Get It Done For You + +The C discussion above showed how you could +help others with your Policy, but didn't do anything to make your life +as a Policy author easier; you still need to implement +C to access any configuration that the user +has specified. To have the configuration automatically handled for +you, you need to declare how your parameters act by specifying a value +for their C. For example, the following declares that a +parameter allows the user to choose from five specific values and that +the user can select any combination of them: + + sub supported_parameters { + return ( + { + name => 'allowed_types', + description => 'Kind of literals to allow.', + default_string => 'Float', + behavior => 'enumeration', + enumeration_values => [ qw{ Binary Exp Float Hex Octal } ], + enumeration_allow_multiple_values => 1, + }, + ); + } + +When you specify a behavior, parsing and validation of the +user-specified and default values is done for you and your +C method can retrieve the value under the key of the +parameter name prefixed with an underscore, e.g., for the above +declaration, the parsed and validated value can be accessed via +C<<$self->{_allowed_types}>>. + +The behaviors provide additional functionality to C; for +more on this, see L and +L. + +The following discusses each of the supported behaviors and the +options they support. For the full details of a behavior, see the +documentation for the implementing class. + + +=head3 "string" + +Implemented in L. + +The most basic of behaviors, the value of the parameter will be stored +in the Policy as a string. + +This behavior is not configurable. + +=head4 C example + + sub supported_parameters { + return ( + { + name => 'a_string', + description => 'An example string.', + default_string => 'blah blah blah', + behavior => 'string', + }, + ); + } + + +=head4 Access example + + sub violates { + my ($self, $element, $document) = @_; + + ... + my $string = $self->{_a_string}; + ... + } + + +=head3 "boolean" + +Implemented in L. + +The value of the parameter will be either L +or L. + +This behavior is not configurable. + +=head4 C example + + sub supported_parameters { + return ( + { + name => 'a_boolean', + description => 'An example boolean.', + default_string => '1', + behavior => 'boolean', + }, + ); + } + + +=head4 Access example + + sub violates { + my ($self, $element, $document) = @_; + + ... + my $is_whatever = $self->{_a_boolean}; + if ($is_whatever) { + ... + } + ... + } + + +=head3 "integer" + +Implemented in L. + +The value is validated against C +(with an special check for "0"). Notice that this means that +underscores are allowed in input values as with Perl numeric literals. + +This takes two options, C and +C, which specify endpoints of an inclusive range to +restrict the value to. Either, neither, or both may be specified. + +=head4 C example + + sub supported_parameters { + return ( + { + name => 'an_integer', + description => 'An example integer.', + default_string => '5', + behavior => 'integer', + integer_minimum => 0, + integer_maximum => 10, + }, + ); + } + + +=head4 Access example + + sub violates { + my ($self, $element, $document) = @_; + + ... + my $integer = $self->{_an_integer}; + if ($integer > $TURNING_POINT) { + ... + } + ... + } + + +=head3 "string list" + +Implemented in L. + +The values will be derived by splitting the input string on blanks. +(See L.) The parameter will +be stored as a reference to a hash, with the values being the keys. + +This takes one optional option, C, of a +reference to an array of strings that will always be included in the +parameter value, e.g. if the value of this option is +C<[ qw{ a b c } ]> and the user specifies a value of C<'c d e'>, then +the value of the parameter will contain C<'a'>, C<'b'>, C<'c'>, +C<'d'>, and C<'e'>. + +=head4 C example + + sub supported_parameters { + return ( + { + name => 'a_string_list', + description => 'An example list.', + default_string => 'red pink blue', + behavior => 'string list', + always_present_values => [ qw{ green purple} ], + }, + ); + } + + +=head4 Access example + + sub violates { + my ($self, $element, $document) = @_; + + ... + my $list = $self->{_a_string_list}; + my @list = keys %{$list}; + ... + return if not $list->{ $element->content() }; + ... + } + + +=head3 "enumeration" + +Implemented in L. + +The values will be derived by splitting the input string on blanks. +(See L.) Depending upon the +value of the C option, the +parameter will be stored as a string or a reference to a hash, with +the values being the keys. + +This behavior takes one required option and one optional one. A value +for C of a reference to an array of valid strings +is required. A true value can be specified for +C to allow the user to pick more +than one value, but this defaults to false. + +=head4 C example + + use Perl::Critic::Utils qw{ :characters }; + + sub supported_parameters { + return ( + { + name => 'a_single_valued_enumeration', + description => + 'An example enumeration that can only have a single value.', + default_string => $EMPTY, + behavior => 'enumeration', + enumeration_values => [ qw{ block statement pod operator } ], + enumeration_allow_multiple_values => 0, + }, + { + name => 'a_multi_valued_enumeration', + description => + 'An example enumeration that can have multiple values.', + default_string => 'fe', + behavior => 'enumeration', + enumeration_values => [ qw{ fe fi fo fum } ], + enumeration_allow_multiple_values => 1, + }, + ); + } + + +=head4 Access example + + sub violates { + my ($self, $element, $document) = @_; + + ... + my $single_value = $self->{_a_single_valued_enumeration}; + ... + my $multi_value = $self->{_a_multi_valued_enumeration}; + if ( $multi_value->{fum} ) { + ... + } + ... + } + + +=head2 Using a Custom Parser + +If none of the behaviors does exactly what you want it to, you can +provide your own parser for a parameter. The reason for doing this as +opposed to using an implementation of C is +that it allows you to use a behavior to provide its extra +functionality and it provides a means for a C +configuration program, e.g. an IDE that integrates C, to +validate your parameter as the user modifies its value. + +The way you declare that you have a custom parser is to include a +reference to it in the parameter specification with the C key. +For example: + + sub supported_parameters { + return ( + { + name => 'file_name', + description => 'A file for to read a list of values from.', + default_string => undef, + behavior => 'string', + parser => \&_parse_file_name, + }, + ); + } + +A parser is a method on a subclass of L that +takes two parameters: the L that is +being specified and the value string provided by the user. The method +is responsible for dealing with any default value and for saving the +parsed value for later use by the C method. + +An example parser (without enough error handling) for the above +example declaration: + + use File::Slurp qw< slurp >; + + use Perl::Critic::Exception::Configuration::Option::Policy::ParameterValue + qw{ throw_policy_value }; + + sub _parse_file_name { + my ($self, $parameter, $config_string) = @_; + + my @thingies; + + if ($config_string) { + if (not -r $config_string) { + throw_policy_value + policy => $self->get_short_name(), + option_name => $parameter->get_name(), + option_value => $config_string, + message_suffix => 'is not readable.'; + } + + @thingies = slurp $config_string; + } + + $self->{_thingies} = \@thingies; + + return; + } + +Note that, if the value for the parameter is not valid, an instance of +L +is thrown. This allows C to include that problem along +with any other problems found with the user's configuration in a +single error message. + + +=head2 Using Both C and C + +There are cases where a Policy needs additional initialization beyond +configuration or where the way it acts depends upon the combination of +multiple parameters. In such situations, you will need to create an +implementation of C. If you want to take +advantage of the supplied parameter handling from within +implementation of C, note that the +information from C will already have been +used, with user-supplied parameter values validated and placed into +the Policy by the time C has been called. It +is likely that you will not need to refer the contents of the +C<$config> parameter; just pull the information you need out of +C<$self>. In fact, any value for the parameter values will be gone. + + + +=head2 Summary of permitted hash keys in C. + + +=head3 All types + + +=over + +=item - "name" (mandatory) + +=item - "description" (optional) + +=item - "behavior" (optional) + +Currently, one of: + +=over + +=item "boolean" + +=item "enumeration" + +=item "integer" + +=item "string" + +=item "string list" + +=back + +=item - "default_string" (optional) + +A string representation of the default value of the parameter. + +=item - "parser" (optional) + +A code ref to a custom parser for the parameter. + +=back + +=head3 Enumerations + +=over + +=item - "enumeration_values" (mandatory) + +A mandatory reference to an array of strings. + +=item - "enumeration_allow_multiple_values" (optional) + +Boolean indicating whether or not the user is restricted to a single +value. + +=back + +=head3 Integers + +=over + +=item - "integer_minimum" (optional) + +Minimum allowed value, inclusive. + +=item - "integer_maximum" (optional) + +Maximum allowed value, inclusive. + +=back + +=head3 String lists + +=over + +=item - "list_always_present_values" (optional) + +A reference to an array of values that should always be included in +the value of the parameter. + +=back + + +=head1 ADDITIONAL FEATURES + +=head2 C + +Certain problems that a Policy detects can be endemic to a particular +file; if there's one violation, there's likely to be many. A good +example of this is +L; if +there's one line before L, there's a good chance that the +entire file is missing L. In such cases, it's not much +help to the user to report every single violation. If you've got such +a policy, you should override +L +method to provide a limit. The user can override this value with a +value for "maximum_violations_per_document" in their F<.perlcriticrc>. + +See the source code for +L +and L +for examples. + + +=head1 DISTRIBUTING YOUR POLICIES + +=head2 Create a Distribution + +You need to come up with a name for your set of policies. Sets of +add-on policies are generally named C>, +e.g. L. + +The module representing the distribution will not actually have any +functionality; it's just documentation and a name for users to use +when installing via L/L. The important part is that +this will include a list of the included policies, with descriptions +of each. + +A typical implementation will look like: + + package Perl::Critic::Example; + + use strict; + use warnings; + + our $VERSION = '1.000000'; + + 1; # Magic true value required at end of module + + __END__ + + =head1 NAME + + Perl::Critic::Example - Policies for Perl::Critic that act as an example. + + =head1 AFFILIATION + + This module has no functionality, but instead contains documentation + for this distribution and acts as a means of pulling other modules + into a bundle. All of the Policy modules contained herein will have + an "AFFILIATION" section announcing their participation in this + grouping. + + + =head1 SYNOPSIS + + Some L policies that will help you keep your code + nice and compliant. + + + =head1 DESCRIPTION + + The included policies are: + + =over + + =item L + + Complains about some example documentation issues. [Severity: 3] + + + =item L + + All modules must have at least one variable. [Severity: 3] + + + =back + + + =head1 CONFIGURATION AND ENVIRONMENT + + All policies included are in the "example" theme. See the + L documentation for how to make use of this. + + +=head2 Themes + +Users can choose which policies to enable using themes. You should +implement C so that users can take advantage of +this. In particular, you should use a theme named after your +distribution in all your policies; this should match the value listed +in the C POD section as shown above. + + default_themes { return qw< example math > } + +If you're looking for ideas of what themes to do, have a look at the +output of C. + + +=head2 Documentation + +=head3 AFFILIATION + +Since all policies have to go somewhere under the +C namespace, it isn't always clear what +distribution a policy came from when browsing through their +documentation. For this reason, you should include an C +section in the POD for all of your policies that state where the +policy comes from. For example: + + =head1 AFFILIATION + + This policy is part of L. + + +=head3 CONFIGURATION + +In order to make it clear what can be done with a policy, you should +always include a C section in your POD, even if it's +only to say: + + =head1 CONFIGURATION + + This Policy is not configurable except for the standard options. + + +=head1 HINT + +When you're trying to figure out what L is going to hand you for +a chunk of code, there is a F program in the +L distribution that will help you. For example, when +developing the above RequireBlockGrep example, you might want to try + + tools/ppidump '@matches = grep /pattern/, @list;' + +and + + tools/ppidump '@matches = grep { /pattern/ } @list;' + +to see the differences between the two cases. + + +=head1 VERSION + +This is part of L version 1.088. + + +=head1 AUTHOR + +Jeffrey Ryan Thalhammer + + +=head1 COPYRIGHT + +Copyright (c) 2005-2008 Jeffrey Ryan Thalhammer. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module. + +=cut + +############################################################################## +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=70 ft=pod expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Document.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Document.pm new file mode 100644 index 0000000..796f043 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Document.pm @@ -0,0 +1,326 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Document.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Document; + +use 5.006001; +use strict; +use warnings; + +use List::Util qw< max >; +use PPI::Document; +use Scalar::Util qw< weaken >; +use version; + +#----------------------------------------------------------------------------- + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +our $AUTOLOAD; +sub AUTOLOAD { ## no critic(ProhibitAutoloading,ArgUnpacking) + my ( $function_name ) = $AUTOLOAD =~ m/ ([^:\']+) \z /xms; + return if $function_name eq 'DESTROY'; + my $self = shift; + return $self->{_doc}->$function_name(@_); +} + +#----------------------------------------------------------------------------- + +sub new { + my ($class, $doc) = @_; + return bless { _doc => $doc }, $class; +} + +#----------------------------------------------------------------------------- + +sub ppi_document { + my ($self) = @_; + return $self->{_doc}; +} + +#----------------------------------------------------------------------------- + +sub isa { + my ($self, @args) = @_; + return $self->SUPER::isa(@args) + || ( (ref $self) && $self->{_doc} && $self->{_doc}->isa(@args) ); +} + +#----------------------------------------------------------------------------- + +sub find { + my ($self, $wanted, @more_args) = @_; + + # This method can only find elements by their class names. For + # other types of searches, delegate to the PPI::Document + if ( ( ref $wanted ) || !$wanted || $wanted !~ m/ \A PPI:: /xms ) { + return $self->{_doc}->find($wanted, @more_args); + } + + # Build the class cache if it doesn't exist. This happens at most + # once per Perl::Critic::Document instance. %elements of will be + # populated as a side-effect of calling the $finder_sub coderef + # that is produced by the caching_finder() closure. + if ( !$self->{_elements_of} ) { + + my %cache = ( 'PPI::Document' => [ $self ] ); + + # The cache refers to $self, and $self refers to the cache. This + # creates a circular reference that leaks memory (i.e. $self is not + # destroyed until execution is complete). By weakening the reference, + # we allow perl to collect the garbage properly. + weaken( $cache{'PPI::Document'}->[0] ); + + my $finder_coderef = _caching_finder( \%cache ); + $self->{_doc}->find( $finder_coderef ); + $self->{_elements_of} = \%cache; + } + + # find() must return false-but-defined on fail + return $self->{_elements_of}->{$wanted} || q{}; +} + +#----------------------------------------------------------------------------- + +sub find_first { + my ($self, $wanted, @more_args) = @_; + + # This method can only find elements by their class names. For + # other types of searches, delegate to the PPI::Document + if ( ( ref $wanted ) || !$wanted || $wanted !~ m/ \A PPI:: /xms ) { + return $self->{_doc}->find_first($wanted, @more_args); + } + + my $result = $self->find($wanted); + return $result ? $result->[0] : $result; +} + +#----------------------------------------------------------------------------- + +sub find_any { + my ($self, $wanted, @more_args) = @_; + + # This method can only find elements by their class names. For + # other types of searches, delegate to the PPI::Document + if ( ( ref $wanted ) || !$wanted || $wanted !~ m/ \A PPI:: /xms ) { + return $self->{_doc}->find_any($wanted, @more_args); + } + + my $result = $self->find($wanted); + return $result ? 1 : $result; +} + +#----------------------------------------------------------------------------- + +sub filename { + my ($self) = @_; + return $self->{_doc}->can('filename') ? $self->{_doc}->filename : undef; +} + +#----------------------------------------------------------------------------- + +sub highest_explicit_perl_version { + my ($self) = @_; + + my $highest_explicit_perl_version = + $self->{_highest_explicit_perl_version}; + + if ( not exists $self->{_highest_explicit_perl_version} ) { + my $includes = $self->find( \&_is_a_version_statement ); + + if ($includes) { + $highest_explicit_perl_version = + max map { version->new( $_->version() ) } @{$includes}; + } + else { + $highest_explicit_perl_version = undef; + } + + $self->{_highest_explicit_perl_version} = + $highest_explicit_perl_version; + } + + return $highest_explicit_perl_version if $highest_explicit_perl_version; + return; +} + +sub _is_a_version_statement { + my (undef, $element) = @_; + + return 0 if not $element->isa('PPI::Statement::Include'); + return 1 if $element->version(); + return 0; +} + +#----------------------------------------------------------------------------- + +sub _caching_finder { + + my $cache_ref = shift; # These vars will persist for the life + my %isa_cache = (); # of the code ref that this sub returns + + + # Gather up all the PPI elements and sort by @ISA. Note: if any + # instances used multiple inheritance, this implementation would + # lead to multiple copies of $element in the $elements_of lists. + # However, PPI::* doesn't do multiple inheritance, so we are safe + + return sub { + my (undef, $element) = @_; + my $classes = $isa_cache{ref $element}; + if ( !$classes ) { + $classes = [ ref $element ]; + # Use a C-style loop because we append to the classes array inside + for ( my $i = 0; $i < @{$classes}; $i++ ) { ## no critic(ProhibitCStyleForLoops) + no strict 'refs'; ## no critic(ProhibitNoStrict) + push @{$classes}, @{"$classes->[$i]::ISA"}; + $cache_ref->{$classes->[$i]} ||= []; + } + $isa_cache{$classes->[0]} = $classes; + } + + for my $class ( @{$classes} ) { + push @{$cache_ref->{$class}}, $element; + } + + return 0; # 0 tells find() to keep traversing, but not to store this $element + }; +} + +#----------------------------------------------------------------------------- + +1; + +__END__ + +=pod + +=for stopwords pre-caches + +=head1 NAME + +Perl::Critic::Document - Caching wrapper around a PPI::Document. + + +=head1 SYNOPSIS + + use PPI::Document; + use Perl::Critic::Document; + my $doc = PPI::Document->new('Foo.pm'); + $doc = Perl::Critic::Document->new($doc); + ## Then use the instance just like a PPI::Document + + +=head1 DESCRIPTION + +Perl::Critic does a lot of iterations over the PPI document tree via +the C method. To save some time, this class +pre-caches a lot of the common C calls in a single traversal. +Then, on subsequent requests we return the cached data. + +This is implemented as a facade, where method calls are handed to the +stored C instance. + + +=head1 CAVEATS + +This facade does not implement the overloaded operators from +L (that is, the C work). Therefore, +users of this facade must not rely on that syntactic sugar. So, for +example, instead of C you should write Ccontent();> + +Perhaps there is a CPAN module out there which implements a facade +better than we do here? + + +=head1 CONSTRUCTOR + +=over + +=item C<< new($doc) >> + +Create a new instance referencing a PPI::Document instance. + + +=back + + +=head1 METHODS + +=over + +=item C<< new($doc) >> + +Create a new instance referencing a PPI::Document instance. + + +=item C<< ppi_document() >> + +Accessor for the wrapped PPI::Document instance. Note that altering this +instance in any way can cause unpredictable failures in Perl::Critic's +subsequent analysis because some caches may fall out of date. + + +=item C<< find($wanted) >> + +=item C<< find_first($wanted) >> + +=item C<< find_any($wanted) >> + +If C<$wanted> is a simple PPI class name, then the cache is employed. +Otherwise we forward the call to the corresponding method of the +C instance. + + +=item C<< filename() >> + +Returns the filename for the source code if applicable +(PPI::Document::File) or C otherwise (PPI::Document). + + +=item C<< isa( $classname ) >> + +To be compatible with other modules that expect to get a PPI::Document, the +Perl::Critic::Document class masquerades as the PPI::Document class. + + +=item C<< highest_explicit_perl_version() >> + +Returns a L object for the highest Perl version requirement declared +in the document via a C or C statement. Returns nothing if +there is no version statement. + + +=back + + +=head1 AUTHOR + +Chris Dolan + + +=head1 COPYRIGHT + +Copyright (c) 2006-2008 Chris Dolan. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception.pm new file mode 100644 index 0000000..4a928d3 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception.pm @@ -0,0 +1,95 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Exception.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Exception; + +use 5.006001; +use strict; +use warnings; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +use Exception::Class ( + 'Perl::Critic::Exception' => { + isa => 'Exception::Class::Base', + description => 'A problem discovered by Perl::Critic.', + }, +); + +use base 'Exporter'; + +#----------------------------------------------------------------------------- + +sub short_class_name { + my ( $self ) = @_; + + return substr ref $self, (length 'Perl::Critic') + 2; +} + +#----------------------------------------------------------------------------- + + +1; + +__END__ + +#----------------------------------------------------------------------------- + +=pod + +=for stopwords + +=head1 NAME + +Perl::Critic::Exception - A problem identified by L. + +=head1 DESCRIPTION + +A base class for all problems discovered by L. This +exists to enable differentiating exceptions from L code +from those originating in other modules. + +This is an abstract class. It should never be instantiated. + + +=head1 METHODS + +=over + +=item C + +Retrieve the name of the class of this object with C<'Perl::Critic::'> +stripped off. + + +=back + + +=head1 AUTHOR + +Elliot Shank + +=head1 COPYRIGHT + +Copyright (c) 2007-2008 Elliot Shank. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/AggregateConfiguration.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/AggregateConfiguration.pm new file mode 100644 index 0000000..6d3775b --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/AggregateConfiguration.pm @@ -0,0 +1,202 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Exception/AggregateConfiguration.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Exception::AggregateConfiguration; + +use 5.006001; +use strict; +use warnings; + +use Carp qw{ confess }; +use English qw(-no_match_vars); +use Readonly; + +use Perl::Critic::Utils qw{ :characters }; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +use Exception::Class ( + 'Perl::Critic::Exception::AggregateConfiguration' => { + isa => 'Perl::Critic::Exception', + description => 'A collected set of configuration exceptions.', + fields => [ qw{ exceptions } ], + alias => 'throw_aggregate', + }, +); + +#----------------------------------------------------------------------------- + +Readonly::Array our @EXPORT_OK => qw< throw_aggregate >; + +#----------------------------------------------------------------------------- + +sub new { + my ($class, %options) = @_; + + my $exceptions = $options{exceptions}; + if (not $exceptions) { + $options{exceptions} = []; + } + + return $class->SUPER::new(%options); +} + +#----------------------------------------------------------------------------- + +sub add_exception { + my ( $self, $exception ) = @_; + + push @{ $self->exceptions() }, $exception; + + return; +} + +#----------------------------------------------------------------------------- + +sub add_exceptions_from { + my ( $self, $aggregate ) = @_; + + push @{ $self->exceptions() }, @{ $aggregate->exceptions() }; + + return; +} + +#----------------------------------------------------------------------------- + +sub add_exception_or_rethrow { + my ( $self, $eval_error ) = @_; + + return if not $eval_error; + confess $eval_error if not ref $eval_error; ## no critic (RequireUseOfExceptions) + + if ( $eval_error->isa('Perl::Critic::Exception::Configuration') ) { + $self->add_exception($eval_error); + } + elsif ( + $eval_error->isa('Perl::Critic::Exception::AggregateConfiguration') + ) { + $self->add_exceptions_from($eval_error); + } + else { + die $eval_error; ## no critic (RequireUseOfExceptions, RequireCarping) + } + + return; +} + +#----------------------------------------------------------------------------- + +sub has_exceptions { + my ( $self ) = @_; + + return @{ $self->exceptions() } ? 1 : 0; +} + +#----------------------------------------------------------------------------- + +my $MESSAGE_PREFIX = $EMPTY; +my $MESSAGE_SUFFIX = "\n"; +my $MESSAGE_SEPARATOR = $MESSAGE_SUFFIX . $MESSAGE_PREFIX; + +sub full_message { + my ( $self ) = @_; + + my $message = $MESSAGE_PREFIX; + $message .= join $MESSAGE_SEPARATOR, @{ $self->exceptions() }; + $message .= $MESSAGE_SUFFIX; + + return $message; +} + +1; + +#----------------------------------------------------------------------------- + +__END__ + +=pod + +=for stopwords + +=head1 NAME + +Perl::Critic::Exception::AggregateConfiguration - A collection of a set of problems found in the configuration and/or command-line options. + +=head1 DESCRIPTION + +A set of configuration settings can have multiple problems. This is +an object for collecting all the problems found so that the user can +see them in one run. + + +=head1 METHODS + +=over + +=item C + +Accumulate the parameter with rest of the exceptions. + + +=item C + +Accumulate the exceptions from another instance of this class. + + +=item C + +Returns a reference to an array of the collected exceptions. + + +=item C + +If the parameter is an instance of +L or +L, add it. +Otherwise, C with the parameter, if it is a reference, or +C with it. If the parameter is false, simply returns. + + +=item C + +Answer whether any configuration problems have been found. + + +=item C + +Concatenate the exception messages. See +L. + + +=back + + +=head1 AUTHOR + +Elliot Shank + +=head1 COPYRIGHT + +Copyright (c) 2007-2008 Elliot Shank. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module. + +=cut + +############################################################################## +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/Configuration.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/Configuration.pm new file mode 100644 index 0000000..ebe4e04 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/Configuration.pm @@ -0,0 +1,90 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Exception/Configuration.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Exception::Configuration; + +use 5.006001; +use strict; +use warnings; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +use Exception::Class ( + 'Perl::Critic::Exception::Configuration' => { + isa => 'Perl::Critic::Exception', + description => 'A problem with Perl::Critic configuration, whether from a file or a command line or some other source.', + fields => [ qw{ source } ], + }, +); + +#----------------------------------------------------------------------------- + +1; + +__END__ + +#----------------------------------------------------------------------------- + +=pod + +=for stopwords + +=head1 NAME + +Perl::Critic::Exception::Configuration - A problem with L configuration. + +=head1 DESCRIPTION + +A representation of a problem found with the configuration of +L, whether from a F<.perlcriticrc>, another profile +file, or command line. + +This is an abstract class. It should never be instantiated. + + +=head1 METHODS + +=over + +=item C + +Where the configuration information came from, if it could be determined. + + +=back + + +=head1 SEE ALSO + +L +L + + +=head1 AUTHOR + +Elliot Shank + +=head1 COPYRIGHT + +Copyright (c) 2007-2008 Elliot Shank. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/Configuration/Generic.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/Configuration/Generic.pm new file mode 100644 index 0000000..f3b0428 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/Configuration/Generic.pm @@ -0,0 +1,95 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Exception/Configuration/Generic.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Exception::Configuration::Generic; + +use 5.006001; +use strict; +use warnings; + +use Readonly; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +use Exception::Class ( + 'Perl::Critic::Exception::Configuration::Generic' => { + isa => 'Perl::Critic::Exception::Configuration', + description => + q{A problem with Perl::Critic configuration that isn't related to an option.}, + alias => 'throw_generic', + }, +); + +#----------------------------------------------------------------------------- + +Readonly::Array our @EXPORT_OK => qw< throw_generic >; + +#----------------------------------------------------------------------------- + +1; + +__END__ + +#----------------------------------------------------------------------------- + +=pod + +=for stopwords + +=head1 NAME + +Perl::Critic::Exception::Configuration::Generic - A problem with L configuration that doesn't involve an option. + +=head1 DESCRIPTION + +A representation of a problem found with the configuration of L, +whether from a F<.perlcriticrc>, another profile file, or command line. + +This covers things like file reading and parsing errors. + + +=head1 CLASS METHODS + +=over + +=item C<< throw( message => $message, source => $source ) >> + +See L. + + +=item C<< new( message => $message, source => $source ) >> + +See L. + + +=back + + +=head1 AUTHOR + +Elliot Shank + +=head1 COPYRIGHT + +Copyright (c) 2007-2008 Elliot Shank. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/Configuration/Option.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/Configuration/Option.pm new file mode 100644 index 0000000..a996200 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/Configuration/Option.pm @@ -0,0 +1,142 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Exception/Configuration/Option.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Exception::Configuration::Option; + +use 5.006001; +use strict; +use warnings; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +use Perl::Critic::Exception::Fatal::Internal; + +use Exception::Class ( # this must come after "use P::C::Exception::*" + 'Perl::Critic::Exception::Configuration::Option' => { + isa => 'Perl::Critic::Exception::Configuration', + description => 'A problem with an option in the Perl::Critic configuration, whether from a file or a command line or some other source.', + fields => [ qw{ option_name option_value message_suffix } ], + }, +); + +#----------------------------------------------------------------------------- + +sub message { + my $self = shift; + + return $self->full_message(); +} + +#----------------------------------------------------------------------------- + +sub error { + my $self = shift; + + return $self->full_message(); +} + +#----------------------------------------------------------------------------- + +## no critic (Subroutines::RequireFinalReturn) +sub full_message { + Perl::Critic::Exception::Fatal::Internal->throw( + 'Subclass failed to override abstract method.' + ); +} +## use critic + + +1; + +__END__ + +#----------------------------------------------------------------------------- + +=pod + +=for stopwords + +=head1 NAME + +Perl::Critic::Exception::Configuration::Option - A problem with an option in the L configuration. + +=head1 DESCRIPTION + +A representation of a problem found with an option in the +configuration of L, whether from a F<.perlcriticrc>, +another profile file, or command line. + +This is an abstract class. It should never be instantiated. + + +=head1 METHODS + +=over + +=item C + +The name of the option that was found to be in error. + + +=item C + +The value of the option that was found to be in error. + + +=item C + +Any text that should be applied to end of the standard message for +this kind of exception. + + +=item C + +=item C + +Overridden to call C. I.e. any message string in the +superclass is ignored. + + +=item C + +Overridden to turn it into an abstract method to force subclasses to +implement it. + + +=back + + +=head1 SEE ALSO + +L +L + + +=head1 AUTHOR + +Elliot Shank + +=head1 COPYRIGHT + +Copyright (c) 2007-2008 Elliot Shank. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/Configuration/Option/Global.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/Configuration/Option/Global.pm new file mode 100644 index 0000000..1489987 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/Configuration/Option/Global.pm @@ -0,0 +1,71 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Exception/Configuration/Option/Global.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Exception::Configuration::Option::Global; + +use 5.006001; +use strict; +use warnings; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +use Exception::Class ( + 'Perl::Critic::Exception::Configuration::Option::Global' => { + isa => 'Perl::Critic::Exception::Configuration::Option', + description => 'A problem with global Perl::Critic configuration.', + }, +); + +#----------------------------------------------------------------------------- + +1; + +__END__ + +#----------------------------------------------------------------------------- + +=pod + +=for stopwords + +=head1 NAME + +Perl::Critic::Exception::Configuration::Option::Global - A problem with L global configuration. + +=head1 DESCRIPTION + +A representation of a problem found with the global configuration of +L, whether from a F<.perlcriticrc>, another profile +file, or command line. + +This is an abstract class. It should never be instantiated. + + +=head1 AUTHOR + +Elliot Shank + +=head1 COPYRIGHT + +Copyright (c) 2007-2008 Elliot Shank. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/Configuration/Option/Global/ExtraParameter.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/Configuration/Option/Global/ExtraParameter.pm new file mode 100644 index 0000000..00141f3 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/Configuration/Option/Global/ExtraParameter.pm @@ -0,0 +1,123 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Exception/Configuration/Option/Global/ExtraParameter.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Exception::Configuration::Option::Global::ExtraParameter; + +use 5.006001; +use strict; +use warnings; + +use Readonly; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +use Exception::Class ( + 'Perl::Critic::Exception::Configuration::Option::Global::ExtraParameter' => { + isa => 'Perl::Critic::Exception::Configuration::Option::Global', + description => 'The configuration referred to a non-existant global option.', + alias => 'throw_extra_global', + }, +); + +#----------------------------------------------------------------------------- + +Readonly::Array our @EXPORT_OK => qw< throw_extra_global >; + +#----------------------------------------------------------------------------- + +sub full_message { + my ( $self ) = @_; + + my $source = $self->source(); + if ($source) { + $source = qq{ (found in "$source")}; + } + else { + $source = q{}; + } + + my $option_name = $self->option_name(); + + return qq{"$option_name" is not a supported option$source.}; +} + + +1; + +__END__ + +#----------------------------------------------------------------------------- + +=pod + +=for stopwords + +=head1 NAME + +Perl::Critic::Exception::Configuration::Option::Global::ExtraParameter - The configuration referred to a non-existent global option. + +=head1 DESCRIPTION + +A representation of the configuration attempting to specify a value +for an option that L doesn't have, whether from a +F<.perlcriticrc>, another profile file, or command line. + + +=head1 CLASS METHODS + +=over + +=item C<< throw( option_name => $option_name, source => $source ) >> + +See L. + + +=item C<< new( option_name => $option_name, source => $source ) >> + +See L. + + +=back + + +=head1 METHODS + +=over + +=item C + +Provide a standard message for values for non-existent parameters for +policies. See L. + + +=back + + +=head1 AUTHOR + +Elliot Shank + +=head1 COPYRIGHT + +Copyright (c) 2007-2008 Elliot Shank. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/Configuration/Option/Global/ParameterValue.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/Configuration/Option/Global/ParameterValue.pm new file mode 100644 index 0000000..23280ef --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/Configuration/Option/Global/ParameterValue.pm @@ -0,0 +1,132 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Exception/Configuration/Option/Global/ParameterValue.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Exception::Configuration::Option::Global::ParameterValue; + +use 5.006001; +use strict; +use warnings; + +use Readonly; + +use Perl::Critic::Utils qw{ :characters }; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +use Exception::Class ( + 'Perl::Critic::Exception::Configuration::Option::Global::ParameterValue' => { + isa => 'Perl::Critic::Exception::Configuration::Option::Global', + description => 'A problem with the value of a global parameter.', + alias => 'throw_global_value', + }, +); + +#----------------------------------------------------------------------------- + +Readonly::Array our @EXPORT_OK => qw< throw_global_value >; + +#----------------------------------------------------------------------------- + +sub full_message { + my ( $self ) = @_; + + my $source = $self->source(); + if ($source) { + $source = qq{ found in "$source"}; + } + else { + $source = $EMPTY; + } + + my $option_name = $self->option_name(); + my $option_value = + defined $self->option_value() + ? $DQUOTE . $self->option_value() . $DQUOTE + : ''; + my $message_suffix = $self->message_suffix() || $EMPTY; + + return + qq{The value for the global "$option_name" option } + . qq{($option_value)$source $message_suffix}; +} + + +1; + +__END__ + +#----------------------------------------------------------------------------- + +=pod + +=for stopwords + +=head1 NAME + +Perl::Critic::Exception::Configuration::Option::Global::ParameterValue - A problem with the value of a global parameter. + +=head1 DESCRIPTION + +A representation of a problem found with the value of a global +parameter, whether from a F<.perlcriticrc>, another profile file, or +command line. + + +=head1 CLASS METHODS + +=over + +=item C<< throw( option_name => $option_name, option_value => $option_value, source => $source, message_suffix => $message_suffix ) >> + +See L. + + +=item C<< new( option_name => $option_name, option_value => $option_value, source => $source, message_suffix => $message_suffix ) >> + +See L. + + +=back + + +=head1 METHODS + +=over + +=item C + +Provide a standard message for global configuration problems. See +L. + + +=back + + +=head1 AUTHOR + +Elliot Shank + +=head1 COPYRIGHT + +Copyright (c) 2007-2008 Elliot Shank. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/Configuration/Option/Policy.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/Configuration/Option/Policy.pm new file mode 100644 index 0000000..4d9f11c --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/Configuration/Option/Policy.pm @@ -0,0 +1,98 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Exception/Configuration/Option/Policy.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Exception::Configuration::Option::Policy; + +use 5.006001; +use strict; +use warnings; + +use Perl::Critic::Utils qw{ &policy_short_name }; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +use Exception::Class ( + 'Perl::Critic::Exception::Configuration::Option::Policy' => { + isa => 'Perl::Critic::Exception::Configuration::Option', + description => 'A problem with the configuration of a policy.', + fields => [ qw{ policy } ], + }, +); + +#----------------------------------------------------------------------------- + +sub new { + my ($class, %options) = @_; + + my $policy = $options{policy}; + if ($policy) { + $options{policy} = policy_short_name($policy); + } + + return $class->SUPER::new(%options); +} + + +1; + +__END__ + +#----------------------------------------------------------------------------- + +=pod + +=for stopwords + +=head1 NAME + +Perl::Critic::Exception::Configuration::Option::Policy - A problem with configuration of a policy. + +=head1 DESCRIPTION + +A representation of a problem found with the configuration of a +L, whether from a F<.perlcriticrc>, another +profile file, or command line. + +This is an abstract class. It should never be instantiated. + + +=head1 METHODS + +=over + +=item C + +The short name of the policy that had configuration problems. + + +=back + + +=head1 AUTHOR + +Elliot Shank + +=head1 COPYRIGHT + +Copyright (c) 2007-2008 Elliot Shank. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/Configuration/Option/Policy/ExtraParameter.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/Configuration/Option/Policy/ExtraParameter.pm new file mode 100644 index 0000000..e8920db --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/Configuration/Option/Policy/ExtraParameter.pm @@ -0,0 +1,125 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Exception/Configuration/Option/Policy/ExtraParameter.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Exception::Configuration::Option::Policy::ExtraParameter; + +use 5.006001; +use strict; +use warnings; + +use Readonly; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +use Exception::Class ( + 'Perl::Critic::Exception::Configuration::Option::Policy::ExtraParameter' => { + isa => 'Perl::Critic::Exception::Configuration::Option::Policy', + description => 'The configuration of a policy referred to a non-existant parameter.', + alias => 'throw_extra_parameter', + }, +); + +#----------------------------------------------------------------------------- + +Readonly::Array our @EXPORT_OK => qw< throw_extra_parameter >; + +#----------------------------------------------------------------------------- + +sub full_message { + my ( $self ) = @_; + + my $source = $self->source(); + if ($source) { + $source = qq{ (found in "$source")}; + } + else { + $source = q{}; + } + + my $policy = $self->policy(); + my $option_name = $self->option_name(); + + return + qq{The $policy policy doesn't take a "$option_name" option$source.}; +} + + +1; + +__END__ + +#----------------------------------------------------------------------------- + +=pod + +=for stopwords + +=head1 NAME + +Perl::Critic::Exception::Configuration::Option::Policy::ExtraParameter - The configuration referred to a non-existent parameter for a policy. + +=head1 DESCRIPTION + +A representation of the configuration attempting to specify a value +for a parameter that a L doesn't have, whether +from a F<.perlcriticrc>, another profile file, or command line. + + +=head1 CLASS METHODS + +=over + +=item C<< throw( policy => $policy, option_name => $option_name, source => $source ) >> + +See L. + + +=item C<< new( policy => $policy, option_name => $option_name, source => $source ) >> + +See L. + + +=back + + +=head1 METHODS + +=over + +=item C + +Provide a standard message for values for non-existent parameters for +policies. See L. + + +=back + + +=head1 AUTHOR + +Elliot Shank + +=head1 COPYRIGHT + +Copyright (c) 2007-2008 Elliot Shank. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/Configuration/Option/Policy/ParameterValue.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/Configuration/Option/Policy/ParameterValue.pm new file mode 100644 index 0000000..ca7b129 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/Configuration/Option/Policy/ParameterValue.pm @@ -0,0 +1,133 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Exception/Configuration/Option/Policy/ParameterValue.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Exception::Configuration::Option::Policy::ParameterValue; + +use 5.006001; +use strict; +use warnings; + +use Readonly; + +use Perl::Critic::Utils qw{ :characters }; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +use Exception::Class ( + 'Perl::Critic::Exception::Configuration::Option::Policy::ParameterValue' => { + isa => 'Perl::Critic::Exception::Configuration::Option::Policy', + description => 'A problem with the value of a parameter for a policy.', + alias => 'throw_policy_value', + }, +); + +#----------------------------------------------------------------------------- + +Readonly::Array our @EXPORT_OK => qw< throw_policy_value >; + +#----------------------------------------------------------------------------- + +sub full_message { + my ( $self ) = @_; + + my $source = $self->source(); + if ($source) { + $source = qq{ found in "$source"}; + } + else { + $source = $EMPTY; + } + + my $policy = $self->policy(); + my $option_name = $self->option_name(); + my $option_value = + defined $self->option_value() + ? $DQUOTE . $self->option_value() . $DQUOTE + : ''; + my $message_suffix = $self->message_suffix() || $EMPTY; + + return + qq{The value for the $policy "$option_name" option } + . qq{($option_value)$source $message_suffix}; +} + + +1; + +__END__ + +#----------------------------------------------------------------------------- + +=pod + +=for stopwords + +=head1 NAME + +Perl::Critic::Exception::Configuration::Option::Policy::ParameterValue - A problem with the value of a parameter for a policy. + +=head1 DESCRIPTION + +A representation of a problem found with the value of a parameter for a +L, whether from a F<.perlcriticrc>, another +profile file, or command line. + + +=head1 CLASS METHODS + +=over + +=item C<< throw( policy => $policy, option_name => $option_name, option_value => $option_value, source => $source, message_suffix => $message_suffix ) >> + +See L. + + +=item C<< new( policy => $policy, option_name => $option_name, option_value => $option_value, source => $source, message_suffix => $message_suffix ) >> + +See L. + + +=back + + +=head1 METHODS + +=over + +=item C + +Provide a standard message for policy parameter value problems. See +L. + + +=back + + +=head1 AUTHOR + +Elliot Shank + +=head1 COPYRIGHT + +Copyright (c) 2007-2008 Elliot Shank. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/Fatal.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/Fatal.pm new file mode 100644 index 0000000..b89b77b --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/Fatal.pm @@ -0,0 +1,112 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Exception/Fatal.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Exception::Fatal; + +use 5.006001; +use strict; +use warnings; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +use Exception::Class ( + 'Perl::Critic::Exception::Fatal' => { + isa => 'Perl::Critic::Exception', + description => + 'A problem that should cause Perl::Critic to stop running.', + }, +); + +#----------------------------------------------------------------------------- + +sub new { + my ($class, @args) = @_; + my $self = $class->SUPER::new(@args); + + $self->show_trace(1); + + return $self; +} + +#----------------------------------------------------------------------------- + +sub full_message { + my ( $self ) = @_; + + return + $self->short_class_name() + . q{: } + . $self->description() + . "\n\n" + . $self->message() + . "\n\n" + . gmtime $self->time() + . "\n\n"; +} + + +1; + +__END__ + +#----------------------------------------------------------------------------- + +=pod + +=for stopwords + +=head1 NAME + +Perl::Critic::Exception::Fatal - A problem that should cause L to stop running. + +=head1 DESCRIPTION + +Something went wrong and processing should not continue. You should +never specifically look for this exception or one of its subclasses. + +Note: the constructor invokes L to +force stack-traces to be included in the standard stringification. + +This is an abstract class. It should never be instantiated. + + +=head1 METHODS + +=over + +=item C + +Overrides L to include extra information. + + +=back + + +=head1 AUTHOR + +Elliot Shank + +=head1 COPYRIGHT + +Copyright (c) 2007-2008 Elliot Shank. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/Fatal/Generic.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/Fatal/Generic.pm new file mode 100644 index 0000000..b7c7958 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/Fatal/Generic.pm @@ -0,0 +1,80 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Exception/Fatal/Generic.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Exception::Fatal::Generic; + +use 5.006001; +use strict; +use warnings; + +use Readonly; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +use Exception::Class ( + 'Perl::Critic::Exception::Fatal::Generic' => { + isa => 'Perl::Critic::Exception::Fatal', + description => 'A general problem was found.', + alias => 'throw_generic', + }, +); + +#----------------------------------------------------------------------------- + +Readonly::Array our @EXPORT_OK => qw< throw_generic >; + +#----------------------------------------------------------------------------- + + +1; + +__END__ + +#----------------------------------------------------------------------------- + +=pod + +=for stopwords + +=head1 NAME + +Perl::Critic::Exception::Fatal::Generic - A problem for which there is no specialized information. + +=head1 DESCRIPTION + +A general problem, e.g. I/O errors and problems that may or not be bugs. + + +=head1 METHODS + +Only inherited ones. + + +=head1 AUTHOR + +Elliot Shank + +=head1 COPYRIGHT + +Copyright (c) 2007-2008 Elliot Shank. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/Fatal/Internal.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/Fatal/Internal.pm new file mode 100644 index 0000000..0709955 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/Fatal/Internal.pm @@ -0,0 +1,80 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Exception/Fatal/Internal.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Exception::Fatal::Internal; + +use 5.006001; +use strict; +use warnings; + +use Readonly; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +use Exception::Class ( + 'Perl::Critic::Exception::Fatal::Internal' => { + isa => 'Perl::Critic::Exception::Fatal', + description => 'A problem with the Perl::Critic code was found, a.k.a. a bug.', + alias => 'throw_internal', + }, +); + +#----------------------------------------------------------------------------- + +Readonly::Array our @EXPORT_OK => qw< throw_internal >; + +#----------------------------------------------------------------------------- + + +1; + +__END__ + +#----------------------------------------------------------------------------- + +=pod + +=for stopwords + +=head1 NAME + +Perl::Critic::Exception::Fatal::Internal - A problem with the L implementation, i.e. a bug. + +=head1 DESCRIPTION + +A representation of a bug found in the code of L. + + +=head1 METHODS + +Only inherited ones. + + +=head1 AUTHOR + +Elliot Shank + +=head1 COPYRIGHT + +Copyright (c) 2007-2008 Elliot Shank. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/Fatal/PolicyDefinition.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/Fatal/PolicyDefinition.pm new file mode 100644 index 0000000..b0b0d63 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/Fatal/PolicyDefinition.pm @@ -0,0 +1,81 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Exception/Fatal/PolicyDefinition.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Exception::Fatal::PolicyDefinition; + +use 5.006001; +use strict; +use warnings; + +use Readonly; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +use Exception::Class ( + 'Perl::Critic::Exception::Fatal::PolicyDefinition' => { + isa => 'Perl::Critic::Exception::Fatal', + description => 'A bug in a policy was found.', + alias => 'throw_policy_definition', + }, +); + +#----------------------------------------------------------------------------- + +Readonly::Array our @EXPORT_OK => qw< throw_policy_definition >; + +#----------------------------------------------------------------------------- + + +1; + +__END__ + +#----------------------------------------------------------------------------- + +=pod + +=for stopwords + +=head1 NAME + +Perl::Critic::Exception::Fatal::PolicyDefinition - A bug in a policy. + +=head1 DESCRIPTION + +A bug in a policy was found, e.g. it didn't implement a method that it should +have. + + +=head1 METHODS + +Only inherited ones. + + +=head1 AUTHOR + +Elliot Shank + +=head1 COPYRIGHT + +Copyright (c) 2007-2008 Elliot Shank. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/IO.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/IO.pm new file mode 100644 index 0000000..8923b41 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/IO.pm @@ -0,0 +1,97 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Exception/IO.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Exception::IO; + +use 5.006001; +use strict; +use warnings; + +use Carp qw{ confess }; +use English qw(-no_match_vars); +use Readonly; + +use Perl::Critic::Utils qw{ :characters }; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +use Exception::Class ( + 'Perl::Critic::Exception::IO' => { + isa => 'Perl::Critic::Exception', + description => 'An input/output problem.', + fields => [ qw< file_name errno > ], + alias => 'throw_io', + }, +); + +#----------------------------------------------------------------------------- + +Readonly::Array our @EXPORT_OK => qw< throw_io >; + +#----------------------------------------------------------------------------- + +1; + +#----------------------------------------------------------------------------- + +__END__ + +=pod + +=for stopwords + +=head1 NAME + +Perl::Critic::Exception::IO - A problem with input or output. + +=head1 DESCRIPTION + +The outside world can do nasty things to your poor, innocent code. + + +=head1 METHODS + +=over + +=item C + +Returns the name of the file that the problem was found with, if available. + + +=item C + +The value of C<$ERRNO>/C<$!> at the time the problem was found. + + +=back + + +=head1 AUTHOR + +Elliot Shank + +=head1 COPYRIGHT + +Copyright (c) 2007-2008 Elliot Shank. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module. + +=cut + +############################################################################## +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/Parse.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/Parse.pm new file mode 100644 index 0000000..16895ef --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Exception/Parse.pm @@ -0,0 +1,92 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Exception/Parse.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Exception::Parse; + +use 5.006001; +use strict; +use warnings; + +use English qw< -no_match_vars >; +use Carp qw< confess >; +use Readonly; + +use Perl::Critic::Utils qw< :characters >; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +use Exception::Class ( + 'Perl::Critic::Exception::Parse' => { + isa => 'Perl::Critic::Exception', + description => 'A problem parsing source code.', + fields => [ qw< file_name > ], + alias => 'throw_parse', + }, +); + +#----------------------------------------------------------------------------- + +Readonly::Array our @EXPORT_OK => qw< throw_parse >; + +#----------------------------------------------------------------------------- + +1; + +#----------------------------------------------------------------------------- + +__END__ + +=pod + +=for stopwords + +=head1 NAME + +Perl::Critic::Exception::Parse - The code doesn't look like code. + +=head1 DESCRIPTION + +There was a problem with PPI parsing source code. + + +=head1 METHODS + +=over + +=item C + +Returns the name of the file that the problem was found with, if available. + + +=back + + +=head1 AUTHOR + +Elliot Shank + +=head1 COPYRIGHT + +Copyright (c) 2008 Elliot Shank. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module. + +=cut + +############################################################################## +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/OptionsProcessor.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/OptionsProcessor.pm new file mode 100644 index 0000000..8793309 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/OptionsProcessor.pm @@ -0,0 +1,291 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/OptionsProcessor.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::OptionsProcessor; + +use 5.006001; +use strict; +use warnings; + +use English qw(-no_match_vars); + +use Perl::Critic::Exception::AggregateConfiguration; +use Perl::Critic::Exception::Configuration::Option::Global::ExtraParameter; +use Perl::Critic::Utils qw< + :booleans :characters :severities :data_conversion $DEFAULT_VERBOSITY +>; +use Perl::Critic::Utils::Constants qw< $PROFILE_STRICTNESS_DEFAULT >; +use Perl::Critic::Utils::DataConversion qw< dor >; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +sub new { + my ($class, %args) = @_; + my $self = bless {}, $class; + $self->_init( %args ); + return $self; +} + +#----------------------------------------------------------------------------- + +sub _init { + my ( $self, %args ) = @_; + + # Multi-value defaults + my $exclude = dor(delete $args{exclude}, $EMPTY); + $self->{_exclude} = [ words_from_string( $exclude ) ]; + my $include = dor(delete $args{include}, $EMPTY); + $self->{_include} = [ words_from_string( $include ) ]; + + # Single-value defaults + $self->{_force} = dor(delete $args{force}, $FALSE); + $self->{_only} = dor(delete $args{only}, $FALSE); + $self->{_profile_strictness} = + dor(delete $args{'profile-strictness'}, $PROFILE_STRICTNESS_DEFAULT); + $self->{_single_policy} = dor(delete $args{'single-policy'}, $EMPTY); + $self->{_severity} = dor(delete $args{severity}, $SEVERITY_HIGHEST); + $self->{_theme} = dor(delete $args{theme}, $EMPTY); + $self->{_top} = dor(delete $args{top}, $FALSE); + $self->{_verbose} = dor(delete $args{verbose}, $DEFAULT_VERBOSITY); + $self->{_criticism_fatal} = dor(delete $args{'criticism-fatal'}, $FALSE); + + $self->{_color} = dor(delete $args{color}, dor(delete $args{colour}, $TRUE)); + + # If there's anything left, complain. + _check_for_extra_options(%args); + + return $self; +} + +#----------------------------------------------------------------------------- + +sub _check_for_extra_options { + my %args = @_; + + if ( my @remaining = sort keys %args ){ + my $errors = Perl::Critic::Exception::AggregateConfiguration->new(); + + foreach my $option_name (@remaining) { + $errors->add_exception( + Perl::Critic::Exception::Configuration::Option::Global::ExtraParameter->new( + option_name => $option_name, + ) + ) + } + + $errors->rethrow(); + } + + return; +} + +#----------------------------------------------------------------------------- +# Public ACCESSOR methods + +sub severity { + my ($self) = @_; + return $self->{_severity}; +} + +#----------------------------------------------------------------------------- + +sub theme { + my ($self) = @_; + return $self->{_theme}; +} + +#----------------------------------------------------------------------------- + +sub exclude { + my ($self) = @_; + return $self->{_exclude}; +} + +#----------------------------------------------------------------------------- + +sub include { + my ($self) = @_; + return $self->{_include}; +} + +#----------------------------------------------------------------------------- + +sub only { + my ($self) = @_; + return $self->{_only}; +} + +#----------------------------------------------------------------------------- + +sub profile_strictness { + my ($self) = @_; + return $self->{_profile_strictness}; +} + +#----------------------------------------------------------------------------- + +sub single_policy { + my ($self) = @_; + return $self->{_single_policy}; +} + +#----------------------------------------------------------------------------- + +sub verbose { + my ($self) = @_; + return $self->{_verbose}; +} + +#----------------------------------------------------------------------------- + +sub color { + my ($self) = @_; + return $self->{_color}; +} + +#----------------------------------------------------------------------------- + +sub criticism_fatal { + my ($self) = @_; + return $self->{_criticism_fatal}; +} + +#----------------------------------------------------------------------------- + +sub force { + my ($self) = @_; + return $self->{_force}; +} + +#----------------------------------------------------------------------------- + +sub top { + my ($self) = @_; + return $self->{_top}; +} + + +1; + +__END__ + +#----------------------------------------------------------------------------- + +=pod + +=head1 NAME + +Perl::Critic::OptionsProcessor - The global configuration default values, combined with command-line values. + +=head1 DESCRIPTION + +This is a helper class that encapsulates the default parameters for +constructing a L object. There are no +user-serviceable parts here. + +=head1 CONSTRUCTOR + +=over 8 + +=item C< new( %DEFAULT_PARAMS ) > + +Returns a reference to a new C object. You +can override the coded defaults by passing in name-value pairs that +correspond to the methods listed below. + +This is usually only invoked by L, which +passes in the global values from a F<.perlcriticrc> file. This object +contains no information for individual Policies. + +=back + +=head1 METHODS + +=over 8 + +=item C< exclude() > + +Returns a reference to a list of the default exclusion patterns. If +there are no default exclusion patterns, then the list will be empty. + +=item C< force() > + +Returns the default value of the C flag (Either 1 or 0). + +=item C< include() > + +Returns a reference to a list of the default inclusion patterns. If +there are no default exclusion patterns, then the list will be empty. + +=item C< only() > + +Returns the default value of the C flag (Either 1 or 0). + +=item C< profile_strictness() > + +Returns the default value of C as an unvalidated +string. + +=item C< single_policy() > + +Returns the default C pattern. (As a string.) + +=item C< severity() > + +Returns the default C setting. (1..5). + +=item C< theme() > + +Returns the default C setting. (As a string). + +=item C< top() > + +Returns the default C setting. (Either 0 or a positive integer). + +=item C< verbose() > + +Returns the default C setting. (Either a number or format +string). + +=item C< color() > + +Returns the default C setting. (Either 1 or 0). + +=item C< criticism_fatal() > + +Returns the default C setting (Either 1 or 0). + +=back + +=head1 SEE ALSO + +L, L + +=head1 AUTHOR + +Jeffrey Ryan Thalhammer + +=head1 COPYRIGHT + +Copyright (c) 2005-2008 Jeffrey Ryan Thalhammer. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy.pm new file mode 100644 index 0000000..ef8ae9d --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy.pm @@ -0,0 +1,881 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Policy.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Policy; + +use 5.006001; +use strict; +use warnings; + +use English qw< -no_match_vars >; +use Readonly; + +use File::Spec (); +use String::Format qw< stringf >; + +use overload ( q<""> => 'to_string', cmp => '_compare' ); + +use Perl::Critic::Utils qw< + :characters + :booleans + :severities + :data_conversion + interpolate + is_integer + policy_long_name + policy_short_name + severity_to_number +>; +use Perl::Critic::Utils::DataConversion qw< dor >; +use Perl::Critic::Utils::POD qw< + get_module_abstract_for_module + get_raw_module_abstract_for_module +>; +use Perl::Critic::Exception::AggregateConfiguration; +use Perl::Critic::Exception::Configuration; +use Perl::Critic::Exception::Configuration::Option::Policy::ExtraParameter; +use Perl::Critic::Exception::Configuration::Option::Policy::ParameterValue; +use Perl::Critic::Exception::Fatal::PolicyDefinition + qw< throw_policy_definition >; +use Perl::Critic::PolicyConfig qw<>; +use Perl::Critic::PolicyParameter qw<>; +use Perl::Critic::Violation qw<>; + +use Exception::Class; # this must come after "use P::C::Exception::*" + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +Readonly::Scalar my $NO_LIMIT => 'no_limit'; + +#----------------------------------------------------------------------------- + +my $FORMAT = "%p\n"; #Default stringy format + +#----------------------------------------------------------------------------- + +sub new { + my ($class, %config) = @_; + + my $self = bless {}, $class; + + my $config_object; + if ($config{_config_object}) { + $config_object = $config{_config_object}; + } + else { + $config_object = + Perl::Critic::PolicyConfig->new( + $self->get_short_name(), + \%config, + ); + } + + $self->__set_config( $config_object ); + + my @parameters; + my $parameter_metadata_available = 0; + + if ( $class->can('supported_parameters') ) { + $parameter_metadata_available = 1; + @parameters = + map + { Perl::Critic::PolicyParameter->new($_) } + $class->supported_parameters(); + } + $self->{_parameter_metadata_available} = $parameter_metadata_available; + $self->{_parameters} = \@parameters; + + my $errors = Perl::Critic::Exception::AggregateConfiguration->new(); + foreach my $parameter ( @parameters ) { + eval { + $parameter->parse_and_validate_config_value( $self, $config_object ); + } + or do { + $errors->add_exception_or_rethrow($EVAL_ERROR); + }; + + $config_object->remove( $parameter->get_name() ); + } + + if ($parameter_metadata_available) { + $self->_validate_config_keys($errors, $config_object); + } + + if ( $errors->has_exceptions() ) { + $errors->rethrow(); + } + + return $self; +} + +#----------------------------------------------------------------------------- + +sub initialize_if_enabled { + return $TRUE; +} + +#----------------------------------------------------------------------------- + +sub _validate_config_keys { + my ( $self, $errors, $config ) = @_; + + for my $offered_param ( $config->get_parameter_names() ) { + $errors->add_exception( + Perl::Critic::Exception::Configuration::Option::Policy::ExtraParameter->new( + policy => $self->get_short_name(), + option_name => $offered_param, + source => undef, + ) + ); + } + + return; +} + +#----------------------------------------------------------------------------- + +sub __get_parameter_name { + my ( $self, $parameter ) = @_; + + return '_' . $parameter->get_name(); +} + +#----------------------------------------------------------------------------- + +sub __set_parameter_value { + my ( $self, $parameter, $value ) = @_; + + $self->{ $self->__get_parameter_name($parameter) } = $value; + + return; +} + +#----------------------------------------------------------------------------- + +sub __set_base_parameters { + my ($self) = @_; + + my $config = $self->__get_config(); + my $errors = Perl::Critic::Exception::AggregateConfiguration->new(); + + $self->_set_maximum_violations_per_document($errors); + + my $user_severity = $config->get_severity(); + if ( defined $user_severity ) { + my $normalized_severity = severity_to_number( $user_severity ); + $self->set_severity( $normalized_severity ); + } + + my $user_set_themes = $config->get_set_themes(); + if ( defined $user_set_themes ) { + my @set_themes = words_from_string( $user_set_themes ); + $self->set_themes( @set_themes ); + } + + my $user_add_themes = $config->get_add_themes(); + if ( defined $user_add_themes ) { + my @add_themes = words_from_string( $user_add_themes ); + $self->add_themes( @add_themes ); + } + + if ( $errors->has_exceptions() ) { + $errors->rethrow(); + } + + return; +} + +#----------------------------------------------------------------------------- + +sub _set_maximum_violations_per_document { + my ($self, $errors) = @_; + + my $config = $self->__get_config(); + + if ( $config->is_maximum_violations_per_document_unlimited() ) { + return; + } + + my $user_maximum_violations = + $config->get_maximum_violations_per_document(); + + if ( not is_integer($user_maximum_violations) ) { + $errors->add_exception( + new_parameter_value_exception( + 'maximum_violations_per_document', + $user_maximum_violations, + undef, + "does not look like an integer.\n" + ) + ); + + return; + } + elsif ( $user_maximum_violations < 0 ) { + $errors->add_exception( + new_parameter_value_exception( + 'maximum_violations_per_document', + $user_maximum_violations, + undef, + "is not greater than or equal to zero.\n" + ) + ); + + return; + } + + $self->set_maximum_violations_per_document( + $user_maximum_violations + ); + + return; +} + +#----------------------------------------------------------------------------- + +# Unparsed configuration, P::C::PolicyConfig. Compare with get_parameters(). +sub __get_config { + my ($self) = @_; + + return $self->{_config}; +} + +sub __set_config { + my ($self, $config) = @_; + + $self->{_config} = $config; + + return; +} + + #----------------------------------------------------------------------------- + +sub get_long_name { + my ($self) = @_; + + return policy_long_name(ref $self); +} + +#----------------------------------------------------------------------------- + +sub get_short_name { + my ($self) = @_; + + return policy_short_name(ref $self); +} + +#----------------------------------------------------------------------------- + +sub applies_to { + return qw(PPI::Element); +} + +#----------------------------------------------------------------------------- + +sub set_maximum_violations_per_document { + my ($self, $maximum_violations_per_document) = @_; + + $self->{_maximum_violations_per_document} = + $maximum_violations_per_document; + + return $self; +} + +#----------------------------------------------------------------------------- + +sub get_maximum_violations_per_document { + my ($self) = @_; + + return + exists $self->{_maximum_violations_per_document} + ? $self->{_maximum_violations_per_document} + : $self->default_maximum_violations_per_document(); +} + +#----------------------------------------------------------------------------- + +sub default_maximum_violations_per_document { + return; +} + +#----------------------------------------------------------------------------- + +sub set_severity { + my ($self, $severity) = @_; + $self->{_severity} = $severity; + return $self; +} + +#----------------------------------------------------------------------------- + +sub get_severity { + my ($self) = @_; + return $self->{_severity} || $self->default_severity(); +} + +#----------------------------------------------------------------------------- + +sub default_severity { + return $SEVERITY_LOWEST; +} + +#----------------------------------------------------------------------------- + +sub set_themes { + my ($self, @themes) = @_; + $self->{_themes} = [ sort @themes ]; + return $self; +} + +#----------------------------------------------------------------------------- + +sub get_themes { + my ($self) = @_; + return sort @{ $self->{_themes} } if defined $self->{_themes}; + return sort $self->default_themes(); +} + +#----------------------------------------------------------------------------- + +sub add_themes { + my ($self, @additional_themes) = @_; + #By hashifying the themes, we squish duplicates + my %merged = hashify( $self->get_themes(), @additional_themes); + $self->{_themes} = [ keys %merged]; + return $self; +} + +#----------------------------------------------------------------------------- + +sub default_themes { + return (); +} + +#----------------------------------------------------------------------------- + +sub get_abstract { + my ($self) = @_; + + return get_module_abstract_for_module( ref $self ); +} + +#----------------------------------------------------------------------------- + +sub get_raw_abstract { + my ($self) = @_; + + return get_raw_module_abstract_for_module( ref $self ); +} + +#----------------------------------------------------------------------------- + +sub parameter_metadata_available { + my ($self) = @_; + + return $self->{_parameter_metadata_available}; +} + +#----------------------------------------------------------------------------- + +sub get_parameters { + my ($self) = @_; + + return $self->{_parameters}; +} + +#----------------------------------------------------------------------------- + +sub violates { + my ($self) = @_; + + return throw_policy_definition + $self->get_short_name() . q/ does not implement violates()./; +} + +#----------------------------------------------------------------------------- + +sub violation { ##no critic(ArgUnpacking) + my ( $self, $desc, $expl, $elem ) = @_; + # HACK!! Use goto instead of an explicit call because P::C::V::new() uses caller() + my $sev = $self->get_severity(); + @_ = ('Perl::Critic::Violation', $desc, $expl, $elem, $sev ); + goto &Perl::Critic::Violation::new; +} + +#----------------------------------------------------------------------------- + +sub new_parameter_value_exception { + my ( $self, $option_name, $option_value, $source, $message_suffix ) = @_; + + return Perl::Critic::Exception::Configuration::Option::Policy::ParameterValue->new( + policy => $self->get_short_name(), + option_name => $option_name, + option_value => $option_value, + source => $source, + message_suffix => $message_suffix + ); +} + + +#----------------------------------------------------------------------------- + +## no critic (Subroutines::RequireFinalReturn) +sub throw_parameter_value_exception { + my ( $self, $option_name, $option_value, $source, $message_suffix ) = @_; + + $self->new_parameter_value_exception( + $option_name, $option_value, $source, $message_suffix + ) + ->throw(); +} +## use critic + + +#----------------------------------------------------------------------------- + +# Static methods. + +sub set_format { return $FORMAT = $_[0] } ##no critic(ArgUnpacking) +sub get_format { return $FORMAT } + +#----------------------------------------------------------------------------- + +sub to_string { + my ($self, @args) = @_; + + # Wrap the more expensive ones in sub{} to postpone evaluation + my %fspec = ( + 'P' => sub { $self->get_long_name() }, + 'p' => sub { $self->get_short_name() }, + 'a' => sub { dor($self->get_abstract(), $EMPTY) }, + 'O' => sub { $self->_format_parameters(@_) }, + 'U' => sub { $self->_format_lack_of_parameter_metadata(@_) }, + 'S' => sub { $self->default_severity() }, + 's' => sub { $self->get_severity() }, + 'T' => sub { join $SPACE, $self->default_themes() }, + 't' => sub { join $SPACE, $self->get_themes() }, + 'V' => sub { dor( $self->default_maximum_violations_per_document(), $NO_LIMIT ) }, + 'v' => sub { dor( $self->get_maximum_violations_per_document(), $NO_LIMIT ) }, + ); + return stringf($FORMAT, %fspec); +} + +sub _format_parameters { + my ($self, $format) = @_; + + return $EMPTY if not $self->parameter_metadata_available(); + + my $separator; + if ($format) { + $separator = $EMPTY; + } else { + $separator = $SPACE; + $format = '%n'; + } + + return + join + $separator, + map { $_->to_formatted_string($format) } @{ $self->get_parameters() }; +} + +sub _format_lack_of_parameter_metadata { + my ($self, $message) = @_; + + return $EMPTY if $self->parameter_metadata_available(); + return interpolate($message) if $message; + + return + 'Cannot programmatically discover what parameters this policy takes.'; +} + +sub _get_source_file { + my ($self) = @_; + + my $relative_path = + File::Spec->catfile( split m/::/xms, ref $self ) . '.pm'; + + return $INC{$relative_path}; +} + + +#----------------------------------------------------------------------------- +# Apparently, some perls do not implicitly stringify overloading +# objects before doing a comparison. This causes a couple of our +# sorting tests to fail. To work around this, we overload C to +# do it explicitly. +# +# 20060503 - More information: This problem has been traced to +# Test::Simple versions <= 0.60, not perl itself. Upgrading to +# Test::Simple v0.62 will fix the problem. But rather than forcing +# everyone to upgrade, I have decided to leave this workaround in +# place. + +sub _compare { return "$_[0]" cmp "$_[1]" } + +1; + +__END__ + +#----------------------------------------------------------------------------- + +=pod + +=head1 NAME + +Perl::Critic::Policy - Base class for all Policy modules. + + +=head1 DESCRIPTION + +Perl::Critic::Policy is the abstract base class for all Policy +objects. If you're developing your own Policies, your job is to +implement and override its methods in a subclass. To work with the +L engine, your implementation must behave as described +below. For a detailed explanation on how to make new Policy modules, +please see the L document included in this +distribution. + + +=head1 METHODS + +=over + +=item C<< new(key1 => value1, key2 => value2 ... ) >> + +Returns a reference to a new subclass of Perl::Critic::Policy. If your +Policy requires any special arguments, they will be passed in here as +key-value pairs. Users of L can specify these in their +config file. Unless you override the C method, the default +method simply returns a reference to an empty hash that has been +blessed into your subclass. However, you really should not override +this; override C instead. + +This constructor is always called regardless of whether the user has +enabled this Policy or not. + + +=item C<< initialize_if_enabled( { key1 => value1, key2 => value2 ... } ) >> + +This receives the same parameters as C, but as a reference to a +hash, and is only invoked if this Policy is enabled by the user. +Thus, this is the preferred place for subclasses to do any +initialization. + +Implementations of this method should return a boolean value +indicating whether the Policy should continue to be enabled. For most +subclasses, this will always be C<$TRUE>. Policies that depend upon +external modules or other system facilities that may or may not be +available should test for the availability of these dependencies and +return C<$FALSE> if they are not. + + +=item C< violates( $element, $document ) > + +Given a L and a L, returns one or more +L objects if the C<$element> violates this +Policy. If there are no violations, then it returns an empty list. +If the Policy encounters an exception, then it should C with an +error message and let the caller decide how to handle it. + +C is an abstract method and it will abort if you attempt +to invoke it directly. It is the heart of all Policy modules, and +your subclass B override this method. + + +=item C< violation( $description, $explanation, $element ) > + +Returns a reference to a new C object. The +arguments are a description of the violation (as string), an +explanation for the policy (as string) or a series of page numbers in +PBP (as an ARRAY ref), a reference to the L element that caused +the violation. + +These are the same as the constructor to L, +but without the severity. The Policy itself knows the severity. + + +=item C< new_parameter_value_exception( $option_name, $option_value, $source, $message_suffix ) > + +Create a +L +for this Policy. + + +=item C< throw_parameter_value_exception( $option_name, $option_value, $source, $message_suffix ) > + +Create and throw a +L. +Useful in parameter parser implementations. + + +=item C< get_long_name() > + +Return the full package name of this policy. + + +=item C< get_short_name() > + +Return the name of this policy without the "Perl::Critic::Policy::" +prefix. + + +=item C< applies_to() > + +Returns a list of the names of PPI classes that this Policy cares +about. By default, the result is C. Overriding this +method in Policy subclasses should lead to significant performance +increases. + + +=item C< default_maximum_violations_per_document() > + +Returns the default maximum number of violations for this policy to +report per document. By default, this not defined, but subclasses may +override this. + + +=item C< get_maximum_violations_per_document() > + +Returns the maximum number of violations this policy will report for a +single document. If this is not defined, then there is no limit. If +L has not been invoked, then +L is returned. + + +=item C< set_maximum_violations_per_document() > + +Specify the maximum violations that this policy should report for a +document. + + +=item C< default_severity() > + +Returns the default severity for violating this Policy. See the +C<$SEVERITY> constants in L for an enumeration of +possible severity values. By default, this method returns +C<$SEVERITY_LOWEST>. Authors of Perl::Critic::Policy subclasses +should override this method to return a value that they feel is +appropriate for their Policy. In general, Polices that are widely +accepted or tend to prevent bugs should have a higher severity than +those that are more subjective or cosmetic in nature. + + +=item C< get_severity() > + +Returns the severity of violating this Policy. If the severity has +not been explicitly defined by calling C, then the +C is returned. See the C<$SEVERITY> constants in +L for an enumeration of possible severity values. + + +=item C< set_severity( $N ) > + +Sets the severity for violating this Policy. Clients of +Perl::Critic::Policy objects can call this method to assign a +different severity to the Policy if they don't agree with the +C. See the C<$SEVERITY> constants in +L for an enumeration of possible values. + + +=item C< default_themes() > + +Returns a sorted list of the default themes associated with this +Policy. The default method returns an empty list. Policy authors +should override this method to return a list of themes that are +appropriate for their policy. + + +=item C< get_themes() > + +Returns a sorted list of the themes associated with this Policy. If +you haven't added themes or set the themes explicitly, this method +just returns the default themes. + + +=item C< set_themes( @THEME_LIST ) > + +Sets the themes associated with this Policy. Any existing themes are +overwritten. Duplicate themes will be removed. + + +=item C< add_themes( @THEME_LIST ) > + +Appends additional themes to this Policy. Any existing themes are +preserved. Duplicate themes will be removed. + + +=item C< get_abstract() > + +Retrieve the abstract for this policy (the part of the NAME section of +the POD after the module name), if it is available. + + +=item C< get_raw_abstract() > + +Retrieve the abstract for this policy (the part of the NAME section of +the POD after the module name), if it is available, in the unparsed +form. + + +=item C< parameter_metadata_available() > + +Returns whether information about the parameters is available. + + +=item C< get_parameters() > + +Returns a reference to an array containing instances of +L. + +Note that this will return an empty list if the parameters for this +policy are unknown. In order to differentiate between this +circumstance and the one where this policy does not take any +parameters, it is necessary to call C. + + +=item C< get_parameter( $parameter_name ) > + +Returns the L with the specified name. + + +=item C + +Class method. Sets the format for all Policy objects when they are +evaluated in string context. The default is C<"%p\n">. See +L<"OVERLOADS"> for formatting options. + + +=item C + +Class method. Returns the current format for all Policy objects when +they are evaluated in string context. + + +=item C + +Returns a string representation of the policy. The content of the +string depends on the current value of the C<$FORMAT> package +variable. See L<"OVERLOADS"> for the details. + + +=back + + +=head1 DOCUMENTATION + +When your Policy module first Cs L, it +will try and extract the DESCRIPTION section of your Policy module's +POD. This information is displayed by Perl::Critic if the verbosity +level is set accordingly. Therefore, please include a DESCRIPTION +section in the POD for any Policy modules that you author. Thanks. + + +=head1 OVERLOADS + +Perl::Critic::Violation overloads the C<""> operator to produce neat +little messages when evaluated in string context. The format depends +on the current value of the C<$FORMAT> package variable. + +Formats are a combination of literal and escape characters similar to +the way C works. If you want to know the specific formatting +capabilities, look at L. Valid escape characters are: + + +=over + +=item C<%P> + +Name of the Policy module. + + +=item C<%p> + +Name of the Policy without the C prefix. + + +=item C<%a> + +The policy abstract. + + +=item C<%O> + +List of supported policy parameters. Takes an option of a format +string for L. +For example, this can be used like C<%{%n - %d\n}O> to get a list of +parameter names followed by their descriptions. + + +=item C<%U> + +A message stating that the parameters for the policy are unknown if +C returns false. Takes an option of +what the message should be, which defaults to "Cannot programmatically +discover what parameters this policy takes.". The value of this +option is interpolated in order to expand the standard escape +sequences (C<\n>, C<\t>, etc.). + + +=item C<%S> + +The default severity level of the policy. + + +=item C<%s> + +The current severity level of the policy. + + +=item C<%T> + +The default themes for the policy. + + +=item C<%t> + +The current themes for the policy. + + +=item C<%V> + +The default maximum number of violations per document of the policy. + + +=item C<%v> + +The current maximum number of violations per document of the policy. + + +=back + + +=head1 AUTHOR + +Jeffrey Ryan Thalhammer + + +=head1 COPYRIGHT + +Copyright (c) 2005-2008 Jeffrey Ryan Thalhammer. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitBooleanGrep.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitBooleanGrep.pm new file mode 100644 index 0000000..fe1d8c9 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitBooleanGrep.pm @@ -0,0 +1,156 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitBooleanGrep.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Policy::BuiltinFunctions::ProhibitBooleanGrep; + +use 5.006001; +use strict; +use warnings; +use Readonly; + +use Perl::Critic::Utils qw{ :severities :classification hashify }; +use base 'Perl::Critic::Policy'; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +Readonly::Scalar my $DESC => q{"grep" used in boolean context}; +Readonly::Scalar my $EXPL => [71,72]; + +Readonly::Hash my %POSTFIX_CONDITIONALS => hashify( qw(if unless while until) ); +Readonly::Hash my %BOOLEAN_OPERATORS => hashify( qw(&& || ! not or and)); + +#----------------------------------------------------------------------------- + +sub supported_parameters { return () } +sub default_severity { return $SEVERITY_LOW } +sub default_themes { return qw( core pbp performance ) } +sub applies_to { return 'PPI::Token::Word' } + +#----------------------------------------------------------------------------- + +sub violates { + my ( $self, $elem, undef ) = @_; + + return if $elem ne 'grep'; + return if not is_function_call($elem); + return if not _is_in_boolean_context($elem); + + return $self->violation( $DESC, $EXPL, $elem ); +} + +#----------------------------------------------------------------------------- + +sub _is_in_boolean_context { + my ($token) = @_; + + return _does_prev_sibling_cause_boolean($token) || _does_parent_cause_boolean($token); +} + +sub _does_prev_sibling_cause_boolean { + my ($token) = @_; + + my $prev = $token->sprevious_sibling; + return if !$prev; + return 1 if $prev->isa('PPI::Token::Word') and $POSTFIX_CONDITIONALS{$prev}; + return if not ($prev->isa('PPI::Token::Operator') and $BOOLEAN_OPERATORS{$prev}); + my $next = $token->snext_sibling; + return 1 if not $next; # bizarre: grep with no arguments + + # loose heuristic: unparenthesized grep has no following non-boolean operators + return 1 if not $next->isa('PPI::Structure::List'); + + $next = $next->snext_sibling; + return 1 if not $next; + return 1 if $next->isa('PPI::Token::Operator') and $BOOLEAN_OPERATORS{$next}; + return; +} + +sub _does_parent_cause_boolean { + my ($token) = @_; + + my $prev = $token->sprevious_sibling; + return if $prev; + my $parent = $token->statement->parent; + for (my $node = $parent; $node; $node = $node->parent) { ##no critic 'CStyleForLoop' + next if $node->isa('PPI::Structure::List'); + return 1 if $node->isa('PPI::Structure::Condition'); + } + + return; +} + +1; + +__END__ + +#----------------------------------------------------------------------------- + +=pod + +=head1 NAME + +Perl::Critic::Policy::BuiltinFunctions::ProhibitBooleanGrep - Use C instead of C in boolean context. + +=head1 AFFILIATION + +This Policy is part of the core L distribution. + + +=head1 DESCRIPTION + +Using C in boolean context is a common idiom for checking if any +elements in a list match a condition. This works because boolean context is a +subset of scalar context, and grep returns the number of matches in scalar +context. A non-zero number of matches means a match. + +But consider the case of a long array where the first element is a match. +Boolean C still checks all of the rest of the elements needlessly. +Instead, a better solution is to use the C function from +L, which short-circuits after the first successful match to +save time. + + +=head1 CONFIGURATION + +This Policy is not configurable except for the standard options. + + +=head1 CAVEATS + +The algorithm for detecting boolean context takes a LOT of shortcuts. There +are lots of known false negatives. But, I was conservative in writing this, +so I hope there are no false positives. + +=head1 AUTHOR + +Chris Dolan + +=head1 CREDITS + +Initial development of this policy was supported by a grant from the Perl +Foundation. + +=head1 COPYRIGHT + +Copyright (c) 2007-2008 Chris Dolan. Many rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitComplexMappings.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitComplexMappings.pm new file mode 100644 index 0000000..845c53d --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitComplexMappings.pm @@ -0,0 +1,146 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitComplexMappings.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Policy::BuiltinFunctions::ProhibitComplexMappings; + +use 5.006001; +use strict; +use warnings; +use Readonly; + +use Perl::Critic::Utils qw{ :severities :classification }; +use base 'Perl::Critic::Policy'; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +Readonly::Scalar my $DESC => q{Map blocks should have a single statement}; +Readonly::Scalar my $EXPL => [ 113 ]; + +#----------------------------------------------------------------------------- + +sub supported_parameters { + return ( + { + name => 'max_statements', + description => + 'The maximum number of statements to allow within a map block.', + default_string => '1', + behavior => 'integer', + integer_minimum => 1, + }, + ); +} + +sub default_severity { return $SEVERITY_MEDIUM } +sub default_themes { return qw( core pbp maintenance complexity) } +sub applies_to { return 'PPI::Token::Word' } + +#----------------------------------------------------------------------------- + +sub violates { + my ( $self, $elem, undef ) = @_; + + return if $elem ne 'map'; + return if ! is_function_call($elem); + + my $sib = $elem->snext_sibling(); + return if !$sib; + + my $arg = $sib; + if ( $arg->isa('PPI::Structure::List') ) { + $arg = $arg->schild(0); + # Forward looking: PPI might change in v1.200 so schild(0) is a PPI::Statement::Expression + if ( $arg && $arg->isa('PPI::Statement::Expression') ) { + $arg = $arg->schild(0); + } + } + # If it's not a block, it's an expression-style map, which is only one statement by definition + return if !$arg; + return if !$arg->isa('PPI::Structure::Block'); + + # If we get here, we found a sort with a block as the first arg + return if $self->{_max_statements} >= $arg->schildren() + && 0 == grep {$_->isa('PPI::Statement::Compound')} $arg->schildren(); + + # more than one child statements + return $self->violation( $DESC, $EXPL, $elem ); +} + +1; + +#----------------------------------------------------------------------------- + +__END__ + +=pod + +=head1 NAME + +Perl::Critic::Policy::BuiltinFunctions::ProhibitComplexMappings - Map blocks should have a single statement. + +=head1 AFFILIATION + +This Policy is part of the core L distribution. + + +=head1 DESCRIPTION + +The map function can be confusing to novices in the best of +circumstances. Mappings with multiple statements are even worse. +They're also a maintainer's nightmare because any added complexity +decreases readability precipitously. Why? Because map is +traditionally a one-liner converting one array to another. Trying to +cram lots of functionality into a one-liner is a bad idea in general. + +The best solutions to a complex mapping are: 1) write a subroutine +that performs the manipulation and call that from map; 2) rewrite the +map as a for loop. + +=head1 CAVEATS + +This policy currently misses some compound statements inside of the +map. For example, the following code incorrectly does not trigger a +violation: + + map { do { foo(); bar() } } @list + +=head1 CONFIGURATION + +By default this policy flags any mappings with more than one +statement. While we do not recommend it, you can increase this limit +as follows in a F<.perlcriticrc> file: + + [BuiltinFunctions::ProhibitComplexMappings] + max_statements = 2 + +=head1 AUTHOR + +Chris Dolan + +=head1 CREDITS + +Initial development of this policy was supported by a grant from the Perl Foundation. + +=head1 COPYRIGHT + +Copyright (C) 2007 Chris Dolan. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitLvalueSubstr.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitLvalueSubstr.pm new file mode 100644 index 0000000..973618d --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitLvalueSubstr.pm @@ -0,0 +1,100 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitLvalueSubstr.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Policy::BuiltinFunctions::ProhibitLvalueSubstr; + +use 5.006001; +use strict; +use warnings; +use Readonly; + +use Perl::Critic::Utils qw{ :severities :classification }; +use base 'Perl::Critic::Policy'; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +Readonly::Scalar my $DESC => q{Lvalue form of "substr" used}; +Readonly::Scalar my $EXPL => [ 165 ]; + +#----------------------------------------------------------------------------- + +sub supported_parameters { return () } +sub default_severity { return $SEVERITY_MEDIUM } +sub default_themes { return qw( core maintenance pbp ) } +sub applies_to { return 'PPI::Token::Word' } + +#----------------------------------------------------------------------------- + +sub violates { + my ($self, $elem, undef) = @_; + + return if $elem ne 'substr'; + return if ! is_function_call($elem); + + my $sib = $elem; + while ($sib = $sib->snext_sibling()) { + if ( $sib->isa( 'PPI::Token::Operator') && $sib eq q{=} ) { + return $self->violation( $DESC, $EXPL, $sib ); + } + } + return; #ok! +} + +1; + +#----------------------------------------------------------------------------- + +__END__ + +=pod + +=head1 NAME + +Perl::Critic::Policy::BuiltinFunctions::ProhibitLvalueSubstr - Use 4-argument C instead of writing C. + +=head1 AFFILIATION + +This Policy is part of the core L distribution. + + +=head1 DESCRIPTION + +Conway discourages the use of C as an lvalue, instead +recommending that the 4-argument version of C be used instead. + + substr($something, 1, 2) = $newvalue; # not ok + substr($something, 1, 2, $newvalue); # ok + + +=head1 CONFIGURATION + +This Policy is not configurable except for the standard options. + + +=head1 AUTHOR + +Graham TerMarsch + +=head1 COPYRIGHT + +Copyright (C) 2005-2007 Graham TerMarsch. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitReverseSortBlock.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitReverseSortBlock.pm new file mode 100644 index 0000000..cdb4f5e --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitReverseSortBlock.pm @@ -0,0 +1,135 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitReverseSortBlock.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Policy::BuiltinFunctions::ProhibitReverseSortBlock; + +use 5.006001; +use strict; +use warnings; +use Readonly; + +use Perl::Critic::Utils qw{ :severities :classification }; +use base 'Perl::Critic::Policy'; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +Readonly::Scalar my $DESC => q{Forbid $b before $a in sort blocks}; ## no critic (Interpolation) +Readonly::Scalar my $EXPL => [ 152 ]; + +#----------------------------------------------------------------------------- + +sub supported_parameters { return () } +sub default_severity { return $SEVERITY_LOWEST } +sub default_themes { return qw(core pbp cosmetic) } +sub applies_to { return 'PPI::Token::Word' } + +#----------------------------------------------------------------------------- + +sub violates { + my ($self, $elem, $doc) = @_; + + return if $elem ne 'sort'; + return if ! is_function_call($elem); + + my $sib = $elem->snext_sibling(); + return if !$sib; + + my $arg = $sib; + if ( $arg->isa('PPI::Structure::List') ) { + $arg = $arg->schild(0); + # Forward looking: PPI might change in v1.200 so schild(0) is a PPI::Statement::Expression + if ( $arg && $arg->isa('PPI::Statement::Expression') ) { + $arg = $arg->schild(0); + } + } + return if !$arg || !$arg->isa('PPI::Structure::Block'); + + # If we get here, we found a sort with a block as the first arg + + # Look at each statement in the block separately. + # $a is +1, $b is -1, sum should always be >= 0. + # This may go badly if there are conditionals or loops or other + # sub-statements... + for my $statement ($arg->children) { + my @sort_vars = $statement =~ m/\$([ab])\b/gxms; + my $count = 0; + for my $sort_var (@sort_vars) { + if ($sort_var eq 'a') { + $count++; + } else { + $count--; + if ($count < 0) { + # Found too many C<$b>s too early + my $sev = $self->get_severity(); + return $self->violation( $DESC, $EXPL, $elem, $sev ); + } + } + } + } + return; #ok +} + +1; + +#----------------------------------------------------------------------------- + +__END__ + +=pod + +=head1 NAME + +Perl::Critic::Policy::BuiltinFunctions::ProhibitReverseSortBlock - Forbid $b before $a in sort blocks. + +=head1 AFFILIATION + +This Policy is part of the core L distribution. + + +=head1 DESCRIPTION + +Conway says that it is much clearer to use C than to flip C<$a> and +C<$b> around in a C block. He also suggests that, in newer perls, +C is specifically looked for and optimized, and in the case of a +simple reversed string C, using C with a C with no block +is faster even in old perls. + + my @foo = sort { $b cmp $a } @bar; #not ok + my @foo = reverse sort @bar; #ok + + my @foo = sort { $b <=> $a } @bar; #not ok + my @foo = reverse sort { $a <=> $b } @bar; #ok + + +=head1 CONFIGURATION + +This Policy is not configurable except for the standard options. + + +=head1 AUTHOR + +Chris Dolan + +=head1 COPYRIGHT + +Copyright (C) 2006 Chris Dolan. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitSleepViaSelect.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitSleepViaSelect.pm new file mode 100644 index 0000000..ca68916 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitSleepViaSelect.pm @@ -0,0 +1,110 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitSleepViaSelect.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Policy::BuiltinFunctions::ProhibitSleepViaSelect; + +use 5.006001; +use strict; +use warnings; +use Readonly; + +use Perl::Critic::Utils qw{ :severities :classification :ppi }; +use base 'Perl::Critic::Policy'; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +Readonly::Scalar my $DESC => q{"select" used to emulate "sleep"}; +Readonly::Scalar my $EXPL => [168]; +Readonly::Scalar my $UNDEFS_IN_SLEEP_SELECT => 3; + +#----------------------------------------------------------------------------- + +sub supported_parameters { return () } +sub default_severity { return $SEVERITY_HIGHEST } +sub default_themes { return qw( core pbp bugs ) } +sub applies_to { return 'PPI::Token::Word' } + +#----------------------------------------------------------------------------- + +sub violates { + my ($self, $elem, undef) = @_; + + return if ($elem ne 'select'); + return if ! is_function_call($elem); + + if ( + $UNDEFS_IN_SLEEP_SELECT + == grep { $_->[0] eq 'undef' } parse_arg_list($elem) + ) { + return $self->violation( $DESC, $EXPL, $elem ); + } + return; #ok! +} + +1; + +__END__ + +#----------------------------------------------------------------------------- + +=pod + +=head1 NAME + +Perl::Critic::Policy::BuiltinFunctions::ProhibitSleepViaSelect - Use L instead of something like C. + +=head1 AFFILIATION + +This Policy is part of the core L distribution. + + +=head1 DESCRIPTION + +Conway discourages the use of C for performing non-integer +sleeps. Although documented in L, it's something that +generally requires the reader to read C to figure +out what it should be doing. Instead, Conway recommends that you use +the C module when you want to sleep. + + select undef, undef, undef, 0.25; # not ok + + use Time::HiRes; + sleep( 0.25 ); # ok + + +=head1 CONFIGURATION + +This Policy is not configurable except for the standard options. + + +=head1 SEE ALSO + +L. + +=head1 AUTHOR + +Graham TerMarsch + +=head1 COPYRIGHT + +Copyright (C) 2005-2007 Graham TerMarsch. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitStringyEval.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitStringyEval.pm new file mode 100644 index 0000000..cb56bb4 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitStringyEval.pm @@ -0,0 +1,106 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitStringyEval.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Policy::BuiltinFunctions::ProhibitStringyEval; + +use 5.006001; +use strict; +use warnings; +use Readonly; + +use Perl::Critic::Utils qw{ :severities :classification :ppi }; +use base 'Perl::Critic::Policy'; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +Readonly::Scalar my $DESC => q{Expression form of "eval"}; +Readonly::Scalar my $EXPL => [ 161 ]; + +#----------------------------------------------------------------------------- + +sub supported_parameters { return () } +sub default_severity { return $SEVERITY_HIGHEST } +sub default_themes { return qw( core pbp bugs ) } +sub applies_to { return 'PPI::Token::Word' } + +#----------------------------------------------------------------------------- + +sub violates { + my ( $self, $elem, undef ) = @_; + + return if $elem ne 'eval'; + return if ! is_function_call($elem); + + my $arg = first_arg($elem); + return if !$arg; + return if $arg->isa('PPI::Structure::Block'); + + return $self->violation( $DESC, $EXPL, $elem ); +} + +1; + +__END__ + +#----------------------------------------------------------------------------- + +=pod + +=head1 NAME + +Perl::Critic::Policy::BuiltinFunctions::ProhibitStringyEval - Write C instead of C. + +=head1 AFFILIATION + +This Policy is part of the core L distribution. + + +=head1 DESCRIPTION + +The string form of C is recompiled every time it is executed, +whereas the block form is only compiled once. Also, the string form +doesn't give compile-time warnings. + + eval "print $foo"; #not ok + eval {print $foo}; #ok + + +=head1 CONFIGURATION + +This Policy is not configurable except for the standard options. + + +=head1 SEE ALSO + +L + +L + +=head1 AUTHOR + +Jeffrey Ryan Thalhammer + +=head1 COPYRIGHT + +Copyright (c) 2005-2008 Jeffrey Ryan Thalhammer. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitStringySplit.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitStringySplit.pm new file mode 100644 index 0000000..d7217d7 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitStringySplit.pm @@ -0,0 +1,116 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitStringySplit.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Policy::BuiltinFunctions::ProhibitStringySplit; + +use 5.006001; +use strict; +use warnings; +use Readonly; + +use Perl::Critic::Utils qw{ :characters :severities :classification :ppi }; +use base 'Perl::Critic::Policy'; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +Readonly::Scalar my $DESC => q{String delimiter used with "split"}; +Readonly::Scalar my $EXPL => q{Express it as a regex instead}; + +#----------------------------------------------------------------------------- + +sub supported_parameters { return () } +sub default_severity { return $SEVERITY_LOW } +sub default_themes { return qw(core pbp cosmetic) } +sub applies_to { return 'PPI::Token::Word' } + +#----------------------------------------------------------------------------- + +sub violates { + my ( $self, $elem, undef ) = @_; + + return if $elem ne 'split'; + return if ! is_function_call($elem); + + my @args = parse_arg_list($elem); + my $pattern = @args ? $args[0]->[0] : return; + + if ( $pattern->isa('PPI::Token::Quote') && $pattern->string() ne $SPACE ) { + return $self->violation( $DESC, $EXPL, $elem ); + } + + return; #ok +} + + +1; + +__END__ + +#----------------------------------------------------------------------------- + +=pod + +=head1 NAME + +Perl::Critic::Policy::BuiltinFunctions::ProhibitStringySplit - Write C instead of C. + +=head1 AFFILIATION + +This Policy is part of the core L distribution. + + +=head1 DESCRIPTION + +The C function always interprets the PATTERN argument as a +regular expression, even if you specify it as a string. This causes +much confusion if the string contains regex metacharacters. So for +clarity, always express the PATTERN argument as a regex. + + $string = 'Fred|Barney'; + @names = split '|', $string; #not ok, is ('F', 'r', 'e', 'd', '|', 'B', 'a' ...) + @names = split m/[|]/, $string; #ok, is ('Fred', Barney') + +When the PATTERN is a single space the C function has special +behavior, so Perl::Critic forgives that usage. See C<"perldoc -f +split"> for more information. + + +=head1 CONFIGURATION + +This Policy is not configurable except for the standard options. + + +=head1 SEE ALSO + +L + +L + +=head1 AUTHOR + +Jeffrey Ryan Thalhammer + +=head1 COPYRIGHT + +Copyright (c) 2005-2008 Jeffrey Ryan Thalhammer. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitUniversalCan.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitUniversalCan.pm new file mode 100644 index 0000000..b44d3d9 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitUniversalCan.pm @@ -0,0 +1,107 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitUniversalCan.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Policy::BuiltinFunctions::ProhibitUniversalCan; + +use 5.006001; +use strict; +use warnings; +use Readonly; + +use Perl::Critic::Utils qw{ :severities :classification }; +use base 'Perl::Critic::Policy'; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +Readonly::Scalar my $DESC => q{UNIVERSAL::can should not be used as a function}; +Readonly::Scalar my $EXPL => q{Use eval{$obj->can($pkg)} instead}; ##no critic 'RequireInterp'; + +#----------------------------------------------------------------------------- + +sub supported_parameters { return () } +sub default_severity { return $SEVERITY_MEDIUM } +sub default_themes { return qw( core maintenance ) } +sub applies_to { return 'PPI::Token::Word' } + +#----------------------------------------------------------------------------- + +sub violates { + my ( $self, $elem, undef ) = @_; + return if !($elem eq 'can' || $elem eq 'UNIVERSAL::can'); + return if ! is_function_call($elem); # this also permits 'use UNIVERSAL::can;' + + return $self->violation( $DESC, $EXPL, $elem ); +} + + +1; + +__END__ + +#----------------------------------------------------------------------------- + +=pod + +=head1 NAME + +Perl::Critic::Policy::BuiltinFunctions::ProhibitUniversalCan - Write C<< eval { $foo->can($name) } >> instead of C. + +=head1 AFFILIATION + +This Policy is part of the core L distribution. + + +=head1 DESCRIPTION + + print UNIVERSAL::can($obj, 'Foo::Bar') ? 'yes' : 'no'; #not ok + print eval { $obj->can('Foo::Bar') } ? 'yes' : 'no'; #ok + +As of Perl 5.9.3, the use of UNIVERSAL::can as a function has been +deprecated and the method form is preferred instead. Formerly, the +functional form was recommended because it gave valid results even +when the object was C or an unblessed scalar. However, the +functional form makes it impossible for packages to override C, +a technique which is crucial for implementing mock objects and some +facades. + +See the CPAN module L for a more thorough discussion +of this topic. + + +=head1 CONFIGURATION + +This Policy is not configurable except for the standard options. + + +=head1 SEE ALSO + +L + +=head1 AUTHOR + +Chris Dolan + +=head1 COPYRIGHT + +Copyright (c) 2006-2008 Chris Dolan. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitUniversalIsa.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitUniversalIsa.pm new file mode 100644 index 0000000..8363ce2 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitUniversalIsa.pm @@ -0,0 +1,110 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitUniversalIsa.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Policy::BuiltinFunctions::ProhibitUniversalIsa; + +use 5.006001; +use strict; +use warnings; +use Readonly; + +use Perl::Critic::Utils qw{ :severities :classification }; +use base 'Perl::Critic::Policy'; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +Readonly::Scalar my $DESC => q{UNIVERSAL::isa should not be used as a function}; +Readonly::Scalar my $EXPL => q{Use eval{$obj->isa($pkg)} instead}; ##no critic 'RequireInterp'; + +#----------------------------------------------------------------------------- + +sub supported_parameters { return () } +sub default_severity { return $SEVERITY_MEDIUM } +sub default_themes { return qw( core maintenance ) } +sub applies_to { return 'PPI::Token::Word' } + +#----------------------------------------------------------------------------- + +sub violates { + my ( $self, $elem, undef ) = @_; + return if !($elem eq 'isa' || $elem eq 'UNIVERSAL::isa'); + return if ! is_function_call($elem); # this also permits 'use UNIVERSAL::isa;' + + return $self->violation( $DESC, $EXPL, $elem ); +} + + +1; + +__END__ + +#----------------------------------------------------------------------------- + +=pod + +=head1 NAME + +Perl::Critic::Policy::BuiltinFunctions::ProhibitUniversalIsa - Write C<< eval { $foo->isa($pkg) } >> instead of C. + +=head1 AFFILIATION + +This Policy is part of the core L distribution. + + +=head1 DESCRIPTION + + print UNIVERSAL::isa($obj, 'Foo::Bar') ? 'yes' : 'no'; #not ok + print eval { $obj->isa('Foo::Bar') } ? 'yes' : 'no'; #ok + +As of Perl 5.9.3, the use of C as a function has been +deprecated and the method form is preferred instead. Formerly, the +functional form was recommended because it gave valid results even +when the object was C or an unblessed scalar. However, the +functional form makes it impossible for packages to override C, +a technique which is crucial for implementing mock objects and some +facades. + +Another alternative to UNIVERSAL::isa is the C<_INSTANCE> method of +Param::Util, which is faster. + +See the CPAN module L for an incendiary discussion of +this topic. + + +=head1 CONFIGURATION + +This Policy is not configurable except for the standard options. + + +=head1 SEE ALSO + +L + +=head1 AUTHOR + +Chris Dolan + +=head1 COPYRIGHT + +Copyright (c) 2006-2008 Chris Dolan. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitVoidGrep.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitVoidGrep.pm new file mode 100644 index 0000000..03561fc --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitVoidGrep.pm @@ -0,0 +1,104 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitVoidGrep.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Policy::BuiltinFunctions::ProhibitVoidGrep; + +use 5.006001; +use strict; +use warnings; +use Readonly; + +use Perl::Critic::Utils qw{ :severities :classification is_in_void_context }; +use base 'Perl::Critic::Policy'; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +Readonly::Scalar my $DESC => q{"grep" used in void context}; +Readonly::Scalar my $EXPL => q{Use a "for" loop instead}; + +#----------------------------------------------------------------------------- + +sub supported_parameters { return () } +sub default_severity { return $SEVERITY_MEDIUM } +sub default_themes { return qw( core maintenance ) } +sub applies_to { return 'PPI::Token::Word' } + +#----------------------------------------------------------------------------- + +sub violates { + my ( $self, $elem, undef ) = @_; + + return if $elem ne 'grep'; + return if not is_function_call($elem); + return if not is_in_void_context($elem); + + return $self->violation( $DESC, $EXPL, $elem ); +} + + +1; + +__END__ + +#----------------------------------------------------------------------------- + +=pod + +=head1 NAME + +Perl::Critic::Policy::BuiltinFunctions::ProhibitVoidGrep - Don't use C in void contexts. + +=head1 AFFILIATION + +This Policy is part of the core L distribution. + + +=head1 DESCRIPTION + +C and C are intended to be pure functions, not mutators. +If you want to iterate with side-effects, then you should use a proper +C or C loop. + + grep{ print frobulate($_) } @list; #not ok + print map{ frobulate($_) } @list; #ok + + grep{ $_ = lc $_ } @list; #not ok + for( @list ){ $_ = lc $_ }; #ok + + map{ push @frobbed, frobulate($_) } @list; #not ok + @frobbed = map { frobulate($_) } @list; #ok + + +=head1 CONFIGURATION + +This Policy is not configurable except for the standard options. + + +=head1 AUTHOR + +Jeffrey Ryan Thalhammer + +=head1 COPYRIGHT + +Copyright (c) 2005-2008 Jeffrey Ryan Thalhammer. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitVoidMap.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitVoidMap.pm new file mode 100644 index 0000000..a58eef9 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitVoidMap.pm @@ -0,0 +1,104 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Policy/BuiltinFunctions/ProhibitVoidMap.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Policy::BuiltinFunctions::ProhibitVoidMap; + +use 5.006001; +use strict; +use warnings; +use Readonly; + +use Perl::Critic::Utils qw{ :severities :classification is_in_void_context }; +use base 'Perl::Critic::Policy'; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +Readonly::Scalar my $DESC => q{"map" used in void context}; +Readonly::Scalar my $EXPL => q{Use a "for" loop instead}; + +#----------------------------------------------------------------------------- + +sub supported_parameters { return () } +sub default_severity { return $SEVERITY_MEDIUM } +sub default_themes { return qw( core maintenance ) } +sub applies_to { return 'PPI::Token::Word' } + +#----------------------------------------------------------------------------- + +sub violates { + my ( $self, $elem, undef ) = @_; + + return if $elem ne 'map'; + return if not is_function_call($elem); + return if not is_in_void_context($elem); + + return $self->violation( $DESC, $EXPL, $elem ); +} + + +1; + +__END__ + +#----------------------------------------------------------------------------- + +=pod + +=head1 NAME + +Perl::Critic::Policy::BuiltinFunctions::ProhibitVoidMap - Don't use C in void contexts. + +=head1 AFFILIATION + +This Policy is part of the core L distribution. + + +=head1 DESCRIPTION + +C and C are intended to be pure functions, not mutators. +If you want to iterate with side-effects, then you should use a proper +C or C loop. + + grep{ print frobulate($_) } @list; #not ok + print map{ frobulate($_) } @list; #ok + + grep{ $_ = lc $_ } @list; #not ok + for( @list ){ $_ = lc $_ }; #ok + + map{ push @frobbed, frobulate($_) } @list; #not ok + @frobbed = map { frobulate($_) } @list; #ok + + +=head1 CONFIGURATION + +This Policy is not configurable except for the standard options. + + +=head1 AUTHOR + +Jeffrey Ryan Thalhammer + +=head1 COPYRIGHT + +Copyright (c) 2005-2008 Jeffrey Ryan Thalhammer. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/BuiltinFunctions/RequireBlockGrep.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/BuiltinFunctions/RequireBlockGrep.pm new file mode 100644 index 0000000..082d349 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/BuiltinFunctions/RequireBlockGrep.pm @@ -0,0 +1,113 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Policy/BuiltinFunctions/RequireBlockGrep.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Policy::BuiltinFunctions::RequireBlockGrep; + +# DEVELOPER NOTE: this module is used as an example in DEVELOPER.pod. +# If you make changes in here, please reflect those changes in the +# examples. + +use 5.006001; +use strict; +use warnings; +use Readonly; + +use Perl::Critic::Utils qw{ :severities :classification :ppi }; +use base 'Perl::Critic::Policy'; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +Readonly::Scalar my $DESC => q{Expression form of "grep"}; +Readonly::Scalar my $EXPL => [ 169 ]; + +#----------------------------------------------------------------------------- + +sub supported_parameters { return () } +sub default_severity { return $SEVERITY_HIGH } +sub default_themes { return qw( core bugs pbp ) } +sub applies_to { return 'PPI::Token::Word' } + +#----------------------------------------------------------------------------- + +sub violates { + my ( $self, $elem, undef ) = @_; + + return if $elem ne 'grep'; + return if ! is_function_call($elem); + + my $arg = first_arg($elem); + return if !$arg; + return if $arg->isa('PPI::Structure::Block'); + + return $self->violation( $DESC, $EXPL, $elem ); +} + +1; + +__END__ + +#----------------------------------------------------------------------------- + +=pod + +=head1 NAME + +Perl::Critic::Policy::BuiltinFunctions::RequireBlockGrep - Write C instead of C. + +=head1 AFFILIATION + +This Policy is part of the core L distribution. + + +=head1 DESCRIPTION + +The expression forms of C and C are awkward and hard to read. +Use the block forms instead. + + @matches = grep /pattern/, @list; #not ok + @matches = grep { /pattern/ } @list; #ok + + @mapped = map transform($_), @list; #not ok + @mapped = map { transform($_) } @list; #ok + + + +=head1 CONFIGURATION + +This Policy is not configurable except for the standard options. + + +=head1 SEE ALSO + +L + +L + +=head1 AUTHOR + +Jeffrey Ryan Thalhammer + +=head1 COPYRIGHT + +Copyright (c) 2005-2008 Jeffrey Ryan Thalhammer. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/BuiltinFunctions/RequireBlockMap.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/BuiltinFunctions/RequireBlockMap.pm new file mode 100644 index 0000000..397a598 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/BuiltinFunctions/RequireBlockMap.pm @@ -0,0 +1,109 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Policy/BuiltinFunctions/RequireBlockMap.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Policy::BuiltinFunctions::RequireBlockMap; + +use 5.006001; +use strict; +use warnings; +use Readonly; + +use Perl::Critic::Utils qw{ :severities :classification :ppi }; +use base 'Perl::Critic::Policy'; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +Readonly::Scalar my $DESC => q{Expression form of "map"}; +Readonly::Scalar my $EXPL => [ 169 ]; + +#----------------------------------------------------------------------------- + +sub supported_parameters { return () } +sub default_severity { return $SEVERITY_HIGH } +sub default_themes { return qw( core bugs pbp ) } +sub applies_to { return 'PPI::Token::Word' } + +#----------------------------------------------------------------------------- + +sub violates { + my ( $self, $elem, undef ) = @_; + + return if $elem ne 'map'; + return if ! is_function_call($elem); + + my $arg = first_arg($elem); + return if !$arg; + return if $arg->isa('PPI::Structure::Block'); + + return $self->violation( $DESC, $EXPL, $elem ); +} + +1; + +__END__ + +#----------------------------------------------------------------------------- + +=pod + +=head1 NAME + +Perl::Critic::Policy::BuiltinFunctions::RequireBlockMap - Write C instead of C. + +=head1 AFFILIATION + +This Policy is part of the core L distribution. + + +=head1 DESCRIPTION + +The expression forms of C and C are awkward and hard to read. +Use the block forms instead. + + @matches = grep /pattern/, @list; #not ok + @matches = grep { /pattern/ } @list; #ok + + @mapped = map transform($_), @list; #not ok + @mapped = map { transform($_) } @list; #ok + + + +=head1 CONFIGURATION + +This Policy is not configurable except for the standard options. + + +=head1 SEE ALSO + +L + +L + +=head1 AUTHOR + +Jeffrey Ryan Thalhammer + +=head1 COPYRIGHT + +Copyright (c) 2005-2008 Jeffrey Ryan Thalhammer. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/BuiltinFunctions/RequireGlobFunction.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/BuiltinFunctions/RequireGlobFunction.pm new file mode 100644 index 0000000..d5243af --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/BuiltinFunctions/RequireGlobFunction.pm @@ -0,0 +1,97 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Policy/BuiltinFunctions/RequireGlobFunction.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Policy::BuiltinFunctions::RequireGlobFunction; + +use 5.006001; +use strict; +use warnings; +use Readonly; + +use Perl::Critic::Utils qw{ :severities }; +use base 'Perl::Critic::Policy'; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +Readonly::Scalar my $GLOB_RX => qr{ [*?] }mx; +Readonly::Scalar my $DESC => q{Glob written as <...>}; +Readonly::Scalar my $EXPL => [ 167 ]; + +#----------------------------------------------------------------------------- + +sub supported_parameters { return () } +sub default_severity { return $SEVERITY_HIGHEST } +sub default_themes { return qw( core pbp bugs ) } +sub applies_to { return 'PPI::Token::QuoteLike::Readline' } + +#----------------------------------------------------------------------------- + +sub violates { + my ( $self, $elem, undef ) = @_; + + if ( $elem =~ $GLOB_RX ) { + return $self->violation( $DESC, $EXPL, $elem ); + } + return; #ok! +} + +1; + +__END__ + +#----------------------------------------------------------------------------- + +=pod + +=head1 NAME + +Perl::Critic::Policy::BuiltinFunctions::RequireGlobFunction - Use C instead of <*>. + +=head1 AFFILIATION + +This Policy is part of the core L distribution. + + +=head1 DESCRIPTION + +Conway discourages the use of the C< <..> > construct for globbing, as +it is easily confused with the angle bracket file input operator. +Instead, he recommends the use of the C function as it makes +it much more obvious what you're attempting to do. + + @files = <*.pl>; # not ok + @files = glob( "*.pl" ); # ok + + +=head1 CONFIGURATION + +This Policy is not configurable except for the standard options. + + +=head1 AUTHOR + +Graham TerMarsch + +=head1 COPYRIGHT + +Copyright (C) 2005-2007 Graham TerMarsch. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/BuiltinFunctions/RequireSimpleSortBlock.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/BuiltinFunctions/RequireSimpleSortBlock.pm new file mode 100644 index 0000000..ae8b945 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/BuiltinFunctions/RequireSimpleSortBlock.pm @@ -0,0 +1,116 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Policy/BuiltinFunctions/RequireSimpleSortBlock.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Policy::BuiltinFunctions::RequireSimpleSortBlock; + +use 5.006001; +use strict; +use warnings; +use Readonly; + +use Perl::Critic::Utils qw{ :severities :classification }; +use base 'Perl::Critic::Policy'; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +Readonly::Scalar my $DESC => q{Sort blocks should have a single statement}; +Readonly::Scalar my $EXPL => [ 149 ]; + +#----------------------------------------------------------------------------- + +sub supported_parameters { return () } +sub default_severity { return $SEVERITY_MEDIUM } +sub default_themes { return qw( core pbp maintenance complexity) } +sub applies_to { return 'PPI::Token::Word' } + +#----------------------------------------------------------------------------- + +sub violates { + my ( $self, $elem, undef ) = @_; + + return if $elem ne 'sort'; + return if ! is_function_call($elem); + + my $sib = $elem->snext_sibling(); + return if !$sib; + + my $arg = $sib; + if ( $arg->isa('PPI::Structure::List') ) { + $arg = $arg->schild(0); + # Forward looking: PPI might change in v1.200 so schild(0) is a PPI::Statement::Expression + if ( $arg && $arg->isa('PPI::Statement::Expression') ) { + $arg = $arg->schild(0); + } + } + return if !$arg || !$arg->isa('PPI::Structure::Block'); + + # If we get here, we found a sort with a block as the first arg + return if ( 1 >= $arg->schildren() ); + + # more than one child statements + return $self->violation( $DESC, $EXPL, $elem ); +} + +1; + +#----------------------------------------------------------------------------- + +__END__ + +=pod + +=head1 NAME + +Perl::Critic::Policy::BuiltinFunctions::RequireSimpleSortBlock - Sort blocks should have a single statement. + +=head1 AFFILIATION + +This Policy is part of the core L distribution. + + +=head1 DESCRIPTION + +Conway advises that sort functions should be simple. Any complicated +operations on list elements should be computed and cached (perhaps via +a Schwartzian Transform) before the sort, rather than computed inside +the sort block, because the sort block is called C times +instead of just C times. + +This policy prohibits the most blatant case of complicated sort +blocks: multiple statements. Future policies may wish to examine the +sort block in more detail -- looking for subroutine calls or large +numbers of operations. + + +=head1 CONFIGURATION + +This Policy is not configurable except for the standard options. + + +=head1 AUTHOR + +Chris Dolan + +=head1 COPYRIGHT + +Copyright (C) 2006 Chris Dolan. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ClassHierarchies/ProhibitAutoloading.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ClassHierarchies/ProhibitAutoloading.pm new file mode 100644 index 0000000..c62fed7 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ClassHierarchies/ProhibitAutoloading.pm @@ -0,0 +1,97 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Policy/ClassHierarchies/ProhibitAutoloading.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Policy::ClassHierarchies::ProhibitAutoloading; + +use 5.006001; +use strict; +use warnings; +use Readonly; + +use Perl::Critic::Utils qw{ :severities }; +use base 'Perl::Critic::Policy'; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +Readonly::Scalar my $DESC => q{AUTOLOAD method declared}; +Readonly::Scalar my $EXPL => [ 393 ]; + +#----------------------------------------------------------------------------- + +sub supported_parameters { return () } +sub default_severity { return $SEVERITY_MEDIUM } +sub default_themes { return qw( core maintenance pbp ) } +sub applies_to { return 'PPI::Statement::Sub' } + +#----------------------------------------------------------------------------- + +sub violates { + my ($self, $elem, undef) = @_; + + if( $elem->name eq 'AUTOLOAD' ) { + return $self->violation( $DESC, $EXPL, $elem ); + } + return; #ok! +} + +1; + +#----------------------------------------------------------------------------- + +__END__ + +=pod + +=head1 NAME + +Perl::Critic::Policy::ClassHierarchies::ProhibitAutoloading - AUTOLOAD methods should be avoided. + +=head1 AFFILIATION + +This Policy is part of the core L distribution. + + +=head1 DESCRIPTION + +Declaring a subroutine with the name C<"AUTOLOAD"> will violate this +Policy. The C mechanism is an easy way to generate methods +for your classes, but unless they are carefully written, those classes +are difficult to inherit from. And over time, the C method +will become more and more complex as it becomes responsible for +dispatching more and more functions. You're better off writing +explicit accessor methods. Editor macros can help make this a little +easier. + + +=head1 CONFIGURATION + +This Policy is not configurable except for the standard options. + + +=head1 AUTHOR + +Jeffrey Ryan Thalhammer + +=head1 COPYRIGHT + +Copyright (C) 2006 Jeffrey Ryan Thalhammer. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ClassHierarchies/ProhibitExplicitISA.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ClassHierarchies/ProhibitExplicitISA.pm new file mode 100644 index 0000000..2b638f9 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ClassHierarchies/ProhibitExplicitISA.pm @@ -0,0 +1,93 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Policy/ClassHierarchies/ProhibitExplicitISA.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Policy::ClassHierarchies::ProhibitExplicitISA; + +use 5.006001; +use strict; +use warnings; +use Readonly; + +use Perl::Critic::Utils qw{ :severities }; +use base 'Perl::Critic::Policy'; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +Readonly::Scalar my $DESC => q{@ISA used instead of "use base"}; ##no critic; #for @ in string +Readonly::Scalar my $EXPL => [ 360 ]; + +#----------------------------------------------------------------------------- + +sub supported_parameters { return () } +sub default_severity { return $SEVERITY_MEDIUM } +sub default_themes { return qw( core maintenance pbp ) } +sub applies_to { return 'PPI::Token::Symbol' } + +#----------------------------------------------------------------------------- + +sub violates { + my ($self, $elem, undef) = @_; + + if( $elem eq q{@ISA} ) { ##no critic; #for @ in string + return $self->violation( $DESC, $EXPL, $elem ); + } + return; #ok! +} + +1; + +#----------------------------------------------------------------------------- + +__END__ + +=pod + +=head1 NAME + +Perl::Critic::Policy::ClassHierarchies::ProhibitExplicitISA - Employ C instead of C<@ISA>. + +=head1 AFFILIATION + +This Policy is part of the core L distribution. + + +=head1 DESCRIPTION + +Conway recommends employing C instead of the usual +C because the former happens at compile time and +the latter at runtime. The C pragma also automatically loads +C for you so you save a line of easily-forgotten code. + + +=head1 CONFIGURATION + +This Policy is not configurable except for the standard options. + + +=head1 AUTHOR + +Chris Dolan + +=head1 COPYRIGHT + +Copyright (C) 2006 Chris Dolan. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ClassHierarchies/ProhibitOneArgBless.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ClassHierarchies/ProhibitOneArgBless.pm new file mode 100644 index 0000000..3cb5729 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ClassHierarchies/ProhibitOneArgBless.pm @@ -0,0 +1,101 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Policy/ClassHierarchies/ProhibitOneArgBless.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Policy::ClassHierarchies::ProhibitOneArgBless; + +use 5.006001; +use strict; +use warnings; +use Readonly; + +use Perl::Critic::Utils qw{ :booleans :severities :classification :ppi }; +use base 'Perl::Critic::Policy'; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +Readonly::Scalar my $DESC => q{One-argument "bless" used}; +Readonly::Scalar my $EXPL => [ 365 ]; + +#----------------------------------------------------------------------------- + +sub supported_parameters { return () } +sub default_severity { return $SEVERITY_HIGHEST } +sub default_themes { return qw( core pbp bugs ) } +sub applies_to { return 'PPI::Token::Word' } + +#----------------------------------------------------------------------------- + +sub violates { + my ($self, $elem, undef) = @_; + + return if $elem ne 'bless'; + return if ! is_function_call($elem); + + if( scalar parse_arg_list($elem) == 1 ) { + return $self->violation( $DESC, $EXPL, $elem ); + } + return; #ok! +} + +1; + +#----------------------------------------------------------------------------- + +__END__ + +=pod + +=head1 NAME + +Perl::Critic::Policy::ClassHierarchies::ProhibitOneArgBless - Write C instead of just C. + +=head1 AFFILIATION + +This Policy is part of the core L distribution. + + +=head1 DESCRIPTION + +Always use the two-argument form of C because it allows +subclasses to inherit your constructor. + + sub new { + my $class = shift; + my $self = bless {}; # not ok + my $self = bless {}, $class; # ok + return $self; + } + + +=head1 CONFIGURATION + +This Policy is not configurable except for the standard options. + + +=head1 AUTHOR + +Jeffrey Ryan Thalhammer + +=head1 COPYRIGHT + +Copyright (C) 2005-2007 Jeffrey Ryan Thalhammer. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/CodeLayout/ProhibitHardTabs.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/CodeLayout/ProhibitHardTabs.pm new file mode 100644 index 0000000..feeb7b8 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/CodeLayout/ProhibitHardTabs.pm @@ -0,0 +1,133 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Policy/CodeLayout/ProhibitHardTabs.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Policy::CodeLayout::ProhibitHardTabs; + +use 5.006001; +use strict; +use warnings; +use Readonly; + +use Perl::Critic::Utils qw{ :booleans :severities }; +use base 'Perl::Critic::Policy'; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +Readonly::Scalar my $DESC => q{Hard tabs used}; +Readonly::Scalar my $EXPL => [ 20 ]; + +my $DEFAULT_ALLOW_LEADING_TABS = $TRUE; + +#----------------------------------------------------------------------------- + +sub supported_parameters { + return ( + { + name => 'allow_leading_tabs', + description => 'Allow hard tabs before first non-whitespace character.', + default_string => '1', + behavior => 'boolean', + }, + ); +} + +sub default_severity { return $SEVERITY_MEDIUM } +sub default_themes { return qw( core cosmetic ) } +sub applies_to { return 'PPI::Token' } + +#----------------------------------------------------------------------------- + +sub violates { + my ( $self, $elem, undef ) = @_; + $elem =~ m{ \t }mx || return; + + # The __DATA__ element is exempt + return if $elem->parent->isa('PPI::Statement::Data'); + + # Permit leading tabs, if allowed + return if $self->_allow_leading_tabs() && $elem->location->[1] == 1; + + # Must be a violation... + return $self->violation( $DESC, $EXPL, $elem ); +} + +#----------------------------------------------------------------------------- + +sub _allow_leading_tabs { + my ( $self ) = @_; + + return $self->{_allow_leading_tabs}; +} + +1; + +__END__ + +#----------------------------------------------------------------------------- + +=head1 NAME + +Perl::Critic::Policy::CodeLayout::ProhibitHardTabs - Use spaces instead of tabs. + +=head1 AFFILIATION + +This Policy is part of the core L distribution. + + +=head1 DESCRIPTION + +Putting hard tabs in your source code (or POD) is one of the worst +things you can do to your co-workers and colleagues, especially if +those tabs are anywhere other than a leading position. Because +various applications and devices represent tabs differently, they can +cause you code to look vastly different to other people. Any decent +editor can be configured to expand tabs into spaces. L +also does this for you. + +This Policy catches all tabs in your source code, including POD, +quotes, and HEREDOCs. The contents of the C<__DATA__> section are not +examined. + +=head1 CONFIGURATION + +Tabs in a leading position are allowed, but if you want to forbid all tabs +everywhere, put this to your F<.perlcriticrc> file: + + [CodeLayout::ProhibitHardTabs] + allow_leading_tabs = 0 + +=head1 NOTES + +Beware that Perl::Critic may report the location of the string that +contains the tab, not the actual location of the tab, so you may need +to do some hunting. I'll try and fix this in the future. + +=head1 AUTHOR + +Jeffrey Ryan Thalhammer + +=head1 COPYRIGHT + +Copyright (c) 2005-2008 Jeffrey Ryan Thalhammer. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module. + +=cut + +############################################################################## +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/CodeLayout/ProhibitParensWithBuiltins.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/CodeLayout/ProhibitParensWithBuiltins.pm new file mode 100644 index 0000000..aae5f3c --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/CodeLayout/ProhibitParensWithBuiltins.pm @@ -0,0 +1,237 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Policy/CodeLayout/ProhibitParensWithBuiltins.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Policy::CodeLayout::ProhibitParensWithBuiltins; + +use 5.006001; +use strict; +use warnings; +use Readonly; + +use Perl::Critic::Utils qw{ + :booleans :severities :data_conversion :classification :language +}; +use base 'Perl::Critic::Policy'; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +Readonly::Array my @ALLOW => qw( my our local return ); +Readonly::Hash my %ALLOW => hashify( @ALLOW ); + +Readonly::Scalar my $DESC => q{Builtin function called with parentheses}; +Readonly::Scalar my $EXPL => [ 13 ]; + +Readonly::Scalar my $PRECENDENCE_OF_LIST => precedence_of(q{>>}) + 1; +Readonly::Scalar my $PRECEDENCE_OF_COMMA => precedence_of(q{,}); + +#----------------------------------------------------------------------------- +# These are all the functions that are considered named unary +# operators. These frequently require parentheses because they have lower +# precedence than ordinary function calls. + +Readonly::Array my @NAMED_UNARY_OPS => qw( + alarm glob rand + caller gmtime readlink + chdir hex ref + chroot int require + cos lc return + defined lcfirst rmdir + delete length scalar + do localtime sin + eval lock sleep + exists log sqrt + exit lstat srand + getgrp my stat + gethostbyname oct uc + getnetbyname ord ucfirst + getprotobyname quotemeta umask + undef +); +Readonly::Hash my %NAMED_UNARY_OPS => hashify( @NAMED_UNARY_OPS ); + +#----------------------------------------------------------------------------- + +sub supported_parameters { return () } +sub default_severity { return $SEVERITY_LOWEST } +sub default_themes { return qw( core pbp cosmetic ) } +sub applies_to { return 'PPI::Token::Word' } + +#----------------------------------------------------------------------------- + +sub violates { + my ( $self, $elem, undef ) = @_; + + return if exists $ALLOW{$elem}; + return if not is_perl_builtin($elem); + return if not is_function_call($elem); + + my $sibling = $elem->snext_sibling(); + return if not $sibling; + if ( $sibling->isa('PPI::Structure::List') ) { + my $elem_after_parens = $sibling->snext_sibling(); + + return if _is_named_unary_exemption($elem, $elem_after_parens); + return if _is_precedence_exemption($elem_after_parens); + return if _is_equals_exemption($sibling); + return if _is_sort_exemption($elem, $sibling); + + # If we get here, it must be a violation + return $self->violation( $DESC, $EXPL, $elem ); + } + return; #ok! +} + +#----------------------------------------------------------------------------- + +# EXCEPTION 1: If the function is a named unary and there is an +# operator with higher precedence right after the parentheses. +# Example: int( 1.5 ) + 0.5; + +sub _is_named_unary_exemption { + my ($elem, $elem_after_parens) = @_; + + if ( _is_named_unary( $elem ) && $elem_after_parens ){ + # Smaller numbers mean higher precedence + my $precedence = precedence_of( $elem_after_parens ); + return $TRUE if defined $precedence && $precedence < $PRECENDENCE_OF_LIST; + } + + return $FALSE; +} + +sub _is_named_unary { + my ($elem) = @_; + + return exists $NAMED_UNARY_OPS{$elem->content}; +} + +#----------------------------------------------------------------------------- + +# EXCEPTION 2, If there is an operator immediately after the +# parentheses, and that operator has precedence greater than +# or equal to a comma. +# Example: join($delim, @list) . "\n"; + +sub _is_precedence_exemption { + my ($elem_after_parens) = @_; + + if ( $elem_after_parens ){ + # Smaller numbers mean higher precedence + my $precedence = precedence_of( $elem_after_parens ); + return $TRUE if defined $precedence && $precedence <= $PRECEDENCE_OF_COMMA; + } + + return $FALSE; +} + +# EXCEPTION 3: If the first operator within the parentheses is '=' +# Example: chomp( my $foo = ); + +sub _is_equals_exemption { + my ($sibling) = @_; + + if ( my $first_op = $sibling->find_first('PPI::Token::Operator') ){ + return $TRUE if $first_op eq q{=}; + } + + return $FALSE; +} + +# EXCEPTION 4: sort with default comparator but a function for the list data +# Example: sort(foo(@x)) + +sub _is_sort_exemption { + my ($elem, $sibling) = @_; + + if ( $elem eq 'sort' ) { + my $first_arg = $sibling->schild(0); + if ( $first_arg && $first_arg->isa('PPI::Statement::Expression') ) { + $first_arg = $first_arg->schild(0); + } + if ( $first_arg && $first_arg->isa('PPI::Token::Word') ) { + my $next_arg = $first_arg->snext_sibling; + return $TRUE if $next_arg && $next_arg->isa('PPI::Structure::List'); + } + } + + return $FALSE; +} + +1; + +__END__ + +#----------------------------------------------------------------------------- + +=pod + +=for stopwords disambiguates + +=head1 NAME + +Perl::Critic::Policy::CodeLayout::ProhibitParensWithBuiltins - Write C instead of C. + +=head1 AFFILIATION + +This Policy is part of the core L distribution. + + +=head1 DESCRIPTION + +Conway suggests that all built-in functions be called without +parentheses around the argument list. This reduces visual clutter and +disambiguates built-in functions from user functions. Exceptions are +made for C, C, and C which require parentheses when +called with multiple arguments. + + open($handle, '>', $filename); #not ok + open $handle, '>', $filename; #ok + + split(/$pattern/, @list); #not ok + split /$pattern/, @list; #ok + + +=head1 CONFIGURATION + +This Policy is not configurable except for the standard options. + + +=head1 NOTES + +Coding with parentheses can sometimes lead to verbose and awkward +constructs, so I think the intent of Conway's guideline is to remove +only the F parentheses. This policy makes exceptions for +some common situations where parentheses are usually required. +However, you may find other situations where the parentheses are +necessary to enforce precedence, but they cause still violations. In +those cases, consider using the '## no critic' comments to silence +Perl::Critic. + +=head1 AUTHOR + +Jeffrey Ryan Thalhammer + +=head1 COPYRIGHT + +Copyright (c) 2005-2008 Jeffrey Ryan Thalhammer. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/CodeLayout/ProhibitQuotedWordLists.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/CodeLayout/ProhibitQuotedWordLists.pm new file mode 100644 index 0000000..20fca3f --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/CodeLayout/ProhibitQuotedWordLists.pm @@ -0,0 +1,163 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Policy/CodeLayout/ProhibitQuotedWordLists.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Policy::CodeLayout::ProhibitQuotedWordLists; + +use 5.006001; +use strict; +use warnings; +use Readonly; + +use Perl::Critic::Utils qw{ :characters :severities }; +use base 'Perl::Critic::Policy'; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +Readonly::Scalar my $DESC => q{List of quoted literal words}; +Readonly::Scalar my $EXPL => q{Use 'qw()' instead}; + +#----------------------------------------------------------------------------- + +sub supported_parameters { + return ( + { + name => 'min_elements', + description => 'The minimum number of words in a list that will be complained about.', + default_string => '2', + behavior => 'integer', + integer_minimum => 1, + }, + ); +} + +sub default_severity { return $SEVERITY_LOW } +sub default_themes { return qw( core cosmetic ) } +sub applies_to { return 'PPI::Structure::List' } + +#----------------------------------------------------------------------------- + +sub violates { + my ( $self, $elem, undef ) = @_; + + #Don't worry about subroutine calls + my $sib = $elem->sprevious_sibling(); + return if !$sib; + return if $sib->isa('PPI::Token::Word'); + return if $sib->isa('PPI::Token::Symbol'); + + #Get the list elements + my $expr = $elem->schild(0); + return if !$expr; + my @children = $expr->schildren(); + return if !@children; + + my $count = 0; + for my $child ( @children ) { + next if $child->isa('PPI::Token::Operator') && $child eq $COMMA; + + #All elements must be literal strings, + #of non-zero length, with no whitespace + + return if ! _is_literal($child); + + my $string = $child->string(); + return if $string =~ m{ \s }mx; + return if $string eq $EMPTY; + $count++; + } + + #Were there enough? + return if $count < $self->{_min_elements}; + + #If we get here, then all elements were literals + return $self->violation( $DESC, $EXPL, $elem ); +} + +sub _is_literal { + my $elem = shift; + return $elem->isa('PPI::Token::Quote::Single') + || $elem->isa('PPI::Token::Quote::Literal'); +} + +1; + +__END__ + +=pod + +=head1 NAME + +Perl::Critic::Policy::CodeLayout::ProhibitQuotedWordLists - Write C instead of C<('foo', 'bar', 'baz')>. + +=head1 AFFILIATION + +This Policy is part of the core L distribution. + + +=head1 DESCRIPTION + +Conway doesn't mention this, but I think C is an underused +feature of Perl. Whenever you need to declare a list of one-word +literals, the C operator is wonderfully concise, and makes +it easy to add to the list in the future. + + @list = ('foo', 'bar', 'baz'); #not ok + @list = qw(foo bar baz); #ok + +=head1 CONFIGURATION + +This policy can be configured to only pay attention to word lists with +at least a particular number of elements. By default, this value is 2, +which means that lists containing zero or one elements are ignored. +The minimum list size to be looked at can be specified by giving a +value for C in F<.perlcriticrc> like this: + + [CodeLayout::ProhibitQuotedWordLists] + min_elements = 4 + +This would cause this policy to only complain about lists containing +four or more words. + +=head1 NOTES + +In the PPI parlance, a "list" is almost anything with parentheses. +I've tried to make this Policy smart by targeting only "lists" that +could be sensibly expressed with C. However, there may be some +edge cases that I haven't covered. If you find one, send me a note. + +=head1 IMPORTANT CHANGES + +This policy was formerly called C which seemed a +little counter-intuitive. If you get lots of "Cannot load policy +module" errors, then you probably need to change C +to C in your F<.perlcriticrc> file. + + +=head1 AUTHOR + +Jeffrey Ryan Thalhammer + +Copyright (c) 2005-2008 Jeffrey Ryan Thalhammer. All rights reserved. + +=head1 COPYRIGHT + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/CodeLayout/ProhibitTrailingWhitespace.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/CodeLayout/ProhibitTrailingWhitespace.pm new file mode 100644 index 0000000..fde3324 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/CodeLayout/ProhibitTrailingWhitespace.pm @@ -0,0 +1,148 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Policy/CodeLayout/ProhibitTrailingWhitespace.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Policy::CodeLayout::ProhibitTrailingWhitespace; + +use 5.006001; +use strict; +use warnings; +use English qw(-no_match_vars); +use Readonly; + +use charnames qw{}; + +use PPI::Token::Whitespace; +use Perl::Critic::Utils qw{ :characters :severities }; + +use base 'Perl::Critic::Policy'; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +Readonly::Scalar my $EXPL => q{Don't use whitespace at the end of lines}; + +## no critic (RequireInterpolationOfMetachars) +Readonly::Hash my %C_STYLE_ESCAPES => + ( + ord "\t" => q{\t}, + ord "\n" => q{\n}, + ord "\r" => q{\r}, + ord "\f" => q{\f}, + ord "\b" => q{\b}, + ord "\a" => q{\a}, + ord "\e" => q{\e}, + ); +## use critic + +#----------------------------------------------------------------------------- + +sub supported_parameters { return qw{ } } +sub default_severity { return $SEVERITY_LOWEST } +sub default_themes { return qw( core maintenance ) } +sub applies_to { return 'PPI::Token::Whitespace' } + +#----------------------------------------------------------------------------- + +sub violates { + my ( $self, $token, undef ) = @_; + + # There is at most one linefeed per Whitespace token, and it will always + # be the last character, if present. If the code has two consecutive + # blank lines, PPI will produce two Whitespace tokens, each consisting + # of a single linefeed. Thus, any Whitespace token consisting of a single + # character cannot contain trailing whitespace. + my $content = $token->content(); + return if length($content) < 2; + return if qq{\n} ne chop $content; + + my $description = q{Found "}; + $description .= join $EMPTY, map { _escape($_) } split $EMPTY, $content; + $description .= q{" at the end of the line}; + + return $self->violation( $description, $EXPL, $token ); +} + +sub _escape { + my $character = shift; + my $ordinal = ord $character; + + if (my $c_escape = $C_STYLE_ESCAPES{$ordinal}) { + return $c_escape; + } + + + # Apparently, the charnames.pm that ships with older perls does not + # support the C function, and newer versions of the module are + # not distributed separately from perl itself So if the C method + # is not supported, then just substitute something. + + + ## no critic (RequireInterpolationOfMetachars) + if ( charnames->can( 'viacode' ) ) { + return q/\N{/ . charnames::viacode($ordinal) . q/}/; + } + else { + return '\N{WHITESPACE CHAR}'; + } +} + +1; + +#----------------------------------------------------------------------------- + +__END__ + +=pod + +=for stopwords + +=head1 NAME + +Perl::Critic::Policy::CodeLayout::ProhibitTrailingWhitespace - Don't use whitespace at the end of lines. + +=head1 AFFILIATION + +This Policy is part of the core L distribution. + + +=head1 DESCRIPTION + +Anything that is not readily visually detectable is a bad thing in +general, and more specifically, as different people edit the same +code, their editors may automatically strip out trailing whitespace, +causing spurious differences between different versions of the same +file (i.e. code in a source control system). + + +=head1 CONFIGURATION + +This Policy is not configurable except for the standard options. + + +=head1 AUTHOR + +Elliot Shank C<< >> + +=head1 COPYRIGHT + +Copyright (c) 2007-2008 Elliot Shank. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/CodeLayout/RequireConsistentNewlines.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/CodeLayout/RequireConsistentNewlines.pm new file mode 100644 index 0000000..c718eeb --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/CodeLayout/RequireConsistentNewlines.pm @@ -0,0 +1,125 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Policy/CodeLayout/RequireConsistentNewlines.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Policy::CodeLayout::RequireConsistentNewlines; + +use 5.006001; +use strict; +use warnings; +use Readonly; + +use Perl::Critic::Utils qw{ :severities }; +use PPI::Token::Whitespace; +use English qw(-no_match_vars); +use base 'Perl::Critic::Policy'; + +our $VERSION = '1.088'; + +Readonly::Scalar my $LINE_END => qr/\015{1,2}\012|\012|\015/mxs; + +#----------------------------------------------------------------------------- + +Readonly::Scalar my $DESC => q{Use the same newline through the source}; +Readonly::Scalar my $EXPL => q{Change your newlines to be the same throughout}; + +#----------------------------------------------------------------------------- + +sub supported_parameters { return () } +sub default_severity { return $SEVERITY_HIGH } +sub default_themes { return qw( core bugs ) } +sub applies_to { return 'PPI::Document' } + +#----------------------------------------------------------------------------- + +sub violates { + my ( $self, undef, $doc ) = @_; + + my $filename = $doc->filename(); + return if !$filename; + + my $fh; + return if !open $fh, '<', $filename; + local $RS = undef; + my $source = <$fh>; + close $fh or return; + + my $newline; # undef until we find the first one + my $line = 1; + my @v; + while ( $source =~ m/\G([^\012\015]*)($LINE_END)/cgmxs ) { + my $code = $1; + my $nl = $2; + my $col = length $code; + $newline ||= $nl; + if ( $nl ne $newline ) { + my $token = PPI::Token::Whitespace->new( $nl ); + $token->{_location} = [$line, $col, $col]; + push @v, $self->violation( $DESC, $EXPL, $token ); + } + $line++; + } + return @v; +} + +1; + +#----------------------------------------------------------------------------- + +__END__ + +=pod + +=for stopwords GnuPG + +=head1 NAME + +Perl::Critic::Policy::CodeLayout::RequireConsistentNewlines - Use the same newline through the source. + + +=head1 CONFIGURATION + +This Policy is not configurable except for the standard options. + + +=head1 CAVEAT + +This policy works outside of PPI because PPI automatically normalizes +source code to local newline conventions. So, this will only work if +we know the filename of the source code. + +=head1 AFFILIATION + +This Policy is part of the core L distribution. + + +=head1 DESCRIPTION + +Source code files are divided into lines with line endings of C<\r>, +C<\n> or C<\r\n>. Mixing these different line endings causes problems +in many text editors and, notably, Module::Signature and GnuPG. + +=head1 AUTHOR + +Chris Dolan + +=head1 COPYRIGHT + +Copyright (C) 2006 Chris Dolan. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/CodeLayout/RequireTidyCode.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/CodeLayout/RequireTidyCode.pm new file mode 100644 index 0000000..6e3a13e --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/CodeLayout/RequireTidyCode.pm @@ -0,0 +1,193 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Policy/CodeLayout/RequireTidyCode.pm $ +# $Date: 2008-07-04 10:33:13 -0500 (Fri, 04 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2490 $ +############################################################################## + +package Perl::Critic::Policy::CodeLayout::RequireTidyCode; + +use 5.006001; +use strict; +use warnings; +use Readonly; + +use English qw(-no_match_vars); +use Perl::Critic::Utils qw{ :booleans :characters :severities }; +use base 'Perl::Critic::Policy'; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +Readonly::Scalar my $DESC => q{Code is not tidy}; +Readonly::Scalar my $EXPL => [ 33 ]; + +#----------------------------------------------------------------------------- + +sub supported_parameters { + return ( + { + name => 'perltidyrc', + description => 'The Perl::Tidy configuration file to use, if any.', + default_string => undef, + }, + ); +} + +sub default_severity { return $SEVERITY_LOWEST } +sub default_themes { return qw(core pbp cosmetic) } +sub applies_to { return 'PPI::Document' } + +#----------------------------------------------------------------------------- + +sub initialize_if_enabled { + my ($self, $config) = @_; + + # workaround for Test::Without::Module v0.11 + local $EVAL_ERROR = undef; + + # If Perl::Tidy is missing, bow out. + eval { require Perl::Tidy; } or return $FALSE; + + #Set configuration if defined + if (defined $self->{_perltidyrc} && $self->{_perltidyrc} eq $EMPTY) { + $self->{_perltidyrc} = \$EMPTY; + } + + return $TRUE; +} + +#----------------------------------------------------------------------------- + +sub violates { + my ( $self, $elem, $doc ) = @_; + + # Perl::Tidy seems to produce slightly different output, depending + # on the trailing whitespace in the input. As best I can tell, + # Perl::Tidy will truncate any extra trailing newlines, and if the + # input has no trailing newline, then it adds one. But when you + # re-run it through Perl::Tidy here, that final newline gets lost, + # which causes the policy to insist that the code is not tidy. + # This only occurs when Perl::Tidy is writing the output to a + # scalar, but does not occur when writing to a file. I may + # investigate further, but for now, this seems to do the trick. + + my $source = $doc->serialize(); + $source =~ s{ \s+ \Z}{\n}mx; + + # Remove the shell fix code from the top of program, if applicable + ## no critic(ProhibitComplexRegexes) + my $shebang_re = qr< [#]! [^\015\012]+ [\015\012]+ >xms; + my $shell_re = qrxms; + $source =~ s/\A ($shebang_re) $shell_re /$1/xms; + + my $dest = $EMPTY; + my $stderr = $EMPTY; + + + # Perl::Tidy gets confused if @ARGV has arguments from + # another program. Also, we need to override the + # stdout and stderr redirects that the user may have + # configured in their .perltidyrc file. + local @ARGV = qw(-nst -nse); ## no critic + + # Trap Perl::Tidy errors, just in case it dies + my $eval_worked = eval { + Perl::Tidy::perltidy( + source => \$source, + destination => \$dest, + stderr => \$stderr, + defined $self->{_perltidyrc} ? (perltidyrc => $self->{_perltidyrc}) : (), + ); + 1; + }; + + if ($stderr or not $eval_worked) { + # Looks like perltidy had problems + return $self->violation( 'perltidy had errors!!', $EXPL, $elem ); + } + + if ( $source ne $dest ) { + return $self->violation( $DESC, $EXPL, $elem ); + } + + return; #ok! +} + +1; + +#----------------------------------------------------------------------------- + +__END__ + +=pod + +=head1 NAME + +Perl::Critic::Policy::CodeLayout::RequireTidyCode - Must run code through L. + +=head1 AFFILIATION + +This Policy is part of the core L distribution. + + +=head1 DESCRIPTION + +Conway does make specific recommendations for whitespace and +curly-braces in your code, but the most important thing is to adopt a +consistent layout, regardless of the specifics. And the easiest way +to do that is to use L. This policy will complain if +you're code hasn't been run through Perl::Tidy. + +=head1 CONFIGURATION + +This policy can be configured to tell Perl::Tidy to use a particular +F file or no configuration at all. By default, Perl::Tidy is told +to look in its default location for configuration. Perl::Critic can be told to +tell Perl::Tidy to use a specific configuration file by putting an entry in a +F<.perlcriticrc> file like this: + + [CodeLayout::RequireTidyCode] + perltidyrc = /usr/share/perltidy.conf + +As a special case, setting C to the empty string tells +Perl::Tidy not to load any configuration file at all and just use +Perl::Tidy's own default style. + + [CodeLayout::RequireTidyCode] + perltidyrc = + +=head1 NOTES + +L is not included in the Perl::Critic distribution. The +latest version of Perl::Tidy can be downloaded from CPAN. If +Perl::Tidy is not installed, this policy is silently ignored. + +=head1 SEE ALSO + +L + +=head1 AUTHOR + +Jeffrey Ryan Thalhammer + +=head1 COPYRIGHT + +Copyright (c) 2005-2008 Jeffrey Ryan Thalhammer. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/CodeLayout/RequireTrailingCommas.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/CodeLayout/RequireTrailingCommas.pm new file mode 100644 index 0000000..164a28a --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/CodeLayout/RequireTrailingCommas.pm @@ -0,0 +1,126 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Policy/CodeLayout/RequireTrailingCommas.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Policy::CodeLayout::RequireTrailingCommas; + +use 5.006001; +use strict; +use warnings; +use Readonly; + +use Perl::Critic::Utils qw{ :characters :severities }; +use base 'Perl::Critic::Policy'; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +Readonly::Scalar my $DESC => q{List declaration without trailing comma}; +Readonly::Scalar my $EXPL => [ 17 ]; + +#----------------------------------------------------------------------------- + +sub supported_parameters { return () } +sub default_severity { return $SEVERITY_LOWEST } +sub default_themes { return qw(core pbp cosmetic) } +sub applies_to { return 'PPI::Structure::List' } + +#----------------------------------------------------------------------------- + +sub violates { + my ( $self, $elem, undef ) = @_; + $elem =~ m{ \n }mx || return; + + # Is it an assignment of some kind? + my $sib = $elem->sprevious_sibling(); + return if !$sib; + $sib->isa('PPI::Token::Operator') && $sib =~ m{ = }mx || return; + + # List elements are children of an expression + my $expr = $elem->schild(0); + return if !$expr; + + # Does the list have more than 1 element? + # This means list element, not PPI element. + my @children = $expr->schildren(); + return if 1 >= grep { $_->isa('PPI::Token::Operator') + && $_ eq $COMMA } @children; + + # Is the final element a comma? + my $final = $children[-1]; + if ( ! ($final->isa('PPI::Token::Operator') && $final eq $COMMA) ) { + return $self->violation( $DESC, $EXPL, $elem ); + } + + return; #ok! +} + +1; + +__END__ + +=pod + +=head1 NAME + +Perl::Critic::Policy::CodeLayout::RequireTrailingCommas - Put a comma at the end of every multi-line list declaration, including the last one. + +=head1 AFFILIATION + +This Policy is part of the core L distribution. + + +=head1 DESCRIPTION + +Conway suggests that all elements in a multi-line list should be +separated by commas, including the last element. This makes it a +little easier to re-order the list by cutting and pasting. + + my @list = ($foo, + $bar, + $baz); #not ok + + my @list = ($foo, + $bar, + $baz,); #ok + + +=head1 CONFIGURATION + +This Policy is not configurable except for the standard options. + + +=head1 NOTES + +In the PPI parlance, a "list" is almost anything with parentheses. +I've tried to make this Policy smart by targeting only "lists" that +have at least one element and are being assigned to something. +However, there may be some edge cases that I haven't covered. If you +find one, send me a note. + +=head1 AUTHOR + +Jeffrey Ryan Thalhammer + +=head1 COPYRIGHT + +Copyright (c) 2005-2008 Jeffrey Ryan Thalhammer. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ControlStructures/ProhibitCStyleForLoops.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ControlStructures/ProhibitCStyleForLoops.pm new file mode 100644 index 0000000..8520928 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ControlStructures/ProhibitCStyleForLoops.pm @@ -0,0 +1,109 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Policy/ControlStructures/ProhibitCStyleForLoops.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Policy::ControlStructures::ProhibitCStyleForLoops; + +use 5.006001; +use strict; +use warnings; +use Readonly; + +use Perl::Critic::Utils qw{ :characters :severities }; +use base 'Perl::Critic::Policy'; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +Readonly::Scalar my $DESC => q{C-style "for" loop used}; +Readonly::Scalar my $EXPL => [ 100 ]; + +#----------------------------------------------------------------------------- + +sub supported_parameters { return () } +sub default_severity { return $SEVERITY_LOW } +sub default_themes { return qw( core pbp maintenance ) } +sub applies_to { return 'PPI::Structure::ForLoop' } + +#----------------------------------------------------------------------------- + +sub violates { + my ( $self, $elem, undef ) = @_; + + if ( _is_cstyle($elem) ) { + return $self->violation( $DESC, $EXPL, $elem ); + } + return; #ok! +} + +sub _is_cstyle { + my $elem = shift; + my $nodes_ref = $elem->find('PPI::Token::Structure'); + return if !$nodes_ref; + my @semis = grep { $_ eq $SCOLON } @{$nodes_ref}; + return scalar @semis == 2; +} + +1; + +__END__ + +#----------------------------------------------------------------------------- + +=pod + +=head1 NAME + +Perl::Critic::Policy::ControlStructures::ProhibitCStyleForLoops - Write C instead of C. + +=head1 AFFILIATION + +This Policy is part of the core L distribution. + + +=head1 DESCRIPTION + +The 3-part C loop that Perl inherits from C is butt-ugly, and only +really necessary if you need irregular counting. The very Perlish +C<..> operator is much more elegant and readable. + + for($i=0; $i<=$max; $i++){ #ick! + do_something($i); + } + + for(0..$max){ #very nice + do_something($_); + } + + +=head1 CONFIGURATION + +This Policy is not configurable except for the standard options. + + +=head1 AUTHOR + +Jeffrey Ryan Thalhammer + +=head1 COPYRIGHT + +Copyright (c) 2005-2008 Jeffrey Ryan Thalhammer. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ControlStructures/ProhibitCascadingIfElse.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ControlStructures/ProhibitCascadingIfElse.pm new file mode 100644 index 0000000..21fc1c2 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ControlStructures/ProhibitCascadingIfElse.pm @@ -0,0 +1,133 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Policy/ControlStructures/ProhibitCascadingIfElse.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Policy::ControlStructures::ProhibitCascadingIfElse; + +use 5.006001; +use strict; +use warnings; +use Readonly; + +use Perl::Critic::Utils qw{ :severities }; +use base 'Perl::Critic::Policy'; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +Readonly::Scalar my $DESC => q{Cascading if-elsif chain}; +Readonly::Scalar my $EXPL => [ 117, 118 ]; + +#----------------------------------------------------------------------------- + +sub supported_parameters { + return ( + { + name => 'max_elsif', + description => 'The maximum number of alternatives that will be allowed.', + default_string => '2', + behavior => 'integer', + integer_minimum => 1, + }, + ); +} + +sub default_severity { return $SEVERITY_MEDIUM } +sub default_themes { return qw( core pbp maintenance complexity ) } +sub applies_to { return 'PPI::Statement::Compound' } + +#----------------------------------------------------------------------------- + +sub violates { + my ( $self, $elem, undef ) = @_; + + return if ($elem->type() ne 'if'); + + if ( _count_elsifs($elem) > $self->{_max_elsif} ) { + return $self->violation( $DESC, $EXPL, $elem ); + } + return; #ok! +} + +sub _count_elsifs { + my $elem = shift; + return + grep { $_->isa('PPI::Token::Word') && $_ eq 'elsif' } $elem->schildren(); +} + +1; + +__END__ + +#----------------------------------------------------------------------------- + +=pod + +=for stopwords lookup + +=head1 NAME + +Perl::Critic::Policy::ControlStructures::ProhibitCascadingIfElse - Don't write long "if-elsif-elsif-elsif-elsif...else" chains. + +=head1 AFFILIATION + +This Policy is part of the core L distribution. + + +=head1 DESCRIPTION + +Long C chains are hard to digest, especially if they are +longer than a single page or screen. If testing for equality, use a +hash lookup instead. See L for another approach. + + if ($condition1) { #ok + $foo = 1; + } + elsif ($condition2) { #ok + $foo = 2; + } + elsif ($condition3) { #ok + $foo = 3; + } + elsif ($condition4) { #too many! + $foo = 4; + } + else { #ok + $foo = $default; + } + +=head1 CONFIGURATION + +This policy can be configured with a maximum number of C alternatives +to allow. The default is 2. This can be specified via a C item in +the F<.perlcriticrc> file: + + [ControlStructures::ProhibitCascadingIfElse] + max_elsif = 3 + +=head1 AUTHOR + +Jeffrey Ryan Thalhammer + +=head1 COPYRIGHT + +Copyright (c) 2005-2008 Jeffrey Ryan Thalhammer. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ControlStructures/ProhibitDeepNests.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ControlStructures/ProhibitDeepNests.pm new file mode 100644 index 0000000..f30dcb5 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ControlStructures/ProhibitDeepNests.pm @@ -0,0 +1,124 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Policy/ControlStructures/ProhibitDeepNests.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Policy::ControlStructures::ProhibitDeepNests; + +use 5.006001; +use strict; +use warnings; +use Readonly; + +use Perl::Critic::Utils qw{ :severities }; +use base 'Perl::Critic::Policy'; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +Readonly::Scalar my $DESC => q{Code structure is deeply nested}; +Readonly::Scalar my $EXPL => q{Consider refactoring}; + +#----------------------------------------------------------------------------- + +sub supported_parameters { + return ( + { + name => 'max_nests', + description => 'The maximum number of nested constructs to allow.', + default_string => '5', + behavior => 'integer', + integer_minimum => 1, + }, + ); +} + +sub default_severity { return $SEVERITY_MEDIUM } +sub default_themes { return qw(core maintenance complexity) } +sub applies_to { return 'PPI::Statement::Compound' } + +#----------------------------------------------------------------------------- + +sub violates { + my ( $self, $elem, undef ) = @_; + + my $nest_count = 1; #For _this_ element + my $parent = $elem; + + while ( $parent = $parent->parent() ){ + if( $parent->isa('PPI::Statement::Compound') ) { + $nest_count++; + } + } + + if ( $nest_count > $self->{_max_nests} ) { + return $self->violation( $DESC, $EXPL, $elem ); + } + return; #ok! +} + + +1; + +__END__ + + +#----------------------------------------------------------------------------- + +=pod + +=for stopwords refactored + +=head1 NAME + +Perl::Critic::Policy::ControlStructures::ProhibitDeepNests - Don't write deeply nested loops and conditionals. + +=head1 AFFILIATION + +This Policy is part of the core L distribution. + + +=head1 DESCRIPTION + +Deeply nested code is often hard to understand and may be a sign that +it needs to be refactored. There are several good books on how to +refactor code. I like Martin Fowler's "Refactoring: Improving The +Design of Existing Code". + + +=head1 CONFIGURATION + +The maximum number of nested control structures can be configured via a value +for C in a F<.perlcriticrc> file. Each for-loop, if-else, while, +and until block is counted as one nest. Postfix forms of these constructs are +not counted. The default maximum is 5. Customization in a F<.perlcriticrc> +file looks like this: + + [ControlStructures::ProhibitDeepNests] + max_nests = 3 + +=head1 AUTHOR + +Jeffrey Ryan Thalhammer + +=head1 COPYRIGHT + +Copyright (c) 2005-2008 Jeffrey Ryan Thalhammer. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ControlStructures/ProhibitLabelsWithSpecialBlockNames.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ControlStructures/ProhibitLabelsWithSpecialBlockNames.pm new file mode 100644 index 0000000..13c6fa9 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ControlStructures/ProhibitLabelsWithSpecialBlockNames.pm @@ -0,0 +1,124 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Policy/ControlStructures/ProhibitLabelsWithSpecialBlockNames.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Policy::ControlStructures::ProhibitLabelsWithSpecialBlockNames; + +use 5.006001; +use strict; +use warnings; + +use Readonly; + +use Perl::Critic::Utils qw{ :severities hashify }; +use base 'Perl::Critic::Policy'; + +our $VERSION = '1.088'; + +Readonly::Hash my %SPECIAL_BLOCK_NAMES => + hashify( qw< BEGIN END INIT CHECK UNITCHECK > ); + +#----------------------------------------------------------------------------- + +Readonly::Scalar my $DESC => q; +Readonly::Scalar my $EXPL => + q; + +#----------------------------------------------------------------------------- + +sub supported_parameters { return () } +sub default_severity { return $SEVERITY_HIGH } +sub default_themes { return qw< core bugs > } +sub applies_to { return qw< PPI::Token::Label > } + +#----------------------------------------------------------------------------- + +sub violates { + my ($self, $elem, undef) = @_; + + # Does the function call have enough arguments? + my $label = $elem->content(); + $label =~ s/ \s* : \z //xms; + return if not $SPECIAL_BLOCK_NAMES{ $label }; + + return $self->violation( $DESC, $EXPL, $elem ); +} + + +1; + +#----------------------------------------------------------------------------- + +__END__ + +=for stopwords Lauen O'Regan + +=pod + +=head1 NAME + +Perl::Critic::Policy::ControlStructures::ProhibitLabelsWithSpecialBlockNames - Don't use labels that are the same as the special block names. + + +=head1 AFFILIATION + +This Policy is part of the core L distribution. + + +=head1 DESCRIPTION + +When using one of the special Perl blocks C, C, C, +C, and C, it is easy to mistakenly add a colon to the +end of the block name. E.g.: + + # a BEGIN block that gets executed at compile time. + BEGIN { <...code...> } + + # an ordinary labeled block that gets executed at run time. + BEGIN: { <...code...> } + +The labels "BEGIN:", "END:", etc. are probably errors. This policy +prohibits the special Perl block names from being used as labels. + + +=head1 CONFIGURATION + +This Policy is not configurable except for the standard options. + + +=head1 SEE ALSO + +L +on this issue. + + +=head1 ACKNOWLEDGMENT + +Randy Lauen for identifying the problem. + + +=head1 AUTHOR + +Mike O'Regan + + +=head1 COPYRIGHT + +Copyright (c) 2008 Mike O'Regan. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ControlStructures/ProhibitMutatingListFunctions.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ControlStructures/ProhibitMutatingListFunctions.pm new file mode 100644 index 0000000..5f054be --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ControlStructures/ProhibitMutatingListFunctions.pm @@ -0,0 +1,308 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Policy/ControlStructures/ProhibitMutatingListFunctions.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Policy::ControlStructures::ProhibitMutatingListFunctions; + +use 5.006001; +use strict; +use warnings; +use Readonly; + +use List::MoreUtils qw( none any ); + +use Perl::Critic::Utils qw{ + :booleans :characters :severities :data_conversion :classification :ppi +}; + +use base 'Perl::Critic::Policy'; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +Readonly::Array my @BUILTIN_LIST_FUNCS => qw( map grep ); +Readonly::Array my @CPAN_LIST_FUNCS => _get_cpan_list_funcs(); + +#----------------------------------------------------------------------------- + +sub _get_cpan_list_funcs { + return qw( List::Util::first ), + map { 'List::MoreUtils::'.$_ } _get_list_moreutils_funcs(); +} + +#----------------------------------------------------------------------------- + +sub _get_list_moreutils_funcs { + return qw(any all none notall true false firstidx first_index + lastidx last_index insert_after insert_after_string); +} + +#----------------------------------------------------------------------------- + +sub _is_topic { + my $elem = shift; + return defined $elem + && $elem->isa('PPI::Token::Magic') + && $elem eq q{$_}; ##no critic (InterpolationOfMetachars) +} + + +#----------------------------------------------------------------------------- + +Readonly::Scalar my $DESC => q{Don't modify $_ in list functions}; ##no critic (InterpolationOfMetachars) +Readonly::Scalar my $EXPL => [ 114 ]; + +#----------------------------------------------------------------------------- + +sub supported_parameters { + return ( + { + name => 'list_funcs', + description => 'The base set of functions to check.', + default_string => join ($SPACE, @BUILTIN_LIST_FUNCS, @CPAN_LIST_FUNCS ), + behavior => 'string list', + }, + { + name => 'add_list_funcs', + description => 'The set of functions to check, in addition to those given in list_funcs.', + default_string => $EMPTY, + behavior => 'string list', + }, + ); +} + +sub default_severity { return $SEVERITY_HIGHEST } +sub default_themes { return qw(core bugs pbp) } +sub applies_to { return 'PPI::Token::Word' } + +#----------------------------------------------------------------------------- + +sub initialize_if_enabled { + my ($self, $config) = @_; + + $self->{_all_list_funcs} = { + hashify keys %{ $self->{_list_funcs} }, keys %{ $self->{_add_list_funcs} } + }; + + return $TRUE; +} + +#----------------------------------------------------------------------------- + +sub violates { + my ($self, $elem, $doc) = @_; + + # Is this element a list function? + return if not $self->{_all_list_funcs}->{$elem}; + return if not is_function_call($elem); + + # Only the block form of list functions can be analyzed. + return if not my $first_arg = first_arg( $elem ); + return if not $first_arg->isa('PPI::Structure::Block'); + return if not _has_topic_side_effect( $first_arg ); + + # Must be a violation + return $self->violation( $DESC, $EXPL, $elem ); +} + +#----------------------------------------------------------------------------- + +sub _has_topic_side_effect { + my $node = shift; + + # Search through all significant elements in the block, + # testing each element to see if it mutates the topic. + my $tokens = $node->find( 'PPI::Token' ) || []; + for my $elem ( @{ $tokens } ) { + next if not $elem->significant(); + return 1 if _is_assignment_to_topic( $elem ); + return 1 if _is_topic_mutating_regex( $elem ); + return 1 if _is_topic_mutating_func( $elem ); + return 1 if _is_topic_mutating_substr( $elem ); + } + return; +} + +#----------------------------------------------------------------------------- + +sub _is_assignment_to_topic { + my $elem = shift; + return if not _is_topic( $elem ); + + my $sib = $elem->snext_sibling(); + if ($sib && $sib->isa('PPI::Token::Operator')) { + return 1 if _is_assignment_operator( $sib ); + } + + my $psib = $elem->sprevious_sibling(); + if ($psib && $psib->isa('PPI::Token::Operator')) { + return 1 if _is_increment_operator( $psib ); + } + + return; +} + +#----------------------------------------------------------------------------- + +sub _is_topic_mutating_regex { + my $elem = shift; + return if ! ( $elem->isa('PPI::Token::Regexp::Substitute') + || $elem->isa('PPI::Token::Regexp::Transliterate') ); + + # If the previous sibling does not exist, then + # the regex implicitly binds to $_ + my $prevsib = $elem->sprevious_sibling; + return 1 if not $prevsib; + + # If the previous sibling does exist, then it + # should be a binding operator. + return 1 if not _is_binding_operator( $prevsib ); + + # Check if the sibling before the biding operator + # is explicitly set to $_ + my $bound_to = $prevsib->sprevious_sibling; + return _is_topic( $bound_to ); +} + +#----------------------------------------------------------------------------- + +sub _is_topic_mutating_func { + my $elem = shift; + return if not $elem->isa('PPI::Token::Word'); + my @mutator_funcs = qw(chop chomp undef); + return if not any { $elem eq $_ } @mutator_funcs; + return if not is_function_call( $elem ); + + # If these functions have no argument, + # they default to mutating $_ + my $first_arg = first_arg( $elem ); + if (not defined $first_arg) { + # undef does not default to $_, unlike the others + return if $elem eq 'undef'; + return 1; + } + return _is_topic( $first_arg ); +} + +#----------------------------------------------------------------------------- + +Readonly::Scalar my $MUTATING_SUBSTR_ARG_COUNT => 4; + +sub _is_topic_mutating_substr { + my $elem = shift; + return if $elem ne 'substr'; + return if not is_function_call( $elem ); + + # check and see if the first arg is $_ + my @args = parse_arg_list( $elem ); + return @args >= $MUTATING_SUBSTR_ARG_COUNT && _is_topic( $args[0]->[0] ); +} + +#----------------------------------------------------------------------------- + +{ + ##no critic(ArgUnpacking) + + my %assignment_ops = hashify qw( = *= /= += -= %= **= x= .= &= |= ^= &&= ||= ++ -- ); + sub _is_assignment_operator { return exists $assignment_ops{$_[0]} } + + my %increment_ops = hashify qw( ++ -- ); + sub _is_increment_operator { return exists $increment_ops{$_[0]} } + + my %binding_ops = hashify qw( =~ !~ ); + sub _is_binding_operator { return exists $binding_ops{$_[0]} } +} + +1; + +#----------------------------------------------------------------------------- + +__END__ + +=pod + +=head1 NAME + +Perl::Critic::Policy::ControlStructures::ProhibitMutatingListFunctions - Don't modify C<$_> in list functions. + +=head1 AFFILIATION + +This Policy is part of the core L distribution. + + +=head1 DESCRIPTION + +C, C and other list operators are intended to transform arrays into +other arrays by applying code to the array elements one by one. For speed, +the elements are referenced via a C<$_> alias rather than copying them. As a +consequence, if the code block of the C or C modify C<$_> in any +way, then it is actually modifying the source array. This IS technically +allowed, but those side effects can be quite surprising, especially when the +array being passed is C<@_> or perhaps C! Instead authors +should restrict in-place array modification to C +constructs instead, or use C. + +=head1 CONFIGURATION + +By default, this policy applies to the following list functions: + + map grep + List::Util qw(first) + List::MoreUtils qw(any all none notall true false firstidx first_index + lastidx last_index insert_after insert_after_string) + +This list can be overridden the F<.perlcriticrc> file like this: + + [ControlStructures::ProhibitMutatingListFunctions] + list_funcs = map grep List::Util::first + +Or, one can just append to the list like so: + + [ControlStructures::ProhibitMutatingListFunctions] + add_list_funcs = Foo::Bar::listmunge + +=head1 LIMITATIONS + +This policy deliberately does not apply to C or +C. + +Currently, the policy only detects explicit external module usage like this: + + my @out = List::MoreUtils::any {s/^foo//} @in; + +and not like this: + + use List::MoreUtils qw(any); + my @out = any {s/^foo//} @in; + +This policy looks only for modifications of C<$_>. Other naughtiness could +include modifying C<$a> and C<$b> in C and the like. That's beyond the +scope of this policy. + +=head1 AUTHOR + +Chris Dolan + +Michael Wolf + +=head1 COPYRIGHT + +Copyright (C) 2006 Chris Dolan. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : + diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ControlStructures/ProhibitNegativeExpressionsInUnlessAndUntilConditions.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ControlStructures/ProhibitNegativeExpressionsInUnlessAndUntilConditions.pm new file mode 100644 index 0000000..ddd4681 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ControlStructures/ProhibitNegativeExpressionsInUnlessAndUntilConditions.pm @@ -0,0 +1,208 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Policy/ControlStructures/ProhibitNegativeExpressionsInUnlessAndUntilConditions.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Policy::ControlStructures::ProhibitNegativeExpressionsInUnlessAndUntilConditions; + +use 5.006001; +use strict; +use warnings; +use English qw(-no_match_vars); +use Readonly; + +use Perl::Critic::Utils qw< :characters :severities :classification hashify >; + +use base 'Perl::Critic::Policy'; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +Readonly::Scalar my $EXPL => [99]; + +#----------------------------------------------------------------------------- + +sub supported_parameters { return qw< > } +sub default_severity { return $SEVERITY_MEDIUM } +sub default_themes { return qw( core maintenance ) } +sub applies_to { return 'PPI::Token::Word' } + +#----------------------------------------------------------------------------- + +sub violates { + my ( $self, $token, undef ) = @_; + + return if $token ne 'until' && $token ne 'unless'; + + return if is_hash_key($token); + return if is_subroutine_name($token); + return if is_method_call($token); + return if is_included_module_name($token); + + return + map + { $self->_violation_for_operator( $_, $token ) } + _get_negative_operators( $token ); +} + +#----------------------------------------------------------------------------- + +sub _get_negative_operators { + my ($token) = @_; + + my @operators; + foreach my $element ( _get_condition_elements($token) ) { + if ( $element->isa('PPI::Node') ) { + my $operators = $element->find( \&_is_negative_operator ); + if ($operators) { + push @operators, @{$operators}; + } + } + else { + if ( _is_negative_operator( undef, $element ) ) { + push @operators, $element; + } + } + } + + return @operators; +} + +#----------------------------------------------------------------------------- + +sub _get_condition_elements { + my ($token) = @_; + + my $statement = $token->statement(); + return if not $statement; + + if ($statement->isa('PPI::Statement::Compound')) { + my $condition = $token->snext_sibling(); + + return if not $condition; + return if not $condition->isa('PPI::Structure::Condition'); + + return ( $condition ); + } + + my @condition_elements; + my $element = $token; + while ( + $element = $element->snext_sibling() + and $element ne $SCOLON + ) { + push @condition_elements, $element; + } + + return @condition_elements; +} + +#----------------------------------------------------------------------------- + +Readonly::Hash my %NEGATIVE_OPERATORS => hashify( + qw/ + ! not + !~ ne != + < > <= >= <=> + lt gt le ge cmp + / +); + +sub _is_negative_operator { + my (undef, $element) = @_; + + return + $element->isa('PPI::Token::Operator') + && $NEGATIVE_OPERATORS{$element}; +} + +#----------------------------------------------------------------------------- + +sub _violation_for_operator { + my ($self, $operator, $control_structure) = @_; + + return + $self->violation( + qq, + $EXPL, + $control_structure, + ); +} + +1; + +#----------------------------------------------------------------------------- + +__END__ + +=pod + +=for stopwords + +=head1 NAME + +Perl::Critic::Policy::ControlStructures::ProhibitNegativeExpressionsInUnlessAndUntilConditions - Don't use operators like C, C, and C within C and C. + +=head1 AFFILIATION + +This Policy is part of the core L distribution. + + +=head1 DESCRIPTION + + until ($foo ne 'blah') { #not ok + ... + } + + while ($foo eq 'blah') { #ok + ... + } + +A number of people have problems figuring out the meaning of doubly +negated expressions. C and C are both negative +constructs, so any negative (e.g. C) or reversible operators (e.g. +C) included in their conditional expressions are double negations. +Conway considers the following operators to be difficult to understand +within C and C: + + ! not + !~ ne != + < > <= >= <=> + lt gt le ge cmp + + + +=head1 CONFIGURATION + +This Policy is not configurable except for the standard options. + + +=head1 SEE ALSO + +L + +=head1 AUTHOR + +Elliot Shank C<< >> + +=head1 COPYRIGHT + +Copyright (c) 2007-2008 Elliot Shank. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ControlStructures/ProhibitPostfixControls.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ControlStructures/ProhibitPostfixControls.pm new file mode 100644 index 0000000..acf740d --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ControlStructures/ProhibitPostfixControls.pm @@ -0,0 +1,191 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Policy/ControlStructures/ProhibitPostfixControls.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Policy::ControlStructures::ProhibitPostfixControls; + +use 5.006001; +use strict; +use warnings; +use Readonly; + +use Perl::Critic::Utils qw{ :characters :severities :data_conversion :classification }; +use base 'Perl::Critic::Policy'; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +Readonly::Hash my %PAGES_OF => ( + if => [ 93, 94 ], + unless => [ 96, 97 ], + until => [ 96, 97 ], + for => [ 96 ], + foreach => [ 96 ], + while => [ 96 ], +); + +# These functions can have postfix 'if'. +my @DEFAULT_FLOW_CONTROL = qw( warn die carp croak cluck confess goto exit ); + +#----------------------------------------------------------------------------- + +sub supported_parameters { + return ( + { + name => 'allow', + description => 'The permitted postfix controls.', + default_string => $EMPTY, + behavior => 'enumeration', + enumeration_values => [ sort keys %PAGES_OF ], + enumeration_allow_multiple_values => 1, + }, + { + name => 'flowcontrol', + description => 'The exempt flow control functions.', + default_string => 'carp cluck confess croak die exit goto warn', + behavior => 'string list', + }, + ); +} + +sub default_severity { return $SEVERITY_LOW } +sub default_themes { return qw(core pbp cosmetic) } +sub applies_to { return 'PPI::Token::Word' } + +#----------------------------------------------------------------------------- + +sub violates { + my ( $self, $elem, undef ) = @_; + + my $expl = $PAGES_OF{$elem}; + return if not $expl; + + return if is_hash_key($elem); + return if is_method_call($elem); + return if is_subroutine_name($elem); + return if is_included_module_name($elem); + return if is_package_declaration($elem); + + # Skip controls that are allowed + return if exists $self->{_allow}->{$elem}; + + # Skip Compound variety (these are good) + my $stmnt = $elem->statement(); + return if !$stmnt; + return if $stmnt->isa('PPI::Statement::Compound'); + + # Handle special cases + if ( $elem eq 'if' ) { + # Postfix 'if' allowed with loop breaks, or other + # flow-controls like 'die', 'warn', and 'croak' + return if $stmnt->isa('PPI::Statement::Break'); + return if defined $self->{_flowcontrol}{ $stmnt->schild(0) }; + } + + # If we get here, it must be postfix. + my $desc = qq{Postfix control "$elem" used}; + return $self->violation( $desc, $expl, $elem ); +} + +1; + +__END__ + +=pod + +=for stopwords flowcontrol + +=head1 NAME + +Perl::Critic::Policy::ControlStructures::ProhibitPostfixControls - Write C instead of C. + +=head1 AFFILIATION + +This Policy is part of the core L distribution. + + +=head1 DESCRIPTION + +Conway discourages using postfix control structures (C, C, +C, C, C) because they hide control flow. The +C and C controls are particularly evil because they +lead to double-negatives that are hard to comprehend. The only +tolerable usage of a postfix C is when it follows a loop break +such as C, C, C, or C. + + do_something() if $condition; #not ok + if($condition){ do_something() } #ok + + do_something() while $condition; #not ok + while($condition){ do_something() } #ok + + do_something() unless $condition; #not ok + do_something() unless ! $condition; #really bad + if(! $condition){ do_something() } #ok + + do_something() until $condition; #not ok + do_something() until ! $condition; #really bad + while(! $condition){ do_something() } #ok + + do_something($_) for @list; #not ok + + LOOP: + for my $n (0..100){ + next if $condition; #ok + last LOOP if $other_condition; #also ok + } + +=head1 CONFIGURATION + +A set of constructs to be ignored by this policy can specified by +giving a value for 'allow' of a string of space-delimited keywords: +C, C, C, C, and/or C. An example of +specifying allowed flow-control structures in a F<.perlcriticrc> file: + + [ControlStructures::ProhibitPostfixControls] + allow = for if until + +By default, all postfix control keywords are prohibited. + +The set of flow-control functions that are exempt from the restriction +can also be configured with the 'flowcontrol' directive in your +F<.perlcriticrc> file: + + [ControlStructures::ProhibitPostfixControls] + flowcontrol = warn die carp croak cluck confess goto exit + +=head1 NOTES + +The C, C, and C functions are frequently used as +flow-controls just like C or C. So this Policy does +permit you to use a postfix C when the statement begins with one +of those functions. It is also pretty common to use C, C, +and C with a postfix C, so those are allowed too. + + +=head1 AUTHOR + +Jeffrey Ryan Thalhammer + +=head1 COPYRIGHT + +Copyright (c) 2005-2008 Jeffrey Ryan Thalhammer. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ControlStructures/ProhibitUnlessBlocks.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ControlStructures/ProhibitUnlessBlocks.pm new file mode 100644 index 0000000..6c60eff --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ControlStructures/ProhibitUnlessBlocks.pm @@ -0,0 +1,103 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Policy/ControlStructures/ProhibitUnlessBlocks.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Policy::ControlStructures::ProhibitUnlessBlocks; + +use 5.006001; +use strict; +use warnings; +use Readonly; + +use Perl::Critic::Utils qw{ :severities }; +use base 'Perl::Critic::Policy'; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +Readonly::Scalar my $DESC => q{"unless" block used}; +Readonly::Scalar my $EXPL => [ 97 ]; + +#----------------------------------------------------------------------------- + +sub supported_parameters { return () } +sub default_severity { return $SEVERITY_LOW } +sub default_themes { return qw(core pbp cosmetic) } +sub applies_to { return 'PPI::Statement::Compound' } + +#----------------------------------------------------------------------------- + +sub violates { + my ( $self, $elem, undef ) = @_; + + if ( $elem->first_element() eq 'unless' ) { + return $self->violation( $DESC, $EXPL, $elem ); + } + return; #ok! +} + +1; + +__END__ + +#----------------------------------------------------------------------------- + +=pod + +=head1 NAME + +Perl::Critic::Policy::ControlStructures::ProhibitUnlessBlocks - Write C instead of C. + +=head1 AFFILIATION + +This Policy is part of the core L distribution. + + +=head1 DESCRIPTION + +Conway discourages using C because it leads to double-negatives +that are hard to understand. Instead, reverse the logic and use C. + + unless($condition) { do_something() } #not ok + unless(! $no_flag) { do_something() } #really bad + if( ! $condition) { do_something() } #ok + +This Policy only covers the block-form of C. For the postfix +variety, see C. + + +=head1 CONFIGURATION + +This Policy is not configurable except for the standard options. + + +=head1 SEE ALSO + +L + +=head1 AUTHOR + +Jeffrey Ryan Thalhammer + +=head1 COPYRIGHT + +Copyright (c) 2005-2008 Jeffrey Ryan Thalhammer. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ControlStructures/ProhibitUnreachableCode.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ControlStructures/ProhibitUnreachableCode.pm new file mode 100644 index 0000000..482b75d --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ControlStructures/ProhibitUnreachableCode.pm @@ -0,0 +1,222 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Policy/ControlStructures/ProhibitUnreachableCode.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Policy::ControlStructures::ProhibitUnreachableCode; + +use 5.006001; +use strict; +use warnings; +use Readonly; + +use Perl::Critic::Utils qw{ :severities :data_conversion :classification }; +use base 'Perl::Critic::Policy'; + +our $VERSION = '1.088'; + +Readonly::Array my @TERMINALS => qw( die exit croak confess ); +Readonly::Hash my %TERMINALS => hashify( @TERMINALS ); + +Readonly::Array my @CONDITIONALS => qw( if unless foreach while until for ); +Readonly::Hash my %CONDITIONALS => hashify( @CONDITIONALS ); + +Readonly::Array my @OPERATORS => qw( && || // and or err ? ); +Readonly::Hash my %OPERATORS => hashify( @OPERATORS ); + +#----------------------------------------------------------------------------- + +Readonly::Scalar my $DESC => q{Unreachable code}; +Readonly::Scalar my $EXPL => q{Consider removing it}; + +#----------------------------------------------------------------------------- + +sub supported_parameters { return () } +sub default_severity { return $SEVERITY_HIGH } +sub default_themes { return qw( core bugs ) } +sub applies_to { return 'PPI::Token::Word' } + +#----------------------------------------------------------------------------- + +sub violates { + my ( $self, $elem, undef ) = @_; + return if ! is_function_call($elem); + + my $stmnt = $elem->statement(); + return if !$stmnt; + return if ( !exists $TERMINALS{$elem} ) && + ( !$stmnt->isa('PPI::Statement::Break') ); + + # Scan the enclosing statement for conditional keywords or logical + # operators. If any are found, then this the folowing statements + # could _potentially_ be executed, so this policy is satisfied. + + # NOTE: When the first operand in an boolean expression is + # C or C, etc., the second operand is technically + # unreachable. But this policy doesn't catch that situation. + + for my $child ( $stmnt->schildren() ) { + return if $child->isa('PPI::Token::Operator') && exists $OPERATORS{$child}; + return if $child->isa('PPI::Token::Word') && exists $CONDITIONALS{$child}; + } + + # If we get here, then the statement contained an unconditional + # die or exit or return. Then all the subsequent sibling + # statements are unreachable, except for those that have labels, + # which could be reached from anywhere using C. Subroutine + # declarations are also exempt for the same reason. "use" and + # "our" statements are exempt because they happen at compile time. + + my @viols = (); + while ( $stmnt = $stmnt->snext_sibling() ) { + my @children = $stmnt->schildren(); + last if @children && $children[0]->isa('PPI::Token::Label'); + next if $stmnt->isa('PPI::Statement::Sub'); + next if $stmnt->isa('PPI::Statement::End'); + next if $stmnt->isa('PPI::Statement::Data'); + + next if $stmnt->isa('PPI::Statement::Include') && + $stmnt->type() ne 'require'; + + next if $stmnt->isa('PPI::Statement::Variable') && + $stmnt->type() eq 'our'; + + push @viols, $self->violation( $DESC, $EXPL, $stmnt ); + } + + return @viols; +} + +1; + +__END__ + +=pod + +=head1 NAME + +Perl::Critic::Policy::ControlStructures::ProhibitUnreachableCode - Don't write code after an unconditional C. + +=head1 AFFILIATION + +This Policy is part of the core L distribution. + + +=head1 DESCRIPTION + +This policy prohibits code following a statement which unconditionally alters +the program flow. This includes calls to C, C, C, C, +C and C. Due to common usage, C and C from +L are also included. + +Code is reachable if any of the following conditions are true: + +=over 4 + +=item * Flow-altering statement has a conditional attached to it + +=item * Statement is on the right side of an operator C<&&>, C<||>, C, C, C, or C. + +=item * Code is prefixed with a label (can potentially be reached via C) + +=item * Code is a subroutine + +=back + +=head1 EXAMPLES + + # not ok + + exit; + print "123\n"; + + # ok + + exit if !$xyz; + print "123\n"; + + # not ok + + for ( 1 .. 10 ) { + next; + print 1; + } + + # ok + + for ( 1 .. 10 ) { + next if $_ == 5; + print 1; + } + + # not ok + + sub foo { + my $bar = shift; + return; + print 1; + } + + # ok + + sub foo { + my $bar = shift; + return if $bar->baz(); + print 1; + } + + + # not ok + + die; + print "123\n"; + + # ok + + die; + LABEL: print "123\n"; + + # not ok + + croak; + do_something(); + + # ok + + croak; + sub do_something {} + + +=head1 CONFIGURATION + +This Policy is not configurable except for the standard options. + + +=head1 SEE ALSO + +L + +=head1 AUTHOR + +Peter Guzis + +=head1 COPYRIGHT + +Copyright (c) 2006-2008 Peter Guzis. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ControlStructures/ProhibitUntilBlocks.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ControlStructures/ProhibitUntilBlocks.pm new file mode 100644 index 0000000..77a5f9a --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ControlStructures/ProhibitUntilBlocks.pm @@ -0,0 +1,102 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Policy/ControlStructures/ProhibitUntilBlocks.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Policy::ControlStructures::ProhibitUntilBlocks; + +use 5.006001; +use strict; +use warnings; +use Readonly; + +use Perl::Critic::Utils qw{ :severities }; +use base 'Perl::Critic::Policy'; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +Readonly::Scalar my $DESC => q{"until" block used}; +Readonly::Scalar my $EXPL => [ 97 ]; + +#----------------------------------------------------------------------------- + +sub supported_parameters { return () } +sub default_severity { return $SEVERITY_LOW } +sub default_themes { return qw(core pbp cosmetic) } +sub applies_to { return 'PPI::Statement' } + +#----------------------------------------------------------------------------- + +sub violates { + my ( $self, $elem, undef ) = @_; + if ( $elem->first_element() eq 'until' ) { + return $self->violation( $DESC, $EXPL, $elem ); + } + return; #ok! +} + +1; + +__END__ + +#----------------------------------------------------------------------------- + +=pod + +=head1 NAME + +Perl::Critic::Policy::ControlStructures::ProhibitUntilBlocks - Write C instead of C. + +=head1 AFFILIATION + +This Policy is part of the core L distribution. + + +=head1 DESCRIPTION + +Conway discourages using C because it leads to double-negatives +that are hard to understand. Instead, reverse the logic and use C. + + until($condition) { do_something() } #not ok + until(! $no_flag) { do_something() } #really bad + while( ! $condition) { do_something() } #ok + +This Policy only covers the block-form of C. For the postfix +variety, see C. + + +=head1 CONFIGURATION + +This Policy is not configurable except for the standard options. + + +=head1 SEE ALSO + +L + +=head1 AUTHOR + +Jeffrey Ryan Thalhammer + +=head1 COPYRIGHT + +Copyright (c) 2005-2008 Jeffrey Ryan Thalhammer. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/Documentation/PodSpelling.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/Documentation/PodSpelling.pm new file mode 100644 index 0000000..9460134 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/Documentation/PodSpelling.pm @@ -0,0 +1,335 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Policy/Documentation/PodSpelling.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Policy::Documentation::PodSpelling; + +use 5.006001; +use strict; +use warnings; + +use English qw(-no_match_vars); +use Readonly; + +use File::Spec; +use File::Temp; +use List::MoreUtils qw(uniq); + +use Perl::Critic::Utils qw{ + :characters + :booleans + :severities + words_from_string +}; +use Perl::Critic::Exception::Fatal::Generic qw{ throw_generic }; + +use base 'Perl::Critic::Policy'; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +Readonly::Scalar my $POD_RX => qr{\A = (?: for|begin|end ) }mx; +Readonly::Scalar my $DESC => q{Check the spelling in your POD}; +Readonly::Scalar my $EXPL => [148]; + +#----------------------------------------------------------------------------- + +sub supported_parameters { + return ( + { + name => 'spell_command', + description => 'The command to invoke to check spelling.', + default_string => 'aspell list', + behavior => 'string', + }, + { + name => 'stop_words', + description => 'The words to not consider as misspelled.', + default_string => $EMPTY, + behavior => 'string list', + }, + ); +} + +sub default_severity { return $SEVERITY_LOWEST } +sub default_themes { return qw( core cosmetic pbp ) } +sub applies_to { return 'PPI::Document' } + +#----------------------------------------------------------------------------- + +my $got_sigpipe = 0; +sub got_sigpipe { + return $got_sigpipe; +} + +#----------------------------------------------------------------------------- + +sub initialize_if_enabled { + my ( $self, $config ) = @_; + + eval { + require File::Which; + require Text::ParseWords; + require Pod::Spell; + require IO::String; + } + or return $FALSE; + + return $FALSE if not $self->_derive_spell_command_line(); + + return $FALSE if not $self->_run_spell_command( <<'END_TEST_CODE' ); +=pod + +=head1 Test The Spell Command + +=cut +END_TEST_CODE + + return $TRUE; +} + +#----------------------------------------------------------------------------- + +sub violates { + my ( $self, $elem, $doc ) = @_; + + my $code = $doc->serialize(); + + my $words = $self->_run_spell_command($code); + + return if not $words; # error running spell command + + return if not @{$words}; # no problems found + + return $self->violation( "$DESC: @{$words}", $EXPL, $doc ); +} + +#----------------------------------------------------------------------------- + +sub _derive_spell_command_line { + my ($self) = @_; + + my @words = Text::ParseWords::shellwords($self->_get_spell_command()); + if (!@words) { + return; + } + if (! File::Spec->file_name_is_absolute($words[0])) { + $words[0] = File::Which::which($words[0]); + } + if (! $words[0] || ! -x $words[0]) { + return; + } + $self->_set_spell_command_line(\@words); + + return $self->_get_spell_command_line(); +} + +#----------------------------------------------------------------------------- + +sub _get_spell_command { + my ( $self ) = @_; + + return $self->{_spell_command}; +} + +sub _set_spell_command { + my ( $self, $spell_command ) = @_; + + $self->{_spell_command} = $spell_command; + + return; +} + +#----------------------------------------------------------------------------- + +sub _get_spell_command_line { + my ( $self ) = @_; + + return $self->{_spell_command_line}; +} + +sub _set_spell_command_line { + my ( $self, $spell_command_line ) = @_; + + $self->{_spell_command_line} = $spell_command_line; + + return; +} + +#----------------------------------------------------------------------------- + +sub _get_stop_words { + my ( $self ) = @_; + + return $self->{_stop_words}; +} + +sub _set_stop_words { + my ( $self, $stop_words ) = @_; + + $self->{_stop_words} = $stop_words; + + return; +} + +#----------------------------------------------------------------------------- + +sub _run_spell_command { + my ($self, $code) = @_; + + my $infh = IO::String->new( $code ); + + my $outfh = File::Temp->new() + or throw_generic "Unable to create tempfile: $OS_ERROR"; + + my $outfile = $outfh->filename(); + my @words; + + local $EVAL_ERROR = undef; + + eval { + # temporarily add our special wordlist to this annoying global + local %Pod::Wordlist::Wordlist = ##no critic(ProhibitPackageVars) + %{ $self->_get_stop_words() }; + + Pod::Spell->new()->parse_from_filehandle($infh, $outfh); + close $outfh or throw_generic "Failed to close pod temp file: $OS_ERROR"; + return if not -s $outfile; # Bail out if no words to spellcheck + + # run spell command and fetch output + local $SIG{PIPE} = sub { $got_sigpipe = 1; }; + my $command_line = join $SPACE, @{$self->_get_spell_command_line()}; + open my $aspell_out_fh, q{-|}, "$command_line < $outfile" ## Is this portable?? + or throw_generic "Failed to open handle to spelling program: $OS_ERROR"; + + @words = uniq( <$aspell_out_fh> ); + close $aspell_out_fh + or throw_generic "Failed to close handle to spelling program: $OS_ERROR"; + + for (@words) { + chomp; + } + + # Why is this extra step needed??? + @words = grep { not exists $Pod::Wordlist::Wordlist{$_} } @words; ## no critic(ProhibitPackageVars) + 1; + } + or do { + # Eat anything we did ourselves above, propagate anything else. + if ( + $EVAL_ERROR + and not ref Perl::Critic::Exception::Fatal::Generic->caught() + ) { + ref $EVAL_ERROR ? $EVAL_ERROR->rethrow() : die $EVAL_ERROR; ## no critic (ErrorHandling::RequireCarping) + } + + return; + }; + + return [ @words ]; +} + +#----------------------------------------------------------------------------- + +1; + +__END__ + +#----------------------------------------------------------------------------- + +=pod + +=for stopwords Hmm stopwords + +=head1 NAME + +Perl::Critic::Policy::Documentation::PodSpelling - Check your spelling. + +=head1 AFFILIATION + +This Policy is part of the core L distribution. + + +=head1 DESCRIPTION + +Did you write the documentation? Check. + +Did you document all of the public methods? Check. + +Is your documentation readable? Hmm... + +Ideally, we'd like Perl::Critic to tell you when your documentation is +inadequate. That's hard to code, though. So, inspired by +L, this module checks the spelling of your POD. It +does this by pulling the prose out of the code and passing it to an +external spell checker. It skips over words you flagged to ignore. +If the spell checker returns any misspelled words, this policy emits a +violation. + +If anything else goes wrong -- you don't have Pod::Spell installed or +we can't locate the spell checking program or (gasp!) your module has +no POD -- then this policy passes. + +To add exceptions on a module-by-module basis, add "stopwords" as +described in L. For example: + + =for stopword gibbles + + =head1 Gibble::Manip -- manipulate your gibbles + + =cut + +=head1 CONFIGURATION + +This policy can be configured to tell which spell checker to use or to +set a global list of spelling exceptions. To do this, put entries in +a F<.perlcriticrc> file like this: + + [Documentation::PodSpelling] + spell_command = aspell list + stop_words = gibbles foobar + +The default spell command is C and it is interpreted as a +shell command. We parse the individual arguments via +L so feel free to use quotes around your arguments. +If the executable path is an absolute file name, it is used as-is. If +it is a relative file name, we employ L to convert it to +an absolute path via the C environment variable. As described +in Pod::Spell and Test::Spelling, the spell checker must accept text +on STDIN and print misspelled words one per line on STDOUT. + +=head1 NOTES + +L is not included with Perl::Critic, nor is a spell +checking program. + +=head1 CREDITS + +Initial development of this policy was supported by a grant from the Perl Foundation. + +=head1 AUTHOR + +Chris Dolan + +=head1 COPYRIGHT + +Copyright (c) 2007-2008 Chris Dolan. Many rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/Documentation/RequirePackageMatchesPodName.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/Documentation/RequirePackageMatchesPodName.pm new file mode 100644 index 0000000..4c7ee6c --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/Documentation/RequirePackageMatchesPodName.pm @@ -0,0 +1,115 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Policy/Documentation/RequirePackageMatchesPodName.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Policy::Documentation::RequirePackageMatchesPodName; + +use 5.006001; +use strict; +use warnings; +use Readonly; + +use Perl::Critic::Utils qw{ :severities :classification }; +use base 'Perl::Critic::Policy'; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +Readonly::Scalar my $PKG_RX => qr{ [[:alpha:]](?:[\w:\']*\w)? }mx; +Readonly::Scalar my $DESC => q{Pod NAME does not match the package declaration}; +Readonly::Scalar my $EXPL => q{}; + +#----------------------------------------------------------------------------- + +sub supported_parameters { return () } +sub default_severity { return $SEVERITY_LOWEST } +sub default_themes { return qw( core cosmetic ) } +sub applies_to { return 'PPI::Document' } + +#----------------------------------------------------------------------------- + +sub violates { + my ( $self, $elem, $doc ) = @_; + + # No POD means no violation + my $pods_ref = $doc->find('PPI::Token::Pod'); + return if !$pods_ref; + + for my $pod (@{$pods_ref}) { + my $content = $pod->content; + + next if $content !~ m{^=head1 [ \t]+ NAME [ \t]*$ \s*}cgxms; + + my ($pod_pkg) = $content =~ m{\G (\S+) }cgxms; + + if (!$pod_pkg) { + return $self->violation( $DESC, q{Empty name declaration}, $elem ); + } + + # idea: force NAME to match the file name in scripts? + return if is_script($doc); # mismatch is normal in program entry points + + # idea: worry about POD escapes? + $pod_pkg =~ s{\A [CL]<(.*)>\z}{$1}gxms; # unwrap + $pod_pkg =~ s{\'}{::}gxms; # perl4 -> perl5 + + my $pkgs = $doc->find('PPI::Statement::Package'); + # no package statement means no possible match + my $pkg = $pkgs ? $pkgs->[0]->namespace : q{}; + $pkg =~ s{\'}{::}gxms; + + return if $pkg eq $pod_pkg; + return $self->violation( $DESC, $EXPL, $pod ); + } + return; # no NAME section found +} + +1; + +__END__ + +#----------------------------------------------------------------------------- + +=pod + +=head1 NAME + +Perl::Critic::Policy::Documentation::RequirePackageMatchesPodName - The C<=head1 NAME> section should match the package. + +=head1 AFFILIATION + +This Policy is part of the core L distribution. + +=head1 DESCRIPTION + + +=head1 CONFIGURATION + +This Policy is not configurable except for the standard options. + +=head1 AUTHOR + +Chris Dolan + +=head1 COPYRIGHT + +Copyright (c) 2008 Chris Dolan + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/Documentation/RequirePodAtEnd.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/Documentation/RequirePodAtEnd.pm new file mode 100644 index 0000000..9500b0e --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/Documentation/RequirePodAtEnd.pm @@ -0,0 +1,131 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Policy/Documentation/RequirePodAtEnd.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Policy::Documentation::RequirePodAtEnd; + +use 5.006001; +use strict; +use warnings; +use Readonly; + +use List::Util qw(first); + +use Perl::Critic::Utils qw{ :severities }; +use base 'Perl::Critic::Policy'; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +Readonly::Scalar my $POD_RX => qr{\A = (?: for|begin|end ) }mx; +Readonly::Scalar my $DESC => q{POD before __END__}; +Readonly::Scalar my $EXPL => [139, 140]; + +#----------------------------------------------------------------------------- + +sub supported_parameters { return () } +sub default_severity { return $SEVERITY_LOWEST } +sub default_themes { return qw( core cosmetic pbp ) } +sub applies_to { return 'PPI::Document' } + +#----------------------------------------------------------------------------- + +sub violates { + my ( $self, $elem, $doc ) = @_; + + # No POD means no violation + my $pods_ref = $doc->find('PPI::Token::Pod'); + return if !$pods_ref; + + # Look for first POD tag that isn't =for, =begin, or =end + my $pod = first { $_ !~ $POD_RX} @{ $pods_ref }; + return if !$pod; + + my $end = $doc->find_first('PPI::Statement::End'); + if ($end) { # No __END__ means definite violation + my $pod_loc = $pod->location(); + my $end_loc = $end->location(); + if ( $pod_loc->[0] > $end_loc->[0] ) { + # POD is after __END__, or relative position couldn't be determined + return; + } + } + + return $self->violation( $DESC, $EXPL, $pod ); +} + +1; + +__END__ + +#----------------------------------------------------------------------------- + +=pod + +=head1 NAME + +Perl::Critic::Policy::Documentation::RequirePodAtEnd - All POD should be after C<__END__>. + +=head1 AFFILIATION + +This Policy is part of the core L distribution. + + +=head1 DESCRIPTION + +Perl stops processing code when it sees an C<__END__> statement. So, +to save processing time, it's faster to put +documentation after the C<__END__>. Also, writing all the POD in one +place usually leads to a more cohesive document, rather than being +forced to follow the layout of your code. This policy issues +violations if any POD is found before an C<__END__>. + + +=head1 CONFIGURATION + +This Policy is not configurable except for the standard options. + + +=head1 NOTES + +Some folks like to use C<=for>, and C<=begin>, and C<=end> tags to +create block comments in-line with their code. Since those tags aren't +usually part of the documentation, this Policy does allows them to +appear before the C<__END__> statement. + + =begin comments + + frobulate() + Accepts: A list of things to frobulate + Returns: True if succesful + + =end comments + + sub frobulate { ... } + +=head1 AUTHOR + +Chris Dolan + +=head1 COPYRIGHT + +Copyright (c) 2006-2008 Chris Dolan. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/Documentation/RequirePodSections.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/Documentation/RequirePodSections.pm new file mode 100644 index 0000000..b0438d9 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/Documentation/RequirePodSections.pm @@ -0,0 +1,477 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Policy/Documentation/RequirePodSections.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Policy::Documentation::RequirePodSections; + +use 5.006001; +use strict; +use warnings; +use Readonly; + +use Perl::Critic::Utils qw{ :booleans :characters :severities :classification }; +use base 'Perl::Critic::Policy'; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +Readonly::Scalar my $EXPL => [133, 138]; + +Readonly::Scalar my $BOOK => 'book'; +Readonly::Scalar my $BOOK_FIRST_EDITION => 'book_first_edition'; +Readonly::Scalar my $MODULE_STARTER_PBP => 'module_starter_pbp'; +Readonly::Scalar my $M_S_PBP_0_0_3 => 'module_starter_pbp_0_0_3'; + +Readonly::Scalar my $DEFAULT_SOURCE => $BOOK_FIRST_EDITION; + +my %SOURCE_TRANSLATION = ( + $BOOK => $BOOK_FIRST_EDITION, + $BOOK_FIRST_EDITION => $BOOK_FIRST_EDITION, + $MODULE_STARTER_PBP => $M_S_PBP_0_0_3, + $M_S_PBP_0_0_3 => $M_S_PBP_0_0_3, +); + +Readonly::Scalar my $EN_AU => 'en_AU'; +Readonly::Scalar my $EN_US => 'en_US'; +Readonly::Scalar my $ORIGINAL_MODULE_VERSION => 'original'; + +Readonly::Hash my %SOURCE_DEFAULT_LANGUAGE => ( + $BOOK_FIRST_EDITION => $ORIGINAL_MODULE_VERSION, + $M_S_PBP_0_0_3 => $EN_AU, +); + +Readonly::Scalar my $BOOK_FIRST_EDITION_US_LIB_SECTIONS => + [ + 'NAME', + 'VERSION', + 'SYNOPSIS', + 'DESCRIPTION', + 'SUBROUTINES/METHODS', + 'DIAGNOSTICS', + 'CONFIGURATION AND ENVIRONMENT', + 'DEPENDENCIES', + 'INCOMPATIBILITIES', + 'BUGS AND LIMITATIONS', + 'AUTHOR', + 'LICENSE AND COPYRIGHT', + ]; + +Readonly::Hash my %DEFAULT_LIB_SECTIONS => ( + $BOOK_FIRST_EDITION => { + $ORIGINAL_MODULE_VERSION => $BOOK_FIRST_EDITION_US_LIB_SECTIONS, + $EN_AU => [ + 'NAME', + 'VERSION', + 'SYNOPSIS', + 'DESCRIPTION', + 'SUBROUTINES/METHODS', + 'DIAGNOSTICS', + 'CONFIGURATION AND ENVIRONMENT', + 'DEPENDENCIES', + 'INCOMPATIBILITIES', + 'BUGS AND LIMITATIONS', + 'AUTHOR', + 'LICENCE AND COPYRIGHT', + ], + $EN_US => $BOOK_FIRST_EDITION_US_LIB_SECTIONS, + }, + $M_S_PBP_0_0_3 => { + $EN_AU => [ + 'NAME', + 'VERSION', + 'SYNOPSIS', + 'DESCRIPTION', + 'INTERFACE', + 'DIAGNOSTICS', + 'CONFIGURATION AND ENVIRONMENT', + 'DEPENDENCIES', + 'INCOMPATIBILITIES', + 'BUGS AND LIMITATIONS', + 'AUTHOR', + 'LICENCE AND COPYRIGHT', + 'DISCLAIMER OF WARRANTY', + ], + $EN_US => [ + 'NAME', + 'VERSION', + 'SYNOPSIS', + 'DESCRIPTION', + 'INTERFACE', + 'DIAGNOSTICS', + 'CONFIGURATION AND ENVIRONMENT', + 'DEPENDENCIES', + 'INCOMPATIBILITIES', + 'BUGS AND LIMITATIONS', + 'AUTHOR', + 'LICENSE AND COPYRIGHT', + 'DISCLAIMER OF WARRANTY' + ], + }, +); + +Readonly::Hash my %DEFAULT_SCRIPT_SECTIONS => ( + $BOOK_FIRST_EDITION => { + $ORIGINAL_MODULE_VERSION => [ + 'NAME', + 'USAGE', + 'DESCRIPTION', + 'REQUIRED ARGUMENTS', + 'OPTIONS', + 'DIAGNOSTICS', + 'EXIT STATUS', + 'CONFIGURATION', + 'DEPENDENCIES', + 'INCOMPATIBILITIES', + 'BUGS AND LIMITATIONS', + 'AUTHOR', + 'LICENSE AND COPYRIGHT', + ], + $EN_AU => [ + 'NAME', + 'VERSION', + 'USAGE', + 'REQUIRED ARGUMENTS', + 'OPTIONS', + 'DESCRIPTION', + 'DIAGNOSTICS', + 'CONFIGURATION AND ENVIRONMENT', + 'DEPENDENCIES', + 'INCOMPATIBILITIES', + 'BUGS AND LIMITATIONS', + 'AUTHOR', + 'LICENCE AND COPYRIGHT', + ], + $EN_US => [ + 'NAME', + 'VERSION', + 'USAGE', + 'REQUIRED ARGUMENTS', + 'OPTIONS', + 'DESCRIPTION', + 'DIAGNOSTICS', + 'CONFIGURATION AND ENVIRONMENT', + 'DEPENDENCIES', + 'INCOMPATIBILITIES', + 'BUGS AND LIMITATIONS', + 'AUTHOR', + 'LICENSE AND COPYRIGHT', + ], + }, + $M_S_PBP_0_0_3 => { + $EN_AU => [ + 'NAME', + 'VERSION', + 'USAGE', + 'REQUIRED ARGUMENTS', + 'OPTIONS', + 'DESCRIPTION', + 'DIAGNOSTICS', + 'CONFIGURATION AND ENVIRONMENT', + 'DEPENDENCIES', + 'INCOMPATIBILITIES', + 'BUGS AND LIMITATIONS', + 'AUTHOR', + 'LICENCE AND COPYRIGHT', + 'DISCLAIMER OF WARRANTY', + ], + $EN_US => [ + 'NAME', + 'VERSION', + 'USAGE', + 'REQUIRED ARGUMENTS', + 'OPTIONS', + 'DESCRIPTION', + 'DIAGNOSTICS', + 'CONFIGURATION AND ENVIRONMENT', + 'DEPENDENCIES', + 'INCOMPATIBILITIES', + 'BUGS AND LIMITATIONS', + 'AUTHOR', + 'LICENSE AND COPYRIGHT', + 'DISCLAIMER OF WARRANTY', + ], + }, +); + +#----------------------------------------------------------------------------- + +sub supported_parameters { + return ( + { + name => 'lib_sections', + description => 'The sections to require for modules (separated by qr/\s* [|] \s*/xm).', + default_string => $EMPTY, + parser => \&_parse_lib_sections, + }, + { + name => 'script_sections', + description => 'The sections to require for programs (separated by qr/\s* [|] \s*/xm).', + default_string => $EMPTY, + parser => \&_parse_script_sections, + }, + { + name => 'source', + description => 'The origin of sections to use.', + default_string => $DEFAULT_SOURCE, + behavior => 'enumeration', + enumeration_values => [ keys %SOURCE_TRANSLATION ], + }, + { + name => 'language', + description => 'The spelling of sections to use.', + default_string => $EMPTY, + behavior => 'enumeration', + enumeration_values => [ $EN_AU, $EN_US ], + }, + ); +} + +sub default_severity { return $SEVERITY_LOW } +sub default_themes { return qw(core pbp maintenance) } +sub applies_to { return 'PPI::Document' } + +#----------------------------------------------------------------------------- + +sub _parse_sections { + my $config_string = shift; + + my @sections = split m{ \s* [|] \s* }mx, $config_string; + + return map { uc $_ } @sections; # Normalize CaSe! +} + +sub _parse_lib_sections { + my ($self, $parameter, $config_string) = @_; + + if ( defined $config_string ) { + $self->{_lib_sections} = [ _parse_sections( $config_string ) ]; + } + + return; +} + +sub _parse_script_sections { + my ($self, $parameter, $config_string) = @_; + + if ( defined $config_string ) { + $self->{_script_sections} = [ _parse_sections( $config_string ) ]; + } + + return; +} + +#----------------------------------------------------------------------------- + +sub initialize_if_enabled { + my ($self, $config) = @_; + + my $source = $self->{_source}; + if ( not defined $source or not defined $DEFAULT_LIB_SECTIONS{$source} ) { + $source = $DEFAULT_SOURCE; + } + + my $language = $self->{_language}; + if ( + not defined $language + or not defined $DEFAULT_LIB_SECTIONS{$source}{$language} + ) { + $language = $SOURCE_DEFAULT_LANGUAGE{$source}; + } + + if ( not $self->_sections_specified('_lib_sections') ) { + $self->{_lib_sections} = $DEFAULT_LIB_SECTIONS{$source}{$language}; + } + if ( not $self->_sections_specified('_script_sections') ) { + $self->{_script_sections} = + $DEFAULT_SCRIPT_SECTIONS{$source}{$language}; + } + + return $TRUE; +} + +sub _sections_specified { + my ( $self, $sections_key ) = @_; + + my $sections = $self->{$sections_key}; + + return 0 if not defined $sections; + + return scalar @{ $sections }; +} + +#----------------------------------------------------------------------------- + +sub violates { + my ( $self, $elem, $doc ) = @_; + + # This policy does not apply unless there is some real code in the + # file. For example, if this file is just pure POD, then + # presumably this file is ancillary documentation and you can use + # whatever headings you want. + return if ! $doc->schild(0); + + my %found_sections = (); + my @violations = (); + + my @required_sections = is_script($doc) ? @{ $self->{_script_sections} } + : @{ $self->{_lib_sections} }; + + my $pods_ref = $doc->find('PPI::Token::Pod'); + return if not $pods_ref; + + # Round up the names of all the =head1 sections + for my $pod ( @{ $pods_ref } ) { + for my $found ( $pod =~ m{ ^ =head1 \s+ ( .+? ) \s* $ }gmx ) { + #Leading/trailing whitespace is already removed + $found_sections{ uc $found } = 1; + } + } + + # Compare the required sections against those we found + for my $required ( @required_sections ) { + if ( not exists $found_sections{$required} ) { + my $desc = qq{Missing "$required" section in POD}; + push @violations, $self->violation( $desc, $EXPL, $doc ); + } + } + + return @violations; +} + +1; + +__END__ + +#----------------------------------------------------------------------------- + +=pod + +=for stopwords licence + +=head1 NAME + +Perl::Critic::Policy::Documentation::RequirePodSections - Organize your POD into the customary sections. + +=head1 AFFILIATION + +This Policy is part of the core L distribution. + + +=head1 DESCRIPTION + +This Policy requires your POD to contain certain C<=head1> sections. +If the file doesn't contain any POD at all, then this Policy does not +apply. Tools like L make it really easy to ensure +that every module has the same documentation framework, and they can +save you lots of keystrokes. + +=head1 DEFAULTS + +Different POD sections are required, depending on whether the file is +a library or program (which is determined by the presence or absence +of a perl shebang line). + + Default Required POD Sections + + Perl Libraries Perl Programs + ------------------------------------------------------ + NAME NAME + VERSION + SYNOPSIS USAGE + DESCRIPTION DESCRIPTION + SUBROUTINES/METHODS REQUIRED ARGUMENTS + OPTIONS + DIAGNOSTICS DIAGNOSTICS + EXIT STATUS + CONFIGURATION AND ENVIRONMENT CONFIGURATION + DEPENDENCIES DEPENDENCIES + INCOMPATIBILITIES INCOMPATIBILITIES + BUGS AND LIMITATIONS BUGS AND LIMITATIONS + AUTHOR AUTHOR + LICENSE AND COPYRIGHT LICENSE AND COPYRIGHT + +=head1 CONFIGURATION + +The default sections above are derived from Damian Conway's I book. Since the book has been published, Conway has +released L, which has different names for some +of the sections, and adds some more. Also, the book and module use +Australian spelling, while the authors of this module have previously +used American spelling. To sort this all out, there are a couple of +options that can be used: C and C. + +The C option has two generic values, C and +C, and two version-specific values, +C and C. Currently, the +generic values map to the corresponding version-specific values, but +may change as new versions of the book and module are released, so use +these if you want to keep up with the latest and greatest. If you +want things to remain stable, use the version-specific values. + +The C option has a default, unnamed value but also accepts +values of C and C. The reason the unnamed value exists +is because the default values for programs don't actually match the +book, even taking spelling into account, i.e. C instead +of C, the removal of C, and +the addition of C. To get precisely the sections as +specified in the book, put the following in your F<.perlcriticrc> +file: + + [Documentation::RequirePodSections] + source = book_first_edition + language = en_AU + +If you want to use + + [Documentation::RequirePodSections] + source = module_starter_pbp + language = en_US + +you will need to modify your F<~/.module-starter/PBP/Module.pm> +template because it is generated using Australian spelling. + +Presently, the difference between C and C is in how the +word "licence" is spelled. + +The sections required for modules and programs can be independently +customized, overriding any values for C and C, by +giving values for C and C of a string +of pipe-delimited required POD section names. An example of entries +in a F<.perlcriticrc> file: + + [Documentation::RequirePodSections] + lib_sections = NAME | SYNOPSIS | BUGS AND LIMITATIONS | AUTHOR + script_sections = NAME | USAGE | OPTIONS | EXIT STATUS | AUTHOR + +=head1 LIMITATIONS + +Currently, this Policy does not look for the required POD sections +below the C<=head1> level. Also, it does not require the sections to +appear in any particular order. + +=head1 AUTHOR + +Jeffrey Ryan Thalhammer + +=head1 COPYRIGHT + +Copyright (c) 2006-2008 Jeffrey Ryan Thalhammer. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ErrorHandling/RequireCarping.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ErrorHandling/RequireCarping.pm new file mode 100644 index 0000000..259c6fa --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ErrorHandling/RequireCarping.pm @@ -0,0 +1,430 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Policy/ErrorHandling/RequireCarping.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Policy::ErrorHandling::RequireCarping; + +use 5.006001; +use strict; +use warnings; +use Readonly; + +use Perl::Critic::Utils qw{ + :booleans :characters :severities :classification :data_conversion +}; +use Perl::Critic::Utils::PPI qw{ is_ppi_expression_or_generic_statement }; +use base 'Perl::Critic::Policy'; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +Readonly::Scalar my $EXPL => [ 283 ]; + +#----------------------------------------------------------------------------- + +sub supported_parameters { + return ( + { + name => 'allow_messages_ending_with_newlines', + description => q{Don't complain about die or warn if the message ends in a newline.}, + default_string => '1', + behavior => 'boolean', + }, + ); +} + +sub default_severity { return $SEVERITY_MEDIUM } +sub default_themes { return qw( core pbp maintenance ) } +sub applies_to { return 'PPI::Token::Word' } + +#----------------------------------------------------------------------------- + +sub violates { + my ( $self, $elem, undef ) = @_; + + my $alternative; + if ( $elem eq 'warn' ) { + $alternative = 'carp'; + } + elsif ( $elem eq 'die' ) { + $alternative = 'croak'; + } + else { + return; + } + + return if ! is_function_call($elem); + + if ($self->{_allow_messages_ending_with_newlines}) { + return if _last_flattened_argument_list_element_ends_in_newline($elem); + } + + my $desc = qq{"$elem" used instead of "$alternative"}; + return $self->violation( $desc, $EXPL, $elem ); +} + +#----------------------------------------------------------------------------- + +sub _last_flattened_argument_list_element_ends_in_newline { + my $die_or_warn = shift; + + my $last_flattened_argument = + _find_last_flattened_argument_list_element($die_or_warn); + if ( + $last_flattened_argument + and ( + $last_flattened_argument->isa('PPI::Token::Quote::Double') + or $last_flattened_argument->isa('PPI::Token::Quote::Interpolate') + ) + ) { + return $TRUE if $last_flattened_argument =~ m{ [\\] n . \z }xmso; + } + + return $FALSE +} + +#----------------------------------------------------------------------------- +# Here starts the fun. Explanation by example: +# +# Let's say we've got the following (contrived) statement: +# +# die q{Isn't }, ( $this, ( " fun?\n" ) , ) if "It isn't Monday."; +# +# This statement should pass because the last parameter that die is going to +# get is C<" fun?\n">. +# +# The approach is to first find the last non-flattened parameter. If this +# is a simple token, we're done. Else, it's some aggregate thing. We can't +# tell what C is going to do, so we give up on +# anything other than a PPI::Structure::List. +# +# There are three possible scenarios for the children of a List: +# +# * No children of the List, i.e. the list looks like C< ( ) >. +# * One PPI::Statement::Expression element. +# * One PPI::Statement element. That's right, an instance of the base +# statement class and not some subclass. *sigh* +# +# In the first case, we're done. The latter two cases get treated +# identically. We get the last child of the Statement and start the search +# all over again. +# +# Back to our example. The PPI tree for this expression is +# +# PPI::Document +# PPI::Statement +# PPI::Token::Word 'die' +# PPI::Token::Quote::Literal 'q{Isn't }' +# PPI::Token::Operator ',' +# PPI::Structure::List ( ... ) +# PPI::Statement::Expression +# PPI::Token::Symbol '$this' +# PPI::Token::Operator ',' +# PPI::Structure::List ( ... ) +# PPI::Statement::Expression +# PPI::Token::Quote::Double '" fun?\n"' +# PPI::Token::Operator ',' +# PPI::Token::Word 'if' +# PPI::Token::Quote::Double '"It isn't Monday.\n"' +# PPI::Token::Structure ';' +# +# We're starting with the Word containing 'die' (it could just as well be +# 'warn') because the earlier parts of validate() have taken care of any +# other possibility. We're going to scan forward through 'die's siblings +# until we reach what we think the end of its parameters are. So we get +# +# 1. A Literal. A perfectly good argument. +# 2. A comma operator. Looks like we've got more to go. +# 3. A List. Another argument. +# 4. The Word 'if'. Oops. That's a postfix operator. +# +# Thus, the last parameter is the List. So, we've got to scan backwards +# through the components of the List; again, the goal is to find the last +# value in the flattened list. +# +# Before decending into the List, we check that it isn't a subroutine call by +# looking at its prior sibling. In this case, the prior sibling is a comma +# operator, so it's fine. +# +# The List has one Expression element as we expect. We grab the Expression's +# last child and start all over again. +# +# 1. The last child is a comma operator, which Perl will ignore, so we +# skip it. +# 2. The comma's prior sibling is a List. This is the last significant +# part of the outer list. +# 3. The List's prior sibling isn't a Word, so we can continue because the +# List is not a parameter list. +# 4. We go through the child Expression and find that the last child of +# that is a PPI::Token::Quote::Double, which is a simple, non-compound +# token. We return that and we're done. + +sub _find_last_flattened_argument_list_element { + my $die_or_warn = shift; + + # Zoom forward... + my $current_candidate = + _find_last_element_in_subexpression($die_or_warn); + + # ... scan back. + while ( + $current_candidate + and not _is_simple_list_element_token( $current_candidate ) + and not _is_complex_expression_token( $current_candidate ) + ) { + if ( $current_candidate->isa('PPI::Structure::List') ) { + $current_candidate = + _determine_if_list_is_a_plain_list_and_get_last_child( + $current_candidate, + $die_or_warn + ); + } elsif ( not $current_candidate->isa('PPI::Token') ) { + return; + } else { + $current_candidate = $current_candidate->sprevious_sibling(); + } + } + + return if not $current_candidate; + return if _is_complex_expression_token( $current_candidate ); + + my $penultimate_element = $current_candidate->sprevious_sibling(); + if ($penultimate_element) { + # Bail if we've got a Word in front of the Element that isn't + # the original 'die' or 'warn' or anything else that isn't + # a comma or dot operator. + if ( $penultimate_element->isa('PPI::Token::Operator') ) { + if ( + $penultimate_element ne $COMMA + and $penultimate_element ne $PERIOD + ) { + return; + } + } elsif ( $penultimate_element != $die_or_warn ) { + return + } + } + + return $current_candidate; +} + +#----------------------------------------------------------------------------- +# This is the part where we scan forward from the 'die' or 'warn' to find +# the last argument. + +sub _find_last_element_in_subexpression { + my $die_or_warn = shift; + + my $last_following_sibling; + my $next_sibling = $die_or_warn; + while ( + $next_sibling = $next_sibling->snext_sibling() + and not _is_postfix_operator( $next_sibling ) + ) { + $last_following_sibling = $next_sibling; + } + + return $last_following_sibling; +} + +#----------------------------------------------------------------------------- +# Ensure that the list isn't a parameter list. Find the last element of it. + +sub _determine_if_list_is_a_plain_list_and_get_last_child { + my ($list, $die_or_warn) = @_; + + my $prior_sibling = $list->sprevious_sibling(); + + if ( $prior_sibling ) { + # Bail if we've got a Word in front of the List that isn't + # the original 'die' or 'warn' or anything else that isn't + # a comma operator. + if ( $prior_sibling->isa('PPI::Token::Operator') ) { + if ( $prior_sibling ne $COMMA ) { + return; + } + } elsif ( $prior_sibling != $die_or_warn ) { + return + } + } + + my @list_children = $list->schildren(); + + # If zero children, nothing to look for. + # If multiple children, then PPI is not giving us + # anything we understand. + return if scalar (@list_children) != 1; + + my $list_child = $list_children[0]; + + # If the child isn't an Expression or it is some other subclass + # of Statement, we again don't understand PPI's output. + return if not is_ppi_expression_or_generic_statement($list_child); + + my @statement_children = $list_child->schildren(); + return if scalar (@statement_children) < 1; + + return $statement_children[-1]; +} + + +#----------------------------------------------------------------------------- +Readonly::Hash my %POSTFIX_OPERATORS => + hashify qw{ if unless while until for foreach }; + +sub _is_postfix_operator { + my $element = shift; + + if ( + $element->isa('PPI::Token::Word') + and $POSTFIX_OPERATORS{$element} + ) { + return $TRUE; + } + + return $FALSE; +} + + +Readonly::Array my @SIMPLE_LIST_ELEMENT_TOKEN_CLASSES => + qw{ + PPI::Token::Number + PPI::Token::Word + PPI::Token::DashedWord + PPI::Token::Symbol + PPI::Token::Quote + }; + +sub _is_simple_list_element_token { + my $element = shift; + + return $FALSE if not $element->isa('PPI::Token'); + + foreach my $class (@SIMPLE_LIST_ELEMENT_TOKEN_CLASSES) { + return $TRUE if $element->isa($class); + } + + return $FALSE; +} + + +#----------------------------------------------------------------------------- +# Tokens that can't possibly be part of an expression simple +# enough for us to examine. + +Readonly::Array my @COMPLEX_EXPRESSION_TOKEN_CLASSES => + qw{ + PPI::Token::ArrayIndex + PPI::Token::QuoteLike + PPI::Token::Regexp + PPI::Token::HereDoc + PPI::Token::Cast + PPI::Token::Label + PPI::Token::Separator + PPI::Token::Data + PPI::Token::End + PPI::Token::Prototype + PPI::Token::Attribute + PPI::Token::Unknown + }; + +sub _is_complex_expression_token { + my $element = shift; + + return $FALSE if not $element->isa('PPI::Token'); + + foreach my $class (@COMPLEX_EXPRESSION_TOKEN_CLASSES) { + return $TRUE if $element->isa($class); + } + + return $FALSE; +} + +1; + +__END__ + +#----------------------------------------------------------------------------- + +=pod + +=head1 NAME + +Perl::Critic::Policy::ErrorHandling::RequireCarping - Use functions from L instead of C or C. + +=head1 AFFILIATION + +This Policy is part of the core L distribution. + + +=head1 DESCRIPTION + +The C and C functions both report the file and line number +where the exception occurred. But if someone else is using your +subroutine, they usually don't care where B code blew up. +Instead, they want to know where B code invoked the subroutine. +The L module provides alternative methods that report the +exception from the caller's file and line number. + +By default, this policy will not complain about C or C, if +it can determine that the message will always result in a terminal +newline. Since perl suppresses file names and line numbers in this +situation, it is assumed that no stack traces are desired either and +none of the L functions are necessary. + + die "oops" if $explosion; #not ok + warn "Where? Where?!" if $tiger; #not ok + + open my $mouth, '<', 'food' + or die 'of starvation'; #not ok + + if (! $dentist_appointment) { + warn "You have bad breath!\n"; #ok + } + + die "$clock not set.\n" if $no_time; #ok + + my $message = "$clock not set.\n"; + die $message if $no_time; #not ok, not obvious + + +=head1 CONFIGURATION + +If you give this policy an C +option in your F<.perlcriticrc> with a false value, then this policy +will disallow all uses of C and C. + + [ErrorHandling::RequireCarping] + allow_messages_ending_with_newlines = 0 + + +=head1 SEE ALSO + +L + +=head1 AUTHOR + +Jeffrey Ryan Thalhammer + +=head1 COPYRIGHT + +Copyright (c) 2005-2008 Jeffrey Ryan Thalhammer. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ErrorHandling/RequireCheckingReturnValueOfEval.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ErrorHandling/RequireCheckingReturnValueOfEval.pm new file mode 100644 index 0000000..f17d256 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/ErrorHandling/RequireCheckingReturnValueOfEval.pm @@ -0,0 +1,374 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Policy/ErrorHandling/RequireCheckingReturnValueOfEval.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Policy::ErrorHandling::RequireCheckingReturnValueOfEval; + +use 5.006001; +use strict; +use warnings; + +use Readonly; + +use Scalar::Util qw< refaddr >; + +use Perl::Critic::Utils qw< :booleans :characters :severities hashify >; +use base 'Perl::Critic::Policy'; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +Readonly::Scalar my $DESC => 'Return value of eval not tested.'; +## no critic (RequireInterpolationOfMetachars) +Readonly::Scalar my $EXPL => + q; +## use critic + +Readonly::Hash my %BOOLEAN_OPERATORS => hashify qw< || && // or and >; +Readonly::Hash my %POSTFIX_OPERATORS => + hashify qw< for foreach if unless while until >; + +#----------------------------------------------------------------------------- + +sub supported_parameters { return () } +sub default_severity { return $SEVERITY_MEDIUM } +sub default_themes { return qw( core bugs ) } +sub applies_to { return 'PPI::Token::Word' } + +#----------------------------------------------------------------------------- + +sub violates { + my ( $self, $elem, undef ) = @_; + + return if $elem->content() ne 'eval'; + + my $evaluated = $elem->snext_sibling() or return; # Nothing to eval! + my $following = $evaluated->snext_sibling(); + + return if _is_in_right_hand_side_of_assignment($elem); + return if _is_in_postfix_expression($elem); + return if + _is_in_correct_position_in_a_condition_or_foreach_loop_collection( + $elem, + $following, + ); + + if ( + $following + and $following->isa('PPI::Token::Operator') + and $BOOLEAN_OPERATORS{ $following->content() } + ) { + return; + } + + return $self->violation($DESC, $EXPL, $elem); +} + +#----------------------------------------------------------------------------- + +sub _is_in_right_hand_side_of_assignment { + my ($elem) = @_; + + my $previous = $elem->sprevious_sibling(); + + if (not $previous) { + $previous = + _grandparent_for_is_in_right_hand_side_of_assignment($elem); + } + + while ($previous) { + my $base_previous = $previous; + + EQUALS_SCAN: + while ($previous) { + if ( $previous->isa('PPI::Token::Operator') ) { + return $TRUE if $previous->content() eq q<=>; + last EQUALS_SCAN if _is_effectively_a_comma($previous); + } + $previous = $previous->sprevious_sibling(); + } + + $previous = + _grandparent_for_is_in_right_hand_side_of_assignment($base_previous); + } + + return; +} + +sub _grandparent_for_is_in_right_hand_side_of_assignment { + my ($elem) = @_; + + my $parent = $elem->parent() or return; + $parent->isa('PPI::Statement') or return; + + my $grandparent = $parent->parent() or return; + + if ( + $grandparent->isa('PPI::Structure::Constructor') + or $grandparent->isa('PPI::Structure::List') + ) { + return $grandparent; + } + + return; +} + +#----------------------------------------------------------------------------- + +Readonly::Scalar my $CONDITION_POSITION_IN_C_STYLE_FOR_LOOP => 1; + +sub _is_in_correct_position_in_a_condition_or_foreach_loop_collection { + my ($elem, $following) = @_; + + my $parent = $elem->parent(); + while ($parent) { + if ( $parent->isa('PPI::Structure::Condition') ) { + return + _is_in_correct_position_in_a_structure_condition( + $elem, $parent, $following, + ); + } + + if ( $parent->isa('PPI::Structure::ForLoop') ) { + my @for_loop_components = $parent->schildren(); + + return $TRUE if 1 == @for_loop_components; + my $condition = + $for_loop_components[$CONDITION_POSITION_IN_C_STYLE_FOR_LOOP] + or return; + + return _descendant_of($elem, $condition); + } + + $parent = $parent->parent(); + } + + return; +} + +sub _is_in_correct_position_in_a_structure_condition { + my ($elem, $parent, $following) = @_; + + my $level = $elem; + while ($level and refaddr $level != $parent) { + my $cursor = refaddr $elem == refaddr $level ? $following : $level; + + IS_FINAL_EXPRESSION_AT_DEPTH: + while ($cursor) { + if ( _is_effectively_a_comma($cursor) ) { + $cursor = $cursor->snext_sibling(); + while ( _is_effectively_a_comma($cursor) ) { + $cursor = $cursor->snext_sibling(); + } + + # Semicolon would be a syntax error here. + return if $cursor; + last IS_FINAL_EXPRESSION_AT_DEPTH; + } + + $cursor = $cursor->snext_sibling(); + } + + my $statement = $level->parent(); + return $TRUE if not $statement; # Shouldn't happen. + return $TRUE if not $statement->isa('PPI::Statement'); # Shouldn't happen. + + $level = $statement->parent(); + if ( + not $level + or ( + not $level->isa('PPI::Structure::List') + and not $level->isa('PPI::Structure::Condition') + ) + ) { + # Shouldn't happen. + return $TRUE; + } + } + + return $TRUE; +} + +# Replace with PPI implementation once it is released. +sub _descendant_of { + my ($cursor, $potential_ancestor) = @_; + + return $EMPTY if not $potential_ancestor; + + while ( refaddr $cursor != refaddr $potential_ancestor ) { + $cursor = $cursor->parent() or return $EMPTY; + } + + return 1; +} + +#----------------------------------------------------------------------------- + +sub _is_in_postfix_expression { + my ($elem) = @_; + + my $previous = $elem->sprevious_sibling(); + while ($previous) { + if ( + $previous->isa('PPI::Token::Word') + and $POSTFIX_OPERATORS{ $previous->content() } + ) { + return $TRUE + } + $previous = $previous->sprevious_sibling(); + } + + return; +} + +#----------------------------------------------------------------------------- + +sub _is_effectively_a_comma { + my ($elem) = @_; + + return if not $elem; + + return + $elem->isa('PPI::Token::Operator') + && ( + $elem->content() eq $COMMA + || $elem->content() eq $FATCOMMA + ); +} + +#----------------------------------------------------------------------------- + +1; + +__END__ + +#----------------------------------------------------------------------------- + +=pod + +=for stopwords destructors + +=head1 NAME + +Perl::Critic::Policy::ErrorHandling::RequireCheckingReturnValueOfEval - You can't depend upon the value of C<$@>/C<$EVAL_ERROR> to tell whether an C failed. + +=head1 AFFILIATION + +This Policy is part of the core L distribution. + + +=head1 DESCRIPTION + +A common idiom in perl for dealing with possible errors is to use +C followed by a check of C<$@>/C<$EVAL_ERROR>: + + eval { + ... + }; + if ($EVAL_ERROR) { + ... + } + +There's a problem with this: the value of C<$EVAL_ERROR> can change +between the end of the C and the C statement. The issue is +object destructors: + + package Foo; + + ... + + sub DESTROY { + ... + eval { ... }; + ... + } + + package main; + + eval { + my $foo = Foo->new(); + ... + }; + if ($EVAL_ERROR) { + ... + } + +Assuming there are no other references to C<$foo> created, when the +C block in C
is exited, C will be invoked, +regardless of whether the C finished normally or not. If the +C in C
fails, but the C in C +succeeds, then C<$EVAL_ERROR> will be empty by the time that the C +is executed. Additional issues arise if you depend upon the exact +contents of C<$EVAL_ERROR> and both Cs fail, because the +messages from both will be concatenated. + +Even if there isn't an C directly in the C method +code, it may invoke code that does use C or otherwise affects +C<$EVAL_ERROR>. + +The solution is to ensure that, upon normal exit, an C returns a +true value and to test that value: + + # Constructors are no problem. + my $object = eval { Class->new() }; + + # To cover the possiblity that an operation may correctly return a + # false value, end the block with "1": + if ( eval { something(); 1 } ) { + ... + } + + eval { + ... + 1; + } + or do { + # Error handling here + }; + +Unfortunately, you can't use the C function to test the +result; C returns an empty string on failure. + +"But we don't use DESTROY() anywhere in our code!" you say. That may +be the case, but do any of the third-party modules you use have them? +What about any you may use in the future or updated versions of the +ones you already use? + + +=head1 CONFIGURATION + +This Policy is not configurable except for the standard options. + + +=head1 SEE ALSO + +See thread on perl5-porters starting here: +L. + + +=head1 AUTHOR + +Elliot Shank C<< >> + +=head1 COPYRIGHT + +Copyright (c) 2008 Elliot Shank. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/InputOutput/ProhibitBacktickOperators.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/InputOutput/ProhibitBacktickOperators.pm new file mode 100644 index 0000000..4f6cd82 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/InputOutput/ProhibitBacktickOperators.pm @@ -0,0 +1,143 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Policy/InputOutput/ProhibitBacktickOperators.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Policy::InputOutput::ProhibitBacktickOperators; + +use 5.006001; +use strict; +use warnings; +use Readonly; + +use Perl::Critic::Utils qw{ :severities is_in_void_context }; + +use base 'Perl::Critic::Policy'; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +Readonly::Scalar my $EXPL => q{Use IPC::Open3 instead}; +Readonly::Scalar my $DESC => q{Backtick operator used}; + +Readonly::Scalar my $VOID_EXPL => q{Assign result to a variable or use system() instead}; +Readonly::Scalar my $VOID_DESC => q{Backtick operator used in void context}; + +#----------------------------------------------------------------------------- + +sub supported_parameters { + return ( + { + name => 'only_in_void_context', + description => 'Allow backticks everywhere except in void contexts.', + behavior => 'boolean', + }, + ); +} + +sub default_severity { return $SEVERITY_MEDIUM } +sub default_themes { return qw(core maintenance) } +sub applies_to { return qw(PPI::Token::QuoteLike::Backtick + PPI::Token::QuoteLike::Command ) } + +#----------------------------------------------------------------------------- + +sub violates { + my ( $self, $elem, undef ) = @_; + + if ( $self->{_only_in_void_context} ) { + return if not is_in_void_context( $elem ); + + return $self->violation( $VOID_DESC, $VOID_EXPL, $elem ); + } + + return $self->violation( $DESC, $EXPL, $elem ); +} + +1; + +__END__ + +#----------------------------------------------------------------------------- + +=pod + +=head1 NAME + +Perl::Critic::Policy::InputOutput::ProhibitBacktickOperators - Discourage stuff like C<@files = `ls $directory`>. + +=head1 AFFILIATION + +This Policy is part of the core L distribution. + + +=head1 DESCRIPTION + +Backticks are super-convenient, especially for CGI programs, but I +find that they make a lot of noise by filling up STDERR with messages +when they fail. I think its better to use IPC::Open3 to trap all the +output and let the application decide what to do with it. + + use IPC::Open3 'open3'; + $SIG{CHLD} = 'IGNORE'; + + @output = `some_command`; #not ok + + my ($writer, $reader, $err); + open3($writer, $reader, $err, 'some_command'); #ok; + @output = <$reader>; #Output here + @errors = <$err>; #Errors here, instead of the console + + +=head1 CONFIGURATION + +Alternatively, if you do want to use backticks, you can restrict +checks to void contexts by adding the following to your +F<.perlcriticrc> file: + + [InputOutput::ProhibitBacktickOperators] + only_in_void_context = 1 + +The purpose of backticks is to capture the output of an external +command. Use of them in a void context is likely a bug. If the +output isn't actually required, C should be used. Otherwise +assign the result to a variable. + + `some_command`; #not ok + $output = `some_command`; #ok + @output = `some_command`; #ok + + +=head1 NOTES + +This policy also prohibits the generalized form of backticks seen as +C. + +See L for more discussion on using C instead of +C<$SIG{CHLD} = 'IGNORE'>. + +=head1 AUTHOR + +Jeffrey Ryan Thalhammer + +=head1 COPYRIGHT + +Copyright (c) 2005-2008 Jeffrey Ryan Thalhammer. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/InputOutput/ProhibitBarewordFileHandles.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/InputOutput/ProhibitBarewordFileHandles.pm new file mode 100644 index 0000000..08c1cd1 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/InputOutput/ProhibitBarewordFileHandles.pm @@ -0,0 +1,119 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Policy/InputOutput/ProhibitBarewordFileHandles.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Policy::InputOutput::ProhibitBarewordFileHandles; + +use 5.006001; +use strict; +use warnings; +use Readonly; + +use Perl::Critic::Utils qw{ :severities :classification :ppi }; +use base 'Perl::Critic::Policy'; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +Readonly::Scalar my $DESC => q{Bareword file handle opened}; +Readonly::Scalar my $EXPL => [ 202, 204 ]; + +#----------------------------------------------------------------------------- + +sub supported_parameters { return () } +sub default_severity { return $SEVERITY_HIGHEST } +sub default_themes { return qw( core pbp bugs ) } +sub applies_to { return 'PPI::Token::Word' } + +#----------------------------------------------------------------------------- + +sub violates { + my ($self, $elem, undef) = @_; + + return if $elem ne 'open'; + return if ! is_function_call($elem); + + my $first_arg = ( parse_arg_list($elem) )[0]; + return if !$first_arg; + my $first_token = $first_arg->[0]; + return if !$first_token; + + if ( $first_token->isa('PPI::Token::Word') ) { + if ( ($first_token ne 'my') && ($first_token !~ m/^STD(?:IN|OUT|ERR)$/mx ) ) { + return $self->violation( $DESC, $EXPL, $elem ); + } + } + return; #ok! +} + +1; + +__END__ + +#----------------------------------------------------------------------------- + +=pod + +=head1 NAME + +Perl::Critic::Policy::InputOutput::ProhibitBarewordFileHandles - Write C instead of C. + +=head1 AFFILIATION + +This Policy is part of the core L distribution. + + +=head1 DESCRIPTION + +Using bareword symbols to refer to file handles is particularly evil +because they are global, and you have no idea if that symbol already +points to some other file handle. You can mitigate some of that risk +by Cizing the symbol first, but that's pretty ugly. Since Perl +5.6, you can use an undefined scalar variable as a lexical reference +to an anonymous filehandle. Alternatively, see the L or +L or L modules for an object-oriented approach. + + open FH, '<', $some_file; #not ok + open my $fh, '<', $some_file; #ok + my $fh = IO::File->new($some_file); #ok + +There are three exceptions: STDIN, STDOUT and STDERR. These three +standard filehandles are always package variables. + + +=head1 CONFIGURATION + +This Policy is not configurable except for the standard options. + + +=head1 SEE ALSO + +L + +L + +=head1 AUTHOR + +Jeffrey Ryan Thalhammer + +=head1 COPYRIGHT + +Copyright (C) 2005-2007 Jeffrey Ryan Thalhammer. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/InputOutput/ProhibitExplicitStdin.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/InputOutput/ProhibitExplicitStdin.pm new file mode 100644 index 0000000..8a2ceac --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/InputOutput/ProhibitExplicitStdin.pm @@ -0,0 +1,126 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Policy/InputOutput/ProhibitExplicitStdin.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Policy::InputOutput::ProhibitExplicitStdin; + +use 5.006001; +use strict; +use warnings; +use Readonly; +use List::MoreUtils qw(any); + +use Perl::Critic::Utils qw{ :severities :classification &parse_arg_list }; +use base 'Perl::Critic::Policy'; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +Readonly::Scalar my $DESC => q{Use "<>" or "" or a prompting module instead of ""}; +Readonly::Scalar my $EXPL => [216,220,221]; + +#----------------------------------------------------------------------------- + +sub supported_parameters { return () } +sub default_severity { return $SEVERITY_HIGH } +sub default_themes { return qw( core pbp maintenance ) } +sub applies_to { return 'PPI::Token::QuoteLike::Readline' } + +#----------------------------------------------------------------------------- + +sub violates { + my ( $self, $elem, undef ) = @_; + + return if $elem ne ''; + return $self->violation( $DESC, $EXPL, $elem ); +} + + +1; + +__END__ + +#----------------------------------------------------------------------------- + +=pod + +=head1 NAME + +Perl::Critic::Policy::InputOutput::ProhibitExplicitStdin - Use "<>" or "" or a prompting module instead of "". + +=head1 AFFILIATION + +This Policy is part of the core L distribution. + + +=head1 DESCRIPTION + +Perl has a useful magic filehandle called C<*ARGV> that checks the +command line and if there are any arguments, opens and reads those as +files. If there are no arguments, C<*ARGV> behaves like C<*STDIN> +instead. This behavior is almost always what you want if you want to +create a program that reads from C. This is often written in +one of the following two equivalent forms: + + while () { + # ... do something with each input line ... + } + # or, equivalently: + while (<>) { + # ... do something with each input line ... + } + +If you want to prompt for user input, try special purpose modules like +L. + + +=head1 CONFIGURATION + +This Policy is not configurable except for the standard options. + + +=head1 CAVEATS + +Due to a bug in the current version of PPI (v1.119_03) and earlier, +the readline operator is often misinterpreted as less-than and +greater-than operators after a comma. Therefore, this policy misses important cases like + + my $content = join '', ; + +because it interprets that line as the nonsensical statement: + + my $content = join '', < STDIN >; + +When that PPI bug is fixed, this policy should start catching those +violations automatically. + +=head1 CREDITS + +Initial development of this policy was supported by a grant from the Perl Foundation. + +=head1 AUTHOR + +Chris Dolan + +=head1 COPYRIGHT + +Copyright (c) 2007-2008 Chris Dolan. Many rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/InputOutput/ProhibitInteractiveTest.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/InputOutput/ProhibitInteractiveTest.pm new file mode 100644 index 0000000..66d23e5 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/InputOutput/ProhibitInteractiveTest.pm @@ -0,0 +1,89 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Policy/InputOutput/ProhibitInteractiveTest.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Policy::InputOutput::ProhibitInteractiveTest; + +use 5.006001; +use strict; +use warnings; +use Readonly; + +use Perl::Critic::Utils qw{ :severities }; +use base 'Perl::Critic::Policy'; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +Readonly::Scalar my $DESC => q{Use IO::Interactive::is_interactive() instead of -t}; +Readonly::Scalar my $EXPL => [ 218 ]; + +#----------------------------------------------------------------------------- + +sub supported_parameters { return () } +sub default_severity { return $SEVERITY_HIGHEST } +sub default_themes { return qw( core pbp bugs ) } +sub applies_to { return 'PPI::Token::Operator' } + +#----------------------------------------------------------------------------- + +sub violates { + my ($self, $elem, $doc) = @_; + return if $elem ne '-t'; + return $self->violation( $DESC, $EXPL, $elem ); +} + +1; + +#----------------------------------------------------------------------------- + +__END__ + +=pod + +=head1 NAME + +Perl::Critic::Policy::InputOutput::ProhibitInteractiveTest - Use prompt() instead of -t. + +=head1 AFFILIATION + +This Policy is part of the core L distribution. + + +=head1 DESCRIPTION + +The C<-t> operator is fragile and complicated. When you are testing +whether C is interactive, It's much more robust to use +well-tested CPAN modules like L. + + +=head1 CONFIGURATION + +This Policy is not configurable except for the standard options. + + +=head1 AUTHOR + +Chris Dolan + +=head1 COPYRIGHT + +Copyright (C) 2006 Chris Dolan. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/InputOutput/ProhibitJoinedReadline.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/InputOutput/ProhibitJoinedReadline.pm new file mode 100644 index 0000000..0dbe4a0 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/InputOutput/ProhibitJoinedReadline.pm @@ -0,0 +1,119 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Policy/InputOutput/ProhibitJoinedReadline.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Policy::InputOutput::ProhibitJoinedReadline; + +use 5.006001; +use strict; +use warnings; +use Readonly; +use List::MoreUtils qw(any); + +use Perl::Critic::Utils qw{ :severities :classification parse_arg_list }; +use base 'Perl::Critic::Policy'; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +Readonly::Scalar my $DESC => q{Use "local $/ = undef" or File::Slurp instead of joined readline}; ##no critic qw(Interpolation) +Readonly::Scalar my $EXPL => [213]; + +#----------------------------------------------------------------------------- + +sub supported_parameters { return () } +sub default_severity { return $SEVERITY_MEDIUM } +sub default_themes { return qw( core pbp performance ) } +sub applies_to { return 'PPI::Token::Word' } + +#----------------------------------------------------------------------------- + +sub violates { + my ( $self, $elem, undef ) = @_; + + return if $elem ne 'join'; + return if ! is_function_call($elem); + my @args = parse_arg_list($elem); + shift @args; # ignore separator string + + if (any { any { $_->isa('PPI::Token::QuoteLike::Readline') } @{$_} } @args) { + return $self->violation( $DESC, $EXPL, $elem ); + } + + return; # OK +} + + +1; + +__END__ + +#----------------------------------------------------------------------------- + +=pod + +=head1 NAME + +Perl::Critic::Policy::InputOutput::ProhibitJoinedReadline - Use C or L instead of joined readline. + +=head1 AFFILIATION + +This Policy is part of the core L distribution. + + +=head1 DESCRIPTION + +It's really easy to slurp a whole filehandle in at once with C>, but that's inefficient -- Perl goes to the trouble of +splitting the file into lines only to have that work thrown away. + +To save performance, either slurp the filehandle without splitting like so: + + do { local $/ = undef; <$fh> } + +or use L, which is even faster. + + +=head1 CONFIGURATION + +This Policy is not configurable except for the standard options. + + +=head1 CAVEATS + +Due to a bug in the current version of PPI (v1.119_03) and earlier, +the readline operator is often misinterpreted as less-than and +greater-than operators after a comma. Therefore, this policy only +works well on the empty filehandle, C<<>>. When PPI is fixed, this +should just start working. + +=head1 CREDITS + +Initial development of this policy was supported by a grant from the Perl Foundation. + +=head1 AUTHOR + +Chris Dolan + +=head1 COPYRIGHT + +Copyright (c) 2007-2008 Chris Dolan. Many rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/InputOutput/ProhibitOneArgSelect.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/InputOutput/ProhibitOneArgSelect.pm new file mode 100644 index 0000000..bc4e2e5 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/InputOutput/ProhibitOneArgSelect.pm @@ -0,0 +1,108 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Policy/InputOutput/ProhibitOneArgSelect.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Policy::InputOutput::ProhibitOneArgSelect; + +use 5.006001; +use strict; +use warnings; +use Readonly; + +use Perl::Critic::Utils qw{ :severities :classification :ppi }; +use base 'Perl::Critic::Policy'; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +Readonly::Scalar my $DESC => q{One-argument "select" used}; +Readonly::Scalar my $EXPL => [ 224 ]; + +#----------------------------------------------------------------------------- + +sub supported_parameters { return () } +sub default_severity { return $SEVERITY_HIGH } +sub default_themes { return qw( core bugs pbp ) } +sub applies_to { return 'PPI::Token::Word' } + +#----------------------------------------------------------------------------- + +sub violates { + my ($self, $elem, undef) = @_; + + return if $elem ne 'select'; + return if ! is_function_call($elem); + + if( scalar parse_arg_list($elem) == 1 ) { + return $self->violation( $DESC, $EXPL, $elem ); + } + return; #ok! +} + +1; + +__END__ + +#----------------------------------------------------------------------------- + +=pod + +=head1 NAME + +Perl::Critic::Policy::InputOutput::ProhibitOneArgSelect - Never write C. + +=head1 AFFILIATION + +This Policy is part of the core L distribution. + + +=head1 DESCRIPTION + +Conway discourages the use of a raw C when setting +autoflushes. We'll extend that further by simply prohibiting the +one-argument form of C entirely; if you really need it you +should know when/where/why that is. For performing autoflushes, +Conway recommends the use of C instead. + + select((select($fh), $|=1)[0]); # not ok + select $fh; # not ok + + use IO::Handle; + $fh->autoflush(); # ok + *STDOUT->autoflush(); # ok + + +=head1 CONFIGURATION + +This Policy is not configurable except for the standard options. + + +=head1 SEE ALSO + +L. + +=head1 AUTHOR + +Graham TerMarsch + +=head1 COPYRIGHT + +Copyright (C) 2005-2007 Graham TerMarsch. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/InputOutput/ProhibitReadlineInForLoop.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/InputOutput/ProhibitReadlineInForLoop.pm new file mode 100644 index 0000000..9ee8ed2 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/InputOutput/ProhibitReadlineInForLoop.pm @@ -0,0 +1,99 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Policy/InputOutput/ProhibitReadlineInForLoop.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Policy::InputOutput::ProhibitReadlineInForLoop; + +use 5.006001; +use strict; +use warnings; +use Readonly; + +use Perl::Critic::Utils qw{ :severities }; +use base 'Perl::Critic::Policy'; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +Readonly::Scalar my $DESC => q{Readline inside "for" loop}; +Readonly::Scalar my $EXPL => [ 211 ]; + +#----------------------------------------------------------------------------- + +sub supported_parameters { return () } +sub default_severity { return $SEVERITY_HIGH } +sub default_themes { return qw( core bugs pbp ) } +sub applies_to { return qw( PPI::Structure::ForLoop) } + +#----------------------------------------------------------------------------- + +sub violates { + my ( $self, $elem, undef ) = @_; + + if ( my $rl = $elem->find_first('PPI::Token::QuoteLike::Readline') ) { + return $self->violation( $DESC, $EXPL, $rl ); + } + + return; #ok! +} + +1; + +__END__ + +#----------------------------------------------------------------------------- + +=pod + +=head1 NAME + +Perl::Critic::Policy::InputOutput::ProhibitReadlineInForLoop - Write C<< while( $line = <> ){...} >> instead of C<< for(<>){...} >>. + +=head1 AFFILIATION + +This Policy is part of the core L distribution. + + +=head1 DESCRIPTION + +Using the readline operator in a C or C loop is very +slow. The iteration list of the loop creates a list context, +which causes the readline operator to read the entire input stream +before iteration even starts. Instead, just use a C loop, +which only reads one line at a time. + + for my $line ( <$file_handle> ){ do_something($line) } #not ok + while ( my $line = <$file_handle> ){ do_something($line) } #ok + + +=head1 CONFIGURATION + +This Policy is not configurable except for the standard options. + + +=head1 AUTHOR + +Jeffrey Ryan Thalhammer + +=head1 COPYRIGHT + +Copyright (c) 2005-2008 Jeffrey Ryan Thalhammer. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/InputOutput/ProhibitTwoArgOpen.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/InputOutput/ProhibitTwoArgOpen.pm new file mode 100644 index 0000000..d561cc6 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/InputOutput/ProhibitTwoArgOpen.pm @@ -0,0 +1,140 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Policy/InputOutput/ProhibitTwoArgOpen.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Policy::InputOutput::ProhibitTwoArgOpen; + +use 5.006001; +use strict; +use warnings; + +use Readonly; + +use version; + +use Perl::Critic::Utils qw{ :severities :classification :ppi }; +use base 'Perl::Critic::Policy'; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +Readonly::Scalar my $STDIO_HANDLES_RX => qr/\b STD (?: IN | OUT | ERR \b)/mx; +Readonly::Scalar my $DESC => q{Two-argument "open" used}; +Readonly::Scalar my $EXPL => [ 207 ]; + +Readonly::Scalar my $MINIMUM_VERSION => version->new(5.006); + +#----------------------------------------------------------------------------- + +sub supported_parameters { return () } +sub default_severity { return $SEVERITY_HIGHEST } +sub default_themes { return qw(core pbp bugs security) } +sub applies_to { return 'PPI::Token::Word' } + +#----------------------------------------------------------------------------- + +sub violates { + my ($self, $elem, $document) = @_; + + return if $elem ne 'open'; + return if ! is_function_call($elem); + + my $version = $document->highest_explicit_perl_version(); + return if $version and $version < $MINIMUM_VERSION; + + my @args = parse_arg_list($elem); + + if ( scalar @args == 2 ) { + # When opening STDIN, STDOUT, or STDERR, the + # two-arg form is the only option you have. + return if $args[1]->[0] =~ $STDIO_HANDLES_RX; + return $self->violation( $DESC, $EXPL, $elem ); + } + + return; # ok! +} + +1; + +__END__ + +#----------------------------------------------------------------------------- + +=pod + +=head1 NAME + +Perl::Critic::Policy::InputOutput::ProhibitTwoArgOpen - Write C<< open $fh, q{<}, $filename; >> instead of C<< open $fh, "<$filename"; >>. + +=head1 AFFILIATION + +This Policy is part of the core L distribution. + + +=head1 DESCRIPTION + +The three-argument form of C (introduced in Perl 5.6) prevents +subtle bugs that occur when the filename starts with funny characters +like '>' or '<'. The L module provides a nice +object-oriented interface to filehandles, which I think is more +elegant anyway. + + open( $fh, '>output.txt' ); # not ok + open( $fh, q{>}, 'output.txt' ); # ok + + use IO::File; + my $fh = IO::File->new( 'output.txt', q{>} ); # even better! + +It's also more explicitly clear to define the input mode of the +file, as in the difference between these two: + + open( $fh, 'foo.txt' ); # BAD: Reader must think what default mode is + open( $fh, '<', 'foo.txt' ); # GOOD: Reader can see open mode + +This policy will not complain if the file explicitly states that it is +compatible with a version of perl prior to 5.6 via an include +statement, e.g. by having C in it. + + +=head1 CONFIGURATION + +This Policy is not configurable except for the standard options. + + +=head1 NOTES + +The only time you should use the two-argument form is when you re-open +STDIN, STDOUT, or STDERR. But for now, this Policy doesn't provide +that loophole. + +=head1 SEE ALSO + +L + +L + +=head1 AUTHOR + +Jeffrey Ryan Thalhammer + +=head1 COPYRIGHT + +Copyright (C) 2005-2007 Jeffrey Ryan Thalhammer. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/InputOutput/RequireBracedFileHandleWithPrint.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/InputOutput/RequireBracedFileHandleWithPrint.pm new file mode 100644 index 0000000..8bd969f --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/InputOutput/RequireBracedFileHandleWithPrint.pm @@ -0,0 +1,143 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Policy/InputOutput/RequireBracedFileHandleWithPrint.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Policy::InputOutput::RequireBracedFileHandleWithPrint; + +use 5.006001; +use strict; +use warnings; +use Readonly; + +use Perl::Critic::Utils qw{ :severities :classification :data_conversion }; +use base 'Perl::Critic::Policy'; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +Readonly::Array my @POSTFIX_WORDS => qw( if unless for ); +Readonly::Hash my %POSTFIX_WORDS => hashify( @POSTFIX_WORDS ); + +Readonly::Scalar my $DESC => q{File handle for "print" is not braced}; +Readonly::Scalar my $EXPL => [ 217 ]; + +#----------------------------------------------------------------------------- + +sub supported_parameters { return () } +sub default_severity { return $SEVERITY_LOWEST } +sub default_themes { return qw( core pbp cosmetic ) } +sub applies_to { return 'PPI::Token::Word' } + +#----------------------------------------------------------------------------- + +sub violates { + my ( $self, $elem, undef ) = @_; + + return if $elem ne 'print'; + return if ! is_function_call($elem); + + my @sib; + + $sib[0] = $elem->snext_sibling(); + return if !$sib[0]; + + # Deal with situations where 'print' is called with parentheses + if ( $sib[0]->isa('PPI::Structure::List') ) { + my $expr = $sib[0]->schild(0); + return if !$expr; + $sib[0] = $expr->schild(0); + return if !$sib[0]; + } + + $sib[1] = $sib[0]->next_sibling(); + return if !$sib[1]; + $sib[2] = $sib[1]->next_sibling(); + return if !$sib[2]; + + # First token must be a scalar symbol or bareword; + return if !( ($sib[0]->isa('PPI::Token::Symbol') && $sib[0] =~ m/\A \$/mx) + || $sib[0]->isa('PPI::Token::Word') ); + + # First token must not be a builtin function or control + return if is_perl_builtin($sib[0]); + return if exists $POSTFIX_WORDS{ $sib[0] }; + + # Second token must be white space + return if !$sib[1]->isa('PPI::Token::Whitespace'); + + # Third token must not be an operator + return if $sib[2]->isa('PPI::Token::Operator'); + + # Special case for postfix controls + return if exists $POSTFIX_WORDS{ $sib[2] }; + + return if $sib[0]->isa('PPI::Structure::Block'); + + return $self->violation( $DESC, $EXPL, $elem ); +} + +1; + +__END__ + +#----------------------------------------------------------------------------- + +=pod + +=head1 NAME + +Perl::Critic::Policy::InputOutput::RequireBracedFileHandleWithPrint - Write C instead of C. + +=head1 AFFILIATION + +This Policy is part of the core L distribution. + + +=head1 DESCRIPTION + +The C function has a unique syntax that supports an optional +file handle argument. Conway suggests wrapping this argument in +braces to make it visually stand out from the other arguments. When +you put braces around any of the special package-level file handles +like C, C, and C, you must the C<'*'> sigil or +else it won't compile under C. + + print $FH "Mary had a little lamb\n"; #not ok + print {$FH} "Mary had a little lamb\n"; #ok + + print STDERR $foo, $bar, $baz; #not ok + print {STDERR} $foo, $bar, $baz; #won't compile under 'strict' + print {*STDERR} $foo, $bar, $baz; #perfect! + + +=head1 CONFIGURATION + +This Policy is not configurable except for the standard options. + + +=head1 AUTHOR + +Jeffrey Ryan Thalhammer + +=head1 COPYRIGHT + +Copyright (c) 2005-2008 Jeffrey Ryan Thalhammer. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module. + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/InputOutput/RequireBriefOpen.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/InputOutput/RequireBriefOpen.pm new file mode 100644 index 0000000..5ff8c5b --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/InputOutput/RequireBriefOpen.pm @@ -0,0 +1,310 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Policy/InputOutput/RequireBriefOpen.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Policy::InputOutput::RequireBriefOpen; + +use 5.006001; +use strict; +use warnings; + +use Readonly; + +use List::MoreUtils qw(any); + +use Perl::Critic::Utils qw{ :severities :classification :booleans parse_arg_list }; +use base 'Perl::Critic::Policy'; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +Readonly::Scalar my $DESC => q; +Readonly::Scalar my $EXPL => [209]; + +Readonly::Scalar my $SCALAR_SIGIL => q<$>; ## no critic (InterpolationOfLiterals) +Readonly::Scalar my $GLOB_SIGIL => q<*>; + +#----------------------------------------------------------------------------- + +sub supported_parameters { + return ( + { + name => 'lines', + description => 'The maximum number of lines between an open() and a close().', + default_string => '9', + behavior => 'integer', + integer_minimum => 1, + }, + ); +} + +sub default_severity { return $SEVERITY_HIGH } +sub default_themes { return qw< core pbp maintenance > } +sub applies_to { return 'PPI::Token::Word' } + +#----------------------------------------------------------------------------- + +sub violates { + my ( $self, $elem, undef ) = @_; + + # Is it a call to open? + return if $elem ne 'open'; + return if ! is_function_call($elem); + my @open_args = parse_arg_list($elem); + return if 2 > @open_args; # not a valid call to open() + + my ($is_lexical, $fh) = _get_opened_fh($open_args[0]); + return if not $fh; + return if $fh =~ m< \A [*]? STD (?: IN|OUT|ERR ) \z >xms; + + for my $close_token ($self->_find_close_invocations_or_return($elem)) { + # The $close_token might be a close() or a return() + # It doesn't matter which -- both satisfy this policy + if (is_function_call($close_token)) { + my @close_args = parse_arg_list($close_token); + + my $close_parameter = $close_args[0]; + if ('ARRAY' eq ref $close_parameter) { + $close_parameter = ${$close_parameter}[0]; + } + if ( $close_parameter ) { + $close_parameter = "$close_parameter"; + return if $fh eq $close_parameter; + + if ( any { m< \A [*] >xms } ($fh, $close_parameter) ) { + (my $stripped_fh = $fh) =~ s< \A [*] ><>xms; + (my $stripped_parameter = $close_parameter) =~ + s< \A [*] ><>xms; + + return if $stripped_fh eq $stripped_parameter; + } + } + } + elsif ($is_lexical && is_method_call($close_token)) { + my $tok = $close_token->sprevious_sibling->sprevious_sibling; + return if $fh eq $tok; + } + } + + return $self->violation( $DESC, $EXPL, $elem ); +} + +sub _find_close_invocations_or_return { + my ($self, $elem) = @_; + + my $parent = _get_scope($elem); + return if !$parent; # I can't think of a scenario where this would happen + + my $open_loc = $elem->location; + # we don't actually allow _lines to be zero or undef, but maybe we will + my $end_line = $self->{_lines} ? $open_loc->[0] + $self->{_lines} : undef; + + my $closes = $parent->find(sub { + ##no critic (ProhibitExplicitReturnUndef) + my ($parent, $candidate) = @_; + return undef if $candidate->isa('PPI::Statement::Sub'); + my $candidate_loc = $candidate->location; + return undef if !defined $candidate_loc->[0]; + return 0 if $candidate_loc->[0] < $open_loc->[0]; + return 0 if $candidate_loc->[0] == $open_loc->[0] && $candidate_loc->[1] <= $open_loc->[1]; + return undef if defined $end_line && $candidate_loc->[0] > $end_line; + return 0 if !$candidate->isa('PPI::Token::Word'); + return 1 if $candidate eq 'close' || $candidate eq 'return'; + return 0; + }); + return @{$closes || []}; +} + +sub _get_scope { + my ($elem) = @_; + + while ($elem = $elem->parent) { + return $elem if $elem->scope; + } + return; # should never happen if we are in a PPI::Document +} + +sub _get_opened_fh { + my ($tokens) = shift; + + my $is_lexical; + my $fh; + + if ( 2 == @{$tokens} ) { + if ('my' eq $tokens->[0] && + $tokens->[1]->isa('PPI::Token::Symbol') && + $SCALAR_SIGIL eq $tokens->[1]->raw_type) { + + $is_lexical = 1; + $fh = $tokens->[1]; + } + } + elsif (1 == @{$tokens}) { + my $argument = _unwrap_block( $tokens->[0] ); + if ( $argument->isa('PPI::Token::Symbol') ) { + my $sigil = $argument->raw_type(); + if ($SCALAR_SIGIL eq $sigil) { + $is_lexical = 1; + $fh = $argument; + } + elsif ($GLOB_SIGIL eq $sigil) { + $is_lexical = 0; + $fh = $argument; + } + } + elsif ($argument->isa('PPI::Token::Word') && $argument eq uc $argument) { + $is_lexical = 0; + $fh = $argument; + } + } + + return ($is_lexical, $fh); +} + +sub _unwrap_block { + my ($element) = @_; + + return $element if not $element->isa('PPI::Structure::Block'); + + my @children = $element->schildren(); + return $element if 1 != @children; + my $child = $children[0]; + + return $child if not $child->isa('PPI::Statement'); + + my @grandchildren = $child->schildren(); + return $element if 1 != @grandchildren; + + return $grandchildren[0]; +} + +1; + +__END__ + +#----------------------------------------------------------------------------- + +=pod + +=for stopwords redeclared + +=head1 NAME + +Perl::Critic::Policy::InputOutput::RequireBriefOpen - Close filehandles as soon as possible after opening them. + + +=head1 AFFILIATION + +This Policy is part of the core L distribution. + + +=head1 DESCRIPTION + +One way that production systems fail unexpectedly is by running out of +filehandles. Filehandles are a finite resource on every operating system that +I'm aware of, and running out of them is virtually impossible to recover from. +The solution is to not run out in the first place. What causes programs to +run out of filehandles? Usually, it's leaks: you open a filehandle and forget +to close it, or just wait a really long time before closing it. + +This problem is rarely exposed by test systems, because the tests rarely run +long enough or have enough load to hit the filehandle limit. So, the best way +to avoid the problem is 1) always close all filehandles that you open and 2) +close them as soon as is practical. + +This policy takes note of calls to C where there is no matching +C call within C lines of code. If you really need to do a lot of +processing on an open filehandle, then you can move that processing to another +method like this: + + sub process_data_file { + my ($self, $filename) = @_; + open my $fh, '<', $filename + or croak 'Failed to read datafile ' . $filename . '; ' . $OS_ERROR; + $self->_parse_input_data($fh); + close $fh; + return; + } + sub _parse_input_data { + my ($self, $fh) = @_; + while (my $line = <$fh>) { + ... + } + return; + } + +As a special case, this policy also allows code to return the filehandle after +the C instead of closing it. Just like the close, however, that +C has to be within the right number of lines. From there, you're on +your own to figure out whether the code is promptly closing the filehandle. + +The STDIN, STDOUT, and STDERR handles are exempt from this policy. + + +=head1 CONFIGURATION + +This policy allows C invocations to be up to C lines after their +corresponding C calls, where C defaults to 9. You can override +this to set it to a different number with the C setting. To do this, +put entries in a F<.perlcriticrc> file like this: + + [InputOutput::RequireBriefOpen] + lines = 5 + + +=head1 CAVEATS + +=head2 Cnew> + +This policy only looks for explicit C calls. It does not detect calls +to C or Cnew> or the like. + + +=head2 Is it the right lexical? + +We don't currently check for redeclared filehandles. So the following code +is false negative, for example, because the outer scoped filehandle is not closed: + + open my $fh, '<', $file1 or croak; + if (open my $fh, '<', $file2) { + print <$fh>; + close $fh; + } + +This is a contrived example, but it isn't uncommon for people to use C<$fh> +for the name of the filehandle every time. Perhaps it's time to think of +better variable names... + + +=head1 CREDITS + +Initial development of this policy was supported by a grant from the Perl Foundation. + + +=head1 AUTHOR + +Chris Dolan + + +=head1 COPYRIGHT + +Copyright (c) 2007-2008 Chris Dolan. Many rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module + +=cut + +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/InputOutput/RequireCheckedClose.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/InputOutput/RequireCheckedClose.pm new file mode 100644 index 0000000..3b64aaa --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/InputOutput/RequireCheckedClose.pm @@ -0,0 +1,105 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Policy/InputOutput/RequireCheckedClose.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Policy::InputOutput::RequireCheckedClose; + +use 5.006001; +use strict; +use warnings; +use Readonly; + +use Perl::Critic::Utils qw{ :severities :classification }; +use base 'Perl::Critic::Policy'; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +Readonly::Scalar my $DESC => q{Return value of "close" ignored}; +Readonly::Scalar my $EXPL => q{Check the return value of "close" for success}; + +#----------------------------------------------------------------------------- + +sub supported_parameters { return () } +sub default_severity { return $SEVERITY_LOW } +sub default_themes { return qw( core maintenance ) } +sub applies_to { return 'PPI::Token::Word' } + +#----------------------------------------------------------------------------- + +sub violates { + my ( $self, $elem, undef ) = @_; + + return if $elem ne 'close'; + return if ! is_unchecked_call( $elem ); + + return $self->violation( $DESC, $EXPL, $elem ); + +} + + +1; + +__END__ + +#----------------------------------------------------------------------------- + +=pod + +=head1 NAME + +Perl::Critic::Policy::InputOutput::RequireCheckedClose - Write C<< my $error = close $fh; >> instead of C<< close $fh; >>. + +=head1 AFFILIATION + +This Policy is part of the core L distribution. + + +=head1 DESCRIPTION + +The perl builtin I/O function C returns a false value on failure. That +value should be checked to ensure that the close was successful. + + + my $error = close $filehandle; # ok + close $filehandle or die "unable to close: $!"; # ok + close $filehandle; # not ok + + +=head1 CONFIGURATION + +This Policy is not configurable except for the standard options. + + +=head1 AUTHOR + +Andrew Moore + +=head1 ACKNOWLEDGMENTS + +This policy module is based heavily on policies written by Jeffrey Ryan +Thalhammer . + +=head1 COPYRIGHT + +Copyright (c) 2007-2008 Andrew Moore. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module. + +=cut + +############################################################################## +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/InputOutput/RequireCheckedOpen.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/InputOutput/RequireCheckedOpen.pm new file mode 100644 index 0000000..4c65727 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/InputOutput/RequireCheckedOpen.pm @@ -0,0 +1,105 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Policy/InputOutput/RequireCheckedOpen.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Policy::InputOutput::RequireCheckedOpen; + +use 5.006001; +use strict; +use warnings; +use Readonly; + +use Perl::Critic::Utils qw{ :severities :classification }; +use base 'Perl::Critic::Policy'; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +Readonly::Scalar my $DESC => q{Return value of "open" ignored}; +Readonly::Scalar my $EXPL => q{Check the return value of "open" for success}; + +#----------------------------------------------------------------------------- + +sub supported_parameters { return () } +sub default_severity { return $SEVERITY_MEDIUM } +sub default_themes { return qw( core maintenance ) } +sub applies_to { return 'PPI::Token::Word' } + +#----------------------------------------------------------------------------- + +sub violates { + my ( $self, $elem, undef ) = @_; + + return if $elem ne 'open'; + return if ! is_unchecked_call( $elem ); + + return $self->violation( $DESC, $EXPL, $elem ); + +} + + +1; + +__END__ + +#----------------------------------------------------------------------------- + +=pod + +=head1 NAME + +Perl::Critic::Policy::InputOutput::RequireCheckedOpen - Write C<< my $error = open $fh, $mode, $filename; >> instead of C<< open $fh, $mode, $filename; >>. + +=head1 AFFILIATION + +This Policy is part of the core L distribution. + + +=head1 DESCRIPTION + +The perl builtin I/O function C returns a false value on failure. That +value should always be checked to ensure that the open was successful. + + + my $error = open( $filehandle, $mode, $filename ); # ok + open( $filehandle, $mode, $filename ) or die "unable to open: $!"; # ok + open( $filehandle, $mode, $filename ); # not ok + + +=head1 CONFIGURATION + +This Policy is not configurable except for the standard options. + + +=head1 AUTHOR + +Andrew Moore + +=head1 ACKNOWLEDGMENTS + +This policy module is based heavily on policies written by Jeffrey Ryan +Thalhammer . + +=head1 COPYRIGHT + +Copyright (c) 2007-2008 Andrew Moore. All rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module. + +=cut + +############################################################################## +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/InputOutput/RequireCheckedSyscalls.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/InputOutput/RequireCheckedSyscalls.pm new file mode 100644 index 0000000..9a62133 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/InputOutput/RequireCheckedSyscalls.pm @@ -0,0 +1,190 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Policy/InputOutput/RequireCheckedSyscalls.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Policy::InputOutput::RequireCheckedSyscalls; + +use 5.006001; +use strict; +use warnings; +use Readonly; + +use Perl::Critic::Utils qw{ :booleans :characters :severities :classification + hashify is_perl_bareword }; + +use base 'Perl::Critic::Policy'; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +Readonly::Scalar my $DESC => q{Return value of flagged function ignored}; +Readonly::Scalar my $EXPL => [208, 278]; + +Readonly::Array my @DEFAULT_FUNCTIONS => qw( + open close print +); +# I created this list by searching for "return" in perlfunc +Readonly::Array my @BUILTIN_FUNCTIONS => qw( + accept bind binmode chdir chmod chown close closedir connect + dbmclose dbmopen exec fcntl flock fork ioctl kill link listen + mkdir msgctl msgget msgrcv msgsnd open opendir pipe print read + readdir readline readlink readpipe recv rename rmdir seek seekdir + semctl semget semop send setpgrp setpriority setsockopt shmctl + shmget shmread shutdown sleep socket socketpair symlink syscall + sysopen sysread sysseek system syswrite tell telldir truncate + umask unlink utime wait waitpid +); + +#----------------------------------------------------------------------------- + +sub supported_parameters { + return ( + { + name => 'functions', + description => 'The set of functions to require checking the return value of.', + default_string => join( $SPACE, @DEFAULT_FUNCTIONS ), + behavior => 'string list', + }, + ); +} + +sub default_severity { return $SEVERITY_LOWEST } +sub default_themes { return qw( core maintenance ) } +sub applies_to { return 'PPI::Token::Word' } + +#----------------------------------------------------------------------------- + +sub initialize_if_enabled { + my ($self, $config) = @_; + + my @specified_functions = keys %{ $self->{_functions} }; + my @resulting_functions; + + foreach my $function (@specified_functions) { + if ( $function eq ':defaults' ) { + push @resulting_functions, @DEFAULT_FUNCTIONS; + } + elsif ( $function eq ':builtins' ) { + push @resulting_functions, @BUILTIN_FUNCTIONS; + } + else { + push @resulting_functions, $function; + } + } + + $self->{_functions} = { hashify(@resulting_functions) }; + + return $TRUE; +} + +#----------------------------------------------------------------------------- + +sub violates { + my ( $self, $elem, undef ) = @_; + + return if $self->{_functions}->{':all'} ? is_perl_bareword($elem) : !$self->{_functions}->{$elem}; + return if ! is_unchecked_call( $elem ); + + return $self->violation( $DESC . ' - ' . $elem, $EXPL, $elem ); +} + + +1; + +__END__ + +#----------------------------------------------------------------------------- + +=pod + +=for stopwords nyah + +=head1 NAME + +Perl::Critic::Policy::InputOutput::RequireCheckedSyscalls - Return value of flagged function ignored. + +=head1 AFFILIATION + +This Policy is part of the core L distribution. + + +=head1 DESCRIPTION + +This performs identically to InputOutput::RequireCheckedOpen/Close +except that this is configurable to apply to any function, whether +core or user-defined. + +If your module uses L or C, then any +functions wrapped by those modules will not trigger this policy. For +example: + + use Fatal qw(open); + open my $fh, $filename; # no violation + close $fh; # yes violation + +=head1 CONFIGURATION + +This policy watches for a configurable list of function names. By +default, it applies to C, C and C. You can +override this to set it to a different list of functions with the +C setting. To do this, put entries in a F<.perlcriticrc> +file like this: + + [InputOutput::RequireCheckedSyscalls] + functions = open opendir read readline readdir close closedir + +We have defined a few shortcuts for creating this list + + [InputOutput::RequireCheckedSyscalls] + functions = :defaults opendir readdir closedir + + [InputOutput::RequireCheckedSyscalls] + functions = :builtins + + [InputOutput::RequireCheckedSyscalls] + functions = :all + +The C<:builtins> shortcut above represents all of the builtin +functions that have error conditions (about 65 of them, many of them +rather obscure). + +The C<:all> is the insane case: you must check the return value of +EVERY function call, even C and C. Yes, this "feature" +is overkill and is wasting CPU cycles on your computer by just +existing. Nyah nyah. I shouldn't code after midnight. + +=head1 CREDITS + +Initial development of this policy was supported by a grant from the +Perl Foundation. + +This policy module is based heavily on policies written by Andrew +Moore . + +=head1 AUTHOR + +Chris Dolan + +=head1 COPYRIGHT + +Copyright (c) 2007-2008 Chris Dolan. Many rights reserved. + +This program is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. The full text of this license +can be found in the LICENSE file included with this module. + +=cut + +############################################################################## +# Local Variables: +# mode: cperl +# cperl-indent-level: 4 +# fill-column: 78 +# indent-tabs-mode: nil +# c-indentation-style: bsd +# End: +# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround : diff --git a/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/Miscellanea/ProhibitFormats.pm b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/Miscellanea/ProhibitFormats.pm new file mode 100644 index 0000000..e76b558 --- /dev/null +++ b/deb-src/libperl-critic-perl/libperl-critic-perl-1.088/lib/Perl/Critic/Policy/Miscellanea/ProhibitFormats.pm @@ -0,0 +1,95 @@ +############################################################################## +# $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/Perl-Critic/lib/Perl/Critic/Policy/Miscellanea/ProhibitFormats.pm $ +# $Date: 2008-07-03 10:19:10 -0500 (Thu, 03 Jul 2008) $ +# $Author: clonezone $ +# $Revision: 2489 $ +############################################################################## + +package Perl::Critic::Policy::Miscellanea::ProhibitFormats; + +use 5.006001; +use strict; +use warnings; +use Readonly; + +use Perl::Critic::Utils qw{ :severities :classification }; +use base 'Perl::Critic::Policy'; + +our $VERSION = '1.088'; + +#----------------------------------------------------------------------------- + +Readonly::Scalar my $DESC => q{Format used}; +Readonly::Scalar my $EXPL => [ 449 ]; + +#----------------------------------------------------------------------------- + +sub supported_parameters { return () } +sub default_severity { return $SEVERITY_MEDIUM } +sub default_themes { return qw( core maintenance pbp ) } +sub applies_to { return 'PPI::Token::Word' } + +#----------------------------------------------------------------------------- + +sub violates { + my ( $self, $elem, undef ) = @_; + return if $elem ne 'format'; + return if ! is_function_call( $elem ); + return $self->violation( $DESC, $EXPL, $elem ); +} + + +1; + +__END__ + +#----------------------------------------------------------------------------- + +=pod + +=head1 NAME + +Perl::Critic::Policy::Miscellanea::ProhibitFormats - Do not use C. + +=head1 AFFILIATION + +This Policy is part of the core L distribution. + + +=head1 DESCRIPTION + +Formats are one of the oldest features of Perl. Unfortunately, they suffer +from several limitations. Formats are static and cannot be easily defined +at run time. Also, formats depend on several obscure global variables. + +For more modern reporting tools, consider using one of the template frameworks +like L