Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / top-level / perl-packages.nix
blobeafccffef9c9455ef0d4deddae3f97f0b417847a
1 /* This file defines the composition for CPAN (Perl) packages.  It has
2    been factored out of all-packages.nix because there are so many of
3    them.  Also, because most Nix expressions for CPAN packages are
4    trivial, most are actually defined here.  I.e. there's no function
5    for each package in a separate file: the call to the function would
6    be almost as much code as the function itself. */
8 { config
9 , stdenv, lib, buildPackages, pkgs, darwin
10 , fetchurl, fetchpatch, fetchFromGitHub, fetchFromGitLab
11 , perl, shortenPerlShebang
12 , nixosTests
15 self:
17 # cpan2nix assumes that perl-packages.nix will be used only with perl 5.30.3 or above
18 assert lib.versionAtLeast perl.version "5.30.3";
19 let
20   inherit (lib) maintainers teams;
23 with self; {
25   inherit perl;
26   perlPackages = self;
28   # Check whether a derivation provides a perl module.
29   hasPerlModule = drv: drv ? perlModule ;
31   requiredPerlModules = drvs: let
32     modules = lib.filter hasPerlModule drvs;
33   in lib.unique ([perl] ++ modules ++ lib.concatLists (lib.catAttrs "requiredPerlModules" modules));
35   # Convert derivation to a perl module.
36   toPerlModule = drv:
37     drv.overrideAttrs( oldAttrs: {
38       # Use passthru in order to prevent rebuilds when possible.
39       passthru = (oldAttrs.passthru or {}) // {
40         perlModule = perl;
41         requiredPerlModules = requiredPerlModules drv.propagatedBuildInputs;
42       };
43     });
45   buildPerlPackage = callPackage ../development/perl-modules/generic { };
47   # Helper functions for packages that use Module::Build to build.
48   buildPerlModule = args:
49     buildPerlPackage ({
50       buildPhase = ''
51         runHook preBuild
52         perl Build.PL --prefix=$out; ./Build build
53         runHook postBuild
54       '';
55       installPhase = ''
56         runHook preInstall
57         ./Build install
58         runHook postInstall
59       '';
60       checkPhase = ''
61         runHook preCheck
62         ./Build test
63         runHook postCheck
64       '';
65     } // args // {
66       preConfigure = ''
67         touch Makefile.PL
68         ${args.preConfigure or ""}
69       '';
70       buildInputs = (args.buildInputs or []) ++ [ ModuleBuild ];
71     });
73   /* Construct a perl search path (such as $PERL5LIB)
75      Example:
76        pkgs = import <nixpkgs> { }
77        makePerlPath [ pkgs.perlPackages.libnet ]
78        => "/nix/store/n0m1fk9c960d8wlrs62sncnadygqqc6y-perl-Net-SMTP-1.25/lib/perl5/site_perl"
79   */
80   makePerlPath = lib.makeSearchPathOutput "lib" perl.libPrefix;
82   /* Construct a perl search path recursively including all dependencies (such as $PERL5LIB)
84      Example:
85        pkgs = import <nixpkgs> { }
86        makeFullPerlPath [ pkgs.perlPackages.CGI ]
87        => "/nix/store/fddivfrdc1xql02h9q500fpnqy12c74n-perl-CGI-4.38/lib/perl5/site_perl:/nix/store/8hsvdalmsxqkjg0c5ifigpf31vc4vsy2-perl-HTML-Parser-3.72/lib/perl5/site_perl:/nix/store/zhc7wh0xl8hz3y3f71nhlw1559iyvzld-perl-HTML-Tagset-3.20/lib/perl5/site_perl"
88   */
89   makeFullPerlPath = deps: makePerlPath (lib.misc.closePropagation deps);
92   ack = buildPerlPackage rec {
93     pname = "ack";
94     version = "3.7.0";
96     src = fetchurl {
97       url = "mirror://cpan/authors/id/P/PE/PETDANCE/ack-v${version}.tar.gz";
98       hash = "sha256-6nyqFPdX3ggzEO0suimGYd3Mpd7gbsjxgEPqYlp53yA=";
99     };
101     outputs = [ "out" "man" ];
103     nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang;
104     propagatedBuildInputs = [ FileNext ];
105     postInstall = lib.optionalString stdenv.isDarwin ''
106       shortenPerlShebang $out/bin/ack
107     '';
109     # tests fails on nixos and hydra because of different purity issues
110     doCheck = false;
112     meta = {
113       description = "A grep-like tool tailored to working with large trees of source code";
114       homepage = "https://beyondgrep.com";
115       license = with lib.licenses; [ artistic2 ];
116     };
117   };
119   ActionCircuitBreaker = buildPerlPackage {
120     pname = "Action-CircuitBreaker";
121     version = "0.1";
122     src = fetchurl {
123       url = "mirror://cpan/authors/id/H/HA/HANGY/Action-CircuitBreaker-0.1.tar.gz";
124       hash = "sha256-P49dcm+uU3qzNuAKaBmuSoWW5MXyQ+dypTbvLrbmBrE=";
125     };
126     buildInputs = [ ActionRetry TryTiny ];
127     propagatedBuildInputs = [ Moo ];
128     meta = {
129       description = "Module to try to perform an action, with an option to suspend execution after a number of failures";
130       homepage = "https://github.com/hangy/Action-CircuitBreaker";
131       license = with lib.licenses; [ artistic1 gpl1Plus ];
132     };
133   };
135   ActionRetry = buildPerlPackage {
136     pname = "Action-Retry";
137     version = "0.24";
138     src = fetchurl {
139       url = "mirror://cpan/authors/id/D/DA/DAMS/Action-Retry-0.24.tar.gz";
140       hash = "sha256-o3WXQsW+8tGXWrc9NUmdgRMySRmySTYTAlXP8H0ClPc=";
141     };
142     propagatedBuildInputs = [ MathFibonacci ModuleRuntime Moo ];
143     meta = {
144       description = "Module to try to perform an action, with various ways of retrying and sleeping between retries";
145       license = with lib.licenses; [ artistic1 gpl1Plus ];
146     };
147   };
149   AlgorithmAnnotate = buildPerlPackage {
150     pname = "Algorithm-Annotate";
151     version = "0.10";
152     src = fetchurl {
153       url = "mirror://cpan/authors/id/C/CL/CLKAO/Algorithm-Annotate-0.10.tar.gz";
154       hash = "sha256-ybF2RkOTPrGjNWkGzDctSDqZQWIHox3z5Y7piS2ZIvk=";
155     };
156     propagatedBuildInputs = [ AlgorithmDiff ];
157     meta = {
158       description = "Represent a series of changes in annotate form";
159       license = with lib.licenses; [ artistic1 gpl1Plus ];
160     };
161   };
163   AlgorithmBackoff = buildPerlPackage {
164     pname = "Algorithm-Backoff";
165     version = "0.009";
166     src = fetchurl {
167       url = "mirror://cpan/authors/id/P/PE/PERLANCAR/Algorithm-Backoff-0.009.tar.gz";
168       sha256 = "9f0ffcdf1e65a88022d6412f46ad977ede5a7b64be663009d13948fe8c9d180b";
169     };
170     buildInputs = [ TestException TestNumberDelta ];
171     meta = {
172       homepage = "https://metacpan.org/release/Algorithm-Backoff";
173       description = "Various backoff strategies for retry";
174       license = with lib.licenses; [ artistic1 gpl1Plus ];
175     };
176   };
178   AlgorithmC3 = buildPerlPackage {
179     pname = "Algorithm-C3";
180     version = "0.11";
181     src = fetchurl {
182       url = "mirror://cpan/authors/id/H/HA/HAARG/Algorithm-C3-0.11.tar.gz";
183       hash = "sha256-qvSEZ3Zd7qbkgFS8fUPkbk1Ay82hZVLGKdN74Jgokwk=";
184     };
185     meta = {
186       description = "A module for merging hierarchies using the C3 algorithm";
187       license = with lib.licenses; [ artistic1 gpl1Plus ];
188     };
189   };
191   AlgorithmCheckDigits = buildPerlModule {
192     pname = "Algorithm-CheckDigits";
193     version = "1.3.6";
194     src = fetchurl {
195       url = "mirror://cpan/authors/id/M/MA/MAMAWE/Algorithm-CheckDigits-v1.3.6.tar.gz";
196       hash = "sha256-DySHqP0fMbGcUbJlCELyJkwed9liSHoTtSG74GbEtLw=";
197     };
198     buildInputs = [ ProbePerl ];
199     meta = {
200       description = "Perl extension to generate and test check digits";
201       license = with lib.licenses; [ artistic1 gpl1Plus ];
202       mainProgram = "checkdigits.pl";
203     };
204   };
206   AlgorithmDiff = buildPerlPackage {
207     pname = "Algorithm-Diff";
208     version = "1.1903";
209     src = fetchurl {
210       url = "mirror://cpan/authors/id/T/TY/TYEMQ/Algorithm-Diff-1.1903.tar.gz";
211       hash = "sha256-MOhKxLMdQLZik/exIhMxxaUFYaOdWA2FAE2cH/+ZF1E=";
212     };
213     buildInputs = [ pkgs.unzip ];
214     meta = {
215       description = "Compute 'intelligent' differences between two files / lists";
216       license = with lib.licenses; [ artistic1 gpl1Plus ];
217     };
218   };
220   AlgorithmLCSS = buildPerlPackage {
221     pname = "Algorithm-LCSS";
222     version = "0.01";
223     src = fetchurl {
224       url = "mirror://cpan/authors/id/J/JF/JFREEMAN/Algorithm-LCSS-0.01.tar.gz";
225       hash = "sha256-cXzvzHhCoXGrVXbyLrcuVm7fBhzq+H3Mvn8ggfVgH3g=";
226     };
227     propagatedBuildInputs = [ AlgorithmDiff ];
228     meta = {
229       description = "Perl extension for getting the Longest Common Sub-Sequence";
230       license = with lib.licenses; [ artistic1 gpl1Plus ];
231       maintainers = [ maintainers.sgo ];
232     };
233   };
235   AlgorithmMerge = buildPerlPackage {
236     pname = "Algorithm-Merge";
237     version = "0.08";
238     src = fetchurl {
239       url = "mirror://cpan/authors/id/J/JS/JSMITH/Algorithm-Merge-0.08.tar.gz";
240       hash = "sha256-nAaIJYodxLg5iAU7n5qY53KM25tppQCNy9JR0PgIFs8=";
241     };
242     propagatedBuildInputs = [ AlgorithmDiff ];
243     meta = {
244       description = "Three-way merge and diff";
245       license = with lib.licenses; [ artistic1 gpl1Plus ];
246     };
247   };
249   AlienBaseModuleBuild = buildPerlModule {
250     pname = "Alien-Base-ModuleBuild";
251     version = "1.17";
252     src = fetchurl {
253       url = "mirror://cpan/authors/id/P/PL/PLICEASE/Alien-Base-ModuleBuild-1.17.tar.gz";
254       hash = "sha256-/nJwrHNa3ehk5GjiHGQqRxuoi6Ja0w2pRXiDITLyufQ=";
255     };
256     buildInputs = [ Test2Suite ];
257     propagatedBuildInputs = [ AlienBuild ArchiveExtract CaptureTiny Filechdir PathTiny ShellConfigGenerate ShellGuess SortVersions URI ];
258     meta = {
259       description = "A Module::Build subclass for building Alien:: modules and their libraries";
260       homepage = "https://metacpan.org/pod/Alien::Base::ModuleBuild";
261       license = with lib.licenses; [ artistic1 gpl1Plus ];
262     };
263   };
265   AlienBuild = buildPerlPackage {
266     pname = "Alien-Build";
267     version = "2.80";
268     src = fetchurl {
269       url = "mirror://cpan/authors/id/P/PL/PLICEASE/Alien-Build-2.80.tar.gz";
270       hash = "sha256-2e3JNrBnBbtcte5aLqi89hEaPogVkU8XfhXjwP7TAfM=";
271     };
272     propagatedBuildInputs = [ CaptureTiny FFICheckLib FileWhich Filechdir PathTiny PkgConfig ];
273     buildInputs = [ DevelHide Test2Suite ];
274     meta = {
275       description = "Build external dependencies for use in CPAN";
276       homepage = "https://metacpan.org/pod/Alien::Build";
277       license = with lib.licenses; [ artistic1 gpl1Plus ];
278     };
279   };
281   AlienBuildPluginDownloadGitLab = buildPerlPackage {
282     pname = "Alien-Build-Plugin-Download-GitLab";
283     version = "0.01";
284     src = fetchurl {
285       url = "mirror://cpan/authors/id/P/PL/PLICEASE/Alien-Build-Plugin-Download-GitLab-0.01.tar.gz";
286       hash = "sha256-wfCJyOoVKniZCdSKg9v88mJvdz2vMEMchiJYKyarqQI=";
287     };
288     buildInputs = [ Test2Suite ];
289     propagatedBuildInputs = [ AlienBuild PathTiny URI ];
290     meta = {
291       homepage = "https://metacpan.org/pod/Alien::Build::Plugin::Download::GitLab";
292       description = "Alien::Build plugin to download from GitLab";
293       license = with lib.licenses; [ artistic1 gpl1Plus ];
294     };
295   };
297   AlienFFI = buildPerlPackage {
298     pname = "Alien-FFI";
299     version = "0.27";
300     src = fetchurl {
301       url = "mirror://cpan/authors/id/P/PL/PLICEASE/Alien-FFI-0.27.tar.gz";
302       hash = "sha256-Kbsgg/P5gqOfSFIkP09qEZFpZvIObneGTpkmnRHotl4=";
303     };
304     patches = [ ../development/perl-modules/Alien-FFI-dont-download.patch ];
305     nativeBuildInputs = [ pkgs.pkg-config ];
306     buildInputs = [ pkgs.libffi CaptureTiny Test2Suite NetSSLeay MojoDOM58 IOSocketSSL ];
307     propagatedBuildInputs = [ AlienBuild ];
308     meta = {
309       homepage = "https://metacpan.org/pod/Alien::FFI";
310       description = "Build and make available libffi";
311       license = with lib.licenses; [ artistic1 gpl1Plus ];
312       maintainers = with maintainers; [ tomasajt ];
313     };
314   };
316   AlienGMP = buildPerlPackage {
317     pname = "Alien-GMP";
318     version = "1.16";
319     src = fetchurl {
320       url = "mirror://cpan/authors/id/P/PL/PLICEASE/Alien-GMP-1.16.tar.gz";
321       hash = "sha256-CQzUjuU1v2LxeIlWF6hReDrhGqTGAGof1NhKQy8RPaU=";
322     };
323     propagatedBuildInputs = [ AlienBuild ];
324     buildInputs = [ pkgs.gmp Alienm4 DevelChecklib IOSocketSSL MojoDOM58 NetSSLeay SortVersions Test2Suite URI ];
325     meta = {
326       description = "Alien package for the GNU Multiple Precision library";
327       homepage = "https://metacpan.org/pod/Alien::GMP";
328       license = with lib.licenses; [ lgpl3Plus ];
329     };
330   };
332   AlienLibGumbo = buildPerlModule {
333     pname = "Alien-LibGumbo";
334     version = "0.05";
335     src = fetchurl {
336       url = "mirror://cpan/authors/id/R/RU/RUZ/Alien-LibGumbo-0.05.tar.gz";
337       hash = "sha256-D76RarEfaA5cKM0ayAA3IyPioOBq/8bIs2J5/GTXZRc=";
338     };
339     buildInputs = [ AlienBaseModuleBuild ];
340     propagatedBuildInputs = [ AlienBuild FileShareDir PathClass ];
341     meta = {
342       description = "Gumbo parser library";
343       license = with lib.licenses; [ artistic1 gpl1Plus ];
344       broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.AlienLibGumbo.x86_64-darwin
345     };
346   };
348   AlienLibxml2 = buildPerlPackage {
349     pname = "Alien-Libxml2";
350     version = "0.19";
351     src = fetchurl {
352       url = "mirror://cpan/authors/id/P/PL/PLICEASE/Alien-Libxml2-0.19.tar.gz";
353       hash = "sha256-9KZ0CZu9V0fAw7derYQfOyRJNdnvQro1NoAkvWERdMk=";
354     };
355     strictDeps = true;
356     nativeBuildInputs = [ pkgs.pkg-config ];
357     propagatedBuildInputs = [ AlienBuild ];
358     buildInputs = [ pkgs.libxml2 AlienBuildPluginDownloadGitLab MojoDOM58 SortVersions Test2Suite URI ];
359     meta = {
360       description = "Install the C libxml2 library on your system";
361       homepage = "https://metacpan.org/pod/Alien::Libxml2";
362       license = with lib.licenses; [ artistic1 gpl1Plus ];
363     };
364   };
366   aliased = buildPerlModule {
367     pname = "aliased";
368     version = "0.34";
369     src = fetchurl {
370       url = "mirror://cpan/authors/id/E/ET/ETHER/aliased-0.34.tar.gz";
371       hash = "sha256-w1BSRQfNgn+rhk5dTCzDULG6uqEvqVrsDKAIQ/zH3us=";
372     };
373     buildInputs = [ ModuleBuildTiny ];
374     meta = {
375       description = "Use shorter versions of class names";
376       license = with lib.licenses; [ artistic1 gpl1Plus ];
377     };
378   };
380   asa = buildPerlPackage {
381     pname = "asa";
382     version = "1.04";
383     src = fetchurl {
384       url = "mirror://cpan/authors/id/E/ET/ETHER/asa-1.04.tar.gz";
385       hash = "sha256-5YM7dOczuu4Z0e9eBLEmPBz/nBdGmVrXL8QJGPRAZ14=";
386     };
387     meta = {
388       description = "Lets your class/object say it works like something else";
389       homepage = "https://github.com/karenetheridge/asa";
390       license = with lib.licenses; [ artistic1 gpl1Plus ];
391     };
392   };
394   AlienSDL = buildPerlModule {
395     pname = "Alien-SDL";
396     version = "1.446";
397     src = fetchurl {
398       url = "mirror://cpan/authors/id/F/FR/FROGGS/Alien-SDL-1.446.tar.gz";
399       hash = "sha256-yaosncPGPYl3PH1yA/KkbRuSTQxy2fgBrxR6Pci8USo=";
400     };
401     patches = [ ../development/perl-modules/alien-sdl.patch ];
403     installPhase = "./Build install --prefix $out";
405     SDL_INST_DIR = lib.getDev pkgs.SDL;
406     buildInputs = [ pkgs.SDL ArchiveExtract ArchiveZip TextPatch ];
407     propagatedBuildInputs = [ CaptureTiny FileShareDir FileWhich ];
409     meta = {
410       description = "Get, Build and Use SDL libraries";
411       license = with lib.licenses; [ artistic1 gpl1Plus ];
412     };
413   };
415   AlienTidyp = buildPerlModule {
416     pname = "Alien-Tidyp";
417     version = "1.4.7";
418     src = fetchurl {
419       url = "mirror://cpan/authors/id/K/KM/KMX/Alien-Tidyp-v1.4.7.tar.gz";
420       hash = "sha256-uWTL2nH79sDqaaTztBUEwUXygWga/hmewrSUQC6/SmU=";
421     };
423     buildInputs = [ ArchiveExtract ];
424     TIDYP_DIR = pkgs.tidyp;
425     propagatedBuildInputs = [ FileShareDir ];
426     meta = {
427       description = "Building, finding and using tidyp library";
428       license = with lib.licenses; [ artistic1 gpl1Plus ];
429     };
430   };
432   AlienWxWidgets = buildPerlModule {
433     pname = "Alien-wxWidgets";
434     version = "0.69";
435     src = fetchurl {
436       url = "mirror://cpan/authors/id/M/MD/MDOOTSON/Alien-wxWidgets-0.69.tar.gz";
437       hash = "sha256-UyJOS7vv/0z3tj7ZpiljiTuf/Ull1w2WcQNI+Gdt4kk=";
438     };
439     postPatch = ''
440       substituteInPlace Build.PL \
441         --replace "gtk+-2.0" "gtk+-3.0"
442     '';
443     propagatedBuildInputs = [ pkgs.pkg-config pkgs.gtk3 pkgs.wxGTK32 ModulePluggable ];
444     buildInputs = [ LWPProtocolHttps ];
445     meta = {
446       description = "Building, finding and using wxWidgets binaries";
447       license = with lib.licenses; [ artistic1 gpl1Plus ];
448     };
449   };
451   Alienm4 = buildPerlPackage {
452     pname = "Alien-m4";
453     version = "0.21";
454     src = fetchurl {
455       url = "mirror://cpan/authors/id/P/PL/PLICEASE/Alien-m4-0.21.tar.gz";
456       hash = "sha256-qypAXIA5RP0BxR+h6fK+/VhxqwPxdE3sKlZonyFI02E=";
457     };
458     propagatedBuildInputs = [ AlienBuild ];
459     buildInputs = [ pkgs.gnum4 Alienpatch IOSocketSSL MojoDOM58 NetSSLeay SortVersions Test2Suite URI ];
460     meta = {
461       description = "Find or build GNU m4";
462       homepage = "https://metacpan.org/pod/Alien::m4";
463       license = with lib.licenses; [ artistic1 gpl1Plus ];
464     };
465   };
467   Alienpatch = buildPerlPackage {
468     pname = "Alien-patch";
469     version = "0.15";
470     src = fetchurl {
471       url = "mirror://cpan/authors/id/P/PL/PLICEASE/Alien-patch-0.15.tar.gz";
472       hash = "sha256-/tZyJbLZamZpL30vQ+DTRykhRSnbHWsTsNykYgquANA=";
473     };
474     propagatedBuildInputs = [ AlienBuild ];
475     buildInputs = [ IOSocketSSL MojoDOM58 NetSSLeay SortVersions Test2Suite URI ];
476     meta = {
477       description = "Find or build patch";
478       homepage = "https://metacpan.org/pod/Alien::patch";
479       license = with lib.licenses; [ artistic1 gpl1Plus ];
480     };
481   };
483   AltCryptRSABigInt = buildPerlPackage {
484     pname = "Alt-Crypt-RSA-BigInt";
485     version = "0.06";
486     src = fetchurl {
487       url = "mirror://cpan/authors/id/D/DA/DANAJ/Alt-Crypt-RSA-BigInt-0.06.tar.gz";
488       hash = "sha256-dvQ0yrNpmc3wmBE0W7Oda3y+1+CFsCM4Mox/RuCLOPM=";
489     };
490     propagatedBuildInputs = [ ClassLoader ConvertASCIIArmour DataBuffer DigestMD2 MathBigIntGMP MathPrimeUtil SortVersions TieEncryptedHash ];
491     meta = {
492       description = "RSA public-key cryptosystem, using Math::BigInt";
493       homepage = "https://github.com/danaj/Alt-Crypt-RSA-BigInt";
494       license = with lib.licenses; [ artistic1 gpl1Plus ];
495       maintainers = [ maintainers.sgo ];
496     };
497   };
499   AnyEvent = buildPerlPackage {
500     pname = "AnyEvent";
501     version = "7.17";
502     src = fetchurl {
503       url = "mirror://cpan/authors/id/M/ML/MLEHMANN/AnyEvent-7.17.tar.gz";
504       hash = "sha256-UL7qaJwJj+Sq64OAbEC5/n+UbVdprPmfhJ8JkJGkuYU=";
505     };
506     buildInputs = [ CanaryStability ];
507     meta = {
508       description = "The DBI of event loop programming";
509       license = with lib.licenses; [ artistic1 gpl1Plus ];
510     };
511   };
513   AnyEventAIO = buildPerlPackage {
514     pname ="AnyEvent-AIO";
515     version = "1.1";
516     src = fetchurl {
517       url = "mirror://cpan/authors/id/M/ML/MLEHMANN/AnyEvent-AIO-1.1.tar.gz";
518       hash = "sha256-axBbjGQVYWMfUz7DQj6AZ6PX1YBDv4Xw9eCdcGkFcGs=";
519     };
520     propagatedBuildInputs = [ AnyEvent IOAIO ];
521     meta = {
522       description = "Truly asynchronous file and directory I/O";
523       license = with lib.licenses; [ artistic1 gpl1Plus ];
524     };
525   };
527   AnyEventBDB = buildPerlPackage rec {
528     pname = "AnyEvent-BDB";
529     version = "1.1";
530     src = fetchurl {
531       url = "mirror://cpan/authors/id/M/ML/MLEHMANN/${pname}-${version}.tar.gz";
532       hash = "sha256-k+NgEJQEZGJuXzG5+u3WXhLtjRq/Fs4FL+vyP0la78g=";
533     };
534     buildInputs = [ CanaryStability ];
535     propagatedBuildInputs = [ BDB AnyEvent ];
536     meta = {
537       description = "Truly asynchronous berkeley db access";
538       license = with lib.licenses; [ artistic1 gpl1Plus ];
539     };
540   };
542   AnyEventCacheDNS = buildPerlModule {
543     pname = "AnyEvent-CacheDNS";
544     version = "0.08";
545     src = fetchurl {
546       url = "mirror://cpan/authors/id/P/PO/POTYL/AnyEvent-CacheDNS-0.08.tar.gz";
547       hash = "sha256-QcH68YO2GAa1WInO6hI3dQwfYbnOJzX98z3AVTZxLa4=";
548     };
549     propagatedBuildInputs = [ AnyEvent ];
550     doCheck = false; # does an DNS lookup
551     meta = {
552       description = "Simple DNS resolver with caching";
553       homepage = "https://github.com/potyl/perl-AnyEvent-CacheDNS";
554       license = with lib.licenses; [ artistic1 gpl1Plus ];
555     };
556   };
558   AnyEventFastPing = buildPerlPackage {
559     pname = "AnyEvent-FastPing";
560     version = "2.1";
561     src = fetchurl {
562       url = "mirror://cpan/authors/id/M/ML/MLEHMANN/AnyEvent-FastPing-2.1.tar.gz";
563       hash = "sha256-5ZIbj3rTXJg6ACWuAKSPyVyQwX/uw+WFmBhwSwxScCw=";
564     };
565     propagatedBuildInputs = [ AnyEvent commonsense ];
566     meta = {
567       description = "Quickly ping a large number of hosts";
568       license = with lib.licenses; [ artistic1 gpl2Plus ];
569       mainProgram = "fastping";
570     };
571   };
573   AnyEventHTTP = buildPerlPackage {
574     pname = "AnyEvent-HTTP";
575     version = "2.25";
576     src = fetchurl {
577       url = "mirror://cpan/authors/id/M/ML/MLEHMANN/AnyEvent-HTTP-2.25.tar.gz";
578       hash = "sha256-XPpTQWEkF29vTNMrAOqMp5otXfUSWGg5ic0E/obiUBM=";
579     };
580     propagatedBuildInputs = [ AnyEvent commonsense ];
581     meta = {
582       description = "Simple but non-blocking HTTP/HTTPS client";
583       license = with lib.licenses; [ artistic1 gpl1Plus ];
584     };
585   };
587   AnyEventI3 = buildPerlPackage {
588     pname = "AnyEvent-I3";
589     version = "0.17";
590     src = fetchurl {
591       url = "mirror://cpan/authors/id/M/MS/MSTPLBG/AnyEvent-I3-0.17.tar.gz";
592       hash = "sha256-U4LJhMnxODlfKfDACvgaoMj0t2VYIFXHPt5LE/BKbWM=";
593     };
594     propagatedBuildInputs = [ AnyEvent JSONXS ];
595     meta = {
596       description = "Communicate with the i3 window manager";
597       license = with lib.licenses; [ artistic1 gpl1Plus ];
598     };
599   };
601   AnyEventIRC = buildPerlPackage rec {
602     pname = "AnyEvent-IRC";
603     version = "0.97";
604     src = fetchurl {
605       url = "mirror://cpan/authors/id/E/EL/ELMEX/${pname}-${version}.tar.gz";
606       hash = "sha256-v9fPZFw8jGEUcQVxKGEUR+IPGt8BUWxpYky9i8d/W/A=";
607     };
608     propagatedBuildInputs = [ AnyEvent ObjectEvent commonsense ];
609     meta = {
610       description = "An event based IRC protocol client API";
611       license = with lib.licenses; [ artistic1 gpl1Plus ];
612     };
613   };
615   AnyEventRabbitMQ = buildPerlPackage {
616     pname = "AnyEvent-RabbitMQ";
617     version = "1.22";
618     src = fetchurl {
619       url = "mirror://cpan/authors/id/D/DL/DLAMBLEY/AnyEvent-RabbitMQ-1.22.tar.gz";
620       hash = "sha256-mMUqH+cAcQ8+W8VaOLJd5iXpsug0HSeNz54bPz0ZrO4=";
621     };
622     buildInputs = [ FileShareDirInstall TestException ];
623     propagatedBuildInputs = [ AnyEvent DevelGlobalDestruction FileShareDir ListMoreUtils NetAMQP Readonly namespaceclean ];
624     meta = {
625       description = "An asynchronous and multi channel Perl AMQP client";
626       license = with lib.licenses; [ artistic1 gpl1Plus ];
627     };
628   };
630   AnyMoose = buildPerlPackage {
631     pname = "Any-Moose";
632     version = "0.27";
633     src = fetchurl {
634       url = "mirror://cpan/authors/id/E/ET/ETHER/Any-Moose-0.27.tar.gz";
635       hash = "sha256-qKY+N/qALoJYvpmYORbN5FElgdyAYt5Q5z1mr24thTU=";
636     };
637     propagatedBuildInputs = [ Moose Mouse ];
638     meta = {
639       description = "(DEPRECATED) use Moo instead!";
640       license = with lib.licenses; [ artistic1 gpl1Plus ];
641     };
642   };
644   AnyURIEscape = buildPerlPackage {
645     pname = "Any-URI-Escape";
646     version = "0.01";
647     src = fetchurl {
648       url = "mirror://cpan/authors/id/P/PH/PHRED/Any-URI-Escape-0.01.tar.gz";
649       hash = "sha256-44E87J8Qj6XAvmbgjBmGv7pNJCFRsPn07F4MXhcQjEw=";
650     };
651     propagatedBuildInputs = [ URI ];
652     meta = {
653       description = "Load URI::Escape::XS preferentially over URI::Escape";
654       license = with lib.licenses; [ artistic1 gpl1Plus ];
655     };
656   };
658   URIEscapeXS = buildPerlPackage {
659     pname = "URI-Escape-XS";
660     version = "0.14";
661     src = fetchurl {
662       url = "mirror://cpan/authors/id/D/DA/DANKOGAI/URI-Escape-XS-0.14.tar.gz";
663       hash = "sha256-w5rFDGwrgxrkvwhpLmyl1KP5xX3E1/nEywZj4shsJ1k=";
664     };
665     meta = {
666       description = "Drop-In replacement for URI::Escape";
667       license = with lib.licenses; [ artistic1 gpl1Plus ];
668     };
669   };
671   ApacheAuthCookie = buildPerlPackage {
672     pname = "Apache-AuthCookie";
673     version = "3.31";
674     src = fetchurl {
675       url = "mirror://cpan/authors/id/M/MS/MSCHOUT/Apache-AuthCookie-3.31.tar.gz";
676       hash = "sha256-ByhnLrmLzWZSWWenXXxNYXwLTEEWIBOsmkzv5G99/3w=";
677     };
678     buildInputs = [ ApacheTest ];
679     propagatedBuildInputs = [ ClassLoad HTTPBody HashMultiValue WWWFormUrlEncoded ];
681     # Fails because /etc/protocols is not available in sandbox and make
682     # getprotobyname('tcp') in ApacheTest fail.
683     doCheck = !stdenv.isLinux;
685     meta = {
686       description = "Perl Authentication and Authorization via cookies";
687       homepage = "https://github.com/mschout/apache-authcookie";
688       license = with lib.licenses; [ artistic1 gpl1Plus ];
689     };
690   };
692   ApacheDB = buildPerlPackage {
693     pname = "Apache-DB";
694     version = "0.18";
695     src = fetchurl {
696       url = "mirror://cpan/authors/id/L/LZ/LZE/Apache-DB-0.18.tar.gz";
697       hash = "sha256-ZSf08VmCcL6ge+x4e3G98OwrVyVIvnQ4z3TyuaYAv+0=";
698     };
699     meta = {
700       description = "Run the interactive Perl debugger under mod_perl";
701       license = with lib.licenses; [ artistic1 gpl1Plus ];
702     };
703   };
705   ApacheLogFormatCompiler = buildPerlModule {
706     pname = "Apache-LogFormat-Compiler";
707     version = "0.36";
708     src = fetchurl {
709       url = "mirror://cpan/authors/id/K/KA/KAZEBURO/Apache-LogFormat-Compiler-0.36.tar.gz";
710       hash = "sha256-lFCVA+506oIBg9BwwRYw7lvA/YwSy3T66VPtYuShrBc=";
711     };
712     buildInputs = [ HTTPMessage ModuleBuildTiny TestMockTime TestRequires TryTiny URI ];
713     propagatedBuildInputs = [ POSIXstrftimeCompiler ];
714     # We cannot change the timezone on the fly.
715     prePatch = "rm t/04_tz.t";
716     meta = {
717       description = "Compile a log format string to perl-code";
718       homepage = "https://github.com/kazeburo/Apache-LogFormat-Compiler";
719       license = with lib.licenses; [ artistic1 gpl1Plus ];
720     };
721   };
723   ApacheSession = buildPerlModule {
724     pname = "Apache-Session";
725     version = "1.94";
726     src = fetchurl {
727       url = "mirror://cpan/authors/id/C/CH/CHORNY/Apache-Session-1.94.tar.gz";
728       hash = "sha256-/mm3aJmv6QuK5bgt4qqnV1rakIk39EhbgKrvMXVj6Z8=";
729     };
730     buildInputs = [ TestDeep TestException ];
731     meta = {
732       description = "A persistence framework for session data";
733       license = with lib.licenses; [ artistic1 gpl1Plus ];
734     };
735   };
737   ApacheTest = buildPerlPackage {
738     pname = "Apache-Test";
739     version = "1.43";
740     src = fetchurl {
741       url = "mirror://cpan/authors/id/S/SH/SHAY/Apache-Test-1.43.tar.gz";
742       hash = "sha256-qZmfAqeBpYkhi1ibGHnBHEladFrwlXXly7It/LZWgKw=";
743     };
744     doCheck = false;
745     meta = {
746       description = "Test.pm wrapper with helpers for testing Apache";
747       license = with lib.licenses; [ asl20 ];
748     };
749   };
751   AppCLI = buildPerlPackage {
752     pname = "App-CLI";
753     version = "0.52";
754     src = fetchurl {
755       url = "mirror://cpan/authors/id/P/PT/PTC/App-CLI-0.52.tar.gz";
756       hash = "sha256-Ur1D9VWRPML/1kBfmVHSqr1Gr2PXAdm140amMycJ8M4=";
757     };
758     propagatedBuildInputs = [ CaptureTiny ClassLoad ];
759     buildInputs = [ TestKwalitee TestPod ];
760     meta = {
761       description = "Dispatcher module for command line interface programs";
762       license = with lib.licenses; [ artistic1 gpl1Plus ];
763     };
764   };
766   AppClusterSSH = buildPerlModule {
767     pname = "App-ClusterSSH";
768     version = "4.16";
769     src = fetchurl {
770       url = "mirror://cpan/authors/id/D/DU/DUNCS/App-ClusterSSH-4.16.tar.gz";
771       hash = "sha256-G3y4q2BoViRK34vZrE0nUHwuQWh7OvGiJs4dsvP9VXg=";
772     };
773     propagatedBuildInputs = [ ExceptionClass Tk X11ProtocolOther XMLSimple ];
774     buildInputs = [ DataDump FileWhich Readonly TestDifferences TestTrap ];
775     preCheck = "rm t/30cluster.t t/15config.t"; # do not run failing tests
776     postInstall = ''
777       mkdir -p $out/share/bash-completion/completions
778       mv $out/bin/clusterssh_bash_completion.dist \
779         $out/share/bash-completion/completions/clusterssh_bash_completion
780       substituteInPlace $out/share/bash-completion/completions/clusterssh_bash_completion \
781         --replace '/bin/true' '${pkgs.coreutils}/bin/true' \
782         --replace 'grep' '${pkgs.gnugrep}/bin/grep' \
783         --replace 'sed' '${pkgs.gnused}/bin/sed'
784     '';
785     meta = {
786       description = "Cluster administration tool";
787       homepage = "https://github.com/duncs/clusterssh/wiki";
788       license = with lib.licenses; [ artistic1 gpl1Plus ];
789       mainProgram = "cssh";
790     };
791   };
793   AppCmd = buildPerlPackage {
794     pname = "App-Cmd";
795     version = "0.336";
796     src = fetchurl {
797       url = "mirror://cpan/authors/id/R/RJ/RJBS/App-Cmd-0.336.tar.gz";
798       hash = "sha256-35ZrV9WauxluADBIheW/EXypWBgq4/Tu3xchjqKDjoE=";
799     };
800     buildInputs = [ TestFatal ];
801     propagatedBuildInputs = [ CaptureTiny ClassLoad GetoptLongDescriptive IOTieCombine ModulePluggable StringRewritePrefix ];
802     meta = {
803       description = "Write command line apps with less suffering";
804       homepage = "https://github.com/rjbs/App-Cmd";
805       license = with lib.licenses; [ artistic1 gpl1Plus ];
806     };
807   };
809   AppConfig = buildPerlPackage {
810     pname = "AppConfig";
811     version = "1.71";
812     src = fetchurl {
813       url = "mirror://cpan/authors/id/N/NE/NEILB/AppConfig-1.71.tar.gz";
814       hash = "sha256-EXcCcCXssJ7mTZ+fJVYVwE214U91NsNEr2MgMuuIew8=";
815     };
816     buildInputs = [ TestPod ];
817     meta = {
818       description = "A bundle of Perl5 modules for reading configuration files and parsing command line arguments";
819       license = with lib.licenses; [ artistic1 gpl1Plus ];
820     };
821   };
823   AppFatPacker = buildPerlPackage {
824     pname = "App-FatPacker";
825     version = "0.010008";
826     src = fetchurl {
827       url = "mirror://cpan/authors/id/M/MS/MSTROUT/App-FatPacker-0.010008.tar.gz";
828       hash = "sha256-Ep2zbchFZhpYIoaBDP4tUhbrLOCCutQK4fzc4PRd7M8=";
829     };
830     meta = {
831       description = "Pack your dependencies onto your script file";
832       license = with lib.licenses; [ artistic1 gpl1Plus ];
833       mainProgram = "fatpack";
834     };
835   };
837   Appcpanminus = buildPerlPackage {
838     pname = "App-cpanminus";
839     version = "1.7047";
840     src = fetchurl {
841       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/App-cpanminus-1.7047.tar.gz";
842       hash = "sha256-lj5jxuGocl/y9iTpCGOWrhUNtR3QozfDeB0JqZSvBaU=";
843     };
844     # Use TLS endpoints for downloads and metadata by default
845     preConfigure = ''
846       substituteInPlace bin/cpanm \
847         --replace http://www.cpan.org https://www.cpan.org \
848         --replace http://backpan.perl.org https://backpan.perl.org \
849         --replace http://fastapi.metacpan.org https://fastapi.metacpan.org \
850         --replace http://cpanmetadb.plackperl.org https://cpanmetadb.plackperl.org
851     '';
852     propagatedBuildInputs = [ IOSocketSSL ];
853     meta = {
854       description = "Get, unpack, build and install modules from CPAN";
855       homepage = "https://github.com/miyagawa/cpanminus";
856       license = with lib.licenses; [ artistic1 gpl1Plus ];
857       mainProgram = "cpanm";
858     };
859   };
861   Appcpm = buildPerlModule {
862     pname = "App-cpm";
863     version = "0.997014";
864     src = fetchurl {
865       url = "mirror://cpan/authors/id/S/SK/SKAJI/App-cpm-0.997014.tar.gz";
866       hash = "sha256-LdTAPFQDnC0CzN0u+VvG/1bPvbdGzQdvywqVR8UEmQg=";
867     };
868     buildInputs = [ ModuleBuildTiny ];
869     propagatedBuildInputs = [ CPAN02PackagesSearch CPANCommonIndex CPANDistnameInfo ClassTiny CommandRunner ExtUtilsInstall ExtUtilsInstallPaths FileCopyRecursive Filepushd HTTPTinyish MenloLegacy Modulecpmfile ModuleCPANfile ParsePMFile ParallelPipes locallib ];
870     nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang;
871     postInstall = lib.optionalString stdenv.isDarwin ''
872       shortenPerlShebang $out/bin/cpm
873     '';
874     meta = {
875       description = "A fast CPAN module installer";
876       homepage = "https://github.com/skaji/cpm";
877       license = with lib.licenses; [ artistic1 gpl1Plus ];
878       maintainers = [ maintainers.zakame ];
879       mainProgram = "cpm";
880     };
881   };
883   Applify = buildPerlPackage {
884     pname = "Applify";
885     version = "0.23";
886     src = fetchurl {
887       url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/Applify-0.23.tar.gz";
888       hash = "sha256-fI3Z55e9DsJgDTAOzUnul4EZgxxlay0L3q7OoENIoRI=";
889     };
890     meta = {
891       description = "Write object oriented scripts with ease";
892       homepage = "https://github.com/jhthorsen/applify";
893       license = with lib.licenses; [ artistic2 ];
894       maintainers = [ maintainers.sgo ];
895     };
896   };
898   AppMusicChordPro = buildPerlPackage {
899     pname = "App-Music-ChordPro";
900     version = "6.030";
901     src = fetchurl {
902       url = "mirror://cpan/authors/id/J/JV/JV/App-Music-ChordPro-6.030.tar.gz";
903       hash = "sha256-a+5H8U5gmYPkrBUyxxwajPQy9m6sWeDlaeHTfg2cwnc=";
904     };
905     buildInputs = [ ObjectPad ];
906     propagatedBuildInputs = [ AppPackager FileLoadLines FileHomeDir IOString ImageInfo PDFAPI2 StringInterpolateNamed TextLayout ]
907       ++ lib.optionals (!stdenv.isDarwin) [ Wx ];
908     nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang;
910     # Delete tests that fail when version env var is set, see
911     # https://github.com/ChordPro/chordpro/issues/293
912     patchPhase = ''
913       rm t/320_subst.t t/321_subst.t t/322_subst.t
914     '';
916     postInstall = lib.optionalString stdenv.isDarwin ''
917       shortenPerlShebang $out/bin/chordpro
918       rm $out/bin/wxchordpro # Wx not supported on darwin
919     '';
920     meta = {
921       description = "A lyrics and chords formatting program";
922       homepage = "https://www.chordpro.org";
923       license = with lib.licenses; [ artistic1 gpl1Plus ];
924       mainProgram = "chordpro";
925     };
926   };
928   AppPackager =  buildPerlPackage {
929     pname = "App-Packager";
930     version = "1.440";
931     src = fetchurl {
932       url = "mirror://cpan/authors/id/J/JV/JV/App-Packager-1.440.tar.gz";
933       hash = "sha256-VoFBa+b9eJe+mEg8TqKOsN3gzGWzwg5o1HswRN7PKHo=";
934     };
935     meta = {
936       description = "Abstraction for Packagers";
937       license = with lib.licenses; [ artistic1 gpl1Plus ];
938     };
939   };
941   Appperlbrew = buildPerlModule {
942     pname = "App-perlbrew";
943     version = "0.98";
944     src = fetchurl {
945       url = "mirror://cpan/authors/id/G/GU/GUGOD/App-perlbrew-0.98.tar.gz";
946       hash = "sha256-oWD3ESJYjdU12pTbsLgwHkjlONJaRCobE/cZCWKIWTI=";
947     };
948     buildInputs = [ pkgs.curl FileWhich IOAll ModuleBuildTiny PathClass TestException TestNoWarnings TestOutput TestSpec TestTempDirTiny ];
949     propagatedBuildInputs = [ CPANPerlReleases CaptureTiny DevelPatchPerl PodParser locallib ];
951     doCheck = false;
953     meta = {
954       description = "Manage perl installations in your $HOME";
955       license = with lib.licenses; [ mit ];
956       mainProgram = "perlbrew";
957     };
958   };
960   ArchiveAnyLite = buildPerlPackage {
961     pname = "Archive-Any-Lite";
962     version = "0.11";
963     src = fetchurl {
964       url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/Archive-Any-Lite-0.11.tar.gz";
965       hash = "sha256-FcGIJTmTpLZuVZnweJsTJvCmbAkr2/rJMTcG1BwoUXA=";
966     };
967     propagatedBuildInputs = [ ArchiveZip ];
968     buildInputs = [ ExtUtilsMakeMakerCPANfile TestUseAllModules ];
969     meta = {
970       description = "Simple CPAN package extractor";
971       license = with lib.licenses; [ artistic1 gpl1Plus ];
972     };
973   };
975   AppSqitch = buildPerlModule {
976     version = "1.4.0";
977     pname = "App-Sqitch";
978     src = fetchurl {
979       url = "mirror://cpan/authors/id/D/DW/DWHEELER/App-Sqitch-v1.4.0.tar.gz";
980       hash = "sha256-sNs4cDH3dWJmLgA7xV16EComOAtK1/25qKO61XaeUBw=";
981     };
982     buildInputs = [ CaptureTiny TestDeep TestDir TestException TestFile TestFileContents TestMockModule TestMockObject TestNoWarnings TestWarn ];
983     propagatedBuildInputs = [ Clone ConfigGitLike DBI DateTime EncodeLocale HashMerge IOPager IPCRun3 IPCSystemSimple ListMoreUtils PathClass PerlIOutf8_strict PodParser StringFormatter StringShellQuote TemplateTiny Throwable TypeTiny URIdb libintl-perl ];
984     doCheck = false;  # Can't find home directory.
985     meta = {
986       description = "Sensible database change management";
987       homepage = "https://sqitch.org";
988       license = with lib.licenses; [ mit ];
989       mainProgram = "sqitch";
990     };
991   };
993   AppSt = buildPerlPackage {
994     pname = "App-St";
995     version = "1.1.4";
996     src = fetchurl {
997       url = "https://github.com/nferraz/st/archive/v1.1.4.tar.gz";
998       hash = "sha256-wCoW9n5MNXaQpUODGYQxSf1wDCIxKPn/6+yrKEnFi7g=";
999     };
1000     postInstall =
1001       ''
1002         ($out/bin/st --help || true) | grep Usage
1003       '';
1004     meta = {
1005       description = "Simple Statistics";
1006       homepage = "https://github.com/nferraz/st";
1007       license = with lib.licenses; [ mit ];
1008       maintainers = [ maintainers.eelco ];
1009       mainProgram = "st";
1010     };
1011   };
1013   AttributeParamsValidate = buildPerlPackage {
1014     pname = "Attribute-Params-Validate";
1015     version = "1.21";
1016     src = fetchurl {
1017       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Attribute-Params-Validate-1.21.tar.gz";
1018       hash = "sha256-WGuTnO/9s3GIt8Rh3RqPnzVpUYTIcDsFw19tUIyAkPU=";
1019     };
1020     buildInputs = [ TestFatal ];
1021     propagatedBuildInputs = [ ParamsValidate ];
1022     doCheck = false;
1023     meta = {
1024       description = "Validate method/function parameters";
1025       homepage = "https://metacpan.org/release/Params-Validate";
1026       license = with lib.licenses; [ artistic2 ];
1027     };
1028   };
1030   ArchiveLibarchive = buildPerlPackage {
1031     pname = "Archive-Libarchive";
1032     version = "0.08";
1033     src = fetchurl {
1034       url = "mirror://cpan/authors/id/P/PL/PLICEASE/Archive-Libarchive-0.08.tar.gz";
1035       hash = "sha256-6ONC1U/T1uXn4xYP4IjBOgpQM8/76JSBodJHHUNyAFk=";
1036     };
1037     patches = [ ../development/perl-modules/ArchiveLibarchive-set-findlib-path.patch ];
1038     postPatch = ''
1039       substituteInPlace lib/Archive/Libarchive/Lib.pm --replace "@@libarchive@@" "${pkgs.libarchive.lib}/lib"
1040     '';
1041     buildInputs = [ FFIC Filechdir PathTiny SubIdentify TermTable Test2Suite Test2ToolsMemoryCycle TestArchiveLibarchive TestScript ];
1042     propagatedBuildInputs = [ FFICStat FFICheckLib FFIPlatypus FFIPlatypusTypeEnum FFIPlatypusTypePtrObject RefUtil ];
1043     meta = {
1044       homepage = "https://metacpan.org/pod/Archive::Libarchive";
1045       description = "Modern Perl bindings to libarchive";
1046       license = with lib.licenses; [ artistic1 gpl1Plus ];
1047       maintainers = with maintainers; [ tomasajt ];
1048     };
1049   };
1051   ArchiveLibarchiveExtract = buildPerlPackage {
1052     pname = "Archive-Libarchive-Extract";
1053     version = "0.03";
1054     src = fetchurl {
1055       url = "mirror://cpan/authors/id/P/PL/PLICEASE/Archive-Libarchive-Extract-0.03.tar.gz";
1056       hash = "sha256-yXfAR0hnIX6zJvte5pA04e9spBQUkWHjEpAblf0SwIE=";
1057     };
1058     buildInputs = [ Test2Suite TestScript ];
1059     propagatedBuildInputs = [ ArchiveLibarchive Filechdir PathTiny RefUtil ];
1060     meta = {
1061       homepage = "https://metacpan.org/pod/Archive::Libarchive::Extract";
1062       description = "An archive extracting mechanism (using libarchive)";
1063       license = with lib.licenses; [ artistic1 gpl1Plus ];
1064       maintainers = with maintainers; [ tomasajt ];
1065     };
1066   };
1068   ArchiveLibarchivePeek = buildPerlPackage {
1069     pname = "Archive-Libarchive-Peek";
1070     version = "0.04";
1071     src = fetchurl {
1072       url = "mirror://cpan/authors/id/P/PL/PLICEASE/Archive-Libarchive-Peek-0.04.tar.gz";
1073       hash = "sha256-DYhJ4xG2RsozWz6gGodTtAIkK5XOgAo7zNXHCC4nJPo=";
1074     };
1075     buildInputs = [ Filechdir Test2Suite TestScript ];
1076     propagatedBuildInputs = [ ArchiveLibarchive PathTiny RefUtil ];
1077     meta = {
1078       homepage = "https://metacpan.org/pod/Archive::Libarchive::Peek";
1079       description = "Peek into archives without extracting them";
1080       license = with lib.licenses; [ artistic1 gpl1Plus ];
1081       maintainers = with maintainers; [ tomasajt ];
1082     };
1083   };
1085   ArrayCompare = buildPerlModule {
1086     pname = "Array-Compare";
1087     version = "3.0.8";
1088     src = fetchurl {
1089       url = "mirror://cpan/authors/id/D/DA/DAVECROSS/Array-Compare-v3.0.8.tar.gz";
1090       hash = "sha256-MEc7XpEBU4QNJDHqlGO55W5SPN56PFBhadaaK5dC2DQ=";
1091     };
1093     buildInputs = [ TestNoWarnings ];
1094     propagatedBuildInputs = [ Moo TypeTiny ];
1095     meta = {
1096       description = "Perl extension for comparing arrays";
1097       license = with lib.licenses; [ artistic1 gpl1Plus ];
1098     };
1099   };
1101   ArrayDiff = buildPerlPackage {
1102     pname = "Array-Diff";
1103     version = "0.09";
1104     src = fetchurl {
1105       url = "mirror://cpan/authors/id/N/NE/NEILB/Array-Diff-0.09.tar.gz";
1106       hash = "sha256-gAY5Lphh50FTfCu8kRbI5CuWLy4H6NZBov9qEcZEUHc=";
1107     };
1108     propagatedBuildInputs = [ AlgorithmDiff ClassAccessor ];
1109     meta = {
1110       description = "Find the differences between two arrays";
1111       homepage = "https://github.com/neilb/array-diff-perl";
1112       license = with lib.licenses; [ artistic1 gpl1Plus ];
1113     };
1114   };
1116   ArrayFIFO = buildPerlPackage {
1117     pname = "Array-FIFO";
1118     version = "0.13";
1119     src = fetchurl {
1120       url = "mirror://cpan/authors/id/D/DB/DBURKE/Array-FIFO-0.13.tar.gz";
1121       hash = "sha256-virrX1qa8alvADNQilacqTrRmtFdx8a5mObXvHQMZvc=";
1122     };
1123     buildInputs = [ TestDeep TestSpec TestTrap ];
1124     propagatedBuildInputs = [ Moose namespaceautoclean ];
1125     meta = {
1126       description = "A Simple limitable FIFO array, with sum and average methods";
1127       homepage = "https://github.com/dwburke/perl-Array-FIFO";
1128       license = with lib.licenses; [ artistic2 ];
1129     };
1130   };
1132   ArrayRefElem = buildPerlPackage {
1133     pname = "Array-RefElem";
1134     version = "1.00";
1135     src = fetchurl {
1136       url = "mirror://cpan/authors/id//G/GA/GAAS/Array-RefElem-1.00.tar.gz";
1137       hash = "sha256-U7iAo67AQ+TjcM4SaCtHVt5F3XQtq1cpT+IaFUU87+M=";
1138     };
1139     meta = {
1140       description = "Set up array elements as aliases";
1141       license = with lib.licenses; [ artistic1 gpl1Plus ];
1142     };
1143   };
1145   ArrayUtils = buildPerlPackage {
1146     pname = "ArrayUtils";
1147     version = "0.5";
1148     src = fetchurl {
1149       url = "https://cpan.metacpan.org/authors/id/Z/ZM/ZMIJ/Array/Array-Utils-0.5.tar.gz";
1150       hash = "sha256-id0bf82bQ3lJKjp3SW45/mzTebdz/QOmsWDdJu3mN3A=";
1151     };
1152     meta = {
1153       description = "Small utils for array manipulation";
1154       homepage = "https://metacpan.org/pod/Array::Utils";
1155       license = with lib.licenses; [ artistic1 gpl1Plus ];
1156     };
1157   };
1159   AsyncPing = buildPerlPackage {
1160     pname = "AsyncPing";
1161     version = "2016.1207";
1162     src = fetchurl {
1163       url = "mirror://cpan/authors/id/X/XI/XINFWANG/AsyncPing-2016.1207.tar.gz";
1164       hash = "sha256-b76a/sF6d3B2+K2JksjSMAr2WpUDRD0dT/nD+NKZyVo=";
1165     };
1166     meta = {
1167       description = "Ping a huge number of servers in several seconds";
1168       license = with lib.licenses; [ artistic2 ];
1169     };
1170   };
1172   AsyncUtil = buildPerlPackage {
1173     pname = "Async-Util";
1174     version = "0.01";
1175     src = fetchurl {
1176       url = "mirror://cpan/authors/id/W/WH/WHITNEY/Async-Util-0.01.tar.gz";
1177       hash = "sha256-jzKxHKvFD2Xjh79W8mWBV6IsNah5Nmbhtfis/hMQkQY=";
1178     };
1179     buildInputs = [ AnyEvent ListMoreUtils ];
1180     meta = {
1181       description = "Utilities for doing common async operations";
1182       license = with lib.licenses; [ artistic1 gpl1Plus ];
1183     };
1184   };
1186   ArchiveCpio = buildPerlPackage {
1187     pname = "Archive-Cpio";
1188     version = "0.10";
1189     src = fetchurl {
1190       url = "mirror://cpan/authors/id/P/PI/PIXEL/Archive-Cpio-0.10.tar.gz";
1191       hash = "sha256-JG+zFml2TngzayGRE0Ei4HxE8tgtxPN9VSqyj4ZovtM=";
1192     };
1193     meta = {
1194       description = "Module for manipulations of cpio archives";
1195       license = with lib.licenses; [ artistic1 gpl1Plus ]; # See https://rt.cpan.org/Public/Bug/Display.html?id=43597#txn-569710
1196       mainProgram = "cpio-filter";
1197     };
1198   };
1200   ArchiveExtract = buildPerlPackage {
1201     pname = "Archive-Extract";
1202     version = "0.88";
1203     src = fetchurl {
1204       url = "mirror://cpan/authors/id/B/BI/BINGOS/Archive-Extract-0.88.tar.gz";
1205       hash = "sha256-z/zxNc0GIih9OwIVT31nFklUSfyu0DlmYhlI4l6l90I=";
1206     };
1207     meta = {
1208       description = "Generic archive extracting mechanism";
1209       license = with lib.licenses; [ artistic1 gpl1Plus ];
1210     };
1211   };
1213   ArchiveTar = buildPerlPackage {
1214     pname = "Archive-Tar";
1215     version = "3.02";
1216     src = fetchurl {
1217       url = "mirror://cpan/authors/id/B/BI/BINGOS/Archive-Tar-3.02.tar.gz";
1218       hash = "sha256-gWM8h/c3hGGD01wPTJ1ALalHqEa0iBswzObZ6+PInRk=";
1219     };
1220     meta = {
1221       description = "Manipulates TAR archives";
1222       license = with lib.licenses; [ artistic1 gpl1Plus ];
1223       mainProgram = "ptar";
1224     };
1225   };
1227   ArchiveTarWrapper = buildPerlPackage {
1228     pname = "Archive-Tar-Wrapper";
1229     version = "0.38";
1230     src = fetchurl {
1231       url = "mirror://cpan/authors/id/A/AR/ARFREITAS/Archive-Tar-Wrapper-0.38.tar.gz";
1232       hash = "sha256-GfPQ2qi5XP+2jHBDUN0GdKI+HS8U0DKQO36WCe23s3o=";
1233     };
1234     propagatedBuildInputs = [ FileWhich IPCRun LogLog4perl ];
1235     meta = {
1236       description = "API wrapper around the 'tar' utility";
1237       license = with lib.licenses; [ gpl3Plus ];
1238     };
1239   };
1241   ArchiveZip = buildPerlPackage {
1242     pname = "Archive-Zip";
1243     version = "1.68";
1244     src = fetchurl {
1245       url = "mirror://cpan/authors/id/P/PH/PHRED/Archive-Zip-1.68.tar.gz";
1246       hash = "sha256-mE4YXXhbr2EpxudfjrREEXRawAv2Ei+xyOgio4YexlA=";
1247     };
1248     buildInputs = [ TestMockModule ];
1249     meta = {
1250       description = "Provide an interface to ZIP archive files";
1251       license = with lib.licenses; [ artistic1 gpl1Plus ];
1252       mainProgram = "crc32";
1253     };
1254   };
1256   AstroFITSHeader = buildPerlModule rec {
1257     pname = "Astro-FITS-Header";
1258     version = "3.09";
1259     src = fetchurl {
1260       url = "mirror://cpan/authors/id/G/GS/GSB/Astro-FITS-Header-3.09.tar.gz";
1261       hash = "sha256-cq1oveWku+zv8VFtZ3A/4tACFDlwQpo81pplFlLVaYY=";
1262     };
1263     meta = {
1264       description = "Object-oriented interface to FITS HDUs";
1265       homepage = "https://github.com/timj/perl-Astro-FITS-Header";
1266       license = with lib.licenses; [ gpl3Plus ];
1267     };
1268   };
1270   AudioCuefileParser = buildPerlPackage {
1271     pname = "Audio-Cuefile-Parser";
1272     version = "0.02";
1273     src = fetchurl {
1274       url = "mirror://cpan/authors/id/M/MA/MATTK/Audio-Cuefile-Parser-0.02.tar.gz";
1275       hash = "sha256-ulbQcMhz2WxoatmoH99P6JuETkPrSd/gAL+c70PFtmk=";
1276     };
1277     meta = {
1278       license = with lib.licenses; [ artistic1 gpl1Plus ];
1279     };
1280   };
1282   AudioFLACHeader = buildPerlPackage {
1283     pname = "Audio-FLAC-Header";
1284     version = "2.4";
1285     src = fetchurl {
1286       url = "mirror://cpan/authors/id/D/DA/DANIEL/Audio-FLAC-Header-2.4.tar.gz";
1287       hash = "sha256-+6WRHWwi2BUGVlzZoUOOhgVCD/eYbPA9GhLQBqQHBUM=";
1288     };
1289     meta = {
1290       description = "Interface to FLAC header metadata";
1291       license = with lib.licenses; [ artistic1 gpl1Plus ];
1292     };
1293   };
1295   AudioScan = buildPerlPackage {
1296     pname = "Audio-Scan";
1297     version = "1.01";
1298     src = fetchurl {
1299       url = "mirror://cpan/authors/id/A/AG/AGRUNDMA/Audio-Scan-1.01.tar.gz";
1300       hash = "sha256-gxJyAnHHrdxLvuwzEs3divS5kKxjYgSllsB5M61sY0o=";
1301     };
1302     buildInputs = [ pkgs.zlib TestWarn ];
1303     env.NIX_CFLAGS_COMPILE = "-I${pkgs.zlib.dev}/include";
1304     NIX_CFLAGS_LINK = "-L${pkgs.zlib.out}/lib -lz";
1305     meta = {
1306       description = "Fast C metadata and tag reader for all common audio file formats";
1307       license = with lib.licenses; [ gpl2Plus ];
1308     };
1309   };
1311   AuthenDecHpwd = buildPerlModule {
1312     pname = "Authen-DecHpwd";
1313     version = "2.007";
1314     src = fetchurl {
1315       url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Authen-DecHpwd-2.007.tar.gz";
1316       hash = "sha256-9DqTuwK0H3Mn2S+eljtpUF9nNQpS6PUHlvmK/E+z8Xc=";
1317     };
1318     perlPreHook = lib.optionalString stdenv.isi686 "export LD=$CC"; # fix undefined reference to `__stack_chk_fail_local'
1319     propagatedBuildInputs = [ DataInteger DigestCRC ScalarString ];
1320     meta = {
1321       description = "DEC VMS password hashing";
1322       license = with lib.licenses; [ gpl1Plus ];
1323     };
1324   };
1326   AuthenHtpasswd = buildPerlPackage {
1327     pname = "Authen-Htpasswd";
1328     version = "0.171";
1329     src = fetchurl {
1330       url = "mirror://cpan/authors/id/M/MS/MSTROUT/Authen-Htpasswd-0.171.tar.gz";
1331       hash = "sha256-tfr0fj+UikUoEGzLiMxxBIz+WY5bAmpEQ2i8fjk0gGc=";
1332     };
1333     propagatedBuildInputs = [ ClassAccessor CryptPasswdMD5 DigestSHA1 IOLockedFile ];
1334     # Remove test files that fail after DES support was removed from crypt()
1335     postPatch = ''
1336       rm t/04core.t t/05edit.t
1337     '';
1338     meta = {
1339       description = "Interface to read and modify Apache .htpasswd files";
1340       license = with lib.licenses; [ artistic1 gpl1Plus ];
1341     };
1342   };
1344   AuthenKrb5 = buildPerlModule {
1345     pname = "Authen-Krb5";
1346     version = "1.905";
1347     src = fetchurl {
1348       url = "mirror://cpan/authors/id/I/IO/IOANR/Authen-Krb5-1.905.tar.gz";
1349       hash = "sha256-13sAuxUBpW9xGOkarAx+Qi2888QY+c6YuAF3HDqg900=";
1350     };
1351     perlPreHook = "export LD=$CC";
1352     propagatedBuildInputs = [ pkgs.libkrb5 ];
1353     buildInputs = [ DevelChecklib FileWhich PkgConfig ];
1354     meta = {
1355       description = "XS bindings for Kerberos 5";
1356       license = with lib.licenses; [ artistic1 gpl1Plus ];
1357     };
1358   };
1360   AuthenKrb5Admin = buildPerlPackage rec {
1361     pname = "Authen-Krb5-Admin";
1362     version = "0.17";
1363     src = fetchurl {
1364       url = "mirror://cpan/authors/id/S/SJ/SJQUINNEY/Authen-Krb5-Admin-0.17.tar.gz";
1365       hash = "sha256-XdScrNmD79YajD8aVlcbtzeF6xVZCLXXvsl+7XjfDFQ=";
1366     };
1367     propagatedBuildInputs = [ pkgs.krb5.dev AuthenKrb5 ];
1368     # The following ENV variables are required by Makefile.PL to find
1369     # programs in krb5.dev. It is not enough to just specify the
1370     # path to krb5-config as this tool returns the prefix of krb5,
1371     # which implies a working value for KRB5_LIBDIR, but not the others.
1372     perlPreHook = ''
1373       export KRB5_CONFTOOL=${pkgs.krb5.dev}/bin/krb5-config
1374       export KRB5_BINDIR=${pkgs.krb5.dev}/bin
1375       export KRB5_INCDIR=${pkgs.krb5.dev}/include
1376     '';
1377     # Tests require working Kerberos infrastructure so replace with a
1378     # simple attempt to exercise the module.
1379     checkPhase = ''
1380       perl -I blib/lib -I blib/arch -MAuthen::Krb5::Admin -e 'print "1..1\nok 1\n"'
1381     '';
1382     meta = {
1383       description = "Perl extension for MIT Kerberos 5 admin interface";
1384       license = with lib.licenses; [ bsd3 ];
1385     };
1386   };
1388   AuthenModAuthPubTkt = buildPerlPackage {
1389     pname = "Authen-ModAuthPubTkt";
1390     version = "0.1.1";
1391     src = fetchurl {
1392       url = "mirror://cpan/authors/id/A/AG/AGORDON/Authen-ModAuthPubTkt-0.1.1.tar.gz";
1393       hash = "sha256-eZbhpCxRIWADzPA8S1JQKGtMVWhCV5cYUfXs6RYdx90=";
1394     };
1395     propagatedBuildInputs = [ pkgs.openssl IPCRun3 ];
1396     patchPhase = ''
1397       sed -i 's|my $openssl_bin = "openssl";|my $openssl_bin = "${pkgs.openssl}/bin/openssl";|' lib/Authen/ModAuthPubTkt.pm
1398       # -dss1 doesn't exist for dgst in openssl 1.1, -sha1 can also handle DSA keys now
1399       sed -i 's|-dss1|-sha1|' lib/Authen/ModAuthPubTkt.pm
1400     '';
1401     meta = {
1402       description = "Generate Tickets (Signed HTTP Cookies) for mod_auth_pubtkt protected websites";
1403       license = with lib.licenses; [ artistic1 gpl1Plus ];
1404       mainProgram = "mod_auth_pubtkt.pl";
1405     };
1406   };
1408   AuthenOATH = buildPerlPackage {
1409     pname = "Authen-OATH";
1410     version = "2.0.1";
1411     src = fetchurl {
1412       url = "mirror://cpan/authors/id/O/OA/OALDERS/Authen-OATH-2.0.1.tar.gz";
1413       hash = "sha256-GoE9vcBcP72d0528/YXiz7C6PQ9lLPaybsg6uBRt3Hc=";
1414     };
1415     buildInputs = [ TestNeeds ];
1416     propagatedBuildInputs = [ DigestHMAC Moo TypeTiny ];
1417     meta = {
1418       description = "OATH One Time Passwords";
1419       homepage = "https://github.com/oalders/authen-oath";
1420       license = with lib.licenses; [ artistic1 gpl1Plus ];
1421       maintainers = [ maintainers.sgo ];
1422     };
1423   };
1425   AuthenPassphrase = buildPerlModule {
1426     pname = "Authen-Passphrase";
1427     version = "0.008";
1428     src = fetchurl {
1429       url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Authen-Passphrase-0.008.tar.gz";
1430       hash = "sha256-VdtFIGF9hZ2IwO5Ull2oFbcibXkrjNyN6/kgc1WeBGM=";
1431     };
1432     propagatedBuildInputs = [ AuthenDecHpwd CryptDES CryptEksblowfish CryptMySQL CryptPasswdMD5 CryptUnixCryptXS DataEntropy DigestMD4 ModuleRuntime ];
1433     meta = {
1434       description = "Hashed passwords/passphrases as objects";
1435       license = with lib.licenses; [ artistic1 gpl1Plus ];
1436     };
1437   };
1439   AuthenRadius = buildPerlPackage {
1440     pname = "Authen-Radius";
1441     version = "0.32";
1442     src = fetchurl {
1443       url = "mirror://cpan/authors/id/P/PO/PORTAONE/Authen-Radius-0.32.tar.gz";
1444       hash = "sha256-eyCPmDfIOhhCZyVIklNlh+7Qvd5J577euj1ypmUjF0A=";
1445     };
1446     buildInputs = [ TestNoWarnings ];
1447     propagatedBuildInputs = [ DataHexDump NetIP ];
1448     meta = {
1449       description = "Provide simple Radius client facilities";
1450       license = with lib.licenses; [ artistic2 ];
1451     };
1452   };
1454   AuthenSASL = buildPerlPackage {
1455     pname = "Authen-SASL";
1456     version = "2.1700";
1457     src = fetchurl {
1458       url = "mirror://cpan/authors/id/E/EH/EHUELS/Authen-SASL-2.1700.tar.gz";
1459       hash = "sha256-uG1aV2uNOHruJPOfR6VK/RS7ZrCQA9tQZQAfHeA6js4=";
1460     };
1461     propagatedBuildInputs = [ DigestHMAC ];
1462     meta = {
1463       description = "SASL Authentication framework";
1464       license = with lib.licenses; [ artistic1 gpl1Plus ];
1465     };
1466   };
1468   AuthenSASLSASLprep = buildPerlModule {
1469     pname = "Authen-SASL-SASLprep";
1470     version = "1.100";
1471     src = fetchurl {
1472       url = "mirror://cpan/authors/id/C/CF/CFAERBER/Authen-SASL-SASLprep-1.100.tar.gz";
1473       hash = "sha256-pMzMNLs/U6zwunjJ/GGvjRVtEJ0cEEh7pZiKVQd9H3A=";
1474     };
1475     buildInputs = [ TestNoWarnings ];
1476     propagatedBuildInputs = [ UnicodeStringprep ];
1477     meta = {
1478       description = "A Stringprep Profile for User Names and Passwords (RFC 4013)";
1479       license = with lib.licenses; [ artistic1 gpl1Plus ];
1480       maintainers = [ maintainers.sgo ];
1481     };
1482   };
1484   AuthenSCRAM = buildPerlPackage {
1485     pname = "Authen-SCRAM";
1486     version = "0.011";
1487     src = fetchurl {
1488       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Authen-SCRAM-0.011.tar.gz";
1489       hash = "sha256-RRCMI5pzc9AJQdzw0XGs0D58FqY85vfZVo/wUrF89ag=";
1490     };
1491     buildInputs = [ TestFailWarnings TestFatal ];
1492     propagatedBuildInputs = [ AuthenSASLSASLprep CryptURandom Moo PBKDF2Tiny TypeTiny namespaceclean ];
1493     meta = {
1494       description = "Salted Challenge Response Authentication Mechanism (RFC 5802)";
1495       homepage = "https://github.com/dagolden/Authen-SCRAM";
1496       license = with lib.licenses; [ asl20 ];
1497       maintainers = [ maintainers.sgo ];
1498     };
1499   };
1501   AuthenSimple = buildPerlPackage {
1502     pname = "Authen-Simple";
1503     version = "0.5";
1504     src = fetchurl {
1505       url = "mirror://cpan/authors/id/C/CH/CHANSEN/Authen-Simple-0.5.tar.gz";
1506       hash = "sha256-As3atH+L8aHL1Mm/jSWPbQURFJnDP4MV5yRIEvcmE6o=";
1507     };
1508     # Our C crypt() doesn't support this weak "crypt" algorithm anymore.
1509     postPatch = ''
1510       patch -p1 <<-EOF
1511         --- a/t/09password.t
1512         +++ b/t/09password.t
1513         @@ -10 +10 @@
1514         -use Test::More tests => 16;
1515         +use Test::More tests => 14;
1516         @@ -14 +13,0 @@
1517         -    [ 'crypt',     'lk9Mh5KHGjAaM',                          'crypt'        ],
1518         @@ -18 +16,0 @@
1519         -    [ 'crypt',     '{CRYPT}lk9Mh5KHGjAaM',                   '{CRYPT}'      ],
1520       EOF
1521     '';
1522     propagatedBuildInputs = [ ClassAccessor ClassDataInheritable CryptPasswdMD5 ParamsValidate ];
1523     meta = {
1524       description = "Simple Authentication";
1525       license = with lib.licenses; [ artistic1 gpl1Plus ];
1526     };
1527   };
1529   AuthenSimplePasswd = buildPerlModule {
1530     pname = "Authen-Simple-Passwd";
1531     version = "0.6";
1532     src = fetchurl {
1533       url = "mirror://cpan/authors/id/C/CH/CHANSEN/Authen-Simple-Passwd-0.6.tar.gz";
1534       hash = "sha256-z1W8NiWe3w/Wr5rSusgbMdxbVqFixmBZDsuWnHwWdLI=";
1535     };
1536     # Our C crypt() doesn't support this weak "crypt" algorithm anymore.
1537     postPatch = ''
1538       sed -e 's/tests => 8/tests => 7/' -e "/'crypt'/d" -i t/04basic.t
1539     '';
1540     propagatedBuildInputs = [ AuthenSimple ];
1541     meta = {
1542       description = "Simple Passwd authentication";
1543       license = with lib.licenses; [ artistic1 gpl1Plus ];
1544     };
1545   };
1547   autobox = buildPerlPackage {
1548     pname = "autobox";
1549     version = "3.0.1";
1550     src = fetchurl {
1551       url = "mirror://cpan/authors/id/C/CH/CHOCOLATE/autobox-v3.0.1.tar.gz";
1552       hash = "sha256-wwO3/M+qH/TUxCmrPxXlyip3VU74yfw7jGK6hZ6HTJg=";
1553     };
1554     propagatedBuildInputs = [ ScopeGuard ];
1555     buildInputs = [ IPCSystemSimple TestFatal ];
1556     meta = {
1557       description = "Call methods on native types";
1558       license = with lib.licenses; [ artistic2 ];
1559     };
1560   };
1562   Autodia = buildPerlPackage {
1563     pname = "Autodia";
1564     version = "2.14";
1565     src = fetchurl {
1566       url = "mirror://cpan/authors/id/T/TE/TEEJAY/Autodia-2.14.tar.gz";
1567       hash = "sha256-rIElyIq+Odn+Aco6zBOgCinzM2pLt+9gRH5ri4Iv9CI=";
1568     };
1569     propagatedBuildInputs = [ TemplateToolkit XMLSimple ];
1570     buildInputs = [ DBI ];
1572     meta = {
1573       description = "AutoDia, create UML diagrams from source code";
1574       longDescription = ''
1575         AutoDia is a modular application that parses source code, XML or data
1576         and produces an XML document in Dia format (or images via graphviz
1577         and vcg).  Its goal is to be a UML / DB Schema diagram autocreation
1578         package.  The diagrams its creates are standard UML diagrams showing
1579         dependencies, superclasses, packages, classes and inheritances, as
1580         well as the methods, etc of each class.
1582         AutoDia supports any language that a Handler has been written for,
1583         which includes C, C++, Java, Perl, Python, and more.
1584       '';
1585       homepage = "http://www.aarontrevena.co.uk/opensource/autodia/";
1586       license = with lib.licenses; [ gpl2Plus ];
1587       mainProgram = "autodia.pl";
1588     };
1589   };
1591   AWSSignature4 = buildPerlModule {
1592     pname = "AWS-Signature4";
1593     version = "1.02";
1594     src = fetchurl {
1595       url = "mirror://cpan/authors/id/L/LD/LDS/AWS-Signature4-1.02.tar.gz";
1596       hash = "sha256-ILvBbLNFT+XozzT+YfGpH+JsPxfkSf9mX8u7kqtEPr0=";
1597     };
1598     propagatedBuildInputs = [ LWP TimeDate URI ];
1599     meta = {
1600       description = "Create a version4 signature for Amazon Web Services";
1601       license = with lib.licenses; [ artistic1 gpl1Plus ];
1602     };
1603   };
1605   autovivification = buildPerlPackage {
1606     pname = "autovivification";
1607     version = "0.18";
1608     src = fetchurl {
1609       url = "mirror://cpan/authors/id/V/VP/VPIT/autovivification-0.18.tar.gz";
1610       hash = "sha256-LZmXVoUkKYDQqZBPY5FEwFnW7OFYme/eSst0LTJT8QU=";
1611     };
1612     meta = {
1613       description = "Lexically disable autovivification";
1614       homepage = "https://search.cpan.org/dist/autovivification";
1615       license = with lib.licenses; [ artistic1 gpl1Plus ];
1616     };
1617   };
1619   BarcodeZBar = buildPerlPackage {
1620     pname = "Barcode-ZBar";
1621     version = "0.04pre";
1622     # The meta::cpan version of this module has been unmaintained from 2009
1623     # This uses an updated version from the ZBar repo that works with the current ZBar library
1624     src = "${pkgs.zbar.src}/perl";
1625     postPatch = ''
1626       substituteInPlace Makefile.PL --replace "-lzbar" "-L${pkgs.zbar.lib}/lib -lzbar"
1627       rm t/Processor.t
1628     '';
1629     buildInputs =[ ExtUtilsMakeMaker ];
1630     propagatedBuildInputs = [ pkgs.zbar PerlMagick ];
1631     perlPreHook = lib.optionalString stdenv.isDarwin "export LD=$CC";
1632     meta = {
1633       description = "Perl interface to the ZBar Barcode Reader";
1634       homepage = "https://metacpan.org/pod/Barcode::ZBar";
1635       license = with lib.licenses; [ lgpl21Plus ];
1636     };
1637   };
1639   BC = buildPerlPackage {
1640     pname = "B-C";
1641     version = "1.57";
1642     src = fetchurl {
1643       url = "mirror://cpan/authors/id/R/RU/RURBAN/B-C-1.57.tar.gz";
1644       hash = "sha256-BFKmEdNDrfnZX86ra6a2YXbjrX/MzlKAkiwOQx9RSf8=";
1645     };
1646     propagatedBuildInputs = [ BFlags IPCRun Opcodes ];
1647     doCheck = false; /* test fails */
1648     meta = {
1649       description = "Perl compiler";
1650       homepage = "https://github.com/rurban/perl-compiler";
1651       license = with lib.licenses; [ artistic1 gpl1Plus ];
1652       mainProgram = "perlcc";
1653     };
1654   };
1656   BCOW = buildPerlPackage {
1657     pname = "B-COW";
1658     version = "0.007";
1659     src = fetchurl {
1660       url = "mirror://cpan/authors/id/A/AT/ATOOMIC/B-COW-0.007.tar.gz";
1661       hash = "sha256-EpDa8ifosJiJoxzxguKRBvHPnxpOm/d1L53pLtEVi0Q=";
1662     };
1663     meta = {
1664       description = "B::COW additional B helpers to check COW status";
1665       license = with lib.licenses; [ artistic1 gpl1Plus ];
1666     };
1667   };
1669   BFlags = buildPerlPackage {
1670     pname = "B-Flags";
1671     version = "0.17";
1672     src = fetchurl {
1673       url = "mirror://cpan/authors/id/R/RU/RURBAN/B-Flags-0.17.tar.gz";
1674       hash = "sha256-wduX0BMVvtEJtMSJWM0yGVz8nvXTt3B+tHhAwdV8ELI=";
1675     };
1676     meta = {
1677       description = "Friendlier flags for B";
1678       license = with lib.licenses; [ artistic1 gpl1Only ];
1679     };
1680   };
1682   BeanstalkClient = buildPerlPackage {
1683     pname = "Beanstalk-Client";
1684     version = "1.07";
1685     src = fetchurl {
1686       url = "mirror://cpan/authors/id/G/GB/GBARR/Beanstalk-Client-1.07.tar.gz";
1687       hash = "sha256-MYirESfyyrqX32XIT2nbDscMZOXXDylvmiZ0+nnBEsw=";
1688     };
1689     propagatedBuildInputs = [ ClassAccessor YAMLSyck ];
1690     meta = {
1691       description = "Client to communicate with beanstalkd server";
1692       license = with lib.licenses; [ artistic1 gpl1Plus ];
1693     };
1694   };
1696   BerkeleyDB = buildPerlPackage {
1697     pname = "BerkeleyDB";
1698     version = "0.65";
1700     src = fetchurl {
1701       url = "mirror://cpan/authors/id/P/PM/PMQS/BerkeleyDB-0.65.tar.gz";
1702       hash = "sha256-QQqonnIylB1JEGyeBI1jN0dVQ+wdIz6nzbcly1uWNQQ=i";
1703     };
1705     preConfigure = ''
1706       echo "LIB = ${pkgs.db.out}/lib" > config.in
1707       echo "INCLUDE = ${pkgs.db.dev}/include" >> config.in
1708     '';
1709     meta = {
1710       description = "Perl extension for Berkeley DB version 2, 3, 4, 5 or 6";
1711       license = with lib.licenses; [ artistic1 gpl1Plus ];
1712     };
1713   };
1715   BDB = buildPerlPackage rec {
1716     pname = "BDB";
1717     version = "1.92";
1718     src = fetchurl {
1719       url = "mirror://cpan/authors/id/M/ML/MLEHMANN/${pname}-${version}.tar.gz";
1720       hash = "sha256-o/LKnSuu/BqqQJCLL5y5KS/aPn15fji7146rudna62s=";
1721     };
1722     env.NIX_CFLAGS_COMPILE = "-I${pkgs.db4.dev}/include";
1723     NIX_CFLAGS_LINK = "-L${pkgs.db4.out}/lib -ldb";
1724     buildInputs = [ pkgs.db4 ];
1725     propagatedBuildInputs = [ commonsense ];
1726     meta = {
1727       description = "Asynchronous Berkeley DB access";
1728       license = with lib.licenses; [ artistic1 gpl1Plus ];
1729     };
1730   };
1732   BHooksEndOfScope = buildPerlPackage {
1733     pname = "B-Hooks-EndOfScope";
1734     version = "0.26";
1735     src = fetchurl {
1736       url = "mirror://cpan/authors/id/E/ET/ETHER/B-Hooks-EndOfScope-0.26.tar.gz";
1737       hash = "sha256-Od8vjAB6dUZyB1+VuQeXuuvpetptlEsZemNScJyzBnE=";
1738     };
1739     propagatedBuildInputs = [ ModuleImplementation SubExporterProgressive ];
1740     meta = {
1741       description = "Execute code after a scope finished compilation";
1742       homepage = "https://github.com/karenetheridge/B-Hooks-EndOfScope";
1743       license = with lib.licenses; [ artistic1 gpl1Plus ];
1744     };
1745   };
1747   BHooksOPAnnotation = buildPerlPackage {
1748     pname = "B-Hooks-OP-Annotation";
1749     version = "0.44";
1750     src = fetchurl {
1751       url = "mirror://cpan/authors/id/C/CH/CHOCOLATE/B-Hooks-OP-Annotation-0.44.tar.gz";
1752       hash = "sha256-bib5k2f06pRBac9uBc9NBngyCCQkyo7O/Mt7WmMhexY=";
1753     };
1754     propagatedBuildInputs = [ ExtUtilsDepends ];
1755     meta = {
1756       description = "Annotate and delegate hooked OPs";
1757       license = with lib.licenses; [ artistic1 gpl1Plus ];
1758     };
1759   };
1761   BHooksOPCheck = buildPerlPackage {
1762     pname = "B-Hooks-OP-Check";
1763     version = "0.22";
1764     src = fetchurl {
1765       url = "mirror://cpan/authors/id/E/ET/ETHER/B-Hooks-OP-Check-0.22.tar.gz";
1766       hash = "sha256-x7XRvvWe+Qh/9n6zFo0mJL6UrlRkRp4lmtEb+4rYzc0=";
1767     };
1768     buildInputs = [ ExtUtilsDepends ];
1769     meta = {
1770       description = "Wrap OP check callbacks";
1771       homepage = "https://github.com/karenetheridge/B-Hooks-OP-Check";
1772       license = with lib.licenses; [ artistic1 gpl1Plus ];
1773     };
1774   };
1776   BioExtAlign = callPackage ../development/perl-modules/Bio-Ext-Align { };
1778   BioDBHTS = buildPerlModule {
1779     pname = "Bio-DB-HTS";
1780     version = "3.01";
1781     src = fetchurl {
1782       url = "mirror://cpan/authors/id/A/AV/AVULLO/Bio-DB-HTS-3.01.tar.gz";
1783       sha256 = "12a6bc1f579513cac8b9167cce4e363655cc8eba26b7d9fe1170dfe95e044f42";
1784     };
1786     buildInputs = [ pkgs.htslib pkgs.zlib ];
1788     propagatedBuildInputs = [ BioPerl ];
1789     htslibStore = toString pkgs.htslib;
1791     postPatch = ''
1792       # -Wl,-rpath not recognized : replaced by -rpath=
1793       sed -i 's/Wl,-rpath,/rpath=/' Build.PL
1794     '';
1796     preBuild = ''
1797       export HTSLIB_DIR=${pkgs.htslib}
1798     '';
1800     meta = {
1801       description = "Perl interface to HTS library for DNA sequencing";
1802       license = lib.licenses.asl20;
1803     };
1804   };
1806   BioPerl = buildPerlPackage {
1807     pname = "BioPerl";
1808     version = "1.7.8";
1809     src = fetchurl {
1810       url = "mirror://cpan/authors/id/C/CJ/CJFIELDS/BioPerl-1.7.8.tar.gz";
1811       hash = "sha256-xJCjvncV6m5DBe/ZcQ5e2rgtq8Vf14a2UFtVCjDXFzg=";
1812     };
1813     buildInputs = [ ModuleBuild TestMemoryCycle TestWeaken TestDeep TestWarn TestException TestDifferences ];
1814     propagatedBuildInputs = [ DataStag Error Graph HTTPMessage IOString IOStringy IPCRun LWP ListMoreUtils SetScalar TestMost TestRequiresInternet URI XMLDOM XMLLibXML XMLSAX XMLSAXBase XMLSAXWriter XMLTwig XMLWriter YAML DBFile libxml_perl ];
1815     meta = {
1816       description = "Perl modules for biology";
1817       homepage = "https://metacpan.org/release/BioPerl";
1818       license = with lib.licenses; [ artistic1 gpl1Plus ];
1819     };
1820   };
1822   BitVector = buildPerlPackage {
1823     pname = "Bit-Vector";
1824     version = "7.4";
1825     src = fetchurl {
1826       url = "mirror://cpan/authors/id/S/ST/STBEY/Bit-Vector-7.4.tar.gz";
1827       hash = "sha256-PG2qZx/s+8Nfkqk4W1Y9ZfUN/Gvci0gF+e9GwNA1qSY=";
1828     };
1829     propagatedBuildInputs = [ CarpClan ];
1830     meta = {
1831       description = "Efficient bit vector, set of integers and 'big int' math library";
1832       license = with lib.licenses; [ artistic1 gpl1Plus lgpl2Only ];
1833     };
1834   };
1836   BKeywords = buildPerlPackage rec {
1837     pname = "B-Keywords";
1838     version = "1.26";
1839     src = fetchurl {
1840       url = "mirror://cpan/authors/id/R/RU/RURBAN/B-Keywords-1.26.tar.gz";
1841       hash = "sha256-LaoVXS8mf7De3Yf4pMT7VmOHn8EGUXse4lg1Pvh67TQ=";
1842     };
1843     meta = {
1844       description = "Lists of reserved barewords and symbol names";
1845       license = with lib.licenses; [ artistic1 gpl2Only ];
1846     };
1847   };
1849   boolean = buildPerlPackage {
1850     pname = "boolean";
1851     version = "0.46";
1852     src = fetchurl {
1853       url = "mirror://cpan/authors/id/I/IN/INGY/boolean-0.46.tar.gz";
1854       hash = "sha256-lcCICFw+g79oD+bOFtgmTsJjEEkPfRaA5BbqehGPFWo=";
1855     };
1856     meta = {
1857       description = "Boolean support for Perl";
1858       homepage = "https://github.com/ingydotnet/boolean-pm";
1859       license = with lib.licenses; [ artistic1 gpl1Plus ];
1860     };
1861   };
1863   BoostGeometryUtils = buildPerlModule {
1864     pname = "Boost-Geometry-Utils";
1865     version = "0.15";
1866     src = fetchurl {
1867       url = "mirror://cpan/authors/id/A/AA/AAR/Boost-Geometry-Utils-0.15.tar.gz";
1868       hash = "sha256-AFTdP1c70/b0e3PugdHoRYQvugSq21KICqUnAcaH0co=";
1869     };
1870     patches = [
1871       # Fix out of memory error on Perl 5.19.4 and later.
1872       ../development/perl-modules/boost-geometry-utils-fix-oom.patch
1873     ];
1874     perlPreHook = "export LD=$CC";
1875     buildInputs = [ ExtUtilsCppGuess ExtUtilsTypemapsDefault ExtUtilsXSpp ModuleBuildWithXSpp ];
1876     meta = {
1877       description = "Bindings for the Boost Geometry library";
1878       license = with lib.licenses; [ artistic1 gpl1Plus ];
1879     };
1880   };
1882   BotTraining = buildPerlPackage {
1883     pname = "Bot-Training";
1884     version = "0.07";
1885     src = fetchurl {
1886       url = "mirror://cpan/authors/id/A/AV/AVAR/Bot-Training-0.07.tar.gz";
1887       hash = "sha256-7ma7+BTw3D0egGgOBQ+tELHgGP7Xkp9lPtQOCIsqopU=";
1888     };
1889     buildInputs = [ FileSlurp ];
1890     propagatedBuildInputs = [ ClassLoad DirSelf FileShareDir ModulePluggable MooseXGetopt namespaceclean  ];
1891     meta = {
1892       description = "Plain text training material for bots like Hailo and AI::MegaHAL";
1893       homepage = "https://metacpan.org/release/Bot-Training";
1894       license = with lib.licenses; [ artistic1 gpl1Plus ];
1895       mainProgram = "bot-training";
1896     };
1897   };
1899   BotTrainingMegaHAL = buildPerlPackage {
1900     pname = "Bot-Training-MegaHAL";
1901     version = "0.03";
1902     src = fetchurl {
1903       url = "mirror://cpan/authors/id/A/AV/AVAR/Bot-Training-MegaHAL-0.03.tar.gz";
1904       hash = "sha256-lWByr/BPIW5cO4GWlltdgNTUdpXXfsqr1W5Z1l8iv2A=";
1905     };
1906     buildInputs = [ FileShareDirInstall ];
1907     propagatedBuildInputs = [ BotTraining ];
1908     meta = {
1909       description = "Provide megahal.trn via Bot::Training";
1910       homepage = "https://metacpan.org/release/Bot-Training-MegaHAL";
1911       license = with lib.licenses; [ artistic1 gpl1Plus ];
1912     };
1913   };
1915   BotTrainingStarCraft = buildPerlPackage {
1916     pname = "Bot-Training-StarCraft";
1917     version = "0.03";
1918     src = fetchurl {
1919       url = "mirror://cpan/authors/id/A/AV/AVAR/Bot-Training-StarCraft-0.03.tar.gz";
1920       hash = "sha256-58640Bxi5zLdib/l9Ng+eBwc2RJULRd8Iudht8hhTV4=";
1921     };
1922     buildInputs = [ FileShareDirInstall ];
1923     propagatedBuildInputs = [ BotTraining ];
1924     meta = {
1925       description = "Provide starcraft.trn via Bot::Training";
1926       homepage = "https://metacpan.org/release/Bot-Training-StarCraft";
1927       license = with lib.licenses; [ artistic1 gpl1Plus ];
1928     };
1929   };
1931   BSDResource = buildPerlPackage {
1932     pname = "BSD-Resource";
1933     version = "1.2911";
1934     src = fetchurl {
1935       url = "mirror://cpan/authors/id/J/JH/JHI/BSD-Resource-1.2911.tar.gz";
1936       hash = "sha256-nRz7oGPMGPckJ6IkUfeQiDa3MxrIeF2+B1U8WwQ6DD0=";
1937     };
1938     meta = {
1939       description = "BSD process resource limit and priority functions";
1940       license = with lib.licenses; [ artistic2 ];
1941       maintainers = teams.deshaw.members;
1942     };
1943   };
1945   BSON = buildPerlPackage {
1946     pname = "BSON";
1947     version = "1.12.2";
1948     src = fetchurl {
1949       url = "mirror://cpan/authors/id/M/MO/MONGODB/BSON-v1.12.2.tar.gz";
1950       hash = "sha256-9GEsDDVDEHQbmattJkUSJoIxUMonEJsbORIy1c/dpts=";
1951     };
1952     buildInputs = [ JSONMaybeXS PathTiny TestDeep TestFatal ];
1953     propagatedBuildInputs = [ CryptURandom Moo TieIxHash boolean namespaceclean ];
1954     meta = {
1955       description = "BSON serialization and deserialization (EOL)";
1956       homepage = "https://github.com/mongodb-labs/mongo-perl-bson";
1957       license = with lib.licenses; [ asl20 ];
1958     };
1959   };
1961   BSONXS = buildPerlPackage {
1962     pname = "BSON-XS";
1963     version = "0.8.4";
1964     src = fetchurl {
1965       url = "mirror://cpan/authors/id/M/MO/MONGODB/BSON-XS-v0.8.4.tar.gz";
1966       hash = "sha256-KPfTOP14tvnJpggL6d4/XLI9iIuW6/b8v6zp8pZq6/k=";
1967     };
1968     buildInputs = [ ConfigAutoConf JSONMaybeXS PathTiny TestDeep TestFatal TieIxHash ];
1969     propagatedBuildInputs = [ BSON boolean JSONXS JSONPP CpanelJSONXS ];
1970     meta = {
1971       description = "XS implementation of MongoDB's BSON serialization (EOL)";
1972       homepage = "https://github.com/mongodb-labs/mongo-perl-bson-xs";
1973       license = with lib.licenses; [ asl20 ];
1974       platforms = lib.platforms.linux; # configure phase fails with "ld: unknown option: -mmacosx-version-min=10.12"
1975     };
1976   };
1978   BUtils = buildPerlPackage {
1979     pname = "B-Utils";
1980     version = "0.27";
1981     src = fetchurl {
1982       url = "mirror://cpan/authors/id/E/ET/ETHER/B-Utils-0.27.tar.gz";
1983       hash = "sha256-+X9T9qMFAQmqQU/usYTK0QGBLUF2DpUrXYSZP2aF/+o=";
1984     };
1985     propagatedBuildInputs = [ TaskWeaken ];
1986     buildInputs = [ ExtUtilsDepends ];
1987     meta = {
1988       description = "Helper functions for op tree manipulation";
1989       homepage = "https://search.cpan.org/dist/B-Utils";
1990       license = with lib.licenses; [ artistic1 gpl1Plus ];
1991     };
1992   };
1994   BusinessHours = buildPerlPackage {
1995     pname = "Business-Hours";
1996     version = "0.13";
1997     src = fetchurl {
1998       url = "mirror://cpan/authors/id/B/BP/BPS/Business-Hours-0.13.tar.gz";
1999       hash = "sha256-qAf+P/u4T/pTlnEazOdXZPOknyQjZGc1DHHIp3pcPsI=";
2000     };
2001     propagatedBuildInputs = [ SetIntSpan ];
2002     meta = {
2003       description = "Calculate business hours in a time period";
2004       license = with lib.licenses; [ artistic1 gpl1Plus ];
2005     };
2006   };
2008   BusinessISBN = buildPerlPackage {
2009     pname = "Business-ISBN";
2010     version = "3.008";
2011     src = fetchurl {
2012       url = "mirror://cpan/authors/id/B/BD/BDFOY/Business-ISBN-3.008.tar.gz";
2013       hash = "sha256-GcSh1NmaDddpWpAZKxNASg4+7r7fy+l6AgLjayOMDmk=";
2014     };
2015     propagatedBuildInputs = [ BusinessISBNData ];
2016     meta = {
2017       description = "Work with International Standard Book Numbers";
2018       homepage = "https://github.com/briandfoy/business-isbn";
2019       license = with lib.licenses; [ artistic2 ];
2020     };
2021   };
2023   BusinessISBNData = buildPerlPackage {
2024     pname = "Business-ISBN-Data";
2025     version = "20231006.001";
2026     src = fetchurl {
2027       url = "mirror://cpan/authors/id/B/BD/BDFOY/Business-ISBN-Data-20231006.001.tar.gz";
2028       hash = "sha256-KhazbjIzXOjI337m8ig2LzSuc8T8wSNQCVCiyMd/F0g=";
2029     };
2030     meta = {
2031       description = "Data pack for Business::ISBN";
2032       homepage = "https://github.com/briandfoy/business-isbn-data";
2033       license = with lib.licenses; [ artistic2 ];
2034     };
2035   };
2037   BusinessISMN = buildPerlPackage {
2038     pname = "Business-ISMN";
2039     version = "1.203";
2040     src = fetchurl {
2041       url = "mirror://cpan/authors/id/B/BD/BDFOY/Business-ISMN-1.203.tar.gz";
2042       hash = "sha256-T1Ou2rLmh9Th9yhW6vwiFZOQYhEj2q955FBqiX4pPog=";
2043     };
2044     propagatedBuildInputs = [ TieCycle ];
2045     meta = {
2046       description = "Work with International Standard Music Numbers";
2047       homepage = "https://github.com/briandfoy/business-ismn";
2048       license = with lib.licenses; [ artistic2 ];
2049     };
2050   };
2052   BusinessISSN = buildPerlPackage {
2053     pname = "Business-ISSN";
2054     version = "1.005";
2055     src = fetchurl {
2056       url = "mirror://cpan/authors/id/B/BD/BDFOY/Business-ISSN-1.005.tar.gz";
2057       hash = "sha256-OwmwJn8KZmD7krb1DEx3lu9qJjtirTu+qgcYmgx8ObM=";
2058     };
2059     meta = {
2060       description = "Perl extension for International Standard Serial Numbers";
2061       homepage = "https://github.com/briandfoy/business-issn";
2062       license = with lib.licenses; [ artistic2 ];
2063     };
2064   };
2066   BytesRandomSecure = buildPerlPackage {
2067     pname = "Bytes-Random-Secure";
2068     version = "0.29";
2069     src = fetchurl {
2070       url = "mirror://cpan/authors/id/D/DA/DAVIDO/Bytes-Random-Secure-0.29.tar.gz";
2071       hash = "sha256-U7vTOeahHvygfGGaYVx8GIpouyvoSaHLfvw91Nmuha4=";
2072     };
2073     propagatedBuildInputs = [ CryptRandomSeed MathRandomISAAC ];
2074     meta = {
2075       description = "Perl extension to generate cryptographically-secure random bytes";
2076       license = with lib.licenses; [ artistic1 gpl1Plus ];
2077       maintainers = [ maintainers.sgo ];
2078     };
2079   };
2081   BytesRandomSecureTiny = buildPerlPackage {
2082     pname = "Bytes-Random-Secure-Tiny";
2083     version = "1.011";
2084     src = fetchurl {
2085       url = "mirror://cpan/authors/id/D/DA/DAVIDO/Bytes-Random-Secure-Tiny-1.011.tar.gz";
2086       hash = "sha256-A9lntfgoRpCRN9WrmYSsVwrBCkQB4MYC89IgjEZayYI=";
2087     };
2088     meta = {
2089       description = "A tiny Perl extension to generate cryptographically-secure random bytes";
2090       license = with lib.licenses; [ artistic1 gpl1Plus ];
2091       maintainers = [ maintainers.sgo ];
2092     };
2093   };
2095   CacheCache = buildPerlPackage {
2096     pname = "Cache-Cache";
2097     version = "1.08";
2098     src = fetchurl {
2099       url = "mirror://cpan/authors/id/R/RJ/RJBS/Cache-Cache-1.08.tar.gz";
2100       hash = "sha256-0sf9Xbpd0BC32JI1FokLtsz2tfGIzLafNcsP1sAx0eg=";
2101     };
2102     propagatedBuildInputs = [ DigestSHA1 Error IPCShareLite ];
2103     doCheck = false; # randomly fails
2104     meta = {
2105       description = "The Cache Interface";
2106       license = with lib.licenses; [ artistic1 gpl1Plus ];
2107     };
2108   };
2110   CacheFastMmap = buildPerlPackage {
2111     pname = "Cache-FastMmap";
2112     version = "1.57";
2113     src = fetchurl {
2114       url = "mirror://cpan/authors/id/R/RO/ROBM/Cache-FastMmap-1.57.tar.gz";
2115       hash = "sha256-4Es6KNmJ7bj7lur6zcK4f57MuE8EfrLifLJqp9CMx7g=";
2116     };
2117     buildInputs = [ TestDeep ];
2118     meta = {
2119       description = "Uses an mmap'ed file to act as a shared memory interprocess cache";
2120       license = with lib.licenses; [ artistic1 gpl1Plus ];
2121     };
2122   };
2124   CacheKyotoTycoon = buildPerlModule {
2125     pname = "Cache-KyotoTycoon";
2126     version = "0.16";
2127     src = fetchurl {
2128       url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/Cache-KyotoTycoon-0.16.tar.gz";
2129       hash = "sha256-zLBII1iUxItpegDleMtFC05evBQYpVSnz6hjJwezlHw=";
2130     };
2131     propagatedBuildInputs = [ Furl URI ];
2132     buildInputs = [ FileWhich TestRequires TestSharedFork TestTCP ];
2133     meta = {
2134       description = "KyotoTycoon client library";
2135       homepage = "https://github.com/tokuhirom/Cache-KyotoTycoon";
2136       license = with lib.licenses; [ artistic1 gpl1Plus ];
2137     };
2138   };
2140   CacheMemcached = buildPerlPackage {
2141     pname = "Cache-Memcached";
2142     version = "1.30";
2143     src = fetchurl {
2144       url =
2145       "mirror://cpan/authors/id/D/DO/DORMANDO/Cache-Memcached-1.30.tar.gz";
2146       hash = "sha256-MbPFHsDqrwMALizI49fVy+YZGc/a2mHACOuYU6ysQqk=";
2147     };
2148     propagatedBuildInputs = [ StringCRC32 ];
2149     meta = {
2150       description = "Client library for memcached (memory cache daemon)";
2151       license = with lib.licenses; [ artistic1 gpl1Plus ];
2152     };
2153   };
2155   CacheMemcachedFast = buildPerlPackage {
2156     pname = "Cache-Memcached-Fast";
2157     version = "0.28";
2158     src = fetchurl {
2159       url = "mirror://cpan/authors/id/R/RA/RAZ/Cache-Memcached-Fast-0.28.tar.gz";
2160       hash = "sha256-fEJMJTtl/2LPFXe7QYgCGSoYgF6jH6/Ap65YnkRsidI=";
2161     };
2162     buildInputs = [ Test2Suite ];
2163     meta = {
2164       description = "Perl client for memcached, in C language";
2165       license = with lib.licenses; [ artistic1 gpl1Plus ];
2166     };
2167   };
2169   CacheMemory = buildPerlModule {
2170     pname = "Cache";
2171     version = "2.11";
2172     src = fetchurl {
2173       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Cache-2.11.tar.gz";
2174       hash = "sha256-4dLYlneYEWarxbtuXsxkcfAB8T61bVvpVE2AR9wIpZI=";
2175     };
2176     propagatedBuildInputs = [ DBFile FileNFSLock HeapFibonacci IOString TimeDate ];
2177     doCheck = false; # can time out
2178     meta = {
2179       description = "Memory based implementation of the Cache interface";
2180       license = with lib.licenses; [ artistic1 gpl1Plus ];
2181     };
2182   };
2184   CacheSimpleTimedExpiry = buildPerlPackage {
2185     pname = "Cache-Simple-TimedExpiry";
2186     version = "0.27";
2187     src = fetchurl {
2188       url = "mirror://cpan/authors/id/J/JE/JESSE/Cache-Simple-TimedExpiry-0.27.tar.gz";
2189       hash = "sha256-Tni35N0jG1VxpIzQ7htjlT9eNHkMnQIOFZWnx9Crvkk=";
2190     };
2191     meta = {
2192       description = "A lightweight cache with timed expiration";
2193       license = with lib.licenses; [ artistic1 gpl1Plus ];
2194     };
2195   };
2197   Cairo = buildPerlPackage {
2198     pname = "Cairo";
2199     version = "1.109";
2200     src = fetchurl {
2201       url = "mirror://cpan/authors/id/X/XA/XAOC/Cairo-1.109.tar.gz";
2202       hash = "sha256-ghlzbkAcIxHaX1FXdd5D/YfmOEtQTaNqGS8rIXZDB38=";
2203     };
2204     buildInputs = [ pkgs.cairo ];
2205     propagatedBuildInputs = [ ExtUtilsDepends ExtUtilsPkgConfig ];
2206     meta = {
2207       description = "Perl interface to the cairo 2d vector graphics library";
2208       homepage = "https://gtk2-perl.sourceforge.net";
2209       license = with lib.licenses; [ lgpl21Only ];
2210     };
2211   };
2213   CairoGObject = buildPerlPackage {
2214     pname = "Cairo-GObject";
2215     version = "1.005";
2216     src = fetchurl {
2217       url = "mirror://cpan/authors/id/X/XA/XAOC/Cairo-GObject-1.005.tar.gz";
2218       hash = "sha256-jYlkRNceHQvKPSTjHl2CvQ2VQqrtkdH7fqs2e85nXFA=";
2219     };
2220     buildInputs = [ pkgs.cairo ];
2221     propagatedBuildInputs = [ Cairo Glib ];
2222     meta = {
2223       description = "Integrate Cairo into the Glib type system";
2224       homepage = "https://gtk2-perl.sourceforge.net";
2225       license = with lib.licenses; [ lgpl21Only ];
2226     };
2227   };
2229   CallContext = buildPerlPackage {
2230     pname = "Call-Context";
2231     version = "0.03";
2232     src = fetchurl {
2233       url = "mirror://cpan/authors/id/F/FE/FELIPE/Call-Context-0.03.tar.gz";
2234       hash = "sha256-Dua/RrxydVrbemsI550S4gfeX3gJcHs8NTtYyy8LWiY=";
2235     };
2236     meta = {
2237       description = "Sanity-check calling context";
2238       license = with lib.licenses; [ artistic1 gpl1Plus ];
2239       maintainers = [ maintainers.sgo ];
2240     };
2241   };
2243   cam_pdf = buildPerlModule {
2244     pname = "CAM-PDF";
2245     version = "1.60";
2246     src = fetchurl {
2247       url = "mirror://cpan/authors/id/C/CD/CDOLAN/CAM-PDF-1.60.tar.gz";
2248       hash = "sha256-52r8fzimJJJKd8XJiMNsnjiL+ncW51zTl/744bQuu4k=";
2249     };
2250     propagatedBuildInputs = [ CryptRC4 TextPDF ];
2251     meta = {
2252       description = "PDF manipulation library";
2253       license = with lib.licenses; [ artistic1 gpl1Plus ];
2254     };
2255   };
2257   capitalization = buildPerlPackage {
2258     pname = "capitalization";
2259     version = "0.03";
2260     src = fetchurl {
2261       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/capitalization-0.03.tar.gz";
2262       hash = "sha256-8TUW1XKUH2ihwj8uDkn1vwmyL5B+uSkrcrr/5ie77jw=";
2263     };
2264     propagatedBuildInputs = [ DevelSymdump ];
2265     meta = {
2266       description = "No capitalization on method names";
2267       license = with lib.licenses; [ artistic1 gpl1Plus ];
2268     };
2269   };
2271   CanaryStability = buildPerlPackage {
2272     pname = "Canary-Stability";
2273     version = "2013";
2274     src = fetchurl {
2275       url = "mirror://cpan/authors/id/M/ML/MLEHMANN/Canary-Stability-2013.tar.gz";
2276       hash = "sha256-pckcYs+V/Lho9g6rXIMpCPaQUiEBP+orzj/1cEbXtuo=";
2277     };
2278     meta = {
2279       description = "Canary to check perl compatibility for schmorp's modules";
2280       license = with lib.licenses; [ gpl1Plus ];
2281     };
2282   };
2284   CaptchaReCAPTCHA = buildPerlPackage {
2285     pname = "Captcha-reCaptcha";
2286     version = "0.99";
2287     src = fetchurl {
2288       url = "mirror://cpan/authors/id/S/SU/SUNNYP/Captcha-reCaptcha-0.99.tar.gz";
2289       hash = "sha256-uJI1dmARZu3j9/Ly/1X/bjw7znDmnzZaUe076MykQ5I=";
2290     };
2291     propagatedBuildInputs = [ HTMLTiny LWP ];
2292     meta = {
2293       description = "A Perl implementation of the reCAPTCHA API";
2294       license = with lib.licenses; [ artistic1 gpl1Plus ];
2295     };
2296   };
2298   CaptureTiny = buildPerlPackage {
2299     pname = "Capture-Tiny";
2300     version = "0.48";
2301     src = fetchurl {
2302       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Capture-Tiny-0.48.tar.gz";
2303       hash = "sha256-bCMRPoe605MwjJCiBwE+UF9lknRzZjjYx5usnGfMPhk=";
2304     };
2305     meta = {
2306       description = "Capture STDOUT and STDERR from Perl, XS or external programs";
2307       homepage = "https://github.com/dagolden/Capture-Tiny";
2308       license = with lib.licenses; [ asl20 ];
2309     };
2310   };
2312   CarpAlways = buildPerlPackage {
2313     pname = "Carp-Always";
2314     version = "0.16";
2315     src = fetchurl {
2316       url = "mirror://cpan/authors/id/F/FE/FERREIRA/Carp-Always-0.16.tar.gz";
2317       hash = "sha256-mKoRSSFxwBb7CCdYGrH6XtAbHpnGNXSJ3fOoJzFYZvE=";
2318     };
2319     buildInputs = [ TestBase ];
2320     meta = {
2321       description = "Warns and dies noisily with stack backtraces";
2322       license = with lib.licenses; [ artistic1 gpl1Plus ];
2323     };
2324   };
2326   CarpAssert = buildPerlPackage {
2327     pname = "Carp-Assert";
2328     version = "0.22";
2329     src = fetchurl {
2330       url = "mirror://cpan/authors/id/Y/YV/YVES/Carp-Assert-0.22.tar.gz";
2331       hash = "sha256-gH6pfGvtdqwuSWnvun2uSP7+ufKHl/ESZxs6yKSTVfc=";
2332     };
2333     meta = {
2334       description = "Executable comments";
2335       license = with lib.licenses; [ artistic1 gpl1Plus ];
2336     };
2337   };
2339   CarpAssertMore = buildPerlPackage {
2340     pname = "Carp-Assert-More";
2341     version = "2.3.0";
2342     src = fetchurl {
2343       url = "mirror://cpan/authors/id/P/PE/PETDANCE/Carp-Assert-More-2.3.0.tar.gz";
2344       hash = "sha256-/2nqCb2maiAPygiK3ZHFww5lcqt7ujF6f58zxRKzzqc=";
2345     };
2346     propagatedBuildInputs = [ CarpAssert ];
2347     buildInputs = [ TestException ];
2348     meta = {
2349       description = "Convenience assertions for common situations";
2350       license = with lib.licenses; [ artistic2 ];
2351     };
2352   };
2354   CarpClan = buildPerlPackage {
2355     pname = "Carp-Clan";
2356     version = "6.08";
2357     src = fetchurl {
2358       url = "mirror://cpan/authors/id/E/ET/ETHER/Carp-Clan-6.08.tar.gz";
2359       hash = "sha256-x1+S40QizFplqwXRVYQrcBRSQ06a77ZJ1uIonEfvZwg=";
2360     };
2361     meta = {
2362       description = "Report errors from perspective of caller of a \"clan\" of modules";
2363       homepage = "https://github.com/karenetheridge/Carp-Clan";
2364       license = with lib.licenses; [ artistic1 gpl1Plus ];
2365     };
2366   };
2368   Carton = buildPerlPackage {
2369     pname = "Carton";
2370     version = "1.0.35";
2371     src = fetchurl {
2372       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Carton-v1.0.35.tar.gz";
2373       hash = "sha256-nEVYypfNCLaf37UrKMPdwgQ+9S8GJ7kOU9BaQIc0QXU=";
2374     };
2375     propagatedBuildInputs = [ MenloLegacy PathTiny TryTiny ];
2376     meta = {
2377       description = "Perl module dependency manager (aka Bundler for Perl)";
2378       homepage = "https://github.com/perl-carton/carton";
2379       license = with lib.licenses; [ artistic1 gpl1Plus ];
2380       mainProgram = "carton";
2381     };
2382   };
2384   CatalystActionRenderView = buildPerlPackage {
2385     pname = "Catalyst-Action-RenderView";
2386     version = "0.16";
2387     src = fetchurl {
2388       url = "mirror://cpan/authors/id/B/BO/BOBTFISH/Catalyst-Action-RenderView-0.16.tar.gz";
2389       hash = "sha256-hWUgOVCgV9Q+zWTpWTcV1WXC+9iwLJH0PFOyERrNOUg=";
2390     };
2391     propagatedBuildInputs = [ CatalystRuntime DataVisitor ];
2392     buildInputs = [ HTTPRequestAsCGI ];
2393     meta = {
2394       description = "Sensible default end action";
2395       license = with lib.licenses; [ artistic1 gpl1Plus ];
2396     };
2397   };
2399   CatalystActionREST = buildPerlPackage {
2400     pname = "Catalyst-Action-REST";
2401     version = "1.21";
2402     src = fetchurl {
2403       url = "mirror://cpan/authors/id/J/JJ/JJNAPIORK/Catalyst-Action-REST-1.21.tar.gz";
2404       hash = "sha256-zPgbulIA06CtaQH5I68XOj1EFmGK6gimk4uq/970yyA=";
2405     };
2406     buildInputs = [ TestRequires ];
2407     propagatedBuildInputs = [ CatalystRuntime URIFind ];
2408     meta = {
2409       description = "Automated REST Method Dispatching";
2410       license = with lib.licenses; [ artistic1 gpl1Plus ];
2411     };
2412   };
2414   CatalystAuthenticationCredentialHTTP = buildPerlModule {
2415     pname = "Catalyst-Authentication-Credential-HTTP";
2416     version = "1.018";
2417     src = fetchurl {
2418       url = "mirror://cpan/authors/id/E/ET/ETHER/Catalyst-Authentication-Credential-HTTP-1.018.tar.gz";
2419       hash = "sha256-b6GBbe5kSw216gzBXF5xHcLO0gg2JavOcJZSHx1lpSk=";
2420     };
2421     buildInputs = [ ModuleBuildTiny TestException TestMockObject TestNeeds ];
2422     propagatedBuildInputs = [ CatalystPluginAuthentication ClassAccessor DataUUID StringEscape ];
2423     meta = {
2424       description = "HTTP Basic and Digest authentication for Catalyst";
2425       homepage = "https://github.com/perl-catalyst/Catalyst-Authentication-Credential-HTTP";
2426       license = with lib.licenses; [ artistic1 gpl1Plus ];
2427     };
2428   };
2430   CatalystAuthenticationStoreHtpasswd = buildPerlModule {
2431     pname = "Catalyst-Authentication-Store-Htpasswd";
2432     version = "1.006";
2433     src = fetchurl {
2434       url = "mirror://cpan/authors/id/E/ET/ETHER/Catalyst-Authentication-Store-Htpasswd-1.006.tar.gz";
2435       hash = "sha256-x/2FYnXo3hjAAWHXNJTsZr0N3QoZ27dMQtVXHJ7ggE8=";
2436     };
2437     buildInputs = [ ModuleBuildTiny TestLongString TestSimple13 TestWWWMechanize TestWWWMechanizeCatalyst ];
2438     propagatedBuildInputs = [ AuthenHtpasswd CatalystPluginAuthentication ];
2439     patches = [
2440       ../development/perl-modules/CatalystAuthenticationStoreHtpasswd-test-replace-DES-hash-with-bcrypt.patch
2441     ];
2442     meta = {
2443       description = "Authen::Htpasswd based user storage/authentication";
2444       license = with lib.licenses; [ artistic1 gpl1Plus ];
2445     };
2446   };
2448   CatalystAuthenticationStoreDBIxClass = buildPerlPackage {
2449     pname = "Catalyst-Authentication-Store-DBIx-Class";
2450     version = "0.1506";
2451     src = fetchurl {
2452       url = "mirror://cpan/authors/id/I/IL/ILMARI/Catalyst-Authentication-Store-DBIx-Class-0.1506.tar.gz";
2453       hash = "sha256-fFefJZUoXmTD3LVUAzSqmgAkQ+HUyMg6tEk7kMxRskQ=";
2454     };
2455     propagatedBuildInputs = [ CatalystModelDBICSchema CatalystPluginAuthentication ];
2456     buildInputs = [ TestWarn ];
2457     meta = {
2458       description = "Extensible and flexible object <-> relational mapper";
2459       license = with lib.licenses; [ artistic1 gpl1Plus ];
2460     };
2461   };
2463   CatalystAuthenticationStoreLDAP = buildPerlPackage {
2464     pname = "Catalyst-Authentication-Store-LDAP";
2465     version = "1.017";
2466     src = fetchurl {
2467       url = "mirror://cpan/authors/id/I/IL/ILMARI/Catalyst-Authentication-Store-LDAP-1.017.tar.gz";
2468       hash = "sha256-keW4vd/XOGYqNh6/6nPYQrO6Me1wne2xqE7DRB3O7sU=";
2469     };
2470     propagatedBuildInputs = [ perlldap CatalystPluginAuthentication ClassAccessor ];
2471     buildInputs = [ TestMockObject TestException NetLDAPServerTest ];
2472     doCheck = !stdenv.isDarwin; # t/02-realms_api.t and t/50.auth.case.sensitivity.t
2473     meta = {
2474       description = "Authenticate Users against LDAP Directories";
2475       license = with lib.licenses; [ artistic1 gpl1Plus ];
2476     };
2477   };
2479   CatalystComponentInstancePerContext = buildPerlPackage {
2480     pname = "Catalyst-Component-InstancePerContext";
2481     version = "0.001001";
2482     src = fetchurl {
2483       url = "mirror://cpan/authors/id/G/GR/GRODITI/Catalyst-Component-InstancePerContext-0.001001.tar.gz";
2484       hash = "sha256-f2P5MOHmE/FZVcnm1zhzZ1xQwKO8KmGgNHMzYe0m0nE=";
2485     };
2486     propagatedBuildInputs = [ CatalystRuntime ];
2487     meta = {
2488       description = "Moose role to create only one instance of component per context";
2489       license = with lib.licenses; [ artistic1 gpl1Plus ];
2490     };
2491   };
2493   CatalystControllerHTMLFormFu = buildPerlPackage {
2494     pname = "Catalyst-Controller-HTML-FormFu";
2495     version = "2.04";
2496     src = fetchurl {
2497       url = "mirror://cpan/authors/id/N/NI/NIGELM/Catalyst-Controller-HTML-FormFu-2.04.tar.gz";
2498       hash = "sha256-8T+5s7OwCzXwarwxYURhyNc0b74H+1accejVhuXrXdw=";
2499     };
2500     buildInputs = [ CatalystActionRenderView CatalystPluginSession CatalystPluginSessionStateCookie CatalystPluginSessionStoreFile CatalystViewTT CodeTidyAllPluginPerlAlignMooseAttributes PodCoverageTrustPod PodTidy TemplateToolkit TestCPANMeta TestDifferences TestEOL TestKwalitee TestLongString TestMemoryCycle TestNoTabs TestPAUSEPermissions TestPod TestPodCoverage TestWWWMechanize TestWWWMechanizeCatalyst ];
2501     propagatedBuildInputs = [ CatalystComponentInstancePerContext HTMLFormFuMultiForm RegexpAssemble ];
2502     doCheck = false; /* fails with 'open3: exec of .. perl .. failed: Argument list too long at .../TAP/Parser/Iterator/Process.pm line 165.' */
2503     meta = {
2504       description = "HTML Form Creation, Rendering and Validation Framework";
2505       homepage = "https://github.com/FormFu/HTML-FormFu";
2506       license = with lib.licenses; [ artistic1 gpl1Plus ];
2507     };
2508   };
2510   CatalystControllerPOD = buildPerlModule {
2511     pname = "Catalyst-Controller-POD";
2512     version = "1.0.0";
2513     src = fetchurl {
2514       url = "mirror://cpan/authors/id/P/PE/PERLER/Catalyst-Controller-POD-1.0.0.tar.gz";
2515       hash = "sha256-7ipLs+14uqFGQzVAjyhDRba6DvZXate/vXtlbHiKOfk=";
2516     };
2517     buildInputs = [ ModuleInstall TestLongString TestWWWMechanize TestWWWMechanizeCatalyst ];
2518     propagatedBuildInputs = [ CatalystPluginStaticSimple ClassAccessor FileSlurp JSONXS ListMoreUtils PodPOMViewTOC XMLSimple ];
2519     meta = {
2520       description = "Serves PODs right from your Catalyst application";
2521       homepage = "https://search.cpan.org/dist/Catalyst-Controller-POD";
2522       license = with lib.licenses; [ bsd3 ];
2523     };
2524   };
2526   CatalystDevel = buildPerlPackage {
2527     pname = "Catalyst-Devel";
2528     version = "1.42";
2529     src = fetchurl {
2530       url = "mirror://cpan/authors/id/H/HA/HAARG/Catalyst-Devel-1.42.tar.gz";
2531       hash = "sha256-fsbwtsq1uMCX5Hdp/HOk1MAVpYxB/bQPwk3z7nfEir0=";
2532     };
2533     buildInputs = [ FileShareDirInstall TestFatal ];
2534     propagatedBuildInputs = [ CatalystActionRenderView CatalystPluginConfigLoader CatalystPluginStaticSimple ConfigGeneral FileChangeNotify FileCopyRecursive ModuleInstall TemplateToolkit ];
2535     meta = {
2536       description = "Catalyst Development Tools";
2537       homepage = "http://dev.catalyst.perl.org";
2538       license = with lib.licenses; [ artistic1 gpl1Plus ];
2539     };
2540   };
2542   CatalystDispatchTypeRegex = buildPerlModule {
2543     pname = "Catalyst-DispatchType-Regex";
2544     version = "5.90035";
2545     src = fetchurl {
2546       url = "mirror://cpan/authors/id/M/MG/MGRIMES/Catalyst-DispatchType-Regex-5.90035.tar.gz";
2547       hash = "sha256-AC3Pnv7HxYiSoYP5CAFTnQzxPsOvzPjTrRkhfCsNWBo=";
2548     };
2549     propagatedBuildInputs = [ CatalystRuntime ];
2550     meta = {
2551       description = "Regex DispatchType";
2552       license = with lib.licenses; [ artistic1 gpl1Plus ];
2553     };
2554   };
2556   CatalystManual = buildPerlPackage {
2557     pname = "Catalyst-Manual";
2558     version = "5.9011";
2559     src = fetchurl {
2560       url = "mirror://cpan/authors/id/H/HA/HAARG/Catalyst-Manual-5.9011.tar.gz";
2561       hash = "sha256-s54zllkDwAWD4BgOPdUopUkg9SB83wUmBcoTgoz6wTw=";
2562     };
2563     meta = {
2564       description = "The Catalyst developer's manual";
2565       license = with lib.licenses; [ artistic1 gpl1Plus ];
2566     };
2567   };
2569   CatalystModelDBICSchema = buildPerlPackage {
2570     pname = "Catalyst-Model-DBIC-Schema";
2571     version = "0.66";
2572     src = fetchurl {
2573       url = "mirror://cpan/authors/id/H/HA/HAARG/Catalyst-Model-DBIC-Schema-0.66.tar.gz";
2574       hash = "sha256-GST0wA6PD/HF0a+hbv5PhW8cXnT+VW7Cxfj1v2OtA0g=";
2575     };
2576     buildInputs = [ DBDSQLite TestException TestRequires ];
2577     propagatedBuildInputs = [ CatalystComponentInstancePerContext CatalystXComponentTraits DBIxClassSchemaLoader MooseXMarkAsMethods MooseXNonMoose MooseXTypesLoadableClass TieIxHash ];
2578     meta = {
2579       description = "DBIx::Class::Schema Model Class";
2580       license = with lib.licenses; [ artistic1 gpl1Plus ];
2581     };
2582   };
2584   CatalystRuntime = buildPerlPackage {
2585     pname = "Catalyst-Runtime";
2586     version = "5.90131";
2587     src = fetchurl {
2588       url = "mirror://cpan/authors/id/J/JJ/JJNAPIORK/Catalyst-Runtime-5.90131.tar.gz";
2589       hash = "sha256-nWQe+s8PmTXm7LmPWjtHbJYbH4Gb0vjyOmR9HYZ+GEk=";
2590     };
2591     buildInputs = [ TestFatal TypeTiny ];
2592     propagatedBuildInputs = [ CGISimple CGIStruct ClassC3AdoptNEXT DataDump HTTPBody ModulePluggable MooseXEmulateClassAccessorFast MooseXGetopt MooseXMethodAttributes MooseXRoleWithOverloading PathClass PerlIOutf8_strict PlackMiddlewareFixMissingBodyInRedirect PlackMiddlewareMethodOverride PlackMiddlewareRemoveRedundantBody PlackMiddlewareReverseProxy PlackTestExternalServer SafeIsa StringRewritePrefix TaskWeaken TextSimpleTable TreeSimpleVisitorFactory URIws ];
2593     meta = {
2594       description = "The Catalyst Framework Runtime";
2595       homepage = "http://dev.catalyst.perl.org";
2596       license = with lib.licenses; [ artistic1 gpl1Plus ];
2597       mainProgram = "catalyst.pl";
2598     };
2599   };
2601   CatalystPluginAccessLog = buildPerlPackage {
2602     pname = "Catalyst-Plugin-AccessLog";
2603     version = "1.10";
2604     src = fetchurl {
2605       url = "mirror://cpan/authors/id/A/AR/ARODLAND/Catalyst-Plugin-AccessLog-1.10.tar.gz";
2606       hash = "sha256-hz245OcqmU4+F661PSuDfm1SS0uLDzU58mITXIjMISA=";
2607     };
2608     propagatedBuildInputs = [ CatalystRuntime DateTime ];
2609     meta = {
2610       description = "Request logging from within Catalyst";
2611       homepage = "https://metacpan.org/release/Catalyst-Plugin-AccessLog";
2612       license = with lib.licenses; [ artistic1 gpl1Plus ];
2613     };
2614   };
2616   CatalystPluginAuthentication = buildPerlPackage {
2617     pname = "Catalyst-Plugin-Authentication";
2618     version = "0.10023";
2619     src = fetchurl {
2620       url = "mirror://cpan/authors/id/B/BO/BOBTFISH/Catalyst-Plugin-Authentication-0.10023.tar.gz";
2621       hash = "sha256-NgOaq9rLB+Zoek16i/rHj+nQ+7BM2o1tlm1sHjJZ0Gw=";
2622     };
2623     buildInputs = [ TestException ];
2624     propagatedBuildInputs = [ CatalystPluginSession ];
2625     meta = {
2626       description = "Infrastructure plugin for the Catalyst authentication framework";
2627       license = with lib.licenses; [ artistic1 gpl1Plus ];
2628     };
2629   };
2631   CatalystPluginAuthorizationACL = buildPerlPackage {
2632     pname = "Catalyst-Plugin-Authorization-ACL";
2633     version = "0.16";
2634     src = fetchurl {
2635       url = "mirror://cpan/authors/id/R/RK/RKITOVER/Catalyst-Plugin-Authorization-ACL-0.16.tar.gz";
2636       hash = "sha256-KjfmU0gu/SyTuGxqg4lB4FbF+U3YbA8LiT1RkzMSg3w=";
2637     };
2638     propagatedBuildInputs = [ CatalystRuntime ClassThrowable ];
2639     buildInputs = [ CatalystPluginAuthentication CatalystPluginAuthorizationRoles CatalystPluginSession CatalystPluginSessionStateCookie TestWWWMechanizeCatalyst ];
2640     meta = {
2641       description = "ACL support for Catalyst applications";
2642       license = with lib.licenses; [ artistic1 gpl1Plus ];
2643     };
2644   };
2646   CatalystPluginAuthorizationRoles = buildPerlPackage {
2647     pname = "Catalyst-Plugin-Authorization-Roles";
2648     version = "0.09";
2649     src = fetchurl {
2650       url = "mirror://cpan/authors/id/B/BO/BOBTFISH/Catalyst-Plugin-Authorization-Roles-0.09.tar.gz";
2651       hash = "sha256-7kBE5eKg2UxOxRL61V7gyN4UTh47h4Ugf5YCXPmkA1E=";
2652     };
2653     buildInputs = [ TestException ];
2654     propagatedBuildInputs = [ CatalystPluginAuthentication SetObject UNIVERSALisa ];
2655     meta = {
2656       description = "Role based authorization for Catalyst based on Catalyst::Plugin::Authentication";
2657       license = with lib.licenses; [ artistic1 gpl1Plus ];
2658     };
2659   };
2661   CatalystPluginCache = buildPerlPackage {
2662     pname = "Catalyst-Plugin-Cache";
2663     version = "0.12";
2664     src = fetchurl {
2665       url = "mirror://cpan/authors/id/B/BO/BOBTFISH/Catalyst-Plugin-Cache-0.12.tar.gz";
2666       hash = "sha256-KV/tRJyTJLBleP1GjjOR4E+/ZK0kN2oARAjRvG9UQ+A=";
2667     };
2668     buildInputs = [ ClassAccessor TestDeep TestException ];
2669     propagatedBuildInputs = [ CatalystRuntime ];
2670     meta = {
2671       description = "Flexible caching support for Catalyst";
2672       license = with lib.licenses; [ artistic1 gpl1Plus ];
2673     };
2674   };
2676   CatalystPluginCacheHTTP = buildPerlPackage {
2677     pname = "Catalyst-Plugin-Cache-HTTP";
2678     version = "0.001000";
2679     src = fetchurl {
2680       url = "mirror://cpan/authors/id/G/GR/GRAF/Catalyst-Plugin-Cache-HTTP-0.001000.tar.gz";
2681       hash = "sha256-aq2nDrKfYd90xTj5KaEHD92TIMW278lNJkwzghe8sWw=";
2682     };
2683     buildInputs = [ CatalystRuntime TestLongString TestSimple13 TestWWWMechanize TestWWWMechanizeCatalyst ];
2684     propagatedBuildInputs = [ ClassAccessor HTTPMessage MROCompat ];
2685     meta = {
2686       description = "HTTP/1.1 cache validators for Catalyst";
2687       license = with lib.licenses; [ artistic1 gpl1Plus ];
2688     };
2689   };
2691   CatalystPluginCaptcha = buildPerlPackage {
2692     pname = "Catalyst-Plugin-Captcha";
2693     version = "0.04";
2694     src = fetchurl {
2695       url = "mirror://cpan/authors/id/D/DI/DIEGOK/Catalyst-Plugin-Captcha-0.04.tar.gz";
2696       hash = "sha256-Sj1ccgBiTT567ULQWnBnSSdGg+t7rSYN6Sx1W/aQnlI=";
2697     };
2698     propagatedBuildInputs = [ CatalystPluginSession GDSecurityImage ];
2699     meta = {
2700       description = "Create and validate Captcha for Catalyst";
2701       license = with lib.licenses; [ artistic1 gpl1Plus ];
2702     };
2703   };
2705   CatalystPluginConfigLoader = buildPerlPackage {
2706     pname = "Catalyst-Plugin-ConfigLoader";
2707     version = "0.35";
2708     src = fetchurl {
2709       url = "mirror://cpan/authors/id/H/HA/HAARG/Catalyst-Plugin-ConfigLoader-0.35.tar.gz";
2710       hash = "sha256-nippim8tBG4NxeV1EpKc1CPIB9Sja6Pynp5a3NcaGXE=";
2711     };
2712     propagatedBuildInputs = [ CatalystRuntime ConfigAny DataVisitor ];
2713     meta = {
2714       description = "Load config files of various types";
2715       license = with lib.licenses; [ artistic1 gpl1Plus ];
2716     };
2717   };
2719   CatalystPluginFormValidator = buildPerlPackage {
2720     pname = "Catalyst-Plugin-FormValidator";
2721     version = "0.094";
2722     src = fetchurl {
2723       url = "mirror://cpan/authors/id/D/DH/DHOSS/Catalyst-Plugin-FormValidator-0.094.tar.gz";
2724       hash = "sha256-WDTxG/XJ9LXTNtZcfOZjm3bOe/56KHXrBI1+ocgs4Fo=";
2725     };
2726     propagatedBuildInputs = [ CatalystRuntime DataFormValidator ];
2727     meta = {
2728       description = "Data::FormValidator";
2729       license = with lib.licenses; [ artistic1 gpl1Plus ];
2730     };
2731   };
2733   CatalystPluginFormValidatorSimple = buildPerlPackage {
2734     pname = "Catalyst-Plugin-FormValidator-Simple";
2735     version = "0.15";
2736     src = fetchurl {
2737       url = "mirror://cpan/authors/id/D/DH/DHOSS/Catalyst-Plugin-FormValidator-Simple-0.15.tar.gz";
2738       hash = "sha256-SGxqDo9BD9AXJ59IBKueNbpGMh0zoKlyH+Hgijkd56A=";
2739     };
2740     propagatedBuildInputs = [ CatalystPluginFormValidator FormValidatorSimple ];
2741     meta = {
2742       description = "Validation with simple chains of constraints ";
2743       license = with lib.licenses; [ artistic1 gpl1Plus ];
2744     };
2745   };
2747   CatalystPluginLogHandler = buildPerlModule {
2748     pname = "Catalyst-Plugin-Log-Handler";
2749     version = "0.08";
2750     src = fetchurl {
2751       url = "mirror://cpan/authors/id/P/PE/PEPE/Catalyst-Plugin-Log-Handler-0.08.tar.gz";
2752       hash = "sha256-DbPDpXtO49eJulEpiQ4oWJE/7wDYGFvcnF1/3jHgQ+8=";
2753     };
2754     propagatedBuildInputs = [ ClassAccessor LogHandler MROCompat ];
2755     meta = {
2756       description = "Log messages to several outputs";
2757       license = with lib.licenses; [ artistic1 gpl1Plus ];
2758     };
2759   };
2761   CatalystPluginPrometheusTiny = buildPerlPackage {
2762     pname = "Catalyst-Plugin-PrometheusTiny";
2763     version = "0.006";
2764     src = fetchurl {
2765       url = "mirror://cpan/authors/id/S/SY/SYSPETE/Catalyst-Plugin-PrometheusTiny-0.006.tar.gz";
2766       hash = "sha256-Kzm5l7q/+rNTquMsol8smbdljlBEew23H7gKFsS2osE=";
2767     };
2768     buildInputs = [ HTTPMessage Plack SubOverride TestDeep ];
2769     propagatedBuildInputs = [ CatalystRuntime Moose PrometheusTiny PrometheusTinyShared ];
2770     meta = {
2771       description = "A tiny Prometheus client";
2772       homepage = "https://github.com/robn/Prometheus-Tiny";
2773       license = with lib.licenses; [ artistic1 gpl1Plus ];
2774     };
2775   };
2777   CatalystPluginSession = buildPerlPackage {
2778     pname = "Catalyst-Plugin-Session";
2779     version = "0.43";
2780     src = fetchurl {
2781       url = "mirror://cpan/authors/id/H/HA/HAARG/Catalyst-Plugin-Session-0.43.tar.gz";
2782       hash = "sha256-Xn180rlbH8IkS8buuPRPg11gPqB/WjkRCIHbYJKLFMQ=";
2783     };
2784     buildInputs = [ TestDeep TestException TestNeeds ];
2785     propagatedBuildInputs = [ CatalystRuntime ObjectSignature ];
2786     meta = {
2787       description = "Generic Session plugin - ties together server side storage and client side state required to maintain session data";
2788       license = with lib.licenses; [ artistic1 gpl1Plus ];
2789     };
2790   };
2792   CatalystPluginSessionDynamicExpiry = buildPerlPackage {
2793     pname = "Catalyst-Plugin-Session-DynamicExpiry";
2794     version = "0.04";
2795     src = fetchurl {
2796       url = "mirror://cpan/authors/id/B/BO/BOBTFISH/Catalyst-Plugin-Session-DynamicExpiry-0.04.tar.gz";
2797       hash = "sha256-dwfFZzTNsVEvcz3EAPrfb0xTyyF7WCB4V4JNrWeAoHk=";
2798     };
2799     propagatedBuildInputs = [ CatalystPluginSession ];
2800     meta = {
2801       description = "Per-session custom expiry times";
2802       license = with lib.licenses; [ artistic1 gpl1Plus ];
2803     };
2804   };
2806   CatalystPluginSessionStateCookie = buildPerlPackage {
2807     pname = "Catalyst-Plugin-Session-State-Cookie";
2808     version = "0.18";
2809     src = fetchurl {
2810       url = "mirror://cpan/authors/id/H/HA/HAARG/Catalyst-Plugin-Session-State-Cookie-0.18.tar.gz";
2811       hash = "sha256-6bHHsrlsGU+Hpfd+FElxcHfHD/xnpL/CnwJsnuLge+o=";
2812     };
2813     propagatedBuildInputs = [ CatalystPluginSession ];
2814     meta = {
2815       description = "Maintain session IDs using cookies";
2816       license = with lib.licenses; [ artistic1 gpl1Plus ];
2817     };
2818   };
2820   CatalystPluginSessionStoreFastMmap = buildPerlPackage {
2821     pname = "Catalyst-Plugin-Session-Store-FastMmap";
2822     version = "0.16";
2823     src = fetchurl {
2824       url = "mirror://cpan/authors/id/B/BO/BOBTFISH/Catalyst-Plugin-Session-Store-FastMmap-0.16.tar.gz";
2825       hash = "sha256-uut/17+QW+dGMciHYP2KKYDO6pVieZM5lYFkPvY3cnQ=";
2826     };
2827     propagatedBuildInputs = [ CacheFastMmap CatalystPluginSession ];
2828     meta = {
2829       description = "FastMmap session storage backend";
2830       license = with lib.licenses; [ artistic1 gpl1Plus ];
2831     };
2832   };
2834   CatalystPluginSessionStoreFile = buildPerlPackage {
2835     pname = "Catalyst-Plugin-Session-Store-File";
2836     version = "0.18";
2837     src = fetchurl {
2838       url = "mirror://cpan/authors/id/F/FL/FLORA/Catalyst-Plugin-Session-Store-File-0.18.tar.gz";
2839       hash = "sha256-VHOOPOdvi+i2aUcJLSiXPHPXnR7hm12SsFdVL4/wm08=";
2840     };
2841     propagatedBuildInputs = [ CacheCache CatalystPluginSession ClassDataInheritable ];
2842     meta = {
2843       description = "File storage backend for session data";
2844       license = with lib.licenses; [ artistic1 gpl1Plus ];
2845     };
2846   };
2848   CatalystPluginSmartURI = buildPerlPackage {
2849     pname = "Catalyst-Plugin-SmartURI";
2850     version = "0.041";
2851     src = fetchurl {
2852       url = "mirror://cpan/authors/id/R/RK/RKITOVER/Catalyst-Plugin-SmartURI-0.041.tar.gz";
2853       hash = "sha256-y4ghhphUUSA9kj19+QIKoELajcGUltgj4WU1twUfX1c=";
2854     };
2855     propagatedBuildInputs = [ CatalystRuntime ClassC3Componentised ];
2856     buildInputs = [ CatalystActionREST TestWarnings TimeOut URISmartURI ];
2857     meta = {
2858       description = "Configurable URIs for Catalyst";
2859       license = with lib.licenses; [ artistic1 gpl1Plus ];
2860     };
2861   };
2863   CatalystPluginStackTrace = buildPerlPackage {
2864     pname = "Catalyst-Plugin-StackTrace";
2865     version = "0.12";
2866     src = fetchurl {
2867       url = "mirror://cpan/authors/id/B/BO/BOBTFISH/Catalyst-Plugin-StackTrace-0.12.tar.gz";
2868       hash = "sha256-Mp2s0LoJ0Qp2CHqxdvldtro9smotD+M+7i9eRs7XU6w=";
2869     };
2870     propagatedBuildInputs = [ CatalystRuntime ];
2871     meta = {
2872       description = "Display a stack trace on the debug screen";
2873       license = with lib.licenses; [ artistic1 gpl1Plus ];
2874     };
2875   };
2877   CatalystPluginStaticSimple = buildPerlPackage {
2878     pname = "Catalyst-Plugin-Static-Simple";
2879     version = "0.37";
2880     src = fetchurl {
2881       url = "mirror://cpan/authors/id/I/IL/ILMARI/Catalyst-Plugin-Static-Simple-0.37.tar.gz";
2882       hash = "sha256-Wk2Fo1iM1Og/GwAlgUEufXG31X9mBW5dh6Nvk9icnnw=";
2883     };
2884     patches = [ ../development/perl-modules/catalyst-plugin-static-simple-etag.patch ];
2885     propagatedBuildInputs = [ CatalystRuntime MIMETypes MooseXTypes ];
2886     meta = {
2887       description = "Make serving static pages painless";
2888       license = with lib.licenses; [ artistic1 gpl1Plus ];
2889     };
2890   };
2892   CatalystPluginStatusMessage = buildPerlPackage {
2893     pname = "Catalyst-Plugin-StatusMessage";
2894     version = "1.002000";
2895     src = fetchurl {
2896       url = "mirror://cpan/authors/id/H/HK/HKCLARK/Catalyst-Plugin-StatusMessage-1.002000.tar.gz";
2897       hash = "sha256-ZJyJSrFvn0itqPnMWZp+y7iJGrN2H/b9UQUgxt5AfB8=";
2898     };
2899     propagatedBuildInputs = [ CatalystRuntime strictures ];
2900     meta = {
2901       description = "Handle passing of status (success and error) messages between screens of a web application";
2902       license = with lib.licenses; [ artistic1 gpl1Plus ];
2903     };
2904   };
2906   CatalystViewCSV = buildPerlPackage {
2907     pname = "Catalyst-View-CSV";
2908     version = "1.8";
2909     src = fetchurl {
2910       url = "mirror://cpan/authors/id/J/JM/JMREIN/Catalyst-View-CSV-1.8.tar.gz";
2911       hash = "sha256-vKcEaDzDXEevuJrDjHFRAu2+gIF57gcz0qDrMRojbN8=";
2912     };
2913     buildInputs = [ CatalystActionRenderView CatalystModelDBICSchema CatalystPluginConfigLoader CatalystXComponentTraits ConfigGeneral DBDSQLite DBIxClass TestException ];
2914     propagatedBuildInputs = [ CatalystRuntime TextCSV ];
2915     meta = {
2916       description = "CSV view class";
2917       license = with lib.licenses; [ artistic1 gpl1Plus ];
2918     };
2919   };
2921   CatalystViewDownload = buildPerlPackage {
2922     pname = "Catalyst-View-Download";
2923     version = "0.09";
2924     src = fetchurl {
2925       url = "mirror://cpan/authors/id/G/GA/GAUDEON/Catalyst-View-Download-0.09.tar.gz";
2926       hash = "sha256-es+PXyRex/bzU/SHKdE3sSrxrPos8fvWXHA5HpM3+OE=";
2927     };
2928     buildInputs = [ CatalystRuntime TestLongString TestSimple13 TestWWWMechanize TestWWWMechanizeCatalyst TextCSV XMLSimple ];
2929     meta = {
2930       description = "A view module to help in the convenience of downloading data into many supportable formats";
2931       license = with lib.licenses; [ artistic1 gpl1Plus ];
2932     };
2933   };
2935   CatalystViewJSON = buildPerlPackage {
2936     pname = "Catalyst-View-JSON";
2937     version = "0.37";
2938     src = fetchurl {
2939       url = "mirror://cpan/authors/id/H/HA/HAARG/Catalyst-View-JSON-0.37.tar.gz";
2940       hash = "sha256-xdo/bop3scmYVd431YgCwLGU4pp9hsYO04Mc/dWfnew=";
2941     };
2942     propagatedBuildInputs = [ CatalystRuntime ];
2943     meta = {
2944       description = "JSON (JavaScript Object Notation) encoder/decoder";
2945       license = with lib.licenses; [ artistic1 gpl1Plus ];
2946     };
2947   };
2949   CatalystViewTT = buildPerlPackage {
2950     pname = "Catalyst-View-TT";
2951     version = "0.46";
2952     src = fetchurl {
2953       url = "mirror://cpan/authors/id/J/JJ/JJNAPIORK/Catalyst-View-TT-0.46.tar.gz";
2954       hash = "sha256-7aRFfbv4GkJBtzWl1GnZcn2KMJHSSvGuPJog8CTeUcw=";
2955     };
2956     propagatedBuildInputs = [ CatalystRuntime ClassAccessor TemplateTimer ];
2957     meta = {
2958       description = "Template View Class";
2959       license = with lib.licenses; [ artistic1 gpl1Plus ];
2960     };
2961   };
2963   CatalystXComponentTraits = buildPerlPackage {
2964     pname = "CatalystX-Component-Traits";
2965     version = "0.19";
2966     src = fetchurl {
2967       url = "mirror://cpan/authors/id/R/RK/RKITOVER/CatalystX-Component-Traits-0.19.tar.gz";
2968       hash = "sha256-CElE6cnQ37ENSrNFPhwSX97jkSm0bRfAI0w8U1FkBEc=";
2969     };
2970     propagatedBuildInputs = [ CatalystRuntime MooseXTraitsPluggable ];
2971     meta = {
2972       description = "Automatic Trait Loading and Resolution for Catalyst Components";
2973       license = with lib.licenses; [ artistic1 gpl1Plus ];
2974     };
2975   };
2977   CatalystXRoleApplicator = buildPerlPackage {
2978     pname = "CatalystX-RoleApplicator";
2979     version = "0.005";
2980     src = fetchurl {
2981       url = "mirror://cpan/authors/id/H/HD/HDP/CatalystX-RoleApplicator-0.005.tar.gz";
2982       hash = "sha256-4o5HZ3aJva31VE4cQaKsV1WZNm+EDXO70LA8ZPtVim8=";
2983     };
2984     propagatedBuildInputs = [ CatalystRuntime MooseXRelatedClassRoles ];
2985     meta = {
2986       description = "Apply roles to your Catalyst application-related classes";
2987       license = with lib.licenses; [ artistic1 gpl1Plus ];
2988     };
2989   };
2991   CatalystTraitForRequestProxyBase = buildPerlPackage {
2992     pname = "Catalyst-TraitFor-Request-ProxyBase";
2993     version = "0.000005";
2994     src = fetchurl {
2995       url = "mirror://cpan/authors/id/B/BO/BOBTFISH/Catalyst-TraitFor-Request-ProxyBase-0.000005.tar.gz";
2996       hash = "sha256-p78Pqn4Syl32Jdn1/HEPEb/Ra6U4WDfkjUKz0obJcQo=";
2997     };
2998     buildInputs = [ CatalystRuntime CatalystXRoleApplicator HTTPMessage ];
2999     propagatedBuildInputs = [ Moose URI namespaceautoclean ];
3000     meta = {
3001       description = "Replace request base with value passed by HTTP proxy";
3002       license = with lib.licenses; [ artistic1 gpl1Plus ];
3003     };
3004   };
3006   CatalystXScriptServerStarman = buildPerlPackage {
3007     pname = "CatalystX-Script-Server-Starman";
3008     version = "0.03";
3009     src = fetchurl {
3010       url = "mirror://cpan/authors/id/A/AB/ABRAXXA/CatalystX-Script-Server-Starman-0.03.tar.gz";
3011       hash = "sha256-5jpH80y0P3+87GdYyaVCiAGOOIAjZTYYkLKjTfCKWyI=";
3012     };
3013     patches = [
3014       # See Nixpkgs issues #16074 and #17624
3015       ../development/perl-modules/CatalystXScriptServerStarman-fork-arg.patch
3016     ];
3017     buildInputs = [ TestWWWMechanizeCatalyst ];
3018     propagatedBuildInputs = [ CatalystRuntime MooseXTypes PodParser Starman ];
3019     meta = {
3020       description = "Replace the development server with Starman";
3021       license = with lib.licenses; [ artistic1 gpl1Plus ];
3022     };
3023   };
3025   CDB_File = buildPerlPackage {
3026     pname = "CDB_File";
3027     version = "1.05";
3028     src = fetchurl {
3029       url = "mirror://cpan/authors/id/T/TO/TODDR/CDB_File-1.05.tar.gz";
3030       hash = "sha256-hWSEnVY5AV3iNiTlc8riU265CUMrZNkAmKHgtFKp60s=";
3031     };
3032     buildInputs = [ TestFatal TestWarnings ];
3033     propagatedBuildInputs = [ BCOW ];
3034     meta = {
3035       description = "Perl extension for access to cdb databases";
3036       homepage = "https://github.com/toddr/CDB_File";
3037       license = with lib.licenses; [ artistic1 gpl1Plus ];
3038     };
3039   };
3041   Catmandu = buildPerlModule {
3042     pname = "Catmandu";
3043     version = "1.2020";
3044     src = fetchurl {
3045       url = "mirror://cpan/authors/id/H/HO/HOCHSTEN/Catmandu-1.2020.tar.gz";
3046       hash = "sha256-1jIbR+NkGvkb7vZjNhWZVk88wzwAc5isa7opuO5A4cU=";
3047     };
3048     propagatedBuildInputs = [ AnyURIEscape AppCmd CGIExpand ConfigOnion CpanelJSONXS DataCompare DataUtil IOHandleUtil LWP ListMoreUtils LogAny MIMETypes ModuleInfo MooXAliases ParserMGC PathIteratorRule PathTiny StringCamelCase TextCSV TextHogan Throwable TryTinyByClass URITemplate UUIDTiny YAMLLibYAML namespaceclean ];
3049     buildInputs = [ LogAnyAdapterLog4perl LogLog4perl TestDeep TestException TestLWPUserAgent TestPod ];
3050     meta = {
3051       description = "A data toolkit";
3052       homepage = "https://github.com/LibreCat/Catmandu";
3053       license = with lib.licenses; [ artistic1 gpl1Plus ];
3054       mainProgram = "catmandu";
3055     };
3056   };
3058   CDDB_get = buildPerlPackage {
3059     pname = "CDDB_get";
3060     version = "2.28";
3061     src = fetchurl {
3062       url = "mirror://cpan/authors/id/F/FO/FONKIE/CDDB_get-2.28.tar.gz";
3063       hash = "sha256-vcy6H6jkwc8xicXlo1KaZpOmSKpSgrWXU4x6rdzm2ck=";
3064     };
3065     meta = {
3066       description = "Get the CDDB info for an audio cd";
3067       license = with lib.licenses; [ artistic1 ];
3068       maintainers = [ maintainers.endgame ];
3069       mainProgram = "cddb.pl";
3070     };
3071   };
3073   CDDBFile = buildPerlPackage {
3074     pname = "CDDB-File";
3075     version = "1.05";
3076     src = fetchurl {
3077       url = "mirror://cpan/authors/id/T/TM/TMTM/CDDB-File-1.05.tar.gz";
3078       hash = "sha256-6+ZCnEFcFOc8bK/g1OLc3o4WnYFScfHhUjwmThrsx8k=";
3079     };
3080     meta = {
3081       description = "Parse a CDDB/freedb data file";
3082       license = with lib.licenses; [ artistic1 ];
3083     };
3084   };
3087   CGI = buildPerlPackage {
3088     pname = "CGI";
3089     version = "4.59";
3090     src = fetchurl {
3091       url = "mirror://cpan/authors/id/L/LE/LEEJO/CGI-4.59.tar.gz";
3092       hash = "sha256-be5LibiLEOd8lvPAjRm1hq74M7F6Ql1hiq19KMJi+Rw=";
3093     };
3094     buildInputs = [ TestDeep TestNoWarnings TestWarn ];
3095     propagatedBuildInputs = [ HTMLParser ];
3096     meta = {
3097       description = "Handle Common Gateway Interface requests and responses";
3098       homepage = "https://metacpan.org/module/CGI";
3099       license = with lib.licenses; [ artistic2 ];
3100     };
3101   };
3103   CGICompile = buildPerlModule {
3104     pname = "CGI-Compile";
3105     version = "0.26";
3106     src = fetchurl {
3107       url = "mirror://cpan/authors/id/R/RK/RKITOVER/CGI-Compile-0.26.tar.gz";
3108       hash = "sha256-TzhcEMLJd+tgPzjNFT4OA2jfA3H9vSP1qm7nL0/GXcg=";
3109     };
3110     propagatedBuildInputs = [ Filepushd SubName ];
3111     buildInputs = [ CGI CaptureTiny ModuleBuildTiny SubIdentify Switch TestNoWarnings TestRequires TryTiny ];
3112     meta = {
3113       description = "Compile .cgi scripts to a code reference like ModPerl::Registry";
3114       homepage = "https://github.com/miyagawa/CGI-Compile";
3115       license = with lib.licenses; [ artistic1 gpl1Plus ];
3116     };
3117   };
3119   CGICookieXS = buildPerlPackage {
3120     pname = "CGI-Cookie-XS";
3121     version = "0.18";
3122     src = fetchurl {
3123       url = "mirror://cpan/authors/id/A/AG/AGENT/CGI-Cookie-XS-0.18.tar.gz";
3124       hash = "sha256-RpnLSr2XIBSvO+ubCmlbQluH2ibLK0vbJgIHCqrdPcY=";
3125     };
3126     meta = {
3127       description = "HTTP Cookie parser in pure C";
3128       license = with lib.licenses; [ artistic1 gpl1Plus ];
3129     };
3130   };
3132   CGIEmulatePSGI = buildPerlPackage {
3133     pname = "CGI-Emulate-PSGI";
3134     version = "0.23";
3135     src = fetchurl {
3136       url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/CGI-Emulate-PSGI-0.23.tar.gz";
3137       hash = "sha256-3VtsNT8I+6EA2uCZBChPf3P4Mo0x9qZ7LBNvrXKNFYs=";
3138     };
3139     buildInputs = [ TestRequires ];
3140     propagatedBuildInputs = [ CGI ];
3141     meta = {
3142       description = "PSGI adapter for CGI";
3143       homepage = "https://github.com/tokuhirom/p5-cgi-emulate-psgi";
3144       license = with lib.licenses; [ artistic1 gpl1Plus ];
3145     };
3146   };
3148   CGIExpand = buildPerlPackage {
3149     pname = "CGI-Expand";
3150     version = "2.05";
3151     src = fetchurl {
3152       url = "mirror://cpan/authors/id/B/BO/BOWMANBS/CGI-Expand-2.05.tar.gz";
3153       hash = "sha256-boLRGOPEwMLa/NpYde3l6N2//+C336pkjkUeA5pFpKk=";
3154     };
3155     buildInputs = [ TestException ];
3156     meta = {
3157       description = "Convert flat hash to nested data using TT2's dot convention";
3158       license = with lib.licenses; [ artistic1 gpl1Plus ];
3159     };
3160   };
3162   CGIFast = buildPerlPackage {
3163     pname = "CGI-Fast";
3164     version = "2.16";
3165     src = fetchurl {
3166       url = "mirror://cpan/authors/id/L/LE/LEEJO/CGI-Fast-2.16.tar.gz";
3167       hash = "sha256-AiPX+RuAA3ud/183NgZAtx9dyNvZiaBZPV0i8/c8s9Q=";
3168     };
3169     propagatedBuildInputs = [ CGI FCGI ];
3170     doCheck = false;
3171     meta = {
3172       description = "CGI Interface for Fast CGI";
3173       homepage = "https://metacpan.org/module/CGI::Fast";
3174       license = with lib.licenses; [ artistic1 gpl1Plus ];
3175     };
3176   };
3178   CGIFormBuilder = buildPerlPackage {
3179     pname = "CGI-FormBuilder";
3180     version = "3.10";
3181     src = fetchurl {
3182       url = "mirror://cpan/authors/id/B/BI/BIGPRESH/CGI-FormBuilder-3.10.tar.gz";
3183       hash = "sha256-rsmb4MDwZ6fnJpxTeOWubI1905s2i08SwNhGOxPucZg=";
3184     };
3186     propagatedBuildInputs = [ CGI ];
3187     meta = {
3188       description = "Easily generate and process stateful forms";
3189       license = with lib.licenses; [ artistic1 gpl1Plus ];
3190     };
3191   };
3193   CGIMinimal = buildPerlModule {
3194     pname = "CGI-Minimal";
3195     version = "1.30";
3196     src = fetchurl {
3197       url = "mirror://cpan/authors/id/S/SN/SNOWHARE/CGI-Minimal-1.30.tar.gz";
3198       hash = "sha256-uU1QghsCYR2m7lQjGTFFB4xNuygvKxYqSw1YCUmXvEc=";
3199     };
3200     meta = {
3201       description = "A lightweight CGI form processing package";
3202       homepage = "https://github.com/JerilynFranz/perl-CGI-Minimal";
3203       license = with lib.licenses; [ mit ];
3204     };
3205   };
3207   CGIPSGI = buildPerlPackage {
3208     pname = "CGI-PSGI";
3209     version = "0.15";
3210     src = fetchurl {
3211       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/CGI-PSGI-0.15.tar.gz";
3212       hash = "sha256-xQ3LEL+EhqmEO67QMq2J2Hn/L0HJkzQt6tYvlHpZjZE=";
3213     };
3214     propagatedBuildInputs = [ CGI ];
3215     meta = {
3216       description = "Adapt CGI.pm to the PSGI protocol";
3217       license = with lib.licenses; [ artistic1 gpl1Plus ];
3218     };
3219   };
3221   CGISession = buildPerlModule {
3222     pname = "CGI-Session";
3223     version = "4.48";
3224     src = fetchurl {
3225       url = "mirror://cpan/authors/id/M/MA/MARKSTOS/CGI-Session-4.48.tar.gz";
3226       hash = "sha256-RnVkYcJM52ZrgQjduW26thJpnfMBLIDvEQFmGf4VVPc=";
3227     };
3228     propagatedBuildInputs = [ CGI ];
3229     meta = {
3230       description = "Persistent session data in CGI applications";
3231       license = with lib.licenses; [ artistic1 ];
3232     };
3233   };
3235   CGISimple = buildPerlPackage {
3236     pname = "CGI-Simple";
3237     version = "1.280";
3238     src = fetchurl {
3239       url = "mirror://cpan/authors/id/M/MA/MANWAR/CGI-Simple-1.280.tar.gz";
3240       hash = "sha256-GOAen/uBTl5O6neshImyBp/oNlGFUPN/bCIT61Wcar8=";
3241     };
3242     buildInputs = [ TestException TestNoWarnings ];
3243     meta = {
3244       description = "A Simple totally OO CGI interface that is CGI.pm compliant";
3245       license = with lib.licenses; [ artistic1 gpl1Plus ];
3246     };
3247   };
3249   CGIStruct = buildPerlPackage {
3250     pname = "CGI-Struct";
3251     version = "1.21";
3252     src = fetchurl {
3253       url = "mirror://cpan/authors/id/F/FU/FULLERMD/CGI-Struct-1.21.tar.gz";
3254       hash = "sha256-0T2Np/3NbZBgVOR2D8KKcYrskb088GeliSf7fLHAnWw=";
3255     };
3256     buildInputs = [ TestDeep ];
3257     meta = {
3258       description = "Build structures from CGI data";
3259       license = with lib.licenses; [ bsd2 ];
3260     };
3261   };
3263   CHI = buildPerlPackage {
3264     pname = "CHI";
3265     version = "0.61";
3266     src = fetchurl {
3267       url = "mirror://cpan/authors/id/A/AS/ASB/CHI-0.61.tar.gz";
3268       hash = "sha256-WDVFyeUxK7QZOrFt6fVf+PS0p97RKM7o3SywIdRni1s=";
3269     };
3270     preConfigure = ''
3271       # fix error 'Unescaped left brace in regex is illegal here in regex'
3272       substituteInPlace lib/CHI/t/Driver/Subcache/l1_cache.pm --replace 'qr/CHI stats: {' 'qr/CHI stats: \{'
3273     '';
3274     buildInputs = [ TestClass TestDeep TestException TestWarn TimeDate ];
3275     propagatedBuildInputs = [ CarpAssert ClassLoad DataUUID DigestJHash HashMoreUtils JSONMaybeXS ListMoreUtils LogAny Moo MooXTypesMooseLikeNumeric StringRewritePrefix TaskWeaken TimeDuration TimeDurationParse ];
3276     meta = {
3277       description = "Unified cache handling interface";
3278       license = with lib.licenses; [ artistic1 gpl1Plus ];
3279     };
3280   };
3282   Chart = buildPerlPackage {
3283     pname = "Chart";
3284     version = "2.403.9";
3285     src = fetchurl {
3286       url = "mirror://cpan/authors/id/L/LI/LICHTKIND/Chart-v2.403.9.tar.gz";
3287       hash = "sha256-V8aCi7TIpyFw/rZ9wfFIq/Gcqzgnd54wh3tGEe1n86s=";
3288     };
3289     buildInputs = [ TestWarn ];
3290     propagatedBuildInputs = [ GD GraphicsToolkitColor ];
3291     meta = {
3292       description = "A series of charting modules";
3293       license = with lib.licenses; [ artistic1 gpl1Plus ];
3294     };
3295   };
3297   CiscoIPPhone = buildPerlPackage {
3298     pname = "Cisco-IPPhone";
3299     version = "0.05";
3300     src = fetchurl {
3301       url = "mirror://cpan/authors/id/M/MR/MRPALMER/Cisco-IPPhone-0.05.tar.gz";
3302       hash = "sha256-sDyiY/j0Gm7FRcU5MhOjFG02vUUzWt6Zr1HdQqtu4W0=";
3303     };
3304     meta = {
3305       description = "Package for creating Cisco IPPhone XML objects";
3306       license = with lib.licenses; [ artistic1 ];
3307     };
3308   };
3310   CLASS = buildPerlPackage {
3311     pname = "CLASS";
3312     version = "1.1.8";
3313     src = fetchurl {
3314       url = "mirror://cpan/authors/id/J/JD/JDEGUEST/CLASS-v1.1.8.tar.gz";
3315       hash = "sha256-IZAaUmXL29iRJ36X/Gs0X3nby/B3RFePX/iGaltddgM=";
3316     };
3317     meta = {
3318       description = "Alias for __PACKAGE__";
3319       homepage = "https://metacpan.org/pod/CLASS";
3320       license = with lib.licenses; [ artistic1 gpl1Plus ];
3321       maintainers = [ maintainers.sgo ];
3322     };
3323   };
3325   ClassAccessor = buildPerlPackage {
3326     pname = "Class-Accessor";
3327     version = "0.51";
3328     src = fetchurl {
3329       url = "mirror://cpan/authors/id/K/KA/KASEI/Class-Accessor-0.51.tar.gz";
3330       hash = "sha256-vxKj5d5aLG6KRHs2T09aBQv3RiTFbjFQIq55kv8vQRw=";
3331     };
3332     meta = {
3333       description = "Automated accessor generation";
3334       license = with lib.licenses; [ artistic1 gpl1Plus ];
3335     };
3336   };
3338   ClassAccessorChained = buildPerlModule {
3339     pname = "Class-Accessor-Chained";
3340     version = "0.01";
3341     src = fetchurl {
3342       url = "mirror://cpan/authors/id/R/RC/RCLAMP/Class-Accessor-Chained-0.01.tar.gz";
3343       hash = "sha256-pb9J04BPg60lobFvMn0U1MvuInATIQSyhwUDHbzMNNI=";
3344     };
3345     propagatedBuildInputs = [ ClassAccessor ];
3346     meta = {
3347       description = "Make chained accessors";
3348       license = with lib.licenses; [ artistic1 gpl1Plus ];
3349     };
3350   };
3352   ClassAccessorGrouped = buildPerlPackage {
3353     pname = "Class-Accessor-Grouped";
3354     version = "0.10014";
3355     src = fetchurl {
3356       url = "mirror://cpan/authors/id/H/HA/HAARG/Class-Accessor-Grouped-0.10014.tar.gz";
3357       hash = "sha256-NdWwPvwJ9n86MVXJYkEmw+FiyOPKmP+CbbNYUzpExLs=";
3358     };
3359     buildInputs = [ TestException ];
3360     propagatedBuildInputs = [ ModuleRuntime ];
3361     meta = {
3362       description = "Lets you build groups of accessors";
3363       homepage = "https://metacpan.org/release/Class-Accessor-Grouped";
3364       license = with lib.licenses; [ artistic1 gpl1Plus ];
3365     };
3366   };
3368   ClassAccessorLite = buildPerlPackage {
3369     pname = "Class-Accessor-Lite";
3370     version = "0.08";
3371     src = fetchurl {
3372       url = "mirror://cpan/authors/id/K/KA/KAZUHO/Class-Accessor-Lite-0.08.tar.gz";
3373       hash = "sha256-dbO47I7+aHZ3tj8KEO75ZuAfYHNcVmVs51y7RMq6M1o=";
3374     };
3375     meta = {
3376       description = "A minimalistic variant of Class::Accessor";
3377       license = with lib.licenses; [ artistic1 gpl1Plus ];
3378     };
3379   };
3381   ClassAutouse = buildPerlPackage {
3382     pname = "Class-Autouse";
3383     version = "2.01";
3384     src = fetchurl {
3385       url = "mirror://cpan/authors/id/A/AD/ADAMK/Class-Autouse-2.01.tar.gz";
3386       hash = "sha256-wFsyNsBXGdgZwg2w/ettCVR0fkPXpzgpTu1/vPNuzxs=";
3387     };
3388     meta = {
3389       description = "Run-time load a class the first time you call a method in it";
3390       license = with lib.licenses; [ artistic1 gpl1Plus ];
3391     };
3392   };
3394   ClassBase = buildPerlPackage {
3395     pname = "Class-Base";
3396     version = "0.09";
3397     src = fetchurl {
3398       url = "mirror://cpan/authors/id/Y/YA/YANICK/Class-Base-0.09.tar.gz";
3399       hash = "sha256-4aW93lJQWAJmSpEIpRXJ6OUCy3IppJ3pT0CBsbKu7YQ=";
3400     };
3401     propagatedBuildInputs = [ Clone ];
3402     meta = {
3403       description = "Useful base class for deriving other modules";
3404       license = with lib.licenses; [ artistic1 gpl1Plus ];
3405     };
3406   };
3408   ClassC3 = buildPerlPackage {
3409     pname = "Class-C3";
3410     version = "0.35";
3411     src = fetchurl {
3412       url = "mirror://cpan/authors/id/H/HA/HAARG/Class-C3-0.35.tar.gz";
3413       hash = "sha256-hAU88aaPzIwSBWwvEgrfBPf2jjvjT0QI6V0Cb+5n4z4=";
3414     };
3415     propagatedBuildInputs = [ AlgorithmC3 ];
3416     meta = {
3417       description = "A pragma to use the C3 method resolution order algorithm";
3418       homepage = "https://metacpan.org/release/Class-C3";
3419       license = with lib.licenses; [ artistic1 gpl1Plus ];
3420     };
3421   };
3423   ClassC3AdoptNEXT = buildPerlModule {
3424     pname = "Class-C3-Adopt-NEXT";
3425     version = "0.14";
3426     src = fetchurl {
3427       url = "mirror://cpan/authors/id/E/ET/ETHER/Class-C3-Adopt-NEXT-0.14.tar.gz";
3428       hash = "sha256-hWdiJarbduhmamq+LgZZ1A60WBrWOFsXDupOHWvzS/c=";
3429     };
3430     buildInputs = [ ModuleBuildTiny TestException ];
3431     propagatedBuildInputs = [ MROCompat ];
3432     meta = {
3433       description = "Make NEXT suck less";
3434       homepage = "https://github.com/karenetheridge/Class-C3-Adopt-NEXT";
3435       license = with lib.licenses; [ artistic1 gpl1Plus ];
3436     };
3437   };
3439   ClassC3Componentised = buildPerlPackage {
3440     pname = "Class-C3-Componentised";
3441     version = "1.001002";
3442     src = fetchurl {
3443       url = "mirror://cpan/authors/id/H/HA/HAARG/Class-C3-Componentised-1.001002.tar.gz";
3444       hash = "sha256-MFGxRtwe/q6hqaLp5rF3MICZW4mKtYPxVWWNX8gLlpM=";
3445     };
3446     buildInputs = [ TestException ];
3447     propagatedBuildInputs = [ ClassC3 ClassInspector MROCompat ];
3448     meta = {
3449       description = "Load mix-ins or components to your C3-based class";
3450       license = with lib.licenses; [ artistic1 gpl1Plus ];
3451     };
3452   };
3454   ClassClassgenclassgen = buildPerlPackage {
3455     pname = "Class-Classgen-classgen";
3456     version = "3.03";
3457     src = fetchurl {
3458       url = "mirror://cpan/authors/id/M/MS/MSCHLUE/Class-Classgen-classgen-3.03.tar.gz";
3459       hash = "sha256-m2XUG5kVOJkugWsyzE+ptKSguz6cEOfuvv+CZY27yPY=";
3460     };
3461     meta = {
3462       description = "Simplifies creation, manipulation and usage of complex objects.";
3463       license = with lib.licenses; [ artistic1 gpl1Plus ];
3464       mainProgram = "classgen";
3465     };
3466   };
3468   ClassContainer = buildPerlModule {
3469     pname = "Class-Container";
3470     version = "0.13";
3471     src = fetchurl {
3472       url = "mirror://cpan/authors/id/K/KW/KWILLIAMS/Class-Container-0.13.tar.gz";
3473       hash = "sha256-9dSVsd+4JtXAxF0DtNDmtgR8uwbNv2vhX9TckCrutws=";
3474     };
3475     propagatedBuildInputs = [ ParamsValidate ];
3476     meta = {
3477       description = "Glues object frameworks together transparently";
3478       license = with lib.licenses; [ artistic1 gpl1Plus ];
3479     };
3480   };
3482   ClassDataAccessor = buildPerlPackage {
3483     pname = "Class-Data-Accessor";
3484     version = "0.04004";
3485     src = fetchurl {
3486       url = "mirror://cpan/authors/id/C/CL/CLACO/Class-Data-Accessor-0.04004.tar.gz";
3487       hash = "sha256-wSLW4t9hNs6b6h5tK3dsueaeAAhezplTAYFMevOo6BQ=";
3488     };
3489     meta = {
3490       description = "Inheritable, overridable class and instance data accessor creation";
3491       license = with lib.licenses; [ artistic1 gpl1Plus ];
3492     };
3493   };
3495   ClassDataInheritable = buildPerlPackage {
3496     pname = "Class-Data-Inheritable";
3497     version = "0.09";
3498     src = fetchurl {
3499       url = "mirror://cpan/authors/id/R/RS/RSHERER/Class-Data-Inheritable-0.09.tar.gz";
3500       hash = "sha256-RAiNbpBxLhh7ilsFDKWxxw7+K6oyrhI+m9j1nynwbk0=";
3501     };
3502     meta = {
3503       description = "Inheritable, overridable class data";
3504       license = with lib.licenses; [ artistic1 gpl1Plus ];
3505     };
3506   };
3508   ClassEHierarchy = buildPerlPackage {
3509     pname = "Class-EHierarchy";
3510     version = "2.01";
3511     src = fetchurl {
3512       url = "mirror://cpan/authors/id/C/CO/CORLISS/Class-EHierarchy/Class-EHierarchy-2.01.tar.gz";
3513       hash = "sha256-Y3q3a+s4MqmwcbmZobFb8F0pffamYsyxqABPKYcwg4I=";
3514     };
3515     meta = {
3516       description = "Base class for hierarchally ordered objects";
3517       license = with lib.licenses; [ artistic1 gpl1Plus ];
3518       maintainers = teams.deshaw.members;
3519     };
3520   };
3522   ClassFactory = buildPerlPackage {
3523     pname = "Class-Factory";
3524     version = "1.06";
3525     src = fetchurl {
3526       url = "mirror://cpan/authors/id/P/PH/PHRED/Class-Factory-1.06.tar.gz";
3527       hash = "sha256-w3otJp65NfNqI+ETSArglG+nwSoSeBOWoSJsjkNfMPU=";
3528     };
3529     meta = {
3530       description = "Base class for dynamic factory classes";
3531       license = with lib.licenses; [ artistic1 gpl1Plus ];
3532     };
3533   };
3535   ClassFactoryUtil = buildPerlModule {
3536     pname = "Class-Factory-Util";
3537     version = "1.7";
3538     src = fetchurl {
3539       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Class-Factory-Util-1.7.tar.gz";
3540       hash = "sha256-bFFrRFtE+HNj+zoUhDHTHp7LXm8h+2SByJskBrZpLiY=";
3541     };
3542     meta = {
3543       description = "Provide utility methods for factory classes";
3544       license = with lib.licenses; [ artistic1 gpl1Plus ];
3545     };
3546   };
3548   ClassGomor = buildPerlModule {
3549     pname = "Class-Gomor";
3550     version = "1.03";
3551     src = fetchurl {
3552       url = "mirror://cpan/authors/id/G/GO/GOMOR/Class-Gomor-1.03.tar.gz";
3553       hash = "sha256-R9s86pzp/6mL+cdFV/0yz3AHkatTcCDJWKwwtKn/IAs=";
3554     };
3555     meta = {
3556       description = "Another class and object builder";
3557       license = with lib.licenses; [ artistic1 ];
3558     };
3559   };
3561   ClassInspector = buildPerlPackage {
3562     pname = "Class-Inspector";
3563     version = "1.36";
3564     src = fetchurl {
3565       url = "mirror://cpan/authors/id/P/PL/PLICEASE/Class-Inspector-1.36.tar.gz";
3566       hash = "sha256-zCldI6RyaHwkSJ1YIm6tI7n9wliOUi8LXwdHdBcAaU4=";
3567     };
3568     meta = {
3569       description = "Get information about a class and its structure";
3570       homepage = "https://metacpan.org/pod/Class::Inspector";
3571       license = with lib.licenses; [ artistic1 gpl1Plus ];
3572     };
3573   };
3575   ClassISA = buildPerlPackage {
3576     pname = "Class-ISA";
3577     version = "0.36";
3578     src = fetchurl {
3579       url = "mirror://cpan/authors/id/S/SM/SMUELLER/Class-ISA-0.36.tar.gz";
3580       hash = "sha256-iBbzTpo46EmhDfdWAw3M+f4GGhlsEaw/qv1xE8kpuWQ=";
3581     };
3582     meta = {
3583       description = "Report the search path for a class's ISA tree";
3584       license = with lib.licenses; [ artistic1 gpl1Plus ];
3585     };
3586   };
3588   ClassIterator = buildPerlPackage {
3589     pname = "Class-Iterator";
3590     version = "0.3";
3591     src = fetchurl {
3592       url = "mirror://cpan/authors/id/T/TE/TEXMEC/Class-Iterator-0.3.tar.gz";
3593       hash = "sha256-2xuofKkQfxYf6cHp5+JnwAJt78Jv4+c7ytirj/wY750=";
3594     };
3595     meta = {
3596       description = "Iterator class";
3597       license = with lib.licenses; [ artistic1 gpl1Plus ];
3598     };
3599   };
3601   ClassLoader = buildPerlPackage rec {
3602     pname = "Class-Loader";
3603     version = "2.03";
3604     src = fetchurl {
3605       url = "mirror://cpan/authors/id/V/VI/VIPUL/Class-Loader-2.03.tar.gz";
3606       hash = "sha256-T+8gdurWBCNFT/H06ChZqam5lCtfuO7gyYucY8nyuOc=";
3607     };
3608     meta = {
3609       description = "Load modules and create objects on demand";
3610       license = with lib.licenses; [ artistic1 gpl1Plus ];
3611     };
3612   };
3614   ClassMakeMethods = buildPerlPackage {
3615     pname = "Class-MakeMethods";
3616     version = "1.01";
3617     src = fetchurl {
3618       url = "mirror://cpan/authors/id/E/EV/EVO/Class-MakeMethods-1.01.tar.gz";
3619       hash = "sha256-rKx0LnnQ7Ip75Nj7gTqF6kTUfRnAFwzdswZEYCtYLGY=";
3620     };
3621     preConfigure = ''
3622       # fix error 'Unescaped left brace in regex is illegal here in regex'
3623       substituteInPlace tests/xemulator/class_methodmaker/Test.pm --replace 's/(TEST\s{)/$1/g' 's/(TEST\s\{)/$1/g'
3624     '';
3625     meta = {
3626       description = "Generate common types of methods";
3627       license = with lib.licenses; [ artistic1 gpl1Plus ];
3628     };
3629   };
3631   ClassMember = buildPerlPackage {
3632     pname = "Class-Member";
3633     version = "1.6";
3634     src = fetchurl {
3635       url = "mirror://cpan/authors/id/O/OP/OPI/Class-Member-1.6.tar.gz";
3636       hash = "sha256-p1KK8in6OhIF3NJakd59dKxvp9lSgbmTtV6Lb0+HuZE=";
3637     };
3638     meta = {
3639       description = "A set of modules to make the module developement easier";
3640       license = with lib.licenses; [ artistic1 gpl1Plus ];
3641     };
3642   };
3644   ClassMethodMaker = buildPerlPackage {
3645     pname = "Class-MethodMaker";
3646     version = "2.24";
3647     src = fetchurl {
3648       url = "mirror://cpan/authors/id/S/SC/SCHWIGON/class-methodmaker/Class-MethodMaker-2.24.tar.gz";
3649       hash = "sha256-Xu9YzLJ+vQG83lsUvMVTtTR6Bpnlw+khx3gMNSaJAyg=";
3650     };
3651     # Remove unnecessary, non-autoconf, configure script.
3652     prePatch = "rm configure";
3653     meta = {
3654       description = "A module for creating generic methods";
3655       license = with lib.licenses; [ artistic1 gpl1Plus ];
3656     };
3657   };
3659   ClassMethodModifiers = buildPerlPackage {
3660     pname = "Class-Method-Modifiers";
3661     version = "2.15";
3662     src = fetchurl {
3663       url = "mirror://cpan/authors/id/E/ET/ETHER/Class-Method-Modifiers-2.15.tar.gz";
3664       hash = "sha256-Zc2Fv+R10GbpGG96jMY2BwmFswsOuxzehoHPBiwuFfw=";
3665     };
3666     buildInputs = [ TestFatal TestNeeds ];
3667     meta = {
3668       description = "Provides Moose-like method modifiers";
3669       homepage = "https://github.com/moose/Class-Method-Modifiers";
3670       license = with lib.licenses; [ artistic1 gpl1Plus ];
3671     };
3672   };
3674   ClassMix = buildPerlModule {
3675     pname = "Class-Mix";
3676     version = "0.006";
3677     src = fetchurl {
3678       url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Class-Mix-0.006.tar.gz";
3679       hash = "sha256-h0f2Q4k5FPjESXnxcW0MHsikE5R5ZVVEeUToYPH/fAs=";
3680     };
3681     propagatedBuildInputs = [ ParamsClassify ];
3682     meta = {
3683       description = "Dynamic class mixing";
3684       license = with lib.licenses; [ artistic1 gpl1Plus ];
3685     };
3686   };
3688   ClassRefresh = buildPerlPackage {
3689     pname = "Class-Refresh";
3690     version = "0.07";
3691     src = fetchurl {
3692       url = "mirror://cpan/authors/id/D/DO/DOY/Class-Refresh-0.07.tar.gz";
3693       hash = "sha256-47ADU1XLs1oq7j8iNojVeJRqenxXCs05iyjN2x/UvrM=";
3694     };
3695     buildInputs = [ TestFatal TestRequires ];
3696     propagatedBuildInputs = [ ClassLoad ClassUnload DevelOverrideGlobalRequire TryTiny ];
3697     meta = {
3698       homepage = "http://metacpan.org/release/Class-Refresh";
3699       description = "Refresh your classes during runtime";
3700       license = with lib.licenses; [ artistic1 gpl1Plus ];
3701     };
3702   };
3704   ClassReturnValue = buildPerlPackage {
3705     pname = "Class-ReturnValue";
3706     version = "0.55";
3707     src = fetchurl {
3708       url = "mirror://cpan/authors/id/J/JE/JESSE/Class-ReturnValue-0.55.tar.gz";
3709       hash = "sha256-7Tg2iF149zTM16mFUOxCKmFt98MTEMG3sfZFn1+w5L0=";
3710     };
3711     propagatedBuildInputs = [ DevelStackTrace ];
3712     meta = {
3713       description = "(deprecated) polymorphic return values";
3714       homepage = "https://github.com/rjbs/Return-Value";
3715       license = with lib.licenses; [ artistic1 gpl1Plus ];
3716     };
3717   };
3719   ClassSingleton = buildPerlPackage {
3720     pname = "Class-Singleton";
3721     version = "1.6";
3722     src = fetchurl {
3723       url = "mirror://cpan/authors/id/S/SH/SHAY/Class-Singleton-1.6.tar.gz";
3724       hash = "sha256-J7oT8NlRKSkWa72MnvldkNYw/IDwyaG3RYiRBV6SgqQ=";
3725     };
3726     meta = {
3727       description = "Implementation of a 'Singleton' class";
3728       license = with lib.licenses; [ artistic1 gpl1Plus ];
3729     };
3730   };
3732   ClassThrowable = buildPerlPackage {
3733     pname = "Class-Throwable";
3734     version = "0.13";
3735     src = fetchurl {
3736       url = "mirror://cpan/authors/id/K/KM/KMX/Class-Throwable-0.13.tar.gz";
3737       hash = "sha256-3JoR4Nq1bcIg3qjJT+PEfbXn3Xwe0E3IF4qlu3v7vM4=";
3738     };
3739     meta = {
3740       description = "A minimal lightweight exception class";
3741       license = with lib.licenses; [ artistic1 gpl1Plus ];
3742     };
3743   };
3745   ClassTiny = buildPerlPackage {
3746     pname = "Class-Tiny";
3747     version = "1.008";
3748     src = fetchurl {
3749       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Class-Tiny-1.008.tar.gz";
3750       hash = "sha256-7gWKY5Evofy5pySY9WykIaIFbcf59LZ4N0RtZCGBVhU=";
3751     };
3752     meta = {
3753       description = "Minimalist class construction";
3754       homepage = "https://github.com/dagolden/Class-Tiny";
3755       license = with lib.licenses; [ asl20 ];
3756     };
3757   };
3759   ClassLoad = buildPerlPackage {
3760     pname = "Class-Load";
3761     version = "0.25";
3762     src = fetchurl {
3763       url = "mirror://cpan/authors/id/E/ET/ETHER/Class-Load-0.25.tar.gz";
3764       hash = "sha256-Kkj6d5tSl+VhVjgOizJjfGxY3stPSn88c1BSPhEnX48=";
3765     };
3766     buildInputs = [ TestFatal TestNeeds ];
3767     propagatedBuildInputs = [ DataOptList PackageStash ];
3768     meta = {
3769       description = "A working (require \"Class::Name\") and more";
3770       homepage = "https://github.com/moose/Class-Load";
3771       license = with lib.licenses; [ artistic1 gpl1Plus ];
3772     };
3773   };
3775   ClassLoadXS = buildPerlPackage {
3776     pname = "Class-Load-XS";
3777     version = "0.10";
3778     src = fetchurl {
3779       url = "mirror://cpan/authors/id/E/ET/ETHER/Class-Load-XS-0.10.tar.gz";
3780       hash = "sha256-W8Is9Tbr/SVkxb2vQvDYpM7j0ZMPyLRLfUpCA4YirdE=";
3781     };
3782     buildInputs = [ TestFatal TestNeeds ];
3783     propagatedBuildInputs = [ ClassLoad ];
3784     meta = {
3785       description = "XS implementation of parts of Class::Load";
3786       homepage = "https://github.com/moose/Class-Load-XS";
3787       license = with lib.licenses; [ artistic2 ];
3788     };
3789   };
3791   ClassObservable = buildPerlPackage {
3792     pname = "Class-Observable";
3793     version = "2.004";
3794     src = fetchurl {
3795       url = "mirror://cpan/authors/id/A/AR/ARISTOTLE/Class-Observable-2.004.tar.gz";
3796       hash = "sha256-bfMun+XwCIkfxO+k5PReqhQE0wIgRZyPyKUB8KfPLmk=";
3797     };
3798     propagatedBuildInputs = [ ClassISA ];
3799     meta = {
3800       description = "Allow other classes and objects to respond to events in yours";
3801       license = with lib.licenses; [ artistic1 gpl1Plus ];
3802     };
3803   };
3805   ClassStd = buildPerlModule {
3806     pname = "Class-Std";
3807     version = "0.013";
3808     src = fetchurl {
3809       url = "mirror://cpan/authors/id/C/CH/CHORNY/Class-Std-0.013.tar.gz";
3810       hash = "sha256-vNbYL2yK8P4Gn87X3RZaR5WwtukjUcfU5aGrmhT8NcY=";
3811     };
3812     meta = {
3813       description = "Support for creating standard 'inside-out' classes";
3814       license = with lib.licenses; [ artistic1 gpl1Plus ];
3815     };
3816   };
3818   ClassStdFast = buildPerlModule {
3819     pname = "Class-Std-Fast";
3820     version = "0.0.8";
3821     src = fetchurl {
3822       url = "mirror://cpan/authors/id/A/AC/ACID/Class-Std-Fast-v0.0.8.tar.gz";
3823       hash = "sha256-G9Q3Y8ajcxgwl6MOeH9dZxOw2ydRHFLVMyZrWdLPp4A=";
3824     };
3825     propagatedBuildInputs = [ ClassStd ];
3826     nativeCheckInputs = [ TestPod TestPodCoverage ];
3827     meta = {
3828       description = "Faster but less secure than Class::Std";
3829       license = with lib.licenses; [ artistic1 gpl1Plus ];
3830     };
3831   };
3833   ClassUnload = buildPerlPackage {
3834     pname = "Class-Unload";
3835     version = "0.11";
3836     src = fetchurl {
3837       url = "mirror://cpan/authors/id/I/IL/ILMARI/Class-Unload-0.11.tar.gz";
3838       hash = "sha256-UuKXR6fk0uGiicDh3oEHY08QyEJs18nTHsrIOD5KCl8=";
3839     };
3840     propagatedBuildInputs = [ ClassInspector ];
3841     buildInputs = [ TestRequires ];
3842     meta = {
3843       description = "Unload a class";
3844       license = with lib.licenses; [ artistic1 gpl1Plus ];
3845     };
3846   };
3848   ClassVirtual = buildPerlPackage {
3849     pname = "Class-Virtual";
3850     version = "0.08";
3851     src = fetchurl {
3852       url = "mirror://cpan/authors/id/M/MS/MSCHWERN/Class-Virtual-0.08.tar.gz";
3853       hash = "sha256-xkmbQtO05cZIil6C+8KGmObJhgFlBy3d+mdJNVqc+7I=";
3854     };
3855     propagatedBuildInputs = [ CarpAssert ClassDataInheritable ClassISA ];
3856     meta = {
3857       description = "Base class for virtual base classes";
3858       homepage = "https://metacpan.org/release/Class-Virtual";
3859       license = with lib.licenses; [ artistic1 gpl1Plus ];
3860     };
3861   };
3863   ClassXSAccessor = buildPerlPackage {
3864     pname = "Class-XSAccessor";
3865     version = "1.19";
3866     src = fetchurl {
3867       url = "mirror://cpan/authors/id/S/SM/SMUELLER/Class-XSAccessor-1.19.tar.gz";
3868       hash = "sha256-mcVrOV8SOa8ZkB8v7rEl2ey041Gg2A2qlSkhGkcApvI=";
3869     };
3870     meta = {
3871       description = "Generate fast XS accessors without runtime compilation";
3872       license = with lib.licenses; [ artistic1 gpl1Plus ];
3873     };
3874   };
3876   CLDRNumber = buildPerlModule {
3877     pname = "CLDR-Number";
3878     version = "0.19";
3879     src = fetchurl {
3880       url = "mirror://cpan/authors/id/P/PA/PATCH/CLDR-Number-0.19.tar.gz";
3881       hash = "sha256-xnFkiOZf53n/eag/DyA2rZRGPv49DzSca5kRKXW9hfw=";
3882     };
3883     buildInputs = [ SoftwareLicense TestDifferences TestException TestWarn ];
3884     propagatedBuildInputs =
3885       [ ClassMethodModifiers MathRound Moo namespaceclean ];
3886     meta = {
3887       description = "Localized number formatters using the Unicode CLDR";
3888       homepage = "https://github.com/patch/cldr-number-pm5";
3889       license = with lib.licenses; [ artistic1 gpl1Plus ];
3890     };
3891   };
3893   CLIHelpers = buildPerlPackage {
3894     pname = "CLI-Helpers";
3895     version = "2.0";
3896     src = fetchurl {
3897       url = "mirror://cpan/authors/id/B/BL/BLHOTSKY/CLI-Helpers-2.0.tar.gz";
3898       hash = "sha256-yhpPFnTzsfMmjyekfJiAszgmrenxI34sEUXnAqfIePY=";
3899     };
3900     buildInputs = [ PodCoverageTrustPod TestPerlCritic ];
3901     propagatedBuildInputs = [ CaptureTiny IOInteractive RefUtil TermReadKey YAML ];
3902     meta = {
3903       description = "Subroutines for making simple command line scripts";
3904       homepage = "https://github.com/reyjrar/CLI-Helpers";
3905       license = with lib.licenses; [ bsd3 ];
3906     };
3907   };
3909   Clipboard = buildPerlModule {
3910     pname = "Clipboard";
3911     version = "0.28";
3912     src = fetchurl {
3913       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Clipboard-0.28.tar.gz";
3914       hash = "sha256-no15AVGUJjNXwloPXQlIAP/0O9v5+GAew7DtXrCWbSY=";
3915     };
3916     propagatedBuildInputs = [ CGI ];
3917     # Disable test on darwin because MacPasteboard fails when not logged in interactively.
3918     # Mac OS error -4960 (coreFoundationUnknownErr): The unknown error at lib/Clipboard/MacPasteboard.pm line 3.
3919     # Mac-Pasteboard-0.009.readme: 'NOTE that Mac OS X appears to restrict pasteboard access to processes that are logged in interactively.
3920     #     Ssh sessions and cron jobs can not create the requisite pasteboard handles, giving coreFoundationUnknownErr (-4960)'
3921     doCheck = !stdenv.isDarwin;
3922     meta = {
3923       description = "Copy and paste with any OS";
3924       homepage = "https://metacpan.org/release/Clipboard";
3925       license = with lib.licenses; [ artistic1 gpl1Plus ];
3926     };
3927   };
3930   Clone = buildPerlPackage {
3931     pname = "Clone";
3932     version = "0.46";
3933     src = fetchurl {
3934       url = "mirror://cpan/authors/id/G/GA/GARU/Clone-0.46.tar.gz";
3935       hash = "sha256-qt7tXkyL1rvfaMDdAGbLUT4Wq55bQ4LcSgqv1ViQaXs=";
3936     };
3937     buildInputs = [ BCOW ];
3938     meta = {
3939       description = "Recursively copy Perl datatypes";
3940       license = with lib.licenses; [ artistic1 gpl1Plus ];
3941     };
3942   };
3944   CloneChoose = buildPerlPackage {
3945     pname = "Clone-Choose";
3946     version = "0.010";
3947     src = fetchurl {
3948       url = "mirror://cpan/authors/id/H/HE/HERMES/Clone-Choose-0.010.tar.gz";
3949       hash = "sha256-ViNIH1jO6O25bNICqtDfViLUJ+X3SLJThR39YuUSNjI=";
3950     };
3951     buildInputs = [ Clone ClonePP TestWithoutModule ];
3952     meta = {
3953       description = "Choose appropriate clone utility";
3954       homepage = "https://metacpan.org/release/Clone-Choose";
3955       license = with lib.licenses; [ artistic1 gpl1Plus ];
3956     };
3957   };
3959   ClonePP = buildPerlPackage {
3960     pname = "Clone-PP";
3961     version = "1.08";
3962     src = fetchurl {
3963       url = "mirror://cpan/authors/id/N/NE/NEILB/Clone-PP-1.08.tar.gz";
3964       hash = "sha256-VyAwlKXYV0tqAJUejyOZtmb050+VEdnJ+1tFPV0R9Xg=";
3965     };
3966     meta = {
3967       description = "Recursively copy Perl datatypes";
3968       license = with lib.licenses; [ artistic1 gpl1Plus ];
3969     };
3970   };
3972   CodeTidyAll = buildPerlPackage {
3973     pname = "Code-TidyAll";
3974     version = "0.83";
3975     src = fetchurl {
3976       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Code-TidyAll-0.83.tar.gz";
3977       hash = "sha256-FqBS0DprF/xYqEqZb68p5C7O124sQMRyc+uKsxzBXKE=";
3978     };
3979     propagatedBuildInputs = [ CaptureTiny ConfigINI FileWhich Filepushd IPCRun3 IPCSystemSimple ListCompare ListSomeUtils LogAny Moo ScopeGuard SpecioLibraryPathTiny TextDiff TimeDate TimeDurationParse ];
3980     buildInputs = [ TestClass TestClassMost TestDeep TestDifferences TestException TestFatal TestMost TestWarn TestWarnings librelative ];
3981     meta = {
3982       description = "Engine for tidyall, your all-in-one code tidier and validator";
3983       homepage = "https://metacpan.org/release/Code-TidyAll";
3984       license = with lib.licenses; [ artistic1 gpl1Plus ];
3985       mainProgram = "tidyall";
3986     };
3987   };
3989   CodeTidyAllPluginPerlAlignMooseAttributes = buildPerlPackage {
3990     pname = "Code-TidyAll-Plugin-Perl-AlignMooseAttributes";
3991     version = "0.01";
3992     src = fetchurl {
3993       url = "mirror://cpan/authors/id/J/JS/JSWARTZ/Code-TidyAll-Plugin-Perl-AlignMooseAttributes-0.01.tar.gz";
3994       hash = "sha256-jR3inlbwczFoXqONGDr87f8hCOccSp2zb0GeUN0sHOU=";
3995     };
3996     propagatedBuildInputs = [ CodeTidyAll TextAligner ];
3997     meta = {
3998       description = "TidyAll plugin to sort and align Moose-style attributes";
3999       license = with lib.licenses; [ artistic1 gpl1Plus ];
4000     };
4001   };
4003   ColorLibrary = buildPerlPackage {
4004     pname = "Color-Library";
4005     version = "0.021";
4006     src = fetchurl {
4007       url = "mirror://cpan/authors/id/R/RO/ROKR/Color-Library-0.021.tar.gz";
4008       hash = "sha256-WMv34zPTpKQCl6vENBKzIdpEnGgWAg5PpmJasHn8kKU=";
4009     };
4010     buildInputs = [ TestMost TestWarn TestException TestDeep TestDifferences ModulePluggable ];
4011     propagatedBuildInputs = [ ClassAccessor ClassDataInheritable ];
4012     meta = {
4013       description = "An easy-to-use and comprehensive named-color library";
4014       license = with lib.licenses; [ artistic1 gpl1Plus ];
4015     };
4016   };
4018   CommandRunner = buildPerlModule {
4019     pname = "Command-Runner";
4020     version = "0.200";
4021     src = fetchurl {
4022       url = "mirror://cpan/authors/id/S/SK/SKAJI/Command-Runner-0.200.tar.gz";
4023       hash = "sha256-WtJtBhEb/s1TyPW7XeqUvyAl9seOlfbYAS5M+oninyY=";
4024     };
4025     buildInputs = [ ModuleBuildTiny ];
4026     propagatedBuildInputs = [ CaptureTiny Filepushd StringShellQuote Win32ShellQuote ];
4027     meta = {
4028       description = "Run external commands and Perl code refs";
4029       homepage = "https://github.com/skaji/Command-Runner";
4030       license = with lib.licenses; [ artistic1 gpl1Plus ];
4031       maintainers = [ maintainers.zakame ];
4032     };
4033   };
4035   commonsense = buildPerlPackage {
4036     pname = "common-sense";
4037     version = "3.75";
4038     src = fetchurl {
4039       url = "mirror://cpan/authors/id/M/ML/MLEHMANN/common-sense-3.75.tar.gz";
4040       hash = "sha256-qGocTKTzAG10eQZEJaCfpbZonlcmH8uZT+Z9Bhy6Dn4=";
4041     };
4042     meta = {
4043       description = "Implements some sane defaults for Perl programs";
4044       license = with lib.licenses; [ artistic1 gpl1Plus ];
4045     };
4046   };
4048   CompilerLexer = buildPerlModule {
4049     pname = "Compiler-Lexer";
4050     version = "0.23";
4051     src = fetchurl {
4052       url = "mirror://cpan/authors/id/G/GO/GOCCY/Compiler-Lexer-0.23.tar.gz";
4053       hash = "sha256-YDHOSv67+k9JKidJSb57gjIxTpECOCjEOOR5gf8Kmds=";
4054     };
4055     nativeBuildInputs = [ pkgs.ld-is-cc-hook ];
4056     buildInputs = [ ModuleBuildXSUtil ];
4057     meta = {
4058       homepage = "https://github.com/goccy/p5-Compiler-Lexer";
4059       description = "Lexical Analyzer for Perl5";
4060       license = with lib.licenses; [ artistic1 gpl1Plus ];
4061     };
4062   };
4064   CompressBzip2 = buildPerlPackage {
4065     pname = "Compress-Bzip2";
4066     version = "2.28";
4067     src = fetchurl {
4068       url = "mirror://cpan/authors/id/R/RU/RURBAN/Compress-Bzip2-2.28.tar.gz";
4069       hash = "sha256-hZ+DXD9cmYgQ2LKm+eKC/5nWy2bM+lXK5+Ztr7A1EW4=";
4070     };
4071     meta = {
4072       description = "Interface to Bzip2 compression library";
4073       license = with lib.licenses; [ artistic1 gpl1Plus ];
4074     };
4075   };
4077   CompressLZF = buildPerlPackage rec {
4078     pname = "Compress-LZF";
4079     version = "3.8";
4080     src = fetchurl {
4081       url = "mirror://cpan/authors/id/M/ML/MLEHMANN/${pname}-${version}.tar.gz";
4082       hash = "sha256-XR9d9IzhO03uHMnyeOzb+Bd4d7C5iBWk6zyRw0ZnFvI=";
4083     };
4084     meta = {
4085       description = "Extremely light-weight Lempel-Ziv-Free compression";
4086       license = with lib.licenses; [ artistic1 gpl1Plus ];
4087     };
4088   };
4090   CompressRawBzip2 = buildPerlPackage {
4091     pname = "Compress-Raw-Bzip2";
4092     version = "2.206";
4093     src = fetchurl {
4094       url = "mirror://cpan/authors/id/P/PM/PMQS/Compress-Raw-Bzip2-2.206.tar.gz";
4095       hash = "sha256-ISuB2xwK6CLRmShhmmA70QjLXVxHAPxn3HyxaeDMZSU=";
4096     };
4098     # Don't build a private copy of bzip2.
4099     BUILD_BZIP2 = false;
4100     BZIP2_LIB = "${pkgs.bzip2.out}/lib";
4101     BZIP2_INCLUDE = "${pkgs.bzip2.dev}/include";
4103     meta = {
4104       description = "Low-Level Interface to bzip2 compression library";
4105       homepage = "https://github.com/pmqs/Compress-Raw-Bzip2";
4106       license = with lib.licenses; [ artistic1 gpl1Plus ];
4107     };
4108   };
4110   CompressRawLzma = buildPerlPackage {
4111     pname = "Compress-Raw-Lzma";
4112     version = "2.206";
4113     src = fetchurl {
4114       url = "mirror://cpan/authors/id/P/PM/PMQS/Compress-Raw-Lzma-2.206.tar.gz";
4115       hash = "sha256-4BpwQLhL3GdZLRPuwMeIWQ4faW0dTwfHCXvXKk+IbrQ=";
4116     };
4117     preConfigure = ''
4118       cat > config.in <<EOF
4119         INCLUDE      = ${pkgs.xz.dev}/include
4120         LIB          = ${pkgs.xz.out}/lib
4121       EOF
4122     '';
4123     meta = {
4124       description = "Low-Level Interface to lzma compression library";
4125       homepage = "https://github.com/pmqs/Compress-Raw-Lzma";
4126       license = with lib.licenses; [ artistic1 gpl1Plus ];
4127     };
4128   };
4130   CompressRawZlib = buildPerlPackage {
4131     pname = "Compress-Raw-Zlib";
4132     version = "2.206";
4134     src = fetchurl {
4135       url = "mirror://cpan/authors/id/P/PM/PMQS/Compress-Raw-Zlib-2.206.tar.gz";
4136       hash = "sha256-Rnhaajg6HIQ4lbf58l1ddZ58MFFZ+dHgSjYE63THc3Q=";
4137     };
4139     preConfigure = ''
4140       cat > config.in <<EOF
4141         BUILD_ZLIB   = False
4142         INCLUDE      = ${pkgs.zlib.dev}/include
4143         LIB          = ${pkgs.zlib.out}/lib
4144         OLD_ZLIB     = False
4145         GZIP_OS_CODE = AUTO_DETECT
4146         USE_ZLIB_NG  = False
4147       EOF
4148     '';
4150     doCheck = !stdenv.isDarwin;
4152     meta = {
4153       description = "Low-Level Interface to zlib or zlib-ng compression library";
4154       homepage = "https://github.com/pmqs/Compress-Raw-Zlib";
4155       license = with lib.licenses; [ artistic1 gpl1Plus ];
4156     };
4157   };
4159   CompressUnLZMA = buildPerlPackage {
4160     pname = "Compress-unLZMA";
4161     version = "0.05";
4162     src = fetchurl {
4163       url = "mirror://cpan/authors/id/F/FE/FERREIRA/Compress-unLZMA-0.05.tar.gz";
4164       hash = "sha256-TegBoo2S1ekJR0Zc60jU45/WQJOF6cIw5MBIKdllF7g=";
4165     };
4166     meta = {
4167       description = "Interface to LZMA decompression library";
4168       license = with lib.licenses; [ artistic1 gpl1Plus lgpl21Plus ];
4169     };
4170   };
4172   ConfigAny = buildPerlPackage {
4173     pname = "Config-Any";
4174     version = "0.33";
4175     src = fetchurl {
4176       url = "mirror://cpan/authors/id/H/HA/HAARG/Config-Any-0.33.tar.gz";
4177       hash = "sha256-wGaOtfLNNVvyBVfwTcGKJUdLegvPp5Vi4xZdmjx4kzM=";
4178     };
4179     propagatedBuildInputs = [ ModulePluggable ];
4180     meta = {
4181       description = "Load configuration from different file formats, transparently";
4182       license = with lib.licenses; [ artistic1 gpl1Plus ];
4183     };
4184   };
4186   ConfigAutoConf = buildPerlPackage {
4187     pname = "Config-AutoConf";
4188     version = "0.320";
4189     src = fetchurl {
4190       url = "mirror://cpan/authors/id/A/AM/AMBS/Config-AutoConf-0.320.tar.gz";
4191       hash = "sha256-u1epWO9J0/cWInba4Up71a9D/R2FEyMa811mVFlFQCM=";
4192     };
4193     propagatedBuildInputs = [ CaptureTiny ];
4194     meta = {
4195       description = "A module to implement some of AutoConf macros in pure perl";
4196       homepage = "https://metacpan.org/release/Config-AutoConf";
4197       license = with lib.licenses; [ artistic1 gpl1Plus ];
4198     };
4199   };
4201   ConfigGeneral = buildPerlPackage {
4202     pname = "Config-General";
4203     version = "2.65";
4204     src = fetchurl {
4205       url = "mirror://cpan/authors/id/T/TL/TLINDEN/Config-General-2.65.tar.gz";
4206       hash = "sha256-TW1XVL46nzCQaDbwzBDlVMiDLhTnoTQe+xWwXXBvxY8=";
4207     };
4208     meta = {
4209       description = "Generic Config Module";
4210       license = with lib.licenses; [ artistic2 ];
4211     };
4212   };
4214   ConfigGitLike = buildPerlPackage {
4215     pname = "Config-GitLike";
4216     version = "1.18";
4217     src = fetchurl {
4218       url = "mirror://cpan/authors/id/A/AL/ALEXMV/Config-GitLike-1.18.tar.gz";
4219       hash = "sha256-9650QPOtq1uf+apXIW2E/UpoEAm5WE4y2kL4u3HjMsU=";
4220     };
4221     buildInputs = [ TestException ];
4222     propagatedBuildInputs = [ Moo MooXTypesMooseLike ];
4223     meta = {
4224       description = "Git-compatible config file parsing";
4225       license = with lib.licenses; [ artistic1 gpl1Plus ];
4226     };
4227   };
4229   ConfigGrammar = buildPerlPackage {
4230     pname = "Config-Grammar";
4231     version = "1.13";
4232     src = fetchurl {
4233       url = "mirror://cpan/authors/id/D/DS/DSCHWEI/Config-Grammar-1.13.tar.gz";
4234       hash = "sha256-qLOjosnIxDuS3EAb8nCdZRTxW0Z/1PcsSNNWM1dx1uM=";
4235     };
4236     meta = {
4237       description = "A grammar-based, user-friendly config parser";
4238       homepage = "https://github.com/schweikert/Config-Grammar";
4239       license = with lib.licenses; [ artistic1 gpl1Plus ];
4240     };
4241   };
4243   ConfigINI = buildPerlPackage {
4244     pname = "Config-INI";
4245     version = "0.029";
4246     src = fetchurl {
4247       url = "mirror://cpan/authors/id/R/RJ/RJBS/Config-INI-0.029.tar.gz";
4248       hash = "sha256-C755enMCEGRKkH2QzUqisjrVgMsnvTk5O/xqfvn9/eo=";
4249     };
4250     propagatedBuildInputs = [ MixinLinewise ];
4251     meta = {
4252       description = "Simple .ini-file format";
4253       homepage = "https://github.com/rjbs/Config-INI";
4254       license = with lib.licenses; [ artistic1 gpl1Plus ];
4255     };
4256   };
4258   ConfigIdentity = buildPerlPackage {
4259     pname = "Config-Identity";
4260     version = "0.0019";
4261     src = fetchurl {
4262       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Config-Identity-0.0019.tar.gz";
4263       hash = "sha256-KVIL2zdlnmQUkbDGlmFCmhqJtqLkdcL5tOvyfkXoEqg=";
4264     };
4265     propagatedBuildInputs = [ FileHomeDir IPCRun ];
4266     buildInputs = [ TestDeep ];
4267     meta = {
4268       description = "Load (and optionally decrypt via GnuPG) user/pass identity information ";
4269       homepage = "https://github.com/dagolden/Config-Identity";
4270       license = with lib.licenses; [ artistic1 gpl1Plus ];
4271     };
4272   };
4274   ConfigIniFiles = buildPerlPackage {
4275     pname = "Config-IniFiles";
4276     version = "3.000003";
4277     src = fetchurl {
4278       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Config-IniFiles-3.000003.tar.gz";
4279       hash = "sha256-PEV7ZdmOX/QL25z4FLDVmD6wxT+4aWvaO6A1rSrNaAI=";
4280     };
4281     propagatedBuildInputs = [ IOStringy ];
4282     meta = {
4283       description = "A module for reading .ini-style configuration files";
4284       homepage = "https://metacpan.org/release/Config-IniFiles";
4285       license = with lib.licenses; [ artistic1 gpl1Plus ];
4286       maintainers = teams.deshaw.members;
4287     };
4288   };
4290   ConfigMerge = buildPerlPackage {
4291     pname = "Config-Merge";
4292     version = "1.04";
4293     src = fetchurl {
4294       url = "mirror://cpan/authors/id/D/DR/DRTECH/Config-Merge-1.04.tar.gz";
4295       hash = "sha256-qTJHe0OuX7BKFvBxqJHae9IIbBDGgFkvKIj6nZlyzM8=";
4296     };
4297     buildInputs = [ YAML ];
4298     propagatedBuildInputs = [ ConfigAny ];
4299     meta = {
4300       description = "Load a configuration directory tree containing YAML, JSON, XML, Perl, INI or Config::General files";
4301       license = with lib.licenses; [ artistic1 gpl1Plus ];
4302     };
4303   };
4305   ConfigOnion = buildPerlPackage {
4306     pname = "Config-Onion";
4307     version = "1.007";
4308     src = fetchurl {
4309       url = "mirror://cpan/authors/id/D/DS/DSHEROH/Config-Onion-1.007.tar.gz";
4310       hash = "sha256-Mn/d9o4TiyRp5aK643xzP4fKhMr2Hhz6qUm+PZUNqK8=";
4311     };
4312     propagatedBuildInputs = [ ConfigAny HashMergeSimple Moo ];
4313     buildInputs = [ TestException YAML ];
4314     meta = {
4315       description = "Layered configuration, because configs are like ogres";
4316       license = with lib.licenses; [ artistic1 gpl1Plus ];
4317     };
4318   };
4320   ConfigMVP = buildPerlPackage {
4321     pname = "Config-MVP";
4322     version = "2.200013";
4323     src = fetchurl {
4324       url = "mirror://cpan/authors/id/R/RJ/RJBS/Config-MVP-2.200013.tar.gz";
4325       hash = "sha256-AY0WFiPuOmf4YNnmgOIuYbeermAY8OfDtSX8k09bfUU=";
4326     };
4327     buildInputs = [ TestFatal ];
4328     propagatedBuildInputs = [ ModulePluggable MooseXOneArgNew RoleHasMessage RoleIdentifiable Throwable TieIxHash ];
4329     meta = {
4330       description = "Multivalue-property package-oriented configuration";
4331       homepage = "https://github.com/rjbs/Config-MVP";
4332       license = with lib.licenses; [ artistic1 gpl1Plus ];
4333     };
4334   };
4336   ConfigMVPReaderINI = buildPerlPackage {
4337     pname = "Config-MVP-Reader-INI";
4338     version = "2.101465";
4339     src = fetchurl {
4340       url = "mirror://cpan/authors/id/R/RJ/RJBS/Config-MVP-Reader-INI-2.101465.tar.gz";
4341       hash = "sha256-E8eqJ8HfmM0zraOZ5Z/zj6v6nWVRPkKvAvcsLT9jYkc=";
4342     };
4343     propagatedBuildInputs = [ ConfigINI ConfigMVP ];
4344     meta = {
4345       description = "An MVP config reader for .ini files";
4346       homepage = "https://github.com/rjbs/Config-MVP-Reader-INI";
4347       license = with lib.licenses; [ artistic1 gpl1Plus ];
4348     };
4349   };
4351   ConfigProperties = buildPerlPackage {
4352     pname = "Config-Properties";
4353     version = "1.80";
4354     src = fetchurl {
4355       url = "mirror://cpan/authors/id/S/SA/SALVA/Config-Properties-1.80.tar.gz";
4356       hash = "sha256-XQQ5W+fhTpcKA+qVL7dimuME2XwDH5DMHCm9Cmpi/EA=";
4357     };
4358     meta = {
4359       description = "Read and write property files";
4360       license = with lib.licenses; [ artistic1 gpl1Plus ];
4361     };
4362   };
4364   ConfigSimple = buildPerlPackage {
4365     pname = "Config-Simple";
4366     version = "4.58";
4367     src = fetchurl {
4368       url = "mirror://cpan/authors/id/S/SH/SHERZODR/Config-Simple-4.58.tar.gz";
4369       hash = "sha256-3ZmVcG8Pk4ShXM/+EWw7biL0K6LljY8k7QPEoOOG7bQ=";
4370     };
4371     meta = {
4372       description = "Simple configuration file class";
4373       license = with lib.licenses; [ artistic1 gpl1Plus ];
4374     };
4375   };
4377   ConfigStd = buildPerlModule {
4378     pname = "Config-Std";
4379     version = "0.903";
4380     src = fetchurl {
4381       url = "mirror://cpan/authors/id/B/BR/BRICKER/Config-Std-0.903.tar.gz";
4382       hash = "sha256-t3Cf9mO9J50mSrnC9R6elYhHmjNnqMTPwYZZwqEUgP4=";
4383     };
4384     propagatedBuildInputs = [ ClassStd ];
4385     meta = {
4386       description = "Load and save configuration files in a standard format";
4387       license = with lib.licenses; [ artistic1 gpl1Plus ];
4388     };
4389   };
4391   ConfigTiny = buildPerlPackage {
4392     pname = "Config-Tiny";
4393     version = "2.29";
4394     src = fetchurl {
4395       url = "mirror://cpan/authors/id/R/RS/RSAVAGE/Config-Tiny-2.29.tgz";
4396       hash = "sha256-PeebDqA6jWqT6dkSj+hF+1ViIrFGmaT28NXKBXrjMzs=";
4397     };
4398     buildInputs = [ TestPod ];
4399     meta = {
4400       description = "Read/Write .ini style files with as little code as possible";
4401       license = with lib.licenses; [ artistic1 gpl1Plus ];
4402     };
4403   };
4405   ConfigVersioned = buildPerlPackage {
4406     pname = "Config-Versioned";
4407     version = "1.01";
4408     src = fetchurl {
4409       url = "mirror://cpan/authors/id/M/MR/MRSCOTTY/Config-Versioned-1.01.tar.gz";
4410       hash = "sha256-vJpK43OL2J+GoHvKZzYnyjySupaXN81tvHq3rRfNI0g=";
4411     };
4412     propagatedBuildInputs = [ ConfigStd GitPurePerl ];
4413     doCheck = false;
4414     meta = {
4415       description = "Simple, versioned access to configuration data";
4416       license = with lib.licenses; [ artistic1 gpl1Plus ];
4417       mainProgram = "cfgver";
4418     };
4419   };
4421   Connector = buildPerlModule {
4422     pname = "Connector";
4423     version = "1.53";
4424     src = fetchurl {
4425       url = "mirror://cpan/authors/id/M/MR/MRSCOTTY/Connector-1.53.tar.gz";
4426       hash = "sha256-1D50VEcZ/7lKDgZFhqetRXVbKTZPGJHZ4ncEFqsSTPo=";
4427     };
4428     buildInputs = [ ModuleBuildTiny ConfigMerge ConfigStd ConfigVersioned DBDSQLite DBI IOSocketSSL JSON LWP LWPProtocolHttps ProcSafeExec TemplateToolkit YAML ];
4429     propagatedBuildInputs = [ LogLog4perl Moose ];
4430     prePatch = ''
4431       # Attempts to use network.
4432       rm t/01-proxy-http.t
4433       rm t/01-proxy-proc-safeexec.t
4435       # crypt() tests that use DES
4436       rm t/01-builtin-password.t
4437       rm t/01-builtin-password-scheme.t
4438     '';
4439     meta = {
4440       description = "A generic connection to a hierarchical-structured data set";
4441       homepage = "https://github.com/whiterabbitsecurity/connector";
4442       license = with lib.licenses; [ artistic1 gpl1Plus ];
4443     };
4444   };
4446   ConstFast = buildPerlModule {
4447     pname = "Const-Fast";
4448     version = "0.014";
4449     src = fetchurl {
4450       url = "mirror://cpan/authors/id/L/LE/LEONT/Const-Fast-0.014.tar.gz";
4451       hash = "sha256-+AWVOgjFeEahak2F17dmOYr698NsFGX8sd6gnl+jlNs=";
4452     };
4453     propagatedBuildInputs = [ SubExporterProgressive ];
4454     buildInputs = [ ModuleBuildTiny TestFatal ];
4455     meta = {
4456       description = "Facility for creating read-only scalars, arrays, and hashes";
4457       license = with lib.licenses; [ artistic1 gpl1Plus ];
4458     };
4459   };
4461   ConvertASCIIArmour = buildPerlPackage {
4462     pname = "Convert-ASCII-Armour";
4463     version = "1.4";
4464     src = fetchurl {
4465       url = "mirror://cpan/authors/id/V/VI/VIPUL/Convert-ASCII-Armour-1.4.tar.gz";
4466       hash = "sha256-l+istusqKpGvfWzw0t/2+kKq+Tn8fW0cYFek8N9SyQQ=";
4467     };
4468     meta = {
4469       description = "Convert binary octets into ASCII armoured messages";
4470       license = with lib.licenses; [ artistic1 gpl1Plus ];
4471       maintainers = [ maintainers.sgo ];
4472     };
4473   };
4475   ConvertASN1 = buildPerlPackage {
4476     pname = "Convert-ASN1";
4477     version = "0.34";
4478     src = fetchurl {
4479       url = "mirror://cpan/authors/id/T/TI/TIMLEGGE/Convert-ASN1-0.34.tar.gz";
4480       hash = "sha256-pijXydOQVo+3Y1mXX6A/YmzlfxDcF5gOjjWH13E+Tuc=";
4481     };
4482     meta = {
4483       description = "ASN.1 Encode/Decode library";
4484       license = with lib.licenses; [ artistic1 gpl1Plus ];
4485     };
4486   };
4488   ConvertBase32 = buildPerlPackage {
4489     pname = "Convert-Base32";
4490     version = "0.06";
4491     src = fetchurl {
4492       url = "mirror://cpan/authors/id/I/IK/IKEGAMI/Convert-Base32-0.06.tar.gz";
4493       hash = "sha256-S6gsFnxB9FWqgoRzhyfkyUouvLHEznl/b9oHJFpkIRU=";
4494     };
4495     buildInputs = [ TestException ];
4496     meta = {
4497       description = "Encoding and decoding of base32 strings";
4498       license = with lib.licenses; [ artistic1 gpl1Plus ];
4499       maintainers = [ maintainers.sgo ];
4500     };
4501   };
4503   ConvertBencode = buildPerlPackage rec {
4504     pname = "Convert-Bencode";
4505     version = "1.03";
4506     src = fetchurl {
4507       url = "mirror://cpan/authors/id/O/OR/ORCLEV/Convert-Bencode-1.03.tar.gz";
4508       hash = "sha256-Jp89+GVpJZbeIU/kK5Lc+H1qa8It237Sq8f0i4LkXmw=";
4509     };
4510     meta = {
4511       description = "Functions for converting to/from bencoded strings";
4512       license = with lib.licenses; [ artistic1 gpl1Plus ];
4513     };
4514   };
4516   ConvertColor = buildPerlModule {
4517     pname = "Convert-Color";
4518     version = "0.17";
4519     src = fetchurl {
4520       url = "mirror://cpan/authors/id/P/PE/PEVANS/Convert-Color-0.17.tar.gz";
4521       hash = "sha256-5/jDN8VSXqoDd3xXaD6hGvm5j/HQURojSvH4CkMiTsc=";
4522     };
4523     buildInputs = [ Test2Suite ];
4524     propagatedBuildInputs = [ ListUtilsBy ModulePluggable ];
4525     meta = {
4526       description = "Color space conversions and named lookups";
4527       license = with lib.licenses; [ artistic1 gpl1Plus ];
4528     };
4529   };
4531   ConvertUU = buildPerlPackage rec {
4532     pname = "Convert-UU";
4533     version = "0.5201";
4534     src = fetchurl {
4535       url = "mirror://cpan/authors/id/A/AN/ANDK/Convert-UU-0.5201.tar.gz";
4536       hash = "sha256-kjKc4cMrWVLEjhIj2wGMjFjOr+8Dv6D9SBfNicNVo70=";
4537     };
4538     meta = {
4539       description = "Perl module for uuencode and uudecode";
4540       license = with lib.licenses; [ artistic1 gpl1Plus ];
4541     };
4542   };
4544   constantboolean = buildPerlModule {
4545     pname = "constant-boolean";
4546     version = "0.02";
4547     src = fetchurl {
4548       url = "mirror://cpan/authors/id/D/DE/DEXTER/constant-boolean-0.02.tar.gz";
4549       hash = "sha256-zSxZ1YBhzhpJdaMTFg33GG9i7qJlW4XVIOXiTp7rD+k=";
4550     };
4551     propagatedBuildInputs = [ SymbolUtil ];
4552     meta = {
4553       description = "Define TRUE and FALSE constants";
4554       license = with lib.licenses; [ artistic1 gpl1Plus ];
4555     };
4556   };
4558   curry = buildPerlPackage {
4559     pname = "curry";
4560     version = "2.000001";
4561     src = fetchurl {
4562       url = "mirror://cpan/authors/id/M/MS/MSTROUT/curry-2.000001.tar.gz";
4563       hash = "sha256-yY/iBQ+t7KOYGdboDVROkSGE/oRsvnNTnGhpT7G1HAg=";
4564     };
4565     meta = {
4566       description = "Create automatic curried method call closures for any class or object";
4567       license = with lib.licenses; [ artistic1 gpl1Plus ];
4568     };
4569   };
4571   constant-defer = buildPerlPackage {
4572     pname = "constant-defer";
4573     version = "6";
4574     src = fetchurl {
4575       url = "mirror://cpan/authors/id/K/KR/KRYDE/constant-defer-6.tar.gz";
4576       hash = "sha256-eyEmMZjKImhu//OumHokC+Qj3SFgr96yn+cW0DKYb/o=";
4577     };
4578     meta = {
4579       description = "Constant subs with deferred value calculation";
4580       license = with lib.licenses; [ gpl3Plus ];
4581     };
4582   };
4584   ContextPreserve = buildPerlPackage {
4585     pname = "Context-Preserve";
4586     version = "0.03";
4587     src = fetchurl {
4588       url = "mirror://cpan/authors/id/E/ET/ETHER/Context-Preserve-0.03.tar.gz";
4589       hash = "sha256-CZFKTCx725nKtoDBg8v0kuyY1uI/vMSH/MSuEFZ9/R8=";
4590     };
4591     buildInputs = [ TestException TestSimple13 ];
4592     meta = {
4593       description = "Run code after a subroutine call, preserving the context the subroutine would have seen if it were the last statement in the caller";
4594       license = with lib.licenses; [ artistic1 gpl1Plus ];
4595     };
4596   };
4598   CookieBaker = buildPerlModule {
4599     pname = "Cookie-Baker";
4600     version = "0.11";
4601     src = fetchurl {
4602       url = "mirror://cpan/authors/id/K/KA/KAZEBURO/Cookie-Baker-0.11.tar.gz";
4603       hash = "sha256-WSdfR04HwKo2EePmhLiU59uRMzPYIUQgvmPxLsGM16s=";
4604     };
4605     buildInputs = [ ModuleBuildTiny TestTime ];
4606     propagatedBuildInputs = [ URI ];
4607     meta = {
4608       description = "Cookie string generator / parser";
4609       homepage = "https://github.com/kazeburo/Cookie-Baker";
4610       license = with lib.licenses; [ artistic1 gpl1Plus ];
4611     };
4612   };
4614   CookieXS = buildPerlPackage {
4615     pname = "Cookie-XS";
4616     version = "0.11";
4617     src = fetchurl {
4618       url = "mirror://cpan/authors/id/A/AG/AGENT/Cookie-XS-0.11.tar.gz";
4619       hash = "sha256-o7lxB4CiJC5w750G5R+Rt/PqCq5o9Tx25CxYLCzLJpg=";
4620     };
4621     propagatedBuildInputs = [ CGICookieXS ];
4622     meta = {
4623       description = "HTTP Cookie parser in C (Please use CGI::Cookie::XS instead)";
4624       license = with lib.licenses; [ artistic1 gpl1Plus ];
4625     };
4626   };
4628   Coro = buildPerlPackage {
4629     pname = "Coro";
4630     version = "6.57";
4631     src = fetchurl {
4632       url = "mirror://cpan/authors/id/M/ML/MLEHMANN/Coro-6.57.tar.gz";
4633       hash = "sha256-GSjkgDNUDhHr9VBpht0QGveNJCHSEPllmSI7FdUXFMY=";
4634     };
4635     propagatedBuildInputs = [ AnyEvent Guard commonsense ];
4636     buildInputs = [ CanaryStability ];
4637     meta = {
4638       description = "The only real threads in perl";
4639       license = with lib.licenses; [ artistic1 gpl1Plus ];
4640     };
4641   };
4643   CoroEV = buildPerlPackage rec {
4644     pname = "CoroEV";
4645     version = "6.55";
4646     src = fetchurl {
4647       url = "mirror://cpan/authors/id/M/ML/MLEHMANN/Coro-${version}.tar.gz";
4648       hash = "sha256-Q9ecAnFw/NpMoO6Sc0YFvJXhImhvUHG5TZB2TIGuijA=";
4649     };
4650     buildInputs = [ CanaryStability ];
4651     propagatedBuildInputs = [ AnyEvent Coro EV Guard commonsense ];
4652     preConfigure = ''
4653       cd EV
4654     '';
4655     meta = {
4656       description = "Do events the coro-way, with EV";
4657       license = with lib.licenses; [ artistic1 gpl1Plus ];
4658     };
4659   };
4661   Corona = buildPerlPackage {
4662     pname = "Corona";
4663     version = "0.1004";
4664     src = fetchurl {
4665       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Corona-0.1004.tar.gz";
4666       hash = "sha256-//XRnoPeem0mWfNGgpgmsWUrtmZlS4eDsRmlNFS9rzw=";
4667     };
4668     propagatedBuildInputs = [ NetServerCoro Plack ];
4669     buildInputs = [ TestSharedFork TestTCP ];
4670     meta = {
4671       description = "Coro based PSGI web server";
4672       license = with lib.licenses; [ artistic1 gpl1Plus ];
4673       mainProgram = "corona";
4674     };
4675   };
4677   CPAN = buildPerlPackage {
4678     pname = "CPAN";
4679     version = "2.36";
4680     src = fetchurl {
4681       url = "mirror://cpan/authors/id/A/AN/ANDK/CPAN-2.36.tar.gz";
4682       hash = "sha256-HXKl60DliOPBDx88hckC6HGxaDdH1ncjOvd3yCv8kJ4=";
4683     };
4684     propagatedBuildInputs = [ ArchiveZip CPANChecksums CPANPerlReleases CompressBzip2 Expect FileHomeDir FileWhich LWP LogLog4perl ModuleSignature TermReadKey TextGlob YAML YAMLLibYAML YAMLSyck IOSocketSSL ];
4685     meta = {
4686       description = "Query, download and build perl modules from CPAN sites";
4687       license = with lib.licenses; [ artistic1 gpl1Plus ];
4688       mainProgram = "cpan";
4689     };
4690   };
4692   CPANAudit = buildPerlPackage {
4693     pname = "CPAN-Audit";
4694     version = "20230826.001";
4695     src = fetchurl {
4696       url = "mirror://cpan/authors/id/B/BD/BDFOY/CPAN-Audit-20230826.001.tar.gz";
4697       hash = "sha256-DXU7O9fdpXweIKycWScKcKTNkfttfN4mJEPoVUy2Geo=";
4698     };
4699     buildInputs = [ CaptureTiny YAMLTiny ];
4700     propagatedBuildInputs = [ CPANDistnameInfo IOInteractive JSON ModuleCPANfile ModuleExtractVERSION PerlIOgzip Mojolicious ];
4701     meta = {
4702       homepage = "https://github.com/briandfoy/cpan-audit";
4703       description = "Audit CPAN distributions for known vulnerabilities";
4704       license = with lib.licenses; [ artistic1 gpl1Plus ];
4705     };
4706   };
4708   CPANMini = buildPerlPackage {
4709     pname = "CPAN-Mini";
4710     version = "1.111017";
4711     src = fetchurl {
4712       url = "mirror://cpan/authors/id/R/RJ/RJBS/CPAN-Mini-1.111017.tar.gz";
4713       hash = "sha256-8gQpO+JqyEGsyHBEoYjbD1kegIgTFseiiK7A7s4wYVU=";
4714     };
4715     nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang;
4716     propagatedBuildInputs = [ FileHomeDir LWPProtocolHttps ];
4717     postInstall = lib.optionalString stdenv.isDarwin ''
4718       shortenPerlShebang $out/bin/minicpan
4719     '';
4721     meta = {
4722       description = "Create a minimal mirror of CPAN";
4723       homepage = "https://github.com/rjbs/CPAN-Mini";
4724       license = with lib.licenses; [ artistic1 gpl1Plus ];
4725       maintainers = [ maintainers.sgo ];
4726       mainProgram = "minicpan";
4727     };
4728   };
4730   CpanelJSONXS = buildPerlPackage {
4731     pname = "Cpanel-JSON-XS";
4732     version = "4.37";
4733     src = fetchurl {
4734       url = "mirror://cpan/authors/id/R/RU/RURBAN/Cpanel-JSON-XS-4.37.tar.gz";
4735       hash = "sha256-wkFhWg4X/3Raqoa79Gam4pzSQFFeZfBqegUBe2GebUs=";
4736     };
4737     meta = {
4738       description = "CPanel fork of JSON::XS, fast and correct serializing";
4739       license = with lib.licenses; [ artistic1 gpl1Plus ];
4740       mainProgram = "cpanel_json_xs";
4741     };
4742   };
4744   CPAN02PackagesSearch = buildPerlModule {
4745     pname = "CPAN-02Packages-Search";
4746     version = "0.100";
4747     src = fetchurl {
4748       url = "mirror://cpan/authors/id/S/SK/SKAJI/CPAN-02Packages-Search-0.100.tar.gz";
4749       hash = "sha256-prabrHmiUwA0RrKD76bzrv+mCdDBxStCCYeCEtpw+as=";
4750     };
4751     buildInputs = [ ModuleBuildTiny ];
4752     propagatedBuildInputs = [ TieHandleOffset ];
4753     meta = {
4754       description = "Search packages in 02packages.details.txt";
4755       homepage = "https://github.com/skaji/CPAN-02Packages-Search";
4756       license = with lib.licenses; [ artistic1 gpl1Plus ];
4757       maintainers = [ maintainers.zakame ];
4758     };
4759   };
4761   CPANChanges = buildPerlPackage {
4762     pname = "CPAN-Changes";
4763     version = "0.400002";
4764     src = fetchurl {
4765       url = "mirror://cpan/authors/id/H/HA/HAARG/CPAN-Changes-0.400002.tar.gz";
4766       hash = "sha256-Ae7eqQ0HRoy1jkpQv6O7HU7tqQc1lq3REY/DWRU6vo0=";
4767     };
4768     meta = {
4769       description = "Read and write Changes files";
4770       license = with lib.licenses; [ artistic1 gpl1Plus ];
4771       mainProgram = "tidy_changelog";
4772     };
4773   };
4775   CPANChecksums = buildPerlPackage {
4776     pname = "CPAN-Checksums";
4777     version = "2.14";
4778     src = fetchurl {
4779       url = "mirror://cpan/authors/id/A/AN/ANDK/CPAN-Checksums-2.14.tar.gz";
4780       hash = "sha256-QIBxbF2n4DtQTjzA6h/V757WkV9vtzdWTp4T01Wonjk=";
4781     };
4782     propagatedBuildInputs = [ CompressBzip2 DataCompare ModuleSignature ];
4783     meta = {
4784       description = "Write a CHECKSUMS file for a directory as on CPAN";
4785       license = with lib.licenses; [ artistic1 gpl1Plus ];
4786     };
4787   };
4789   CPANCommonIndex = buildPerlPackage {
4790     pname = "CPAN-Common-Index";
4791     version = "0.010";
4792     src = fetchurl {
4793       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/CPAN-Common-Index-0.010.tar.gz";
4794       hash = "sha256-xD3bsi/UKwYRj+Y1f1NwD7139TG6PEJ/qvvzA8v06vA=";
4795     };
4796     buildInputs = [ TestDeep TestFailWarnings TestFatal ];
4797     propagatedBuildInputs = [ CPANDistnameInfo ClassTiny TieHandleOffset URI ];
4798     meta = {
4799       description = "Common library for searching CPAN modules, authors and distributions";
4800       homepage = "https://github.com/Perl-Toolchain-Gang/CPAN-Common-Index";
4801       license = with lib.licenses; [ asl20 ];
4802     };
4803   };
4805   CPANDistnameInfo = buildPerlPackage {
4806     pname = "CPAN-DistnameInfo";
4807     version = "0.12";
4808     src = fetchurl {
4809       url = "mirror://cpan/authors/id/G/GB/GBARR/CPAN-DistnameInfo-0.12.tar.gz";
4810       hash = "sha256-LyT76ffurLwmnTX8YWGDIvwXvkme4M2QGPNwk0qfJDU=";
4811     };
4812     meta = {
4813       description = "Extract distribution name and version from a distribution filename";
4814       license = with lib.licenses; [ artistic1 gpl1Plus ];
4815     };
4816   };
4818   CPANMetaCheck = buildPerlPackage {
4819     pname = "CPAN-Meta-Check";
4820     version = "0.018";
4821     src = fetchurl {
4822       url = "mirror://cpan/authors/id/L/LE/LEONT/CPAN-Meta-Check-0.018.tar.gz";
4823       hash = "sha256-9hnS316g/ZHIz4PrVKzMteQ9nm7Bo/cns9CsFdDPN4o=";
4824     };
4825     buildInputs = [ TestDeep ];
4826     meta = {
4827       description = "Verify requirements in a CPAN::Meta object";
4828       license = with lib.licenses; [ artistic1 gpl1Plus ];
4829     };
4830   };
4832   CPANPerlReleases = buildPerlPackage {
4833     pname = "CPAN-Perl-Releases";
4834     version = "5.20230920";
4835     src = fetchurl {
4836       url = "mirror://cpan/authors/id/B/BI/BINGOS/CPAN-Perl-Releases-5.20230920.tar.gz";
4837       hash = "sha256-MbyTiJR2uOx1iRjdmSSmKYPgh7BsjN6Sb7mnp+h60cA=";
4838     };
4839     meta = {
4840       description = "Mapping Perl releases on CPAN to the location of the tarballs";
4841       homepage = "https://github.com/bingos/cpan-perl-releases";
4842       license = with lib.licenses; [ artistic1 gpl1Plus ];
4843     };
4844   };
4846   CPANPLUS = buildPerlPackage {
4847     pname = "CPANPLUS";
4848     version = "0.9914";
4849     src = fetchurl {
4850       url = "mirror://cpan/authors/id/B/BI/BINGOS/CPANPLUS-0.9914.tar.gz";
4851       hash = "sha256-dsPl2mI6SvYP5krexEj7H44Mrp9nmKNraIZZdAROm2c=";
4852     };
4853     propagatedBuildInputs = [ ArchiveExtract ModulePluggable ObjectAccessor PackageConstants TermUI ];
4854     meta = {
4855       description = "Ameliorated interface to the CPAN";
4856       homepage = "https://github.com/jib/cpanplus-devel";
4857       license = with lib.licenses; [ artistic1 gpl1Plus ];
4858       mainProgram = "cpanp";
4859     };
4860   };
4862   CPANUploader = buildPerlPackage {
4863     pname = "CPAN-Uploader";
4864     version = "0.103018";
4865     src = fetchurl {
4866       url = "mirror://cpan/authors/id/R/RJ/RJBS/CPAN-Uploader-0.103018.tar.gz";
4867       hash = "sha256-xP/k7enbebOW47/F583w4umCHh8eCH9SO8+nTJ/J4kg=";
4868     };
4869     propagatedBuildInputs = [ FileHomeDir GetoptLongDescriptive LWPProtocolHttps TermReadKey ];
4870     meta = {
4871       description = "Upload things to the CPAN";
4872       homepage = "https://github.com/rjbs/CPAN-Uploader";
4873       license = with lib.licenses; [ artistic1 gpl1Plus ];
4874       mainProgram = "cpan-upload";
4875     };
4876   };
4878   CryptArgon2 = buildPerlModule {
4879     pname = "Crypt-Argon2";
4880     version = "0.019";
4881     src = fetchurl {
4882       url = "mirror://cpan/authors/id/L/LE/LEONT/Crypt-Argon2-0.019.tar.gz";
4883       hash = "sha256-+Fm+6NL2tAf11EZFwiOu4hL+AFkd/YLlBlrhvnio5Dg=";
4884     };
4885     nativeBuildInputs = [ pkgs.ld-is-cc-hook ];
4886     meta = {
4887       description = "Perl interface to the Argon2 key derivation functions";
4888       license = with lib.licenses; [ cc0 ];
4889     };
4890   };
4892   CryptBcrypt = buildPerlPackage {
4893     pname = "Crypt-Bcrypt";
4894     version = "0.011";
4895     src = fetchurl {
4896       url = "mirror://cpan/authors/id/L/LE/LEONT/Crypt-Bcrypt-0.011.tar.gz";
4897       hash = "sha256-Z/ymiwUm5zTi2VvGsyutAcMZ5Yer9j5M80Itpmu+o6A=";
4898     };
4899     meta = {
4900       description = "modern bcrypt implementation";
4901       license = with lib.licenses; [ artistic1 gpl1Plus ];
4902     };
4903   };
4905   CryptBlowfish = buildPerlPackage {
4906     pname = "Crypt-Blowfish";
4907     version = "2.14";
4908     src = fetchurl {
4909       url = "mirror://cpan/authors/id/D/DP/DPARIS/Crypt-Blowfish-2.14.tar.gz";
4910       hash = "sha256-RrNDH/tr9bnLNZ95Vl1IQH5lKtKwT99cpipp5xl6Z7E=";
4911     };
4912     meta = {
4913       description = "Perl Blowfish encryption module";
4914       license = with lib.licenses; [ bsdOriginalShortened ];
4915     };
4916   };
4918   CryptCAST5_PP = buildPerlPackage {
4919     pname = "Crypt-CAST5_PP";
4920     version = "1.04";
4921     src = fetchurl {
4922       url = "mirror://cpan/authors/id/B/BO/BOBMATH/Crypt-CAST5_PP-1.04.tar.gz";
4923       hash = "sha256-y6mKgEA/uJihTJKPI39EgWtISGQYQM4lFzY8LAcbUyc=";
4924     };
4925     meta = {
4926       description = "CAST5 block cipher in pure Perl";
4927       license = with lib.licenses; [ artistic1 gpl1Plus ];
4928       maintainers = [ maintainers.sgo ];
4929     };
4930   };
4932   CryptCBC = buildPerlPackage {
4933     pname = "Crypt-CBC";
4934     version = "2.33";
4935     src = fetchurl {
4936       url = "mirror://cpan/authors/id/L/LD/LDS/Crypt-CBC-2.33.tar.gz";
4937       hash = "sha256-anDeIbbMfysQAGfo4Yjblm6agAG122+pdufLWylK5kU=";
4938     };
4939     meta = {
4940       description = "Encrypt Data with Cipher Block Chaining Mode";
4941       license = with lib.licenses; [ artistic1 gpl1Plus ];
4942     };
4943   };
4945   CryptCurve25519 = buildPerlPackage {
4946     pname = "Crypt-Curve25519";
4947     version = "0.07";
4948     src = fetchurl {
4949       url = "mirror://cpan/authors/id/K/KA/KARASIK/Crypt-Curve25519-0.07.tar.gz";
4950       hash = "sha256-Z6mIcTclIdb34R/dYnyq21wdVAFCag6c9CFnpDxbSx0=";
4951     };
4952     meta = {
4953       description = "Generate shared secret using elliptic-curve Diffie-Hellman function";
4954       homepage = "https://metacpan.org/release/Crypt-Curve25519";
4955       license = with lib.licenses; [ artistic1 gpl1Plus ];
4956     };
4957   };
4959   CryptDES = buildPerlPackage {
4960     pname = "Crypt-DES";
4961     version = "2.07";
4962     src = fetchurl {
4963       url = "mirror://cpan/authors/id/D/DP/DPARIS/Crypt-DES-2.07.tar.gz";
4964       hash = "sha256-LbHrtYN7TLIAUcDuW3M7RFPjE33wqSMGA0yGdiHt1+c=";
4965     };
4966     meta = {
4967       description = "Perl DES encryption module";
4968       license = with lib.licenses; [ bsdOriginalShortened ];
4969     };
4970   };
4972   CryptDES_EDE3 = buildPerlPackage {
4973     pname = "Crypt-DES_EDE3";
4974     version = "0.01";
4975     src = fetchurl {
4976       url = "mirror://cpan/authors/id/B/BT/BTROTT/Crypt-DES_EDE3-0.01.tar.gz";
4977       hash = "sha256-nLLgS2JenMCDPNSZ92/RJVZYPs7KeCqXWKVeP5aXSNY=";
4978     };
4979     propagatedBuildInputs = [ CryptDES ];
4980     meta = {
4981       description = "Triple-DES EDE encryption/decryption";
4982       license = with lib.licenses; [ artistic1 gpl1Plus ];
4983       maintainers = [ maintainers.sgo ];
4984     };
4985   };
4987   CryptDH = buildPerlPackage {
4988     pname = "Crypt-DH";
4989     version = "0.07";
4990     src = fetchurl {
4991       url = "mirror://cpan/authors/id/M/MI/MITHALDU/Crypt-DH-0.07.tar.gz";
4992       hash = "sha256-yIzzQjsB5nguiYbX/lMEQ2q4SwklxEmMb9+hfvmjf18=";
4993     };
4994     propagatedBuildInputs = [ MathBigIntGMP ];
4995     meta = {
4996       description = "Diffie-Hellman key exchange system";
4997       license = with lib.licenses; [ artistic1 gpl1Plus ];
4998     };
4999   };
5001   CryptDHGMP = buildPerlPackage {
5002     pname = "Crypt-DH-GMP";
5003     version = "0.00012";
5004     src = fetchurl {
5005       url = "mirror://cpan/authors/id/D/DM/DMAKI/Crypt-DH-GMP-0.00012.tar.gz";
5006       hash = "sha256-UeekeuWUz1X2bAdi9mkhVIbn2LNGC9rf55NQzPJtrzg=";
5007     };
5008     buildInputs = [ pkgs.gmp DevelChecklib TestRequires ];
5009     env.NIX_CFLAGS_COMPILE = "-I${pkgs.gmp.dev}/include";
5010     NIX_CFLAGS_LINK = "-L${pkgs.gmp.out}/lib -lgmp";
5011     meta = {
5012       description = "Crypt::DH Using GMP Directly";
5013       license = with lib.licenses; [ artistic1 gpl1Plus ];
5014     };
5015   };
5017   CryptDSA = buildPerlPackage {
5018     pname = "Crypt-DSA";
5019     version = "1.17";
5020     src = fetchurl {
5021       url = "mirror://cpan/authors/id/A/AD/ADAMK/Crypt-DSA-1.17.tar.gz";
5022       hash = "sha256-0bhYX2v3RvduXcXaNkHTJe1la8Ll80S1RRS1XDEAmgM=";
5023     };
5024     propagatedBuildInputs = [ DataBuffer DigestSHA1 FileWhich ];
5025     meta = {
5026       description = "DSA Signatures and Key Generation";
5027       license = with lib.licenses; [ artistic1 gpl1Plus ];
5028       maintainers = [ maintainers.sgo ];
5029     };
5030   };
5032   CryptECB = buildPerlPackage {
5033     pname = "Crypt-ECB";
5034     version = "2.22";
5035     src = fetchurl {
5036       url = "mirror://cpan/authors/id/A/AP/APPEL/Crypt-ECB-2.22.tar.gz";
5037       hash = "sha256-9a9i6QjNMaNLK4ExNaBxgBb9AD/6ACH/vdhMUBWCZ6o=";
5038     };
5039     meta = {
5040       description = "Use block ciphers using ECB mode";
5041       license = with lib.licenses; [ artistic1 gpl1Plus ];
5042     };
5043   };
5045   CryptEksblowfish = buildPerlModule {
5046     pname = "Crypt-Eksblowfish";
5047     version = "0.009";
5048     src = fetchurl {
5049       url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Crypt-Eksblowfish-0.009.tar.gz";
5050       hash = "sha256-PMcSbVhBEHI3qb4txcf7wWfPPEtM40Z4qESLhQdXAUw=";
5051     };
5052     propagatedBuildInputs = [ ClassMix ];
5053     perlPreHook = lib.optionalString (stdenv.isi686 || stdenv.isDarwin) "export LD=$CC";
5054     meta = {
5055       description = "The Eksblowfish block cipher";
5056       license = with lib.licenses; [ artistic1 gpl1Plus ];
5057     };
5058   };
5060   CryptFormat = buildPerlPackage {
5061     pname = "Crypt-Format";
5062     version = "0.12";
5063     src = fetchurl {
5064       url = "mirror://cpan/authors/id/F/FE/FELIPE/Crypt-Format-0.12.tar.gz";
5065       hash = "sha256-p1cdS+9XeOGln0O2XPLVaAtJ+nu78z89IfRSL0Pmp9o=";
5066     };
5067     buildInputs = [ TestException TestFailWarnings ];
5068     meta = {
5069       description = "Conversion utilities for encryption applications";
5070       license = with lib.licenses; [ artistic1 gpl1Plus ];
5071       maintainers = [ maintainers.sgo ];
5072     };
5073   };
5075   CryptHSXKPasswd = buildPerlPackage {
5076     pname = "Crypt-HSXKPasswd";
5077     version = "3.6";
5078     src = fetchurl {
5079       url = "mirror://cpan/authors/id/B/BA/BARTB/Crypt-HSXKPasswd-v3.6.tar.gz";
5080       hash = "sha256-lZ3MX58BG/ALha0i31ZrerK/XqHTYrDeD7WuKfvEWLM=";
5081     };
5082     nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang;
5083     propagatedBuildInputs = [ Clone DateTime FileHomeDir FileShare FileShareDir GetoptLong JSON ListMoreUtils MathRound Readonly TextUnidecode TypeTiny ];
5084     postInstall = lib.optionalString stdenv.isDarwin ''
5085       shortenPerlShebang $out/bin/hsxkpasswd
5086     '';
5088     meta = {
5089       description = "A secure memorable password generator";
5090       homepage = "http://www.bartb.ie/hsxkpasswd";
5091       license = with lib.licenses; [ bsd2 ];
5092       maintainers = [ maintainers.dannixon ];
5093       mainProgram = "hsxkpasswd";
5094     };
5095     # Two tests fail as a result of https://github.com/bbusschots/hsxkpasswd/issues/42
5096     # (also see https://github.com/bbusschots/hsxkpasswd/issues/43)
5097     doCheck = false;
5098   };
5100   CryptIDEA = buildPerlPackage {
5101     pname = "Crypt-IDEA";
5102     version = "1.10";
5103     src = fetchurl {
5104       url = "mirror://cpan/authors/id/D/DP/DPARIS/Crypt-IDEA-1.10.tar.gz";
5105       hash = "sha256-M714wRkkoPwf8+7d6UB4y79rbKnt4EbSsvVh6emnIBk=";
5106     };
5107     meta = {
5108       description = "Perl interface to IDEA block cipher";
5109       license = with lib.licenses; [ bsdOriginalShortened ];
5110     };
5111   };
5113   CryptJWT = buildPerlPackage {
5114     pname = "Crypt-JWT";
5115     version = "0.035";
5116     src = fetchurl {
5117       url = "mirror://cpan/authors/id/M/MI/MIK/Crypt-JWT-0.035.tar.gz";
5118       hash = "sha256-XPvVX63DrtNtZ0/AU6zoZ7XT4aTOiiDPu3wmef3wlkE=";
5119     };
5120     propagatedBuildInputs = [ CryptX JSON ];
5121     meta = {
5122       description = "JSON Web Token";
5123       license = with lib.licenses; [ artistic1 gpl1Plus ];
5124     };
5125   };
5127   CryptPassphrase = buildPerlPackage {
5128     pname = "Crypt-Passphrase";
5129     version = "0.016";
5130     src = fetchurl {
5131       url = "mirror://cpan/authors/id/L/LE/LEONT/Crypt-Passphrase-0.016.tar.gz";
5132       hash = "sha256-TOtPi1SsM/PYHJq0euTPoejDbzhJ76ghcDycMH46T8c=";
5133     };
5134     propagatedBuildInputs = [ CryptURandom ];
5135     meta = {
5136       description = "A module for managing passwords in a cryptographically agile manner";
5137       license = with lib.licenses; [ artistic1 gpl1Plus ];
5138     };
5139   };
5141   CryptPassphraseArgon2 = buildPerlPackage {
5142     pname = "Crypt-Passphrase-Argon2";
5143     version = "0.009";
5144     src = fetchurl {
5145       url = "mirror://cpan/authors/id/L/LE/LEONT/Crypt-Passphrase-Argon2-0.009.tar.gz";
5146       hash = "sha256-M39AVZY6EG2bt7tcJvwPSHCGYJ2XKHVgucpEwEPCF1I=";
5147     };
5148     propagatedBuildInputs = with perlPackages; [ CryptArgon2 CryptPassphrase ];
5149     meta = {
5150       description = "An Argon2 encoder for Crypt::Passphrase";
5151       license = with lib.licenses; [ artistic1 gpl1Plus ];
5152     };
5153   };
5155   CryptPassphraseBcrypt = buildPerlPackage {
5156     pname = "Crypt-Passphrase-Bcrypt";
5157     version = "0.007";
5158     src = fetchurl {
5159       url = "mirror://cpan/authors/id/L/LE/LEONT/Crypt-Passphrase-Bcrypt-0.007.tar.gz";
5160       hash = "sha256-/k1NHTm9TxODQaJZUFzhE3EnCnZ8nndH90H7dGH9sA8=";
5161     };
5162     propagatedBuildInputs = [ CryptBcrypt CryptPassphrase ];
5163     meta = {
5164       description = "A bcrypt encoder for Crypt::Passphrase";
5165       homepage = "https://github.com/Leont/crypt-passphrase-bcrypt";
5166       license = with lib.licenses; [ artistic1 gpl1Plus ];
5167     };
5168   };
5170   CryptPasswdMD5 = buildPerlPackage {
5171     pname = "Crypt-PasswdMD5";
5172     version = "1.42";
5173     src = fetchurl {
5174       url = "mirror://cpan/authors/id/R/RS/RSAVAGE/Crypt-PasswdMD5-1.42.tgz";
5175       hash = "sha256-/Tlubn9E7rkj6TyZOUC49nqa7Vb8dKrK8Dj8QFPvO1k=";
5176     };
5177     meta = {
5178       description = "Provide interoperable MD5-based crypt() functions";
5179       license = with lib.licenses; [ artistic1 gpl1Plus ];
5180     };
5181   };
5183   CryptPKCS10 = buildPerlModule {
5184     pname = "Crypt-PKCS10";
5185     version = "2.005";
5186     src = fetchurl {
5187       url = "mirror://cpan/authors/id/M/MR/MRSCOTTY/Crypt-PKCS10-2.005.tar.gz";
5188       hash = "sha256-LdEv0JHCPjp8NKZqw1rDq/kHQCOUtVV0mO3kj8QUU6c=";
5189     };
5190     buildInputs = [ CryptX ModuleBuildTiny pkgs.unzip ];
5191     propagatedBuildInputs = [ ConvertASN1 ];
5192     meta = {
5193       description = "Parse PKCS #10 certificate requests";
5194       homepage = "https://github.com/openxpki/Crypt-PKCS10";
5195       license = with lib.licenses; [ gpl1Only ];
5196     };
5197   };
5199   CryptRandomSeed = buildPerlPackage {
5200     pname = "Crypt-Random-Seed";
5201     version = "0.03";
5202     src = fetchurl {
5203       url = "mirror://cpan/authors/id/D/DA/DANAJ/Crypt-Random-Seed-0.03.tar.gz";
5204       hash = "sha256-WT2lS1IsCcwmu8wOTknByOaIpv0zsHJq+AHXIqXI0PE=";
5205     };
5206     propagatedBuildInputs = [ CryptRandomTESHA2 ];
5207     meta = {
5208       description = "Provide strong randomness for seeding";
5209       homepage = "https://github.com/danaj/Crypt-Random-Seed";
5210       license = with lib.licenses; [ artistic1 gpl1Plus ];
5211       maintainers = [ maintainers.sgo ];
5212     };
5213   };
5215   CryptRandom = buildPerlPackage rec {
5216     pname = "Crypt-Random";
5217     version = "1.54";
5218     src = fetchurl {
5219       url = "mirror://cpan/authors/id/V/VI/VIPUL/Crypt-Random-1.54.tar.gz";
5220       hash = "sha256-1m+OF+3Dh3zHl/3VneU045kGNvjxpecmBiFZr35n2sw=";
5221     };
5222     propagatedBuildInputs = [ ClassLoader MathPari StatisticsChiSquare ];
5223     meta = {
5224       description = "Interface to /dev/random and /dev/urandom";
5225       license = with lib.licenses; [ artistic1 gpl1Plus ];
5226       mainProgram = "makerandom";
5227     };
5228   };
5230   CryptRandomSource = buildPerlModule {
5231     pname = "Crypt-Random-Source";
5232     version = "0.14";
5233     src = fetchurl {
5234       url = "mirror://cpan/authors/id/E/ET/ETHER/Crypt-Random-Source-0.14.tar.gz";
5235       hash = "sha256-7E7OJp+a0ZWMbimOzuLlpDReNX86T/ssdIEWr4du7eY=";
5236     };
5237     buildInputs = [ ModuleBuildTiny TestFatal TestSimple13 ];
5238     propagatedBuildInputs = [ CaptureTiny ModuleFind Moo SubExporter TypeTiny namespaceclean ];
5239     meta = {
5240       description = "Get weak or strong random data from pluggable sources";
5241       homepage = "https://github.com/karenetheridge/Crypt-Random-Source";
5242       license = with lib.licenses; [ artistic1 gpl1Plus ];
5243     };
5244   };
5246   CryptRandomTESHA2 = buildPerlPackage {
5247     pname = "Crypt-Random-TESHA2";
5248     version = "0.01";
5249     src = fetchurl {
5250       url = "mirror://cpan/authors/id/D/DA/DANAJ/Crypt-Random-TESHA2-0.01.tar.gz";
5251       hash = "sha256-oJErQsUr4XPaUo1VJ+QNlnMkvASseNn8LdyR/xb+ljM=";
5252     };
5253     meta = {
5254       description = "Random numbers using timer/schedule entropy, aka userspace voodoo entropy";
5255       homepage = "https://github.com/danaj/Crypt-Random-TESHA2";
5256       license = with lib.licenses; [ artistic1 gpl1Plus ];
5257     };
5258   };
5260   CryptRC4 = buildPerlPackage {
5261     pname = "Crypt-RC4";
5262     version = "2.02";
5263     src = fetchurl {
5264       url = "mirror://cpan/authors/id/S/SI/SIFUKURT/Crypt-RC4-2.02.tar.gz";
5265       hash = "sha256-XsRCXGvCIgeIljC+c1DZlobmKkTGE2lgEQIDzVlK4Oo=";
5266     };
5267     meta = {
5268       description = "Perl implementation of the RC4 encryption algorithm";
5269       license = with lib.licenses; [ artistic1 gpl1Plus ];
5270     };
5271   };
5273   CryptRandPasswd = buildPerlPackage {
5274     pname = "Crypt-RandPasswd";
5275     version = "0.07";
5276     src = fetchurl {
5277       url = "mirror://cpan/authors/id/J/JA/JANITOR/Crypt-RandPasswd-0.07.tar.gz";
5278       hash = "sha256-bd26Sdx+DwBRr6oKvhbxN4OiRM0eu1+B2qEay2KKSWE=";
5279     };
5280     meta = {
5281       description = "Random password generator based on FIPS-181";
5282       license = with lib.licenses; [ artistic1 gpl1Plus ];
5283     };
5284   };
5286   CryptRIPEMD160 = buildPerlPackage {
5287     pname = "Crypt-RIPEMD160";
5288     version = "0.08";
5289     src = fetchurl {
5290       url = "mirror://cpan/authors/id/T/TO/TODDR/Crypt-RIPEMD160-0.08.tar.gz";
5291       hash = "sha256-NNHIdgf2yd76s3QbdtMbzPu21NIBr4Dg9gg8N4EwsjI=";
5292     };
5293     meta = {
5294       description = "Perl extension for the RIPEMD-160 Hash function";
5295       homepage = "https://wiki.github.com/toddr/Crypt-RIPEMD160";
5296       license = with lib.licenses; [ artistic1 gpl1Plus ];
5297       maintainers = [ maintainers.sgo ];
5298     };
5299   };
5301   CryptMySQL = buildPerlModule {
5302     pname = "Crypt-MySQL";
5303     version = "0.04";
5304     src = fetchurl {
5305       url = "mirror://cpan/authors/id/I/IK/IKEBE/Crypt-MySQL-0.04.tar.gz";
5306       hash = "sha256-k+vfqu/P6atoPwEhyF8kR12Bl/C87EYBghnkERQ03eM=";
5307     };
5308     propagatedBuildInputs = [ DigestSHA1 ];
5309     perlPreHook = lib.optionalString (stdenv.isi686 || stdenv.isDarwin) "export LD=$CC";
5310     meta = {
5311       description = "Emulate MySQL PASSWORD() function";
5312       license = with lib.licenses; [ artistic1 gpl1Plus ];
5313     };
5314   };
5316   CryptRijndael = buildPerlPackage {
5317     pname = "Crypt-Rijndael";
5318     version = "1.16";
5319     src = fetchurl {
5320       url = "mirror://cpan/authors/id/L/LE/LEONT/Crypt-Rijndael-1.16.tar.gz";
5321       hash = "sha256-ZUAIXjgEuCpvB1LBEiz3jK3SIZkBNt1v1MCX0FbITUA=";
5322     };
5323     meta = {
5324       description = "Crypt::CBC compliant Rijndael encryption module";
5325       license = with lib.licenses; [ gpl3Only ];
5326     };
5327   };
5329   CryptUnixCryptXS = buildPerlPackage {
5330     pname = "Crypt-UnixCrypt_XS";
5331     version = "0.11";
5332     src = fetchurl {
5333       url = "mirror://cpan/authors/id/B/BO/BORISZ/Crypt-UnixCrypt_XS-0.11.tar.gz";
5334       hash = "sha256-Yus0EsLJG9TcK4pNnuJtW94usRkycDtu6sR3Pk0fT6o=";
5335     };
5336     meta = {
5337       description = "Perl xs interface for a portable traditional crypt function";
5338       license = with lib.licenses; [ artistic1 gpl1Plus ];
5339     };
5340   };
5342   CryptURandom = buildPerlPackage {
5343     pname = "Crypt-URandom";
5344     version = "0.39";
5345     src = fetchurl {
5346       url = "mirror://cpan/authors/id/D/DD/DDICK/Crypt-URandom-0.39.tar.gz";
5347       hash = "sha256-Jol7PPualWAJFRLWCHMaPVv08pn20Pj3LIXzmQEkQSI=";
5348     };
5349     meta = {
5350       description = "Provide non blocking randomness";
5351       license = with lib.licenses; [ artistic1 gpl1Plus ];
5352       maintainers = [ maintainers.sgo ];
5353     };
5354   };
5356   CryptScryptKDF = buildPerlModule {
5357     pname = "Crypt-ScryptKDF";
5358     version = "0.010";
5359     src = fetchurl {
5360       url = "mirror://cpan/authors/id/M/MI/MIK/Crypt-ScryptKDF-0.010.tar.gz";
5361       hash = "sha256-fRbulczj61TBdGc6cpn0wIb7o6yF+EfQ4TT+7V93YBc=";
5362     };
5363     propagatedBuildInputs = [ CryptOpenSSLRandom ];
5364     perlPreHook = "export LD=$CC";
5365     meta = {
5366       description = "Scrypt password based key derivation function";
5367       homepage = "https://github.com/DCIT/perl-Crypt-ScryptKDF";
5368       license = with lib.licenses; [ artistic1 gpl1Plus ];
5369       maintainers = [ maintainers.sgo ];
5370     };
5371   };
5373   CryptSmbHash = buildPerlPackage {
5374     pname = "Crypt-SmbHash";
5375     version = "0.12";
5376     src = fetchurl {
5377       url = "mirror://cpan/authors/id/B/BJ/BJKUIT/Crypt-SmbHash-0.12.tar.gz";
5378       hash = "sha256-aMSsfqv6lX3PiUwsI7zsCW+H6M8G3t/Lv3AuVTHbsTc=";
5379     };
5380     meta = {
5381       description = "Perl-only implementation of lanman and nt md4 hash functions, for use in Samba style smbpasswd entries";
5382       license = with lib.licenses; [ gpl2Plus ];
5383     };
5384   };
5386   CryptSodium = buildPerlPackage {
5387     pname = "Crypt-Sodium";
5388     version = "0.11";
5389     src = fetchurl {
5390       url = "mirror://cpan/authors/id/M/MG/MGREGORO/Crypt-Sodium-0.11.tar.gz";
5391       hash = "sha256-kHxzoQVs6gV9qYGa6kipKreG5qqq858c3ZZHsj8RbHg=";
5392     };
5393     env.NIX_CFLAGS_COMPILE = "-I${pkgs.libsodium.dev}/include";
5394     NIX_CFLAGS_LINK = "-L${pkgs.libsodium.out}/lib -lsodium";
5395     meta = {
5396       description = "Perl bindings for libsodium (NaCL)";
5397       homepage = "https://metacpan.org/release/Crypt-Sodium";
5398       license = with lib.licenses; [ artistic1 gpl1Plus ];
5399       maintainers = [ maintainers.sgo ];
5400     };
5401   };
5403   CryptTwofish = buildPerlPackage {
5404     pname = "Crypt-Twofish";
5405     version = "2.18";
5406     src = fetchurl {
5407       url = "mirror://cpan/authors/id/A/AM/AMS/Crypt-Twofish-2.18.tar.gz";
5408       hash = "sha256-WIFVXWGHlyojgqoNTbLXTJcLBndMYhtspSNzkjbS1QE=";
5409     };
5410     meta = {
5411       description = "The Twofish Encryption Algorithm";
5412       license = with lib.licenses; [ artistic1 gpl1Plus ];
5413       maintainers = [ maintainers.sgo ];
5414     };
5415   };
5417   CryptOpenPGP = buildPerlPackage {
5418     pname = "Crypt-OpenPGP";
5419     version = "1.12";
5420     src = fetchurl {
5421       url = "mirror://cpan/authors/id/S/SR/SROMANOV/Crypt-OpenPGP-1.12.tar.gz";
5422       hash = "sha256-6Kf/Kpk7dqaa1t/9vlV1W+Vni4Tm7ElNzZq5Zvdm9Q4=";
5423     };
5424     patches = [
5425       # See https://github.com/NixOS/nixpkgs/pull/93599
5426       ../development/perl-modules/crypt-openpgp-remove-impure-keygen-tests.patch
5427     ];
5428     buildInputs = [ TestException ];
5429     propagatedBuildInputs = [ AltCryptRSABigInt CryptCAST5_PP CryptDES_EDE3 CryptDSA CryptIDEA CryptRIPEMD160 CryptRijndael CryptTwofish FileHomeDir LWP ];
5431     nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang;
5432     postInstall = lib.optionalString stdenv.isDarwin ''
5433       shortenPerlShebang $out/bin/pgplet
5434     '';
5435     doCheck = false; /* test fails with 'No random source available!' */
5437     meta = {
5438       description = "Pure-Perl OpenPGP implementation";
5439       homepage = "https://github.com/btrott/Crypt-OpenPGP";
5440       license = with lib.licenses; [ artistic1 gpl1Plus ];
5441       maintainers = [ maintainers.sgo ];
5442       mainProgram = "pgplet";
5443     };
5444   };
5446   CryptOpenSSLAES = buildPerlPackage {
5447     pname = "Crypt-OpenSSL-AES";
5448     version = "0.17";
5449     src = fetchurl {
5450       url = "mirror://cpan/authors/id/T/TI/TIMLEGGE/Crypt-OpenSSL-AES-0.17.tar.gz";
5451       hash = "sha256-7+GBsYxtIqc/LlNWOQ6Fdyes5UY2JeIhHdhgIyvtO7c=";
5452     };
5453     buildInputs = [ CryptOpenSSLGuess FileWhich pkgs.openssl ];
5454     env.NIX_CFLAGS_COMPILE = "-I${pkgs.openssl.dev}/include";
5455     NIX_CFLAGS_LINK = "-L${lib.getLib pkgs.openssl}/lib -lcrypto";
5456     meta = {
5457       description = "Perl wrapper around OpenSSL's AES library";
5458       license = with lib.licenses; [ artistic1 gpl1Plus ];
5459     };
5460   };
5462   CryptOpenSSLBignum = buildPerlPackage {
5463     pname = "Crypt-OpenSSL-Bignum";
5464     version = "0.09";
5465     src = fetchurl {
5466       url = "mirror://cpan/authors/id/K/KM/KMX/Crypt-OpenSSL-Bignum-0.09.tar.gz";
5467       hash = "sha256-I05y+4OW1FUn5v1F5DdZxcPzogjPjynmoiFhqZb9Qtw=";
5468     };
5469     env.NIX_CFLAGS_COMPILE = "-I${pkgs.openssl.dev}/include";
5470     NIX_CFLAGS_LINK = "-L${lib.getLib pkgs.openssl}/lib -lcrypto";
5471     meta = {
5472       description = "OpenSSL's multiprecision integer arithmetic";
5473       license = with lib.licenses; [ artistic1 gpl1Plus ];
5474     };
5475   };
5477   CryptOpenSSLGuess = buildPerlPackage {
5478     pname = "Crypt-OpenSSL-Guess";
5479     version = "0.15";
5480     src = fetchurl {
5481       url = "mirror://cpan/authors/id/A/AK/AKIYM/Crypt-OpenSSL-Guess-0.15.tar.gz";
5482       hash = "sha256-HFAzOBgZ/bTJCH3SkbkOxw54ENMdV+remziOzP1wOG0=";
5483     };
5484     meta = {
5485       description = "Guess OpenSSL include path";
5486       homepage = "https://github.com/akiym/Crypt-OpenSSL-Guess";
5487       license = with lib.licenses; [ artistic1 gpl1Plus ];
5488     };
5489   };
5491   CryptOpenSSLRandom = buildPerlPackage {
5492     pname = "Crypt-OpenSSL-Random";
5493     version = "0.15";
5494     src = fetchurl {
5495       url = "mirror://cpan/authors/id/R/RU/RURBAN/Crypt-OpenSSL-Random-0.15.tar.gz";
5496       hash = "sha256-8IdvqhujER45uGqnMMYDIR7/KQXkYMcqV7YejPR1zvQ=";
5497     };
5498     env.NIX_CFLAGS_COMPILE = "-I${pkgs.openssl.dev}/include";
5499     NIX_CFLAGS_LINK = "-L${lib.getLib pkgs.openssl}/lib -lcrypto";
5500     OPENSSL_PREFIX = pkgs.openssl;
5501     buildInputs = [ CryptOpenSSLGuess ];
5502     meta = {
5503       description = "OpenSSL/LibreSSL pseudo-random number generator access";
5504       license = with lib.licenses; [ artistic1 gpl1Plus ];
5505     };
5506   };
5508   CryptOpenSSLRSA = buildPerlPackage {
5509     pname = "Crypt-OpenSSL-RSA";
5510     version = "0.33";
5511     src = fetchurl {
5512       url = "mirror://cpan/authors/id/T/TO/TODDR/Crypt-OpenSSL-RSA-0.33.tar.gz";
5513       hash = "sha256-vb5jD21vVAMldGrZmXcnKshmT/gb0Z8K2rptb0Xv2GQ=";
5514     };
5515     propagatedBuildInputs = [ CryptOpenSSLRandom ];
5516     env.NIX_CFLAGS_COMPILE = "-I${pkgs.openssl.dev}/include";
5517     NIX_CFLAGS_LINK = "-L${lib.getLib pkgs.openssl}/lib -lcrypto";
5518     OPENSSL_PREFIX = pkgs.openssl;
5519     buildInputs = [ CryptOpenSSLGuess ];
5520     meta = {
5521       description = "RSA encoding and decoding, using the openSSL libraries";
5522       license = with lib.licenses; [ artistic1 gpl1Plus ];
5523     };
5524   };
5526   CryptOpenSSLX509 = buildPerlPackage rec {
5527     pname = "Crypt-OpenSSL-X509";
5528     version = "1.915";
5529     src = fetchurl {
5530       url = "mirror://cpan/authors/id/J/JO/JONASBN/Crypt-OpenSSL-X509-1.915.tar.gz";
5531       hash = "sha256-xNvBbE/CloV4I3v8MkWH/9eSSacQFQJlLbnjjUSJUX8=";
5532     };
5533     env.NIX_CFLAGS_COMPILE = "-I${pkgs.openssl.dev}/include";
5534     NIX_CFLAGS_LINK = "-L${lib.getLib pkgs.openssl}/lib -lcrypto";
5535     OPENSSL_PREFIX = pkgs.openssl;
5536     buildInputs = [ CryptOpenSSLGuess ];
5537     propagatedBuildInputs = [ ConvertASN1 ];
5538     meta = {
5539       description = "Perl extension to OpenSSL's X509 API";
5540       homepage = "https://github.com/dsully/perl-crypt-openssl-x509";
5541       license = with lib.licenses; [ artistic1 gpl1Plus ];
5542       maintainers = [ maintainers.sgo ];
5543     };
5544   };
5546   CryptPBKDF2 = buildPerlPackage {
5547     pname = "Crypt-PBKDF2";
5548     version = "0.161520";
5549     src = fetchurl {
5550       url = "mirror://cpan/authors/id/A/AR/ARODLAND/Crypt-PBKDF2-0.161520.tar.gz";
5551       hash = "sha256-l9+nmjCaCG4YSk5hBH+KEP+z2wUQJefSIqJfGRMLpBc=";
5552     };
5553     buildInputs = [ TestFatal ];
5554     propagatedBuildInputs = [ DigestHMAC DigestSHA3 Moo TypeTiny namespaceautoclean strictures ];
5555     meta = {
5556       description = "The PBKDF2 password hash algorithm";
5557       homepage = "https://metacpan.org/release/Crypt-PBKDF2";
5558       license = with lib.licenses; [ artistic1 gpl1Plus ];
5559       maintainers = [ maintainers.sgo ];
5560     };
5561   };
5563   CryptPerl = buildPerlPackage {
5564     pname = "Crypt-Perl";
5565     version = "0.38";
5566     src = fetchurl {
5567       url = "mirror://cpan/authors/id/F/FE/FELIPE/Crypt-Perl-0.38.tar.gz";
5568       hash = "sha256-eJdUj7AeFqIK5JDt3UZX+Br3sZKEFLkvbbQsY10ax+A=";
5569     };
5570     nativeCheckInputs = [ pkgs.openssl MathBigIntGMP ];
5571     buildInputs = [ CallContext ExtUtilsMakeMakerCPANfile FileSlurp FileWhich TestClass TestDeep TestException TestFailWarnings TestNoWarnings ];
5572     propagatedBuildInputs = [ BytesRandomSecureTiny ClassAccessor ConvertASN1 CryptFormat MathProvablePrime SymbolGet TryTiny ];
5573     meta = {
5574       description = "Cryptography in pure Perl";
5575       license = with lib.licenses; [ artistic1 gpl1Plus ];
5576       maintainers = [ maintainers.sgo ];
5577     };
5578   };
5580   CryptEd25519 = buildPerlPackage {
5581     pname = "Crypt-Ed25519";
5582     version = "1.05";
5583     src = fetchurl {
5584       url = "mirror://cpan/authors/id/M/ML/MLEHMANN/Crypt-Ed25519-1.05.tar.gz";
5585       hash = "sha256-sdEaWU/rUeQG2BsUfcDRClV8z0yrgcDbP4mBAmd9JKg=";
5586     };
5588     nativeBuildInputs = [ CanaryStability ];
5589     buildInputs = [ CanaryStability ];
5591     meta = {
5592       description = "Minimal Ed25519 bindings";
5593       license = with lib.licenses; [ artistic2 ];
5594       maintainers = [ maintainers.thoughtpolice ];
5595     };
5596   };
5598   CryptSSLeay = buildPerlPackage {
5599     pname = "Crypt-SSLeay";
5600     version = "0.73_06";
5601     src = fetchurl {
5602       url = "mirror://cpan/authors/id/N/NA/NANIS/Crypt-SSLeay-0.73_06.tar.gz";
5603       hash = "sha256-+OzKRch+uRMlmSsT8FlPgI5vG8TDuafxQbmoODhNJSw=";
5604     };
5606     makeMakerFlags = [ "--libpath=${lib.getLib pkgs.openssl}/lib" "--incpath=${pkgs.openssl.dev}/include" ];
5607     buildInputs = [ PathClass ];
5608     propagatedBuildInputs = [ BytesRandomSecure LWPProtocolHttps ];
5609     meta = {
5610       description = "OpenSSL support for LWP";
5611       license = with lib.licenses; [ artistic2 ];
5612     };
5613   };
5615   CSSDOM = buildPerlPackage {
5616     pname = "CSS-DOM";
5617     version = "0.17";
5618     src = fetchurl {
5619       url = "mirror://cpan/authors/id/S/SP/SPROUT/CSS-DOM-0.17.tar.gz";
5620       hash = "sha256-Zbl46/PDmF5V7jK7baHp+upJSoXTAFxjuux+lphZ8CY=";
5621     };
5623     patches = [
5624       # Replace apostrophe as package separator
5625       # https://rt.cpan.org/Public/Bug/Display.html?id=146661
5626       ../development/perl-modules/CSSDOM-replace-apostrophe.patch
5627     ];
5629     propagatedBuildInputs = [ Clone ];
5630     meta = {
5631       description = "Document Object Model for Cascading Style Sheets";
5632       license = with lib.licenses; [ artistic1 gpl1Plus ];
5633     };
5634   };
5636   CSSMinifier = buildPerlPackage {
5637     pname = "CSS-Minifier";
5638     version = "0.01";
5639     src = fetchurl {
5640       url = "mirror://cpan/authors/id/P/PM/PMICHAUX/CSS-Minifier-0.01.tar.gz";
5641       hash = "sha256-0Kk0m46LfoOrcM+IVM+7Qv8pwfbHyCmPIlfdIaoMf+8=";
5642     };
5643     meta = {
5644       description = "Perl extension for minifying CSS";
5645       license = with lib.licenses; [ artistic1 ];
5646     };
5647   };
5649   CSSMinifierXS = buildPerlPackage {
5650     pname = "CSS-Minifier-XS";
5651     version = "0.13";
5652     src = fetchurl {
5653       url = "mirror://cpan/authors/id/G/GT/GTERMARS/CSS-Minifier-XS-0.13.tar.gz";
5654       hash = "sha256-xBnjCM3IKvHCXWuNB7L/JjR6Yit6Y+wghWq+jbQFH4I=";
5655     };
5656     perlPreHook = lib.optionalString (stdenv.isi686 || stdenv.isDarwin) "export LD=$CC";
5657     buildInputs = [ TestDiagINC ];
5658     meta = {
5659       description = "XS based CSS minifier";
5660       homepage = "https://metacpan.org/release/CSS-Minifier-XS";
5661       license = with lib.licenses; [ artistic1 gpl1Plus ];
5662     };
5663   };
5665   CSSSquish = buildPerlPackage {
5666     pname = "CSS-Squish";
5667     version = "0.10";
5668     src = fetchurl {
5669       url = "mirror://cpan/authors/id/T/TS/TSIBLEY/CSS-Squish-0.10.tar.gz";
5670       hash = "sha256-ZfwNaazR+jPZpMOwnM4PvXN9dHsfzE6dh+vZEFDLy04=";
5671     };
5672     buildInputs = [ TestLongString ];
5673     propagatedBuildInputs = [ URI ];
5674     meta = {
5675       description = "Compact many CSS files into one big file";
5676       license = with lib.licenses; [ artistic1 gpl1Plus ];
5677     };
5678   };
5680   Curses = buildPerlPackage {
5681     pname = "Curses";
5682     version = "1.44";
5683     src = fetchurl {
5684       url = "mirror://cpan/authors/id/G/GI/GIRAFFED/Curses-1.44.tar.gz";
5685       hash = "sha256-ou+4x8iG1pL/xNshNhx2gJoGXliOQ/rQ1n5E751CvTA=";
5686     };
5687     preConfigure = ''
5688       substituteInPlace makeConfig \
5689         --replace '#! /usr/bin/perl' '#!${perl}/bin/perl'
5690     '';
5691     propagatedBuildInputs = [ pkgs.ncurses ];
5692     NIX_CFLAGS_LINK = "-L${pkgs.ncurses.out}/lib -lncurses";
5693     meta = {
5694       description = "Perl bindings to ncurses";
5695       license = with lib.licenses; [ artistic1 ];
5696     };
5697   };
5699   CursesUI = buildPerlPackage {
5700     pname = "Curses-UI";
5701     version = "0.9609";
5702     src = fetchurl {
5703       url = "mirror://cpan/authors/id/M/MD/MDXI/Curses-UI-0.9609.tar.gz";
5704       hash = "sha256-CrgnpRO24UQDGE+wZajqHS69oSLSF4y/RceB8xEkDq8=";
5705     };
5706     propagatedBuildInputs = [ Curses TermReadKey ];
5707     meta = {
5708       description = "A curses based OO user interface framework";
5709       license = with lib.licenses; [ artistic1 gpl1Plus ];
5710     };
5711   };
5713   CursesUIGrid = buildPerlPackage {
5714     pname = "Curses-UI-Grid";
5715     version = "0.15";
5716     src = fetchurl {
5717       url = "mirror://cpan/authors/id/A/AD/ADRIANWIT/Curses-UI-Grid-0.15.tar.gz";
5718       hash = "sha256-CCDKSp+5SbqPr5evV0AYuu/7aU6YDFCHu2UiqnC52+w=";
5719     };
5720     propagatedBuildInputs = [ CursesUI TestPod TestPodCoverage ];
5721     meta = {
5722       description = "Create and manipulate data in grid model";
5723       license = with lib.licenses; [ artistic1 gpl1Plus ];
5724     };
5725   };
5727   CryptX = buildPerlPackage {
5728     pname = "CryptX";
5729     version = "0.080";
5730     src = fetchurl {
5731       url = "mirror://cpan/authors/id/M/MI/MIK/CryptX-0.080.tar.gz";
5732       hash = "sha256-tFe3khlKbJwT8G/goLXqFYllwygvOFypPh8AorM+fok=";
5733     };
5734     meta = {
5735       description = "Cryptographic toolkit";
5736       license = with lib.licenses; [ artistic1 gpl1Plus ];
5737     };
5738   };
5740   CryptX509 = buildPerlPackage {
5741     pname = "Crypt-X509";
5742     version = "0.55";
5743     src = fetchurl {
5744       url = "mirror://cpan/authors/id/M/MR/MRSCOTTY/Crypt-X509-0.55.tar.gz";
5745       hash = "sha256-FHlrEdFfdq10ROeKYZtw/92RMIaN0LANhYV5yTA4Icc=";
5746     };
5747     propagatedBuildInputs = [ ConvertASN1 ];
5748     meta = {
5749       description = "Parse a X.509 certificate";
5750       license = with lib.licenses; [ artistic1 gpl1Plus ];
5751     };
5752   };
5754   CwdGuard = buildPerlModule {
5755     pname = "Cwd-Guard";
5756     version = "0.05";
5757     src = fetchurl {
5758       url = "mirror://cpan/authors/id/K/KA/KAZEBURO/Cwd-Guard-0.05.tar.gz";
5759       hash = "sha256-evx8orlQLkQCQZOK2Xo+fr1VAYDr1hQuHbOUGGsmjnc=";
5760     };
5761     buildInputs = [ TestRequires ];
5762     meta = {
5763       description = "Temporary changing working directory (chdir)";
5764       license = with lib.licenses; [ artistic1 gpl1Plus ];
5765     };
5766   };
5768   DataClone = buildPerlPackage {
5769     pname = "Data-Clone";
5770     version = "0.004";
5771     src = fetchurl {
5772       url = "mirror://cpan/authors/id/G/GF/GFUJI/Data-Clone-0.004.tar.gz";
5773       hash = "sha256-L+XheYgqa5Jt/vChCLSiyHof+waJK88vuI5Mj0uEODw=";
5774     };
5775     buildInputs = [ TestRequires ];
5776     patches = [
5777       ../development/perl-modules/Data-Clone-fix-apostrophe-package-separator.patch
5778     ];
5779     meta = {
5780       description = "Polymorphic data cloning";
5781       license = with lib.licenses; [ artistic1 gpl1Plus ];
5782     };
5783   };
5785   DataCompactReadonly = buildPerlPackage {
5786     pname = "Data-CompactReadonly";
5787     version = "0.1.0";
5788     src = fetchurl {
5789       url = "mirror://cpan/authors/id/D/DC/DCANTRELL/Data-CompactReadonly-0.1.0.tar.gz";
5790       hash = "sha256-fVYJCEz1E7p6d4u1lSNHDoNXdn1ZHL1CxYTgPfO+xug=";
5791     };
5792     propagatedBuildInputs = [ DataIEEE754 DevelStackTrace ScalarType StringBinaryInterpolation TestDifferences TestException ];
5793     meta = {
5794       description = "A Compact Read Only Database that consumes very little memory";
5795       license = with lib.licenses; [ artistic1 gpl2Only ];
5796     };
5797   };
5799   DataCompare = buildPerlPackage {
5800     pname = "Data-Compare";
5801     version = "1.29";
5802     src = fetchurl {
5803       url = "mirror://cpan/authors/id/D/DC/DCANTRELL/Data-Compare-1.29.tar.gz";
5804       hash = "sha256-U8nbO5MmPIiqo8QHLYGere0CTXo2s4wMN3N9KI1a+ow=";
5805     };
5806     propagatedBuildInputs = [ Clone FileFindRule ];
5807     meta = {
5808       description = "Compare perl data structures";
5809       license = with lib.licenses; [ artistic1 gpl1Plus ];
5810     };
5811   };
5813   DataDump = buildPerlPackage {
5814     pname = "Data-Dump";
5815     version = "1.25";
5816     src = fetchurl {
5817       url = "mirror://cpan/authors/id/G/GA/GARU/Data-Dump-1.25.tar.gz";
5818       hash = "sha256-pKpuDdvznVrUm93+D4nZ2oZOO8APYnEl0bxYBHL1P70=";
5819     };
5820     meta = {
5821       description = "Pretty printing of data structures";
5822       license = with lib.licenses; [ artistic1 gpl1Plus ];
5823     };
5824   };
5826   DataDumperAutoEncode = buildPerlModule {
5827     pname = "Data-Dumper-AutoEncode";
5828     version = "1.00";
5829     src = fetchurl {
5830       url = "mirror://cpan/authors/id/B/BA/BAYASHI/Data-Dumper-AutoEncode-1.00.tar.gz";
5831       hash = "sha256-LZoCYq1EPTIdxInvbfp7Pu0RonCKddOX03G7JYXl7KE=";
5832     };
5833     buildInputs = [ ModuleBuildPluggable ModuleBuildPluggableCPANfile ];
5834     propagatedBuildInputs = [ IOInteractiveTiny ];
5835     meta = {
5836       description = "Dump with recursive encoding";
5837       license = with lib.licenses; [ artistic2 ];
5838       mainProgram = "edumper";
5839     };
5840   };
5842   DataDumperConcise = buildPerlPackage {
5843     pname = "Data-Dumper-Concise";
5844     version = "2.023";
5845     src = fetchurl {
5846       url = "mirror://cpan/authors/id/E/ET/ETHER/Data-Dumper-Concise-2.023.tar.gz";
5847       hash = "sha256-psIvETyvMRN1kN7xtwKKfnGO+s4yKCctBnLCXgNdWFM=";
5848     };
5849     meta = {
5850       description = "Less indentation and newlines plus sub deparsing";
5851       license = with lib.licenses; [ artistic1 gpl1Plus ];
5852     };
5853   };
5855   DataEntropy = buildPerlModule {
5856     pname = "Data-Entropy";
5857     version = "0.007";
5858     src = fetchurl {
5859       url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Data-Entropy-0.007.tar.gz";
5860       hash = "sha256-JhHEoaMDhZTXnqTtFNnhWpr493EF9RZneV/k+KU0J+Q=";
5861     };
5862     propagatedBuildInputs = [ CryptRijndael DataFloat HTTPLite ParamsClassify ];
5863     meta = {
5864       description = "Entropy (randomness) management";
5865       license = with lib.licenses; [ artistic1 gpl1Plus ];
5866     };
5867   };
5869   DataFloat = buildPerlModule {
5870     pname = "Data-Float";
5871     version = "0.013";
5872     src = fetchurl {
5873       url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Data-Float-0.013.tar.gz";
5874       hash = "sha256-4rFSPYWJMLi729GW8II19eZ4uEkZuodxLiYxO5wnUYo=";
5875     };
5876     meta = {
5877       description = "Details of the floating point data type";
5878       license = with lib.licenses; [ artistic1 gpl1Plus ];
5879     };
5880   };
5882   DataFormValidator = buildPerlPackage {
5883     pname = "Data-FormValidator";
5884     version = "4.88";
5885     src = fetchurl {
5886       url = "mirror://cpan/authors/id/D/DF/DFARRELL/Data-FormValidator-4.88.tar.gz";
5887       hash = "sha256-waU5+RySy82KjYNZfsmnZD/NjM9alOFTgsN2UokXAGY=";
5888     };
5889     propagatedBuildInputs = [ DateCalc EmailValid FileMMagic ImageSize MIMETypes RegexpCommon ];
5890     buildInputs = [ CGI ];
5891     meta = {
5892       description = "Validates user input (usually from an HTML form) based on input profile";
5893       license = with lib.licenses; [ artistic1 gpl1Plus ];
5894     };
5895   };
5897   DataGUID = buildPerlPackage {
5898     pname = "Data-GUID";
5899     version = "0.051";
5900     src = fetchurl {
5901       url = "mirror://cpan/authors/id/R/RJ/RJBS/Data-GUID-0.051.tar.gz";
5902       hash = "sha256-aOp3xz/KiROC8gbhJEkJRQG2+/Llf1SQLVBkInz9ji4=";
5903     };
5904     propagatedBuildInputs = [ DataUUID SubExporter ];
5905     meta = {
5906       description = "Globally unique identifiers";
5907       homepage = "https://github.com/rjbs/Data-GUID";
5908       license = with lib.licenses; [ artistic1 gpl1Plus ];
5909     };
5910   };
5912   DataHexDump = buildPerlPackage {
5913     pname = "Data-HexDump";
5914     version = "0.04";
5915     src = fetchurl {
5916       url = "mirror://cpan/authors/id/N/NE/NEILB/Data-HexDump-0.04.tar.gz";
5917       hash = "sha256-vDb0BEOKw2rSuSlVOSJ9Nvmc0WI/HjR693xZTEDMvPg=";
5918     };
5919     meta = {
5920       description = "Hexadecial Dumper";
5921       homepage = "https://github.com/neilb/Data-HexDump";
5922       license = with lib.licenses; [ artistic1 gpl1Plus ];
5923       maintainers = with maintainers; [ AndersonTorres ];
5924       mainProgram = "hexdump";
5925     };
5926   };
5928   DataHexdumper = buildPerlPackage {
5929     pname = "Data-Hexdumper";
5930     version = "3.0001";
5931     src = fetchurl {
5932       url = "mirror://cpan/authors/id/D/DC/DCANTRELL/Data-Hexdumper-3.0001.tar.gz";
5933       hash = "sha256-+SQ8vor/7VBF/k31BXJqenKJRx4wxRrAZbPtbODRpgQ=";
5934     };
5935     meta = {
5936       description = "Make binary data human-readable";
5937       license = with lib.licenses; [ artistic1 gpl2Only ];
5938     };
5939   };
5941   DataHierarchy = buildPerlPackage {
5942     pname = "Data-Hierarchy";
5943     version = "0.34";
5944     src = fetchurl {
5945       url = "mirror://cpan/authors/id/C/CL/CLKAO/Data-Hierarchy-0.34.tar.gz";
5946       hash = "sha256-s6jmK1Pin3HdWYmu75n7+vH0tuJyoGgAOBNg1Z6f2e0=";
5947     };
5948     buildInputs = [ TestException ];
5949     meta = {
5950       description = "Handle data in a hierarchical structure";
5951       license = with lib.licenses; [ artistic1 gpl1Plus ];
5952     };
5953   };
5955   DataICal = buildPerlPackage {
5956     pname = "Data-ICal";
5957     version = "0.24";
5958     src = fetchurl {
5959       url = "mirror://cpan/authors/id/B/BP/BPS/Data-ICal-0.24.tar.gz";
5960       hash = "sha256-czHHyEiGxTM3wNuCNhXg5xNKjxPv0oTlwgcm1bzVLf8=";
5961     };
5962     buildInputs = [ TestLongString TestNoWarnings TestWarn ];
5963     propagatedBuildInputs = [ ClassReturnValue TextvFileasData ];
5964     meta = {
5965       description = "Generates iCalendar (RFC 2445) calendar files";
5966       license = with lib.licenses; [ artistic1 gpl1Plus ];
5967     };
5968   };
5970   DataIEEE754 = buildPerlPackage {
5971     pname = "Data-IEEE754";
5972     version = "0.02";
5973     src = fetchurl {
5974       url = "mirror://cpan/authors/id/M/MA/MAXMIND/Data-IEEE754-0.02.tar.gz";
5975       hash = "sha256-xvSrE0ZygjQTtQ8HR5saGwUfTO5C3Tzn6xWD1mkbZx0=";
5976     };
5977     buildInputs = [ TestBits ];
5978     meta = {
5979       description = "Pack and unpack big-endian IEEE754 floats and doubles";
5980       homepage = "https://metacpan.org/release/Data-IEEE754";
5981       license = with lib.licenses; [ artistic2 ];
5982     };
5983   };
5985   DataInteger = buildPerlModule {
5986     pname = "Data-Integer";
5987     version = "0.006";
5988     src = fetchurl {
5989       url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Data-Integer-0.006.tar.gz";
5990       hash = "sha256-Y7d+3jtjnONRUlA0hjYpr5iavL/0qwOxT8Tq1GH/o1Q=";
5991     };
5992     meta = {
5993       description = "Details of the native integer data type";
5994       license = with lib.licenses; [ artistic1 gpl1Plus ];
5995     };
5996   };
5998   DataMessagePack = buildPerlModule {
5999     pname = "Data-MessagePack";
6000     version = "1.02";
6001     src = fetchurl {
6002       url = "mirror://cpan/authors/id/S/SY/SYOHEX/Data-MessagePack-1.02.tar.gz";
6003       hash = "sha256-wz20R5CqjSVBR4guI3jf/pcK1gMxNQveBi0XlTSCsbc=";
6004     };
6005     buildInputs = [ ModuleBuildXSUtil TestRequires ];
6006     meta = {
6007       description = "A grep-like program for searching source code";
6008       homepage = "https://github.com/msgpack/msgpack-perl";
6009       license = with lib.licenses; [ artistic1 gpl1Plus ];
6010       maintainers = [ maintainers.sgo ];
6011       broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.DataMessagePack.x86_64-darwin
6012     };
6013   };
6015   DataOptList = buildPerlPackage {
6016     pname = "Data-OptList";
6017     version = "0.114";
6018     src = fetchurl {
6019       url = "mirror://cpan/authors/id/R/RJ/RJBS/Data-OptList-0.114.tar.gz";
6020       hash = "sha256-n9EJO5F6Ift5rhYH21PRE7TgrY/grndssHen5QBE/fM=";
6021     };
6022     propagatedBuildInputs = [ ParamsUtil SubInstall ];
6023     meta = {
6024       description = "Parse and validate simple name/value option pairs";
6025       homepage = "https://github.com/rjbs/Data-OptList";
6026       license = with lib.licenses; [ artistic1 gpl1Plus ];
6027     };
6028   };
6030   DataPage = buildPerlPackage {
6031     pname = "Data-Page";
6032     version = "2.03";
6033     src = fetchurl {
6034       url = "mirror://cpan/authors/id/E/ET/ETHER/Data-Page-2.03.tar.gz";
6035       hash = "sha256-LvpSFn0ferNZAs8yrgJ3amI3BdeRnUEYmBKHsETOPYs=";
6036     };
6037     propagatedBuildInputs = [ ClassAccessorChained ];
6038     buildInputs = [ TestException ];
6039     meta = {
6040       description = "Help when paging through sets of results";
6041       license = with lib.licenses; [ artistic1 gpl1Plus ];
6042     };
6043   };
6045   DataPagePageset = buildPerlModule {
6046     pname = "Data-Page-Pageset";
6047     version = "1.02";
6048     src = fetchurl {
6049       url = "mirror://cpan/authors/id/C/CH/CHUNZI/Data-Page-Pageset-1.02.tar.gz";
6050       hash = "sha256-zqwbtVQ+I9qyUZUTxibj/+ZaF3uOHtnlagMNRVHUUZA=";
6051     };
6052     buildInputs = [ ClassAccessor DataPage TestException ];
6053     meta = {
6054       description = "Change long page list to be shorter and well navigate";
6055       license = with lib.licenses; [ artistic1 gpl1Plus ];
6056     };
6057   };
6059   DataPassword = buildPerlPackage {
6060     pname = "Data-Password";
6061     version = "1.12";
6062     src = fetchurl {
6063       url = "mirror://cpan/authors/id/R/RA/RAZINF/Data-Password-1.12.tar.gz";
6064       hash = "sha256-gwzegXQf84Q4VBLhb6ulV0WlSnzAGd0j1+1PBdVRqWE=";
6065     };
6066     meta = {
6067       description = "Perl extension for assessing password quality";
6068       license = with lib.licenses; [ artistic1 gpl1Plus ];
6069     };
6070   };
6072   DataPerl = buildPerlPackage {
6073     pname = "Data-Perl";
6074     version = "0.002011";
6075     src = fetchurl {
6076       url = "mirror://cpan/authors/id/T/TO/TOBYINK/Data-Perl-0.002011.tar.gz";
6077       hash = "sha256-jTTb4xTPotmb2arlRrvelMOLsFt0sHyJveFnOm9sVfQ=";
6078     };
6079     buildInputs = [ TestDeep TestFatal TestOutput ];
6080     propagatedBuildInputs = [ ClassMethodModifiers ListMoreUtils ModuleRuntime RoleTiny strictures ];
6081     meta = {
6082       description = "Base classes wrapping fundamental Perl data types";
6083       homepage = "https://github.com/tobyink/Data-Perl";
6084       license = with lib.licenses; [ artistic1 gpl1Plus ];
6085     };
6086   };
6088   DataPrinter = buildPerlPackage {
6089     pname = "Data-Printer";
6090     version = "1.001001";
6091     src = fetchurl {
6092       url = "mirror://cpan/authors/id/G/GA/GARU/Data-Printer-1.001001.tar.gz";
6093       hash = "sha256-q64DMVUU0rcxxkYrjwZ2SN2ZChA1SyFgbHeM/ZHUe4A=";
6094     };
6095     propagatedBuildInputs = [ ClonePP FileHomeDir PackageStash SortNaturally ];
6096     meta = {
6097       description = "Colored & full-featured pretty print of Perl data structures and objects";
6098       license = with lib.licenses; [ artistic1 gpl1Plus ];
6099     };
6100   };
6102   DataRandom = buildPerlPackage {
6103     pname = "Data-Random";
6104     version = "0.13";
6105     src = fetchurl {
6106       url = "mirror://cpan/authors/id/B/BA/BAREFOOT/Data-Random-0.13.tar.gz";
6107       hash = "sha256-61kBhKjbKKfknqsJ4l+GUMM/H2aLakcoKd50pTJWv8A=";
6108     };
6109     buildInputs = [ FileShareDirInstall TestMockTime ];
6110     meta = {
6111       description = "Perl module to generate random data";
6112       license = with lib.licenses; [ artistic1 gpl1Plus ];
6113     };
6114   };
6116   DataSection = buildPerlPackage {
6117     pname = "Data-Section";
6118     version = "0.200008";
6119     src = fetchurl {
6120       url = "mirror://cpan/authors/id/R/RJ/RJBS/Data-Section-0.200008.tar.gz";
6121       hash = "sha256-g6zHpV091+026deNNQrzE4xpz6F4pEdlgicS/0M7mQ4=";
6122     };
6123     propagatedBuildInputs = [ MROCompat SubExporter ];
6124     buildInputs = [ TestFailWarnings ];
6125     meta = {
6126       description = "Read multiple hunks of data out of your DATA section";
6127       homepage = "https://github.com/rjbs/Data-Section";
6128       license = with lib.licenses; [ artistic1 gpl1Plus ];
6129     };
6130   };
6132   DataSectionSimple = buildPerlPackage {
6133     pname = "Data-Section-Simple";
6134     version = "0.07";
6135     src = fetchurl {
6136       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Data-Section-Simple-0.07.tar.gz";
6137       hash = "sha256-CzA1/9uQmqH33ta2CPqdiUQhyCwJfVHnFxFw1nV5qcs=";
6138     };
6139     buildInputs = [ TestRequires ];
6140     meta = {
6141       description = "Read data from __DATA__";
6142       homepage = "https://github.com/miyagawa/Data-Section-Simple";
6143       license = with lib.licenses; [ artistic1 gpl1Plus ];
6144     };
6145   };
6147   DataSerializer = buildPerlModule {
6148     pname = "Data-Serializer";
6149     version = "0.65";
6150     src = fetchurl {
6151       url = "mirror://cpan/authors/id/N/NE/NEELY/Data-Serializer-0.65.tar.gz";
6152       hash = "sha256-EhVaUgADPYCl8HVzd19JPxcAcs97KK48otFStZGXHxE=";
6153     };
6154     meta = {
6155       description = "Modules that serialize data structures";
6156       homepage = "https://metacpan.org/release/Data-Serializer";
6157       license = with lib.licenses; [ artistic1 gpl1Plus ];
6158     };
6159   };
6161   DataSExpression = buildPerlPackage {
6162     pname = "Data-SExpression";
6163     version = "0.41";
6164     src = fetchurl {
6165       url = "mirror://cpan/authors/id/N/NE/NELHAGE/Data-SExpression-0.41.tar.gz";
6166       hash = "sha256-gWJCakKFoJQ4X9+vbQnO0QbVr1dVP5U6yx1Whn3QFJs=";
6167     };
6168     buildInputs = [ TestDeep ];
6169     propagatedBuildInputs = [ ClassAccessor ];
6170     meta = {
6171       description = "Parse Lisp S-Expressions into perl data structures";
6172       license = with lib.licenses; [ artistic1 gpl1Plus ];
6173     };
6174   };
6176   DataSpreadPagination = buildPerlPackage {
6177     pname = "Data-SpreadPagination";
6178     version = "0.1.2";
6179     src = fetchurl {
6180       url = "mirror://cpan/authors/id/K/KN/KNEW/Data-SpreadPagination-0.1.2.tar.gz";
6181       hash = "sha256-dOv9hHEyw4zJ6DXhToLEPxgJqVy8mLuE0ffOLk70h+M=";
6182     };
6183     propagatedBuildInputs = [ DataPage MathRound ];
6184     meta = {
6185       description = "Page numbering and spread pagination";
6186       license = with lib.licenses; [ artistic1 gpl1Plus ];
6187     };
6188   };
6190   DataStag = buildPerlPackage {
6191     pname = "Data-Stag";
6192     version = "0.14";
6193     src = fetchurl {
6194       url = "mirror://cpan/authors/id/C/CM/CMUNGALL/Data-Stag-0.14.tar.gz";
6195       hash = "sha256-SrEiUI0vuG0XGhX0AG5c+JbV+s+mUhnAskOomQYljlk=";
6196     };
6197     propagatedBuildInputs = [ IOString ];
6198     meta = {
6199       description = "Structured Tags";
6200       license = with lib.licenses; [ artistic1 gpl1Plus ];
6201     };
6202   };
6204   DataStreamBulk = buildPerlPackage {
6205     pname = "Data-Stream-Bulk";
6206     version = "0.11";
6207     src = fetchurl {
6208       url = "mirror://cpan/authors/id/D/DO/DOY/Data-Stream-Bulk-0.11.tar.gz";
6209       hash = "sha256-BuCEMqa5dwVgbJJXCbmRKa2SZRbkd9WORGHks9nzCRc=";
6210     };
6211     buildInputs = [ TestRequires ];
6212     propagatedBuildInputs = [ Moose PathClass namespaceclean ];
6213     meta = {
6214       description = "N at a time iteration API";
6215       homepage = "https://metacpan.org/release/Data-Stream-Bulk";
6216       license = with lib.licenses; [ artistic1 gpl1Plus ];
6217     };
6218   };
6220   DataStructureUtil = buildPerlPackage {
6221     pname = "Data-Structure-Util";
6222     version = "0.16";
6223     src = fetchurl {
6224       url = "mirror://cpan/authors/id/A/AN/ANDYA/Data-Structure-Util-0.16.tar.gz";
6225       hash = "sha256-nNQqE+ZcsV86diluuaE02iIBaOx0fFaNMxpQrnot28Y=";
6226     };
6227     buildInputs = [ TestPod ];
6228     meta = {
6229       description = "Change nature of data within a structure";
6230       license = with lib.licenses; [ artistic1 gpl1Plus ];
6231     };
6232   };
6234   DataTaxi = buildPerlPackage {
6235     pname = "Data-Taxi";
6236     version = "0.96";
6237     src = fetchurl {
6238       url = "mirror://cpan/authors/id/M/MI/MIKO/Data-Taxi-0.96.tar.gz";
6239       hash = "sha256-q8s2EPygbZodmRaraYB0OmHYWvVfn9N2vqZxKommnHg=";
6240     };
6241     buildInputs = [ DebugShowStuff ];
6242     meta = {
6243       description = "Taint-aware, XML-ish data serialization";
6244       license = with lib.licenses; [ artistic1 gpl1Plus ];
6245     };
6246   };
6248   DataULID = buildPerlPackage {
6249     pname = "Data-ULID";
6250     version = "1.2.1";
6251     src = fetchurl {
6252       url = "mirror://cpan/authors/id/B/BA/BALDUR/Data-ULID-1.2.1.tar.gz";
6253       hash = "sha256-SbThGyY0inXfNONGF0UuMZ/XpygasJQgYvFieeqKHSc=";
6254     };
6255     propagatedBuildInputs = [ CryptX ];
6256     meta = {
6257       description = "Universally Unique Lexicographically Sortable Identifier";
6258       homepage = "https://metacpan.org/release/Data-ULID";
6259       license = with lib.licenses; [ artistic1 gpl1Plus ];
6260       maintainers = with maintainers; [ sgo ];
6261     };
6262   };
6264   DataUniqid = buildPerlPackage {
6265     pname = "Data-Uniqid";
6266     version = "0.12";
6267     src = fetchurl {
6268       url = "mirror://cpan/authors/id/M/MW/MWX/Data-Uniqid-0.12.tar.gz";
6269       hash = "sha256-tpGbpJuf6Yv98+isyue5t/eNyeceu9C3/vekXZkyTMs=";
6270     };
6271     meta = {
6272       description = "Perl extension for simple genrating of unique id's";
6273       license = with lib.licenses; [ artistic1 gpl1Plus ];
6274     };
6275   };
6277   DataUtil = buildPerlModule {
6278     pname = "Data-Util";
6279     version = "0.67";
6280     src = fetchurl {
6281       url = "mirror://cpan/authors/id/S/SY/SYOHEX/Data-Util-0.67.tar.gz";
6282       hash = "sha256-tVypHHafgTN8xrCrIMMmg4eOWyZj8cwljFEamZpd/dM=";
6283     };
6284     buildInputs = [ HashUtilFieldHashCompat ModuleBuildXSUtil ScopeGuard TestException ];
6285     perlPreHook = lib.optionalString stdenv.isi686 "export LD=$CC"; # fix undefined reference to `__stack_chk_fail_local'
6286     meta = {
6287       description = "A selection of utilities for data and data types";
6288       homepage = "https://github.com/gfx/Perl-Data-Util";
6289       license = with lib.licenses; [ artistic1 gpl1Plus ];
6290       broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.DataUtil.x86_64-darwin
6291     };
6292   };
6294   DataURIEncode = buildPerlPackage {
6295     pname = "Data-URIEncode";
6296     version = "0.11";
6297     src = fetchurl {
6298       url = "mirror://cpan/authors/id/R/RH/RHANDOM/Data-URIEncode-0.11.tar.gz";
6299       hash = "sha256-Ucnvv4QjhTYW6qJIQeTRmWstsANpAGF/sdvHbHWh82A=";
6300     };
6301     meta = {
6302       description = "Allow complex data structures to be encoded using flat URIs";
6303       license = with lib.licenses; [ artistic1 gpl1Plus ];
6304     };
6305   };
6307   DataUUID = buildPerlPackage {
6308     pname = "Data-UUID";
6309     version = "1.226";
6310     src = fetchurl {
6311       url = "mirror://cpan/authors/id/R/RJ/RJBS/Data-UUID-1.226.tar.gz";
6312       hash = "sha256-CT1X/6DUEalLr6+uSVaX2yb1ydAncZj+P3zyviKZZFM=";
6313     };
6314     patches = [
6315       ../development/perl-modules/Data-UUID-CVE-2013-4184.patch
6316     ];
6317     meta = {
6318       description = "Globally/Universally Unique Identifiers (GUIDs/UUIDs)";
6319       license = with lib.licenses; [ bsd0 ];
6320     };
6321   };
6323   DataUUIDMT = buildPerlPackage {
6324     pname = "Data-UUID-MT";
6325     version = "1.001";
6326     src = fetchurl {
6327       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Data-UUID-MT-1.001.tar.gz";
6328       hash = "sha256-MExLmBKDEfhLf1KccBi6hJx102Q6qA6jgrSwgFfEZy0=";
6329     };
6330     buildInputs = [ ListAllUtils ];
6331     propagatedBuildInputs = [ MathRandomMTAuto ];
6332     meta = {
6333       description = "Fast random UUID generator using the Mersenne Twister algorithm";
6334       homepage = "https://metacpan.org/release/Data-UUID-MT";
6335       license = with lib.licenses; [ asl20 ];
6336     };
6337   };
6339   DataValidateDomain = buildPerlPackage {
6340     pname = "Data-Validate-Domain";
6341     version = "0.15";
6342     src = fetchurl {
6343       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Data-Validate-Domain-0.15.tar.gz";
6344       hash = "sha256-PJ95GHsNPHGt0fj1WbgN8VmTAKbSA+CxYcvhjhdqqzY=";
6345     };
6346     buildInputs = [ Test2Suite ];
6347     propagatedBuildInputs = [ NetDomainTLD ];
6348     meta = {
6349       description = "Domain and host name validation";
6350       homepage = "https://metacpan.org/release/Data-Validate-Domain";
6351       license = with lib.licenses; [ artistic1 gpl1Plus ];
6352     };
6353   };
6355   DataValidateIP = buildPerlPackage {
6356     pname = "Data-Validate-IP";
6357     version = "0.31";
6358     src = fetchurl {
6359       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Data-Validate-IP-0.31.tar.gz";
6360       hash = "sha256-c0r/hrb5ytQOHE2oHyj68Y4IAsdqVm2V5WE9QxgYL8E=";
6361     };
6362     buildInputs = [ TestRequires ];
6363     propagatedBuildInputs = [ NetAddrIP ];
6364     meta = {
6365       description = "IPv4 and IPv6 validation methods";
6366       homepage = "https://metacpan.org/release/Data-Validate-IP";
6367       license = with lib.licenses; [ artistic1 gpl1Plus ];
6368     };
6369   };
6371   DataValidateURI = buildPerlPackage {
6372     pname = "Data-Validate-URI";
6373     version = "0.07";
6374     src = fetchurl {
6375       url = "mirror://cpan/authors/id/S/SO/SONNEN/Data-Validate-URI-0.07.tar.gz";
6376       hash = "sha256-8GQY0qRgORPRts5SsWfdE+eH4TvyvjJaBl331Aj3nGA=";
6377     };
6378     propagatedBuildInputs = [ DataValidateDomain DataValidateIP ];
6379     meta = {
6380       description = "Common URL validation methods";
6381       license = with lib.licenses; [ artistic1 gpl1Plus ];
6382     };
6383   };
6385   DataVisitor = buildPerlPackage {
6386     pname = "Data-Visitor";
6387     version = "0.32";
6388     src = fetchurl {
6389       url = "mirror://cpan/authors/id/E/ET/ETHER/Data-Visitor-0.32.tar.gz";
6390       hash = "sha256-sZQpDyV8xidaA5N0ERVUxmahZQ5MAa15nB4KJ39HkX0=";
6391     };
6392     buildInputs = [ TestNeeds ];
6393     propagatedBuildInputs = [ Moose TieToObject namespaceclean ];
6394     meta = {
6395       description = "Visitor style traversal of Perl data structures";
6396       license = with lib.licenses; [ artistic1 gpl1Plus ];
6397     };
6398   };
6400   DateCalc = buildPerlPackage {
6401     pname = "Date-Calc";
6402     version = "6.4";
6403     src = fetchurl {
6404       url = "mirror://cpan/authors/id/S/ST/STBEY/Date-Calc-6.4.tar.gz";
6405       hash = "sha256-fOE3sueXt8CQHzrfGgWhk0M1bNHwRnaqHFap9iT4Wa0=";
6406     };
6407     propagatedBuildInputs = [ BitVector ];
6408     doCheck = false; # some of the checks rely on the year being <2015
6409     meta = {
6410       description = "Gregorian calendar date calculations";
6411       license = with lib.licenses; [ artistic1 gpl1Plus ];
6412     };
6413   };
6415   DateExtract = buildPerlPackage {
6416     pname = "Date-Extract";
6417     version = "0.07";
6418     src = fetchurl {
6419       url = "mirror://cpan/authors/id/E/ET/ETHER/Date-Extract-0.07.tar.gz";
6420       hash = "sha256-+geIBK3k7uwd4UcuDguwR65i5MjU1QIHAbnlBXfFuPQ=";
6421     };
6422     buildInputs = [ TestMockTimeHiRes ];
6423     propagatedBuildInputs = [ ClassDataInheritable DateTimeFormatNatural ];
6424     meta = {
6425       description = "Extract probable dates from strings";
6426       license = with lib.licenses; [ artistic1 gpl1Plus ];
6427     };
6428   };
6430   DateManip = buildPerlPackage {
6431     pname = "Date-Manip";
6432     version = "6.92";
6433     src = fetchurl {
6434       url = "mirror://cpan/authors/id/S/SB/SBECK/Date-Manip-6.92.tar.gz";
6435       hash = "sha256-q5Yr05ygnsb8/n5aaRKvcbDB9vA+TtK+9uRHHJ02ehM=";
6436     };
6437     # for some reason, parsing /etc/localtime does not work anymore - make sure that the fallback "/bin/date +%Z" will work
6438     patchPhase = ''
6439       sed -i "s#/bin/date#${pkgs.coreutils}/bin/date#" lib/Date/Manip/TZ.pm
6440     '';
6441     doCheck = !stdenv.isi686; # build freezes during tests on i686
6442     buildInputs = [ TestInter ];
6443     meta = {
6444       description = "Date manipulation routines";
6445       homepage = "https://github.com/SBECK-github/Date-Manip";
6446       license = with lib.licenses; [ artistic1 gpl1Plus ];
6447     };
6448   };
6450   DateRange = buildPerlPackage {
6451     pname = "Date-Range";
6452     version = "1.41";
6453     src = fetchurl {
6454       url = "mirror://cpan/authors/id/T/TM/TMTM/Date-Range-1.41.tar.gz";
6455       hash = "sha256-v5iXSSsQHAUDh50Up+fr6QJUQ4NgGufGmpXedcvZSLk=";
6456     };
6457     propagatedBuildInputs = [ DateSimple ];
6458     meta = {
6459       description = "work with a range of dates";
6460       license = with lib.licenses; [ gpl2Plus ];
6461     };
6462   };
6464   DateSimple = buildPerlPackage {
6465     pname = "Date-Simple";
6466     version = "3.03";
6467     src = fetchurl {
6468       url = "mirror://cpan/authors/id/I/IZ/IZUT/Date-Simple-3.03.tar.gz";
6469       hash = "sha256-KaGSYxTOFoGjEtYVXClZDHcd2s+Rt0hYc85EnvIJ3QQ=";
6470     };
6471     meta = {
6472       description = "A simple date object";
6473       license = with lib.licenses; [ artistic1 gpl2Plus ];
6474     };
6475   };
6477   DateTime = buildPerlPackage {
6478     pname = "DateTime";
6479     version = "1.59";
6480     src = fetchurl {
6481       url = "mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-1.59.tar.gz";
6482       hash = "sha256-3j6aY84VRwtNtK2tS6asjsKX2IwMbGs1SwgYg7CmdpU=";
6483     };
6484     buildInputs = [ CPANMetaCheck TestFatal TestWarnings TestWithoutModule ];
6485     propagatedBuildInputs = [ DateTimeLocale DateTimeTimeZone ];
6486     meta = {
6487       description = "A date and time object for Perl";
6488       homepage = "https://metacpan.org/release/DateTime";
6489       license = with lib.licenses; [ artistic2 ];
6490     };
6491   };
6493   DateTimeCalendarJulian = buildPerlPackage {
6494     pname = "DateTime-Calendar-Julian";
6495     version = "0.107";
6496     src = fetchurl {
6497       url = "mirror://cpan/authors/id/W/WY/WYANT/DateTime-Calendar-Julian-0.107.tar.gz";
6498       hash = "sha256-/LK0JIRLsTvK1GsceqI5taCbqyVW9TvR8n+tkMJg0z0=";
6499     };
6500     propagatedBuildInputs = [ DateTime ];
6501     meta = {
6502       description = "DateTime object in the Julian calendar";
6503       license = with lib.licenses; [ artistic1 gpl1Plus ];
6504     };
6505   };
6507   DateTimeEventICal = buildPerlPackage {
6508     pname = "DateTime-Event-ICal";
6509     version = "0.13";
6510     src = fetchurl {
6511       url = "mirror://cpan/authors/id/F/FG/FGLOCK/DateTime-Event-ICal-0.13.tar.gz";
6512       hash = "sha256-U9pDhO9c8w7ofcATH0tu7iEhzA66NHFioyi5vPr0deo=";
6513     };
6514     propagatedBuildInputs = [ DateTimeEventRecurrence ];
6515     meta = {
6516       description = "DateTime rfc2445 recurrences";
6517       license = with lib.licenses; [ artistic1 gpl1Plus ];
6518     };
6519   };
6521   DateTimeEventRecurrence = buildPerlPackage {
6522     pname = "DateTime-Event-Recurrence";
6523     version = "0.19";
6524     src = fetchurl {
6525       url = "mirror://cpan/authors/id/F/FG/FGLOCK/DateTime-Event-Recurrence-0.19.tar.gz";
6526       hash = "sha256-+UCHiaRhEHdmyhojK7PsHnAu7HyoFnQB6m7D9LbQtaU=";
6527     };
6528     propagatedBuildInputs = [ DateTimeSet ];
6529     meta = {
6530       description = "DateTime::Set extension for create basic recurrence sets";
6531       license = with lib.licenses; [ artistic1 gpl1Plus ];
6532     };
6533   };
6535   DateTimeFormatBuilder = buildPerlPackage {
6536     pname = "DateTime-Format-Builder";
6537     version = "0.83";
6538     src = fetchurl {
6539       url = "mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-Format-Builder-0.83.tar.gz";
6540       hash = "sha256-Yf+yPYWzyheGstoyiembV+BiX+DknbAqbcDLYsaJ4vI=";
6541     };
6542     propagatedBuildInputs = [ DateTimeFormatStrptime ParamsValidate ];
6543     meta = {
6544       description = "Create DateTime parser classes and objects";
6545       homepage = "https://metacpan.org/release/DateTime-Format-Builder";
6546       license = with lib.licenses; [ artistic2 ];
6547     };
6548   };
6550   DateTimeFormatDateParse = buildPerlModule {
6551     pname = "DateTime-Format-DateParse";
6552     version = "0.05";
6553     src = fetchurl {
6554       url = "mirror://cpan/authors/id/J/JH/JHOBLITT/DateTime-Format-DateParse-0.05.tar.gz";
6555       hash = "sha256-9uykyL5mzpmS7hUJMvj88HgJ/T0WZMryALil/Tp+Xrw=";
6556     };
6557     propagatedBuildInputs = [ DateTime TimeDate ];
6558     meta = {
6559       description = "Parses Date::Parse compatible formats";
6560       license = with lib.licenses; [ artistic1 gpl1Plus ];
6561     };
6562   };
6564   DateTimeFormatFlexible = buildPerlPackage {
6565     pname = "DateTime-Format-Flexible";
6566     version = "0.34";
6567     src = fetchurl {
6568       url = "mirror://cpan/authors/id/T/TH/THINC/DateTime-Format-Flexible-0.34.tar.gz";
6569       hash = "sha256-g2rvXSXm/4gnMIpDv/dBkeXSAiDao9ISAFC8w0FI/PE=";
6570     };
6571     propagatedBuildInputs = [ DateTimeFormatBuilder ListMoreUtils ModulePluggable ];
6572     buildInputs = [ TestException TestMockTime TestNoWarnings ];
6573     meta = {
6574       description = "Flexibly parse strings and turn them into DateTime objects";
6575       license = with lib.licenses; [ artistic1 gpl1Plus ];
6576     };
6577   };
6579   DateTimeFormatHTTP = buildPerlModule {
6580     pname = "DateTime-Format-HTTP";
6581     version = "0.42";
6582     src = fetchurl {
6583       url = "mirror://cpan/authors/id/C/CK/CKRAS/DateTime-Format-HTTP-0.42.tar.gz";
6584       hash = "sha256-0E52nfRZaN/S0b3GR6Mlxod2FAaXYnhubxN/H17D2EA=";
6585     };
6586     propagatedBuildInputs = [ DateTime HTTPDate ];
6587     meta = {
6588       description = "Date conversion routines";
6589       license = with lib.licenses; [ artistic1 gpl1Plus ];
6590     };
6591   };
6593   DateTimeFormatICal = buildPerlModule {
6594     pname = "DateTime-Format-ICal";
6595     version = "0.09";
6596     src = fetchurl {
6597       url = "mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-Format-ICal-0.09.tar.gz";
6598       hash = "sha256-iwn2U59enA3w5hNQMWme1O+e74Fl/ICu/uzIF++ZfDM=";
6599     };
6600     propagatedBuildInputs = [ DateTimeEventICal ];
6601     meta = {
6602       description = "Parse and format iCal datetime and duration strings";
6603       license = with lib.licenses; [ artistic1 gpl1Plus ];
6604     };
6605   };
6607   DateTimeFormatISO8601 = buildPerlPackage {
6608     pname = "DateTime-Format-ISO8601";
6609     version = "0.16";
6610     src = fetchurl {
6611       url = "mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-Format-ISO8601-0.16.tar.gz";
6612       hash = "sha256-WChH9uApBlM0oAVk8gzXwo9OXNTsIVE9D2klMe07VuE=";
6613     };
6614     propagatedBuildInputs = [ DateTimeFormatBuilder ];
6615     buildInputs = [ Test2Suite ];
6616     meta = {
6617       description = "Parses ISO8601 formats";
6618       homepage = "https://metacpan.org/release/DateTime-HiRes";
6619       license = with lib.licenses; [ artistic1 gpl1Plus ];
6620     };
6621   };
6623   DateTimeFormatMail = buildPerlPackage {
6624     pname = "DateTime-Format-Mail";
6625     version = "0.403";
6626     src = fetchurl {
6627       url = "mirror://cpan/authors/id/B/BO/BOOK/DateTime-Format-Mail-0.403.tar.gz";
6628       hash = "sha256-jfjjXER3OI/1x86LPotq5O0wIJx6UFHUFze9FNdV/LA=";
6629     };
6630     propagatedBuildInputs = [ DateTime ParamsValidate ];
6631     meta = {
6632       description = "Convert between DateTime and RFC2822/822 formats";
6633       license = with lib.licenses; [ artistic1 gpl1Plus ];
6634     };
6635   };
6637   DateTimeFormatNatural = buildPerlModule {
6638     pname = "DateTime-Format-Natural";
6639     version = "1.18";
6640     src = fetchurl {
6641       url = "mirror://cpan/authors/id/S/SC/SCHUBIGER/DateTime-Format-Natural-1.18.tar.gz";
6642       hash = "sha256-2TRqRhUDVFnYvO4PrD1OuuoDj09DsoT2nt9z9u1XUf4=";
6643     };
6644     buildInputs = [ ModuleUtil TestMockTimeHiRes ];
6645     propagatedBuildInputs = [ Clone DateTime DateTimeHiRes DateTimeTimeZone ListMoreUtils ParamsValidate boolean ];
6646     meta = {
6647       description = "Parse informal natural language date/time strings";
6648       license = with lib.licenses; [ artistic1 gpl1Plus ];
6649       mainProgram = "dateparse";
6650     };
6651   };
6653   DateTimeFormatMySQL = buildPerlModule {
6654     pname = "DateTime-Format-MySQL";
6655     version = "0.08";
6656     src = fetchurl {
6657       url = "mirror://cpan/authors/id/X/XM/XMIKEW/DateTime-Format-MySQL-0.08.tar.gz";
6658       hash = "sha256-Gctw6YWEZV41TS1qjnHMXKkC3dw6xEQWcS+RY9Eiueg=";
6659     };
6660     propagatedBuildInputs = [ DateTimeFormatBuilder ];
6661     meta = {
6662       description = "Parse and format MySQL dates and times";
6663       license = with lib.licenses; [ artistic1 gpl1Plus ];
6664     };
6665   };
6667   DateTimeFormatPg = buildPerlModule {
6668     pname = "DateTime-Format-Pg";
6669     version = "0.16014";
6670     src = fetchurl {
6671       url = "mirror://cpan/authors/id/D/DM/DMAKI/DateTime-Format-Pg-0.16014.tar.gz";
6672       hash = "sha256-OLuWZlJNw4TDNm9jQsuWVsULrA+XFqPUTxz1Usy+Drk=";
6673     };
6674     propagatedBuildInputs = [ DateTimeFormatBuilder ];
6675     buildInputs = [ ModuleBuildTiny ];
6676     meta = {
6677       description = "Parse and format PostgreSQL dates and times";
6678       homepage = "https://github.com/lestrrat-p5/DateTime-Format-Pg";
6679       license = with lib.licenses; [ artistic1 gpl1Plus ];
6680     };
6681   };
6683   DateTimeFormatStrptime = buildPerlPackage {
6684     pname = "DateTime-Format-Strptime";
6685     version = "1.79";
6686     src = fetchurl {
6687       url = "mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-Format-Strptime-1.79.tar.gz";
6688       hash = "sha256-cB5GgCyG7U2IaVwabay76QszkL7reU84fnx5IwADdXk=";
6689     };
6690     buildInputs = [ TestFatal TestWarnings ];
6691     propagatedBuildInputs = [ DateTime ];
6692     meta = {
6693       description = "Parse and format strp and strf time patterns";
6694       homepage = "https://metacpan.org/release/DateTime-Format-Strptime";
6695       license = with lib.licenses; [ artistic2 ];
6696     };
6697   };
6699   DateTimeFormatSQLite = buildPerlPackage {
6700     pname = "DateTime-Format-SQLite";
6701     version = "0.11";
6702     src = fetchurl {
6703       url = "mirror://cpan/authors/id/C/CF/CFAERBER/DateTime-Format-SQLite-0.11.tar.gz";
6704       hash = "sha256-zB9OCuHTmw1MPd3M/XQjx3xnpwlQxLXsq/jKVTqylLQ=";
6705     };
6706     propagatedBuildInputs = [ DateTimeFormatBuilder ];
6707     meta = {
6708       description = "Parse and format SQLite dates and times";
6709       license = with lib.licenses; [ artistic1 gpl1Plus ];
6710     };
6711   };
6713   DateTimeFormatW3CDTF = buildPerlPackage {
6714     pname = "DateTime-Format-W3CDTF";
6715     version = "0.08";
6716     src = fetchurl {
6717       url = "mirror://cpan/authors/id/G/GW/GWILLIAMS/DateTime-Format-W3CDTF-0.08.tar.gz";
6718       hash = "sha256-3MIAoHOiHLpIEipdrgtqh135PT+MiunURtzdm++qQTo=";
6719     };
6720     propagatedBuildInputs = [ DateTime ];
6721     meta = {
6722       description = "Parse and format W3CDTF datetime strings";
6723       homepage = "https://metacpan.org/release/DateTime-Format-W3CDTF";
6724       license = with lib.licenses; [ artistic1 gpl1Plus ];
6725     };
6726   };
6728   DateTimeHiRes = buildPerlPackage {
6729     pname = "DateTime-HiRes";
6730     version = "0.04";
6731     src = fetchurl {
6732       url = "mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-HiRes-0.04.tar.gz";
6733       hash = "sha256-HCMVkzLDD566VLdeZpK+TeqAUiQ+r/MCbJyQuLZLw5U=";
6734     };
6735     propagatedBuildInputs = [ DateTime ];
6736     meta = {
6737       homepage = "https://metacpan.org/release/DateTime-HiRes";
6738       description = "Create DateTime objects with sub-second current time resolution";
6739       license = with lib.licenses; [ artistic1 gpl1Plus ];
6740     };
6741   };
6743   DateTimeLocale = buildPerlPackage {
6744     pname = "DateTime-Locale";
6745     version = "1.39";
6746     src = fetchurl {
6747       url = "mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-Locale-1.39.tar.gz";
6748       hash = "sha256-EMFFpsfa9xGIZOl0grSun5T5O5QUIS7uiqMLFqgTUQA=";
6749     };
6750     buildInputs = [ CPANMetaCheck FileShareDirInstall IPCSystemSimple PathTiny Test2PluginNoWarnings Test2Suite TestFileShareDir ];
6751     propagatedBuildInputs = [ FileShareDir ParamsValidationCompiler Specio namespaceautoclean ];
6752     meta = {
6753       description = "Localization support for DateTime.pm";
6754       homepage = "https://metacpan.org/release/DateTime-Locale";
6755       license = with lib.licenses; [ artistic1 gpl1Plus ];
6756     };
6757   };
6759   DateTimeFormatRFC3339 = buildPerlPackage rec {
6760     pname = "DateTime-Format-RFC3339";
6761     version = "1.2.0";
6762     src = fetchurl {
6763       url = "mirror://cpan/authors/id/I/IK/IKEGAMI/DateTime-Format-RFC3339-v${version}.tar.gz";
6764       hash = "sha256-E27hIkwxxuAXaSqfXlb9tPcKlfRq7DrYVdN4PeNaDfc=";
6765     };
6766     propagatedBuildInputs = [ DateTime ];
6767     meta = {
6768       description = "Parse and format RFC3339 datetime strings";
6769       homepage = "https://search.cpan.org/dist/DateTime-Format-RFC3339";
6770       license = with lib.licenses; [ cc0 ];
6771     };
6772   };
6774   DateTimeSet = buildPerlModule {
6775     pname = "DateTime-Set";
6776     version = "0.3900";
6777     src = fetchurl {
6778       url = "mirror://cpan/authors/id/F/FG/FGLOCK/DateTime-Set-0.3900.tar.gz";
6779       hash = "sha256-lPQcOSSq/eTvf6a1jgWV1AONisX/1iuhEbE8X028CUY=";
6780     };
6781     propagatedBuildInputs = [ DateTime ParamsValidate SetInfinite ];
6782     meta = {
6783       description = "DateTime set objects";
6784       license = with lib.licenses; [ artistic1 gpl1Plus ];
6785     };
6786   };
6788   DateTimeTimeZone = buildPerlPackage {
6789     pname = "DateTime-TimeZone";
6790     version = "2.60";
6791     src = fetchurl {
6792       url = "mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-TimeZone-2.60.tar.gz";
6793       hash = "sha256-8EYNN5MjkFtXm+1E4UEjejN9wl3Sa2qwxgrCuAYpMj0=";
6794     };
6795     buildInputs = [ TestFatal TestRequires ];
6796     propagatedBuildInputs = [ ClassSingleton ParamsValidationCompiler Specio namespaceautoclean ];
6797     meta = {
6798       description = "Time zone object base class and factory";
6799       homepage = "https://metacpan.org/release/DateTime-TimeZone";
6800       license = with lib.licenses; [ artistic1 gpl1Plus ];
6801     };
6802   };
6804   DateTimeXEasy = buildPerlPackage {
6805     pname = "DateTimeX-Easy";
6806     version = "0.091";
6807     src = fetchurl {
6808       url = "mirror://cpan/authors/id/J/JJ/JJNAPIORK/DateTimeX-Easy-0.091.tar.gz";
6809       hash = "sha256-pfjbvntpZdUD4VJYIBXaKk+B46WGA9/t1Oc9H92s/II=";
6810     };
6811     buildInputs = [ TestMost ];
6812     propagatedBuildInputs = [ DateTimeFormatFlexible DateTimeFormatICal DateTimeFormatNatural TimeDate ];
6813     doCheck = false;
6814     meta = {
6815       description = "Parse a date/time string using the best method available";
6816       license = with lib.licenses; [ artistic1 gpl1Plus ];
6817     };
6818   };
6820   DebugShowStuff = buildPerlModule {
6821     pname = "Debug-ShowStuff";
6822     version = "1.16";
6823     src = fetchurl {
6824       url = "mirror://cpan/authors/id/M/MI/MIKO/Debug-ShowStuff-1.16.tar.gz";
6825       hash = "sha256-pN1dLNfbjqbkhhsZPgJLQYeisO0rmdWHBi37EaXNLLc=";
6826     };
6827     propagatedBuildInputs = [ ClassISA DevelStackTrace StringUtil TermReadKey TextTabularDisplay TieIxHash ];
6828     meta = {
6829       description = "A collection of handy debugging routines for displaying the values of variables with a minimum of coding";
6830       license = with lib.licenses; [ artistic1 gpl1Plus ];
6831     };
6832   };
6834   Deliantra = buildPerlPackage rec {
6835     pname = "Deliantra";
6836     version = "2.01";
6837     src = fetchurl {
6838       url = "mirror://cpan/authors/id/M/ML/MLEHMANN/${pname}-${version}.tar.gz";
6839       hash = "sha256-JxbZsfBWJ9YJQs4GNLnBolEJsWSBgoXUW2Ca6FluKxc=";
6840     };
6841     propagatedBuildInputs = [ AnyEvent CompressLZF JSONXS commonsense ];
6842     meta = {
6843       description = "Deliantra suppport module to read/write archetypes, maps etc";
6844       license = with lib.licenses; [ artistic1 gpl1Plus ];
6845     };
6846   };
6848   DevelCaller = buildPerlPackage {
6849     pname = "Devel-Caller";
6850     version = "2.07";
6851     src = fetchurl {
6852       url = "mirror://cpan/authors/id/R/RC/RCLAMP/Devel-Caller-2.07.tar.gz";
6853       hash = "sha256-tnmisYA0sLcg3oLDcIckw2SxCmyhZMvGfNw68oPzUD8=";
6854     };
6855     propagatedBuildInputs = [ PadWalker ];
6856     meta = {
6857       description = "Meatier versions of caller";
6858       license = with lib.licenses; [ artistic1 gpl1Plus ];
6859     };
6860   };
6862   DevelCheckBin = buildPerlPackage {
6863     pname = "Devel-CheckBin";
6864     version = "0.04";
6865     src = fetchurl {
6866       url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/Devel-CheckBin-0.04.tar.gz";
6867       hash = "sha256-FX89tZwp7R1JEzpGnO53LIha1O5k6GkqkbPr/b4v4+Q=";
6868     };
6869     meta = {
6870       description = "Check that a command is available";
6871       homepage = "https://github.com/tokuhirom/Devel-CheckBin";
6872       license = with lib.licenses; [ artistic1 gpl1Plus ];
6873     };
6874   };
6876   DevelCheckCompiler = buildPerlModule {
6877     pname = "Devel-CheckCompiler";
6878     version = "0.07";
6879     src = fetchurl {
6880       url = "mirror://cpan/authors/id/S/SY/SYOHEX/Devel-CheckCompiler-0.07.tar.gz";
6881       hash = "sha256-dot2l7S41NNyx1B7ZendJqpCI/cQAYO7tNOvRtQ4abU=";
6882     };
6883     buildInputs = [ ModuleBuildTiny ];
6884     meta = {
6885       description = "Check the compiler's availability";
6886       homepage = "https://github.com/tokuhirom/Devel-CheckCompiler";
6887       license = with lib.licenses; [ artistic1 gpl1Plus ];
6888     };
6889   };
6891   DevelChecklib = buildPerlPackage {
6892     pname = "Devel-CheckLib";
6893     version = "1.16";
6894     src = fetchurl {
6895       url = "mirror://cpan/authors/id/M/MA/MATTN/Devel-CheckLib-1.16.tar.gz";
6896       hash = "sha256-hp04wljmRtzvZ2YJ8N18qQ8IX1bPb9cAGwGaXVuDH8o=";
6897     };
6898     buildInputs = [ CaptureTiny MockConfig ];
6899     meta = {
6900       description = "Check that a library is available";
6901       license = with lib.licenses; [ artistic1 gpl1Plus ];
6902     };
6903   };
6905   DevelCheckOS = buildPerlPackage {
6906     pname = "Devel-CheckOS";
6907     version = "1.96";
6908     src = fetchurl {
6909       url = "mirror://cpan/authors/id/D/DC/DCANTRELL/Devel-CheckOS-1.96.tar.gz";
6910       hash = "sha256-+GB5BfT1reSI9+9Et8HnyFI/ure5HS3IMLMa6cqBPfU=";
6911     };
6912     buildInputs = [ TestWarnings ];
6913     propagatedBuildInputs = [ FileFindRule ];
6914     meta = {
6915       description = "Check what OS we're running on";
6916       license = with lib.licenses; [ gpl2Only artistic1 ];
6917     };
6918   };
6920   DevelDeprecationsEnvironmental = buildPerlPackage {
6921     pname = "Devel-Deprecations-Environmental";
6922     version = "1.101";
6923     src = fetchurl {
6924       url = "mirror://cpan/authors/id/D/DC/DCANTRELL/Devel-Deprecations-Environmental-1.101.tar.gz";
6925       hash = "sha256-S+SC08PcOtHvR0P6s4DOuQG3QVZQeVOoNITfadolpqY=";
6926     };
6927     propagatedBuildInputs = [ DevelCheckOS DevelHide TestException TestTime ];
6928     meta = {
6929       description = "A framework for managing deprecations";
6930       homepage = "https://github.com/DrHyde/perl-modules-Devel-Deprecations-Environmental";
6931       license = with lib.licenses; [ gpl2Only artistic1 ];
6932     };
6933   };
6935   DevelLeak = buildPerlPackage rec {
6936     pname = "Devel-Leak";
6937     version = "0.03";
6938     src = fetchurl {
6939       url = "mirror://cpan/authors/id/N/NI/NI-S/Devel-Leak-0.03.tar.gz";
6940       hash = "sha256-b0LDTxHitOPqLg5rlBaoimha3UR5EMr02R3SwXgXclI=";
6941     };
6942     meta = {
6943       description = "Utility for looking for perl objects that are not reclaimed";
6944       homepage = "https://metacpan.org/release/Devel-Leak";
6945       license = with lib.licenses; [ artistic1 gpl1Plus ]; # According to Debian
6946     };
6947   };
6949   DevelPatchPerl = buildPerlPackage {
6950     pname = "Devel-PatchPerl";
6951     version = "2.08";
6952     src = fetchurl {
6953       url = "mirror://cpan/authors/id/B/BI/BINGOS/Devel-PatchPerl-2.08.tar.gz";
6954       hash = "sha256-acbpcBYmD0COnX5Ej5QrNqbUnfWvBzQPHWXX4jAWdBk=";
6955     };
6956     propagatedBuildInputs = [ Filepushd ModulePluggable ];
6957     meta = {
6958       description = "Patch perl source a la Devel::PPPort's buildperl.pl";
6959       homepage = "https://github.com/bingos/devel-patchperl";
6960       license = with lib.licenses; [ artistic1 gpl1Plus ];
6961       mainProgram = "patchperl";
6962     };
6963   };
6965   DevelRefcount = buildPerlModule {
6966     pname = "Devel-Refcount";
6967     version = "0.10";
6968     src = fetchurl {
6969       url = "mirror://cpan/authors/id/P/PE/PEVANS/Devel-Refcount-0.10.tar.gz";
6970       hash = "sha256-tlTUaWPRqIFCa6FZlPKPUuuDmw0TW/I5tNG/OLHKyko=";
6971     };
6972     buildInputs = [ TestFatal ];
6973     meta = {
6974       description = "Obtain the REFCNT value of a referent";
6975       license = with lib.licenses; [ artistic1 gpl1Plus ];
6976     };
6977   };
6979   DevelPPPort = buildPerlPackage {
6980     pname = "Devel-PPPort";
6981     version = "3.68";
6982     src = fetchurl {
6983       url = "mirror://cpan/authors/id/A/AT/ATOOMIC/Devel-PPPort-3.68.tar.gz";
6984       hash = "sha256-UpDVu4TN6enmEROiDGe11HJn645loRmookjMlqrAuts=";
6985     };
6986     meta = {
6987       description = "Perl/Pollution/Portability";
6988       license = with lib.licenses; [ artistic1 gpl1Plus ];
6989     };
6990   };
6992   DevelTrace = buildPerlPackage {
6993     pname = "Devel-Trace";
6994     version = "0.12";
6995     src = fetchurl {
6996       url = "mirror://cpan/authors/id/M/MJ/MJD/Devel-Trace-0.12.tar.gz";
6997       hash = "sha256-9QHK93b/fphvduAlRNbOI0yJdwFzKD8x333MV4AKOGg=";
6998     };
6999     meta = {
7000       description = "Print out each line before it is executed (like sh -x)";
7001       license = with lib.licenses; [ publicDomain ];
7002     };
7003   };
7005   DeviceMAC = buildPerlPackage {
7006     pname = "Device-MAC";
7007     version = "1.00";
7008     src = fetchurl {
7009       url = "mirror://cpan/authors/id/J/JA/JASONK/Device-MAC-1.00.tar.gz";
7010       hash = "sha256-xCGCqahImjFMv+bhyEUvMrO2Jqpsif7h2JJebftk+tU=";
7011     };
7012     buildInputs = [ TestDeep TestDifferences TestException TestMost TestWarn ];
7013     propagatedBuildInputs = [ DeviceOUI Moose ];
7014     meta = {
7015       description = "Handle hardware MAC Addresses (EUI-48 and EUI-64)";
7016       license = with lib.licenses; [ artistic1 gpl1Plus ];
7017       maintainers = [ maintainers.sgo ];
7018     };
7019   };
7021   DeviceOUI = buildPerlPackage {
7022     pname = "Device-OUI";
7023     version = "1.04";
7024     src = fetchurl {
7025       url = "mirror://cpan/authors/id/J/JA/JASONK/Device-OUI-1.04.tar.gz";
7026       hash = "sha256-SzZ+YbH63ed/tvtynzzVrNHUbnEhjZb0Bry6ONQ7S+8=";
7027     };
7028     buildInputs = [ TestException ];
7029     patches = [ ../development/perl-modules/Device-OUI-1.04-hash.patch ];
7030     propagatedBuildInputs = [ ClassAccessorGrouped LWP SubExporter ];
7031     meta = {
7032       description = "Resolve an Organizationally Unique Identifier";
7033       license = with lib.licenses; [ artistic1 gpl1Plus ];
7034       maintainers = [ maintainers.sgo ];
7035     };
7036   };
7038   DBDCSV = buildPerlPackage {
7039     pname = "DBD-CSV";
7040     version = "0.60";
7041     src = fetchurl {
7042       url = "mirror://cpan/authors/id/H/HM/HMBRAND/DBD-CSV-0.60.tgz";
7043       hash = "sha256-AYuDow95mXm8jDwwRMixyAAc32C9w+dGhIgYGVJUtOc=";
7044     };
7045     propagatedBuildInputs = [ DBI SQLStatement TextCSV_XS ];
7046     meta = {
7047       description = "DBI driver for CSV files";
7048       license = with lib.licenses; [ artistic1 gpl1Plus ];
7049     };
7050   };
7052   DBDMock = buildPerlModule {
7053     pname = "DBD-Mock";
7054     version = "1.59";
7055     src = fetchurl {
7056       url = "mirror://cpan/authors/id/J/JL/JLCOOPER/DBD-Mock-1.59.tar.gz";
7057       hash = "sha256-ClqllTq2XPeQaB5sBFLjGK1X2ArCf1dfhJGMYDqkdAY=";
7058     };
7059     propagatedBuildInputs = [ DBI ];
7060     buildInputs = [ ModuleBuildTiny TestException ];
7061     meta = {
7062       description = "Mock database driver for testing";
7063       license = with lib.licenses; [ artistic1 gpl1Plus ];
7064     };
7065   };
7067   DBDSQLite = buildPerlPackage {
7068     pname = "DBD-SQLite";
7069     version = "1.74";
7071     src = fetchurl {
7072       url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/DBD-SQLite-1.74.tar.gz";
7073       hash = "sha256-iZSZfYS5/rRUd5X3h0bGYfty48tqJdvdeJtzH1aIpN0=";
7074     };
7076     propagatedBuildInputs = [ DBI ];
7077     buildInputs = [ pkgs.sqlite ];
7079     patches = [
7080       # Support building against our own sqlite.
7081       ../development/perl-modules/DBD-SQLite/external-sqlite.patch
7083       # Pull upstream fix for test failures against sqlite-3.37.
7084       (fetchpatch {
7085         name = "sqlite-3.37-compat.patch";
7086         url = "https://github.com/DBD-SQLite/DBD-SQLite/commit/ba4f472e7372dbf453444c7764d1c342e7af12b8.patch";
7087         hash = "sha256-nn4JvaIGlr2lUnUC+0ABe9AFrRrC5bfdTQiefo0Pjwo=";
7088       })
7089     ];
7091     makeMakerFlags = [ "SQLITE_INC=${pkgs.sqlite.dev}/include" "SQLITE_LIB=${pkgs.sqlite.out}/lib" ];
7093     postInstall = ''
7094       # Get rid of a pointless copy of the SQLite sources.
7095       rm -rf $out/${perl.libPrefix}/*/*/auto/share
7096     '';
7098     preCheck = "rm t/65_db_config.t"; # do not run failing tests
7100     meta = {
7101       description = "Self Contained SQLite RDBMS in a DBI Driver";
7102       license = with lib.licenses; [ artistic1 gpl1Plus ];
7103       platforms = lib.platforms.unix;
7104     };
7105   };
7107   DBDMariaDB = buildPerlPackage {
7108     pname = "DBD-MariaDB";
7109     version = "1.23";
7110     src = fetchurl {
7111       url = "mirror://cpan/authors/id/P/PA/PALI/DBD-MariaDB-1.23.tar.gz";
7112       hash = "sha256-DQx2xmDd1VVw5I8+L96o9iGmmsDtSBkOjPyvy16bhZ0=";
7113     };
7114     buildInputs = [ pkgs.mariadb-connector-c DevelChecklib TestDeep TestDistManifest TestPod ];
7115     propagatedBuildInputs = [ DBI ];
7116     meta = {
7117       description = "MariaDB and MySQL driver for the Perl5 Database Interface (DBI)";
7118       homepage = "https://github.com/gooddata/DBD-MariaDB";
7119       license = with lib.licenses; [ artistic1 gpl1Plus ];
7120       maintainers = [ maintainers.sgo ];
7121     };
7122   };
7124   DBDmysql = buildPerlPackage {
7125     pname = "DBD-mysql";
7126     version = "4.050";
7128     src = fetchurl {
7129       url = "mirror://cpan/authors/id/D/DV/DVEEDEN/DBD-mysql-4.050.tar.gz";
7130       hash = "sha256-T0hUH/FaCnQF92rcEPgWJ8M5lvv1bJXCbAlERMCSjXg=";
7131     };
7133     buildInputs = [ pkgs.libmysqlclient DevelChecklib TestDeep TestDistManifest TestPod ];
7134     propagatedBuildInputs = [ DBI ];
7136     doCheck = false;
7138   #  makeMakerFlags = "MYSQL_HOME=${mysql}";
7139     meta = {
7140       description = "MySQL driver for the Perl5 Database Interface (DBI)";
7141       license = with lib.licenses; [ artistic1 gpl1Plus ];
7142     };
7143   };
7145   DBDOracle = buildPerlPackage {
7146     pname = "DBD-Oracle";
7147     version = "1.83";
7149     src = fetchurl {
7150       url = "mirror://cpan/authors/id/Z/ZA/ZARQUON/DBD-Oracle-1.83.tar.gz";
7151       hash = "sha256-Uf6cFYlV/aDKkXqAaGPwvFEGi1M/u8dCOzzErVle0VM=";
7152     };
7154     ORACLE_HOME = "${pkgs.oracle-instantclient.lib}/lib";
7156     buildInputs = [ pkgs.oracle-instantclient TestNoWarnings ];
7157     propagatedBuildInputs = [ DBI ];
7159     postBuild = lib.optionalString stdenv.isDarwin ''
7160       install_name_tool -add_rpath "${pkgs.oracle-instantclient.lib}/lib" blib/arch/auto/DBD/Oracle/Oracle.bundle
7161     '';
7162     meta = {
7163       description = "Oracle database driver for the DBI module";
7164       license = with lib.licenses; [ artistic1 gpl1Plus ];
7165     };
7166   };
7168   DBDPg = buildPerlPackage {
7169     pname = "DBD-Pg";
7170     version = "3.17.0";
7172     src = fetchurl {
7173       url = "mirror://cpan/authors/id/T/TU/TURNSTEP/DBD-Pg-3.17.0.tar.gz";
7174       hash = "sha256-jZANTA50nzchh1KmZh+w01V6sfzMjeo4TLWHw4LeIZs=";
7175     };
7177     buildInputs = [ pkgs.postgresql ];
7178     propagatedBuildInputs = [ DBI ];
7180     makeMakerFlags = [ "POSTGRES_HOME=${pkgs.postgresql}" ];
7182     # tests freeze in a sandbox
7183     doCheck = false;
7185     meta = {
7186       description = "DBI PostgreSQL interface";
7187       homepage = "https://search.cpan.org/dist/DBD-Pg";
7188       license = with lib.licenses; [ artistic1 gpl1Plus ];
7189       platforms = lib.platforms.unix;
7190     };
7191   };
7193   DBDsybase = buildPerlPackage {
7194     pname = "DBD-Sybase";
7195     version = "1.23";
7197     src = fetchurl {
7198       url = "mirror://cpan/authors/id/M/ME/MEWP/DBD-Sybase-1.23.tar.gz";
7199       hash = "sha256-B1e6aqyaKaLcOFmV1myPQSqIlo/SNsDYu0ZZAo5OmWU=";
7200     };
7202     SYBASE = pkgs.freetds;
7204     buildInputs = [ pkgs.freetds ];
7205     propagatedBuildInputs = [ DBI ];
7207     doCheck = false;
7209     meta = {
7210       description = "DBI driver for Sybase datasources";
7211       license = with lib.licenses; [ artistic1 gpl1Only ];
7212       broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.DBDsybase.x86_64-darwin
7213     };
7214   };
7216   DBFile = buildPerlPackage {
7217     pname = "DB_File";
7218     version = "1.859";
7220     src = fetchurl {
7221       url = "mirror://cpan/authors/id/P/PM/PMQS/DB_File-1.859.tar.gz";
7222       hash = "sha256-VnTg0s0LBgxNElNnDqAixk2EKlUlf5647bGcD1PiVlw=";
7223     };
7225     preConfigure = ''
7226       cat > config.in <<EOF
7227       PREFIX = size_t
7228       HASH = u_int32_t
7229       LIB = ${pkgs.db.out}/lib
7230       INCLUDE = ${pkgs.db.dev}/include
7231       EOF
7232     '';
7233     meta = {
7234       description = "Perl5 access to Berkeley DB version 1.x";
7235       license = with lib.licenses; [ artistic1 gpl1Plus ];
7236     };
7237   };
7239   DBI = buildPerlPackage {
7240     pname = "DBI";
7241     version = "1.643";
7242     src = fetchurl {
7243       url = "mirror://cpan/authors/id/T/TI/TIMB/DBI-1.643.tar.gz";
7244       hash = "sha256-iiuZPbVgosNzwXTul2pRAn3XgOx2auF2IMIDk9LoNvo=";
7245     };
7246     postInstall = lib.optionalString (perl ? crossVersion) ''
7247       mkdir -p $out/${perl.libPrefix}/cross_perl/${perl.version}/DBI
7248       cat > $out/${perl.libPrefix}/cross_perl/${perl.version}/DBI.pm <<EOF
7249       package DBI;
7250       BEGIN {
7251       our \$VERSION = "$version";
7252       }
7253       1;
7254       EOF
7256       autodir=$(echo $out/${perl.libPrefix}/${perl.version}/*/auto/DBI)
7257       cat > $out/${perl.libPrefix}/cross_perl/${perl.version}/DBI/DBD.pm <<EOF
7258       package DBI::DBD;
7259       use Exporter ();
7260       use vars qw (@ISA @EXPORT);
7261       @ISA = qw(Exporter);
7262       @EXPORT = qw(dbd_postamble);
7263       sub dbd_postamble {
7264           return '
7265       # --- This section was generated by DBI::DBD::dbd_postamble()
7266       DBI_INSTARCH_DIR=$autodir
7267       DBI_DRIVER_XST=$autodir/Driver.xst
7269       # The main dependency (technically correct but probably not used)
7270       \$(BASEEXT).c: \$(BASEEXT).xsi
7272       # This dependency is needed since MakeMaker uses the .xs.o rule
7273       \$(BASEEXT)\$(OBJ_EXT): \$(BASEEXT).xsi
7275       \$(BASEEXT).xsi: \$(DBI_DRIVER_XST) $autodir/Driver_xst.h
7276       ''\t\$(PERL) -p -e "s/~DRIVER~/\$(BASEEXT)/g" \$(DBI_DRIVER_XST) > \$(BASEEXT).xsi
7278       # ---
7279       ';
7280       }
7281       1;
7282       EOF
7283     '';
7284     meta = {
7285       description = "Database independent interface for Perl";
7286       homepage = "https://dbi.perl.org";
7287       license = with lib.licenses; [ artistic1 gpl1Plus ];
7288     };
7289   };
7291   DBICxTestDatabase = buildPerlPackage {
7292     pname = "DBICx-TestDatabase";
7293     version = "0.05";
7294     src = fetchurl {
7295       url = "mirror://cpan/authors/id/J/JR/JROCKWAY/DBICx-TestDatabase-0.05.tar.gz";
7296       hash = "sha256-jjvCUwsBIWGIw6plrNvS9ZxOYx864IXfxDmr2J+PCs8=";
7297     };
7298     buildInputs = [ DBIxClass TestSimple13 ];
7299     propagatedBuildInputs = [ DBDSQLite SQLTranslator ];
7300     meta = {
7301       description = "Create a temporary database from a DBIx::Class::Schema";
7302       homepage = "https://metacpan.org/pod/DBICx::TestDatabase";
7303       license = with lib.licenses; [ artistic1 gpl1Plus ];
7304       maintainers = [ maintainers.sgo ];
7305     };
7306   };
7308   DBIxClass = buildPerlPackage {
7309     pname = "DBIx-Class";
7310     version = "0.082843";
7311     src = fetchurl {
7312       url = "mirror://cpan/authors/id/R/RI/RIBASUSHI/DBIx-Class-0.082843.tar.gz";
7313       hash = "sha256-NB4Lbssp2MSRdKbAnXxtvzhym6QBXuf9cDYKT/7h8lE=";
7314     };
7315     buildInputs = [ DBDSQLite TestDeep TestException TestWarn ];
7316     propagatedBuildInputs = [ ClassAccessorGrouped ClassC3Componentised ConfigAny ContextPreserve DBI DataDumperConcise DataPage DevelGlobalDestruction ModuleFind PathClass SQLAbstractClassic ScopeGuard SubName namespaceclean ];
7317     meta = {
7318       description = "Extensible and flexible object <-> relational mapper";
7319       homepage = "https://metacpan.org/pod/DBIx::Class";
7320       license = with lib.licenses; [ artistic1 gpl1Plus ];
7321       mainProgram = "dbicadmin";
7322     };
7323   };
7325   DBIxClassCandy = buildPerlPackage {
7326     pname = "DBIx-Class-Candy";
7327     version = "0.005003";
7328     src = fetchurl {
7329       url = "mirror://cpan/authors/id/F/FR/FREW/DBIx-Class-Candy-0.005003.tar.gz";
7330       hash = "sha256-uKIpp7FfVZCV1FYc+CIEYBKFQbp/w1Re01hpkj1GVlw=";
7331     };
7332     buildInputs = [ TestDeep TestFatal ];
7333     propagatedBuildInputs = [ DBIxClass LinguaENInflect SubExporter ];
7334     meta = {
7335       description = "Sugar for your favorite ORM, DBIx::Class";
7336       homepage = "https://github.com/frioux/DBIx-Class-Candy";
7337       license = with lib.licenses; [ artistic1 gpl1Plus ];
7338     };
7339   };
7341   DBIxClassCursorCached = buildPerlPackage {
7342     pname = "DBIx-Class-Cursor-Cached";
7343     version = "1.001004";
7344     src = fetchurl {
7345       url = "mirror://cpan/authors/id/A/AR/ARCANEZ/DBIx-Class-Cursor-Cached-1.001004.tar.gz";
7346       hash = "sha256-NwhSMqEjClqodUOZ+1mw+PzV9Zeh4uNIxSJ0YaGSYiU=";
7347     };
7348     buildInputs = [ CacheCache DBDSQLite ];
7349     propagatedBuildInputs = [ CarpClan DBIxClass ];
7350     meta = {
7351       description = "Cursor class with built-in caching support";
7352       license = with lib.licenses; [ artistic1 gpl1Plus ];
7353     };
7354   };
7356   DBIxClassDynamicDefault = buildPerlPackage {
7357     pname = "DBIx-Class-DynamicDefault";
7358     version = "0.04";
7359     src = fetchurl {
7360       url = "mirror://cpan/authors/id/M/MS/MSTROUT/DBIx-Class-DynamicDefault-0.04.tar.gz";
7361       hash = "sha256-Io9RqyJGQlhLTcY9tt4mZ8W/riqJSpN2shChBIBqWvs=";
7362     };
7363     buildInputs = [ DBICxTestDatabase ];
7364     propagatedBuildInputs = [ DBIxClass ];
7365     meta = {
7366       description = "Automatically set and update fields";
7367       homepage = "https://metacpan.org/pod/DBIx::Class::DynamicDefault";
7368       license = with lib.licenses; [ artistic1 gpl1Plus ];
7369       maintainers = [ maintainers.sgo ];
7370     };
7371   };
7373   DBIxClassHTMLWidget = buildPerlPackage {
7374     pname = "DBIx-Class-HTMLWidget";
7375     version = "0.16";
7376     src = fetchurl {
7377       url = "mirror://cpan/authors/id/A/AN/ANDREMAR/DBIx-Class-HTMLWidget-0.16.tar.gz";
7378       hash = "sha256-QUJ1YyFu31qTllCQrg4chaldN6gdcg8CwTYM+n208Bc=";
7379     };
7380     propagatedBuildInputs = [ DBIxClass HTMLWidget ];
7381     meta = {
7382       description = "Like FromForm but with DBIx::Class and HTML::Widget";
7383       license = with lib.licenses; [ artistic1 gpl1Plus ];
7384     };
7385   };
7387   DBIxClassHelpers = buildPerlPackage {
7388     pname = "DBIx-Class-Helpers";
7389     version = "2.036000";
7390     src = fetchurl {
7391       url = "mirror://cpan/authors/id/F/FR/FREW/DBIx-Class-Helpers-2.036000.tar.gz";
7392       hash = "sha256-t7i0iRqYPANO8LRfQRJASgpAVQxOIX2ut6IsoWhh79s=";
7393     };
7394     buildInputs = [ DBDSQLite DateTimeFormatSQLite TestDeep TestFatal TestRoo aliased ];
7395     propagatedBuildInputs = [ CarpClan DBIxClassCandy DBIxIntrospector SafeIsa TextBrew ];
7396     meta = {
7397       description = "Simplify the common case stuff for DBIx::Class";
7398       homepage = "https://github.com/frioux/DBIx-Class-Helpers";
7399       license = with lib.licenses; [ artistic1 gpl1Plus ];
7400     };
7401   };
7403   DBIxClassInflateColumnSerializer = buildPerlPackage {
7404     pname = "DBIx-Class-InflateColumn-Serializer";
7405     version = "0.09";
7406     src = fetchurl {
7407       url = "mirror://cpan/authors/id/M/MR/MRUIZ/DBIx-Class-InflateColumn-Serializer-0.09.tar.gz";
7408       hash = "sha256-YmK0hx22psRaDL583o8biQsiwpGt1OzEDKruq1o6b1A=";
7409     };
7410     buildInputs = [ DBDSQLite TestException ];
7411     propagatedBuildInputs = [ DBIxClass JSONMaybeXS YAML ];
7412     meta = {
7413       description = "Inflators to serialize data structures for DBIx::Class";
7414       homepage = "https://metacpan.org/release/DBIx-Class-InflateColumn-Serializer";
7415       license = with lib.licenses; [ artistic1 gpl1Plus ];
7416       maintainers = [ maintainers.sgo ];
7417     };
7418   };
7420   DBIxClassIntrospectableM2M = buildPerlPackage {
7421     pname = "DBIx-Class-IntrospectableM2M";
7422     version = "0.001002";
7423     src = fetchurl {
7424       url = "mirror://cpan/authors/id/I/IL/ILMARI/DBIx-Class-IntrospectableM2M-0.001002.tar.gz";
7425       hash = "sha256-xrqvtCQWk/2zSynr2QaZOt02S/Mar6RGLz4GIgTMh/A=";
7426     };
7427     propagatedBuildInputs = [ DBIxClass ];
7428     meta = {
7429       description = "Introspect many-to-many relationships";
7430       license = with lib.licenses; [ artistic1 gpl1Plus ];
7431     };
7432   };
7434   DBIxClassSchemaLoader = buildPerlPackage {
7435     pname = "DBIx-Class-Schema-Loader";
7436     version = "0.07051";
7437     src = fetchurl {
7438       url = "mirror://cpan/authors/id/V/VE/VEESH/DBIx-Class-Schema-Loader-0.07051.tar.gz";
7439       hash = "sha256-GgieUISlJ2j0J0vCGB3LrhTcxXnk2YD89WnGeBsGCSw=";
7440     };
7441     buildInputs = [ DBDSQLite TestDeep TestDifferences TestException TestWarn ];
7442     propagatedBuildInputs = [ CarpClan ClassUnload DBIxClass DataDump StringCamelCase StringToIdentifierEN curry ];
7443     meta = {
7444       description = "Create a DBIx::Class::Schema based on a database";
7445       license = with lib.licenses; [ artistic1 gpl1Plus ];
7446       mainProgram = "dbicdump";
7447     };
7448   };
7450   DBIxConnector = buildPerlPackage {
7451     pname = "DBIx-Connector";
7452     version = "0.59";
7453     src = fetchurl {
7454       url = "mirror://cpan/authors/id/A/AR/ARISTOTLE/DBIx-Connector-0.59.tar.gz";
7455       hash = "sha256-eCmU8T9JVVhAU4SU+EBrC/JVj1M8zahsjSuV4jAQh/Q=";
7456     };
7457     buildInputs = [ TestMockModule ];
7458     propagatedBuildInputs = [ DBI ];
7459     meta = {
7460       description = "Fast, safe DBI connection and transaction management";
7461       license = with lib.licenses; [ artistic1 gpl1Plus ];
7462     };
7463   };
7465   DBIxDBSchema = buildPerlPackage {
7466     pname = "DBIx-DBSchema";
7467     version = "0.47";
7468     src = fetchurl {
7469       url = "mirror://cpan/authors/id/I/IV/IVAN/DBIx-DBSchema-0.47.tar.gz";
7470       hash = "sha256-7u4hDcFKjWPrAawtZsZ6HcJ5+Sib6WphckyJUXkcUhI=";
7471     };
7472     propagatedBuildInputs = [ DBI ];
7473     meta = {
7474       description = "Database-independent schema objects";
7475       license = with lib.licenses; [ artistic1 gpl1Plus ];
7476     };
7477   };
7479   DBIxSearchBuilder = buildPerlPackage {
7480     pname = "DBIx-SearchBuilder";
7481     version = "1.77";
7482     src = fetchurl {
7483       url = "mirror://cpan/authors/id/B/BP/BPS/DBIx-SearchBuilder-1.77.tar.gz";
7484       hash = "sha256-O/il1cjF/cYK0vY/Y/c90fZJP/TYJYcoOj4iM36P4HA=";
7485     };
7486     buildInputs = [ DBDSQLite ];
7487     propagatedBuildInputs = [ CacheSimpleTimedExpiry ClassAccessor ClassReturnValue Clone DBIxDBSchema Want capitalization ];
7488     meta = {
7489       description = "Encapsulate SQL queries and rows in simple perl objects";
7490       license = with lib.licenses; [ artistic1 gpl1Plus ];
7491     };
7492   };
7494   DBIxSimple = buildPerlPackage {
7495     pname = "DBIx-Simple";
7496     version = "1.37";
7497     src = fetchurl {
7498       url = "mirror://cpan/authors/id/J/JU/JUERD/DBIx-Simple-1.37.tar.gz";
7499       hash = "sha256-RtMRqizgiQdAHFYRllhCbbsETFpA3nPZp7eb9QOQyuM=";
7500     };
7501     propagatedBuildInputs = [ DBI ];
7502     meta = {
7503       description = "Very complete easy-to-use OO interface to DBI";
7504       license = with lib.licenses; [ artistic1 gpl1Plus ];
7505     };
7506   };
7508   DBMDeep = buildPerlPackage {
7509     pname = "DBM-Deep";
7510     version = "2.0017";
7511     src = fetchurl {
7512       url = "mirror://cpan/authors/id/D/DC/DCANTRELL/DBM-Deep-2.0017.tar.gz";
7513       hash = "sha256-1yNFIFdVO72UXWMhXr/gqnepLsbg+jOw2spXrhuKTSQ=";
7514     };
7515     buildInputs = [ TestDeep TestException TestPod TestPodCoverage TestWarn ];
7516     meta = {
7517       description = "A pure perl multi-level hash/array DBM that supports transactions";
7518       homepage = "https://github.com/robkinyon/dbm-deep";
7519       license = with lib.licenses; [ artistic1 gpl1Plus ];
7520     };
7521   };
7523   DataBinary = buildPerlPackage {
7524     pname = "Data-Binary";
7525     version = "0.01";
7526     src = fetchurl {
7527       url = "mirror://cpan/authors/id/S/SN/SNKWATT/Data-Binary-0.01.tar.gz";
7528       hash = "sha256-SCGi3hCscQj03LKEpxuHaYGwyx6mxe1q+xd78ufLjXM=";
7529     };
7530     meta = {
7531       description = "Simple detection of binary versus text in strings";
7532       license = with lib.licenses; [ artistic2 ];
7533     };
7534   };
7536   DataBuffer = buildPerlPackage {
7537     pname = "Data-Buffer";
7538     version = "0.04";
7539     src = fetchurl {
7540       url = "mirror://cpan/authors/id/B/BT/BTROTT/Data-Buffer-0.04.tar.gz";
7541       hash = "sha256-Kz0Jt7zzifwRYgeyg77iUONI1EycY0YL7mfvq03SG7Q=";
7542     };
7543     meta = {
7544       description = "Read/write buffer class";
7545       license = with lib.licenses; [ artistic1 gpl1Plus ];
7546       maintainers = [ maintainers.sgo ];
7547     };
7548   };
7550   DBIxIntrospector = buildPerlPackage {
7551     pname = "DBIx-Introspector";
7552     version = "0.001005";
7553     src = fetchurl {
7554       url = "mirror://cpan/authors/id/F/FR/FREW/DBIx-Introspector-0.001005.tar.gz";
7555       hash = "sha256-lqlNLMaQwfqP00ET47CEvypGmjI6l4AoWu+S3cOB5jo=";
7556     };
7558     propagatedBuildInputs = [ DBI Moo ];
7559     buildInputs = [ DBDSQLite TestFatal TestRoo ];
7560     meta = {
7561       description = "Detect what database you are connected to";
7562       license = with lib.licenses; [ artistic1 gpl1Plus ];
7563     };
7564   };
7566   DevelCamelcadedb = buildPerlPackage {
7567     pname = "Devel-Camelcadedb";
7568     version = "2023.1";
7569     src = fetchurl {
7570       url = "mirror://cpan/authors/id/H/HU/HURRICUP/Devel-Camelcadedb-v2023.1.tar.gz";
7571       hash = "sha256-z/jSTllF45RN6/ITmVprFVuR5YE0aRVrE9Ws819qXZ8=";
7572     };
7573     propagatedBuildInputs = [ HashStoredIterator JSONXS PadWalker ];
7574     perlPreHook = lib.optionalString stdenv.isDarwin "export LD=$CC";
7575     meta = {
7576       description = "Perl side of the Perl debugger for IntelliJ IDEA and other JetBrains IDEs";
7577       license = with lib.licenses; [ mit ];
7578     };
7579   };
7581   DevelCycle = buildPerlPackage {
7582     pname = "Devel-Cycle";
7583     version = "1.12";
7584     src = fetchurl {
7585       url = "mirror://cpan/authors/id/L/LD/LDS/Devel-Cycle-1.12.tar.gz";
7586       hash = "sha256-/TNlxNiYsrK927eKRtUHoYzKhJCikBmVR9q38ec5C8I=";
7587     };
7588     meta = {
7589       description = "Find memory cycles in objects";
7590       license = with lib.licenses; [ artistic1 gpl1Plus ];
7591     };
7592   };
7594   DevelDeclare = buildPerlPackage {
7595     pname = "Devel-Declare";
7596     version = "0.006022";
7597     src = fetchurl {
7598       url = "mirror://cpan/authors/id/E/ET/ETHER/Devel-Declare-0.006022.tar.gz";
7599       hash = "sha256-cvKco1ZGpZO+mDEf/dtyAzrh6KnYJUxiqiSL1iYOWW4=";
7600     };
7601     buildInputs = [ ExtUtilsDepends TestRequires ];
7602     propagatedBuildInputs = [ BHooksEndOfScope BHooksOPCheck SubName ];
7603     meta = {
7604       description = "(DEPRECATED) Adding keywords to perl, in perl";
7605       license = with lib.licenses; [ artistic1 gpl1Plus ];
7606     };
7607   };
7609   DevelFindPerl = buildPerlPackage {
7610     pname = "Devel-FindPerl";
7611     version = "0.016";
7612     src = fetchurl {
7613       url = "mirror://cpan/authors/id/L/LE/LEONT/Devel-FindPerl-0.016.tar.gz";
7614       hash = "sha256-Q6K/L3h6PxuIEXkGMWKyqj58sET25eduxkZq6QqGETg=";
7615     };
7616     meta = {
7617       description = "Find the path to your perl";
7618       license = with lib.licenses; [ artistic1 gpl1Plus ];
7619     };
7620   };
7622   DevelGlobalDestruction = buildPerlPackage {
7623     pname = "Devel-GlobalDestruction";
7624     version = "0.14";
7625     src = fetchurl {
7626       url = "mirror://cpan/authors/id/H/HA/HAARG/Devel-GlobalDestruction-0.14.tar.gz";
7627       hash = "sha256-NLil8pmRMRRo/mkTytq6df1dKws+47tB/ltT76uRVKs=";
7628     };
7629     propagatedBuildInputs = [ SubExporterProgressive ];
7630     meta = {
7631       description = "Provides function returning the equivalent of \${^GLOBAL_PHASE} eq 'DESTRUCT' for older perls";
7632       homepage = "https://metacpan.org/release/Devel-GlobalDestruction";
7633       license = with lib.licenses; [ artistic1 gpl1Plus ];
7634     };
7635   };
7637   DevelGlobalPhase = buildPerlPackage {
7638     pname = "Devel-GlobalPhase";
7639     version = "0.003003";
7640     src = fetchurl {
7641       url = "mirror://cpan/authors/id/H/HA/HAARG/Devel-GlobalPhase-0.003003.tar.gz";
7642       hash = "sha256-jaMCL3ynHf2/SqYGmJRNcgCsMUn0c32KnJG/Q4f/MvU=";
7643     };
7644     meta = {
7645       description = "Detect perl's global phase on older perls";
7646       license = with lib.licenses; [ artistic1 gpl1Plus ];
7647     };
7648   };
7650   DevelHide = buildPerlPackage {
7651     pname = "Devel-Hide";
7652     version = "0.0015";
7653     src = fetchurl {
7654       url = "mirror://cpan/authors/id/D/DC/DCANTRELL/Devel-Hide-0.0015.tar.gz";
7655       hash = "sha256-/I2+t/fXWnjtSWseDgXPyZxorKs6LpLP8VXKXw+l31g=";
7656     };
7657     meta = {
7658       description = "Forces the unavailability of specified Perl modules (for testing)";
7659       license = with lib.licenses; [ artistic1 gpl1Plus ];
7660     };
7661   };
7663   DevelNYTProf = buildPerlPackage {
7664     pname = "Devel-NYTProf";
7665     version = "6.12";
7666     src = fetchurl {
7667       url = "mirror://cpan/authors/id/J/JK/JKEENAN/Devel-NYTProf-6.12.tar.gz";
7668       hash = "sha256-qDtZheTalr24X1McFqtvPUkHGnM80JSqMPqF+2pLAsQ=";
7669     };
7670     propagatedBuildInputs = [ FileWhich JSONMaybeXS ];
7671     buildInputs = [ CaptureTiny TestDifferences ];
7672     nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang;
7673     postInstall = lib.optionalString stdenv.isDarwin ''
7674       shortenPerlShebang $out/bin/*
7675     '';
7676     meta = {
7677       description = "Powerful fast feature-rich Perl source code profiler";
7678       homepage = "https://code.google.com/p/perl-devel-nytprof";
7679       license = with lib.licenses; [ artistic1 gpl1Plus ];
7680     };
7681   };
7683   DevelOverloadInfo = buildPerlPackage {
7684     pname = "Devel-OverloadInfo";
7685     version = "0.007";
7686     src = fetchurl {
7687       url = "mirror://cpan/authors/id/I/IL/ILMARI/Devel-OverloadInfo-0.007.tar.gz";
7688       hash = "sha256-IaGEFjuQ+R8G/8f13guWg1ZUaum0AKnXXFc8lYwkYiI=";
7689     };
7690     propagatedBuildInputs = [ MROCompat PackageStash SubIdentify ];
7691     buildInputs = [ TestFatal ];
7692     meta = {
7693       description = "Introspect overloaded operators";
7694       license = with lib.licenses; [ artistic1 gpl1Plus ];
7695     };
7696   };
7698   DevelOverrideGlobalRequire = buildPerlPackage {
7699     pname = "Devel-OverrideGlobalRequire";
7700     version = "0.001";
7701     src = fetchurl {
7702       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Devel-OverrideGlobalRequire-0.001.tar.gz";
7703       hash = "sha256-B5GJLeOuKSr0qU44LyHbHuiCEIdQMYUebqgsNBB4Xvk=";
7704     };
7705     meta = {
7706       homepage = "https://metacpan.org/release/Devel-OverrideGlobalRequire";
7707       description = "Override CORE::GLOBAL::require safely";
7708       license = with lib.licenses; [ artistic1 gpl1Plus ];
7709     };
7710   };
7712   DevelPartialDump = buildPerlPackage {
7713     pname = "Devel-PartialDump";
7714     version = "0.20";
7715     src = fetchurl {
7716       url = "mirror://cpan/authors/id/E/ET/ETHER/Devel-PartialDump-0.20.tar.gz";
7717       hash = "sha256-rvD/PqWalpGWfCiFEY/2ZxVghJVwicQ4j0nbZG/T2Qc=";
7718     };
7719     propagatedBuildInputs = [ ClassTiny SubExporter namespaceclean ];
7720     buildInputs = [ TestSimple13 TestWarnings ];
7721     meta = {
7722       description = "Partial dumping of data structures, optimized for argument printing";
7723       license = with lib.licenses; [ artistic1 gpl1Plus ];
7724     };
7725   };
7727   DevelStackTrace = buildPerlPackage {
7728     pname = "Devel-StackTrace";
7729     version = "2.04";
7730     src = fetchurl {
7731       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Devel-StackTrace-2.04.tar.gz";
7732       hash = "sha256-zTwD7VR9PULGH6WBTJgpYTk5LnlxwJLgmkMfLJ9daFU=";
7733     };
7734     meta = {
7735       description = "An object representing a stack trace";
7736       homepage = "https://metacpan.org/release/Devel-StackTrace";
7737       license = with lib.licenses; [ artistic2 ];
7738     };
7739   };
7741   DevelSize = buildPerlPackage {
7742     pname = "Devel-Size";
7743     version = "0.83";
7744     src = fetchurl {
7745       url = "mirror://cpan/authors/id/N/NW/NWCLARK/Devel-Size-0.83.tar.gz";
7746       hash = "sha256-dXpn4KpZrhA+pcoJLL7MAlZE69wyZzFoj/q2+II+9LM=";
7747     };
7748     meta = {
7749       description = "Perl extension for finding the memory usage of Perl variables";
7750       license = with lib.licenses; [ artistic1 gpl1Plus ];
7751     };
7752   };
7754   DevelStackTraceAsHTML = buildPerlPackage {
7755     pname = "Devel-StackTrace-AsHTML";
7756     version = "0.15";
7757     src = fetchurl {
7758       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Devel-StackTrace-AsHTML-0.15.tar.gz";
7759       hash = "sha256-YoPb4hl+LyAAnMS0SZl3Qhac3ZUb/ETLxuYsKpYtMUc=";
7760     };
7761     propagatedBuildInputs = [ DevelStackTrace ];
7762     meta = {
7763       description = "Displays stack trace in HTML";
7764       homepage = "https://github.com/miyagawa/Devel-StackTrace-AsHTML";
7765       license = with lib.licenses; [ artistic1 gpl1Plus ];
7766     };
7767   };
7769   DevelSymdump = buildPerlPackage {
7770     pname = "Devel-Symdump";
7771     version = "2.18";
7772     src = fetchurl {
7773       url = "mirror://cpan/authors/id/A/AN/ANDK/Devel-Symdump-2.18.tar.gz";
7774       hash = "sha256-gm+BoQf1WSolFnZu1DvrR+EMyD7cnqSAkLAqNgQHdsA=";
7775     };
7776     meta = {
7777       description = "Dump symbol names or the symbol table";
7778       license = with lib.licenses; [ artistic1 gpl1Plus ];
7779     };
7780   };
7782   DigestCRC = buildPerlPackage {
7783     pname = "Digest-CRC";
7784     version = "0.24";
7785     src = fetchurl {
7786       url = "mirror://cpan/authors/id/O/OL/OLIMAUL/Digest-CRC-0.24.tar.gz";
7787       hash = "sha256-ugIqBbGtvsc3EsRvIz2Eif4Tobn8QKH8zu2bUvkN78E=";
7788     };
7789     meta = {
7790       description = "Module that calculates CRC sums of all sorts";
7791       license = with lib.licenses; [ publicDomain ];
7792     };
7793   };
7795   DigestHMAC = buildPerlPackage {
7796     pname = "Digest-HMAC";
7797     version = "1.04";
7798     src = fetchurl {
7799       url = "mirror://cpan/authors/id/A/AR/ARODLAND/Digest-HMAC-1.04.tar.gz";
7800       hash = "sha256-1ryBVqonXETXlLfBj0TNrEpYFAJFyVnmsZssODiwjtQ=";
7801     };
7802     meta = {
7803       description = "Keyed-Hashing for Message Authentication";
7804       homepage = "https://metacpan.org/release/Digest-HMAC";
7805       license = with lib.licenses; [ artistic1 gpl1Plus ];
7806     };
7807   };
7809   DigestJHash = buildPerlPackage {
7810     pname = "Digest-JHash";
7811     version = "0.10";
7812     src = fetchurl {
7813       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Digest-JHash-0.10.tar.gz";
7814       hash = "sha256-x0bPCoYaAECQJjzVTXco0MdZWgz5DLv9hAmzlu47AGM=";
7815     };
7816     meta = {
7817       description = "Perl extension for 32 bit Jenkins Hashing Algorithm";
7818       license = with lib.licenses; [ artistic2 ];
7819     };
7820   };
7822   DigestMD2 = buildPerlPackage {
7823     pname = "Digest-MD2";
7824     version = "2.04";
7825     src = fetchurl {
7826       url = "mirror://cpan/authors/id/G/GA/GAAS/Digest-MD2-2.04.tar.gz";
7827       hash = "sha256-0Kq/SDTCCsQRvqQnxKMItZpfyqMnZ571KUwdaKtx7tM=";
7828     };
7829     meta = {
7830       description = "Perl interface to the MD2 Algorithm";
7831       license = with lib.licenses; [ artistic1 gpl1Plus ];
7832       maintainers = [ maintainers.sgo ];
7833     };
7834   };
7836   DigestMD4 = buildPerlPackage {
7837     pname = "Digest-MD4";
7838     version = "1.9";
7839     src = fetchurl {
7840       url = "mirror://cpan/authors/id/M/MI/MIKEM/DigestMD4/Digest-MD4-1.9.tar.gz";
7841       hash = "sha256-ZlEQu6MkcPOY8xHNZGL9iXXXyDZ1/2dLwvbHtysMqqY=";
7842     };
7843     meta = {
7844       description = "Perl interface to the MD4 Algorithm";
7845       license = with lib.licenses; [ artistic1 gpl1Plus ];
7846     };
7847   };
7849   DigestMD5File = buildPerlPackage {
7850     pname = "Digest-MD5-File";
7851     version = "0.08";
7852     src = fetchurl {
7853       url = "mirror://cpan/authors/id/D/DM/DMUEY/Digest-MD5-File-0.08.tar.gz";
7854       hash = "sha256-rbQ6VOMmJ7T35XyWQObrBtC7edjqVM0L157TVoj7Ehg=";
7855     };
7856     propagatedBuildInputs = [ LWP ];
7857     meta = {
7858       description = "Perl extension for getting MD5 sums for files and urls";
7859       license = with lib.licenses; [ artistic1 gpl1Plus ];
7860     };
7861   };
7863   DigestPerlMD5 = buildPerlPackage {
7864     pname = "Digest-Perl-MD5";
7865     version = "1.9";
7866     src = fetchurl {
7867       url = "mirror://cpan/authors/id/D/DE/DELTA/Digest-Perl-MD5-1.9.tar.gz";
7868       hash = "sha256-cQDLoXEPRfsOkH2LGnvYyu81xkrNMdfyJa/1r/7s2bE=";
7869     };
7870     meta = {
7871       description = "Perl Implementation of Rivest's MD5 algorithm";
7872       license = with lib.licenses; [ artistic1 gpl1Plus ];
7873     };
7874   };
7876   DigestSHA1 = buildPerlPackage {
7877     pname = "Digest-SHA1";
7878     version = "2.13";
7879     src = fetchurl {
7880       url = "mirror://cpan/authors/id/G/GA/GAAS/Digest-SHA1-2.13.tar.gz";
7881       hash = "sha256-aMHawhh0IfDrer9xRSoG8ZAYG4/Eso7e31uQKW+5Q8w=";
7882     };
7883     meta = {
7884       description = "Perl interface to the SHA-1 algorithm";
7885       license = with lib.licenses; [ artistic1 gpl1Plus ];
7886     };
7887   };
7889   DigestSHA3 = buildPerlPackage {
7890     pname = "Digest-SHA3";
7891     version = "1.05";
7892     src = fetchurl {
7893       url = "mirror://cpan/authors/id/M/MS/MSHELOR/Digest-SHA3-1.05.tar.gz";
7894       hash = "sha256-rfG5B5sreBdV5XBId6FDCl8SmX6oIgX9KWbJzEZahSI=";
7895     };
7896     meta = {
7897       description = "Perl extension for SHA-3";
7898       homepage = "https://metacpan.org/release/Digest-SHA3";
7899       license = with lib.licenses; [ artistic1 gpl1Plus ];
7900       maintainers = [ maintainers.sgo ];
7901       mainProgram = "sha3sum";
7902     };
7903   };
7905   DigestSRI = buildPerlPackage {
7906     pname = "Digest-SRI";
7907     version = "0.02";
7908     src = fetchurl {
7909       url = "mirror://cpan/authors/id/H/HA/HAUKEX/Digest-SRI-0.02.tar.gz";
7910       hash = "sha256-VITN/m68OYwkZfeBx3w++1OKOULNSyDWiBjG//kHT8c=";
7911     };
7912     meta = {
7913       description = "Calculate and verify Subresource Integrity hashes (SRI)";
7914       homepage = "https://github.com/haukex/Digest-SRI";
7915       license = with lib.licenses; [ gpl3Plus ];
7916     };
7917   };
7919   DirManifest = buildPerlModule {
7920     pname = "Dir-Manifest";
7921     version = "0.6.1";
7922     src = fetchurl {
7923       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Dir-Manifest-0.6.1.tar.gz";
7924       hash = "sha256-hP9yJoc9XoZW7Hc0TAg4wVOp8BW0a2Dh/oeYuykn5QU=";
7925     };
7926     propagatedBuildInputs = [ Moo PathTiny ];
7927     meta = {
7928       description = "Treat a directory and a manifest file as a hash/dictionary of keys to texts or blobs";
7929       homepage = "https://metacpan.org/release/Dir-Manifest";
7930       license = with lib.licenses; [ mit ];
7931     };
7932   };
7934   DirSelf = buildPerlPackage {
7935     pname = "Dir-Self";
7936     version = "0.11";
7937     src = fetchurl {
7938       url = "mirror://cpan/authors/id/M/MA/MAUKE/Dir-Self-0.11.tar.gz";
7939       hash = "sha256-4lGlGrx9m6PnCPc8KqII4J1HoMUo1iVHEPp4zI1ohbU=";
7940     };
7941     meta = {
7942       description = "A __DIR__ constant for the directory your source file is in";
7943       homepage = "https://github.com/mauke/Dir-Self";
7944       license = with lib.licenses; [ artistic1 gpl1Plus ];
7945     };
7946   };
7948   DispatchClass = buildPerlPackage {
7949     pname = "Dispatch-Class";
7950     version = "0.02";
7951     src = fetchurl {
7952       url = "mirror://cpan/authors/id/M/MA/MAUKE/Dispatch-Class-0.02.tar.gz";
7953       hash = "sha256-1020Oxr56L1G/8Fb/k3x5dgQxCzoWC6TdRDcKiyhZYI=";
7954     };
7955     propagatedBuildInputs = [ ExporterTiny ];
7956     meta = {
7957       description = "Dispatch on the type (class) of an argument";
7958       license = with lib.licenses; [ artistic1 gpl1Plus ];
7959     };
7960   };
7962   DistCheckConflicts = buildPerlPackage {
7963     pname = "Dist-CheckConflicts";
7964     version = "0.11";
7965     src = fetchurl {
7966       url = "mirror://cpan/authors/id/D/DO/DOY/Dist-CheckConflicts-0.11.tar.gz";
7967       hash = "sha256-6oRLlobJTWZtnURDIddkSQss3i+YXEFltMLHdmXK7cQ=";
7968     };
7969     buildInputs = [ TestFatal ];
7970     propagatedBuildInputs = [ ModuleRuntime ];
7971     meta = {
7972       description = "Declare version conflicts for your dist";
7973       homepage = "https://metacpan.org/release/Dist-CheckConflicts";
7974       license = with lib.licenses; [ artistic1 gpl1Plus ];
7975     };
7976   };
7978   DistZilla = buildPerlPackage {
7979     pname = "Dist-Zilla";
7980     version = "6.030";
7981     src = fetchurl {
7982       url = "mirror://cpan/authors/id/R/RJ/RJBS/Dist-Zilla-6.030.tar.gz";
7983       hash = "sha256-xAa75oCelO23DKlDJMMBQz1sij375wsC3xLh3/LzsTA=";
7984     };
7985     buildInputs = [ CPANMetaCheck TestDeep TestFailWarnings TestFatal TestFileShareDir ];
7986     propagatedBuildInputs = [ AppCmd CPANUploader ConfigMVPReaderINI DateTime FileCopyRecursive FileFindRule FileShareDirInstall Filepushd LogDispatchouli MooseXLazyRequire MooseXSetOnce MooseXTypesPerl PathTiny PerlPrereqScanner SoftwareLicense TermEncoding TermUI YAMLTiny ];
7987     nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang;
7988     postInstall = lib.optionalString stdenv.isDarwin ''
7989       shortenPerlShebang $out/bin/dzil
7990     '';
7991     doCheck = false;
7992     meta = {
7993       description = "Distribution builder; installer not included!";
7994       homepage = "https://dzil.org";
7995       license = with lib.licenses; [ artistic1 gpl1Plus ];
7996       mainProgram = "dzil";
7997     };
7998   };
8000   DistZillaPluginBundleTestingMania = buildPerlModule {
8001     pname = "Dist-Zilla-PluginBundle-TestingMania";
8002     version = "0.25";
8003     src = fetchurl {
8004       url = "mirror://cpan/authors/id/D/DO/DOHERTY/Dist-Zilla-PluginBundle-TestingMania-0.25.tar.gz";
8005       hash = "sha256-XguywA8UD9ZNy9EvpdPJ4kS5NWgor0ZRmLYjBGnUWRw=";
8006     };
8007     buildInputs = [ MooseAutobox TestCPANMeta TestPerlCritic TestVersion ];
8008     propagatedBuildInputs = [ DistZillaPluginMojibakeTests DistZillaPluginTestCPANChanges DistZillaPluginTestCPANMetaJSON DistZillaPluginTestCompile DistZillaPluginTestDistManifest DistZillaPluginTestEOL DistZillaPluginTestKwalitee DistZillaPluginTestMinimumVersion DistZillaPluginTestNoTabs DistZillaPluginTestPerlCritic DistZillaPluginTestPodLinkCheck DistZillaPluginTestPortability DistZillaPluginTestSynopsis DistZillaPluginTestUnusedVars DistZillaPluginTestVersion PodCoverageTrustPod ];
8009     doCheck = false; /* fails with 'open3: exec of .. perl .. failed: Argument list too long at .../TAP/Parser/Iterator/Process.pm line 165.' */
8010     meta = {
8011       description = "Test your dist with every testing plugin conceivable";
8012       homepage = "https://metacpan.org/release/Dist-Zilla-PluginBundle-TestingMania";
8013       license = with lib.licenses; [ artistic1 gpl1Plus ];
8014     };
8015   };
8017   DistZillaPluginCheckChangeLog = buildPerlPackage {
8018     pname = "Dist-Zilla-Plugin-CheckChangeLog";
8019     version = "0.05";
8020     src = fetchurl {
8021       url = "mirror://cpan/authors/id/F/FA/FAYLAND/Dist-Zilla-Plugin-CheckChangeLog-0.05.tar.gz";
8022       hash = "sha256-sLNNbXC1bxlE0DxfDcO49vJEdMgW0HtlehFsaSwuBSo=";
8023     };
8024     propagatedBuildInputs = [ DistZilla ];
8025     buildInputs = [ PathClass PodCoverage PodCoverageTrustPod PodMarkdown TestDeep TestException TestPod TestPodCoverage ];
8026     meta = {
8027       description = "Dist::Zilla with Changes check";
8028       license = with lib.licenses; [ artistic1 gpl1Plus ];
8029     };
8030   };
8032   DistZillaPluginMojibakeTests = buildPerlPackage {
8033     pname = "Dist-Zilla-Plugin-MojibakeTests";
8034     version = "0.8";
8035     src = fetchurl {
8036       url = "mirror://cpan/authors/id/S/SY/SYP/Dist-Zilla-Plugin-MojibakeTests-0.8.tar.gz";
8037       hash = "sha256-8f/1R+okqPekg0Bqcu1sQFjXRtna6WNyVQLdugJas4A=";
8038     };
8039     propagatedBuildInputs = [ DistZilla ];
8040     buildInputs = [ TestMojibake ];
8041     meta = {
8042       description = "Author tests for source encoding";
8043       homepage = "https://github.com/creaktive/Dist-Zilla-Plugin-MojibakeTests";
8044       license = with lib.licenses; [ artistic1 gpl1Plus ];
8045     };
8046   };
8048   DistZillaPluginPodWeaver = buildPerlPackage {
8049     pname = "Dist-Zilla-Plugin-PodWeaver";
8050     version = "4.010";
8051     src = fetchurl {
8052       url = "mirror://cpan/authors/id/R/RJ/RJBS/Dist-Zilla-Plugin-PodWeaver-4.010.tar.gz";
8053       hash = "sha256-Zm1S1UXUjSpn8VN63HTPOMdkofmVHQtiNiP2IGDLYj4=";
8054     };
8055     propagatedBuildInputs = [ DistZilla PodElementalPerlMunger PodWeaver ];
8056     meta = {
8057       description = "Weave your Pod together from configuration and Dist::Zilla";
8058       homepage = "https://github.com/rjbs/Dist-Zilla-Plugin-PodWeaver";
8059       license = with lib.licenses; [ artistic1 gpl1Plus ];
8060     };
8061   };
8063   DistZillaPluginReadmeAnyFromPod = buildPerlPackage {
8064     pname = "Dist-Zilla-Plugin-ReadmeAnyFromPod";
8065     version = "0.163250";
8066     src = fetchurl {
8067       url = "mirror://cpan/authors/id/R/RT/RTHOMPSON/Dist-Zilla-Plugin-ReadmeAnyFromPod-0.163250.tar.gz";
8068       hash = "sha256-1E8nmZIveLKnlh7YkSPhG913q/6FuiBA2CuArXLtE7w=";
8069     };
8070     buildInputs = [ TestDeep TestDifferences TestException TestFatal TestMost TestRequires TestSharedFork TestWarn ];
8071     propagatedBuildInputs = [ DistZillaRoleFileWatcher MooseXHasSugar PodMarkdownGithub ];
8072     meta = {
8073       description = "Automatically convert POD to a README in any format for Dist::Zilla";
8074       homepage = "https://github.com/DarwinAwardWinner/Dist-Zilla-Plugin-ReadmeAnyFromPod";
8075       license = with lib.licenses; [ artistic1 gpl1Plus ];
8076     };
8077   };
8079   DistZillaPluginReadmeMarkdownFromPod = buildPerlPackage {
8080     pname = "Dist-Zilla-Plugin-ReadmeMarkdownFromPod";
8081     version = "0.141140";
8082     src = fetchurl {
8083       url = "mirror://cpan/authors/id/R/RT/RTHOMPSON/Dist-Zilla-Plugin-ReadmeMarkdownFromPod-0.141140.tar.gz";
8084       hash = "sha256-nKrXs2bqWRGa1zzdmdzdU/h3pRW9AWT8KLM5wBc5qAE=";
8085     };
8086     buildInputs = [ TestDeep TestDifferences TestException TestMost TestWarn ];
8087     propagatedBuildInputs = [ DistZillaPluginReadmeAnyFromPod ];
8088     meta = {
8089       description = "Automatically convert POD to a README.mkdn for Dist::Zilla";
8090       homepage = "https://github.com/DarwinAwardWinner/Dist-Zilla-Plugin-ReadmeMarkdownFromPod";
8091       license = with lib.licenses; [ artistic1 gpl1Plus ];
8092     };
8093   };
8095   DistZillaPluginTestCPANChanges = buildPerlPackage {
8096     pname = "Dist-Zilla-Plugin-Test-CPAN-Changes";
8097     version = "0.012";
8098     src = fetchurl {
8099       url = "mirror://cpan/authors/id/D/DO/DOHERTY/Dist-Zilla-Plugin-Test-CPAN-Changes-0.012.tar.gz";
8100       hash = "sha256-IVs6XDxYyLqw6icTBEG72uxzfuzADwZwk39gi9v2SAY=";
8101     };
8102     buildInputs = [ CPANChanges TestDeep ];
8103     propagatedBuildInputs = [ DistZilla ];
8104     meta = {
8105       description = "Release tests for your changelog";
8106       homepage = "https://metacpan.org/release/Dist-Zilla-Plugin-Test-CPAN-Changes";
8107       license = with lib.licenses; [ artistic1 gpl1Plus ];
8108     };
8109   };
8111   DistZillaPluginTestCPANMetaJSON = buildPerlModule {
8112     pname = "Dist-Zilla-Plugin-Test-CPAN-Meta-JSON";
8113     version = "0.004";
8114     src = fetchurl {
8115       url = "mirror://cpan/authors/id/D/DO/DOHERTY/Dist-Zilla-Plugin-Test-CPAN-Meta-JSON-0.004.tar.gz";
8116       hash = "sha256-Clc+HVZAN05u5NVtT7lKPGfU511Ss93q5wz6ZFDhryI=";
8117     };
8118     buildInputs = [ MooseAutobox TestCPANMetaJSON TestDeep ];
8119     propagatedBuildInputs = [ DistZilla ];
8120     meta = {
8121       description = "Validate your CPAN META.json files";
8122       homepage = "https://p3rl.org/Dist::Zilla::Plugin::Test::CPAN::Meta::JSON";
8123       license = with lib.licenses; [ artistic2 ];
8124     };
8125   };
8127   DistZillaPluginTestCompile = buildPerlModule {
8128     pname = "Dist-Zilla-Plugin-Test-Compile";
8129     version = "2.058";
8130     src = fetchurl {
8131       url = "mirror://cpan/authors/id/E/ET/ETHER/Dist-Zilla-Plugin-Test-Compile-2.058.tar.gz";
8132       hash = "sha256-0M+T5SXxAuyg9/OWcSTS5Z0KIS9zjOVMHd2R3aJo2Io=";
8133     };
8134     buildInputs = [ CPANMetaCheck ModuleBuildTiny TestDeep TestMinimumVersion TestWarnings ];
8135     propagatedBuildInputs = [ DistZilla ];
8136     meta = {
8137       description = "Assert that your Perl files compile OK";
8138       homepage = "https://github.com/karenetheridge/Dist-Zilla-Plugin-Test-Compile";
8139       license = with lib.licenses; [ artistic1 gpl1Plus ];
8140     };
8141   };
8143   DistZillaPluginTestDistManifest = buildPerlModule {
8144     pname = "Dist-Zilla-Plugin-Test-DistManifest";
8145     version = "2.000006";
8146     src = fetchurl {
8147       url = "mirror://cpan/authors/id/E/ET/ETHER/Dist-Zilla-Plugin-Test-DistManifest-2.000006.tar.gz";
8148       hash = "sha256-Wj2kW/yYzjhf7X3BZTp4kGEfC57xVsABOueFdPiWYH0=";
8149     };
8150     buildInputs = [ ModuleBuildTiny TestDeep TestDistManifest TestOutput ];
8151     propagatedBuildInputs = [ DistZilla ];
8152     meta = {
8153       description = "Author test that validates a package MANIFEST";
8154       homepage = "https://github.com/jawnsy/Test-DistManifest";
8155       license = with lib.licenses; [ artistic1 gpl1Plus ];
8156     };
8157   };
8159   DistZillaPluginTestEOL = buildPerlModule {
8160     pname = "Dist-Zilla-Plugin-Test-EOL";
8161     version = "0.19";
8162     src = fetchurl {
8163       url = "mirror://cpan/authors/id/E/ET/ETHER/Dist-Zilla-Plugin-Test-EOL-0.19.tar.gz";
8164       hash = "sha256-orlZx6AszDLt1D7lhgmHVhPv1Ty8u9YDmeF/FUZ6Qzg=";
8165     };
8166     buildInputs = [ ModuleBuildTiny TestDeep TestEOL TestWarnings ];
8167     propagatedBuildInputs = [ DistZilla ];
8168     meta = {
8169       description = "Check the correct line endings in your project";
8170       homepage = "https://github.com/karenetheridge/Test-EOL";
8171       license = with lib.licenses; [ artistic1 gpl1Plus ];
8172     };
8173   };
8175   DistZillaPluginTestKwalitee = buildPerlModule {
8176     pname = "Dist-Zilla-Plugin-Test-Kwalitee";
8177     version = "2.12";
8178     src = fetchurl {
8179       url = "mirror://cpan/authors/id/E/ET/ETHER/Dist-Zilla-Plugin-Test-Kwalitee-2.12.tar.gz";
8180       hash = "sha256-vdvPzHXo6y0tnIYRVS8AzcGwUfDwB5hiO4aS/1Awry8=";
8181     };
8182     buildInputs = [ ModuleBuildTiny TestDeep TestFatal TestKwalitee ];
8183     propagatedBuildInputs = [ DistZilla ];
8184     meta = {
8185       description = "Test the Kwalitee of a distribution before you release it";
8186       license = with lib.licenses; [ artistic1 gpl1Plus ];
8187     };
8188   };
8190   DistZillaPluginTestMinimumVersion = buildPerlModule {
8191     pname = "Dist-Zilla-Plugin-Test-MinimumVersion";
8192     version = "2.000010";
8193     src = fetchurl {
8194       url = "mirror://cpan/authors/id/E/ET/ETHER/Dist-Zilla-Plugin-Test-MinimumVersion-2.000010.tar.gz";
8195       hash = "sha256-uLcfS2S2ifS2R6OofWqqrkWmiJLTXja6qXb2BXNjcPs=";
8196     };
8197     buildInputs = [ ModuleBuildTiny TestDeep TestMinimumVersion TestOutput ];
8198     propagatedBuildInputs = [ DistZilla ];
8199     meta = {
8200       description = "Release tests for minimum required versions";
8201       license = with lib.licenses; [ artistic1 gpl1Plus ];
8202     };
8203   };
8205   DistZillaPluginTestNoTabs = buildPerlModule {
8206     pname = "Dist-Zilla-Plugin-Test-NoTabs";
8207     version = "0.15";
8208     src = fetchurl {
8209       url = "mirror://cpan/authors/id/E/ET/ETHER/Dist-Zilla-Plugin-Test-NoTabs-0.15.tar.gz";
8210       hash = "sha256-G2EMQpFpKbtwFDw2t55XF1JbDp3njj1GCal4ZCtk0KQ=";
8211     };
8212     propagatedBuildInputs = [ DistZilla ];
8213     buildInputs = [ ModuleBuildTiny TestDeep TestNoTabs TestRequires ];
8214     meta = {
8215       description = "Check the presence of tabs in your project";
8216       homepage = "https://github.com/karenetheridge/Dist-Zilla-Plugin-Test-NoTabs";
8217       license = with lib.licenses; [ artistic1 gpl1Plus ];
8218     };
8219   };
8221   DistZillaPluginTestPerlCritic = buildPerlModule {
8222     pname = "Dist-Zilla-Plugin-Test-Perl-Critic";
8223     version = "3.001";
8224     src = fetchurl {
8225       url = "mirror://cpan/authors/id/E/ET/ETHER/Dist-Zilla-Plugin-Test-Perl-Critic-3.001.tar.gz";
8226       hash = "sha256-klC1nV3Brkxok7p4O9PwUTGxT/npGvtFVTFPVSaKOCU=";
8227     };
8228     buildInputs = [ ModuleBuildTiny TestDeep TestPerlCritic ];
8229     propagatedBuildInputs = [ DistZilla ];
8230     meta = {
8231       description = "Tests to check your code against best practices";
8232       license = with lib.licenses; [ artistic1 gpl1Plus ];
8233     };
8234   };
8236   DistZillaPluginTestPodLinkCheck = buildPerlPackage {
8237     pname = "Dist-Zilla-Plugin-Test-Pod-LinkCheck";
8238     version = "1.004";
8239     src = fetchurl {
8240       url = "mirror://cpan/authors/id/R/RW/RWSTAUNER/Dist-Zilla-Plugin-Test-Pod-LinkCheck-1.004.tar.gz";
8241       hash = "sha256-Ml0jbaCUA4jSqobsXBMmUWtK1Fre+Oek+Du5HV7hVJA=";
8242     };
8243     # buildInputs = [ TestPodLinkCheck ];
8244     propagatedBuildInputs = [ DistZilla ];
8245     buildInputs = [ TestPodLinkCheck ];
8246     meta = {
8247       description = "Add release tests for POD links";
8248       homepage = "https://github.com/rwstauner/Dist-Zilla-Plugin-Test-Pod-LinkCheck";
8249       license = with lib.licenses; [ artistic1 gpl1Plus ];
8250     };
8251   };
8253   DistZillaPluginTestPortability = buildPerlModule {
8254     pname = "Dist-Zilla-Plugin-Test-Portability";
8255     version = "2.001001";
8256     src = fetchurl {
8257       url = "mirror://cpan/authors/id/E/ET/ETHER/Dist-Zilla-Plugin-Test-Portability-2.001001.tar.gz";
8258       hash = "sha256-07kxVx4VoidI6BJwmq/aclEKdMAA/AaiyrWHVYEACyA=";
8259     };
8260     buildInputs = [ ModuleBuildTiny TestDeep TestPortabilityFiles TestWarnings ];
8261     propagatedBuildInputs = [ DistZilla ];
8262     meta = {
8263       description = "Author tests for portability";
8264       homepage = "https://github.com/karenetheridge/Dist-Zilla-Plugin-Test-Portability";
8265       license = with lib.licenses; [ artistic1 gpl1Plus ];
8266     };
8267   };
8269   DistZillaPluginTestSynopsis = buildPerlPackage {
8270     pname = "Dist-Zilla-Plugin-Test-Synopsis";
8271     version = "2.000007";
8272     src = fetchurl {
8273       url = "mirror://cpan/authors/id/D/DO/DOHERTY/Dist-Zilla-Plugin-Test-Synopsis-2.000007.tar.gz";
8274       hash = "sha256-59XiUwzYpbtarfPhZpplOqqW4yyte9a5yrprQlzqtWM=";
8275     };
8276     buildInputs = [ TestDeep TestOutput TestSynopsis ];
8277     propagatedBuildInputs = [ DistZilla ];
8278     meta = {
8279       description = "Release tests for synopses";
8280       license = with lib.licenses; [ artistic1 gpl1Plus ];
8281     };
8282   };
8284   DistZillaPluginTestUnusedVars = buildPerlModule {
8285     pname = "Dist-Zilla-Plugin-Test-UnusedVars";
8286     version = "2.001001";
8287     src = fetchurl {
8288       url = "mirror://cpan/authors/id/E/ET/ETHER/Dist-Zilla-Plugin-Test-UnusedVars-2.001001.tar.gz";
8289       hash = "sha256-df7W0NzCv0B/8nrJ4W7yFTRnFEuYbPovmPhpuqWNdkc=";
8290     };
8291     buildInputs = [ ModuleBuildTiny TestDeep TestOutput TestVars ];
8292     propagatedBuildInputs = [ DistZilla ];
8293     meta = {
8294       description = "Release tests for unused variables";
8295       homepage = "https://metacpan.org/release/Dist-Zilla-Plugin-Test-UnusedVars";
8296       license = with lib.licenses; [ artistic1 gpl1Plus ];
8297     };
8298   };
8300   DistZillaPluginTestVersion = buildPerlPackage {
8301     pname = "Dist-Zilla-Plugin-Test-Version";
8302     version = "1.09";
8303     src = fetchurl {
8304       url = "mirror://cpan/authors/id/P/PL/PLICEASE/Dist-Zilla-Plugin-Test-Version-1.09.tar.gz";
8305       hash = "sha256-ckBQhzG8G/bfrXcB7GVFChjvkkWlIasm69ass5qevhc=";
8306     };
8307     buildInputs = [ Filechdir TestDeep TestEOL TestNoTabs TestScript TestVersion ];
8308     propagatedBuildInputs = [ DistZilla ];
8309     meta = {
8310       description = "Release Test::Version tests";
8311       license = with lib.licenses; [ artistic2 ];
8312     };
8313   };
8315   DistZillaRoleFileWatcher = buildPerlModule {
8316     pname = "Dist-Zilla-Role-FileWatcher";
8317     version = "0.006";
8318     src = fetchurl {
8319       url = "mirror://cpan/authors/id/E/ET/ETHER/Dist-Zilla-Role-FileWatcher-0.006.tar.gz";
8320       hash = "sha256-/jpEuVhtrxJ3/Lu69yFrAs4j77vWlPDfEbf3U0S+TpY=";
8321     };
8322     propagatedBuildInputs = [ DistZilla SafeIsa ];
8323     buildInputs = [ ModuleBuildTiny TestDeep TestFatal ];
8324     meta = {
8325       description = "Receive notification when something changes a file's contents";
8326       homepage = "https://github.com/karenetheridge/Dist-Zilla-Role-FileWatcher";
8327       license = with lib.licenses; [ artistic1 gpl1Plus ];
8328     };
8329   };
8331   Dotenv = buildPerlPackage {
8332     pname = "Dotenv";
8333     version = "0.002";
8334     src = fetchurl {
8335       url = "mirror://cpan/authors/id/B/BO/BOOK/Dotenv-0.002.tar.gz";
8336       hash = "sha256-BMenzEURYX16cMTKQQ0QcH3EliSM2tICQK4kIiMhJFQ=";
8337     };
8338     buildInputs = [ TestCPANMeta TestPod TestPodCoverage ];
8339     propagatedBuildInputs = [ PathTiny ];
8340     meta = {
8341       description = "Support for dotenv in Perl";
8342       license = with lib.licenses; [ artistic1 gpl1Plus ];
8343     };
8344   };
8346   Dumbbench = buildPerlPackage {
8347     pname = "Dumbbench";
8348     version = "0.503";
8349     src = fetchurl {
8350       url = "mirror://cpan/authors/id/B/BD/BDFOY/Dumbbench-0.503.tar.gz";
8351       hash = "sha256-0BYBmoGDE+cERk8oDPZB72Dodx0HeRtZuZ4XoeyAH6k=";
8352     };
8353     propagatedBuildInputs = [ CaptureTiny ClassXSAccessor DevelCheckOS NumberWithError StatisticsCaseResampling ];
8354     meta = {
8355       description = "More reliable benchmarking with the least amount of thinking";
8356       homepage = "https://github.com/briandfoy/dumbbench";
8357       license = with lib.licenses; [ artistic1 gpl1Plus ];
8358       mainProgram = "dumbbench";
8359     };
8360   };
8362   EmailAbstract = buildPerlPackage {
8363     pname = "Email-Abstract";
8364     version = "3.010";
8365     src = fetchurl {
8366       url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-Abstract-3.010.tar.gz";
8367       hash = "sha256-jBL2i1l0yvyZ10lCq+/IWXGTA1qv0nYxKOaqr8pLftY=";
8368     };
8369     propagatedBuildInputs = [ EmailSimple MROCompat ModulePluggable ];
8370     meta = {
8371       description = "Unified interface to mail representations";
8372       homepage = "https://github.com/rjbs/Email-Abstract";
8373       license = with lib.licenses; [ artistic1 gpl1Plus ];
8374     };
8375   };
8377   EmailAddress = buildPerlPackage {
8378     pname = "Email-Address";
8379     version = "1.913";
8380     src = fetchurl {
8381       url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-Address-1.913.tar.gz";
8382       hash = "sha256-avtUH232tTXM92QtNhrhjXqVo/k6zhvFNz9kwkEMpa8=";
8383     };
8384     meta = {
8385       description = "RFC 2822 Address Parsing and Creation";
8386       homepage = "https://github.com/rjbs/Email-Address";
8387       license = with lib.licenses; [ artistic1 gpl1Plus ];
8388     };
8389   };
8391   EmailAddressList = buildPerlPackage {
8392     pname = "Email-Address-List";
8393     version = "0.06";
8394     src = fetchurl {
8395       url = "mirror://cpan/authors/id/B/BP/BPS/Email-Address-List-0.06.tar.gz";
8396       hash = "sha256-MFuUx3gBHO5w2fIVFNkumF+p3Mu4TGR5jwwfCyTrhw4=";
8397     };
8398     buildInputs = [ JSON ];
8399     propagatedBuildInputs = [ EmailAddress ];
8400     meta = {
8401       description = "RFC close address list parsing";
8402       license = with lib.licenses; [ artistic1 gpl1Plus ];
8403     };
8404   };
8406   EmailAddressXS = buildPerlPackage {
8407     pname = "Email-Address-XS";
8408     version = "1.05";
8409     src = fetchurl {
8410       url = "mirror://cpan/authors/id/P/PA/PALI/Email-Address-XS-1.05.tar.gz";
8411       hash = "sha256-FRC38Q1nIBA3zVDSLJ1rJu7KVe3tpM20a7yiflmk6hY=";
8412     };
8413     meta = {
8414       description = "Parse and format RFC 5322 email addresses and groups";
8415       license = with lib.licenses; [ artistic1 gpl1Plus ];
8416     };
8417   };
8419   EmailDateFormat = buildPerlPackage {
8420     pname = "Email-Date-Format";
8421     version = "1.008";
8422     src = fetchurl {
8423       url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-Date-Format-1.008.tar.gz";
8424       hash = "sha256-Qyt8g/+IdJrxKAA/UlfFc67BpGNBjbkO0ihDy7wli08=";
8425     };
8426     meta = {
8427       description = "Produce RFC 2822 date strings";
8428       homepage = "https://github.com/rjbs/Email-Date-Format";
8429       license = with lib.licenses; [ artistic1 gpl1Plus ];
8430     };
8431   };
8433   EmailReply = buildPerlPackage {
8434     pname = "Email-Reply";
8435     version = "1.204";
8436     src = fetchurl {
8437       url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-Reply-1.204.tar.gz";
8438       hash = "sha256-uk/YCsUBfW0TLgNYx4aw7NHHrcvu5cGfs9opZHkaVvA=";
8439     };
8440     propagatedBuildInputs = [ EmailAbstract EmailAddress EmailMIME ];
8441     meta = {
8442       description = "Reply to an email message";
8443       homepage = "https://github.com/Perl-Email-Project/Email-Reply";
8444       license = with lib.licenses; [ artistic1 gpl1Plus ];
8445     };
8446   };
8448   EmailMessageID = buildPerlPackage {
8449     pname = "Email-MessageID";
8450     version = "1.408";
8451     src = fetchurl {
8452       url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-MessageID-1.408.tar.gz";
8453       hash = "sha256-Hz1bT/Cxx7OemsfDGPs3rc0LrJVWA2VGSU0U8G3FZDw=";
8454     };
8455     meta = {
8456       description = "Generate world unique message-ids";
8457       homepage = "https://github.com/rjbs/Email-MessageID";
8458       license = with lib.licenses; [ artistic1 gpl1Plus ];
8459     };
8460   };
8462   EmailMIME = buildPerlPackage {
8463     pname = "Email-MIME";
8464     version = "1.953";
8465     src = fetchurl {
8466       url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-MIME-1.953.tar.gz";
8467       hash = "sha256-mPsGeFBpmiJLq8NI8c7+MNdExg2okC56XOnYt+c99zU=";
8468     };
8469     propagatedBuildInputs = [ EmailAddressXS EmailMIMEContentType EmailMIMEEncodings EmailMessageID EmailSimple MIMETypes ModuleRuntime ];
8470     meta = {
8471       description = "Easy MIME message handling";
8472       homepage = "https://github.com/rjbs/Email-MIME";
8473       license = with lib.licenses; [ artistic1 gpl1Plus ];
8474     };
8475   };
8477   EmailMIMEAttachmentStripper = buildPerlPackage {
8478     pname = "Email-MIME-Attachment-Stripper";
8479     version = "1.317";
8480     buildInputs = [ CaptureTiny ];
8481     propagatedBuildInputs = [ EmailAbstract EmailMIME ];
8483     src = fetchurl {
8484       url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-MIME-Attachment-Stripper-1.317.tar.gz";
8485       hash = "sha256-3LmLCdw+j3V+w4gqQjRUgQi7LRLjz635WibO84Gp54k=";
8486     };
8487     meta = {
8488       description = "Strip the attachments from an email";
8489       homepage = "https://github.com/rjbs/Email-MIME-Attachment-Stripper";
8490       license = with lib.licenses; [ artistic1 gpl1Plus ];
8491     };
8492   };
8494   EmailMIMEContentType = buildPerlPackage {
8495     pname = "Email-MIME-ContentType";
8496     version = "1.028";
8497     src = fetchurl {
8498       url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-MIME-ContentType-1.028.tar.gz";
8499       hash = "sha256-55UCRkM/ftbD5P1N8iJ+DyNBE3w8qxmJAY/DcPWBRcQ=";
8500     };
8501     propagatedBuildInputs = [ TextUnidecode ];
8502     meta = {
8503       description = "Parse and build a MIME Content-Type or Content-Disposition Header";
8504       homepage = "https://github.com/rjbs/Email-MIME-ContentType";
8505       license = with lib.licenses; [ artistic1 gpl1Plus ];
8506     };
8507   };
8509   EmailMIMEEncodings = buildPerlPackage {
8510     pname = "Email-MIME-Encodings";
8511     version = "1.317";
8512     src = fetchurl {
8513       url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-MIME-Encodings-1.317.tar.gz";
8514       hash = "sha256-SppBZxqdFQTE2iQb5BmpUD+jSGJiUm7bgeyp4uvqC68=";
8515     };
8516     buildInputs = [ CaptureTiny ];
8517     meta = {
8518       description = "A unified interface to MIME encoding and decoding";
8519       homepage = "https://github.com/rjbs/Email-MIME-Encodings";
8520       license = with lib.licenses; [ artistic1 gpl1Plus ];
8521     };
8522   };
8524   EmailSend = buildPerlPackage {
8525     pname = "Email-Send";
8526     version = "2.201";
8527     src = fetchurl {
8528       url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-Send-2.201.tar.gz";
8529       hash = "sha256-S77JM1WNfMm4FSutht0xPeJ3ohqJtOqD2E5hWH6V28Y=";
8530     };
8531     propagatedBuildInputs = [ EmailAbstract EmailAddress ReturnValue ];
8532     buildInputs = [ MIMETools MailTools ];
8533     meta = {
8534       description = "Simply Sending Email";
8535       homepage = "https://github.com/rjbs/Email-Send";
8536       license = with lib.licenses; [ artistic1 gpl1Plus ];
8537     };
8538   };
8540   EmailOutlookMessage = buildPerlModule {
8541     pname = "Email-Outlook-Message";
8542     version = "0.921";
8543     src = fetchurl {
8544       url = "mirror://cpan/authors/id/M/MV/MVZ/Email-Outlook-Message-0.921.tar.gz";
8545       hash = "sha256-+0q+6hTNpRweYLwhHPlSG7uq50uEEYym1Y8KciNoA4g=";
8546     };
8547     propagatedBuildInputs = [ EmailMIME EmailSender IOAll IOString OLEStorage_Lite ];
8548     preCheck = "rm t/internals.t t/plain_jpeg_attached.t"; # these tests expect EmailMIME version 1.946 and fail with 1.949 (the output difference in benign)
8549     meta = {
8550       homepage = "https://www.matijs.net/software/msgconv/";
8551       description = "A .MSG to mbox converter";
8552       license = with lib.licenses; [ artistic1 gpl1Plus ];
8553       maintainers = with maintainers; [ peterhoeg ];
8554       mainProgram = "msgconvert";
8555     };
8556   };
8558   EmailSender = buildPerlPackage {
8559     pname = "Email-Sender";
8560     version = "2.600";
8561     src = fetchurl {
8562       url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-Sender-2.600.tar.gz";
8563       hash = "sha256-7MZ10DDXnZpPsGRWfqiFxmsXw4Yjea0w+CBaKBzY7ik=";
8564     };
8565     buildInputs = [ CaptureTiny ];
8566     propagatedBuildInputs = [ EmailAbstract EmailAddressXS EmailSimple ModuleRuntime Moo MooXTypesMooseLike SubExporter Throwable TryTiny ];
8567     nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang;
8568     postPatch = ''
8569       patchShebangs --build util
8570     '';
8571     preCheck = lib.optionalString stdenv.isDarwin ''
8572       shortenPerlShebang util/sendmail
8573     '';
8574     meta = {
8575       description = "A library for sending email";
8576       homepage = "https://github.com/rjbs/Email-Sender";
8577       license = with lib.licenses; [ artistic1 gpl1Plus ];
8578     };
8579   };
8581   EmailSimple = buildPerlPackage {
8582     pname = "Email-Simple";
8583     version = "2.218";
8584     src = fetchurl {
8585       url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-Simple-2.218.tar.gz";
8586       hash = "sha256-Lc4daP3pnVPbnKQ+IRtpsWm6Lvrs+HpVyzOpM2BHyW0=";
8587     };
8588     propagatedBuildInputs = [ EmailDateFormat ];
8589     meta = {
8590       description = "Simple parsing of RFC2822 message format and headers";
8591       homepage = "https://github.com/rjbs/Email-Simple";
8592       license = with lib.licenses; [ artistic1 gpl1Plus ];
8593     };
8594   };
8596   EmailStuffer = buildPerlPackage {
8597     pname = "Email-Stuffer";
8598     version = "0.020";
8599     src = fetchurl {
8600       url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-Stuffer-0.020.tar.gz";
8601       hash = "sha256-Ch77fy3t05BSsSb3GMotO1hFpBI6OTkv2d+gx25gV8c=";
8602     };
8603     buildInputs = [ Moo TestFatal ];
8604     propagatedBuildInputs = [ EmailMIME EmailSender ModuleRuntime ParamsUtil ];
8605     meta = {
8606       description = "A more casual approach to creating and sending Email:: emails";
8607       homepage = "https://github.com/rjbs/Email-Stuffer";
8608       license = with lib.licenses; [ artistic1 gpl1Plus ];
8609       maintainers = with maintainers; [ sgo ];
8610     };
8611   };
8613   EmailValid = buildPerlPackage {
8614     pname = "Email-Valid";
8615     version = "1.203";
8616     src = fetchurl {
8617       url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-Valid-1.203.tar.gz";
8618       hash = "sha256-ICG/ux4sJ55evYRoDllvlzRNQphQsjIme3b0kDdSK5M=";
8619     };
8620     propagatedBuildInputs = [ IOCaptureOutput MailTools NetDNS NetDomainTLD ];
8621     doCheck = false;
8622     meta = {
8623       description = "Check validity of Internet email addresses";
8624       license = with lib.licenses; [ artistic1 gpl1Plus ];
8625     };
8626   };
8628   EmailValidLoose = buildPerlPackage {
8629     pname = "Email-Valid-Loose";
8630     version = "0.05";
8631     src = fetchurl {
8632       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Email-Valid-Loose-0.05.tar.gz";
8633       hash = "sha256-5xjnbt3uJAJRyZnhOcjL5vLMgBktpa+HXL0S+oq5Olk=";
8634     };
8635     propagatedBuildInputs = [ EmailValid ];
8636     meta = {
8637       description = "Email::Valid which allows dot before at mark";
8638       license = with lib.licenses; [ artistic1 gpl1Plus ];
8639     };
8640   };
8642   Encode = buildPerlPackage {
8643     pname = "Encode";
8644     version = "3.19";
8645     src = fetchurl {
8646       url = "mirror://cpan/authors/id/D/DA/DANKOGAI/Encode-3.19.tar.gz";
8647       hash = "sha256-kWP4SO72nk1MyIODl/CGH9nqft4AERfb2WlPjZUFLvU=";
8648     };
8649     meta = {
8650       description = "Character encodings in Perl";
8651       license = with lib.licenses; [ artistic1 gpl1Plus ];
8652       mainProgram = "piconv";
8653     };
8654   };
8656   EncodeBase32GMP = buildPerlPackage {
8657     pname = "Encode-Base32-GMP";
8658     version = "0.02";
8659     src = fetchurl {
8660       url = "mirror://cpan/authors/id/J/JW/JWANG/Encode-Base32-GMP-0.02.tar.gz";
8661       hash = "sha256-RUIG+n2C5V4DJ0aYcyNBtgcVDwDo4q7FjzUyagMIMtw=";
8662     };
8663     buildInputs = [ TestBase ];
8664     propagatedBuildInputs = [ MathGMPz ];
8665     meta = {
8666       description = "High speed Base32 encoding using GMP with BigInt and MD5 support";
8667       homepage = "https://metacpan.org/release/Encode-Base32-GMP";
8668       license = with lib.licenses; [ mit ];
8669       maintainers = with maintainers; [ sgo ];
8670     };
8671   };
8673   EncodeDetect = buildPerlModule {
8674     pname = "Encode-Detect";
8675     version = "1.01";
8676     src = fetchurl {
8677       url = "mirror://cpan/authors/id/J/JG/JGMYERS/Encode-Detect-1.01.tar.gz";
8678       hash = "sha256-g02JOqfbbOPxWK+9DkMtbtFaJ24JQNsKdL4T/ZxLu/E=";
8679     };
8680     nativeBuildInputs = [ pkgs.ld-is-cc-hook ];
8681     meta = {
8682       description = "An Encode::Encoding subclass that detects the encoding of data";
8683       license = with lib.licenses; [ mpl11 gpl2Plus lgpl2Plus ]; # taken from fedora
8684     };
8685   };
8688   EncodeEUCJPASCII = buildPerlPackage {
8689     pname = "Encode-EUCJPASCII";
8690     version = "0.03";
8691     src = fetchurl {
8692       url = "mirror://cpan/authors/id/N/NE/NEZUMI/Encode-EUCJPASCII-0.03.tar.gz";
8693       hash = "sha256-+ZjTTVX9nILPkQeGoESNHt+mC/aOLCMGckymfGKd6GE=";
8694     };
8695     outputs = [ "out" ];
8696     meta = {
8697       description = "EucJP-ascii - An eucJP-open mapping";
8698       license = with lib.licenses; [ artistic1 gpl1Plus ];
8699     };
8700   };
8702   EncodeHanExtra = buildPerlPackage {
8703     pname = "Encode-HanExtra";
8704     version = "0.23";
8705     src = fetchurl {
8706       url = "mirror://cpan/authors/id/A/AU/AUDREYT/Encode-HanExtra-0.23.tar.gz";
8707       hash = "sha256-H9SwbK2nCFgAOvFT+UyGOzuV8uPQO6GNBFGoHVHbRDo=";
8708     };
8709     meta = {
8710       description = "Extra sets of Chinese encodings";
8711       license = with lib.licenses; [ mit ];
8712     };
8713   };
8715   EncodeIMAPUTF7 = buildPerlPackage {
8716     pname = "Encode-IMAPUTF7";
8717     version = "1.05";
8718     src = fetchurl {
8719       url = "mirror://cpan/authors/id/P/PM/PMAKHOLM/Encode-IMAPUTF7-1.05.tar.gz";
8720       hash = "sha256-RwMF3cN0g8/o08FtE3cKKAEfYAv1V6y4w+B3OZl8N+E=";
8721     };
8722     nativeCheckInputs = [ TestNoWarnings ];
8723     meta = {
8724       description = "IMAP modified UTF-7 encoding";
8725       license = with lib.licenses; [ artistic1 gpl1Plus ];
8726     };
8727   };
8729   EncodeJIS2K = buildPerlPackage {
8730     pname = "Encode-JIS2K";
8731     version = "0.03";
8732     src = fetchurl {
8733       url = "mirror://cpan/authors/id/D/DA/DANKOGAI/Encode-JIS2K-0.03.tar.gz";
8734       hash = "sha256-HshNcts53rTa1vypWs/MIQM/RaJNNHwg+aGmlolsNcw=";
8735     };
8736     outputs = [ "out" ];
8737     meta = {
8738       description = "JIS X 0212 (aka JIS 2000) Encodings";
8739       license = with lib.licenses; [ artistic1 gpl1Plus ];
8740     };
8741   };
8743   EncodeLocale = buildPerlPackage {
8744     pname = "Encode-Locale";
8745     version = "1.05";
8746     src = fetchurl {
8747       url = "mirror://cpan/authors/id/G/GA/GAAS/Encode-Locale-1.05.tar.gz";
8748       hash = "sha256-F2+gJ3H1QqTvsdvCpMko6PQ5G/QHhHO9YEDY8RrbDsE=";
8749     };
8750     preCheck = if stdenv.isCygwin then ''
8751       sed -i"" -e "s@plan tests => 13@plan tests => 10@" t/env.t
8752       sed -i"" -e "s@ok(env(\"\\\x@#ok(env(\"\\\x@" t/env.t
8753       sed -i"" -e "s@ok(\$ENV{\"\\\x@#ok(\$ENV{\"\\\x@" t/env.t
8754     '' else null;
8755     meta = {
8756       description = "Determine the locale encoding";
8757       license = with lib.licenses; [ artistic1 gpl1Plus ];
8758     };
8759   };
8761   EncodeNewlines = buildPerlPackage {
8762     pname = "Encode-Newlines";
8763     version = "0.05";
8764     src = fetchurl {
8765       url = "mirror://cpan/authors/id/N/NE/NEILB/Encode-Newlines-0.05.tar.gz";
8766       hash = "sha256-NLMfysjI/cghubNDSoLXEzIT73TM/yVf4UioavloN74=";
8767     };
8768     meta = {
8769       description = "Normalize line ending sequences";
8770       homepage = "https://github.com/neilb/Encode-Newlines";
8771       license = with lib.licenses; [ artistic1 gpl1Plus ];
8772     };
8773   };
8775   EncodePunycode = buildPerlPackage {
8776     pname = "Encode-Punycode";
8777     version = "1.002";
8778     src = fetchurl {
8779       url = "mirror://cpan/authors/id/C/CF/CFAERBER/Encode-Punycode-1.002.tar.gz";
8780       hash = "sha256-yjrO7NuAtdRaoQ4c3o/sTpC0+MkYnHUE3YZY8HH3cZQ=";
8781     };
8782     buildInputs = [ TestNoWarnings ];
8783     propagatedBuildInputs = [ NetIDNEncode ];
8784     meta = {
8785       description = "Encode plugin for Punycode (RFC 3492)";
8786       homepage = "https://search.cpan.org/dist/Encode-Punycode";
8787       license = with lib.licenses; [ artistic1 gpl1Plus ];
8788     };
8789   };
8791   enum = buildPerlPackage {
8792     pname = "enum";
8793     version = "1.12";
8794     src = fetchurl {
8795       url = "mirror://cpan/authors/id/N/NE/NEILB/enum-1.12.tar.gz";
8796       hash = "sha256-aaeokc04iO2LAsXpmh9In5KmLsNRwLx4lP1719FEfqk=";
8797     };
8798     meta = {
8799       description = "C style enumerated types and bitmask flags in Perl";
8800       homepage = "https://github.com/neilb/enum";
8801       license = with lib.licenses; [ artistic1 gpl1Plus ];
8802     };
8803   };
8805   Env = buildPerlPackage {
8806     pname = "Env";
8807     version = "1.04";
8808     src = fetchurl {
8809       url = "mirror://cpan/authors/id/F/FL/FLORA/Env-1.04.tar.gz";
8810       hash = "sha256-2Uo9QS3yRq/cMaIZnL2K6RUWej9GhPe3AUzhIAJR67A=";
8811     };
8812     meta = {
8813       description = "Perl module that imports environment variables as scalars or arrays";
8814       homepage = "https://search.cpan.org/dist/Env";
8815       license = with lib.licenses; [ artistic1 gpl1Plus ];
8816     };
8817   };
8819   EnvPath = buildPerlPackage {
8820     pname = "Env-Path";
8821     version = "0.19";
8822     src = fetchurl {
8823       url = "mirror://cpan/authors/id/D/DS/DSB/Env-Path-0.19.tar.gz";
8824       hash = "sha256-JEvwk3mIMqfYQdnuW0sOa0iZlu72NUHlBQkao0qQFeI=";
8825     };
8826     meta = {
8827       description = "Advanced operations on path variables";
8828       license = with lib.licenses; [ artistic1 gpl1Plus ];
8829       mainProgram = "envpath";
8830     };
8831   };
8833   EnvSanctify = buildPerlPackage {
8834     pname = "Env-Sanctify";
8835     version = "1.12";
8836     src = fetchurl {
8837       url = "mirror://cpan/authors/id/B/BI/BINGOS/Env-Sanctify-1.12.tar.gz";
8838       hash = "sha256-IOO1ZhwmVHSmnyiZR46ye5RkklWGu2tvtmYSnlgoMl8=";
8839     };
8840     meta = {
8841       description = "Lexically scoped sanctification of %ENV";
8842       homepage = "https://github.com/bingos/env-sanctify";
8843       license = with lib.licenses; [ artistic1 gpl1Plus ];
8844     };
8845   };
8847   ENVUtil = buildPerlPackage {
8848     pname = "ENV-Util";
8849     version = "0.03";
8850     src = fetchurl {
8851       url = "mirror://cpan/authors/id/G/GA/GARU/ENV-Util-0.03.tar.gz";
8852       hash = "sha256-B1574ehSxD6wiGYvr978FS9O9WyEPB4F2QDaGQb3P60=";
8853     };
8854     meta = {
8855       description = "Parse prefixed environment variables and dotnev (.env) files into Perl";
8856       license = with lib.licenses; [ artistic1 gpl1Plus ];
8857     };
8858   };
8860   Error = buildPerlModule {
8861     pname = "Error";
8862     version = "0.17029";
8863     src = fetchurl {
8864       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Error-0.17029.tar.gz";
8865       hash = "sha256-GiP3kTAyrtbUtoMhNzo4mcpmWQ9HJzkaCR7BnJW/etw=";
8866     };
8867     meta = {
8868       description = "Error/exception handling in an OO-ish way";
8869       license = with lib.licenses; [ artistic1 gpl1Plus ];
8870     };
8871   };
8873   EV = buildPerlPackage {
8874     pname = "EV";
8875     version = "4.34";
8876     src = fetchurl {
8877       url = "mirror://cpan/authors/id/M/ML/MLEHMANN/EV-4.34.tar.gz";
8878       hash = "sha256-EhFoPc57Z3H0q3EMwVNxK913umFXoTKU0LtzSR/QZWA=";
8879     };
8880     buildInputs = [ CanaryStability ];
8881     propagatedBuildInputs = [ commonsense ];
8882     meta = {
8883       description = "Perl interface to libev, a high performance full-featured event loop";
8884       license = with lib.licenses; [ gpl1Plus ];
8885     };
8886   };
8888   EvalClosure = buildPerlPackage {
8889     pname = "Eval-Closure";
8890     version = "0.14";
8891     src = fetchurl {
8892       url = "mirror://cpan/authors/id/D/DO/DOY/Eval-Closure-0.14.tar.gz";
8893       hash = "sha256-6glE8vXsmNiVvvbVA+bko3b+pjg6a8ZMdnDUb/IhjK0=";
8894     };
8895     buildInputs = [ TestFatal TestRequires ];
8896     meta = {
8897       description = "Safely and cleanly create closures via string eval";
8898       homepage = "https://metacpan.org/release/Eval-Closure";
8899       license = with lib.licenses; [ artistic1 gpl1Plus ];
8900     };
8901   };
8903   EvalSafe = buildPerlPackage rec {
8904     pname = "Eval-Safe";
8905     version = "0.02";
8906     src = fetchurl {
8907       url = "mirror://cpan/authors/id/M/MA/MATHIAS/Eval-Safe/Eval-Safe-${version}.tar.gz";
8908       hash = "sha256-VaUsIz4troYRP58Zs09hftz8hBb5vs5nEme9GBGxIRE=";
8909     };
8910     outputs = [ "out" ];
8911     meta = with lib; {
8912       description = "Simplified safe evaluation of Perl code";
8913       homepage = "https://github.com/mkende/perl-eval-safe";
8914       license = licenses.mit;
8915       maintainers = with maintainers; [ figsoda ];
8916     };
8917   };
8919   ExcelWriterXLSX = buildPerlPackage {
8920     pname = "Excel-Writer-XLSX";
8921     version = "1.11";
8922     src = fetchurl {
8923       url = "mirror://cpan/authors/id/J/JM/JMCNAMARA/Excel-Writer-XLSX-1.11.tar.gz";
8924       hash = "sha256-yzMA0jEZxpiGTvC3PBmnLLpxi/wG7QBzWaUxP5YcwqA=";
8925     };
8926     propagatedBuildInputs = [ ArchiveZip ];
8927     meta = {
8928       description = "Create a new file in the Excel 2007+ XLSX format";
8929       homepage = "https://jmcnamara.github.com/excel-writer-xlsx";
8930       license = with lib.licenses; [ artistic1 gpl1Plus ];
8931       mainProgram = "extract_vba";
8932     };
8933   };
8935   ExceptionBase = buildPerlModule {
8936     pname = "Exception-Base";
8937     version = "0.2501";
8938     src = fetchurl {
8939       url = "mirror://cpan/authors/id/D/DE/DEXTER/Exception-Base-0.2501.tar.gz";
8940       hash = "sha256-VyPdePSsC00mKgXqRq9mPqANgJay6cCkNRXCEHYOHnU=";
8941     };
8942     buildInputs = [ TestUnitLite ];
8943     patches = [
8944       ../development/perl-modules/Exception-Base-remove-smartmatch-when-5.38.0.patch
8945     ];
8946     meta = {
8947       description = "Lightweight exceptions";
8948       license = with lib.licenses; [ artistic1 gpl1Plus ];
8949     };
8950   };
8952   ExceptionClass = buildPerlPackage {
8953     pname = "Exception-Class";
8954     version = "1.45";
8955     src = fetchurl {
8956       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Exception-Class-1.45.tar.gz";
8957       hash = "sha256-VIKnfvAnyh+fOeH0jFWDVulUk2/I+73ubIEcUScBskk=";
8958     };
8959     propagatedBuildInputs = [ ClassDataInheritable DevelStackTrace ];
8960     meta = {
8961       description = "An Exception Object Class";
8962       license = with lib.licenses; [ artistic1 gpl1Plus ];
8963     };
8964   };
8966   ExceptionDied = buildPerlModule {
8967     pname = "Exception-Died";
8968     version = "0.06";
8969     src = fetchurl {
8970       url = "mirror://cpan/authors/id/D/DE/DEXTER/Exception-Died-0.06.tar.gz";
8971       hash = "sha256-NcRAvCr9TVfiQaDbG05o2dUpXfLbjXidObX0UQWXirU=";
8972     };
8973     buildInputs = [ TestAssert TestUnitLite ];
8974     propagatedBuildInputs = [ ExceptionBase constantboolean ];
8975     meta = {
8976       description = "Convert simple die into real exception object";
8977       license = with lib.licenses; [ artistic1 gpl1Plus ];
8978     };
8979   };
8981   ExceptionWarning = buildPerlModule {
8982     pname = "Exception-Warning";
8983     version = "0.0401";
8984     src = fetchurl {
8985       url = "mirror://cpan/authors/id/D/DE/DEXTER/Exception-Warning-0.0401.tar.gz";
8986       hash = "sha256-ezacps61se3ytdX4cOl0x8k+kwNnw5o5AL/2CZce06g=";
8987     };
8988     buildInputs = [ TestAssert TestUnitLite ];
8989     propagatedBuildInputs = [ ExceptionBase ];
8990     meta = {
8991       description = "Convert simple warn into real exception object";
8992       license = with lib.licenses; [ artistic1 gpl1Plus ];
8993     };
8994   };
8996   ExporterDeclare = buildPerlModule {
8997     pname = "Exporter-Declare";
8998     version = "0.114";
8999     src = fetchurl {
9000       url = "mirror://cpan/authors/id/E/EX/EXODIST/Exporter-Declare-0.114.tar.gz";
9001       hash = "sha256-S9cNbKdvb2un5MYY1KyTuFk6WPEjPMvhixD18gTx1OQ=";
9002     };
9003     buildInputs = [ FennecLite TestException ];
9004     propagatedBuildInputs = [ MetaBuilder aliased ];
9005     meta = {
9006       description = "Exporting done right";
9007       homepage = "http://open-exodus.net/projects/Exporter-Declare";
9008       license = with lib.licenses; [ artistic1 gpl1Plus ];
9009     };
9010   };
9012   ExporterLite = buildPerlPackage {
9013     pname = "Exporter-Lite";
9014     version = "0.09";
9015     src = fetchurl {
9016       url = "mirror://cpan/authors/id/N/NE/NEILB/Exporter-Lite-0.09.tar.gz";
9017       hash = "sha256-edixT9UBOSLGPoUPFb9RBZ8lAkBFNetmkO8jYSwqGY0=";
9018     };
9019     meta = {
9020       description = "Lightweight exporting of functions and variables";
9021       license = with lib.licenses; [ artistic1 gpl1Plus ];
9022     };
9023   };
9025   ExporterTiny = buildPerlPackage {
9026     pname = "Exporter-Tiny";
9027     version = "1.006002";
9028     src = fetchurl {
9029       url = "mirror://cpan/authors/id/T/TO/TOBYINK/Exporter-Tiny-1.006002.tar.gz";
9030       hash = "sha256-byleLL/7HbwVvbna3DQWccHgzSvfLTErF1Jic8MiY40=";
9031     };
9032     meta = {
9033       description = "An exporter with the features of Sub::Exporter but only core dependencies";
9034       homepage = "https://metacpan.org/release/Exporter-Tiny";
9035       license = with lib.licenses; [ artistic1 gpl1Plus ];
9036     };
9037   };
9039   Expect = buildPerlPackage {
9040     pname = "Expect";
9041     version = "1.35";
9042     src = fetchurl {
9043       url = "mirror://cpan/authors/id/J/JA/JACOBY/Expect-1.35.tar.gz";
9044       hash = "sha256-CdknYUId7NSVhTEDN5FlqZ779FLHIPMCd2As8jZ5/QY=";
9045     };
9046     propagatedBuildInputs = [ IOTty ];
9047     meta = {
9048       description = "Automate interactions with command line programs that expose a text terminal interface";
9049       license = with lib.licenses; [ artistic1 gpl1Plus ];
9050     };
9051   };
9053   ExpectSimple = buildPerlPackage {
9054     pname = "Expect-Simple";
9055     version = "0.04";
9056     src = fetchurl {
9057       url = "mirror://cpan/authors/id/D/DJ/DJERIUS/Expect-Simple-0.04.tar.gz";
9058       hash = "sha256-r4O5IYXmQmlZE/8Tjv6Bl1LoCFd1mZber8qrJwCtXbU=";
9059     };
9060     propagatedBuildInputs = [ Expect ];
9061     meta = {
9062       description = "Wrapper around the Expect module";
9063       license = with lib.licenses; [ artistic1 gpl1Plus ];
9064     };
9065   };
9067   ExtUtilsCChecker = buildPerlModule {
9068     pname = "ExtUtils-CChecker";
9069     version = "0.11";
9070     src = fetchurl {
9071       url = "mirror://cpan/authors/id/P/PE/PEVANS/ExtUtils-CChecker-0.11.tar.gz";
9072       hash = "sha256-EXc2Z343/GEfW3Y3TX+VLhlw64Dh9q1RUNUW565TG/U=";
9073     };
9074     buildInputs = [ TestFatal ];
9075     meta = {
9076       description = "Configure-time utilities for using C headers,";
9077       license = with lib.licenses; [ artistic1 gpl1Plus ];
9078     };
9079   };
9081   ExtUtilsConfig = buildPerlPackage {
9082     pname = "ExtUtils-Config";
9083     version = "0.008";
9084     src = fetchurl {
9085       url = "mirror://cpan/authors/id/L/LE/LEONT/ExtUtils-Config-0.008.tar.gz";
9086       hash = "sha256-rlEE9jRlDc6KebftE/tZ1no5whOmd2z9qj7nSeYvGow=";
9087     };
9088     meta = {
9089       description = "A wrapper for perl's configuration";
9090       license = with lib.licenses; [ artistic1 gpl1Plus ];
9091     };
9092   };
9094   ExtUtilsConstant = buildPerlPackage {
9095     pname = "ExtUtils-Constant";
9096     version = "0.25";
9097     src = fetchurl {
9098       url = "mirror://cpan/authors/id/N/NW/NWCLARK/ExtUtils-Constant-0.25.tar.gz";
9099       hash = "sha256-aTPQ6WO2IoHvdWEGjmrsrIxKwrR2srugmrC5D7rJ11c=";
9100     };
9101     patches = [
9102       ../development/perl-modules/ExtUtils-Constant-fix-indirect-method-call-in-test.patch
9103     ];
9104     meta = {
9105       description = "Generate XS code to import C header constants";
9106       license = with lib.licenses; [ artistic1 gpl1Plus ];
9107     };
9108   };
9110   ExtUtilsCppGuess = buildPerlPackage {
9111     pname = "ExtUtils-CppGuess";
9112     version = "0.26";
9113     src = fetchurl {
9114       url = "mirror://cpan/authors/id/E/ET/ETJ/ExtUtils-CppGuess-0.26.tar.gz";
9115       hash = "sha256-yLNiuGAXKkB2rO4AQ49SuGRk8sUAcCz891J4Ef+aaD4=";
9116     };
9117     doCheck = !stdenv.isDarwin;
9118     nativeBuildInputs = [ pkgs.ld-is-cc-hook ];
9119     propagatedBuildInputs = [ CaptureTiny ];
9120     buildInputs = [ ModuleBuild ];
9121     meta = {
9122       description = "Guess C++ compiler and flags";
9123       license = with lib.licenses; [ artistic1 gpl1Plus ];
9124     };
9125   };
9127   ExtUtilsDepends = buildPerlPackage {
9128     pname = "ExtUtils-Depends";
9129     version = "0.8001";
9130     src = fetchurl {
9131       url = "mirror://cpan/authors/id/X/XA/XAOC/ExtUtils-Depends-0.8001.tar.gz";
9132       hash = "sha256-ZzxDh+eJbBohYJnB+7P6qndj1/X5WhpWpgoqKQbBMcU=";
9133     };
9134     meta = {
9135       description = "Easily build XS extensions that depend on XS extensions";
9136       license = with lib.licenses; [ artistic1 gpl1Plus artistic1 gpl1Plus ];
9137     };
9138   };
9140   ExtUtilsF77 = buildPerlPackage rec {
9141     pname = "ExtUtils-F77";
9142     version = "1.26";
9143     src = fetchurl {
9144       url = "mirror://cpan/authors/id/E/ET/ETJ/ExtUtils-F77-1.26.tar.gz";
9145       hash = "sha256-q90dPuxMpPyuXxUrQLyqhi48gG4H5KqRI3V/aqSLndY=";
9146     };
9147     buildInputs = [ pkgs.gfortran ];
9148     propagatedBuildInputs = [ FileWhich ];
9149     meta = {
9150       description = "A simple interface to F77 libs";
9151       license = with lib.licenses; [ artistic1 gpl1Plus ];
9152     };
9153   };
9155   ExtUtilsHelpers = buildPerlPackage {
9156     pname = "ExtUtils-Helpers";
9157     version = "0.026";
9158     src = fetchurl {
9159       url = "mirror://cpan/authors/id/L/LE/LEONT/ExtUtils-Helpers-0.026.tar.gz";
9160       hash = "sha256-3pAbZ5CkVXz07JCBSeA1eDsSW/EV65ZA/rG8HCTDNBY=";
9161     };
9162     meta = {
9163       description = "Various portability utilities for module builders";
9164       license = with lib.licenses; [ artistic1 gpl1Plus ];
9165     };
9166   };
9168   ExtUtilsInstall = buildPerlPackage {
9169     pname = "ExtUtils-Install";
9170     version = "2.22";
9171     src = fetchurl {
9172       url = "mirror://cpan/authors/id/B/BI/BINGOS/ExtUtils-Install-2.22.tar.gz";
9173       hash = "sha256-M3Jbr77Tgp1hPkxlHC4a0SBnDH0qxc8F+DdX/Jddb/I=";
9174     };
9175     meta = {
9176       description = "Install files from here to there";
9177       homepage = "https://metacpan.org/release/ExtUtils-Install";
9178       license = with lib.licenses; [ artistic1 gpl1Plus ];
9179     };
9180   };
9182   ExtUtilsInstallPaths = buildPerlPackage {
9183     pname = "ExtUtils-InstallPaths";
9184     version = "0.012";
9185     src = fetchurl {
9186       url = "mirror://cpan/authors/id/L/LE/LEONT/ExtUtils-InstallPaths-0.012.tar.gz";
9187       hash = "sha256-hHNeMDe6sf3/o8JQhWetQSp4XJFZnbPBJZOlCh3UNO0=";
9188     };
9189     propagatedBuildInputs = [ ExtUtilsConfig ];
9190     meta = {
9191       description = "Build.PL install path logic made easy";
9192       license = with lib.licenses; [ artistic1 gpl1Plus ];
9193     };
9194   };
9196   ExtUtilsLibBuilder = buildPerlModule {
9197     pname = "ExtUtils-LibBuilder";
9198     version = "0.08";
9199     src = fetchurl {
9200       url = "mirror://cpan/authors/id/A/AM/AMBS/ExtUtils-LibBuilder-0.08.tar.gz";
9201       hash = "sha256-xRFx4G3lMDnwvKHZemRx7DeUH/Weij0csXDr3SVztdI=";
9202     };
9203     perlPreHook = "export LD=$CC";
9204     meta = {
9205       description = "A tool to build C libraries";
9206       license = with lib.licenses; [ artistic1 gpl1Plus ];
9207     };
9208   };
9210   ExtUtilsMakeMaker = buildPerlPackage {
9211     pname = "ExtUtils-MakeMaker";
9212     version = "7.70";
9213     src = fetchurl {
9214       url = "mirror://cpan/authors/id/B/BI/BINGOS/ExtUtils-MakeMaker-7.70.tar.gz";
9215       hash = "sha256-8Qi9RkINLwDSQoJfhlsPaIUQhJJJJPkiYdaExJ4+enQ=";
9216     };
9217     meta = {
9218       description = "Create a module Makefile";
9219       homepage = "https://metacpan.org/release/ExtUtils-MakeMaker";
9220       license = with lib.licenses; [ artistic1 gpl1Plus ];
9221       mainProgram = "instmodsh";
9222     };
9223   };
9225   ExtUtilsMakeMakerCPANfile = buildPerlPackage {
9226     pname = "ExtUtils-MakeMaker-CPANfile";
9227     version = "0.09";
9228     src = fetchurl {
9229       url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/ExtUtils-MakeMaker-CPANfile-0.09.tar.gz";
9230       hash = "sha256-LAd2B9SwoQhWkHTf926BaGWQYq2jpq94swzKDUD44nU=";
9231     };
9232     propagatedBuildInputs = [ ModuleCPANfile ];
9233     meta = {
9234       description = "Cpanfile support for EUMM";
9235       license = with lib.licenses; [ artistic1 gpl1Plus ];
9236     };
9237   };
9239   ExtUtilsPkgConfig = buildPerlPackage {
9240     pname = "ExtUtils-PkgConfig";
9241     version = "1.16";
9242     src = fetchurl {
9243       url = "mirror://cpan/authors/id/X/XA/XAOC/ExtUtils-PkgConfig-1.16.tar.gz";
9244       hash = "sha256-u+rO2ZXX2NEM/FGjpaZtpBzrK8BP7cq1DhDmMA6AHG4=";
9245     };
9246     nativeBuildInputs = [ buildPackages.pkg-config ];
9247     propagatedBuildInputs = [ pkgs.pkg-config ];
9248     postPatch = ''
9249       # no pkg-config binary when cross-compiling so the check fails
9250       substituteInPlace Makefile.PL \
9251         --replace "pkg-config" "$PKG_CONFIG"
9252     '';
9253     doCheck = false; # expects test_glib-2.0.pc in PKG_CONFIG_PATH
9254     meta = {
9255       description = "Simplistic interface to pkg-config";
9256       license = with lib.licenses; [ lgpl21Plus ];
9257     };
9258   };
9260   # From CPAN[1]:
9261   #   This module exists merely as a compatibility wrapper around
9262   #   ExtUtils::Typemaps. In a nutshell, ExtUtils::Typemap was renamed to
9263   #   ExtUtils::Typemaps because the Typemap directory in lib/ could collide with
9264   #   the typemap file on case-insensitive file systems.
9265   #
9266   #   The ExtUtils::Typemaps module is part of the ExtUtils::ParseXS distribution
9267   #   and ships with the standard library of perl starting with perl version
9268   #   5.16.
9269   #
9270   # [1] https://metacpan.org/pod/release/SMUELLER/ExtUtils-Typemap-1.00/lib/ExtUtils/Typemap.pm:
9271   ExtUtilsTypemap = buildPerlPackage {
9272     pname = "ExtUtils-Typemap";
9273     version = "1.00";
9274     src = fetchurl {
9275       url = "mirror://cpan/authors/id/S/SM/SMUELLER/ExtUtils-Typemap-1.00.tar.gz";
9276       hash = "sha256-sbAVdy27BouToPb/oC9dlIIjZeYBisXtK8U8pmkHH8c=";
9277     };
9278     meta = {
9279       description = "Read/Write/Modify Perl/XS typemap files";
9280       license = with lib.licenses; [ artistic1 gpl1Plus ];
9281     };
9282   };
9284   ExtUtilsTypemapsDefault = buildPerlModule {
9285     pname = "ExtUtils-Typemaps-Default";
9286     version = "1.05";
9287     src = fetchurl {
9288       url = "mirror://cpan/authors/id/S/SM/SMUELLER/ExtUtils-Typemaps-Default-1.05.tar.gz";
9289       hash = "sha256-Pfr1g36/3AB4lb/KhMPC521Ymn0zZADo37MkPYGCFd4=";
9290     };
9291     meta = {
9292       description = "A set of useful typemaps";
9293       license = with lib.licenses; [ artistic1 gpl1Plus ];
9294     };
9295   };
9297   ExtUtilsXSBuilder = buildPerlPackage {
9298     pname = "ExtUtils-XSBuilder";
9299     version = "0.28";
9300     src = fetchurl {
9301       url = "mirror://cpan/authors/id/G/GR/GRICHTER/ExtUtils-XSBuilder-0.28.tar.gz";
9302       hash = "sha256-jM7ThuPVRMXsLes67QVbcuvPwuqabIB9qHxCRScv6Ao=";
9303     };
9304     propagatedBuildInputs = [ ParseRecDescent TieIxHash ];
9305     meta = {
9306       description = "Automatic Perl XS glue code generation";
9307       license = with lib.licenses; [ artistic1 gpl1Plus ];
9308     };
9309   };
9311   ExtUtilsXSpp = buildPerlModule {
9312     pname = "ExtUtils-XSpp";
9313     version = "0.18";
9314     src = fetchurl {
9315       url = "mirror://cpan/authors/id/S/SM/SMUELLER/ExtUtils-XSpp-0.18.tar.gz";
9316       hash = "sha256-kXatZGcp470nz3q/EUvt00JL/xumEYXPx9VPOpIjqP8=";
9317     };
9318     buildInputs = [ TestBase TestDifferences ];
9319     meta = {
9320       description = "XS for C++";
9321       license = with lib.licenses; [ artistic1 gpl1Plus ];
9322       mainProgram = "xspp";
9323     };
9324   };
9326   FatalException = buildPerlModule {
9327     pname = "Fatal-Exception";
9328     version = "0.05";
9329     src = fetchurl {
9330       url = "mirror://cpan/authors/id/D/DE/DEXTER/Fatal-Exception-0.05.tar.gz";
9331       hash = "sha256-KAldIT+zKknJwjKmhEg375Rdua1unmHkULTfTQjj7k8=";
9332     };
9333     buildInputs = [ ExceptionWarning TestAssert TestUnitLite ];
9334     propagatedBuildInputs = [ ExceptionDied ];
9335     meta = {
9336       description = "Thrown when core function has a fatal error";
9337       license = with lib.licenses; [ artistic1 gpl1Plus ];
9338     };
9339   };
9341   FCGI = buildPerlPackage {
9342     pname = "FCGI";
9343     version = "0.82";
9344     src = fetchurl {
9345       url = "mirror://cpan/authors/id/E/ET/ETHER/FCGI-0.82.tar.gz";
9346       hash = "sha256-TH1g4m2iwH8Fik40UCHpJQUnOzPJVCIVl34IRhHwns8=";
9347     };
9348     buildInputs = [ FCGIClient ];
9349     postPatch = lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
9350       sed -i '/use IO::File/d' Makefile.PL
9351     '';
9352     meta = {
9353       description = "Fast CGI module";
9354       license = with lib.licenses; [ oml ];
9355     };
9356   };
9358   FCGIClient = buildPerlModule {
9359     pname = "FCGI-Client";
9360     version = "0.09";
9361     src = fetchurl {
9362       url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/FCGI-Client-0.09.tar.gz";
9363       hash = "sha256-1TfLCc5aqz9Eemu0QV5GzAbv4BYRzVYom1WCvbRiIeg=";
9364     };
9365     propagatedBuildInputs = [ Moo TypeTiny ];
9366     buildInputs = [ ModuleBuildTiny ];
9367     meta = {
9368       description = "Client library for fastcgi protocol";
9369       homepage = "https://github.com/tokuhirom/p5-fcgi-client";
9370       license = with lib.licenses; [ artistic1 gpl1Plus ];
9371     };
9372   };
9374   FCGIProcManager = buildPerlPackage {
9375     pname = "FCGI-ProcManager";
9376     version = "0.28";
9377     src = fetchurl {
9378       url = "mirror://cpan/authors/id/A/AR/ARODLAND/FCGI-ProcManager-0.28.tar.gz";
9379       hash = "sha256-4clYwEJCehdeBR4ACPICXo7IBhPTx3UFl7+OUpsEQg4=";
9380     };
9381     meta = {
9382       description = "A perl-based FastCGI process manager";
9383       license = with lib.licenses; [ gpl2Plus ];
9384     };
9385   };
9387   FFIC = buildPerlPackage {
9388     pname = "FFI-C";
9389     version = "0.15";
9390     src = fetchurl {
9391       url = "mirror://cpan/authors/id/P/PL/PLICEASE/FFI-C-0.15.tar.gz";
9392       hash = "sha256-63BgfmZzvMsY3yf0zuRZ+23EGODak+aSzcNVX+QNL04=";
9393     };
9394     buildInputs = [ CaptureTiny PathTiny Test2Suite ];
9395     propagatedBuildInputs = [ ClassInspector FFIPlatypus FFIPlatypusTypeEnum RefUtil SubIdentify SubInstall ];
9396     meta = {
9397       homepage = "https://metacpan.org/pod/FFI::C";
9398       description = "C data types for FFI";
9399       license = with lib.licenses; [ artistic1 gpl1Plus ];
9400       maintainers = with maintainers; [ tomasajt ];
9401     };
9402   };
9404   FFICheckLib = buildPerlPackage {
9405     pname = "FFI-CheckLib";
9406     version = "0.31";
9407     src = fetchurl {
9408       url = "mirror://cpan/authors/id/P/PL/PLICEASE/FFI-CheckLib-0.31.tar.gz";
9409       hash = "sha256-BNiF/Dd9RIluXqHE7DEPl5uwTy8YZYp+ek1Qn36Au4A=";
9410     };
9411     buildInputs = [ Test2Suite ];
9412     propagatedBuildInputs = [ FileWhich ];
9413     meta = {
9414       description = "Check that a library is available for FFI";
9415       homepage = "https://metacpan.org/pod/FFI::CheckLib";
9416       license = with lib.licenses; [ artistic1 gpl1Plus ];
9417     };
9418   };
9420   FeatureCompatTry = buildPerlModule {
9421     pname = "Feature-Compat-Try";
9422     version = "0.05";
9423     src = fetchurl {
9424       url = "mirror://cpan/authors/id/P/PE/PEVANS/Feature-Compat-Try-0.05.tar.gz";
9425       hash = "sha256-WaHHFzysMNsTHF8T+jhA9xhYju+bV5NS/+FWtVBxbXw=";
9426     };
9427     buildInputs = [ Test2Suite ];
9428     propagatedBuildInputs = [ SyntaxKeywordTry ];
9429     meta = {
9430       description = "Make C<try/catch> syntax available";
9431       license = with lib.licenses; [ artistic1 gpl1Plus ];
9432     };
9433   };
9435   FFICStat = buildPerlPackage {
9436     pname = "FFI-C-Stat";
9437     version = "0.02";
9438     src = fetchurl {
9439       url = "mirror://cpan/authors/id/P/PL/PLICEASE/FFI-C-Stat-0.02.tar.gz";
9440       hash = "sha256-ThXY9vn5hAfGUtnTE7URUHcTkgGOBx18GShDrILBvlk=";
9441     };
9442     buildInputs = [ Filechdir PathTiny Test2Suite TestScript ];
9443     propagatedBuildInputs = [ FFIPlatypus RefUtil ];
9444     meta = {
9445       homepage = "https://metacpan.org/pod/FFI::C::Stat";
9446       description = "Object-oriented FFI interface to native stat and lstat";
9447       license = with lib.licenses; [ artistic1 gpl1Plus ];
9448       maintainers = with maintainers; [ tomasajt ];
9449     };
9450   };
9452   FFIPlatypus = buildPerlPackage {
9453     pname = "FFI-Platypus";
9454     version = "2.08";
9455     src = fetchurl {
9456       url = "mirror://cpan/authors/id/P/PL/PLICEASE/FFI-Platypus-2.08.tar.gz";
9457       hash = "sha256-EbOrEU7ZY1YxzYWzjSKXhuFEv5Sjr5rAnD17s0M2uSQ=";
9458     };
9459     buildInputs = [ AlienFFI Test2Suite ];
9460     propagatedBuildInputs = [ CaptureTiny FFICheckLib ];
9461     meta = {
9462       homepage = "https://pl.atypus.org";
9463       description = "Write Perl bindings to non-Perl libraries with FFI. No XS required";
9464       license = with lib.licenses; [ artistic1 gpl1Plus ];
9465       maintainers = with maintainers; [ tomasajt ];
9466     };
9467   };
9469   FFIPlatypusTypePtrObject = buildPerlPackage {
9470     pname = "FFI-Platypus-Type-PtrObject";
9471     version = "0.03";
9472     src = fetchurl {
9473       url = "mirror://cpan/authors/id/P/PL/PLICEASE/FFI-Platypus-Type-PtrObject-0.03.tar.gz";
9474       hash = "sha256-4elJB++QtANgqabAPSlaEwR9T2ybVqyvHfK1TRcwf3Q=";
9475     };
9476     buildInputs = [ Test2Suite Test2ToolsFFI ];
9477     propagatedBuildInputs = [ FFIPlatypus RefUtil ];
9478     meta = {
9479       homepage = "https://metacpan.org/pod/FFI::Platypus::Type::PtrObject";
9480       description = "Platypus custom type for an object wrapped around an opaque pointer";
9481       license = with lib.licenses; [ artistic1 gpl1Plus ];
9482       maintainers = with maintainers; [ tomasajt ];
9483     };
9484   };
9486   FFIPlatypusTypeEnum = buildPerlPackage {
9487     pname = "FFI-Platypus-Type-Enum";
9488     version = "0.06";
9489     src = fetchurl {
9490       url = "mirror://cpan/authors/id/P/PL/PLICEASE/FFI-Platypus-Type-Enum-0.06.tar.gz";
9491       hash = "sha256-yVSmBPfWkpYk+pQT2NDh2DtL2XfQVifKznPtU6lcd98=";
9492     };
9493     buildInputs = [ FFIPlatypus Test2Suite ];
9494     propagatedBuildInputs = [ RefUtil ];
9495     meta = {
9496       homepage = "https://metacpan.org/pod/FFI::Platypus::Type::Enum";
9497       description = "Custom platypus type for dealing with C enumerated types";
9498       license = with lib.licenses; [ artistic1 gpl1Plus ];
9499       maintainers = with maintainers; [ tomasajt ];
9500     };
9501   };
9503   FennecLite = buildPerlModule {
9504     pname = "Fennec-Lite";
9505     version = "0.004";
9506     src = fetchurl {
9507       url = "mirror://cpan/authors/id/E/EX/EXODIST/Fennec-Lite-0.004.tar.gz";
9508       hash = "sha256-3OKOOTJ2LC/5KqUtkEBcBuiY6By3sWTMrolmrnfx3Ks=";
9509     };
9510     meta = {
9511       description = "Minimalist Fennec, the commonly used bits";
9512       homepage = "http://open-exodus.net/projects/Fennec-Lite";
9513       license = with lib.licenses; [ artistic1 gpl1Plus ];
9514     };
9515   };
9517   FileChangeNotify = buildPerlPackage {
9518     pname = "File-ChangeNotify";
9519     version = "0.31";
9520     src = fetchurl {
9521       url = "mirror://cpan/authors/id/D/DR/DROLSKY/File-ChangeNotify-0.31.tar.gz";
9522       hash = "sha256-GSvbHOdiZsamlKjpYtA5463uuCm2rB4j9QV/K1Bjkr0=";
9523     };
9524     buildInputs = [ Test2Suite TestRequires TestWithoutModule ];
9525     propagatedBuildInputs = [ ModulePluggable Moo TypeTiny namespaceautoclean ];
9526     meta = {
9527       description = "Watch for changes to files, cross-platform style";
9528       license = with lib.licenses; [ artistic2 ];
9529     };
9530   };
9532   Filechdir = buildPerlPackage {
9533     pname = "File-chdir";
9534     version = "0.1011";
9535     src = fetchurl {
9536       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/File-chdir-0.1011.tar.gz";
9537       hash = "sha256-Mev5Et9I1daB3vdLmIDXix86ykNRoO0f41cLjgOvbHk=";
9538     };
9539     meta = {
9540       description = "A more sensible way to change directories";
9541       license = with lib.licenses; [ artistic1 gpl1Plus ];
9542     };
9543   };
9545   FileBaseDir = buildPerlPackage {
9546     version = "0.09";
9547     pname = "File-BaseDir";
9548     src = fetchurl {
9549       url = "mirror://cpan/authors/id/P/PL/PLICEASE/File-BaseDir-0.09.tar.gz";
9550       hash = "sha256-bab3KBVirI8R7xo69q7bUcQRgrYPHxIs7QB579kpZ9k=";
9551     };
9552     propagatedBuildInputs = [ IPCSystemSimple ];
9553     nativeCheckInputs = [ FileWhich ];
9554     meta = {
9555       description = "Use the Freedesktop.org base directory specification";
9556       license = with lib.licenses; [ artistic1 gpl1Plus ];
9557     };
9558   };
9560   FileBOM = buildPerlModule {
9561     pname = "File-BOM";
9562     version = "0.18";
9563     src = fetchurl {
9564       url = "mirror://cpan/authors/id/M/MA/MATTLAW/File-BOM-0.18.tar.gz";
9565       hash = "sha256-KO3EP8sRjhG8RYya6InVbTiMHZvCmZewCx3/2Fc4I6M=";
9566     };
9567     buildInputs = [ TestException ];
9568     propagatedBuildInputs = [ Readonly ];
9569     meta = {
9570       description = "Utilities for handling Byte Order Marks";
9571       license = with lib.licenses; [ artistic1 gpl1Plus ];
9572     };
9573   };
9575   FileCheckTree = buildPerlPackage {
9576     pname = "File-CheckTree";
9577     version = "4.42";
9578     src = fetchurl {
9579       url = "mirror://cpan/authors/id/R/RJ/RJBS/File-CheckTree-4.42.tar.gz";
9580       hash = "sha256-ZvtBf4/4peW36iVgYVbnDiBIYcWfqMODGSW03T8VX4o=";
9581     };
9582     meta = {
9583       description = "Run many filetest checks on a tree";
9584       homepage = "https://search.cpan.org/dist/File-CheckTree";
9585       license = with lib.licenses; [ artistic1 gpl1Plus ];
9586     };
9587   };
9589   Filechmod = buildPerlPackage {
9590     pname = "File-chmod";
9591     version = "0.42";
9592     src = fetchurl {
9593       url = "mirror://cpan/authors/id/X/XE/XENO/File-chmod-0.42.tar.gz";
9594       hash = "sha256-bK+v/2i8hCFRaLVe3g0ZHctX+aMgG1HWHtsoWKJAd5U=";
9595     };
9596     meta = {
9597       description = "Implements symbolic and ls chmod modes";
9598       homepage = "https://metacpan.org/dist/File-chmod";
9599       license = with lib.licenses; [ artistic1 gpl1Plus ];
9600     };
9601   };
9603   FilechmodRecursive = buildPerlPackage {
9604     pname = "File-chmod-Recursive";
9605     version = "1.0.3";
9606     src = fetchurl {
9607       url = "mirror://cpan/authors/id/M/MI/MITHUN/File-chmod-Recursive-v1.0.3.tar.gz";
9608       hash = "sha256-k0jKXFuI3q3MSDuTme98Lg/CUE+QWNtl88PFPEETmqc=";
9609     };
9610     propagatedBuildInputs = [ Filechmod ];
9611     meta = {
9612       description = "Run chmod recursively against directories";
9613       homepage = "https://github.com/mithun/perl-file-chmod-recursive";
9614       license = with lib.licenses; [ artistic1 gpl1Plus ];
9615     };
9616   };
9618   FileCopyRecursive = buildPerlPackage {
9619     pname = "File-Copy-Recursive";
9620     version = "0.45";
9621     src = fetchurl {
9622       url = "mirror://cpan/authors/id/D/DM/DMUEY/File-Copy-Recursive-0.45.tar.gz";
9623       hash = "sha256-05cc94qDReOAQrIIu3s5y2lQgDhq9in0oE/9ZUnfEVc=";
9624     };
9625     buildInputs = [ PathTiny TestDeep TestFatal TestFile TestWarnings ];
9626     meta = {
9627       description = "Perl extension for recursively copying files and directories";
9628       license = with lib.licenses; [ artistic1 gpl1Plus ];
9629     };
9630   };
9632   FileCopyRecursiveReduced = buildPerlPackage {
9633     pname = "File-Copy-Recursive-Reduced";
9634     version = "0.007";
9635     src = fetchurl {
9636       url = "mirror://cpan/authors/id/J/JK/JKEENAN/File-Copy-Recursive-Reduced-0.007.tar.gz";
9637       hash = "sha256-07WFIuaYA6kUN+KcCZ63Bug3Px7vBRik3DZp3T383Cc=";
9638     };
9639     buildInputs = [ CaptureTiny PathTiny ];
9640     meta = {
9641       description = "Recursive copying of files and directories within Perl 5 toolchain";
9642       homepage = "http://thenceforward.net/perl/modules/File-Copy-Recursive-Reduced";
9643       license = with lib.licenses; [ artistic1 gpl1Plus ];
9644     };
9645   };
9647   FileCountLines = buildPerlPackage {
9648     pname = "File-CountLines";
9649     version = "0.0.3";
9650     src = fetchurl {
9651       url = "mirror://cpan/authors/id/M/MO/MORITZ/File-CountLines-v0.0.3.tar.gz";
9652       hash = "sha256-z9l8znyWE+TladR4dKK1cE8b6eztLwc5yHByVpQ4KmI=";
9653     };
9654     meta = {
9655       description = "Efficiently count the number of line breaks in a file";
9656       license = with lib.licenses; [ artistic1 gpl1Plus ];
9657     };
9658   };
9660   FileDesktopEntry = buildPerlPackage {
9661     version = "0.22";
9662     pname = "File-DesktopEntry";
9663     src = fetchurl {
9664       url = "mirror://cpan/authors/id/M/MI/MICHIELB/File-DesktopEntry-0.22.tar.gz";
9665       hash = "sha256-FpwB49ri9il2e+wanxzb1uxtcT0VAeCyeG5N0SNWNbg=";
9666     };
9667     propagatedBuildInputs = [ FileBaseDir URI ];
9668     meta = {
9669       description = "Object to handle .desktop files";
9670       license = with lib.licenses; [ artistic1 gpl1Plus ];
9671     };
9672   };
9674   FileDirList = buildPerlPackage {
9675     version = "0.05";
9676     pname = "File-DirList";
9677     src = fetchurl {
9678       url = "mirror://cpan/authors/id/T/TP/TPABA/File-DirList/File-DirList-0.05.tar.gz";
9679       sha256 = "sha256-mTt9dmLlV5hEih7azLmr0oHSvSO+fquZ9Wm44pYtO8M=";
9680     };
9681     preCheck = ''
9682       export HOME="$TMPDIR"
9683     '';
9684     meta = {
9685       description = "Provide a sorted list of directory content";
9686       license = with lib.licenses; [ artistic1 gpl1Plus ];
9687     };
9688   };
9690   FileFindIterator = buildPerlPackage {
9691     pname = "File-Find-Iterator";
9692     version = "0.4";
9693     src = fetchurl {
9694       url = "mirror://cpan/authors/id/T/TE/TEXMEC/File-Find-Iterator-0.4.tar.gz";
9695       hash = "sha256-orh6uXVqLlu2dK29OZN2Y+0gwoxxa/WhCVo8pE1Uqyw=";
9696     };
9697     propagatedBuildInputs = [ ClassIterator ];
9698     meta = {
9699       description = "Iterator interface for search files";
9700       license = with lib.licenses; [ artistic1 gpl1Plus ];
9701     };
9702   };
9704   FileFindObject = buildPerlModule {
9705     pname = "File-Find-Object";
9706     version = "0.3.8";
9707     src = fetchurl {
9708       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/File-Find-Object-0.3.8.tar.gz";
9709       hash = "sha256-TlJRRt6GTt+8kJsIRGKe7O0AY7YdQYuXLu8D+ES7NRQ=";
9710     };
9711     buildInputs = [ FileTreeCreate TestFile ];
9712     propagatedBuildInputs = [ ClassXSAccessor ];
9713     meta = {
9714       description = "An object oriented File::Find replacement";
9715       homepage = "https://metacpan.org/release/File-Find-Object";
9716       license = with lib.licenses; [ artistic2 ];
9717     };
9718   };
9720   FileFindObjectRule = buildPerlModule {
9721     pname = "File-Find-Object-Rule";
9722     version = "0.0313";
9723     src = fetchurl {
9724       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/File-Find-Object-Rule-0.0313.tar.gz";
9725       hash = "sha256-gZQPKZ1khySPvzDY8ft99sajSz35RApWIbE1yONPz/I=";
9726     };
9727     buildInputs = [ FileTreeCreate ];
9728     propagatedBuildInputs = [ ClassXSAccessor FileFindObject NumberCompare TextGlob ];
9729     # restore t/sample-data which is corrupted by patching shebangs
9730     preCheck = ''
9731       tar xf $src */t/sample-data --strip-components=1
9732     '';
9733     meta = {
9734       description = "Alternative interface to File::Find::Object";
9735       homepage = "https://www.shlomifish.org/open-source/projects/File-Find-Object";
9736       license = with lib.licenses; [ artistic1 gpl1Plus ];
9737       mainProgram = "findorule";
9738     };
9739   };
9741   FileFindRule = buildPerlPackage {
9742     pname = "File-Find-Rule";
9743     version = "0.34";
9744     src = fetchurl {
9745       url = "mirror://cpan/authors/id/R/RC/RCLAMP/File-Find-Rule-0.34.tar.gz";
9746       hash = "sha256-fm8WzDPrHyn/Jb7lHVE/S4qElHu/oY7bLTzECi1kyv4=";
9747     };
9748     propagatedBuildInputs = [ NumberCompare TextGlob ];
9749     meta = {
9750       description = "File::Find::Rule is a friendlier interface to File::Find";
9751       license = with lib.licenses; [ artistic1 gpl1Plus ];
9752       mainProgram = "findrule";
9753     };
9754   };
9756   FileFindRulePerl = buildPerlPackage {
9757     pname = "File-Find-Rule-Perl";
9758     version = "1.16";
9759     src = fetchurl {
9760       url = "mirror://cpan/authors/id/E/ET/ETHER/File-Find-Rule-Perl-1.16.tar.gz";
9761       hash = "sha256-rhiGBQ2cohIjwHPihwq9yA3DDj9VKJoRw32jggqDIf8=";
9762     };
9763     propagatedBuildInputs = [ FileFindRule ParamsUtil ];
9764     meta = {
9765       description = "Common rules for searching for Perl things";
9766       homepage = "https://github.com/karenetheridge/File-Find-Rule-Perl";
9767       license = with lib.licenses; [ artistic1 gpl1Plus ];
9768     };
9769   };
9771   FileFinder = buildPerlPackage {
9772     pname = "File-Finder";
9773     version = "0.53";
9774     src = fetchurl {
9775       url = "mirror://cpan/authors/id/M/ME/MERLYN/File-Finder-0.53.tar.gz";
9776       hash = "sha256-LsvBmsZ6nmNchyqAeo0+qv9bq8BU8VoZHUfN/F8XanQ=";
9777     };
9778     propagatedBuildInputs = [ TextGlob ];
9779     meta = {
9780       description = "Nice wrapper for File::Find ala find(1)";
9781       license = with lib.licenses; [ artistic1 gpl1Plus ];
9782     };
9783   };
9785   FileFnMatch = buildPerlPackage {
9786     pname = "File-FnMatch";
9787     version = "0.02";
9788     src = fetchurl {
9789       url = "mirror://cpan/authors/id/M/MJ/MJP/File-FnMatch-0.02.tar.gz";
9790       hash = "sha256-liRUuOhr6osTK/ivNXV9DGqPXVmQFb1qXWjLeuep6RY=";
9791     };
9792     meta = {
9793       description = "Simple filename and pathname matching";
9794       license = with lib.licenses; [ artistic1 gpl1Plus ];
9795       maintainers = teams.deshaw.members;
9796     };
9797   };
9799   FileGrep = buildPerlPackage {
9800     pname = "File-Grep";
9801     version = "0.02";
9802     src = fetchurl {
9803       url = "mirror://cpan/authors/id/M/MN/MNEYLON/File-Grep-0.02.tar.gz";
9804       hash = "sha256-Ri4VJ062J4UhQH6jAtnupyUs1EyrI4KHH33oM9X4VjI=";
9805     };
9806     meta = {
9807       description = "Find matches to a pattern in a series of files and related functions";
9808       license = with lib.licenses; [ artistic1 gpl1Plus ];
9809       maintainers = teams.deshaw.members;
9810     };
9811   };
9813   FileHandleUnget = buildPerlPackage {
9814     pname = "FileHandle-Unget";
9815     version = "0.1634";
9816     src = fetchurl {
9817       url = "mirror://cpan/authors/id/D/DC/DCOPPIT/FileHandle-Unget-0.1634.tar.gz";
9818       hash = "sha256-OA80rTzl6exmHUxGi7M5IjHBYjF9QXLfN4FGtCqrF4U=";
9819     };
9820     buildInputs = [ FileSlurper TestCompile UNIVERSALrequire URI ];
9821     meta = {
9822       description = "FileHandle which supports multi-byte unget";
9823       homepage = "https://github.com/coppit/filehandle-unget";
9824       license = with lib.licenses; [ gpl2Only ];
9825       maintainers = with maintainers; [ romildo ];
9826     };
9827   };
9829   FileHomeDir = buildPerlPackage {
9830     pname = "File-HomeDir";
9831     version = "1.006";
9832     src = fetchurl {
9833       url = "mirror://cpan/authors/id/R/RE/REHSACK/File-HomeDir-1.006.tar.gz";
9834       hash = "sha256-WTc3xi3w9tq11BIuC0R2QXlFu2Jiwz7twAlmXvFUiFI=";
9835     };
9836     propagatedBuildInputs = [ FileWhich ];
9837     preCheck = "export HOME=$TMPDIR";
9838     doCheck = !stdenv.isDarwin;
9839     meta = {
9840       description = "Find your home and other directories on any platform";
9841       homepage = "https://metacpan.org/release/File-HomeDir";
9842       license = with lib.licenses; [ artistic1 gpl1Plus ];
9843     };
9844   };
9846   FileKeePass = buildPerlPackage {
9847     pname = "File-KeePass";
9848     version = "2.03";
9849     src = fetchurl {
9850       url = "mirror://cpan/authors/id/R/RH/RHANDOM/File-KeePass-2.03.tar.gz";
9851       hash = "sha256-wwxogCelL/T1jNadbY7zVHKnzxBtTOlOtzp5a6fH/6c=";
9852     };
9853     propagatedBuildInputs = [ CryptRijndael ];
9854     meta = {
9855       description = "Interface to KeePass V1 and V2 database files";
9856       license = with lib.licenses; [ gpl2Only gpl3Only ];
9857     };
9858   };
9860   Filelchown = buildPerlModule {
9861     pname = "File-lchown";
9862     version = "0.02";
9863     src = fetchurl {
9864       url = "mirror://cpan/authors/id/P/PE/PEVANS/File-lchown-0.02.tar.gz";
9865       hash = "sha256-oC+/KFQGqKTZOZKE8DLy1VxWl1FUwuFnS9EJg3uAluw=";
9866     };
9867     buildInputs = [ ExtUtilsCChecker ];
9868     perlPreHook = lib.optionalString (stdenv.isi686 || stdenv.isDarwin) "export LD=$CC"; # fix undefined reference to `__stack_chk_fail_local'
9869     meta = {
9870       description = "Modify attributes of symlinks without dereferencing them";
9871       license = with lib.licenses; [ artistic1 gpl1Plus ];
9872     };
9873   };
9875   FileLibMagic = buildPerlPackage {
9876     pname = "File-LibMagic";
9877     version = "1.23";
9878     src = fetchurl {
9879       url = "mirror://cpan/authors/id/D/DR/DROLSKY/File-LibMagic-1.23.tar.gz";
9880       hash = "sha256-Uuax3Hyy2HpM30OboUXguejPKMwmpIo8+Zd8g0Y5Z+4=";
9881     };
9882     buildInputs = [ pkgs.file ConfigAutoConf TestFatal ];
9883     makeMakerFlags = [ "--lib=${pkgs.file}/lib" ];
9884     preCheck = ''
9885       substituteInPlace t/oo-api.t \
9886         --replace "/usr/share/file/magic.mgc" "${pkgs.file}/share/misc/magic.mgc"
9887     '';
9888     meta = {
9889       description = "Determine MIME types of data or files using libmagic";
9890       homepage = "https://metacpan.org/release/File::LibMagic";
9891       license = with lib.licenses; [ artistic1 gpl1Plus ];
9892       broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.FileLibMagic.x86_64-darwin
9893     };
9894   };
9896   FileListing = buildPerlPackage {
9897     pname = "File-Listing";
9898     version = "6.16";
9899     src = fetchurl {
9900       url = "mirror://cpan/authors/id/P/PL/PLICEASE/File-Listing-6.16.tar.gz";
9901       hash = "sha256-GJs6E/wKG6QSudnsWQHp5eREzHRrnwFW1DmTcNM2VcY=";
9902     };
9903     propagatedBuildInputs = [ HTTPDate ];
9904     meta = {
9905       description = "Parse directory listing";
9906       license = with lib.licenses; [ artistic1 gpl1Plus ];
9907     };
9908   };
9910   FileLoadLines = buildPerlPackage {
9911     pname = "File-LoadLines";
9912     version = "1.021";
9913     src = fetchurl {
9914       url = "mirror://cpan/authors/id/J/JV/JV/File-LoadLines-1.021.tar.gz";
9915       hash = "sha256-mOQS98aSYRNPNLh4W926sxVrj0UlU9u1tWytaDuG//A=";
9916     };
9917     buildInputs = [ TestException ];
9918     meta = {
9919       description = "Load lines from file";
9920       license = with lib.licenses; [ artistic1 gpl1Plus ];
9921     };
9922   };
9924   FileMimeInfo = buildPerlPackage {
9925     pname = "File-MimeInfo";
9926     version = "0.33";
9927     src = fetchurl {
9928       url = "mirror://cpan/authors/id/M/MI/MICHIELB/File-MimeInfo-0.33.tar.gz";
9929       hash = "sha256-9r6ms4kGITJeycJ5KvruiOlIoK4dEIcvpyxxELPhscQ=";
9930     };
9931     doCheck = false; # Failed test 'desktop file is the right one'
9932     buildInputs = [ FileBaseDir FileDesktopEntry EncodeLocale ];
9933     meta = {
9934       description = "Determine file type from the file name";
9935       license = with lib.licenses; [ artistic1 gpl1Plus ];
9936     };
9937   };
9939   FileMMagic = buildPerlPackage {
9940     pname = "File-MMagic";
9941     version = "1.30";
9942     src = fetchurl {
9943       url = "mirror://cpan/authors/id/K/KN/KNOK/File-MMagic-1.30.tar.gz";
9944       hash = "sha256-zwwbHrKXBcAtl8KRNkgAnAvkLOk+wks2xpa/LU9evX4=";
9945     };
9946     meta = {
9947       description = "Guess file type from contents";
9948       license = with lib.licenses; [ asl20 ];
9949     };
9950   };
9952   FileMap = buildPerlModule {
9953     pname = "File-Map";
9954     version = "0.71";
9955     src = fetchurl {
9956       url = "mirror://cpan/authors/id/L/LE/LEONT/File-Map-0.71.tar.gz";
9957       hash = "sha256-yOJpM4BOhw1KupJiO3iGrIs8dgyY+/zTvcSyMFxGR1k=";
9958     };
9959     perlPreHook = "export LD=$CC";
9960     propagatedBuildInputs = [ PerlIOLayers SubExporterProgressive ];
9961     buildInputs = [ TestFatal TestWarnings ];
9962     meta = {
9963       description = "Memory mapping made simple and safe";
9964       license = with lib.licenses; [ artistic1 gpl1Plus ];
9965     };
9966   };
9968   FileModified = buildPerlPackage {
9969     pname = "File-Modified";
9970     version = "0.10";
9971     src = fetchurl {
9972       url = "mirror://cpan/authors/id/N/NE/NEILB/File-Modified-0.10.tar.gz";
9973       hash = "sha256-a1CxqrbsaZigF/ZAPCc1s7weHPRhh70TTX623z/EUUQ=";
9974     };
9975     meta = {
9976       description = "Checks intelligently if files have changed";
9977       homepage = "https://github.com/neilbowers/File-Modified";
9978       license = with lib.licenses; [ artistic1 gpl1Plus ];
9979     };
9980   };
9982   FileNext = buildPerlPackage {
9983     pname = "File-Next";
9984     version = "1.18";
9985     src = fetchurl {
9986       url = "mirror://cpan/authors/id/P/PE/PETDANCE/File-Next-1.18.tar.gz";
9987       hash = "sha256-+QDLOVBetuFoqcpRoQtz8bveGRS5I6CezXLZwC5uwu8=";
9988     };
9989     meta = {
9990       description = "File-finding iterator";
9991       license = with lib.licenses; [ artistic2 ];
9992     };
9993   };
9995   FileNFSLock = buildPerlPackage {
9996     pname = "File-NFSLock";
9997     version = "1.29";
9998     src = fetchurl {
9999       url = "mirror://cpan/authors/id/B/BB/BBB/File-NFSLock-1.29.tar.gz";
10000       hash = "sha256-YdQVmbSBFk7fm4vsq77y0j9iKpcn9sGDZekrV4LU+jc=";
10001     };
10002     meta = {
10003       description = "Perl module to do NFS (or not) locking";
10004       license = with lib.licenses; [ artistic1 gpl1Only ];
10005     };
10006   };
10008   FilePath = buildPerlPackage {
10009     pname = "File-Path";
10010     version = "2.18";
10011     src = fetchurl {
10012       url = "mirror://cpan/authors/id/J/JK/JKEENAN/File-Path-2.18.tar.gz";
10013       hash = "sha256-mA8KF+2zU99G6c17NX+fWSnN4PgMRf16Bs9+DovWrd0=";
10014     };
10015     meta = {
10016       description = "Create or remove directory trees";
10017       license = with lib.licenses; [ artistic1 gpl1Plus ];
10018     };
10019   };
10021   FilePid = buildPerlPackage {
10022     pname = "File-Pid";
10023     version = "1.01";
10024     src = fetchurl {
10025       url = "mirror://cpan/authors/id/C/CW/CWEST/File-Pid-1.01.tar.gz";
10026       hash = "sha256-uv7uj9yW6wYwagxYu9tyCbbeRfhQ51/caxbbV24F5CI=";
10027     };
10028     patches = [(fetchpatch {
10029       name = "missing-pidfile.patch";
10030       url = "https://sources.debian.org/data/main/libf/libfile-pid-perl/1.01-2/debian/patches/missing-pidfile.patch";
10031       hash = "sha256-VBsIYyCnjcZLYQ2Uq2MKPK3kF2wiMKvnq0m727DoavM=";
10032     })];
10033     propagatedBuildInputs = [ ClassAccessor ];
10034     meta = {
10035       description = "Pid File Manipulation";
10036       license = with lib.licenses; [ artistic1 gpl1Plus ];
10037       maintainers = teams.deshaw.members;
10038     };
10039   };
10041   Filepushd = buildPerlPackage {
10042     pname = "File-pushd";
10043     version = "1.016";
10044     src = fetchurl {
10045       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/File-pushd-1.016.tar.gz";
10046       hash = "sha256-1zp/CUQpg7CYJg3z33qDKl9mB3OjE8onP6i1ZmX5fNw=";
10047     };
10048     meta = {
10049       description = "Change directory temporarily for a limited scope";
10050       homepage = "https://github.com/dagolden/File-pushd";
10051       license = with lib.licenses; [ asl20 ];
10052     };
10053   };
10055   FileReadBackwards = buildPerlPackage {
10056     pname = "File-ReadBackwards";
10057     version = "1.06";
10058     src = fetchurl {
10059       url = "mirror://cpan/authors/id/P/PL/PLICEASE/File-ReadBackwards-1.06.tar.gz";
10060       hash = "sha256-MrKgVJOJqviIde8D1+u//y1ZeeyoW3yBL2tLsQ0QL2I=";
10061     };
10062     meta = {
10063       description = "Read a file backwards by lines";
10064       homepage = "https://metacpan.org/pod/File::ReadBackwards";
10065       license = with lib.licenses; [ artistic1 gpl1Plus ];
10066     };
10067   };
10069   FileRemove = buildPerlModule {
10070     pname = "File-Remove";
10071     version = "1.61";
10072     src = fetchurl {
10073       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/File-Remove-1.61.tar.gz";
10074       hash = "sha256-/YV/WFkI/FA0YbnkizyFlOZTV2a8FL6xfJC6WNXcSXU=";
10075     };
10076     meta = {
10077       description = "Remove files and directories";
10078       license = with lib.licenses; [ artistic1 gpl1Plus ];
10079     };
10080   };
10082   FileShare = buildPerlPackage {
10083     pname = "File-Share";
10084     version = "0.27";
10085     src = fetchurl {
10086       url = "mirror://cpan/authors/id/I/IN/INGY/File-Share-0.27.tar.gz";
10087       hash = "sha256-1uj0tV69OOC7ReRDkuP6J9wf3harxdH/U+FX4ZpXVb4=";
10088     };
10089     propagatedBuildInputs = [ FileShareDir Readonly ];
10090     meta = {
10091       description = "Extend File::ShareDir to Local Libraries";
10092       homepage = "https://github.com/ingydotnet/file-share-pm";
10093       license = with lib.licenses; [ artistic1 gpl1Plus ];
10094     };
10095   };
10097   FileShareDir = buildPerlPackage {
10098     pname = "File-ShareDir";
10099     version = "1.118";
10100     src = fetchurl {
10101       url = "mirror://cpan/authors/id/R/RE/REHSACK/File-ShareDir-1.118.tar.gz";
10102       hash = "sha256-O7KiC6Nd+VjcCk8jBvwF2QPYuMTePIvu/OF3OdKByVg=";
10103     };
10104     propagatedBuildInputs = [ ClassInspector ];
10105     buildInputs = [ FileShareDirInstall ];
10106     meta = {
10107       description = "Locate per-dist and per-module shared files";
10108       homepage = "https://metacpan.org/release/File-ShareDir";
10109       license = with lib.licenses; [ artistic1 gpl1Plus ];
10110     };
10111   };
10113   FileShareDirDist = buildPerlPackage {
10114     pname = "File-ShareDir-Dist";
10115     version = "0.07";
10116     src = fetchurl {
10117       url = "mirror://cpan/authors/id/P/PL/PLICEASE/File-ShareDir-Dist-0.07.tar.gz";
10118       hash = "sha256-jX/l0O4iNR9B75Wtwi29VsMf+iqbLBmEMA6S/36f6G0=";
10119     };
10120     meta = {
10121       homepage = "https://metacpan.org/pod/File::ShareDir::Dist";
10122       description = "Locate per-dist shared files";
10123       license = with lib.licenses; [ artistic1 gpl1Plus ];
10124       maintainers = with maintainers; [ tomasajt ];
10125     };
10126   };
10128   FileShareDirInstall = buildPerlPackage {
10129     pname = "File-ShareDir-Install";
10130     version = "0.14";
10131     src = fetchurl {
10132       url = "mirror://cpan/authors/id/E/ET/ETHER/File-ShareDir-Install-0.14.tar.gz";
10133       hash = "sha256-j5UzsZjy1KmlKIy8fSJPdnmtBaeoVzdFWZeJQovFrqA=";
10134     };
10135     meta = {
10136       description = "Install shared files";
10137       homepage = "https://github.com/Perl-Toolchain-Gang/File-ShareDir-Install";
10138       license = with lib.licenses; [ artistic1 gpl1Plus ];
10139     };
10140   };
10142   FilesysDf = buildPerlPackage {
10143     pname = "Filesys-Df";
10144     version = "0.92";
10145     src = fetchurl {
10146       url = "mirror://cpan/authors/id/I/IG/IGUTHRIE/Filesys-Df-0.92.tar.gz";
10147       hash = "sha256-/onLtCfg4F8c2Xwt1tOGasayG8eoVzTt4Vm9w1R5VSo=";
10148     };
10149     meta = {
10150       description = "Perl extension for filesystem disk space information.";
10151       license = with lib.licenses; [ artistic1 gpl1Plus ];
10152     };
10153   };
10155   FilesysNotifySimple = buildPerlPackage {
10156     pname = "Filesys-Notify-Simple";
10157     version = "0.14";
10158     src = fetchurl {
10159       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Filesys-Notify-Simple-0.14.tar.gz";
10160       hash = "sha256-H9pxLUul4YaBWe019vjvv66dQ11jdvVgbVM7ywgFVaQ=";
10161     };
10162     buildInputs = [ TestSharedFork ];
10163     meta = {
10164       description = "Simple and dumb file system watcher";
10165       homepage = "https://github.com/miyagawa/Filesys-Notify-Simple";
10166       license = with lib.licenses; [ artistic1 gpl1Plus ];
10167     };
10168   };
10170   FilesysDiskUsage = buildPerlPackage {
10171     pname = "Filesys-DiskUsage";
10172     version = "0.13";
10173     src = fetchurl {
10174       url = "mirror://cpan/authors/id/M/MA/MANWAR/Filesys-DiskUsage-0.13.tar.gz";
10175       hash = "sha256-/T5SxvYkEnGigTSNHUPEQVTC9hoyVD20aqnhVpLRtxM=";
10176     };
10177     buildInputs = [ TestWarn ];
10178     meta = {
10179       description = "Estimate file space usage (similar to `du`)";
10180       license = with lib.licenses; [ artistic1 gpl1Plus ];
10181       mainProgram = "fdu";
10182     };
10183   };
10185   FileSlurp = buildPerlPackage {
10186     pname = "File-Slurp";
10187     version = "9999.32";
10188     src = fetchurl {
10189       url = "mirror://cpan/authors/id/C/CA/CAPOEIRAB/File-Slurp-9999.32.tar.gz";
10190       hash = "sha256-TDwhmSqdQr46ed10o8g9J9OAVyadZVCaL1VeoPsrxbA=";
10191     };
10192     meta = {
10193       description = "Simple and Efficient Reading/Writing/Modifying of Complete Files";
10194       license = with lib.licenses; [ artistic1 gpl1Plus ];
10195     };
10196   };
10198   FileSlurper = buildPerlPackage {
10199     pname = "File-Slurper";
10200     version = "0.014";
10201     src = fetchurl {
10202       url = "mirror://cpan/authors/id/L/LE/LEONT/File-Slurper-0.014.tar.gz";
10203       hash = "sha256-1aNkhzOYiMPNdY5kgWDuHXDrQVPKy6/1eEbbzvs0Sww=";
10204     };
10205     buildInputs = [ TestWarnings ];
10206     meta = {
10207       description = "A simple, sane and efficient module to slurp a file";
10208       license = with lib.licenses; [ artistic1 gpl1Plus ];
10209     };
10210   };
10212   FileSlurpTiny = buildPerlPackage {
10213     pname = "File-Slurp-Tiny";
10214     version = "0.004";
10215     src = fetchurl {
10216       url = "mirror://cpan/authors/id/L/LE/LEONT/File-Slurp-Tiny-0.004.tar.gz";
10217       hash = "sha256-RSmVvuq/DpI+Zf3GJ6cl27EsnhDADYAYwW0QumJ1fx4=";
10218     };
10219     meta = {
10220       description = "A simple, sane and efficient file slurper [DISCOURAGED]";
10221       license = with lib.licenses; [ artistic1 gpl1Plus ];
10222     };
10223   };
10225   FileTail = buildPerlPackage {
10226     pname = "File-Tail";
10227     version = "1.3";
10228     src = fetchurl {
10229       url = "mirror://cpan/authors/id/M/MG/MGRABNAR/File-Tail-1.3.tar.gz";
10230       hash = "sha256-JtCfgYNuQ+rkACjVKD/lYg/m/mJ4vz6462AMSOw0r8c=";
10231     };
10232     meta = {
10233       description = "Perl extension for reading from continously updated files";
10234       license = with lib.licenses; [ artistic1 gpl1Plus ];
10235       maintainers = teams.deshaw.members;
10236     };
10237   };
10239   FileTouch = buildPerlPackage {
10240     pname = "File-Touch";
10241     version = "0.12";
10242     src = fetchurl {
10243       url = "mirror://cpan/authors/id/N/NE/NEILB/File-Touch-0.12.tar.gz";
10244       hash = "sha256-KgTcQk30jpjFRVbGBFyrAmpJ43N6qUohz0l3YbDy5Zw=";
10245     };
10246     meta = {
10247       description = "Update file access and modification times, optionally creating files if needed";
10248       homepage = "https://github.com/neilb/File-Touch";
10249       license = with lib.licenses; [ artistic1 gpl1Plus ];
10250       maintainers = teams.deshaw.members;
10251     };
10252   };
10254   FileTreeCreate = buildPerlModule {
10255     pname = "File-TreeCreate";
10256     version = "0.0.1";
10257     src = fetchurl {
10258       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/File-TreeCreate-0.0.1.tar.gz";
10259       hash = "sha256-V2hvEIQ76Br/rRha5BMXkLoMSvNtIQTW+2kSZSgFUmc=";
10260     };
10261     meta = {
10262       homepage = "http://metacpan.org/release/File-TreeCreate";
10263       description = "Recursively create a directory tree";
10264       license = lib.licenses.mit;
10265     };
10266   };
10268   FileType = buildPerlModule {
10269     pname = "File-Type";
10270     version = "0.22";
10271     src = fetchurl {
10272       url = "mirror://cpan/authors/id/P/PM/PMISON/File-Type-0.22.tar.gz";
10273       hash = "sha256-01zZX+9X/U39iDH2LDTilNfEuGH8kJ4Ct2Bxc51S00E=";
10274     };
10275     meta = {
10276       description = "Uses magic numbers (typically at the start of a file) to determine the MIME type of that file";
10277       license = with lib.licenses; [ artistic1 gpl1Plus ];
10278     };
10279   };
10281   FileUtil = buildPerlModule {
10282     pname = "File-Util";
10283     version = "4.201720";
10284     src = fetchurl {
10285       url = "mirror://cpan/authors/id/T/TO/TOMMY/File-Util-4.201720.tar.gz";
10286       hash = "sha256-1EkQIYUNXFy9cCx+R0SFgHmEHS+pPxwtCd3Jp4Y2CN8=";
10287     };
10288     buildInputs = [ TestNoWarnings ];
10289     meta = {
10290       description = "Easy, versatile, portable file handling";
10291       homepage = "https://github.com/tommybutler/file-util/wiki";
10292       license = with lib.licenses; [ artistic1 gpl1Plus ];
10293     };
10294   };
10296   FileUtilTempdir = buildPerlPackage {
10297     pname = "File-Util-Tempdir";
10298     version = "0.034";
10299     src = fetchurl {
10300       url = "mirror://cpan/authors/id/P/PE/PERLANCAR/File-Util-Tempdir-0.034.tar.gz";
10301       hash = "sha256-0R3izl5vrT8GFLymR0ykScNa7TUSXVsyJ+ZpvBdv3Bw=";
10302     };
10303     buildInputs = [ Perlosnames TestException ];
10304     meta = {
10305       description = "Cross-platform way to get system-wide & user private temporary directory";
10306       homepage = "https://metacpan.org/release/File-Util-Tempdir";
10307       license = with lib.licenses; [ artistic1 gpl1Plus ];
10308       maintainers = [ maintainers.sgo ];
10309     };
10310   };
10312   FileWhich = buildPerlPackage {
10313     pname = "File-Which";
10314     version = "1.27";
10315     src = fetchurl {
10316       url = "mirror://cpan/authors/id/P/PL/PLICEASE/File-Which-1.27.tar.gz";
10317       hash = "sha256-MgHxpg4/FkhAguYEXIloQiYfw0Xen7LmIP0qLHrzqTo=";
10318     };
10319     meta = {
10320       description = "Perl implementation of the which utility as an API";
10321       homepage = "https://metacpan.org/pod/File::Which";
10322       license = with lib.licenses; [ artistic1 gpl1Plus ];
10323     };
10324   };
10326   FileZglob = buildPerlPackage {
10327     pname = "File-Zglob";
10328     version = "0.11";
10329     src = fetchurl {
10330       url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/File-Zglob-0.11.tar.gz";
10331       hash = "sha256-HLHt3iCsCU7wA3lLr+8sdiQWnPhALHNn2bdGD2wOZps=";
10332     };
10333     meta = {
10334       description = "Extended globs";
10335       license = with lib.licenses; [ artistic1 gpl1Plus ];
10336     };
10337   };
10339   Filter = buildPerlPackage {
10340     pname = "Filter";
10341     version = "1.64";
10342     src = fetchurl {
10343       url = "mirror://cpan/authors/id/R/RU/RURBAN/Filter-1.64.tar.gz";
10344       hash = "sha256-E+f7fh0yZZjjZgEDzxl0vun2kKxbQ7M58sAi8rX87yw=";
10345     };
10346     meta = {
10347       description = "Source Filters";
10348       license = with lib.licenses; [ artistic1 gpl1Plus ];
10349     };
10350   };
10352   FinanceQuote = buildPerlPackage rec {
10353     pname = "Finance-Quote";
10354     version = "1.58";
10355     src = fetchurl {
10356       url = "mirror://cpan/authors/id/B/BP/BPSCHUCK/Finance-Quote-${version}.tar.gz";
10357       hash = "sha256-jN3qDTgJo2aVzuaaKGK+qs1hU1f+uv23JkGnerRna4A=";
10358     };
10359     buildInputs = [ DateManip DateRange DateSimple DateTime DateTimeFormatISO8601 StringUtil TestKwalitee TestPerlCritic TestPod TestPodCoverage ];
10360     propagatedBuildInputs = [ DateManip DateTimeFormatStrptime Encode HTMLTableExtract HTMLTokeParserSimple HTMLTree HTMLTreeBuilderXPath HTTPCookies JSON IOCompress IOString LWPProtocolHttps Readonly StringUtil SpreadsheetXLSX TextTemplate TryTiny WebScraper XMLLibXML libwwwperl ];
10361     meta = {
10362       homepage = "https://finance-quote.sourceforge.net/";
10363       changelog = "https://github.com/finance-quote/finance-quote/releases/tag/v${version}";
10364       description = "Get stock and mutual fund quotes from various exchanges";
10365       license = with lib.licenses; [ gpl2Plus ];
10366       maintainers = with lib.maintainers; [ nevivurn ];
10367     };
10368   };
10370   FindLib = buildPerlPackage {
10371     pname = "Find-Lib";
10372     version = "1.04";
10373     src = fetchurl {
10374       url = "mirror://cpan/authors/id/Y/YA/YANNK/Find-Lib-1.04.tar.gz";
10375       hash = "sha256-HXOSHjBh4bBG/kJo4tBf/VpMV2Jmbi5HI/g6rMFG6FE=";
10376     };
10377     meta = {
10378       description = "Helper to smartly find libs to use in the filesystem tree";
10379       license = with lib.licenses; [ artistic1 gpl1Plus ];
10380     };
10381   };
10383   FontAFM = buildPerlPackage {
10384     pname = "Font-AFM";
10385     version = "1.20";
10386     src = fetchurl {
10387       url = "mirror://cpan/authors/id/G/GA/GAAS/Font-AFM-1.20.tar.gz";
10388       hash = "sha256-MmcRZtoyWWoPa6rNDBIzglpgrK8lgF15yBo/GNYIi8E=";
10389     };
10390     meta = {
10391       description = "Interface to Adobe Font Metrics files";
10392       license = with lib.licenses; [ artistic1 gpl1Plus ];
10393     };
10394   };
10396   FontTTF = buildPerlPackage {
10397     pname = "Font-TTF";
10398     version = "1.06";
10399     src = fetchurl {
10400       url = "mirror://cpan/authors/id/B/BH/BHALLISSY/Font-TTF-1.06.tar.gz";
10401       hash = "sha256-S2l9REJZdZ6gLSxELJv/5f/hTJIUCEoB90NpOpRMwpM=";
10402     };
10403     buildInputs = [ IOString ];
10404     meta = {
10405       description = "TTF font support for Perl";
10406       license = with lib.licenses; [ artistic2 ];
10407     };
10408   };
10410   ForksSuper = buildPerlPackage {
10411     pname = "Forks-Super";
10412     version = "0.97";
10413     src = fetchurl {
10414       url = "mirror://cpan/authors/id/M/MO/MOB/Forks-Super-0.97.tar.gz";
10415       hash = "sha256-M9tDV+Es1vQPKlijq5b+tP/9JedC29SL75B9skLQKk4=";
10416     };
10417     doCheck = false;
10418     propagatedBuildInputs = [ URI ];
10419     meta = {
10420       description = "Extensions and convenience methods to manage background processes";
10421       license = with lib.licenses; [ artistic1 gpl1Plus ];
10422     };
10423   };
10425   FormValidatorSimple = buildPerlPackage {
10426     pname = "FormValidator-Simple";
10427     version = "0.29";
10428     src = fetchurl {
10429       url = "mirror://cpan/authors/id/L/LY/LYOKATO/FormValidator-Simple-0.29.tar.gz";
10430       hash = "sha256-/Dpj3FS5YtdFhgcBdq2vW+hp8JtWG7MPX9Mu9TF5JmY=";
10431     };
10432     propagatedBuildInputs = [ ClassAccessor ClassDataAccessor DateCalc DateTimeFormatStrptime EmailValidLoose ListMoreUtils TieIxHash UNIVERSALrequire YAML ];
10433     buildInputs = [ CGI ];
10434     meta = {
10435       description = "Validation with simple chains of constraints";
10436       license = with lib.licenses; [ artistic1 gpl1Plus ];
10437     };
10438   };
10440   FreezeThaw = buildPerlPackage {
10441     pname = "FreezeThaw";
10442     version = "0.5001";
10443     src = fetchurl {
10444       url = "mirror://cpan/authors/id/I/IL/ILYAZ/modules/FreezeThaw-0.5001.tar.gz";
10445       hash = "sha256-PF4IMpEG+c7jq0RLgTMcWTX4MIShUdiFBeekZdpUD0E=";
10446     };
10447     doCheck = false;
10448     meta = {
10449       description = "Converting Perl structures to strings and back";
10450       license = with lib.licenses; [ artistic1 gpl1Plus ];
10451     };
10452   };
10454   FunctionParameters = buildPerlPackage {
10455     pname = "Function-Parameters";
10456     version = "2.002004";
10457     src = fetchurl {
10458       url = "mirror://cpan/authors/id/M/MA/MAUKE/Function-Parameters-2.002004.tar.gz";
10459       hash = "sha256-KKvqWODAnOMnmaCMvXr3DaHimXd8KZEZQpygaacYg+g=";
10460     };
10461     buildInputs = [ DirSelf TestFatal ];
10462     meta = {
10463       description = "Define functions and methods with parameter lists (\"subroutine signatures\")";
10464       license = with lib.licenses; [ artistic1 gpl1Plus ];
10465     };
10466   };
10468   Furl = buildPerlModule {
10469     pname = "Furl";
10470     version = "3.14";
10471     src = fetchurl {
10472       url = "mirror://cpan/authors/id/S/SY/SYOHEX/Furl-3.14.tar.gz";
10473       hash = "sha256-Nd29iIDXHxniAkM+F2H9EXc4XmML9QaFvEi2t6y4V7k=";
10474     };
10475     propagatedBuildInputs = [ ClassAccessorLite HTTPParserXS MozillaCA ];
10476     buildInputs = [ HTTPCookieJar HTTPProxy ModuleBuildTiny Plack Starlet TestFakeHTTPD TestRequires TestSharedFork TestTCP TestValgrind URI ];
10477     meta = {
10478       description = "Lightning-fast URL fetcher";
10479       homepage = "https://github.com/tokuhirom/Furl";
10480       license = with lib.licenses; [ artistic1 gpl1Plus ];
10481     };
10482   };
10484   Future = buildPerlModule {
10485     pname = "Future";
10486     version = "0.50";
10487     src = fetchurl {
10488       url = "mirror://cpan/authors/id/P/PE/PEVANS/Future-0.50.tar.gz";
10489       hash = "sha256-wDXj2eaaOvFEszrINN7p5lrTYPKlHbnxWNw0Ls3dX0Q=";
10490     };
10491     buildInputs = [ Test2Suite ];
10492     meta = {
10493       description = "Represent an operation awaiting completion";
10494       license = with lib.licenses; [ artistic1 gpl1Plus ];
10495     };
10496   };
10498   FutureAsyncAwait = buildPerlModule rec {
10499     pname = "Future-AsyncAwait";
10500     version = "0.66";
10501     src = fetchurl {
10502       url = "mirror://cpan/authors/id/P/PE/PEVANS/Future-AsyncAwait-0.66.tar.gz";
10503       hash = "sha256-xqD03kYr8yS1usoXddGZ7DJGo1jBPbm2Ssv82+bl7CE=";
10504     };
10505     buildInputs = [ Test2Suite ];
10506     propagatedBuildInputs = [ Future XSParseKeyword XSParseSublike ];
10507     perlPreHook = lib.optionalString stdenv.isDarwin "export LD=$CC";
10508     meta = {
10509       description = "Deferred subroutine syntax for futures";
10510       license = with lib.licenses; [ artistic1 gpl1Plus ];
10511       maintainers = [ maintainers.zakame ];
10512     };
10513   };
10515   FutureIO = buildPerlModule {
10516     pname = "Future-IO";
10517     version = "0.14";
10518     src = fetchurl {
10519       url = "mirror://cpan/authors/id/P/PE/PEVANS/Future-IO-0.14.tar.gz";
10520       hash = "sha256-a1j++vwwlMJwHwp7mMsUCwmItRaKfV3069Hu6OhyBgo=";
10521     };
10522     buildInputs = [ TestFutureIOImpl ];
10523     propagatedBuildInputs = [ Future StructDumb ];
10524     preCheck = "rm t/06connect.t"; # this test fails in sandbox
10525     meta = {
10526       description = "Future-returning IO methods";
10527       license = with lib.licenses; [ artistic1 gpl1Plus ];
10528       maintainers = [ maintainers.zakame ];
10529     };
10530   };
10532   FutureQueue = buildPerlModule {
10533     pname = "Future-Queue";
10534     version = "0.51";
10535     src = fetchurl {
10536       url = "mirror://cpan/authors/id/P/PE/PEVANS/Future-Queue-0.51.tar.gz";
10537       hash = "sha256-HVAcOpot3/x8YPlvpmlp1AyykuCSBM9t7NHCuLUAPNY=";
10538     };
10539     buildInputs = [ Test2Suite ];
10540     propagatedBuildInputs = [ Future ];
10541     meta = {
10542       description = "A FIFO queue of values that uses L<Future>s";
10543       license = with lib.licenses; [ artistic1 gpl1Plus ];
10544     };
10545   };
10547   GamesSolitaireVerify = buildPerlModule {
10548     pname = "Games-Solitaire-Verify";
10549     version = "0.2403";
10550     src = fetchurl {
10551       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Games-Solitaire-Verify-0.2403.tar.gz";
10552       hash = "sha256-5atHXIK6HLCIrSj0I8pRTUaUTWrjw+tV6WNunn8dyJM=";
10553     };
10554     buildInputs = [ DirManifest TestDifferences ];
10555     propagatedBuildInputs = [ ClassXSAccessor ExceptionClass PathTiny ];
10556     meta = {
10557       description = "Verify solutions for solitaire games";
10558       homepage = "https://metacpan.org/release/Games-Solitaire-Verify";
10559       license = with lib.licenses; [ mit ];
10560       mainProgram = "verify-solitaire-solution";
10561     };
10562   };
10564   GD = buildPerlPackage {
10565     pname = "GD";
10566     version = "2.78";
10567     src = fetchurl {
10568       url = "mirror://cpan/authors/id/R/RU/RURBAN/GD-2.78.tar.gz";
10569       hash = "sha256-aDEFS/VCS09cI9NifT0UhEgPb5wsZmMiIpFfKFG+buQ=";
10570     };
10572     buildInputs = [ pkgs.gd pkgs.libjpeg pkgs.zlib pkgs.freetype pkgs.libpng pkgs.fontconfig pkgs.xorg.libXpm ExtUtilsPkgConfig TestFork TestNoWarnings ];
10574     # otherwise "cc1: error: -Wformat-security ignored without -Wformat [-Werror=format-security]"
10575     hardeningDisable = [ "format" ];
10577     makeMakerFlags = [ "--lib_png_path=${pkgs.libpng.out}" "--lib_jpeg_path=${pkgs.libjpeg.out}" "--lib_zlib_path=${pkgs.zlib.out}" "--lib_ft_path=${pkgs.freetype.out}" "--lib_fontconfig_path=${pkgs.fontconfig.lib}" "--lib_xpm_path=${pkgs.xorg.libXpm.out}" ];
10579     meta = {
10580       description = "Perl interface to the gd2 graphics library";
10581       license = with lib.licenses; [ artistic1 gpl1Plus ];
10582       mainProgram = "bdf2gdfont.pl";
10583     };
10584   };
10586   GDGraph = buildPerlPackage {
10587     pname = "GDGraph";
10588     version = "1.56";
10589     src = fetchurl {
10590       url = "mirror://cpan/authors/id/B/BP/BPS/GDGraph-1.56.tar.gz";
10591       hash = "sha256-b0nMTlkBVIDbnJtrGK/YxQvjCIZoe2lBFRPQbziXERM=";
10592     };
10593     propagatedBuildInputs = [ GDText ];
10594     buildInputs = [ CaptureTiny TestException ];
10595     meta = {
10596       description = "Graph Plotting Module for Perl 5";
10597       license = with lib.licenses; [ artistic1 gpl1Plus ];
10598     };
10599   };
10601   GDSecurityImage = buildPerlPackage {
10602     pname = "GD-SecurityImage";
10603     version = "1.75";
10604     src = fetchurl {
10605       url = "mirror://cpan/authors/id/B/BU/BURAK/GD-SecurityImage-1.75.tar.gz";
10606       hash = "sha256-Pd4k2ay6lRzd5bVp0eQsrZRs/bUSgORGnzNv1f4MjqY=";
10607     };
10608     propagatedBuildInputs = [ GD ];
10609     meta = {
10610       description = "Security image (captcha) generator";
10611       license = with lib.licenses; [ artistic1 gpl1Plus ];
10612     };
10613   };
10615   GDText = buildPerlPackage {
10616     pname = "GDTextUtil";
10617     version = "0.86";
10618     src = fetchurl {
10619       url = "mirror://cpan/authors/id/M/MV/MVERB/GDTextUtil-0.86.tar.gz";
10620       hash = "sha256-iG7L+Fz+lPQTXuVonEhHqa54PsuZ5nWeEsc08t1hFrw=";
10621     };
10622     propagatedBuildInputs = [ GD ];
10623     meta = {
10624       description = "Text utilities for use with GD";
10625       license = with lib.licenses; [ artistic1 gpl1Plus ];
10626     };
10627   };
10629   GeoIP = buildPerlPackage {
10630     pname = "Geo-IP";
10631     version = "1.51";
10632     src = fetchurl {
10633       url = "mirror://cpan/authors/id/M/MA/MAXMIND/Geo-IP-1.51.tar.gz";
10634       hash = "sha256-FjAgMV1cVEGDaseeCKd7Qo8nf9CQvqT6gNpwd7JDaro=";
10635     };
10636     makeMakerFlags = [ "LIBS=-L${pkgs.geoip}/lib" "INC=-I${pkgs.geoip}/include" ];
10637     doCheck = false; # seems to access the network
10638     meta = {
10639       description = "Look up location and network information by IP Address";
10640       license = with lib.licenses; [ artistic1 gpl1Plus ];
10641     };
10642   };
10644   GeoIP2 = buildPerlPackage {
10645     pname = "GeoIP2";
10646     version = "2.006002";
10647     src = fetchurl {
10648       url = "mirror://cpan/authors/id/M/MA/MAXMIND/GeoIP2-2.006002.tar.gz";
10649       hash = "sha256-CQVCqO7pvTwS5ZxLZWJMidAf/ZQgTx8Hah20CybAmDQ=";
10650     };
10651     propagatedBuildInputs = [ JSONMaybeXS LWPProtocolHttps MaxMindDBReader ParamsValidate Throwable ];
10652     buildInputs = [ PathClass TestFatal TestNumberDelta ];
10653     meta = {
10654       description = "Perl API for MaxMind's GeoIP2 web services and databases";
10655       homepage = "https://metacpan.org/release/GeoIP2";
10656       license = with lib.licenses; [ artistic1 gpl1Plus ];
10657       mainProgram = "web-service-request";
10658     };
10659   };
10661   GetoptArgvFile = buildPerlPackage {
10662     pname = "Getopt-ArgvFile";
10663     version = "1.11";
10664     src = fetchurl {
10665       url = "mirror://cpan/authors/id/J/JS/JSTENZEL/Getopt-ArgvFile-1.11.tar.gz";
10666       hash = "sha256-NwmqUTzm/XHRpVoC400vCQAX1TUKm9RHAFZTybCDWyI=";
10667     };
10668     meta = {
10669       description = "Interpolates script options from files into @ARGV or another array";
10670       license = with lib.licenses; [ artistic1 ];
10671       maintainers = [ maintainers.pSub ];
10672     };
10673   };
10675   GetoptLong = buildPerlPackage {
10676     pname = "Getopt-Long";
10677     version = "2.54";
10678     src = fetchurl {
10679       url = "mirror://cpan/authors/id/J/JV/JV/Getopt-Long-2.54.tar.gz";
10680       hash = "sha256-WEujyZuy1rNBN1IS+bh0YT9wbPsBzuIbiiZ2qYq5hf4=";
10681     };
10682     meta = {
10683       description = "Extended processing of command line options";
10684       license = with lib.licenses; [ artistic1 gpl2Plus ];
10685     };
10686   };
10688   GetoptLongDescriptive = buildPerlPackage {
10689     pname = "Getopt-Long-Descriptive";
10690     version = "0.111";
10691     src = fetchurl {
10692       url = "mirror://cpan/authors/id/R/RJ/RJBS/Getopt-Long-Descriptive-0.111.tar.gz";
10693       hash = "sha256-m40V/K8Y/ddAJGtDjw5+uRS4McUdnXCMCZ7Kd2YiB20=";
10694     };
10695     buildInputs = [ CPANMetaCheck TestFatal TestWarnings ];
10696     propagatedBuildInputs = [ ParamsValidate SubExporter ];
10697     meta = {
10698       description = "Getopt::Long, but simpler and more powerful";
10699       homepage = "https://github.com/rjbs/Getopt-Long-Descriptive";
10700       license = with lib.licenses; [ artistic1 gpl1Plus ];
10701     };
10702   };
10704   GetoptTabular = buildPerlPackage {
10705     pname = "Getopt-Tabular";
10706     version = "0.3";
10707     src = fetchurl {
10708       url = "mirror://cpan/authors/id/G/GW/GWARD/Getopt-Tabular-0.3.tar.gz";
10709       hash = "sha256-m98GdjO1kTEngg9OgDXtxT0INy+qzla6a/oAyWiiU3c=";
10710     };
10711     meta = {
10712       description = "Table-driven argument parsing for Perl 5";
10713       license = with lib.licenses; [ artistic1 gpl1Plus ];
10714     };
10715   };
10717   Git = buildPerlPackage {
10718     pname = "Git";
10719     version = "0.42";
10720     src = fetchurl {
10721       url = "mirror://cpan/authors/id/M/MS/MSOUTH/Git-0.42.tar.gz";
10722       hash = "sha256-lGmp85jzor8rBQBWbuQdP/b65GBBKhNxhXZ6HMR4Om0=";
10723     };
10724     propagatedBuildInputs = [ Error ];
10725     meta = {
10726       description = "This is the Git.pm, plus the other files in the perl/Git directory, from github's git/git";
10727       license = with lib.licenses; [ gpl2Plus ];
10728       maintainers = teams.deshaw.members;
10729     };
10730   };
10732   GitAutofixup = buildPerlPackage rec {
10733     pname = "App-Git-Autofixup";
10734     version = "0.004001";
10735     src = fetchurl {
10736       url = "mirror://cpan/authors/id/T/TO/TORBIAK/App-Git-Autofixup-0.004001.tar.gz";
10737       hash = "sha256-WroBPI3hOZD1iRoOKjnJcHTQcnvjZTIMLGrxnTbF3aw=";
10738     };
10739     nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang;
10740     postInstall = lib.optionalString stdenv.isDarwin ''
10741       shortenPerlShebang $out/bin/git-autofixup
10742     '';
10743     meta = {
10744       description = "Create fixup commits for topic branches";
10745       license = with lib.licenses; [ artistic2 ];
10746       maintainers = [ maintainers.DamienCassou ];
10747       mainProgram = "git-autofixup";
10748     };
10749   };
10751   GitPurePerl = buildPerlPackage {
10752     pname = "Git-PurePerl";
10753     version = "0.53";
10754     src = fetchurl {
10755       url = "mirror://cpan/authors/id/B/BR/BROQ/Git-PurePerl-0.53.tar.gz";
10756       hash = "sha256-mHx0NmzEw37ghAUPmF+iVDWcicElB/W4v8ZgfeU41ag=";
10757     };
10758     buildInputs = [ Testutf8 ];
10759     propagatedBuildInputs = [ ArchiveExtract ConfigGitLike DataStreamBulk DateTime FileFindRule IODigest MooseXStrictConstructor MooseXTypesPathClass ];
10760     doCheck = false;
10761     meta = {
10762       description = "A Pure Perl interface to Git repositories";
10763       license = with lib.licenses; [ artistic1 gpl1Plus ];
10764     };
10765   };
10767   GitRepository = buildPerlPackage {
10768     pname = "Git-Repository";
10769     version = "1.325";
10770     src = fetchurl {
10771       url = "mirror://cpan/authors/id/B/BO/BOOK/Git-Repository-1.325.tar.gz";
10772       hash = "sha256-mypPoZT0oOtFI1XQyAhyfl6cFsFFrH0kw+qW0Kvv7UM=";
10773     };
10774     buildInputs = [ TestRequiresGit ];
10775     propagatedBuildInputs = [ GitVersionCompare SystemCommand namespaceclean ];
10776     meta = {
10777       description = "Perl interface to Git repositories";
10778       license = with lib.licenses; [ artistic1 gpl1Plus ];
10779     };
10780   };
10782   GitVersionCompare = buildPerlPackage {
10783     pname = "Git-Version-Compare";
10784     version = "1.005";
10785     src = fetchurl {
10786       url = "mirror://cpan/authors/id/B/BO/BOOK/Git-Version-Compare-1.005.tar.gz";
10787       hash = "sha256-NX/e2eVflesvUWoY9dwbRyCp3u+eLA52vNX+SuubPLs=";
10788     };
10789     buildInputs = [ TestNoWarnings ];
10790     meta = {
10791       description = "Functions to compare Git versions";
10792       license = with lib.licenses; [ artistic1 gpl1Plus ];
10793     };
10794   };
10796   Glib = buildPerlPackage {
10797     pname = "Glib";
10798     version = "1.3294";
10799     src = fetchurl {
10800       url = "mirror://cpan/authors/id/X/XA/XAOC/Glib-1.3294.tar.gz";
10801       hash = "sha256-1xX1qGvMGHB13oXnrlvAewcU1u3BlqktpDmG76ROXLs=";
10802     };
10803     buildInputs = [ pkgs.glib ];
10804     propagatedBuildInputs = [ ExtUtilsDepends ExtUtilsPkgConfig ];
10805     meta = {
10806       description = "Perl wrappers for the GLib utility and Object libraries";
10807       homepage = "https://gtk2-perl.sourceforge.net";
10808       license = with lib.licenses; [ lgpl21Only ];
10809     };
10810   };
10812   GlibObjectIntrospection = buildPerlPackage {
10813     pname = "Glib-Object-Introspection";
10814     version = "0.051";
10815     src = fetchurl {
10816       url = "mirror://cpan/authors/id/X/XA/XAOC/Glib-Object-Introspection-0.051.tar.gz";
10817       hash = "sha256-ZWlhHcyArBSCx8IiZLGujJw1HUmDUR65psX0ehAVAIk=";
10818     };
10819     nativeCheckInputs = [ pkgs.cairo CairoGObject ];
10820     propagatedBuildInputs = [ pkgs.gobject-introspection Glib ];
10821     preCheck = ''
10822       # Our gobject-introspection patches make the shared library paths absolute
10823       # in the GIR files. When running tests, the library is not yet installed,
10824       # though, so we need to replace the absolute path with a local one during build.
10825       # We are using a symlink that we will delete after the execution of the tests.
10826       mkdir -p $out/lib
10827       ln -s $PWD/build/*.so $out/lib/
10828     '';
10829     postCheck = ''
10830       rm -r $out/lib
10831     '';
10832     doCheck = !stdenv.isDarwin;
10833     meta = {
10834       description = "Dynamically create Perl language bindings";
10835       homepage = "https://gtk2-perl.sourceforge.net";
10836       license = with lib.licenses; [ lgpl21Only ];
10837     };
10838   };
10840   Gnome2 = buildPerlPackage {
10841     pname = "Gnome2";
10842     version = "1.048";
10843     src = fetchurl {
10844       url = "mirror://cpan/authors/id/X/XA/XAOC/Gnome2-1.048.tar.gz";
10845       hash = "sha256-ZPzDgnFKvY1XaSrDdjKMOiDGy8i81zKwB9FMv5ooLd0=";
10846     };
10847     buildInputs = [ ExtUtilsDepends ExtUtilsPkgConfig Glib Gnome2Canvas Gnome2VFS Gtk2 ];
10848     propagatedBuildInputs = [ pkgs.gnome2.libgnomeui ];
10849     meta = {
10850       description = "(DEPRECATED) Perl interface to the 2.x series of the GNOME libraries";
10851       homepage = "https://gtk2-perl.sourceforge.net";
10852       license = with lib.licenses; [ lgpl21Plus ];
10853       broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.Gnome2Canvas.x86_64-darwin
10854     };
10855   };
10857   Gnome2Canvas = buildPerlPackage {
10858     pname = "Gnome2-Canvas";
10859     version = "1.006";
10860     src = fetchurl {
10861       url = "mirror://cpan/authors/id/X/XA/XAOC/Gnome2-Canvas-1.006.tar.gz";
10862       hash = "sha256-aQZnxziSHeLWUWtOtjlVOlceSoMQ2AMfFYZYU23lq0I=";
10863     };
10864     buildInputs = [ pkgs.gnome2.libgnomecanvas ];
10865     propagatedBuildInputs = [ Gtk2 ];
10866     doCheck = !stdenv.isDarwin;
10867     meta = {
10868       description = "(DEPRECATED) A structured graphics canvas";
10869       license = with lib.licenses; [ lgpl2Plus ];
10870     };
10871   };
10873   Gnome2VFS = buildPerlPackage {
10874     pname = "Gnome2-VFS";
10875     version = "1.084";
10876     src = fetchurl {
10877       url = "mirror://cpan/authors/id/X/XA/XAOC/Gnome2-VFS-1.084.tar.gz";
10878       hash = "sha256-PI2Mlca2XCN9ueiJx57bK7gIvzfAhKvfu9mFn+93h8w=";
10879     };
10880     propagatedBuildInputs = [ pkgs.gnome2.gnome_vfs Glib ];
10881     meta = {
10882       description = "(DEPRECATED) Perl interface to the 2.x series of the GNOME VFS";
10883       license = with lib.licenses; [ lgpl21Plus ];
10884     };
10885   };
10887   Gnome2Wnck = buildPerlPackage {
10888     pname = "Gnome2-Wnck";
10889     version = "0.18";
10890     src = fetchurl {
10891       url = "mirror://cpan/authors/id/X/XA/XAOC/Gnome2-Wnck-0.18.tar.gz";
10892       hash = "sha256-RL7OyLLX9B8ngKc7CSJp/bec1JJluuDI/zkQN8RWSjU=";
10893     };
10894     buildInputs = [ pkgs.libwnck2 pkgs.glib pkgs.gtk2 ];
10895     propagatedBuildInputs = [ Gtk2 ];
10896     meta = {
10897       description = "(DEPRECATED) Perl interface to the Window Navigator";
10898       license = with lib.licenses; [ lgpl21Plus ];
10899     };
10900   };
10902   GnuPG = buildPerlPackage {
10903     pname = "GnuPG";
10904     version = "0.19";
10905     src = fetchurl {
10906       url = "mirror://cpan/authors/id/Y/YA/YANICK/GnuPG-0.19.tar.gz";
10907       hash = "sha256-r1Py0/Yyl+BGZ26uFKdilq/dKRDglyO2sRNwhiK3mJs=";
10908     };
10909     buildInputs = [ pkgs.gnupg1orig ];
10910     doCheck = false;
10911     meta = {
10912       description = "Perl interface to the GNU Privacy Guard";
10913       license = with lib.licenses; [ gpl2Plus ];
10914       mainProgram = "gpgmailtunl";
10915     };
10916   };
10918   GnuPGInterface = buildPerlPackage {
10919     pname = "GnuPG-Interface";
10920     version = "1.03";
10921     src = fetchurl {
10922       url = "mirror://cpan/authors/id/B/BP/BPS/GnuPG-Interface-1.03.tar.gz";
10923       hash = "sha256-WvVmMPD6wpDXJCGD9kSaoOAoKfRhHcYrxunps4CPGHo=";
10924     };
10925     buildInputs = [ pkgs.which pkgs.gnupg1compat ];
10926     propagatedBuildInputs = [ MooXHandlesVia MooXlate ];
10927     doCheck = false;
10928     meta = {
10929       description = "Supply object methods for interacting with GnuPG";
10930       license = with lib.licenses; [ artistic1 gpl1Plus ];
10931     };
10932   };
10934   GoferTransporthttp = buildPerlPackage {
10935     pname = "GoferTransport-http";
10936     version = "1.017";
10937     src = fetchurl {
10938       url = "mirror://cpan/authors/id/T/TI/TIMB/GoferTransport-http-1.017.tar.gz";
10939       hash = "sha256-9z7/4+p6+hkHzol3yHOHq7DUQE+FpySuJjeymnMVSps=";
10940     };
10941     propagatedBuildInputs = [ DBI LWP mod_perl2 ];
10942     doCheck = false; # no make target 'test'
10943     meta = {
10944       description = "HTTP transport for DBI stateless proxy driver DBD::Gofer";
10945       license = with lib.licenses; [ artistic1 gpl1Plus ];
10946     };
10947   };
10949   GooCanvas = buildPerlPackage {
10950     pname = "Goo-Canvas";
10951     version = "0.06";
10952     src = fetchurl {
10953       url = "mirror://cpan/authors/id/Y/YE/YEWENBIN/Goo-Canvas-0.06.tar.gz";
10954       hash = "sha256-DFiMUH7tXmLRLtHMHkkcb/Oh9ZxPs9Q14UIUs3qzklE=";
10955     };
10956     propagatedBuildInputs = [ pkgs.goocanvas pkgs.gtk2 Gtk2 ];
10957     meta = {
10958       description = "Perl interface to the GooCanvas";
10959       license = with lib.licenses; [ artistic1 gpl1Plus ];
10960     };
10961   };
10963   GooCanvas2 = buildPerlPackage {
10964     pname = "GooCanvas2";
10965     version = "0.06";
10966     src = fetchurl {
10967       url = "mirror://cpan/authors/id/P/PE/PERLMAX/GooCanvas2-0.06.tar.gz";
10968       hash = "sha256-4kyHhz4ZBj3U1eLHCcqs+MCuiIEEQ5W7hl3CtP3WO1A=";
10969     };
10970     buildInputs = [ pkgs.gtk3 ];
10971     propagatedBuildInputs = [ pkgs.goocanvas2 Gtk3 ];
10972     meta = {
10973       description = "Perl binding for GooCanvas2 widget using Glib::Object::Introspection";
10974       license = with lib.licenses; [ artistic1 gpl1Plus ];
10975     };
10976   };
10978   GooCanvas2CairoTypes = buildPerlPackage rec {
10979     pname = "GooCanvas2-CairoTypes";
10980     version = "0.001";
10981     src = fetchurl {
10982       url = "mirror://cpan/authors/id/A/AS/ASOKOLOV/GooCanvas2-CairoTypes-${version}.tar.gz";
10983       hash = "sha256-uoBnNuvMnePYFBp2Omgr3quxy4cCveKZrf1XSs6HUFI=";
10984     };
10985     propagatedBuildInputs = [ pkgs.goocanvas2 Gtk3 ];
10986     meta = {
10987       description = "Bridge between GooCanvas2 and Cairo types";
10988       license = with lib.licenses; [ artistic1 gpl1Plus ];
10989     };
10990   };
10992   GoogleProtocolBuffers = buildPerlPackage {
10993     pname = "Google-ProtocolBuffers";
10994     version = "0.12";
10995     src = fetchurl {
10996       url = "mirror://cpan/authors/id/S/SA/SAXJAZMAN/protobuf/Google-ProtocolBuffers-0.12.tar.gz";
10997       hash = "sha256-s4RJxguaJxLd5IFIXMerA7KgrBw/1ICzhT5BEawpTXE=";
10998     };
10999     propagatedBuildInputs = [ ClassAccessor ParseRecDescent ];
11000     patches =
11001       [ ../development/perl-modules/Google-ProtocolBuffers-multiline-comments.patch ];
11002     meta = {
11003       description = "Simple interface to Google Protocol Buffers";
11004       homepage = "https://github.com/csirtgadgets/google-protocolbuffers-perl";
11005       license = with lib.licenses; [ artistic1 gpl1Plus ];
11006       mainProgram = "protoc-perl";
11007     };
11008   };
11010   gotofile = buildPerlPackage {
11011     pname = "goto-file";
11012     version = "0.005";
11013     src = fetchurl {
11014       url = "mirror://cpan/authors/id/E/EX/EXODIST/goto-file-0.005.tar.gz";
11015       hash = "sha256-xs3V7kps3L2/MU2SpPmYXbzfnkJYBIyudhJcBSqjH3c=";
11016     };
11017     buildInputs = [ Test2Suite ];
11018     meta = {
11019       description = "Stop parsing the current file and move on to a different one";
11020       license = with lib.licenses; [ artistic1 gpl1Plus ];
11021     };
11022   };
11024   Graph = buildPerlPackage {
11025     pname = "Graph";
11026     version = "0.9727";
11027     src = fetchurl {
11028       url = "mirror://cpan/authors/id/E/ET/ETJ/Graph-0.9727.tar.gz";
11029       hash = "sha256-OSqJFtyVExq+jJE9/Kx2mEhL9IZrQq9fcEPABi50Iik=";
11030     };
11031     propagatedBuildInputs = [ HeapFibonacci SetObject ];
11032     meta = {
11033       description = "GRaph data structures and algorithms";
11034       license = with lib.licenses; [ artistic1 gpl1Plus ];
11035     };
11036   };
11038   GraphicsColor = buildPerlPackage {
11039     pname = "Graphics-Color";
11040     version = "0.31";
11041     src = fetchurl {
11042       url = "mirror://cpan/authors/id/G/GP/GPHAT/Graphics-Color-0.31.tar.gz";
11043       hash = "sha256-+qj+1bLYDlFgr5duXbIkLAs1VVQs4QQldf9raUWHoz0=";
11044     };
11045     buildInputs = [ TestNumberDelta ModulePluggable ];
11046     propagatedBuildInputs = [ ColorLibrary Moose MooseXAliases MooseXClone MooseXStorage MooseXTypes ];
11047     meta = {
11048       description = "Device and library agnostic color spaces";
11049       homepage = "https://github.com/gphat/graphics-color";
11050       license = with lib.licenses; [ artistic1 gpl1Plus ];
11051     };
11052   };
11054   GraphicsTIFF = buildPerlPackage {
11055     pname = "Graphics-TIFF";
11056     version = "20";
11057     src = fetchurl {
11058       url = "mirror://cpan/authors/id/R/RA/RATCLIFFE/Graphics-TIFF-20.tar.gz";
11059       hash = "sha256-PlXMIJRl4GQBmiFaUvBf9RBAKX0CA5P+n7PeJ60CDjU=";
11060     };
11061     buildInputs = [ pkgs.libtiff ExtUtilsDepends ExtUtilsPkgConfig ];
11062     propagatedBuildInputs = [ Readonly ];
11063     nativeCheckInputs = [ TestRequires TestDeep pkgs.hexdump ];
11064     meta = {
11065       description = "Perl extension for the libtiff library";
11066       license = with lib.licenses; [ artistic1 gpl1Plus ];
11067     };
11068   };
11070   GraphicsToolkitColor = buildPerlPackage {
11071     pname = "Graphics-Toolkit-Color";
11072     version = "1.71";
11073     src = fetchurl {
11074       url = "mirror://cpan/authors/id/L/LI/LICHTKIND/Graphics-Toolkit-Color-1.71.tar.gz";
11075       hash = "sha256-NOiLb2hY9H2ZYQHxWC8esA23+G4Snl8dYb9/m922LvI=";
11076     };
11077     buildInputs = [ TestWarn ];
11078     meta = {
11079       description = "Color palette constructor";
11080       license = with lib.licenses; [ artistic1 gpl1Plus ];
11081     };
11082   };
11084   GraphViz = buildPerlPackage {
11085     pname = "GraphViz";
11086     version = "2.26";
11087     src = fetchurl {
11088       url = "mirror://cpan/authors/id/E/ET/ETJ/GraphViz-2.26.tar.gz";
11089       hash = "sha256-ml0lILMmK/MEdSct12SkRfjn+TG++Ivg49O/9EXacyg=";
11090     };
11092     # XXX: It'd be nicer it `GraphViz.pm' could record the path to graphviz.
11093     buildInputs = [ pkgs.graphviz TestPod ];
11094     propagatedBuildInputs = [ FileWhich IPCRun ParseRecDescent XMLTwig XMLXPath ];
11096     meta = {
11097       description = "Perl interface to the GraphViz graphing tool";
11098       license = with lib.licenses; [ artistic2 ];
11099     };
11100   };
11102   GraphViz2 = buildPerlPackage {
11103     pname = "GraphViz2";
11104     version = "2.67";
11105     src = fetchurl {
11106       url = "mirror://cpan/authors/id/E/ET/ETJ/GraphViz2-2.67.tar.gz";
11107       hash = "sha256-h8hcbt/86k+W5rSAD2+VEq6rGeuNOzSDAachMxvLhYA=";
11108     };
11110     # XXX: It'd be nicer if `GraphViz.pm' could record the path to graphviz.
11111     buildInputs = [ pkgs.graphviz TestPod Moo IPCRun3 TypeTiny TestSnapshot Graph ];
11112     propagatedBuildInputs = [ FileWhich IPCRun ParseRecDescent XMLTwig XMLXPath DataSectionSimple ];
11114     # needed for fontconfig tests
11115     HOME = "/build";
11116     FONTCONFIG_PATH = "${lib.getOutput "out" pkgs.fontconfig}/etc/fonts";
11118     meta = {
11119       description = "Perl interface to the GraphViz graphing tool";
11120       license = with lib.licenses; [ artistic2 ];
11121     };
11122   };
11124   grepmail = buildPerlPackage {
11125     pname = "grepmail";
11126     version = "5.3111";
11127     src = fetchurl {
11128       url = "mirror://cpan/authors/id/D/DC/DCOPPIT/grepmail-5.3111.tar.gz";
11129       hash = "sha256-0JhOP3ob4XrgFFdfcMFngVGlvMliIYXcWgUstjJxp2E=";
11130     };
11131     buildInputs = [ FileHomeDir FileSlurper TestCompile UNIVERSALrequire URI ];
11132     propagatedBuildInputs = [ MailMboxMessageParser TimeDate ];
11133     outputs = [ "out" ];
11134     meta = {
11135       description = "Search mailboxes for mail matching a regular expression";
11136       homepage = "https://github.com/coppit/grepmail";
11137       license = with lib.licenses; [ gpl2Only ];
11138       maintainers = with maintainers; [ romildo ];
11139     };
11140   };
11142   GrowlGNTP = buildPerlModule {
11143     pname = "Growl-GNTP";
11144     version = "0.21";
11145     src = fetchurl {
11146       url = "mirror://cpan/authors/id/M/MA/MATTN/Growl-GNTP-0.21.tar.gz";
11147       hash = "sha256-KHl/jkJ0BnIFhMr9EOeAp47CtWnFVaGHQ9dFU9X1CD8=";
11148     };
11149     buildInputs = [ ModuleBuildTiny ];
11150     propagatedBuildInputs = [ CryptCBC DataUUID ];
11151     meta = {
11152       description = "Perl implementation of GNTP Protocol (Client Part)";
11153       license = with lib.licenses; [ artistic1 gpl1Plus ];
11154     };
11155   };
11157   GSSAPI = buildPerlPackage {
11158     pname = "GSSAPI";
11159     version = "0.28";
11160     src = fetchurl {
11161       url = "mirror://cpan/authors/id/A/AG/AGROLMS/GSSAPI-0.28.tar.gz";
11162       hash = "sha256-fY8se2F2L7TsctLsKBKQ8vh/nH0pgnPaRSVDKmXncNY=";
11163     };
11164     propagatedBuildInputs = [ pkgs.krb5.dev ];
11165     makeMakerFlags = [ "--gssapiimpl" "${pkgs.krb5.dev}" ];
11166     meta = {
11167       description = "Perl extension providing access to the GSSAPIv2 library";
11168       license = with lib.licenses; [ artistic1 gpl1Plus ];
11169       maintainers = teams.deshaw.members;
11170     };
11171   };
11173   Gtk2 = buildPerlPackage {
11174     pname = "Gtk2";
11175     version = "1.24993";
11176     src = fetchurl {
11177       url = "mirror://cpan/authors/id/X/XA/XAOC/Gtk2-1.24993.tar.gz";
11178       hash = "sha256-ScRDdDsu7+EadoACck9/akxI78lP8806VZ+357aTyWc=";
11179     };
11180     patches = [
11181       # Fix incompatible function pointer conversion (assigning `GdkNativeWindow` to `guint32`).
11182       ../development/perl-modules/Gtk2-fix-incompatible-pointer-conversion.patch
11183     ];
11184     buildInputs = [ pkgs.gtk2 ];
11185     # https://rt.cpan.org/Public/Bug/Display.html?id=130742
11186     # doCheck = !stdenv.isDarwin;
11187     doCheck = false;
11188     propagatedBuildInputs = [ Pango ];
11189     meta = {
11190       description = "Perl interface to the 2.x series of the Gimp Toolkit library";
11191       homepage = "https://gtk2-perl.sourceforge.net";
11192       license = with lib.licenses; [ lgpl21Plus ];
11193     };
11194   };
11196   Gtk2TrayIcon = buildPerlPackage {
11197     pname = "Gtk2-TrayIcon";
11198     version = "0.07";
11199     src = fetchurl {
11200       url = "mirror://cpan/authors/id/X/XA/XAOC/Gtk2-TrayIcon-0.07.tar.gz";
11201       hash = "sha256-OfwrmabmE9qeqXfYy1MD+l4H5poVJIk03hIXqXuWRVQ=";
11202     };
11203     propagatedBuildInputs = [ pkgs.gtk2 Gtk2 ];
11204     meta = {
11205       description = "(DEPRECATED) Perl interface to the EggTrayIcon library";
11206       license = with lib.licenses; [ gpl2Plus ];
11207       broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.Gtk2TrayIcon.x86_64-darwin
11208     };
11209   };
11211   Gtk2AppIndicator = buildPerlPackage {
11212     pname = "Gtk2-AppIndicator";
11213     version = "0.15";
11214     src = fetchurl {
11215       url = "mirror://cpan/authors/id/O/OE/OESTERHOL/Gtk2-AppIndicator-0.15.tar.gz";
11216       hash = "sha256-olywceIU+4m0RQqkYFAx6uibeWHhSbDW6PSRwZwUqQo=";
11217     };
11218     propagatedBuildInputs = [ pkgs.libappindicator-gtk2 pkgs.libdbusmenu-gtk2 pkgs.gtk2 pkgs.pkg-config Gtk2 ];
11219     # Tests fail due to no display:
11220     #   Gtk-WARNING **: cannot open display:  at /nix/store/HASH-perl-Gtk2-1.2498/lib/perl5/site_perl/5.22.2/x86_64-linux-thread-multi/Gtk2.pm line 126.
11221     doCheck = false;
11222     meta = {
11223       description = "Perl extension for libappindicator";
11224       license = with lib.licenses; [ artistic1 ];
11225     };
11226   };
11228   Gtk2ImageView = buildPerlPackage {
11229     pname = "Gtk2-ImageView";
11230     version = "0.05";
11231     src = fetchurl {
11232       url = "mirror://cpan/authors/id/R/RA/RATCLIFFE/Gtk2-ImageView-0.05.tar.gz";
11233       hash = "sha256-CHGGw2k6zxlkUc9ZzIt/XPmnsFq+INMty8uggilT+4A=";
11234     };
11235     buildInputs = [ pkgs.gtkimageview pkgs.gtk2 ];
11236     propagatedBuildInputs = [ Gtk2 ];
11237     # Tests fail due to no display server:
11238     #   Gtk-WARNING **: cannot open display:  at /nix/store/HASH-perl-Gtk2-1.2498/lib/perl5/site_perl/5.22.2/x86_64-linux-thread-multi/Gtk2.pm line 126.
11239     #   t/animview.t ...........
11240     doCheck = false;
11241     meta = {
11242       description = "Perl bindings for the GtkImageView widget";
11243       license = with lib.licenses; [ lgpl3Plus ];
11244     };
11245   };
11247   Gtk2Unique = buildPerlPackage {
11248     pname = "Gtk2-Unique";
11249     version = "0.07";
11250     src = fetchurl {
11251       url = "mirror://cpan/authors/id/X/XA/XAOC/Gtk2-Unique-0.07.tar.gz";
11252       hash = "sha256-nOX2ikFgC8z31u/eMMBwqxFOk57XqKx8O3rZE5mJGGc=";
11253     };
11254     propagatedBuildInputs = [ pkgs.libunique pkgs.gtk2 Gtk2 ];
11255     meta = {
11256       description = "(DEPRECATED) Use single instance applications";
11257       license = with lib.licenses; [ artistic1 gpl1Plus ];
11258       broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.Gtk2Unique.x86_64-darwin
11259     };
11260   };
11262   Gtk3 = buildPerlPackage rec {
11263     pname = "Gtk3";
11264     version = "0.038";
11265     src = fetchurl {
11266       url = "mirror://cpan/authors/id/X/XA/XAOC/Gtk3-${version}.tar.gz";
11267       hash = "sha256-cNxL8qp0mBx54V/SmNmY4FqS66SBHxrVyfH03jdzesw=";
11268     };
11269     propagatedBuildInputs = [ pkgs.gtk3 CairoGObject GlibObjectIntrospection ];
11270     preCheck = lib.optionalString stdenv.isDarwin "rm t/overrides.t"; # Currently failing on macOS
11271     meta = {
11272       description = "Perl interface to the 3.x series of the gtk+ toolkit";
11273       license = with lib.licenses; [ lgpl21Plus ];
11274     };
11275   };
11277   Gtk3ImageView = buildPerlPackage rec {
11278     pname = "Gtk3-ImageView";
11279     version = "10";
11280     src = fetchurl {
11281       url = "mirror://cpan/authors/id/A/AS/ASOKOLOV/Gtk3-ImageView-${version}.tar.gz";
11282       hash = "sha256-vHfnBgaeZPK7hBgZcP1KjepG+IvsDE3XwrH9U4xoN+Y=";
11283     };
11284     buildInputs = [ pkgs.gtk3 ];
11285     propagatedBuildInputs = [ Readonly Gtk3 ];
11286     nativeCheckInputs = [ TestDifferences TestDeep ImageMagick TryTiny TestMockObject CarpAlways pkgs.librsvg ];
11287     checkPhase = ''
11288       ${pkgs.xvfb-run}/bin/xvfb-run -s '-screen 0 800x600x24' \
11289         make test
11290     '';
11291     meta = {
11292       description = "Image viewer widget for Gtk3";
11293       homepage = "https://github.com/carygravel/gtk3-imageview";
11294       license = with lib.licenses; [ artistic1 gpl1Plus ];
11295     };
11296   };
11298   Gtk3SimpleList = buildPerlPackage {
11299     pname = "Gtk3-SimpleList";
11300     version = "0.21";
11301     src = fetchurl {
11302       url = "mirror://cpan/authors/id/T/TV/TVIGNAUD/Gtk3-SimpleList-0.21.tar.gz";
11303       hash = "sha256-HURlEAvzvAR0opRppAb9AzVituNzYYgSEAA3KrKtqIQ=";
11304     };
11305     propagatedBuildInputs = [ Gtk3 ];
11306     meta = {
11307       description = "A simple interface to Gtk3's complex MVC list widget";
11308       homepage = "https://github.com/soig/Gtk3-SimpleList";
11309       license = with lib.licenses; [ lgpl21Plus ];
11310     };
11311   };
11313   Guard = buildPerlPackage {
11314     pname = "Guard";
11315     version = "1.023";
11316     src = fetchurl {
11317       url = "mirror://cpan/authors/id/M/ML/MLEHMANN/Guard-1.023.tar.gz";
11318       hash = "sha256-NMTd+R/JPRCQ2G2hTfcG0XWxYQxnNywB4SzpVV1N0dw=";
11319     };
11320     meta = {
11321       description = "Safe cleanup blocks";
11322       license = with lib.licenses; [ artistic1 gpl1Plus ];
11323     };
11324   };
11326   HamAPRSFAP = buildPerlPackage {
11327     pname = "Ham-APRS-FAP";
11328     version = "1.21";
11329     src = fetchurl {
11330       url = "mirror://cpan/authors/id/H/HE/HESSU/Ham-APRS-FAP-1.21.tar.gz";
11331       hash = "sha256-4BtFXUb0RxDbzyG2+oQ/CTWM5g7uHEFBvHTgogTToCA=";
11332     };
11333     propagatedBuildInputs = [ DateCalc ];
11334     meta = {
11335       description = "Finnish APRS Parser (Fabulous APRS Parser)";
11336       maintainers = with maintainers; [ andrew-d ];
11337       license = with lib.licenses; [ artistic1 gpl1Plus ];
11338     };
11339   };
11341   Hailo = buildPerlPackage {
11342     pname = "Hailo";
11343     version = "0.75";
11344     src = fetchurl {
11345       url = "mirror://cpan/authors/id/A/AV/AVAR/Hailo-0.75.tar.gz";
11346       hash = "sha256-u6mcsM+j7oYy3YmQbG5voF/muzZ/IoLoiQnO/Y+RdMI=";
11347     };
11348     buildInputs = [ BotTrainingMegaHAL BotTrainingStarCraft DataSection FileSlurp PodSection TestException TestExpect TestOutput TestScript TestScriptRun ];
11349     propagatedBuildInputs = [ ClassLoad DBDSQLite DataDump DirSelf FileCountLines GetoptLongDescriptive IOInteractive IPCSystemSimple ListMoreUtils Moose MooseXGetopt MooseXStrictConstructor MooseXTypes RegexpCommon TermSk namespaceclean ];
11350     nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang;
11351     postPatch = ''
11352       patchShebangs bin
11353     '';
11354     postInstall = lib.optionalString stdenv.isDarwin ''
11355       shortenPerlShebang $out/bin/hailo
11356     '';
11357     meta = {
11358       description = "A pluggable Markov engine analogous to MegaHAL";
11359       homepage = "https://hailo.org";
11360       license = with lib.licenses; [ artistic1 gpl1Plus ];
11361       mainProgram = "hailo";
11362     };
11363   };
11365   HashDiff = buildPerlPackage {
11366     pname = "Hash-Diff";
11367     version = "0.010";
11368     src = fetchurl {
11369       url = "mirror://cpan/authors/id/B/BO/BOLAV/Hash-Diff-0.010.tar.gz";
11370       hash = "sha256-vJpKo47JjwqYKJ41q/mhfC8qMjmiIJoymADglwqi4MU=";
11371     };
11372     propagatedBuildInputs = [ HashMerge ];
11373     buildInputs = [ TestSimple13 ];
11375     meta = {
11376       description = "Return difference between two hashes as a hash";
11377       homepage = "https://github.com/bolav/hash-diff";
11378       license = with lib.licenses; [ artistic1 gpl1Plus ];
11379     };
11380   };
11382   ham = callPackage ../development/perl-modules/ham { };
11384   HashFlatten = buildPerlPackage {
11385     pname = "Hash-Flatten";
11386     version = "1.19";
11387     src = fetchurl {
11388       url = "mirror://cpan/authors/id/B/BB/BBC/Hash-Flatten-1.19.tar.gz";
11389       hash = "sha256-cMbEnYtsRgdGQXpQmO3SoP0x/YuGxUv4SS6FPB9OS5g=";
11390     };
11391     buildInputs = [ TestAssertions ];
11392     propagatedBuildInputs = [ LogTrace ];
11393     meta = {
11394       description = "Flatten/unflatten complex data hashes";
11395       license = with lib.licenses; [ gpl2Only ];
11396     };
11397   };
11399   HashMerge = buildPerlPackage {
11400     pname = "Hash-Merge";
11401     version = "0.302";
11402     src = fetchurl {
11403       url = "mirror://cpan/authors/id/H/HE/HERMES/Hash-Merge-0.302.tar.gz";
11404       hash = "sha256-rgUi92U5YIth3eFGcOeWd+DzkQNoMvcKIfMa3eJThkQ=";
11405     };
11406     propagatedBuildInputs = [ CloneChoose ];
11407     buildInputs = [ Clone ClonePP ];
11408     meta = {
11409       description = "Merges arbitrarily deep hashes into a single hash";
11410       homepage = "https://metacpan.org/release/Hash-Merge";
11411       license = with lib.licenses; [ artistic1 gpl1Plus ];
11412     };
11413   };
11415   HashMergeSimple = buildPerlPackage {
11416     pname = "Hash-Merge-Simple";
11417     version = "0.051";
11418     src = fetchurl {
11419       url = "mirror://cpan/authors/id/R/RO/ROKR/Hash-Merge-Simple-0.051.tar.gz";
11420       hash = "sha256-HFYyeHPS8E1XInd/BEhj2WiRBGaZd0DVWnVAccYoe3M=";
11421     };
11422     buildInputs = [ TestDeep TestDifferences TestException TestMost TestWarn ];
11423     propagatedBuildInputs = [ Clone ];
11424     meta = {
11425       description = "Recursively merge two or more hashes, simply";
11426       license = with lib.licenses; [ artistic1 gpl1Plus ];
11427     };
11428   };
11430   HashMoreUtils = buildPerlPackage {
11431     pname = "Hash-MoreUtils";
11432     version = "0.06";
11433     src = fetchurl {
11434       url = "mirror://cpan/authors/id/R/RE/REHSACK/Hash-MoreUtils-0.06.tar.gz";
11435       hash = "sha256-25qPuGfVB1PDgIiaXlQHVlG14IybO3IctyIMCINUfeg=";
11436     };
11437     meta = {
11438       description = "Provide the stuff missing in Hash::Util";
11439       homepage = "https://metacpan.org/release/Hash-MoreUtils";
11440       license = with lib.licenses; [ artistic1 gpl1Plus ];
11441     };
11442   };
11444   HashMultiValue = buildPerlPackage {
11445     pname = "Hash-MultiValue";
11446     version = "0.16";
11447     src = fetchurl {
11448       url = "mirror://cpan/authors/id/A/AR/ARISTOTLE/Hash-MultiValue-0.16.tar.gz";
11449       hash = "sha256-Zhgd96po4nhvr2iVyIsYuVyACo5Ob7TAf9F2QQo8c/Q=";
11450     };
11451     meta = {
11452       description = "Store multiple values per key";
11453       homepage = "https://github.com/miyagawa/Hash-MultiValue";
11454       license = with lib.licenses; [ artistic1 gpl1Plus ];
11455     };
11456   };
11458   HashOrdered = buildPerlPackage {
11459     pname = "Hash-Ordered";
11460     version = "0.014";
11461     src = fetchurl {
11462       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Hash-Ordered-0.014.tar.gz";
11463       hash = "sha256-jcNs15FVrjerij3l/ZEg/7qaMeQJJYwoUp7FJRxZdHs=";
11464     };
11465     buildInputs = [ TestDeep TestFailWarnings TestFatal ];
11466     meta = {
11467       homepage = "https://github.com/dagolden/Hash-Ordered";
11468       description = "A fast, pure-Perl ordered hash class";
11469       license = lib.licenses.asl20;
11470     };
11471   };
11473   HashSafeKeys = buildPerlPackage {
11474     pname = "Hash-SafeKeys";
11475     version = "0.04";
11476     src = fetchurl {
11477       url = "mirror://cpan/authors/id/M/MO/MOB/Hash-SafeKeys-0.04.tar.gz";
11478       hash = "sha256-pSStO/naZ3wfi+bhWXG3ZXVAj3RJI9onZHro8dPDfMw=";
11479     };
11480     meta = {
11481       description = "Get hash contents without resetting each iterator";
11482       license = with lib.licenses; [ artistic1 gpl1Plus ];
11483     };
11484   };
11486   HashSharedMem = buildPerlModule {
11487     pname = "Hash-SharedMem";
11488     version = "0.005";
11489     src = fetchurl {
11490       url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Hash-SharedMem-0.005.tar.gz";
11491       hash = "sha256-Mkd2gIYC973EStqpN4lTZUVAKakm+mEfMhyb9rlAu14=";
11492     };
11493     env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isAarch64 "-mno-outline-atomics";
11494     buildInputs = [ ScalarString ];
11495     meta = {
11496       description = "Efficient shared mutable hash";
11497       license = with lib.licenses; [ artistic1 gpl1Plus ];
11498       broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.HashSharedMem.x86_64-darwin
11499     };
11500   };
11502   HashStoredIterator = buildPerlModule {
11503     pname = "Hash-StoredIterator";
11504     version = "0.008";
11505     src = fetchurl {
11506       url = "mirror://cpan/authors/id/M/MS/MSCHWERN/Hash-StoredIterator-0.008.tar.gz";
11507       hash = "sha256-ucvE3NgjPo0dfxSB3beaSl+dtxgMs+8CtLy+4F5l6gw=";
11508     };
11509     buildInputs = [ Test2Suite ];
11510     perlPreHook = lib.optionalString stdenv.isDarwin "export LD=$CC";
11511     meta = {
11512       description = "Functions for accessing a hashes internal iterator";
11513       license = with lib.licenses; [ artistic1 gpl1Plus ];
11514     };
11515   };
11517   HashUtilFieldHashCompat = buildPerlPackage {
11518     pname = "Hash-Util-FieldHash-Compat";
11519     version = "0.11";
11520     src = fetchurl {
11521       url = "mirror://cpan/authors/id/E/ET/ETHER/Hash-Util-FieldHash-Compat-0.11.tar.gz";
11522       hash = "sha256-ZC5Gp1tTe6EUILMPiwNAPJCgahVFjNgAnzOf6eXzdBs=";
11523     };
11524     meta = {
11525       description = "Use Hash::Util::FieldHash or ties, depending on availability";
11526       license = with lib.licenses; [ artistic1 gpl1Plus ];
11527     };
11528   };
11530   HeapFibonacci = buildPerlPackage {
11531     pname = "Heap";
11532     version = "0.80";
11533     src = fetchurl {
11534       url = "mirror://cpan/authors/id/J/JM/JMM/Heap-0.80.tar.gz";
11535       hash = "sha256-zNop88kxdq0P3/9N1vXkrJCzcMuksCg4a3NDv2QTm94=";
11536     };
11537     meta = {
11538       description = "Perl extensions for keeping data partially sorted";
11539       license = with lib.licenses; [ artistic1 gpl1Plus ];
11540     };
11541   };
11543   HookLexWrap = buildPerlPackage {
11544     pname = "Hook-LexWrap";
11545     version = "0.26";
11546     src = fetchurl {
11547       url = "mirror://cpan/authors/id/E/ET/ETHER/Hook-LexWrap-0.26.tar.gz";
11548       hash = "sha256-tgvcX5j5T5KUsGre+CsdmW2hktXxg/n0NLYQ/RE37C0=";
11549     };
11550     buildInputs = [ pkgs.unzip ];
11551     meta = {
11552       description = "Lexically scoped subroutine wrappers";
11553       homepage = "https://github.com/karenetheridge/Hook-LexWrap";
11554       license = with lib.licenses; [ artistic1 gpl1Plus ];
11555     };
11556   };
11558   HTMLClean = buildPerlPackage {
11559     pname = "HTML-Clean";
11560     version = "1.4";
11561     src = fetchurl {
11562       url = "mirror://cpan/authors/id/A/AZ/AZJADFTRE/HTML-Clean-1.4.tar.gz";
11563       hash = "sha256-pn1KvadR/DxrSjUYU3eoi8pbZRxgszN5gEtOkKF4hwY=";
11564     };
11565     meta = {
11566       description = "Cleans up HTML code for web browsers, not humans";
11567       license = with lib.licenses; [ artistic1 gpl1Plus ];
11568       mainProgram = "htmlclean";
11569     };
11570   };
11572   HTMLElementExtended = buildPerlPackage {
11573     pname = "HTML-Element-Extended";
11574     version = "1.18";
11575     src = fetchurl {
11576       url = "mirror://cpan/authors/id/M/MS/MSISK/HTML-Element-Extended-1.18.tar.gz";
11577       hash = "sha256-8+8a8Qjyf+8V6+xmR58lHOCKpJvQCwRiycgMhrS2sys=";
11578     };
11579     propagatedBuildInputs = [ HTMLTree ];
11580     meta = {
11581       description = "Perl extension for HTML::Element(3)";
11582       license = with lib.licenses; [ artistic1 gpl1Plus ];
11583     };
11584   };
11586   HTMLEscape = buildPerlModule {
11587     pname = "HTML-Escape";
11588     version = "1.11";
11589     src = fetchurl {
11590       url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/HTML-Escape-1.11.tar.gz";
11591       hash = "sha256-Wl7viWUA0epsJKkIXs++mkOr7mjPxmwD+InSostoml0=";
11592     };
11593     buildInputs = [ ModuleBuildPluggablePPPort TestRequires ];
11594     perlPreHook = lib.optionalString stdenv.isi686 "export LD=$CC"; # fix undefined reference to `__stack_chk_fail_local'
11595     meta = {
11596       description = "Extremely fast HTML escaping";
11597       homepage = "https://github.com/tokuhirom/HTML-Escape";
11598       license = with lib.licenses; [ artistic1 gpl1Plus ];
11599       broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.HTMLEscape.x86_64-darwin
11600     };
11601   };
11603   HTMLFromANSI = buildPerlPackage {
11604     pname = "HTML-FromANSI";
11605     version = "2.03";
11606     src = fetchurl {
11607       url = "mirror://cpan/authors/id/N/NU/NUFFIN/HTML-FromANSI-2.03.tar.gz";
11608       hash = "sha256-IXdjRe1wGywEx7CTgK+UP5mEzH+ZYkCHrqRdtfwJw1k=";
11609     };
11610     propagatedBuildInputs = [ HTMLParser TermVT102Boundless ];
11611     meta = {
11612       description = "Mark up ANSI sequences as HTML";
11613       license = with lib.licenses; [ artistic1 gpl1Plus ];
11614       mainProgram = "ansi2html";
11615     };
11616   };
11618   HTMLForm = buildPerlPackage {
11619     pname = "HTML-Form";
11620     version = "6.11";
11621     src = fetchurl {
11622       url = "mirror://cpan/authors/id/S/SI/SIMBABQUE/HTML-Form-6.11.tar.gz";
11623       hash = "sha256-Q7+qcIc5NIfS1RJhoap/b4Gpex2P73pI/PbvMrFtZFQ=";
11624     };
11625     buildInputs = [ TestWarnings ];
11626     propagatedBuildInputs = [ HTMLParser URI ];
11627     meta = {
11628       description = "Class that represents an HTML form element";
11629       homepage = "https://github.com/libwww-perl/HTML-Form";
11630       license = with lib.licenses; [ artistic1 gpl1Plus ];
11631     };
11632   };
11634   HTMLFormatter = buildPerlPackage {
11635     pname = "HTML-Formatter";
11636     version = "2.16";
11637     src = fetchurl {
11638       url = "mirror://cpan/authors/id/N/NI/NIGELM/HTML-Formatter-2.16.tar.gz";
11639       hash = "sha256-ywoN2Kpei6nKIUzkUb9N8zqgnBPpB+jTCC3a/rMBUcw=";
11640     };
11641     buildInputs = [ FileSlurper TestWarnings ];
11642     propagatedBuildInputs = [ FontAFM HTMLTree ];
11643     meta = {
11644       description = "Base class for HTML formatters";
11645       homepage = "https://metacpan.org/release/HTML-Formatter";
11646       license = with lib.licenses; [ artistic1 gpl1Plus ];
11647     };
11648   };
11650   HTMLFormatExternal = buildPerlPackage {
11651     pname = "HTML-FormatExternal";
11652     version = "26";
11653     src = fetchurl {
11654       url = "mirror://cpan/authors/id/K/KR/KRYDE/HTML-FormatExternal-26.tar.gz";
11655       hash = "sha256-PFnyM9CxBoaoWu0MmUARzsaGJtoBKN6pC1xP3BdGz8M=";
11656     };
11657     propagatedBuildInputs = [ IPCRun URI constant-defer ];
11658     meta = {
11659       description = "HTML to text formatting using external programs";
11660       homepage = "https://user42.tuxfamily.org/html-formatexternal/index.html";
11661       license = with lib.licenses; [ gpl3Plus ];
11662     };
11663   };
11665   HTMLFormatTextWithLinks = buildPerlModule {
11666     pname = "HTML-FormatText-WithLinks";
11667     version = "0.15";
11668     src = fetchurl {
11669       url = "mirror://cpan/authors/id/S/ST/STRUAN/HTML-FormatText-WithLinks-0.15.tar.gz";
11670       hash = "sha256-f8wat561j7l9Q+W90U4heRolCiBJmJGMYtahcRMYM7E=";
11671     };
11672     propagatedBuildInputs = [ HTMLFormatter ];
11673     meta = {
11674       description = "HTML to text conversion with links as footnotes";
11675       license = with lib.licenses; [ artistic1 gpl1Plus ];
11676     };
11677   };
11679   HTMLFormatTextWithLinksAndTables = buildPerlPackage {
11680     pname = "HTML-FormatText-WithLinks-AndTables";
11681     version = "0.07";
11682     src = fetchurl {
11683       url = "mirror://cpan/authors/id/D/DA/DALEEVANS/HTML-FormatText-WithLinks-AndTables-0.07.tar.gz";
11684       hash = "sha256-gJ7i8RcFcGszxUMStce+5nSDjyvqrtr4y5RecCquObY=";
11685     };
11686     propagatedBuildInputs = [ HTMLFormatTextWithLinks ];
11687     meta = {
11688       description = "Converts HTML to Text with tables intact";
11689       license = with lib.licenses; [ artistic1 gpl1Plus ];
11690     };
11691   };
11693   HTMLFormFu = buildPerlPackage {
11694     pname = "HTML-FormFu";
11695     version = "2.07";
11696     src = fetchurl {
11697       url = "mirror://cpan/authors/id/C/CF/CFRANKS/HTML-FormFu-2.07.tar.gz";
11698       hash = "sha256-Ty8Bf3qHVPu26RIGyI7RPHVqFOO+oXgYjDuXdGNm6zI=";
11699     };
11700     buildInputs = [ CGI FileShareDirInstall RegexpAssemble TestException TestMemoryCycle TestRequiresInternet ];
11701     propagatedBuildInputs = [ ConfigAny DataVisitor DateTimeFormatBuilder DateTimeFormatNatural EmailValid HTMLScrubber HTMLTokeParserSimple HashFlatten JSONMaybeXS MooseXAliases MooseXAttributeChained NumberFormat PathClass Readonly RegexpCommon TaskWeaken YAMLLibYAML ];
11702     meta = {
11703       description = "HTML Form Creation, Rendering and Validation Framework";
11704       homepage = "https://github.com/FormFu/HTML-FormFu";
11705       license = with lib.licenses; [ artistic1 gpl1Plus ];
11706     };
11707   };
11709   HTMLFormFuMultiForm = buildPerlPackage {
11710     pname = "HTML-FormFu-MultiForm";
11711     version = "1.03";
11712     src = fetchurl {
11713       url = "mirror://cpan/authors/id/N/NI/NIGELM/HTML-FormFu-MultiForm-1.03.tar.gz";
11714       hash = "sha256-NvAM12u4luTaCd0rsOXYkGZ/cMePVCUa9NJYyCFJFZ8=";
11715     };
11716     propagatedBuildInputs = [ CryptCBC CryptDES HTMLFormFu ];
11717     meta = {
11718       description = "Handle multi-page/stage forms with FormFu";
11719       homepage = "https://github.com/FormFu/HTML-FormFu-MultiForm";
11720       license = with lib.licenses; [ artistic1 gpl1Plus ];
11721     };
11722   };
11724   HTMLFormHandler = buildPerlPackage {
11725     pname = "HTML-FormHandler";
11726     version = "0.40068";
11727     src = fetchurl {
11728       url = "mirror://cpan/authors/id/G/GS/GSHANK/HTML-FormHandler-0.40068.tar.gz";
11729       hash = "sha256-63t43aMSV1LMi8wDltOXf70o2jPS1ExQQq1tNdbN6Cc=";
11730     };
11731     # a single test is failing on perl 5.20
11732     doCheck = false;
11733     buildInputs = [ FileShareDirInstall PadWalker TestDifferences TestException TestMemoryCycle TestWarn ];
11734     propagatedBuildInputs = [ CryptBlowfish CryptCBC DataClone DateTimeFormatStrptime EmailValid HTMLTree JSONMaybeXS MooseXGetopt MooseXTypesCommon MooseXTypesLoadableClass aliased ];
11735     meta = {
11736       description = "HTML forms using Moose";
11737       license = with lib.licenses; [ artistic1 gpl1Plus ];
11738     };
11739   };
11741   HTMLGumbo = buildPerlModule {
11742     pname = "HTML-Gumbo";
11743     version = "0.18";
11744     src = fetchurl {
11745       url = "mirror://cpan/authors/id/R/RU/RUZ/HTML-Gumbo-0.18.tar.gz";
11746       hash = "sha256-v1C2HCRlbMP8lYYC2AqcfQFyR6842Nv6Dp3sW3VCXV8=";
11747     };
11748     propagatedBuildInputs = [ AlienLibGumbo ];
11749     meta = {
11750       description = "HTML5 parser based on gumbo C library";
11751       license = with lib.licenses; [ artistic1 gpl1Plus ];
11752     };
11753   };
11755   HTMLMason = buildPerlPackage {
11756     pname = "HTML-Mason";
11757     version = "1.60";
11758     src = fetchurl {
11759       url = "mirror://cpan/authors/id/D/DR/DROLSKY/HTML-Mason-1.60.tar.gz";
11760       hash = "sha256-qgu9WmtjxiyJVfjFXsCF43DXktZSZrbDtcXweIu8d+Y=";
11761     };
11762     buildInputs = [ TestDeep ];
11763     propagatedBuildInputs = [ CGI CacheCache ClassContainer ExceptionClass LogAny ];
11764     meta = {
11765       description = "High-performance, dynamic web site authoring system";
11766       homepage = "https://metacpan.org/release/HTML-Mason";
11767       license = with lib.licenses; [ artistic1 gpl1Plus ];
11768     };
11769   };
11771   HTMLMasonPSGIHandler = buildPerlPackage {
11772     pname = "HTML-Mason-PSGIHandler";
11773     version = "0.53";
11774     src = fetchurl {
11775       url = "mirror://cpan/authors/id/R/RU/RUZ/HTML-Mason-PSGIHandler-0.53.tar.gz";
11776       hash = "sha256-6v18dlXfqCYd80RrkxooPTAwaHe4OsRnHEnP906n8As=";
11777     };
11778     buildInputs = [ Plack ];
11779     propagatedBuildInputs = [ CGIPSGI HTMLMason ];
11780     meta = {
11781       description = "PSGI handler for HTML::Mason";
11782       homepage = "https://search.cpan.org/dist/HTML-Mason-PSGIHandler";
11783       license = with lib.licenses; [ artistic1 gpl1Plus ];
11784     };
11785   };
11787   HTMLParser = buildPerlPackage {
11788     pname = "HTML-Parser";
11789     version = "3.81";
11790     src = fetchurl {
11791       url = "mirror://cpan/authors/id/O/OA/OALDERS/HTML-Parser-3.81.tar.gz";
11792       hash = "sha256-wJEKXI+S+IF+3QbM/SJLocLr6MEPVR8DJYeh/IPWL/I=";
11793     };
11794     propagatedBuildInputs = [ HTMLTagset HTTPMessage ];
11795     meta = {
11796       description = "HTML parser class";
11797       homepage = "https://github.com/libwww-perl/HTML-Parser";
11798       license = with lib.licenses; [ artistic1 gpl1Plus ];
11799     };
11800   };
11802   HTMLTagCloud = buildPerlModule {
11803     pname = "HTML-TagCloud";
11804     version = "0.38";
11805     src = fetchurl {
11806       url = "mirror://cpan/authors/id/R/RO/ROBERTSD/HTML-TagCloud-0.38.tar.gz";
11807       hash = "sha256-SYCZRy3vhmtEi/YvQYLfrfWUcuE/JMuGZKZxynm2cBU=";
11808     };
11809     meta = {
11810       description = "Generate An HTML Tag Cloud";
11811       license = with lib.licenses; [ artistic1 gpl1Plus ];
11812     };
11813   };
11815   HTMLQuoted = buildPerlPackage {
11816     pname = "HTML-Quoted";
11817     version = "0.04";
11818     src = fetchurl {
11819       url = "mirror://cpan/authors/id/T/TS/TSIBLEY/HTML-Quoted-0.04.tar.gz";
11820       hash = "sha256-i0HzE/3BgS8C9vbDfVjyEshP3PeCf3/UsDCQfzncZQw=";
11821     };
11822     propagatedBuildInputs = [ HTMLParser ];
11823     meta = {
11824       description = "Extract structure of quoted HTML mail message";
11825       license = with lib.licenses; [ artistic1 gpl1Plus ];
11826     };
11827   };
11829   HTMLRewriteAttributes = buildPerlPackage {
11830     pname = "HTML-RewriteAttributes";
11831     version = "0.05";
11832     src = fetchurl {
11833       url = "mirror://cpan/authors/id/T/TS/TSIBLEY/HTML-RewriteAttributes-0.05.tar.gz";
11834       hash = "sha256-GAjsfN9A0nCFdf5hVaiPEDsX/sd5c6WDHC8kwlDnpYw=";
11835     };
11836     propagatedBuildInputs = [ HTMLParser ];
11837     meta = {
11838       description = "Concise attribute rewriting";
11839       license = with lib.licenses; [ artistic1 gpl1Plus ];
11840     };
11841   };
11843   HTMLSelectorXPath = buildPerlPackage {
11844     pname = "HTML-Selector-XPath";
11845     version = "0.28";
11846     src = fetchurl {
11847       url = "mirror://cpan/authors/id/C/CO/CORION/HTML-Selector-XPath-0.28.tar.gz";
11848       hash = "sha256-QycX8D7Szz1kETDP09ShU/Ca1PhW2gB4E3kv4LLljQ8=";
11849     };
11850     buildInputs = [ TestBase ];
11851     meta = {
11852       description = "CSS Selector to XPath compiler";
11853       license = with lib.licenses; [ artistic1 gpl1Plus ];
11854     };
11855   };
11857   HTMLScrubber = buildPerlPackage {
11858     pname = "HTML-Scrubber";
11859     version = "0.19";
11860     src = fetchurl {
11861       url = "mirror://cpan/authors/id/N/NI/NIGELM/HTML-Scrubber-0.19.tar.gz";
11862       hash = "sha256-rihVePhWX5FUxj5CNHBLV7aDX3ei+C/+ckiZ1FMmK7E=";
11863     };
11864     propagatedBuildInputs = [ HTMLParser ];
11865     buildInputs = [ TestDifferences TestMemoryCycle ];
11866     meta = {
11867       description = "Perl extension for scrubbing/sanitizing HTML";
11868       license = with lib.licenses; [ artistic1 gpl1Plus ];
11869     };
11870   };
11872   HTMLStripScripts = buildPerlPackage {
11873     pname = "HTML-StripScripts";
11874     version = "1.06";
11875     src = fetchurl {
11876       url = "mirror://cpan/authors/id/D/DR/DRTECH/HTML-StripScripts-1.06.tar.gz";
11877       hash = "sha256-Iiv7fsH9+kZeMto9xKvtLtxzZLvhno48UTx9WFsBCa0=";
11878     };
11879     meta = {
11880       description = "Strip scripting constructs out of HTML";
11881       license = with lib.licenses; [ artistic1 gpl1Plus ];
11882     };
11883   };
11885   HTMLStripScriptsParser = buildPerlPackage {
11886     pname = "HTML-StripScripts-Parser";
11887     version = "1.03";
11888     src = fetchurl {
11889       url = "mirror://cpan/authors/id/D/DR/DRTECH/HTML-StripScripts-Parser-1.03.tar.gz";
11890       hash = "sha256-R4waTkbrd/p7zpa6KIFo8LmMJ/JQ4A3GMSNlCBrtNAc=";
11891     };
11892     propagatedBuildInputs = [ HTMLParser HTMLStripScripts ];
11893     meta = {
11894       description = "XSS filter using HTML::Parser";
11895       license = with lib.licenses; [ artistic1 gpl1Plus ];
11896     };
11897   };
11899   HTMLTableExtract = buildPerlPackage {
11900     pname = "HTML-TableExtract";
11901     version = "2.15";
11902     src = fetchurl {
11903       url = "mirror://cpan/authors/id/M/MS/MSISK/HTML-TableExtract-2.15.tar.gz";
11904       hash = "sha256-hsWcnVjaPKF02l5i9aD7AvTaArGx4B355dFLtl5MPs8=";
11905     };
11906     preCheck = ''
11907       # https://rt.cpan.org/Public/Bug/Display.html?id=121920
11908       rm t/30_tree.t
11909     '';
11910     propagatedBuildInputs = [ HTMLElementExtended ];
11911     meta = {
11912       description = "Perl module for extracting the content contained in tables within an HTML document, either as text or encoded element trees";
11913       license = with lib.licenses; [ artistic1 gpl1Plus ];
11914     };
11915   };
11917   HTMLTagset = buildPerlPackage {
11918     pname = "HTML-Tagset";
11919     version = "3.20";
11920     src = fetchurl {
11921       url = "mirror://cpan/authors/id/P/PE/PETDANCE/HTML-Tagset-3.20.tar.gz";
11922       hash = "sha256-rbF9rJ42zQEfUkOIHJc5QX/RAvznYPjeTpvkxxMRCOI=";
11923     };
11924     meta = {
11925       description = "Data tables useful in parsing HTML";
11926       license = with lib.licenses; [ artistic1 gpl1Plus ];
11927     };
11928   };
11930   HTMLTemplate = buildPerlPackage {
11931     pname = "HTML-Template";
11932     version = "2.97";
11933     src = fetchurl {
11934       url = "mirror://cpan/authors/id/S/SA/SAMTREGAR/HTML-Template-2.97.tar.gz";
11935       hash = "sha256-ZUevYfOqhXk/hhYZCTjWd9eZX7O3IMFiWAQLyTXiEp8=";
11936     };
11937     propagatedBuildInputs = [ CGI ];
11938     buildInputs = [ TestPod ];
11939     meta = {
11940       description = "Perl module to use HTML-like templating language";
11941       license = with lib.licenses; [ artistic1 gpl1Plus ];
11942     };
11943   };
11945   HTMLTidy = buildPerlPackage {
11946     pname = "HTML-Tidy";
11947     version = "1.60";
11948     src = fetchurl {
11949       url = "mirror://cpan/authors/id/P/PE/PETDANCE/HTML-Tidy-1.60.tar.gz";
11950       hash = "sha256-vPv2XWh/jmcs9gyYIbzWXV6McqeCcrZ7sKwcaZoT18c=";
11951     };
11953     patchPhase = ''
11954       sed -i "s#/usr/include/tidyp#${pkgs.tidyp}/include/tidyp#" Makefile.PL
11955       sed -i "s#/usr/lib#${pkgs.tidyp}/lib#" Makefile.PL
11956     '';
11957     buildInputs = [ TestException ];
11958     meta = {
11959       description = "(X)HTML validation in a Perl object";
11960       homepage = "https://github.com/petdance/html-tidy";
11961       license = with lib.licenses; [ artistic2 ];
11962       mainProgram = "webtidy";
11963     };
11964   };
11966   HTMLTiny = buildPerlPackage {
11967     pname = "HTML-Tiny";
11968     version = "1.08";
11969     src = fetchurl {
11970       url = "mirror://cpan/authors/id/A/AR/ARISTOTLE/HTML-Tiny-1.08.tar.gz";
11971       hash = "sha256-DwHfDJ/ICz2dooi6q/jApTdHRE964euWAOevxKPc/rU=";
11972     };
11973     meta = {
11974       description = "Lightweight, dependency free HTML/XML generation";
11975       license = with lib.licenses; [ artistic1 gpl1Plus ];
11976     };
11977   };
11979   HTMLTokeParserSimple = buildPerlModule {
11980     pname = "HTML-TokeParser-Simple";
11981     version = "3.16";
11982     src = fetchurl {
11983       url = "mirror://cpan/authors/id/O/OV/OVID/HTML-TokeParser-Simple-3.16.tar.gz";
11984       hash = "sha256-7RETXGg55uDq+WlS5qw1Oi8i67QKchZZZx5dLcwOSp0=";
11985     };
11986     propagatedBuildInputs = [ HTMLParser SubOverride ];
11987     meta = {
11988       description = "Easy to use HTML::TokeParser interface";
11989       license = with lib.licenses; [ artistic1 gpl1Plus ];
11990     };
11991   };
11993   HTMLTree = buildPerlModule {
11994     pname = "HTML-Tree";
11995     version = "5.07";
11996     src = fetchurl {
11997       url = "mirror://cpan/authors/id/K/KE/KENTNL/HTML-Tree-5.07.tar.gz";
11998       hash = "sha256-8DdNuEcxwgS4bB1bkJdf7w0wqGvZ3vkZND5VTjGp278=";
11999     };
12000     buildInputs = [ TestFatal ];
12001     propagatedBuildInputs = [ HTMLParser ];
12002     meta = {
12003       description = "Work with HTML in a DOM-like tree structure";
12004       license = with lib.licenses; [ artistic1 gpl1Plus ];
12005       mainProgram = "htmltree";
12006     };
12007   };
12009   HTMLTreeBuilderXPath = buildPerlPackage {
12010     pname = "HTML-TreeBuilder-XPath";
12011     version = "0.14";
12012     src = fetchurl {
12013       url = "mirror://cpan/authors/id/M/MI/MIROD/HTML-TreeBuilder-XPath-0.14.tar.gz";
12014       hash = "sha256-Jeu9skRKClma5eekV9deCe/N8yZqXFcAsUA8y3SIpPM=";
12015     };
12016     propagatedBuildInputs = [ HTMLTree XMLXPathEngine ];
12017     meta = {
12018       description = "Add XPath support to HTML::TreeBuilder";
12019       license = with lib.licenses; [ artistic1 gpl1Plus ];
12020     };
12021   };
12023   HTMLWidget = buildPerlPackage {
12024     pname = "HTML-Widget";
12025     version = "1.11";
12026     src = fetchurl {
12027       url = "mirror://cpan/authors/id/C/CF/CFRANKS/HTML-Widget-1.11.tar.gz";
12028       hash = "sha256-vkLfQFWSXOalob818eB60SvEP2VJ91JJAuozMFoOggs=";
12029     };
12030     doCheck = false;
12031     propagatedBuildInputs = [ ClassAccessorChained ClassDataAccessor DateCalc EmailValid HTMLScrubber HTMLTree ModulePluggableFast ];
12032     buildInputs = [ TestNoWarnings ];
12033     meta = {
12034       description = "HTML Widget And Validation Framework";
12035       license = with lib.licenses; [ artistic1 gpl1Plus ];
12036     };
12037   };
12039   HTTPAcceptLanguage = buildPerlModule {
12040     pname = "HTTP-AcceptLanguage";
12041     version = "0.02";
12042     src = fetchurl {
12043       url = "mirror://cpan/authors/id/Y/YA/YAPPO/HTTP-AcceptLanguage-0.02.tar.gz";
12044       hash = "sha256-LmBfVk7J66tlVI/17sk/nF3qvv7XBzpyneCuKE5OQq8=";
12045     };
12046     buildInputs = [ ModuleBuildTiny ];
12047     meta = {
12048       description = "Accept-Language header parser and find available language";
12049       homepage = "https://github.com/yappo/p5-HTTP-AcceptLanguage";
12050       license = with lib.licenses; [ artistic1 gpl1Plus ];
12051     };
12052   };
12054   HTTPBody = buildPerlPackage {
12055     pname = "HTTP-Body";
12056     version = "1.22";
12057     src = fetchurl {
12058       url = "mirror://cpan/authors/id/G/GE/GETTY/HTTP-Body-1.22.tar.gz";
12059       hash = "sha256-/A0sWFs70VMtkmCZZdWJ4Mh804DnzKQvua0KExEicpc=";
12060     };
12061     buildInputs = [ TestDeep ];
12062     propagatedBuildInputs = [ HTTPMessage ];
12063     meta = {
12064       description = "HTTP Body Parser";
12065       license = with lib.licenses; [ artistic1 gpl1Plus ];
12066     };
12067   };
12069   HTTPCookieJar = buildPerlPackage {
12070     pname = "HTTP-CookieJar";
12071     version = "0.014";
12072     src = fetchurl {
12073       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/HTTP-CookieJar-0.014.tar.gz";
12074       hash = "sha256-cJTqXJH1NtJjuF6Dq06alj4RxECM4I7K5VP6nAzEfnM=";
12075     };
12076     propagatedBuildInputs = [ HTTPDate ];
12077     buildInputs = [ TestDeep TestRequires URI ];
12078     # Broken on Hydra since 2021-06-17: https://hydra.nixos.org/build/146507373
12079     doCheck = false;
12080     meta = {
12081       description = "A minimalist HTTP user agent cookie jar";
12082       homepage = "https://github.com/dagolden/HTTP-CookieJar";
12083       license = with lib.licenses; [ asl20 ];
12084     };
12085   };
12087   HTTPCookies = buildPerlPackage {
12088     pname = "HTTP-Cookies";
12089     version = "6.10";
12090     src = fetchurl {
12091       url = "mirror://cpan/authors/id/O/OA/OALDERS/HTTP-Cookies-6.10.tar.gz";
12092       hash = "sha256-4282Yzxc5rXkuHb/z3R4fMXv4HNt1/SHvdc8FPC9cAc=";
12093     };
12094     propagatedBuildInputs = [ HTTPMessage ];
12095     meta = {
12096       description = "HTTP cookie jars";
12097       homepage = "https://github.com/libwww-perl/HTTP-Cookies";
12098       license = with lib.licenses; [ artistic1 gpl1Plus ];
12099     };
12100   };
12102   HTTPDaemon = buildPerlPackage {
12103     pname = "HTTP-Daemon";
12104     version = "6.16";
12105     src = fetchurl {
12106       url = "mirror://cpan/authors/id/O/OA/OALDERS/HTTP-Daemon-6.16.tar.gz";
12107       hash = "sha256-s40JJyXm+k4MTcKkfhVwcEkbr6Db4Wx4o1joBqp+Fz0=";
12108     };
12109     buildInputs = [ ModuleBuildTiny TestNeeds ];
12110     propagatedBuildInputs = [ HTTPMessage ];
12111     meta = {
12112       description = "A simple http server class";
12113       homepage = "https://github.com/libwww-perl/HTTP-Daemon";
12114       license = with lib.licenses; [ artistic1 gpl1Plus ];
12115     };
12116   };
12118   HTTPDate = buildPerlPackage {
12119     pname = "HTTP-Date";
12120     version = "6.06";
12121     src = fetchurl {
12122       url = "mirror://cpan/authors/id/O/OA/OALDERS/HTTP-Date-6.06.tar.gz";
12123       hash = "sha256-e2hRkcasw+dz0fwCyV7h+frpT3d4MXX154wYHMktK1I=";
12124     };
12125     propagatedBuildInputs = [ TimeDate ];
12126     meta = {
12127       description = "Date conversion routines";
12128       homepage = "https://github.com/libwww-perl/HTTP-Date";
12129       license = with lib.licenses; [ artistic1 gpl1Plus ];
12130     };
12131   };
12133   HTTPEntityParser = buildPerlModule {
12134     pname = "HTTP-Entity-Parser";
12135     version = "0.25";
12136     src = fetchurl {
12137       url = "mirror://cpan/authors/id/K/KA/KAZEBURO/HTTP-Entity-Parser-0.25.tar.gz";
12138       hash = "sha256-OozQ2Muj0XzYwE7oLXNB36okfb3ZSknrlLU/aeSD7Do=";
12139     };
12140     propagatedBuildInputs = [ HTTPMultiPartParser HashMultiValue JSONMaybeXS StreamBuffered WWWFormUrlEncoded ];
12141     buildInputs = [ HTTPMessage ModuleBuildTiny ];
12142     meta = {
12143       description = "PSGI compliant HTTP Entity Parser";
12144       homepage = "https://github.com/kazeburo/HTTP-Entity-Parser";
12145       license = with lib.licenses; [ artistic1 gpl1Plus ];
12146     };
12147   };
12149   HTTPDAV = buildPerlPackage {
12150     pname = "HTTP-DAV";
12151     version = "0.49";
12152     src = fetchurl {
12153       url = "mirror://cpan/authors/id/C/CO/COSIMO/HTTP-DAV-0.49.tar.gz";
12154       hash = "sha256-MzOd+ewQbeN9hgnP0NPAg8z7sGwWxlG1s4UaVtF6lXw=";
12155     };
12156     propagatedBuildInputs = [ XMLDOM ];
12157     meta = {
12158       description = "WebDAV client library";
12159       license = with lib.licenses; [ artistic1 gpl1Plus ];
12160       mainProgram = "dave";
12161     };
12162   };
12164   HTTPHeadersActionPack = buildPerlPackage {
12165     pname = "HTTP-Headers-ActionPack";
12166     version = "0.09";
12167     src = fetchurl {
12168       url = "mirror://cpan/authors/id/D/DR/DROLSKY/HTTP-Headers-ActionPack-0.09.tar.gz";
12169       hash = "sha256-x4ERq4V+SMaYJJA9S2zoKT/v/GtdZw21UKdn+FOsx9o=";
12170     };
12171     buildInputs = [ TestFatal TestWarnings ];
12172     propagatedBuildInputs = [ HTTPDate HTTPMessage ModuleRuntime SubExporter URI ];
12173     meta = {
12174       description = "HTTP Action, Adventure and Excitement";
12175       license = with lib.licenses; [ artistic1 gpl1Plus ];
12176     };
12177   };
12179   HTTPHeaderParserXS = buildPerlPackage {
12180     pname = "HTTP-HeaderParser-XS";
12181     version = "0.20";
12182     src = fetchurl {
12183       url = "mirror://cpan/authors/id/M/MA/MARKSMITH/HTTP-HeaderParser-XS-0.20.tar.gz";
12184       hash = "sha256-qeAP/7PYmRoUqq/dxh1tFoxP8U4xSuPbstTaMAjXRu8=";
12185     };
12186     meta = {
12187       description = "An XS extension for processing HTTP headers";
12188       license = with lib.licenses; [ artistic1 gpl1Plus ];
12189       broken =
12190         stdenv.isi686 # loadable library and perl binaries are mismatched (got handshake key 0x7d40080, needed 0x7dc0080)
12191         || stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.HTTPHeaderParserXS.x86_64-darwin
12192     };
12193   };
12195   HTTPHeadersFast = buildPerlModule {
12196     pname = "HTTP-Headers-Fast";
12197     version = "0.22";
12198     src = fetchurl {
12199       url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/HTTP-Headers-Fast-0.22.tar.gz";
12200       hash = "sha256-zEMdtoSW3YhNtLwMC3ESwfSk8dxoxPWjyqdXoedIG0g=";
12201     };
12202     buildInputs = [ ModuleBuildTiny TestRequires ];
12203     propagatedBuildInputs = [ HTTPDate ];
12204     meta = {
12205       description = "Faster implementation of HTTP::Headers";
12206       homepage = "https://github.com/tokuhirom/HTTP-Headers-Fast";
12207       license = with lib.licenses; [ artistic1 gpl1Plus ];
12208     };
12209   };
12211   HTTPLite = buildPerlPackage {
12212     pname = "HTTP-Lite";
12213     version = "2.44";
12214     src = fetchurl {
12215       url = "mirror://cpan/authors/id/N/NE/NEILB/HTTP-Lite-2.44.tar.gz";
12216       hash = "sha256-OOQ9eRHPwU46OPA4K2zHptVZMH0jsQnOc6x9JKmz53w=";
12217     };
12218     buildInputs = [ CGI ];
12219     meta = {
12220       description = "Lightweight HTTP implementation";
12221       license = with lib.licenses; [ artistic1 gpl1Plus ];
12222     };
12223   };
12225   HTTPMessage = buildPerlPackage {
12226     pname = "HTTP-Message";
12227     version = "6.45";
12228     src = fetchurl {
12229       url = "mirror://cpan/authors/id/O/OA/OALDERS/HTTP-Message-6.45.tar.gz";
12230       hash = "sha256-AcuEBmEqP3OIQtHpcxOuTYdIcNG41tZjMfFgAJQ9TL4=";
12231     };
12232     buildInputs = [ TestNeeds TryTiny ];
12233     propagatedBuildInputs = [ Clone EncodeLocale HTTPDate IOHTML LWPMediaTypes URI ];
12234     meta = {
12235       description = "HTTP style message (base class)";
12236       homepage = "https://github.com/libwww-perl/HTTP-Message";
12237       license = with lib.licenses; [ artistic1 gpl1Plus ];
12238     };
12239   };
12241   HTTPMultiPartParser = buildPerlPackage {
12242     pname = "HTTP-MultiPartParser";
12243     version = "0.02";
12244     src = fetchurl {
12245       url = "mirror://cpan/authors/id/C/CH/CHANSEN/HTTP-MultiPartParser-0.02.tar.gz";
12246       hash = "sha256-Xt3aFZ9U0W+GjgMkQKwrAk5VqsSJMYcbYmJ/GhbQCxI=";
12247     };
12248     buildInputs = [ TestDeep ];
12249     meta = {
12250       description = "HTTP MultiPart Parser";
12251       license = with lib.licenses; [ artistic1 gpl1Plus ];
12252     };
12253   };
12255   HTTPNegotiate = buildPerlPackage {
12256     pname = "HTTP-Negotiate";
12257     version = "6.01";
12258     src = fetchurl {
12259       url = "mirror://cpan/authors/id/G/GA/GAAS/HTTP-Negotiate-6.01.tar.gz";
12260       hash = "sha256-HHKcHqYxAOh4QFzafWb5rf0+1PHWysrKDukVLfco4BY=";
12261     };
12262     propagatedBuildInputs = [ HTTPMessage ];
12263     meta = {
12264       description = "Choose a variant to serve";
12265       license = with lib.licenses; [ artistic1 gpl1Plus ];
12266     };
12267   };
12269   HTTPParserXS = buildPerlPackage {
12270     pname = "HTTP-Parser-XS";
12271     version = "0.17";
12272     src = fetchurl {
12273       url = "mirror://cpan/authors/id/K/KA/KAZUHO/HTTP-Parser-XS-0.17.tar.gz";
12274       hash = "sha256-eU5oM+MmsQ0kNp+c2/wWZxBe9lkej0HlYaPUGnAnqAk=";
12275     };
12276     meta = {
12277       description = "A fast, primitive HTTP request parser";
12278       license = with lib.licenses; [ artistic1 gpl1Plus ];
12279     };
12280   };
12282   HTTPProxy = buildPerlPackage {
12283     pname = "HTTP-Proxy";
12284     version = "0.304";
12285     src = fetchurl {
12286       url = "mirror://cpan/authors/id/B/BO/BOOK/HTTP-Proxy-0.304.tar.gz";
12287       hash = "sha256-sFKQU07HNiXCGgVl/DUXCJDasWOEPZUzHCksI/UExp0=";
12288     };
12289     propagatedBuildInputs = [ LWP ];
12290     # tests fail because they require network access
12291     doCheck = false;
12292     meta = {
12293       description = "A pure Perl HTTP proxy";
12294       license = with lib.licenses; [ artistic1 gpl1Plus ];
12295     };
12296   };
12298   HTTPRequestAsCGI = buildPerlPackage {
12299     pname = "HTTP-Request-AsCGI";
12300     version = "1.2";
12301     src = fetchurl {
12302       url = "mirror://cpan/authors/id/F/FL/FLORA/HTTP-Request-AsCGI-1.2.tar.gz";
12303       hash = "sha256-lFv7B8bRr1J3P7eEW6YuOnQRGzXL0tXkPvgxnlWsvOo=";
12304     };
12305     propagatedBuildInputs = [ ClassAccessor HTTPMessage ];
12306     meta = {
12307       description = "Set up a CGI environment from an HTTP::Request";
12308       license = with lib.licenses; [ artistic1 gpl1Plus ];
12309     };
12310   };
12312   HTTPResponseEncoding = buildPerlPackage {
12313     pname = "HTTP-Response-Encoding";
12314     version = "0.06";
12315     src = fetchurl {
12316       url = "mirror://cpan/authors/id/D/DA/DANKOGAI/HTTP-Response-Encoding-0.06.tar.gz";
12317       hash = "sha256-EBZ7jiOKaCAEqw16zL6dduri21evB8WuLfqAgHSkqKo=";
12318     };
12319     propagatedBuildInputs = [ HTTPMessage ];
12320     buildInputs = [ LWP ];
12321     meta = {
12322       description = "Adds encoding() to HTTP::Response";
12323       license = with lib.licenses; [ artistic1 gpl1Plus ];
12324     };
12325   };
12327   HTTPServerSimple = buildPerlPackage {
12328     pname = "HTTP-Server-Simple";
12329     version = "0.52";
12330     src = fetchurl {
12331       url = "mirror://cpan/authors/id/B/BP/BPS/HTTP-Server-Simple-0.52.tar.gz";
12332       hash = "sha256-2JOfpPEr1rjAQ1N/0L+WsFWsNoa5zdn6dz3KauZ5y0w=";
12333     };
12334     doCheck = false;
12335     propagatedBuildInputs = [ CGI ];
12336     meta = {
12337       description = "Lightweight HTTP server";
12338       license = with lib.licenses; [ artistic1 gpl1Plus ];
12339     };
12340   };
12342   HTTPServerSimpleAuthen = buildPerlPackage {
12343     pname = "HTTP-Server-Simple-Authen";
12344     version = "0.04";
12345     src = fetchurl {
12346       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/HTTP-Server-Simple-Authen-0.04.tar.gz";
12347       hash = "sha256-Ld3Iq53ImGmAFR5LqDamu/CR9Fzxlb4XaOvbSpk+1Zs=";
12348     };
12349     propagatedBuildInputs = [ AuthenSimple HTTPServerSimple ];
12350     meta = {
12351       description = "Authentication plugin for HTTP::Server::Simple";
12352       license = with lib.licenses; [ artistic1 gpl1Plus ];
12353     };
12354   };
12356   HTTPServerSimpleMason = buildPerlPackage {
12357     pname = "HTTP-Server-Simple-Mason";
12358     version = "0.14";
12359     src = fetchurl {
12360       url = "mirror://cpan/authors/id/J/JE/JESSE/HTTP-Server-Simple-Mason-0.14.tar.gz";
12361       hash = "sha256-t6Sdjm5Vv/Cx8CeNlRaFRmsUMkO2+eWeBx9UcsoqAlo=";
12362     };
12363     propagatedBuildInputs = [ HTMLMason HTTPServerSimple HookLexWrap ];
12364     meta = {
12365       description = "A simple mason server";
12366       license = with lib.licenses; [ artistic1 gpl1Plus ];
12367     };
12368   };
12370   HTTPServerSimplePSGI = buildPerlPackage {
12371     pname = "HTTP-Server-Simple-PSGI";
12372     version = "0.16";
12373     src = fetchurl {
12374       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/HTTP-Server-Simple-PSGI-0.16.tar.gz";
12375       hash = "sha256-X3zLhFMEO5cnhJKnVzKBFuEeA1LyhUooqcY05ukTHbo=";
12376     };
12377     propagatedBuildInputs = [ HTTPServerSimple ];
12378     meta = {
12379       description = "Perl Web Server Gateway Interface Specification";
12380       homepage = "https://github.com/miyagawa/HTTP-Server-Simple-PSGI";
12381       license = with lib.licenses; [ artistic1 gpl1Plus ];
12382     };
12383   };
12385   HTTPTinyCache = buildPerlPackage {
12386     pname = "HTTP-Tiny-Cache";
12387     version = "0.002";
12388     src = fetchurl {
12389       url = "mirror://cpan/authors/id/P/PE/PERLANCAR/HTTP-Tiny-Cache-0.002.tar.gz";
12390       hash = "sha256-c323zxncN4By2Rysdnh/sorNg8DRB85OTrS708kRhiE=";
12391     };
12392     propagatedBuildInputs = [ FileUtilTempdir Logger ];
12393     meta = {
12394       description = "Cache HTTP::Tiny responses";
12395       homepage = "https://metacpan.org/release/HTTP-Tiny-Cache";
12396       license = with lib.licenses; [ artistic1 gpl1Plus ];
12397       maintainers = [ maintainers.sgo ];
12398     };
12399   };
12401   HTTPTinyish = buildPerlPackage {
12402     pname = "HTTP-Tinyish";
12403     version = "0.18";
12404     src = fetchurl {
12405       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/HTTP-Tinyish-0.18.tar.gz";
12406       hash = "sha256-gDgLjTPGv6lrsBBPpqQcJ9zE6cg6SN8frTkJf1/c/eU=";
12407     };
12408     propagatedBuildInputs = [ FileWhich IPCRun3 ];
12409     meta = {
12410       description = "HTTP::Tiny compatible HTTP client wrappers";
12411       homepage = "https://github.com/miyagawa/HTTP-Tinyish";
12412       license = with lib.licenses; [ artistic1 gpl1Plus ];
12413     };
12414   };
12416   iCalParser = buildPerlPackage {
12417     pname = "iCal-Parser";
12418     version = "1.21";
12419     src = fetchurl {
12420       url = "mirror://cpan/authors/id/R/RI/RIXED/iCal-Parser-1.21.tar.gz";
12421       hash = "sha256-DXk5pkSo5nAX7HI509lgTzmGu5pP+Avmj+cpnr/SJww=";
12422     };
12423     propagatedBuildInputs = [ DateTimeFormatICal FreezeThaw IOString TextvFileasData ];
12424     meta = {
12425       description = "Parse iCalendar files into a data structure";
12426       license = with lib.licenses; [ artistic1 gpl1Plus ];
12427     };
12428   };
12430   ImagePNGLibpng = buildPerlPackage {
12431     pname = "Image-PNG-Libpng";
12432     version = "0.57";
12433     src = fetchurl {
12434       url = "mirror://cpan/authors/id/B/BK/BKB/Image-PNG-Libpng-0.56.tar.gz";
12435       hash = "sha256-+vu/6/9CP3u4XvJ6MEH7YpG1AzbHpYIiSlysQzHDx9k=";
12436     };
12437     buildInputs = [ pkgs.libpng ];
12438     meta = {
12439       description = "Perl interface to libpng";
12440       license = with lib.licenses; [ artistic1 gpl1Plus ];
12441       mainProgram = "pnginspect";
12442       broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.ImagePNGLibpng.x86_64-darwin
12443     };
12444   };
12446   Imager = buildPerlPackage {
12447     pname = "Imager";
12448     version = "1.019";
12449     src = fetchurl {
12450       url = "mirror://cpan/authors/id/T/TO/TONYC/Imager-1.019.tar.gz";
12451       hash = "sha256-dNRNcBwfFPxLmE+toelVcmtQTC2LBtJl56hh+llDy0g=";
12452     };
12453     buildInputs = [ pkgs.freetype pkgs.fontconfig pkgs.libjpeg pkgs.libpng ];
12454     makeMakerFlags = [ "--incpath ${pkgs.libjpeg.dev}/include" "--libpath ${pkgs.libjpeg.out}/lib" "--incpath" "${pkgs.libpng.dev}/include" "--libpath" "${pkgs.libpng.out}/lib" ];
12455     meta = {
12456       description = "Perl extension for Generating 24 bit Images";
12457       homepage = "http://imager.perl.org";
12458       license = with lib.licenses; [ artistic1 gpl1Plus ];
12459     };
12460   };
12462   ImagerQRCode = buildPerlPackage {
12463     pname = "Imager-QRCode";
12464     version = "0.035";
12465     src = fetchurl {
12466       url = "mirror://cpan/authors/id/K/KU/KURIHARA/Imager-QRCode-0.035.tar.gz";
12467       hash = "sha256-KoSN66Kes5QsRHCaaFPjGKyrDEaMv+27m6rlR2ADJRM=";
12468     };
12469     propagatedBuildInputs = [ Imager ];
12470     meta = {
12471       description = "Generate QR Code with Imager using libqrencode";
12472       license = with lib.licenses; [ artistic1 gpl1Plus ];
12473       maintainers = with maintainers; [ sgo ];
12474     };
12475   };
12477   ImageInfo = buildPerlPackage {
12478     pname = "Image-Info";
12479     version = "1.44";
12480     src = fetchurl {
12481       url = "mirror://cpan/authors/id/S/SR/SREZIC/Image-Info-1.44.tar.gz";
12482       hash = "sha256-y3/GXdHv/gHrR8HHmlLdFlT0KOOpfbHvI7EmzgFjbw0=";
12483     };
12484     propagatedBuildInputs = [ IOStringy ];
12485     meta = {
12486       description = "Extract meta information from image files";
12487       license = with lib.licenses; [ artistic1 gpl1Plus ];
12488     };
12489   };
12491   ImageSane = buildPerlPackage {
12492     pname = "Image-Sane";
12493     version = "5";
12494     src = fetchurl {
12495       url = "mirror://cpan/authors/id/R/RA/RATCLIFFE/Image-Sane-5.tar.gz";
12496       hash = "sha256-Ipqg6fBJ76dg88L25h2dU5r0PY92S1Cm4DBktHKaNf8=";
12497     };
12498     buildInputs = [ pkgs.sane-backends ExtUtilsDepends ExtUtilsPkgConfig TestRequires TryTiny ];
12499     propagatedBuildInputs = [ ExceptionClass Readonly ];
12500     meta = {
12501       description = "Perl extension for the SANE (Scanner Access Now Easy) Project";
12502       license = with lib.licenses; [ artistic1 gpl1Plus ];
12503     };
12504   };
12506   ImageScale = buildPerlPackage {
12507     pname = "Image-Scale";
12508     version = "0.14";
12509     src = fetchurl {
12510       url = "mirror://cpan/authors/id/A/AG/AGRUNDMA/Image-Scale-0.14.tar.gz";
12511       hash = "sha256-8JxfBmO4dzg2WsKBnhhrkJq+ue2F2DvBXudocslHzfg=";
12512     };
12513     buildInputs = [ pkgs.libpng pkgs.libjpeg TestNoWarnings ];
12514     propagatedBuildInputs = [ pkgs.zlib ];
12515     makeMakerFlags = [ "--with-jpeg-includes=${pkgs.libjpeg.dev}/include" "--with-jpeg-libs=${pkgs.libjpeg.out}/lib" "--with-png-includes=${pkgs.libpng.dev}/include" "--with-png-libs=${pkgs.libpng.out}/lib" ];
12516     meta = {
12517       description = "Fast, high-quality fixed-point image resizing";
12518       license = with lib.licenses; [ gpl2Plus ];
12519     };
12520   };
12522   ImageSize = buildPerlPackage {
12523     pname = "Image-Size";
12524     version = "3.300";
12525     src = fetchurl {
12526       url = "mirror://cpan/authors/id/R/RJ/RJRAY/Image-Size-3.300.tar.gz";
12527       hash = "sha256-U8mx+GUxzeBg7mNwnR/ac8q8DPLVgdKbIrAUeBufAms=";
12528     };
12529     buildInputs = [ ModuleBuild ];
12530     meta = {
12531       description = "A library to extract height/width from images";
12532       homepage = "https://search.cpan.org/dist/Image-Size";
12533       license = with lib.licenses; [ artistic1 gpl1Plus ];
12534       mainProgram = "imgsize";
12535     };
12536   };
12538   ImageOCRTesseract = buildPerlPackage {
12539     pname = "Image-OCR-Tesseract";
12540     version = "1.26";
12541     src = fetchurl {
12542       url = "mirror://cpan/authors/id/L/LE/LEOCHARRE/Image-OCR-Tesseract-1.26.tar.gz";
12543       hash = "sha256-mNkEJmpwYvCcm0b3fE6UUp4f6ZM54/g/2h+SAT8AfOo=";
12544     };
12545     nativeBuildInputs = [ pkgs.which pkgs.makeWrapper pkgs.tesseract pkgs.imagemagick ];
12546     propagatedBuildInputs = [ FileFindRule FileWhich LEOCHARRECLI StringShellQuote ];
12547     postPatch = ''
12548       substituteInPlace lib/Image/OCR/Tesseract.pm \
12549         --replace "which('tesseract')" "\"${pkgs.tesseract}/bin/tesseract\"" \
12550         --replace "which('convert')" "\"${pkgs.imagemagick}/bin/convert"\"
12551     '';
12552     postInstall = ''
12553       wrapProgram $out/bin/ocr --prefix PATH : ${lib.makeBinPath [ pkgs.tesseract pkgs.imagemagick ]}
12554     '';
12555     meta = {
12556       description = "Read an image with tesseract ocr and get output";
12557       license = with lib.licenses; [ artistic1 gpl1Plus ];
12558       mainProgram = "ocr";
12559     };
12560   };
12562   IMAPClient = buildPerlPackage {
12563     pname = "IMAP-Client";
12564     version = "0.13";
12565     src = fetchurl {
12566       url = "mirror://cpan/authors/id/C/CO/CONTEB/IMAP-Client-0.13.tar.gz";
12567       hash = "sha256-inovpVt1qFPEgBQXeDk62sKUts0gfN9UFA9nwS8kypU=";
12568     };
12569     doCheck = false; # nondeterministic
12570     meta = {
12571       description = "Advanced manipulation of IMAP services w/ referral support";
12572       license = with lib.licenses; [ artistic1 gpl1Plus ];
12573     };
12574   };
12576   Importer = buildPerlPackage {
12577     pname = "Importer";
12578     version = "0.026";
12579     src = fetchurl {
12580       url = "mirror://cpan/authors/id/E/EX/EXODIST/Importer-0.026.tar.gz";
12581       hash = "sha256-4I+oThPLmYt6iX/I7Jw0WfzBcWr/Jcw0Pjbvh1iRsO8=";
12582     };
12583     meta = {
12584       description = "Alternative but compatible interface to modules that export symbols";
12585       license = with lib.licenses; [ artistic1 gpl1Plus ];
12586     };
12587   };
12589   ImportInto = buildPerlPackage {
12590     pname = "Import-Into";
12591     version = "1.002005";
12592     src = fetchurl {
12593       url = "mirror://cpan/authors/id/H/HA/HAARG/Import-Into-1.002005.tar.gz";
12594       hash = "sha256-vZ53o/tmK0C0OxjTKAzTUu35+tjZQoPlGBgcwc6fBWc=";
12595     };
12596     propagatedBuildInputs = [ ModuleRuntime ];
12597     meta = {
12598       description = "Import packages into other packages";
12599       license = with lib.licenses; [ artistic1 gpl1Plus ];
12600     };
12601   };
12603   IO = buildPerlPackage {
12604     pname = "IO";
12605     version = "1.51";
12606     src = fetchurl {
12607       url = "mirror://cpan/authors/id/T/TO/TODDR/IO-1.51.tar.gz";
12608       hash = "sha256-VJPqVZmHKM0rfsuCNMWPtdXfJwmNDwet3KIkRNdhbOA=";
12609     };
12610     doCheck = false;
12611     meta = {
12612       description = "Perl core IO modules";
12613       license = with lib.licenses; [ artistic1 gpl1Plus ];
12614     };
12615   };
12617   IOAIO = buildPerlPackage {
12618     pname = "IO-AIO";
12619     version = "4.73";
12620     src = fetchurl {
12621       url = "mirror://cpan/authors/id/M/ML/MLEHMANN/IO-AIO-4.73.tar.gz";
12622       hash = "sha256-mltHx4Ak+rdmPR5a90ob6rRQ19Y7poV+MbP9gobkrFo=";
12623     };
12624     buildInputs = [ CanaryStability ];
12625     propagatedBuildInputs = [ commonsense ];
12626     nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang;
12627     postInstall = lib.optionalString stdenv.isDarwin ''
12628       shortenPerlShebang $out/bin/treescan
12629     '';
12630     meta = {
12631       description = "Asynchronous/Advanced Input/Output";
12632       license = with lib.licenses; [ artistic1 gpl1Plus ];
12633       mainProgram = "treescan";
12634     };
12635   };
12637   IOAll = buildPerlPackage {
12638     pname = "IO-All";
12639     version = "0.87";
12640     src = fetchurl {
12641       url = "mirror://cpan/authors/id/F/FR/FREW/IO-All-0.87.tar.gz";
12642       hash = "sha256-VOIdJQwCKRJ+MLd6NGHhAHeFTsJE8m+2cPG0Re1MTVs=";
12643     };
12644     meta = {
12645       description = "IO::All of it to Graham and Damian!";
12646       homepage = "https://github.com/ingydotnet/io-all-pm";
12647       license = with lib.licenses; [ artistic1 gpl1Plus ];
12648     };
12649   };
12651   IOAsync = buildPerlModule {
12652     pname = "IO-Async";
12653     version = "0.802";
12654     src = fetchurl {
12655       url = "mirror://cpan/authors/id/P/PE/PEVANS/IO-Async-0.802.tar.gz";
12656       hash = "sha256-5YJzFXd2fEfqxDXvKQRmPUp1Cw5oAqSmGJo38Mswhzg";
12657     };
12658     preCheck = "rm t/50resolver.t"; # this test fails with "Temporary failure in name resolution" in sandbox
12659     propagatedBuildInputs = [ Future StructDumb ];
12660     buildInputs = [ TestFatal TestFutureIOImpl TestIdentity TestMetricsAny TestRefcount ];
12661     meta = {
12662       description = "Asynchronous event-driven programming";
12663       license = with lib.licenses; [ artistic1 gpl1Plus ];
12664     };
12665   };
12667   IOAsyncSSL = buildPerlModule {
12668     pname = "IO-Async-SSL";
12669     version = "0.25";
12670     src = fetchurl {
12671       url = "mirror://cpan/authors/id/P/PE/PEVANS/IO-Async-SSL-0.25.tar.gz";
12672       hash = "sha256-Te9IXbHv9OE5tLWRIgLA/WHDrtLOw1vVq4v3u9g/WnU=";
12673     };
12674     buildInputs = [ TestIdentity ];
12675     propagatedBuildInputs = [ Future IOAsync IOSocketSSL ];
12676     meta = {
12677       description = "Use SSL/TLS with IO::Async";
12678       license = with lib.licenses; [ artistic1 gpl1Plus ];
12679       maintainers = [ maintainers.zakame ];
12680     };
12681   };
12683   IOCapture = buildPerlPackage {
12684     pname = "IO-Capture";
12685     version = "0.05";
12686     src = fetchurl {
12687       url = "mirror://cpan/authors/id/R/RE/REYNOLDS/IO-Capture-0.05.tar.gz";
12688       hash = "sha256-wsFaJUynT7jFfSXXtsvK/3ejtPtWlUI/H4C7Qjq//qk=";
12689     };
12690     meta = {
12691       description = "Abstract Base Class to build modules to capture output";
12692       license = with lib.licenses; [ artistic1 gpl1Plus ];
12693     };
12694   };
12696   IOCaptureOutput = buildPerlPackage {
12697     pname = "IO-CaptureOutput";
12698     version = "1.1105";
12699     src = fetchurl {
12700       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/IO-CaptureOutput-1.1105.tar.gz";
12701       hash = "sha256-rpkAn8oSc4APFp7LgvTtHMbHZ5XxVr7lwAkwBdVy9Ic=";
12702     };
12703     meta = {
12704       description = "(DEPRECATED) capture STDOUT and STDERR from Perl code, subprocesses or XS";
12705       homepage = "https://github.com/dagolden/IO-CaptureOutput";
12706       license = with lib.licenses; [ artistic1 gpl1Plus ];
12707     };
12708   };
12710   IOCompress = buildPerlPackage {
12711     pname = "IO-Compress";
12712     version = "2.206";
12713     src = fetchurl {
12714       url = "mirror://cpan/authors/id/P/PM/PMQS/IO-Compress-2.206.tar.gz";
12715       hash = "sha256-fTBiuaSU91fo0GFPIg2D8icxu9oa6198/w5yqD9DPTU=";
12716     };
12717     propagatedBuildInputs = [ CompressRawBzip2 CompressRawZlib ];
12718     # Same as CompressRawZlib
12719     doCheck = false && !stdenv.isDarwin;
12720     meta = {
12721       description = "IO Interface to compressed data files/buffers";
12722       homepage = "https://github.com/pmqs/IO-Compress";
12723       license = with lib.licenses; [ artistic1 gpl1Plus ];
12724       mainProgram = "streamzip";
12725     };
12726   };
12728   IODigest = buildPerlPackage {
12729     pname = "IO-Digest";
12730     version = "0.11";
12731     src = fetchurl {
12732       url = "mirror://cpan/authors/id/C/CL/CLKAO/IO-Digest-0.11.tar.gz";
12733       hash = "sha256-j/z4Wn9iE+XpQUCtzCsXntAkmOrchDCUV+kE3sk/f5I=";
12734     };
12735     propagatedBuildInputs = [ PerlIOviadynamic ];
12736     meta = {
12737       description = "Calculate digests while reading or writing";
12738       license = with lib.licenses; [ artistic1 gpl1Plus ];
12739     };
12740   };
12742   IOHTML = buildPerlPackage {
12743     pname = "IO-HTML";
12744     version = "1.004";
12745     src = fetchurl {
12746       url = "mirror://cpan/authors/id/C/CJ/CJM/IO-HTML-1.004.tar.gz";
12747       hash = "sha256-yHst9ZRju/LDlZZ3PftcA73g9+EFGvM5+WP1jBy9i/U=";
12748     };
12749     meta = {
12750       description = "Open an HTML file with automatic charset detection";
12751       license = with lib.licenses; [ artistic1 gpl1Plus ];
12752     };
12753   };
12755   IOHandleUtil = buildPerlModule {
12756     pname = "IO-Handle-Util";
12757     version = "0.02";
12758     src = fetchurl {
12759       url = "mirror://cpan/authors/id/E/ET/ETHER/IO-Handle-Util-0.02.tar.gz";
12760       hash = "sha256-jblmqRPaxORkIwcCqiIr84r+ISGT5ja8DzzGUbrezO4=";
12761     };
12762     propagatedBuildInputs = [ IOString SubExporter asa ];
12763     buildInputs = [ ModuleBuildTiny TestSimple13 ];
12764     meta = {
12765       description = "Functions for working with IO::Handle like objects";
12766       homepage = "https://github.com/karenetheridge/IO-Handle-Util";
12767       license = with lib.licenses; [ artistic1 gpl1Plus ];
12768     };
12769   };
12771   IOInterface = buildPerlModule {
12772     pname = "IO-Interface";
12773     version = "1.09";
12774     src = fetchurl {
12775       url = "mirror://cpan/authors/id/L/LD/LDS/IO-Interface-1.09.tar.gz";
12776       hash = "sha256-5j6BxS6x4OYOwtmD9VUtJJPhFxeZJclnV/I8S9n6cTo=";
12777     };
12778     meta = {
12779       description = "Access and modify network interface card configuration";
12780       license = with lib.licenses; [ artistic1 gpl1Plus ];
12781     };
12782   };
12784   IOInteractive = buildPerlPackage {
12785     pname = "IO-Interactive";
12786     version = "1.025";
12787     src = fetchurl {
12788       url = "mirror://cpan/authors/id/B/BD/BDFOY/IO-Interactive-1.025.tar.gz";
12789       hash = "sha256-yh7G+6t6AnXdLpz2e3yw4ARYY/MVMyEMfcVEYxtqqqc=";
12790     };
12791     meta = {
12792       description = "Utilities for interactive I/O";
12793       homepage = "https://github.com/briandfoy/io-interactive";
12794       license = with lib.licenses; [ artistic2 ];
12795     };
12796   };
12798   IOInteractiveTiny = buildPerlPackage {
12799     pname = "IO-Interactive-Tiny";
12800     version = "0.2";
12801     src = fetchurl {
12802       url = "mirror://cpan/authors/id/D/DM/DMUEY/IO-Interactive-Tiny-0.2.tar.gz";
12803       hash = "sha256-RcBpZQXH5DR4RfXNJRK3sbx4+85MvtK1gAgoP8lepfk=";
12804     };
12805     meta = {
12806       description = "Is_interactive() without large deps";
12807       license = with lib.licenses; [ artistic2 ];
12808     };
12809   };
12811   IOLockedFile = buildPerlPackage {
12812     pname = "IO-LockedFile";
12813     version = "0.23";
12814     src = fetchurl {
12815       url = "mirror://cpan/authors/id/R/RA/RANI/IO-LockedFile-0.23.tar.gz";
12816       hash = "sha256-sdt+amvxvh4GFabstc6+eLAOKHsSfVhW0/FrNd1H+LU=";
12817     };
12818     meta = {
12819       description = "Supply object methods for locking files";
12820       license = with lib.licenses; [ artistic1 gpl1Plus ];
12821     };
12822   };
12824   IOMultiplex = buildPerlPackage {
12825     pname = "IO-Multiplex";
12826     version = "1.16";
12827     src = fetchurl {
12828       url = "mirror://cpan/authors/id/B/BB/BBB/IO-Multiplex-1.16.tar.gz";
12829       hash = "sha256-dNIsRLWtLnGQ4nhuihfXS79M74m00RV7ozWYtaJyDa0=";
12830     };
12831     meta = {
12832       description = "Supply object methods for locking files";
12833       license = with lib.licenses; [ artistic1 gpl1Plus ];
12834     };
12835   };
12837   IOPager = buildPerlPackage {
12838     version = "2.10";
12839     pname = "IO-Pager";
12840     src = fetchurl {
12841       url = "mirror://cpan/authors/id/J/JP/JPIERCE/IO-Pager-2.10.tgz";
12842       hash = "sha256-vLTYwtKAyANLglkcwLnrZ6AE+QzpqgWXn8YHEwessZU=";
12843     };
12844     propagatedBuildInputs = [ pkgs.more FileWhich TermReadKey ]; # `more` used in tests
12845     meta = {
12846       description = "Select a pager (possibly perl-based) & pipe it text if a TTY";
12847       license = with lib.licenses; [ artistic1 gpl1Plus ];
12848       mainProgram = "tp";
12849     };
12850   };
12852   IOPty = buildPerlModule {
12853     pname = "IO-Pty";
12854     version = "1.16";
12855     src = fetchurl {
12856       url = "mirror://cpan/authors/id/T/TO/TODDR/IO-Tty-1.16.tar.gz";
12857       hash = "sha256-jxoJwHBzitxpXfkD8uf3QwjdjZkbkUwLw5Cg5gISlN0=";
12858     };
12859     buildPhase = "make";
12860     checkPhase = "make test";
12861     installPhase = "make install";
12862     meta = {
12863       homepage = "https://github.com/toddr/IO-Tty";
12864       description = "Pseudo TTY object class";
12865       license = with lib.licenses; [ artistic1 gpl1Plus ];
12866     };
12867   };
12869   IOPrompt = buildPerlModule {
12870     pname = "IO-Prompt";
12871     version = "0.997004";
12872     src = fetchurl {
12873       url = "mirror://cpan/authors/id/D/DC/DCONWAY/IO-Prompt-0.997004.tar.gz";
12874       hash = "sha256-8XuzBe5qyLWyA+bYJuuUDE8/bW9L/nGcOzoiX0b1hhU=";
12875     };
12876     propagatedBuildInputs = [ TermReadKey Want ];
12877     doCheck = false; # needs access to /dev/tty
12878     meta = {
12879       description = "Interactively prompt for user input";
12880       license = with lib.licenses; [ artistic1 gpl1Plus ];
12881     };
12882   };
12884   IOSessionData = buildPerlPackage {
12885     pname = "IO-SessionData";
12886     version = "1.03";
12887     src = fetchurl {
12888       url = "mirror://cpan/authors/id/P/PH/PHRED/IO-SessionData-1.03.tar.gz";
12889       hash = "sha256-ZKRxKj7bs/0QIw2ylsKcjGbwZq37wMPfakglj+85Ld0=";
12890     };
12891     outputs = [ "out" "dev" ]; # no "devdoc"
12892     meta = {
12893       description = "Supporting module for SOAP::Lite";
12894       license = with lib.licenses; [ artistic1 gpl1Plus ];
12895     };
12896   };
12898   IOSocketINET6 = buildPerlModule {
12899     pname = "IO-Socket-INET6";
12900     version = "2.73";
12901     src = fetchurl {
12902       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/IO-Socket-INET6-2.73.tar.gz";
12903       hash = "sha256-ttp0aFMlPVtKxDGRtPaaRxlZXuE6fKZ2qAVM825tFrs=";
12904     };
12905     propagatedBuildInputs = [ Socket6 ];
12906     doCheck = false;
12907     meta = {
12908       description = "[DEPRECATED] Object interface for AF_INET/AF_INET6 domain sockets";
12909       license = with lib.licenses; [ artistic1 gpl1Plus ];
12910     };
12911   };
12913   IOSocketSSL = buildPerlPackage {
12914     pname = "IO-Socket-SSL";
12915     version = "2.083";
12916     src = fetchurl {
12917       url = "mirror://cpan/authors/id/S/SU/SULLR/IO-Socket-SSL-2.083.tar.gz";
12918       hash = "sha256-kE7yh2VECpfYqaDfWX+MPX88sKBT0bCCwQvtA7yAIGk=";
12919     };
12920     propagatedBuildInputs = [ MozillaCA NetSSLeay ];
12921     # Fix path to default certificate store.
12922     postPatch = ''
12923       substituteInPlace lib/IO/Socket/SSL.pm \
12924         --replace "\$openssldir/cert.pem" "/etc/ssl/certs/ca-certificates.crt"
12925     '';
12926     doCheck = false; # tries to connect to facebook.com etc.
12927     meta = {
12928       description = "Nearly transparent SSL encapsulation for IO::Socket::INET";
12929       homepage = "https://github.com/noxxi/p5-io-socket-ssl";
12930       license = with lib.licenses; [ artistic1 gpl1Plus ];
12931     };
12932   };
12934   IOSocketTimeout = buildPerlModule {
12935     pname = "IO-Socket-Timeout";
12936     version = "0.32";
12937     src = fetchurl {
12938       url = "mirror://cpan/authors/id/D/DA/DAMS/IO-Socket-Timeout-0.32.tar.gz";
12939       hash = "sha256-7fkV1sxmvuQ1A6ptwrNzNm846v9wFYIYPa0Qy4rfKXI=";
12940     };
12941     buildInputs = [ ModuleBuildTiny TestSharedFork TestTCP ];
12942     propagatedBuildInputs = [ PerlIOviaTimeout ];
12943     meta = {
12944       description = "IO::Socket with read/write timeout";
12945       license = with lib.licenses; [ artistic1 gpl1Plus ];
12946     };
12947   };
12949   IOString = buildPerlPackage {
12950     pname = "IO-String";
12951     version = "1.08";
12952     src = fetchurl {
12953       url = "mirror://cpan/authors/id/G/GA/GAAS/IO-String-1.08.tar.gz";
12954       hash = "sha256-Kj9K2EQtkHB4DljvQ3ItGdHuIagDv3yCBod6EEgt5aA=";
12955     };
12956     meta = {
12957       description = "Emulate file interface for in-core strings";
12958       license = with lib.licenses; [ artistic1 gpl1Plus ];
12959     };
12960   };
12962   IOStringy = buildPerlPackage {
12963     pname = "IO-Stringy";
12964     version = "2.113";
12965     src = fetchurl {
12966       url = "mirror://cpan/authors/id/C/CA/CAPOEIRAB/IO-Stringy-2.113.tar.gz";
12967       hash = "sha256-USIPyvn2amObadJR17B1e/QgL0+d69Rb3TQaaspi/k4=";
12968     };
12969     meta = {
12970       description = "I/O on in-core objects like strings and arrays";
12971       license = with lib.licenses; [ artistic1 gpl1Plus ];
12972     };
12973   };
12975   IOStty = buildPerlModule {
12976     pname = "IO-Stty";
12977     version = "0.04";
12978     src = fetchurl {
12979       url = "mirror://cpan/authors/id/T/TO/TODDR/IO-Stty-0.04.tar.gz";
12980       hash = "sha256-XJUJ8ahpPYKH+gE97wv4eqZM2ScThGHvjetVUDxmUcI=";
12981     };
12982     buildPhase = "make";
12983     checkPhase = "make test";
12984     installPhase = "make install";
12985     meta = {
12986       description = "Change and print terminal line settings";
12987       homepage = "https://wiki.github.com/toddr/IO-Stty";
12988       license = with lib.licenses; [ artistic1 gpl1Plus ];
12989     };
12990   };
12992   IOTee = buildPerlPackage {
12993     pname = "IO-Tee";
12994     version = "0.66";
12995     src = fetchurl {
12996       url = "mirror://cpan/authors/id/N/NE/NEILB/IO-Tee-0.66.tar.gz";
12997       hash = "sha256-LZznIGUW+cMIY6NnqhwrmzVwLjabCrqhX5n7LMCFUuA=";
12998     };
12999     meta = {
13000       description = "Multiplex output to multiple output handles";
13001       license = with lib.licenses; [ artistic1 gpl1Plus ];
13002     };
13003   };
13005   IOTieCombine = buildPerlPackage {
13006     pname = "IO-TieCombine";
13007     version = "1.005";
13008     src = fetchurl {
13009       url = "mirror://cpan/authors/id/R/RJ/RJBS/IO-TieCombine-1.005.tar.gz";
13010       hash = "sha256-QC1NuDALPScWMvSZXgreMp2JKAp+R/K634s4r25Vaa8=";
13011     };
13012     meta = {
13013       description = "Produce tied (and other) separate but combined variables";
13014       homepage = "https://github.com/rjbs/IO-TieCombine";
13015       license = with lib.licenses; [ artistic1 gpl1Plus ];
13016     };
13017   };
13019   IOTty = buildPerlPackage {
13020     pname = "IO-Tty";
13021     version = "1.17";
13022     src = fetchurl {
13023       url = "mirror://cpan/authors/id/T/TO/TODDR/IO-Tty-1.17.tar.gz";
13024       hash = "sha256-pfGoMCC8W13WwbVw9Ix1RuCo9/rBCgaHQLA5Ja2eFOg=";
13025     };
13026     patches = [ ../development/perl-modules/IO-Tty-fix-makefile.patch ];
13027     doCheck = !stdenv.isDarwin;  # openpty fails in the sandbox
13028     meta = {
13029       description = "Low-level allocate a pseudo-Tty, import constants";
13030       license = with lib.licenses; [ artistic1 gpl1Plus ];
13031     };
13032   };
13034   IPCConcurrencyLimit = buildPerlPackage {
13035     pname = "IPC-ConcurrencyLimit";
13036     version = "0.17";
13037     src = fetchurl {
13038       url = "mirror://cpan/authors/id/M/MA/MATTK/IPC-ConcurrencyLimit-0.17.tar.gz";
13039       hash = "sha256-Lk11vlLpD8YFg31ajp+yacCofdPTYfMBLA/5Sl+9z+8=";
13040     };
13041     buildInputs = [ ExtUtilsMakeMaker ];
13042     propagatedBuildInputs = [ FilePath IO ];
13043     meta = {
13044       description = "Lock-based limits on cooperative multi-processing";
13045       license = with lib.licenses; [ artistic1 gpl1Plus ];
13046     };
13047   };
13049   IPCountry = buildPerlPackage {
13050     pname = "IP-Country";
13051     version = "2.28";
13052     src = fetchurl {
13053       url = "mirror://cpan/authors/id/N/NW/NWETTERS/IP-Country-2.28.tar.gz";
13054       hash = "sha256-iNuDOlqyLtBstT1vIFcl47U3GyVFlgU3OIhekfoQX3U=";
13055     };
13056     propagatedBuildInputs = [ GeographyCountries ];
13057     meta = {
13058       description = "Fast lookup of country codes from IP addresses";
13059       license = with lib.licenses; [ mit ];
13060       mainProgram = "ip2cc";
13061     };
13062   };
13064   GeographyCountries = buildPerlPackage {
13065     pname = "Geography-Countries";
13066     version = "2009041301";
13067     src = fetchurl {
13068       url = "mirror://cpan/authors/id/A/AB/ABIGAIL/Geography-Countries-2009041301.tar.gz";
13069       hash = "sha256-SMQuQOgoG6fJgXQ6hUxI5t7y1R6wkl6myW4lx0SX8g8=";
13070     };
13071     meta = {
13072       description = "2-letter, 3-letter, and numerical codes for countries";
13073       license = with lib.licenses; [ mit ];
13074     };
13075   };
13078   IPCRun = buildPerlPackage {
13079     pname = "IPC-Run";
13080     version = "20231003.0";
13081     src = fetchurl {
13082       url = "mirror://cpan/authors/id/T/TO/TODDR/IPC-Run-20231003.0.tar.gz";
13083       hash = "sha256-6yW731kT0pF5fvG/6ZjxUTC0VdPtAqrN5oVvCyXk/lc=";
13084     };
13085     doCheck = false; /* attempts a network connection to localhost */
13086     propagatedBuildInputs = [ IOTty ];
13087     buildInputs = [ Readonly ];
13088     meta = {
13089       description = "System() and background procs w/ piping, redirs, ptys (Unix, Win32)";
13090       license = with lib.licenses; [ artistic1 gpl1Plus ];
13091     };
13092   };
13094   IPCRun3 = buildPerlPackage {
13095     pname = "IPC-Run3";
13096     version = "0.048";
13097     src = fetchurl {
13098       url = "mirror://cpan/authors/id/R/RJ/RJBS/IPC-Run3-0.048.tar.gz";
13099       hash = "sha256-PYHDzBtc/2nMqTYeLG443wNSJRrntB4v8/68hQ5GNWU=";
13100     };
13101     meta = {
13102       description = "Run a subprocess with input/output redirection";
13103       license = with lib.licenses; [ artistic1 gpl1Plus bsd3 ];
13104     };
13105   };
13107   IPCShareLite = buildPerlPackage {
13108     pname = "IPC-ShareLite";
13109     version = "0.17";
13110     src = fetchurl {
13111       url = "mirror://cpan/authors/id/A/AN/ANDYA/IPC-ShareLite-0.17.tar.gz";
13112       hash = "sha256-FNQGuR2pbWUh0NGoLSKjBidHZSJrhrClbn/93Plq578=";
13113     };
13114     meta = {
13115       description = "Lightweight interface to shared memory";
13116       license = with lib.licenses; [ artistic1 gpl1Plus ];
13117     };
13118   };
13120   IPCSystemSimple = buildPerlPackage {
13121     pname = "IPC-System-Simple";
13122     version = "1.30";
13123     src = fetchurl {
13124       url = "mirror://cpan/authors/id/J/JK/JKEENAN/IPC-System-Simple-1.30.tar.gz";
13125       hash = "sha256-Iub1IitQXuUTBY/co1q3oeq4BTm5jlykqSOnCorpup4=";
13126     };
13127     meta = {
13128       description = "Run commands simply, with detailed diagnostics";
13129       homepage = "http://thenceforward.net/perl/modules/IPC-System-Simple";
13130       license = with lib.licenses; [ artistic1 gpl1Plus ];
13131     };
13132   };
13134   IPCSysV = buildPerlPackage {
13135     pname = "IPC-SysV";
13136     version = "2.09";
13137     src = fetchurl {
13138       url = "mirror://cpan/authors/id/M/MH/MHX/IPC-SysV-2.09.tar.gz";
13139       hash = "sha256-GJdUHHTVSP0QB+tsB/NBnTx1ddgFamK1ulJwohZtLb0=";
13140     };
13141     meta = {
13142       description = "System V IPC constants and system calls";
13143       license = with lib.licenses; [ artistic1 gpl1Plus ];
13144     };
13145   };
13147   IRCUtils = buildPerlPackage {
13148     pname = "IRC-Utils";
13149     version = "0.12";
13150     src = fetchurl {
13151       url = "mirror://cpan/authors/id/H/HI/HINRIK/IRC-Utils-0.12.tar.gz";
13152       hash = "sha256-x9YxHrbHnpg4M8nmtOjUJtB6mHTSD0vGQbMTuZybyKA=";
13153     };
13154     meta = {
13155       description = "Common utilities for IRC-related tasks";
13156       homepage = "https://metacpan.org/release/IRC-Utils";
13157       license = with lib.licenses; [ artistic1 gpl1Plus ];
13158       maintainers = with maintainers; [ sgo ];
13159     };
13160   };
13162   ImageExifTool = buildPerlPackage rec {
13163     pname = "Image-ExifTool";
13164     version = "12.68";
13166     src = fetchurl {
13167       url = "https://exiftool.org/Image-ExifTool-${version}.tar.gz";
13168       hash = "sha256-+GM3WffmDSvDCtGcSCCw6/pqfQic9Di3Umg/i22AOYc=";
13169     };
13171     nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang;
13172     postInstall = lib.optionalString stdenv.isDarwin ''
13173       shortenPerlShebang $out/bin/exiftool
13174     '';
13176     meta = {
13177       description = "A tool to read, write and edit EXIF meta information";
13178       longDescription = ''
13179         ExifTool is a platform-independent Perl library plus a command-line
13180         application for reading, writing and editing meta information in a wide
13181         variety of files. ExifTool supports many different metadata formats
13182         including EXIF, GPS, IPTC, XMP, JFIF, GeoTIFF, ICC Profile, Photoshop
13183         IRB, FlashPix, AFCP and ID3, as well as the maker notes of many digital
13184         cameras by Canon, Casio, DJI, FLIR, FujiFilm, GE, GoPro, HP,
13185         JVC/Victor, Kodak, Leaf, Minolta/Konica-Minolta, Motorola, Nikon,
13186         Nintendo, Olympus/Epson, Panasonic/Leica, Pentax/Asahi, Phase One,
13187         Reconyx, Ricoh, Samsung, Sanyo, Sigma/Foveon and Sony.
13188       '';
13189       homepage = "https://exiftool.org/";
13190       changelog = "https://exiftool.org/history.html";
13191       license = with lib.licenses; [ gpl1Plus /* or */ artistic2 ];
13192       maintainers = with maintainers; [ kiloreux anthonyroussel ];
13193       mainProgram = "exiftool";
13194     };
13195   };
13197   Inline = buildPerlPackage {
13198     pname = "Inline";
13199     version = "0.86";
13200     src = fetchurl {
13201       url = "mirror://cpan/authors/id/I/IN/INGY/Inline-0.86.tar.gz";
13202       hash = "sha256-UQp94tARsNuAsIdOjA9zkAEJkQAK4TXP90dN8ebVHjo=";
13203     };
13204     buildInputs = [ TestWarn ];
13205     meta = {
13206       description = "Write Perl Subroutines in Other Programming Languages";
13207       longDescription = ''
13208         The Inline module allows you to put source code from other
13209         programming languages directly "inline" in a Perl script or
13210         module. The code is automatically compiled as needed, and then loaded
13211         for immediate access from Perl.
13212       '';
13213       homepage = "https://github.com/ingydotnet/inline-pm";
13214       license = with lib.licenses; [ artistic1 gpl1Plus ];
13215     };
13216   };
13218   InlineC = buildPerlPackage {
13219     pname = "Inline-C";
13220     version = "0.82";
13221     src = fetchurl {
13222       url = "mirror://cpan/authors/id/E/ET/ETJ/Inline-C-0.82.tar.gz";
13223       hash = "sha256-EPvPHhWNHI134d2TTjeRZbEmpFwTZFrQvp3AfRUd0Mw=";
13224     };
13225     buildInputs = [ FileCopyRecursive TestWarn YAMLLibYAML ];
13226     propagatedBuildInputs = [ Inline ParseRecDescent Pegex ];
13227     postPatch = ''
13228       # this test will fail with chroot builds
13229       rm -f t/08taint.t
13230       rm -f t/28autowrap.t
13231     '';
13232     meta = {
13233       description = "C Language Support for Inline";
13234       homepage = "https://github.com/ingydotnet/inline-c-pm";
13235       license = with lib.licenses; [ artistic1 gpl1Plus ];
13236     };
13237   };
13239   InlineJava = buildPerlPackage {
13240     pname = "Inline-Java";
13241     version = "0.67";
13243     src = fetchurl {
13244       url = "mirror://cpan/authors/id/E/ET/ETJ/Inline-Java-0.67.tar.gz";
13245       hash = "sha256-9YVLMcvOFjwz4mJN0jFODA2X4JRDcbcYjlkBuj9vpMk=";
13246     };
13248     buildInputs = [ FileWhich ];
13249     propagatedBuildInputs = [ Inline ];
13251     # TODO: upgrade https://github.com/NixOS/nixpkgs/pull/89731
13252     makeMakerFlags = [ "J2SDK=${pkgs.jdk8}" ];
13254     # FIXME: Apparently tests want to access the network.
13255     doCheck = false;
13257     meta = {
13258       description = "Write Perl classes in Java";
13259       longDescription = ''
13260         The Inline::Java module allows you to put Java source code directly
13261         "inline" in a Perl script or module.  A Java compiler is launched and
13262         the Java code is compiled.  Then Perl asks the Java classes what
13263         public methods have been defined.  These classes and methods are
13264         available to the Perl program as if they had been written in Perl.
13265       '';
13266       license = with lib.licenses; [ artistic2 ];
13267       broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.InlineJava.x86_64-darwin
13268     };
13269   };
13271   IPCSignal = buildPerlPackage {
13272     pname = "IPC-Signal";
13273     version = "1.00";
13274     src = fetchurl {
13275       url = "mirror://cpan/authors/id/R/RO/ROSCH/IPC-Signal-1.00.tar.gz";
13276       hash = "sha256-fCH5yMLQwPDw9G533nw9h53VYmaN3wUlh1w4zvIHb9A=";
13277     };
13278     meta = {
13279       description = "Utility functions dealing with signals";
13280       license = with lib.licenses; [ artistic1 gpl1Plus ];
13281     };
13282   };
13284   JavaScriptMinifierXS = buildPerlPackage {
13285     pname = "JavaScript-Minifier-XS";
13286     version = "0.15";
13287     src = fetchurl {
13288       url = "mirror://cpan/authors/id/G/GT/GTERMARS/JavaScript-Minifier-XS-0.15.tar.gz";
13289       hash = "sha256-XZsDT1jwtv9bZGR708WpzgWypw7e4zn7wxc67nR8wFA=";
13290     };
13291     buildInputs = [ TestDiagINC ];
13292     perlPreHook = lib.optionalString (stdenv.isi686 || stdenv.isDarwin) "export LD=$CC";
13293     meta = {
13294       description = "XS based JavaScript minifier";
13295       homepage = "https://metacpan.org/release/JavaScript-Minifier-XS";
13296       license = with lib.licenses; [ artistic1 gpl1Plus ];
13297     };
13298   };
13300   JavaScriptValueEscape = buildPerlModule {
13301     pname = "JavaScript-Value-Escape";
13302     version = "0.07";
13303     src = fetchurl {
13304       url = "mirror://cpan/authors/id/K/KA/KAZEBURO/JavaScript-Value-Escape-0.07.tar.gz";
13305       hash = "sha256-msvaNwjt4R9r6uXxEvGIw6kCOk0myOzYmqgru2kxo9w=";
13306     };
13307     meta = {
13308       description = "Avoid XSS with JavaScript value interpolation";
13309       homepage = "https://github.com/kazeburo/JavaScript-Value-Escape";
13310       license = with lib.licenses; [ artistic1 gpl1Plus ];
13311     };
13312   };
13314   JSON = buildPerlPackage {
13315     pname = "JSON";
13316     version = "4.10";
13317     src = fetchurl {
13318       url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/JSON-4.10.tar.gz";
13319       hash = "sha256-34tRQ9mn3pnEe1XxoXC9H2n3EZNcGGptwKtW3QV1jjU=";
13320     };
13321     # Do not abort cross-compilation on failure to load native JSON module into host perl
13322     preConfigure = lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
13323       substituteInPlace Makefile.PL --replace "exit 0;" ""
13324     '';
13325     buildInputs = [ TestPod ];
13326     meta = {
13327       description = "JSON (JavaScript Object Notation) encoder/decoder";
13328       license = with lib.licenses; [ artistic1 gpl1Plus ];
13329     };
13330   };
13332   JSONAny = buildPerlPackage {
13333     pname = "JSON-Any";
13334     version = "1.40";
13335     src = fetchurl {
13336       url = "mirror://cpan/authors/id/E/ET/ETHER/JSON-Any-1.40.tar.gz";
13337       hash = "sha256-CDJWJVpICU/ZrBI54P6ooQojg6nNHvSxxyZO3htEAKs=";
13338     };
13339     buildInputs = [ TestFatal TestNeeds TestWarnings TestWithoutModule ];
13340     meta = {
13341       description = "(DEPRECATED) Wrapper Class for the various JSON classes";
13342       homepage = "https://github.com/karenetheridge/JSON-Any";
13343       license = with lib.licenses; [ artistic1 gpl1Plus ];
13344     };
13345   };
13347   JSONCreate = buildPerlPackage {
13348     pname = "JSON-Create";
13349     version = "0.35";
13350     src = fetchurl {
13351       url = "mirror://cpan/authors/id/B/BK/BKB/JSON-Create-0.35.tar.gz";
13352       hash = "sha256-X67+DYM7gTJWiGUwjzI5082qG4oezJtWJNzx774QaD4=";
13353     };
13354     propagatedBuildInputs = [ JSONParse UnicodeUTF8 ];
13355     meta = {
13356       description = "Create JSON";
13357       license = with lib.licenses; [ artistic1 gpl1Plus ];
13358     };
13359   };
13361   JSONMaybeXS = buildPerlPackage {
13362     pname = "JSON-MaybeXS";
13363     version = "1.004005";
13364     src = fetchurl {
13365       url = "mirror://cpan/authors/id/E/ET/ETHER/JSON-MaybeXS-1.004005.tar.gz";
13366       hash = "sha256-9ba8GfV55mtymfh0i4rD4XGTbcTn/LcqiiV6m9SCozE=";
13367     };
13368     buildInputs = [ TestNeeds ];
13369     meta = {
13370       description = "Use Cpanel::JSON::XS with a fallback to JSON::XS and JSON::PP";
13371       license = with lib.licenses; [ artistic1 gpl1Plus ];
13372     };
13373   };
13375   JSONPP = buildPerlPackage {
13376     pname = "JSON-PP";
13377     version = "4.16";
13378     src = fetchurl {
13379       url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/JSON-PP-4.16.tar.gz";
13380       hash = "sha256-i8LxYrr8QmRcSJkFrXJUDw08KEs2DJYpkJUYPDDMl4k=";
13381     };
13382     meta = {
13383       description = "JSON::XS compatible pure-Perl module";
13384       license = with lib.licenses; [ artistic1 gpl1Plus ];
13385       mainProgram = "json_pp";
13386     };
13387   };
13389   JSONPPCompat5006 = buildPerlPackage {
13390     pname = "JSON-PP-Compat5006";
13391     version = "1.09";
13392     src = fetchurl {
13393       url = "mirror://cpan/authors/id/M/MA/MAKAMAKA/JSON-PP-Compat5006-1.09.tar.gz";
13394       hash = "sha256-GXAw31JjX5u+Ja8QdC7qW9dJcUcxGMETEfyry2LjcWo=";
13395     };
13396     meta = {
13397       description = "Helper module in using JSON::PP in Perl 5.6";
13398       license = with lib.licenses; [ artistic1 gpl1Plus ];
13399     };
13400   };
13402   JSONParse = buildPerlPackage {
13403     pname = "JSON-Parse";
13404     version = "0.62";
13405     src = fetchurl {
13406       url = "mirror://cpan/authors/id/B/BK/BKB/JSON-Parse-0.62.tar.gz";
13407       hash = "sha256-YnMYD5OSSXQB3dbYIHBvWqhsG+iIkd1qq02Qa1z/Ztk=";
13408     };
13409     meta = {
13410       description = "Parse JSON";
13411       license = with lib.licenses; [ artistic1 gpl1Plus ];
13412       mainProgram = "validjson";
13413     };
13414   };
13416   JSONValidator = buildPerlPackage {
13417     pname = "JSON-Validator";
13418     version = "5.14";
13419     src = fetchurl {
13420       url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/JSON-Validator-5.14.tar.gz";
13421       hash = "sha256-YISl1AdeQhqTj/su6XuFBPqjXoZtD3tbWBETr17ijhs=";
13422     };
13423     buildInputs = [ TestDeep ];
13424     propagatedBuildInputs = [ Mojolicious YAMLLibYAML ];
13425     meta = {
13426       description = "Validate data against a JSON schema";
13427       homepage = "https://github.com/mojolicious/json-validator";
13428       license = with lib.licenses; [ artistic2 ];
13429       maintainers = [ maintainers.sgo ];
13430     };
13431   };
13433   JSONWebToken = buildPerlModule {
13434     pname = "JSON-WebToken";
13435     version = "0.10";
13436     src = fetchurl {
13437       url = "mirror://cpan/authors/id/X/XA/XAICRON/JSON-WebToken-0.10.tar.gz";
13438       hash = "sha256-d8GCqYUo8XFNgq/FSNWztNyT5nBpEou5uUE/JM8HJIs=";
13439     };
13440     buildInputs = [ TestMockGuard TestRequires ];
13441     propagatedBuildInputs = [ JSON ModuleRuntime ];
13442     meta = {
13443       description = "JSON Web Token (JWT) implementation";
13444       homepage = "https://github.com/xaicron/p5-JSON-WebToken";
13445       license = with lib.licenses; [ artistic1 gpl1Plus ];
13446     };
13447   };
13449   JSONXS = buildPerlPackage {
13450     pname = "JSON-XS";
13451     version = "4.03";
13452     src = fetchurl {
13453       url = "mirror://cpan/authors/id/M/ML/MLEHMANN/JSON-XS-4.03.tar.gz";
13454       hash = "sha256-UVU29F8voafojIgkUzdY0BIdJnq5y0U6G1iHyKVrkGg=";
13455     };
13456     propagatedBuildInputs = [ TypesSerialiser ];
13457     buildInputs = [ CanaryStability ];
13458     meta = {
13459       description = "JSON serialising/deserialising, done correctly and fast";
13460       license = with lib.licenses; [ artistic1 gpl1Plus ];
13461       mainProgram = "json_xs";
13462     };
13463   };
13465   JSONXSVersionOneAndTwo = buildPerlPackage {
13466     pname = "JSON-XS-VersionOneAndTwo";
13467     version = "0.31";
13468     src = fetchurl {
13469       url = "mirror://cpan/authors/id/L/LB/LBROCARD/JSON-XS-VersionOneAndTwo-0.31.tar.gz";
13470       hash = "sha256-5gksTZYfrnd6z3/pn7PNbltxD+yFdlprkEF0gOTJSjQ=";
13471     };
13472     propagatedBuildInputs = [ JSONXS ];
13473     meta = {
13474       description = "Support versions 1 and 2 of JSON::XS";
13475       license = with lib.licenses; [ artistic1 gpl1Plus ];
13476     };
13477   };
13479   Later = buildPerlPackage {
13480     version = "0.21";
13481     pname = "Object-Realize-Later";
13482     src = fetchurl {
13483       url = "mirror://cpan/authors/id/M/MA/MARKOV/Object-Realize-Later-0.21.tar.gz";
13484       hash = "sha256-j3uWQMyONOqSvPbAEEmgPBReDrRuViJ14o3d06jW2Nk=";
13485     };
13486     meta = {
13487       description = "Delayed creation of objects";
13488       license = with lib.licenses; [ artistic1 gpl1Plus ];
13489     };
13490   };
13492   LatexIndent = buildPerlPackage rec {
13493     pname = "latexindent.pl";
13494     version = "3.21";
13496     src = fetchFromGitHub {
13497       owner = "cmhughes";
13498       repo = pname;
13499       rev = "V${version}";
13500       hash = "sha256-STXHOzsshyN7rc2VtJxxt6La4UPGpRYlMO8TX1Jd7pM=";
13501     };
13503     outputs = [ "out" ];
13505     propagatedBuildInputs = [ FileHomeDir YAMLTiny ];
13507     preBuild = ''
13508       patchShebangs ./latexindent.pl
13509     '';
13511     meta = {
13512       description = "Perl script to add indentation to LaTeX files";
13513       homepage = "https://github.com/cmhughes/latexindent.pl";
13514       license = lib.licenses.gpl3Plus;
13515     };
13516   };
13518   LaTeXML = buildPerlPackage rec {
13519     pname = "LaTeXML";
13520     version = "0.8.7";
13521     src = fetchurl {
13522       url = "mirror://cpan/authors/id/B/BR/BRMILLER/${pname}-${version}.tar.gz";
13523       hash = "sha256-JdqdlEB3newNrdTMLUIn6Oq4dDfAcZh3J03PuQakzHk=";
13524     };
13525     outputs = [ "out" "tex" ];
13526     propagatedBuildInputs = [ ArchiveZip DBFile FileWhich IOString ImageMagick ImageSize JSONXS LWP ParseRecDescent PodParser TextUnidecode XMLLibXSLT ];
13527     nativeBuildInputs = [ pkgs.makeWrapper ] ++ lib.optional stdenv.isDarwin shortenPerlShebang;
13528     makeMakerFlags = [ "TEXMF=\${tex}" "NOMKTEXLSR" ];
13529     # shebangs need to be patched before executables are copied to $out
13530     preBuild = ''
13531       patchShebangs bin/
13532     '' + lib.optionalString stdenv.isDarwin ''
13533       for file in bin/*; do
13534         shortenPerlShebang "$file"
13535       done
13536     '';
13537     postInstall = ''
13538       for file in latexmlc latexmlmath latexmlpost ; do
13539         # add runtime dependencies that cause silent failures when missing
13540         wrapProgram $out/bin/$file --prefix PATH : ${lib.makeBinPath [ pkgs.ghostscript pkgs.potrace ]}
13541       done
13542     '';
13543     passthru = {
13544       tlType = "run";
13545       pkgs = [ LaTeXML.tex ];
13546     };
13547     meta = {
13548       description = "Transforms TeX and LaTeX into XML/HTML/MathML";
13549       homepage = "https://dlmf.nist.gov/LaTeXML/";
13550       license = with lib.licenses; [ publicDomain ];
13551       maintainers = with maintainers; [ xworld21 ];
13552       mainProgram = "latexml";
13553     };
13554   };
13556   LEOCHARRECLI = buildPerlPackage {
13557     pname = "LEOCHARRE-CLI";
13558     version = "1.19";
13559     src = fetchurl {
13560       url = "mirror://cpan/authors/id/L/LE/LEOCHARRE/LEOCHARRE-CLI-1.19.tar.gz";
13561       hash = "sha256-N4NfEe41MmJBtNMDaK4bwZWlBBSzZi2z4TuGW9Uvzek=";
13562     };
13563     propagatedBuildInputs = [ FileWhich Filechmod LEOCHARREDebug Linuxusermod YAML ];
13564     meta = {
13565       description = "Useful subs for coding cli scripts";
13566       license = with lib.licenses; [ artistic1 gpl1Plus ];
13567     };
13568   };
13570   LEOCHARREDebug = buildPerlPackage {
13571     pname = "LEOCHARRE-Debug";
13572     version = "1.03";
13573     src = fetchurl {
13574       url = "mirror://cpan/authors/id/L/LE/LEOCHARRE/LEOCHARRE-Debug-1.03.tar.gz";
13575       hash = "sha256-wWZao6vUV8yGJLjEGMb4vfWPs6aG+O7VFc9+k1FN8ZI=";
13576     };
13577     meta = {
13578       description = "Debug sub";
13579       license = with lib.licenses; [ artistic1 gpl1Plus ];
13580     };
13581   };
13583   LexicalSealRequireHints = buildPerlModule {
13584     pname = "Lexical-SealRequireHints";
13585     version = "0.012";
13586     src = fetchurl {
13587       url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Lexical-SealRequireHints-0.012.tar.gz";
13588       hash = "sha256-wyvcOOBvjWyQdlu74xaMNYJH2n2uhbgLqEotoXY3V90=";
13589     };
13590     meta = {
13591       description = "Prevent leakage of lexical hints";
13592       license = with lib.licenses; [ artistic1 gpl1Plus ];
13593     };
13594   };
13596   libapreq2 = buildPerlPackage rec {
13597     pname = "libapreq2";
13598     version = "2.17";
13599     src = fetchurl {
13600       url = "mirror://apache/httpd/libapreq/${pname}-${version}.tar.gz";
13601       hash = "sha256-BGSH8ITBL6HIIq/8X33lbv7ZtIkFpCbmMaa5ScEU2Gw=";
13602     };
13603     outputs = [ "out" ];
13604     buildInputs = [ pkgs.apacheHttpd pkgs.apr pkgs.aprutil ApacheTest ExtUtilsXSBuilder ];
13605     propagatedBuildInputs = [ (pkgs.apacheHttpdPackages.mod_perl.override { inherit perl; }) ];
13606     makeMakerFlags = [
13607       "--with-apache2-src=${pkgs.apacheHttpd.dev}"
13608       "--with-apache2-apxs=${pkgs.apacheHttpd.dev}/bin/apxs"
13609       "--with-apache2-httpd=${pkgs.apacheHttpd.out}/bin/httpd"
13610       "--with-apr-config=${pkgs.apr.dev}/bin/apr-1-config"
13611       "--with-apu-config=${pkgs.aprutil.dev}/bin/apu-1-config"
13612     ];
13613     preConfigure = ''
13614       # override broken prereq check
13615       substituteInPlace configure --replace "prereq_check=\"\$PERL \$PERL_OPTS build/version_check.pl\"" "prereq_check=\"echo\""
13616       '';
13617     preBuild = ''
13618       substituteInPlace apreq2-config --replace "dirname" "${pkgs.coreutils}/bin/dirname"
13619       '';
13620     installPhase = ''
13621       mkdir $out
13623       # install the library
13624       make install DESTDIR=$out
13625       cp -r $out/${pkgs.apacheHttpd.dev}/. $out/.
13626       cp -r $out/$out/. $out/.
13628       # install the perl module
13629       pushd glue/perl
13630       perl Makefile.PL
13631       make install DESTDIR=$out
13632       cp -r $out/${perl}/lib/perl5 $out/lib/
13633       popd
13635       # install the apache module
13636       # https://computergod.typepad.com/home/2007/06/webgui_and_suse.html
13637       # NOTE: if using the apache module you must use "apreq" as the module name, not "apreq2"
13638       # services.httpd.extraModules = [ { name = "apreq"; path = "''${pkgs.perlPackages.libapreq2}/modules/mod_apreq2.so"; } ];
13639       pushd module
13640       make install DESTDIR=$out
13641       cp -r $out/${pkgs.apacheHttpd.out}/modules $out/
13642       popd
13644       rm -r $out/nix
13645     '';
13646     doCheck = false; # test would need to start apache httpd
13647     meta = {
13648       description = "Wrapper for libapreq2's module/handle API";
13649       license = with lib.licenses; [ asl20 ];
13650     };
13651   };
13653   libintl-perl = buildPerlPackage {
13654     pname = "libintl-perl";
13655     version = "1.33";
13656     src = fetchurl {
13657       url = "mirror://cpan/authors/id/G/GU/GUIDO/libintl-perl-1.33.tar.gz";
13658       hash = "sha256-USbtqczQ7rENuC3e9jy8r329dx54zA+xEMw7WmuGeec=";
13659     };
13660     meta = {
13661       description = "Portable l10n and i10n functions";
13662       license = with lib.licenses; [ gpl3Only ];
13663     };
13664   };
13666   libnet = buildPerlPackage {
13667     pname = "libnet";
13668     version = "3.15";
13669     src = fetchurl {
13670       url = "mirror://cpan/authors/id/S/SH/SHAY/libnet-3.15.tar.gz";
13671       hash = "sha256-px9NtYDhp2fWk2+qW6848fpheCQ0LaB4tWEoPob49KI=";
13672     };
13673     meta = {
13674       description = "Collection of network protocol modules";
13675       license = with lib.licenses; [ artistic1 gpl1Plus ];
13676     };
13677   };
13679   librelative = buildPerlPackage {
13680     pname = "lib-relative";
13681     version = "1.002";
13682     src = fetchurl {
13683       url = "mirror://cpan/authors/id/D/DB/DBOOK/lib-relative-1.002.tar.gz";
13684       hash = "sha256-5EcCFRZ8QGkXYD54vk2TESz2kTzTQq64ALQS4BHIp4s=";
13685     };
13686     meta = {
13687       description = "Add paths relative to the current file to @INC";
13688       homepage = "https://github.com/Grinnz/lib-relative";
13689       license = with lib.licenses; [ artistic2 ];
13690     };
13691   };
13693   libwwwperl = buildPerlPackage {
13694     pname = "libwww-perl";
13695     version = "6.72";
13696     src = fetchurl {
13697       url = "mirror://cpan/authors/id/O/OA/OALDERS/libwww-perl-6.72.tar.gz";
13698       hash = "sha256-6bg1T9XiC+IHr+I93VhPzVm/gpmNwHfez2hLodrloF0=";
13699     };
13700     buildInputs = [ HTTPDaemon TestFatal TestNeeds TestRequiresInternet ];
13701     propagatedBuildInputs = [ EncodeLocale FileListing HTMLParser HTTPCookieJar HTTPCookies HTTPDate HTTPMessage HTTPNegotiate LWPMediaTypes NetHTTP TryTiny URI WWWRobotRules ];
13702     meta = {
13703       homepage = "https://github.com/libwww-perl/libwww-perl";
13704       description = "The World-Wide Web library for Perl";
13705       license = with lib.licenses; [ artistic1 gpl1Plus ];
13706     };
13707   };
13709   libxml_perl = buildPerlPackage {
13710     pname = "libxml-perl";
13711     version = "0.08";
13712     src = fetchurl {
13713       url = "mirror://cpan/authors/id/K/KM/KMACLEOD/libxml-perl-0.08.tar.gz";
13714       hash = "sha256-RXEFm3tdSLfOUrATieldeYv1zyAgUjwVP/J7SYFTycs=";
13715     };
13716     propagatedBuildInputs = [ XMLParser ];
13717     meta = {
13718       description = "Collection of Perl modules for working with XML";
13719       license = with lib.licenses; [ artistic1 gpl1Plus ];
13720     };
13721   };
13723   LinguaENFindNumber = buildPerlPackage {
13724     pname = "Lingua-EN-FindNumber";
13725     version = "1.32";
13726     src = fetchurl {
13727       url = "mirror://cpan/authors/id/N/NE/NEILB/Lingua-EN-FindNumber-1.32.tar.gz";
13728       hash = "sha256-HRdtHIY/uYRL0Z0sKk5ooO1z2hWPckqJQFuQ236NvQQ=";
13729     };
13730     propagatedBuildInputs = [ LinguaENWords2Nums ];
13731     meta = {
13732       description = "Locate (written) numbers in English text ";
13733       homepage = "https://github.com/neilb/Lingua-EN-FindNumber";
13734       license = with lib.licenses; [ artistic1 gpl1Plus ];
13735     };
13736   };
13738   LinguaENInflect = buildPerlPackage {
13739     pname = "Lingua-EN-Inflect";
13740     version = "1.905";
13741     src = fetchurl {
13742       url = "mirror://cpan/authors/id/D/DC/DCONWAY/Lingua-EN-Inflect-1.905.tar.gz";
13743       hash = "sha256-BcKew0guVyMTpg2iGBsLMMXbfPAfiudhatZ+G2YmMpY=";
13744     };
13745     meta = {
13746       description = "Convert singular to plural. Select 'a' or 'an'";
13747       license = with lib.licenses; [ artistic1 gpl1Plus ];
13748     };
13749   };
13751   LinguaENInflectNumber = buildPerlPackage {
13752     pname = "Lingua-EN-Inflect-Number";
13753     version = "1.12";
13754     src = fetchurl {
13755       url = "mirror://cpan/authors/id/N/NE/NEILB/Lingua-EN-Inflect-Number-1.12.tar.gz";
13756       hash = "sha256-Zvszg4USdG9cWX6AJk/qZmQ/fyZXDsL5IFthNa1nrL8=";
13757     };
13758     propagatedBuildInputs = [ LinguaENInflect ];
13759     meta = {
13760       description = "Force number of words to singular or plural";
13761       homepage = "https://github.com/neilbowers/Lingua-EN-Inflect-Number";
13762       license = with lib.licenses; [ artistic1 gpl1Plus ];
13763     };
13764   };
13766   LinguaENInflectPhrase = buildPerlPackage {
13767     pname = "Lingua-EN-Inflect-Phrase";
13768     version = "0.20";
13769     src = fetchurl {
13770       url = "mirror://cpan/authors/id/R/RK/RKITOVER/Lingua-EN-Inflect-Phrase-0.20.tar.gz";
13771       hash = "sha256-VQWJEamfF1XePrRJqZ/765LYjAH/XcYFEaJGeQUN3qg=";
13772     };
13773     buildInputs = [ TestNoWarnings ];
13774     propagatedBuildInputs = [ LinguaENInflectNumber LinguaENNumberIsOrdinal LinguaENTagger ];
13775     meta = {
13776       description = "Inflect short English Phrases";
13777       homepage = "https://metacpan.org/release/Lingua-EN-Inflect-Phrase";
13778       license = with lib.licenses; [ artistic1 gpl1Plus ];
13779     };
13780   };
13782   LinguaENNumberIsOrdinal = buildPerlPackage {
13783     pname = "Lingua-EN-Number-IsOrdinal";
13784     version = "0.05";
13785     src = fetchurl {
13786       url = "mirror://cpan/authors/id/R/RK/RKITOVER/Lingua-EN-Number-IsOrdinal-0.05.tar.gz";
13787       hash = "sha256-KNVpVADA9OK9IJeTy3T22iuSVzVqrLKUfGA0JeCWGNY=";
13788     };
13789     buildInputs = [ TestFatal TryTiny ];
13790     propagatedBuildInputs = [ LinguaENFindNumber ];
13791     meta = {
13792       description = "Detect if English number is ordinal or cardinal";
13793       homepage = "https://metacpan.org/release/Lingua-EN-Number-IsOrdinal";
13794       license = with lib.licenses; [ artistic1 gpl1Plus ];
13795     };
13796   };
13798   LinguaENTagger = buildPerlPackage {
13799     pname = "Lingua-EN-Tagger";
13800     version = "0.31";
13801     src = fetchurl {
13802       url = "mirror://cpan/authors/id/A/AC/ACOBURN/Lingua-EN-Tagger-0.31.tar.gz";
13803       hash = "sha256-lJ6Mh+SAj3uglrl5Ig/wgbvgO21XiQ0u7NS4Ouhy6ZM=";
13804     };
13805     propagatedBuildInputs = [ HTMLParser LinguaStem MemoizeExpireLRU ];
13806     meta = {
13807       description = "Part-of-speech tagger for English natural language processing";
13808       license = with lib.licenses; [ gpl3Only ];
13809     };
13810   };
13812   LinguaENWords2Nums = buildPerlPackage {
13813     pname = "Lingua-EN-Words2Nums";
13814     version = "0.18";
13815     src = fetchurl {
13816       url = "mirror://cpan/authors/id/J/JO/JOEY/Lingua-EN-Words2Nums-0.18.tar.gz";
13817       hash = "sha256-aGVWeXzSpOqgZvGbvwOrJcBieCksnq0vGH39kDHqHYU=";
13818     };
13819     meta = {
13820       description = "Convert English text to numbers";
13821       license = with lib.licenses; [ artistic1 gpl1Plus ];
13822     };
13823   };
13825   LinguaPTStemmer = buildPerlPackage {
13826     pname = "Lingua-PT-Stemmer";
13827     version = "0.02";
13828     src = fetchurl {
13829       url = "mirror://cpan/authors/id/N/NE/NEILB/Lingua-PT-Stemmer-0.02.tar.gz";
13830       hash = "sha256-WW3wH4q3n//9RQ6Ug2pUQ3HYpMk6FffojqLxt5xGhJ0=";
13831     };
13832     meta = {
13833       description = "Portuguese language stemming";
13834       homepage = "https://github.com/neilb/Lingua-PT-Stemmer";
13835       license = with lib.licenses; [ artistic1 gpl1Plus ];
13836     };
13837   };
13839   LinguaStem = buildPerlModule {
13840     pname = "Lingua-Stem";
13841     version = "2.31";
13842     src = fetchurl {
13843       url = "mirror://cpan/authors/id/S/SN/SNOWHARE/Lingua-Stem-2.31.tar.gz";
13844       hash = "sha256-qhqZMrZCflmCU+YajM0NBMxVn66dWNh3TCAncItjAmQ=";
13845     };
13846     doCheck = false;
13847     propagatedBuildInputs = [ LinguaPTStemmer LinguaStemFr LinguaStemIt LinguaStemRu LinguaStemSnowballDa SnowballNorwegian SnowballSwedish TextGerman ];
13848     meta = {
13849       description = "Stemming of words";
13850       license = with lib.licenses; [ artistic1 gpl1Plus ];
13851     };
13852   };
13854   LinguaStemFr = buildPerlPackage {
13855     pname = "Lingua-Stem-Fr";
13856     version = "0.02";
13857     src = fetchurl {
13858       url = "mirror://cpan/authors/id/S/SD/SDP/Lingua-Stem-Fr-0.02.tar.gz";
13859       hash = "sha256-nU9ks6iJihhTQyGFJtWsaKSh+ObEQY1rqV1i9fnV2W8=";
13860     };
13861     meta = {
13862       description = "Perl French Stemming";
13863       license = with lib.licenses; [ artistic1 gpl1Plus ];
13864     };
13865   };
13867   LinguaStemIt = buildPerlPackage {
13868     pname = "Lingua-Stem-It";
13869     version = "0.02";
13870     src = fetchurl {
13871       url = "mirror://cpan/authors/id/A/AC/ACALPINI/Lingua-Stem-It-0.02.tar.gz";
13872       hash = "sha256-OOZz+3T+ARWILlrbJnTesIH6tyHXKO4qgRQWPVDIB4g=";
13873     };
13874     meta = {
13875       description = "Porter's stemming algorithm for Italian";
13876       license = with lib.licenses; [ artistic1 gpl1Plus ];
13877     };
13878   };
13880   LinguaStemRu = buildPerlPackage {
13881     pname = "Lingua-Stem-Ru";
13882     version = "0.04";
13883     src = fetchurl {
13884       url = "mirror://cpan/authors/id/N/NE/NEILB/Lingua-Stem-Ru-0.04.tar.gz";
13885       hash = "sha256-EnDOt0dk/blYNwqAiDSvl26H9pqFRw+LxGJYeX6rUig=";
13886     };
13887     meta = {
13888       description = "Porter's stemming algorithm for Russian (KOI8-R only)";
13889       homepage = "https://github.com/neilb/Lingua-Stem-Ru";
13890       license = with lib.licenses; [ artistic1 gpl1Plus ];
13891     };
13892   };
13894   LinguaStemSnowballDa = buildPerlPackage {
13895     pname = "Lingua-Stem-Snowball-Da";
13896     version = "1.01";
13897     src = fetchurl {
13898       url = "mirror://cpan/authors/id/C/CI/CINE/Lingua-Stem-Snowball-Da-1.01.tar.gz";
13899       hash = "sha256-Ljm+TuAVx+xHwrBnhYAYp0BuONUSHWVcikaHSt+poFY=";
13900     };
13901     meta = {
13902       description = "Porters stemming algorithm for Denmark";
13903       license = with lib.licenses; [ gpl2Only ];
13904     };
13905   };
13907   LinguaTranslit = buildPerlPackage {
13908     pname = "Lingua-Translit";
13909     version = "0.29";
13910     src = fetchurl {
13911       url = "mirror://cpan/authors/id/A/AL/ALINKE/Lingua-Translit-0.29.tar.gz";
13912       hash = "sha256-GtL6vAB52tcIt9nVVDfJ67GS5hC/lgryWUWFi5JZd1I=";
13913     };
13914     doCheck = false;
13915     meta = {
13916       description = "Transliterates text between writing systems";
13917       license = with lib.licenses; [ artistic1 gpl1Plus ];
13918       mainProgram = "translit";
13919     };
13920   };
13922   LinkEmbedder = buildPerlPackage {
13923     pname = "LinkEmbedder";
13924     version = "1.20";
13925     src = fetchurl {
13926       url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/LinkEmbedder-1.20.tar.gz";
13927       hash = "sha256-sd6LTiXHIplEOeesA0vorjeiCUijG/SF8iu0hvzI3KU=";
13928     };
13929     buildInputs = [ TestDeep ];
13930     propagatedBuildInputs = [ Mojolicious ];
13931     meta = {
13932       description = "Embed / expand oEmbed resources and other URL / links";
13933       homepage = "https://github.com/jhthorsen/linkembedder";
13934       license = with lib.licenses; [ artistic2 ];
13935       maintainers = with maintainers; [ sgo ];
13936     };
13937   };
13939   LinuxACL = buildPerlPackage {
13940     pname = "Linux-ACL";
13941     version = "0.05";
13942     src = fetchurl {
13943       url = "mirror://cpan/authors/id/N/NA/NAZAROV/Linux-ACL-0.05.tar.gz";
13944       hash = "sha256-MSlAwfYPR8T8k/oKnSpiZCX6qDcEDIwvGtWO4J9i83E=";
13945     };
13946     buildInputs = [ pkgs.acl ];
13947     NIX_CFLAGS_LINK = "-L${pkgs.acl.out}/lib -lacl";
13948     meta = {
13949       description = "Perl extension for reading and setting Access Control Lists for files by libacl linux library";
13950       license = with lib.licenses; [ artistic1 gpl1Plus ];
13951       maintainers = teams.deshaw.members;
13952     };
13953   };
13955   LinuxDesktopFiles = buildPerlModule {
13956     pname = "Linux-DesktopFiles";
13957     version = "0.25";
13958     src = fetchurl {
13959       url = "mirror://cpan/authors/id/T/TR/TRIZEN/Linux-DesktopFiles-0.25.tar.gz";
13960       hash = "sha256-YDd6dPupD6RlIA7hx0MNvd5p1FTYX57hAcA5gDoH5fU=";
13961     };
13962     meta = {
13963       description = "Fast parsing of the Linux desktop files";
13964       homepage = "https://github.com/trizen/Linux-DesktopFiles";
13965       license = with lib.licenses; [ artistic2 ];
13966     };
13967   };
13969   LinuxDistribution = buildPerlModule {
13970     pname = "Linux-Distribution";
13971     version = "0.23";
13972     src = fetchurl {
13973       url = "mirror://cpan/authors/id/C/CH/CHORNY/Linux-Distribution-0.23.tar.gz";
13974       hash = "sha256-YD4n2mB7PocqZp16ZtdZgvCWkVPqstSyDDQTR7Tr2l8=";
13975     };
13976     # The tests fail if the distro it's built on isn't in the supported list.
13977     # This includes NixOS.
13978     doCheck = false;
13979     meta = {
13980       description = "Perl extension to detect on which Linux distribution we are running";
13981       license = with lib.licenses; [ artistic1 gpl1Plus ];
13982       platforms = lib.platforms.linux;
13983     };
13984   };
13986   LinuxFD = buildPerlModule {
13987     pname = "Linux-FD";
13988     version = "0.014";
13989     src = fetchurl {
13990       url = "mirror://cpan/authors/id/L/LE/LEONT/Linux-FD-0.014.tar.gz";
13991       hash = "sha256-eDHcJkxG2bh/dkNhdNdmFBRSQ2Mwg+CQqrTZo1LwQ60=";
13992     };
13993     buildInputs = [ TestException ];
13994     propagatedBuildInputs = [ SubExporter ];
13995     perlPreHook = lib.optionalString stdenv.isi686 "export LD=$CC"; # fix undefined reference to `__stack_chk_fail_local'
13996     meta = {
13997       description = "Linux specific special filehandles";
13998       license = with lib.licenses; [ artistic1 gpl1Plus ];
13999       platforms = lib.platforms.linux;
14000     };
14001   };
14003   LinuxInotify2 = buildPerlPackage {
14004     pname = "Linux-Inotify2";
14005     version = "2.3";
14006     src = fetchurl {
14007       url = "mirror://cpan/authors/id/M/ML/MLEHMANN/Linux-Inotify2-2.3.tar.gz";
14008       hash = "sha256-y5kVD5/6UdvDvl7pjY6RyYzf6uIuuI5xjyzzZ78nDRc=";
14009     };
14010     propagatedBuildInputs = [ commonsense ];
14012     meta = {
14013       description = "Scalable directory/file change notification for Perl on Linux";
14014       license = with lib.licenses; [ artistic1 gpl1Plus ];
14015       platforms = lib.platforms.linux;
14016     };
14017   };
14019   Linuxusermod = buildPerlPackage {
14020     pname = "Linux-usermod";
14021     version = "0.69";
14022     src = fetchurl {
14023       url = "mirror://cpan/authors/id/V/VI/VIDUL/Linux-usermod-0.69.tar.gz";
14024       hash = "sha256-l8oYajxBa/ae1i2gRvGmDYjYm45u0lAIsvlueH3unWA=";
14025     };
14026     meta = {
14027       description = "This module adds, removes and modify user and group accounts according to the passwd and shadow files syntax";
14028       license = with lib.licenses; [ artistic1 gpl1Plus ];
14029       platforms = lib.platforms.linux;
14030     };
14031   };
14033   ListAllUtils = buildPerlPackage {
14034     pname = "List-AllUtils";
14035     version = "0.19";
14036     src = fetchurl {
14037       url = "mirror://cpan/authors/id/D/DR/DROLSKY/List-AllUtils-0.19.tar.gz";
14038       hash = "sha256-MKgUarIad4e4xW1YKc+afysVJ207P8oHM2rDjTAC/7w=";
14039     };
14040     propagatedBuildInputs = [ ListSomeUtils ListUtilsBy ];
14041     meta = {
14042       description = "Combines List::Util, List::SomeUtils and List::UtilsBy in one bite-sized package";
14043       homepage = "https://metacpan.org/release/List-AllUtils";
14044       license = with lib.licenses; [ artistic2 ];
14045     };
14046   };
14048   ListBinarySearch = buildPerlPackage {
14049     pname = "List-BinarySearch";
14050     version = "0.25";
14051     src = fetchurl {
14052       url = "mirror://cpan/authors/id/D/DA/DAVIDO/List-BinarySearch-0.25.tar.gz";
14053       hash = "sha256-yBEwcb1gQANe6KsBzxtyqRBXQZLx0XkQKud1qXPy6Co=";
14054     };
14055     meta = {
14056       description = "Binary Search within a sorted array";
14057       license = with lib.licenses; [ artistic1 gpl1Plus ];
14058     };
14059   };
14061   ListCompare = buildPerlPackage {
14062     pname = "List-Compare";
14063     version = "0.55";
14064     src = fetchurl {
14065       url = "mirror://cpan/authors/id/J/JK/JKEENAN/List-Compare-0.55.tar.gz";
14066       hash = "sha256-zHGUeYNledUrArwyjtgKmPZ53wQ6mbVxCrLBkWaeuDc=";
14067     };
14068     buildInputs = [ CaptureTiny ];
14069     meta = {
14070       description = "Compare elements of two or more lists";
14071       homepage = "http://thenceforward.net/perl/modules/List-Compare";
14072       license = with lib.licenses; [ artistic1 gpl1Plus ];
14073     };
14074   };
14076   ListMoreUtils = buildPerlPackage {
14077     pname = "List-MoreUtils";
14078     version = "0.430";
14079     src = fetchurl {
14080       url = "mirror://cpan/authors/id/R/RE/REHSACK/List-MoreUtils-0.430.tar.gz";
14081       hash = "sha256-Y7H3hCzULZtTjR404DMN5f8VWeTCc3NCUGQYJ29kZSc=";
14082     };
14083     propagatedBuildInputs = [ ExporterTiny ListMoreUtilsXS ];
14084     buildInputs = [ TestLeakTrace ];
14085     meta = {
14086       description = "Provide the stuff missing in List::Util";
14087       license = with lib.licenses; [ artistic1 gpl1Plus ];
14088     };
14089   };
14091   ListMoreUtilsXS = buildPerlPackage {
14092     pname = "List-MoreUtils-XS";
14093     version = "0.430";
14094     src = fetchurl {
14095       url = "mirror://cpan/authors/id/R/RE/REHSACK/List-MoreUtils-XS-0.430.tar.gz";
14096       hash = "sha256-6M5G1XwXnuzYdYKT6UAP8wCq8g/v4KnRW5/iMCucskI=";
14097     };
14098     preConfigure = ''
14099       export LD=$CC
14100     '';
14101     meta = {
14102       description = "Provide the stuff missing in List::Util in XS";
14103       homepage = "https://metacpan.org/release/List-MoreUtils-XS";
14104       license = with lib.licenses; [ asl20 ];
14105     };
14106   };
14108   ListSomeUtils = buildPerlPackage {
14109     pname = "List-SomeUtils";
14110     version = "0.59";
14111     src = fetchurl {
14112       url = "mirror://cpan/authors/id/D/DR/DROLSKY/List-SomeUtils-0.59.tar.gz";
14113       hash = "sha256-+rMDcuTGe/WkYGLaONHQyHVief6tqGbrQ5+ilXGi3Hs=";
14114     };
14115     buildInputs = [ TestLeakTrace ];
14116     propagatedBuildInputs = [ ModuleImplementation ];
14117     meta = {
14118       description = "Provide the stuff missing in List::Util";
14119       homepage = "https://metacpan.org/release/List-SomeUtils";
14120       license = with lib.licenses; [ artistic1 gpl1Plus ];
14121     };
14122   };
14124   ListUtilsBy = buildPerlModule {
14125     pname = "List-UtilsBy";
14126     version = "0.12";
14127     src = fetchurl {
14128       url = "mirror://cpan/authors/id/P/PE/PEVANS/List-UtilsBy-0.12.tar.gz";
14129       hash = "sha256-//EoH9Rp/pgrGlgES+z9lw8xO/86JuHHsrP0wKXtceA=";
14130     };
14131     meta = {
14132       description = "Higher-order list utility functions";
14133       license = with lib.licenses; [ artistic1 gpl1Plus ];
14134     };
14135   };
14137   LocaleCodes = buildPerlPackage {
14138     pname = "Locale-Codes";
14139     version = "3.76";
14140     src = fetchurl {
14141       url = "mirror://cpan/authors/id/S/SB/SBECK/Locale-Codes-3.76.tar.gz";
14142       hash = "sha256-Qo00GFUJ7fbaYoYoAJcohrsCwySTRU/L4Y+Zmk9DXzk=";
14143     };
14144     buildInputs = [ TestInter ];
14145     meta = {
14146       description = "A distribution of modules to handle locale codes";
14147       homepage = "https://github.com/SBECK-github/Locale-Codes";
14148       license = with lib.licenses; [ artistic1 gpl1Plus ];
14149     };
14150   };
14152   LocaleGettext = buildPerlPackage {
14153     pname = "gettext";
14154     version = "1.07";
14155     strictDeps = true;
14156     buildInputs = [ pkgs.gettext ];
14157     src = fetchurl {
14158       url = "mirror://cpan/authors/id/P/PV/PVANDRY/gettext-1.07.tar.gz";
14159       hash = "sha256-kJ1HlUaX58BCGPlykVt4e9EkTXXjvQFiC8Fn1bvEnBU=";
14160     };
14161     LANG="C";
14162     meta = {
14163       description = "Perl extension for emulating gettext-related API";
14164       license = with lib.licenses; [ artistic1 gpl1Plus ];
14165     };
14166   };
14168   LocaleMaketextLexiconGetcontext = buildPerlPackage {
14169     pname = "Locale-Maketext-Lexicon-Getcontext";
14170     version = "0.05";
14171     src = fetchurl {
14172       url = "mirror://cpan/authors/id/S/SA/SAPER/Locale-Maketext-Lexicon-Getcontext-0.05.tar.gz";
14173       hash = "sha256-dcsz35RypZYt5UCC9CxqdrJg/EBboQylMkb7H4LAkgg=";
14174     };
14175     propagatedBuildInputs = [ LocaleMaketextLexicon ];
14176     meta = {
14177       description = "PO file parser for Maketext";
14178       license = with lib.licenses; [ mit ];
14179     };
14180   };
14182   LocaleMOFile = buildPerlPackage {
14183     pname = "Locale-MO-File";
14184     version = "0.09";
14185     src = fetchurl {
14186       url = "mirror://cpan/authors/id/S/ST/STEFFENW/Locale-MO-File-0.09.tar.gz";
14187       hash = "sha256-lwNtw/Cds3BSrp2aUUSH6IS1bZDHbKEtbKtAXSNWSj8=";
14188     };
14189     propagatedBuildInputs = [ ConstFast MooXStrictConstructor MooXTypesMooseLike ParamsValidate namespaceautoclean ];
14190     buildInputs = [ TestDifferences TestException TestHexDifferences TestNoWarnings ];
14191     meta = {
14192       description = "Write or read gettext MO files";
14193       license = with lib.licenses; [ artistic1 gpl1Plus ];
14194     };
14195   };
14197   LocaleMaketextFuzzy = buildPerlPackage {
14198     pname = "Locale-Maketext-Fuzzy";
14199     version = "0.11";
14200     src = fetchurl {
14201       url = "mirror://cpan/authors/id/A/AU/AUDREYT/Locale-Maketext-Fuzzy-0.11.tar.gz";
14202       hash = "sha256-N4UXHOt4zHZxMZo6bYztmxkOCX382bKp68gEzRooL5Y=";
14203     };
14204     meta = {
14205       description = "Maketext from already interpolated strings";
14206       license = with lib.licenses; [ cc0 ];
14207     };
14208   };
14210   LocaleMaketextLexicon = buildPerlPackage {
14211     pname = "Locale-Maketext-Lexicon";
14212     version = "1.00";
14213     src = fetchurl {
14214       url = "mirror://cpan/authors/id/D/DR/DRTECH/Locale-Maketext-Lexicon-1.00.tar.gz";
14215       hash = "sha256-tz9rBKWNPw446/IRWkwVMvGk7vb6xcaipEnk4Uwd3Hw=";
14216     };
14217     meta = {
14218       description = "Use other catalog formats in Maketext";
14219       homepage = "https://search.cpan.org/dist/Locale-Maketext-Lexicon";
14220       license = with lib.licenses; [ mit ];
14221       mainProgram = "xgettext.pl";
14222     };
14223   };
14225   LocaleMsgfmt = buildPerlPackage {
14226     pname = "Locale-Msgfmt";
14227     version = "0.15";
14228     src = fetchurl {
14229       url = "mirror://cpan/authors/id/A/AZ/AZAWAWI/Locale-Msgfmt-0.15.tar.gz";
14230       hash = "sha256-wydoMcvuz1i+AggbzBgL00jao12iGnc3t7A4pZ9kOrQ=";
14231     };
14232     meta = {
14233       description = "Compile .po files to .mo files";
14234       license = with lib.licenses; [ artistic1 gpl1Plus ];
14235     };
14236   };
14238   LocalePO = buildPerlPackage {
14239     pname = "Locale-PO";
14240     version = "0.27";
14241     src = fetchurl {
14242       url = "mirror://cpan/authors/id/C/CO/COSIMO/Locale-PO-0.27.tar.gz";
14243       hash = "sha256-PJlKS2Pm5Og2xveak/UZIcq3fJDJdT/g+LVCkiDVFrk=";
14244     };
14245     propagatedBuildInputs = [ FileSlurp ];
14246     meta = {
14247       description = "Perl module for manipulating .po entries from GNU gettext";
14248       license = with lib.licenses; [ artistic1 gpl1Plus ];
14249     };
14250   };
14252   LocaleTextDomainOO = buildPerlPackage {
14253     pname = "Locale-TextDomain-OO";
14254     version = "1.036";
14255     src = fetchurl {
14256       url = "mirror://cpan/authors/id/S/ST/STEFFENW/Locale-TextDomain-OO-1.036.tar.gz";
14257       hash = "sha256-tReD4aiWICE+oqg+RbrsOqhunL4en6W590+HSbBUDjg=";
14258     };
14259     propagatedBuildInputs = [ ClassLoad Clone JSON LocaleMOFile LocalePO LocaleTextDomainOOUtil LocaleUtilsPlaceholderBabelFish LocaleUtilsPlaceholderMaketext LocaleUtilsPlaceholderNamed MooXSingleton PathTiny TieSub ];
14260     buildInputs = [ TestDifferences TestException TestNoWarnings ];
14261     meta = {
14262       description = "Locale::TextDomain::OO - Perl OO Interface to Uniforum Message Translation";
14263       license = with lib.licenses; [ artistic1 gpl1Plus ];
14264     };
14265   };
14267   LocaleTextDomainOOUtil = buildPerlPackage {
14268     pname = "Locale-TextDomain-OO-Util";
14269     version = "4.002";
14270     src = fetchurl {
14271       url = "mirror://cpan/authors/id/S/ST/STEFFENW/Locale-TextDomain-OO-Util-4.002.tar.gz";
14272       hash = "sha256-PF+gf2Xtd8Ap4g0kahBAQRSPGptH4332PzflHQK9RqA=";
14273     };
14274     propagatedBuildInputs = [ namespaceautoclean ];
14275     buildInputs = [ TestDifferences TestException TestNoWarnings ];
14276     meta = {
14277       description = "Locale::TextDomain::OO::Util - Lexicon utils";
14278       license = with lib.licenses; [ artistic1 gpl1Plus ];
14279     };
14280   };
14282   LocaleUtilsPlaceholderBabelFish = buildPerlPackage {
14283     pname = "Locale-Utils-PlaceholderBabelFish";
14284     version = "0.006";
14285     src = fetchurl {
14286       url = "mirror://cpan/authors/id/S/ST/STEFFENW/Locale-Utils-PlaceholderBabelFish-0.006.tar.gz";
14287       hash = "sha256-LhwAU5ljqeyr0se5te+QpWBna7A0giUXYin8jqS0pMw=";
14288     };
14289     propagatedBuildInputs = [ HTMLParser MooXStrictConstructor MooXTypesMooseLike namespaceautoclean ];
14290     buildInputs = [ TestDifferences TestException TestNoWarnings ];
14291     meta = {
14292       description = "Locale::Utils::PlaceholderBabelFish - Utils to expand BabelFish palaceholders";
14293       license = with lib.licenses; [ artistic1 gpl1Plus ];
14294     };
14295   };
14297   LocaleUtilsPlaceholderMaketext = buildPerlPackage {
14298     pname = "Locale-Utils-PlaceholderMaketext";
14299     version = "1.005";
14300     src = fetchurl {
14301       url = "mirror://cpan/authors/id/S/ST/STEFFENW/Locale-Utils-PlaceholderMaketext-1.005.tar.gz";
14302       hash = "sha256-UChgS9jzPY0yymkp+9DagP9L30KN6ARfs/Bbp9FdNOs=";
14303     };
14304     propagatedBuildInputs = [ MooXStrictConstructor MooXTypesMooseLike namespaceautoclean ];
14305     buildInputs = [ TestDifferences TestException TestNoWarnings ];
14306     meta = {
14307       description = "Locale::Utils::PlaceholderMaketext - Utils to expand maketext placeholders";
14308       license = with lib.licenses; [ artistic1 gpl1Plus ];
14309     };
14310   };
14312   LocaleUtilsPlaceholderNamed = buildPerlPackage {
14313     pname = "Locale-Utils-PlaceholderNamed";
14314     version = "1.004";
14315     src = fetchurl {
14316       url = "mirror://cpan/authors/id/S/ST/STEFFENW/Locale-Utils-PlaceholderNamed-1.004.tar.gz";
14317       hash = "sha256-b9eOojm1w1m6lCJ1N2b2OO5PkM0hdRpZs4YVXipFpr0=";
14318     };
14319     propagatedBuildInputs = [ MooXStrictConstructor MooXTypesMooseLike namespaceautoclean ];
14320     buildInputs = [ TestDifferences TestException TestNoWarnings ];
14321     meta = {
14322       description = "Locale::Utils::PlaceholderNamed - Utils to expand named placeholders";
14323       license = with lib.licenses; [ artistic1 gpl1Plus ];
14324     };
14325   };
14327   locallib = buildPerlPackage {
14328     pname = "local-lib";
14329     version = "2.000029";
14330     src = fetchurl {
14331       url = "mirror://cpan/authors/id/H/HA/HAARG/local-lib-2.000029.tar.gz";
14332       hash = "sha256-jfh6EMFMjpCcW0fFcB5LgYfVGeUlHofIBwmwK7M+/dc=";
14333     };
14334     propagatedBuildInputs = [ ModuleBuild ];
14335     meta = {
14336       description = "Create and use a local lib/ for perl modules with PERL5LIB";
14337       license = with lib.licenses; [ artistic1 gpl1Plus ];
14338     };
14339   };
14341   LockFileSimple = buildPerlPackage {
14342     pname = "LockFile-Simple";
14343     version = "0.208";
14344     src = fetchurl {
14345       url = "mirror://cpan/authors/id/S/SC/SCHWIGON/lockfile-simple/LockFile-Simple-0.208.tar.gz";
14346       hash = "sha256-Rcd4lrKloKRfYgKm+BP0N/+LKD+EocYNDE83MIAq86I=";
14347     };
14348     meta = {
14349       description = "Simple file locking scheme";
14350       license = with lib.licenses; [ artistic1 gpl2Plus ];
14351     };
14352   };
14354   LogAny = buildPerlPackage {
14355     pname = "Log-Any";
14356     version = "1.717";
14357     src = fetchurl {
14358       url = "mirror://cpan/authors/id/P/PR/PREACTION/Log-Any-1.717.tar.gz";
14359       hash = "sha256-VmSdoPOQAjDJ49KSUssKdIBvst3r0igFrNc2iVmmW8o=";
14360     };
14361     # Syslog test fails.
14362     preCheck = "rm t/syslog.t";
14363     meta = {
14364       description = "Bringing loggers and listeners together";
14365       homepage = "https://github.com/preaction/Log-Any";
14366       license = with lib.licenses; [ artistic1 gpl1Plus ];
14367     };
14368   };
14370   LogAnyAdapterLog4perl = buildPerlPackage {
14371     pname = "Log-Any-Adapter-Log4perl";
14372     version = "0.09";
14373     src = fetchurl {
14374       url = "mirror://cpan/authors/id/P/PR/PREACTION/Log-Any-Adapter-Log4perl-0.09.tar.gz";
14375       hash = "sha256-EZfT5BIhS+IIgAz3v1BXsf6hVCRTmip5J8/kb3FuwaU=";
14376     };
14377     propagatedBuildInputs = [ LogAny LogLog4perl ];
14378     meta = {
14379       description = "Log::Any adapter for Log::Log4perl";
14380       homepage = "https://github.com/preaction/Log-Any-Adapter-Log4perl";
14381       license = with lib.licenses; [ artistic1 gpl1Plus ];
14382     };
14383   };
14385   LogAnyAdapterTAP = buildPerlPackage {
14386     pname = "Log-Any-Adapter-TAP";
14387     version = "0.003003";
14388     src = fetchurl {
14389       url = "mirror://cpan/authors/id/N/NE/NERDVANA/Log-Any-Adapter-TAP-0.003003.tar.gz";
14390       hash = "sha256-Ex8GibK0KxsxRJcUxu2o+BHdlqfIZ0jx4DsjnP0BIcA=";
14391     };
14392     propagatedBuildInputs = [ LogAny TryTiny ];
14393     meta = {
14394       description = "Logger suitable for use with TAP test files";
14395       homepage = "https://github.com/silverdirk/perl-Log-Any-Adapter-TAP";
14396       license = with lib.licenses; [ artistic1 gpl1Plus ];
14397     };
14398   };
14400   LogContextual = buildPerlPackage {
14401     pname = "Log-Contextual";
14402     version = "0.008001";
14403     src = fetchurl {
14404       url = "mirror://cpan/authors/id/F/FR/FREW/Log-Contextual-0.008001.tar.gz";
14405       hash = "sha256-uTy8+7h5bVHINuOwAkPNpWMICMFSwU7uXyDKCclFGZM=";
14406     };
14407     buildInputs = [ TestFatal ];
14408     propagatedBuildInputs = [ DataDumperConcise ExporterDeclare Moo ];
14409     meta = {
14410       description = "Simple logging interface with a contextual log";
14411       homepage = "https://github.com/frioux/Log-Contextual";
14412       license = with lib.licenses; [ artistic1 gpl1Plus ];
14413     };
14414   };
14416   LogDispatch = buildPerlPackage {
14417     pname = "Log-Dispatch";
14418     version = "2.71";
14419     src = fetchurl {
14420       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Log-Dispatch-2.71.tar.gz";
14421       hash = "sha256-nWDZZIw1zidUcx603rfwWAns4b1jO3TXR5Wu2exzJXA=";
14422     };
14423     propagatedBuildInputs = [ DevelGlobalDestruction ParamsValidationCompiler Specio namespaceautoclean ];
14424     buildInputs = [ IPCRun3 TestFatal TestNeeds ];
14425     meta = {
14426       description = "Dispatches messages to one or more outputs";
14427       homepage = "https://metacpan.org/release/Log-Dispatch";
14428       license = with lib.licenses; [ artistic2 ];
14429     };
14430   };
14432   LogDispatchFileRotate = buildPerlPackage {
14433     pname = "Log-Dispatch-FileRotate";
14434     version = "1.38";
14435     src = fetchurl {
14436       url = "mirror://cpan/authors/id/M/MS/MSCHOUT/Log-Dispatch-FileRotate-1.38.tar.gz";
14437       hash = "sha256-tV1s7ePwoGQmSI+/pVT0VhMgsBTBAjiTztKVCOW85Ow=";
14438     };
14439     propagatedBuildInputs = [ DateManip LogDispatch ];
14440     buildInputs = [ PathTiny TestWarn ];
14441     meta = {
14442       description = "Log to Files that Archive/Rotate Themselves";
14443       homepage = "https://github.com/mschout/perl-log-dispatch-filerotate";
14444       license = with lib.licenses; [ artistic1 gpl1Plus ];
14445     };
14446   };
14448   LogfileRotate = buildPerlPackage {
14449     pname = "Logfile-Rotate";
14450     version = "1.04";
14451     src = fetchurl {
14452       url = "mirror://cpan/authors/id/P/PA/PAULG/Logfile-Rotate-1.04.tar.gz";
14453       hash = "sha256-gQ+LfM2GV9Ox71PNR1glR4Rc67WCArBVObNAhjjK2j4=";
14454     };
14455     meta = {
14456       description = "Perl module to rotate logfiles";
14457       homepage = "https://metacpan.org/dist/Logfile-Rotate";
14458       license = with lib.licenses; [ artistic1 gpl1Plus ];
14459       maintainers = with maintainers; [ tomasajt ];
14460     };
14461   };
14463   Logger = buildPerlPackage {
14464     pname = "Log-ger";
14465     version = "0.040";
14466     src = fetchurl {
14467       url = "mirror://cpan/authors/id/P/PE/PERLANCAR/Log-ger-0.040.tar.gz";
14468       hash = "sha256-6JEdM4ePoWmeQ+jQpU7V1WEEA4Z/9cM5+TQQPRfsZLA=";
14469     };
14470     meta = {
14471       description = "A lightweight, flexible logging framework";
14472       homepage = "https://metacpan.org/release/Log-ger";
14473       license = with lib.licenses; [ artistic1 gpl1Plus ];
14474       maintainers = [ maintainers.sgo ];
14475     };
14476   };
14478   LogHandler = buildPerlModule {
14479     pname = "Log-Handler";
14480     version = "0.90";
14481     src = fetchurl {
14482       url = "mirror://cpan/authors/id/B/BL/BLOONIX/Log-Handler-0.90.tar.gz";
14483       hash = "sha256-OlyA5xKEVHcPg6yrjL0+cOXsPVmmHcMnkqF48LMb900=";
14484     };
14485     propagatedBuildInputs = [ ParamsValidate ];
14486     meta = {
14487       description = "Log messages to several outputs";
14488       license = with lib.licenses; [ artistic1 gpl1Plus ];
14489     };
14490   };
14492   LogMessage = buildPerlPackage {
14493     pname = "Log-Message";
14494     version = "0.08";
14495     src = fetchurl {
14496       url = "mirror://cpan/authors/id/B/BI/BINGOS/Log-Message-0.08.tar.gz";
14497       hash = "sha256-vWl91iqvJtEY6fCggTQp3rHFRORQFVmHm2H8vf6Z/kY=";
14498     };
14499     meta = {
14500       description = "Powerful and flexible message logging mechanism";
14501       license = with lib.licenses; [ artistic1 gpl1Plus ];
14502     };
14503   };
14505   LogMessageSimple = buildPerlPackage {
14506     pname = "Log-Message-Simple";
14507     version = "0.10";
14508     src = fetchurl {
14509       url = "mirror://cpan/authors/id/B/BI/BINGOS/Log-Message-Simple-0.10.tar.gz";
14510       hash = "sha256-qhLRpMCsJguU1Ej6Af66JCqKhctsv9xmQy47W0aK3ZY=";
14511     };
14512     propagatedBuildInputs = [ LogMessage ];
14513     meta = {
14514       description = "Simplified interface to Log::Message";
14515       license = with lib.licenses; [ artistic1 gpl1Plus ];
14516     };
14517   };
14519   LogTrace = buildPerlPackage {
14520     pname = "Log-Trace";
14521     version = "1.070";
14522     src = fetchurl {
14523       url = "mirror://cpan/authors/id/B/BB/BBC/Log-Trace-1.070.tar.gz";
14524       hash = "sha256-nsuCWO8wwvJN7/SRckDQ/nMkLaWyGSQC95gVsJLtNuM=";
14525     };
14526     meta = {
14527       description = "Provides a unified approach to tracing";
14528       license = with lib.licenses; [ gpl1Only ];
14529     };
14530   };
14532   MCE = buildPerlPackage {
14533     pname = "MCE";
14534     version = "1.889";
14535     src = fetchurl {
14536       url = "mirror://cpan/authors/id/M/MA/MARIOROY/MCE-1.889.tar.gz";
14537       hash = "sha256-22FT5HTQRvwlMFC/U8VAAthM1Mp30hwrnfVv7rgJu+0=";
14538     };
14539     meta = {
14540       description = "Many-Core Engine for Perl providing parallel processing capabilities";
14541       homepage = "https://github.com/marioroy/mce-perl";
14542       license = with lib.licenses; [ artistic1 gpl1Plus ];
14543     };
14544   };
14546   LogLog4perl = buildPerlPackage {
14547     pname = "Log-Log4perl";
14548     version = "1.57";
14549     src = fetchurl {
14550       url = "mirror://cpan/authors/id/E/ET/ETJ/Log-Log4perl-1.57.tar.gz";
14551       hash = "sha256-D4/Ldjio89tMeX35T9vFYBN0kULy+Uy8lbQ8n8oJahM=";
14552     };
14553     meta = {
14554       description = "Log4j implementation for Perl";
14555       homepage = "https://mschilli.github.io/log4perl/";
14556       license = with lib.licenses; [ artistic1 gpl1Plus ];
14557       mainProgram = "l4p-tmpl";
14558     };
14559   };
14561   LogDispatchArray = buildPerlPackage {
14562     pname = "Log-Dispatch-Array";
14563     version = "1.005";
14564     src = fetchurl {
14565       url = "mirror://cpan/authors/id/R/RJ/RJBS/Log-Dispatch-Array-1.005.tar.gz";
14566       hash = "sha256-MRZAt6ln+N18m7QaInBzVlY21w30/MHUT+2KgiOzR8o=";
14567     };
14568     buildInputs = [ TestDeep ];
14569     propagatedBuildInputs = [ LogDispatch ];
14570     meta = {
14571       description = "Log events to an array (reference)";
14572       homepage = "https://github.com/rjbs/Log-Dispatch-Array";
14573       license = with lib.licenses; [ artistic1 gpl1Plus ];
14574     };
14575   };
14577   LogDispatchouli = buildPerlPackage {
14578     pname = "Log-Dispatchouli";
14579     version = "3.007";
14580     src = fetchurl {
14581       url = "mirror://cpan/authors/id/R/RJ/RJBS/Log-Dispatchouli-3.007.tar.gz";
14582       hash = "sha256-mIEYlllSukmo+nkaZTaIDIkBf0651ywXRe1n0VwNJyw=";
14583     };
14584     buildInputs = [ TestDeep TestFatal ];
14585     propagatedBuildInputs = [ LogDispatchArray StringFlogger SubExporterGlobExporter ];
14586     meta = {
14587       description = "A simple wrapper around Log::Dispatch";
14588       homepage = "https://github.com/rjbs/Log-Dispatchouli";
14589       license = with lib.licenses; [ artistic1 gpl1Plus ];
14590     };
14591   };
14593   LogJournald = buildPerlModule rec {
14594     pname = "Log-Journald";
14595     version = "0.30";
14596     src = fetchurl {
14597       url = "mirror://cpan/authors/id/L/LK/LKUNDRAK/Log-Journald-0.30.tar.gz";
14598       hash = "sha256-VZks+aHh+4M/QoMAUlv6fPftRrg+xBT4KgkXibN9CKM=";
14599     };
14600     nativeBuildInputs = [ pkgs.pkg-config ];
14601     buildInputs = [ pkgs.systemd ];
14602     postPatch = ''
14603       substituteInPlace Build.PL \
14604         --replace "libsystemd-journal" "libsystemd"
14605     '';
14606     meta = {
14607       description = "Send messages to a systemd journal";
14608       license = with lib.licenses; [ artistic1 gpl1Plus ];
14609     };
14610   };
14612   LogLogLite = buildPerlPackage {
14613     pname = "Log-LogLite";
14614     version = "0.82";
14615     src = fetchurl {
14616       url = "mirror://cpan/authors/id/R/RA/RANI/Log-LogLite-0.82.tar.gz";
14617       hash = "sha256-BQn7i8VDrJZ1pI6xplpjUoYIxsP99ioZ4XBzUA5RGms=";
14618     };
14619     propagatedBuildInputs = [ IOLockedFile ];
14620     meta = {
14621       description = "Helps us create simple logs for our application";
14622       license = with lib.licenses; [ artistic1 gpl1Plus ];
14623     };
14624   };
14626   LongJump = buildPerlPackage {
14627     pname = "Long-Jump";
14628     version = "0.000001";
14629     src = fetchurl {
14630       url = "mirror://cpan/authors/id/E/EX/EXODIST/Long-Jump-0.000001.tar.gz";
14631       hash = "sha256-1dZFbYaZK1Wdj2b8kJYPkZKSzTgDwTQD+qxXV2LHevQ=";
14632     };
14633     buildInputs = [ Test2Suite ];
14634     meta = {
14635       description = "Mechanism for returning to a specific point from a deeply nested stack";
14636       license = with lib.licenses; [ artistic1 gpl1Plus ];
14637     };
14638   };
14640   LWP = buildPerlPackage {
14641     pname = "libwww-perl";
14642     version = "6.72";
14643     src = fetchurl {
14644       url = "mirror://cpan/authors/id/O/OA/OALDERS/libwww-perl-6.72.tar.gz";
14645       hash = "sha256-6bg1T9XiC+IHr+I93VhPzVm/gpmNwHfez2hLodrloF0=";
14646     };
14647     propagatedBuildInputs = [ FileListing HTMLParser HTTPCookies HTTPCookieJar HTTPNegotiate NetHTTP TryTiny WWWRobotRules ];
14648     preCheck = ''
14649       export NO_NETWORK_TESTING=1
14650     '';
14651     # support cross-compilation by avoiding using `has_module` which does not work in miniperl (it requires B native module)
14652     postPatch = lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
14653       substituteInPlace Makefile.PL --replace 'if has_module' 'if 0; #'
14654     '';
14655     doCheck = !stdenv.isDarwin;
14656     nativeCheckInputs = [ HTTPDaemon TestFatal TestNeeds TestRequiresInternet ];
14657     meta = {
14658       description = "The World-Wide Web library for Perl";
14659       license = with lib.licenses; [ artistic1 gpl1Plus ];
14660     };
14661   };
14663   LWPAuthenOAuth = buildPerlPackage {
14664     pname = "LWP-Authen-OAuth";
14665     version = "1.02";
14666     src = fetchurl {
14667       url = "mirror://cpan/authors/id/T/TI/TIMBRODY/LWP-Authen-OAuth-1.02.tar.gz";
14668       hash = "sha256-544L196AAs+0dgBzJY1VXvVbLCfAepSz2KIWahf9lrw=";
14669     };
14670     propagatedBuildInputs = [ LWP ];
14671     meta = {
14672       description = "Generate signed OAuth requests";
14673       license = with lib.licenses; [ artistic1 gpl1Plus ];
14674     };
14675   };
14677   LWPMediaTypes = buildPerlPackage {
14678     pname = "LWP-MediaTypes";
14679     version = "6.04";
14680     src = fetchurl {
14681       url = "mirror://cpan/authors/id/O/OA/OALDERS/LWP-MediaTypes-6.04.tar.gz";
14682       hash = "sha256-jxvKEtqxahwqfAOknF5YzOQab+yVGfCq37qNrZl5Gdk=";
14683     };
14684     buildInputs = [ TestFatal ];
14685     meta = {
14686       description = "Guess media type for a file or a URL";
14687       homepage = "https://github.com/libwww-perl/lwp-mediatypes";
14688       license = with lib.licenses; [ artistic1 gpl1Plus ];
14689     };
14690   };
14692   LWPProtocolConnect = buildPerlPackage {
14693     pname = "LWP-Protocol-connect";
14694     version = "6.09";
14695     src = fetchurl {
14696       url = "mirror://cpan/authors/id/B/BE/BENNING/LWP-Protocol-connect-6.09.tar.gz";
14697       hash = "sha256-nyUjlHdeI6pCwxdmEeWTBjirUo1RkBELRzGqWwvzWhU=";
14698     };
14699     buildInputs = [ TestException ];
14700     propagatedBuildInputs = [ LWPProtocolHttps ];
14701     meta = {
14702       description = "Provides HTTP/CONNECT proxy support for LWP::UserAgent";
14703       license = with lib.licenses; [ artistic1 gpl1Plus ];
14704     };
14705   };
14707   LWPProtocolHttps = buildPerlPackage {
14708     pname = "LWP-Protocol-https";
14709     version = "6.11";
14710     src = fetchurl {
14711       url = "mirror://cpan/authors/id/O/OA/OALDERS/LWP-Protocol-https-6.11.tar.gz";
14712       hash = "sha256-ATLdvwNmFWXKhQUPKlCU+5Jjy7w8yxpNnEGsm7CDuRc=";
14713     };
14714     patches = [ ../development/perl-modules/lwp-protocol-https-cert-file.patch ];
14715     propagatedBuildInputs = [ IOSocketSSL LWP ];
14716     preCheck = ''
14717       export NO_NETWORK_TESTING=1
14718     '';
14719     buildInputs = [ TestRequiresInternet TestNeeds ];
14720     meta = {
14721       description = "Provide https support for LWP::UserAgent";
14722       homepage = "https://github.com/libwww-perl/LWP-Protocol-https";
14723       license = with lib.licenses; [ artistic1 gpl1Plus ];
14724     };
14725   };
14727   LWPProtocolhttp10 = buildPerlPackage {
14728     pname = "LWP-Protocol-http10";
14729     version = "6.03";
14730     src = fetchurl {
14731       url = "mirror://cpan/authors/id/G/GA/GAAS/LWP-Protocol-http10-6.03.tar.gz";
14732       hash = "sha256-8/+pEfnVkYHxcXkQ6iZiCQXCmLdNww99TlE57jAguNM=";
14733     };
14734     propagatedBuildInputs = [ LWP ];
14735     meta = {
14736       description = "Legacy HTTP/1.0 support for LWP";
14737       license = with lib.licenses; [ artistic1 gpl1Plus ];
14738     };
14739   };
14741   LWPUserAgentCached = buildPerlPackage {
14742     pname = "LWP-UserAgent-Cached";
14743     version = "0.08";
14744     src = fetchurl {
14745       url = "mirror://cpan/authors/id/O/OL/OLEG/LWP-UserAgent-Cached-0.08.tar.gz";
14746       hash = "sha256-Pc5atMeAQWVs54Vk92Az5b0ew4b1TS57MHQK5I7nh8M=";
14747     };
14748     propagatedBuildInputs = [ LWP ];
14749     meta = {
14750       description = "LWP::UserAgent with simple caching mechanism";
14751       license = with lib.licenses; [ artistic1 gpl1Plus ];
14752     };
14753   };
14755   LWPUserAgentDNSHosts = buildPerlModule {
14756     pname = "LWP-UserAgent-DNS-Hosts";
14757     version = "0.14";
14758     src = fetchurl {
14759       url = "mirror://cpan/authors/id/M/MA/MASAKI/LWP-UserAgent-DNS-Hosts-0.14.tar.gz";
14760       hash = "sha256-mWl5RD8Ib/yLNmvbukSGWR2T+SF7wgSz5dZrlHIghx8=";
14761     };
14762     propagatedBuildInputs = [ LWP ScopeGuard ];
14763     buildInputs = [ ModuleBuildTiny TestFakeHTTPD TestSharedFork TestTCP TestUseAllModules ];
14764     meta = {
14765       description = "Override LWP HTTP/HTTPS request's host like /etc/hosts";
14766       homepage = "https://github.com/masaki/p5-LWP-UserAgent-DNS-Hosts";
14767       license = with lib.licenses; [ artistic1 gpl1Plus ];
14768     };
14769   };
14771   LWPUserAgentDetermined = buildPerlPackage {
14772     pname = "LWP-UserAgent-Determined";
14773     version = "1.07";
14774     src = fetchurl {
14775       url = "mirror://cpan/authors/id/A/AL/ALEXMV/LWP-UserAgent-Determined-1.07.tar.gz";
14776       hash = "sha256-BtjVDozTaSoRy0+0Si+E5UdqmPDi5qSg386fZ+Vd21M=";
14777     };
14778     propagatedBuildInputs = [ LWP ];
14779     meta = {
14780       description = "A virtual browser that retries errors";
14781       license = with lib.licenses; [ artistic1 gpl1Plus ];
14782     };
14783   };
14785   LWPUserAgentMockable = buildPerlModule {
14786     pname = "LWP-UserAgent-Mockable";
14787     version = "1.18";
14788     src = fetchurl {
14789       url = "mirror://cpan/authors/id/M/MJ/MJEMMESON/LWP-UserAgent-Mockable-1.18.tar.gz";
14790       hash = "sha256-JYZPUOOlIZ+J00oYQlmFSUWussXtSBjzbw8wIShUQyQ=";
14791     };
14792     propagatedBuildInputs = [ HookLexWrap LWP SafeIsa ];
14793     # Tests require network connectivity
14794     # https://rt.cpan.org/Public/Bug/Display.html?id=63966 is the bug upstream,
14795     # which doesn't look like it will get fixed anytime soon.
14796     doCheck = false;
14797     buildInputs = [ ModuleBuildTiny TestRequiresInternet ];
14798     meta = {
14799       description = "Permits recording, and later playing back of LWP requests";
14800       license = with lib.licenses; [ artistic1 gpl1Plus ];
14801     };
14802   };
14804   LWPxParanoidAgent = buildPerlPackage {
14805     pname = "LWPx-ParanoidAgent";
14806     version = "1.12";
14807     src = fetchurl {
14808       url = "mirror://cpan/authors/id/S/SA/SAXJAZMAN/lwp/LWPx-ParanoidAgent-1.12.tar.gz";
14809       hash = "sha256-zAQa7bdOGDzfkcvryhx71tdk/e5o+9yE8r4IveTg0D0=";
14810     };
14811     doCheck = false; # 3 tests fail, probably because they try to connect to the network
14812     propagatedBuildInputs = [ LWP NetDNS ];
14813     meta = {
14814       description = "Subclass of LWP::UserAgent that protects you from harm";
14815       license = with lib.licenses; [ artistic1 gpl1Plus ];
14816     };
14817   };
14819   maatkit = callPackage ../development/perl-modules/maatkit { };
14821   MacPasteboard = buildPerlPackage {
14822     pname = "Mac-Pasteboard";
14823     version = "0.103";
14824     src = fetchurl {
14825       url = "mirror://cpan/authors/id/W/WY/WYANT/Mac-Pasteboard-0.103.tar.gz";
14826       hash = "sha256-L16N0tsNZEVVhITKbULYOcWpfuiqGyUOaU1n1bf2Y0w=";
14827     };
14828     buildInputs = [ pkgs.darwin.apple_sdk.frameworks.ApplicationServices ];
14829     meta = {
14830       description = "Manipulate Mac OS X pasteboards";
14831       license = with lib.licenses; [ artistic1 gpl1Plus ];
14832       platforms = lib.platforms.darwin;
14833       mainProgram = "pbtool";
14834     };
14835   };
14837   MacPropertyList = buildPerlPackage {
14838     pname = "Mac-PropertyList";
14839     version = "1.504";
14840     src = fetchurl {
14841       url = "mirror://cpan/authors/id/B/BD/BDFOY/Mac-PropertyList-1.504.tar.gz";
14842       hash = "sha256-aIl96Yw2j76c22iF1H3qADxG7Ho3MmNSPvZkVwc7eq4=";
14843     };
14844     propagatedBuildInputs = [ XMLEntities ];
14845     meta = {
14846       description = "Work with Mac plists at a low level";
14847       homepage = "https://github.com/briandfoy/mac-propertylist";
14848       license = lib.licenses.artistic2;
14849     };
14850   };
14852   MacSysProfile = buildPerlPackage {
14853     pname = "Mac-SysProfile";
14854     version = "0.05";
14855     src = fetchurl {
14856       url = "mirror://cpan/authors/id/D/DM/DMUEY/Mac-SysProfile-0.05.tar.gz";
14857       hash = "sha256-QDOXa3dbOcwqaTtyoC1l71p7oDveTU2w3/RuEmx9n2w=";
14858     };
14859     propagatedBuildInputs = [ MacPropertyList ];
14860     meta = {
14861       description = "Perl extension for OS X system_profiler";
14862       license = with lib.licenses; [ artistic1 gpl1Plus ];
14863       platforms = lib.platforms.darwin;
14864     };
14865   };
14867   MailAuthenticationResults = buildPerlPackage {
14868     pname = "Mail-AuthenticationResults";
14869     version = "2.20230112";
14870     src = fetchurl {
14871       url = "mirror://cpan/authors/id/M/MB/MBRADSHAW/Mail-AuthenticationResults-2.20230112.tar.gz";
14872       hash = "sha256-wtFEyuAiX4vJ0PX60cPxOdJ89TT85+rHB2T79m/SI0E=";
14873     };
14874     buildInputs = [ TestException ];
14875     propagatedBuildInputs = [ Clone JSON ];
14876     meta = {
14877       description = "Object Oriented Authentication-Results Headers";
14878       license = with lib.licenses; [ artistic1 gpl1Plus ];
14879     };
14880   };
14882   MailDMARC = buildPerlPackage {
14883     pname = "Mail-DMARC";
14884     version = "1.20230215";
14885     src = fetchurl {
14886       url = "mirror://cpan/authors/id/M/MB/MBRADSHAW/Mail-DMARC-1.20230215.tar.gz";
14887       hash = "sha256-V9z1R1nLkkSOVukUE0D2E0QnTFjZ3WWqkKqczw5+uQM=";
14888     };
14889     buildInputs = [ ExtUtilsMakeMaker FileShareDirInstall ];
14890     doCheck = false;  # uses actual DNS at runtime
14891     checkInputs = [ XMLSAX XMLValidatorSchema TestException TestFileShareDir TestMore TestOutput ];
14892     propagatedBuildInputs = [
14893       ConfigTiny DBDSQLite DBIxSimple EmailMIME EmailSender Encode FileShareDir GetoptLong
14894       IOCompress IO IOSocketSSL NetDNS NetIDNEncode NetIP NetSSLeay RegexpCommon Socket6
14895       SysSyslog URI XMLLibXML
14896     ];
14897     meta = {
14898       description = "Perl implementation of DMARC";
14899       homepage = "https://github.com/msimerson/mail-dmarc";
14900       license = with lib.licenses; [ artistic1 gpl1Plus ];
14901     };
14902   };
14904   MailMaildir = buildPerlPackage {
14905     version = "1.0.0";
14906     pname = "Mail-Maildir";
14907     src = fetchurl {
14908       url = "mirror://cpan/authors/id/Z/ZE/ZEROALTI/Mail-Maildir-100/Mail-Maildir-1.0.0.tar.bz2";
14909       hash = "sha256-RF6s2ixmN5ApbXGbypzHKYVUX6GgkBRhdnFgo6/DM88=";
14910     };
14911     meta = {
14912       description = "Handle Maildir folders";
14913       license = with lib.licenses; [ artistic1 gpl1Plus ];
14914     };
14915   };
14917   MailBox = buildPerlPackage {
14918     version = "3.010";
14919     pname = "Mail-Box";
14920     src = fetchurl {
14921       url = "mirror://cpan/authors/id/M/MA/MARKOV/Mail-Box-3.010.tar.gz";
14922       hash = "sha256-rhlPolDFRcm5FT4/tRA8qyn3nPKs1On9dc7FMiAalWQ=";
14923     };
14925     doCheck = false;
14927     propagatedBuildInputs = [ DevelGlobalDestruction FileRemove Later MailTransport ];
14928     meta = {
14929       description = "Manage a mailbox, a folder with messages";
14930       license = with lib.licenses; [ artistic1 gpl1Plus ];
14931     };
14932   };
14934   MailMboxMessageParser = buildPerlPackage {
14935     pname = "Mail-Mbox-MessageParser";
14936     version = "1.5111";
14937     src = fetchurl {
14938       url = "mirror://cpan/authors/id/D/DC/DCOPPIT/Mail-Mbox-MessageParser-1.5111.tar.gz";
14939       hash = "sha256-VyPAqpzBC6ue0eO/2dXJX3FZ5xwaR1QU6xrx3uOkYjc=";
14940     };
14941     buildInputs = [ FileSlurper TestCompile TestPod TestPodCoverage TextDiff UNIVERSALrequire URI ];
14942     propagatedBuildInputs = [ FileHandleUnget ];
14943     meta = {
14944       description = "A fast and simple mbox folder reader";
14945       homepage = "https://github.com/coppit/mail-mbox-messageparser";
14946       license = with lib.licenses; [ gpl2Only ];
14947       maintainers = with maintainers; [ romildo ];
14948     };
14949   };
14951   MailMessage = buildPerlPackage {
14952     pname = "Mail-Message";
14953     version = "3.013";
14954     src = fetchurl {
14955       url = "mirror://cpan/authors/id/M/MA/MARKOV/Mail-Message-3.013.tar.gz";
14956       hash = "sha256-yK1YiNsBWkUOti7Cqj6mbcLdwRtwpdtsjKGn+fgg6B8=";
14957     };
14958     propagatedBuildInputs = [ IOStringy MIMETypes MailTools URI UserIdentity ];
14959     meta = {
14960       description = "Processing MIME messages";
14961       homepage = "http://perl.overmeer.net/CPAN";
14962       license = with lib.licenses; [ artistic1 gpl1Plus ];
14963     };
14964   };
14966   MailDKIM = buildPerlPackage {
14967     pname = "Mail-DKIM";
14968     version = "1.20230911";
14969     src = fetchurl {
14970       url = "mirror://cpan/authors/id/M/MB/MBRADSHAW/Mail-DKIM-1.20230911.tar.gz";
14971       hash = "sha256-kecxcoK3JM+9LJtuZjDvFDKISLb8UgPv1w3sL7hyaMo=";
14972     };
14973     propagatedBuildInputs = [ CryptOpenSSLRSA MailAuthenticationResults MailTools NetDNS ];
14974     doCheck = false; # tries to access the domain name system
14975     buildInputs = [ NetDNSResolverMock TestRequiresInternet YAMLLibYAML ];
14976     meta = {
14977       description = "Signs/verifies Internet mail with DKIM/DomainKey signatures";
14978       license = with lib.licenses; [ artistic1 gpl1Plus ];
14979     };
14980   };
14982   MailIMAPClient = buildPerlPackage {
14983     pname = "Mail-IMAPClient";
14984     version = "3.43";
14985     src = fetchurl {
14986       url = "mirror://cpan/authors/id/P/PL/PLOBBES/Mail-IMAPClient-3.43.tar.gz";
14987       hash = "sha256-CTyX+sFbR6j+TSk27y3zd6v3fMirdAktISi7lF0ftG8=";
14988     };
14989     propagatedBuildInputs = [ ParseRecDescent ];
14990     meta = {
14991       description = "An IMAP Client API";
14992       license = with lib.licenses; [ artistic1 gpl1Plus ];
14993     };
14994   };
14996   MailPOP3Client = buildPerlPackage {
14997     pname = "Mail-POP3Client";
14998     version = "2.21";
14999     src = fetchurl {
15000       url = "mirror://cpan/authors/id/S/SD/SDOWD/Mail-POP3Client-2.21.tar.gz";
15001       hash = "sha256-sW7yFJtuNXOHPx5ZDk1RNmxZlLi1MV3xaSXRe4niSQE=";
15002     };
15003     meta = {
15004       description = "Perl 5 module to talk to a POP3 (RFC1939) server";
15005       license = with lib.licenses; [ artistic1 gpl1Plus ];
15006     };
15007   };
15009   MailRFC822Address = buildPerlPackage {
15010     pname = "Mail-RFC822-Address";
15011     version = "0.3";
15012     src = fetchurl {
15013       url = "mirror://cpan/authors/id/P/PD/PDWARREN/Mail-RFC822-Address-0.3.tar.gz";
15014       hash = "sha256-NR70EE7LZ17K5pAIJD+ugkPRp+U8aB7rdZ57eBaEyKc=";
15015     };
15016     meta = {
15017       description = "Perl extension for validating email addresses according to RFC822";
15018       license = with lib.licenses; [ mit ];
15019     };
15020   };
15022   MailSender = buildPerlPackage {
15023     pname = "Mail-Sender";
15024     version = "0.903";
15025     src = fetchurl {
15026       url = "mirror://cpan/authors/id/C/CA/CAPOEIRAB/Mail-Sender-0.903.tar.gz";
15027       hash = "sha256-RBPrSfUgqDGBUYEcywWo1UKXOq2iCqUDrTL5/8mKOb8=";
15028     };
15029     meta = {
15030       description = "(DEPRECATED) module for sending mails with attachments through an SMTP server";
15031       homepage = "https://github.com/Perl-Email-Project/Mail-Sender";
15032       license = with lib.licenses; [ artistic1 gpl1Plus ];
15033     };
15034   };
15036   MailSendmail = buildPerlPackage {
15037     pname = "Mail-Sendmail";
15038     version = "0.80";
15039     src = fetchurl {
15040       url = "mirror://cpan/authors/id/N/NE/NEILB/Mail-Sendmail-0.80.tar.gz";
15041       hash = "sha256-W4qYy1zDnYBEGjiqsBCIXd+A5vzY5uAxQ5LLI+fCaOQ=";
15042     };
15043     # The test suite simply loads the module and attempts to send an email to
15044     # the module's author, the latter of which is a) more of an integration
15045     # test, b) impossible to verify, and c) won't work from a sandbox. Replace
15046     # it in its entirety with the following simple smoke test.
15047     checkPhase = ''
15048       perl -I blib/lib -MMail::Sendmail -e 'print "1..1\nok 1\n"'
15049     '';
15050     meta = {
15051       description = "Simple platform independent mailer";
15052       homepage = "https://github.com/neilb/Mail-Sendmail";
15053       license = with lib.licenses; [ artistic1 gpl1Plus ];
15054       maintainers = teams.deshaw.members;
15055     };
15056   };
15058   MailSPF = buildPerlPackage {
15059     pname = "Mail-SPF";
15060     version = "2.9.0";
15061     src = fetchurl {
15062       url = "mirror://cpan/authors/id/J/JM/JMEHNLE/mail-spf/Mail-SPF-v2.9.0.tar.gz";
15063       hash = "sha256-YctZFfHHrMepMf/Bv8EpG9+sVV4qRusjkbmV6p7LYWI=";
15064     };
15065     # remove this patch patches = [ ../development/perl-modules/Mail-SPF.patch ];
15067     buildInputs = [ ModuleBuild NetDNSResolverProgrammable ];
15068     propagatedBuildInputs = [ Error NetAddrIP NetDNS URI ];
15070     buildPhase = "perl Build.PL --install_base=$out --install_path=\"sbin=$out/bin\" --install_path=\"lib=$out/${perl.libPrefix}\"; ./Build build ";
15072     doCheck = false; # The main test performs network access
15073     meta = {
15074       description = "An object-oriented implementation of Sender Policy Framework";
15075       license = with lib.licenses; [ bsd3 ];
15076       mainProgram = "spfquery";
15077     };
15078   };
15081   MailTools = buildPerlPackage {
15082     pname = "MailTools";
15083     version = "2.21";
15084     src = fetchurl {
15085       url = "mirror://cpan/authors/id/M/MA/MARKOV/MailTools-2.21.tar.gz";
15086       hash = "sha256-Stm9aCa28DonJzMkZrG30piQyNmaMrSzsKjZJu4aRMs=";
15087     };
15088     propagatedBuildInputs = [ TimeDate ];
15089     meta = {
15090       description = "Various ancient e-mail related modules";
15091       homepage = "http://perl.overmeer.net/CPAN";
15092       license = with lib.licenses; [ artistic1 gpl1Plus ];
15093     };
15094   };
15096   MailTransport = buildPerlPackage {
15097     pname = "Mail-Transport";
15098     version = "3.005";
15099     src = fetchurl {
15100       url = "mirror://cpan/authors/id/M/MA/MARKOV/Mail-Transport-3.005.tar.gz";
15101       hash = "sha256-0Ny5P3BcEoXYCONN59htvijR7WaqKn3oMPZlH8NRlqM=";
15102     };
15103     propagatedBuildInputs = [ MailMessage ];
15104     meta = {
15105       description = "Email message exchange";
15106       homepage = "http://perl.overmeer.net/CPAN";
15107       license = with lib.licenses; [ artistic1 gpl1Plus ];
15108     };
15109   };
15111   MathBase85 = buildPerlPackage {
15112     pname = "Math-Base85";
15113     version = "0.5";
15114     src = fetchurl {
15115       url = "mirror://cpan/authors/id/P/PT/PTC/Math-Base85-0.5.tar.gz";
15116       hash = "sha256-CwX3+2UKh5ezktjqkPLnK/uNCFBcmi4LlV39RacqNOU=";
15117     };
15118     meta = {
15119       description = "Perl extension for base 85 numbers, as referenced by RFC 1924";
15120       license = with lib.licenses; [ artistic1 gpl1Plus ];
15121     };
15122   };
15124   MathBaseConvert = buildPerlPackage {
15125     pname = "Math-Base-Convert";
15126     version = "0.11";
15127     src = fetchurl {
15128       url = "mirror://cpan/authors/id/M/MI/MIKER/Math-Base-Convert-0.11.tar.gz";
15129       hash = "sha256-jAlxNV8kyTt553rVSkVwCQoaWY/Lm4b1wX66QvOLQOA=";
15130     };
15131     meta = {
15132       description = "Very fast base to base conversion";
15133       license = with lib.licenses; [ artistic1 gpl1Plus ];
15134     };
15135   };
15137   MathLibm = buildPerlPackage {
15138     pname = "Math-Libm";
15139     version = "1.00";
15140     src = fetchurl {
15141       url = "mirror://cpan/authors/id/D/DS/DSLEWART/Math-Libm-1.00.tar.gz";
15142       hash = "sha256-v9MJ8oOsjLm/AK+MfDoQvyWr/WQoYcICLvr/CkpSwnY=";
15143     };
15144     meta = {
15145       description = "Perl extension for the C math library, libm";
15146       license = with lib.licenses; [ artistic1 gpl1Plus ];
15147     };
15148   };
15150   MathCalcParser = buildPerlPackage {
15151     pname = "Math-Calc-Parser";
15152     version = "1.005";
15153     src = fetchurl {
15154       url = "mirror://cpan/authors/id/D/DB/DBOOK/Math-Calc-Parser-1.005.tar.gz";
15155       hash = "sha256-r8PrSWqzo6MBs0N68H4ZfrdDwGCQ8BAdrPggMC8rf3U=";
15156     };
15157     buildInputs = [ TestNeeds ];
15158     meta = {
15159       description = "Parse and evaluate mathematical expressions";
15160       homepage = "https://github.com/Grinnz/Math-Calc-Parser";
15161       broken = true;
15162       license = with lib.licenses; [ artistic2 ];
15163       maintainers = with maintainers; [ sgo ];
15164     };
15165   };
15167   MathCalcUnits = buildPerlPackage {
15168     pname = "Math-Calc-Units";
15169     version = "1.07";
15170     src = fetchurl {
15171       url = "mirror://cpan/authors/id/S/SF/SFINK/Math-Calc-Units-1.07.tar.gz";
15172       hash = "sha256-YePP2ye7O+4nvrlxJN2TB2DhA57cHreBbC9WJ3Zfj48=";
15173     };
15174     meta = {
15175       description = "Human-readable unit-aware calculator";
15176       license = with lib.licenses; [ artistic1 gpl2Only ];
15177       mainProgram = "ucalc";
15178     };
15179   };
15181   MathBigInt = buildPerlPackage {
15182     pname = "Math-BigInt";
15183     version = "1.999842";
15184     src = fetchurl {
15185       url = "mirror://cpan/authors/id/P/PJ/PJACKLAM/Math-BigInt-1.999842.tar.gz";
15186       hash = "sha256-VGAcUMaZPn7hPYw6wzRs8VpNgGMUnNu+husB5WEORnU=";
15187     };
15188     meta = {
15189       description = "Arbitrary size integer/float math package";
15190       license = with lib.licenses; [ artistic1 gpl1Plus ];
15191     };
15192   };
15194   MathBigIntGMP = buildPerlPackage {
15195     pname = "Math-BigInt-GMP";
15196     version = "1.6013";
15197     src = fetchurl {
15198       url = "mirror://cpan/authors/id/P/PJ/PJACKLAM/Math-BigInt-GMP-1.6013.tar.gz";
15199       hash = "sha256-yxqS4CJn1AUV+OA6TiEvZv0wfJdMu9MT4j3jL98Q9rU=";
15200     };
15201     buildInputs = [ pkgs.gmp ];
15202     doCheck = false;
15203     env.NIX_CFLAGS_COMPILE = "-I${pkgs.gmp.dev}/include";
15204     NIX_CFLAGS_LINK = "-L${pkgs.gmp.out}/lib -lgmp";
15205     propagatedBuildInputs = [ MathBigInt ];
15206     meta = {
15207       description = "Backend library for Math::BigInt etc. based on GMP";
15208       license = with lib.licenses; [ artistic1 gpl1Plus ];
15209     };
15210   };
15212   MathBigIntLite = buildPerlPackage {
15213     pname = "Math-BigInt-Lite";
15214     version = "0.29";
15215     src = fetchurl {
15216       url = "mirror://cpan/authors/id/P/PJ/PJACKLAM/Math-BigInt-Lite-0.29.tar.gz";
15217       hash = "sha256-R4YN/KYxl4txxKqZkaGynk7LrzYbW7nrOVl1t//Nd/U=";
15218     };
15219     propagatedBuildInputs = [ MathBigInt ];
15220     meta = {
15221       description = "What Math::BigInts are before they become big";
15222       license = with lib.licenses; [ artistic1 gpl1Plus ];
15223     };
15224   };
15226   MathClipper = buildPerlModule {
15227     pname = "Math-Clipper";
15228     version = "1.29";
15229     src = fetchurl {
15230       url = "mirror://cpan/authors/id/S/SH/SHELDRAKE/Math-Clipper-1.29.tar.gz";
15231       hash = "sha256-UyfE8TOGbenXmzGGV/Zp7LSZhgVQs5aGmNRyiHr4dZM=";
15232     };
15233     nativeBuildInputs = [ pkgs.ld-is-cc-hook ];
15234     buildInputs = [ ExtUtilsCppGuess ExtUtilsTypemapsDefault ExtUtilsXSpp ModuleBuildWithXSpp TestDeep ];
15235     meta = {
15236       description = "Polygon clipping in 2D";
15237       license = with lib.licenses; [ artistic1 gpl1Plus ];
15238     };
15239   };
15241   MathConvexHullMonotoneChain = buildPerlPackage {
15242     pname = "Math-ConvexHull-MonotoneChain";
15243     version = "0.01";
15244     src = fetchurl {
15245       url = "mirror://cpan/authors/id/S/SM/SMUELLER/Math-ConvexHull-MonotoneChain-0.01.tar.gz";
15246       hash = "sha256-KIvEWQgmMkVUj5FIKrEkiGjdne5Ef5yibK15YT47lPU=";
15247     };
15248     meta = {
15249       description = "Andrew's monotone chain algorithm for finding a convex hull in 2D";
15250       license = with lib.licenses; [ artistic1 gpl1Plus ];
15251     };
15252   };
15254   MathFibonacci = buildPerlPackage {
15255     pname = "Math-Fibonacci";
15256     version = "1.5";
15257     src = fetchurl {
15258       url = "mirror://cpan/authors/id/V/VI/VIPUL/Math-Fibonacci-1.5.tar.gz";
15259       hash = "sha256-cKgobpRVjfmdyS9S2D4eIKe494UrzDod59njOCYLmbo=";
15260     };
15261     meta = {
15262       description = "This module provides a few functions related to Fibonacci numbers";
15263       license = with lib.licenses; [ artistic2 ];
15264     };
15265   };
15267   MathGMP = buildPerlPackage {
15268     pname = "Math-GMP";
15269     version = "2.25";
15270     src = fetchurl {
15271       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Math-GMP-2.25.tar.gz";
15272       hash = "sha256-OCtx5Udi9jnppCqbBpNBUZh7pX0Ru3DTXjvsiNUEUM4=";
15273     };
15274     buildInputs = [ pkgs.gmp AlienGMP ];
15275     env.NIX_CFLAGS_COMPILE = "-I${pkgs.gmp.dev}/include";
15276     NIX_CFLAGS_LINK = "-L${pkgs.gmp.out}/lib -lgmp";
15277     meta = {
15278       description = "High speed arbitrary size integer math";
15279       license = with lib.licenses; [ lgpl21Plus ];
15280     };
15281   };
15283   MathGMPz = buildPerlPackage {
15284     pname = "Math-GMPz";
15285     version = "0.59";
15286     src = fetchurl {
15287       url = "mirror://cpan/authors/id/S/SI/SISYPHUS/Math-GMPz-0.59.tar.gz";
15288       hash = "sha256-mmrN45G0Ff5f7HwUyCTVUf/j+W81rycYRWuJ3jpkEaQ=";
15289     };
15290     buildInputs = [ TestWarn pkgs.gmp ];
15291     NIX_CFLAGS_LINK = "-L${pkgs.gmp.out}/lib -lgmp";
15292     meta = {
15293       description = "Perl interface to the GMP integer functions";
15294       homepage = "https://github.com/sisyphus/math-gmpz";
15295       license = with lib.licenses; [ artistic1 gpl1Plus ];
15296       maintainers = with maintainers; [ sgo ];
15297     };
15298   };
15300   MathGeometryVoronoi = buildPerlPackage {
15301     pname = "Math-Geometry-Voronoi";
15302     version = "1.3";
15303     src = fetchurl {
15304       url = "mirror://cpan/authors/id/S/SA/SAMTREGAR/Math-Geometry-Voronoi-1.3.tar.gz";
15305       hash = "sha256-cgdeTpiDzuUURrqVESZMjDKgFagPSlZIo/azgsU0QCw=";
15306     };
15307     propagatedBuildInputs = [ ClassAccessor ParamsValidate ];
15308     meta = {
15309       description = "Compute Voronoi diagrams from sets of points";
15310       license = with lib.licenses; [ artistic1 gpl1Plus ];
15311     };
15312   };
15314   MathInt128 = buildPerlPackage {
15315     pname = "Math-Int128";
15316     version = "0.22";
15317     src = fetchurl {
15318       url = "mirror://cpan/authors/id/S/SA/SALVA/Math-Int128-0.22.tar.gz";
15319       hash = "sha256-pjDKQBdThmlV8Rc4SKtbSsStXKatkIfxHN+R3ehRGbw=";
15320     };
15321     propagatedBuildInputs = [ MathInt64 ];
15322     meta = {
15323       description = "Manipulate 128 bits integers in Perl";
15324       homepage = "https://metacpan.org/release/Math-Int128";
15325       license = with lib.licenses; [ artistic1 gpl1Plus ];
15326       broken = stdenv.is32bit; # compiler doesn't support a 128-bit integer type
15327     };
15328   };
15330   MathInt64 = buildPerlPackage {
15331     pname = "Math-Int64";
15332     version = "0.54";
15333     src = fetchurl {
15334       url = "mirror://cpan/authors/id/S/SA/SALVA/Math-Int64-0.54.tar.gz";
15335       hash = "sha256-3PxR5phDfqa5zv4CdiFcVs22p/hePiSitrQYnxlg01E=";
15336     };
15337     meta = {
15338       description = "Manipulate 64 bits integers in Perl";
15339       homepage = "https://metacpan.org/release/Math-Int64";
15340       license = with lib.licenses; [ artistic1 gpl1Plus ];
15341     };
15342   };
15344   MathPari = buildPerlPackage rec {
15345     pname = "Math-Pari";
15346     version = "2.030523";
15347     nativeBuildInputs = [ pkgs.unzip ];
15348     pariversion = "2.1.7";
15349     pari_tgz = fetchurl {
15350       url = "https://pari.math.u-bordeaux.fr/pub/pari/OLD/2.1/pari-${pariversion}.tgz";
15351       hash = "sha256-kULyza8wg8iWLxpcK7Dp/okV99lJDAMxKsI2HH6hVfo=";
15352     };
15353     # Workaround build failure on -fno-common toolchains:
15354     #   ld: libPARI/libPARI.a(compat.o):(.bss+0x8): multiple definition of
15355     #   `overflow'; Pari.o:(.bss+0x80): first defined here
15356     env.NIX_CFLAGS_COMPILE = "-fcommon";
15357     preConfigure = "cp ${pari_tgz} pari-${pariversion}.tgz";
15358     makeMakerFlags = [ "pari_tgz=pari-${pariversion}.tgz" ];
15359     src = fetchurl {
15360       url = "mirror://cpan/authors/id/I/IL/ILYAZ/modules/Math-Pari-2.030518.zip";
15361       hash = "sha256-3DiVWpaQvmuvqN4lJiEjd8Psn+jaXsAiY6nK+UtYu5E=";
15362     };
15363     meta = {
15364       description = "Perl interface to PARI";
15365       license = with lib.licenses; [ artistic1 gpl1Plus gpl2Only ];
15366     };
15367   };
15369   MathPlanePath = buildPerlPackage {
15370     pname = "Math-PlanePath";
15371     version = "129";
15372     src = fetchurl {
15373       url = "mirror://cpan/authors/id/K/KR/KRYDE/Math-PlanePath-129.tar.gz";
15374       hash = "sha256-jaFdDk1Qd7bF0gN2WyiFv3KOUJ4y3pJkYFwIYhN+OX4=";
15375     };
15376     propagatedBuildInputs = [ MathLibm constant-defer ];
15377     buildInputs = [ DataFloat MathBigIntLite NumberFraction ];
15378     meta = {
15379       description = "Points on a path through the 2-D plane";
15380       license = with lib.licenses; [ gpl3Plus ];
15381     };
15382   };
15384   MathPrimeUtil = buildPerlPackage {
15385     pname = "Math-Prime-Util";
15386     version = "0.73";
15387     src = fetchurl {
15388       url = "mirror://cpan/authors/id/D/DA/DANAJ/Math-Prime-Util-0.73.tar.gz";
15389       hash = "sha256-Svpt2M25dJm9TsppJYYYEsKdn1oPGsJ62dLZybVgKJQ=";
15390     };
15391     propagatedBuildInputs = [ MathPrimeUtilGMP ];
15392     buildInputs = [ TestWarn ];
15393     meta = {
15394       description = "Utilities related to prime numbers, including fast sieves and factoring";
15395       homepage = "https://github.com/danaj/Math-Prime-Util";
15396       license = with lib.licenses; [ artistic1 gpl1Plus ];
15397       maintainers = [ maintainers.sgo ];
15398     };
15399   };
15401   MathPrimeUtilGMP = buildPerlPackage {
15402     pname = "Math-Prime-Util-GMP";
15403     version = "0.52";
15404     src = fetchurl {
15405       url = "mirror://cpan/authors/id/D/DA/DANAJ/Math-Prime-Util-GMP-0.52.tar.gz";
15406       hash = "sha256-JpfH/Vx+Nf3sf1DtVqZ76Aei8iZXWJ5jfa01knRAA74=";
15407     };
15408     buildInputs = [ pkgs.gmp ];
15409     env.NIX_CFLAGS_COMPILE = "-I${pkgs.gmp.dev}/include";
15410     NIX_CFLAGS_LINK = "-L${pkgs.gmp.out}/lib -lgmp";
15411     meta = {
15412       description = "Utilities related to prime numbers, using GMP";
15413       homepage = "https://github.com/danaj/Math-Prime-Util-GMP";
15414       license = with lib.licenses; [ artistic1 gpl1Plus ];
15415       maintainers = [ maintainers.sgo ];
15416     };
15417   };
15419   MathProvablePrime = buildPerlPackage {
15420     pname = "Math-ProvablePrime";
15421     version = "0.51";
15422     src = fetchurl {
15423       url = "mirror://cpan/authors/id/F/FE/FELIPE/Math-ProvablePrime-0.51.tar.gz";
15424       hash = "sha256-D7YWRJ+weorR6KgJxwghthjlPcD/3ayWVnYY3jPEbBE=";
15425     };
15426     buildInputs = [ FileWhich TestClass TestDeep TestException TestFailWarnings ];
15427     propagatedBuildInputs = [ BytesRandomSecureTiny ];
15428     meta = {
15429       description = "Generate a provable prime number, in pure Perl";
15430       license = with lib.licenses; [ artistic1 gpl1Plus ];
15431       maintainers = [ maintainers.sgo ];
15432     };
15433   };
15435   MathRandom = buildPerlPackage {
15436     pname = "Math-Random";
15437     version = "0.72";
15438     src = fetchurl {
15439       url = "mirror://cpan/authors/id/G/GR/GROMMEL/Math-Random-0.72.tar.gz";
15440       hash = "sha256-vgUiMogR2W3lBdnrrD0JY1kCb6jVw497uZmnjsW8JUw=";
15441     };
15442     meta = {
15443       description = "Random Number Generators";
15444       license = with lib.licenses; [ artistic1 gpl1Plus publicDomain ];
15445     };
15446   };
15448   MathRandomISAAC = buildPerlPackage {
15449     pname = "Math-Random-ISAAC";
15450     version = "1.004";
15451     src = fetchurl {
15452       url = "mirror://cpan/authors/id/J/JA/JAWNSY/Math-Random-ISAAC-1.004.tar.gz";
15453       hash = "sha256-J3PwL78gfpdF52oDffCL9ajMmH7SPFcEDOf3sVYfK3w=";
15454     };
15455     buildInputs = [ TestNoWarnings ];
15456     meta = {
15457       description = "Perl interface to the ISAAC PRNG algorithm";
15458       homepage = "https://search.cpan.org/dist/Math-Random-ISAAC";
15459       license = with lib.licenses; [ publicDomain mit artistic2 gpl1Plus ];
15460     };
15461   };
15463   MathRandomMTAuto = buildPerlPackage {
15464     pname = "Math-Random-MT-Auto";
15465     version = "6.23";
15466     src = fetchurl {
15467       url = "mirror://cpan/authors/id/J/JD/JDHEDDEN/Math-Random-MT-Auto-6.23.tar.gz";
15468       hash = "sha256-WLy1rTFilk/1oMTS3LqgICwshdnEcElvO3qZh1d3YxM=";
15469     };
15470     propagatedBuildInputs = [ ObjectInsideOut ];
15471     meta = {
15472       description = "Auto-seeded Mersenne Twister PRNGs";
15473       license = with lib.licenses; [ bsd3 ];
15474     };
15475   };
15477   MathRandomSecure = buildPerlPackage {
15478     pname = "Math-Random-Secure";
15479     version = "0.080001";
15480     src = fetchurl {
15481       url = "mirror://cpan/authors/id/F/FR/FREW/Math-Random-Secure-0.080001.tar.gz";
15482       hash = "sha256-v6Sk6BfspyIGfB/z2hKrWrgNbFfapeXnq5NQyixx6zU=";
15483     };
15484     buildInputs = [ ListMoreUtils TestSharedFork TestWarn ];
15485     propagatedBuildInputs = [ CryptRandomSource MathRandomISAAC ];
15486     meta = {
15487       description = "Cryptographically-secure, cross-platform replacement for rand()";
15488       homepage = "https://github.com/frioux/Math-Random-Secure";
15489       license = with lib.licenses; [ artistic2 ];
15490     };
15491   };
15493   MathRound = buildPerlPackage {
15494     pname = "Math-Round";
15495     version = "0.07";
15496     src = fetchurl {
15497       url = "mirror://cpan/authors/id/G/GR/GROMMEL/Math-Round-0.07.tar.gz";
15498       hash = "sha256-c6cymoblSlwppEA4LlgDCVtY8zEp5hod8Ak7SCTekyc=";
15499     };
15500     meta = {
15501       description = "Perl extension for rounding numbers";
15502       license = with lib.licenses; [ artistic1 gpl1Plus ];
15503     };
15504   };
15506   MathVecStat = buildPerlPackage {
15507     pname = "Math-VecStat";
15508     version = "0.08";
15509     src = fetchurl {
15510       url = "mirror://cpan/authors/id/A/AS/ASPINELLI/Math-VecStat-0.08.tar.gz";
15511       hash = "sha256-QJqODksQJcjoD2KPZal3iqd6soUWFAbKSmwJexNlbQ0=";
15512     };
15513     meta = {
15514       description = "Some basic numeric stats on vectors";
15515       license = with lib.licenses; [ artistic1 gpl1Plus ];
15516     };
15517   };
15519   MaxMindDBCommon = buildPerlPackage {
15520     pname = "MaxMind-DB-Common";
15521     version = "0.040001";
15522     src = fetchurl {
15523       url = "mirror://cpan/authors/id/M/MA/MAXMIND/MaxMind-DB-Common-0.040001.tar.gz";
15524       hash = "sha256-a8bfS9NjANB6pKX4GYrmaUyn4xPAOBCciNvDqZeyG9c=";
15525     };
15526     propagatedBuildInputs = [ DataDumperConcise DateTime ListAllUtils MooXStrictConstructor ];
15527     meta = {
15528       description = "Code shared by the MaxMind DB reader and writer modules";
15529       homepage = "https://metacpan.org/release/MaxMind-DB-Common";
15530       license = with lib.licenses; [ artistic2 ];
15531     };
15532   };
15534   MaxMindDBReader = buildPerlPackage {
15535     pname = "MaxMind-DB-Reader";
15536     version = "1.000014";
15537     src = fetchurl {
15538       url = "mirror://cpan/authors/id/M/MA/MAXMIND/MaxMind-DB-Reader-1.000014.tar.gz";
15539       hash = "sha256-OCAHj5yWf5qIch6kDKBeSZnBxTAb68HRGQYPntXOOak=";
15540     };
15541     propagatedBuildInputs = [ DataIEEE754 DataPrinter DataValidateIP MaxMindDBCommon ];
15542     buildInputs = [ PathClass TestBits TestFatal TestNumberDelta TestRequires ];
15543     meta = {
15544       description = "Read MaxMind DB files and look up IP addresses";
15545       homepage = "https://metacpan.org/release/MaxMind-DB-Reader";
15546       license = with lib.licenses; [ artistic2 ];
15547     };
15548   };
15550   MaxMindDBReaderXS = buildPerlModule {
15551     pname = "MaxMind-DB-Reader-XS";
15552     version = "1.000009";
15553     src = fetchurl {
15554       url = "mirror://cpan/authors/id/M/MA/MAXMIND/MaxMind-DB-Reader-XS-1.000009.tar.gz";
15555       hash = "sha256-qm+4f+0Z1UnymxNd55l+6SsSJ9Ymyw6JBgCpHK3DBTo=";
15556     };
15557     propagatedBuildInputs = [ pkgs.libmaxminddb MathInt128 MaxMindDBReader ];
15558     buildInputs = [ NetWorks PathClass TestFatal TestNumberDelta TestRequires ];
15559     meta = {
15560       description = "Fast XS implementation of MaxMind DB reader";
15561       homepage = "https://metacpan.org/release/MaxMind-DB-Reader-XS";
15562       license = with lib.licenses; [ artistic2 ];
15563       broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.MaxMindDBReaderXS.x86_64-darwin
15564     };
15565   };
15567   MaxMindDBWriter = buildPerlModule {
15568     pname = "MaxMind-DB-Writer";
15569     version = "0.300003";
15570     src = fetchurl {
15571       url = "mirror://cpan/authors/id/M/MA/MAXMIND/MaxMind-DB-Writer-0.300003.tar.gz";
15572       hash = "sha256-ulP1upZfekd/ZxZNl7R1oMESCIcv7fI4mIVQ2SvN6z4=";
15573     };
15574     propagatedBuildInputs = [ DigestSHA1 MaxMindDBReader MooseXParamsValidate MooseXStrictConstructor NetWorks SerealDecoder SerealEncoder ];
15575     buildInputs = [ DevelRefcount JSON TestBits TestDeep TestFatal TestHexDifferences TestRequires TestWarnings ];
15576     hardeningDisable = [ "format" ];
15577     meta = {
15578       description = "Create MaxMind DB database files";
15579       homepage = "https://metacpan.org/release/MaxMind-DB-Writer";
15580       license = with lib.licenses; [ artistic1 gpl1Plus ];
15581       broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.MaxMindDBWriter.x86_64-darwin
15582     };
15583   };
15585   Memoize = buildPerlPackage {
15586     pname = "Memoize";
15587     version = "1.16";
15588     src = fetchurl {
15589       url = "mirror://cpan/authors/id/A/AR/ARISTOTLE/Memoize-1.16.tar.gz";
15590       hash = "sha256-CRlSvPSS7O41ueW41ykgxYAjRB15IIwduHg3xcV4B74=";
15591     };
15592     meta = {
15593       description = "Make functions faster by trading space for time";
15594       license = with lib.licenses; [ artistic1 gpl1Plus ];
15595     };
15596   };
15598   MemoizeExpireLRU = buildPerlPackage {
15599     pname = "Memoize-ExpireLRU";
15600     version = "0.56";
15601     src = fetchurl {
15602       url = "mirror://cpan/authors/id/N/NE/NEILB/Memoize-ExpireLRU-0.56.tar.gz";
15603       hash = "sha256-7oNjAcu6uaJLBfxlft+pS3/YV42YNuVmoZHQpbAc1/Y=";
15604     };
15605     meta = {
15606       description = "Expiry plug-in for Memoize that adds LRU cache expiration";
15607       homepage = "https://github.com/neilb/Memoize-ExpireLRU";
15608       license = with lib.licenses; [ artistic1 gpl1Plus ];
15609     };
15610   };
15612   Menlo = buildPerlPackage {
15613     pname = "Menlo";
15614     version = "1.9019";
15615     src = fetchurl {
15616       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Menlo-1.9019.tar.gz";
15617       hash = "sha256-O1c/aOezo2qHyGC+JYWZMw+sJItRiFTftWV6xIPcpWU=";
15618     };
15619     propagatedBuildInputs = [ CPANCommonIndex CPANMetaCheck CaptureTiny ExtUtilsHelpers ExtUtilsInstallPaths Filepushd HTTPTinyish ModuleCPANfile ParsePMFile StringShellQuote Win32ShellQuote locallib ];
15620     meta = {
15621       description = "A CPAN client";
15622       homepage = "https://github.com/miyagawa/cpanminus";
15623       license = with lib.licenses; [ artistic1 gpl1Plus ];
15624     };
15625   };
15627   MenloLegacy = buildPerlPackage {
15628     pname = "Menlo-Legacy";
15629     version = "1.9022";
15630     src = fetchurl {
15631       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Menlo-Legacy-1.9022.tar.gz";
15632       hash = "sha256-pqysP+4xioBLQ53lSsvHwn8LRM/a2FUbvJzUWYarwgE=";
15633     };
15634     propagatedBuildInputs = [ Menlo ];
15635     meta = {
15636       description = "Legacy internal and client support for Menlo";
15637       homepage = "https://github.com/miyagawa/cpanminus";
15638       license = with lib.licenses; [ artistic1 gpl1Plus ];
15639     };
15640   };
15642   MetaBuilder = buildPerlModule {
15643     pname = "Meta-Builder";
15644     version = "0.004";
15645     src = fetchurl {
15646       url = "mirror://cpan/authors/id/E/EX/EXODIST/Meta-Builder-0.004.tar.gz";
15647       hash = "sha256-rLSZqnIG652yHrhTV6dFIb/jva5KZBbVCnx1uTnPVv4=";
15648     };
15649     buildInputs = [ FennecLite TestException ];
15650     meta = {
15651       description = "Tools for creating Meta objects to track custom metrics";
15652       license = with lib.licenses; [ artistic1 gpl1Plus ];
15653     };
15654   };
15656   MetaCPANClient = buildPerlPackage {
15657     pname = "MetaCPAN-Client";
15658     version = "2.030000";
15659     src = fetchurl {
15660       url = "mirror://cpan/authors/id/M/MI/MICKEY/MetaCPAN-Client-2.030000.tar.gz";
15661       hash = "sha256-2bdlxSN3VPFyYmljgqc4XZCy0BmGl5gXhisWZLBt068=";
15662     };
15664     # Most tests are online, so we only include offline tests
15665     postPatch = ''
15666       substituteInPlace Makefile.PL \
15667         --replace '"t/*.t t/api/*.t"' \
15668         '"t/00-report-prereqs.t t/api/_get.t t/api/_get_or_search.t t/api/_search.t t/entity.t t/request.t t/resultset.t"'
15669     '';
15671     buildInputs = [ LWPProtocolHttps TestFatal TestNeeds ];
15672     propagatedBuildInputs = [ IOSocketSSL JSONMaybeXS Moo RefUtil SafeIsa TypeTiny URI ];
15673     meta = {
15674       description = "A comprehensive, DWIM-featured client to the MetaCPAN API";
15675       homepage = "https://github.com/metacpan/metacpan-client";
15676       license = with lib.licenses; [ artistic1 gpl1Plus ];
15677       maintainers = with maintainers; [ sgo ];
15678     };
15679   };
15681   MethodSignaturesSimple = buildPerlPackage {
15682     pname = "Method-Signatures-Simple";
15683     version = "1.07";
15684     src = fetchurl {
15685       url = "mirror://cpan/authors/id/R/RH/RHESA/Method-Signatures-Simple-1.07.tar.gz";
15686       hash = "sha256-yM19Rxl3zIh2BEGSq9mKga/d/yomu5oQu+NY76Nx2tw=";
15687     };
15688     propagatedBuildInputs = [ DevelDeclare ];
15689     meta = {
15690       description = "Basic method declarations with signatures, without source filters";
15691       license = with lib.licenses; [ artistic1 gpl1Plus ];
15692     };
15693   };
15695   MetricsAny = buildPerlModule {
15696     pname = "Metrics-Any";
15697     version = "0.10";
15698     src = fetchurl {
15699       url = "mirror://cpan/authors/id/P/PE/PEVANS/Metrics-Any-0.10.tar.gz";
15700       hash = "sha256-qQ6t+civJKUWu5obZwYfZBhT+QuP7p/8JNK7lyDouZs=";
15701     };
15702     buildInputs = [ Test2Suite ];
15703     meta = {
15704       description = "Abstract collection of monitoring metrics";
15705       license = with lib.licenses; [ artistic1 gpl1Plus ];
15706     };
15707   };
15709   # TODO: use CPAN version
15710   MHonArc = buildPerlPackage rec {
15711     pname = "MHonArc";
15712     version = "2.6.24";
15714     src = fetchurl {
15715       url = "mirror://cpan/authors/id/L/LD/LDIDRY/MHonArc-2.6.24.tar.gz";
15716       hash = "sha256-RX3HN07lnLdaBynlHO8vLFK0gYD3Odj9lW6hmIKBXzM=";
15717     };
15719     outputs = [ "out" "dev" ]; # no "devdoc"
15721     installTargets = [ "install" ];
15723     meta = {
15724       homepage = "https://www.mhonarc.org/";
15725       description = "A mail-to-HTML converter";
15726       mainProgram = "mhonarc";
15727       license = with lib.licenses; [ gpl2Only ];
15728     };
15729   };
15731   MIMECharset = buildPerlPackage {
15732     pname = "MIME-Charset";
15733     version = "1.013.1";
15734     src = fetchurl {
15735       url = "mirror://cpan/authors/id/N/NE/NEZUMI/MIME-Charset-1.013.1.tar.gz";
15736       hash = "sha256-G7em4MDSUfI9bmC/hMmt78W3TuxYR1v+5NORB+YIcPA=";
15737     };
15738     meta = {
15739       description = "Charset Information for MIME";
15740       license = with lib.licenses; [ artistic1 gpl1Plus ];
15741     };
15742   };
15744   mimeConstruct = buildPerlPackage {
15745     pname = "mime-construct";
15746     version = "1.11";
15747     src = fetchurl {
15748       url = "mirror://cpan/authors/id/R/RO/ROSCH/mime-construct-1.11.tar.gz";
15749       hash = "sha256-TNe7YbUdQRktFJjBBRqmpMzXWusJtx0uxwanCEpKkwM=";
15750     };
15751     outputs = [ "out" ];
15752     buildInputs = [ ProcWaitStat ];
15753     meta = {
15754       description = "Construct and optionally mail MIME messages";
15755       license = with lib.licenses; [ gpl2Plus ];
15756     };
15757   };
15759   MIMEEncWords = buildPerlPackage {
15760     pname = "MIME-EncWords";
15761     version = "1.014.3";
15762     src = fetchurl {
15763       url = "mirror://cpan/authors/id/N/NE/NEZUMI/MIME-EncWords-1.014.3.tar.gz";
15764       hash = "sha256-6a+1SGEdTn5sULfwa70rG7KAjjeoEN7vtTfGevVIUjg=";
15765     };
15766     propagatedBuildInputs = [ MIMECharset ];
15767     meta = {
15768       description = "Deal with RFC 2047 encoded words (improved)";
15769       homepage = "https://metacpan.org/pod/MIME::EncWords";
15770       license = with lib.licenses; [ artistic1 gpl1Plus ];
15771       maintainers = [ maintainers.sgo ];
15772     };
15773   };
15775   MIMELite = buildPerlPackage {
15776     pname = "MIME-Lite";
15777     version = "3.033";
15778     src = fetchurl {
15779       url = "mirror://cpan/authors/id/R/RJ/RJBS/MIME-Lite-3.033.tar.gz";
15780       hash = "sha256-eKJ58dLiQlUcNH75ehP8Z1dmYCy4TCqAxWlAD082i6s=";
15781     };
15782     propagatedBuildInputs = [ EmailDateFormat ];
15783     meta = {
15784       description = "Low-calorie MIME generator (DEPRECATED)";
15785       license = with lib.licenses; [ artistic1 gpl1Plus ];
15786     };
15787   };
15789   MIMELiteHTML = buildPerlPackage {
15790     pname = "MIME-Lite-HTML";
15791     version = "1.24";
15792     src = fetchurl {
15793       url = "mirror://cpan/authors/id/A/AL/ALIAN/MIME-Lite-HTML-1.24.tar.gz";
15794       hash = "sha256-22A8y/ZlO80oz6gk1y5RHq0Bn8ivufGFTshy2y082No=";
15795     };
15796     doCheck = false;
15797     propagatedBuildInputs = [ LWP MIMELite ];
15798     meta = {
15799       description = "Provide routine to transform a HTML page in a MIME-Lite mail";
15800       license = with lib.licenses; [ artistic1 gpl1Plus ];
15801     };
15802   };
15804   MIMETools = buildPerlPackage {
15805     pname = "MIME-tools";
15806     version = "5.509";
15807     src = fetchurl {
15808       url = "mirror://cpan/authors/id/D/DS/DSKOLL/MIME-tools-5.509.tar.gz";
15809       hash = "sha256-ZFefDJI9gdmiGUWG5Hw0dVGeJkbktcECqJIHWfrPaXM=";
15810     };
15811     propagatedBuildInputs = [ MailTools ];
15812     buildInputs = [ TestDeep ];
15813     meta = {
15814       description = "Tools to manipulate MIME messages";
15815       license = with lib.licenses; [ artistic1 gpl1Plus ];
15816     };
15817   };
15819   MIMETypes = buildPerlPackage {
15820     pname = "MIME-Types";
15821     version = "2.24";
15822     src = fetchurl {
15823       url = "mirror://cpan/authors/id/M/MA/MARKOV/MIME-Types-2.24.tar.gz";
15824       hash = "sha256-Yp42HyKyIL5QwtpzVOI8BFF1dwmgPCWiLzFg7blMtl8=";
15825     };
15826     meta = {
15827       description = "Definition of MIME types";
15828       homepage = "http://perl.overmeer.net/CPAN";
15829       license = with lib.licenses; [ artistic1 gpl1Plus ];
15830     };
15831   };
15833   Minion = buildPerlPackage {
15834     pname = "Minion";
15835     version = "10.25";
15836     src = fetchurl {
15837       url = "mirror://cpan/authors/id/S/SR/SRI/Minion-10.25.tar.gz";
15838       hash = "sha256-C+CoN1N2iJ2gRgRpY4TAz5iyYh0mUNnrAwf25LlAra0=";
15839     };
15840     propagatedBuildInputs = [ Mojolicious YAMLLibYAML ];
15841     meta = {
15842       description = "A high performance job queue for Perl";
15843       homepage = "https://github.com/mojolicious/minion";
15844       license = with lib.licenses; [ artistic2 ];
15845       maintainers = [ maintainers.sgo ];
15846     };
15847   };
15849   MinionBackendRedis = buildPerlModule {
15850     pname = "Minion-Backend-Redis";
15851     version = "0.003";
15852     src = fetchurl {
15853       url = "mirror://cpan/authors/id/D/DF/DFUG/Minion-Backend-Redis-0.003.tar.gz";
15854       hash = "sha256-zXZRIQbfHKmQF75fObSmXgSCawzZQxe3GsAWGzXzI6A=";
15855     };
15856     buildInputs = [ ModuleBuildTiny ];
15857     propagatedBuildInputs = [ Minion MojoRedis Mojolicious SortVersions ];
15858     meta = {
15859       homepage = "https://github.com/Difegue/Minion-Backend-Redis";
15860       description = "Redis backend for Minion job queue";
15861       license = with lib.licenses; [ artistic2 ];
15862       maintainers = with maintainers; [ tomasajt ];
15863     };
15864   };
15866   MinionBackendSQLite = buildPerlModule {
15867     pname = "Minion-Backend-SQLite";
15868     version = "5.0.7";
15869     src = fetchurl {
15870       url = "mirror://cpan/authors/id/D/DB/DBOOK/Minion-Backend-SQLite-v5.0.7.tar.gz";
15871       hash = "sha256-zd49IrGv+n32seErKlLp88G2gci1k6G+TeO+aOTaXHI=";
15872     };
15873     buildInputs = [ ModuleBuildTiny ];
15874     propagatedBuildInputs = [ Minion MojoSQLite ];
15875     meta = {
15876       description = "SQLite backend for Minion job queue";
15877       homepage = "https://github.com/Grinnz/Minion-Backend-SQLite";
15878       license = with lib.licenses; [ artistic2 ];
15879       maintainers = [ maintainers.sgo ];
15880     };
15881   };
15883   MinionBackendmysql = buildPerlPackage {
15884     pname = "Minion-Backend-mysql";
15885     version = "1.003";
15886     src = fetchurl {
15887       url = "mirror://cpan/authors/id/P/PR/PREACTION/Minion-Backend-mysql-1.003.tar.gz";
15888       hash = "sha256-aaJcJAyw5NTvTxqjKgTt+Nolt+jTqCDP1kVhWZ7aRUI=";
15889     };
15890     buildInputs = [ Testmysqld ];
15891     propagatedBuildInputs = [ Minion Mojomysql ];
15892     meta = {
15893       description = "MySQL backend for the Minion job queue";
15894       homepage = "https://github.com/preaction/Minion-Backend-mysql";
15895       license = with lib.licenses; [ artistic1 gpl1Plus ];
15896       maintainers = [ maintainers.sgo ];
15897     };
15898   };
15900   MixinLinewise = buildPerlPackage {
15901     pname = "Mixin-Linewise";
15902     version = "0.111";
15903     src = fetchurl {
15904       url = "mirror://cpan/authors/id/R/RJ/RJBS/Mixin-Linewise-0.111.tar.gz";
15905       hash = "sha256-0o6IUWzptSlcMWMdzM3A/I8qt9ilzIdrsbIBMQh7Ads=";
15906     };
15907     propagatedBuildInputs = [ PerlIOutf8_strict SubExporter ];
15908     meta = {
15909       description = "Write your linewise code for handles; this does the rest";
15910       homepage = "https://github.com/rjbs/Mixin-Linewise";
15911       license = with lib.licenses; [ artistic1 gpl1Plus ];
15912     };
15913   };
15915   MLDBM = buildPerlModule {
15916     pname = "MLDBM";
15917     version = "2.05";
15918     src = fetchurl {
15919       url = "mirror://cpan/authors/id/C/CH/CHORNY/MLDBM-2.05.tar.gz";
15920       hash = "sha256-WGiA7QwggBq79nNHR+E+AgPt7+zm68TyDdtQWfAqF6I=";
15921     };
15922     meta = {
15923       description = "Store multi-level Perl hash structure in single level tied hash";
15924       license = with lib.licenses; [ artistic1 gpl1Plus ];
15925     };
15926   };
15928   MNI-Perllib = callPackage ../development/perl-modules/MNI {};
15930   Mo = buildPerlPackage {
15931     pname = "Mo";
15932     version = "0.40";
15933     src = fetchurl {
15934       url = "mirror://cpan/authors/id/T/TI/TINITA/Mo-0.40.tar.gz";
15935       hash = "sha256-kdJBUjkfjCeX7jUDkTja6m3j7gO98+G4ck+lx1VAzrk=";
15936     };
15937     meta = {
15938       description = "Micro Objects. Mo is less";
15939       homepage = "https://github.com/ingydotnet/mo-pm";
15940       license = with lib.licenses; [ artistic1 gpl1Plus ];
15941       mainProgram = "mo-inline";
15942     };
15943   };
15945   MockConfig = buildPerlPackage {
15946     pname = "Mock-Config";
15947     version = "0.03";
15948     src = fetchurl {
15949       url = "mirror://cpan/authors/id/R/RU/RURBAN/Mock-Config-0.03.tar.gz";
15950       hash = "sha256-pbg0V1fKTyuTNfW+FOk+u7UChlIzp1W/U7xxVt7sABs=";
15951     };
15952     meta = {
15953       description = "Temporarily set Config or XSConfig values";
15954       license = with lib.licenses; [ artistic1 gpl1Plus ];
15955     };
15956   };
15958   ModernPerl = buildPerlPackage {
15959     pname = "Modern-Perl";
15960     version = "1.20230106";
15962     src = fetchurl {
15963       url = "mirror://cpan/authors/id/C/CH/CHROMATIC/Modern-Perl-1.20230106.tar.gz";
15964       hash = "sha256-BFncq4DOgrY0Yf2B7pTgbpplFdmPP7wxmDjdHmAoUfc=";
15965     };
15966     meta = {
15967       description = "Enable all of the features of Modern Perl with one import";
15968       homepage = "https://github.com/chromatic/Modern-Perl";
15969       license = with lib.licenses; [ artistic1 gpl1Plus ];
15970     };
15971   };
15973   Modulecpmfile = buildPerlModule {
15974     pname = "Module-cpmfile";
15975     version = "0.006";
15976     src = fetchurl {
15977       url = "mirror://cpan/authors/id/S/SK/SKAJI/Module-cpmfile-0.006.tar.gz";
15978       hash = "sha256-G8l24pN3JIlsn26unl3KmB4n+YQwuS3icO41FP0ArA8=";
15979     };
15980     buildInputs = [ ModuleBuildTiny ModuleCPANfile Test2Suite ];
15981     propagatedBuildInputs = [ YAMLPP ];
15982     meta = {
15983       description = "Parse cpmfile";
15984       homepage = "https://github.com/skaji/cpmfile";
15985       license = with lib.licenses; [ artistic1 gpl1Plus ];
15986       maintainers = [ maintainers.zakame ];
15987     };
15988   };
15990   ModuleBuild = buildPerlPackage {
15991     pname = "Module-Build";
15992     version = "0.4234";
15993     src = fetchurl {
15994       url = "mirror://cpan/authors/id/L/LE/LEONT/Module-Build-0.4234.tar.gz";
15995       hash = "sha256-Zq6sYSdBi+XkcerTdEZIx2a9AUgoJcW2ZlJnXyvIao8=";
15996     };
15997     postConfigure = lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
15998       # for unknown reason, the first run of Build fails
15999       ./Build || true
16000     '';
16001     postPatch = lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
16002       # remove version check since miniperl uses a stub of File::Temp, which do not provide a version:
16003       # https://github.com/arsv/perl-cross/blob/master/cnf/stub/File/Temp.pm
16004       sed -i '/File::Temp/d' \
16005         Build.PL
16007       # fix discover perl function, it can not handle a wrapped perl
16008       sed -i "s,\$self->_discover_perl_interpreter,'$(type -p perl)',g" \
16009         lib/Module/Build/Base.pm
16010     '';
16011     meta = {
16012       description = "Build and install Perl modules";
16013       license = with lib.licenses; [ artistic1 gpl1Plus ];
16014       mainProgram = "config_data";
16015     };
16016   };
16018   ModuleBuildDeprecated = buildPerlModule {
16019     pname = "Module-Build-Deprecated";
16020     version = "0.4210";
16021     src = fetchurl {
16022       url = "mirror://cpan/authors/id/L/LE/LEONT/Module-Build-Deprecated-0.4210.tar.gz";
16023       hash = "sha256-vgiTE/wjjuIYNHOsqMhrVfs89EeXMSy+m4ktY2JiFwM=";
16024     };
16025     doCheck = false;
16026     meta = {
16027       description = "A collection of modules removed from Module-Build";
16028       license = with lib.licenses; [ artistic1 gpl1Plus ];
16029     };
16030   };
16032   ModuleBuildPluggable = buildPerlModule {
16033     pname = "Module-Build-Pluggable";
16034     version = "0.10";
16035     src = fetchurl {
16036       url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/Module-Build-Pluggable-0.10.tar.gz";
16037       hash = "sha256-5bsqyxF3ksmEYogSrLD+w3bLlwyu6O3ldTXgTXYrDkA=";
16038     };
16039     propagatedBuildInputs = [ ClassAccessorLite ClassMethodModifiers DataOptList ];
16040     buildInputs = [ TestSharedFork ];
16041     meta = {
16042       description = "Module::Build meets plugins";
16043       homepage = "https://github.com/tokuhirom/Module-Build-Pluggable";
16044       license = with lib.licenses; [ artistic1 gpl1Plus ];
16045     };
16046   };
16048   ModuleBuildPluggableCPANfile = buildPerlModule {
16049     pname = "Module-Build-Pluggable-CPANfile";
16050     version = "0.05";
16051     src = fetchurl {
16052       url = "mirror://cpan/authors/id/K/KA/KAZEBURO/Module-Build-Pluggable-CPANfile-0.05.tar.gz";
16053       hash = "sha256-SuxsuiQMtueAFkBrajqHVjTMKuwI/8XxVy2hzcQOHnw=";
16054     };
16055     buildInputs = [ CaptureTiny TestRequires TestSharedFork ];
16056     propagatedBuildInputs = [ ModuleBuildPluggable ModuleCPANfile ];
16057     meta = {
16058       description = "Include cpanfile";
16059       homepage = "https://github.com/kazeburo/Module-Build-Pluggable-CPANfile";
16060       license = with lib.licenses; [ artistic1 gpl1Plus ];
16061     };
16062   };
16064   ModuleBuildPluggablePPPort = buildPerlModule {
16065     pname = "Module-Build-Pluggable-PPPort";
16066     version = "0.04";
16067     src = fetchurl {
16068       url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/Module-Build-Pluggable-PPPort-0.04.tar.gz";
16069       hash = "sha256-RAhLo9iBXzQ705FYWsXYM5pIB85cDdhMmNuPMQtkwOo=";
16070     };
16071     buildInputs = [ TestRequires TestSharedFork ];
16072     propagatedBuildInputs = [ ModuleBuildPluggable ];
16073     meta = {
16074       description = "Generate ppport.h";
16075       license = with lib.licenses; [ artistic1 gpl1Plus ];
16076     };
16077   };
16079   ModuleBuildTiny = buildPerlModule {
16080     pname = "Module-Build-Tiny";
16081     version = "0.047";
16082     src = fetchurl {
16083       url = "mirror://cpan/authors/id/L/LE/LEONT/Module-Build-Tiny-0.047.tar.gz";
16084       hash = "sha256-cSYOlCG5PDPdGz59DPFfdZwMp8dT+oQCeew75w+PjJ0=";
16085     };
16086     buildInputs = [ FileShareDir ];
16087     propagatedBuildInputs = [ ExtUtilsHelpers ExtUtilsInstallPaths ];
16088     meta = {
16089       description = "A tiny replacement for Module::Build";
16090       license = with lib.licenses; [ artistic1 gpl1Plus ];
16091     };
16092   };
16094   ModuleBuildWithXSpp = buildPerlModule {
16095     pname = "Module-Build-WithXSpp";
16096     version = "0.14";
16097     src = fetchurl {
16098       url = "mirror://cpan/authors/id/S/SM/SMUELLER/Module-Build-WithXSpp-0.14.tar.gz";
16099       hash = "sha256-U7PIyP29UPw9rT0Z2iDxtkFO9wZluTEXEMgClp50aTQ=";
16100     };
16101     propagatedBuildInputs = [ ExtUtilsCppGuess ExtUtilsXSpp ];
16102     meta = {
16103       description = "XS++ enhanced flavour of Module::Build";
16104       license = with lib.licenses; [ artistic1 gpl1Plus ];
16105     };
16106   };
16108   ModuleBuildXSUtil = buildPerlModule {
16109     pname = "Module-Build-XSUtil";
16110     version = "0.19";
16111     src = fetchurl {
16112       url = "mirror://cpan/authors/id/H/HI/HIDEAKIO/Module-Build-XSUtil-0.19.tar.gz";
16113       hash = "sha256-kGOzw0bt60IoB//kn/sjA4xPkA1Kd7hFzktT2XvylAA=";
16114     };
16115     buildInputs = [ CaptureTiny CwdGuard FileCopyRecursiveReduced ];
16116     propagatedBuildInputs = [ DevelCheckCompiler ];
16117     perlPreHook = "export LD=$CC";
16118     meta = {
16119       description = "A Module::Build class for building XS modules";
16120       homepage = "https://github.com/hideo55/Module-Build-XSUtil";
16121       license = with lib.licenses; [ artistic1 gpl1Plus ];
16122     };
16123   };
16125   ModuleCompile = buildPerlPackage rec {
16126     pname = "Module-Compile";
16127     version = "0.38";
16128     src = fetchurl {
16129       url = "mirror://cpan/authors/id/I/IN/INGY/Module-Compile-0.38.tar.gz";
16130       hash = "sha256-gJDPu2ESNDfu/sPjvthgBdH3xaUp+2/aLr68ZWS5qhA=";
16131     };
16132     propagatedBuildInputs = [ CaptureTiny DigestSHA1 ];
16133     meta = {
16134       description = "Perl Module Compilation";
16135       homepage = "https://github.com/ingydotnet/module-compile-pm";
16136       license = with lib.licenses; [ artistic1 gpl1Plus ];
16137     };
16138   };
16140   ModuleCPANTSAnalyse = buildPerlPackage {
16141     pname = "Module-CPANTS-Analyse";
16142     version = "1.02";
16143     src = fetchurl {
16144       url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/Module-CPANTS-Analyse-1.02.tar.gz";
16145       hash = "sha256-nhFzm5zQi6LXWllzfx+yl/RYA/KJBjxcdZv8eP1Rbns=";
16146     };
16147     propagatedBuildInputs = [ ArchiveAnyLite ArrayDiff ClassAccessor DataBinary FileFindObject ModuleFind ParseDistname PerlPrereqScannerNotQuiteLite SoftwareLicense ];
16148     buildInputs = [ ExtUtilsMakeMakerCPANfile TestFailWarnings ];
16149     meta = {
16150       description = "Generate Kwalitee ratings for a distribution";
16151       homepage = "https://cpants.cpanauthors.org";
16152       license = with lib.licenses; [ artistic1 gpl1Plus ];
16153     };
16154   };
16156   ModuleCPANfile = buildPerlPackage {
16157     pname = "Module-CPANfile";
16158     version = "1.1004";
16159     src = fetchurl {
16160       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Module-CPANfile-1.1004.tar.gz";
16161       hash = "sha256-iO++LppkLc6qGGQw/t/PmZqvDgb2zO0opxS45WtRSSE=";
16162     };
16163     buildInputs = [ Filepushd ];
16164     meta = {
16165       description = "Parse cpanfile";
16166       homepage = "https://github.com/miyagawa/cpanfile";
16167       license = with lib.licenses; [ artistic1 gpl1Plus ];
16168     };
16169   };
16171   ModuleExtractUse = buildPerlModule {
16172     pname = "Module-ExtractUse";
16173     version = "0.345";
16174     src = fetchurl {
16175       url = "mirror://cpan/authors/id/D/DO/DOMM/Module-ExtractUse-0.345.tar.gz";
16176       hash = "sha256-juJOh0KrnaeSKL4Yfdoxm01fUKkaHs+H1JQhO1uzDdE=";
16177     };
16178     propagatedBuildInputs = [ ParseRecDescent PodStrip ];
16179     buildInputs = [ TestDeep TestNoWarnings ];
16180     meta = {
16181       description = "Find out what modules are used";
16182       license = with lib.licenses; [ artistic1 gpl1Plus ];
16183     };
16184   };
16186   ModuleExtractVERSION = buildPerlPackage {
16187     pname = "Module-Extract-VERSION";
16188     version = "1.116";
16189     src = fetchurl {
16190       url = "mirror://cpan/authors/id/B/BD/BDFOY/Module-Extract-VERSION-1.116.tar.gz";
16191       hash = "sha256-QZA6BoUXgoU0X12oVdkluUVO5xCpeV48TDJ7ri9Vdpg=";
16192     };
16193     meta = {
16194       homepage = "https://github.com/briandfoy/module-extract-version";
16195       description = "Extract a module version safely";
16196       license = lib.licenses.artistic2;
16197     };
16198   };
16200   ModuleFind = buildPerlPackage {
16201     pname = "Module-Find";
16202     version = "0.16";
16203     src = fetchurl {
16204       url = "mirror://cpan/authors/id/C/CR/CRENZ/Module-Find-0.16.tar.gz";
16205       hash = "sha256-S8qqN2kVAUco1PUzqYxbWdZlBRzTzbr8lg5aZv0TEJI=";
16206     };
16207     meta = {
16208       description = "Find and use installed modules in a (sub)category";
16209       license = with lib.licenses; [ artistic1 gpl1Plus ];
16210     };
16211   };
16213   ModuleImplementation = buildPerlPackage {
16214     pname = "Module-Implementation";
16215     version = "0.09";
16216     src = fetchurl {
16217       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Module-Implementation-0.09.tar.gz";
16218       hash = "sha256-wV8aEvDCEwye//PC4a/liHsIzNAzvRMhhtHn1Qh/1m0=";
16219     };
16220     buildInputs = [ TestFatal TestRequires ];
16221     propagatedBuildInputs = [ ModuleRuntime TryTiny ];
16222     meta = {
16223       description = "Loads one of several alternate underlying implementations for a module";
16224       homepage = "https://metacpan.org/release/Module-Implementation";
16225       license = with lib.licenses; [ artistic2 ];
16226     };
16227   };
16229   ModuleInfo = buildPerlPackage {
16230     pname = "Module-Info";
16231     version = "0.37";
16232     src = fetchurl {
16233       url = "mirror://cpan/authors/id/N/NE/NEILB/Module-Info-0.37.tar.gz";
16234       hash = "sha256-jqgCUpeQsZwfNzoeR9g4FmT5xMH3ao2LvG221zEcJEg=";
16235     };
16236     buildInputs = [ TestPod TestPodCoverage ];
16237     propagatedBuildInputs = [ BUtils ];
16238     meta = {
16239       description = "Information about Perl modules";
16240       license = with lib.licenses; [ artistic1 gpl1Plus ];
16241       mainProgram = "module_info";
16242     };
16243   };
16245   ModuleInstall = buildPerlPackage {
16246     pname = "Module-Install";
16247     version = "1.21";
16248     src = fetchurl {
16249       url = "mirror://cpan/authors/id/E/ET/ETHER/Module-Install-1.21.tar.gz";
16250       hash = "sha256-+/kQB/MFZfOSDhBgVf0NQoeYHV59rYs1MjzktzPxWns=";
16251     };
16252     propagatedBuildInputs = [ FileRemove ModuleBuild ModuleScanDeps YAMLTiny ];
16253     meta = {
16254       description = "Standalone, extensible Perl module installer";
16255       license = with lib.licenses; [ artistic1 gpl1Plus ];
16256     };
16257   };
16259   ModuleInstallAuthorRequires = buildPerlPackage {
16260     pname = "Module-Install-AuthorRequires";
16261     version = "0.02";
16262     src = fetchurl {
16263       url = "mirror://cpan/authors/id/F/FL/FLORA/Module-Install-AuthorRequires-0.02.tar.gz";
16264       hash = "sha256-zGMhU310XSqDqChvhe8zRnRZOcw7NBAgRb7IVg6PTOw=";
16265     };
16266     propagatedBuildInputs = [ ModuleInstall ];
16267     meta = {
16268       description = "Declare author-only dependencies";
16269       license = with lib.licenses; [ artistic1 gpl1Plus ];
16270     };
16271   };
16273   ModuleInstallAuthorTests = buildPerlPackage {
16274     pname = "Module-Install-AuthorTests";
16275     version = "0.002";
16276     src = fetchurl {
16277       url = "mirror://cpan/authors/id/R/RJ/RJBS/Module-Install-AuthorTests-0.002.tar.gz";
16278       hash = "sha256-QCVyLeY1ft9TwoUBsA59qSzS+fxhG6B1N2Gg4d/zLYg=";
16279     };
16280     propagatedBuildInputs = [ ModuleInstall ];
16281     meta = {
16282       description = "Designate tests only run by module authors";
16283       license = with lib.licenses; [ artistic1 gpl1Plus ];
16284     };
16285   };
16287   ModuleInstallGithubMeta = buildPerlPackage {
16288     pname = "Module-Install-GithubMeta";
16289     version = "0.30";
16290     src = fetchurl {
16291       url = "mirror://cpan/authors/id/B/BI/BINGOS/Module-Install-GithubMeta-0.30.tar.gz";
16292       hash = "sha256-Lq1EyXPHSNctnxmeQcRNwYAf6a4GsPrcWUR2k6PJgoE=";
16293     };
16294     buildInputs = [ CaptureTiny ];
16295     propagatedBuildInputs = [ ModuleInstall ];
16296     meta = {
16297       description = "A Module::Install extension to include GitHub meta information in META.yml";
16298       homepage = "https://github.com/bingos/module-install-githubmeta";
16299       license = with lib.licenses; [ artistic1 gpl1Plus ];
16300       maintainers = [ maintainers.sgo ];
16301     };
16302   };
16304   ModuleInstallReadmeFromPod = buildPerlPackage {
16305     pname = "Module-Install-ReadmeFromPod";
16306     version = "0.30";
16307     src = fetchurl {
16308       url = "mirror://cpan/authors/id/B/BI/BINGOS/Module-Install-ReadmeFromPod-0.30.tar.gz";
16309       hash = "sha256-efbfVTZhn6/72mlr3SXMrRfEab8y5RzT5hM2bUlAAWk=";
16310     };
16311     buildInputs = [ TestInDistDir ];
16312     propagatedBuildInputs = [ CaptureTiny IOAll ModuleInstall PodMarkdown ];
16313     meta = {
16314       description = "A Module::Install extension to automatically convert POD to a README";
16315       homepage = "https://github.com/bingos/module-install-readmefrompod";
16316       license = with lib.licenses; [ artistic1 gpl1Plus ];
16317       maintainers = [ maintainers.sgo ];
16318     };
16319   };
16321   ModuleInstallReadmeMarkdownFromPod = buildPerlPackage {
16322     pname = "Module-Install-ReadmeMarkdownFromPod";
16323     version = "0.04";
16324     src = fetchurl {
16325       url = "mirror://cpan/authors/id/M/MA/MATTN/Module-Install-ReadmeMarkdownFromPod-0.04.tar.gz";
16326       hash = "sha256-MAsuJE+DuaVKlfhATBzTrwY1tPrpdMplOQ7kKOxmhZE=";
16327     };
16328     buildInputs = [ URI ];
16329     propagatedBuildInputs = [ ModuleInstall PodMarkdown ];
16330     meta = {
16331       description = "Create README.mkdn from POD";
16332       homepage = "https://search.cpan.org/dist/Module-Install-ReadmeMarkdownFromPod";
16333       license = with lib.licenses; [ artistic1 gpl1Plus ];
16334       maintainers = [ maintainers.sgo ];
16335     };
16336   };
16338   ModuleInstallRepository = buildPerlPackage {
16339     pname = "Module-Install-Repository";
16340     version = "0.06";
16341     src = fetchurl {
16342       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Module-Install-Repository-0.06.tar.gz";
16343       hash = "sha256-AOJZDQkznMzL2qMo0SrY7HfoMaOMmtZjcF5Z7LsYcis=";
16344     };
16345     buildInputs = [ PathClass ];
16346     meta = {
16347       description = "Automatically sets repository URL from svn/svk/Git checkout";
16348       license = with lib.licenses; [ artistic1 gpl1Plus ];
16349       maintainers = [ maintainers.sgo ];
16350     };
16351   };
16353   ModuleInstallXSUtil = buildPerlPackage {
16354     pname = "Module-Install-XSUtil";
16355     version = "0.45";
16356     src = fetchurl {
16357       url = "mirror://cpan/authors/id/G/GF/GFUJI/Module-Install-XSUtil-0.45.tar.gz";
16358       hash = "sha256-/nHlMyC+4TGXdJoLF2CaomP3H/RuXiwTDpR0Lqar31Y=";
16359     };
16360     buildInputs = [ BHooksOPAnnotation ];
16361     propagatedBuildInputs = [ ModuleInstall ];
16362     meta = {
16363       description = "Utility functions for XS modules";
16364       license = with lib.licenses; [ artistic1 gpl1Plus ];
16365     };
16366   };
16368   ModuleManifest = buildPerlPackage {
16369     pname = "Module-Manifest";
16370     version = "1.09";
16371     src = fetchurl {
16372       url = "mirror://cpan/authors/id/E/ET/ETHER/Module-Manifest-1.09.tar.gz";
16373       hash = "sha256-o5X4D/FeoOZv1sRThEtnh+1Kh1o82N+ffikoAlC9U5s=";
16374     };
16375     buildInputs = [ TestException TestWarn ];
16376     propagatedBuildInputs = [ ParamsUtil ];
16377     meta = {
16378       description = "Parse and examine a Perl distribution MANIFEST file";
16379       homepage = "https://github.com/karenetheridge/Module-Manifest";
16380       license = with lib.licenses; [ artistic1 gpl1Plus ];
16381     };
16382   };
16384   ModulePath = buildPerlPackage {
16385     pname = "Module-Path";
16386     version = "0.19";
16387     src = fetchurl {
16388       url = "mirror://cpan/authors/id/N/NE/NEILB/Module-Path-0.19.tar.gz";
16389       hash = "sha256-szF5zk3XPfzefUaAiAS5/7sR2wJF/kVafQAXR1Yv6so=";
16390     };
16391     buildInputs = [ DevelFindPerl ];
16392     meta = {
16393       description = "Get the full path to a locally installed module";
16394       homepage = "https://github.com/neilbowers/Module-Path";
16395       license = with lib.licenses; [ artistic1 gpl1Plus ];
16396       mainProgram = "mpath";
16397     };
16398   };
16400   ModulePluggable = buildPerlPackage {
16401     pname = "Module-Pluggable";
16402     version = "5.2";
16403     src = fetchurl {
16404       url = "mirror://cpan/authors/id/S/SI/SIMONW/Module-Pluggable-5.2.tar.gz";
16405       hash = "sha256-s/KtReT9ELP7kNkS142LeVqylUgNtW3GToa5+nXFpt8=";
16406     };
16407     patches = [
16408       # !!! merge this patch into Perl itself (which contains Module::Pluggable as well)
16409       ../development/perl-modules/module-pluggable.patch
16410     ];
16411     buildInputs = [ AppFatPacker ];
16412     meta = {
16413       description = "Automatically give your module the ability to have plugins";
16414       license = with lib.licenses; [ artistic1 gpl1Plus ];
16415     };
16416   };
16418   ModulePluggableFast = buildPerlPackage {
16419     pname = "Module-Pluggable-Fast";
16420     version = "0.19";
16421     src = fetchurl {
16422       url = "mirror://cpan/authors/id/M/MR/MRAMBERG/Module-Pluggable-Fast-0.19.tar.gz";
16423       hash = "sha256-CMhXcFjxmTLKG2Zre5EmoYtVajmwi+b7ObBqRTkqB18=";
16424     };
16425     propagatedBuildInputs = [ UNIVERSALrequire ];
16426     meta = {
16427       description = "Fast plugins with instantiation";
16428       license = with lib.licenses; [ artistic1 gpl1Plus ];
16429     };
16430   };
16432   ModuleRefresh = buildPerlPackage {
16433     pname = "Module-Refresh";
16434     version = "0.18";
16435     src = fetchurl {
16436       url = "mirror://cpan/authors/id/B/BP/BPS/Module-Refresh-0.18.tar.gz";
16437       hash = "sha256-4JTaqQmv32SJqeKzJzP2haLBy1zIh2BhB1SGEJsN71k=";
16438     };
16439     buildInputs = [ PathClass ];
16440     meta = {
16441       description = "Refresh %INC files when updated on disk";
16442       license = with lib.licenses; [ artistic1 gpl1Plus ];
16443     };
16444   };
16446   ModuleRuntime = buildPerlModule {
16447     pname = "Module-Runtime";
16448     version = "0.016";
16449     src = fetchurl {
16450       url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Module-Runtime-0.016.tar.gz";
16451       hash = "sha256-aDAuxkaDNUfUEL4o4JZ223UAb0qlihHzvbRP/pnw8CQ=";
16452     };
16453     meta = {
16454       description = "Runtime module handling";
16455       license = with lib.licenses; [ artistic1 gpl1Plus ];
16456     };
16457   };
16459   ModuleRuntimeConflicts = buildPerlPackage {
16460     pname = "Module-Runtime-Conflicts";
16461     version = "0.003";
16462     src = fetchurl {
16463       url = "mirror://cpan/authors/id/E/ET/ETHER/Module-Runtime-Conflicts-0.003.tar.gz";
16464       hash = "sha256-cHzcdQOMcP6Rd5uIisBQ8ShWXTlnupZoDhscfMlzOHU=";
16465     };
16466     propagatedBuildInputs = [ DistCheckConflicts ];
16467     meta = {
16468       description = "Provide information on conflicts for Module::Runtime";
16469       homepage = "https://github.com/karenetheridge/Module-Runtime-Conflicts";
16470       license = with lib.licenses; [ artistic1 gpl1Plus ];
16471     };
16472   };
16474   ModuleScanDeps = buildPerlPackage {
16475     pname = "Module-ScanDeps";
16476     version = "1.34";
16477     src = fetchurl {
16478       url = "mirror://cpan/authors/id/R/RS/RSCHUPP/Module-ScanDeps-1.34.tar.gz";
16479       hash = "sha256-ysUw5c/EE+BneXx9I3xsXNMpFcPZ+u5dlANcjzqFUOs=";
16480     };
16481     buildInputs = [ TestRequires IPCRun3 ];
16482     propagatedBuildInputs = [ TextParsewords ];
16483     meta = {
16484       description = "Recursively scan Perl code for dependencies";
16485       license = with lib.licenses; [ artistic1 gpl1Plus ];
16486       mainProgram = "scandeps.pl";
16487     };
16488   };
16490   ModuleSignature = buildPerlPackage {
16491     pname = "Module-Signature";
16492     version = "0.87";
16493     src = fetchurl {
16494       url = "mirror://cpan/authors/id/A/AU/AUDREYT/Module-Signature-0.87.tar.gz";
16495       hash = "sha256-IU6AVcUP7DcalXQ1IP4mlAAE52FpBjsrROyQoNRdaYI=";
16496     };
16497     buildInputs = [ IPCRun ];
16498     meta = {
16499       description = "Module signature file manipulation";
16500       license = with lib.licenses; [ cc0 ];
16501       mainProgram = "cpansign";
16502     };
16503   };
16505   ModuleUtil = buildPerlModule {
16506     pname = "Module-Util";
16507     version = "1.09";
16508     src = fetchurl {
16509       url = "mirror://cpan/authors/id/M/MA/MATTLAW/Module-Util-1.09.tar.gz";
16510       hash = "sha256-bPvLakUGREbsiqDuGn3dxCC1RGkwM0QYeu+E0sfz4sY=";
16511     };
16512     meta = {
16513       description = "Module name tools and transformations";
16514       license = with lib.licenses; [ artistic1 gpl1Plus ];
16515       mainProgram = "pm_which";
16516     };
16517   };
16519   ModuleVersions = buildPerlPackage {
16520     pname = "Module-Versions";
16521     version = "0.02";
16522     src = fetchurl {
16523       url = "mirror://cpan/authors/id/T/TH/THW/Module-Versions-0.02.zip";
16524       hash = "sha256-DTimWxenrFGI1zh8/+f6oSY4Rw3JNxYevz2kh7fR+Dw=";
16525     };
16526     buildInputs = [ pkgs.unzip ];
16527     meta = {
16528       description = "Handle versions of loaded modules with flexible result interface";
16529       license = with lib.licenses; [ artistic1 gpl1Plus ];
16530     };
16531   };
16533   ModuleVersionsReport = buildPerlPackage {
16534     pname = "Module-Versions-Report";
16535     version = "1.06";
16536     src = fetchurl {
16537       url = "mirror://cpan/authors/id/J/JE/JESSE/Module-Versions-Report-1.06.tar.gz";
16538       hash = "sha256-oyYdDYSxdnjYxP1V6w+JL1FE2BylPqmjjXXRoArZeWo=";
16539     };
16540     meta = {
16541       description = "Report versions of all modules in memory";
16542       license = with lib.licenses; [ artistic1 gpl1Plus ];
16543     };
16544   };
16546   MojoDOM58 = buildPerlPackage {
16547     pname = "Mojo-DOM58";
16548     version = "3.001";
16549     src = fetchurl {
16550       url = "mirror://cpan/authors/id/D/DB/DBOOK/Mojo-DOM58-3.001.tar.gz";
16551       hash = "sha256-GLJtVB5TFEFa3d8xQ2nZQMi6BrESNMpQb9vmzyJPV5Y=";
16552     };
16553     meta = {
16554       description = "Minimalistic HTML/XML DOM parser with CSS selectors";
16555       homepage = "https://github.com/Grinnz/Mojo-DOM58";
16556       license = with lib.licenses; [ artistic2 ];
16557     };
16558   };
16560   mod_perl2 = buildPerlPackage {
16561     pname = "mod_perl";
16562     version = "2.0.12";
16563     src = fetchurl {
16564       url = "mirror://cpan/authors/id/S/SH/SHAY/mod_perl-2.0.12.tar.gz";
16565       hash = "sha256-9bghtZsP3JZw5G7Q/PMtiRHyUSYYmotowWUvkiHu4mk=";
16566     };
16568     makeMakerFlags = [ "MP_AP_DESTDIR=$out" ];
16569     buildInputs = [ pkgs.apacheHttpd ];
16570     doCheck = false; # would try to start Apache HTTP server
16571     passthru.tests = nixosTests.mod_perl;
16572     meta = {
16573       description = "Embed a Perl interpreter in the Apache/2.x HTTP server";
16574       license = with lib.licenses; [ asl20 ];
16575       mainProgram = "mp2bug";
16576     };
16577   };
16579   Mojolicious = buildPerlPackage {
16580     pname = "Mojolicious";
16581     version = "9.34";
16582     src = fetchurl {
16583       url = "mirror://cpan/authors/id/S/SR/SRI/Mojolicious-9.34.tar.gz";
16584       hash = "sha256-UGnWjk4titZj21iFm0/sDOeasTTZ5YBVqq8/DzpzosY=";
16585     };
16586     meta = {
16587       description = "Real-time web framework";
16588       homepage = "https://mojolicious.org";
16589       license = with lib.licenses; [ artistic2 ];
16590       maintainers = with maintainers; [ thoughtpolice sgo ];
16591       mainProgram = "mojo";
16592     };
16593   };
16595   MojoliciousPluginAssetPack = buildPerlPackage {
16596     pname = "Mojolicious-Plugin-AssetPack";
16597     version = "2.14";
16598     src = fetchurl {
16599       url = "mirror://cpan/authors/id/S/SR/SRI/Mojolicious-Plugin-AssetPack-2.14.tar.gz";
16600       hash = "sha256-jwWMyIw1mb6/ZjeK7GS91uvNkMljGL3m1ov6551j6qM=";
16601     };
16602     propagatedBuildInputs = [ FileWhich IPCRun3 Mojolicious ];
16603     meta = {
16604       description = "Compress and convert css, less, sass, javascript and coffeescript files";
16605       homepage = "https://github.com/jhthorsen/mojolicious-plugin-assetpack";
16606       license = with lib.licenses; [ artistic2 ];
16607       maintainers = with maintainers; [ sgo ];
16608     };
16609   };
16611   MojoliciousPluginGravatar = buildPerlPackage {
16612     pname = "Mojolicious-Plugin-Gravatar";
16613     version = "0.04";
16614     src = fetchurl {
16615       url = "mirror://cpan/authors/id/K/KO/KOORCHIK/Mojolicious-Plugin-Gravatar-0.04.tar.gz";
16616       hash = "sha256-pJ+XDGxw+ZMLMEp1IWPLlfHZmHEvecsTZAgy5Le2dd0=";
16617     };
16618     propagatedBuildInputs = [ Mojolicious ];
16619     meta = {
16620       description = "Globally Recognized Avatars for Mojolicious";
16621       license = with lib.licenses; [ artistic1 gpl1Plus ];
16622       maintainers = with maintainers; [ sgo ];
16623     };
16624   };
16626   MojoliciousPluginI18N = buildPerlModule {
16627     pname = "Mojolicious-Plugin-I18N";
16628     version = "1.6";
16629     src = fetchurl {
16630       url = "mirror://cpan/authors/id/S/SH/SHARIFULN/Mojolicious-Plugin-I18N-1.6.tar.gz";
16631       hash = "sha256-Mvte+AN9lUt+zr71wbKyS0IKvYKXAjEvStQnlPUrUU0=";
16632     };
16633     propagatedBuildInputs = [ Mojolicious ];
16634     meta = {
16635       homepage = "https://github.com/sharifulin/Mojolicious-Plugin-I18N";
16636       description = "Internationalization Plugin for Mojolicious";
16637       license = with lib.licenses; [ artistic1 gpl1Plus ];
16638     };
16639   };
16641   MojoliciousPluginMail = buildPerlModule {
16642     pname = "Mojolicious-Plugin-Mail";
16643     version = "1.5";
16644     src = fetchurl {
16645       url = "mirror://cpan/authors/id/S/SH/SHARIFULN/Mojolicious-Plugin-Mail-1.5.tar.gz";
16646       hash = "sha256-VvDTQevDp6zzkZ9a3UPpghbqEoWqDYfn+wDAK7Dv8UY=";
16647     };
16648     propagatedBuildInputs = [ MIMEEncWords MIMELite Mojolicious ];
16649     meta = {
16650       description = "Mojolicious Plugin for send mail";
16651       homepage = "https://github.com/sharifulin/Mojolicious-Plugin-Mail";
16652       license = with lib.licenses; [ artistic1 gpl1Plus ];
16653       maintainers = [ maintainers.sgo ];
16654     };
16655   };
16657   MojoliciousPluginOpenAPI = buildPerlPackage {
16658     pname = "Mojolicious-Plugin-OpenAPI";
16659     version = "5.09";
16660     src = fetchurl {
16661       url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/Mojolicious-Plugin-OpenAPI-5.09.tar.gz";
16662       hash = "sha256-BIJdfOIe20G80Ujrz6Gu+Ek258QOhKOdvyeGcdSaMQY=";
16663     };
16664     propagatedBuildInputs = [ JSONValidator Mojolicious ];
16665     meta = {
16666       description = "OpenAPI / Swagger plugin for Mojolicious";
16667       homepage = "https://github.com/jhthorsen/mojolicious-plugin-openapi";
16668       license = with lib.licenses; [ artistic2 ];
16669       maintainers = [ maintainers.sgo ];
16670     };
16671   };
16673   MojoliciousPluginRenderFile = buildPerlPackage {
16674     pname = "Mojolicious-Plugin-RenderFile";
16675     version = "0.12";
16676     src = fetchurl {
16677       url = "mirror://cpan/authors/id/K/KO/KOORCHIK/Mojolicious-Plugin-RenderFile-0.12.tar.gz";
16678       hash = "sha256-AT5CoswGvHBBuxPJ3ziK8kAQ5peTqN8PCrHSQKphFz8=";
16679     };
16680     propagatedBuildInputs = [ Mojolicious ];
16681     meta = {
16682       description = "\"render_file\" helper for Mojolicious";
16683       homepage = "https://github.com/koorchik/Mojolicious-Plugin-RenderFile";
16684       license = with lib.licenses; [ artistic1 gpl1Plus ];
16685       maintainers = with maintainers; [ tomasajt ];
16686     };
16687   };
16689   MojoliciousPluginStatus = buildPerlPackage {
16690     pname = "Mojolicious-Plugin-Status";
16691     version = "1.17";
16692     src = fetchurl {
16693       url = "mirror://cpan/authors/id/S/SR/SRI/Mojolicious-Plugin-Status-1.17.tar.gz";
16694       hash = "sha256-TCsfr+PhkSYby0TiDo75rz+YjR25akrgsG7tQSArh7Q=";
16695     };
16696     propagatedBuildInputs = [ BSDResource CpanelJSONXS FileMap Mojolicious Sereal ];
16697     meta = {
16698       description = "Mojolicious server status";
16699       homepage = "https://mojolicious.org";
16700       license = with lib.licenses; [ artistic2 ];
16701       maintainers = [ maintainers.thoughtpolice ];
16702     };
16703   };
16705   MojoliciousPluginSyslog = buildPerlPackage {
16706     pname = "Mojolicious-Plugin-Syslog";
16707     version = "0.06";
16708     src = fetchurl {
16709       url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/Mojolicious-Plugin-Syslog-0.06.tar.gz";
16710       hash = "sha256-IuxL9TYwDseyAYuoV3C9g2ZFDBAwVDZ9srFp9Mh3QRM=";
16711     };
16712     propagatedBuildInputs = [ Mojolicious ];
16713     meta = {
16714       description = "A plugin for enabling a Mojolicious app to log to syslog";
16715       homepage = "https://github.com/jhthorsen/mojolicious-plugin-syslog";
16716       license = with lib.licenses; [ artistic2 ];
16717       maintainers = [ maintainers.sgo ];
16718     };
16719   };
16721   MojoliciousPluginTemplateToolkit = buildPerlModule {
16722     pname = "Mojolicious-Plugin-TemplateToolkit";
16723     version = "0.006";
16724     src = fetchurl {
16725       url = "mirror://cpan/authors/id/D/DB/DBOOK/Mojolicious-Plugin-TemplateToolkit-0.006.tar.gz";
16726       hash = "sha256-dBoFAmtTArtrKc+I3KICC3rv0iNHgWELpZNaqPCXNKY=";
16727     };
16728     buildInputs = [ ModuleBuildTiny ];
16729     propagatedBuildInputs = [ ClassMethodModifiers Mojolicious TemplateToolkit ];
16730     meta = {
16731       homepage = "https://github.com/Grinnz/Mojolicious-Plugin-TemplateToolkit";
16732       description = "Template Toolkit renderer plugin for Mojolicious";
16733       license = with lib.licenses; [ artistic2 ];
16734       maintainers = with maintainers; [ tomasajt ];
16735     };
16736   };
16738   MojoliciousPluginTextExceptions = buildPerlPackage {
16739     pname = "Mojolicious-Plugin-TextExceptions";
16740     version = "0.02";
16741     src = fetchurl {
16742       url = "mirror://cpan/authors/id/M/MR/MRAMBERG/Mojolicious-Plugin-TextExceptions-0.02.tar.gz";
16743       hash = "sha256-Oht0BcV4TO5mHP8bARpzlRBN1IS7kbnnWT+ralOb+HQ=";
16744     };
16745     propagatedBuildInputs = [ Mojolicious ];
16746     meta = {
16747       description = "Render exceptions as text in command line user agents";
16748       homepage = "https://github.com/marcusramberg/mojolicious-plugin-textexceptions";
16749       license = with lib.licenses; [ artistic2 ];
16750       maintainers = [ maintainers.sgo ];
16751     };
16752   };
16754   MojoliciousPluginWebpack = buildPerlPackage {
16755     pname = "Mojolicious-Plugin-Webpack";
16756     version = "1.02";
16757     src = fetchurl {
16758       url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/Mojolicious-Plugin-Webpack-1.02.tar.gz";
16759       hash = "sha256-REzqioOZquelrWt8iQ/yFgk8WM6uaxyKBl77cBC3zn0=";
16760     };
16761     propagatedBuildInputs = [ Mojolicious Filechdir ];
16762     meta = {
16763       description = "Mojolicious <3 Webpack";
16764       homepage = "https://github.com/jhthorsen/mojolicious-plugin-webpack";
16765       license = with lib.licenses; [ artistic2 ];
16766       maintainers = [ maintainers.sgo ];
16767     };
16768   };
16770   MojoRedis = buildPerlPackage {
16771     pname = "Mojo-Redis";
16772     version = "3.29";
16773     src = fetchurl {
16774       url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/Mojo-Redis-3.29.tar.gz";
16775       hash = "sha256-oDMZpF0uYTpsfS1ZrAD9SwtHiGVi5ish3pG0r4llgII=";
16776     };
16777     propagatedBuildInputs = [ Mojolicious ProtocolRedisFaster ];
16778     meta = {
16779       description = "Redis driver based on Mojo::IOLoop";
16780       homepage = "https://github.com/jhthorsen/mojo-redis";
16781       license = with lib.licenses; [ artistic2 ];
16782       maintainers = [ maintainers.sgo ];
16783     };
16784   };
16786   MojoSAML = buildPerlModule {
16787     pname = "Mojo-SAML";
16788     version = "0.07";
16789     src = fetchurl {
16790       url = "mirror://cpan/authors/id/J/JB/JBERGER/Mojo-SAML-0.07.tar.gz";
16791       hash = "sha256-csJMrNtvHXp14uqgBDfHFKv1eafSENSqTT8g8e/0cQ0=";
16792     };
16793     buildInputs = [ ModuleBuildTiny ];
16794     propagatedBuildInputs = [ CryptOpenSSLRSA CryptOpenSSLX509 DataGUID Mojolicious XMLCanonicalizeXML ];
16795     meta = {
16796       description = "A SAML2 toolkit using the Mojo toolkit";
16797       license = with lib.licenses; [ artistic1 gpl1Plus ];
16798       maintainers = [ maintainers.sgo ];
16799     };
16800   };
16802   MojoSQLite = buildPerlModule {
16803     pname = "Mojo-SQLite";
16804     version = "3.009";
16805     src = fetchurl {
16806       url = "mirror://cpan/authors/id/D/DB/DBOOK/Mojo-SQLite-3.009.tar.gz";
16807       hash = "sha256-Vzmprz/A/BYrOAMt9hCgcANSY7++C+wWrsUvDd3Xtkc=";
16808     };
16809     buildInputs = [ ModuleBuildTiny ];
16810     propagatedBuildInputs = [ DBDSQLite Mojolicious SQLAbstractPg URIdb URI ];
16811     meta = {
16812       description = "A tiny Mojolicious wrapper for SQLite";
16813       homepage = "https://github.com/Grinnz/Mojo-SQLite";
16814       license = with lib.licenses; [ artistic2 ];
16815       maintainers = [ maintainers.sgo ];
16816     };
16817   };
16819   Mojomysql = buildPerlPackage rec {
16820     pname = "Mojo-mysql";
16821     version = "1.26";
16822     src = fetchurl {
16823       url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/Mojo-mysql-1.26.tar.gz";
16824       hash = "sha256-H9LjBlr4Je9N2x2W9g9MVc9NCCD77L0wrHGdTeJx5rw=";
16825     };
16826     propagatedBuildInputs = [ DBDmysql Mojolicious SQLAbstract ];
16827     buildInputs = [ TestDeep ];
16828     meta = {
16829       description = "Mojolicious and Async MySQL/MariaDB";
16830       homepage = "https://github.com/jhthorsen/mojo-mysql";
16831       license = with lib.licenses; [ artistic2 ];
16832       maintainers = [ maintainers.sgo ];
16833     };
16834   };
16836   MojoIOLoopDelay = buildPerlModule {
16837     pname = "Mojo-IOLoop-Delay";
16838     version = "8.76";
16839     src = fetchurl {
16840       url = "mirror://cpan/authors/id/J/JB/JBERGER/Mojo-IOLoop-Delay-8.76.tar.gz";
16841       hash = "sha256-jsvAYUg3IdkgRZQya+zpXM2/vbbRihc8gt1xgXLQqe0=";
16842     };
16843     buildInputs = [ ModuleBuildTiny ];
16844     propagatedBuildInputs = [ Mojolicious ];
16845     meta = {
16846       description = "(DISCOURAGED) Promises/A+ and flow-control helpers";
16847       homepage = "https://github.com/jberger/Mojo-IOLoop-Delay";
16848       license = with lib.licenses; [ artistic2 ];
16849       maintainers = [ maintainers.zakame ];
16850     };
16851   };
16853   MojoIOLoopForkCall = buildPerlModule {
16854     pname = "Mojo-IOLoop-ForkCall";
16855     version = "0.21";
16856     src = fetchurl {
16857       url = "mirror://cpan/authors/id/J/JB/JBERGER/Mojo-IOLoop-ForkCall-0.21.tar.gz";
16858       hash = "sha256-8dpdh4RxvdhvAcQjhQgAgE9ttCtUU8IW8Jslt5RYS3g=";
16859     };
16860     propagatedBuildInputs = [ IOPipely Mojolicious MojoIOLoopDelay ];
16861     preBuild = ''
16862       # This module needs the deprecated Mojo::IOLoop::Delay
16863       substituteInPlace lib/Mojo/IOLoop/ForkCall.pm \
16864         --replace "use Mojo::IOLoop;" "use Mojo::IOLoop; use Mojo::IOLoop::Delay;"
16865     '';
16866     meta = {
16867       description = "(DEPRECATED) run blocking functions asynchronously by forking";
16868       homepage = "https://github.com/jberger/Mojo-IOLoop-ForkCall";
16869       license = with lib.licenses; [ artistic1 gpl1Plus ];
16870       maintainers = [ maintainers.zakame ];
16871     };
16872   };
16874   MojoJWT = buildPerlModule {
16875     pname = "Mojo-JWT";
16876     version = "0.09";
16877     src = fetchurl {
16878       url = "mirror://cpan/authors/id/J/JB/JBERGER/Mojo-JWT-0.09.tar.gz";
16879       hash = "sha256-wE4DmD4MbyvORdCOoucph5yWee+mNLDmjLa4t7SoWIY=";
16880     };
16881     buildInputs = [ ModuleBuildTiny ];
16882     propagatedBuildInputs = [ Mojolicious ];
16883     meta = {
16884       description = "JSON Web Token the Mojo way";
16885       homepage = "https://github.com/jberger/Mojo-JWT";
16886       license = with lib.licenses; [ artistic1 gpl1Plus ];
16887       maintainers = [ maintainers.sgo ];
16888     };
16889   };
16891   MojoPg = buildPerlPackage {
16892     pname = "Mojo-Pg";
16893     version = "4.27";
16894     src = fetchurl {
16895       url = "mirror://cpan/authors/id/S/SR/SRI/Mojo-Pg-4.27.tar.gz";
16896       hash = "sha256-oyLI3wDj5WVf300LernXmSiTIOKfZP6ZrHrxJEhO+dg=";
16897     };
16898     propagatedBuildInputs = [ DBDPg Mojolicious SQLAbstractPg ];
16899     buildInputs = [ TestDeep ];
16900     meta = {
16901       description = "Mojolicious â™¥ PostgreSQL";
16902       homepage = "https://mojolicious.org";
16903       license = with lib.licenses; [ artistic2 ];
16904       maintainers = [ maintainers.sgo ];
16905     };
16906   };
16908   MojoUserAgentCached = buildPerlPackage {
16909     pname = "Mojo-UserAgent-Cached";
16910     version = "1.25";
16911     src = fetchurl {
16912       url = "mirror://cpan/authors/id/N/NI/NICOMEN/Mojo-UserAgent-Cached-1.25.tar.gz";
16913       hash = "sha256-lZmikTjq/ZKPWF7jDvFm0j/x3FKkBn50hyxR4W3shko=";
16914     };
16915     buildInputs = [ ModuleInstall ];
16916     propagatedBuildInputs = [ AlgorithmLCSS CHI DataSerializer DevelStackTrace Mojolicious Readonly StringTruncate ];
16917     doCheck = !stdenv.isDarwin;
16918     meta = {
16919       description = "Caching, Non-blocking I/O HTTP, Local file and WebSocket user agent";
16920       homepage = "https://github.com/nicomen/mojo-useragent-cached";
16921       license = with lib.licenses; [ artistic1 gpl1Plus ];
16922       maintainers = [ maintainers.sgo ];
16923     };
16924   };
16926   MongoDB = buildPerlPackage {
16927     pname = "MongoDB";
16928     version = "2.2.2";
16929     src = fetchurl {
16930       url = "mirror://cpan/authors/id/M/MO/MONGODB/MongoDB-v2.2.2.tar.gz";
16931       hash = "sha256-IBk1+S2slPOcNd5zZh6LJSQ55JbyKGV9uF/5MlfDJo8=";
16932     };
16933     buildInputs = [ JSONMaybeXS PathTiny TestDeep TestFatal TimeMoment ];
16934     propagatedBuildInputs = [ AuthenSASLSASLprep AuthenSCRAM BSON IOSocketSSL NetSSLeay ClassXSAccessor BSONXS TypeTinyXS MozillaCA Moo NetDNS SafeIsa SubQuote TieIxHash TypeTiny UUIDURandom boolean namespaceclean ];
16935     meta = {
16936       description = "Official MongoDB Driver for Perl (EOL)";
16937       homepage = "https://github.com/mongodb-labs/mongo-perl-driver";
16938       license = with lib.licenses; [ asl20 ];
16939     };
16940   };
16942   MonitoringPlugin = buildPerlPackage {
16943     pname = "Monitoring-Plugin";
16944     version = "0.40";
16945     src = fetchurl {
16946       url = "mirror://cpan/authors/id/N/NI/NIERLEIN/Monitoring-Plugin-0.40.tar.gz";
16947       hash = "sha256-+LprfifSuwpPmjKVWiRC1OQo0cSLgMixIUL/YRvnI28=";
16948     };
16949     propagatedBuildInputs = [ ClassAccessor ConfigTiny MathCalcUnits ParamsValidate ];
16950     meta = {
16951       description = ''
16952         A family of perl modules to streamline writing Naemon,
16953         Nagios, Icinga or Shinken (and compatible) plugins
16954       '';
16955       license = with lib.licenses; [ artistic1 gpl1Plus ];
16956     };
16957   };
16959   IOPipely = buildPerlPackage {
16960     pname = "IO-Pipely";
16961     version = "0.006";
16962     src = fetchurl {
16963       url = "mirror://cpan/authors/id/R/RC/RCAPUTO/IO-Pipely-0.006.tar.gz";
16964       hash = "sha256-Dj/NhBoyfvtUn6AbIIPcNpXnLqDGMwPlbtUWG/gQQTs=";
16965     };
16966     meta = {
16967       description = "Portably create pipe() or pipe-like handles, one way or another";
16968       homepage = "https://search.cpan.org/dist/IO-Pipely";
16969       license = with lib.licenses; [ artistic1 gpl1Plus ];
16970     };
16971   };
16973   Moo = buildPerlPackage {
16974     pname = "Moo";
16975     version = "2.005005";
16976     src = fetchurl {
16977       url = "mirror://cpan/authors/id/H/HA/HAARG/Moo-2.005005.tar.gz";
16978       hash = "sha256-+1opUmSfrtBzc/Igt4AEqcaro4dzkTN0DBdw6bH0sQg=";
16979     };
16980     buildInputs = [ TestFatal ];
16981     propagatedBuildInputs = [ ClassMethodModifiers ModuleRuntime RoleTiny SubQuote ];
16982     meta = {
16983       description = "Minimalist Object Orientation (with Moose compatibility)";
16984       license = with lib.licenses; [ artistic1 gpl1Plus ];
16985     };
16986   };
16988   Moose = buildPerlPackage {
16989     pname = "Moose";
16990     version = "2.2206";
16991     src = fetchurl {
16992       url = "mirror://cpan/authors/id/E/ET/ETHER/Moose-2.2206.tar.gz";
16993       hash = "sha256-Z5csTivDn72jhRgXevDme7vrVIVi5OxLdZoaelg+UFs=";
16994     };
16995     buildInputs = [ DistCheckConflicts CPANMetaCheck TestCleanNamespaces TestFatal TestNeeds TestRequires ];
16996     propagatedBuildInputs = [ ClassLoadXS DataOptList DevelGlobalDestruction DevelOverloadInfo DevelStackTrace EvalClosure MROCompat ModuleRuntimeConflicts PackageDeprecationManager PackageStashXS ParamsUtil SubExporter TryTiny ];
16997     preConfigure = ''
16998       export LD=$CC
16999     '';
17000     meta = {
17001       description = "A postmodern object system for Perl 5";
17002       homepage = "http://moose.perl.org";
17003       license = with lib.licenses; [ artistic1 gpl1Plus ];
17004       maintainers = [ maintainers.eelco ];
17005       mainProgram = "moose-outdated";
17006     };
17007   };
17009   MooXHandlesVia = buildPerlPackage {
17010     pname = "MooX-HandlesVia";
17011     version = "0.001009";
17012     src = fetchurl {
17013       url = "mirror://cpan/authors/id/T/TO/TOBYINK/MooX-HandlesVia-0.001009.tar.gz";
17014       hash = "sha256-cWNT44iU7Lfo5MF7yVSD219ZACsDVBtUpywn8qjzbBI=";
17015     };
17016     buildInputs = [ MooXTypesMooseLike TestException TestFatal ];
17017     propagatedBuildInputs = [ DataPerl Moo ];
17018     meta = {
17019       description = "NativeTrait-like behavior for Moo";
17020       license = with lib.licenses; [ artistic1 gpl1Plus ];
17021     };
17022   };
17024   MooXLocalePassthrough = buildPerlPackage {
17025     pname = "MooX-Locale-Passthrough";
17026     version = "0.001";
17027     src = fetchurl {
17028       url = "mirror://cpan/authors/id/R/RE/REHSACK/MooX-Locale-Passthrough-0.001.tar.gz";
17029       hash = "sha256-egWCflKrWh3eLqXHEpJ7HljI0lFmTZZmJ6353TDsBRI=";
17030     };
17031     propagatedBuildInputs = [ Moo ];
17032     meta = {
17033       description = "Provide API used in translator modules without translating";
17034       homepage = "https://metacpan.org/release/MooX-Locale-Passthrough";
17035       license = with lib.licenses; [ artistic1 gpl1Plus ];
17036     };
17037   };
17039   MooXLocaleTextDomainOO = buildPerlPackage {
17040     pname = "MooX-Locale-TextDomain-OO";
17041     version = "0.001";
17042     src = fetchurl {
17043       url = "mirror://cpan/authors/id/R/RE/REHSACK/MooX-Locale-TextDomain-OO-0.001.tar.gz";
17044       hash = "sha256-W45Sz/3YSpXTaMoQuUNUG5lqk+DQY5b0/hkzVojkFz0=";
17045     };
17046     propagatedBuildInputs = [ LocaleTextDomainOO MooXLocalePassthrough ];
17047     meta = {
17048       description = "Provide API used in translator modules without translating";
17049       homepage = "https://metacpan.org/release/MooX-Locale-TextDomain-OO";
17050       license = with lib.licenses; [ artistic1 gpl1Plus ];
17051     };
17052   };
17054   MooXOptions = buildPerlPackage {
17055     pname = "MooX-Options";
17056     version = "4.103";
17057     src = fetchurl {
17058       url = "mirror://cpan/authors/id/R/RE/REHSACK/MooX-Options-4.103.tar.gz";
17059       hash = "sha256-TfnVdPjybbAivwbBvaRwgolFEJjC4VYzNd840jsHMm0=";
17060     };
17061     propagatedBuildInputs = [ GetoptLongDescriptive MROCompat MooXLocalePassthrough PathClass UnicodeLineBreak strictures ];
17062     buildInputs = [ Mo MooXCmd MooXLocaleTextDomainOO Moose TestTrap ];
17063     preCheck = "rm t/16-namespace_clean.t"; # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=942275
17064     meta = {
17065       description = "Explicit Options eXtension for Object Class";
17066       homepage = "https://metacpan.org/celogeek/MooX-Options";
17067       license = with lib.licenses; [ artistic1 gpl1Plus ];
17068     };
17069   };
17071   MooXSingleton = buildPerlModule {
17072     pname = "MooX-Singleton";
17073     version = "1.20";
17074     src = fetchurl {
17075       url = "mirror://cpan/authors/id/A/AJ/AJGB/MooX-Singleton-1.20.tar.gz";
17076       hash = "sha256-99dib//emPhewSwe4msB8Tmk3d0vRT6lbDQd8ZTjIQ4=";
17077     };
17078     propagatedBuildInputs = [ RoleTiny ];
17079     buildInputs = [ Moo ];
17080     meta = {
17081       description = "Turn your Moo class into singleton";
17082       homepage = "https://search.cpan.org/dist/MooX-Singleton";
17083       license = with lib.licenses; [ artistic1 gpl1Plus ];
17084     };
17085   };
17087   MooXStrictConstructor = buildPerlPackage {
17088     pname = "MooX-StrictConstructor";
17089     version = "0.011";
17090     src = fetchurl {
17091       url = "mirror://cpan/authors/id/H/HA/HARTZELL/MooX-StrictConstructor-0.011.tar.gz";
17092       hash = "sha256-2jgvgi/8TiKgOqQZpCVydJmdNtiaThI27PT892vGU+I=";
17093     };
17094     propagatedBuildInputs = [ Moo strictures ];
17095     buildInputs = [ TestFatal ];
17096     meta = {
17097       description = "Make your Moo-based object constructors blow up on unknown attributes";
17098       homepage = "https://metacpan.org/release/MooX-StrictConstructor";
17099       license = with lib.licenses; [ artistic1 gpl1Plus ];
17100     };
17101   };
17103   MooXTypesMooseLike = buildPerlPackage {
17104     pname = "MooX-Types-MooseLike";
17105     version = "0.29";
17106     src = fetchurl {
17107       url = "mirror://cpan/authors/id/M/MA/MATEU/MooX-Types-MooseLike-0.29.tar.gz";
17108       hash = "sha256-HTeAqpvqQwr75lqox25xjxBFzniKrdpBFvWdO3p60rQ=";
17109     };
17110     propagatedBuildInputs = [ ModuleRuntime ];
17111     buildInputs = [ Moo TestFatal ];
17112     meta = {
17113       description = "Some Moosish types and a type builder";
17114       license = with lib.licenses; [ artistic1 gpl1Plus ];
17115     };
17116   };
17118   MooXTypesMooseLikeNumeric = buildPerlPackage {
17119     pname = "MooX-Types-MooseLike-Numeric";
17120     version = "1.03";
17121     src = fetchurl {
17122       url = "mirror://cpan/authors/id/M/MA/MATEU/MooX-Types-MooseLike-Numeric-1.03.tar.gz";
17123       hash = "sha256-Fq3rYXuWPQEBeZIsLk6HYt93x1Iy4XMgtFmGjElwxEs=";
17124     };
17125     buildInputs = [ Moo TestFatal ];
17126     propagatedBuildInputs = [ MooXTypesMooseLike ];
17127     meta = {
17128       description = "Moo types for numbers";
17129       license = with lib.licenses; [ artistic1 gpl1Plus ];
17130     };
17131   };
17133   MooXTypeTiny = buildPerlPackage {
17134     pname = "MooX-TypeTiny";
17135     version = "0.002003";
17136     src = fetchurl {
17137       url = "mirror://cpan/authors/id/H/HA/HAARG/MooX-TypeTiny-0.002003.tar.gz";
17138       hash = "sha256-2B4m/2+NsQJh8Ah/ltxUNn3LSanz3o1TI4+DTs4ZYks=";
17139     };
17140     buildInputs = [ TestFatal ];
17141     propagatedBuildInputs = [ Moo TypeTiny ];
17142     meta = {
17143       description = "Tiny, yet Moo(se)-compatible type constraint";
17144       homepage = "https://typetiny.toby.ink";
17145       license = with lib.licenses; [ artistic1 gpl1Plus ];
17146     };
17147   };
17149   MooseAutobox = buildPerlModule {
17150     pname = "Moose-Autobox";
17151     version = "0.16";
17152     src = fetchurl {
17153       url = "mirror://cpan/authors/id/E/ET/ETHER/Moose-Autobox-0.16.tar.gz";
17154       hash = "sha256-kkAdpM9ITrcYjsGWtoGG76eCoQK0UeoVbNi4dy5ocFU=";
17155     };
17156     buildInputs = [ ModuleBuildTiny TestException ];
17157     propagatedBuildInputs = [ ListMoreUtils Moose SyntaxKeywordJunction autobox namespaceautoclean ];
17158     meta = {
17159       description = "Autoboxed wrappers for Native Perl datatypes";
17160       homepage = "https://github.com/moose/Moose-Autobox";
17161       license = with lib.licenses; [ artistic1 gpl1Plus ];
17162     };
17163   };
17165   MooseXABC = buildPerlPackage {
17166     pname = "MooseX-ABC";
17167     version = "0.06";
17168     src = fetchurl {
17169       url = "mirror://cpan/authors/id/D/DO/DOY/MooseX-ABC-0.06.tar.gz";
17170       hash = "sha256-Tr7suUbkVSssRyH1u/I+9huTJlELVzlr9ZkLEW8Dfuo=";
17171     };
17172     buildInputs = [ TestFatal ];
17173     propagatedBuildInputs = [ Moose ];
17174     meta = {
17175       description = "Abstract base classes for Moose";
17176       homepage = "https://metacpan.org/release/MooseX-ABC";
17177       license = with lib.licenses; [ artistic1 gpl1Plus ];
17178     };
17179   };
17181   MooseXAliases = buildPerlPackage {
17182     pname = "MooseX-Aliases";
17183     version = "0.11";
17184     src = fetchurl {
17185       url = "mirror://cpan/authors/id/D/DO/DOY/MooseX-Aliases-0.11.tar.gz";
17186       hash = "sha256-xIUPlyQmw0R6ru2Ny0Az6ERgylFwWtPqeLY6+Rn+B0g=";
17187     };
17188     buildInputs = [ TestFatal ];
17189     propagatedBuildInputs = [ Moose ];
17190     meta = {
17191       description = "Easy aliasing of methods and attributes in Moose";
17192       license = with lib.licenses; [ artistic1 gpl1Plus ];
17193     };
17194   };
17196   MooseXAppCmd = buildPerlModule {
17197     pname = "MooseX-App-Cmd";
17198     version = "0.34";
17199     src = fetchurl {
17200       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-App-Cmd-0.34.tar.gz";
17201       hash = "sha256-9eLy7xKcOI8qPjb1PeWYBErxtyLofXEFKdBcwl0jesI=";
17202     };
17203     buildInputs = [ ModuleBuildTiny MooseXConfigFromFile TestOutput YAML ];
17204     propagatedBuildInputs = [ AppCmd MooseXGetopt MooseXNonMoose ];
17205     meta = {
17206       description = "Mashes up MooseX::Getopt and App::Cmd";
17207       homepage = "https://github.com/moose/MooseX-App-Cmd";
17208       license = with lib.licenses; [ artistic1 gpl1Plus ];
17209     };
17210   };
17212   MooseXStorageFormatJSONpm = buildPerlPackage {
17213     pname = "MooseX-Storage-Format-JSONpm";
17214     version = "0.093094";
17215     src = fetchurl {
17216       url = "mirror://cpan/authors/id/R/RJ/RJBS/MooseX-Storage-Format-JSONpm-0.093094.tar.gz";
17217       hash = "sha256-9sgItyC99HI4VaZ4sblQLHSSABXFq8YL2uasYNFGxYQ=";
17218     };
17219     buildInputs = [ Moose TestDeepJSON TestWithoutModule DigestHMAC MooseXTypes ];
17220     propagatedBuildInputs = [ JSON MooseXRoleParameterized MooseXStorage namespaceautoclean ];
17221     meta = {
17222       description = "A format role for MooseX::Storage using JSON.pm";
17223       homepage = "https://github.com/rjbs/MooseX-Storage-Format-JSONpm";
17224       license = with lib.licenses; [ artistic1 gpl1Plus ];
17225     };
17226   };
17228   MooX = buildPerlPackage {
17229     pname = "MooX";
17230     version = "0.101";
17231     src = fetchurl {
17232       url = "mirror://cpan/authors/id/G/GE/GETTY/MooX-0.101.tar.gz";
17233       hash = "sha256-L/kaZW54quCspCKTgp16flrLm/IrBAFjWyq2yHDeMtU=";
17234     };
17235     propagatedBuildInputs = [ DataOptList ImportInto Moo ];
17236     meta = {
17237       description = "Using Moo and MooX:: packages the most lazy way";
17238       homepage = "https://github.com/Getty/p5-moox";
17239       license = with lib.licenses; [ artistic1 gpl1Plus ];
17240     };
17241   };
17243   MooXAliases = buildPerlPackage {
17244     pname = "MooX-Aliases";
17245     version = "0.001006";
17246     src = fetchurl {
17247       url = "mirror://cpan/authors/id/H/HA/HAARG/MooX-Aliases-0.001006.tar.gz";
17248       hash = "sha256-AWAxJ4ysYSY9AZUt/lv7XztGtLhCsv/6nyybiKrGOGc=";
17249     };
17250     propagatedBuildInputs = [ Moo strictures ];
17251     buildInputs = [ TestFatal ];
17252     meta = {
17253       description = "Easy aliasing of methods and attributes in Moo";
17254       license = with lib.licenses; [ artistic1 gpl1Plus ];
17255     };
17256   };
17258   MooXCmd = buildPerlPackage {
17259     pname = "MooX-Cmd";
17260     version = "0.017";
17261     src = fetchurl {
17262       url = "mirror://cpan/authors/id/R/RE/REHSACK/MooX-Cmd-0.017.tar.gz";
17263       hash = "sha256-lD/yjaqAiXMnx8X+xacQDPqsktrw+fl8OOOnfQCucPU=";
17264     };
17265     propagatedBuildInputs = [ ListMoreUtils ModulePluggable Moo PackageStash ParamsUtil RegexpCommon ];
17266     buildInputs = [ CaptureTiny ];
17267     meta = {
17268       description = "Giving an easy Moo style way to make command organized CLI apps";
17269       homepage = "https://metacpan.org/release/MooX-Cmd";
17270       license = with lib.licenses; [ artistic1 gpl1Plus ];
17271     };
17272   };
17274   MooXlate = buildPerlPackage {
17275     pname = "MooX-late";
17276     version = "0.100";
17277     src = fetchurl {
17278       url = "mirror://cpan/authors/id/T/TO/TOBYINK/MooX-late-0.100.tar.gz";
17279       hash = "sha256-KuWx49pavA5ABieOy8+o+nwiTqVSmmpoisuyKcCeal8=";
17280     };
17281     buildInputs = [ TestFatal TestRequires ];
17282     propagatedBuildInputs = [ Moo SubHandlesVia ];
17283     meta = {
17284       description = "Easily translate Moose code to Moo";
17285       homepage = "https://metacpan.org/release/MooX-late";
17286       license = with lib.licenses; [ artistic1 gpl1Plus ];
17287     };
17288   };
17290   MouseXSimpleConfig = buildPerlPackage {
17291     pname = "MouseX-SimpleConfig";
17292     version = "0.11";
17293     src = fetchurl {
17294       url = "mirror://cpan/authors/id/M/MJ/MJGARDNER/MouseX-SimpleConfig-0.11.tar.gz";
17295       hash = "sha256-JX84QJHTPTQDc6YVOUcDnGmNxEnR75iTNWRPw9LaAGk=";
17296     };
17297     propagatedBuildInputs = [ ConfigAny MouseXConfigFromFile ];
17298     meta = {
17299       description = "A Mouse role for setting attributes from a simple configfile";
17300       license = with lib.licenses; [ artistic1 gpl1Plus ];
17301     };
17302   };
17304   TestArchiveLibarchive = buildPerlPackage {
17305     pname = "Test-Archive-Libarchive";
17306     version = "0.02";
17307     src = fetchurl {
17308       url = "mirror://cpan/authors/id/P/PL/PLICEASE/Test-Archive-Libarchive-0.02.tar.gz";
17309       hash = "sha256-KxkYZx4F2i2dIiwQx9kXWFpiQYb+r7j4SQhZnDRwJ1E=";
17310     };
17311     propagatedBuildInputs = [ RefUtil Test2Suite ];
17312     meta = {
17313       homepage = "https://metacpan.org/pod/Test::Archive::Libarchive";
17314       description = "Testing tools for Archive::Libarchive";
17315       license = with lib.licenses; [ artistic1 gpl1Plus ];
17316       maintainers = with maintainers; [ tomasajt ];
17317     };
17318   };
17320   TestPostgreSQL = buildPerlModule {
17321     pname = "Test-PostgreSQL";
17322     version = "1.29";
17323     src = fetchurl {
17324       url = "mirror://cpan/authors/id/T/TJ/TJC/Test-PostgreSQL-1.29.tar.gz";
17325       hash = "sha256-GKz35YnKTMqc3kdgm1NsnYI8hWLRqlIQwWjl6xuOT54=";
17326     };
17327     buildInputs = [ ModuleBuildTiny TestSharedFork pkgs.postgresql ];
17328     propagatedBuildInputs = [ DBDPg DBI FileWhich FunctionParameters Moo TieHashMethod TryTiny TypeTiny ];
17330     makeMakerFlags = [ "POSTGRES_HOME=${pkgs.postgresql}" ];
17332     meta = {
17333       description = "PostgreSQL runner for tests";
17334       homepage = "https://github.com/TJC/Test-postgresql";
17335       license = with lib.licenses; [ artistic2 ];
17336     };
17337   };
17339   TestUseAllModules = buildPerlPackage {
17340     pname = "Test-UseAllModules";
17341     version = "0.17";
17342     src = fetchurl {
17343       url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/Test-UseAllModules-0.17.tar.gz";
17344       hash = "sha256-px8v6LlquL/Cdgqh0xNeoEmlsg3LEFRXt2mhGVx6JQk=";
17345     };
17346     meta = {
17347       description = "Do use_ok() for all the MANIFESTed modules";
17348       license = with lib.licenses; [ artistic1 gpl1Plus ];
17349     };
17350   };
17352   TestValgrind = buildPerlPackage {
17353     pname = "Test-Valgrind";
17354     version = "1.19";
17355     src = fetchurl {
17356       url = "mirror://cpan/authors/id/V/VP/VPIT/Test-Valgrind-1.19.tar.gz";
17357       hash = "sha256-GDinoV/ueo8Gnk5rRhxeFpBYthW437Q3hLPV2hpggRs=";
17358     };
17359     propagatedBuildInputs = [ EnvSanctify FileHomeDir PerlDestructLevel XMLTwig ];
17360     meta = {
17361       description = "Generate suppressions, analyse and test any command with valgrind";
17362       homepage = "https://search.cpan.org/dist/Test-Valgrind";
17363       license = with lib.licenses; [ artistic1 gpl1Plus ];
17364     };
17365   };
17367   MouseXTypesPathClass = buildPerlPackage {
17368     pname = "MouseX-Types-Path-Class";
17369     version = "0.07";
17370     src = fetchurl {
17371       url = "mirror://cpan/authors/id/M/MA/MASAKI/MouseX-Types-Path-Class-0.07.tar.gz";
17372       hash = "sha256-Io1LTz8O2VRyeGkdC3xf5T2Qh0pp33CaSXA8avh8Cd4=";
17373     };
17374     buildInputs = [ TestUseAllModules ];
17375     propagatedBuildInputs = [ MouseXTypes PathClass ];
17376     meta = {
17377       description = "Cross-platform path specification manipulation";
17378       license = with lib.licenses; [ artistic1 gpl1Plus ];
17379     };
17380   };
17382   MouseXTypes = buildPerlPackage {
17383     pname = "MouseX-Types";
17384     version = "0.06";
17385     src = fetchurl {
17386       url = "mirror://cpan/authors/id/G/GF/GFUJI/MouseX-Types-0.06.tar.gz";
17387       hash = "sha256-dyiEQf2t0Vvu7JoIE+zorsFULx2M6q7BR1Wz8xb7z4s=";
17388     };
17389     buildInputs = [ TestException ];
17390     propagatedBuildInputs = [ AnyMoose ];
17391     meta = {
17392       description = "Organize your Mouse types in libraries";
17393       license = with lib.licenses; [ artistic1 gpl1Plus ];
17394     };
17395   };
17397   MouseXConfigFromFile = buildPerlPackage {
17398     pname = "MouseX-ConfigFromFile";
17399     version = "0.05";
17400     src = fetchurl {
17401       url = "mirror://cpan/authors/id/M/MA/MASAKI/MouseX-ConfigFromFile-0.05.tar.gz";
17402       hash = "sha256-khsxyxP8H5gqYC+OI4Fbet0joiQlfkN5Dih1BM6HlTQ=";
17403     };
17404     buildInputs = [ TestUseAllModules ];
17405     propagatedBuildInputs = [ MouseXTypesPathClass ];
17406     meta = {
17407       description = "An abstract Mouse role for setting attributes from a configfile";
17408       license = with lib.licenses; [ artistic1 gpl1Plus ];
17409     };
17410   };
17412   MouseXGetopt = buildPerlModule {
17413     pname = "MouseX-Getopt";
17414     version = "0.38";
17415     src = fetchurl {
17416       url = "mirror://cpan/authors/id/G/GF/GFUJI/MouseX-Getopt-0.38.tar.gz";
17417       hash = "sha256-3j6o70Ut2VAeqMTtqHRLciRgJgKwRpJgft19YrefA48=";
17418     };
17419     patches = [
17420       ../development/perl-modules/MouseX-Getopt-gld-tests.patch
17421     ];
17422     buildInputs = [ ModuleBuildTiny MouseXConfigFromFile MouseXSimpleConfig TestException TestWarn ];
17423     propagatedBuildInputs = [ GetoptLongDescriptive Mouse ];
17424     meta = {
17425       description = "A Mouse role for processing command line options";
17426       homepage = "https://github.com/gfx/mousex-getopt";
17427       license = with lib.licenses; [ artistic1 gpl1Plus ];
17428     };
17429   };
17431   MooseXAttributeChained = buildPerlModule {
17432     pname = "MooseX-Attribute-Chained";
17433     version = "1.0.3";
17434     src = fetchurl {
17435       url = "mirror://cpan/authors/id/T/TO/TOMHUKINS/MooseX-Attribute-Chained-1.0.3.tar.gz";
17436       hash = "sha256-5+OKp8O3i1c06dQ892gy/OAHZ+alPV3Xmhci2GdtXk4=";
17437     };
17438     propagatedBuildInputs = [ Moose ];
17439     meta = {
17440       description = "Attribute that returns the instance to allow for chaining";
17441       license = with lib.licenses; [ artistic1 gpl1Plus ];
17442     };
17443   };
17445   MooseXAttributeHelpers = buildPerlModule {
17446     pname = "MooseX-AttributeHelpers";
17447     version = "0.25";
17448     src = fetchurl {
17449       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-AttributeHelpers-0.25.tar.gz";
17450       hash = "sha256-sMgZ7IOZmyWLJI+CBZ+ll1oM7jZUI6u+4O+spUAcXsY=";
17451     };
17452     buildInputs = [ ModuleBuildTiny TestException ];
17453     propagatedBuildInputs = [ Moose ];
17454     meta = {
17455       description = "(DEPRECATED) Extend your attribute interfaces";
17456       homepage = "https://github.com/moose/MooseX-AttributeHelpers";
17457       license = with lib.licenses; [ artistic1 gpl1Plus ];
17458     };
17459   };
17461   MooseXClone = buildPerlModule {
17462     pname = "MooseX-Clone";
17463     version = "0.06";
17464     src = fetchurl {
17465       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Clone-0.06.tar.gz";
17466       hash = "sha256-y9eCXbnnSwU/UkVEoBTwZv3OKQMW67Vo+HZ5GBs5jac=";
17467     };
17468     propagatedBuildInputs = [ DataVisitor HashUtilFieldHashCompat namespaceautoclean ];
17469     buildInputs = [ ModuleBuildTiny ];
17470     meta = {
17471       description = "Fine-grained cloning support for Moose objects";
17472       license = with lib.licenses; [ artistic1 gpl1Plus ];
17473     };
17474   };
17476   MooseXConfigFromFile = buildPerlModule {
17477     pname = "MooseX-ConfigFromFile";
17478     version = "0.14";
17479     src = fetchurl {
17480       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-ConfigFromFile-0.14.tar.gz";
17481       hash = "sha256-mtNDzZ+G1xS+m1S5xopEPYrMZQG2rWsV6coBMLLpbwg=";
17482     };
17483     buildInputs = [ ModuleBuildTiny TestDeep TestFatal TestRequires TestWithoutModule ];
17484     propagatedBuildInputs = [ MooseXTypesPathTiny ];
17485     meta = {
17486       description = "An abstract Moose role for setting attributes from a configfile";
17487       homepage = "https://github.com/moose/MooseX-ConfigFromFile";
17488       license = with lib.licenses; [ artistic1 gpl1Plus ];
17489     };
17490   };
17492   MooseXDaemonize = buildPerlModule {
17493     pname = "MooseX-Daemonize";
17494     version = "0.22";
17495     src = fetchurl {
17496       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Daemonize-0.22.tar.gz";
17497       hash = "sha256-in+5mdypuAKoUTahAUGy0zeKPs3gUnwd9z1V7bKOWbM=";
17498     };
17499     buildInputs = [ DevelCheckOS ModuleBuildTiny TestFatal ];
17500     propagatedBuildInputs = [ MooseXGetopt MooseXTypesPathClass ];
17501     meta = {
17502       description = "Role for daemonizing your Moose based application";
17503       homepage = "https://github.com/moose/MooseX-Daemonize";
17504       license = with lib.licenses; [ artistic1 gpl1Plus ];
17505     };
17506   };
17508   MooseXEmulateClassAccessorFast = buildPerlPackage {
17509     pname = "MooseX-Emulate-Class-Accessor-Fast";
17510     version = "0.009032";
17511     src = fetchurl {
17512       url = "mirror://cpan/authors/id/H/HA/HAARG/MooseX-Emulate-Class-Accessor-Fast-0.009032.tar.gz";
17513       hash = "sha256-gu637x8NJUGK5AbqJpErJBQo1LKrlRDV6d6z9ywYeZQ=";
17514     };
17515     buildInputs = [ TestException ];
17516     propagatedBuildInputs = [ Moose namespaceclean ];
17517     meta = {
17518       description = "Emulate Class::Accessor::Fast behavior using Moose attributes";
17519       license = with lib.licenses; [ artistic1 gpl1Plus ];
17520     };
17521   };
17523   MooseXGetopt = buildPerlModule {
17524     pname = "MooseX-Getopt";
17525     version = "0.75";
17526     src = fetchurl {
17527       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Getopt-0.75.tar.gz";
17528       hash = "sha256-Y/O+W7K8OB6eSLW5XAMw8hcYtmVuj/sZyZ0u4KwU68g=";
17529     };
17530     buildInputs = [ ModuleBuildTiny MooseXStrictConstructor PathTiny TestDeep TestFatal TestNeeds TestTrap TestWarnings ];
17531     propagatedBuildInputs = [ GetoptLongDescriptive MooseXRoleParameterized ];
17532     meta = {
17533       description = "A Moose role for processing command line options";
17534       homepage = "https://github.com/moose/MooseX-Getopt";
17535       license = with lib.licenses; [ artistic1 gpl1Plus ];
17536     };
17537   };
17539   MooseXHasOptions = buildPerlPackage {
17540     pname = "MooseX-Has-Options";
17541     version = "0.003";
17542     src = fetchurl {
17543       url = "mirror://cpan/authors/id/P/PS/PSHANGOV/MooseX-Has-Options-0.003.tar.gz";
17544       hash = "sha256-B8Ic+O1QCycgIP+NoZ8ZRyi7QU4AEqLwzFTvLvYiKmg=";
17545     };
17546     buildInputs = [ Moose TestDeep TestDifferences TestException TestMost TestWarn namespaceautoclean ];
17547     propagatedBuildInputs = [ ClassLoad ListMoreUtils StringRewritePrefix ];
17548     meta = {
17549       description = "Succinct options for Moose";
17550       homepage = "https://github.com/pshangov/moosex-has-options";
17551       license = with lib.licenses; [ artistic1 gpl1Plus ];
17552     };
17553   };
17555   MooseXHasSugar = buildPerlPackage {
17556     pname = "MooseX-Has-Sugar";
17557     version = "1.000006";
17558     src = fetchurl {
17559       url = "mirror://cpan/authors/id/K/KE/KENTNL/MooseX-Has-Sugar-1.000006.tar.gz";
17560       hash = "sha256-7+7T3bOo6hj0FtSF88KwQnFF0mfmM2jGUdSI6qjCjQk=";
17561     };
17562     buildInputs = [ TestFatal namespaceclean ];
17563     propagatedBuildInputs = [ SubExporterProgressive ];
17564     meta = {
17565       description = "Sugar Syntax for moose 'has' fields";
17566       homepage = "https://github.com/kentnl/MooseX-Has-Sugar";
17567       license = with lib.licenses; [ artistic1 gpl1Plus ];
17568     };
17569   };
17571   MooseXLazyRequire = buildPerlModule {
17572     pname = "MooseX-LazyRequire";
17573     version = "0.11";
17574     src = fetchurl {
17575       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-LazyRequire-0.11.tar.gz";
17576       hash = "sha256-72IMHgGdr5zz8jqUPSWpTJHpOrMSvNY74ul0DsC5Qog=";
17577     };
17578     buildInputs = [ ModuleBuildTiny TestFatal ];
17579     propagatedBuildInputs = [ Moose aliased namespaceautoclean ];
17580     meta = {
17581       description = "Required attributes which fail only when trying to use them";
17582       homepage = "https://github.com/moose/MooseX-LazyRequire";
17583       license = with lib.licenses; [ artistic1 gpl1Plus ];
17584     };
17585   };
17587   MooseXMarkAsMethods = buildPerlPackage {
17588     pname = "MooseX-MarkAsMethods";
17589     version = "0.15";
17590     src = fetchurl {
17591       url = "mirror://cpan/authors/id/R/RS/RSRCHBOY/MooseX-MarkAsMethods-0.15.tar.gz";
17592       hash = "sha256-yezBM3bQ/326SBl3M3wz6nTl0makKLavMVUqKRnvfvg=";
17593     };
17594     propagatedBuildInputs = [ Moose namespaceautoclean ];
17595     meta = {
17596       description = "Mark overload code symbols as methods";
17597       homepage = "https://metacpan.org/release/MooseX-MarkAsMethods";
17598       license = with lib.licenses; [ lgpl21Only ];
17599     };
17600   };
17602   MooseXMethodAttributes = buildPerlPackage {
17603     pname = "MooseX-MethodAttributes";
17604     version = "0.32";
17605     src = fetchurl {
17606       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-MethodAttributes-0.32.tar.gz";
17607       hash = "sha256-yzOIZXS30t05xCwNzccHrNsK7H273pohwEImYDaMGXs=";
17608     };
17609     buildInputs = [ MooseXRoleParameterized TestFatal TestNeeds ];
17610     propagatedBuildInputs = [ Moose namespaceautoclean ];
17611     meta = {
17612       description = "Code attribute introspection";
17613       homepage = "https://github.com/moose/MooseX-MethodAttributes";
17614       license = with lib.licenses; [ artistic1 gpl1Plus ];
17615     };
17616   };
17618   MooseXNonMoose = buildPerlPackage {
17619     pname = "MooseX-NonMoose";
17620     version = "0.26";
17621     src = fetchurl {
17622       url = "mirror://cpan/authors/id/D/DO/DOY/MooseX-NonMoose-0.26.tar.gz";
17623       hash = "sha256-y75S7PFgOCMfvX8sxrzhZqNWnIyzlq6A7EUXwuCNqn0=";
17624     };
17625     buildInputs = [ TestFatal ];
17626     propagatedBuildInputs = [ ListMoreUtils Moose ];
17627     meta = {
17628       description = "Easy subclassing of non-Moose classes";
17629       homepage = "https://metacpan.org/release/MooseX-NonMoose";
17630       license = with lib.licenses; [ artistic1 gpl1Plus ];
17631     };
17632   };
17634   MooseXOneArgNew = buildPerlPackage {
17635     pname = "MooseX-OneArgNew";
17636     version = "0.007";
17637     src = fetchurl {
17638       url = "mirror://cpan/authors/id/R/RJ/RJBS/MooseX-OneArgNew-0.007.tar.gz";
17639       hash = "sha256-hCgkNfEWnPCddRP6k4fiCReRY1zzWgeLUAuCmu6gYTg=";
17640     };
17641     propagatedBuildInputs = [ MooseXRoleParameterized ];
17642     meta = {
17643       description = "Teach ->new to accept single, non-hashref arguments";
17644       homepage = "https://github.com/rjbs/MooseX-OneArgNew";
17645       license = with lib.licenses; [ artistic1 gpl1Plus ];
17646     };
17647   };
17649   MooseXRelatedClassRoles = buildPerlPackage {
17650     pname = "MooseX-RelatedClassRoles";
17651     version = "0.004";
17652     src = fetchurl {
17653       url = "mirror://cpan/authors/id/H/HD/HDP/MooseX-RelatedClassRoles-0.004.tar.gz";
17654       hash = "sha256-MNt6I33SYCIhb/+5cLmFKFNHEws2kjxxGqCVaty0fp8=";
17655     };
17656     propagatedBuildInputs = [ MooseXRoleParameterized ];
17657     meta = { description = "Apply roles to a class related to yours";
17658       license = with lib.licenses; [ artistic1 gpl1Plus ];
17659     };
17660   };
17662   MooseXParamsValidate = buildPerlPackage {
17663     pname = "MooseX-Params-Validate";
17664     version = "0.21";
17665     src = fetchurl {
17666       url = "mirror://cpan/authors/id/D/DR/DROLSKY/MooseX-Params-Validate-0.21.tar.gz";
17667       hash = "sha256-iClURqupmcu4+ZjX+5onAdZhc5SlHW1yTHdObZ/xOdk=";
17668     };
17669     buildInputs = [ TestFatal ];
17670     propagatedBuildInputs = [ DevelCaller Moose ParamsValidate ];
17671     meta = {
17672       description = "An extension of Params::Validate using Moose's types";
17673       license = with lib.licenses; [ artistic1 gpl1Plus ];
17674     };
17675   };
17677   MooseXRoleParameterized = buildPerlModule {
17678     pname = "MooseX-Role-Parameterized";
17679     version = "1.11";
17680     src = fetchurl {
17681       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Role-Parameterized-1.11.tar.gz";
17682       hash = "sha256-HP52bF1/Dsq1f3M9zKQwoqKs1rmVdXFBuUCt42kr7J4=";
17683     };
17684     buildInputs = [ CPANMetaCheck ModuleBuildTiny TestFatal TestNeeds ];
17685     propagatedBuildInputs = [ Moose namespaceautoclean ];
17686     meta = {
17687       description = "Moose roles with composition parameters";
17688       homepage = "https://github.com/moose/MooseX-Role-Parameterized";
17689       license = with lib.licenses; [ artistic1 gpl1Plus ];
17690     };
17691   };
17693   MooseXRoleWithOverloading = buildPerlPackage {
17694     pname = "MooseX-Role-WithOverloading";
17695     version = "0.17";
17696     src = fetchurl {
17697       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Role-WithOverloading-0.17.tar.gz";
17698       hash = "sha256-krCV1z8SIPnC7S06qlugcutaot4gm3xFXaWocBuYaGU=";
17699     };
17700     propagatedBuildInputs = [ Moose aliased namespaceautoclean ];
17701     meta = {
17702       description = "(DEPRECATED) Roles which support overloading";
17703       homepage = "https://github.com/moose/MooseX-Role-WithOverloading";
17704       license = with lib.licenses; [ artistic1 gpl1Plus ];
17705     };
17706   };
17708   MooseXRunnable = buildPerlModule {
17709     pname = "MooseX-Runnable";
17710     version = "0.10";
17711     src = fetchurl {
17712       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Runnable-0.10.tar.gz";
17713       hash = "sha256-QNj9G1UkrpZZZaHxRNegoMhQWUxSRAKyMZsk1cSvEZk=";
17714     };
17715     buildInputs = [ ModuleBuildTiny TestFatal TestSimple13 TestTableDriven ];
17716     propagatedBuildInputs = [ ListSomeUtils MooseXTypesPathTiny ];
17717     meta = {
17718       description = "Tag a class as a runnable application";
17719       homepage = "https://github.com/moose/MooseX-Runnable";
17720       license = with lib.licenses; [ artistic1 gpl1Plus ];
17721       mainProgram = "mx-run";
17722     };
17723   };
17725   MooseXSemiAffordanceAccessor = buildPerlPackage {
17726     pname = "MooseX-SemiAffordanceAccessor";
17727     version = "0.10";
17728     src = fetchurl {
17729       url = "mirror://cpan/authors/id/D/DR/DROLSKY/MooseX-SemiAffordanceAccessor-0.10.tar.gz";
17730       hash = "sha256-pbhXdrzd7RaAJ6H/ZktBxfZYhnIc3VQ+OvnVN1misdU=";
17731     };
17732     propagatedBuildInputs = [ Moose ];
17733     meta = {
17734       description = "Name your accessors foo() and set_foo()";
17735       license = with lib.licenses; [ artistic2 ];
17736     };
17737   };
17739   MooseXSetOnce = buildPerlPackage {
17740     pname = "MooseX-SetOnce";
17741     version = "0.200002";
17742     src = fetchurl {
17743       url = "mirror://cpan/authors/id/R/RJ/RJBS/MooseX-SetOnce-0.200002.tar.gz";
17744       hash = "sha256-y+0Gt/zTU/DZm/gKh8HAtYEWBpcjGzrZpgjaIxuitlk=";
17745     };
17746     buildInputs = [ TestFatal ];
17747     propagatedBuildInputs = [ Moose ];
17748     meta = {
17749       description = "Write-once, read-many attributes for Moose";
17750       license = with lib.licenses; [ artistic1 gpl1Plus ];
17751     };
17752   };
17754   MooseXSingleton = buildPerlModule {
17755     pname = "MooseX-Singleton";
17756     version = "0.30";
17757     src = fetchurl {
17758       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Singleton-0.30.tar.gz";
17759       hash = "sha256-ZYSy8xsdPrbdfiMShzjnP2wBWxUhOLCoFX09DVnQZUE=";
17760     };
17761     buildInputs = [ ModuleBuildTiny TestFatal TestRequires TestWarnings ];
17762     propagatedBuildInputs = [ Moose ];
17763     meta = {
17764       description = "Turn your Moose class into a singleton";
17765       license = with lib.licenses; [ artistic1 gpl1Plus ];
17766     };
17767   };
17769   MooseXStorage = buildPerlPackage {
17770     pname = "MooseX-Storage";
17771     version = "0.53";
17772     src = fetchurl {
17773       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Storage-0.53.tar.gz";
17774       hash = "sha256-hwS/5QX2azQPYuhcn/MZwZ6WcLJtSwEskfThA7HarOA=";
17775     };
17776     buildInputs = [ TestDeep TestDeepType TestFatal TestNeeds TestDeepJSON TestWithoutModule DigestHMAC MooseXTypes ];
17777     propagatedBuildInputs = [ ModuleRuntime Moose MooseXRoleParameterized PodCoverage StringRewritePrefix namespaceautoclean IOStringy JSON JSONXS JSONMaybeXS CpanelJSONXS YAML YAMLOld YAMLTiny YAMLLibYAML YAMLSyck ];
17778     meta = {
17779       description = "A serialization framework for Moose classes";
17780       homepage = "https://github.com/moose/MooseX-Storage";
17781       license = with lib.licenses; [ artistic1 gpl1Plus ];
17782     };
17783   };
17785   MooseXStrictConstructor = buildPerlPackage {
17786     pname = "MooseX-StrictConstructor";
17787     version = "0.21";
17788     src = fetchurl {
17789       url = "mirror://cpan/authors/id/D/DR/DROLSKY/MooseX-StrictConstructor-0.21.tar.gz";
17790       hash = "sha256-xypa6Vg3Bszexx1AHcswVAE6dTa3UN8UNmE9hY6ikg0=";
17791     };
17792     buildInputs = [ Moo TestFatal TestNeeds ];
17793     propagatedBuildInputs = [ Moose namespaceautoclean ];
17794     meta = {
17795       description = "Make your object constructors blow up on unknown attributes";
17796       homepage = "https://metacpan.org/release/MooseX-StrictConstructor";
17797       license = with lib.licenses; [ artistic2 ];
17798     };
17799   };
17801   MooseXTraits = buildPerlModule {
17802     pname = "MooseX-Traits";
17803     version = "0.13";
17804     src = fetchurl {
17805       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Traits-0.13.tar.gz";
17806       hash = "sha256-dK/gxPr047l8V/KJQ3yqYL7Mo0zVgh9IndTMnaT74po=";
17807     };
17808     buildInputs = [ ModuleBuildTiny MooseXRoleParameterized TestFatal TestRequires TestSimple13 ];
17809     propagatedBuildInputs = [ Moose namespaceautoclean ];
17810     meta = {
17811       description = "Automatically apply roles at object creation time";
17812       homepage = "https://github.com/moose/MooseX-Traits";
17813       license = with lib.licenses; [ artistic1 gpl1Plus ];
17814     };
17815   };
17817   MooseXTraitsPluggable = buildPerlPackage {
17818     pname = "MooseX-Traits-Pluggable";
17819     version = "0.12";
17820     src = fetchurl {
17821       url = "mirror://cpan/authors/id/R/RK/RKITOVER/MooseX-Traits-Pluggable-0.12.tar.gz";
17822       hash = "sha256-q5a3lQ7L8puDb9/uu+Cqwiylc+cYO+fLfW0S3yKrWMo=";
17823     };
17824     buildInputs = [ TestException ];
17825     propagatedBuildInputs = [ ListMoreUtils Moose namespaceautoclean ];
17826     meta = {
17827       description = "Trait loading and resolution for Moose";
17828       license = with lib.licenses; [ artistic1 gpl1Plus ];
17829     };
17830   };
17832   MooseXTypes = buildPerlModule {
17833     pname = "MooseX-Types";
17834     version = "0.50";
17835     src = fetchurl {
17836       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Types-0.50.tar.gz";
17837       hash = "sha256-nNh7NJLL8L6dLfkxeyrfn8MGY3cOaZBmVL6j9BsXywg=";
17838     };
17839     buildInputs = [ ModuleBuildTiny TestFatal TestRequires ];
17840     propagatedBuildInputs = [ CarpClan Moose SubExporterForMethods namespaceautoclean ];
17841     meta = {
17842       description = "Organise your Moose types in libraries";
17843       homepage = "https://github.com/moose/MooseX-Types";
17844       license = with lib.licenses; [ artistic1 gpl1Plus ];
17845     };
17846   };
17848   MooseXTypesCommon = buildPerlModule {
17849     pname = "MooseX-Types-Common";
17850     version = "0.001014";
17851     src = fetchurl {
17852       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Types-Common-0.001014.tar.gz";
17853       hash = "sha256-75Nxi20vJA1QtcOssadLTCoZGGllFHAAGoK+HzXQ7w8=";
17854     };
17855     buildInputs = [ ModuleBuildTiny TestDeep TestWarnings ];
17856     propagatedBuildInputs = [ MooseXTypes ];
17857     meta = {
17858       description = "A library of commonly used type constraints";
17859       homepage = "https://github.com/moose/MooseX-Types-Common";
17860       license = with lib.licenses; [ artistic1 gpl1Plus ];
17861     };
17862   };
17864   MooseXTypesDateTime = buildPerlModule {
17865     pname = "MooseX-Types-DateTime";
17866     version = "0.13";
17867     src = fetchurl {
17868       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Types-DateTime-0.13.tar.gz";
17869       hash = "sha256-uJ+iZjb2oX6qOGi0UUNARytou9whYaHXmiKhv1sdOcY=";
17870     };
17871     buildInputs = [ ModuleBuildTiny TestFatal TestSimple13 ];
17872     propagatedBuildInputs = [ DateTime MooseXTypes ];
17873     meta = {
17874       description = "DateTime related constraints and coercions for Moose";
17875       homepage = "https://github.com/moose/MooseX-Types-DateTime";
17876       license = with lib.licenses; [ artistic1 gpl1Plus ];
17877     };
17878   };
17880   MooseXTypesDateTimeMoreCoercions = buildPerlModule {
17881     pname = "MooseX-Types-DateTime-MoreCoercions";
17882     version = "0.15";
17883     src = fetchurl {
17884       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Types-DateTime-MoreCoercions-0.15.tar.gz";
17885       hash = "sha256-Ibs6WXcZiI7bbOqhMkGNXPkuy5KlDM43uUJZpV4ON5Y=";
17886     };
17887     buildInputs = [ ModuleBuildTiny TestFatal TestSimple13 ];
17888     propagatedBuildInputs = [ DateTimeXEasy MooseXTypesDateTime TimeDurationParse ];
17889     meta = {
17890       description = "Extensions to MooseX::Types::DateTime";
17891       homepage = "https://github.com/moose/MooseX-Types-DateTime-MoreCoercions";
17892       license = with lib.licenses; [ artistic1 gpl1Plus ];
17893     };
17894   };
17896   MooseXTypesLoadableClass = buildPerlModule {
17897     pname = "MooseX-Types-LoadableClass";
17898     version = "0.015";
17899     src = fetchurl {
17900       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Types-LoadableClass-0.015.tar.gz";
17901       hash = "sha256-4DfTd4JT3PkpRkNXFbraDmRJwKKAj6P/MqllBk1aO/Q=";
17902     };
17903     buildInputs = [ ModuleBuildTiny TestFatal ];
17904     propagatedBuildInputs = [ MooseXTypes ];
17905     meta = {
17906       description = "ClassName type constraint with coercion to load the class";
17907       homepage = "https://github.com/moose/MooseX-Types-LoadableClass";
17908       license = with lib.licenses; [ artistic1 gpl1Plus ];
17909     };
17910   };
17912   MooseXTypesPathClass = buildPerlModule {
17913     pname = "MooseX-Types-Path-Class";
17914     version = "0.09";
17915     src = fetchurl {
17916       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Types-Path-Class-0.09.tar.gz";
17917       hash = "sha256-54S6tTaYrpWnCahmMwYUX/7FVmjfbPMWFTM1I/vn734=";
17918     };
17919     propagatedBuildInputs = [ MooseXTypes PathClass ];
17920     buildInputs = [ ModuleBuildTiny TestNeeds ];
17921     meta = {
17922       description = "A Path::Class type library for Moose";
17923       license = with lib.licenses; [ artistic1 gpl1Plus ];
17924     };
17925   };
17927   MooseXTypesPathTiny = buildPerlModule {
17928     pname = "MooseX-Types-Path-Tiny";
17929     version = "0.012";
17930     src = fetchurl {
17931       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Types-Path-Tiny-0.012.tar.gz";
17932       hash = "sha256-Ge7eAt1lTnD3PjTNevAGN2UXO8rv7v8b2+ITGOz9kVg=";
17933     };
17934     buildInputs = [ Filepushd ModuleBuildTiny TestFatal ];
17935     propagatedBuildInputs = [ MooseXGetopt MooseXTypesStringlike PathTiny ];
17936     meta = {
17937       description = "Path::Tiny types and coercions for Moose";
17938       homepage = "https://github.com/karenetheridge/moosex-types-path-tiny";
17939       license = with lib.licenses; [ asl20 ];
17940     };
17941   };
17943   MooseXTypesPerl = buildPerlPackage {
17944     pname = "MooseX-Types-Perl";
17945     version = "0.101344";
17946     src = fetchurl {
17947       url = "mirror://cpan/authors/id/R/RJ/RJBS/MooseX-Types-Perl-0.101344.tar.gz";
17948       hash = "sha256-h2RDVPdPplI1yyv8pEJ3kwp+q+UazF+B+2MVMKg1XiQ=";
17949     };
17950     propagatedBuildInputs = [ MooseXTypes ];
17951     meta = {
17952       description = "Moose types that check against Perl syntax";
17953       homepage = "https://github.com/rjbs/MooseX-Types-Perl";
17954       license = with lib.licenses; [ artistic1 gpl1Plus ];
17955     };
17956   };
17958   MooseXTypesStringlike = buildPerlPackage {
17959     pname = "MooseX-Types-Stringlike";
17960     version = "0.003";
17961     src = fetchurl {
17962       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/MooseX-Types-Stringlike-0.003.tar.gz";
17963       hash = "sha256-LuNJ7FxSmm80f0L/ZA5HskVWS5PMowXfY8eCH1tVzxk=";
17964     };
17965     propagatedBuildInputs = [ MooseXTypes ];
17966     meta = {
17967       description = "Moose type constraints for strings or string-like objects";
17968       homepage = "https://github.com/dagolden/MooseX-Types-Stringlike";
17969       license = with lib.licenses; [ asl20 ];
17970     };
17971   };
17973   MooseXTypesStructured = buildPerlModule {
17974     pname = "MooseX-Types-Structured";
17975     version = "0.36";
17976     src = fetchurl {
17977       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Types-Structured-0.36.tar.gz";
17978       hash = "sha256-Q822UvljhyPjV3yw+LVGhiAkTJY252WYEeW0qAFgPVc=";
17979     };
17980     buildInputs = [ DateTime ModuleBuildTiny MooseXTypesDateTime TestFatal TestNeeds ];
17981     propagatedBuildInputs = [ DevelPartialDump MooseXTypes ];
17982     meta = {
17983       description = "Structured Type Constraints for Moose";
17984       homepage = "https://github.com/moose/MooseX-Types-Structured";
17985       license = with lib.licenses; [ artistic1 gpl1Plus ];
17986     };
17987   };
17989   MooseXTypesURI = buildPerlModule {
17990     pname = "MooseX-Types-URI";
17991     version = "0.09";
17992     src = fetchurl {
17993       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Types-URI-0.09.tar.gz";
17994       hash = "sha256-Jxd1Ta25EIbhHSH+oGy6qaEuYBtB0VRDFQ7dfZUI7+g=";
17995     };
17996     buildInputs = [ ModuleBuildTiny TestNeeds TestWithoutModule ];
17997     propagatedBuildInputs = [ MooseXTypes URI URIFromHash namespaceautoclean ];
17998     meta = {
17999       description = "URI related types and coercions for Moose";
18000       homepage = "https://github.com/moose/MooseX-Types-URI";
18001       license = with lib.licenses; [ artistic1 gpl1Plus ];
18002     };
18003   };
18005   MP3CutGapless = buildPerlPackage {
18006     pname = "MP3-Cut-Gapless";
18007     version = "0.03";
18008     src = fetchurl {
18009       url = "mirror://cpan/authors/id/A/AG/AGRUNDMA/MP3-Cut-Gapless-0.03.tar.gz";
18010       hash = "sha256-PoS3OdHx4902FvhR3GV14WXTKEZ/AySGB5UOWVH+pPM=";
18011     };
18012     propagatedBuildInputs = [ AudioCuefileParser ];
18013     meta = {
18014       description = "Split an MP3 file without gaps (based on pcutmp3)";
18015       license = with lib.licenses; [ artistic1 ];
18016     };
18017   };
18019   MP3Info = buildPerlPackage {
18020     pname = "MP3-Info";
18021     version = "1.26";
18022     src = fetchurl {
18023       url = "mirror://cpan/authors/id/J/JM/JMERELO/MP3-Info-1.26.tar.gz";
18024       hash = "sha256-V2I0BzJCHyUCp3DWoSblhPLNljNR0rwle9J4w5vOi+c=";
18025     };
18026     meta = {
18027       description = "Manipulate / fetch info from MP3 audio files";
18028       license = with lib.licenses; [ artistic1 gpl1Plus ];
18029     };
18030   };
18032   MP3Tag = buildPerlPackage {
18033     pname = "MP3-Tag";
18034     version = "1.16";
18035     src = fetchurl {
18036       url = "mirror://cpan/authors/id/I/IL/ILYAZ/modules/MP3-Tag-1.16.zip";
18037       hash = "sha256-UDhQk6owAFa8Jiu2pACpbiGVl3wcXh6/FaXgdak3e4Y=";
18038     };
18039     buildInputs = [ pkgs.unzip ];
18041     postPatch = ''
18042       substituteInPlace Makefile.PL --replace "'PL_FILES'" "#'PL_FILES'"
18043     '';
18044     postFixup = ''
18045       perl data_pod.PL PERL5LIB:$PERL5LIB
18046     '';
18047     outputs = [ "out" ];
18048     meta = {
18049       description = "Module for reading tags of MP3 audio files";
18050       license = with lib.licenses; [ artistic1 ];
18051     };
18052   };
18054   MockMonkeyPatch = buildPerlModule {
18055     pname = "Mock-MonkeyPatch";
18056     version = "1.02";
18057     src = fetchurl {
18058       url = "mirror://cpan/authors/id/J/JB/JBERGER/Mock-MonkeyPatch-1.02.tar.gz";
18059       hash = "sha256-xbaUTKVP6DVXN2cwYO1OnvhyNyZXfXluHK5eVr8bAYE=";
18060     };
18061     buildInputs = [ ModuleBuildTiny ];
18062     meta = {
18063       description = "Monkey patching with test mocking in mind";
18064       license = with lib.licenses; [ artistic1 gpl1Plus ];
18065     };
18066   };
18068   Mouse = buildPerlModule {
18069     pname = "Mouse";
18070     version = "2.5.10";
18071     src = fetchurl {
18072       url = "mirror://cpan/authors/id/S/SK/SKAJI/Mouse-v2.5.10.tar.gz";
18073       hash = "sha256-zo3COUYVOkZ/8JdlFn7iWQ9cUCEg9IotlEFzPzmqMu4=";
18074     };
18075     buildInputs = [ ModuleBuildXSUtil TestException TestFatal TestLeakTrace TestOutput TestRequires TryTiny ];
18076     perlPreHook = "export LD=$CC";
18077     env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isi686 "-fno-stack-protector";
18078     hardeningDisable = lib.optional stdenv.isi686 "stackprotector";
18079     meta = {
18080       description = "Moose minus the antlers";
18081       license = with lib.licenses; [ artistic1 gpl1Plus ];
18082     };
18083   };
18085   MouseXNativeTraits = buildPerlPackage {
18086     pname = "MouseX-NativeTraits";
18087     version = "1.09";
18088     src = fetchurl {
18089       url = "mirror://cpan/authors/id/G/GF/GFUJI/MouseX-NativeTraits-1.09.tar.gz";
18090       hash = "sha256-+KW/WihwLfsTyAk75cQcq5xfwcXSR6uR4i591ydky14=";
18091     };
18092     buildInputs = [ AnyMoose TestFatal ];
18093     propagatedBuildInputs = [ Mouse ];
18094     meta = {
18095       description = "Extend your attribute interfaces for Mouse";
18096       license = with lib.licenses; [ artistic1 gpl1Plus ];
18097     };
18098   };
18100   MozillaCA = buildPerlPackage {
18101     pname = "Mozilla-CA";
18102     version = "20230821";
18103     src = fetchurl {
18104       url = "mirror://cpan/authors/id/L/LW/LWP/Mozilla-CA-20230821.tar.gz";
18105       hash = "sha256-MuHQBFKZAEBFucTRbC2q5FOiFiCIc97qJED3EmCnzaE=";
18106     };
18108     postPatch = ''
18109       ln -s --force ${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt lib/Mozilla/CA/cacert.pem
18110     '';
18112     meta = {
18113       description = "Mozilla's CA cert bundle in PEM format";
18114       homepage = "https://github.com/gisle/mozilla-ca";
18115       license = with lib.licenses; [ mpl20 ];
18116     };
18117   };
18119   MozillaLdap = callPackage ../development/perl-modules/Mozilla-LDAP { };
18121   MROCompat = buildPerlPackage {
18122     pname = "MRO-Compat";
18123     version = "0.15";
18124     src = fetchurl {
18125       url = "mirror://cpan/authors/id/H/HA/HAARG/MRO-Compat-0.15.tar.gz";
18126       hash = "sha256-DUU1+I5Dur2Eq2BIZiFfxNBDmL1Nt7IYUtSjGxwV72E=";
18127     };
18128     meta = {
18129       description = "Mro::* interface compatibility for Perls < 5.9.5";
18130       homepage = "https://metacpan.org/release/MRO-Compat";
18131       license = with lib.licenses; [ artistic1 gpl1Plus ];
18132     };
18133   };
18135   MsgPackRaw = buildPerlPackage rec {
18136     pname = "MsgPack-Raw";
18137     version = "0.05";
18138     src = fetchurl {
18139       url = "mirror://cpan/authors/id/J/JA/JACQUESG/MsgPack-Raw-${version}.tar.gz";
18140       hash = "sha256-hVnitkzZjZmrxmbt8qTIckyVNGEmFq8R9OsLvQ1CLaw=";
18141     };
18142     checkInputs = [ TestPod TestPodCoverage ];
18143     meta = with lib; {
18144       description = "Perl bindings to the msgpack C library";
18145       homepage = "https://github.com/jacquesg/p5-MsgPack-Raw";
18146       license = with licenses; [ gpl1Plus /* or */ artistic1 ];
18147       maintainers = with maintainers; [ figsoda ];
18148     };
18149   };
18151   MusicBrainzDiscID = buildPerlPackage {
18152     pname = "MusicBrainz-DiscID";
18153     version = "0.06";
18154     src = fetchurl {
18155       url = "mirror://cpan/authors/id/N/NJ/NJH/MusicBrainz-DiscID-0.06.tar.gz";
18156       hash = "sha256-ugtu0JiX/1Y7pZhy7pNxW+83FXUVsZt8bW8obmVI7Ks=";
18157     };
18158     perlPreHook = lib.optionalString stdenv.isi686 "export LD=$CC"; # fix undefined reference to `__stack_chk_fail_local'
18159     # Makefile.PL in this package uses which to find pkg-config -- make it use path instead
18160     patchPhase = ''sed -ie 's/`which pkg-config`/"pkg-config"/' Makefile.PL'';
18161     doCheck = false; # The main test performs network access
18162     nativeBuildInputs = [ pkgs.pkg-config ];
18163     propagatedBuildInputs = [ pkgs.libdiscid ];
18164     meta = {
18165       description = "- Perl interface for the MusicBrainz libdiscid library";
18166       license = with lib.licenses; [ mit ];
18167     };
18168   };
18170   MusicBrainz = buildPerlModule {
18171     pname = "WebService-MusicBrainz";
18172     version = "1.0.6";
18173     src = fetchurl {
18174       url = "mirror://cpan/authors/id/B/BF/BFAIST/WebService-MusicBrainz-1.0.6.tar.gz";
18175       hash = "sha256-XpH1ZZZ3w5CJv28lO0Eoe7zTVh9qJaB5Zc6DsmKIUuE=";
18176     };
18177     propagatedBuildInputs = [ Mojolicious ];
18178     doCheck = false; # Test performs network access.
18179     meta = {
18180       description = "API to search the musicbrainz.org database";
18181       license = with lib.licenses; [ artistic1 gpl1Plus ];
18182     };
18183   };
18185   MustacheSimple = buildPerlPackage {
18186     pname = "Mustache-Simple";
18187     version = "1.3.6";
18188     src = fetchurl {
18189       url = "mirror://cpan/authors/id/C/CM/CMS/Mustache-Simple-v1.3.6.tar.gz";
18190       hash = "sha256-UdtdUf9LJaZw2L+r45ArbUVDTs94spvB//Ga9uc4MAM=";
18191     };
18192     propagatedBuildInputs = [ YAMLLibYAML ];
18193     meta = {
18194       description = "A simple Mustache Renderer";
18195       license = with lib.licenses; [ artistic1 gpl1Plus ];
18196     };
18197   };
18199   MySQLDiff = buildPerlPackage rec {
18200     pname = "MySQL-Diff";
18201     version = "0.60";
18202     src = fetchurl {
18203       url = "mirror://cpan/authors/id/E/ES/ESTRABD/MySQL-Diff-0.60.tar.gz";
18204       hash = "sha256-XXCApL1XFP+e9Taqd0p62zxvDnYCFcpsOdijVFNE+VY=";
18205     };
18206     propagatedBuildInputs = [ pkgs.mariadb.client FileSlurp StringShellQuote ];
18207     meta = {
18208       description = "Generates a database upgrade instruction set";
18209       homepage = "https://github.com/estrabd/mysqldiff";
18210       license = with lib.licenses; [ artistic1 gpl1Plus ];
18211       maintainers = [ maintainers.sgo ];
18212       mainProgram = "mysqldiff";
18213     };
18214   };
18216   namespaceautoclean = buildPerlPackage {
18217     pname = "namespace-autoclean";
18218     version = "0.29";
18219     src = fetchurl {
18220       url = "mirror://cpan/authors/id/E/ET/ETHER/namespace-autoclean-0.29.tar.gz";
18221       hash = "sha256-RevY5kpUqG+I2OAa5VISlnyKqP7VfoFAhd73YIrGWAQ=";
18222     };
18223     buildInputs = [ TestNeeds ];
18224     propagatedBuildInputs = [ SubIdentify namespaceclean ];
18225     meta = {
18226       description = "Keep imports out of your namespace";
18227       homepage = "https://github.com/moose/namespace-autoclean";
18228       license = with lib.licenses; [ artistic1 gpl1Plus ];
18229     };
18230   };
18232   namespaceclean = buildPerlPackage {
18233     pname = "namespace-clean";
18234     version = "0.27";
18235     src = fetchurl {
18236       url = "mirror://cpan/authors/id/R/RI/RIBASUSHI/namespace-clean-0.27.tar.gz";
18237       hash = "sha256-ihCoPD4YPcePnnt6pNCbR8EftOfTozuaEpEv0i4xr50=";
18238     };
18239     propagatedBuildInputs = [ BHooksEndOfScope PackageStash ];
18240     meta = {
18241       description = "Keep imports and functions out of your namespace";
18242       homepage = "https://search.cpan.org/dist/namespace-clean";
18243       license = with lib.licenses; [ artistic1 gpl1Plus ];
18244     };
18245   };
18247   NeovimExt = buildPerlPackage rec {
18248     pname = "Neovim-Ext";
18249     version = "0.06";
18250     src = fetchurl {
18251       url = "mirror://cpan/authors/id/J/JA/JACQUESG/Neovim-Ext-${version}.tar.gz";
18252       hash = "sha256-bSzrMGLJZzfbpVbLIEYxMPxABocbJbfE9mzTgZ1FBLg=";
18253     };
18254     propagatedBuildInputs = [
18255       ClassAccessor
18256       EvalSafe
18257       IOAsync
18258       MsgPackRaw
18259     ];
18260     checkInputs = [
18261       ArchiveZip
18262       FileSlurper
18263       FileWhich
18264       ProcBackground
18265       TestPod
18266       TestPodCoverage
18267     ];
18268     # TODO: fix tests
18269     doCheck = false;
18270     meta = with lib; {
18271       description = "Perl bindings for Neovim";
18272       homepage = "https://github.com/jacquesg/p5-Neovim-Ext";
18273       license = with licenses; [ gpl1Plus /* or */ artistic1 ];
18274       maintainers = with maintainers; [ figsoda ];
18275     };
18276   };
18278   NetDNSNative = buildPerlPackage {
18279     pname = "Net-DNS-Native";
18280     version = "0.22";
18281     src = fetchurl {
18282       url = "mirror://cpan/authors/id/O/OL/OLEG/Net-DNS-Native-0.22.tar.gz";
18283       hash = "sha256-EI2d7bq5/69qDQFSVSbeGJSITpUL/YM3F+XNOJBcMNU=";
18284     };
18285     meta = {
18286       description = "Non-blocking system DNS resolver";
18287       license = with lib.licenses; [ artistic1 gpl1Plus ];
18288       maintainers = with maintainers; [ tomasajt ];
18289     };
18290   };
18292   NetIdent = buildPerlPackage {
18293     pname = "Net-Ident";
18294     version = "1.25";
18295     src = fetchurl {
18296       url = "mirror://cpan/authors/id/T/TO/TODDR/Net-Ident-1.25.tar.gz";
18297       hash = "sha256-LlvViwHCpm6ASaL42ck+G19tzlPg7jpIHOam9BHyyPg=";
18298     };
18299     meta = {
18300       description = "Lookup the username on the remote end of a TCP/IP connection";
18301       homepage = "https://github.com/toddr/Net-Ident";
18302       license = with lib.licenses; [ mit ];
18303     };
18304   };
18306   NetINET6Glue = buildPerlPackage {
18307     pname = "Net-INET6Glue";
18308     version = "0.604";
18309     src = fetchurl {
18310       url = "mirror://cpan/authors/id/S/SU/SULLR/Net-INET6Glue-0.604.tar.gz";
18311       hash = "sha256-kMNjmPlQFBTMzaiynyOn908vK09VLhLevxYhjHNbuxc=";
18312     };
18313     meta = {
18314       description = "Make common modules IPv6 ready by hotpatching";
18315       homepage = "https://github.com/noxxi/p5-net-inet6glue";
18316       license = with lib.licenses; [ artistic1 gpl1Plus ];
18317     };
18318   };
18320   NetAddrIP = buildPerlPackage {
18321     pname = "NetAddr-IP";
18322     version = "4.079";
18323     src = fetchurl {
18324       url = "mirror://cpan/authors/id/M/MI/MIKER/NetAddr-IP-4.079.tar.gz";
18325       hash = "sha256-7FqC37cCi80ouz1Wn5XYfdQWbMGYZ/IYTtOln21soOc=";
18326     };
18327     meta = {
18328       description = "Manages IPv4 and IPv6 addresses and subnets";
18329       license = with lib.licenses; [ artistic1 gpl1Plus ];
18330     };
18331   };
18333   NetAmazonAWSSign = buildPerlPackage {
18334     pname = "Net-Amazon-AWSSign";
18335     version = "0.12";
18336     src = fetchurl {
18337       url = "mirror://cpan/authors/id/N/NA/NATON/Net-Amazon-AWSSign-0.12.tar.gz";
18338       hash = "sha256-HQQMazseorVlkFefnBjgUAtsaiF7WdiDHw2WBMqX7T4=";
18339     };
18340     propagatedBuildInputs = [ URI ];
18341     meta = {
18342       description = "Perl extension to create signatures for AWS requests";
18343       license = with lib.licenses; [ artistic1 gpl1Plus ];
18344     };
18345   };
18347   NetAmazonEC2 = buildPerlPackage {
18348     pname = "Net-Amazon-EC2";
18349     version = "0.36";
18350     src = fetchurl {
18351       url = "mirror://cpan/authors/id/M/MA/MALLEN/Net-Amazon-EC2-0.36.tar.gz";
18352       hash = "sha256-Tig2kufwZsJBjtrpIz47YkAPk1X01SH5lRXlL3t9cvE=";
18353     };
18354     propagatedBuildInputs = [ LWPProtocolHttps Moose ParamsValidate XMLSimple ];
18355     buildInputs = [ TestException ];
18356     meta = {
18357       description = "Perl interface to the Amazon Elastic Compute Cloud (EC2) environment";
18358       homepage = "https://metacpan.org/dist/Net-Amazon-EC2";
18359       license = with lib.licenses; [ artistic1 gpl1Plus ];
18360     };
18361   };
18363   NetAmazonMechanicalTurk = buildPerlModule {
18364     pname = "Net-Amazon-MechanicalTurk";
18365     version = "1.02";
18366     src = fetchurl {
18367       url = "mirror://cpan/authors/id/M/MT/MTURK/Net-Amazon-MechanicalTurk-1.02.tar.gz";
18368       hash = "sha256-jQlewUjglLJ/TMzHnhyvnDHzzA5t2CzoqORCyNx7D44=";
18369     };
18370     patches =
18371       [ ../development/perl-modules/net-amazon-mechanicalturk.patch ];
18372     propagatedBuildInputs = [ DigestHMAC LWPProtocolHttps XMLParser ];
18373     doCheck = false; /* wants network */
18374     meta = {
18375       description = "Amazon Mechanical Turk SDK for Perl";
18376       license = with lib.licenses; [ asl20 ];
18377     };
18378   };
18380   NetAmazonS3 = buildPerlPackage {
18381     pname = "Net-Amazon-S3";
18382     version = "0.991";
18383     src = fetchurl {
18384       url = "mirror://cpan/authors/id/B/BA/BARNEY/Net-Amazon-S3-0.991.tar.gz";
18385       hash = "sha256-+3r4umSUjRo/MdgJ13EFImiA8GmYrH8Rn4JITmijI9M=";
18386     };
18387     buildInputs = [ TestDeep TestException TestLWPUserAgent TestMockTime TestWarnings ];
18388     propagatedBuildInputs = [ DataStreamBulk DateTimeFormatHTTP DigestHMAC DigestMD5File FileFindRule LWPUserAgentDetermined MIMETypes MooseXRoleParameterized MooseXStrictConstructor MooseXTypesDateTimeMoreCoercions RefUtil RegexpCommon SafeIsa SubOverride TermEncoding TermProgressBarSimple XMLLibXML ];
18389     meta = {
18390       description = "Use the Amazon S3 - Simple Storage Service";
18391       license = with lib.licenses; [ artistic1 gpl1Plus ];
18392       mainProgram = "s3cl";
18393     };
18394   };
18396   NetAmazonS3Policy = buildPerlModule {
18397     pname = "Net-Amazon-S3-Policy";
18398     version = "0.1.6";
18399     src = fetchurl {
18400       url = "mirror://cpan/authors/id/P/PO/POLETTIX/Net-Amazon-S3-Policy-0.1.6.tar.gz";
18401       hash = "sha256-0rFukwhnSHQ0tHdHhooAP0scyECy15WfiPw2vQ2G2RQ=";
18402     };
18403     propagatedBuildInputs = [ JSON ];
18404     meta = {
18405       description = "Manage Amazon S3 policies for HTTP POST forms";
18406       license = with lib.licenses; [ artistic1 gpl1Plus ];
18407     };
18408   };
18410   NetAsyncHTTP = buildPerlModule {
18411     pname = "Net-Async-HTTP";
18412     version = "0.49";
18413     src = fetchurl {
18414       url = "mirror://cpan/authors/id/P/PE/PEVANS/Net-Async-HTTP-0.49.tar.gz";
18415       hash = "sha256-OSBtBpSV0bhq7jeqitPJM0025ZzObPec04asDPN5jNs=";
18416     };
18417     buildInputs = [ HTTPCookies Test2Suite TestMetricsAny ];
18418     propagatedBuildInputs = [ Future HTTPMessage IOAsync MetricsAny StructDumb URI ];
18419     preCheck = lib.optionalString stdenv.isDarwin ''
18420       # network tests fail on Darwin/sandbox, so disable these
18421       rm -f t/20local-connect.t t/22local-connect-pipeline.t t/23local-connect-redir.t
18422       rm -f t/90rt75615.t t/90rt75616.t t/90rt93232.t
18423     '';
18424     meta = {
18425       description = "Use HTTP with IO::Async";
18426       license = with lib.licenses; [ artistic1 gpl1Plus ];
18427       maintainers = [ maintainers.zakame ];
18428     };
18429   };
18431   NetAsyncHTTPServer = buildPerlModule {
18432     pname = "Net-Async-HTTP-Server";
18433     version = "0.14";
18434     src = fetchurl {
18435       url = "mirror://cpan/authors/id/P/PE/PEVANS/Net-Async-HTTP-Server-0.14.tar.gz";
18436       hash = "sha256-6nG3kcEtD6X3JubMA/Zuo20bRhNxj2xb84EzvRinsrY=";
18437     };
18438     buildInputs = [ Test2Suite TestMetricsAny TestRefcount ];
18439     propagatedBuildInputs = [ HTTPMessage IOAsync MetricsAny ];
18440     meta = {
18441       description = "Serve HTTP with IO::Async";
18442       license = with lib.licenses; [ artistic1 gpl1Plus ];
18443       maintainers = [ maintainers.anoa ];
18444     };
18445   };
18447   NetAsyncPing = buildPerlPackage {
18448     pname = "Net-Async-Ping";
18449     version = "0.004001";
18450     src = fetchurl {
18451       url = "mirror://cpan/authors/id/A/AB/ABRAXXA/Net-Async-Ping-0.004001.tar.gz";
18452       hash = "sha256-kFfoUHYMcT2rB6DBycj4isEfbnTop0gcEObyc12K6Vs=";
18453     };
18454     propagatedBuildInputs = [ IOAsync Moo NetFrameLayerIPv6 namespaceclean ];
18455     buildInputs = [ TestFatal ];
18456     preCheck = "rm t/icmp_ps.t t/icmpv6_ps.t"; # ping socket tests fail
18457     meta = {
18458       description = "Asyncronously check remote host for reachability";
18459       homepage = "https://github.com/frioux/Net-Async-Ping";
18460       license = with lib.licenses; [ artistic1 gpl1Plus ];
18461     };
18462   };
18464   NetAsyncWebSocket = buildPerlModule {
18465     pname = "Net-Async-WebSocket";
18466     version = "0.13";
18467     src = fetchurl {
18468       url = "mirror://cpan/authors/id/P/PE/PEVANS/Net-Async-WebSocket-0.13.tar.gz";
18469       hash = "sha256-DayDQtPHii/syr1GZxRd1a3U+4zRjRVtKXoead/hFgA=";
18470     };
18471     propagatedBuildInputs = [ IOAsync ProtocolWebSocket URI ];
18472     preCheck = lib.optionalString stdenv.isDarwin ''
18473       # network tests fail on Darwin/sandbox, so disable these
18474       rm -f t/02server.t t/03cross.t
18475     '';
18476     meta = {
18477       description = "Use WebSockets with IO::Async";
18478       license = with lib.licenses; [ artistic1 gpl1Plus ];
18479       maintainers = [ maintainers.zakame ];
18480     };
18481   };
18483   NetAMQP = buildPerlModule {
18484     pname = "Net-AMQP";
18485     version = "0.06";
18486     src = fetchurl {
18487       url = "mirror://cpan/authors/id/C/CH/CHIPS/Net-AMQP-0.06.tar.gz";
18488       hash = "sha256-Cyun3izX3dX+ECouKueuuiHqqxB4vzv9PFpyKTclY4A=";
18489     };
18490     doCheck = false; # failures on 32bit
18491     buildInputs = [ TestDeep ];
18492     propagatedBuildInputs = [ ClassAccessor ClassDataInheritable XMLLibXML ];
18493     meta = {
18494       description = "Advanced Message Queue Protocol (de)serialization and representation";
18495       license = with lib.licenses; [ artistic1 gpl1Plus ];
18496     };
18497   };
18499   NetCIDR = buildPerlPackage {
18500     pname = "Net-CIDR";
18501     version = "0.21";
18502     src = fetchurl {
18503       url = "mirror://cpan/authors/id/M/MR/MRSAM/Net-CIDR-0.21.tar.gz";
18504       hash = "sha256-MPMDwHNZSNozNw3sx+h8+mi8QwqkS4HRj42CO20av78=";
18505     };
18506     meta = {
18507       description = "Manipulate IPv4/IPv6 netblocks in CIDR notation";
18508       license = with lib.licenses; [ artistic1 gpl1Plus ];
18509       maintainers = [ maintainers.bjornfor ];
18510     };
18511   };
18513   NetCIDRLite = buildPerlPackage {
18514     pname = "Net-CIDR-Lite";
18515     version = "0.22";
18516     src = fetchurl {
18517       url = "mirror://cpan/authors/id/S/ST/STIGTSP/Net-CIDR-Lite-0.22.tar.gz";
18518       hash = "sha256-QxfYyzQaYXueCIjaQ8Cc3//8sMnt97jJko10KlY7hRc=";
18519     };
18520     meta = {
18521       description = "Perl extension for merging IPv4 or IPv6 CIDR addresses";
18522       license = with lib.licenses; [ artistic1 gpl1Plus ];
18523       maintainers = [ maintainers.sgo ];
18524     };
18525   };
18527   NetCoverArtArchive = buildPerlPackage {
18528     pname = "Net-CoverArtArchive";
18529     version = "1.02";
18530     src = fetchurl {
18531       url = "mirror://cpan/authors/id/C/CY/CYCLES/Net-CoverArtArchive-1.02.tar.gz";
18532       hash = "sha256-VyXiCCZDVq1rP6++uXVqz8Kny5WDiMpcCHqsJzNF3dE=";
18533     };
18534     buildInputs = [ FileFindRule ];
18535     propagatedBuildInputs = [ JSONAny LWP Moose namespaceautoclean ];
18536     meta = {
18537       description = "Query the coverartarchive.org";
18538       homepage = "https://github.com/metabrainz/CoverArtArchive";
18539       license = with lib.licenses; [ artistic1 gpl1Plus ];
18540     };
18541   };
18543   NetCUPS = buildPerlPackage {
18544     pname = "Net-CUPS";
18545     version = "0.64";
18546     src = fetchurl {
18547       url = "mirror://cpan/authors/id/N/NI/NINE/Net-CUPS-0.64.tar.gz";
18548       hash = "sha256-17x3/w9iv4dMhDxZDrEqgLvUR0mi+3Tb7URcNdDoWoU=";
18549     };
18550     buildInputs = [ pkgs.cups pkgs.cups-filters ];
18551     NIX_CFLAGS_LINK = "-L${lib.getLib pkgs.cups}/lib -lcups";
18552     meta = {
18553       description = "Common Unix Printing System Interface";
18554       homepage = "https://github.com/niner/perl-Net-CUPS";
18555       license = with lib.licenses; [ artistic1 gpl1Plus ];
18556     };
18557   };
18559   NetDBus = buildPerlPackage {
18560     pname = "Net-DBus";
18561     version = "1.2.0";
18562     src = fetchurl {
18563       url = "mirror://cpan/authors/id/D/DA/DANBERR/Net-DBus-1.2.0.tar.gz";
18564       hash = "sha256-56GsnvShI1s/29WIj4bDRxgjBkZ715q8mwdWpktEHLw=";
18565     };
18566     nativeBuildInputs = [ buildPackages.pkg-config ];
18567     buildInputs = [ pkgs.dbus TestPod TestPodCoverage ];
18568     propagatedBuildInputs = [ XMLTwig ];
18570     # https://gitlab.com/berrange/perl-net-dbus/-/merge_requests/19
18571     patches = fetchpatch {
18572       url = "https://gitlab.com/berrange/perl-net-dbus/-/commit/6bac8f188fb06e5e5edd27aee672d66b7c28caa4.patch";
18573       hash = "sha256-68kyUxM3E7w99rM2AZWZQMpGcaQxfSWaBs3DnmwnzqY=";
18574     };
18576     postPatch = ''
18577       substituteInPlace Makefile.PL --replace pkg-config $PKG_CONFIG
18578     '';
18580     meta = {
18581       description = "Extension for the DBus bindings";
18582       homepage = "https://www.freedesktop.org/wiki/Software/dbus";
18583       license = with lib.licenses; [ artistic1 gpl1Plus ];
18584     };
18585   };
18587   NetDNS = buildPerlPackage {
18588     pname = "Net-DNS";
18589     version = "1.40";
18590     src = fetchurl {
18591       url = "mirror://cpan/authors/id/N/NL/NLNETLABS/Net-DNS-1.40.tar.gz";
18592       hash = "sha256-IJu9QN6NSMG9eq3kjaI3/gpJn4nSebqi4amb1eySLdw=";
18593     };
18594     propagatedBuildInputs = [ DigestHMAC ];
18595     makeMakerFlags = [ "--noonline-tests" ];
18596     meta = {
18597       description = "Perl Interface to the Domain Name System";
18598       license = with lib.licenses; [ mit ];
18599     };
18600   };
18602   NetDNSResolverMock = buildPerlPackage {
18603     pname = "Net-DNS-Resolver-Mock";
18604     version = "1.20230216";
18605     src = fetchurl {
18606       url = "mirror://cpan/authors/id/M/MB/MBRADSHAW/Net-DNS-Resolver-Mock-1.20230216.tar.gz";
18607       hash = "sha256-7UkwV3/Rop1kNbWHVTPTso9cElijWDP+bKLLaiaFpJs=";
18608     };
18609     propagatedBuildInputs = [ NetDNS ];
18610     buildInputs = [ TestException ];
18611     meta = {
18612       description = "Mock a DNS Resolver object for testing";
18613       license = with lib.licenses; [ artistic1 gpl1Plus ];
18614     };
18615   };
18617   NetDomainTLD = buildPerlPackage {
18618     pname = "Net-Domain-TLD";
18619     version = "1.75";
18620     src = fetchurl {
18621       url = "mirror://cpan/authors/id/A/AL/ALEXP/Net-Domain-TLD-1.75.tar.gz";
18622       hash = "sha256-TDf4ERhNaKxBedSMEOoxki3V/KLBv/zc2VxaKjtAAu4=";
18623     };
18624     meta = {
18625       description = "Work with TLD names";
18626       license = with lib.licenses; [ artistic1 gpl1Plus ];
18627     };
18628   };
18630   NetFastCGI = buildPerlPackage {
18631     pname = "Net-FastCGI";
18632     version = "0.14";
18633     src = fetchurl {
18634       url = "mirror://cpan/authors/id/C/CH/CHANSEN/Net-FastCGI-0.14.tar.gz";
18635       hash = "sha256-EZOQCk/V6eupzNBuE4+RCSG3Ugf/i1JLZDqIyD61WWo=";
18636     };
18637     buildInputs = [ TestException TestHexString ];
18638     meta = {
18639       description = "FastCGI Toolkit";
18640       license = with lib.licenses; [ artistic1 gpl1Plus ];
18641     };
18642   };
18644   NetFrame = buildPerlModule {
18645     pname = "Net-Frame";
18646     version = "1.21";
18647     src = fetchurl {
18648       url = "mirror://cpan/authors/id/G/GO/GOMOR/Net-Frame-1.21.tar.gz";
18649       hash = "sha256-vLNXootjnwyvfWLTPS5g/wv8z4lNAHzmAfY1UTiD1zk=";
18650     };
18651     propagatedBuildInputs = [ BitVector ClassGomor NetIPv6Addr ];
18652     preCheck = "rm t/13-gethostsubs.t"; # it performs DNS queries
18653     meta = {
18654       description = "The base framework for frame crafting";
18655       license = with lib.licenses; [ artistic1 ];
18656     };
18657   };
18659   NetFrameLayerIPv6 = buildPerlModule {
18660     pname = "Net-Frame-Layer-IPv6";
18661     version = "1.08";
18662     src = fetchurl {
18663       url = "mirror://cpan/authors/id/G/GO/GOMOR/Net-Frame-Layer-IPv6-1.08.tar.gz";
18664       hash = "sha256-ui2FK+jzf1iE4wfagriqPNeU4YoVyAdSGsLKKtE599c=";
18665     };
18666     propagatedBuildInputs = [ NetFrame ];
18667     meta = {
18668       description = "Internet Protocol v6 layer object";
18669       license = with lib.licenses; [ artistic1 ];
18670     };
18671   };
18673   NetFreeDB = buildPerlPackage {
18674     pname = "Net-FreeDB";
18675     version = "0.10";
18676     src = fetchurl {
18677       url = "mirror://cpan/authors/id/D/DS/DSHULTZ/Net-FreeDB-0.10.tar.gz";
18678       hash = "sha256-90PhIjjrFslIBK+0sxCwJUj3C8rxeRZOrlZ/i0mIroU=";
18679     };
18680     buildInputs = [ TestDeep TestDifferences TestException TestMost TestWarn ];
18681     propagatedBuildInputs = [ CDDBFile Moo ];
18682     meta = {
18683       description = "OOP Interface to FreeDB Server(s)";
18684       license = with lib.licenses; [ artistic1 ];
18685       broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.NetFreeDB.x86_64-darwin
18686     };
18687   };
18689   NetHTTP = buildPerlPackage {
18690     pname = "Net-HTTP";
18691     version = "6.23";
18692     src = fetchurl {
18693       url = "mirror://cpan/authors/id/O/OA/OALDERS/Net-HTTP-6.23.tar.gz";
18694       hash = "sha256-DWXAndbIWJsq4RGBdNPBphcDtuz8FKNEKox0r2XgyU4=";
18695     };
18696     propagatedBuildInputs = [ URI ];
18697     __darwinAllowLocalNetworking = true;
18698     doCheck = false; /* wants network */
18699     meta = {
18700       description = "Low-level HTTP connection (client)";
18701       homepage = "https://github.com/libwww-perl/Net-HTTP";
18702       license = with lib.licenses; [ artistic1 gpl1Plus ];
18703     };
18704   };
18706   NetHTTPSNB = buildPerlPackage {
18707     pname = "Net-HTTPS-NB";
18708     version = "0.15";
18709     src = fetchurl {
18710       url = "mirror://cpan/authors/id/O/OL/OLEG/Net-HTTPS-NB-0.15.tar.gz";
18711       hash = "sha256-amnPT6Vfuju70iYu4UKC7YMQc22PWslNGmxZfNEnjE8=";
18712     };
18713     propagatedBuildInputs = [ IOSocketSSL NetHTTP ];
18714     meta = {
18715       description = "Non-blocking HTTPS client";
18716       homepage = "https://github.com/olegwtf/p5-Net-HTTPS-NB";
18717       license = with lib.licenses; [ artistic1 gpl1Plus ];
18718     };
18719   };
18721   NetIDNEncode = buildPerlModule {
18722     pname = "Net-IDN-Encode";
18723     version = "2.500";
18724     src = fetchurl {
18725       url = "mirror://cpan/authors/id/C/CF/CFAERBER/Net-IDN-Encode-2.500.tar.gz";
18726       hash = "sha256-VUU2M+P/JM4yWzS8LIFXuYWZYqMatc8ov3zMHJs6Pqo=";
18727     };
18728     buildInputs = [ TestNoWarnings ];
18729     perlPreHook = "export LD=$CC";
18730     meta = {
18731       description = "Internationalizing Domain Names in Applications (UTS #46)";
18732       homepage = "https://metacpan.org/release/Net-IDN-Encode";
18733       license = with lib.licenses; [ artistic1 gpl1Plus ];
18734     };
18735   };
18737   NetIMAPClient = buildPerlPackage {
18738     pname = "Net-IMAP-Client";
18739     version = "0.9507";
18740     src = fetchurl {
18741       url = "mirror://cpan/authors/id/G/GA/GANGLION/Net-IMAP-Client-0.9507.tar.gz";
18742       hash = "sha256-QE5vW7xQjPFnxAUqXhRwXv7sb7eTvPm1xCniX0cYNUk=";
18743     };
18744     propagatedBuildInputs = [ IOSocketSSL ListMoreUtils ];
18745     meta = {
18746       description = "Not so simple IMAP client library";
18747       license = with lib.licenses; [ artistic1 gpl1Plus ];
18748     };
18749   };
18751   NetIP = buildPerlPackage {
18752     pname = "Net-IP";
18753     version = "1.26";
18754     src = fetchurl {
18755       url = "mirror://cpan/authors/id/M/MA/MANU/Net-IP-1.26.tar.gz";
18756       hash = "sha256-BA8W8wZmR9dhtySjtwdU0oy9Hm/l6gHGPtHNhXEX1jk=";
18757     };
18758     meta = {
18759       description = "Perl extension for manipulating IPv4/IPv6 addresses";
18760       license = with lib.licenses; [ artistic1 gpl1Plus ];
18761     };
18762   };
18764   NetIPLite = buildPerlPackage {
18765     pname = "Net-IP-Lite";
18766     version = "0.03";
18767     src = fetchurl {
18768       url = "mirror://cpan/authors/id/A/AL/ALEXKOM/Net-IP-Lite-0.03.tar.gz";
18769       hash = "sha256-yZFubPqlO+J1N5zksqVQrhdt36tQ2tQ7Q+1D6CZ4Aqk=";
18770     };
18771     buildInputs = [ TestException ];
18772     meta = {
18773       description = "Perl extension for manipulating IPv4/IPv6 addresses";
18774       homepage = "https://metacpan.org/pod/Net::IP::Lite";
18775       license = with lib.licenses; [ artistic1 gpl1Plus ];
18776       maintainers = [ maintainers.sgo ];
18777     };
18778   };
18780   NetIPv4Addr = buildPerlPackage {
18781     pname = "Net-IPv4Addr";
18782     version = "0.10";
18783     src = fetchurl {
18784       url = "mirror://cpan/authors/id/F/FR/FRAJULAC/Net-IPv4Addr-0.10.tar.gz";
18785       hash = "sha256-OEXeTzCxfIQrGSys6Iedu2IU3paSz6cPCq8JgUIqY/4=";
18786     };
18787     meta = {
18788       description = "Perl extension for manipulating IPv4 addresses";
18789       license = with lib.licenses; [ artistic1 gpl1Plus ];
18790       mainProgram = "ipv4calc";
18791     };
18792   };
18794   NetIPv6Addr = buildPerlPackage {
18795     pname = "Net-IPv6Addr";
18796     version = "1.02";
18797     src = fetchurl {
18798       url = "mirror://cpan/authors/id/B/BK/BKB/Net-IPv6Addr-1.02.tar.gz";
18799       hash = "sha256-sjQBwSJv7o3+Yn9a4OkMVaxUcBDso5gRDcFjH0HJ7H0=";
18800     };
18801     propagatedBuildInputs = [ MathBase85 NetIPv4Addr ];
18802     meta = {
18803       description = "Check and manipulate IPv6 addresses";
18804       license = with lib.licenses; [ artistic1 gpl1Plus ];
18805     };
18806   };
18808   NetIPXS = buildPerlPackage {
18809     pname = "Net-IP-XS";
18810     version = "0.22";
18811     src = fetchurl {
18812       url = "mirror://cpan/authors/id/T/TO/TOMHRR/Net-IP-XS-0.22.tar.gz";
18813       hash = "sha256-JZe0aDizgur3S6XJnD9gpqC1poHsNqFBchJL9E9LGSA=";
18814     };
18815     propagatedBuildInputs = [ IOCapture TieSimple ];
18816     meta = {
18817       homepage = "https://github.com/tomhrr/p5-Net-IP-XS";
18818       description = "IPv4/IPv6 address library";
18819       license = with lib.licenses; [ gpl2Plus ];
18820     };
18821   };
18823   NetLDAPServer = buildPerlPackage {
18824     pname = "Net-LDAP-Server";
18825     version = "0.43";
18826     src = fetchurl {
18827       url = "mirror://cpan/authors/id/A/AA/AAR/Net-LDAP-Server-0.43.tar.gz";
18828       hash = "sha256-3WxMtNMLwyEUsHh/qioeK0/t0bkcLvN5Zey6ETMbsGI=";
18829     };
18830     propagatedBuildInputs = [ perlldap ConvertASN1 ];
18831     meta = {
18832       description = "LDAP server side protocol handling";
18833       license = with lib.licenses; [ artistic1 gpl1Plus ];
18834     };
18835   };
18837   NetLDAPSID = buildPerlPackage {
18838     pname = "Net-LDAP-SID";
18839     version = "0.001";
18840     src = fetchurl {
18841       url = "mirror://cpan/authors/id/K/KA/KARMAN/Net-LDAP-SID-0.001.tar.gz";
18842       hash = "sha256-qMLNQGeQl/w7hCV24bU+w1/UNIGoalA4PutOJOu81tY=";
18843     };
18844     meta = {
18845       description = "Active Directory Security Identifier manipulation";
18846       homepage = "https://github.com/karpet/net-ldap-sid";
18847       license = with lib.licenses; [ artistic1 gpl1Plus ];
18848     };
18849   };
18851   NetLDAPServerTest = buildPerlPackage {
18852     pname = "Net-LDAP-Server-Test";
18853     version = "0.22";
18854     src = fetchurl {
18855       url = "mirror://cpan/authors/id/K/KA/KARMAN/Net-LDAP-Server-Test-0.22.tar.gz";
18856       hash = "sha256-sSBxe18fb2sTsxQ3/dIY7g/GnrASGN4U2SL5Kc+NLY4=";
18857     };
18858     propagatedBuildInputs = [ perlldap NetLDAPServer DataDump NetLDAPSID ];
18859     meta = {
18860       description = "Test Net::LDAP code";
18861       homepage = "https://github.com/karpet/net-ldap-server-test";
18862       license = with lib.licenses; [ artistic1 gpl1Plus ];
18863     };
18864   };
18866   NetLibIDN2 = buildPerlModule {
18867     pname = "Net-LibIDN2";
18868     version = "1.02";
18869     src = fetchurl {
18870       url = "mirror://cpan/authors/id/T/TH/THOR/Net-LibIDN2-1.02.tar.gz";
18871       hash = "sha256-0fMK/GrPplQbAMCafkx059jkuknjJ3wLvEGuNcE5DQc=";
18872     };
18873     propagatedBuildInputs = [ pkgs.libidn2 ];
18874     meta = {
18875       description = "Perl bindings for GNU Libidn2";
18876       homepage = "https://github.com/gnuthor/Net--LibIDN2";
18877       license = with lib.licenses; [ artistic1 gpl1Plus ];
18878     };
18879   };
18881   NetNetmask = buildPerlPackage {
18882     pname = "Net-Netmask";
18883     version = "2.0002";
18884     src = fetchurl {
18885       url = "mirror://cpan/authors/id/J/JM/JMASLAK/Net-Netmask-2.0002.tar.gz";
18886       hash = "sha256-JKmy58a8wTAteXROukwCG/PeR/FJqvrM2U+bBC/dv5Q=";
18887     };
18888     buildInputs = [ Test2Suite TestUseAllModules ];
18889     meta = {
18890       description = "Understand and manipulate IP netmasks";
18891       homepage = "https://search.cpan.org/~jmaslak/Net-Netmask";
18892       license = with lib.licenses; [ artistic1 gpl1Plus ];
18893     };
18894   };
18896   NetMPD = buildPerlModule {
18897     pname = "Net-MPD";
18898     version = "0.07";
18899     buildInputs = [ ModuleBuildTiny ];
18900     src = fetchurl {
18901       url = "https://cpan.metacpan.org/authors/id/A/AB/ABERNDT/Net-MPD-0.07.tar.gz";
18902       hash = "sha256-M4L7nG9cJd4mKPVhRCn6igB5FSFnjELaBoyZ57KU6VM=";
18903     };
18904     meta = {
18905       description = "Communicate with an MPD server";
18906       homepage = "https://metacpan.org/pod/Net::MPD";
18907       license = with lib.licenses; [ mit ];
18908     };
18909   };
18911   NetMQTTSimple = buildPerlPackage {
18912     pname = "Net-MQTT-Simple";
18913     version = "1.28";
18914     src = fetchurl {
18915       url = "mirror://cpan/authors/id/J/JU/JUERD/Net-MQTT-Simple-1.28.tar.gz";
18916       hash = "sha256-Sp6hB+a8IuJrUzZ4oKPMbEI7N4TsP8ROjjM5t8Vr7gM=";
18917     };
18918     meta = {
18919       description = "Minimal MQTT version 3 interface";
18920       license = with lib.licenses; [ artistic1 gpl1Plus ];
18921     };
18922   };
18924   NetNVD = buildPerlPackage {
18925     pname = "Net-NVD";
18926     version = "0.0.3";
18927     src = fetchurl {
18928       url = "mirror://cpan/authors/id/G/GA/GARU/Net-NVD-0.0.3.tar.gz";
18929       hash = "sha256-uKZXEg+UsO7R2OvbA4i8M2DSj6Xw+CNrnNjNrovv5Bg=";
18930     };
18931     propagatedBuildInputs = [ IOSocketSSL JSON ];
18932     meta = {
18933       description = "Query CVE data from NIST's NVD (National Vulnerability Database)";
18934       license = with lib.licenses; [ artistic1 gpl1Plus ];
18935     };
18936   };
18938   NetOAuth = buildPerlModule {
18939     pname = "Net-OAuth";
18940     version = "0.28";
18941     src = fetchurl {
18942       url = "mirror://cpan/authors/id/K/KG/KGRENNAN/Net-OAuth-0.28.tar.gz";
18943       hash = "sha256-e/wxnaCsV44Ali81o1DPUREKOjEwFtH9wwciAooikEw=";
18944     };
18945     buildInputs = [ TestWarn ];
18946     propagatedBuildInputs = [ ClassAccessor ClassDataInheritable DigestHMAC DigestSHA1 LWP ];
18947     meta = {
18948       description = "An implementation of the OAuth protocol";
18949       license = with lib.licenses; [ artistic1 gpl1Plus ];
18950     };
18951   };
18953   NetPatricia = buildPerlPackage {
18954     pname = "Net-Patricia";
18955     version = "1.22";
18956     src = fetchurl {
18957       url = "mirror://cpan/authors/id/G/GR/GRUBER/Net-Patricia-1.22.tar.gz";
18958       hash = "sha256-cINakm4cWo0DJMcv/+6C7rfsbBQd7gT9RGggtk9xxVI=";
18959     };
18960     propagatedBuildInputs = [ NetCIDRLite Socket6 ];
18961     meta = {
18962       description = "Patricia Trie perl module for fast IP address lookups";
18963       license = with lib.licenses; [ gpl2Plus ];
18964     };
18965   };
18967   NetPing = buildPerlPackage {
18968     pname = "Net-Ping";
18969     version = "2.75";
18970     src = fetchurl {
18971       url = "mirror://cpan/authors/id/R/RU/RURBAN/Net-Ping-2.75.tar.gz";
18972       hash = "sha256-tH3zz9lpLM0Aca05/nRxjrwy9ZcBVWpgT9FaCfCeDXQ=";
18973     };
18974     meta = {
18975       description = "Check a remote host for reachability";
18976       license = with lib.licenses; [ artistic1 gpl1Plus ];
18977     };
18978   };
18980   NetDNSResolverProgrammable = buildPerlPackage {
18981     pname = "Net-DNS-Resolver-Programmable";
18982     version = "0.009";
18983     src = fetchurl {
18984       url = "mirror://cpan/authors/id/B/BI/BIGPRESH/Net-DNS-Resolver-Programmable-0.009.tar.gz";
18985       hash = "sha256-gICiq3dmKVhZEa8Reb23xNwr6/1LXv13sR0drGJFS/g=";
18986     };
18987     propagatedBuildInputs = [ NetDNS ];
18988     meta = {
18989       description = "Programmable DNS resolver class for offline emulation of DNS";
18990       homepage = "https://github.com/bigpresh/Net-DNS-Resolver-Programmable";
18991       license = with lib.licenses; [ artistic1 gpl1Plus ];
18992     };
18993   };
18995   NetPrometheus = buildPerlModule {
18996     pname = "Net-Prometheus";
18997     version = "0.12";
18998     src = fetchurl {
18999       url = "mirror://cpan/authors/id/P/PE/PEVANS/Net-Prometheus-0.12.tar.gz";
19000       hash = "sha256-rs73NJygSW/yNahKkQ+KBDZtB/WqQfrieixKxbip6SM=";
19001     };
19002     propagatedBuildInputs = [ RefUtil StructDumb URI ];
19003     buildInputs = [ HTTPMessage TestFatal ];
19004     meta = {
19005       description = "Export monitoring metrics for prometheus";
19006       license = with lib.licenses; [ artistic1 gpl1Plus ];
19007     };
19008   };
19010   NetSCP = buildPerlPackage {
19011     pname = "Net-SCP";
19012     version = "0.08.reprise";
19013     src = fetchurl {
19014       url = "mirror://cpan/authors/id/I/IV/IVAN/Net-SCP-0.08.reprise.tar.gz";
19015       hash = "sha256-iKmy32nnaeWFWkCLGfYZFbguj+Bwq1z01SXdO4u+McE=";
19016     };
19017     propagatedBuildInputs = [ pkgs.openssl ];
19018     patchPhase = ''
19019       sed -i 's|$scp = "scp";|$scp = "${pkgs.openssh}/bin/scp";|' SCP.pm
19020     '';
19021     buildInputs = [ NetSSH StringShellQuote ];
19022     meta = {
19023       description = "Simple wrappers around ssh and scp commands";
19024       license = with lib.licenses; [ artistic1 gpl1Plus ];
19025     };
19026   };
19028   NetServer = buildPerlPackage {
19029     pname = "Net-Server";
19030     version = "2.014";
19031     src = fetchurl {
19032       url = "mirror://cpan/authors/id/R/RH/RHANDOM/Net-Server-2.014.tar.gz";
19033       hash = "sha256-NAa5ylpmKgB17tR/t43hMWtgHJT2Kg7jSlVE25uqNyA=";
19034     };
19035     doCheck = false; # seems to hang waiting for connections
19036     meta = {
19037       description = "Extensible Perl internet server";
19038       license = with lib.licenses; [ artistic1 gpl1Plus ];
19039       mainProgram = "net-server";
19040     };
19041   };
19043   NetSFTPForeign = buildPerlPackage {
19044     pname = "Net-SFTP-Foreign";
19045     version = "1.93";
19046     src = fetchurl {
19047       url = "mirror://cpan/authors/id/S/SA/SALVA/Net-SFTP-Foreign-1.93.tar.gz";
19048       hash = "sha256-bH1kJQh2hz2kNIAOUGCovvekZFHYH4F+N+Q8/aUaD3o=";
19049     };
19050     propagatedBuildInputs = [ pkgs.openssl ];
19051     patchPhase = ''
19052       sed -i "s|$ssh_cmd = 'ssh'|$ssh_cmd = '${pkgs.openssh}/bin/ssh'|" lib/Net/SFTP/Foreign/Backend/Unix.pm
19053     '';
19054     meta = {
19055       description = "Secure File Transfer Protocol client";
19056       license = with lib.licenses; [ artistic1 gpl1Plus ];
19057     };
19058   };
19060   NetServerCoro = buildPerlPackage {
19061     pname = "Net-Server-Coro";
19062     version = "1.3";
19063     src = fetchurl {
19064       url = "mirror://cpan/authors/id/A/AL/ALEXMV/Net-Server-Coro-1.3.tar.gz";
19065       hash = "sha256-HhpwKw3TkMPmKfip6EzKY7eU0eInlX9Cm2dgEHV3+4Y=";
19066     };
19067     propagatedBuildInputs = [ Coro NetServer ];
19068     meta = {
19069       description = "A co-operative multithreaded server using Coro";
19070       license = with lib.licenses; [ mit ];
19071     };
19072   };
19074   NetServerSSPrefork = buildPerlPackage {
19075     pname = "Net-Server-SS-PreFork";
19076     version = "0.06pre";
19077     src = fetchFromGitHub {
19078       owner = "kazuho";
19079       repo = "p5-Net-Server-SS-PreFork";
19080       rev = "5fccc0c270e25c65ef634304630af74b48807d21";
19081       hash = "sha256-pveVyFdEe/TQCEI83RrQTWr7aoYrgOGaNqc1wJeiAnw=";
19082     };
19083     nativeCheckInputs = [ HTTPMessage LWP TestSharedFork HTTPServerSimple TestTCP TestUNIXSock ];
19084     buildInputs = [ ModuleInstall ];
19085     propagatedBuildInputs = [ NetServer ServerStarter ];
19086     meta = {
19087       description = "A hot-deployable variant of Net::Server::PreFork";
19088       license = with lib.licenses; [ artistic1 gpl1Plus ];
19089     };
19090   };
19092   NetSMTPSSL = buildPerlPackage {
19093     pname = "Net-SMTP-SSL";
19094     version = "1.04";
19095     src = fetchurl {
19096       url = "mirror://cpan/authors/id/R/RJ/RJBS/Net-SMTP-SSL-1.04.tar.gz";
19097       hash = "sha256-eynEWt0Z09UIS3Ufe6iajkBHmkRs4hz9nMdB5VgzKgA=";
19098     };
19099     propagatedBuildInputs = [ IOSocketSSL ];
19100     meta = {
19101       description = "SSL support for Net::SMTP";
19102       license = with lib.licenses; [ artistic1 gpl1Plus ];
19103     };
19104   };
19106   NetSMTPTLS = buildPerlPackage {
19107     pname = "Net-SMTP-TLS";
19108     version = "0.12";
19109     src = fetchurl {
19110       url = "mirror://cpan/authors/id/A/AW/AWESTHOLM/Net-SMTP-TLS-0.12.tar.gz";
19111       hash = "sha256-7+dyZnrDdwK5a221KXzIJ0J6Ozo4GbekMVsIudRE5KU=";
19112     };
19113     propagatedBuildInputs = [ DigestHMAC IOSocketSSL ];
19114     meta = {
19115       description = "An SMTP client supporting TLS and AUTH";
19116       license = with lib.licenses; [ artistic1 gpl1Plus ];
19117     };
19118   };
19120   NetSMTPTLSButMaintained = buildPerlPackage {
19121     pname = "Net-SMTP-TLS-ButMaintained";
19122     version = "0.24";
19123     src = fetchurl {
19124       url = "mirror://cpan/authors/id/F/FA/FAYLAND/Net-SMTP-TLS-ButMaintained-0.24.tar.gz";
19125       hash = "sha256-a5XAj3FXnYUcAYP1AqcAyGof7O9XDjzugybF5M5mJW4=";
19126     };
19127     propagatedBuildInputs = [ DigestHMAC IOSocketSSL ];
19128     meta = {
19129       description = "An SMTP client supporting TLS and AUTH (DEPRECATED, use Net::SMTPS instead)";
19130       license = with lib.licenses; [ artistic1 gpl1Plus ];
19131     };
19132   };
19134   NetSNMP = buildPerlModule {
19135     pname = "Net-SNMP";
19136     version = "6.0.1";
19137     src = fetchurl {
19138       url = "mirror://cpan/authors/id/D/DT/DTOWN/Net-SNMP-v6.0.1.tar.gz";
19139       hash = "sha256-FMN7wcuz883H1sE+DyeoWfFM3P1epUoEZ6iLwlmwt0E=";
19140     };
19141     doCheck = false; # The test suite fails, see https://rt.cpan.org/Public/Bug/Display.html?id=85799
19142     meta = {
19143       description = "Object oriented interface to SNMP";
19144       license = with lib.licenses; [ artistic1 gpl1Plus ];
19145       mainProgram = "snmpkey";
19146     };
19147   };
19149   NetSNPP = buildPerlPackage rec {
19150     pname = "Net-SNPP";
19151     version = "1.17";
19152     src = fetchurl {
19153       url = "mirror://cpan/authors/id/T/TO/TOBEYA/Net-SNPP-1.17.tar.gz";
19154       hash = "sha256-BrhR1kWWYl6GY1n7AX3Q0Ilz4OvFDDI/Sh1Q7N2GjnY=";
19155     };
19157     doCheck = false;
19158     meta = {
19159       description = "Simple Network Pager Protocol Client";
19160       license = with lib.licenses; [ artistic1 gpl1Plus ];
19161     };
19162   };
19164   NetSSH = buildPerlPackage {
19165     pname = "Net-SSH";
19166     version = "0.09";
19167     src = fetchurl {
19168       url = "mirror://cpan/authors/id/I/IV/IVAN/Net-SSH-0.09.tar.gz";
19169       hash = "sha256-fHHHw8vpUyNN/iW8wa1+2w4fWgV4YB9VI7xgcCYqOBc=";
19170     };
19171     propagatedBuildInputs = [ pkgs.openssl ];
19172     patchPhase = ''
19173       sed -i 's|$ssh = "ssh";|$ssh = "${pkgs.openssh}/bin/ssh";|' SSH.pm
19174     '';
19175     meta = {
19176       description = "Simple wrappers around ssh commands";
19177       license = with lib.licenses; [ artistic1 gpl1Plus ];
19178     };
19179   };
19181   NetSSHPerl = buildPerlPackage {
19182     pname = "Net-SSH-Perl";
19183     version = "2.142";
19184     src = fetchurl {
19185       url = "mirror://cpan/authors/id/B/BD/BDFOY/Net-SSH-Perl-2.142.tar.gz";
19186       hash = "sha256-UAHbPllS/BjYXDF5Uhr2kT0VQ+tP30/ZfcYDpHSMLJY=";
19187     };
19188     propagatedBuildInputs = [ CryptCurve25519 CryptIDEA CryptX FileHomeDir MathGMP StringCRC32 ];
19189     preCheck = "export HOME=$TMPDIR";
19190     meta = {
19191       description = "Perl client interface to SSH";
19192       homepage = "https://search.cpan.org/dist/Net-SSH-Perl";
19193       license = with lib.licenses; [ artistic1 gpl1Plus ];
19194     };
19195   };
19197   NetSSLeay = buildPerlPackage {
19198     pname = "Net-SSLeay";
19199     version = "1.92";
19200     src = fetchurl {
19201       url = "mirror://cpan/authors/id/C/CH/CHRISN/Net-SSLeay-1.92.tar.gz";
19202       hash = "sha256-R8LyswDy5xYtcdaZ9jPdajWwYloAy9qMUKwBFEqTlqk=";
19203     };
19204     buildInputs = [ pkgs.openssl pkgs.zlib ];
19205     doCheck = false; # Test performs network access.
19206     preConfigure = ''
19207       mkdir openssl
19208       ln -s ${lib.getLib pkgs.openssl}/lib openssl
19209       ln -s ${pkgs.openssl.bin}/bin openssl
19210       ln -s ${pkgs.openssl.dev}/include openssl
19211       export OPENSSL_PREFIX=$(realpath openssl)
19212     '';
19213     meta = {
19214       description = "Perl bindings for OpenSSL and LibreSSL";
19215       license = with lib.licenses; [ artistic2 ];
19216     };
19217   };
19219   NetStatsd = buildPerlPackage {
19220     pname = "Net-Statsd";
19221     version = "0.12";
19222     src = fetchurl {
19223       url = "mirror://cpan/authors/id/C/CO/COSIMO/Net-Statsd-0.12.tar.gz";
19224       hash = "sha256-Y+RTYD2hZbxtHEygtV7aPSIE8EDFkwSkd4LFqniGVlw=";
19225     };
19226     meta = {
19227       description = "Perl client for Etsy's statsd daemon";
19228       license = with lib.licenses; [ artistic1 gpl1Plus ];
19229       mainProgram = "benchmark.pl";
19230     };
19231   };
19233   NetTelnet = buildPerlPackage {
19234     pname = "Net-Telnet";
19235     version = "3.05";
19236     src = fetchurl {
19237       url = "mirror://cpan/authors/id/J/JR/JROGERS/Net-Telnet-3.05.tar.gz";
19238       hash = "sha256-Z39ouizSqCT64yP6guGDv349A8PEmckdkjvWKDeWp0M=";
19239     };
19240     meta = {
19241       description = "Interact with TELNET port or other TCP ports";
19242       license = with lib.licenses; [ artistic1 gpl1Plus ];
19243     };
19244   };
19246   NetTwitterLite = buildPerlModule {
19247     pname = "Net-Twitter-Lite";
19248     version = "0.12008";
19249     src = fetchurl {
19250       url = "mirror://cpan/authors/id/M/MM/MMIMS/Net-Twitter-Lite-0.12008.tar.gz";
19251       hash = "sha256-suq+Hyo/LGTezWDye8O0buZSVgsCTExWgRVhbI1KRo4=";
19252     };
19253     buildInputs = [ ModuleBuildTiny TestFatal ];
19254     propagatedBuildInputs = [ JSON LWPProtocolHttps ];
19255     doCheck = false;
19256     meta = {
19257       description = "A perl API library for the Twitter API";
19258       homepage = "https://github.com/semifor/net-twitter-lite";
19259       license = with lib.licenses; [ artistic1 gpl1Plus ];
19260     };
19261   };
19263   NetWhoisIP = buildPerlPackage {
19264     pname = "Net-Whois-IP";
19265     version = "1.19";
19266     src = fetchurl {
19267       url = "mirror://cpan/authors/id/B/BS/BSCHMITZ/Net-Whois-IP-1.19.tar.gz";
19268       hash = "sha256-8JvfoPHSZltTSCa186hmI0mTDu0pmO/k2Nv5iBMUciI=";
19269     };
19270     doCheck = false;
19272     # https://rt.cpan.org/Public/Bug/Display.html?id=99377
19273     postPatch = ''
19274       substituteInPlace IP.pm --replace " AutoLoader" ""
19275     '';
19276     buildInputs = [ RegexpIPv6 ];
19277     meta = {
19278       description = "Perl extension for looking up the whois information for ip addresses";
19279       license = with lib.licenses; [ artistic1 gpl1Plus ];
19280     };
19281   };
19283   NetWorks = buildPerlPackage {
19284     pname = "Net-Works";
19285     version = "0.22";
19286     src = fetchurl {
19287       url = "mirror://cpan/authors/id/M/MA/MAXMIND/Net-Works-0.22.tar.gz";
19288       hash = "sha256-CsmyPfvKGE4ocpskU5S8ZpOq22/EUcqplbS3GewO6f8=";
19289     };
19290     propagatedBuildInputs = [ ListAllUtils MathInt128 Moo namespaceautoclean ];
19291     buildInputs = [ TestFatal ];
19292     meta = {
19293       description = "Sane APIs for IP addresses and networks";
19294       license = with lib.licenses; [ artistic1 gpl1Plus ];
19295     };
19296   };
19298   NumberBytesHuman = buildPerlPackage {
19299     pname = "Number-Bytes-Human";
19300     version = "0.11";
19301     src = fetchurl {
19302       url = "mirror://cpan/authors/id/F/FE/FERREIRA/Number-Bytes-Human-0.11.tar.gz";
19303       hash = "sha256-X8ecSbC0DfeAR5xDaWOBND4ratH+UoWfYLxltm6+byw=";
19304     };
19305     meta = {
19306       description = "Convert byte count to human readable format";
19307       license = with lib.licenses; [ artistic1 gpl1Plus ];
19308     };
19309   };
19311   NumberCompare = buildPerlPackage {
19312     pname = "Number-Compare";
19313     version = "0.03";
19314     src = fetchurl {
19315       url = "mirror://cpan/authors/id/R/RC/RCLAMP/Number-Compare-0.03.tar.gz";
19316       hash = "sha256-gyk3N+gDtDESgwRD+1II7FIIoubqUS7VTvjk3SuICCc=";
19317     };
19318     meta = {
19319       description = "Numeric comparisons";
19320       license = with lib.licenses; [ artistic1 gpl1Plus ];
19321     };
19322   };
19324   NumberFormat = buildPerlPackage {
19325     pname = "Number-Format";
19326     version = "1.76";
19327     src = fetchurl {
19328       url = "mirror://cpan/authors/id/R/RJ/RJBS/Number-Format-1.76.tar.gz";
19329       hash = "sha256-DgBg6zY2NaiFcGxqJvX8qv6udZ97Ksrkndpw4ZXdRNY=";
19330     };
19331     meta = {
19332       description = "Perl extension for formatting numbers";
19333       license = with lib.licenses; [ artistic1 gpl1Plus ];
19334     };
19335   };
19337   NumberFraction = buildPerlModule {
19338     pname = "Number-Fraction";
19339     version = "3.0.4";
19340     src = fetchurl {
19341       url = "mirror://cpan/authors/id/D/DA/DAVECROSS/Number-Fraction-v3.0.4.tar.gz";
19342       hash = "sha256-xkGcird4/XKbENfmp487ewf8CJV8H3nlZm3Ny01iwIU=";
19343     };
19344     propagatedBuildInputs = [ Moo MooXTypesMooseLike ];
19345     meta = {
19346       description = "Perl extension to model fractions";
19347       license = with lib.licenses; [ artistic1 gpl1Plus ];
19348     };
19349   };
19351   NumberMisc = buildPerlModule {
19352     pname = "Number-Misc";
19353     version = "1.2";
19354     src = fetchurl {
19355       url = "mirror://cpan/authors/id/M/MI/MIKO/Number-Misc-1.2.tar.gz";
19356       hash = "sha256-d7m2jGAKBpzxb02BJuyzIVHmvNNLDtsXt4re5onckdg=";
19357     };
19358     meta = {
19359       description = "Number::Misc - handy utilities for numbers";
19360       license = with lib.licenses; [ artistic1 gpl1Plus ];
19361     };
19362   };
19364   NumberPhone = buildPerlPackage {
19365     pname = "Number-Phone";
19366     version = "4.0000";
19367     src = fetchurl {
19368       url = "mirror://cpan/authors/id/D/DC/DCANTRELL/Number-Phone-4.0000.tar.gz";
19369       hash = "sha256-H0mX/oMJSrDNgUDwvn/cHz+JGQKareajOYH4fLBIZjQ=";
19370     };
19371     buildInputs = [ DevelHide FileShareDirInstall ParallelForkManager TestDifferences TestWarnings ];
19372     propagatedBuildInputs = [ DataDumperConcise DataCompactReadonly DevelCheckOS DevelDeprecationsEnvironmental FileFindRule FileShareDir ];
19373     preCheck = ''
19374       # Remove slow memory hungry tests
19375       rm t/fork.t
19376       rm t/uk_slurp.t
19377     '';
19378     meta = {
19379       description = "Large suite of perl modules for parsing and dealing with phone numbers";
19380       homepage = "https://github.com/DrHyde/perl-modules-Number-Phone";
19381       license = with lib.licenses; [ artistic1 gpl2Only asl20 ];
19382     };
19383   };
19385   NumberWithError = buildPerlPackage {
19386     pname = "Number-WithError";
19387     version = "1.01";
19388     src = fetchurl {
19389       url = "mirror://cpan/authors/id/S/SM/SMUELLER/Number-WithError-1.01.tar.gz";
19390       hash = "sha256-3/agcn54ROpng3vfrdVSuG9rIW0Y7o7kaEKyLM7w9VQ=";
19391     };
19392     propagatedBuildInputs = [ ParamsUtil prefork ];
19393     buildInputs = [ TestLectroTest ];
19394     meta = {
19395       description = "Numbers with error propagation and scientific rounding";
19396       license = with lib.licenses; [ artistic1 gpl1Plus ];
19397     };
19398   };
19400   NTLM = buildPerlPackage {
19401     pname = "NTLM";
19402     version = "1.09";
19403     src = fetchurl {
19404       url = "mirror://cpan/authors/id/N/NB/NBEBOUT/NTLM-1.09.tar.gz";
19405       hash = "sha256-yCPjDNp2vBVjblhDAslg4rXu75UXwkSPdFRJiJMVH4U=";
19406     };
19407     propagatedBuildInputs = [ DigestHMAC ];
19408     meta = {
19409       description = "An NTLM authentication module";
19410       license = with lib.licenses; [ artistic1 gpl1Plus ];
19411       maintainers = [ maintainers.pSub ];
19412     };
19413   };
19415   ObjectAccessor = buildPerlPackage {
19416     pname = "Object-Accessor";
19417     version = "0.48";
19418     src = fetchurl {
19419       url = "mirror://cpan/authors/id/B/BI/BINGOS/Object-Accessor-0.48.tar.gz";
19420       hash = "sha256-dsuCSie2tOVgQJ/Pb9Wzv7vTi3Lx89N+0LVL2cC66t4=";
19421     };
19422     meta = {
19423       description = "Per object accessors";
19424       license = with lib.licenses; [ artistic1 gpl1Plus ];
19425     };
19426   };
19428   ObjectEvent = buildPerlPackage rec {
19429     pname = "Object-Event";
19430     version = "1.23";
19431     src = fetchurl {
19432       url = "mirror://cpan/authors/id/E/EL/ELMEX/${pname}-${version}.tar.gz";
19433       hash = "sha256-q2u4BQj0/dry1RsgyodqqwOFgqhrUijmQ1QRNIr1PII=";
19434     };
19435     propagatedBuildInputs = [ AnyEvent commonsense ];
19436     meta = {
19437       description = "A class that provides an event callback interface";
19438       license = with lib.licenses; [ artistic1 gpl1Plus ];
19439     };
19440   };
19442   ObjectInsideOut = buildPerlModule {
19443     pname = "Object-InsideOut";
19444     version = "4.05";
19445     src = fetchurl {
19446       url = "mirror://cpan/authors/id/J/JD/JDHEDDEN/Object-InsideOut-4.05.tar.gz";
19447       hash = "sha256-nf1sooInJDR+DrZ1nQBwlCWBRwOtXGa9tiFFeYaLysQ=";
19448     };
19449     propagatedBuildInputs = [ ExceptionClass ];
19450     meta = {
19451       description = "Comprehensive inside-out object support module";
19452       license = with lib.licenses; [ artistic1 gpl1Plus ];
19453     };
19454   };
19456   ObjectPad = buildPerlModule {
19457     pname = "Object-Pad";
19458     version = "0.804";
19459     src = fetchurl {
19460       url = "mirror://cpan/authors/id/P/PE/PEVANS/Object-Pad-0.804.tar.gz";
19461       hash = "sha256-z4jSquGKKHHX1/MPi6bU7lv5U+IP3KileME8dB0W0a0=";
19462     };
19463     buildInputs = [ Test2Suite TestFatal TestRefcount ];
19464     perlPreHook = lib.optionalString stdenv.isDarwin "export LD=$CC";
19465     propagatedBuildInputs = [ XSParseKeyword XSParseSublike ];
19466     meta = {
19467       description = "A simple syntax for lexical field-based objects";
19468       license = with lib.licenses; [ artistic1 gpl1Plus ];
19469       maintainers = [ maintainers.zakame ];
19470     };
19471   };
19473   ObjectSignature = buildPerlPackage {
19474     pname = "Object-Signature";
19475     version = "1.08";
19476     src = fetchurl {
19477       url = "mirror://cpan/authors/id/E/ET/ETHER/Object-Signature-1.08.tar.gz";
19478       hash = "sha256-hCFTyU2pPiucs7VN7lcrUGS79JmjanPDiiN5mgIDaYo=";
19479     };
19480     meta = {
19481       description = "Generate cryptographic signatures for objects";
19482       homepage = "https://github.com/karenetheridge/Object-Signature";
19483       license = with lib.licenses; [ artistic1 gpl1Plus ];
19484     };
19485   };
19487   OggVorbisHeaderPurePerl = buildPerlPackage {
19488     pname = "Ogg-Vorbis-Header-PurePerl";
19489     version = "1.05";
19490     src = fetchurl {
19491       url = "mirror://cpan/authors/id/D/DA/DAVECROSS/Ogg-Vorbis-Header-PurePerl-1.05.tar.gz";
19492       hash = "sha256-Uh04CPQtcSKmsGwzpurm18OZR6q1fEyMyvzE9gP9pT4=";
19493     };
19495     # The testing mechanism is erorrneous upstream. See http://matrix.cpantesters.org/?dist=Ogg-Vorbis-Header-PurePerl+1.0
19496     doCheck = false;
19497     meta = {
19498       description = "Access Ogg Vorbis info and comment fields";
19499       license = with lib.licenses; [ artistic1 ];
19500     };
19501   };
19503   OLEStorage_Lite = buildPerlPackage {
19504     pname = "OLE-Storage_Lite";
19505     version = "0.22";
19506     src = fetchurl {
19507       url = "mirror://cpan/authors/id/J/JM/JMCNAMARA/OLE-Storage_Lite-0.22.tar.gz";
19508       hash = "sha256-0FZtbCnTl+pzY3ncUVw2hJ9rlxB89wC6glBQXJhM+WU=";
19509     };
19510     meta = {
19511       description = "Read and write OLE storage files";
19512       license = with lib.licenses; [ artistic1 gpl1Plus ];
19513     };
19514   };
19516   Opcodes = buildPerlPackage {
19517     pname = "Opcodes";
19518     version = "0.14";
19519     src = fetchurl {
19520       url = "mirror://cpan/authors/id/R/RU/RURBAN/Opcodes-0.14.tar.gz";
19521       hash = "sha256-f3NlRH5NHFuHtDCRRI8EiOZ8nwNrJsAipUCc1z00OJM=";
19522     };
19523     meta = {
19524       description = "More Opcodes information from opnames.h and opcode.h";
19525       license = with lib.licenses; [ artistic1 gpl1Plus ];
19526     };
19527   };
19529   OpenAPIClient = buildPerlPackage rec {
19530     pname = "OpenAPI-Client";
19531     version = "1.07";
19532     src = fetchurl {
19533       url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/OpenAPI-Client-1.07.tar.gz";
19534       hash = "sha256-Ue1kHSg7j0u7wG0BwVZzm9K5qItO+Et7hPlQ+g7hTbM=";
19535     };
19536     propagatedBuildInputs = [ MojoliciousPluginOpenAPI ];
19537     meta = {
19538       description = "A client for talking to an Open API powered server";
19539       homepage = "https://github.com/jhthorsen/openapi-client";
19540       license = with lib.licenses; [ artistic2 ];
19541       maintainers = [ maintainers.sgo ];
19542     };
19543   };
19545   OpenGL = buildPerlPackage rec {
19546     pname = "OpenGL";
19547     version = "0.70";
19548     src = fetchurl {
19549       url = "mirror://cpan/authors/id/C/CH/CHM/OpenGL-0.70.tar.gz";
19550       hash = "sha256-sg4q9EBLSQGrNbumrV46iqYL/3JBPJkojwEBjEz4dOA=";
19551     };
19553     # FIXME: try with libGL + libGLU instead of libGLU libGL
19554     buildInputs = [ pkgs.libGLU pkgs.libGL pkgs.libGLU pkgs.freeglut pkgs.xorg.libX11 pkgs.xorg.libXi pkgs.xorg.libXmu pkgs.xorg.libXext pkgs.xdummy ];
19556     patches = [ ../development/perl-modules/perl-opengl.patch ];
19558     configurePhase = ''
19559       substituteInPlace Makefile.PL \
19560         --replace "@@libpaths@@" '${lib.concatStringsSep "\n" (map (f: "-L${f}/lib") buildInputs)}'
19562       cp -v ${../development/perl-modules/perl-opengl-gl-extensions.txt} utils/glversion.txt
19564       perl Makefile.PL PREFIX=$out INSTALLDIRS=site $makeMakerFlags
19565     '';
19567     doCheck = false;
19568     meta = {
19569       description = "Perl OpenGL bindings";
19570       license = with lib.licenses; [ artistic1 gpl1Plus ]; # taken from EPEL
19571     };
19572   };
19574   OpenOfficeOODoc = buildPerlPackage {
19575     pname = "OpenOffice-OODoc";
19576     version = "2.125";
19577     src = fetchurl {
19578       url = "mirror://cpan/authors/id/J/JM/JMGDOC/OpenOffice-OODoc-2.125.tar.gz";
19579       hash = "sha256-wRRIlwaTxCqLnpPaSMrJE1Fs4zqdRKZGhAD3rYeR2rY=";
19580     };
19581     propagatedBuildInputs = [ ArchiveZip XMLTwig ];
19582     meta = {
19583       description = "The Perl Open OpenDocument Connector";
19584       license = with lib.licenses; [ lgpl21Only ];
19585       maintainers = [ maintainers.wentasah ];
19586     };
19587   };
19589   NetOpenIDCommon = buildPerlPackage {
19590     pname = "Net-OpenID-Common";
19591     version = "1.20";
19592     src = fetchurl {
19593       url = "mirror://cpan/authors/id/W/WR/WROG/Net-OpenID-Common-1.20.tar.gz";
19594       hash = "sha256-q06X10pHcQ4NtKwMgi9/32Iq+GpgpSunIlWoicKdq8k=";
19595     };
19596     propagatedBuildInputs = [ CryptDHGMP XMLSimple ];
19597     meta = {
19598       description = "Libraries shared between Net::OpenID::Consumer and Net::OpenID::Server";
19599       license = with lib.licenses; [ artistic1 gpl1Plus ];
19600     };
19601   };
19603   NetOpenIDConsumer = buildPerlPackage {
19604     pname = "Net-OpenID-Consumer";
19605     version = "1.18";
19606     src = fetchurl {
19607       url = "mirror://cpan/authors/id/W/WR/WROG/Net-OpenID-Consumer-1.18.tar.gz";
19608       hash = "sha256-Dhw4b+fBhDBx3Zlr3KymEJEGZK5LXRJ8lf6u/Zk2Tzg=";
19609     };
19610     propagatedBuildInputs = [ JSON NetOpenIDCommon ];
19611     buildInputs = [ CGI ];
19612     meta = {
19613       description = "Library for consumers of OpenID identities";
19614       license = with lib.licenses; [ artistic1 gpl1Plus ];
19615     };
19616   };
19618   NetOpenSSH = buildPerlPackage {
19619     pname = "Net-OpenSSH";
19620     version = "0.84";
19621     src = fetchurl {
19622       url = "mirror://cpan/authors/id/S/SA/SALVA/Net-OpenSSH-0.84.tar.gz";
19623       hash = "sha256-h4DmLwGxzw20PJy3BclP9JSbAyIzvkvpH8kavHkVOfg=";
19624     };
19625     meta = {
19626       description = "Perl SSH client package implemented on top of OpenSSH";
19627       license = with lib.licenses; [ artistic1 gpl1Plus ];
19628     };
19629   };
19631   NetZooKeeper = buildPerlPackage {
19632     pname = "Net-ZooKeeper";
19633     version = "0.42pre";
19634     src = fetchFromGitHub {
19635       owner = "mark-5";
19636       repo = "p5-net-zookeeper";
19637       rev = "66e1a360aff9c39af728c36092b540a4b6045f70";
19638       hash = "sha256-NyY97EWtqWFtKJnwX2HDkKcyviKq57yRtWC7lzajiHY=";
19639     };
19640     buildInputs = [ pkgs.zookeeper_mt ];
19641     # fix "error: format not a string literal and no format arguments [-Werror=format-security]"
19642     hardeningDisable = [ "format" ];
19643     # Make the async API accessible
19644     env.NIX_CFLAGS_COMPILE = "-DTHREADED";
19645     NIX_CFLAGS_LINK = "-L${pkgs.zookeeper_mt.out}/lib -lzookeeper_mt";
19646     # Most tests are skipped as no server is available in the sandbox.
19647     # `t/35_log.t` seems to suffer from a race condition; remove it.  See
19648     # https://github.com/NixOS/nixpkgs/pull/104889#issuecomment-737144513
19649     preCheck = ''
19650       rm t/35_log.t
19651     '' + lib.optionalString stdenv.isDarwin ''
19652       rm t/30_connect.t
19653       rm t/45_class.t
19654     '';
19655     meta = {
19656       description = "Perl extension for Apache ZooKeeper";
19657       homepage = "https://github.com/mark-5/p5-net-zookeeper";
19658       license = with lib.licenses; [ asl20 ];
19659       maintainers = teams.deshaw.members ++ [ maintainers.ztzg ];
19660     };
19661   };
19663   PackageConstants = buildPerlPackage {
19664     pname = "Package-Constants";
19665     version = "0.06";
19666     src = fetchurl {
19667       url = "mirror://cpan/authors/id/B/BI/BINGOS/Package-Constants-0.06.tar.gz";
19668       hash = "sha256-C1i+eHBszE5L2butQXZ0cEJ/17LPrXSUid4QH4W8XfU=";
19669     };
19670     meta = {
19671       description = "List constants defined in a package";
19672       license = with lib.licenses; [ artistic1 gpl1Plus ];
19673     };
19674   };
19676   PackageDeprecationManager = buildPerlPackage {
19677     pname = "Package-DeprecationManager";
19678     version = "0.18";
19679     src = fetchurl {
19680       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Package-DeprecationManager-0.18.tar.gz";
19681       hash = "sha256-to0/DO1Vt2Ff3btgKbifkqNP4N2Mb9a87/wVfVaDT+g=";
19682     };
19683     buildInputs = [ TestFatal TestWarnings ];
19684     propagatedBuildInputs = [ PackageStash ParamsUtil SubInstall SubName ];
19685     meta = {
19686       description = "Manage deprecation warnings for your distribution";
19687       homepage = "https://metacpan.org/release/Package-DeprecationManager";
19688       license = with lib.licenses; [ artistic2 ];
19689     };
19690   };
19692   PatchReader = buildPerlPackage {
19693     pname = "PatchReader";
19694     version = "0.9.6";
19695     src = fetchurl {
19696       url = "mirror://cpan/authors/id/T/TM/TMANNERM/PatchReader-0.9.6.tar.gz";
19697       hash = "sha256-uN43RgNHu1R03AGRbMsx3S/gzZIkLEoy1zDo6wh8Mjw=";
19698     };
19699     meta = {
19700       description = "Utilities to read and manipulate patches and CVS";
19701       license = with lib.licenses; [ artistic1 ];
19702     };
19703   };
19705   PackageStash = buildPerlPackage {
19706     pname = "Package-Stash";
19707     version = "0.40";
19708     src = fetchurl {
19709       url = "mirror://cpan/authors/id/E/ET/ETHER/Package-Stash-0.40.tar.gz";
19710       hash = "sha256-WpcixtnLKe4TPl97CKU2J2KgtWM/9RcGQqWwaG6V4GY=";
19711     };
19712     buildInputs = [ CPANMetaCheck TestFatal TestNeeds TestRequires ];
19713     propagatedBuildInputs = [ DistCheckConflicts ModuleImplementation ];
19714     meta = {
19715       description = "Routines for manipulating stashes";
19716       homepage = "https://github.com/moose/Package-Stash";
19717       license = with lib.licenses; [ artistic1 gpl1Plus ];
19718       mainProgram = "package-stash-conflicts";
19719     };
19720   };
19722   PackageStashXS = buildPerlPackage {
19723     pname = "Package-Stash-XS";
19724     version = "0.30";
19725     src = fetchurl {
19726       url = "mirror://cpan/authors/id/E/ET/ETHER/Package-Stash-XS-0.30.tar.gz";
19727       hash = "sha256-JrrWXBlZxXN5s+E53HdvvsX3ApBmF+8nzcKT3fEjkjE=";
19728     };
19729     buildInputs = [ TestFatal TestNeeds ];
19730     meta = {
19731       description = "Faster and more correct implementation of the Package::Stash API";
19732       homepage = "https://github.com/moose/Package-Stash-XS";
19733       license = with lib.licenses; [ artistic1 gpl1Plus ];
19734     };
19735   };
19737   Pango = buildPerlPackage {
19738     pname = "Pango";
19739     version = "1.227";
19740     src = fetchurl {
19741       url = "mirror://cpan/authors/id/X/XA/XAOC/Pango-1.227.tar.gz";
19742       hash = "sha256-NLCkIt8/7NdZdYcEhVJFfUiudkxDu+/SqdYs62yLrHE=";
19743     };
19744     buildInputs = [ pkgs.pango ];
19745     propagatedBuildInputs = [ Cairo Glib ];
19746     meta = {
19747       description = "Layout and render international text";
19748       homepage = "https://gtk2-perl.sourceforge.net";
19749       license = with lib.licenses; [ lgpl21Plus ];
19750     };
19751   };
19753   ParallelForkManager = buildPerlPackage {
19754     pname = "Parallel-ForkManager";
19755     version = "2.02";
19756     src = fetchurl {
19757       url = "mirror://cpan/authors/id/Y/YA/YANICK/Parallel-ForkManager-2.02.tar.gz";
19758       hash = "sha256-wbKXCou2ZsPefKrEqPTbzAQ6uBm7wzdpLse/J62uRAQ=";
19759     };
19760     buildInputs = [ TestWarn ];
19761     propagatedBuildInputs = [ Moo ];
19762     meta = {
19763       description = "A simple parallel processing fork manager";
19764       homepage = "https://github.com/dluxhu/perl-parallel-forkmanager";
19765       license = with lib.licenses; [ artistic1 gpl1Plus ];
19766     };
19767   };
19769   ParallelLoops = buildPerlPackage {
19770     pname = "Parallel-Loops";
19771     version = "0.10";
19772     src = fetchurl {
19773       url = "mirror://cpan/authors/id/P/PM/PMORCH/Parallel-Loops-0.10.tar.gz";
19774       hash = "sha256-b5Z7RuejY7FocbmZHDWeFC3Dsigc/psa85kEcEyL0qo=";
19775     };
19776     propagatedBuildInputs = [ ParallelForkManager ];
19777     meta = {
19778       description = "Execute loops using parallel forked subprocesses";
19779       homepage = "https://github.com/pmorch/perl-Parallel-Loops";
19780       license = with lib.licenses; [ artistic1 gpl1Plus ];
19781       maintainers = with maintainers; [ tomasajt ];
19782     };
19783   };
19785   ParallelPipes = buildPerlModule {
19786     pname = "Parallel-Pipes";
19787     version = "0.200";
19788     src = fetchurl {
19789       url = "mirror://cpan/authors/id/S/SK/SKAJI/Parallel-Pipes-0.200.tar.gz";
19790       hash = "sha256-iLmFDqzJ1hjz6RpRyqOGxKZOgswYc1AzUkTjSbgREQY=";
19791     };
19792     buildInputs = [ ModuleBuildTiny ];
19793     meta = {
19794       description = "Parallel processing using pipe(2) for communication and synchronization";
19795       homepage = "https://github.com/skaji/Parallel-Pipes";
19796       license = with lib.licenses; [ artistic1 gpl1Plus ];
19797       maintainers = [ maintainers.zakame ];
19798     };
19799   };
19801   ParallelPrefork = buildPerlPackage {
19802     pname = "Parallel-Prefork";
19803     version = "0.18";
19804     src = fetchurl {
19805       url = "mirror://cpan/authors/id/K/KA/KAZUHO/Parallel-Prefork-0.18.tar.gz";
19806       hash = "sha256-8cH0jxrhR6WLyI+csvVw1rsV6kwNWJq9TDCE3clhWW4=";
19807     };
19808     buildInputs = [ TestRequires TestSharedFork ];
19809     propagatedBuildInputs = [ ClassAccessorLite ListMoreUtils ProcWait3 ScopeGuard SignalMask ];
19810     meta = {
19811       description = "A simple prefork server framework";
19812       license = with lib.licenses; [ artistic1 gpl1Plus ];
19813     };
19814   };
19816   ParamsClassify = buildPerlModule {
19817     pname = "Params-Classify";
19818     version = "0.015";
19819     src = fetchurl {
19820       url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Params-Classify-0.015.tar.gz";
19821       hash = "sha256-OY7BXNiZ/Ni+89ueoXSL9jHxX2wyviA+R1tn31EKWRQ=";
19822     };
19823     perlPreHook = lib.optionalString stdenv.isi686 "export LD=$CC"; # fix undefined reference to `__stack_chk_fail_local'
19824     meta = {
19825       description = "Argument type classification";
19826       license = with lib.licenses; [ artistic1 gpl1Plus ];
19827     };
19828   };
19830   ParamsUtil = buildPerlPackage {
19831     pname = "Params-Util";
19832     version = "1.102";
19833     src = fetchurl {
19834       url = "mirror://cpan/authors/id/R/RE/REHSACK/Params-Util-1.102.tar.gz";
19835       hash = "sha256-SZuxtILbJP2id6UVJVlq0JLCvVHdUI+o/sLp+EkJdAI=";
19836     };
19837     meta = {
19838       description = "Simple, compact and correct param-checking functions";
19839       homepage = "https://metacpan.org/release/Params-Util";
19840       license = with lib.licenses; [ artistic1 gpl1Plus ];
19841     };
19842   };
19844   ParamsValidate = buildPerlModule {
19845     pname = "Params-Validate";
19846     version = "1.31";
19847     src = fetchurl {
19848       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Params-Validate-1.31.tar.gz";
19849       hash = "sha256-G/JRjvLEhp+RWQ4hn1RcjvEu1TzzE+DrVwSt9/Gylh4=";
19850     };
19851     buildInputs = [ TestFatal TestRequires ];
19852     propagatedBuildInputs = [ ModuleImplementation ];
19853     perlPreHook = "export LD=$CC";
19854     meta = {
19855       description = "Validate method/function parameters";
19856       homepage = "https://metacpan.org/release/Params-Validate";
19857       license = with lib.licenses; [ artistic2 ];
19858     };
19859   };
19861   ParamsValidationCompiler = buildPerlPackage {
19862     pname = "Params-ValidationCompiler";
19863     version = "0.31";
19864     src = fetchurl {
19865       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Params-ValidationCompiler-0.31.tar.gz";
19866       hash = "sha256-e2SXFz8batsp9dUdjPnsNtLxIZQStLJBDp13qQHoSm0=";
19867     };
19868     propagatedBuildInputs = [ EvalClosure ExceptionClass ];
19869     buildInputs = [ Specio Test2PluginNoWarnings Test2Suite TestWithoutModule ];
19870     meta = {
19871       description = "Build an optimized subroutine parameter validator once, use it forever";
19872       homepage = "https://metacpan.org/release/Params-ValidationCompiler";
19873       license = with lib.licenses; [ artistic2 ];
19874     };
19875   };
19877   Paranoid = buildPerlPackage {
19878     pname = "Paranoid";
19879     version = "2.10";
19880     src = fetchurl {
19881       url = "mirror://cpan/authors/id/C/CO/CORLISS/Paranoid/Paranoid-2.10.tar.gz";
19882       hash = "sha256-vvS25l1cmk72C8qjF0hvOg0jm/2rRQqnEgLCl5i4dSk=";
19883     };
19884     patches = [ ../development/perl-modules/Paranoid-blessed-path.patch ];
19885     preConfigure = ''
19886       # Capture the path used when compiling this module as the "blessed"
19887       # system path, analogous to the module's own use of '/bin:/sbin'.
19888       sed -i "s#__BLESSED_PATH__#${pkgs.coreutils}/bin#" lib/Paranoid.pm t/01_init_core.t
19889     '';
19890     meta = {
19891       description = "General function library for safer, more secure programming";
19892       license = with lib.licenses; [ artistic1 gpl1Plus ];
19893       maintainers = teams.deshaw.members;
19894     };
19895   };
19897   PARDist = buildPerlPackage {
19898     pname = "PAR-Dist";
19899     version = "0.52";
19900     src = fetchurl {
19901       url = "mirror://cpan/authors/id/R/RS/RSCHUPP/PAR-Dist-0.52.tar.gz";
19902       hash = "sha256-y+ljAJ6nnSRUqF/heU9CW33cHoa3F0nIhNsp1gHqj4g=";
19903     };
19904     meta = {
19905       description = "Create and manipulate PAR distributions";
19906       license = with lib.licenses; [ artistic1 gpl1Plus ];
19907     };
19908   };
19910   PAUSEPermissions = buildPerlPackage {
19911     pname = "PAUSE-Permissions";
19912     version = "0.17";
19913     src = fetchurl {
19914       url = "mirror://cpan/authors/id/N/NE/NEILB/PAUSE-Permissions-0.17.tar.gz";
19915       hash = "sha256-ek6SDeODL5CfJV1aMj942M0hXGCMlJbNbJVwEsi0MQg=";
19916     };
19917     propagatedBuildInputs = [ FileHomeDir HTTPDate MooXOptions TimeDurationParse ];
19918     buildInputs = [ PathTiny ];
19919     meta = {
19920       description = "Interface to PAUSE's module permissions file (06perms.txt)";
19921       homepage = "https://github.com/neilb/PAUSE-Permissions";
19922       license = with lib.licenses; [ artistic1 gpl1Plus ];
19923       mainProgram = "pause-permissions";
19924     };
19925   };
19927   Parent = buildPerlPackage {
19928     pname = "parent";
19929     version = "0.241";
19930     src = fetchurl {
19931       url = "mirror://cpan/authors/id/C/CO/CORION/parent-0.241.tar.gz";
19932       hash = "sha256-sQs5YKs5l9q3Vx/+l1ukYtl50IZFB0Ch4Is5WedRKP4=";
19933     };
19934     meta = {
19935       description = "Establish an ISA relationship with base classes at compile time";
19936       license = with lib.licenses; [ artistic1 gpl1Plus ];
19937     };
19938   };
19940   ParseEDID = buildPerlPackage {
19941     pname = "Parse-Edid";
19942     version = "1.0.7";
19943     src = fetchurl {
19944       url = "mirror://cpan/authors/id/G/GR/GROUSSE/Parse-EDID-1.0.7.tar.gz";
19945       hash = "sha256-GtwPEFoyGYoqK02lsOD5hfBe/tmc42YZCnkOFl1nW/E=";
19946     };
19947     buildInputs = [ TestWarn ];
19948     meta = {
19949       description = "Extended display identification data (EDID) parser";
19950       license = lib.licenses.gpl3Plus;
19951     };
19952   };
19954   ParseDebControl = buildPerlPackage {
19955     pname = "Parse-DebControl";
19956     version = "2.005";
19957     src = fetchurl {
19958       url = "mirror://cpan/authors/id/J/JA/JAYBONCI/Parse-DebControl-2.005.tar.gz";
19959       hash = "sha256-tkvOH/IS1+PvnUNo57YnSc8ndR+oNgzfU+lpEjNGpyk=";
19960     };
19961     propagatedBuildInputs = [ IOStringy LWP ];
19962     meta = {
19963       description = "Easy OO parsing of debian control-like files";
19964       license = with lib.licenses; [ artistic1 gpl1Plus ];
19965     };
19966   };
19968   ParseDistname = buildPerlPackage {
19969     pname = "Parse-Distname";
19970     version = "0.05";
19971     src = fetchurl {
19972       url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/Parse-Distname-0.05.tar.gz";
19973       hash = "sha256-pfqTvsLat22IPaEtTzRLc7+L6wzEtmwkN28+Dzh67wc=";
19974     };
19975     buildInputs = [ ExtUtilsMakeMakerCPANfile TestDifferences TestUseAllModules ];
19976     meta = {
19977       description = "Parse a distribution name";
19978       license = with lib.licenses; [ artistic1 gpl1Plus ];
19979     };
19980   };
19982   ParseIRC = buildPerlPackage {
19983     pname = "Parse-IRC";
19984     version = "1.22";
19985     src = fetchurl {
19986       url = "mirror://cpan/authors/id/B/BI/BINGOS/Parse-IRC-1.22.tar.gz";
19987       hash = "sha256-RXsJiX8304pwVPlWMkc2VCf+JBAWIu1MfwVHI6RbWNU=";
19988     };
19989     meta = {
19990       description = "A parser for the IRC protocol";
19991       homepage = "https://github.com/bingos/parse-irc";
19992       license = with lib.licenses; [ artistic1 gpl1Plus ];
19993       maintainers = with maintainers; [ sgo ];
19994     };
19995   };
19997   ParseLocalDistribution = buildPerlPackage {
19998     pname = "Parse-LocalDistribution";
19999     version = "0.19";
20000     src = fetchurl {
20001       url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/Parse-LocalDistribution-0.19.tar.gz";
20002       hash = "sha256-awvDLE6NnoHz8qzB0qdMKi+IepHBUisxzkyNSaQV6Z4=";
20003     };
20004     propagatedBuildInputs = [ ParsePMFile ];
20005     buildInputs = [ ExtUtilsMakeMakerCPANfile TestUseAllModules ];
20006     meta = {
20007       description = "Parses local .pm files as PAUSE does";
20008       license = with lib.licenses; [ artistic1 gpl1Plus ];
20009     };
20010   };
20012   ParsePlainConfig = buildPerlPackage {
20013     pname = "Parse-PlainConfig";
20014     version = "3.06";
20015     src = fetchurl {
20016       url = "mirror://cpan/authors/id/C/CO/CORLISS/Parse-PlainConfig/Parse-PlainConfig-3.06.tar.gz";
20017       hash = "sha256-8ffT5OWawrbPbJjaDKpBxdTl2GVcIQdRSBlplS/+G4c=";
20018     };
20019     propagatedBuildInputs = [ ClassEHierarchy Paranoid ];
20020     meta = {
20021       description = "Parser/Generator of human-readable conf files";
20022       license = with lib.licenses; [ artistic1 gpl1Plus ];
20023       maintainers = teams.deshaw.members;
20024     };
20025   };
20027   ParsePMFile = buildPerlPackage {
20028     pname = "Parse-PMFile";
20029     version = "0.44";
20030     src = fetchurl {
20031       url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/Parse-PMFile-0.44.tar.gz";
20032       hash = "sha256-4I8PVkVbOsEtzNjHEWUGErfTzRUPim+K5rQ7LaR9+ZQ=";
20033     };
20034     buildInputs = [ ExtUtilsMakeMakerCPANfile ];
20035     meta = {
20036       description = "Parses .pm file as PAUSE does";
20037       license = with lib.licenses; [ artistic1 gpl1Plus ];
20038     };
20039   };
20041   ParseRecDescent = buildPerlModule {
20042     pname = "Parse-RecDescent";
20043     version = "1.967015";
20044     src = fetchurl {
20045       url = "mirror://cpan/authors/id/J/JT/JTBRAUN/Parse-RecDescent-1.967015.tar.gz";
20046       hash = "sha256-GUMzaky1TxeIpzPwgnwMVdtDENXq4V5UJjnJ3YVlbjc=";
20047     };
20048     meta = {
20049       description = "Generate Recursive-Descent Parsers";
20050       license = with lib.licenses; [ artistic1 gpl1Plus ];
20051     };
20052   };
20054   ParseSyslog = buildPerlPackage {
20055     pname = "Parse-Syslog";
20056     version = "1.10";
20057     src = fetchurl {
20058       url = "mirror://cpan/authors/id/D/DS/DSCHWEI/Parse-Syslog-1.10.tar.gz";
20059       hash = "sha256-ZZohRUQe822YNd7K+D2jCPzQP0kTjLPZCSjov8nxOdk=";
20060     };
20061     meta = {
20062       description = "Parse Unix syslog files";
20063       license = with lib.licenses; [ artistic1 gpl1Plus ];
20064     };
20065   };
20067   ParserMGC = buildPerlModule {
20068     pname = "Parser-MGC";
20069     version = "0.21";
20070     src = fetchurl {
20071       url = "mirror://cpan/authors/id/P/PE/PEVANS/Parser-MGC-0.21.tar.gz";
20072       hash = "sha256-DmGIpydqn5B1fGIEc98W08mGGRO6viWvIJz0RhWgKk8=";
20073     };
20074     buildInputs = [ TestFatal ];
20075     propagatedBuildInputs = [ FeatureCompatTry ];
20076     meta = {
20077       description = "Build simple recursive-descent parsers";
20078       license = with lib.licenses; [ artistic1 gpl1Plus ];
20079     };
20080   };
20082   ParseYapp = buildPerlPackage {
20083     pname = "Parse-Yapp";
20084     version = "1.21";
20085     src = fetchurl {
20086       url = "mirror://cpan/authors/id/W/WB/WBRASWELL/Parse-Yapp-1.21.tar.gz";
20087       hash = "sha256-OBDpmDCPui4PTyYEMDUDKwJ85RzlyKUqi440DKZfE+U=";
20088     };
20089     meta = {
20090       description = "Perl extension for generating and using LALR parsers";
20091       license = with lib.licenses; [ artistic1 gpl1Plus ];
20092       mainProgram = "yapp";
20093     };
20094   };
20096   PathClass = buildPerlModule {
20097     pname = "Path-Class";
20098     version = "0.37";
20099     src = fetchurl {
20100       url = "mirror://cpan/authors/id/K/KW/KWILLIAMS/Path-Class-0.37.tar.gz";
20101       hash = "sha256-ZUeBlIYCOG8ssuRHOnOfF9xpU9kqq8JJikyiVhvCSM4=";
20102     };
20103     meta = {
20104       description = "Cross-platform path specification manipulation";
20105       license = with lib.licenses; [ artistic1 gpl1Plus ];
20106     };
20107   };
20109   PathDispatcher = buildPerlPackage {
20110     pname = "Path-Dispatcher";
20111     version = "1.08";
20112     src = fetchurl {
20113       url = "mirror://cpan/authors/id/E/ET/ETHER/Path-Dispatcher-1.08.tar.gz";
20114       hash = "sha256-ean2HCdAi0/R7SNNrCRpdN3q+n/mNaGP5B7HeDEwrio=";
20115     };
20116     buildInputs = [ ModuleBuildTiny TestFatal ];
20117     propagatedBuildInputs = [ Moo MooXTypeTiny TryTiny TypeTiny ];
20118     meta = {
20119       description = "Flexible and extensible dispatch";
20120       homepage = "https://github.com/karenetheridge/Path-Dispatcher";
20121       license = with lib.licenses; [ artistic1 gpl1Plus ];
20122     };
20123   };
20125   PathIteratorRule = buildPerlPackage {
20126     pname = "Path-Iterator-Rule";
20127     version = "1.015";
20128     src = fetchurl {
20129       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Path-Iterator-Rule-1.015.tar.gz";
20130       hash = "sha256-87Bixo4Hx29o3lvDOHfP6eB4tjUaYboWUOM+CfUeyyk=";
20131     };
20132     propagatedBuildInputs = [ NumberCompare TextGlob TryTiny ];
20133     buildInputs = [ Filepushd PathTiny TestDeep TestFilename ];
20134     meta = {
20135       description = "Iterative, recursive file finder";
20136       homepage = "https://github.com/dagolden/Path-Iterator-Rule";
20137       license = with lib.licenses; [ asl20 ];
20138     };
20139   };
20141   PathTiny = buildPerlPackage {
20142     pname = "Path-Tiny";
20143     version = "0.144";
20144     src = fetchurl {
20145       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Path-Tiny-0.144.tar.gz";
20146       hash = "sha256-9uoJTs6EXJUqAsJ4kzJXk1TejUEKcH+bcEW9JBIGSH0=";
20147     };
20148     preConfigure =
20149       ''
20150         substituteInPlace lib/Path/Tiny.pm --replace 'use File::Spec 3.40' \
20151           'use File::Spec 3.39'
20152       '';
20153     # This appears to be currently failing tests, though I don't know why.
20154     # -- ocharles
20155     doCheck = false;
20156     meta = {
20157       description = "File path utility";
20158       homepage = "https://github.com/dagolden/Path-Tiny";
20159       license = with lib.licenses; [ asl20 ];
20160     };
20161   };
20163   PathTools = buildPerlPackage {
20164     pname = "PathTools";
20165     version = "3.75";
20166     preConfigure = ''
20167       substituteInPlace Cwd.pm --replace '/usr/bin/pwd' '${pkgs.coreutils}/bin/pwd'
20168     '';
20169     src = fetchurl {
20170       url = "mirror://cpan/authors/id/X/XS/XSAWYERX/PathTools-3.75.tar.gz";
20171       hash = "sha256-pVhQOqax+McnwAczOQgad4iGBqpwGtoa1i3Z2MP5RaI=";
20172     };
20173     # cwd() and fastgetcwd() does not work with taint due to PATH in nixpkgs
20174     preCheck = "rm t/taint.t";
20175     meta = {
20176       description = "Get pathname of current working directory";
20177       license = with lib.licenses; [ artistic1 gpl1Plus ];
20178     };
20179   };
20181   PBKDF2Tiny = buildPerlPackage {
20182     pname = "PBKDF2-Tiny";
20183     version = "0.005";
20184     src = fetchurl {
20185       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/PBKDF2-Tiny-0.005.tar.gz";
20186       hash = "sha256-tOIdxZswJl6qpBtwUIfsA0R9nGVaFKxA/0bk3inqv44=";
20187     };
20188     meta = {
20189       description = "Minimalist PBKDF2 (RFC 2898) with HMAC-SHA1 or HMAC-SHA2";
20190       homepage = "https://github.com/dagolden/PBKDF2-Tiny";
20191       license = with lib.licenses; [ asl20 ];
20192       maintainers = [ maintainers.sgo ];
20193     };
20194   };
20196   pcscperl = buildPerlPackage {
20197     pname = "pcsc-perl";
20198     version = "1.4.14";
20199     src = fetchurl {
20200       url = "mirror://cpan/authors/id/W/WH/WHOM/pcsc-perl-1.4.14.tar.bz2";
20201       hash = "sha256-JyK35VQ+T687oexrKaff7G2Svh7ewJ0KMZGZLU2Ixp0=";
20202     };
20203     buildInputs = [ pkgs.pcsclite ];
20204     nativeBuildInputs = [ pkgs.pkg-config ];
20205     NIX_CFLAGS_LINK = "-L${lib.getLib pkgs.pcsclite}/lib -lpcsclite";
20206     # tests fail; look unfinished
20207     doCheck = false;
20208     meta = {
20209       description = "Communicate with a smart card using PC/SC";
20210       homepage = "http://ludovic.rousseau.free.fr/softwares/pcsc-perl/";
20211       license = with lib.licenses; [ gpl2Plus ];
20212       maintainers = with maintainers; [ abbradar ];
20213       broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.pcscperl.x86_64-darwin
20214     };
20215   };
20217   PDFAPI2 = buildPerlPackage {
20218     pname = "PDF-API2";
20219     version = "2.045";
20220     src = fetchurl {
20221       url = "mirror://cpan/authors/id/S/SS/SSIMMS/PDF-API2-2.045.tar.gz";
20222       hash = "sha256-tr204NDNZSYQP91YwXHgVgw2uEO3/jyk3cm7HkyDJAY=";
20223     };
20224     buildInputs = [ TestException TestMemoryCycle ];
20225     propagatedBuildInputs = [ FontTTF ];
20226     meta = {
20227       description = "Create, modify, and examine PDF files";
20228       license = with lib.licenses; [ lgpl21Plus ];
20229     };
20230   };
20232   PDFBuilder = buildPerlPackage {
20233     pname = "PDF-Builder";
20234     version = "3.025";
20235     src = fetchurl {
20236       url = "mirror://cpan/authors/id/P/PM/PMPERRY/PDF-Builder-3.025.tar.gz";
20237       hash = "sha256-qb6076DsKXWpFFzvBSEYsgmPRtnBUQ3WV4agPQ2j49U=";
20238     };
20239     nativeCheckInputs = [ TestException TestMemoryCycle ];
20240     propagatedBuildInputs = [ FontTTF ];
20241     meta = {
20242       description = "Facilitates the creation and modification of PDF files";
20243       homepage = "https://metacpan.org/pod/PDF::Builder";
20244       license = with lib.licenses; [ lgpl21Plus ];
20245     };
20246   };
20248   PDL = buildPerlPackage rec {
20249     pname = "PDL";
20250     version = "2.025";
20251     src = fetchurl {
20252       url = "mirror://cpan/authors/id/E/ET/ETJ/PDL-2.025.tar.gz";
20253       hash = "sha256-G1oWfq0ndy2V2tJ/jrfQlRnSkVbu1TxvwUQVGUtaitY=";
20254     };
20255     patchPhase = ''
20256       substituteInPlace perldl.conf \
20257         --replace 'POSIX_THREADS_LIBS => undef' 'POSIX_THREADS_LIBS => "-L${pkgs.glibc.dev}/lib"' \
20258         --replace 'POSIX_THREADS_INC  => undef' 'POSIX_THREADS_INC  => "-I${pkgs.glibc.dev}/include"' \
20259         --replace 'WITH_MINUIT => undef' 'WITH_MINUIT => 0' \
20260         --replace 'WITH_SLATEC => undef' 'WITH_SLATEC => 0' \
20261         --replace 'WITH_HDF => undef' 'WITH_HDF => 0' \
20262         --replace 'WITH_GD => undef' 'WITH_GD => 0' \
20263         --replace 'WITH_PROJ => undef' 'WITH_PROJ => 0'
20264     '';
20266     nativeBuildInputs = with pkgs; [ autoPatchelfHook libGL.dev glibc.dev mesa_glu.dev ];
20268     buildInputs = [ DevelChecklib TestDeep TestException TestWarn ] ++
20269                   (with pkgs; [ gsl freeglut xorg.libXmu xorg.libXi ]);
20271     propagatedBuildInputs = [
20272       AstroFITSHeader
20273       ConvertUU
20274       ExtUtilsF77
20275       FileMap
20276       Inline
20277       InlineC
20278       ListMoreUtils
20279       ModuleCompile
20280       OpenGL
20281       PodParser
20282       TermReadKey
20283     ];
20285     meta = {
20286       description = "Perl Data Language";
20287       homepage = "https://pdl.perl.org";
20288       license = with lib.licenses; [ artistic1 gpl1Plus ];
20289       mainProgram = "pdl2";
20290       platforms = lib.platforms.linux;
20291     };
20292   };
20294   Pegex = buildPerlPackage {
20295     pname = "Pegex";
20296     version = "0.75";
20297     src = fetchurl {
20298       url = "mirror://cpan/authors/id/I/IN/INGY/Pegex-0.75.tar.gz";
20299       hash = "sha256-TcjTNd6AslJHzbP5RvDRDZugs8NLDtfQAxb9Bo/QXtw=";
20300     };
20301     buildInputs = [ TestPod TieIxHash ];
20302     propagatedBuildInputs = [ FileShareDirInstall XXX ];
20303     meta = {
20304       description = "Acmeist PEG Parser Framework";
20305       homepage = "https://github.com/ingydotnet/pegex-pm";
20306       license = with lib.licenses; [ artistic1 gpl1Plus ];
20307     };
20308   };
20310   PerconaToolkit = callPackage ../development/perl-modules/Percona-Toolkit { };
20312   Perl5lib = buildPerlPackage {
20313     pname = "perl5lib";
20314     version = "1.02";
20315     src = fetchurl {
20316       url = "mirror://cpan/authors/id/N/NO/NOBULL/perl5lib-1.02.tar.gz";
20317       hash = "sha256-JLlpJYQBU8REJBOYs2/Il24IX9sNh5yRc0cJz5F+zqw=";
20318     };
20319     meta = {
20320       description = "Honour PERL5LIB even in taint mode";
20321       license = with lib.licenses; [ artistic1 gpl1Plus ];
20322     };
20323   };
20325   Perlosnames = buildPerlPackage {
20326     pname = "Perl-osnames";
20327     version = "0.122";
20328     src = fetchurl {
20329       url = "mirror://cpan/authors/id/P/PE/PERLANCAR/Perl-osnames-0.122.tar.gz";
20330       hash = "sha256-cHWTnXR+N1F40ANI0AxS/52yzrsYuudHPcsJ34JRGKA=";
20331     };
20332     meta = {
20333       description = "List possible $^O ($OSNAME) values, with description";
20334       homepage = "https://metacpan.org/release/Perl-osnames";
20335       license = with lib.licenses; [ artistic1 gpl1Plus ];
20336     };
20337   };
20339   PerlCritic = buildPerlModule {
20340     pname = "Perl-Critic";
20341     version = "1.150";
20342     src = fetchurl {
20343       url = "mirror://cpan/authors/id/P/PE/PETDANCE/Perl-Critic-1.150.tar.gz";
20344       hash = "sha256-5c2V3j5DvOcHdRdidLqkBfMm/IdA3wBUu4FpdcyNNJs=";
20345     };
20346     buildInputs = [ TestDeep ];
20347     nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang;
20348     propagatedBuildInputs = [ BKeywords ConfigTiny ExceptionClass FileWhich ListSomeUtils ModulePluggable PPI PPIxQuoteLike PPIxRegexp PPIxUtilities PPIxUtils PerlTidy PodSpell Readonly StringFormat ];
20349     postInstall = lib.optionalString stdenv.isDarwin ''
20350       shortenPerlShebang $out/bin/perlcritic
20351     '';
20352     meta = {
20353       description = "Critique Perl source code for best-practices";
20354       homepage = "http://perlcritic.com";
20355       license = with lib.licenses; [ artistic1 gpl1Plus ];
20356       mainProgram = "perlcritic";
20357     };
20358   };
20360   PerlCriticCommunity = buildPerlModule {
20361     pname = "Perl-Critic-Community";
20362     version = "1.0.3";
20363     src = fetchurl {
20364       url = "mirror://cpan/authors/id/D/DB/DBOOK/Perl-Critic-Community-v1.0.3.tar.gz";
20365       hash = "sha256-Ed3bt5F5/mIp8zPKOS+U/firXNmJzJfZk1IaidXEetU=";
20366     };
20367     buildInputs = [ ModuleBuildTiny ];
20368     propagatedBuildInputs = [ PPI PathTiny PerlCritic PerlCriticPolicyVariablesProhibitLoopOnHash PerlCriticPulp ];
20369     meta = {
20370       description = "Community-inspired Perl::Critic policies";
20371       homepage = "https://github.com/Grinnz/Perl-Critic-Community";
20372       license = with lib.licenses; [ artistic2 ];
20373     };
20374   };
20376   PerlCriticMoose = buildPerlPackage rec {
20377     pname = "Perl-Critic-Moose";
20378     version = "1.05";
20379     src = fetchurl {
20380       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Perl-Critic-Moose-${version}.tar.gz";
20381       hash = "sha256-UuuOIsQmQ/F/4peiFxQBfv254phsJOMzfgMPNlD5IgE=";
20382     };
20383     propagatedBuildInputs = [ PerlCritic Readonly namespaceautoclean ];
20384     meta = {
20385       description = "Policies for Perl::Critic concerned with using Moose";
20386       homepage = "https://metacpan.org/release/Perl-Critic-Moose";
20387       license = with lib.licenses; [ artistic1 ];
20388     };
20389   };
20391   PerlCriticPolicyVariablesProhibitLoopOnHash = buildPerlPackage {
20392     pname = "Perl-Critic-Policy-Variables-ProhibitLoopOnHash";
20393     version = "0.008";
20394     src = fetchurl {
20395       url = "mirror://cpan/authors/id/X/XS/XSAWYERX/Perl-Critic-Policy-Variables-ProhibitLoopOnHash-0.008.tar.gz";
20396       hash = "sha256-EvXwvpbqG9x4KAWFd70cXGPKI8F/rJw3CUUrPf9bhOA=";
20397     };
20398     propagatedBuildInputs = [ PerlCritic ];
20399     meta = {
20400       description = "Don't write loops on hashes, only on keys and values of hashes";
20401       license = with lib.licenses; [ artistic1 gpl1Plus ];
20402     };
20403   };
20405   PerlCriticPulp = buildPerlPackage {
20406     pname = "Perl-Critic-Pulp";
20407     version = "99";
20408     src = fetchurl {
20409       url = "mirror://cpan/authors/id/K/KR/KRYDE/Perl-Critic-Pulp-99.tar.gz";
20410       hash = "sha256-uP2oQvy+100hAlfAooS23HsdBVSkej3l2X59VC4j5/4=";
20411     };
20412     propagatedBuildInputs = [ IOString ListMoreUtils PPI PerlCritic PodMinimumVersion ];
20413     meta = {
20414       description = "Some add-on policies for Perl::Critic";
20415       homepage = "https://user42.tuxfamily.org/perl-critic-pulp/index.html";
20416       license = with lib.licenses; [ gpl3Plus ];
20417     };
20418   };
20420   PerlDestructLevel = buildPerlPackage {
20421     pname = "Perl-Destruct-Level";
20422     version = "0.02";
20423     src = fetchurl {
20424       url = "mirror://cpan/authors/id/R/RG/RGARCIA/Perl-Destruct-Level-0.02.tar.gz";
20425       hash = "sha256-QLSsCykrYM47h956o5vC+yWhnRDlyfaYZpYchLP20Ts=";
20426     };
20427     meta = {
20428       description = "Allow to change perl's destruction level";
20429       license = with lib.licenses; [ artistic1 gpl1Plus ];
20430     };
20431   };
20433   PerlIOLayers = buildPerlModule {
20434     pname = "PerlIO-Layers";
20435     version = "0.012";
20436     src = fetchurl {
20437       url = "mirror://cpan/authors/id/L/LE/LEONT/PerlIO-Layers-0.012.tar.gz";
20438       hash = "sha256-VC2lQvo2uz/de4d24jDTzMAqpnRM6bd7Tu9MyufASt8=";
20439     };
20440     perlPreHook = "export LD=$CC";
20441     meta = {
20442       description = "Querying your filehandle's capabilities";
20443       license = with lib.licenses; [ artistic1 gpl1Plus ];
20444     };
20445   };
20447   PerlIOeol = buildPerlPackage {
20448     pname = "PerlIO-eol";
20449     version = "0.19";
20450     src = fetchurl {
20451       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/PerlIO-eol-0.19.tar.gz";
20452       hash = "sha256-/3O+xgRP2EepbEGZZPNw5Qn9Nv1XH3o7fDUXX1iviFk=";
20453     };
20454     meta = {
20455       description = "PerlIO layer for normalizing line endings";
20456       license = with lib.licenses; [ artistic1 gpl1Plus ];
20457     };
20458   };
20460   PerlIOgzip = buildPerlPackage {
20461     pname = "PerlIO-gzip";
20462     version = "0.20";
20463     src = fetchurl {
20464       url = "mirror://cpan/authors/id/N/NW/NWCLARK/PerlIO-gzip-0.20.tar.gz";
20465       hash = "sha256-SEhnmj8gHj87DF9vlSbmAq9Skj/6RxoqNlfbeGvTvcU=";
20466     };
20467     buildInputs = [ pkgs.zlib ];
20468     NIX_CFLAGS_LINK = "-L${pkgs.zlib.out}/lib -lz";
20469     meta = {
20470       description = "Perl extension to provide a PerlIO layer to gzip/gunzip";
20471       license = with lib.licenses; [ artistic1 gpl1Plus ];
20472     };
20473   };
20475   PerlIOutf8_strict = buildPerlPackage {
20476     pname = "PerlIO-utf8_strict";
20477     version = "0.010";
20478     src = fetchurl {
20479       url = "mirror://cpan/authors/id/L/LE/LEONT/PerlIO-utf8_strict-0.010.tar.gz";
20480       hash = "sha256-vNKEi3LfKQtemE+uixpsqW9tByADzyIjiajJ6OHFcM0=";
20481     };
20482     buildInputs = [ TestException ];
20483     meta = {
20484       description = "Fast and correct UTF-8 IO";
20485       license = with lib.licenses; [ artistic1 gpl1Plus ];
20486     };
20487   };
20489   PerlIOviadynamic = buildPerlPackage {
20490     pname = "PerlIO-via-dynamic";
20491     version = "0.14";
20492     src = fetchurl {
20493       url = "mirror://cpan/authors/id/A/AL/ALEXMV/PerlIO-via-dynamic-0.14.tar.gz";
20494       hash = "sha256-is169NivIdKLnBWuE3/nbNBk2tfSbrqKMLl+vG4fa0k=";
20495     };
20496     meta = {
20497       description = "Dynamic PerlIO layers";
20498       license = with lib.licenses; [ artistic1 gpl1Plus ];
20499     };
20500   };
20502   PerlIOviasymlink = buildPerlPackage {
20503     pname = "PerlIO-via-symlink";
20504     version = "0.05";
20505     src = fetchurl {
20506       url = "mirror://cpan/authors/id/C/CL/CLKAO/PerlIO-via-symlink-0.05.tar.gz";
20507       hash = "sha256-QQfUw0pqNilFNEjCVpXZL4JSKv9k4ptxa1alr1hrLVI=";
20508     };
20510     buildInputs = [ ModuleInstall ];
20512     postPatch = ''
20513       # remove outdated inc::Module::Install included with module
20514       # causes build failure for perl5.18+
20515       rm -r  inc
20516     '';
20517     meta = {
20518       description = "PerlIO layers for create symlinks";
20519       license = with lib.licenses; [ artistic1 gpl1Plus ];
20520     };
20521   };
20523   PerlIOviaTimeout = buildPerlModule {
20524     pname = "PerlIO-via-Timeout";
20525     version = "0.32";
20526     src = fetchurl {
20527       url = "mirror://cpan/authors/id/D/DA/DAMS/PerlIO-via-Timeout-0.32.tar.gz";
20528       hash = "sha256-knj572aIUNkT2Y+kwNfn1mfP81AzkfSk6uc6JG8ueRY=";
20529     };
20530     buildInputs = [ ModuleBuildTiny TestSharedFork TestTCP ];
20531     meta = {
20532       description = "A PerlIO layer that adds read & write timeout to a handle";
20533       license = with lib.licenses; [ artistic1 gpl1Plus ];
20534     };
20535   };
20537   PerlLanguageServer = buildPerlPackage {
20538     pname = "Perl-LanguageServer";
20539     version = "2.6.1";
20540     src = fetchurl {
20541       url = "mirror://cpan/authors/id/G/GR/GRICHTER/Perl-LanguageServer-2.6.1.tar.gz";
20542       hash = "sha256-IDM0uwsEXMeHAu9DA0CdCB87aN3XRoNEdGOIJ8NMsZg=";
20543     };
20544     propagatedBuildInputs = [ AnyEvent AnyEventAIO ClassRefresh CompilerLexer Coro DataDump HashSafeKeys IOAIO JSON Moose PadWalker ];
20545     meta = {
20546       description = "Language Server and Debug Protocol Adapter for Perl";
20547       license = lib.licenses.artistic2;
20548     };
20549   };
20551   perlldap = buildPerlPackage {
20552     pname = "perl-ldap";
20553     version = "0.68";
20554     src = fetchurl {
20555       url = "mirror://cpan/authors/id/M/MA/MARSCHAP/perl-ldap-0.68.tar.gz";
20556       hash = "sha256-4vOJ/j56nkthSIaSkZrXI7mPO0ebUoj2ENqownmVs1E=";
20557     };
20558     # ldapi socket location should match the one compiled into the openldap package
20559     postPatch = ''
20560       for f in lib/Net/LDAPI.pm lib/Net/LDAP/Util.pm lib/Net/LDAP.pod lib/Net/LDAP.pm; do
20561         sed -i 's:/var/run/ldapi:/run/openldap/ldapi:g' "$f"
20562       done
20563     '';
20564     buildInputs = [ TextSoundex ];
20565     propagatedBuildInputs = [ ConvertASN1 ];
20566     meta = {
20567       description = "LDAP client library";
20568       homepage = "https://ldap.perl.org";
20569       license = with lib.licenses; [ artistic1 gpl1Plus ];
20570       maintainers = teams.deshaw.members;
20571     };
20572   };
20574   PerlMagick = ImageMagick; # added 2021-08-02
20575   ImageMagick = buildPerlPackage rec {
20576     pname = "Image-Magick";
20577     version = "7.1.1-20";
20578     src = fetchurl {
20579       url = "mirror://cpan/authors/id/J/JC/JCRISTY/Image-Magick-${version}.tar.gz";
20580       hash = "sha256-oMAwXQBxuV2FgPHBhUi+toNFPVnRLNjZqdP2q+ki6jg=";
20581     };
20582     buildInputs = [ pkgs.imagemagick ];
20583     preConfigure =
20584       ''
20585         sed -i -e 's|my \$INC_magick = .*|my $INC_magick = "-I${pkgs.imagemagick.dev}/include/ImageMagick";|' Makefile.PL
20586       '';
20587     meta = {
20588       description = "Objected-oriented Perl interface to ImageMagick. Use it to read, manipulate, or write an image or image sequence from within a Perl script";
20589       license = with lib.licenses; [ imagemagick ];
20590     };
20591   };
20593   PerlTidy = buildPerlPackage rec {
20594     pname = "Perl-Tidy";
20595     version = "20230912";
20596     src = fetchurl {
20597       url = "mirror://cpan/authors/id/S/SH/SHANCOCK/Perl-Tidy-20230912.tar.gz";
20598       hash = "sha256-DFeIjyBvmHd34WZA5yV0qgp3eEZxn44+0EE8NTJfVUA=";
20599     };
20600     meta = {
20601       description = "Indent and reformat perl scripts";
20602       license = with lib.licenses; [ gpl2Plus ];
20603       mainProgram = "perltidy";
20604     };
20605   };
20607   PHPSerialization = buildPerlPackage {
20608     pname = "PHP-Serialization";
20609     version = "0.34";
20610     src = fetchurl {
20611       url = "mirror://cpan/authors/id/B/BO/BOBTFISH/PHP-Serialization-0.34.tar.gz";
20612       hash = "sha256-uRLUJumuulSRpeUC58XAOcXapXVCism9yCr/857G8Ho=";
20613     };
20614     meta = {
20615       description = "Simple flexible means of converting the output of PHP's serialize() into the equivalent Perl memory structure, and vice versa";
20616       license = with lib.licenses; [ artistic1 gpl1Plus ];
20617     };
20618   };
20620   PkgConfig = buildPerlPackage rec {
20621     pname = "PkgConfig";
20622     version = "0.25026";
20623     src = fetchurl {
20624       url = "mirror://cpan/authors/id/P/PL/PLICEASE/PkgConfig-0.25026.tar.gz";
20625       hash = "sha256-Tbpe08LWpoG5XF6/FLammVzmmRrkcZutfxqvOOmHwqA=";
20626     };
20627     # support cross-compilation by simplifying the way we get version during build
20628     postPatch = ''
20629       substituteInPlace Makefile.PL --replace \
20630         'do { require "./lib/PkgConfig.pm"; $PkgConfig::VERSION; }' \
20631         '"${version}"'
20632     '';
20633     meta = {
20634       description = "Pure-Perl Core-Only replacement for pkg-config";
20635       homepage = "https://metacpan.org/pod/PkgConfig";
20636       license = with lib.licenses; [ artistic1 gpl1Plus ];
20637       maintainers = teams.deshaw.members;
20638       mainProgram = "ppkg-config";
20639     };
20640   };
20642   Plack = buildPerlPackage {
20643     pname = "Plack";
20644     version = "1.0050";
20645     src = fetchurl {
20646       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Plack-1.0050.tar.gz";
20647       hash = "sha256-0mUa3oLrv/er4KOhifyTLa3Ed5GGzolGjlbQGJ6qbtQ=";
20648     };
20649     buildInputs = [ AuthenSimplePasswd CGIEmulatePSGI FileShareDirInstall HTTPRequestAsCGI HTTPServerSimplePSGI IOHandleUtil LWP LWPProtocolhttp10 LogDispatchArray MIMETypes TestMockTimeHiRes TestRequires TestSharedFork TestTCP ];
20650     propagatedBuildInputs = [ ApacheLogFormatCompiler CookieBaker DevelStackTraceAsHTML FileShareDir FilesysNotifySimple HTTPEntityParser HTTPHeadersFast HTTPMessage TryTiny ];
20651     patches = [
20652       ../development/perl-modules/Plack-test-replace-DES-hash-with-bcrypt.patch
20653     ];
20654     meta = {
20655       description = "Perl Superglue for Web frameworks and Web Servers (PSGI toolkit)";
20656       homepage = "https://github.com/plack/Plack";
20657       license = with lib.licenses; [ artistic1 gpl1Plus ];
20658       mainProgram = "plackup";
20659     };
20660   };
20662   PlackAppProxy = buildPerlPackage {
20663     pname = "Plack-App-Proxy";
20664     version = "0.29";
20665     src = fetchurl {
20666       url = "mirror://cpan/authors/id/L/LE/LEEDO/Plack-App-Proxy-0.29.tar.gz";
20667       hash = "sha256-BKqanbVKmpAn/nBLyjU/jl6fAr5AhytB0jX86c3ypg8=";
20668     };
20669     propagatedBuildInputs = [ AnyEventHTTP LWP Plack ];
20670     buildInputs = [ TestRequires TestSharedFork TestTCP ];
20671     meta = {
20672       description = "Proxy requests";
20673       license = with lib.licenses; [ artistic1 gpl1Plus ];
20674     };
20675   };
20677   PlackMiddlewareAuthDigest = buildPerlModule {
20678     pname = "Plack-Middleware-Auth-Digest";
20679     version = "0.05";
20680     src = fetchurl {
20681       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Plack-Middleware-Auth-Digest-0.05.tar.gz";
20682       hash = "sha256-mr0/kpQ2zV7N+28/DX/foRuUB6OMfWAAYWpQ7eYQFes=";
20683     };
20684     propagatedBuildInputs = [ DigestHMAC Plack ];
20685     buildInputs = [ LWP ModuleBuildTiny TestSharedFork TestTCP ];
20686     meta = {
20687       description = "Digest authentication";
20688       homepage = "https://github.com/miyagawa/Plack-Middleware-Auth-Digest";
20689       license = with lib.licenses; [ artistic1 gpl1Plus ];
20690     };
20691   };
20693   PlackMiddlewareConsoleLogger = buildPerlModule {
20694     pname = "Plack-Middleware-ConsoleLogger";
20695     version = "0.05";
20696     src = fetchurl {
20697       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Plack-Middleware-ConsoleLogger-0.05.tar.gz";
20698       hash = "sha256-VWc6ylBN4sw0AWpF8yyPft2k7k0oArctZ4TSxBuH+9k=";
20699     };
20700     propagatedBuildInputs = [ JavaScriptValueEscape Plack ];
20701     buildInputs = [ ModuleBuildTiny TestRequires ];
20702     meta = {
20703       description = "Write logs to Firebug or Webkit Inspector";
20704       homepage = "https://github.com/miyagawa/Plack-Middleware-ConsoleLogger";
20705       license = with lib.licenses; [ artistic1 gpl1Plus ];
20706     };
20707   };
20709   PlackMiddlewareDebug = buildPerlModule {
20710     pname = "Plack-Middleware-Debug";
20711     version = "0.18";
20712     src = fetchurl {
20713       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Plack-Middleware-Debug-0.18.tar.gz";
20714       hash = "sha256-GS73nlIckMbv9vQUmtLkv8kR0sld94k1hV6Q1lnprJo=";
20715     };
20716     buildInputs = [ ModuleBuildTiny TestRequires ];
20717     propagatedBuildInputs = [ ClassMethodModifiers DataDump DataDumperConcise Plack TextMicroTemplate ];
20718     meta = {
20719       description = "Display information about the current request/response";
20720       homepage = "https://github.com/miyagawa/Plack-Middleware-Debug";
20721       license = with lib.licenses; [ artistic1 gpl1Plus ];
20722     };
20723   };
20725   PlackMiddlewareDeflater = buildPerlPackage {
20726     pname = "Plack-Middleware-Deflater";
20727     version = "0.12";
20728     src = fetchurl {
20729       url = "mirror://cpan/authors/id/K/KA/KAZEBURO/Plack-Middleware-Deflater-0.12.tar.gz";
20730       hash = "sha256-KNqV59pMi1WRrEVFCckhds0IQpYM4HT94w+aEHXcwnU=";
20731     };
20732     propagatedBuildInputs = [ Plack ];
20733     buildInputs = [ TestRequires TestSharedFork TestTCP ];
20734     meta = {
20735       description = "Compress response body with Gzip or Deflate";
20736       license = with lib.licenses; [ artistic1 gpl1Plus ];
20737     };
20738   };
20740   PlackMiddlewareFixMissingBodyInRedirect = buildPerlPackage {
20741     pname = "Plack-Middleware-FixMissingBodyInRedirect";
20742     version = "0.12";
20743     src = fetchurl {
20744       url = "mirror://cpan/authors/id/S/SW/SWEETKID/Plack-Middleware-FixMissingBodyInRedirect-0.12.tar.gz";
20745       hash = "sha256-bCLQafWlesIG1GWbKLiGm7knBkC7lV793UUdzFjNs5E=";
20746     };
20747     propagatedBuildInputs = [ HTMLParser Plack ];
20748     meta = {
20749       description = "Plack::Middleware which sets body for redirect response, if it's not already set";
20750       homepage = "https://github.com/Sweet-kid/Plack-Middleware-FixMissingBodyInRedirect";
20751       license = with lib.licenses; [ artistic1 gpl1Plus ];
20752     };
20753   };
20755   PlackMiddlewareHeader = buildPerlPackage {
20756     pname = "Plack-Middleware-Header";
20757     version = "0.04";
20758     src = fetchurl {
20759       url = "mirror://cpan/authors/id/C/CH/CHIBA/Plack-Middleware-Header-0.04.tar.gz";
20760       hash = "sha256-Xra5/3Ly09VpUOI+K8AnFQqcXnVg1zo0GhZeGu3qXV4=";
20761     };
20762     propagatedBuildInputs = [ Plack ];
20763     meta = {
20764       description = "Modify HTTP response headers";
20765       license = with lib.licenses; [ artistic1 gpl1Plus ];
20766     };
20767   };
20769   PlackMiddlewareMethodOverride = buildPerlPackage {
20770     pname = "Plack-Middleware-MethodOverride";
20771     version = "0.20";
20772     src = fetchurl {
20773       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Plack-Middleware-MethodOverride-0.20.tar.gz";
20774       hash = "sha256-2/taLvtIv+sByzrh4cZ34VXce/4hDH5/IhuuPLaqtfE=";
20775     };
20776     propagatedBuildInputs = [ Plack ];
20777     meta = {
20778       description = "Override REST methods to Plack apps via POST";
20779       license = with lib.licenses; [ artistic1 gpl1Plus ];
20780     };
20781   };
20783   PlackMiddlewareRemoveRedundantBody = buildPerlPackage {
20784     pname = "Plack-Middleware-RemoveRedundantBody";
20785     version = "0.09";
20786     src = fetchurl {
20787       url = "mirror://cpan/authors/id/S/SW/SWEETKID/Plack-Middleware-RemoveRedundantBody-0.09.tar.gz";
20788       hash = "sha256-gNRfk9a3KQsL2LPO3YSjf8UBRWzD3sAux6rYHAAYCH4=";
20789     };
20790     propagatedBuildInputs = [ Plack ];
20791     meta = {
20792       description = "Plack::Middleware which removes body for HTTP response if it's not required";
20793       homepage = "https://github.com/upasana-me/Plack-Middleware-RemoveRedundantBody";
20794       license = with lib.licenses; [ artistic1 gpl1Plus ];
20795     };
20796   };
20798   PlackMiddlewareReverseProxy = buildPerlPackage {
20799     pname = "Plack-Middleware-ReverseProxy";
20800     version = "0.16";
20801     src = fetchurl {
20802       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Plack-Middleware-ReverseProxy-0.16.tar.gz";
20803       hash = "sha256-h0kx030HZnug0PN5A7lFEQcfQZH+tz+kV2XaK4wVoSg=";
20804     };
20805     propagatedBuildInputs = [ Plack ];
20806     meta = {
20807       description = "Supports app to run as a reverse proxy backend";
20808       homepage = "https://github.com/lopnor/Plack-Middleware-ReverseProxy";
20809       license = with lib.licenses; [ artistic1 gpl1Plus ];
20810     };
20811   };
20813   PlackMiddlewareSession = buildPerlModule {
20814     pname = "Plack-Middleware-Session";
20815     version = "0.33";
20816     src = fetchurl {
20817       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Plack-Middleware-Session-0.33.tar.gz";
20818       hash = "sha256-T/miydGK2ASbRd/ze5vdQSIeLC8eFrr7gb/tyIxRpO4=";
20819     };
20820     propagatedBuildInputs = [ DigestHMAC Plack ];
20821     buildInputs = [ HTTPCookies LWP ModuleBuildTiny TestFatal TestRequires TestSharedFork TestTCP ];
20822     meta = {
20823       description = "Middleware for session management";
20824       homepage = "https://github.com/plack/Plack-Middleware-Session";
20825       license = with lib.licenses; [ artistic1 gpl1Plus ];
20826     };
20827   };
20829   PlackTestExternalServer = buildPerlPackage {
20830     pname = "Plack-Test-ExternalServer";
20831     version = "0.02";
20832     src = fetchurl {
20833       url = "mirror://cpan/authors/id/E/ET/ETHER/Plack-Test-ExternalServer-0.02.tar.gz";
20834       hash = "sha256-W69cV/4MBkEt7snFq+eVKrigT4xHtLvY6emYImiQPtA=";
20835     };
20836     buildInputs = [ Plack TestSharedFork TestTCP ];
20837     propagatedBuildInputs = [ LWP ];
20838     meta = {
20839       description = "Run HTTP tests on external live servers";
20840       homepage = "https://github.com/perl-catalyst/Plack-Test-ExternalServer";
20841       license = with lib.licenses; [ artistic1 gpl1Plus ];
20842     };
20843   };
20845   PLS = buildPerlPackage {
20846     pname = "PLS";
20847     version = "0.905";
20848     src = fetchurl {
20849       url = "mirror://cpan/authors/id/M/MR/MREISNER/PLS-0.905.tar.gz";
20850       hash = "sha256-RVW1J5nBZBXDy/5eMB6gLKDrvDQhTH/lLx19ykUwLik=";
20851     };
20852     propagatedBuildInputs = [ Future FutureQueue IOAsync PPI PPR PathTiny PerlCritic PerlTidy PodMarkdown URI ];
20853     nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang;
20854     postInstall = lib.optionalString stdenv.isDarwin ''
20855       shortenPerlShebang $out/bin/pls
20856     '';
20857     meta = {
20858       description = "Perl Language Server";
20859       homepage = "https://github.com/FractalBoy/perl-language-server";
20860       license = with lib.licenses; [ artistic1 gpl1Plus ];
20861       maintainers = [ maintainers.artturin ];
20862       mainProgram = "pls";
20863     };
20864   };
20866   Po4a = callPackage ../development/perl-modules/Po4a { };
20868   PodMinimumVersion = buildPerlPackage {
20869     pname = "Pod-MinimumVersion";
20870     version = "50";
20871     src = fetchurl {
20872       url = "mirror://cpan/authors/id/K/KR/KRYDE/Pod-MinimumVersion-50.tar.gz";
20873       hash = "sha256-C9KBLZqsvZm7cfoQOkuxKelVwTi6dZhzQgfcn7Z7Wm8=";
20874     };
20875     propagatedBuildInputs = [ IOString PodParser ];
20876     meta = {
20877       description = "Determine minimum Perl version of POD directives";
20878       homepage = "https://user42.tuxfamily.org/pod-minimumversion/index.html";
20879       license = with lib.licenses; [ gpl3Plus ];
20880       mainProgram = "pod-minimumversion";
20881     };
20882   };
20884   POE = buildPerlPackage {
20885     pname = "POE";
20886     version = "1.370";
20887     src = fetchurl {
20888       url = "mirror://cpan/authors/id/B/BI/BINGOS/POE-1.370.tar.gz";
20889       hash = "sha256-V94rY1sV+joxqeVd1REiFJ5UFOEVjugiNQYmNO4YppM=";
20890     };
20891     # N.B. removing TestPodLinkCheck from buildInputs because tests requiring
20892     # this module don't disable themselves when "run_network_tests" is
20893     # not present (see below).
20894     propagatedBuildInputs = [ pkgs.cacert IOPipely IOTty POETestLoops ];
20895     preCheck = ''
20896       set -x
20898       : Makefile.PL touches the following file as a "marker" to indicate
20899       : it should perform tests which use the network. Delete this file
20900       : for sandbox builds.
20901       rm -f run_network_tests
20903       : Certs are required if not running in a sandbox.
20904       export SSL_CERT_FILE=${pkgs.cacert.out}/etc/ssl/certs/ca-bundle.crt
20906       : The following flag enables extra tests not normally performed.
20907       export RELEASE_TESTING=1
20909       set +x
20910     '';
20911     meta = {
20912       description = "Portable, event-loop agnostic eventy networking and multitasking";
20913       homepage = "http://poe.perl.org";
20914       license = with lib.licenses; [ artistic1 gpl1Plus ];
20915       maintainers = teams.deshaw.members;
20916     };
20917   };
20919   POETestLoops = buildPerlPackage {
20920     pname = "POE-Test-Loops";
20921     version = "1.360";
20922     src = fetchurl {
20923       url = "mirror://cpan/authors/id/R/RC/RCAPUTO/POE-Test-Loops-1.360.tar.gz";
20924       hash = "sha256-vtDJb+kcmP035utZqASqrJzEqekoRQt21L9VJ6nmpHs=";
20925     };
20926     meta = {
20927       description = "Reusable tests for POE::Loop authors";
20928       homepage = "https://search.cpan.org/dist/POE-Test-Loops";
20929       license = with lib.licenses; [ artistic1 gpl1Plus ];
20930       maintainers = teams.deshaw.members;
20931       mainProgram = "poe-gen-tests";
20932     };
20933   };
20935   PPI = buildPerlPackage {
20936     pname = "PPI";
20937     version = "1.277";
20938     src = fetchurl {
20939       url = "mirror://cpan/authors/id/M/MI/MITHALDU/PPI-1.277.tar.gz";
20940       hash = "sha256-h8efg7aHbiBgUZZdUBnSUHxVH4GahnUAgOx+xDsuCvg=";
20941     };
20942     buildInputs = [ ClassInspector TestDeep TestNoWarnings TestObject TestSubCalls ];
20943     propagatedBuildInputs = [ Clone IOString ParamsUtil TaskWeaken ];
20945     # Remove test that fails due to unexpected shebang after
20946     # patchShebang.
20947     preCheck = "rm t/03_document.t";
20949     meta = {
20950       description = "Parse, Analyze and Manipulate Perl (without perl)";
20951       homepage = "https://github.com/Perl-Critic/PPI";
20952       license = with lib.licenses; [ artistic1 gpl1Plus ];
20953     };
20954   };
20956   PPIxQuoteLike = buildPerlModule {
20957     pname = "PPIx-QuoteLike";
20958     version = "0.023";
20959     src = fetchurl {
20960       url = "mirror://cpan/authors/id/W/WY/WYANT/PPIx-QuoteLike-0.023.tar.gz";
20961       hash = "sha256-NXajFJ0sU+B+lze3iSvlz7hKSZpu8d8JC3E7BUQjTSE=";
20962     };
20963     propagatedBuildInputs = [ PPI Readonly ];
20964     meta = {
20965       description = "Parse Perl string literals and string-literal-like things";
20966       license = with lib.licenses; [ artistic1 gpl1Plus ];
20967     };
20968   };
20970   PPIxRegexp = buildPerlModule {
20971     pname = "PPIx-Regexp";
20972     version = "0.088";
20973     src = fetchurl {
20974       url = "mirror://cpan/authors/id/W/WY/WYANT/PPIx-Regexp-0.088.tar.gz";
20975       hash = "sha256-iFQz+bEC+tT9NrIccyC7A2A2ERyvmYExv0FvfNXul2Q=";
20976     };
20977     propagatedBuildInputs = [ PPI ];
20978     meta = {
20979       description = "Parse regular expressions";
20980       license = with lib.licenses; [ artistic1 gpl1Plus ];
20981     };
20982   };
20984   PPIxUtilities = buildPerlModule {
20985     pname = "PPIx-Utilities";
20986     version = "1.001000";
20987     src = fetchurl {
20988       url = "mirror://cpan/authors/id/E/EL/ELLIOTJS/PPIx-Utilities-1.001000.tar.gz";
20989       hash = "sha256-A6SDOG/WosgI8Jd41E2wawLDFA+yS6S/EvhR9G07y5s=";
20990     };
20991     buildInputs = [ TestDeep ];
20992     propagatedBuildInputs = [ ExceptionClass PPI Readonly ];
20993     meta = {
20994       description = "Extensions to PPI|PPI";
20995       license = with lib.licenses; [ artistic1 gpl1Plus ];
20996     };
20997   };
20999   PPIxUtils = buildPerlPackage {
21000     pname = "PPIx-Utils";
21001     version = "0.003";
21002     src = fetchurl {
21003       url = "mirror://cpan/authors/id/D/DB/DBOOK/PPIx-Utils-0.003.tar.gz";
21004       hash = "sha256-KpvM/I6tA74BtnJI/o4VJSIED3mChvpO9EMrfy79uhE=";
21005     };
21006     propagatedBuildInputs = [ BKeywords PPI ];
21007     meta = {
21008       homepage = "https://github.com/Grinnz/PPIx-Utils";
21009       description = "Utility functions for PPI";
21010       license = with lib.licenses; [ artistic1 gpl1Plus ];
21011     };
21012   };
21014   PPR = buildPerlPackage {
21015     pname = "PPR";
21016     version = "0.001008";
21017     src = fetchurl {
21018       url = "mirror://cpan/authors/id/D/DC/DCONWAY/PPR-0.001008.tar.gz";
21019       hash = "sha256-EQ5xwF8uLJDrAfCgaU5VqdvpHIV+SBJeF0LRflzbHkk=";
21020     };
21021     meta = {
21022       description = "Pattern-based Perl Recognizer";
21023       license = with lib.licenses; [ artistic2 ];
21024       maintainers = [ maintainers.artturin ];
21025     };
21026   };
21028   ProcBackground = buildPerlPackage {
21029     pname = "Proc-Background";
21030     version = "1.32";
21031     src = fetchurl {
21032       url = "mirror://cpan/authors/id/N/NE/NERDVANA/Proc-Background-1.32.tar.gz";
21033       hash = "sha256-Wxp4DduSnKQnJeuQtRgyFCX/d4tKE3+G+sldn7nNKWc=";
21034     };
21035     meta = {
21036       description = "Run asynchronous child processes under Unix or Windows";
21037       license = with lib.licenses; [ artistic1 gpl1Plus ];
21038       mainProgram = "timed-process";
21039     };
21040   };
21042   ProcProcessTable = buildPerlPackage {
21043     pname = "Proc-ProcessTable";
21044     version = "0.636";
21045     src = fetchurl {
21046       url = "mirror://cpan/authors/id/J/JW/JWB/Proc-ProcessTable-0.636.tar.gz";
21047       hash = "sha256-lEIk/7APwe81BpYzdwoK/ahiO1x1MtHkq0ip3zlIkP0=";
21048     };
21049     meta = {
21050       description = "Perl extension to access the unix process table";
21051       license = with lib.licenses; [ artistic2 ];
21052     };
21053   };
21055   ProcDaemon = buildPerlPackage {
21056     pname = "Proc-Daemon";
21057     version = "0.23";
21058     src = fetchurl {
21059       url = "mirror://cpan/authors/id/A/AK/AKREAL/Proc-Daemon-0.23.tar.gz";
21060       hash = "sha256-NMC4W3lItDHLq8l87lgINeUVzPQ7rb2DOesQlHQIm2k=";
21061     };
21062     buildInputs = [ ProcProcessTable ];
21063     meta = {
21064       description = "Run Perl program(s) as a daemon process";
21065       homepage = "https://github.com/akreal/Proc-Daemon";
21066       license = with lib.licenses; [ artistic1 gpl1Plus ];
21067     };
21068   };
21070   ProcPIDFile = buildPerlPackage {
21071     pname = "Proc-PID-File";
21072     version = "1.29";
21073     src = fetchurl {
21074       url = "mirror://cpan/authors/id/D/DM/DMITRI/Proc-PID-File-1.29.tar.gz";
21075       hash = "sha256-O87aSd8YLT2BaLcMKlGyBW8v1FlQptBCipmS/TVc1KQ=";
21076     };
21077     meta = {
21078       description = "Manage process id files";
21079       homepage = "https://github.com/dtikhonov/Proc-PID-File";
21080       license = with lib.licenses; [ artistic1 gpl1Plus ];
21081     };
21082   };
21084   ProcFind = buildPerlPackage {
21085     pname = "Proc-Find";
21086     version = "0.051";
21087     src = fetchurl {
21088       url = "mirror://cpan/authors/id/P/PE/PERLANCAR/Proc-Find-0.051.tar.gz";
21089       hash = "sha256-ZNOQceyU17ZqfKtalQJG8P/wE7WiAKY9EXZDKYfloTU=";
21090     };
21091     propagatedBuildInputs = [ ProcProcessTable ];
21092     meta = {
21093       description = "Find processes by name, PID, or some other attributes";
21094       homepage = "https://metacpan.org/release/Proc-Find";
21095       license = with lib.licenses; [ artistic1 gpl1Plus ];
21096     };
21097   };
21099   ProcSafeExec = buildPerlPackage {
21100     pname = "Proc-SafeExec";
21101     version = "1.5";
21102     src = fetchurl {
21103       url = "mirror://cpan/authors/id/B/BI/BILBO/Proc-SafeExec-1.5.tar.gz";
21104       hash = "sha256-G00JCLysVj00p+W+YcXaPu6Y5KbH+mjCZwzFhEtaLXg=";
21105     };
21106     meta = {
21107       description = "Convenient utility for executing external commands in various ways";
21108       license = with lib.licenses; [ gpl1Only bsd2 ];
21109     };
21110   };
21112   ProcSimple = buildPerlPackage {
21113     pname = "Proc-Simple";
21114     version = "1.32";
21115     src = fetchurl {
21116       url = "mirror://cpan/authors/id/M/MS/MSCHILLI/Proc-Simple-1.32.tar.gz";
21117       hash = "sha256-TI8KkksZrXihPac/4PswbTKnudEKMyxSMIf8g6IJqMQ=";
21118     };
21119     meta = {
21120       description = "Launch and control background processes";
21121       license = with lib.licenses; [ artistic1 gpl1Plus ];
21122     };
21123   };
21125   ProcWait3 = buildPerlPackage {
21126     pname = "Proc-Wait3";
21127     version = "0.05";
21128     src = fetchurl {
21129       url = "mirror://cpan/authors/id/C/CT/CTILMES/Proc-Wait3-0.05.tar.gz";
21130       hash = "sha256-GpB/XbaTPcKTm7/v/hnurn7TnvG5eivJtyPy8l+ByvM=";
21131     };
21132     meta = {
21133       description = "Perl extension for wait3 system call";
21134       license = with lib.licenses; [ artistic1 gpl1Plus ];
21135     };
21136   };
21138   ProcWaitStat = buildPerlPackage {
21139     pname = "Proc-WaitStat";
21140     version = "1.00";
21141     src = fetchurl {
21142       url = "mirror://cpan/authors/id/R/RO/ROSCH/Proc-WaitStat-1.00.tar.gz";
21143       hash = "sha256-0HVj9eeHkJ0W5zkCQeh39Jq3ObHenQ4uoaQb0L9EdLw=";
21144     };
21145     propagatedBuildInputs = [ IPCSignal ];
21146     meta = {
21147       description = "Interpret and act on wait() status values";
21148       license = with lib.licenses; [ artistic1 gpl1Plus ];
21149     };
21150   };
21152   PrometheusTiny = buildPerlPackage {
21153     pname = "Prometheus-Tiny";
21154     version = "0.011";
21155     src = fetchurl {
21156       url = "mirror://cpan/authors/id/R/RO/ROBN/Prometheus-Tiny-0.011.tar.gz";
21157       hash = "sha256-jbFIDzyJ64bUFM9fR/7tjfMRKzjEY8uPZbTAZOILHhM=";
21158     };
21159     buildInputs = [ HTTPMessage Plack TestException TestWarn ];
21160     meta = {
21161       description = "A tiny Prometheus client";
21162       homepage = "https://github.com/robn/Prometheus-Tiny";
21163       license = with lib.licenses; [ artistic1 gpl1Plus ];
21164     };
21165   };
21167   PrometheusTinyShared = buildPerlPackage {
21168     pname = "Prometheus-Tiny-Shared";
21169     version = "0.027";
21170     src = fetchurl {
21171       url = "mirror://cpan/authors/id/R/RO/ROBN/Prometheus-Tiny-Shared-0.027.tar.gz";
21172       hash = "sha256-egULqhjKfA0gsoih1L0nJ3E6lFg/Qmskn5XcjUDty9E=";
21173     };
21174     buildInputs = [ DataRandom HTTPMessage Plack TestDifferences TestException TestWarn ];
21175     propagatedBuildInputs = [ HashSharedMem JSONXS PrometheusTiny ];
21176     meta = {
21177       description = "A tiny Prometheus client with a shared database behind it";
21178       homepage = "https://github.com/robn/Prometheus-Tiny-Shared";
21179       license = with lib.licenses; [ artistic1 gpl1Plus ];
21180     };
21181   };
21183   ProtocolRedis = buildPerlPackage {
21184     pname = "Protocol-Redis";
21185     version = "1.0011";
21186     src = fetchurl {
21187       url = "mirror://cpan/authors/id/U/UN/UNDEF/Protocol-Redis-1.0011.tar.gz";
21188       hash = "sha256-fOtr2ABnyQRGXU/R8XFXJDiMm9w3xsLAA6IM5Wm39Og=";
21189     };
21190     meta = {
21191       description = "Redis protocol parser/encoder with asynchronous capabilities";
21192       homepage = "https://github.com/und3f/protocol-redis";
21193       license = with lib.licenses; [ artistic1 gpl1Plus ];
21194       maintainers = [ maintainers.sgo ];
21195     };
21196   };
21198   ProtocolRedisFaster = buildPerlPackage {
21199     pname = "Protocol-Redis-Faster";
21200     version = "0.003";
21201     src = fetchurl {
21202       url = "mirror://cpan/authors/id/D/DB/DBOOK/Protocol-Redis-Faster-0.003.tar.gz";
21203       hash = "sha256-a5r7PelOwczX20+eai6rolSld5AwHBe8sTuz7f4YULc=";
21204     };
21205     propagatedBuildInputs = [ ProtocolRedis ];
21206     meta = {
21207       description = "Optimized pure-perl Redis protocol parser/encoder";
21208       homepage = "https://github.com/Grinnz/Protocol-Redis-Faster";
21209       license = with lib.licenses; [ artistic2 ];
21210       maintainers = [ maintainers.sgo ];
21211     };
21212   };
21214   ProtocolWebSocket = buildPerlModule {
21215     pname = "Protocol-WebSocket";
21216     version = "0.26";
21217     src = fetchurl {
21218       url = "mirror://cpan/authors/id/V/VT/VTI/Protocol-WebSocket-0.26.tar.gz";
21219       hash = "sha256-WDfQNxGnoyVPCv7LfkCeiwk3YGDDiluClejumvdXVSI=";
21220     };
21221     buildInputs = [ ModuleBuildTiny ];
21222     meta = {
21223       description = "WebSocket protocol";
21224       license = with lib.licenses; [ artistic1 gpl1Plus ];
21225     };
21226   };
21228   ProtocolHTTP2 = buildPerlModule {
21229     pname = "Protocol-HTTP2";
21230     version = "1.10";
21232     src = fetchurl {
21233       url = "mirror://cpan/authors/id/C/CR/CRUX/Protocol-HTTP2-1.10.tar.gz";
21234       hash = "sha256-wmoAWPtK+ul+S/DbxkGJ9nEURRXERH89y1l+zQOWpko=";
21235     };
21236     buildInputs = [ AnyEvent ModuleBuildTiny NetSSLeay TestLeakTrace TestSharedFork TestTCP ];
21237     meta = {
21238       description = "HTTP/2 protocol implementation (RFC 7540)";
21239       license = with lib.licenses; [ artistic1 gpl1Plus ];
21240     };
21241   };
21243   PSGI = buildPerlPackage {
21244     pname = "PSGI";
21245     version = "1.102";
21246     src = fetchurl {
21247       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/PSGI-1.102.tar.gz";
21248       hash = "sha256-pWxEZ0CRfahpJcKfxmM7nfg5shz5j2onCGWY7ZDuH0c=";
21249     };
21250     meta = {
21251       description = "Perl Web Server Gateway Interface Specification";
21252       license = with lib.licenses; [ cc-by-sa-25 ];
21253     };
21254   };
21256   PadWalker = buildPerlPackage {
21257     pname = "PadWalker";
21258     version = "2.5";
21259     src = fetchurl {
21260       url = "mirror://cpan/authors/id/R/RO/ROBIN/PadWalker-2.5.tar.gz";
21261       hash = "sha256-B7Jqu4QRRq8yByqNaMuQF2/7F2/ZJo5vL30Qb4F6DNA=";
21262     };
21263     meta = {
21264       description = "Play with other peoples' lexical variables";
21265       license = with lib.licenses; [ artistic1 gpl1Plus ];
21266     };
21267   };
21269   Perl6Junction = buildPerlPackage {
21270     pname = "Perl6-Junction";
21271     version = "1.60000";
21272     src = fetchurl {
21273       url = "mirror://cpan/authors/id/C/CF/CFRANKS/Perl6-Junction-1.60000.tar.gz";
21274       hash = "sha256-0CN16FGX6PkbTLLTM0rpqJ9gAi949c1gdtzU7G+ycWQ=";
21275     };
21276     meta = {
21277       description = "Perl6 style Junction operators in Perl5";
21278       license = with lib.licenses; [ artistic1 gpl1Plus ];
21279     };
21280   };
21282   PerlMinimumVersion = buildPerlPackage {
21283     pname = "Perl-MinimumVersion";
21284     version = "1.40";
21285     src = fetchurl {
21286       url = "mirror://cpan/authors/id/D/DB/DBOOK/Perl-MinimumVersion-1.40.tar.gz";
21287       hash = "sha256-dYmleMtg1wykdVw5WzWStECgzWobB05OzqyTsDGhvpA=";
21288     };
21289     buildInputs = [ TestScript ];
21290     propagatedBuildInputs = [ FileFindRulePerl PerlCritic ];
21291     meta = {
21292       description = "Find a minimum required version of perl for Perl code";
21293       homepage = "https://github.com/neilbowers/Perl-MinimumVersion";
21294       license = with lib.licenses; [ artistic1 gpl1Plus ];
21295       mainProgram = "perlver";
21296     };
21297   };
21299   PerlPrereqScanner = buildPerlPackage {
21300     pname = "Perl-PrereqScanner";
21301     version = "1.100";
21302     src = fetchurl {
21303       url = "mirror://cpan/authors/id/R/RJ/RJBS/Perl-PrereqScanner-1.100.tar.gz";
21304       hash = "sha256-ARgdOKLnr/g40mISJWPFBja6SzZS7l0dT471uj9bGGs=";
21305     };
21306     buildInputs = [ TryTiny ];
21307     propagatedBuildInputs = [ GetoptLongDescriptive ModulePath Moo ParamsUtil PPI StringRewritePrefix TypeTiny namespaceautoclean ];
21308     meta = {
21309       description = "A tool to scan your Perl code for its prerequisites";
21310       homepage = "https://github.com/rjbs/Perl-PrereqScanner";
21311       license = with lib.licenses; [ artistic1 gpl1Plus ];
21312       mainProgram = "scan-perl-prereqs";
21313     };
21314   };
21316   PerlPrereqScannerNotQuiteLite = buildPerlPackage {
21317     pname = "Perl-PrereqScanner-NotQuiteLite";
21318     version = "0.9917";
21319     src = fetchurl {
21320       url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/Perl-PrereqScanner-NotQuiteLite-0.9917.tar.gz";
21321       hash = "sha256-O6fuF9lfDJqNkqLkwYVLZKcH0cAihGIm3Q36Qvfeud0=";
21322     };
21323     propagatedBuildInputs = [ DataDump ModuleCPANfile ModuleFind RegexpTrie URIcpan ];
21324     buildInputs = [ ExtUtilsMakeMakerCPANfile ParseDistname TestFailWarnings TestUseAllModules ];
21325     meta = {
21326       description = "A tool to scan your Perl code for its prerequisites";
21327       license = with lib.licenses; [ artistic1 gpl1Plus ];
21328       mainProgram = "scan-perl-prereqs-nqlite";
21329     };
21330   };
21332   PerlVersion = buildPerlPackage {
21333     pname = "Perl-Version";
21334     version = "1.013";
21335     src = fetchurl {
21336       url = "mirror://cpan/authors/id/B/BD/BDFOY/Perl-Version-1.013.tar.gz";
21337       hash = "sha256-GIdBTRyGidhkyEARQQHgQ+mdfdW5zKaTaaYOgh460Pc=";
21338     };
21339     propagatedBuildInputs = [ FileSlurpTiny ];
21340     meta = {
21341       description = "Parse and manipulate Perl version strings";
21342       license = with lib.licenses; [ artistic1 gpl1Plus ];
21343       mainProgram = "perl-reversion";
21344     };
21345   };
21347   PodAbstract = buildPerlPackage {
21348     pname = "Pod-Abstract";
21349     version = "0.20";
21350     src = fetchurl {
21351       url = "mirror://cpan/authors/id/B/BL/BLILBURNE/Pod-Abstract-0.20.tar.gz";
21352       hash = "sha256-lW73u4hMVUVuL7bn8in5qH3VCmHXAFAMc4248ronf4c=";
21353     };
21354     propagatedBuildInputs = [ IOString TaskWeaken PodParser ];
21355     meta = {
21356       description = "An abstract, tree-based interface to perl POD documents";
21357       license = with lib.licenses; [ artistic1 gpl1Plus ];
21358       mainProgram = "paf";
21359     };
21360   };
21362   PodChecker = buildPerlPackage {
21363     pname = "Pod-Checker";
21364     version = "1.75";
21365     src = fetchurl {
21366       url = "mirror://cpan/authors/id/M/MA/MAREKR/Pod-Checker-1.75.tar.gz";
21367       hash = "sha256-82O1dOxmCvbtvT5dTJ/8UVodRsvxx8ytmkbO0oh5wiE=";
21368     };
21369     meta = {
21370       description = "Verifies POD documentation contents for compliance with the POD format specifications";
21371       license = with lib.licenses; [ artistic1 gpl1Plus ];
21372       mainProgram = "podchecker";
21373     };
21374   };
21376   PodCoverage = buildPerlPackage {
21377     pname = "Pod-Coverage";
21378     version = "0.23";
21379     src = fetchurl {
21380       url = "mirror://cpan/authors/id/R/RC/RCLAMP/Pod-Coverage-0.23.tar.gz";
21381       hash = "sha256-MLegsMlC9Ep1UsDTTpsfLgugtnlVxh47FYnsNpB0sQc=";
21382     };
21383     propagatedBuildInputs = [ DevelSymdump PodParser ];
21384     meta = {
21385       description = "Checks if the documentation of a module is comprehensive";
21386       license = with lib.licenses; [ artistic1 gpl1Plus ];
21387       mainProgram = "pod_cover";
21388     };
21389   };
21391   PodCoverageTrustPod = buildPerlPackage {
21392     pname = "Pod-Coverage-TrustPod";
21393     version = "0.100006";
21394     src = fetchurl {
21395       url = "mirror://cpan/authors/id/R/RJ/RJBS/Pod-Coverage-TrustPod-0.100006.tar.gz";
21396       hash = "sha256-NYrcJQTwOetpCYqpm93mrp3JNTZKjhRPZAXoKTs6fKM=";
21397     };
21398     propagatedBuildInputs = [ PodCoverage PodEventual ];
21399     meta = {
21400       description = "Allow a module's pod to contain Pod::Coverage hints";
21401       homepage = "https://github.com/rjbs/Pod-Coverage-TrustPod";
21402       license = with lib.licenses; [ artistic1 gpl1Plus ];
21403     };
21404   };
21406   PodElemental = buildPerlPackage {
21407     pname = "Pod-Elemental";
21408     version = "0.103006";
21409     src = fetchurl {
21410       url = "mirror://cpan/authors/id/R/RJ/RJBS/Pod-Elemental-0.103006.tar.gz";
21411       hash = "sha256-dQw6edjhgkdYpu99LdB33N3KUDVCuMNOzNWsu3edxCM=";
21412     };
21413     buildInputs = [ TestDeep TestDifferences ];
21414     propagatedBuildInputs = [ MooseXTypes PodEventual StringRewritePrefix StringTruncate ];
21415     meta = {
21416       description = "Work with nestable Pod elements";
21417       homepage = "https://github.com/rjbs/Pod-Elemental";
21418       license = with lib.licenses; [ artistic1 gpl1Plus ];
21419     };
21420   };
21422   PodElementalPerlMunger = buildPerlPackage {
21423     pname = "Pod-Elemental-PerlMunger";
21424     version = "0.200007";
21425     src = fetchurl {
21426       url = "mirror://cpan/authors/id/R/RJ/RJBS/Pod-Elemental-PerlMunger-0.200007.tar.gz";
21427       hash = "sha256-UYleTEGgeere+fJPXcSOMkWlwG40BO15yF+lzv63lak=";
21428     };
21429     buildInputs = [ TestDifferences ];
21430     propagatedBuildInputs = [ PPI PodElemental ];
21431     meta = {
21432       description = "A thing that takes a string of Perl and rewrites its documentation";
21433       homepage = "https://github.com/rjbs/Pod-Elemental-PerlMunger";
21434       license = with lib.licenses; [ artistic1 gpl1Plus ];
21435     };
21436   };
21438   PodEventual = buildPerlPackage {
21439     pname = "Pod-Eventual";
21440     version = "0.094003";
21441     src = fetchurl {
21442       url = "mirror://cpan/authors/id/R/RJ/RJBS/Pod-Eventual-0.094003.tar.gz";
21443       hash = "sha256-fwYMw00RZWzgadsGHj1g7cDKvI+JpKLcfqrpXayFbS0=";
21444     };
21445     propagatedBuildInputs = [ MixinLinewise ];
21446     buildInputs = [ TestDeep ];
21447     meta = {
21448       description = "Read a POD document as a series of trivial events";
21449       homepage = "https://github.com/rjbs/Pod-Eventual";
21450       license = with lib.licenses; [ artistic1 gpl1Plus ];
21451     };
21452   };
21454   PodParser = buildPerlPackage {
21455     pname = "Pod-Parser";
21456     version = "1.66";
21457     src = fetchurl {
21458       url = "mirror://cpan/authors/id/M/MA/MAREKR/Pod-Parser-1.66.tar.gz";
21459       hash = "sha256-IpKKe//mG0UsBbu7j1IW1LnPn+KoSbd2wlUA0k0g33w=";
21460     };
21461     meta = {
21462       description = "Modules for parsing/translating POD format documents";
21463       license = with lib.licenses; [ artistic1 ];
21464       mainProgram = "podselect";
21465     };
21466   };
21468   PodPOM = buildPerlPackage {
21469     pname = "Pod-POM";
21470     version = "2.01";
21471     src = fetchurl {
21472       url = "mirror://cpan/authors/id/N/NE/NEILB/Pod-POM-2.01.tar.gz";
21473       hash = "sha256-G1D7qbvd4+rRkr7roOrd0MYU46+xdD+m//gF9XxW9/Q=";
21474     };
21475     buildInputs = [ FileSlurper TestDifferences TextDiff ];
21476     meta = {
21477       description = "POD Object Model";
21478       homepage = "https://github.com/neilb/Pod-POM";
21479       license = with lib.licenses; [ artistic1 gpl1Plus ];
21480       mainProgram = "pom2";
21481     };
21482   };
21484   PodPOMViewTOC = buildPerlPackage {
21485     pname = "Pod-POM-View-TOC";
21486     version = "0.02";
21487     src = fetchurl {
21488       url = "mirror://cpan/authors/id/P/PE/PERLER/Pod-POM-View-TOC-0.02.tar.gz";
21489       hash = "sha256-zLQicsdQM3nLETE5RiDuUCdtcoRODoDrSwB6nVj4diM=";
21490     };
21491     propagatedBuildInputs = [ PodPOM ];
21492     meta = {
21493       description = "Generate the TOC of a POD with Pod::POM";
21494       license = with lib.licenses; [ artistic1 gpl1Plus ];
21495     };
21496   };
21498   PodSection = buildPerlModule {
21499     pname = "Pod-Section";
21500     version = "0.02";
21501     src = fetchurl {
21502       url = "mirror://cpan/authors/id/K/KT/KTAT/Pod-Section-0.02.tar.gz";
21503       hash = "sha256-ydHXUpLzIYgRhOxWmDwW9Aj9LTEtWnIPj7DSyvpykjg=";
21504     };
21505     propagatedBuildInputs = [ PodAbstract ];
21506     meta = {
21507       description = "Select specified section from Module's POD";
21508       homepage = "https://github.com/ktat/Pod-Section";
21509       license = with lib.licenses; [ artistic1 gpl1Plus ];
21510       mainProgram = "podsection";
21511     };
21512   };
21514   PodLaTeX = buildPerlModule {
21515     pname = "Pod-LaTeX";
21516     version = "0.61";
21517     src = fetchurl {
21518       url = "mirror://cpan/authors/id/T/TJ/TJENNESS/Pod-LaTeX-0.61.tar.gz";
21519       hash = "sha256-FahA6hyKds08hl+78v7DOwNhXA2qUPnIAMVODPBlnUY=";
21520     };
21521     propagatedBuildInputs = [ PodParser ];
21522     meta = {
21523       description = "Convert Pod data to formatted Latex";
21524       homepage = "https://github.com/timj/perl-Pod-LaTeX/tree/master";
21525       license = with lib.licenses; [ artistic1 gpl1Plus ];
21526       mainProgram = "pod2latex";
21527     };
21528   };
21530   podlators = buildPerlPackage {
21531     pname = "podlators";
21532     version = "5.01";
21533     src = fetchurl {
21534       url = "mirror://cpan/authors/id/R/RR/RRA/podlators-5.01.tar.gz";
21535       hash = "sha256-zP0d+fGkfwlbzm1xj61a9A94ziSR8scjlibhW3AgvHE=";
21536     };
21537     preCheck = ''
21538       # remove failing spdx check
21539       rm t/docs/spdx-license.t
21540     '';
21541     meta = {
21542       description = "Convert POD data to various other formats";
21543       homepage = "https://www.eyrie.org/~eagle/software/podlators";
21544       license = with lib.licenses; [ artistic1 gpl1Plus ];
21545     };
21546   };
21548   podlinkcheck = buildPerlPackage {
21549     pname = "podlinkcheck";
21550     version = "15";
21551     src = fetchurl {
21552       url = "mirror://cpan/authors/id/K/KR/KRYDE/podlinkcheck-15.tar.gz";
21553       hash = "sha256-Tjvr7Bv4Lb+FCpSuJqJTZEz1gG7EGvx05D4XEKNzIds=";
21554     };
21555     propagatedBuildInputs = [ FileFindIterator FileHomeDir IPCRun PodParser constant-defer libintl-perl ];
21556     meta = {
21557       description = "Check POD L<> link references";
21558       homepage = "https://user42.tuxfamily.org/podlinkcheck/index.html";
21559       license = with lib.licenses; [ gpl3Plus ];
21560     };
21561   };
21563   prefork = buildPerlPackage {
21564     pname = "prefork";
21565     version = "1.05";
21566     src = fetchurl {
21567       url = "mirror://cpan/authors/id/E/ET/ETHER/prefork-1.05.tar.gz";
21568       hash = "sha256-bYe836Y7KM78+ocIA6UZtlkOPqGcMA+YzssOGQuxkwU=";
21569     };
21570     meta = {
21571       description = "Optimized module loading for forking or non-forking processes";
21572       homepage = "https://github.com/karenetheridge/prefork";
21573       license = with lib.licenses; [ artistic1 gpl1Plus ];
21574     };
21575   };
21577   PodPerldoc = buildPerlPackage {
21578     pname = "Pod-Perldoc";
21579     version = "3.28";
21580     src = fetchurl {
21581       url = "mirror://cpan/authors/id/M/MA/MALLEN/Pod-Perldoc-3.28.tar.gz";
21582       hash = "sha256-zEHmBbjhPECo7mUE/0Y0e1un+9kiA7O7BVQiBRvvxk0=";
21583     };
21584     meta = {
21585       description = "Look up Perl documentation in Pod format";
21586       license = with lib.licenses; [ artistic1 gpl1Plus ];
21587       mainProgram = "perldoc";
21588     };
21589   };
21591   PodPlainer = buildPerlPackage {
21592     pname = "Pod-Plainer";
21593     version = "1.04";
21594     src = fetchurl {
21595       url = "mirror://cpan/authors/id/R/RM/RMBARKER/Pod-Plainer-1.04.tar.gz";
21596       hash = "sha256-G7+/fR1IceWoO6shN+ItCJB4IGgVGQ6x1cEmCjSZRW8=";
21597     };
21598     propagatedBuildInputs = [ PodParser ];
21599     meta = {
21600       description = "Perl extension for converting Pod to old-style Pod";
21601       license = with lib.licenses; [ artistic1 gpl1Plus ];
21602     };
21603   };
21605   PodMarkdown = buildPerlPackage {
21606     pname = "Pod-Markdown";
21607     version = "3.300";
21608     src = fetchurl {
21609       url = "mirror://cpan/authors/id/R/RW/RWSTAUNER/Pod-Markdown-3.300.tar.gz";
21610       hash = "sha256-7HnpkIo2BXScT+tQVHY+toEt0ztUzoWlEzmqfPmZG3k=";
21611     };
21612     buildInputs = [ TestDifferences ];
21613     propagatedBuildInputs = [ URI ];
21614     meta = {
21615       description = "Convert POD to Markdown";
21616       homepage = "https://github.com/rwstauner/Pod-Markdown";
21617       license = with lib.licenses; [ artistic1 gpl1Plus ];
21618       mainProgram = "pod2markdown";
21619     };
21620   };
21622   PodMarkdownGithub = buildPerlPackage {
21623     pname = "Pod-Markdown-Github";
21624     version = "0.04";
21625     src = fetchurl {
21626       url = "mirror://cpan/authors/id/M/MI/MINIMAL/Pod-Markdown-Github-0.04.tar.gz";
21627       hash = "sha256-s34vAJxMzkkk+yPuQxRuUGcilxvqa87S2sFdCAo7xhM=";
21628     };
21629     propagatedBuildInputs = [ PodMarkdown ];
21630     buildInputs = [ TestDifferences ];
21631     meta = {
21632       description = "Convert POD to Github's specific markdown";
21633       license = with lib.licenses; [ artistic1 gpl1Plus ];
21634       mainProgram = "pod2github";
21635     };
21636   };
21638   PodSimple = buildPerlPackage {
21639     pname = "Pod-Simple";
21640     version = "3.45";
21641     src = fetchurl {
21642       url = "mirror://cpan/authors/id/K/KH/KHW/Pod-Simple-3.45.tar.gz";
21643       hash = "sha256-hIO7lc0+QwfWbe8JKjd5+EOvdySCv9wCTj4A0MTbDPo=";
21644     };
21645     meta = {
21646       description = "Framework for parsing Pod";
21647       license = with lib.licenses; [ artistic1 gpl1Plus ];
21648     };
21649   };
21651   PodSpell = buildPerlPackage {
21652     pname = "Pod-Spell";
21653     version = "1.26";
21654     src = fetchurl {
21655       url = "mirror://cpan/authors/id/H/HA/HAARG/Pod-Spell-1.26.tar.gz";
21656       hash = "sha256-LwW/yc+wS5b8v6LIVE0eaukIWW02lsRuDiZVa3UK+78=";
21657     };
21658     propagatedBuildInputs = [ ClassTiny FileShareDir LinguaENInflect PathTiny PodParser ];
21659     buildInputs = [ FileShareDirInstall TestDeep ];
21660     meta = {
21661       description = "A formatter for spellchecking Pod";
21662       homepage = "https://github.com/perl-pod/Pod-Spell";
21663       license = with lib.licenses; [ artistic2 ];
21664       mainProgram = "podspell";
21665     };
21666   };
21668   PodStrip = buildPerlModule {
21669     pname = "Pod-Strip";
21670     version = "1.100";
21671     src = fetchurl {
21672       url = "mirror://cpan/authors/id/D/DO/DOMM/Pod-Strip-1.100.tar.gz";
21673       hash = "sha256-Z1BqZh+pyuzv57pPQvC8FbCm8JZ8eWB3QPbLaXSu1M0=";
21674     };
21675     meta = {
21676       description = "Remove POD from Perl code";
21677       homepage = "https://github.com/domm/Pod-Strip";
21678       license = with lib.licenses; [ artistic1 gpl1Plus ];
21679     };
21680   };
21682   PodTidy = buildPerlModule {
21683     pname = "Pod-Tidy";
21684     version = "0.10";
21685     src = fetchurl {
21686       url = "mirror://cpan/authors/id/J/JH/JHOBLITT/Pod-Tidy-0.10.tar.gz";
21687       hash = "sha256-iG7hQ+p81Tm0O+16KHmJ0Wc211y/ofheLMzq+eiVnb0=";
21688     };
21689     propagatedBuildInputs = [ EncodeNewlines IOString PodWrap TextGlob ];
21690     buildInputs = [ TestCmd ];
21691     meta = {
21692       description = "A reformatting Pod Processor";
21693       license = with lib.licenses; [ artistic1 gpl1Plus ];
21694       mainProgram = "podtidy";
21695     };
21696   };
21698   PodWeaver = buildPerlPackage {
21699     pname = "Pod-Weaver";
21700     version = "4.019";
21701     src = fetchurl {
21702       url = "mirror://cpan/authors/id/R/RJ/RJBS/Pod-Weaver-4.019.tar.gz";
21703       hash = "sha256-aUatHwTq+aoR8kzFRJTh1Xli9Y4FkS82S3T5WT595/c=";
21704     };
21705     buildInputs = [ PPI SoftwareLicense TestDifferences ];
21706     propagatedBuildInputs = [ ConfigMVPReaderINI DateTime ListMoreUtils LogDispatchouli PodElemental ];
21707     meta = {
21708       description = "Weave together a Pod document from an outline";
21709       homepage = "https://github.com/rjbs/Pod-Weaver";
21710       license = with lib.licenses; [ artistic1 gpl1Plus ];
21711     };
21712   };
21714   PodWrap = buildPerlModule {
21715     pname = "Pod-Wrap";
21716     version = "0.01";
21717     src = fetchurl {
21718       url = "mirror://cpan/authors/id/N/NU/NUFFIN/Pod-Wrap-0.01.tar.gz";
21719       hash = "sha256-UMrL4v/7tccNG6XpQn1cit7mGENuxz+W7QU5Iy4si2M=";
21720     };
21721     propagatedBuildInputs = [ PodParser ];
21722     meta = {
21723       description = "Wrap pod paragraphs, leaving verbatim text and code alone";
21724       license = with lib.licenses; [ artistic1 gpl1Plus ];
21725       mainProgram = "podwrap";
21726     };
21727   };
21729   ProbePerl = buildPerlPackage {
21730     pname = "Probe-Perl";
21731     version = "0.03";
21732     src = fetchurl {
21733       url = "mirror://cpan/authors/id/K/KW/KWILLIAMS/Probe-Perl-0.03.tar.gz";
21734       hash = "sha256-2eTSHi53Y4VZBF+gkEaxtv/2xAO5SZKdshPjCr6KPDE=";
21735     };
21736     meta = {
21737       description = "Information about the currently running perl";
21738       license = with lib.licenses; [ artistic1 gpl1Plus ];
21739     };
21740   };
21742   POSIXAtFork = buildPerlPackage {
21743     pname = "POSIX-AtFork";
21744     version = "0.04";
21745     src = fetchurl {
21746       url = "mirror://cpan/authors//id/N/NI/NIKOLAS/POSIX-AtFork-0.04.tar.gz";
21747       hash = "sha256-wuIpOobUhxRLyPe6COfEt2sRsOTf3EGAmEXTDvoH5g4=";
21748     };
21749     buildInputs = [ TestSharedFork ];
21750     meta = {
21751       description = "Hook registrations at fork(2)";
21752       license = with lib.licenses; [ artistic1 gpl1Plus ];
21753     };
21754   };
21756   POSIXstrftimeCompiler = buildPerlModule {
21757     pname = "POSIX-strftime-Compiler";
21758     version = "0.44";
21759     src = fetchurl {
21760       url = "mirror://cpan/authors/id/K/KA/KAZEBURO/POSIX-strftime-Compiler-0.44.tar.gz";
21761       hash = "sha256-39PJc5jc/lHII2uF49woA1Znt2Ux96oKZTXzqlQFs1o=";
21762     };
21763     # We cannot change timezones on the fly.
21764     prePatch = "rm t/04_tzset.t";
21765     buildInputs = [ ModuleBuildTiny ];
21766     meta = {
21767       description = "GNU C library compatible strftime for loggers and servers";
21768       homepage = "https://github.com/kazeburo/POSIX-strftime-Compiler";
21769       license = with lib.licenses; [ artistic1 gpl1Plus ];
21770     };
21771   };
21773   Apprainbarf = buildPerlModule {
21774     pname = "App-rainbarf";
21775     version = "1.4";
21776     src = fetchurl {
21777       url = "mirror://cpan/authors/id/S/SY/SYP/App-rainbarf-1.4.tar.gz";
21778       hash = "sha256-TxOa01+q8t4GI9wLsd2J+lpDHlSL/sh97hlM8OJcyX0=";
21779     };
21780     nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang;
21781     postInstall = lib.optionalString stdenv.isDarwin ''
21782       shortenPerlShebang $out/bin/rainbarf
21783     '';
21784     meta = {
21785       description = "CPU/RAM/battery stats chart bar for tmux (and GNU screen)";
21786       homepage = "https://github.com/creaktive/rainbarf";
21787       license = with lib.licenses; [ artistic1 gpl1Plus ];
21788       mainProgram = "rainbarf";
21789     };
21790   };
21792   Razor2ClientAgent = buildPerlPackage {
21793     pname = "Razor2-Client-Agent";
21794     version = "2.86";
21795     src = fetchurl {
21796       url = "mirror://cpan/authors/id/T/TO/TODDR/Razor2-Client-Agent-2.86.tar.gz";
21797       hash = "sha256-XgYuAuu2XiS3COfu+lMAxD1vZXvyDQj+xMqKCjuUhF8=";
21798     };
21799     propagatedBuildInputs = [ DigestSHA1 URI ];
21800     meta = {
21801       description = "Collaborative, content-based spam filtering network agent";
21802       homepage = "https://razor.sourceforge.net/";
21803       license = with lib.licenses; [ artistic1 gpl1Plus ];
21804     };
21805   };
21808   Readonly = buildPerlModule {
21809     pname = "Readonly";
21810     version = "2.05";
21811     src = fetchurl {
21812       url = "mirror://cpan/authors/id/S/SA/SANKO/Readonly-2.05.tar.gz";
21813       hash = "sha256-SyNUJJGvAQ1EpcfIYSRHOKzHSrq65riDjTVN+xlGK14=";
21814     };
21815     buildInputs = [ ModuleBuildTiny ];
21816     meta = {
21817       description = "Facility for creating read-only scalars, arrays, hashes";
21818       homepage = "https://github.com/sanko/readonly";
21819       license = with lib.licenses; [ artistic2 ];
21820     };
21821   };
21823   ReadonlyX = buildPerlModule {
21824     pname = "ReadonlyX";
21825     version = "1.04";
21826     src = fetchurl {
21827       url = "mirror://cpan/authors/id/S/SA/SANKO/ReadonlyX-1.04.tar.gz";
21828       hash = "sha256-gbuX26k6xrXMvOBKQsNZDrBFV9dQGHc+4Y1aMPz0gYg=";
21829     };
21830     buildInputs = [ ModuleBuildTiny TestFatal ];
21831     meta = {
21832       description = "Faster facility for creating read-only scalars, arrays, hashes";
21833       homepage = "https://github.com/sanko/readonly";
21834       license = with lib.licenses; [ artistic2 ];
21835     };
21836   };
21838   ReadonlyXS = buildPerlPackage {
21839     pname = "Readonly-XS";
21840     version = "1.05";
21841     src = fetchurl {
21842       url = "mirror://cpan/authors/id/R/RO/ROODE/Readonly-XS-1.05.tar.gz";
21843       hash = "sha256-iuXE6FKZ5ci93RsZby7qOPAHCeDcDLYEVNyRFK4//w0=";
21844     };
21845     propagatedBuildInputs = [ Readonly ];
21846     meta = {
21847       description = "Companion module for Readonly.pm, to speed up read-only scalar variables";
21848       license = with lib.licenses; [ artistic1 gpl1Plus ];
21849     };
21850   };
21852   Redis = buildPerlModule {
21853     pname = "Redis";
21854     version = "2.000";
21855     src = fetchurl {
21856       url = "mirror://cpan/authors/id/D/DA/DAMS/Redis-2.000.tar.gz";
21857       hash = "sha256-FMuJl5chJhW06T+Rbcva+0jQHF6qsgOP5ssXm/lcb+s=";
21858     };
21859     buildInputs = [ IOString ModuleBuildTiny TestDeep TestFatal TestSharedFork TestTCP ];
21860     propagatedBuildInputs = [ IOSocketTimeout TryTiny ];
21861     meta = {
21862       description = "Perl binding for Redis database";
21863       homepage = "https://github.com/PerlRedis/perl-redis";
21864       license = with lib.licenses; [ artistic2 ];
21865     };
21866   };
21868   RefUtil = buildPerlPackage {
21869     pname = "Ref-Util";
21870     version = "0.204";
21871     src = fetchurl {
21872       url = "mirror://cpan/authors/id/A/AR/ARC/Ref-Util-0.204.tar.gz";
21873       hash = "sha256-QV+nPbrPRPPV15wUiIzJlFYnIKtGjm9x+RzR92nxBeE=";
21874     };
21875     meta = {
21876       description = "Utility functions for checking references";
21877       license = with lib.licenses; [ mit ];
21878     };
21879   };
21881   RegexpAssemble = buildPerlPackage {
21882     pname = "Regexp-Assemble";
21883     version = "0.38";
21884     src = fetchurl {
21885       url = "mirror://cpan/authors/id/R/RS/RSAVAGE/Regexp-Assemble-0.38.tgz";
21886       hash = "sha256-oGvn+a4bc8m/1bZmKxQcDXBGnpwZu0QTpu5W+Cra5EI=";
21887     };
21888     meta = {
21889       description = "Assemble multiple Regular Expressions into a single RE";
21890       license = with lib.licenses; [ artistic1 gpl1Plus ];
21891     };
21892   };
21894   RegexpCommon = buildPerlPackage {
21895     pname = "Regexp-Common";
21896     version = "2017060201";
21897     src = fetchurl {
21898       url = "mirror://cpan/authors/id/A/AB/ABIGAIL/Regexp-Common-2017060201.tar.gz";
21899       hash = "sha256-7geFOu4G8xDgQLa/GgGZoY2BiW0yGbmzXJYw0OtpCJs=";
21900     };
21901     meta = {
21902       description = "Provide commonly requested regular expressions";
21903       license = with lib.licenses; [ mit ];
21904     };
21905   };
21907   RegexpCommonnetCIDR = buildPerlPackage {
21908     pname = "Regexp-Common-net-CIDR";
21909     version = "0.03";
21910     src = fetchurl {
21911       url = "mirror://cpan/authors/id/B/BP/BPS/Regexp-Common-net-CIDR-0.03.tar.gz";
21912       hash = "sha256-OWBqV6qyDU9EaDAPLsP6KrVX/MnLeIDsfG4H2AFi2jM=";
21913     };
21914     propagatedBuildInputs = [ RegexpCommon ];
21915     meta = {
21916       description = "Provide patterns for CIDR blocks";
21917       license = with lib.licenses; [ artistic1 gpl1Plus ];
21918     };
21919   };
21921   RegexpCommontime = buildPerlPackage {
21922     pname = "Regexp-Common-time";
21923     version = "0.16";
21924     src = fetchurl {
21925       url = "mirror://cpan/authors/id/M/MA/MANWAR/Regexp-Common-time-0.16.tar.gz";
21926       hash = "sha256-HIEHpQq1XHK/ePsRbJGIxM3xYsGGwVhsH5qu5V/xSso=";
21927     };
21928     propagatedBuildInputs = [ RegexpCommon ];
21929     meta = {
21930       description = "Date and time regexps";
21931       homepage = "https://github.com/manwar/Regexp-Common-time";
21932       license = with lib.licenses; [ artistic2 mit bsd3 ];
21933       maintainers = [ maintainers.artturin ];
21934     };
21935   };
21937   RegexpGrammars = buildPerlModule {
21938     pname = "Regexp-Grammars";
21939     version = "1.058";
21940     src = fetchurl {
21941       url = "mirror://cpan/authors/id/D/DC/DCONWAY/Regexp-Grammars-1.058.tar.gz";
21942       hash = "sha256-6ojVjiUWdPrjm0n007U0LqzLj8tVhWzTBKoaX/PUHJI=";
21943     };
21944     meta = {
21945       description = "Add grammatical parsing features to Perl 5.10 regexes";
21946       license = with lib.licenses; [ artistic1 gpl1Plus ];
21947     };
21948   };
21950   RegexpIPv6 = buildPerlPackage {
21951     pname = "Regexp-IPv6";
21952     version = "0.03";
21953     src = fetchurl {
21954       url = "mirror://cpan/authors/id/S/SA/SALVA/Regexp-IPv6-0.03.tar.gz";
21955       hash = "sha256-1ULRfXXOk2Md6LohVtoOC1inVcQJzUoNJ6OHOiZxLOI=";
21956     };
21957     meta = {
21958       description = "Regular expression for IPv6 addresses";
21959       license = with lib.licenses; [ artistic1 gpl1Plus ];
21960     };
21961   };
21963   RegexpParser = buildPerlPackage {
21964     pname = "Regexp-Parser";
21965     version = "0.23";
21966     src = fetchurl {
21967       url = "mirror://cpan/authors/id/T/TO/TODDR/Regexp-Parser-0.23.tar.gz";
21968       hash = "sha256-9znauN8rBqrlxI+ZcSUbc3BEZKMtB9jQJfPA+GlUTok=";
21969     };
21970     meta = {
21971       description = "Base class for parsing regexes";
21972       homepage = "https://wiki.github.com/toddr/Regexp-Parser";
21973       license = with lib.licenses; [ artistic1 gpl1Plus ];
21974     };
21975   };
21977   RegexpTrie = buildPerlPackage {
21978     pname = "Regexp-Trie";
21979     version = "0.02";
21980     src = fetchurl {
21981       url = "mirror://cpan/authors/id/D/DA/DANKOGAI/Regexp-Trie-0.02.tar.gz";
21982       hash = "sha256-+yv5TtjbwfSpXZ/I9xDLZ7P3lsbvycS7TCz6Prqhxfo=";
21983     };
21984     meta = {
21985       description = "Builds trie-ized regexp";
21986       license = with lib.licenses; [ artistic1 gpl1Plus ];
21987     };
21988   };
21990   RESTClient = buildPerlPackage {
21991     pname = "REST-Client";
21992     version = "281";
21993     src = fetchurl {
21994       url = "mirror://cpan/authors/id/A/AK/AKHUETTEL/REST-Client-281.tar.gz";
21995       hash = "sha256-+hDSGgA35oJgHv5mc4p1j/dSEJSqASKek8iIpnmyyPY=";
21996     };
21997     propagatedBuildInputs = [ LWPProtocolHttps ];
21998     meta = {
21999       description = "A simple client for interacting with RESTful http/https resources";
22000       homepage = "https://github.com/milescrawford/cpan-rest-client";
22001       license = with lib.licenses; [ artistic1 gpl1Plus ];
22002     };
22003   };
22005   RESTUtils = buildPerlModule {
22006     pname = "REST-Utils";
22007     version = "0.6";
22008     src = fetchurl {
22009       url = "mirror://cpan/authors/id/J/JA/JALDHAR/REST-Utils-0.6.tar.gz";
22010       hash = "sha256-1OlK3YetMf71h8RxFceIx88+EiyS85YyWuLmEsZwuf0=";
22011     };
22012     buildInputs = [ TestLongString TestWWWMechanize TestWWWMechanizeCGI ];
22013     meta = {
22014       description = "Utility functions for REST applications";
22015       homepage = "https://jaldhar.github.com/REST-Utils";
22016       license = with lib.licenses; [ artistic1 gpl1Plus ];
22017     };
22018   };
22020   RpcXML = buildPerlPackage {
22021     pname = "RPC-XML";
22022     version = "0.82";
22023     src = fetchurl {
22024       url = "mirror://cpan/authors/id/R/RJ/RJRAY/RPC-XML-0.82.tar.gz";
22025       hash = "sha256-UnnrDRNsUz/4l/aTTDqtbyBQS5l/smBuUsXbvZJ1jnM=";
22026     };
22027     propagatedBuildInputs = [ XMLParser ];
22028     doCheck = false;
22029     meta = {
22030       description = "Data, client and server classes for XML-RPC";
22031       homepage = "https://github.com/rjray/rpc-xml";
22032       license = with lib.licenses; [ artistic1 gpl1Plus ];
22033       mainProgram = "make_method";
22034     };
22035   };
22037   ReturnValue = buildPerlPackage {
22038     pname = "Return-Value";
22039     version = "1.666005";
22040     src = fetchurl {
22041       url = "mirror://cpan/authors/id/R/RJ/RJBS/Return-Value-1.666005.tar.gz";
22042       hash = "sha256-jiJgqWUx6TaGIAuciFDr4AXYjONp/2vHD/GnQFt1UKw=";
22043     };
22044     meta = {
22045       description = "Create context-sensitive return values";
22046       license = with lib.licenses; [ artistic1 gpl1Plus ];
22047     };
22048   };
22050   RoleBasic = buildPerlModule {
22051     pname = "Role-Basic";
22052     version = "0.13";
22053     src = fetchurl {
22054       url = "mirror://cpan/authors/id/O/OV/OVID/Role-Basic-0.13.tar.gz";
22055       hash = "sha256-OKCVnvnxk/925ywyWp6SEbxIaGib0OKwBXePU/i282o=";
22056     };
22057     meta = {
22058       description = "Just roles. Nothing else";
22059       license = with lib.licenses; [ artistic1 gpl1Plus ];
22060     };
22061   };
22063   RoleHasMessage = buildPerlPackage {
22064     pname = "Role-HasMessage";
22065     version = "0.007";
22066     src = fetchurl {
22067       url = "mirror://cpan/authors/id/R/RJ/RJBS/Role-HasMessage-0.007.tar.gz";
22068       hash = "sha256-XiZ6TXYgs2hIEgTIjqIES4sqWP+LBVd/JxeydUwEFM4=";
22069     };
22070     propagatedBuildInputs = [ MooseXRoleParameterized StringErrf ];
22071     meta = {
22072       description = "A thing with a message method";
22073       homepage = "https://github.com/rjbs/Role-HasMessage";
22074       license = with lib.licenses; [ artistic1 gpl1Plus ];
22075     };
22076   };
22078   RoleHooks = buildPerlPackage {
22079     pname = "Role-Hooks";
22080     version = "0.008";
22081     src = fetchurl {
22082       url = "mirror://cpan/authors/id/T/TO/TOBYINK/Role-Hooks-0.008.tar.gz";
22083       hash = "sha256-KNZuoKjcMGt22oP/CHlJPYCPcxhbz5xO03LzlG+1Q+w=";
22084     };
22085     buildInputs = [ TestRequires ];
22086     propagatedBuildInputs = [ ClassMethodModifiers ];
22087     meta = {
22088       homepage = "https://metacpan.org/release/Role-Hooks";
22089       description = "Role callbacks";
22090       license = with lib.licenses; [ artistic1 gpl1Plus ];
22091     };
22092   };
22094   RoleIdentifiable = buildPerlPackage {
22095     pname = "Role-Identifiable";
22096     version = "0.009";
22097     src = fetchurl {
22098       url = "mirror://cpan/authors/id/R/RJ/RJBS/Role-Identifiable-0.009.tar.gz";
22099       hash = "sha256-WnNen3F3+euuBH63uuKbfsKewCCuN2N66lNQ0wwIe3Y=";
22100     };
22101     propagatedBuildInputs = [ Moose ];
22102     meta = {
22103       description = "A thing you can identify somehow";
22104       homepage = "https://github.com/rjbs/Role-Identifiable";
22105       license = with lib.licenses; [ artistic1 gpl1Plus ];
22106     };
22107   };
22109   RoleTiny = buildPerlPackage {
22110     pname = "Role-Tiny";
22111     version = "2.002004";
22112     src = fetchurl {
22113       url = "mirror://cpan/authors/id/H/HA/HAARG/Role-Tiny-2.002004.tar.gz";
22114       hash = "sha256-173unhOKT4OqUtCpgWJWRL2of/FmQt+oRdy0TZokK0U=";
22115     };
22116     meta = {
22117       description = "Roles: a nouvelle cuisine portion size slice of Moose";
22118       license = with lib.licenses; [ artistic1 gpl1Plus ];
22119     };
22120   };
22122   RPCEPCService = buildPerlModule {
22123     pname = "RPC-EPC-Service";
22124     version = "0.0.11";
22125     src = fetchurl {
22126       url = "mirror://cpan/authors/id/K/KI/KIWANAMI/RPC-EPC-Service-v0.0.11.tar.gz";
22127       hash = "sha256-l19BNDZSWPtH+pIZGQU1E625EB8r1CD87+NF8gkSi+M=";
22128     };
22129     propagatedBuildInputs = [ AnyEvent DataSExpression ];
22130     meta = {
22131       description = "An Asynchronous Remote Procedure Stack";
22132       license = with lib.licenses; [ artistic1 gpl1Plus ];
22133     };
22134   };
22136     RPM2 = buildPerlModule {
22137     pname = "RPM2";
22138     version = "1.4";
22139     src = fetchurl {
22140       url = "mirror://cpan/authors/id/L/LK/LKUNDRAK/RPM2-1.4.tar.gz";
22141       hash = "sha256-XstCqmkyTm9AiKv64HMTkG5aq/L0bxIE8/HeWRVbtjY=";
22142     };
22143     nativeBuildInputs = [ pkgs.pkg-config ];
22144     buildInputs = [ pkgs.rpm ];
22145     doCheck = false; # Tries to open /var/lib/rpm
22146     meta = {
22147       description = "Perl bindings for the RPM Package Manager API";
22148       license = with lib.licenses; [ artistic1 gpl1Plus ];
22149       platforms = lib.platforms.linux;
22150     };
22151   };
22153   RSSParserLite = buildPerlPackage {
22154     pname = "RSS-Parser-Lite";
22155     version = "0.12";
22156     src = fetchurl {
22157       url = "mirror://cpan/authors/id/T/TF/TFPBL/RSS-Parser-Lite-0.12.tar.gz";
22158       hash = "sha256-idw0vKixqp/uC8QK7d5eLBYCL8eYssOryH3gczG5lbk=";
22159     };
22160     propagatedBuildInputs = [ locallib ];
22161     doCheck = false; /* creates files in HOME */
22162     meta = {
22163       description = "A simple pure perl RSS parser";
22164       license = with lib.licenses; [ artistic1 gpl1Plus ];
22165     };
22166   };
22168   RTClientREST = buildPerlModule {
22169     pname = "RT-Client-REST";
22170     version = "0.72";
22171     src = fetchurl {
22172       url = "mirror://cpan/authors/id/D/DJ/DJZORT/RT-Client-REST-0.72.tar.gz";
22173       hash = "sha256-KPIBWKD3sfNLdM423lvdVimeuUAUBHLISXyVNYIm/bM=";
22174     };
22175     buildInputs = [ CGI HTTPServerSimple TestException ];
22176     propagatedBuildInputs = [ DateTimeFormatDateParse Error LWP ParamsValidate ];
22177     meta = {
22178       description = "Client for RT using REST API";
22179       homepage = "https://github.com/RT-Client-REST/RT-Client-REST";
22180       license = with lib.licenses; [ artistic1 gpl1Plus ];
22181     };
22182   };
22184   SafeIsa = buildPerlPackage {
22185     pname = "Safe-Isa";
22186     version = "1.000010";
22187     src = fetchurl {
22188       url = "mirror://cpan/authors/id/E/ET/ETHER/Safe-Isa-1.000010.tar.gz";
22189       hash = "sha256-h/QUiqD/HV5lJyMyLqt9r6OAHJZ9b5GskUejxGe4pmo=";
22190     };
22191     meta = {
22192       description = "Call isa, can, does and DOES safely on things that may not be objects";
22193       license = with lib.licenses; [ artistic1 gpl1Plus ];
22194     };
22195   };
22197   ScalarListUtils = buildPerlPackage {
22198     pname = "Scalar-List-Utils";
22199     version = "1.63";
22200     src = fetchurl {
22201       url = "mirror://cpan/authors/id/P/PE/PEVANS/Scalar-List-Utils-1.63.tar.gz";
22202       hash = "sha256-yvvfIS9oJ9yaDdO1e27lDoYFhtcZgiijMmLVXFWesqk=";
22203     };
22204     meta = {
22205       description = "Common Scalar and List utility subroutines";
22206       license = with lib.licenses; [ artistic1 gpl1Plus ];
22207     };
22208   };
22210   ScalarString = buildPerlModule {
22211     pname = "Scalar-String";
22212     version = "0.003";
22213     src = fetchurl {
22214       url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Scalar-String-0.003.tar.gz";
22215       hash = "sha256-9UoXybeHE7AsxDrfrfYLSUZ+djTTExfouenpfCbWi1I=";
22216     };
22217     meta = {
22218       description = "String aspects of scalars";
22219       license = with lib.licenses; [ artistic1 gpl1Plus ];
22220     };
22221   };
22223   ScalarType = buildPerlPackage {
22224     pname = "Scalar-Type";
22225     version = "0.3.2";
22226     src = fetchurl {
22227       url = "mirror://cpan/authors/id/D/DC/DCANTRELL/Scalar-Type-0.3.2.tar.gz";
22228       hash = "sha256-WQyv6gz1RZmSoEiFYsDb1vnfdYtfAH8OQ6uhMLRe7oY=";
22229     };
22230     propagatedBuildInputs = [ CaptureTiny TestException ];
22231     meta = {
22232       description = "Figure out what type a scalar is";
22233       license = with lib.licenses; [ artistic1 gpl2Only ];
22234     };
22235   };
22237   SCGI = buildPerlModule {
22238     pname = "SCGI";
22239     version = "0.6";
22240     src = fetchurl {
22241       url = "mirror://cpan/authors/id/V/VI/VIPERCODE/SCGI-0.6.tar.gz";
22242       hash = "sha256-WLeMWvTuReQ38Hro87DZRckf0sAlFW7pFtgRWA+R2aQ=";
22243     };
22244     preConfigure = "export HOME=$(mktemp -d)";
22245     meta = {
22246       description = "This module is for implementing an SCGI interface for an application server";
22247       license = with lib.licenses; [ artistic1 gpl1Plus ];
22248     };
22249   };
22251   ScopeGuard = buildPerlPackage {
22252     pname = "Scope-Guard";
22253     version = "0.21";
22254     src = fetchurl {
22255       url = "mirror://cpan/authors/id/C/CH/CHOCOLATE/Scope-Guard-0.21.tar.gz";
22256       hash = "sha256-jJsb6lxWRI4sP63GXQW+nkaQo4I6gPOdLxD92Pd30ng=";
22257     };
22258     meta = {
22259       description = "Lexically-scoped resource management";
22260       license = with lib.licenses; [ artistic1 gpl1Plus ];
22261     };
22262   };
22264   ScopeUpper = buildPerlPackage {
22265     pname = "Scope-Upper";
22266     version = "0.34";
22267     src = fetchurl {
22268       url = "mirror://cpan/authors/id/V/VP/VPIT/Scope-Upper-0.34.tar.gz";
22269       hash = "sha256-WB2LxRDevQxFal/HlSy3E4rmZ78486d+ltdz3DGWpB4=";
22270     };
22271     meta = {
22272       description = "Act on upper scopes";
22273       homepage = "https://search.cpan.org/dist/Scope-Upper";
22274       license = with lib.licenses; [ artistic1 gpl1Plus ];
22275     };
22276   };
22278   SDL = buildPerlModule {
22279     pname = "SDL";
22280     version = "2.548";
22281     src = fetchurl {
22282       url = "mirror://cpan/authors/id/F/FR/FROGGS/SDL-2.548.tar.gz";
22283       hash = "sha256-JSoZK/qcIHCkiDcH0TnDpF2cRRjM1moeaZtbeVm9T7U=";
22284     };
22285     patches = [
22286       # https://github.com/PerlGameDev/SDL/pull/304
22287       ../development/perl-modules/sdl-modern-perl.patch
22288     ];
22289     perlPreHook = "export LD=$CC";
22290     preCheck = "rm t/core_audiospec.t";
22291     buildInputs = [ pkgs.SDL pkgs.SDL_gfx pkgs.SDL_mixer pkgs.SDL_image pkgs.SDL_ttf pkgs.SDL_Pango pkgs.SDL_net AlienSDL CaptureTiny TestDeep TestDifferences TestException TestMost TestWarn ];
22292     propagatedBuildInputs = [ FileShareDir TieSimple ];
22293     meta = {
22294       description = "SDL bindings to Perl";
22295       license = with lib.licenses; [ lgpl21Plus ];
22296     };
22297   };
22299   SearchXapian = buildPerlPackage rec {
22300     pname = "Search-Xapian";
22301     version = "1.2.25.5";
22302     src = fetchurl {
22303       url = "mirror://cpan/authors/id/O/OL/OLLY/Search-Xapian-1.2.25.5.tar.gz";
22304       hash = "sha256-IE+9xxLWcR/6tmjB9M/AB7Y5qftkrX4ZyyD8EKkQuos=";
22305     };
22306     buildInputs = [ pkgs.xapian DevelLeak ];
22307     meta = {
22308       description = "Perl XS frontend to the Xapian C++ search library";
22309       homepage = "https://xapian.org";
22310       license = with lib.licenses; [ artistic1 gpl1Plus ];
22311     };
22312   };
22314   SerealDecoder = buildPerlPackage {
22315     pname = "Sereal-Decoder";
22316     version = "5.004";
22317     src = fetchurl {
22318       url = "mirror://cpan/authors/id/Y/YV/YVES/Sereal-Decoder-5.004.tar.gz";
22319       hash = "sha256-aO8DFNh9Gm5guw9m/PQ+ssrN6xdUQy9eJeeE450+Z4Q=";
22320     };
22321     buildInputs = [ TestDeep TestDifferences TestLongString TestWarn ];
22322     preBuild = "ls";
22323     meta = {
22324       description = "Fast, compact, powerful binary deserialization";
22325       homepage = "https://github.com/Sereal/Sereal";
22326       license = with lib.licenses; [ artistic1 gpl1Plus ];
22327       maintainers = [ maintainers.thoughtpolice ];
22328     };
22329   };
22331   SerealEncoder = buildPerlPackage {
22332     pname = "Sereal-Encoder";
22333     version = "5.004";
22334     src = fetchurl {
22335       url = "mirror://cpan/authors/id/Y/YV/YVES/Sereal-Encoder-5.004.tar.gz";
22336       hash = "sha256-XlqGzNMtrjTtgJMuy+XGjil1K13g6bCnk6t+sspVyxs=";
22337     };
22338     buildInputs = [ SerealDecoder TestDeep TestDifferences TestLongString TestWarn ];
22339     meta = {
22340       description = "Fast, compact, powerful binary serialization";
22341       homepage = "https://github.com/Sereal/Sereal";
22342       license = with lib.licenses; [ artistic1 gpl1Plus ];
22343       maintainers = [ maintainers.thoughtpolice ];
22344     };
22345   };
22347   Sereal = buildPerlPackage {
22348     pname = "Sereal";
22349     version = "5.004";
22350     src = fetchurl {
22351       url = "mirror://cpan/authors/id/Y/YV/YVES/Sereal-5.004.tar.gz";
22352       hash = "sha256-nCW7euS9c20ksa0dk9dzlbDGXKh0HiZr/Ay+VCJh128=";
22353     };
22354     buildInputs = [ TestDeep TestLongString TestWarn ];
22355     propagatedBuildInputs = [ SerealDecoder SerealEncoder ];
22356     meta = {
22357       description = "Fast, compact, powerful binary (de-)serialization";
22358       license = with lib.licenses; [ artistic1 gpl1Plus ];
22359       maintainers = [ maintainers.thoughtpolice ];
22360     };
22361   };
22363   DeviceSerialPort = buildPerlPackage rec {
22364     pname = "Device-SerialPort";
22365     version = "1.04";
22366     src = fetchurl {
22367       url = "mirror://cpan/authors/id/C/CO/COOK/Device-SerialPort-1.04.tar.gz";
22368       hash = "sha256-05JWfLObTqYGwOCsr9jtcjIDEbmVM27OX878+bFQ6dc=";
22369     };
22370     meta = {
22371       description = "Linux/POSIX emulation of Win32::SerialPort functions.";
22372       license = with lib.licenses; [ artistic1 gpl1Plus ];
22373       mainProgram = "modemtest";
22374     };
22375   };
22377   ServerStarter = buildPerlModule {
22378     pname = "Server-Starter";
22379     version = "0.35";
22380     src = fetchurl {
22381       url = "mirror://cpan/authors/id/K/KA/KAZUHO/Server-Starter-0.35.tar.gz";
22382       hash = "sha256-Z23A1s/0ZIU4Myxjwy+4itCe2GghPqnmLj8Z+tQbnEA=";
22383     };
22384     buildInputs = [ TestRequires TestSharedFork TestTCP ];
22385     doCheck = false; # Tests are slow and unstable
22386     meta = {
22387       description = "A superdaemon for hot-deploying server programs";
22388       homepage = "https://github.com/kazuho/p5-Server-Starter";
22389       license = with lib.licenses; [ artistic1 gpl1Plus ];
22390       mainProgram = "start_server";
22391     };
22392   };
22394   SessionToken = buildPerlPackage rec {
22395     pname = "Session-Token";
22396     version = "1.503";
22397     src = fetchurl {
22398       url = "mirror://cpan/authors/id/F/FR/FRACTAL/Session-Token-1.503.tar.gz";
22399       hash = "sha256-MsPflu9FXHGHA2Os2VDdxPvISMWU9LxVshtEz5efeaE=";
22400     };
22401     meta = {
22402       description = "Secure, efficient, simple random session token generation";
22403       homepage = "https://github.com/hoytech/Session-Token";
22404       license = with lib.licenses; [ artistic1 gpl1Plus ];
22405       maintainers = [ maintainers.sgo ];
22406     };
22407   };
22409   SetInfinite = buildPerlPackage {
22410     pname = "Set-Infinite";
22411     version = "0.65";
22412     src = fetchurl {
22413       url = "mirror://cpan/authors/id/F/FG/FGLOCK/Set-Infinite-0.65.tar.gz";
22414       hash = "sha256-B7yIBzRJLeQLSjqLWjMXYvZOabRikCn9mp01eyW4fh8=";
22415     };
22416     meta = {
22417       description = "Infinite Sets math";
22418       license = with lib.licenses; [ artistic1 gpl1Plus ];
22419     };
22420   };
22422   SetIntSpan = buildPerlPackage {
22423     pname = "Set-IntSpan";
22424     version = "1.19";
22425     src = fetchurl {
22426       url = "mirror://cpan/authors/id/S/SW/SWMCD/Set-IntSpan-1.19.tar.gz";
22427       hash = "sha256-EbdUmxPsXYfMaV3Ux3fNApg91f6YZgEod/tTD0iz39A=";
22428     };
22430     meta = {
22431       description = "Manages sets of integers, newsrc style";
22432       license = with lib.licenses; [ artistic1 gpl1Plus ];
22433     };
22434   };
22436   SetObject = buildPerlPackage {
22437     pname = "Set-Object";
22438     version = "1.42";
22439     src = fetchurl {
22440       url = "mirror://cpan/authors/id/R/RU/RURBAN/Set-Object-1.42.tar.gz";
22441       hash = "sha256-0YxaiiM+q70CBs89pbAPzdezf+vxKpPcw9HAJub97EU=";
22442     };
22443     meta = {
22444       description = "Unordered collections (sets) of Perl Objects";
22445       license = with lib.licenses; [ artistic2 ];
22446     };
22447   };
22449   SetScalar = buildPerlPackage {
22450     pname = "Set-Scalar";
22451     version = "1.29";
22452     src = fetchurl {
22453       url = "mirror://cpan/authors/id/D/DA/DAVIDO/Set-Scalar-1.29.tar.gz";
22454       hash = "sha256-o9wVJvPd5y08ZOoAAHuGzmCM3Nk1Z89ubkLcEP3EUR0=";
22455     };
22456     meta = {
22457       description = "Basic set operations";
22458       license = with lib.licenses; [ artistic1 gpl1Plus ];
22459     };
22460   };
22462   SmartComments = buildPerlPackage rec {
22463     pname = "Smart-Comments";
22464     version = "1.06";
22465     src = fetchurl {
22466       url = "mirror://cpan/authors/id/N/NE/NEILB/Smart-Comments-1.06.tar.gz";
22467       hash = "sha256-3PijEhNKfGuCkmoBFdk7aSRypmLSjNw6m98omEranuM=";
22468     };
22469     meta = {
22470       description = "Comments that do more than just sit there";
22471       homepage = "https://github.com/neilb/Smart-Comments";
22472       license = with lib.licenses; [ artistic1 gpl1Plus ];
22473       maintainers = [ maintainers.sgo ];
22474     };
22475   };
22477   SGMLSpm = buildPerlModule {
22478     pname = "SGMLSpm";
22479     version = "1.1";
22480     src = fetchurl {
22481       url = "mirror://cpan/authors/id/R/RA/RAAB/SGMLSpm-1.1.tar.gz";
22482       hash = "sha256-VQySRSkcjfIkL36I95IaD2NsfuySxkRBjn2Jz+pwsr0=";
22483     };
22484     meta = {
22485       description = "Library for parsing the output from SGMLS and NSGMLS parsers";
22486       license = with lib.licenses; [ gpl2Plus ];
22487       mainProgram = "sgmlspl.pl";
22488     };
22489   };
22491   SignalMask = buildPerlPackage {
22492     pname = "Signal-Mask";
22493     version = "0.008";
22494     src = fetchurl {
22495       url = "mirror://cpan/authors/id/L/LE/LEONT/Signal-Mask-0.008.tar.gz";
22496       hash = "sha256-BD2ZW2sknZ68BMRn2zG7fdwuVfqgjohb2wULHyM2tz8=";
22497     };
22498     propagatedBuildInputs = [ IPCSignal ];
22499     meta = {
22500       description = "Signal masks made easy";
22501       license = with lib.licenses; [ artistic1 gpl1Plus ];
22502     };
22503   };
22505   SnowballNorwegian = buildPerlModule {
22506     pname = "Snowball-Norwegian";
22507     version = "1.2";
22508     src = fetchurl {
22509       url = "mirror://cpan/authors/id/A/AS/ASKSH/Snowball-Norwegian-1.2.tar.gz";
22510       hash = "sha256-Hc+NfyazdSCgENzVGXAU4KWDhe5muDtP3gfqtQrZ5Rg=";
22511     };
22512     meta = {
22513       description = "Porters stemming algorithm for norwegian";
22514       license = with lib.licenses; [ artistic1 gpl1Plus ];
22515       mainProgram = "stemmer-no.pl";
22516     };
22517   };
22519   SnowballSwedish = buildPerlModule {
22520     pname = "Snowball-Swedish";
22521     version = "1.2";
22522     src = fetchurl {
22523       url = "mirror://cpan/authors/id/A/AS/ASKSH/Snowball-Swedish-1.2.tar.gz";
22524       hash = "sha256-76qSNVhZj06IjZelEtYPvMRIHB+cXn3tUnWWKUVg/Ck=";
22525     };
22526     meta = {
22527       description = "Porters stemming algorithm for swedish";
22528       license = with lib.licenses; [ artistic1 gpl1Plus ];
22529       mainProgram = "stemmer-se.pl";
22530     };
22531   };
22533   SOAPLite = buildPerlPackage {
22534     pname = "SOAP-Lite";
22535     version = "1.27";
22536     src = fetchurl {
22537       url = "mirror://cpan/authors/id/P/PH/PHRED/SOAP-Lite-1.27.tar.gz";
22538       hash = "sha256-41kQa6saRaFgRKTC+ASfrQNOXe0VF5kLybX42G3d0wE=";
22539     };
22540     propagatedBuildInputs = [ ClassInspector IOSessionData LWPProtocolHttps TaskWeaken XMLParser ];
22541     buildInputs = [ TestWarn XMLParserLite ];
22542     nativeCheckInputs = [ HTTPDaemon ];
22543     meta = {
22544       description = "Perl's Web Services Toolkit";
22545       license = with lib.licenses; [ artistic1 gpl1Plus ];
22546     };
22547   };
22549   Socket6 = buildPerlPackage {
22550     pname = "Socket6";
22551     version = "0.29";
22552     src = fetchurl {
22553       url = "mirror://cpan/authors/id/U/UM/UMEMOTO/Socket6-0.29.tar.gz";
22554       hash = "sha256-RokV+joE3PZXT8lX7/SVkV4kVpQ0lwyR7o5OFFn8kRQ=";
22555     };
22556     setOutputFlags = false;
22557     buildInputs = [ pkgs.which ];
22558     patches = [ ../development/perl-modules/Socket6-sv_undef.patch ];
22559     meta = {
22560       description = "IPv6 related part of the C socket.h defines and structure manipulators";
22561       license = with lib.licenses; [ bsd3 ];
22562     };
22563   };
22565   SoftwareLicense = buildPerlPackage {
22566     pname = "Software-License";
22567     version = "0.104004";
22568     src = fetchurl {
22569       url = "mirror://cpan/authors/id/L/LE/LEONT/Software-License-0.104004.tar.gz";
22570       hash = "sha256-of2iTsh3UhmAlzgPuTAMFLV0gmJwzFgNr3UONYX8Jww=";
22571     };
22572     buildInputs = [ TryTiny ];
22573     propagatedBuildInputs = [ DataSection TextTemplate ];
22574     meta = {
22575       description = "Packages that provide templated software licenses";
22576       homepage = "https://github.com/Perl-Toolchain-Gang/Software-License";
22577       license = with lib.licenses; [ artistic1 gpl1Plus ];
22578     };
22579   };
22581   SoftwareLicenseCCpack = buildPerlPackage {
22582     pname = "Software-License-CCpack";
22583     version = "1.11";
22584     src = fetchurl {
22585       url = "mirror://cpan/authors/id/B/BB/BBYRD/Software-License-CCpack-1.11.tar.gz";
22586       hash = "sha256-WU9carwhbJXNRYd8Qd7FbSvDDh0DFq04VbCiqo5dU7E=";
22587     };
22588     propagatedBuildInputs = [ SoftwareLicense ];
22589     buildInputs = [ TestCheckDeps ];
22590     meta = {
22591       description = "Software::License pack for Creative Commons' licenses";
22592       homepage = "https://github.com/SineSwiper/Software-License-CCpack";
22593       license = with lib.licenses; [ lgpl3Plus ];
22594     };
22595   };
22597   SortKey = buildPerlPackage {
22598     pname = "Sort-Key";
22599     version = "1.33";
22600     src = fetchurl {
22601       url = "mirror://cpan/authors/id/S/SA/SALVA/Sort-Key-1.33.tar.gz";
22602       hash = "sha256-7WpMz6sJTJzRZPVkAk6YvSHZT0MSzKxNYkbSKzQIGs8=";
22603     };
22604     meta = {
22605       description = "The fastest way to sort anything in Perl";
22606       license = with lib.licenses; [ artistic1 gpl1Plus ];
22607     };
22608   };
22610   SortVersions = buildPerlPackage {
22611     pname = "Sort-Versions";
22612     version = "1.62";
22613     src = fetchurl {
22614       url = "mirror://cpan/authors/id/N/NE/NEILB/Sort-Versions-1.62.tar.gz";
22615       hash = "sha256-v18zB0BuviWBI38CWYLoyE9vZiXdd05FfAP4mU79Lqo=";
22616     };
22617     meta = {
22618       description = "A perl 5 module for sorting of revision-like numbers";
22619       license = with lib.licenses; [ artistic1 gpl1Plus ];
22620     };
22621   };
22623   Specio = buildPerlPackage {
22624     pname = "Specio";
22625     version = "0.48";
22626     src = fetchurl {
22627       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Specio-0.48.tar.gz";
22628       hash = "sha256-DIV5NYDxJ07wgXMHkTHRAfd7IqzOp6+oJVIC8IEWgrI=";
22629     };
22630     propagatedBuildInputs = [ DevelStackTrace EvalClosure MROCompat ModuleRuntime RoleTiny SubQuote TryTiny ];
22631     buildInputs = [ TestFatal TestNeeds ];
22632     meta = {
22633       description = "Type constraints and coercions for Perl";
22634       homepage = "https://metacpan.org/release/Specio";
22635       license = with lib.licenses; [ artistic2 ];
22636     };
22637   };
22639   SpecioLibraryPathTiny = buildPerlPackage {
22640     pname = "Specio-Library-Path-Tiny";
22641     version = "0.05";
22642     src = fetchurl {
22643       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Specio-Library-Path-Tiny-0.05.tar.gz";
22644       hash = "sha256-YN8Lubza6yxmoHi/bfmVTqT5Qz1stoCImULlQsfCelE=";
22645     };
22646     propagatedBuildInputs = [ PathTiny Specio ];
22647     buildInputs = [ Filepushd TestFatal ];
22648     meta = {
22649       description = "Path::Tiny types and coercions for Specio";
22650       homepage = "https://metacpan.org/release/Specio-Library-Path-Tiny";
22651       license = with lib.licenses; [ asl20 ];
22652     };
22653   };
22655   Spiffy = buildPerlPackage {
22656     pname = "Spiffy";
22657     version = "0.46";
22658     src = fetchurl {
22659       url = "mirror://cpan/authors/id/I/IN/INGY/Spiffy-0.46.tar.gz";
22660       hash = "sha256-j1hiCoQgJVxJtsQ8X/WAK9JeTwkkDFHlvysCKDPUHaM=";
22661     };
22662     meta = {
22663       description = "Spiffy Perl Interface Framework For You";
22664       license = with lib.licenses; [ artistic1 gpl1Plus ];
22665     };
22666   };
22668   SpreadsheetCSV = buildPerlPackage {
22669     pname = "Spreadsheet-CSV";
22670     version = "0.20";
22671     src = fetchurl {
22672       url = "mirror://cpan/authors/id/D/DD/DDICK/Spreadsheet-CSV-0.20.tar.gz";
22673       hash = "sha256-BwuyUqj+i5OKHOT8kFJfgz1OYZttRnOwrgojQI1RSrY=";
22674     };
22675     nativeBuildInputs = [ CGI ];
22676     propagatedBuildInputs = [ ArchiveZip SpreadsheetParseExcel TextCSV_XS XMLParser ];
22677     meta = {
22678       description = "Drop-in replacement for Text::CSV_XS with spreadsheet support";
22679       license = with lib.licenses; [ artistic1 gpl1Plus ];
22680     };
22681   };
22683   SpreadsheetParseExcel = buildPerlPackage {
22684     pname = "Spreadsheet-ParseExcel";
22685     version = "0.65";
22686     src = fetchurl {
22687       url = "mirror://cpan/authors/id/D/DO/DOUGW/Spreadsheet-ParseExcel-0.65.tar.gz";
22688       hash = "sha256-bsTLQpvVjYFkD+EhFvQ1xG9R/xBAxo8JzIt2gcFnW+w=";
22689     };
22690     propagatedBuildInputs = [ CryptRC4 DigestPerlMD5 IOStringy OLEStorage_Lite ];
22691     meta = {
22692       description = "Read information from an Excel file";
22693       homepage = "https://github.com/runrig/spreadsheet-parseexcel";
22694       license = with lib.licenses; [ artistic1 gpl1Plus ];
22695     };
22696   };
22698   SpreadsheetWriteExcel = buildPerlPackage {
22699     pname = "Spreadsheet-WriteExcel";
22700     version = "2.40";
22701     src = fetchurl {
22702       url = "mirror://cpan/authors/id/J/JM/JMCNAMARA/Spreadsheet-WriteExcel-2.40.tar.gz";
22703       hash = "sha256-41aq1oZs8TVzEmjuDpeaGXRDwVoEh46c8+gNAirWwH4=";
22704     };
22705     propagatedBuildInputs = [ OLEStorage_Lite ParseRecDescent ];
22706     meta = {
22707       description = "Write to a cross platform Excel binary file";
22708       license = with lib.licenses; [ artistic1 gpl1Plus ];
22709       mainProgram = "chartex";
22710     };
22711   };
22713   SpreadsheetXLSX = buildPerlPackage {
22714     pname = "Spreadsheet-XLSX";
22715     version = "0.17";
22716     src = fetchurl {
22717       url = "mirror://cpan/authors/id/A/AS/ASB/Spreadsheet-XLSX-0.17.tar.gz";
22718       hash = "sha256-M7d4knz/FjCQZbdOuMRpawNxZg0szf5FvkYFCSrO6XY=";
22719     };
22720     buildInputs = [ TestNoWarnings TestWarnings ];
22721     propagatedBuildInputs = [ ArchiveZip SpreadsheetParseExcel ];
22722     meta = {
22723       homepage = "https://github.com/asb-capfan/Spreadsheet-XLSX";
22724       description = "Perl extension for reading MS Excel 2007 files;";
22725       license = with lib.licenses; [ artistic1 gpl1Plus ];
22726     };
22727   };
22729   SQLAbstract = buildPerlPackage {
22730     pname = "SQL-Abstract";
22731     version = "2.000001";
22732     src = fetchurl {
22733       url = "mirror://cpan/authors/id/M/MS/MSTROUT/SQL-Abstract-2.000001.tar.gz";
22734       hash = "sha256-NaZCZiw0lCDUS+bg732HZep0PrEq0UOZqjojK7lObpo=";
22735     };
22736     buildInputs = [ DataDumperConcise TestDeep TestException TestWarn ];
22737     propagatedBuildInputs = [ HashMerge MROCompat Moo ];
22738     meta = {
22739       description = "Generate SQL from Perl data structures";
22740       license = with lib.licenses; [ artistic1 gpl1Plus ];
22741     };
22742   };
22744   SQLAbstractClassic = buildPerlPackage {
22745     pname = "SQL-Abstract-Classic";
22746     version = "1.91";
22747     src = fetchurl {
22748       url = "mirror://cpan/authors/id/R/RI/RIBASUSHI/SQL-Abstract-Classic-1.91.tar.gz";
22749       hash = "sha256-Tj0d/QlbISMmhYa7BrhpKepXE4jU6UGszL3NoeEI7yg=";
22750     };
22751     buildInputs = [ TestDeep TestException TestWarn ];
22752     propagatedBuildInputs = [ SQLAbstract ];
22753     meta = {
22754       description = "Generate SQL from Perl data structures";
22755       license = with lib.licenses; [ artistic1 gpl1Plus ];
22756     };
22757   };
22759   SQLAbstractLimit = buildPerlPackage {
22760     pname = "SQL-Abstract-Limit";
22761     version = "0.143";
22762     src = fetchurl {
22763       url = "mirror://cpan/authors/id/A/AS/ASB/SQL-Abstract-Limit-0.143.tar.gz";
22764       hash = "sha256-0Yr9eIk72DC6JGXArmozQlRgFZADhk3tO1rc9RGJyuk=";
22765     };
22766     propagatedBuildInputs = [ DBI SQLAbstract ];
22767     buildInputs = [ TestDeep TestException ];
22768     meta = {
22769       description = "Portable LIMIT emulation";
22770       license = with lib.licenses; [ artistic1 gpl1Plus ];
22771     };
22772   };
22774   SQLAbstractPg = buildPerlPackage {
22775     pname = "SQL-Abstract-Pg";
22776     version = "1.0";
22777     src = fetchurl {
22778       url = "mirror://cpan/authors/id/S/SR/SRI/SQL-Abstract-Pg-1.0.tar.gz";
22779       hash = "sha256-Pic2DfN7jYjzxS2smwNJP5vT7v9sjYj5sIbScRVT9Uc=";
22780     };
22781     buildInputs = [ TestDeep ];
22782     propagatedBuildInputs = [ SQLAbstract ];
22783     meta = {
22784       description = "PostgreSQL features for SQL::Abstract";
22785       homepage = "https://mojolicious.org";
22786       license = with lib.licenses; [ artistic2 ];
22787     };
22788   };
22790   SQLSplitStatement = buildPerlPackage {
22791     pname = "SQL-SplitStatement";
22792     version = "1.00023";
22793     src = fetchurl {
22794       url = "mirror://cpan/authors/id/V/VE/VEESH/SQL-SplitStatement-1.00023.tar.gz";
22795       hash = "sha256-GnSEIM0q00HCUk7xGFt273Fylp8XqeS6tvQ3bw3p814=";
22796     };
22797     buildInputs = [ TestDifferences TestException ];
22798     propagatedBuildInputs = [ ClassAccessor ListMoreUtils RegexpCommon ];
22799     meta = {
22800       description = "Split any SQL code into atomic statements";
22801       license = with lib.licenses; [ artistic1 gpl1Plus ];
22802       mainProgram = "sql-split";
22803     };
22804   };
22806   SQLStatement = buildPerlPackage {
22807     pname = "SQL-Statement";
22808     version = "1.414";
22809     src = fetchurl {
22810       url = "mirror://cpan/authors/id/R/RE/REHSACK/SQL-Statement-1.414.tar.gz";
22811       hash = "sha256-3ei9z6ahNu7doGUZug8++uwIXDnbDfnEctwOxs14Gkk=";
22812     };
22813     buildInputs = [ MathBaseConvert TestDeep TextSoundex ];
22814     propagatedBuildInputs = [ Clone ModuleRuntime ParamsUtil ];
22815     meta = {
22816       description = "SQL parsing and processing engine";
22817       license = with lib.licenses; [ artistic1 gpl1Plus ];
22818     };
22819   };
22821   SQLTokenizer = buildPerlPackage {
22822     pname = "SQL-Tokenizer";
22823     version = "0.24";
22824     src = fetchurl {
22825       url = "mirror://cpan/authors/id/I/IZ/IZUT/SQL-Tokenizer-0.24.tar.gz";
22826       hash = "sha256-+qhpvEJlc2QVNqCfU1AuVA1ePjrWp6oaxiXT9pdrQuE=";
22827     };
22828     meta = {
22829       description = "A simple SQL tokenizer";
22830       license = with lib.licenses; [ artistic1 gpl1Plus ];
22831     };
22832   };
22834   SQLTranslator = buildPerlPackage {
22835     pname = "SQL-Translator";
22836     version = "1.63";
22837     src = fetchurl {
22838       url = "mirror://cpan/authors/id/V/VE/VEESH/SQL-Translator-1.63.tar.gz";
22839       hash = "sha256-WIWwTJNJi+MqGX3JcjlHUdXeYJNBiTqWZW3oikJgMTM=";
22840     };
22841     buildInputs = [ FileShareDirInstall JSONMaybeXS TestDifferences TestException XMLWriter YAML ];
22842     propagatedBuildInputs = [ CarpClan DBI FileShareDir Moo PackageVariant ParseRecDescent TryTiny GraphViz GD ];
22844     postPatch = ''
22845       patchShebangs script
22846     '';
22848     nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang;
22849     postInstall = lib.optionalString stdenv.isDarwin ''
22850       for file in $out/bin/*; do
22851         shortenPerlShebang $file
22852       done
22853     '';
22855     meta = {
22856       description = "SQL DDL transformations and more";
22857       license = with lib.licenses; [ artistic1 gpl1Plus ];
22858       mainProgram = "sqlt";
22859     };
22860   };
22862   PackageVariant = buildPerlPackage {
22863     pname = "Package-Variant";
22864     version = "1.003002";
22865     src = fetchurl {
22866       url = "mirror://cpan/authors/id/M/MS/MSTROUT/Package-Variant-1.003002.tar.gz";
22867       hash = "sha256-su2EnS9M3WZGdRLao/FDJm1t+BDF+ukXWyUsV7wVNtw=";
22868     };
22869     buildInputs = [ TestFatal ];
22870     propagatedBuildInputs = [ ImportInto strictures ];
22871     meta = {
22872       description = "Parameterizable packages";
22873       license = with lib.licenses; [ artistic1 gpl1Plus ];
22874     };
22875   };
22877   SortNaturally = buildPerlPackage {
22878     pname = "Sort-Naturally";
22879     version = "1.03";
22880     src = fetchurl {
22881       url = "mirror://cpan/authors/id/B/BI/BINGOS/Sort-Naturally-1.03.tar.gz";
22882       hash = "sha256-6qscXIdXWngmCJMEqx+P+n8Y5s2LOTdiPpmOhl7B50Y=";
22883     };
22884     meta = {
22885       description = "Sort lexically, but sort numeral parts numerically";
22886       license = with lib.licenses; [ artistic1 gpl1Plus ];
22887     };
22888   };
22890   Starlet = buildPerlPackage {
22891     pname = "Starlet";
22892     version = "0.31";
22893     src = fetchurl {
22894       url = "mirror://cpan/authors/id/K/KA/KAZUHO/Starlet-0.31.tar.gz";
22895       hash = "sha256-uWA7jmKIDLRYL2p5Oer+xl5u/T2QDyx900Ll9MaNYtg=";
22896     };
22897     buildInputs = [ LWP TestSharedFork TestTCP ];
22898     propagatedBuildInputs = [ ParallelPrefork Plack ServerStarter ];
22899     doCheck = !stdenv.isDarwin;
22900     meta = {
22901       description = "A simple, high-performance PSGI/Plack HTTP server";
22902       license = with lib.licenses; [ artistic1 gpl1Plus ];
22903     };
22904   };
22906   Starman = buildPerlModule {
22907     pname = "Starman";
22908     version = "0.4017";
22909     src = fetchurl {
22910       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Starman-0.4017.tar.gz";
22911       hash = "sha256-b/q5FfMj9gCJ4+v4Urm5cH1pFyZt+K/XNw+sBL/f7k4=";
22912     };
22913     buildInputs = [ LWP ModuleBuildTiny TestRequires TestTCP ];
22914     nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang;
22915     propagatedBuildInputs = [ DataDump HTTPParserXS NetServer Plack NetServerSSPrefork IOSocketINET6 ];
22916     postInstall = lib.optionalString stdenv.isDarwin ''
22917       shortenPerlShebang $out/bin/starman
22918     '';
22920     doCheck = false; # binds to various TCP ports
22921     meta = {
22922       description = "High-performance preforking PSGI/Plack web server";
22923       homepage = "https://github.com/miyagawa/Starman";
22924       license = with lib.licenses; [ artistic1 gpl1Plus ];
22925       mainProgram = "starman";
22926     };
22927   };
22929   StatisticsBasic = buildPerlPackage {
22930     pname = "Statistics-Basic";
22931     version = "1.6611";
22932     src = fetchurl {
22933       url = "mirror://cpan/authors/id/J/JE/JETTERO/Statistics-Basic-1.6611.tar.gz";
22934       hash = "sha256-aFXOVhX9Phr0z8RRqb9E/ymjFAtOcTADTx8K8lEalPs=";
22935     };
22936     propagatedBuildInputs = [ NumberFormat ];
22937     meta = {
22938       description = "A collection of very basic statistics modules";
22939       license = with lib.licenses; [ lgpl2Only ];
22940     };
22941   };
22943   StatisticsCaseResampling = buildPerlPackage {
22944     pname = "Statistics-CaseResampling";
22945     version = "0.15";
22946     src = fetchurl {
22947       url = "mirror://cpan/authors/id/S/SM/SMUELLER/Statistics-CaseResampling-0.15.tar.gz";
22948       hash = "sha256-hRxDvW8Q0yKJUipQxqIJw7JGz9PrVmdz5oYe2gSkkIc=";
22949     };
22950     meta = {
22951       description = "Efficient resampling and calculation of medians with confidence intervals";
22952       license = with lib.licenses; [ artistic1 gpl1Plus ];
22953     };
22954   };
22956   StatisticsChiSquare = buildPerlPackage rec {
22957     pname = "Statistics-ChiSquare";
22958     version = "1.0000";
22959     src = fetchurl {
22960       url = "mirror://cpan/authors/id/D/DC/DCANTRELL/Statistics-ChiSquare-1.0000.tar.gz";
22961       hash = "sha256-JVpaODNtBI3bkHciJpHgAJhOkHquCaTqaVqc/Umh3dA=";
22962     };
22963     meta = {
22964       description = "Implements the Chi Squared test, using pre-computed tables";
22965       license = with lib.licenses; [ artistic1 gpl1Plus ];
22966     };
22967   };
22969   StatisticsDescriptive = buildPerlModule {
22970     pname = "Statistics-Descriptive";
22971     version = "3.0801";
22972     src = fetchurl {
22973       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Statistics-Descriptive-3.0801.tar.gz";
22974       hash = "sha256-BHtwpj/cqpFhaOD/LVjhVeDrvGjtTMvXOnIT3KMCj2U=";
22975     };
22976     propagatedBuildInputs = [ ListMoreUtils ];
22977     meta = {
22978       description = "Module of basic descriptive statistical functions";
22979       homepage = "https://metacpan.org/release/Statistics-Descriptive";
22980       license = with lib.licenses; [ artistic1 gpl1Plus ];
22981     };
22982   };
22984   StatisticsDistributions = buildPerlPackage {
22985     pname = "Statistics-Distributions";
22986     version = "1.02";
22987     src = fetchurl {
22988       url = "mirror://cpan/authors/id/M/MI/MIKEK/Statistics-Distributions-1.02.tar.gz";
22989       hash = "sha256-+Z85ar+EyjeqLOoxrUXXOq7kh1LJmRNsS5E4lCjXM8g=";
22990     };
22991     meta = {
22992       description = "Perl module for calculating critical values and upper probabilities of common statistical distributions";
22993       license = with lib.licenses; [ artistic1 gpl1Plus ];
22994     };
22995   };
22997   StatisticsTTest = buildPerlPackage {
22998     pname = "Statistics-TTest";
22999     version = "1.1.0";
23000     src = fetchurl {
23001       url = "mirror://cpan/authors/id/Y/YU/YUNFANG/Statistics-TTest-1.1.0.tar.gz";
23002       hash = "sha256-stlZ0ljHKEebfYYu4BRuWtjuqYm+JWN8vFdlUv9zcWY=";
23003     };
23004     propagatedBuildInputs = [ StatisticsDescriptive StatisticsDistributions ];
23005     meta = {
23006       description = "Perl module to perform T-test on 2 independent samples Statistics::TTest::Sufficient - Perl module to perfrom T-Test on 2 indepdent samples using sufficient statistics";
23007       license = with lib.licenses; [ artistic1 gpl1Plus ];
23008     };
23009   };
23011   StreamBuffered = buildPerlPackage {
23012     pname = "Stream-Buffered";
23013     version = "0.03";
23014     src = fetchurl {
23015       url = "mirror://cpan/authors/id/D/DO/DOY/Stream-Buffered-0.03.tar.gz";
23016       hash = "sha256-my1DkLXeawz0VY5K0EMXpzxeE90ZrykUnE5Hw3+yQjs=";
23017     };
23018     meta = {
23019       description = "Temporary buffer to save bytes";
23020       homepage = "https://github.com/plack/Stream-Buffered";
23021       license = with lib.licenses; [ artistic1 gpl1Plus ];
23022     };
23023   };
23025   strictures = buildPerlPackage {
23026     pname = "strictures";
23027     version = "2.000006";
23028     src = fetchurl {
23029       url = "mirror://cpan/authors/id/H/HA/HAARG/strictures-2.000006.tar.gz";
23030       hash = "sha256-CdV5dKbRsjgMgChw/tRxEI9RFw2oFFjidRhZ8nFPjVc=";
23031     };
23032     meta = {
23033       description = "Turn on strict and make most warnings fatal";
23034       homepage = "http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=p5sagit/strictures.git";
23035       license = with lib.licenses; [ artistic1 gpl1Plus ];
23036     };
23037   };
23039   StringApprox = buildPerlPackage {
23040     pname = "String-Approx";
23041     version = "3.28";
23042     src = fetchurl {
23043       url = "mirror://cpan/authors/id/J/JH/JHI/String-Approx-3.28.tar.gz";
23044       hash = "sha256-QyAedi2GmcsKwsB2SlRUvcIwbAdxAU1sj7qCFIBjE0I=";
23045     };
23046     meta = {
23047       description = "Perl extension for approximate matching (fuzzy matching)";
23048       license = with lib.licenses; [ artistic2 gpl2Only ];
23049     };
23050   };
23052   StringBinaryInterpolation = buildPerlPackage {
23053     pname = "String-Binary-Interpolation";
23054     version = "1.0.0";
23055     src = fetchurl {
23056       url = "mirror://cpan/authors/id/D/DC/DCANTRELL/String-Binary-Interpolation-1.0.0.tar.gz";
23057       hash = "sha256-2lXYmCTBrdniqpWP8OpILyaCLkJI7TOo1rT7vXdYivE=";
23058     };
23059     meta = {
23060       description = "Make it easier to interpolate binary bytes into a string";
23061       license = with lib.licenses; [ artistic2 gpl2Only ];
23062     };
23063   };
23065   StringCamelCase = buildPerlPackage {
23066     pname = "String-CamelCase";
23067     version = "0.04";
23068     src = fetchurl {
23069       url = "mirror://cpan/authors/id/H/HI/HIO/String-CamelCase-0.04.tar.gz";
23070       hash = "sha256-icPevO7Orodk9F10Aj+Pvu4tiDma9nVB29qgsr8nEak=";
23071     };
23072     meta = {
23073       description = "Camelcase, de-camelcase";
23074       license = with lib.licenses; [ artistic1 gpl1Plus ];
23075     };
23076   };
23078   StringCompareConstantTime = buildPerlPackage {
23079     pname = "String-Compare-ConstantTime";
23080     version = "0.321";
23081     src = fetchurl {
23082       url = "mirror://cpan/authors/id/F/FR/FRACTAL/String-Compare-ConstantTime-0.321.tar.gz";
23083       hash = "sha256-Cya6KxIdgARCXUSF0dRvWQAcg3Y6omYk3/YiDXc11/c=";
23084     };
23085     meta = {
23086       description = "Timing side-channel protected string compare";
23087       license = with lib.licenses; [ artistic1 gpl1Plus ];
23088     };
23089   };
23091   StringCRC32 = buildPerlPackage {
23092     pname = "String-CRC32";
23093     version = "2.100";
23094     src = fetchurl {
23095       url = "mirror://cpan/authors/id/L/LE/LEEJO/String-CRC32-2.100.tar.gz";
23096       hash = "sha256-lwYJOy0Gi2cV01tMWPUVWON5YAgyAhKfuwClfhmnRxM=";
23097     };
23098     meta = {
23099       description = "Perl interface for cyclic redundancy check generation";
23100       license = with lib.licenses; [ publicDomain ];
23101     };
23102   };
23104   StringDiff = buildPerlModule {
23105     pname = "String-Diff";
23106     version = "0.07";
23107     src = fetchurl {
23108       url = "mirror://cpan/authors/id/Y/YA/YAPPO/String-Diff-0.07.tar.gz";
23109       hash = "sha256-chW2fLwyJuLQ4Ys47FjJO+C/YJAnhpi++VU0iCbNCvM=";
23110     };
23111     patches = [
23112       (fetchpatch {
23113         url = "https://salsa.debian.org/perl-team/modules/packages/libstring-diff-perl/-/raw/d8120a93f73f4d4aa40d10819b2f0a312608ca9b/debian/patches/0001-Fix-the-test-suite-for-YAML-1.21-compatibility.patch";
23114         hash = "sha256-RcYsn0jVa9sSF8iYPuaFTWx00LrF3m7hH9e6fC7j72U=";
23115       })
23116     ];
23117     buildInputs = [ TestBase ModuleBuildTiny ModuleInstallGithubMeta ModuleInstallRepository ModuleInstallReadmeFromPod ModuleInstallReadmeMarkdownFromPod YAML ];
23118     propagatedBuildInputs = [ AlgorithmDiff ];
23119     meta = {
23120       description = "Simple diff to String";
23121       homepage = "https://github.com/yappo/p5-String-Diff";
23122       license = with lib.licenses; [ artistic1 gpl1Plus ];
23123       maintainers = [ maintainers.sgo ];
23124     };
23125   };
23127   StringErrf = buildPerlPackage {
23128     pname = "String-Errf";
23129     version = "0.009";
23130     src = fetchurl {
23131       url = "mirror://cpan/authors/id/R/RJ/RJBS/String-Errf-0.009.tar.gz";
23132       hash = "sha256-4f7b+bT9ZLZOqBA43bdqTGzYX12xW8IfEGVqKYNJ3B8=";
23133     };
23134     buildInputs = [ JSONMaybeXS TimeDate ];
23135     propagatedBuildInputs = [ StringFormatter ];
23136     meta = {
23137       description = "A simple sprintf-like dialect";
23138       homepage = "https://github.com/rjbs/String-Errf";
23139       license = with lib.licenses; [ artistic1 gpl1Plus ];
23140     };
23141   };
23143   StringEscape = buildPerlPackage {
23144     pname = "String-Escape";
23145     version = "2010.002";
23146     src = fetchurl {
23147       url = "mirror://cpan/authors/id/E/EV/EVO/String-Escape-2010.002.tar.gz";
23148       hash = "sha256-/WRfizNiJNIKha5/saOEV26sMp963DkjwyQego47moo=";
23149     };
23150     meta = {
23151       description = "Backslash escapes, quoted phrase, word elision, etc";
23152       license = with lib.licenses; [ artistic1 gpl1Plus ];
23153     };
23154   };
23156   StringFlogger = buildPerlPackage {
23157     pname = "String-Flogger";
23158     version = "1.101246";
23159     src = fetchurl {
23160       url = "mirror://cpan/authors/id/R/RJ/RJBS/String-Flogger-1.101246.tar.gz";
23161       hash = "sha256-FfhJHgeBi7PPqfa9Oqv2QwuptOMJ8YEUNYvj2Bv/Og8=";
23162     };
23163     propagatedBuildInputs = [ JSONMaybeXS SubExporter ];
23164     meta = {
23165       description = "String munging for loggers";
23166       homepage = "https://github.com/rjbs/String-Flogger";
23167       license = with lib.licenses; [ artistic1 gpl1Plus ];
23168     };
23169   };
23171   StringFormat = buildPerlPackage {
23172     pname = "String-Format";
23173     version = "1.18";
23174     src = fetchurl {
23175       url = "mirror://cpan/authors/id/S/SR/SREZIC/String-Format-1.18.tar.gz";
23176       hash = "sha256-nkF6j42epiO+6i0TpHwNWmlvyGAsBQm4Js1F+Xt253g=";
23177     };
23178     meta = {
23179       description = "sprintf-like string formatting capabilities with arbitrary format definitions";
23180       license = with lib.licenses; [ gpl2Only ];
23181     };
23182   };
23184   StringFormatter = buildPerlPackage {
23185     pname = "String-Formatter";
23186     version = "1.235";
23187     src = fetchurl {
23188       url = "mirror://cpan/authors/id/R/RJ/RJBS/String-Formatter-1.235.tar.gz";
23189       hash = "sha256-CCNqkTuRHOZSzwhZjnwH0t8/Np/Ee/QBpIWlBKFmB4M=";
23190     };
23191     propagatedBuildInputs = [ SubExporter ];
23192     meta = {
23193       description = "Build sprintf-like functions of your own";
23194       license = with lib.licenses; [ gpl2Only ];
23195     };
23196   };
23198   StringInterpolate = buildPerlPackage {
23199     pname = "String-Interpolate";
23200     version = "0.33";
23201     src = fetchurl {
23202       url = "mirror://cpan/authors/id/N/NE/NEILB/String-Interpolate-0.33.tar.gz";
23203       hash = "sha256-qH7Qk4kH0xr32qltc6BjL1xko40d4N6HxLRCWDEpxBM=";
23204     };
23205     meta = {
23206       # https://metacpan.org/pod/String::Interpolate
23207       description = "String::Interpolate - Wrapper for builtin the Perl interpolation engine.";
23208       license = with lib.licenses; [ gpl1Plus ];
23209     };
23210     propagatedBuildInputs = [ PadWalker SafeHole ];
23211   };
23213   StringInterpolateNamed = buildPerlPackage {
23214     pname = "String-Interpolate-Named";
23215     version = "1.03";
23216     src = fetchurl {
23217       url = "mirror://cpan/authors/id/J/JV/JV/String-Interpolate-Named-1.03.tar.gz";
23218       hash = "sha256-on13VgcnX2jtkqQT85SsAJLn3hzZPWJHnUf7pwF6Jtw=";
23219     };
23220     meta = {
23221       description = "Interpolated named arguments in string";
23222       license = with lib.licenses; [ artistic1 gpl1Plus ];
23223     };
23224   };
23226   StringMkPasswd = buildPerlPackage {
23227     pname = "String-MkPasswd";
23228     version = "0.05";
23229     src = fetchurl {
23230       url = "mirror://cpan/authors/id/C/CG/CGRAU/String-MkPasswd-0.05.tar.gz";
23231       hash = "sha256-UxD4NGAEVHUHFma1Qj2y8KqC1mhcgC7Hq+bCxBBjm5Y=";
23232     };
23233     meta = {
23234       description = "Random password generator";
23235       homepage = "https://github.com/sirhc/string-mkpasswd";
23236       license = with lib.licenses; [ artistic1 gpl1Plus ];
23237       mainProgram = "mkpasswd.pl";
23238     };
23239   };
23241   StringRandom = buildPerlModule {
23242     pname = "String-Random";
23243     version = "0.32";
23244     src = fetchurl {
23245       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/String-Random-0.32.tar.gz";
23246       hash = "sha256-nZPGeaNP+ibTtPoIN8rtHNLmfXZXKBi5HpfepzRwUkY=";
23247     };
23248     meta = {
23249       description = "Perl module to generate random strings based on a pattern";
23250       license = with lib.licenses; [ artistic1 gpl1Plus ];
23251     };
23252   };
23254   StringRewritePrefix = buildPerlPackage {
23255     pname = "String-RewritePrefix";
23256     version = "0.009";
23257     src = fetchurl {
23258       url = "mirror://cpan/authors/id/R/RJ/RJBS/String-RewritePrefix-0.009.tar.gz";
23259       hash = "sha256-RJGL7JalSvjKN8qJfkNnCewoSgeyhRbvPM5GZoaWRtU=";
23260     };
23261     propagatedBuildInputs = [ SubExporter ];
23262     meta = {
23263       description = "Rewrite strings based on a set of known prefixes";
23264       homepage = "https://github.com/rjbs/String-RewritePrefix";
23265       license = with lib.licenses; [ artistic1 gpl1Plus ];
23266     };
23267   };
23269   StringShellQuote = buildPerlPackage {
23270     pname = "String-ShellQuote";
23271     version = "1.04";
23272     src = fetchurl {
23273       url = "mirror://cpan/authors/id/R/RO/ROSCH/String-ShellQuote-1.04.tar.gz";
23274       hash = "sha256-5gY2UDjOINZG0lXIBe/90y+GR18Y1DynVFWwDk2G3TU=";
23275     };
23276     doCheck = !stdenv.isDarwin;
23277     meta = {
23278       description = "Quote strings for passing through the shell";
23279       license = with lib.licenses; [ artistic1 gpl1Plus ];
23280       mainProgram = "shell-quote";
23281     };
23282   };
23284   StringSimilarity = buildPerlPackage {
23285     pname = "String-Similarity";
23286     version = "1.04";
23287     src = fetchurl {
23288       url = "mirror://cpan/authors/id/M/ML/MLEHMANN/String-Similarity-1.04.tar.gz";
23289       hash = "sha256-H47aIpC7y3Ia7wzhsL/hOwEgHdPaphijN/LwLikcMkU=";
23290     };
23291     doCheck = true;
23292     meta = {
23293       description = "Calculate the similarity of two strings";
23294       license = with lib.licenses; [ gpl2Only ];
23295     };
23296   };
23298   ShellCommand = buildPerlPackage {
23299     pname = "Shell-Command";
23300     version = "0.06";
23301     src = fetchurl {
23302       url = "mirror://cpan/authors/id/F/FL/FLORA/Shell-Command-0.06.tar.gz";
23303       hash = "sha256-8+Te71d5RL5G+nr1rBGKwoKJEXiLAbx2p0SVNVYW7NE=";
23304     };
23305     meta = {
23306       description = "Cross-platform functions emulating common shell commands";
23307       license = with lib.licenses; [ artistic1 gpl1Plus ];
23308     };
23309   };
23311   ShellConfigGenerate = buildPerlPackage {
23312     pname = "Shell-Config-Generate";
23313     version = "0.34";
23314     src = fetchurl {
23315       url = "mirror://cpan/authors/id/P/PL/PLICEASE/Shell-Config-Generate-0.34.tar.gz";
23316       hash = "sha256-hPRR8iIV3WjpwYqj992wOoIAfRZs+toAPQ8Wb1ceBWI=";
23317     };
23318     buildInputs = [ Test2Suite ];
23319     propagatedBuildInputs = [ ShellGuess ];
23320     meta = {
23321       description = "Portably generate config for any shell";
23322       homepage = "https://metacpan.org/pod/Shell::Config::Generate";
23323       license = with lib.licenses; [ artistic1 gpl1Plus ];
23324     };
23325   };
23327   ShellGuess = buildPerlPackage {
23328     pname = "Shell-Guess";
23329     version = "0.09";
23330     src = fetchurl {
23331       url = "mirror://cpan/authors/id/P/PL/PLICEASE/Shell-Guess-0.09.tar.gz";
23332       hash = "sha256-QGn6JjfkQxGO2VbXECMdFmgj0jsqZOuHuKRocuhloSs=";
23333     };
23334     meta = {
23335       description = "Make an educated guess about the shell in use";
23336       homepage = "https://metacpan.org/pod/Shell::Guess";
23337       license = with lib.licenses; [ artistic1 gpl1Plus ];
23338     };
23339   };
23341   StringToIdentifierEN = buildPerlPackage {
23342     pname = "String-ToIdentifier-EN";
23343     version = "0.12";
23344     src = fetchurl {
23345       url = "mirror://cpan/authors/id/R/RK/RKITOVER/String-ToIdentifier-EN-0.12.tar.gz";
23346       hash = "sha256-OvuEIykwuaxbGto4PI3VkHrk4jrsWrsBb3D56AU83Io=";
23347     };
23348     propagatedBuildInputs = [ LinguaENInflectPhrase TextUnidecode namespaceclean ];
23349     meta = {
23350       description = "Convert Strings to English Program Identifiers";
23351       license = with lib.licenses; [ artistic1 gpl1Plus ];
23352     };
23353   };
23355   StringTruncate = buildPerlPackage {
23356     pname = "String-Truncate";
23357     version = "1.100603";
23358     src = fetchurl {
23359       url = "mirror://cpan/authors/id/R/RJ/RJBS/String-Truncate-1.100603.tar.gz";
23360       hash = "sha256-q0VgLM4t2VFe37sublzeGc3VSY1hojr9jEbB8R+O7GI=";
23361     };
23362     propagatedBuildInputs = [ SubExporter ];
23363     meta = {
23364       description = "A module for when strings are too long to be displayed in...";
23365       homepage = "https://github.com/rjbs/String-Truncate";
23366       license = with lib.licenses; [ artistic1 gpl1Plus ];
23367     };
23368   };
23370   StringTT = buildPerlPackage {
23371     pname = "String-TT";
23372     version = "0.03";
23373     src = fetchurl {
23374       url = "mirror://cpan/authors/id/B/BO/BOBTFISH/String-TT-0.03.tar.gz";
23375       hash = "sha256-92BfCgT5+hI9Ot9PNFeaFMkLfai5O2XS5IkyzNPJUqs=";
23376     };
23377     buildInputs = [ TestException TestSimple13 TestTableDriven ];
23378     propagatedBuildInputs = [ PadWalker SubExporter TemplateToolkit ];
23379     meta = {
23380       description = "Use TT to interpolate lexical variables";
23381       license = with lib.licenses; [ artistic1 gpl1Plus ];
23382     };
23383   };
23385   StringUtil = buildPerlModule {
23386     pname = "String-Util";
23387     version = "1.34";
23388     src = fetchurl {
23389       url = "mirror://cpan/authors/id/B/BA/BAKERSCOT/String-Util-1.34.tar.gz";
23390       hash = "sha256-MZzozWZTQeVlIfoVXZYqGTKOkNn3A2dlklzN4mclxGk=";
23391     };
23392     buildInputs = [ ModuleBuildTiny ];
23393     meta = {
23394       description = "String processing utility functions";
23395       homepage = "https://github.com/scottchiefbaker/String-Util";
23396       license = with lib.licenses; [ artistic1 gpl1Plus ];
23397     };
23398   };
23400   strip-nondeterminism = callPackage ../development/perl-modules/strip-nondeterminism { };
23402   StructDumb = buildPerlModule {
23403     pname = "Struct-Dumb";
23404     version = "0.14";
23405     src = fetchurl {
23406       url = "mirror://cpan/authors/id/P/PE/PEVANS/Struct-Dumb-0.14.tar.gz";
23407       hash = "sha256-E8FIU2sQ4oxuC04TLynkym5ptXSQWcRBV6J+hKVFlDY=";
23408     };
23409     buildInputs = [ Test2Suite ];
23410     meta = {
23411       description = "Make simple lightweight record-like structures";
23412       license = with lib.licenses; [ artistic1 gpl1Plus ];
23413     };
23414   };
23416   SubExporter = buildPerlPackage {
23417     pname = "Sub-Exporter";
23418     version = "0.990";
23419     src = fetchurl {
23420       url = "mirror://cpan/authors/id/R/RJ/RJBS/Sub-Exporter-0.990.tar.gz";
23421       hash = "sha256-vGTsWgaGX5zGdiFcBqlEizoMizl0/7I6JPjirQkFRPw=";
23422     };
23423     propagatedBuildInputs = [ DataOptList ];
23424     meta = {
23425       description = "A sophisticated exporter for custom-built routines";
23426       homepage = "https://github.com/rjbs/Sub-Exporter";
23427       license = with lib.licenses; [ artistic1 gpl1Plus ];
23428     };
23429   };
23431   SubExporterForMethods = buildPerlPackage {
23432     pname = "Sub-Exporter-ForMethods";
23433     version = "0.100055";
23434     src = fetchurl {
23435       url = "mirror://cpan/authors/id/R/RJ/RJBS/Sub-Exporter-ForMethods-0.100055.tar.gz";
23436       hash = "sha256-eR9CA7p8D32DgLwBvsICFffIvHDX7QPlUu7kRUGr6U4=";
23437     };
23438     buildInputs = [ namespaceautoclean ];
23439     propagatedBuildInputs = [ SubExporter SubName ];
23440     meta = {
23441       description = "Helper routines for using Sub::Exporter to build methods";
23442       homepage = "https://github.com/rjbs/Sub-Exporter-ForMethods";
23443       license = with lib.licenses; [ artistic1 gpl1Plus ];
23444     };
23445   };
23447   SubExporterGlobExporter = buildPerlPackage {
23448     pname = "Sub-Exporter-GlobExporter";
23449     version = "0.006";
23450     src = fetchurl {
23451       url = "mirror://cpan/authors/id/R/RJ/RJBS/Sub-Exporter-GlobExporter-0.006.tar.gz";
23452       hash = "sha256-3nQ/CAJnAcKmoiKotBxM3CVLGkr+fvmJh806ukzlJpY=";
23453     };
23454     propagatedBuildInputs = [ SubExporter ];
23455     meta = {
23456       description = "Export shared globs with Sub::Exporter collectors";
23457       homepage = "https://github.com/rjbs/Sub-Exporter-GlobExporter";
23458       license = with lib.licenses; [ artistic1 gpl1Plus ];
23459     };
23460   };
23462   SubExporterProgressive = buildPerlPackage {
23463     pname = "Sub-Exporter-Progressive";
23464     version = "0.001013";
23465     src = fetchurl {
23466       url = "mirror://cpan/authors/id/F/FR/FREW/Sub-Exporter-Progressive-0.001013.tar.gz";
23467       hash = "sha256-1TW3lU1k2hrBMFsfrfmCAnaeNZk3aFSyztkMOCvqwFY=";
23468     };
23469     meta = {
23470       description = "Only use Sub::Exporter if you need it";
23471       homepage = "https://github.com/frioux/Sub-Exporter-Progressive";
23472       license = with lib.licenses; [ artistic1 gpl1Plus ];
23473     };
23474   };
23476   SubHandlesVia = buildPerlPackage {
23477     pname = "Sub-HandlesVia";
23478     version = "0.050000";
23479     src = fetchurl {
23480       url = "mirror://cpan/authors/id/T/TO/TOBYINK/Sub-HandlesVia-0.050000.tar.gz";
23481       hash = "sha256-Lfk0k+L56VvleblQtuGf9ST5TIBhOq3AOohhHf91eU8=";
23482     };
23483     propagatedBuildInputs = [ ClassMethodModifiers RoleHooks RoleTiny TypeTiny ];
23484     buildInputs = [ TestFatal TestRequires TryTiny ];
23485     meta = {
23486       description = "Alternative handles_via implementation";
23487       homepage = "https://metacpan.org/release/Sub-HandlesVia";
23488       license = with lib.licenses; [ artistic1 gpl1Plus ];
23489     };
23490   };
23492   SubIdentify = buildPerlPackage {
23493     pname = "Sub-Identify";
23494     version = "0.14";
23495     src = fetchurl {
23496       url = "mirror://cpan/authors/id/R/RG/RGARCIA/Sub-Identify-0.14.tar.gz";
23497       hash = "sha256-Bo0nIIZRTdHoQrakCxvtuv7mOQDlsIiQ72cAA53vrW8=";
23498     };
23499     meta = {
23500       description = "Retrieve names of code references";
23501       license = with lib.licenses; [ artistic1 gpl1Plus ];
23502     };
23503   };
23505   SubInfo = buildPerlPackage {
23506     pname = "Sub-Info";
23507     version = "0.002";
23508     src = fetchurl {
23509       url = "mirror://cpan/authors/id/E/EX/EXODIST/Sub-Info-0.002.tar.gz";
23510       hash = "sha256-6jBW1pa97/IamdNA1VcIh9OajMR7/yOt/ILfZ1jN0Oo=";
23511     };
23512     propagatedBuildInputs = [ Importer ];
23513     meta = {
23514       description = "Tool for inspecting subroutines";
23515       license = with lib.licenses; [ artistic1 gpl1Plus ];
23516     };
23517   };
23519   SubInstall = buildPerlPackage {
23520     pname = "Sub-Install";
23521     version = "0.929";
23522     src = fetchurl {
23523       url = "mirror://cpan/authors/id/R/RJ/RJBS/Sub-Install-0.929.tar.gz";
23524       hash = "sha256-gLHigdjNOysx2scR9cihZXqHzYC75przkkvL605dsHc=";
23525     };
23526     meta = {
23527       description = "Install subroutines into packages easily";
23528       homepage = "https://github.com/rjbs/Sub-Install";
23529       license = with lib.licenses; [ artistic1 gpl1Plus ];
23530     };
23531   };
23533   SubName = buildPerlPackage {
23534     pname = "Sub-Name";
23535     version = "0.27";
23536     src = fetchurl {
23537       url = "mirror://cpan/authors/id/E/ET/ETHER/Sub-Name-0.27.tar.gz";
23538       hash = "sha256-7PNvuhxHypPh2qOUlo7TnEGGhnRZ2c0XPEIeK5cgQ+g=";
23539     };
23540     buildInputs = [ BC DevelCheckBin ];
23541     meta = {
23542       description = "(Re)name a sub";
23543       homepage = "https://github.com/p5sagit/Sub-Name";
23544       license = with lib.licenses; [ artistic1 gpl1Plus ];
23545     };
23546   };
23548   SubOverride = buildPerlPackage {
23549     pname = "Sub-Override";
23550     version = "0.09";
23551     src = fetchurl {
23552       url = "mirror://cpan/authors/id/O/OV/OVID/Sub-Override-0.09.tar.gz";
23553       hash = "sha256-k5pnwfcplo4MyBt0lY23UOG9t8AgvuGiYzMvQiwuJbU=";
23554     };
23555     buildInputs = [ TestFatal ];
23556     meta = {
23557       description = "Perl extension for easily overriding subroutines";
23558       license = with lib.licenses; [ artistic1 gpl1Plus ];
23559     };
23560   };
23562   SubQuote = buildPerlPackage {
23563     pname = "Sub-Quote";
23564     version = "2.006008";
23565     src = fetchurl {
23566       url = "mirror://cpan/authors/id/H/HA/HAARG/Sub-Quote-2.006008.tar.gz";
23567       hash = "sha256-lL69UAr1V2LoPqLyvFlNh6+CgHI3DHEQxgwjioANFbI=";
23568     };
23569     buildInputs = [ TestFatal ];
23570     meta = {
23571       description = "Efficient generation of subroutines via string eval";
23572       license = with lib.licenses; [ artistic1 gpl1Plus ];
23573     };
23574   };
23576   SubStrictDecl = buildPerlModule {
23577     pname = "Sub-StrictDecl";
23578     version = "0.005";
23579     src = fetchurl {
23580       url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Sub-StrictDecl-0.005.tar.gz";
23581       hash = "sha256-oSfa52RcGpVwzZopcMbcST1SL/BzGKNKOeQJCY9pESU=";
23582     };
23583     propagatedBuildInputs = [ LexicalSealRequireHints ];
23584     perlPreHook = lib.optionalString stdenv.isDarwin "export LD=$CC";
23585     meta = {
23586       description = "Detect undeclared subroutines in compilation";
23587       license = with lib.licenses; [ artistic1 gpl1Plus ];
23588     };
23589   };
23591   SubUplevel = buildPerlPackage {
23592     pname = "Sub-Uplevel";
23593     version = "0.2800";
23594     src = fetchurl {
23595       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Sub-Uplevel-0.2800.tar.gz";
23596       hash = "sha256-tPP2O4D2gKQhMy2IUd2+Wo5y/Kp01dHZjzyMxKPs4pM=";
23597     };
23598     meta = {
23599       description = "Apparently run a function in a higher stack frame";
23600       homepage = "https://github.com/Perl-Toolchain-Gang/Sub-Uplevel";
23601       license = with lib.licenses; [ artistic1 gpl1Plus ];
23602     };
23603   };
23605   SVNSimple = buildPerlPackage {
23606     pname = "SVN-Simple";
23607     version = "0.28";
23608     src = fetchurl {
23609       url = "mirror://cpan/authors/id/C/CL/CLKAO/SVN-Simple-0.28.tar.gz";
23610       hash = "sha256-1jzBaeQ2m+mKU5q+nMFhG/zCs2lmplF+Z2aI/tGIT/s=";
23611     };
23612     propagatedBuildInputs = [ (pkgs.subversionClient.override { inherit perl; }) ];
23613     meta = {
23614       description = "A simple interface to subversion's editor interface";
23615       license = with lib.licenses; [ artistic1 gpl1Plus ];
23616     };
23617   };
23619   SafeHole = buildPerlModule {
23620     pname = "Safe-Hole";
23621     version = "0.14";
23622     src = fetchurl {
23623       url = "mirror://cpan/authors/id/T/TO/TODDR/Safe-Hole-0.14.tar.gz";
23624       hash = "sha256-9PVui70GxP5K4G2xIYbeyt+6wep3XqGMbAKJSB0V7AU=";
23625     };
23626     meta = {
23627       description = "Lib/Safe/Hole.pm";
23628       homepage = "https://github.com/toddr/Safe-Hole";
23629       license = with lib.licenses; [ artistic1 gpl1Plus ];
23630       broken = stdenv.isDarwin;
23631     };
23632   };
23634   Swim = buildPerlPackage {
23635     pname = "Swim";
23636     version = "0.1.48";
23637     src = fetchurl {
23638       url = "mirror://cpan/authors/id/I/IN/INGY/Swim-0.1.48.tar.gz";
23639       hash = "sha256-pfcv0vIpF/orSsuy7iw9MpA9l+5bDkSbDzhwGMd/Tww=";
23640     };
23641     propagatedBuildInputs = [ HTMLEscape HashMerge IPCRun Pegex TextAutoformat YAMLLibYAML ];
23642     meta = {
23643       description = "See What I Mean?!";
23644       homepage = "https://github.com/ingydotnet/swim-pm";
23645       license = with lib.licenses; [ artistic1 gpl1Plus ];
23646       mainProgram = "swin";
23647     };
23648   };
23650   Switch = buildPerlPackage {
23651     pname = "Switch";
23652     version = "2.17";
23653     src = fetchurl {
23654       url = "mirror://cpan/authors/id/C/CH/CHORNY/Switch-2.17.tar.gz";
23655       hash = "sha256-MTVJdRQP5iNawTChCUlkka0z3UL5xiGJ4j9J91+TbXU=";
23656     };
23657     doCheck = false;                             # FIXME: 2/293 test failures
23658     meta = {
23659       description = "A switch statement for Perl, do not use if you can use given/when";
23660       license = with lib.licenses; [ artistic1 gpl1Plus ];
23661     };
23662   };
23664   SymbolGet = buildPerlPackage {
23665     pname = "Symbol-Get";
23666     version = "0.10";
23667     src = fetchurl {
23668       url = "mirror://cpan/authors/id/F/FE/FELIPE/Symbol-Get-0.10.tar.gz";
23669       hash = "sha256-DuVWjFrjVzyodOCeTQUkRmz8Gtmiwk0LyR1MewbyHZw=";
23670     };
23671     buildInputs = [ TestDeep TestException ];
23672     propagatedBuildInputs = [ CallContext ];
23673     meta = {
23674       description = "Read Perl's symbol table programmatically";
23675       license = with lib.licenses; [ artistic1 gpl1Plus ];
23676       maintainers = [ maintainers.sgo ];
23677     };
23678   };
23680   SymbolGlobalName = buildPerlPackage {
23681     pname = "Symbol-Global-Name";
23682     version = "0.05";
23683     src = fetchurl {
23684       url = "mirror://cpan/authors/id/A/AL/ALEXMV/Symbol-Global-Name-0.05.tar.gz";
23685       hash = "sha256-D3Yj6dckdgqmQEAiLaHYLxGIWGeRMpJhzGDa0dYNapI=";
23686     };
23687     meta = {
23688       description = "Finds name and type of a global variable";
23689       license = with lib.licenses; [ artistic1 gpl1Plus ];
23690     };
23691   };
23693   SymbolUtil = buildPerlModule {
23694     pname = "Symbol-Util";
23695     version = "0.0203";
23696     src = fetchurl {
23697       url = "mirror://cpan/authors/id/D/DE/DEXTER/Symbol-Util-0.0203.tar.gz";
23698       hash = "sha256-VbZh3SL5zpub5afgo/UomsAM0lTCHj2GAyiaVlrm3DI=";
23699     };
23700     meta = {
23701       description = "Additional utils for Perl symbols manipulation";
23702       license = with lib.licenses; [ artistic1 gpl1Plus ];
23703     };
23704   };
23706   syntax = buildPerlPackage {
23707     pname = "syntax";
23708     version = "0.004";
23709     src = fetchurl {
23710       url = "mirror://cpan/authors/id/P/PH/PHAYLON/syntax-0.004.tar.gz";
23711       hash = "sha256-/hm22oqPQ6WqLuVxRBvA4zn7FW0AgcFXoaJOmBLH02U=";
23712     };
23713     propagatedBuildInputs = [ DataOptList namespaceclean ];
23714     meta = {
23715       description = "Activate syntax extensions";
23716       homepage = "https://github.com/phaylon/syntax/wiki";
23717       license = with lib.licenses; [ artistic1 gpl1Plus ];
23718     };
23719   };
23721   SyntaxKeywordJunction = buildPerlPackage {
23722     pname = "Syntax-Keyword-Junction";
23723     version = "0.003008";
23724     src = fetchurl {
23725       url = "mirror://cpan/authors/id/F/FR/FREW/Syntax-Keyword-Junction-0.003008.tar.gz";
23726       hash = "sha256-i0l18hsZkqfmwt9dzJKyVMYZJVle3c368LFJhxeqle8=";
23727     };
23728     buildInputs = [ TestRequires ];
23729     propagatedBuildInputs = [ syntax ];
23730     meta = {
23731       description = "Perl6 style Junction operators in Perl5";
23732       homepage = "https://github.com/frioux/Syntax-Keyword-Junction";
23733       license = with lib.licenses; [ artistic1 gpl1Plus ];
23734     };
23735   };
23737   SyntaxKeywordTry = buildPerlModule {
23738     pname = "Syntax-Keyword-Try";
23739     version = "0.29";
23740     src = fetchurl {
23741       url = "mirror://cpan/authors/id/P/PE/PEVANS/Syntax-Keyword-Try-0.29.tar.gz";
23742       hash = "sha256-zDIHGdNgjaqVFHQ6Q9rCvpnLjM2Ymx/vooUpDLHVnY8=";
23743     };
23744     buildInputs = [ Test2Suite ];
23745     propagatedBuildInputs = [ XSParseKeyword ];
23746     perlPreHook = lib.optionalString stdenv.isDarwin "export LD=$CC";
23747     meta = {
23748       description = "A try/catch/finally syntax for perl";
23749       license = with lib.licenses; [ artistic1 gpl1Plus ];
23750       maintainers = [ maintainers.zakame ];
23751     };
23752   };
23754   SysMmap = buildPerlPackage {
23755     pname = "Sys-Mmap";
23756     version = "0.20";
23757     src = fetchurl {
23758       url = "mirror://cpan/authors/id/T/TO/TODDR/Sys-Mmap-0.20.tar.gz";
23759       hash = "sha256-GCDOLInxq3NXZE+NsPSfFC9UUmJQ+x4jXbEKqA8V4s8=";
23760     };
23761     meta = {
23762       description = "Use mmap to map in a file as a Perl variable";
23763       maintainers = with maintainers; [ peterhoeg ];
23764       license = with lib.licenses; [ gpl2Plus ];
23765     };
23766   };
23768   SysMemInfo = buildPerlPackage {
23769     pname = "Sys-MemInfo";
23770     version = "0.99";
23771     src = fetchurl {
23772       url = "mirror://cpan/authors/id/S/SC/SCRESTO/Sys-MemInfo-0.99.tar.gz";
23773       hash = "sha256-B4YxnTo6i65dcnk5JEvxfhQLcU9Sc01en2JyA+TPPjs=";
23774     };
23775     meta = {
23776       description = "Memory information";
23777       license = with lib.licenses; [ gpl2Plus ];
23778       maintainers = [ maintainers.pSub ];
23779     };
23780   };
23782   SysCPU = buildPerlPackage {
23783     pname = "Sys-CPU";
23784     version = "0.61";
23785     src = fetchurl {
23786       url = "mirror://cpan/authors/id/M/MZ/MZSANFORD/Sys-CPU-0.61.tar.gz";
23787       hash = "sha256-JQqGt5wjEAHErnHS9mQoCSpPuyBwlxrK/UcapJc5yeQ=";
23788     };
23789     patches = [
23790       # Bug #95400 for Sys-CPU: Tests fail on ARM and AArch64 Linux
23791       # https://rt.cpan.org/Public/Bug/Display.html?id=95400
23792       (fetchpatch {
23793         url = "https://rt.cpan.org/Ticket/Attachment/1359669/721669/0001-Add-support-for-cpu_type-on-ARM-and-AArch64-Linux-pl.patch";
23794         hash = "sha256-oIJQX+Fz/CPmJNPuJyHVpJxJB2K5IQibnvaT4dv/qmY=";
23795       })
23796       (fetchpatch {
23797         url = "https://rt.cpan.org/Ticket/Attachment/1388036/737125/0002-cpu_clock-can-be-undefined-on-an-ARM.patch";
23798         hash = "sha256-nCypGyi6bZDEXqdb7wlGGzk9cFzmYkWGP1slBpXDfHw=";
23799       })
23800     ];
23801     buildInputs = lib.optional stdenv.isDarwin pkgs.darwin.apple_sdk.frameworks.Carbon;
23802     doCheck = !stdenv.isAarch64;
23803     meta = {
23804       description = "Perl extension for getting CPU information. Currently only number of CPU's supported.";
23805       license = with lib.licenses; [ artistic1 gpl1Plus ];
23806     };
23807   };
23809   SysCpuAffinity = buildPerlModule {
23810     pname = "Sys-CpuAffinity";
23811     version = "1.12";
23812     src = fetchurl {
23813       url = "mirror://cpan/authors/id/M/MO/MOB/Sys-CpuAffinity-1.12.tar.gz";
23814       hash = "sha256-/jLAXz6wWXCMZH8ruFslBFhZHyupBR2Nhm9Uajh+6Eg=";
23815     };
23816     doCheck = false; # Would run checks for all supported systems
23817     meta = {
23818       description = "Set CPU affinity for processes";
23819       license = with lib.licenses; [ artistic1 gpl1Plus ];
23820       maintainers = with maintainers; [ tomasajt ];
23821     };
23822   };
23824   SysHostnameLong = buildPerlPackage {
23825     pname = "Sys-Hostname-Long";
23826     version = "1.5";
23827     src = fetchurl {
23828       url = "mirror://cpan/authors/id/S/SC/SCOTT/Sys-Hostname-Long-1.5.tar.gz";
23829       hash = "sha256-6Rht83Bqh379YUnyxxHWz4fdbPcvark1uoEhsiWyZcs=";
23830     };
23831     doCheck = false; # no `hostname' in stdenv
23832     meta = {
23833       description = "Try every conceivable way to get full hostname";
23834       license = with lib.licenses; [ artistic1 gpl1Plus ];
23835     };
23836   };
23838   SysSigAction = buildPerlPackage {
23839     pname = "Sys-SigAction";
23840     version = "0.23";
23841     src = fetchurl {
23842       url = "mirror://cpan/authors/id/L/LB/LBAXTER/Sys-SigAction-0.23.tar.gz";
23843       hash = "sha256-xO9sk0VTQDH8u+Ktw0f8cZTUevyUXnpE+sfpVjCV01M=";
23844     };
23845     doCheck = !stdenv.isAarch64; # it hangs on Aarch64
23846     meta = {
23847       description = "Perl extension for Consistent Signal Handling";
23848       license = with lib.licenses; [ artistic1 gpl1Plus ];
23849     };
23850   };
23852   SysSyslog = buildPerlPackage {
23853     pname = "Sys-Syslog";
23854     version = "0.36";
23855     src = fetchurl {
23856       url = "mirror://cpan/authors/id/S/SA/SAPER/Sys-Syslog-0.36.tar.gz";
23857       hash = "sha256-7UKp5boErUhWzAy1040onDxdN2RUPsBO+vxK9+M3jfg=";
23858     };
23859     meta = {
23860       description = "Perl interface to the UNIX syslog(3) calls";
23861       license = with lib.licenses; [ artistic1 gpl1Plus ];
23862     };
23863   };
23865   SystemCommand = buildPerlPackage {
23866     pname = "System-Command";
23867     version = "1.122";
23868     src = fetchurl {
23869       url = "mirror://cpan/authors/id/B/BO/BOOK/System-Command-1.122.tar.gz";
23870       hash = "sha256-2bgjsmYZqmn3oGFmUKeBDolajfBi3p0iQNZdvlz+dHo=";
23871     };
23872     propagatedBuildInputs = [ IPCRun ];
23873     buildInputs = [ PodCoverageTrustPod TestCPANMeta TestPod TestPodCoverage ];
23874     meta = {
23875       description = "Object for running system commands";
23876       license = with lib.licenses; [ artistic1 gpl1Plus ];
23877     };
23878   };
23880   SysVirt = buildPerlModule rec {
23881     pname = "Sys-Virt";
23882     version = "9.7.0";
23883     src = fetchFromGitLab {
23884       owner = "libvirt";
23885       repo = "libvirt-perl";
23886       rev = "v${version}";
23887       hash = "sha256-tXXB6Gj27oFZv9WD4dXWdY55jDDLrGYbud4qoyjNe5A=";
23888     };
23889     nativeBuildInputs = [ pkgs.pkg-config ];
23890     buildInputs = [ pkgs.libvirt CPANChanges TestPod TestPodCoverage XMLXPath ];
23891     perlPreHook = lib.optionalString stdenv.isi686 "export LD=$CC"; # fix undefined reference to `__stack_chk_fail_local'
23892     meta = {
23893       description = "Libvirt Perl API";
23894       homepage = "https://libvirt.org";
23895       license = with lib.licenses; [ gpl2Plus artistic1 ];
23896       broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.SysVirt.x86_64-darwin
23897     };
23898   };
23900   TAPParserSourceHandlerpgTAP = buildPerlModule {
23901     pname = "TAP-Parser-SourceHandler-pgTAP";
23902     version = "3.36";
23903     src = fetchurl {
23904       url = "mirror://cpan/authors/id/D/DW/DWHEELER/TAP-Parser-SourceHandler-pgTAP-3.36.tar.gz";
23905       hash = "sha256-B75RUy4GPqxu2OWBUFRw7ryB1VBkQa8tzzK8Dr7pjGc=";
23906     };
23907     doCheck = !stdenv.isDarwin;
23908     meta = {
23909       description = "Stream TAP from pgTAP test scripts";
23910       homepage = "https://search.cpan.org/dist/Tap-Parser-Sourcehandler-pgTAP";
23911       license = with lib.licenses; [ artistic1 gpl1Plus ];
23912     };
23913   };
23915   TaskCatalystTutorial = buildPerlPackage {
23916     pname = "Task-Catalyst-Tutorial";
23917     version = "0.06";
23918     src = fetchurl {
23919       url = "mirror://cpan/authors/id/M/MR/MRAMBERG/Task-Catalyst-Tutorial-0.06.tar.gz";
23920       hash = "sha256-dbGy2WFVZHhCWHFGzv0N4wlDuFGV6OPspR4PC4ZC1h4=";
23921     };
23922     propagatedBuildInputs = [ CatalystAuthenticationStoreDBIxClass CatalystControllerHTMLFormFu CatalystDevel CatalystManual CatalystPluginAuthorizationACL CatalystPluginAuthorizationRoles CatalystPluginSessionStateCookie CatalystPluginSessionStoreFastMmap CatalystPluginStackTrace CatalystViewTT ];
23923     doCheck = false; /* fails with 'open3: exec of .. perl .. failed: Argument list too long at .../TAP/Parser/Iterator/Process.pm line 165.' */
23924     meta = {
23925       description = "Everything you need to follow the Catalyst Tutorial";
23926       license = with lib.licenses; [ artistic1 gpl1Plus ];
23927     };
23928   };
23930   TaskFreecellSolverTesting = buildPerlModule {
23931     pname = "Task-FreecellSolver-Testing";
23932     version = "0.0.12";
23933     src = fetchurl {
23934       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Task-FreecellSolver-Testing-0.0.12.tar.gz";
23935       hash = "sha256-PRkQt64SVBfG4HeUeOtK8/yc+J4iGVhfiiBBFGP5k6c=";
23936     };
23937     buildInputs = [ CodeTidyAll TestDataSplit TestDifferences TestPerlTidy TestRunPluginTrimDisplayedFilenames TestRunValgrind TestTrailingSpace TestTrap ];
23938     propagatedBuildInputs = [ EnvPath FileWhich GamesSolitaireVerify InlineC ListMoreUtils MooX StringShellQuote TaskTestRunAllPlugins TemplateToolkit YAMLLibYAML ];
23939     meta = {
23940       description = "Install the CPAN dependencies of the Freecell Solver test suite";
23941       homepage = "https://metacpan.org/release/Task-FreecellSolver-Testing";
23942       license = with lib.licenses; [ mit ];
23943     };
23944   };
23946   TaskPlack = buildPerlModule {
23947     pname = "Task-Plack";
23948     version = "0.28";
23949     src = fetchurl {
23950       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Task-Plack-0.28.tar.gz";
23951       hash = "sha256-edUriAZUjz+Vro1qyRW6Q524SJ/mOxOdCsFym7KfXCo=";
23952     };
23953     propagatedBuildInputs = [ CGICompile CGIEmulatePSGI CGIPSGI Corona FCGI FCGIClient FCGIProcManager HTTPServerSimplePSGI IOHandleUtil NetFastCGI PSGI PlackAppProxy PlackMiddlewareAuthDigest PlackMiddlewareConsoleLogger PlackMiddlewareDebug PlackMiddlewareDeflater PlackMiddlewareHeader PlackMiddlewareReverseProxy PlackMiddlewareSession Starlet Starman Twiggy ];
23954     buildInputs = [ ModuleBuildTiny TestSharedFork ];
23955     meta = {
23956       description = "Plack bundle";
23957       license = with lib.licenses; [ artistic1 gpl1Plus ];
23958     };
23959   };
23961   TaskTestRunAllPlugins = buildPerlModule {
23962     pname = "Task-Test-Run-AllPlugins";
23963     version = "0.0106";
23964     src = fetchurl {
23965       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Task-Test-Run-AllPlugins-0.0106.tar.gz";
23966       hash = "sha256-G40L8IhYBmWbwpiBDw1VCq/2gEWtwjepSaymshp9zng=";
23967     };
23968     buildInputs = [ TestRun TestRunCmdLine TestRunPluginAlternateInterpreters TestRunPluginBreakOnFailure TestRunPluginColorFileVerdicts TestRunPluginColorSummary TestRunPluginTrimDisplayedFilenames ];
23969     meta = {
23970       description = "Specifications for installing all the Test::Run";
23971       homepage = "https://web-cpan.shlomifish.org/modules/Test-Run";
23972       license = with lib.licenses; [ mit ];
23973     };
23974   };
23976   TaskWeaken = buildPerlPackage {
23977     pname = "Task-Weaken";
23978     version = "1.06";
23979     src = fetchurl {
23980       url = "mirror://cpan/authors/id/E/ET/ETHER/Task-Weaken-1.06.tar.gz";
23981       hash = "sha256-I4P+252672RkaOqCSvv3yAEHZyDPug3yp6B0cm3NZr4=";
23982     };
23983     meta = {
23984       description = "Ensure that a platform has weaken support";
23985       homepage = "https://github.com/karenetheridge/Task-Weaken";
23986       license = with lib.licenses; [ artistic1 gpl1Plus ];
23987     };
23988   };
23990   Tcl = buildPerlPackage {
23991     pname = "Tcl";
23992     version = "1.27";
23993     src = fetchurl {
23994       url = "mirror://cpan/authors/id/V/VK/VKON/Tcl-1.27.tar.gz";
23995       hash = "sha256-+DhYd6Sp7Z89OQPS0PfNcPrDzmgyxg9gCmghzuP7WHI=";
23996     };
23997     propagatedBuildInputs = [
23998       pkgs.bwidget
23999       pkgs.tcl
24000       pkgs.tix
24001       pkgs.tk
24002     ] ++ lib.optionals stdenv.isDarwin [
24003       darwin.apple_sdk.frameworks.CoreServices ];
24004     makeMakerFlags = lib.optionals stdenv.isLinux
24005       [ "--tclsh=${pkgs.tcl}/bin/tclsh" "--nousestubs" ];
24006     meta = {
24007       description = "Tcl extension module for Perl";
24008       license = with lib.licenses; [ artistic1 gpl1Plus ];
24009     };
24010   };
24012   TclpTk = buildPerlPackage {
24013     pname = "Tcl-pTk";
24014     version = "1.11";
24015     src = fetchurl {
24016       url = "mirror://cpan/authors/id/C/CA/CAC/Tcl-pTk-1.11.tar.gz";
24017       hash = "sha256-05PxKxzN7I8ZbN27WJHZSEx5qpQQWmN22f+cRg2CDN0=";
24018     };
24019     propagatedBuildInputs = [
24020       ClassISA
24021       SubName
24022       Tcl
24023       TestDeep
24024     ];
24025     buildPhase = ''
24026       perl Makefile.PL --tclsh "${pkgs.tk.tcl}/bin/tclsh" INSTALL_BASE=$out --no-test-for-tk
24027     '';
24028     postInstall = ''
24029       mkdir -p $out/lib/perl5/site_perl
24030       mv $out/lib/perl5/Tcl $out/lib/perl5/site_perl/
24031       mv $out/lib/perl5/auto $out/lib/perl5/site_perl/
24032     '' + lib.optionalString stdenv.isDarwin ''
24033       mv $out/lib/perl5/darwin-thread-multi-2level $out/lib/perl5/site_perl/
24034     '';
24035     meta = {
24036       description = "Interface to Tcl/Tk with Perl/Tk compatible syntax";
24037       license = with lib.licenses; [ artistic1 gpl1Plus ];
24038     };
24039   };
24041   TemplatePluginAutoformat = buildPerlPackage {
24042     pname = "Template-Plugin-Autoformat";
24043     version = "2.77";
24044     src = fetchurl {
24045       url = "mirror://cpan/authors/id/K/KA/KARMAN/Template-Plugin-Autoformat-2.77.tar.gz";
24046       hash = "sha256-vd+0kZ8Kuyor56lmUzPg1OCYAy8OOD268ExNiWx0hu0=";
24047     };
24048     propagatedBuildInputs = [ TemplateToolkit TextAutoformat ];
24049     meta = {
24050       description = "TT plugin for Text::Autoformat";
24051       homepage = "https://github.com/karpet/template-plugin-autoformat";
24052       license = with lib.licenses; [ artistic1 gpl1Plus ];
24053     };
24054   };
24056   TemplatePluginClass = buildPerlPackage {
24057     pname = "Template-Plugin-Class";
24058     version = "0.14";
24059     src = fetchurl {
24060       url = "mirror://cpan/authors/id/R/RC/RCLAMP/Template-Plugin-Class-0.14.tar.gz";
24061       hash = "sha256-BgT+iue/OtlnnmTZsa1MnpAUwXeqgOg11SqG942XB8M=";
24062     };
24063     propagatedBuildInputs = [ TemplateToolkit ];
24064     meta = {
24065       description = "Allow calling of class methods on arbitrary classes";
24066       license = with lib.licenses; [ artistic1 gpl1Plus ];
24067     };
24068   };
24070   TemplatePluginIOAll = buildPerlPackage {
24071     pname = "Template-Plugin-IO-All";
24072     version = "0.01";
24073     src = fetchurl {
24074       url = "mirror://cpan/authors/id/X/XE/XERN/Template-Plugin-IO-All-0.01.tar.gz";
24075       hash = "sha256-H3RFQiohky4Ju++TV2bgr2t8zrCI6djgMM16hLzcXuQ=";
24076     };
24077     propagatedBuildInputs = [ IOAll TemplateToolkit ];
24078     meta = {
24079       description = "Perl Template Toolkit Plugin for IO::All";
24080       license = with lib.licenses; [ artistic1 gpl1Plus ];
24081       maintainers = with maintainers; [ eelco ];
24082     };
24083   };
24085   TemplatePluginJavaScript = buildPerlPackage {
24086     pname = "Template-Plugin-JavaScript";
24087     version = "0.02";
24088     src = fetchurl {
24089       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Template-Plugin-JavaScript-0.02.tar.gz";
24090       hash = "sha256-6iDYBq1lIoLQNTSY4oYN+BJcgLZJFjDCXSY72IDGGNc=";
24091     };
24092     propagatedBuildInputs = [ TemplateToolkit ];
24093     meta = {
24094       description = "Encodes text to be safe in JavaScript";
24095       license = with lib.licenses; [ artistic1 gpl1Plus ];
24096     };
24097   };
24099   TemplatePluginJSONEscape = buildPerlPackage {
24100     pname = "Template-Plugin-JSON-Escape";
24101     version = "0.02";
24102     src = fetchurl {
24103       url = "mirror://cpan/authors/id/N/NA/NANTO/Template-Plugin-JSON-Escape-0.02.tar.gz";
24104       hash = "sha256-BRqLHTvGAdWPxR4kYGfTZFDP6XAnigRW6KthlA8TzYY=";
24105     };
24106     propagatedBuildInputs = [ JSON TemplateToolkit ];
24107     meta = {
24108       description = "Adds a .json vmethod and a json filter";
24109       license = with lib.licenses; [ bsd0 ];
24110     };
24111   };
24113   TemplateTimer = buildPerlPackage {
24114     pname = "Template-Timer";
24115     version = "1.00";
24116     src = fetchurl {
24117       url = "mirror://cpan/authors/id/P/PE/PETDANCE/Template-Timer-1.00.tar.gz";
24118       hash = "sha256-tzFMs2UgnZNVe4BU4DEa6MPLXRydIo0es+P8GTpbd7Q=";
24119     };
24120     propagatedBuildInputs = [ TemplateToolkit ];
24121     meta = {
24122       description = "Rudimentary profiling for Template Toolkit";
24123       license = with lib.licenses; [ artistic2 gpl3Only ];
24124     };
24125   };
24127   TemplateTiny = buildPerlPackage {
24128     pname = "Template-Tiny";
24129     version = "1.14";
24130     src = fetchurl {
24131       url = "mirror://cpan/authors/id/E/ET/ETHER/Template-Tiny-1.14.tar.gz";
24132       hash = "sha256-gZz6tgREg8/ijOsof938MXaiAlsbbw6YCy3MJtImm0w=";
24133     };
24134     meta = {
24135       description = "Template Toolkit reimplemented in as little code as possible";
24136       homepage = "https://github.com/karenetheridge/Template-Tiny";
24137       license = with lib.licenses; [ artistic1 gpl1Plus ];
24138     };
24139   };
24141   TemplateToolkit = buildPerlPackage {
24142     pname = "Template-Toolkit";
24143     version = "3.101";
24144     src = fetchurl {
24145       url = "mirror://cpan/authors/id/A/AB/ABW/Template-Toolkit-3.101.tar.gz";
24146       hash = "sha256-0qMt1sIeSzfGqT34CHyp6IDPrmE6Pl766jB7C9yu21g=";
24147     };
24148     doCheck = !stdenv.isDarwin;
24149     propagatedBuildInputs = [ AppConfig ];
24150     buildInputs = [ CGI TestLeakTrace ];
24151     meta = {
24152       description = "Comprehensive template processing system";
24153       homepage = "http://www.template-toolkit.org";
24154       license = with lib.licenses; [ artistic1 gpl1Plus ];
24155     };
24156   };
24158   TemplateGD = buildPerlPackage {
24159     pname = "Template-GD";
24160     version = "2.66";
24161     src = fetchurl {
24162       url = "mirror://cpan/authors/id/A/AB/ABW/Template-GD-2.66.tar.gz";
24163       hash = "sha256-mFI8gZLy6BhAQuWi4XK9dnrCid0uSA819oDc4yFgkFs=";
24164     };
24165     propagatedBuildInputs = [ GD TemplateToolkit ];
24166     meta = {
24167       description = "GD plugin(s) for the Template Toolkit";
24168       license = with lib.licenses; [ artistic1 gpl1Plus ];
24169     };
24170   };
24172   TermEncoding = buildPerlPackage {
24173     pname = "Term-Encoding";
24174     version = "0.03";
24175     src = fetchurl {
24176       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Term-Encoding-0.03.tar.gz";
24177       hash = "sha256-lbqWh9c10lo8vmRQjXiU8AnH+ioXJsPnhuniHaIlHQs=";
24178     };
24179     meta = {
24180       description = "Detect encoding of the current terminal";
24181       homepage = "https://github.com/miyagawa/Term-Encoding";
24182       license = with lib.licenses; [ artistic1 gpl1Plus ];
24183     };
24184   };
24186   TermProgressBar = buildPerlPackage {
24187     pname = "Term-ProgressBar";
24188     version = "2.23";
24189     src = fetchurl {
24190       url = "mirror://cpan/authors/id/M/MA/MANWAR/Term-ProgressBar-2.23.tar.gz";
24191       hash = "sha256-3vwD+59KwcnfE1nTEr/zwIZd3vvzq6ZM1CppqGIV1J0=";
24192     };
24193     buildInputs = [ CaptureTiny TestException TestWarnings ];
24194     propagatedBuildInputs = [ ClassMethodMaker TermReadKey ];
24195     meta = {
24196       description = "Provide a progress meter on a standard terminal";
24197       license = with lib.licenses; [ artistic1 gpl1Plus ];
24198     };
24199   };
24201   TermProgressBarQuiet = buildPerlPackage {
24202     pname = "Term-ProgressBar-Quiet";
24203     version = "0.31";
24204     src = fetchurl {
24205       url = "mirror://cpan/authors/id/L/LB/LBROCARD/Term-ProgressBar-Quiet-0.31.tar.gz";
24206       hash = "sha256-JWdSkvWIvCnTLnEM82Z9qaKhdR4TmAF3Cp/bGM0hhKY=";
24207     };
24208     propagatedBuildInputs = [ IOInteractive TermProgressBar ];
24209     buildInputs = [ TestMockObject ];
24210     meta = {
24211       description = "Provide a progress meter if run interactively";
24212       license = with lib.licenses; [ artistic1 gpl1Plus ];
24213     };
24214   };
24216   TermProgressBarSimple = buildPerlPackage {
24217     pname = "Term-ProgressBar-Simple";
24218     version = "0.03";
24219     src = fetchurl {
24220       url = "mirror://cpan/authors/id/E/EV/EVDB/Term-ProgressBar-Simple-0.03.tar.gz";
24221       hash = "sha256-og2zxn1b39DB+rOSxtHCaICn7oQ69gKvT5tTpwQ1eaY=";
24222     };
24223     propagatedBuildInputs = [ TermProgressBarQuiet ];
24224     buildInputs = [ TestMockObject ];
24225     meta = {
24226       description = "Simpler progress bars";
24227       license = with lib.licenses; [ artistic1 gpl1Plus ];
24228     };
24229   };
24231   TermReadKey = let
24232     cross = stdenv.hostPlatform != stdenv.buildPlatform;
24233   in buildPerlPackage {
24234     pname = "TermReadKey";
24235     version = "2.38";
24236     src = fetchurl {
24237       url = "mirror://cpan/authors/id/J/JS/JSTOWE/TermReadKey-2.38.tar.gz";
24238       hash = "sha256-WmRYeNxXCsM2YVgfuwkP8k684X1D6lP9IuEFqFakcpA=";
24239     };
24241     # use native libraries from the host when running build commands
24242     postConfigure = lib.optionalString cross (let
24243       host_perl = perl.perlOnBuild;
24244       host_self = perl.perlOnBuild.pkgs.TermReadKey;
24245       perl_lib = "${host_perl}/lib/perl5/${host_perl.version}";
24246       self_lib = "${host_self}/lib/perl5/site_perl/${host_perl.version}";
24247     in ''
24248       sed -ie 's|"-I$(INST_ARCHLIB)"|"-I${perl_lib}" "-I${self_lib}"|g' Makefile
24249     '');
24251     # TermReadKey uses itself in the build process
24252     nativeBuildInputs = lib.optionals cross [
24253       perl.perlOnBuild.pkgs.TermReadKey
24254     ];
24255     meta = {
24256       description = "A perl module for simple terminal control";
24257       license = with lib.licenses; [ artistic1 gpl1Plus ];
24258     };
24259   };
24261   TermReadLineGnu = buildPerlPackage {
24262     pname = "Term-ReadLine-Gnu";
24263     version = "1.46";
24264     src = fetchurl {
24265       url = "mirror://cpan/authors/id/H/HA/HAYASHI/Term-ReadLine-Gnu-1.46.tar.gz";
24266       hash = "sha256-sTgyEy5QNmw0/qwSzoKDfAqds0ylMK5dJ9uXz5yWTHs=";
24267     };
24268     buildInputs = [ pkgs.readline pkgs.ncurses ];
24269     NIX_CFLAGS_LINK = "-lreadline -lncursesw";
24271     # For some crazy reason Makefile.PL doesn't generate a Makefile if
24272     # AUTOMATED_TESTING is set.
24273     env.AUTOMATED_TESTING = false;
24275     # Makefile.PL looks for ncurses in Glibc's prefix.
24276     preConfigure =
24277       ''
24278         substituteInPlace Makefile.PL --replace '$Config{libpth}' \
24279           "'${pkgs.ncurses.out}/lib'"
24280       '';
24282     # Tests don't work because they require /dev/tty.
24283     doCheck = false;
24285     meta = {
24286       description = "Perl extension for the GNU Readline/History Library";
24287       homepage = "https://github.com/hirooih/perl-trg";
24288       license = with lib.licenses; [ artistic1 gpl1Plus ];
24289       mainProgram = "perlsh";
24290     };
24291   };
24293   TermReadLineTTYtter = buildPerlPackage {
24294     pname = "Term-ReadLine-TTYtter";
24295     version = "1.4";
24296     src = fetchurl {
24297       url = "mirror://cpan/authors/id/C/CK/CKAISER/Term-ReadLine-TTYtter-1.4.tar.gz";
24298       hash = "sha256-rDcxM87hshIqgnP+e0JEYT0O7O/oi2aL2Y/nHR7ErJM=";
24299     };
24301     outputs = [ "out" ];
24303     meta = {
24304       description = "A Term::ReadLine driver based on Term::ReadLine::Perl, with special features for microblogging and the TTYtter client (q.v)";
24305       homepage = "https://www.floodgap.com/software/ttytter";
24306       license = with lib.licenses; [ artistic1 gpl1Plus ];
24307     };
24308   };
24310   TermReadPassword = buildPerlPackage rec {
24311     pname = "Term-ReadPassword";
24312     version = "0.11";
24313     src = fetchurl {
24314       url = "mirror://cpan/authors/id/P/PH/PHOENIX/${pname}-${version}.tar.gz";
24315       hash = "sha256-4ahmNFs1+f/vfQA34T1tTLKAMQCJ+YwgcTiAvHD7QyM=";
24316     };
24318     outputs = [ "out" ];
24320     meta = {
24321       description = "This module lets you ask the user for a password in the traditional way, from the keyboard, without echoing";
24322       license = with lib.licenses; [ artistic1 gpl1Plus ];
24323     };
24324   };
24326   TermShell = buildPerlModule {
24327     pname = "Term-Shell";
24328     version = "0.13";
24329     src = fetchurl {
24330       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Term-Shell-0.13.tar.gz";
24331       hash = "sha256-U6C9smVokcUIpHDZPLfhz+qzjuqeWClWCn2LX2APa/I=";
24332     };
24333     propagatedBuildInputs = [ TermReadKey TextAutoformat ];
24334     meta = {
24335       homepage = "https://metacpan.org/release/Term-Shell";
24336       description = "A simple command-line shell framework";
24337       license = with lib.licenses; [ artistic1 gpl1Plus ];
24338     };
24339   };
24341   TermShellUI = buildPerlPackage {
24342     pname = "Term-ShellUI";
24343     version = "0.92";
24344     src = fetchurl {
24345       url = "mirror://cpan/authors/id/B/BR/BRONSON/Term-ShellUI-0.92.tar.gz";
24346       hash = "sha256-MnnAHHYiczXu/wkDKkD0sCsoUVGzV2wEys0VvgWUK9s=";
24347     };
24348     meta = {
24349       description = "A fully-featured shell-like command line environment";
24350       license = with lib.licenses; [ mit ];
24351     };
24352   };
24354   TermSizeAny = buildPerlPackage {
24355     pname = "Term-Size-Any";
24356     version = "0.002";
24357     src = fetchurl {
24358       url = "mirror://cpan/authors/id/F/FE/FERREIRA/Term-Size-Any-0.002.tar.gz";
24359       hash = "sha256-ZPpf2xrjqCMTSqqVrsdTVLwXvdnKEroKeuNKflGz3tI=";
24360     };
24361     propagatedBuildInputs = [ DevelHide TermSizePerl ];
24362     meta = {
24363       description = "Retrieve terminal size";
24364       license = with lib.licenses; [ artistic1 gpl1Plus ];
24365     };
24366   };
24368   TermSizePerl = buildPerlPackage {
24369     pname = "Term-Size-Perl";
24370     version = "0.031";
24371     src = fetchurl {
24372       url = "mirror://cpan/authors/id/F/FE/FERREIRA/Term-Size-Perl-0.031.tar.gz";
24373       hash = "sha256-rppnRssbMF3cj42MpGh4VSucESNiiXHhOidRg4IvIJ4=";
24374     };
24375     meta = {
24376       description = "Perl extension for retrieving terminal size (Perl version)";
24377       license = with lib.licenses; [ artistic1 gpl1Plus ];
24378     };
24379   };
24381   TermTable = buildPerlPackage {
24382     pname = "Term-Table";
24383     version = "0.017";
24384     src = fetchurl {
24385       url = "mirror://cpan/authors/id/E/EX/EXODIST/Term-Table-0.017.tar.gz";
24386       hash = "sha256-8R20JorYBE9uGhrJU0ygzTrXecQAb/83+uUA25j6yRo=";
24387     };
24388     propagatedBuildInputs = [ Importer ];
24389     meta = {
24390       description = "Format a header and rows into a table";
24391       license = with lib.licenses; [ artistic1 gpl1Plus ];
24392     };
24393   };
24395   TermSk = buildPerlPackage {
24396     pname = "Term-Sk";
24397     version = "0.18";
24398     src = fetchurl {
24399       url = "mirror://cpan/authors/id/K/KE/KEICHNER/Term-Sk-0.18.tar.gz";
24400       hash = "sha256-8uSReWBhIFsIaIgCsod5LX2AOwiXIzn7EHC6BWEq+IU=";
24401     };
24402     meta = {
24403       description = "Perl extension for displaying a progress indicator on a terminal";
24404       license = with lib.licenses; [ artistic1 gpl1Plus ];
24405     };
24406   };
24408   TermUI = buildPerlPackage {
24409     pname = "Term-UI";
24410     version = "0.50";
24411     src = fetchurl {
24412       url = "mirror://cpan/authors/id/B/BI/BINGOS/Term-UI-0.50.tar.gz";
24413       hash = "sha256-YL/dbUwVi4jTcBM/xlsgSFo2pFsS2QYAC4HHjKUkFj0=";
24414     };
24415     propagatedBuildInputs = [ LogMessageSimple ];
24416     meta = {
24417       description = "User interfaces via Term::ReadLine made easy";
24418       license = with lib.licenses; [ artistic1 gpl1Plus ];
24419     };
24420   };
24422   TermVT102 = buildPerlPackage {
24423     pname = "Term-VT102";
24424     version = "0.91";
24425     src = fetchurl {
24426       url = "mirror://cpan/authors/id/A/AJ/AJWOOD/Term-VT102-0.91.tar.gz";
24427       hash = "sha256-+VTgMQlB1FwPw+tKQPXToA1oEZ4nfTA6HmrxHe1vvZQ=";
24428     };
24429     meta = {
24430       description = "A class to emulate a DEC VT102 terminal";
24431       license = with lib.licenses; [ artistic2 ];
24432     };
24433   };
24435   TermVT102Boundless = buildPerlPackage {
24436     pname = "Term-VT102-Boundless";
24437     version = "0.05";
24438     src = fetchurl {
24439       url = "mirror://cpan/authors/id/F/FB/FBARRIOS/Term-VT102-Boundless-0.05.tar.gz";
24440       hash = "sha256-4d7YWuPXa1nAO4aX9KbLAa4xvWKpNU9bt9GPnpJ7SF8=";
24441     };
24442     propagatedBuildInputs = [ TermVT102 ];
24443     meta = {
24444       description = "A Term::VT102 that grows automatically to accommodate whatever you print to it";
24445       license = with lib.licenses; [ artistic1 gpl1Plus ];
24446     };
24447   };
24449   TermAnimation = buildPerlPackage {
24450     pname = "Term-Animation";
24451     version = "2.6";
24452     src = fetchurl {
24453       url = "mirror://cpan/authors/id/K/KB/KBAUCOM/Term-Animation-2.6.tar.gz";
24454       hash = "sha256-fVw8LU+bZXqLHc5/Xiy74CraLpfHLzoDBL88mdCEsEU=";
24455     };
24456     propagatedBuildInputs = [ Curses ];
24457     meta = {
24458       description = "ASCII sprite animation framework";
24459       license = with lib.licenses; [ artistic1 gpl1Plus ];
24460     };
24461   };
24463   Test2Harness = buildPerlPackage {
24464     pname = "Test2-Harness";
24465     version = "1.000155";
24466     src = fetchurl {
24467       url = "mirror://cpan/authors/id/E/EX/EXODIST/Test2-Harness-1.000155.tar.gz";
24468       hash = "sha256-Hvi/euDKALaHu24RXzq4yVBI5ICsmuUylzabxpSkc4s=";
24469     };
24471     checkPhase = ''
24472       patchShebangs ./t ./scripts/yath
24473       export AUTOMATED_TESTING=1
24474       ./scripts/yath test -j $NIX_BUILD_CORES
24475     '';
24477     propagatedBuildInputs = [ DataUUID Importer LongJump ScopeGuard TermTable Test2PluginMemUsage Test2PluginUUID Test2Suite YAMLTiny gotofile ];
24478     meta = {
24479       description = "A new and improved test harness with better Test2 integration";
24480       license = with lib.licenses; [ artistic1 gpl1Plus ];
24481       mainProgram = "yath";
24482       broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.Test2Harness.x86_64-darwin
24483     };
24484   };
24486   Test2PluginMemUsage = buildPerlPackage {
24487     pname = "Test2-Plugin-MemUsage";
24488     version = "0.002003";
24489     src = fetchurl {
24490       url = "mirror://cpan/authors/id/E/EX/EXODIST/Test2-Plugin-MemUsage-0.002003.tar.gz";
24491       hash = "sha256-XgZi1agjrggWQfXOgoQxEe7BgxzTH4g6bG3lSv34fCU=";
24492     };
24493     buildInputs = [ Test2Suite ];
24494     meta = {
24495       description = "Collect and display memory usage information";
24496       license = with lib.licenses; [ artistic1 gpl1Plus ];
24497     };
24498   };
24500   Test2PluginUUID = buildPerlPackage {
24501     pname = "Test2-Plugin-UUID";
24502     version = "0.002001";
24503     src = fetchurl {
24504       url = "mirror://cpan/authors/id/E/EX/EXODIST/Test2-Plugin-UUID-0.002001.tar.gz";
24505       hash = "sha256-TGyNSE1xU9h3ncFVqZKyAwlbXFqhz7Hui87c0GAYeMk=";
24506     };
24507     buildInputs = [ Test2Suite ];
24508     propagatedBuildInputs = [ DataUUID ];
24509     meta = {
24510       description = "Use REAL UUIDs in Test2";
24511       license = with lib.licenses; [ artistic1 gpl1Plus ];
24512     };
24513   };
24515   Test2PluginNoWarnings = buildPerlPackage {
24516     pname = "Test2-Plugin-NoWarnings";
24517     version = "0.09";
24518     src = fetchurl {
24519       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Test2-Plugin-NoWarnings-0.09.tar.gz";
24520       hash = "sha256-vj3YAAQu7zYr8X0gVs+ek03ukczOmOTxeLj7V3Ly+3Q=";
24521     };
24522     buildInputs = [ IPCRun3 Test2Suite ];
24523     propagatedBuildInputs = [ TestSimple13 ];
24524     meta = {
24525       description = "Fail if tests warn";
24526       homepage = "https://metacpan.org/release/Test2-Plugin-NoWarnings";
24527       license = with lib.licenses; [ artistic2 ];
24528     };
24529   };
24531   Test2Suite = buildPerlPackage {
24532     pname = "Test2-Suite";
24533     version = "0.000156";
24534     src = fetchurl {
24535       url = "mirror://cpan/authors/id/E/EX/EXODIST/Test2-Suite-0.000156.tar.gz";
24536       hash = "sha256-vzgq5y86k79+02iFEY+uL/qw/xF3Q/WQON8lTv7yyU4=";
24537     };
24538     propagatedBuildInputs = [ ModulePluggable ScopeGuard SubInfo TermTable TestSimple13 ];
24539     meta = {
24540       description = "Distribution with a rich set of tools built upon the Test2 framework";
24541       license = with lib.licenses; [ artistic1 gpl1Plus ];
24542     };
24543   };
24545   Test2ToolsFFI = buildPerlPackage {
24546     pname = "Test2-Tools-FFI";
24547     version = "0.06";
24548     src = fetchurl {
24549       url = "mirror://cpan/authors/id/P/PL/PLICEASE/Test2-Tools-FFI-0.06.tar.gz";
24550       hash = "sha256-MA28QKEubG+7y7lv05uQK+bZZXJtrx5qtzuKCv0lLy8=";
24551     };
24552     buildInputs = [ FileShareDirInstall Test2Suite ];
24553     propagatedBuildInputs = [ CaptureTiny FFICheckLib FFIPlatypus FileShareDirDist ];
24554     meta = {
24555       homepage = "https://metacpan.org/pod/Test2::Tools::FFI";
24556       description = "Tools for testing FFI";
24557       license = with lib.licenses; [ artistic1 gpl1Plus ];
24558       maintainers = with maintainers; [ tomasajt ];
24559     };
24560   };
24562   Test2ToolsMemoryCycle = buildPerlPackage {
24563     pname = "Test2-Tools-MemoryCycle";
24564     version = "0.01";
24565     src = fetchurl {
24566       url = "mirror://cpan/authors/id/P/PL/PLICEASE/Test2-Tools-MemoryCycle-0.01.tar.gz";
24567       hash = "sha256-U1s9ylQqMyUVEq3ktafb6+PESNg/iA0ZjkPcEnl5aYs=";
24568     };
24569     buildInputs = [ Test2Suite ];
24570     propagatedBuildInputs = [ DevelCycle PadWalker ];
24571     meta = {
24572       homepage = "https://metacpan.org/pod/Test2::Tools::MemoryCycle";
24573       description = "Check for memory leaks and circular memory references";
24574       license = with lib.licenses; [ artistic1 gpl1Plus ];
24575       maintainers = with maintainers; [ tomasajt ];
24576     };
24577   };
24579   TestAbortable = buildPerlPackage {
24580     pname = "Test-Abortable";
24581     version = "0.003";
24582     src = fetchurl {
24583       url = "mirror://cpan/authors/id/R/RJ/RJBS/Test-Abortable-0.003.tar.gz";
24584       hash = "sha256-TVPDXvPLf5wXUrqfEdOpeiETt9hMJg6rj5p8G4Aba40=";
24585     };
24586     propagatedBuildInputs = [ SubExporter ];
24587     buildInputs = [ TestNeeds ];
24588     meta = {
24589       description = "Subtests that you can die your way out of ... but survive";
24590       homepage = "https://github.com/rjbs/Test-Abortable";
24591       license = with lib.licenses; [ artistic1 gpl1Plus ];
24592     };
24593   };
24595   TestAssert = buildPerlModule {
24596     pname = "Test-Assert";
24597     version = "0.0504";
24598     src = fetchurl {
24599       url = "mirror://cpan/authors/id/D/DE/DEXTER/Test-Assert-0.0504.tar.gz";
24600       hash = "sha256-z6NtqWxQQzH/ICZ0e6R9R37+g1z2zyNO4QywX6n7i6Q=";
24601     };
24602     buildInputs = [ ClassInspector TestUnitLite ];
24603     propagatedBuildInputs = [ ExceptionBase constantboolean ];
24604     meta = {
24605       description = "Assertion methods for those who like JUnit";
24606       license = with lib.licenses; [ artistic1 gpl1Plus ];
24607     };
24608   };
24610   TestAssertions = buildPerlPackage {
24611     pname = "Test-Assertions";
24612     version = "1.054";
24613     src = fetchurl {
24614       url = "mirror://cpan/authors/id/B/BB/BBC/Test-Assertions-1.054.tar.gz";
24615       hash = "sha256-/NzkHVcnOIFYGt9oCiCmrfUaTDt+McP2mGb7kQk3AoA=";
24616     };
24617     propagatedBuildInputs = [ LogTrace ];
24618     meta = {
24619       description = "A simple set of building blocks for both unit and runtime testing";
24620       license = with lib.licenses; [ gpl2Only ];
24621     };
24622   };
24624   TestAggregate = buildPerlModule {
24625     pname = "Test-Aggregate";
24626     version = "0.375";
24627     src = fetchurl {
24628       url = "mirror://cpan/authors/id/R/RW/RWSTAUNER/Test-Aggregate-0.375.tar.gz";
24629       hash = "sha256-xswKv9DU/OhTcazKk+wkU4GEHTK0yqLWR15LyBMEJ9E=";
24630     };
24631     buildInputs = [ TestMost TestNoWarnings TestTrap ];
24632     meta = {
24633       description = "Aggregate *.t tests to make them run faster";
24634       license = with lib.licenses; [ artistic1 gpl1Plus ];
24635       broken = true; # This module only works with Test::More version < 1.3, but you have 1.302133
24636     };
24637   };
24640   TestBase = buildPerlPackage {
24641     pname = "Test-Base";
24642     version = "0.89";
24643     src = fetchurl {
24644       url = "mirror://cpan/authors/id/I/IN/INGY/Test-Base-0.89.tar.gz";
24645       hash = "sha256-J5Shqq6x06KH3SxyhiWGY3llYvfbnMxrQkvE8d6K0BQ=";
24646     };
24647     propagatedBuildInputs = [ Spiffy ];
24648     buildInputs = [ AlgorithmDiff TextDiff ];
24649     meta = {
24650       description = "A Data Driven Testing Framework";
24651       license = with lib.licenses; [ artistic1 gpl1Plus ];
24652     };
24653   };
24655   TestBits = buildPerlPackage {
24656     pname = "Test-Bits";
24657     version = "0.02";
24658     src = fetchurl {
24659       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Test-Bits-0.02.tar.gz";
24660       hash = "sha256-qYJvVkg6J+LGMVZZDzKKNjPjA3XBDfyJ9mkOOSneC8M=";
24661     };
24662     propagatedBuildInputs = [ ListAllUtils ];
24663     buildInputs = [ TestFatal ];
24664     meta = {
24665       description = "Provides a bits_is() subroutine for testing binary data";
24666       homepage = "https://metacpan.org/release/Test-Bits";
24667       license = with lib.licenses; [ artistic2 ];
24668     };
24669   };
24671   TestCheckDeps = buildPerlPackage {
24672     pname = "Test-CheckDeps";
24673     version = "0.010";
24674     src = fetchurl {
24675       url = "mirror://cpan/authors/id/L/LE/LEONT/Test-CheckDeps-0.010.tar.gz";
24676       hash = "sha256-ZvzMpsbzMOfsyJi9alGEbiFFs+AteMSZe6a33iO1Ue4=";
24677     };
24678     propagatedBuildInputs = [ CPANMetaCheck ];
24679     meta = {
24680       description = "Check for presence of dependencies";
24681       license = with lib.licenses; [ artistic1 gpl1Plus ];
24682     };
24683   };
24685   TestClass = buildPerlPackage {
24686     pname = "Test-Class";
24687     version = "0.52";
24688     src = fetchurl {
24689       url = "mirror://cpan/authors/id/S/SZ/SZABGAB/Test-Class-0.52.tar.gz";
24690       hash = "sha256-QMGx04jwqGdHacJ1KfDMNjTKD9nY9ysZbAUxYRk0vII=";
24691     };
24692     buildInputs = [ TestException ];
24693     propagatedBuildInputs = [ MROCompat ModuleRuntime TryTiny ];
24694     meta = {
24695       description = "Easily create test classes in an xUnit/JUnit style";
24696       license = with lib.licenses; [ artistic1 gpl1Plus ];
24697     };
24698   };
24700   TestClassMost = buildPerlModule {
24701     pname = "Test-Class-Most";
24702     version = "0.08";
24703     src = fetchurl {
24704       url = "mirror://cpan/authors/id/O/OV/OVID/Test-Class-Most-0.08.tar.gz";
24705       hash = "sha256-Y0ze2Gu6Xd4Hztcv+4pGcF/5OqhEuY6WveBVQCNMff8=";
24706     };
24707     buildInputs = [ TestClass TestDeep TestDifferences TestException TestMost TestWarn ];
24708     meta = {
24709       description = "Test Classes the easy way";
24710       license = with lib.licenses; [ artistic1 gpl1Plus ];
24711     };
24712   };
24714   TestCleanNamespaces = buildPerlPackage {
24715     pname = "Test-CleanNamespaces";
24716     version = "0.24";
24717     src = fetchurl {
24718       url = "mirror://cpan/authors/id/E/ET/ETHER/Test-CleanNamespaces-0.24.tar.gz";
24719       hash = "sha256-M41VaejommVJNfhD7AvISqpIb+jdGJj7nKs+zOzVMno=";
24720     };
24721     buildInputs = [ Filepushd Moo Mouse RoleTiny SubExporter TestDeep TestNeeds TestWarnings namespaceclean ];
24722     propagatedBuildInputs = [ PackageStash SubIdentify ];
24723     meta = {
24724       description = "Check for uncleaned imports";
24725       homepage = "https://github.com/karenetheridge/Test-CleanNamespaces";
24726       license = with lib.licenses; [ artistic1 gpl1Plus ];
24727     };
24728   };
24730   TestCmd = buildPerlPackage {
24731     pname = "Test-Cmd";
24732     version = "1.09";
24733     src = fetchurl {
24734       url = "mirror://cpan/authors/id/N/NE/NEILB/Test-Cmd-1.09.tar.gz";
24735       hash = "sha256-zzMg7N3nkeC4lFogwfbyZdkPHj2rGPHiPLZ3x51yloQ=";
24736     };
24737       doCheck = false; /* test fails */
24738     meta = {
24739       description = "Perl module for portable testing of commands and scripts";
24740       homepage = "https://github.com/neilb/Test-Cmd";
24741       license = with lib.licenses; [ artistic1 gpl1Plus ];
24742     };
24743   };
24745   TestCommand = buildPerlModule {
24746     pname = "Test-Command";
24747     version = "0.11";
24748     src = fetchurl {
24749       url = "mirror://cpan/authors/id/D/DA/DANBOO/Test-Command-0.11.tar.gz";
24750       hash = "sha256-KKP8b+pzoZ9WPxG9DygYZ1bUx0IHvm3qyq0m0ggblTM=";
24751     };
24752     meta = {
24753       description = "Test routines for external commands";
24754       homepage = "https://metacpan.org/release/Test-Command";
24755       license = with lib.licenses; [ artistic1 gpl1Plus ];
24756     };
24757   };
24759   TestCompile = buildPerlModule {
24760     pname = "Test-Compile";
24761     version = "3.3.1";
24762     src = fetchurl {
24763       url = "mirror://cpan/authors/id/E/EG/EGILES/Test-Compile-v3.3.1.tar.gz";
24764       hash = "sha256-gIRQ89Ref0GapNZo4pgodonp6jY4hpO/8YDXhwzj5iE=";
24765     };
24766     propagatedBuildInputs = [ UNIVERSALrequire ];
24767     meta = {
24768       description = "Assert that your Perl files compile OK";
24769       license = with lib.licenses; [ artistic1 gpl1Plus ];
24770     };
24771   };
24773   TestCPANMeta = buildPerlPackage {
24774     pname = "Test-CPAN-Meta";
24775     version = "0.25";
24776     src = fetchurl {
24777       url = "mirror://cpan/authors/id/B/BA/BARBIE/Test-CPAN-Meta-0.25.tar.gz";
24778       hash = "sha256-9VtPnPa8OW0P6AJyZ2hcsqxK/86JfQlnoxf6xttajbU=";
24779     };
24780     meta = {
24781       description = "Validate your CPAN META.json files";
24782       license = with lib.licenses; [ artistic2 ];
24783     };
24784   };
24786   TestCPANMetaJSON = buildPerlPackage {
24787     pname = "Test-CPAN-Meta-JSON";
24788     version = "0.16";
24789     src = fetchurl {
24790       url = "mirror://cpan/authors/id/B/BA/BARBIE/Test-CPAN-Meta-JSON-0.16.tar.gz";
24791       hash = "sha256-Z6xQmt/7HSslao+MBSPgB2HZYBZhksYHApj3CIqa6ck=";
24792     };
24793     propagatedBuildInputs = [ JSON ];
24794     meta = {
24795       description = "Validate your CPAN META.json files";
24796       license = with lib.licenses; [ artistic2 ];
24797     };
24798   };
24800   TestDataSplit = buildPerlModule {
24801     pname = "Test-Data-Split";
24802     version = "0.2.2";
24803     src = fetchurl {
24804       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-Data-Split-0.2.2.tar.gz";
24805       hash = "sha256-5Qg4kK2tMNfeUHA1adX1zvF0oZhZNSLqe0bOOHuCgCI=";
24806     };
24807     buildInputs = [ TestDifferences ];
24808     propagatedBuildInputs = [ IOAll ListMoreUtils MooX MooXlate ];
24809     meta = {
24810       description = "Split data-driven tests into several test scripts";
24811       homepage = "https://metacpan.org/release/Test-Data-Split";
24812       license = with lib.licenses; [ mit ];
24813     };
24814   };
24816   TestDeep = buildPerlPackage {
24817     pname = "Test-Deep";
24818     version = "1.204";
24819     src = fetchurl {
24820       url = "mirror://cpan/authors/id/R/RJ/RJBS/Test-Deep-1.204.tar.gz";
24821       hash = "sha256-tlkfbM3YU8fvyf88V1Y3BAMhHP/kYEfwgrHNFhGoTl8=";
24822     };
24823     meta = {
24824       description = "Extremely flexible deep comparison";
24825       homepage = "https://github.com/rjbs/Test-Deep";
24826       license = with lib.licenses; [ artistic1 gpl1Plus ];
24827     };
24828   };
24830   TestDeepJSON = buildPerlModule {
24831     pname = "Test-Deep-JSON";
24832     version = "0.05";
24833     src = fetchurl {
24834       url = "mirror://cpan/authors/id/M/MO/MOTEMEN/Test-Deep-JSON-0.05.tar.gz";
24835       hash = "sha256-rshXG54xtzAeJhMsEyxoAJUtwInGRddpVKOtGms1CFg=";
24836     };
24837     buildInputs = [ ModuleBuildTiny ];
24838     propagatedBuildInputs = [ ExporterLite JSONMaybeXS TestDeep ];
24839     meta = {
24840       description = "Compare JSON with Test::Deep";
24841       homepage = "https://github.com/motemen/perl5-Test-Deep-JSON";
24842       license = with lib.licenses; [ artistic1 gpl1Plus ];
24843     };
24844   };
24846   TestDeepType = buildPerlPackage {
24847     pname = "Test-Deep-Type";
24848     version = "0.008";
24849     src = fetchurl {
24850       url = "mirror://cpan/authors/id/E/ET/ETHER/Test-Deep-Type-0.008.tar.gz";
24851       hash = "sha256-bnvqGi8edTGaItHFGZbrrFDKXjZj0bwiMTCIfmLpWfE=";
24852     };
24853     buildInputs = [ TestFatal TestNeeds ];
24854     propagatedBuildInputs = [ TestDeep TryTiny ];
24855     meta = {
24856       description = "A Test::Deep plugin for validating type constraints";
24857       homepage = "https://github.com/karenetheridge/Test-Deep-Type";
24858       license = with lib.licenses; [ artistic1 gpl1Plus ];
24859     };
24860   };
24862   TestDiagINC = buildPerlPackage {
24863     pname = "Test-DiagINC";
24864     version = "0.010";
24865     src = fetchurl {
24866       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Test-DiagINC-0.010.tar.gz";
24867       hash = "sha256-W8uNNWxQnjWdU9hpwH79qo/uXWz5mJcBi5qRTOshIi4=";
24868     };
24869     buildInputs = [ CaptureTiny ];
24870     meta = {
24871       homepage = "https://github.com/dagolden/Test-DiagINC";
24872       description = "List modules and versions loaded if tests fail";
24873       license = lib.licenses.asl20;
24874     };
24875   };
24877   TestDir = buildPerlPackage {
24878     pname = "Test-Dir";
24879     version = "1.16";
24880     src = fetchurl {
24881       url = "mirror://cpan/authors/id/M/MT/MTHURN/Test-Dir-1.16.tar.gz";
24882       hash = "sha256-czKzI5E+tqJoTQlHVRljBLL4YG9w6quRNlTKkfJz6sI=";
24883     };
24884     meta = {
24885       description = "Test directory attributes";
24886       license = with lib.licenses; [ artistic1 gpl1Plus ];
24887     };
24888   };
24890   TestDifferences = buildPerlPackage {
24891     pname = "Test-Differences";
24892     version = "0.70";
24893     src = fetchurl {
24894       url = "mirror://cpan/authors/id/D/DC/DCANTRELL/Test-Differences-0.70.tar.gz";
24895       hash = "sha256-vuG1GGqpuif+0r8bBnRSDQvQzQUdkTOH+QhsH5SlaFQ=";
24896     };
24897     propagatedBuildInputs = [ CaptureTiny TextDiff ];
24898     meta = {
24899       description = "Test strings and data structures and show differences if not ok";
24900       license = with lib.licenses; [ artistic1 gpl1Plus ];
24901     };
24902   };
24904   TestDistManifest = buildPerlModule {
24905     pname = "Test-DistManifest";
24906     version = "1.014";
24907     src = fetchurl {
24908       url = "mirror://cpan/authors/id/E/ET/ETHER/Test-DistManifest-1.014.tar.gz";
24909       hash = "sha256-PSbCDfQmKJgcv8+lscoCjGzq2zRMHc+XolrWqItz18U=";
24910     };
24911     buildInputs = [ ModuleBuildTiny ];
24912     propagatedBuildInputs = [ ModuleManifest ];
24913     meta = {
24914       description = "Author test that validates a package MANIFEST";
24915       homepage = "https://github.com/jawnsy/Test-DistManifest";
24916       license = with lib.licenses; [ artistic1 gpl1Plus ];
24917     };
24918   };
24920   TestEOL = buildPerlPackage {
24921     pname = "Test-EOL";
24922     version = "2.02";
24923     src = fetchurl {
24924       url = "mirror://cpan/authors/id/E/ET/ETHER/Test-EOL-2.02.tar.gz";
24925       hash = "sha256-KDGZ1/sngH/iImr3sSVxxtwlCNjlwP61BdCJ0xcgr8Q=";
24926     };
24927     meta = {
24928       description = "Check the correct line endings in your project";
24929       homepage = "https://github.com/karenetheridge/Test-EOL";
24930       license = with lib.licenses; [ artistic1 gpl1Plus ];
24931     };
24932   };
24934   TestException = buildPerlPackage {
24935     pname = "Test-Exception";
24936     version = "0.43";
24937     src = fetchurl {
24938       url = "mirror://cpan/authors/id/E/EX/EXODIST/Test-Exception-0.43.tar.gz";
24939       hash = "sha256-FWsT8Hdk92bYtFpDco8kOa+Bo1EmJUON6reDt4g+tTM=";
24940     };
24941     propagatedBuildInputs = [ SubUplevel ];
24942     meta = {
24943       description = "Test exception-based code";
24944       license = with lib.licenses; [ artistic1 gpl1Plus ];
24945     };
24946   };
24948   TestExpect = buildPerlPackage {
24949     pname = "Test-Expect";
24950     version = "0.34";
24951     src = fetchurl {
24952       url = "mirror://cpan/authors/id/B/BP/BPS/Test-Expect-0.34.tar.gz";
24953       hash = "sha256-Jij87N2l9km9JTI/ZGuWoaB+RVfK3LMnybrU3EG7uZk=";
24954     };
24955     propagatedBuildInputs = [ ClassAccessorChained ExpectSimple ];
24956     meta = {
24957       description = "Automated driving and testing of terminal-based programs";
24958       license = with lib.licenses; [ artistic1 gpl1Plus ];
24959     };
24960   };
24962   TestFailWarnings = buildPerlPackage {
24963     pname = "Test-FailWarnings";
24964     version = "0.008";
24965     src = fetchurl {
24966       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Test-FailWarnings-0.008.tar.gz";
24967       hash = "sha256-2jTvkCn2hJ1gJiAdSRJ9BU7mrEuXnIIhAxX1chlkqW8=";
24968     };
24969     buildInputs = [ CaptureTiny ];
24970     meta = {
24971       description = "Add test failures if warnings are caught";
24972       homepage = "https://github.com/dagolden/Test-FailWarnings";
24973       license = with lib.licenses; [ asl20 ];
24974     };
24975   };
24977   TestFakeHTTPD = buildPerlModule {
24978     pname = "Test-Fake-HTTPD";
24979     version = "0.09";
24980     src = fetchurl {
24981       url = "mirror://cpan/authors/id/M/MA/MASAKI/Test-Fake-HTTPD-0.09.tar.gz";
24982       hash = "sha256-FPecsGepCSLpvlVPjks509aXeK5Mj/9E9WD2N/tvLR4=";
24983     };
24984     propagatedBuildInputs = [ HTTPDaemon Plack ];
24985     buildInputs = [ LWP ModuleBuildTiny TestException TestSharedFork TestTCP TestUseAllModules ];
24986     meta = {
24987       description = "A fake HTTP server";
24988       homepage = "https://github.com/masaki/Test-Fake-HTTPD";
24989       license = with lib.licenses; [ artistic1 gpl1Plus ];
24990     };
24991   };
24993   TestFatal = buildPerlPackage {
24994     pname = "Test-Fatal";
24995     version = "0.017";
24996     src = fetchurl {
24997       url = "mirror://cpan/authors/id/R/RJ/RJBS/Test-Fatal-0.017.tar.gz";
24998       hash = "sha256-N9//2vuEt2Lv6WsC+yqkHzcCbHPmuDWQ23YilpfzxKY=";
24999     };
25000     propagatedBuildInputs = [ TryTiny ];
25001     meta = {
25002       description = "Incredibly simple helpers for testing code with exceptions";
25003       homepage = "https://github.com/rjbs/Test-Fatal";
25004       license = with lib.licenses; [ artistic1 gpl1Plus ];
25005     };
25006   };
25008   TestFile = buildPerlPackage {
25009     pname = "Test-File";
25010     version = "1.993";
25011     src = fetchurl {
25012       url = "mirror://cpan/authors/id/B/BD/BDFOY/Test-File-1.993.tar.gz";
25013       hash = "sha256-7y/+Gq7HtC2HStQR7GR1R7m5vC9fuT5J4zmUiEVq/Ho=";
25014     };
25015     meta = {
25016       description = "Test file attributes";
25017       homepage = "https://github.com/briandfoy/test-file";
25018       license = with lib.licenses; [ artistic2 ];
25019     };
25020   };
25022   TestFileContents = buildPerlPackage {
25023     pname = "Test-File-Contents";
25024     version = "0.242";
25025     src = fetchurl {
25026       url = "mirror://cpan/authors/id/A/AR/ARISTOTLE/Test-File-Contents-0.242.tar.gz";
25027       hash = "sha256-qDisC29uEOiWE7UMphdzzbqbpHh7qC57tl2q9whKpQs=";
25028     };
25029     propagatedBuildInputs = [ TextDiff ];
25030     meta = {
25031       description = "Test routines for examining the contents of files";
25032       license = with lib.licenses; [ artistic1 gpl1Plus ];
25033     };
25034   };
25036   TestFileShareDir = buildPerlPackage {
25037     pname = "Test-File-ShareDir";
25038     version = "1.001002";
25039     src = fetchurl {
25040       url = "mirror://cpan/authors/id/K/KE/KENTNL/Test-File-ShareDir-1.001002.tar.gz";
25041       hash = "sha256-szZHy7Sy8vz73k+LtDg9CslcL4nExXcOtpHxZDozeq0=";
25042     };
25043     buildInputs = [ TestFatal ];
25044     propagatedBuildInputs = [ ClassTiny FileCopyRecursive FileShareDir PathTiny ScopeGuard ];
25045     meta = {
25046       description = "Create a Fake ShareDir for your modules for testing";
25047       homepage = "https://github.com/kentnl/Test-File-ShareDir";
25048       license = with lib.licenses; [ artistic1 gpl1Plus ];
25049     };
25050   };
25052   TestFilename = buildPerlPackage {
25053     pname = "Test-Filename";
25054     version = "0.03";
25055     src = fetchurl {
25056       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Test-Filename-0.03.tar.gz";
25057       hash = "sha256-akUMxMYoHtESnzKhwHQfIoln/touMqKRX/Yhw2Ul/L4=";
25058     };
25059     propagatedBuildInputs = [ PathTiny ];
25060     meta = {
25061       description = "Portable filename comparison";
25062       homepage = "https://metacpan.org/release/Test-Filename";
25063       license = with lib.licenses; [ asl20 ];
25064     };
25065   };
25067   TestFork = buildPerlModule {
25068     pname = "Test-Fork";
25069     version = "0.02";
25070     src = fetchurl {
25071       url = "mirror://cpan/authors/id/M/MS/MSCHWERN/Test-Fork-0.02.tar.gz";
25072       hash = "sha256-/P77+yT4havoJ8KtB6w9Th/s8hOhRxf8rzw3F1BF0D4=";
25073     };
25074     meta = {
25075       description = "Test code which forks";
25076       license = with lib.licenses; [ artistic1 gpl1Plus ];
25077     };
25078   };
25080   TestFutureIOImpl = buildPerlModule {
25081     pname = "Test-Future-IO-Impl";
25082     version = "0.14";
25083     src = fetchurl {
25084       url = "mirror://cpan/authors/id/P/PE/PEVANS/Test-Future-IO-Impl-0.14.tar.gz";
25085       hash = "sha256-AH22GdPUljQyXFbvvKDh5Vdt0z95RV8t6llb5u344jU=";
25086     };
25087     propagatedBuildInputs = [ Test2Suite ];
25088     meta = {
25089       description = "Acceptance tests for C<Future::IO> implementations";
25090       license = with lib.licenses; [ artistic1 gpl1Plus ];
25091     };
25092   };
25094   TestHarnessStraps = buildPerlModule {
25095     pname = "Test-Harness-Straps";
25096     version = "0.30";
25097     src = fetchurl {
25098       url = "mirror://cpan/authors/id/M/MS/MSCHWERN/Test-Harness-Straps-0.30.tar.gz";
25099       hash = "sha256-iwDvqjVyPBo1yMj1+kapnkvFKN+lIDUrVKxBjvbRz6g=";
25100     };
25101     meta = {
25102       description = "Detailed analysis of test results";
25103       license = with lib.licenses; [ artistic1 gpl1Plus ];
25104     };
25105   };
25107   TestHexDifferences = buildPerlPackage {
25108     pname = "Test-HexDifferences";
25109     version = "1.001";
25110     src = fetchurl {
25111       url = "mirror://cpan/authors/id/S/ST/STEFFENW/Test-HexDifferences-1.001.tar.gz";
25112       hash = "sha256-pjlF7N1CCvwxEJT5OiIM+zXfIyQt5hnlO6Z0d6E2kKI=";
25113     };
25114     propagatedBuildInputs = [ SubExporter TextDiff ];
25115     buildInputs = [ TestDifferences TestNoWarnings ];
25116     meta = {
25117       description = "Test binary as hexadecimal string";
25118       license = with lib.licenses; [ artistic1 gpl1Plus ];
25119     };
25120   };
25122   TestHexString = buildPerlModule {
25123     pname = "Test-HexString";
25124     version = "0.03";
25125     src = fetchurl {
25126       url = "mirror://cpan/authors/id/P/PE/PEVANS/Test-HexString-0.03.tar.gz";
25127       hash = "sha256-fUxM3BkvJZTceP916yz00FYfeUs27g6s7oxKGqigP0A=";
25128     };
25129     meta = {
25130       description = "Test binary strings with hex dump diagnostics";
25131       license = with lib.licenses; [ artistic1 gpl1Plus ];
25132     };
25133   };
25135   TestIdentity = buildPerlModule {
25136     pname = "Test-Identity";
25137     version = "0.01";
25138     src = fetchurl {
25139       url = "mirror://cpan/authors/id/P/PE/PEVANS/Test-Identity-0.01.tar.gz";
25140       hash = "sha256-LwIFAJrtFSZoGCqvoWNXqx9HtMvAAeiYcbZzh++OXyM=";
25141     };
25142     meta = {
25143       description = "Assert the referential identity of a reference";
25144       license = with lib.licenses; [ artistic1 gpl1Plus ];
25145     };
25146   };
25148   TestHTTPServerSimple = buildPerlPackage {
25149     pname = "Test-HTTP-Server-Simple";
25150     version = "0.11";
25151     src = fetchurl {
25152       url = "mirror://cpan/authors/id/A/AL/ALEXMV/Test-HTTP-Server-Simple-0.11.tar.gz";
25153       hash = "sha256-hcl+vU3rgFKRsXJ3Ay2kiAcijyT4mxzi+zwJ96iWu3g=";
25154     };
25155     propagatedBuildInputs = [ HTTPServerSimple ];
25156     meta = {
25157       description = "Test::More functions for HTTP::Server::Simple";
25158       license = with lib.licenses; [ artistic1 gpl1Plus ];
25159     };
25160   };
25162   TestJSON = buildPerlModule {
25163     pname = "Test-JSON";
25164     version = "0.11";
25165     src = fetchurl {
25166       url = "mirror://cpan/authors/id/O/OV/OVID/Test-JSON-0.11.tar.gz";
25167       hash = "sha256-B8CKsvzBKFDRrVT89q/prRoloJgxDD5xQq8dPLgh17M=";
25168     };
25169     propagatedBuildInputs = [ JSONAny ];
25170     buildInputs = [ TestDifferences ];
25171     meta = {
25172       description = "Test JSON data";
25173       license = with lib.licenses; [ artistic1 gpl1Plus ];
25174     };
25175   };
25177   TestKwalitee = buildPerlPackage {
25178     pname = "Test-Kwalitee";
25179     version = "1.28";
25180     src = fetchurl {
25181       url = "mirror://cpan/authors/id/E/ET/ETHER/Test-Kwalitee-1.28.tar.gz";
25182       hash = "sha256-tFNs3XVbWXciMtQyXae9T7f1vlC0WF27r3WO7DBiQ6M=";
25183     };
25184     propagatedBuildInputs = [ ModuleCPANTSAnalyse ];
25185     buildInputs = [ CPANMetaCheck TestDeep TestWarnings ];
25186     meta = {
25187       description = "Test the Kwalitee of a distribution before you release it";
25188       homepage = "https://github.com/karenetheridge/Test-Kwalitee";
25189       license = with lib.licenses; [ artistic1 gpl1Plus ];
25190       mainProgram = "kwalitee-metrics";
25191     };
25192   };
25194   TestLWPUserAgent = buildPerlPackage {
25195     pname = "Test-LWP-UserAgent";
25196     version = "0.036";
25197     src = fetchurl {
25198       url = "mirror://cpan/authors/id/E/ET/ETHER/Test-LWP-UserAgent-0.036.tar.gz";
25199       hash = "sha256-BTJ1MNNGuAphpulD+9dJmGvcqJIRpOswHAjC0XkxThE=";
25200     };
25201     propagatedBuildInputs = [ LWP SafeIsa namespaceclean ];
25202     buildInputs = [ PathTiny Plack TestDeep TestFatal TestNeeds TestRequiresInternet TestWarnings ];
25203     meta = {
25204       description = "A LWP::UserAgent suitable for simulating and testing network calls";
25205       homepage = "https://github.com/karenetheridge/Test-LWP-UserAgent";
25206       license = with lib.licenses; [ artistic1 gpl1Plus ];
25207     };
25208   };
25210   TestLeakTrace = buildPerlPackage {
25211     pname = "Test-LeakTrace";
25212     version = "0.17";
25213     src = fetchurl {
25214       url = "mirror://cpan/authors/id/L/LE/LEEJO/Test-LeakTrace-0.17.tar.gz";
25215       hash = "sha256-d31k0pOPXqWGMA7vl+8D6stD1MGFPJw7EJHrMxFGeXA=";
25216     };
25217     meta = {
25218       description = "Traces memory leaks";
25219       homepage = "https://metacpan.org/release/Test-LeakTrace";
25220       license = with lib.licenses; [ artistic1 gpl1Plus ];
25221     };
25222   };
25224   TestLectroTest = buildPerlPackage {
25225     pname = "Test-LectroTest";
25226     version = "0.5001";
25227     src = fetchurl {
25228       url = "mirror://cpan/authors/id/T/TM/TMOERTEL/Test-LectroTest-0.5001.tar.gz";
25229       hash = "sha256-rCtPDZWJmvGhoex4TLdAsrkCVqvuEcg+eykRA+ye1zU=";
25230     };
25231     meta = {
25232       description = "Easy, automatic, specification-based tests";
25233       license = with lib.licenses; [ artistic1 gpl1Plus ];
25234     };
25235   };
25237   TestLoadAllModules = buildPerlPackage {
25238     pname = "Test-LoadAllModules";
25239     version = "0.022";
25240     src = fetchurl {
25241       url = "mirror://cpan/authors/id/K/KI/KITANO/Test-LoadAllModules-0.022.tar.gz";
25242       hash = "sha256-G4YfVVAgZIp0gdStKBqJ5iQYf4lDepizRjVpGyZeXP4=";
25243     };
25244     propagatedBuildInputs = [ ListMoreUtils ModulePluggable ];
25245     meta = {
25246       description = "Do use_ok for modules in search path";
25247       license = with lib.licenses; [ artistic1 gpl1Plus ];
25248     };
25249   };
25251   TestLongString = buildPerlPackage {
25252     pname = "Test-LongString";
25253     version = "0.17";
25254     src = fetchurl {
25255       url = "mirror://cpan/authors/id/R/RG/RGARCIA/Test-LongString-0.17.tar.gz";
25256       hash = "sha256-q8Q0nq8E0b7B5GQWajAYWR6oRtjzxcnIr0rEkF0+l08=";
25257     };
25258     meta = {
25259       description = "Tests strings for equality, with more helpful failures";
25260       license = with lib.licenses; [ artistic1 gpl1Plus ];
25261     };
25262   };
25264   TestMemoryCycle = buildPerlPackage {
25265     pname = "Test-Memory-Cycle";
25266     version = "1.06";
25267     src = fetchurl {
25268       url = "mirror://cpan/authors/id/P/PE/PETDANCE/Test-Memory-Cycle-1.06.tar.gz";
25269       hash = "sha256-nVPd/clkzYRUyw2kxpW2o65HtFg5KRw0y52NHPqrMgI=";
25270     };
25271     propagatedBuildInputs = [ DevelCycle PadWalker ];
25272     meta = {
25273       description = "Verifies code hasn't left circular references";
25274       license = with lib.licenses; [ artistic2 ];
25275     };
25276   };
25278   TestMemoryGrowth = buildPerlModule {
25279     pname = "Test-MemoryGrowth";
25280     version = "0.04";
25281     src = fetchurl {
25282       url = "mirror://cpan/authors/id/P/PE/PEVANS/Test-MemoryGrowth-0.04.tar.gz";
25283       hash = "sha256-oGWFJ1Kr1J5BFbmPbbRsdSy71ePkjtAUXO45L3k9LtA=";
25284     };
25285     meta = {
25286       description = "Assert that code does not cause growth in memory usage";
25287       license = with lib.licenses; [ artistic1 gpl1Plus ];
25288       broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.TestMemoryGrowth.x86_64-darwin
25289     };
25290   };
25292   TestMetricsAny = buildPerlModule {
25293     pname = "Test-Metrics-Any";
25294     version = "0.01";
25295     src = fetchurl {
25296       url = "mirror://cpan/authors/id/P/PE/PEVANS/Test-Metrics-Any-0.01.tar.gz";
25297       hash = "sha256-JQbIjU6yGydLEIX4BskY3Ml//2nhbRJJ5uGdlDYl5Gg=";
25298     };
25299     propagatedBuildInputs = [ MetricsAny ];
25300     meta = {
25301       description = "Assert that code produces metrics via Metrics::Any";
25302       license = with lib.licenses; [ artistic1 gpl1Plus ];
25303     };
25304   };
25306   TestMockClass = buildPerlModule {
25307     pname = "Test-Mock-Class";
25308     version = "0.0303";
25309     src = fetchurl {
25310       url = "mirror://cpan/authors/id/D/DE/DEXTER/Test-Mock-Class-0.0303.tar.gz";
25311       hash = "sha256-zS5S/inKCrtsLmGvvDP7Qui+tCGzhL5rwGSs8xl28wI=";
25312     };
25313     buildInputs = [ ClassInspector TestAssert TestUnitLite ];
25314     propagatedBuildInputs = [ FatalException Moose namespaceclean ];
25315     meta = {
25316       description = "Simulating other classes";
25317       license = with lib.licenses; [ lgpl2Plus ];
25318     };
25319   };
25321   TestMockGuard = buildPerlModule {
25322     pname = "Test-Mock-Guard";
25323     version = "0.10";
25324     src = fetchurl {
25325       url = "mirror://cpan/authors/id/X/XA/XAICRON/Test-Mock-Guard-0.10.tar.gz";
25326       hash = "sha256-fyKKY/jWzrkqp4QIChPoUHMSGyg17KBteU+XCZUNvT0=";
25327     };
25328     propagatedBuildInputs = [ ClassLoad ];
25329     meta = {
25330       description = "Simple mock test library using RAII";
25331       homepage = "https://github.com/zigorou/p5-test-mock-guard";
25332       license = with lib.licenses; [ artistic1 gpl1Plus ];
25333     };
25334   };
25336   TestMockHTTPTiny = buildPerlPackage {
25337     pname = "Test-Mock-HTTP-Tiny";
25338     version = "0.002";
25339     src = fetchurl {
25340       url = "mirror://cpan/authors/id/O/OD/ODYNIEC/Test-Mock-HTTP-Tiny-0.002.tar.gz";
25341       hash = "sha256-+c+tfYUEZQvtNJO8bSyoLXuRvDcTyGxDXnXriKxb5eY=";
25342     };
25343     propagatedBuildInputs = [ TestDeep URI ];
25344     meta = {
25345       description = "Record and replay HTTP requests/responses with HTTP::Tiny";
25346       homepage = "https://github.com/odyniec/p5-Test-Mock-HTTP-Tiny";
25347       license = with lib.licenses; [ artistic1 gpl1Plus ];
25348     };
25349   };
25351   TestMockModule = buildPerlModule {
25352     pname = "Test-MockModule";
25353     version = "0.177.0";
25354     src = fetchurl {
25355       url = "mirror://cpan/authors/id/G/GF/GFRANKS/Test-MockModule-v0.177.0.tar.gz";
25356       hash = "sha256-G9p6SdzqdgdtQKe2psPz4V5rGchLYXHfRFNNkROPEEU=";
25357     };
25358     propagatedBuildInputs = [ SUPER ];
25359     buildInputs = [ TestWarnings ];
25360     meta = {
25361       description = "Override subroutines in a module for unit testing";
25362       license = with lib.licenses; [ artistic1 gpl1Plus ];
25363     };
25364   };
25366   SUPER = buildPerlModule {
25367     pname = "SUPER";
25368     version = "1.20190531";
25369     src = fetchurl {
25370       url = "mirror://cpan/authors/id/C/CH/CHROMATIC/SUPER-1.20190531.tar.gz";
25371       hash = "sha256-aF0e525/DpAGlCkjv334sRwQcTKZKRdZPc9zl9QX05o=";
25372     };
25373     propagatedBuildInputs = [ SubIdentify ];
25374     meta = {
25375       description = "Control superclass method dispatch";
25376       license = with lib.licenses; [ artistic1 gpl1Plus ];
25377     };
25378   };
25381   TestMockObject = buildPerlPackage {
25382     pname = "Test-MockObject";
25383     version = "1.20200122";
25384     src = fetchurl {
25385       url = "mirror://cpan/authors/id/C/CH/CHROMATIC/Test-MockObject-1.20200122.tar.gz";
25386       hash = "sha256-K3+A2of1pv4DYNnuUhBRBTAXRCw6Juhdto36yfgwdiM=";
25387     };
25388     buildInputs = [ TestException TestWarn ];
25389     propagatedBuildInputs = [ UNIVERSALcan UNIVERSALisa ];
25390     meta = {
25391       description = "Perl extension for emulating troublesome interfaces";
25392       license = with lib.licenses; [ artistic1 gpl1Plus ];
25393     };
25394   };
25396   TestMockTime = buildPerlPackage {
25397     pname = "Test-MockTime";
25398     version = "0.17";
25399     src = fetchurl {
25400       url = "mirror://cpan/authors/id/D/DD/DDICK/Test-MockTime-0.17.tar.gz";
25401       hash = "sha256-M2PhGLJgbx1qvJVvIrDQkQl3K3CGFV+1ycf5gzUGAvk=";
25402     };
25403     meta = {
25404       description = "Replaces actual time with simulated time";
25405       license = with lib.licenses; [ artistic1 gpl1Plus ];
25406     };
25407   };
25409   TestMockTimeHiRes = buildPerlModule {
25410     pname = "Test-MockTime-HiRes";
25411     version = "0.08";
25412     src = fetchurl {
25413       url = "mirror://cpan/authors/id/T/TA/TARAO/Test-MockTime-HiRes-0.08.tar.gz";
25414       hash = "sha256-X0n3rviV0yfa/fJ0TznBdsirDkuCJ9LW495omiWb3sE=";
25415     };
25416     buildInputs = [ AnyEvent ModuleBuildTiny TestClass TestRequires ];
25417     propagatedBuildInputs = [ TestMockTime ];
25418     meta = {
25419       description = "Replaces actual time with simulated high resolution time";
25420       homepage = "https://github.com/tarao/perl5-Test-MockTime-HiRes";
25421       license = with lib.licenses; [ artistic1 gpl1Plus ];
25422     };
25423   };
25425   TestMojibake = buildPerlPackage {
25426     pname = "Test-Mojibake";
25427     version = "1.3";
25428     src = fetchurl {
25429       url = "mirror://cpan/authors/id/S/SY/SYP/Test-Mojibake-1.3.tar.gz";
25430       hash = "sha256-j/51/5tpNSSIcn3Kc9uR+KoUtZ8voQTrdxfA1xpfGzM=";
25431     };
25432     meta = {
25433       description = "Check your source for encoding misbehavior";
25434       homepage = "https://github.com/creaktive/Test-Mojibake";
25435       license = with lib.licenses; [ artistic1 gpl1Plus ];
25436       mainProgram = "scan_mojibake";
25437     };
25438   };
25440   TestMoreUTF8 = buildPerlPackage {
25441     pname = "Test-More-UTF8";
25442     version = "0.05";
25443     src = fetchurl {
25444       url = "mirror://cpan/authors/id/M/MO/MONS/Test-More-UTF8-0.05.tar.gz";
25445       hash = "sha256-ufHEs2qXzf76pT7REV3Tj0tIMDd3X2VZ7h3xSs/RzgQ=";
25446     };
25447     meta = {
25448       description = "Enhancing Test::More for UTF8-based projects";
25449       license = with lib.licenses; [ artistic1 gpl1Plus ];
25450     };
25451   };
25453   TestMost = buildPerlPackage {
25454     pname = "Test-Most";
25455     version = "0.38";
25456     src = fetchurl {
25457       url = "mirror://cpan/authors/id/O/OV/OVID/Test-Most-0.38.tar.gz";
25458       hash = "sha256-CJ64lPe6zkw3xjNODikOsgM47hAiOvDILL5ygceDgt8=";
25459     };
25460     propagatedBuildInputs = [ ExceptionClass ];
25461     buildInputs = [ TestDeep TestDifferences TestException TestWarn ];
25462     meta = {
25463       description = "Most commonly needed test functions and features";
25464       license = with lib.licenses; [ artistic1 gpl1Plus ];
25465     };
25466   };
25468   Testmysqld = buildPerlModule {
25469     pname = "Test-mysqld";
25470     version = "1.0013";
25471     src = fetchurl {
25472       url = "mirror://cpan/authors/id/S/SO/SONGMU/Test-mysqld-1.0013.tar.gz";
25473       hash = "sha256-V61BoJBXyWO1gsgaB276UPpW664hd9gwd33oOGBePu8=";
25474     };
25475     buildInputs = [ pkgs.which ModuleBuildTiny TestSharedFork ];
25476     propagatedBuildInputs = [ ClassAccessorLite DBDmysql FileCopyRecursive ];
25477     meta = {
25478       description = "Mysqld runner for tests";
25479       homepage = "https://github.com/kazuho/p5-test-mysqld";
25480       license = with lib.licenses; [ artistic1 gpl1Plus ];
25481       maintainers = [ maintainers.sgo ];
25482     };
25483   };
25485   TestNeeds = buildPerlPackage {
25486     pname = "Test-Needs";
25487     version = "0.002010";
25488     src = fetchurl {
25489       url = "mirror://cpan/authors/id/H/HA/HAARG/Test-Needs-0.002010.tar.gz";
25490       hash = "sha256-kj/9x4/LqWYJdT5LriawugGGiT3kpjzVI24BLHyQ4gg=";
25491     };
25492     meta = {
25493       description = "Skip tests when modules not available";
25494       license = with lib.licenses; [ artistic1 gpl1Plus ];
25495     };
25496   };
25498   TestNoTabs = buildPerlPackage {
25499     pname = "Test-NoTabs";
25500     version = "2.02";
25501     src = fetchurl {
25502       url = "mirror://cpan/authors/id/E/ET/ETHER/Test-NoTabs-2.02.tar.gz";
25503       hash = "sha256-+3XGo4ch8BaeEcHn2+UyntchaIWgsBEj80LdhtM1YDA=";
25504     };
25505     meta = {
25506       description = "Check the presence of tabs in your project";
25507       homepage = "https://github.com/karenetheridge/Test-NoTabs";
25508       license = with lib.licenses; [ artistic1 gpl1Plus ];
25509     };
25510   };
25512   TestNoWarnings = buildPerlPackage {
25513     pname = "Test-NoWarnings";
25514     version = "1.06";
25515     src = fetchurl {
25516       url = "mirror://cpan/authors/id/H/HA/HAARG/Test-NoWarnings-1.06.tar.gz";
25517       hash = "sha256-wtxRFDt+tjIxIQ4n3yDSyDk3cuCjM1R+yLeiBe1i9zc=";
25518     };
25519     meta = {
25520       description = "Make sure you didn't emit any warnings while testing";
25521       license = with lib.licenses; [ lgpl21Only ];
25522     };
25523   };
25525   TestObject = buildPerlPackage {
25526     pname = "Test-Object";
25527     version = "0.08";
25528     src = fetchurl {
25529       url = "mirror://cpan/authors/id/E/ET/ETHER/Test-Object-0.08.tar.gz";
25530       hash = "sha256-ZSeJZBR4NzE/QQjlW1lnboo2TW7fAbPcGYruiUqx0Ls=";
25531     };
25532     meta = {
25533       description = "Thoroughly testing objects via registered handlers";
25534       license = with lib.licenses; [ artistic1 gpl1Plus ];
25535     };
25536   };
25538   TestOutput = buildPerlPackage {
25539     pname = "Test-Output";
25540     version = "1.034";
25541     src = fetchurl {
25542       url = "mirror://cpan/authors/id/B/BD/BDFOY/Test-Output-1.034.tar.gz";
25543       hash = "sha256-zULigBwNK0gtGMn7SwbHVwVIGLy7KCTl378zrXo9aaA=";
25544     };
25545     propagatedBuildInputs = [ CaptureTiny ];
25546     meta = {
25547       description = "Utilities to test STDOUT and STDERR messages";
25548       license = with lib.licenses; [ artistic2 ];
25549     };
25550   };
25552   TestPAUSEPermissions = buildPerlPackage {
25553     pname = "Test-PAUSE-Permissions";
25554     version = "0.07";
25555     src = fetchurl {
25556       url = "mirror://cpan/authors/id/S/SK/SKAJI/Test-PAUSE-Permissions-0.07.tar.gz";
25557       hash = "sha256-VXDBu/KbxjeoRWcIuaJ0bPT8usE3SF7f82D48I5xBz4=";
25558     };
25559     propagatedBuildInputs = [ ConfigIdentity PAUSEPermissions ParseLocalDistribution ];
25560     buildInputs = [ ExtUtilsMakeMakerCPANfile TestUseAllModules ];
25561     meta = {
25562       description = "Tests module permissions in your distribution";
25563       license = with lib.licenses; [ artistic1 gpl1Plus ];
25564     };
25565   };
25567   TestPerlCritic = buildPerlModule {
25568     pname = "Test-Perl-Critic";
25569     version = "1.04";
25570     src = fetchurl {
25571       url = "mirror://cpan/authors/id/P/PE/PETDANCE/Test-Perl-Critic-1.04.tar.gz";
25572       hash = "sha256-KPgGtUEseQi1bPFnMIS4tEzhy1TJQX14TZFCjhoECW4=";
25573     };
25574     propagatedBuildInputs = [ MCE PerlCritic ];
25575     meta = {
25576       description = "Use Perl::Critic in test programs";
25577       license = with lib.licenses; [ artistic1 gpl1Plus ];
25578     };
25579   };
25581   TestPerlTidy = buildPerlModule rec {
25582     pname = "Test-PerlTidy";
25583     version = "20230226";
25584     src = fetchurl {
25585       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-PerlTidy-20230226.tar.gz";
25586       hash = "sha256-wOJCEQeVeV1Nu2xEFmzlV09cftuninidG8rnZoXYA8E=";
25587     };
25588     propagatedBuildInputs = [ PathTiny PerlTidy TextDiff ];
25589     buildInputs = [ TestPerlCritic ];
25590     meta = {
25591       description = "Check that all your files are tidy";
25592       homepage = "https://metacpan.org/release/Test-PerlTidy";
25593       license = with lib.licenses; [ artistic1 gpl1Plus ];
25594     };
25595   };
25597   TestPod = buildPerlPackage {
25598     pname = "Test-Pod";
25599     version = "1.52";
25600     src = fetchurl {
25601       url = "mirror://cpan/authors/id/E/ET/ETHER/Test-Pod-1.52.tar.gz";
25602       hash = "sha256-YKjbzGAWi/HapcwjUCNt+TQ+mHj0q5gwlwpd3m/o5fw=";
25603     };
25604     meta = {
25605       description = "Check for POD errors in files";
25606       homepage = "https://search.cpan.org/dist/Test-Pod";
25607       license = with lib.licenses; [ artistic1 gpl1Plus ];
25608     };
25609   };
25611   TestPodCoverage = buildPerlPackage {
25612     pname = "Test-Pod-Coverage";
25613     version = "1.10";
25614     src = fetchurl {
25615       url = "mirror://cpan/authors/id/N/NE/NEILB/Test-Pod-Coverage-1.10.tar.gz";
25616       hash = "sha256-SMnMqffZnu50EXZEW0Ma3wnAKeGqV8RwPJ9G92AdQNQ=";
25617     };
25618     propagatedBuildInputs = [ PodCoverage ];
25619     meta = {
25620       description = "Check for pod coverage in your distribution";
25621       license = with lib.licenses; [ artistic2 ];
25622     };
25623   };
25625   TestPodLinkCheck = buildPerlModule {
25626     pname = "Test-Pod-LinkCheck";
25627     version = "0.008";
25628     src = fetchurl {
25629       url = "mirror://cpan/authors/id/A/AP/APOCAL/Test-Pod-LinkCheck-0.008.tar.gz";
25630       hash = "sha256-K/53EXPDi2nusIlQTj92URuOReap5trD5hbkAOpnvPA=";
25631     };
25632     buildInputs = [ ModuleBuildTiny TestPod ];
25633     propagatedBuildInputs = [ CaptureTiny Moose podlinkcheck ];
25634     meta = {
25635       description = "Tests POD for invalid links";
25636       homepage = "https://search.cpan.org/dist/Test-Pod-LinkCheck";
25637       license = with lib.licenses; [ artistic1 gpl1Plus ];
25638     };
25639   };
25641   TestPodNo404s = buildPerlModule {
25642     pname = "Test-Pod-No404s";
25643     version = "0.02";
25644     src = fetchurl {
25645       url = "mirror://cpan/authors/id/A/AP/APOCAL/Test-Pod-No404s-0.02.tar.gz";
25646       hash = "sha256-EcYGBW/WK9ROB5977wbEWapYnuhc3tv6DMMl6jV8jnk=";
25647     };
25648     propagatedBuildInputs = [ LWP URIFind ];
25649     buildInputs = [ ModuleBuildTiny TestPod ];
25650     meta = {
25651       description = "Using this test module will check your POD for any http 404 links";
25652       homepage = "https://search.cpan.org/dist/Test-Pod-No404s";
25653       license = with lib.licenses; [ artistic1 gpl1Plus ];
25654     };
25655   };
25657   TestPortabilityFiles = buildPerlPackage {
25658     pname = "Test-Portability-Files";
25659     version = "0.10";
25660     src = fetchurl {
25661       url = "mirror://cpan/authors/id/A/AB/ABRAXXA/Test-Portability-Files-0.10.tar.gz";
25662       hash = "sha256-COS0MkktwbRLVdXbV5Uut2N5x/Q07o8WrKZNSR9AGhY=";
25663     };
25664     meta = {
25665       description = "Check file names portability";
25666       license = with lib.licenses; [ artistic1 gpl1Plus ];
25667     };
25668   };
25670   TestRefcount = buildPerlModule {
25671     pname = "Test-Refcount";
25672     version = "0.10";
25673     src = fetchurl {
25674       url = "mirror://cpan/authors/id/P/PE/PEVANS/Test-Refcount-0.10.tar.gz";
25675       hash = "sha256-BFfCCklWRz0VfE+q/4gUFUvJP24rVDwoEqGf+OM3DrI=";
25676     };
25677     meta = {
25678       description = "Assert reference counts on objects";
25679       license = with lib.licenses; [ artistic1 gpl1Plus ];
25680     };
25681   };
25683   TestRequires = buildPerlPackage {
25684     pname = "Test-Requires";
25685     version = "0.11";
25686     src = fetchurl {
25687       url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/Test-Requires-0.11.tar.gz";
25688       hash = "sha256-S4jeVJWX7s3ffDw4pNAgShb1mtgEV3tnGJasBOJOBA8=";
25689     };
25690     meta = {
25691       description = "Checks to see if the module can be loaded";
25692       homepage = "https://github.com/tokuhirom/Test-Requires";
25693       license = with lib.licenses; [ artistic1 gpl1Plus ];
25694     };
25695   };
25697   TestRequiresGit = buildPerlPackage {
25698     pname = "Test-Requires-Git";
25699     version = "1.008";
25700     src = fetchurl {
25701       url = "mirror://cpan/authors/id/B/BO/BOOK/Test-Requires-Git-1.008.tar.gz";
25702       hash = "sha256-cJFiEJcNhNdJFFEVmri2fhUlHIwNrnw99sjYhULqQqY=";
25703     };
25704     propagatedBuildInputs = [ GitVersionCompare ];
25705     meta = {
25706       description = "Check your test requirements against the available version of Git";
25707       license = with lib.licenses; [ artistic1 gpl1Plus ];
25708     };
25709   };
25711   TestRequiresInternet = buildPerlPackage {
25712     pname = "Test-RequiresInternet";
25713     version = "0.05";
25714     src = fetchurl {
25715       url = "mirror://cpan/authors/id/M/MA/MALLEN/Test-RequiresInternet-0.05.tar.gz";
25716       hash = "sha256-u6ezKhzA1Yzi7CCyAKc0fGljFkHoyuj/RWetJO8egz4=";
25717     };
25718     meta = {
25719       description = "Easily test network connectivity";
25720       homepage = "https://metacpan.org/dist/Test-RequiresInternet";
25721       license = with lib.licenses; [ artistic1 gpl1Plus ];
25722     };
25723   };
25725   TestRoo = buildPerlPackage {
25726     pname = "Test-Roo";
25727     version = "1.004";
25728     src = fetchurl {
25729       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Test-Roo-1.004.tar.gz";
25730       hash = "sha256-IRKaPOy1B7AJSOFs8V/N5dxNsjWrqEr9f0fSIBOp3tY=";
25731     };
25733     propagatedBuildInputs = [ Moo MooXTypesMooseLike SubInstall strictures ];
25734     buildInputs = [ CaptureTiny ];
25735     meta = {
25736       description = "Composable, reusable tests with roles and Moo";
25737       license = with lib.licenses; [ asl20 ];
25738     };
25739   };
25741   TestRoutine = buildPerlPackage {
25742     pname = "Test-Routine";
25743     version = "0.031";
25744     src = fetchurl {
25745       url = "mirror://cpan/authors/id/R/RJ/RJBS/Test-Routine-0.031.tar.gz";
25746       hash = "sha256-f9kp7TPyVMoJkCJQGSYInHeU71d7uoYHbn2YFlYPXAc=";
25747     };
25748     buildInputs = [ TestAbortable TestFatal ];
25749     propagatedBuildInputs = [ Moose namespaceautoclean ];
25750     meta = {
25751       description = "Composable units of assertion";
25752       homepage = "https://github.com/rjbs/Test-Routine";
25753       license = with lib.licenses; [ artistic1 gpl1Plus ];
25754     };
25755   };
25757   TestRun = buildPerlModule {
25758     pname = "Test-Run";
25759     version = "0.0305";
25760     src = fetchurl {
25761       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-Run-0.0305.tar.gz";
25762       hash = "sha256-+Jpx3WD44qd26OYBd8ntXlkJbUAF1QvSmJuSeeCHwkg=";
25763     };
25764     buildInputs = [ TestTrap ];
25765     propagatedBuildInputs = [ IPCSystemSimple ListMoreUtils MooseXStrictConstructor TextSprintfNamed UNIVERSALrequire ];
25766     meta = {
25767       description = "Base class to run standard TAP scripts";
25768       homepage = "https://web-cpan.shlomifish.org/modules/Test-Run";
25769       license = with lib.licenses; [ mit ];
25770     };
25771   };
25773   TestRunCmdLine = buildPerlModule {
25774     pname = "Test-Run-CmdLine";
25775     version = "0.0132";
25776     src = fetchurl {
25777       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-Run-CmdLine-0.0132.tar.gz";
25778       hash = "sha256-ssORzVRjV378dti/so6tKz1OOm+pLbDvNMANyfTPpwc=";
25779     };
25780     buildInputs = [ TestRun TestTrap ];
25781     propagatedBuildInputs = [ MooseXGetopt UNIVERSALrequire YAMLLibYAML ];
25782     doCheck = !stdenv.isDarwin;
25783     meta = {
25784       description = "Analyze tests from the command line using Test::Run";
25785       homepage = "http://web-cpan.berlios.de/modules/Test-Run";
25786       license = with lib.licenses; [ mit ];
25787       mainProgram = "runprove";
25788     };
25789   };
25791   TestRunPluginAlternateInterpreters = buildPerlModule {
25792     pname = "Test-Run-Plugin-AlternateInterpreters";
25793     version = "0.0125";
25794     src = fetchurl {
25795       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-Run-Plugin-AlternateInterpreters-0.0125.tar.gz";
25796       hash = "sha256-UsNomxRdgh8XCj8uXPM6DCkoKE3d6W1sN88VAA8ymbs=";
25797     };
25798     buildInputs = [ TestRun TestRunCmdLine TestTrap YAMLLibYAML ];
25799     propagatedBuildInputs = [ Moose ];
25800     meta = {
25801       description = "Define different interpreters for different test scripts with Test::Run";
25802       homepage = "https://web-cpan.shlomifish.org/modules/Test-Run";
25803       license = with lib.licenses; [ mit ];
25804     };
25805   };
25807   TestRunPluginBreakOnFailure = buildPerlModule {
25808     pname = "Test-Run-Plugin-BreakOnFailure";
25809     version = "0.0.6";
25810     src = fetchurl {
25811       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-Run-Plugin-BreakOnFailure-v0.0.6.tar.gz";
25812       hash = "sha256-oBgO4+LwwUQSkFXaBeKTFRC59QcXTQ+6yjwMndBNE6k=";
25813     };
25814     buildInputs = [ TestRun TestRunCmdLine TestTrap YAMLLibYAML ];
25815     propagatedBuildInputs = [ Moose ];
25816     meta = {
25817       description = "Stop processing the entire test suite";
25818       homepage = "https://web-cpan.shlomifish.org/modules/Test-Run";
25819       license = with lib.licenses; [ mit ];
25820     };
25821   };
25823   TestRunPluginColorFileVerdicts = buildPerlModule {
25824     pname = "Test-Run-Plugin-ColorFileVerdicts";
25825     version = "0.0125";
25826     src = fetchurl {
25827       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-Run-Plugin-ColorFileVerdicts-0.0125.tar.gz";
25828       hash = "sha256-HCQaLBSm/WZLRy5Lb2iP1gyHlzsxjITgFIccBn8uHkY=";
25829     };
25830     buildInputs = [ TestRun TestRunCmdLine TestTrap ];
25831     propagatedBuildInputs = [ Moose ];
25832     moreInputs = [ TestTrap ]; # Added because tests were failing without it
25833     doCheck=true;
25834     meta = {
25835       description = "Make the file verdict ('ok', 'NOT OK')";
25836       homepage = "https://web-cpan.shlomifish.org/modules/Test-Run";
25837       license = with lib.licenses; [ mit ];
25838     };
25839   };
25841   TestRunPluginColorSummary = buildPerlModule {
25842     pname = "Test-Run-Plugin-ColorSummary";
25843     version = "0.0203";
25844     src = fetchurl {
25845       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-Run-Plugin-ColorSummary-0.0203.tar.gz";
25846       hash = "sha256-e9l5N5spa1EPxVuxwAuKEM00hQ5OIZf1cBtUYAY/iv0=";
25847     };
25848     buildInputs = [ TestRun TestRunCmdLine TestTrap ];
25849     moreInputs = [ TestTrap ]; # Added because tests were failing without it
25850     doCheck=true;
25851     meta = {
25852       description = "A Test::Run plugin that";
25853       homepage = "https://web-cpan.shlomifish.org/modules/Test-Run";
25854       license = with lib.licenses; [ mit ];
25855     };
25856   };
25858   TestRunPluginTrimDisplayedFilenames = buildPerlModule {
25859     pname = "Test-Run-Plugin-TrimDisplayedFilenames";
25860     version = "0.0126";
25861     src = fetchurl {
25862       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-Run-Plugin-TrimDisplayedFilenames-0.0126.tar.gz";
25863       hash = "sha256-ioZJw8anmIp3N65KcW1g4MazIXMBtAFT6tNquPTqkCg=";
25864     };
25865     buildInputs = [ TestRun TestRunCmdLine TestTrap YAMLLibYAML ];
25866     propagatedBuildInputs = [ Moose ];
25867     meta = {
25868       description = "Trim the first components";
25869       homepage = "https://web-cpan.shlomifish.org/modules/Test-Run";
25870       license = with lib.licenses; [ mit ];
25871     };
25872   };
25874   TestRunValgrind = buildPerlModule {
25875     pname = "Test-RunValgrind";
25876     version = "0.2.2";
25877     src = fetchurl {
25878       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-RunValgrind-0.2.2.tar.gz";
25879       hash = "sha256-aRPRTK3CUbI8W3I1+NSsPeKHE41xK3W9lLACrwuPpe4=";
25880     };
25881     buildInputs = [ TestTrap ];
25882     propagatedBuildInputs = [ PathTiny ];
25883     meta = {
25884       description = "Tests that an external program is valgrind-clean";
25885       homepage = "https://metacpan.org/release/Test-RunValgrind";
25886       license = with lib.licenses; [ mit ];
25887     };
25888   };
25890   TestScript = buildPerlPackage {
25891     pname = "Test-Script";
25892     version = "1.29";
25893     src = fetchurl {
25894       url = "mirror://cpan/authors/id/P/PL/PLICEASE/Test-Script-1.29.tar.gz";
25895       hash = "sha256-iS5+bB6nsWcQkJlCz1wL2rcO7i79SqnBbqlS4rkPiVA=";
25896     };
25898     buildInputs = [ Test2Suite ];
25900     propagatedBuildInputs = [ CaptureTiny ProbePerl ];
25901     meta = {
25902       description = "Basic cross-platform tests for scripts";
25903       license = with lib.licenses; [ artistic1 gpl1Plus ];
25904     };
25905   };
25907   TestScriptRun = buildPerlPackage {
25908     pname = "Test-Script-Run";
25909     version = "0.08";
25910     src = fetchurl {
25911       url = "mirror://cpan/authors/id/S/SU/SUNNAVY/Test-Script-Run-0.08.tar.gz";
25912       hash = "sha256-H+8hbnC8QlrOPixDcN/N3bXnmLCZ77omeSRKTVvBqwo=";
25913     };
25914     propagatedBuildInputs = [ IPCRun3 TestException ];
25915     meta = {
25916       description = "Test scripts with run";
25917       license = with lib.licenses; [ artistic1 gpl1Plus ];
25918     };
25919   };
25921   TestSharedFork = buildPerlPackage {
25922     pname = "Test-SharedFork";
25923     version = "0.35";
25924     src = fetchurl {
25925       url = "mirror://cpan/authors/id/E/EX/EXODIST/Test-SharedFork-0.35.tar.gz";
25926       hash = "sha256-KTLoZWEOgHWPdkxYZ1fvjhHbEoTZWOJeS3qFCYQUxZ8=";
25927     };
25928     buildInputs = [ TestRequires ];
25929     meta = {
25930       description = "Fork test";
25931       homepage = "https://github.com/tokuhirom/Test-SharedFork";
25932       license = with lib.licenses; [ artistic1 gpl1Plus ];
25933     };
25934   };
25936   TestSimple13 = buildPerlPackage {
25937     pname = "Test-Simple";
25938     version = "1.302195";
25939     src = fetchurl {
25940       url = "mirror://cpan/authors/id/E/EX/EXODIST/Test-Simple-1.302195.tar.gz";
25941       hash = "sha256-s5C7I1kuC5Rsla27PDCxG8Y0ooayhHvmEa2SnFfjmmw=";
25942     };
25943     meta = {
25944       description = "Basic utilities for writing tests";
25945       license = with lib.licenses; [ artistic1 gpl1Plus ];
25946     };
25947   };
25949   TestSnapshot = buildPerlPackage {
25950     pname = "Test-Snapshot";
25951     version = "0.06";
25952     src = fetchurl {
25953       url = "mirror://cpan/authors/id/E/ET/ETJ/Test-Snapshot-0.06.tar.gz";
25954       hash = "sha256-9N16mlW6oiR1QK40IQzQWgT50QYb7+yXockO2pW/rkU=";
25955     };
25956     buildInputs = [ CaptureTiny ];
25957     propagatedBuildInputs = [ TextDiff ];
25958     meta = {
25959       description = "Test against data stored in automatically-named file";
25960       license = with lib.licenses; [ artistic2 ];
25961     };
25962   };
25964   TestSpec = buildPerlPackage {
25965     pname = "Test-Spec";
25966     version = "0.54";
25967     src = fetchurl {
25968       url = "mirror://cpan/authors/id/A/AK/AKZHAN/Test-Spec-0.54.tar.gz";
25969       hash = "sha256-CjHPEmXc7pC7xCRWrWC7Njr8f6xml//7D9SbupKhZdI=";
25970     };
25971     propagatedBuildInputs = [ DevelGlobalPhase PackageStash TieIxHash ];
25972     buildInputs = [ TestDeep TestTrap ];
25973     meta = {
25974       description = "Write tests in a declarative specification style";
25975       license = with lib.licenses; [ artistic1 gpl1Plus ];
25976     };
25977   };
25979   TestSubCalls = buildPerlPackage {
25980     pname = "Test-SubCalls";
25981     version = "1.10";
25982     src = fetchurl {
25983       url = "mirror://cpan/authors/id/E/ET/ETHER/Test-SubCalls-1.10.tar.gz";
25984       hash = "sha256-y8Hps1oF5x/rwT5e9UejHIJJiZu2AR29ydn/Nm3atsI=";
25985     };
25986     propagatedBuildInputs = [ HookLexWrap ];
25987     meta = {
25988       description = "Track the number of times subs are called";
25989       license = with lib.licenses; [ artistic1 gpl1Plus ];
25990     };
25991   };
25993   TestSynopsis = buildPerlPackage {
25994     pname = "Test-Synopsis";
25995     version = "0.17";
25996     src = fetchurl {
25997       url = "mirror://cpan/authors/id/Z/ZO/ZOFFIX/Test-Synopsis-0.17.tar.gz";
25998       hash = "sha256-0mjJizPS+hTbsisg1lYbq0ie6CWH374ZrSd2IMe4tt4=";
25999     };
26000     meta = {
26001       description = "Test your SYNOPSIS code";
26002       homepage = "https://metacpan.org/release/Test-Synopsis";
26003       license = with lib.licenses; [ artistic1 gpl1Plus ];
26004     };
26005   };
26007   TestTableDriven = buildPerlPackage {
26008     pname = "Test-TableDriven";
26009     version = "0.02";
26010     src = fetchurl {
26011       url = "mirror://cpan/authors/id/J/JR/JROCKWAY/Test-TableDriven-0.02.tar.gz";
26012       hash = "sha256-Qlh4r88qFOBHyviRsZFen1/7A2lBYJxDjg370bWxhZo=";
26013     };
26014     meta = {
26015       description = "Write tests, not scripts that run them";
26016       license = with lib.licenses; [ artistic1 gpl1Plus ];
26017     };
26018   };
26020   TestTempDirTiny = buildPerlPackage {
26021     pname = "Test-TempDir-Tiny";
26022     version = "0.018";
26023     src = fetchurl {
26024       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Test-TempDir-Tiny-0.018.tar.gz";
26025       hash = "sha256-17eh/X/M4BaNRPuIdpGP6KmvSa4OuLCWJbZ7GNcfXoE=";
26026     };
26027     meta = {
26028       description = "Temporary directories that stick around when tests fail";
26029       homepage = "https://github.com/dagolden/Test-TempDir-Tiny";
26030       license = with lib.licenses; [ asl20 ];
26031     };
26032   };
26034   TestTCP = buildPerlPackage {
26035     pname = "Test-TCP";
26036     version = "2.22";
26037     src = fetchurl {
26038       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Test-TCP-2.22.tar.gz";
26039       hash = "sha256-PlPDwG1tCYCiv+uRVgK3FOaC7iEa6IwRdIzyzHFOe1c=";
26040     };
26041     buildInputs = [ TestSharedFork ];
26042     meta = {
26043       description = "Testing TCP program";
26044       homepage = "https://github.com/tokuhirom/Test-TCP";
26045       license = with lib.licenses; [ artistic1 gpl1Plus ];
26046     };
26047   };
26049   TestUNIXSock = buildPerlModule rec {
26050     pname = "Test-UNIXSock";
26051     version = "0.4";
26052     src = fetchurl {
26053       url = "mirror://cpan/authors/id/F/FU/FUJIWARA/${pname}-${version}.tar.gz";
26054       hash = "sha256-NzC0zBA0Es+/b+JHvbwwC+l94wnMmxxcvVc3E7hojz8=";
26055     };
26056     buildInputs = [ ModuleBuildTiny ];
26057     propagatedBuildInputs = [ TestSharedFork TestTCP ];
26058     meta = {
26059       description = "Testing UNIX domain socket program";
26060       homepage = "https://github.com/fujiwara/Test-UNIXSock";
26061       license = with lib.licenses; [ artistic1 gpl1Plus ];
26062     };
26063   };
26065   TestTime = buildPerlPackage {
26066     pname = "Test-Time";
26067     version = "0.092";
26068     src = fetchurl {
26069       url = "mirror://cpan/authors/id/A/AN/ANATOFUZ/Test-Time-0.092.tar.gz";
26070       hash = "sha256-MNkPVM6ECJPHuiysKk0e7NTJzfgFkQxZXjronf1kRzg=";
26071     };
26072     meta = {
26073       description = "Overrides the time() and sleep() core functions for testing";
26074       homepage = "https://github.com/cho45/Test-Time";
26075       license = with lib.licenses; [ artistic1 gpl1Plus ];
26076     };
26077   };
26079   TestToolbox = buildPerlModule {
26080     pname = "Test-Toolbox";
26081     version = "0.4";
26082     src = fetchurl {
26083       url = "mirror://cpan/authors/id/M/MI/MIKO/Test-Toolbox-0.4.tar.gz";
26084       hash = "sha256-QCC1x/OhWsmxh9Bd/ZgWuAMOwNSkf/g3P3Yzu2FOvcM=";
26085     };
26086     meta = {
26087       description = "Test::Toolbox - tools for testing";
26088       license = with lib.licenses; [ artistic1 gpl1Plus ];
26089     };
26090   };
26092   TestTrailingSpace = buildPerlModule {
26093     pname = "Test-TrailingSpace";
26094     version = "0.0601";
26095     src = fetchurl {
26096       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-TrailingSpace-0.0601.tar.gz";
26097       hash = "sha256-q7jOdEg6Y9c/4e9gO3zgptR8mO3nMZVdc1eE+tHcT8w=";
26098     };
26099     buildInputs = [ FileTreeCreate ];
26100     propagatedBuildInputs = [ FileFindObjectRule ];
26101     meta = {
26102       description = "Test for trailing space in source files";
26103       homepage = "https://metacpan.org/release/Test-TrailingSpace";
26104       license = with lib.licenses; [ mit ];
26105     };
26106   };
26108   TestUnitLite = buildPerlModule {
26109     pname = "Test-Unit-Lite";
26110     version = "0.1202";
26111     src = fetchurl {
26112       url = "mirror://cpan/authors/id/D/DE/DEXTER/Test-Unit-Lite-0.1202.tar.gz";
26113       hash = "sha256-NR0l7nExYoqvfjmV/h//uJOuf+bvWM8zcO0yCVP1sqg=";
26114     };
26115     meta = {
26116       description = "Unit testing without external dependencies";
26117       license = with lib.licenses; [ artistic1 gpl1Plus ];
26118     };
26119   };
26121   TestWarn = buildPerlPackage {
26122     pname = "Test-Warn";
26123     version = "0.37";
26124     src = fetchurl {
26125       url = "mirror://cpan/authors/id/B/BI/BIGJ/Test-Warn-0.37.tar.gz";
26126       hash = "sha256-mMoy5/L16om4v7mgYJl389FT4kLi5RcFEmy5VPGga1c=";
26127     };
26128     propagatedBuildInputs = [ SubUplevel ];
26129     meta = {
26130       description = "Perl extension to test methods for warnings";
26131       license = with lib.licenses; [ artistic1 gpl1Plus ];
26132     };
26133   };
26135   TestWarnings = buildPerlPackage {
26136     pname = "Test-Warnings";
26137     version = "0.032";
26138     src = fetchurl {
26139       url = "mirror://cpan/authors/id/E/ET/ETHER/Test-Warnings-0.032.tar.gz";
26140       hash = "sha256-Ryfa4kFunwfkHi3DqRQ7pq/8HsV2UhF8mdUAOOMT6dk=";
26141     };
26142     buildInputs = [ CPANMetaCheck PadWalker ];
26143     meta = {
26144       description = "Test for warnings and the lack of them";
26145       homepage = "https://github.com/karenetheridge/Test-Warnings";
26146       license = with lib.licenses; [ artistic1 gpl1Plus ];
26147     };
26148   };
26150   TestWeaken = buildPerlPackage {
26151     pname = "Test-Weaken";
26152     version = "3.022000";
26153     src = fetchurl {
26154       url = "mirror://cpan/authors/id/K/KR/KRYDE/Test-Weaken-3.022000.tar.gz";
26155       hash = "sha256-JjGocSExAmLg6WEHpvoO1pSHt3AVIHc77l+prMwpX1s=";
26156     };
26157     propagatedBuildInputs = [ ScalarListUtils ];
26158     meta = {
26159       description = "Test that freed memory objects were, indeed, freed";
26160       license = with lib.licenses; [ artistic1 gpl1Plus ];
26161     };
26162   };
26164   TestWithoutModule = buildPerlPackage {
26165     pname = "Test-Without-Module";
26166     version = "0.21";
26167     src = fetchurl {
26168       url = "mirror://cpan/authors/id/C/CO/CORION/Test-Without-Module-0.21.tar.gz";
26169       hash = "sha256-PN6vraxIU+vq/miTRtVV2l36PPqdTITj5ee/7lC+7EY=";
26170     };
26171     meta = {
26172       description = "Test fallback behaviour in absence of modules";
26173       license = with lib.licenses; [ artistic1 gpl1Plus ];
26174     };
26175   };
26177   TestWWWMechanize = buildPerlPackage {
26178     pname = "Test-WWW-Mechanize";
26179     version = "1.60";
26180     src = fetchurl {
26181       url = "mirror://cpan/authors/id/P/PE/PETDANCE/Test-WWW-Mechanize-1.60.tar.gz";
26182       hash = "sha256-I/1y5+0b553h0CotFfDfCTQV4Oq2/GFf9rtoh0Emhnc=";
26183     };
26184     buildInputs = [ TestLongString ];
26185     propagatedBuildInputs = [ CarpAssertMore HTTPServerSimple WWWMechanize ];
26186     meta = {
26187       description = "Testing-specific WWW::Mechanize subclass";
26188       homepage = "https://github.com/libwww-perl/WWW-Mechanize";
26189       license = with lib.licenses; [ artistic2 ];
26190     };
26191   };
26193   TestWWWMechanizeCatalyst = buildPerlPackage {
26194     pname = "Test-WWW-Mechanize-Catalyst";
26195     version = "0.62";
26196     src = fetchurl {
26197       url = "mirror://cpan/authors/id/M/MS/MSTROUT/Test-WWW-Mechanize-Catalyst-0.62.tar.gz";
26198       hash = "sha256-GDveGuerpw3LPtd3xVSCN/QsPtVR/VvGWM7obQIWrLE=";
26199     };
26200     doCheck = false; # listens on an external port
26201     propagatedBuildInputs = [ CatalystRuntime WWWMechanize ];
26202     buildInputs = [ CatalystPluginSession CatalystPluginSessionStateCookie TestException TestWWWMechanize Testutf8 ];
26203     meta = {
26204       description = "Test::WWW::Mechanize for Catalyst";
26205       license = with lib.licenses; [ artistic1 gpl1Plus ];
26206     };
26207   };
26209   TestWWWMechanizeCGI = buildPerlPackage {
26210     pname = "Test-WWW-Mechanize-CGI";
26211     version = "0.1";
26212     src = fetchurl {
26213       url = "mirror://cpan/authors/id/M/MR/MRAMBERG/Test-WWW-Mechanize-CGI-0.1.tar.gz";
26214       hash = "sha256-pXagsi470a/JJ0/FY7A3ru53cThJyev2pq1EFcFsnC8=";
26215     };
26216     propagatedBuildInputs = [ WWWMechanizeCGI ];
26217     buildInputs = [ TestLongString TestWWWMechanize ];
26218     meta = {
26219       description = "Test CGI applications with Test::WWW::Mechanize";
26220       license = with lib.licenses; [ artistic1 gpl1Plus ];
26221     };
26222   };
26224   TestWWWMechanizePSGI = buildPerlPackage {
26225     pname = "Test-WWW-Mechanize-PSGI";
26226     version = "0.39";
26227     src = fetchurl {
26228       url = "mirror://cpan/authors/id/O/OA/OALDERS/Test-WWW-Mechanize-PSGI-0.39.tar.gz";
26229       hash = "sha256-R2s6s7R9U05Nag9JkAIdXTTGnsk3rAcW5mzop7yHmVg=";
26230     };
26231     buildInputs = [ CGI TestLongString TestWWWMechanize ];
26232     propagatedBuildInputs = [ Plack ];
26233     meta = {
26234       description = "Test PSGI programs using WWW::Mechanize";
26235       homepage = "https://github.com/acme/test-www-mechanize-psgi";
26236       license = with lib.licenses; [ artistic1 gpl1Plus ];
26237     };
26238   };
26240   TestXPath = buildPerlPackage {
26241     pname = "Test-XPath";
26242     version = "0.20";
26243     src = fetchurl {
26244       url = "mirror://cpan/authors/id/M/MA/MANWAR/Test-XPath-0.20.tar.gz";
26245       hash = "sha256-36phHnFGrZyXabW89oiUmXa4Ny3354ekC5M6FI2JIDk=";
26246     };
26247     propagatedBuildInputs = [ XMLLibXML ];
26248     meta = {
26249       description = "Test XML and HTML content and structure with XPath expressions";
26250       license = with lib.licenses; [ artistic1 gpl1Plus ];
26251     };
26252   };
26254   TestYAML = buildPerlPackage {
26255     pname = "Test-YAML";
26256     version = "1.07";
26257     src = fetchurl {
26258       url = "mirror://cpan/authors/id/T/TI/TINITA/Test-YAML-1.07.tar.gz";
26259       hash = "sha256-HzANA09GKYy5KWCRLMBLrDP7J/BbiFLY8FHhELnNmV8=";
26260     };
26261     buildInputs = [ TestBase ];
26262     meta = {
26263       description = "Testing Module for YAML Implementations";
26264       license = with lib.licenses; [ artistic1 gpl1Plus ];
26265       mainProgram = "test-yaml";
26266     };
26267   };
26269   TextAligner = buildPerlModule {
26270     pname = "Text-Aligner";
26271     version = "0.16";
26272     src = fetchurl {
26273       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Text-Aligner-0.16.tar.gz";
26274       hash = "sha256-XIV9vOWG9X+j18Tr0yACOrOyljsgSUKK4BvTvE8hVyU=";
26275     };
26276     meta = {
26277       description = "Module to align text";
26278       homepage = "https://metacpan.org/release/Text-Aligner";
26279       license = with lib.licenses; [ isc ];
26280     };
26281   };
26283   TextAspell = buildPerlPackage {
26284     pname = "Text-Aspell";
26285     version = "0.09";
26286     src = fetchurl {
26287       url = "mirror://cpan/authors/id/H/HA/HANK/Text-Aspell-0.09.tar.gz";
26288       hash = "sha256-K+oyCfGOJzsZPjF1pC0mk5GRnkmrEGtuJSOV0nIYL2U=";
26289     };
26290     propagatedBuildInputs = [ pkgs.aspell ];
26291     ASPELL_CONF = "dict-dir ${pkgs.aspellDicts.en}/lib/aspell";
26292     env.NIX_CFLAGS_COMPILE = "-I${pkgs.aspell}/include";
26293     NIX_CFLAGS_LINK = "-L${pkgs.aspell}/lib -laspell";
26294     meta = {
26295       description = "Perl interface to the GNU Aspell library";
26296       license = with lib.licenses; [ artistic1 gpl1Plus ];
26297     };
26298   };
26300   TextAutoformat = buildPerlPackage {
26301     pname = "Text-Autoformat";
26302     version = "1.75";
26303     src = fetchurl {
26304       url = "mirror://cpan/authors/id/N/NE/NEILB/Text-Autoformat-1.75.tar.gz";
26305       hash = "sha256-ndT0zj2uxLTb9bWdrEVoqJRq7RLCi05ZiMjoxgLGt3E=";
26306     };
26307     propagatedBuildInputs = [ TextReform ];
26308     meta = {
26309       description = "Automatic text wrapping and reformatting";
26310       homepage = "https://github.com/neilb/Text-Autoformat";
26311       license = with lib.licenses; [ artistic1 gpl1Plus ];
26312     };
26313   };
26315   TextBalanced = buildPerlPackage {
26316     pname = "Text-Balanced";
26317     version = "2.06";
26318     src = fetchurl {
26319       url = "mirror://cpan/authors/id/S/SH/SHAY/Text-Balanced-2.06.tar.gz";
26320       hash = "sha256-dz4PDyHAyyz2ZM7muij/cCWbq8yJL5tlD5y9oAvgkq0=";
26321     };
26322     meta = {
26323       description = "Extract delimited text sequences from strings";
26324       license = with lib.licenses; [ artistic1 gpl1Plus ];
26325     };
26326   };
26328   TextBibTeX = buildPerlModule {
26329     pname = "Text-BibTeX";
26330     version = "0.89";
26331     buildInputs = [ CaptureTiny ConfigAutoConf ExtUtilsLibBuilder ];
26332     src = fetchurl {
26333       url = "mirror://cpan/authors/id/A/AM/AMBS/Text-BibTeX-0.89.tar.gz";
26334       hash = "sha256-iKeOvwiOx1AvQBxaKxOMhiz1RYU0t3MiO786r0EiQZY=";
26335     };
26336     # libbtparse.so: cannot open shared object file
26337     patches = [ ../development/perl-modules/TextBibTeX-use-lib.patch ];
26338     perlPreHook = "export LD=$CC";
26339     perlPostHook = lib.optionalString stdenv.isDarwin ''
26340       oldPath="$(pwd)/btparse/src/libbtparse.dylib"
26341       newPath="$out/lib/libbtparse.dylib"
26343       install_name_tool -id "$newPath" "$newPath"
26344       install_name_tool -change "$oldPath" "$newPath" "$out/bin/biblex"
26345       install_name_tool -change "$oldPath" "$newPath" "$out/bin/bibparse"
26346       install_name_tool -change "$oldPath" "$newPath" "$out/bin/dumpnames"
26347       install_name_tool -change "$oldPath" "$newPath" "$out/${perl.libPrefix}/${perl.version}/darwin"*"-2level/auto/Text/BibTeX/BibTeX.bundle"
26348     '';
26349     meta = {
26350       description = "Interface to read and parse BibTeX files";
26351       license = with lib.licenses; [ artistic1 gpl1Plus ];
26352     };
26353   };
26355   TextBrew = buildPerlPackage {
26356     pname = "Text-Brew";
26357     version = "0.02";
26358     src = fetchurl {
26359       url = "mirror://cpan/authors/id/K/KC/KCIVEY/Text-Brew-0.02.tar.gz";
26360       hash = "sha256-qhuFhBz5/G/jODZrvIcKTpMEonZB5j+Sof2Wvujr9kw=";
26361     };
26362     meta = {
26363       description = "An implementation of the Brew edit distance";
26364       license = with lib.licenses; [ artistic1 gpl1Plus ];
26365     };
26366   };
26368   TextCharWidth = buildPerlPackage {
26369     pname = "Text-CharWidth";
26370     version = "0.04";
26371     src = fetchurl {
26372       url = "mirror://cpan/authors/id/K/KU/KUBOTA/Text-CharWidth-0.04.tar.gz";
26373       hash = "sha256-q97V9P3ZM46J/S8dgnHESYna5b9Qrs5BthedjiMHBPg=";
26374     };
26375     meta = {
26376       description = "Get number of occupied columns of a string on terminal";
26377       license = with lib.licenses; [ artistic1 gpl1Plus ];
26378     };
26379   };
26381   TextCSV = buildPerlPackage {
26382     pname = "Text-CSV";
26383     version = "2.03";
26384     src = fetchurl {
26385       url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/Text-CSV-2.03.tar.gz";
26386       hash = "sha256-SLvOnyNJNaiFlWGOBN0UFigkbWUPKnJgJN8cE34LZfs=";
26387     };
26388     meta = {
26389       description = "Comma-separated values manipulator (using XS or PurePerl)";
26390       license = with lib.licenses; [ artistic1 gpl1Plus ];
26391     };
26392   };
26394   TextCSVEncoded = buildPerlPackage {
26395     pname = "Text-CSV-Encoded";
26396     version = "0.25";
26397     src = fetchurl {
26398       url = "mirror://cpan/authors/id/Z/ZA/ZARQUON/Text-CSV-Encoded-0.25.tar.gz";
26399       hash = "sha256-JIpZg6IN1XeGY56I2v3WVPO5OSVJASDW1xLaayvludA=";
26400     };
26401     propagatedBuildInputs = [ TextCSV ];
26402     meta = {
26403       description = "Encoding aware Text::CSV";
26404       homepage = "https://github.com/singingfish/Text-CSV-Encoded";
26405       license = with lib.licenses; [ artistic1 gpl1Plus ];
26406     };
26407   };
26409   TextCSV_XS = buildPerlPackage {
26410     pname = "Text-CSV_XS";
26411     version = "1.52";
26412     src = fetchurl {
26413       url = "mirror://cpan/authors/id/H/HM/HMBRAND/Text-CSV_XS-1.52.tgz";
26414       hash = "sha256-5BWqcFut+Es1ncTA8MmC8b9whIHaoUdW8xNufInA5B0=";
26415     };
26416     meta = {
26417       description = "Comma-Separated Values manipulation routines";
26418       homepage = "https://metacpan.org/pod/Text::CSV_XS";
26419       license = with lib.licenses; [ artistic1 gpl1Plus ];
26420     };
26421   };
26423   TextDiff = buildPerlPackage {
26424     pname = "Text-Diff";
26425     version = "1.45";
26426     src = fetchurl {
26427       url = "mirror://cpan/authors/id/N/NE/NEILB/Text-Diff-1.45.tar.gz";
26428       hash = "sha256-6Lqgexs/U+AK82NomLv3OuyaD/OPlFNu3h2+lu8IbwQ=";
26429     };
26430     propagatedBuildInputs = [ AlgorithmDiff ];
26431     meta = {
26432       description = "Perform diffs on files and record sets";
26433       license = with lib.licenses; [ artistic1 gpl1Plus ];
26434     };
26435   };
26437   TextFormat = buildPerlModule {
26438     pname = "Text-Format";
26439     version = "0.62";
26440     src = fetchurl {
26441       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Text-Format-0.62.tar.gz";
26442       hash = "sha256-fUKQVzGeEjxZC6B2UzTwreSl656o23wOxNOQLeX5BAQ=";
26443     };
26444     meta = {
26445       description = "Various subroutines to format text";
26446       homepage = "https://github.com/shlomif/perl-Module-Format";
26447       license = with lib.licenses; [ artistic1 gpl1Plus ];
26448       maintainers = with maintainers; [ bcdarwin ];
26449     };
26450   };
26452   TextDiffFormattedHTML = buildPerlPackage {
26453     pname = "Text-Diff-FormattedHTML";
26454     version = "0.08";
26455     src = fetchurl {
26456       url = "mirror://cpan/authors/id/A/AM/AMBS/Text-Diff-FormattedHTML-0.08.tar.gz";
26457       hash = "sha256-Oat3WlwFZ0Xyq9jMfBy8VJbf735SqfS9itpqpsnHtw0=";
26458     };
26459     propagatedBuildInputs = [ FileSlurp StringDiff ];
26460     meta = {
26461       description = "Generate a colorful HTML diff of strings/files";
26462       license = with lib.licenses; [ artistic1 gpl1Plus ];
26463       maintainers = [ maintainers.sgo ];
26464     };
26465   };
26467   TextFuzzy = buildPerlPackage {
26468     pname = "Text-Fuzzy";
26469     version = "0.29";
26470     src = fetchurl {
26471       url = "mirror://cpan/authors/id/B/BK/BKB/Text-Fuzzy-0.29.tar.gz";
26472       hash = "sha256-PfXP0soaTFyn/3urPMjVOtIGThNMvxEATzz4xLkFW/8=";
26473     };
26474     meta = {
26475       description = "Partial string matching using edit distances";
26476       license = with lib.licenses; [ artistic1 gpl1Plus ];
26477     };
26478   };
26480   TextGerman = buildPerlPackage {
26481     pname = "Text-German";
26482     version = "0.06";
26483     src = fetchurl {
26484       url = "mirror://cpan/authors/id/U/UL/ULPFR/Text-German-0.06.tar.gz";
26485       hash = "sha256-ki1PGQEtl3OxH0pvZCEF6fkT9YZvRGG2BZymdNW7B90=";
26486     };
26487     meta = {
26488       description = "German grundform reduction";
26489       license = with lib.licenses; [ artistic1 gpl1Plus ];
26490     };
26491   };
26493   TextGlob = buildPerlPackage {
26494     pname = "Text-Glob";
26495     version = "0.11";
26496     src = fetchurl {
26497       url = "mirror://cpan/authors/id/R/RC/RCLAMP/Text-Glob-0.11.tar.gz";
26498       hash = "sha256-BpzNSdPwot7bEV9L3J+6wHqDWShAlT0fzfw5650wUoc=";
26499     };
26500     meta = {
26501       description = "Match globbing patterns against text";
26502       license = with lib.licenses; [ artistic1 gpl1Plus ];
26503     };
26504   };
26506   TextHogan = buildPerlPackage {
26507     pname = "Text-Hogan";
26508     version = "2.03";
26509     src = fetchurl {
26510       url = "mirror://cpan/authors/id/K/KA/KAORU/Text-Hogan-2.03.tar.gz";
26511       hash = "sha256-WNkj7eTFmEiI75u7JW2IVMxdIqRwikd0sxPLU4jFYXo=";
26512     };
26513     propagatedBuildInputs = [ Clone RefUtil TextTrim ];
26514     buildInputs = [ DataVisitor PathTiny TryTiny YAML ];
26515     meta = {
26516       description = "Text::Hogan - A mustache templating engine statement-for-statement cloned from hogan.js";
26517       license = with lib.licenses; [ artistic1 gpl1Plus ];
26518     };
26519   };
26521   TextIconv = buildPerlPackage {
26522     pname = "Text-Iconv";
26523     version = "1.7";
26524     src = fetchurl {
26525       url = "mirror://cpan/authors/id/M/MP/MPIOTR/Text-Iconv-1.7.tar.gz";
26526       hash = "sha256-W4C31ecJ00OTvLqIlxhkoXtEpb8PnkvO44PQKefS1cM=";
26527     };
26528     meta = {
26529       description = "Perl interface to iconv() codeset conversion function";
26530       license = with lib.licenses; [ artistic1 gpl1Plus ]; # taken from el6
26531       broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.TextIconv.x86_64-darwin
26532     };
26533   };
26535   TestInDistDir = buildPerlPackage {
26536     pname = "Test-InDistDir";
26537     version = "1.112071";
26538     src = fetchurl {
26539       url = "mirror://cpan/authors/id/M/MI/MITHALDU/Test-InDistDir-1.112071.tar.gz";
26540       hash = "sha256-kixcYzFPQG9MuzXsQjrCFU0sK3GmWt23cyydJAqD/vs=";
26541     };
26542     meta = {
26543       description = "Test environment setup for development with IDE";
26544       homepage = "https://github.com/wchristian/Test-InDistDir";
26545       license = with lib.licenses; [ wtfpl ];
26546       maintainers = [ maintainers.sgo ];
26547     };
26548   };
26550   TestInter = buildPerlPackage {
26551     pname = "Test-Inter";
26552     version = "1.10";
26553     src = fetchurl {
26554       url = "mirror://cpan/authors/id/S/SB/SBECK/Test-Inter-1.10.tar.gz";
26555       hash = "sha256-cewRXqwm+2aJGb1mQLQcNzInUuvUjBx222a3O679O10=";
26556     };
26557     buildInputs = [ FileFindRule TestPod TestPodCoverage ];
26558     meta = {
26559       description = "Framework for more readable interactive test scripts";
26560       license = with lib.licenses; [ artistic1 gpl1Plus ];
26561     };
26562   };
26564   TextLayout = buildPerlPackage {
26565     pname = "Text-Layout";
26566     version = "0.031";
26567     src = fetchurl {
26568       url = "mirror://cpan/authors/id/J/JV/JV/Text-Layout-0.031.tar.gz";
26569       hash = "sha256-EQ4ObbzKIFhKcckNpxBYAdRrXXYd+QmsTfYQbDM3B34=";
26570     };
26571     buildInputs = [ IOString PDFAPI2 ];
26572     meta = {
26573       description = "Pango style markup formatting";
26574       license = with lib.licenses; [ artistic1 gpl1Plus ];
26575     };
26576   };
26578   TextLevenshteinXS = buildPerlPackage {
26579     pname = "Text-LevenshteinXS";
26580     version = "0.03";
26581     src = fetchurl {
26582       url = "mirror://cpan/authors/id/J/JG/JGOLDBERG/Text-LevenshteinXS-0.03.tar.gz";
26583       hash = "sha256-43T/eyN5Gc5eqSRfNW0ctSzIf9JrOlo4s/Pl/4KgFJE=";
26584     };
26585     meta = {
26586       description = "Levenshtein edit distance in a XS way";
26587       license = with lib.licenses; [ artistic1 gpl1Plus ];
26588     };
26589   };
26591   TextLorem = buildPerlPackage {
26592     pname = "Text-Lorem";
26593     version = "0.34";
26594     src = fetchurl {
26595       url = "mirror://cpan/authors/id/A/AD/ADEOLA/Text-Lorem-0.34.tar.gz";
26596       hash = "sha256-DOajwZkXsjI0JKGqdC2YiwY8OUQEJ6MQGkzsbb2EcVc=";
26597     };
26598     meta = {
26599       description = "Generate random Latin looking text";
26600       license = with lib.licenses; [ artistic1 gpl1Plus ];
26601       maintainers = [ maintainers.sgo ];
26602       mainProgram = "lorem";
26603     };
26604   };
26606   TestManifest = buildPerlPackage {
26607     pname = "Test-Manifest";
26608     version = "2.023";
26609     src = fetchurl {
26610       url = "mirror://cpan/authors/id/B/BD/BDFOY/Test-Manifest-2.023.tar.gz";
26611       hash = "sha256-0k5SVT58uc2oH5L/6MkrPkNGcY5HEIAaWzW38lGnceI=";
26612     };
26613     meta = {
26614       description = "Interact with a t/test_manifest file";
26615       homepage = "https://github.com/briandfoy/test-manifest";
26616       license = with lib.licenses; [ artistic2 ];
26617     };
26618   };
26620   TextMarkdown = buildPerlPackage {
26621     pname = "Text-Markdown";
26622     version = "1.000031";
26623     src = fetchurl {
26624       url = "mirror://cpan/authors/id/B/BO/BOBTFISH/Text-Markdown-1.000031.tar.gz";
26625       hash = "sha256-wZHG1ezrjLdcBWUZI2BmLSAtcWutB6IzxLMppChNxxs=";
26626     };
26627     nativeBuildInputs = [ shortenPerlShebang ];
26628     nativeCheckInputs = [ ListMoreUtils TestDifferences TestException ];
26629     postInstall = ''
26630       shortenPerlShebang $out/bin/Markdown.pl
26631     '';
26632     meta = {
26633       description = "Convert Markdown syntax to (X)HTML";
26634       license = with lib.licenses; [ bsd3 ];
26635       mainProgram = "Markdown.pl";
26636     };
26637   };
26639   TextMarkdownHoedown = buildPerlModule {
26640     pname = "Text-Markdown-Hoedown";
26641     version = "1.03";
26642     src = fetchurl {
26643       url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/Text-Markdown-Hoedown-1.03.tar.gz";
26644       hash = "sha256-U6cw/29IgrmavYVW8mqRH1gvZ1tZ8OFnJe0ey8CE7lA=";
26645     };
26646     buildInputs = [ Filepushd ];
26647     perlPreHook = lib.optionalString stdenv.isDarwin "export LD=$CC";
26648     meta = {
26649       description = "Hoedown for Perl5";
26650       homepage = "https://github.com/tokuhirom/Text-Markdown-Hoedown";
26651       license = with lib.licenses; [ artistic1 gpl1Plus ];
26652     };
26653   };
26655   TestMinimumVersion = buildPerlPackage {
26656     pname = "Test-MinimumVersion";
26657     version = "0.101083";
26658     src = fetchurl {
26659       url = "mirror://cpan/authors/id/R/RJ/RJBS/Test-MinimumVersion-0.101083.tar.gz";
26660       hash = "sha256-MqHrzYA/oQ7vylU7w87dQ1lqdZ3Dl1revSJoiCPDauo=";
26661     };
26662     propagatedBuildInputs = [ PerlMinimumVersion ];
26663     meta = {
26664       description = "Does your code require newer perl than you think?";
26665       homepage = "https://github.com/rjbs/Test-MinimumVersion";
26666       license = with lib.licenses; [ artistic1 gpl1Plus ];
26667     };
26668   };
26670   TextMicroTemplate = buildPerlPackage {
26671     pname = "Text-MicroTemplate";
26672     version = "0.24";
26673     src = fetchurl {
26674       url = "mirror://cpan/authors/id/K/KA/KAZUHO/Text-MicroTemplate-0.24.tar.gz";
26675       hash = "sha256-MoAecfNe6Kqg1XbOwSXO5Gs9SRWuZCvGSWISDU+XtMg=";
26676     };
26677     meta = {
26678       description = "Micro template engine with Perl5 language";
26679       license = with lib.licenses; [ artistic1 gpl1Plus ];
26680     };
26681   };
26683   TextMultiMarkdown = buildPerlPackage {
26684     pname = "Text-MultiMarkdown";
26685     version = "1.001";
26686     src = fetchurl {
26687       url = "mirror://cpan/authors/id/B/BD/BDFOY/Text-MultiMarkdown-1.001.tar.gz";
26688       hash = "sha256-UB1ErH2lSUSZzqhR6bL7UlOAgLDB6TYjDIwm1n4EhDM=";
26689     };
26690     buildInputs = [ ListMoreUtils TestException ];
26691     propagatedBuildInputs = [ HTMLParser TextMarkdown ];
26692     meta = {
26693       description = "Convert MultiMarkdown syntax to (X)HTML";
26694       license = with lib.licenses; [ bsd3 ];
26695       mainProgram = "MultiMarkdown.pl";
26696     };
26697   };
26699   TestNumberDelta = buildPerlPackage {
26700     pname = "Test-Number-Delta";
26701     version = "1.06";
26702     src = fetchurl {
26703       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Test-Number-Delta-1.06.tar.gz";
26704       hash = "sha256-U1QwkZ5v32zlX/dumJKvzLo7fUFg20XzrEOw+S/80Ek=";
26705     };
26706     meta = {
26707       description = "Compare the difference between numbers against a given tolerance";
26708       homepage = "https://github.com/dagolden/Test-Number-Delta";
26709       license = with lib.licenses; [ asl20 ];
26710     };
26711   };
26713   TextParsewords = buildPerlPackage {
26714     pname = "Text-ParseWords";
26715     version = "3.31";
26716     src = fetchurl {
26717       url = "mirror://cpan/authors/id/N/NE/NEILB/Text-ParseWords-3.31.tar.gz";
26718       hash = "sha256-KuVVughNdbK4/u640aAJESdoFa2oa8yxRSI2lk1aL8c=";
26719     };
26720     meta = {
26721       description = "Parse text into an array of tokens or array of arrays";
26722       license = with lib.licenses; [ artistic1 gpl1Plus ];
26723     };
26724   };
26726   TextPasswordPronounceable = buildPerlPackage {
26727     pname = "Text-Password-Pronounceable";
26728     version = "0.30";
26729     src = fetchurl {
26730       url = "mirror://cpan/authors/id/T/TS/TSIBLEY/Text-Password-Pronounceable-0.30.tar.gz";
26731       hash = "sha256-wYalAlbgvt+vsX584VfnxS8ZUDu3nhjr8GJVkR9urRo=";
26732     };
26733     meta = {
26734       description = "Generate pronounceable passwords";
26735       license = with lib.licenses; [ artistic1 gpl1Plus ];
26736     };
26737   };
26739   TextPatch = buildPerlPackage {
26740     pname = "Text-Patch";
26741     version = "1.8";
26742     src = fetchurl {
26743       url = "mirror://cpan/authors/id/C/CA/CADE/Text-Patch-1.8.tar.gz";
26744       hash = "sha256-6vGOYbpqPhQ4RqfMZvCM5YoMT72pKssxrt4lyztcPcw=";
26745     };
26746     propagatedBuildInputs = [ TextDiff ];
26747     meta = {
26748       description = "Patches text with given patch";
26749       license = with lib.licenses; [ gpl2Only ];
26750     };
26751   };
26753   TextPDF = buildPerlPackage {
26754     pname = "Text-PDF";
26755     version = "0.31";
26756     src = fetchurl {
26757       url = "mirror://cpan/authors/id/B/BH/BHALLISSY/Text-PDF-0.31.tar.gz";
26758       hash = "sha256-359RXuFZgEsNWnXVrbk8RYTH7EAdjFnCfp9zkl2NrGg=";
26759     };
26760     meta = {
26761       description = "Module for manipulating PDF files";
26762       license = with lib.licenses; [ artistic1 gpl1Plus ];
26763     };
26764   };
26766   TextQuoted = buildPerlPackage {
26767     pname = "Text-Quoted";
26768     version = "2.10";
26769     src = fetchurl {
26770       url = "mirror://cpan/authors/id/B/BP/BPS/Text-Quoted-2.10.tar.gz";
26771       hash = "sha256-CBv5XskiCvJs7IkWHmG/c/n7y/7uHZrxUTnl17cI9EU=";
26772     };
26773     propagatedBuildInputs = [ TextAutoformat ];
26774     meta = {
26775       description = "Extract the structure of a quoted mail message";
26776       license = with lib.licenses; [ artistic1 gpl1Plus ];
26777     };
26778   };
26780   TextRecordParser = buildPerlPackage {
26781     pname = "Text-RecordParser";
26782     version = "1.6.5";
26783     src = fetchurl {
26784       url = "mirror://cpan/authors/id/K/KC/KCLARK/Text-RecordParser-1.6.5.tar.gz";
26785       hash = "sha256-2juBQUxj+NkhjRFnRaiLlIxGyYsYdjT2KYkuVAAbw1o=";
26786     };
26788     # In a NixOS chroot build, the tests fail because the font configuration
26789     # at /etc/fonts/font.conf is not available.
26790     doCheck = false;
26792     propagatedBuildInputs = [ ClassAccessor IOStringy ListMoreUtils Readonly TextAutoformat ];
26793     buildInputs = [ TestException ];
26794     meta = {
26795       description = "Read record-oriented files";
26796       license = with lib.licenses; [ gpl2Only ];
26797     };
26798   };
26800   TextReflow = buildPerlPackage {
26801     pname = "Text-Reflow";
26802     version = "1.17";
26803     src = fetchurl {
26804       url = "mirror://cpan/authors/id/M/MW/MWARD/Text-Reflow-1.17.tar.gz";
26805       hash = "sha256-S/ITn/YX1uWcwOWc3s18tyPs/SjVrDh6+1U//cBxuGA=";
26806     };
26807     meta = {
26808       description = "Reflow text files using Knuth's paragraphing algorithm";
26809       license = with lib.licenses; [ artistic1 gpl1Plus ];
26810     };
26811   };
26813   TextReform = buildPerlModule {
26814     pname = "Text-Reform";
26815     version = "1.20";
26816     src = fetchurl {
26817       url = "mirror://cpan/authors/id/C/CH/CHORNY/Text-Reform-1.20.tar.gz";
26818       hash = "sha256-qHkt2MGqyXABAyM3s2o1a+luLXTE8DnvmjY7ZB20rmE=";
26819     };
26820     meta = {
26821       description = "Manual text wrapping and reformatting";
26822       license = with lib.licenses; [ artistic1 gpl1Plus ];
26823     };
26824   };
26826   TextRoman = buildPerlPackage {
26827     pname = "Text-Roman";
26828     version = "3.5";
26829     src = fetchurl {
26830       url = "mirror://cpan/authors/id/S/SY/SYP/Text-Roman-3.5.tar.gz";
26831       hash = "sha256-y0oIo7FRgC/7L84yWKQWVCq4HbD3Oe5HSpWD/7c+BGo=";
26832     };
26833     meta = {
26834       description = "Allows conversion between Roman and Arabic algarisms";
26835       homepage = "https://github.com/creaktive/Text-Roman";
26836       license = with lib.licenses; [ artistic1 gpl1Plus ];
26837     };
26838   };
26840   TextSimpleTable = buildPerlPackage {
26841     pname = "Text-SimpleTable";
26842     version = "2.07";
26843     src = fetchurl {
26844       url = "mirror://cpan/authors/id/M/MR/MRAMBERG/Text-SimpleTable-2.07.tar.gz";
26845       hash = "sha256-JW0/OHZOljMxWLFKsYJXuS8xVcYNZYyvuAOJ9y9GGe0=";
26846     };
26847     propagatedBuildInputs = [ UnicodeLineBreak ];
26848     meta = {
26849       description = "Simple eyecandy ASCII tables";
26850       license = with lib.licenses; [ artistic2 ];
26851     };
26852   };
26854   TextSoundex = buildPerlPackage {
26855     pname = "Text-Soundex";
26856     version = "3.05";
26857     src = fetchurl {
26858       url = "mirror://cpan/authors/id/R/RJ/RJBS/Text-Soundex-3.05.tar.gz";
26859       hash = "sha256-9t1VtCgLJd6peCIYOYZDglYAdOHWkzOV+u4lEMLbYO0=";
26860     };
26861     meta = {
26862       description = "Implementation of the soundex algorithm";
26863       license = with lib.licenses; [ artistic1 gpl1Plus ];
26864     };
26865   };
26867   TextSprintfNamed = buildPerlModule {
26868     pname = "Text-Sprintf-Named";
26869     version = "0.0405";
26870     src = fetchurl {
26871       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Text-Sprintf-Named-0.0405.tar.gz";
26872       hash = "sha256-m0cNeP/PxAqz+ZgjGzNrnTQXIw+3zlW0fNewVXOnD/w=";
26873     };
26874     buildInputs = [ TestWarn ];
26875     meta = {
26876       description = "Sprintf-like function with named conversions";
26877       homepage = "https://metacpan.org/release/Text-Sprintf-Named";
26878       license = with lib.licenses; [ mit ];
26879     };
26880   };
26882   TextTable = buildPerlModule {
26883     pname = "Text-Table";
26884     version = "1.135";
26885     src = fetchurl {
26886       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Text-Table-1.135.tar.gz";
26887       hash = "sha256-/KPBboMSf3xE3ePT9+PHPqUNEJoQVERd6Agv6nlMpdI=";
26888     };
26889     propagatedBuildInputs = [ TextAligner ];
26890     meta = {
26891       description = "Organize Data in Tables";
26892       homepage = "https://metacpan.org/release/Text-Table";
26893       license = with lib.licenses; [ isc ];
26894     };
26895   };
26897   TextTabularDisplay = buildPerlPackage {
26898     pname = "Text-TabularDisplay";
26899     version = "1.38";
26900     src = fetchurl {
26901       url = "mirror://cpan/authors/id/D/DA/DARREN/Text-TabularDisplay-1.38.tar.gz";
26902       hash = "sha256-6wmQ+vpWtmfyPbdkvdpaTcX0sd3EsTg6pe7W8i7Rhug=";
26903     };
26904     meta = {
26905       description = "Display text in formatted table output";
26906       license = with lib.licenses; [ gpl2Plus ];
26907     };
26908   };
26910   TextTemplate = buildPerlPackage {
26911     pname = "Text-Template";
26912     version = "1.61";
26913     src = fetchurl {
26914       url = "mirror://cpan/authors/id/M/MS/MSCHOUT/Text-Template-1.61.tar.gz";
26915       hash = "sha256-opXqfR7yQa4mQMH3hktij45vmewU+x2ngbL18haNzwk=";
26916     };
26917     buildInputs = [ TestMoreUTF8 TestWarnings ];
26918     meta = {
26919       description = "Expand template text with embedded Perl";
26920       license = with lib.licenses; [ artistic1 gpl1Plus ];
26921     };
26922   };
26924   TestTrap = buildPerlModule {
26925     pname = "Test-Trap";
26926     version = "0.3.5";
26927     src = fetchurl {
26928       url = "mirror://cpan/authors/id/E/EB/EBHANSSEN/Test-Trap-v0.3.5.tar.gz";
26929       hash = "sha256-VPmQFlYrWx1yEQEA8fK+Q3F4zfhDdvSV/9A3bx1+y5o=";
26930     };
26931     propagatedBuildInputs = [ DataDump ];
26932     meta = {
26933       description = "Trap exit codes, exceptions, output, etc";
26934       license = with lib.licenses; [ artistic1 gpl1Plus ];
26935     };
26936   };
26938   TestVars = buildPerlModule {
26939     pname = "Test-Vars";
26940     version = "0.015";
26941     src = fetchurl {
26942       url = "mirror://cpan/authors/id/G/GF/GFUJI/Test-Vars-0.015.tar.gz";
26943       hash = "sha256-4Y3RWCcuTsmTnh37M8dDGrTnXGtAsoDDi16AT9pHGlQ=";
26944     };
26946     buildInputs = [ ModuleBuildTiny ];
26948     meta = {
26949       description = "Detects unused variables in perl modules";
26950       homepage = "https://github.com/houseabsolute/p5-Test-Vars";
26951       license = with lib.licenses; [ artistic1 gpl1Plus ];
26952     };
26953   };
26955   TestVersion = buildPerlPackage {
26956     pname = "Test-Version";
26957     version = "2.09";
26958     src = fetchurl {
26959       url = "mirror://cpan/authors/id/P/PL/PLICEASE/Test-Version-2.09.tar.gz";
26960       hash = "sha256-nOHdKJel8w4bf4lm7Gb1fY2PKA9gXyjHyiIfp5rKOOA=";
26961     };
26962     buildInputs = [ TestException ];
26963     propagatedBuildInputs = [ FileFindRulePerl ];
26964     meta = {
26965       description = "Check to see that version's in modules are sane";
26966       license = with lib.licenses; [ artistic2 ];
26967     };
26968   };
26970   TextTrim = buildPerlPackage {
26971     pname = "Text-Trim";
26972     version = "1.04";
26973     src = fetchurl {
26974       url = "mirror://cpan/authors/id/R/RJ/RJT/Text-Trim-1.04.tar.gz";
26975       hash = "sha256-1YeKkHnTPNF2bParxEzWJb0AoCE9LOjjFD/mlEq6qhE=";
26976     };
26977     meta = {
26978       description = "Remove leading and/or trailing whitespace from strings";
26979       license = with lib.licenses; [ artistic1 gpl1Plus ];
26980     };
26981   };
26983   TextUnaccent = buildPerlPackage {
26984     pname = "Text-Unaccent";
26985     version = "1.08";
26986     src = fetchurl {
26987       url = "mirror://cpan/authors/id/L/LD/LDACHARY/Text-Unaccent-1.08.tar.gz";
26988       hash = "sha256-J45u/Jsk82mclh77NuvmAqNAi1QVcgF97hMdFScocys=";
26989     };
26990     # https://rt.cpan.org/Public/Bug/Display.html?id=124815
26991     env.NIX_CFLAGS_COMPILE = "-DHAS_VPRINTF";
26992     meta = {
26993       description = "Remove accents from a string";
26994       license = with lib.licenses; [ gpl2Only ];
26995       broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.TextUnaccent.x86_64-darwin
26996     };
26997   };
26999   TextUnidecode = buildPerlPackage {
27000     pname = "Text-Unidecode";
27001     version = "1.30";
27002     src = fetchurl {
27003       url = "mirror://cpan/authors/id/S/SB/SBURKE/Text-Unidecode-1.30.tar.gz";
27004       hash = "sha256-bCTxTdwdIOJhYcIHtzyhhO7S71fwi1+y7hlubi6IscY=";
27005     };
27006     meta = {
27007       description = "Plain ASCII transliterations of Unicode tex";
27008       license = with lib.licenses; [ artistic1 gpl1Plus ];
27009     };
27010   };
27012   Testutf8 = buildPerlPackage {
27013     pname = "Test-utf8";
27014     version = "1.02";
27015     src = fetchurl {
27016       url = "mirror://cpan/authors/id/M/MA/MARKF/Test-utf8-1.02.tar.gz";
27017       hash = "sha256-34LwnFlAgwslpJ8cgWL6JNNx5gKIDt742aTUv9Zri9c=";
27018     };
27019     meta = {
27020       description = "Handy utf8 tests";
27021       homepage = "https://github.com/2shortplanks/Test-utf8/tree";
27022       license = with lib.licenses; [ artistic1 gpl1Plus ];
27023     };
27024   };
27026   TextNSP = buildPerlPackage {
27027     pname = "Text-NSP";
27028     version = "1.31";
27029     src = fetchurl {
27030       url = "mirror://cpan/authors/id/T/TP/TPEDERSE/Text-NSP-1.31.tar.gz";
27031       hash = "sha256-oBIBvrKWNrPkHs2ips9lIv0mVBa9bZlPrQL1n7Sc9ZU=";
27032     };
27033     meta = {
27034       description = "Extract collocations and Ngrams from text";
27035       license = with lib.licenses; [ gpl2Plus ];
27036       maintainers = [ maintainers.bzizou ];
27037     };
27038   };
27040   TextvFileasData = buildPerlPackage {
27041     pname = "Text-vFile-asData";
27042     version = "0.08";
27043     src = fetchurl {
27044       url = "mirror://cpan/authors/id/R/RC/RCLAMP/Text-vFile-asData-0.08.tar.gz";
27045       hash = "sha256-spGrXg+YfFFyVgppIjRxGnXkWW2DR19y0BJ4NpUy+Co=";
27046     };
27047     propagatedBuildInputs = [ ClassAccessorChained ];
27048     meta = {
27049       description = "Parse vFile formatted files into data structures";
27050       license = with lib.licenses; [ artistic1 gpl1Plus ];
27051     };
27052   };
27054   TextWikiFormat = buildPerlModule {
27055     pname = "Text-WikiFormat";
27056     version = "0.81";
27057     src = fetchurl {
27058       url = "mirror://cpan/authors/id/C/CY/CYCLES/Text-WikiFormat-0.81.tar.gz";
27059       hash = "sha256-5DzZla2RV6foOdmT7ntsTRhUlH5VfQltnVqvdFB/qzM=";
27060     };
27061     propagatedBuildInputs = [ URI ];
27062     meta = {
27063       description = "Module for translating Wiki formatted text into other formats";
27064       license = with lib.licenses; [ artistic1 gpl1Plus ];
27065     };
27066   };
27068   TextWordDiff = buildPerlPackage {
27069     pname = "Text-WordDiff";
27070     version = "0.09";
27071     src = fetchurl {
27072       url = "mirror://cpan/authors/id/T/TI/TIMK/Text-WordDiff-0.09.tar.gz";
27073       hash = "sha256-/uaZynY63KL04Y9KioNv0hArwoIK9wj460M1bVrg1Q4=";
27074     };
27075     propagatedBuildInputs = [ AlgorithmDiff HTMLParser ];
27076     meta = {
27077       description = "Track changes between documents";
27078       homepage = "https://metacpan.org/release/Text-WordDiff";
27079       license = with lib.licenses; [ artistic1 gpl1Plus ];
27080     };
27081   };
27083   TextWrapI18N = buildPerlPackage {
27084     pname = "Text-WrapI18N";
27085     version = "0.06";
27086     src = fetchurl {
27087       url = "mirror://cpan/authors/id/K/KU/KUBOTA/Text-WrapI18N-0.06.tar.gz";
27088       hash = "sha256-S9KaF/DCx5LRLBAFs8J28qsPrjnACFmuF0HXlBhGpIg=";
27089     };
27090     buildInputs = lib.optionals (!stdenv.isDarwin) [ pkgs.glibcLocales ];
27091     propagatedBuildInputs = [ TextCharWidth ];
27092     preConfigure = ''
27093       substituteInPlace WrapI18N.pm --replace '/usr/bin/locale' '${pkgs.unixtools.locale}/bin/locale'
27094     '';
27095     meta = {
27096       description = "Line wrapping module with support for multibyte, fullwidth, and combining characters and languages without whitespaces between words";
27097       license = with lib.licenses; [ artistic1 gpl1Plus ];
27098     };
27099   };
27101   TextWrapper = buildPerlPackage {
27102     pname = "Text-Wrapper";
27103     version = "1.05";
27104     src = fetchurl {
27105       url = "mirror://cpan/authors/id/C/CJ/CJM/Text-Wrapper-1.05.tar.gz";
27106       hash = "sha256-ZCaOFZg6nfR+HZGZpJHzlOifVC5Ur7M/S3jz8xjgmrk=";
27107     };
27108     buildInputs = [ TestDifferences ];
27109     meta = {
27110       description = "Word wrap text by breaking long lines";
27111       license = with lib.licenses; [ artistic1 gpl1Plus ];
27112     };
27113   };
27115   Throwable = buildPerlPackage {
27116     pname = "Throwable";
27117     version = "1.001";
27118     src = fetchurl {
27119       url = "mirror://cpan/authors/id/R/RJ/RJBS/Throwable-1.001.tar.gz";
27120       hash = "sha256-0MtenX0G1w8sxW7s+FeoOkXqykOFDc3akdP+tN3eTFE=";
27121     };
27122     propagatedBuildInputs = [ DevelStackTrace Moo ];
27123     meta = {
27124       description = "A role for classes that can be thrown";
27125       homepage = "https://github.com/rjbs/Throwable";
27126       license = with lib.licenses; [ artistic1 gpl1Plus ];
27127     };
27128   };
27130   TieCacheLRU = buildPerlPackage {
27131     pname = "Tie-Cache-LRU";
27132     version = "20150301";
27133     src = fetchurl {
27134       url = "mirror://cpan/authors/id/M/MS/MSCHWERN/Tie-Cache-LRU-20150301.tar.gz";
27135       hash = "sha256-G/dARQ06bXwStIwl99pZZOROfMOLKFcs+3b/IkZPRGk=";
27136     };
27137     propagatedBuildInputs = [ ClassVirtual enum ];
27138     meta = {
27139       description = "A Least-Recently Used cache";
27140       license = with lib.licenses; [ artistic1 gpl1Plus ];
27141     };
27142   };
27144   TieCacheLRUExpires = buildPerlPackage {
27145     pname = "Tie-Cache-LRU-Expires";
27146     version = "0.55";
27147     src = fetchurl {
27148       url = "mirror://cpan/authors/id/O/OE/OESTERHOL/Tie-Cache-LRU-Expires-0.55.tar.gz";
27149       hash = "sha256-sxbYSazSXyQ0bVWplQ0oH+4HRjmHZ8YBI0EiFZVz65o=";
27150     };
27151     propagatedBuildInputs = [ TieCacheLRU ];
27152     meta = {
27153       description = "Extends Tie::Cache::LRU with expiring";
27154       license = with lib.licenses; [ artistic1 ];
27155     };
27156   };
27158   TieCycle = buildPerlPackage {
27159     pname = "Tie-Cycle";
27160     version = "1.227";
27161     src = fetchurl {
27162       url = "mirror://cpan/authors/id/B/BD/BDFOY/Tie-Cycle-1.227.tar.gz";
27163       hash = "sha256-eDgzV5HnGjszuKGd4wUpSeGJCkgj3vY5eCPJkiL6Hdg=";
27164     };
27165     meta = {
27166       description = "Cycle through a list of values via a scalar";
27167       homepage = "https://github.com/briandfoy/tie-cycle";
27168       license = with lib.licenses; [ artistic2 ];
27169     };
27170   };
27172   TieEncryptedHash = buildPerlPackage {
27173     pname = "Tie-EncryptedHash";
27174     version = "1.24";
27175     src = fetchurl {
27176       url = "mirror://cpan/authors/id/V/VI/VIPUL/Tie-EncryptedHash-1.24.tar.gz";
27177       hash = "sha256-qpoIOiMeQEYXCliUZE48WWecfb0KotEhfchRUN8sHiE=";
27178     };
27179     propagatedBuildInputs = [ CryptBlowfish CryptCBC CryptDES ];
27180     meta = {
27181       description = "Hashes (and objects based on hashes) with encrypting fields";
27182       license = with lib.licenses; [ artistic1 gpl1Plus ];
27183       maintainers = [ maintainers.sgo ];
27184     };
27185   };
27187   TieFile = buildPerlPackage {
27188     pname = "Tie-File";
27189     version = "1.07";
27190     src = fetchurl {
27191       url = "mirror://cpan/authors/id/T/TO/TODDR/Tie-File-1.07.tar.gz";
27192       hash = "sha256-S1NUpB/pVBvc6lK0/VMBRPMVME0D8F3Q/vwynYHCawg=";
27193     };
27194     meta = {
27195       description = "Access the lines of a disk file via a Perl array";
27196       license = with lib.licenses; [ artistic1 gpl1Plus ];
27197     };
27198   };
27200   TieIxHash = buildPerlModule {
27201     pname = "Tie-IxHash";
27202     version = "1.23";
27203     src = fetchurl {
27204       url = "mirror://cpan/authors/id/C/CH/CHORNY/Tie-IxHash-1.23.tar.gz";
27205       hash = "sha256-+rsLjJfmfJs0tswY7Wb2xeAcVbJX3PAHVV4LAn1Mr1Y=";
27206     };
27207     meta = {
27208       description = "Ordered associative arrays for Perl";
27209       license = with lib.licenses; [ artistic1 gpl1Plus ];
27210     };
27211   };
27213   TieHandleOffset = buildPerlPackage {
27214     pname = "Tie-Handle-Offset";
27215     version = "0.004";
27216     src = fetchurl {
27217       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Tie-Handle-Offset-0.004.tar.gz";
27218       hash = "sha256-7p85BV3GlaokSiUvVv/Tf4vgcgmzN604eCRyEgbSqJ4=";
27219     };
27220     meta = {
27221       description = "Tied handle that hides the beginning of a file";
27222       homepage = "https://github.com/dagolden/tie-handle-offset";
27223       license = with lib.licenses; [ asl20 ];
27224     };
27225   };
27227   TieHashIndexed = buildPerlPackage {
27228     pname = "Tie-Hash-Indexed";
27229     version = "0.08";
27230     src = fetchurl {
27231       url = "mirror://cpan/authors/id/M/MH/MHX/Tie-Hash-Indexed-0.08.tar.gz";
27232       hash = "sha256-N7xigV9ahIrHeRK5v0eIqfJyiE6DpS4gk9q0qDpKexA=";
27233     };
27234     doCheck = false; /* test fails on some machines */
27235     meta = {
27236       description = "Ordered hashes for Perl";
27237       license = with lib.licenses; [ artistic1 gpl1Plus ];
27238     };
27239   };
27241   TieHashMethod = buildPerlPackage {
27242     pname = "Tie-Hash-Method";
27243     version = "0.02";
27244     src = fetchurl {
27245       url = "mirror://cpan/authors/id/Y/YV/YVES/Tie-Hash-Method-0.02.tar.gz";
27246       hash = "sha256-1RP7tRQT98oeZKG9zmGU337GB23qVQZtZ7lQGR7sMqk=";
27247     };
27248     meta = {
27249       description = "Tied hash with specific methods overriden by callbacks";
27250       license = with lib.licenses; [ artistic1 ];
27251     };
27252   };
27254   TieRefHash = buildPerlPackage {
27255     pname = "Tie-RefHash";
27256     version = "1.40";
27257     src = fetchurl {
27258       url = "mirror://cpan/authors/id/E/ET/ETHER/Tie-RefHash-1.40.tar.gz";
27259       hash = "sha256-Ws8fUY0vtfYgyq16Gy/x9vdRb++PQLprdD7si5aSftc=";
27260     };
27261     meta = {
27262       description = "Use references as hash keys";
27263       license = with lib.licenses; [ artistic1 gpl1Plus ];
27264     };
27265   };
27267   TieRegexpHash = buildPerlPackage {
27268     pname = "Tie-RegexpHash";
27269     version = "0.17";
27270     src = fetchurl {
27271       url = "mirror://cpan/authors/id/A/AL/ALTREUS/Tie-RegexpHash-0.17.tar.gz";
27272       hash = "sha256-DCB4UOd++xZhjgqgFVB5JqNCWzSq1apuPkDYOYmghaM=";
27273     };
27274     meta = {
27275       description = "Use regular expressions as hash keys";
27276       license = with lib.licenses; [ artistic1 ];
27277     };
27278   };
27280   TieSimple = buildPerlPackage {
27281     pname = "Tie-Simple";
27282     version = "1.04";
27283     src = fetchurl {
27284       url = "mirror://cpan/authors/id/H/HA/HANENKAMP/Tie-Simple-1.04.tar.gz";
27285       hash = "sha256-KeniEzlRBGx48gXxs+jfYskOEU8OCPoGuBd2ag+AixI=";
27286     };
27287     meta = {
27288       description = "Variable ties made much easier: much, much, much easier..";
27289       license = with lib.licenses; [ artistic1 gpl1Plus ];
27290     };
27291   };
27293   TieSub = buildPerlPackage {
27294     pname = "Tie-Sub";
27295     version = "1.001";
27296     src = fetchurl {
27297       url = "mirror://cpan/authors/id/S/ST/STEFFENW/Tie-Sub-1.001.tar.gz";
27298       hash = "sha256-73GgSCbRNisrduyyHOFzw304pHqf7Cg6qYJDWJD08bE=";
27299     };
27300     propagatedBuildInputs = [ ParamsValidate ];
27301     buildInputs = [ ModuleBuild TestDifferences TestException TestNoWarnings ];
27302     meta = {
27303       description = "Tie::Sub - Tying a subroutine, function or method to a hash";
27304       license = with lib.licenses; [ artistic1 gpl1Plus ];
27305     };
27306   };
27308   TieToObject = buildPerlPackage {
27309     pname = "Tie-ToObject";
27310     version = "0.03";
27311     src = fetchurl {
27312       url = "mirror://cpan/authors/id/N/NU/NUFFIN/Tie-ToObject-0.03.tar.gz";
27313       hash = "sha256-oxoNRDD+FPWWIvMdt/JbInXa0uxS8QQL6wMNPoOtOvQ=";
27314     };
27315     meta = {
27316       description = "Tie to an existing object";
27317       license = with lib.licenses; [ artistic1 gpl1Plus ];
27318     };
27319   };
27321   TimeDate = buildPerlPackage {
27322     pname = "TimeDate";
27323     version = "2.33";
27324     src = fetchurl {
27325       url = "mirror://cpan/authors/id/A/AT/ATOOMIC/TimeDate-2.33.tar.gz";
27326       hash = "sha256-wLacSwOd5vUBsNnxPsWMhrBAwffpsn7ySWUcFD1gXrI=";
27327     };
27328     meta = {
27329       description = "Miscellaneous timezone manipulations routines";
27330       license = with lib.licenses; [ artistic1 gpl1Plus ];
27331     };
27332   };
27334   TimeDuration = buildPerlPackage {
27335     pname = "Time-Duration";
27336     version = "1.21";
27337     src = fetchurl {
27338       url = "mirror://cpan/authors/id/N/NE/NEILB/Time-Duration-1.21.tar.gz";
27339       hash = "sha256-/jQOuodl+SY2lGdOXf8UgzRD4Zhl5f9Ce715t7X4qbg=";
27340     };
27341     meta = {
27342       description = "Rounded or exact English expression of durations";
27343       homepage = "https://github.com/neilbowers/Time-Duration";
27344       license = with lib.licenses; [ artistic1 gpl1Plus ];
27345     };
27346   };
27348   TimeDurationParse = buildPerlPackage {
27349     pname = "Time-Duration-Parse";
27350     version = "0.16";
27351     src = fetchurl {
27352       url = "mirror://cpan/authors/id/N/NE/NEILB/Time-Duration-Parse-0.16.tar.gz";
27353       hash = "sha256-EISmRj7ieQ+ZIVvXaxNcpFr+K/ppmPpv1UcLaeG6vBI=";
27354     };
27355     buildInputs = [ TimeDuration ];
27356     propagatedBuildInputs = [ ExporterLite ];
27357     meta = {
27358       description = "Parse string that represents time duration";
27359       homepage = "https://github.com/neilb/Time-Duration-Parse";
27360       license = with lib.licenses; [ artistic1 gpl1Plus ];
27361     };
27362   };
27364   TimeLocal = buildPerlPackage {
27365     pname = "Time-Local";
27366     version = "1.35";
27367     src = fetchurl {
27368       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Time-Local-1.35.tar.gz";
27369       hash = "sha256-HRNrcb0EHL5vZsQxgO555nW3KtWjWWq9akTSEQcq2ik=";
27370     };
27371     meta = {
27372       description = "Efficiently compute time from local and GMT time";
27373       homepage = "https://metacpan.org/release/Time-Local";
27374       license = with lib.licenses; [ artistic1 gpl1Plus ];
27375     };
27376   };
27378   TimeMoment = buildPerlPackage {
27379     pname = "Time-Moment";
27380     version = "0.44";
27381     src = fetchurl {
27382       url = "mirror://cpan/authors/id/C/CH/CHANSEN/Time-Moment-0.44.tar.gz";
27383       hash = "sha256-ZKz6BC9jT8742t9V5/QrpOqriq631SEuuJgVox949v0=";
27384     };
27385     buildInputs = [ TestFatal TestNumberDelta TestRequires ];
27386     meta = {
27387       description = "Represents a date and time of day with an offset from UTC";
27388       license = with lib.licenses; [ artistic1 gpl1Plus ];
27389     };
27390   };
27392   TimeOut = buildPerlPackage {
27393     pname = "Time-Out";
27394     version = "0.11";
27395     src = fetchurl {
27396       url = "mirror://cpan/authors/id/P/PA/PATL/Time-Out-0.11.tar.gz";
27397       hash = "sha256-k5baaY/UUtnOYNZCzaIQjxHyDtdsiWF3muEbiXroFdI=";
27398     };
27399     meta = {
27400       description = "Easily timeout long running operations";
27401       license = with lib.licenses; [ artistic1 gpl1Plus ];
27402     };
27403   };
27405   TimeParseDate = buildPerlPackage {
27406     pname = "Time-ParseDate";
27407     version = "2015.103";
27408     src = fetchurl {
27409       url = "mirror://cpan/authors/id/M/MU/MUIR/modules/Time-ParseDate-2015.103.tar.gz";
27410       hash = "sha256-LBoGI1v4EYE8qsnqqdqnGvdYZnzfewgstZhjIg/K7tE=";
27411     };
27412     doCheck = false;
27413     meta = {
27414       description = "Parse and format time values";
27415       license = with lib.licenses; [ publicDomain ];
27416     };
27417   };
27419   TimePeriod = buildPerlPackage {
27420     pname = "Time-Period";
27421     version = "1.25";
27422     src = fetchurl {
27423       url = "mirror://cpan/authors/id/P/PB/PBOYD/Time-Period-1.25.tar.gz";
27424       hash = "sha256-0H+lgFKb6sapyCdMa/IgtMOq3mhd9lwWadUzOb9u8eg=";
27425     };
27426     meta = {
27427       description = "A Perl module to deal with time periods";
27428       license = with lib.licenses; [ artistic1 gpl1Plus ];
27429       maintainers = [ maintainers.winpat ];
27430     };
27431   };
27433   TimePiece = buildPerlPackage {
27434     pname = "Time-Piece";
27435     version = "1.3401";
27436     src = fetchurl {
27437       url = "mirror://cpan/authors/id/E/ES/ESAYM/Time-Piece-1.3401.tar.gz";
27438       hash = "sha256-S1W3uw6rRc8jmlTf6tJ336BhIaQ+Y7P84IU67P2wTCc=";
27439     };
27440     meta = {
27441       description = "Object Oriented time objects";
27442       homepage = "https://metacpan.org/release/Time-Piece";
27443       license = with lib.licenses; [ artistic1 gpl1Plus ];
27444       maintainers = with maintainers; [ sgo ];
27445     };
27446   };
27448   Tirex = buildPerlPackage rec {
27449     pname = "Tirex";
27450     version = "0.7.0";
27452     src = fetchFromGitHub {
27453       owner = "openstreetmap";
27454       repo = "tirex";
27455       rev = "v${version}";
27456       hash = "sha256-0QbPfCPBdNBbUiZ8Ppg2zao98+Ddl3l+yX6y1/J50rg=";
27457     };
27459     patches = [
27460       # https://github.com/openstreetmap/tirex/pull/54
27461       (fetchpatch {
27462         url = "https://github.com/openstreetmap/tirex/commit/da0c5db926bc0939c53dd902a969b689ccf9edde.patch";
27463         hash = "sha256-bnL1ZGy8ZNSZuCRbZn59qRVLg3TL0GjFYnhRKroeVO0=";
27464       })
27465     ];
27467     buildInputs = [
27468       GD
27469       IPCShareLite
27470       JSON
27471       LWP
27472       pkgs.mapnik
27473     ] ++ pkgs.mapnik.buildInputs;
27475     installPhase = ''
27476       install -m 755 -d $out/usr/libexec
27477       make install DESTDIR=$out INSTALLOPTS=""
27478       mv $out/$out/lib $out/$out/share $out
27479       rmdir $out/$out $out/nix/store $out/nix
27480     '';
27482     meta = {
27483       description = "Tools for running a map tile server";
27484       homepage = "https://wiki.openstreetmap.org/wiki/Tirex";
27485       maintainers = with maintainers; [ jglukasik ];
27486       license = with lib.licenses; [ gpl2Only ];
27487     };
27488   };
27490   Tk = buildPerlPackage {
27491     pname = "Tk";
27492     version = "804.036";
27493     src = fetchurl {
27494       url = "mirror://cpan/authors/id/S/SR/SREZIC/Tk-804.036.tar.gz";
27495       hash = "sha256-Mqpycaa9/twzMBGbOCXa3dCqS1yTb4StdOq7kyogCl4=";
27496     };
27497     patches = [
27498       # Fix failing configure test due to implicit int return value of main, which results
27499       # in an error with clang 16.
27500       ../development/perl-modules/tk-configure-implicit-int-fix.patch
27501     ];
27502     makeMakerFlags = [ "X11INC=${pkgs.xorg.libX11.dev}/include" "X11LIB=${pkgs.xorg.libX11.out}/lib" ];
27503     buildInputs = [ pkgs.xorg.libX11 pkgs.libpng ];
27504     doCheck = false;            # Expects working X11.
27505     meta = {
27506       description = "Tk - a Graphical User Interface Toolkit";
27507       license = with lib.licenses; [ tcltk ];
27508     };
27509   };
27511   TkToolBar = buildPerlPackage {
27512     pname = "Tk-ToolBar";
27513     version = "0.12";
27514     src = fetchurl {
27515       url = "mirror://cpan/authors/id/A/AS/ASB/Tk-ToolBar-0.12.tar.gz";
27516       hash = "sha256-Rj4oTsRxN+fEJclpGwKo3sXOJytY6h9jWa6AQaI53Q8=";
27517     };
27518     makeMakerFlags = [ "X11INC=${pkgs.xorg.libX11.dev}/include" "X11LIB=${pkgs.xorg.libX11.out}/lib" ];
27519     buildInputs = [ Tk ];
27520     doCheck = false;            # Expects working X11.
27521     meta = {
27522       description = "A toolbar widget for Perl/Tk";
27523       license = with lib.licenses; [ artistic1 gpl1Plus ];
27524     };
27525   };
27527   TreeDAGNode = buildPerlPackage {
27528     pname = "Tree-DAG_Node";
27529     version = "1.32";
27530     src = fetchurl {
27531       url = "mirror://cpan/authors/id/R/RS/RSAVAGE/Tree-DAG_Node-1.32.tgz";
27532       hash = "sha256-ItnePW5vSv2J5tglxmT5SCh4vUninLgTQqcHr0BULT0=";
27533     };
27534     propagatedBuildInputs = [ FileSlurpTiny ];
27535     meta = {
27536       description = "An N-ary tree";
27537       license = with lib.licenses; [ artistic1 gpl1Plus ];
27538     };
27539   };
27541   TreeSimple = buildPerlPackage {
27542     pname = "Tree-Simple";
27543     version = "1.34";
27544     src = fetchurl {
27545       url = "mirror://cpan/authors/id/R/RS/RSAVAGE/Tree-Simple-1.34.tgz";
27546       hash = "sha256-t+l5m9Iiu5TP+ZP312WYDL6hts0qql7L6tY1q99H0pw=";
27547     };
27548     buildInputs = [ TestException ];
27549     meta = {
27550       description = "A simple tree object";
27551       license = with lib.licenses; [ artistic1 gpl1Plus ];
27552     };
27553   };
27555   TreeSimpleVisitorFactory = buildPerlPackage {
27556     pname = "Tree-Simple-VisitorFactory";
27557     version = "0.16";
27558     src = fetchurl {
27559       url = "mirror://cpan/authors/id/R/RS/RSAVAGE/Tree-Simple-VisitorFactory-0.16.tgz";
27560       hash = "sha256-nPU4+qEsVP+0qRQ5lF5IjxhW9iuJrFByqSIRngGIDaY=";
27561     };
27562     propagatedBuildInputs = [ TreeSimple ];
27563     buildInputs = [ TestException ];
27564     meta = {
27565       description = "A factory object for dispensing Visitor objects";
27566       license = with lib.licenses; [ artistic1 gpl1Plus ];
27567     };
27568   };
27570   TryTiny = buildPerlPackage {
27571     pname = "Try-Tiny";
27572     version = "0.31";
27573     src = fetchurl {
27574       url = "mirror://cpan/authors/id/E/ET/ETHER/Try-Tiny-0.31.tar.gz";
27575       hash = "sha256-MwDTHYpAdbJtj0bOhkodkT4OhGfO66ZlXV0rLiBsEb4=";
27576     };
27577     buildInputs = [ CPANMetaCheck CaptureTiny ];
27578     meta = {
27579       description = "Minimal try/catch with proper preservation of $@";
27580       homepage = "https://github.com/p5sagit/Try-Tiny";
27581       license = with lib.licenses; [ mit ];
27582     };
27583   };
27585   TryTinyByClass = buildPerlPackage {
27586     pname = "Try-Tiny-ByClass";
27587     version = "0.01";
27588     src = fetchurl {
27589       url = "mirror://cpan/authors/id/M/MA/MAUKE/Try-Tiny-ByClass-0.01.tar.gz";
27590       hash = "sha256-A45O9SkpXyacKA/vmZpeTbkVaULwkaw8rXabHkVw8UY=";
27591     };
27592     propagatedBuildInputs = [ DispatchClass TryTiny ];
27593     meta = {
27594       description = "Selectively catch exceptions by class name";
27595       license = with lib.licenses; [ artistic1 gpl1Plus ];
27596     };
27597   };
27599   Twiggy = buildPerlPackage {
27600     pname = "Twiggy";
27601     version = "0.1026";
27602     src = fetchurl {
27603       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Twiggy-0.1026.tar.gz";
27604       hash = "sha256-TZHqbtmumo70MU3Cp89S6wJrNlvmg4azXqaGTfrFf54=";
27605     };
27606     propagatedBuildInputs = [ AnyEvent Plack ];
27607     buildInputs = [ TestRequires TestSharedFork TestTCP ];
27608     meta = {
27609       description = "AnyEvent HTTP server for PSGI";
27610       homepage = "https://github.com/miyagawa/Twiggy";
27611       license = with lib.licenses; [ artistic1 gpl1Plus ];
27612       mainProgram = "twiggy";
27613     };
27614   };
27616   TypeTiny = buildPerlPackage {
27617     pname = "Type-Tiny";
27618     version = "2.004000";
27619     src = fetchurl {
27620       url = "mirror://cpan/authors/id/T/TO/TOBYINK/Type-Tiny-2.004000.tar.gz";
27621       hash = "sha256-aX5/d17fyF9M8HeS0E/RmwnCUoX5j1k46O/E90UHoSg=";
27622     };
27623     propagatedBuildInputs = [ ExporterTiny ];
27624     buildInputs = [ TestMemoryCycle ];
27625     meta = {
27626       description = "Tiny, yet Moo(se)-compatible type constraint";
27627       homepage = "https://typetiny.toby.ink";
27628       license = with lib.licenses; [ artistic1 gpl1Plus ];
27629     };
27630   };
27632   TypeTinyXS = buildPerlPackage {
27633     pname = "Type-Tiny-XS";
27634     version = "0.025";
27635     src = fetchurl {
27636       url = "mirror://cpan/authors/id/T/TO/TOBYINK/Type-Tiny-XS-0.025.tar.gz";
27637       hash = "sha256-mmFFDdqQKU9gbNej+kTzsaNmvNiKQZkXsFTuXiPRSL0=";
27638     };
27639     meta = {
27640       description = "Provides an XS boost for some of Type::Tiny's built-in type constraints";
27641       homepage = "https://metacpan.org/release/Type-Tiny-XS";
27642       license = with lib.licenses; [ artistic1 gpl1Plus ];
27643     };
27644   };
27646   TypesSerialiser = buildPerlPackage {
27647     pname = "Types-Serialiser";
27648     version = "1.01";
27649     src = fetchurl {
27650       url = "mirror://cpan/authors/id/M/ML/MLEHMANN/Types-Serialiser-1.01.tar.gz";
27651       hash = "sha256-+McXOwkU0OPZVyggd7Nm8MjHAlZxXq7zKY/zK5I4ioA=";
27652     };
27653     propagatedBuildInputs = [ commonsense ];
27654     meta = {
27655       description = "Simple data types for common serialisation formats";
27656       license = with lib.licenses; [ artistic1 gpl1Plus ];
27657     };
27658   };
27660   UNIVERSALcan = buildPerlPackage {
27661     pname = "UNIVERSAL-can";
27662     version = "1.20140328";
27663     src = fetchurl {
27664       url = "mirror://cpan/authors/id/C/CH/CHROMATIC/UNIVERSAL-can-1.20140328.tar.gz";
27665       hash = "sha256-Ui2p8nR4b+LLqZvHfMHIHSFhlHkD1/rRC9Yt+38RmQ8=";
27666     };
27667     meta = {
27668       description = "Work around buggy code calling UNIVERSAL::can() as a function";
27669       homepage = "https://github.com/chromatic/UNIVERSAL-can";
27670       license = with lib.licenses; [ artistic1 gpl1Plus ];
27671     };
27672   };
27674   UNIVERSALisa = buildPerlPackage {
27675     pname = "UNIVERSAL-isa";
27676     version = "1.20171012";
27677     src = fetchurl {
27678       url = "mirror://cpan/authors/id/E/ET/ETHER/UNIVERSAL-isa-1.20171012.tar.gz";
27679       hash = "sha256-0WlWA2ywHIGd7H0pT274kb4Ltkh2mJYBNUspMWTafys=";
27680     };
27681     meta = {
27682       description = "Attempt to recover from people calling UNIVERSAL::isa as a function";
27683       homepage = "https://github.com/karenetheridge/UNIVERSAL-isa";
27684       license = with lib.licenses; [ artistic1 gpl1Plus ];
27685     };
27686   };
27688   UNIVERSALrequire = buildPerlPackage {
27689     pname = "UNIVERSAL-require";
27690     version = "0.19";
27691     src = fetchurl {
27692       url = "mirror://cpan/authors/id/N/NE/NEILB/UNIVERSAL-require-0.19.tar.gz";
27693       hash = "sha256-1GfNJuBsjDsgP9O8B5aubIN6xeMQCTyCJn/134UPGgM=";
27694     };
27695     meta = {
27696       description = "Require() modules from a variable [deprecated]";
27697       license = with lib.licenses; [ artistic1 gpl1Plus ];
27698     };
27699   };
27701   UnicodeCaseFold = buildPerlModule {
27702     pname = "Unicode-CaseFold";
27703     version = "1.01";
27704     src = fetchurl {
27705       url = "mirror://cpan/authors/id/A/AR/ARODLAND/Unicode-CaseFold-1.01.tar.gz";
27706       hash = "sha256-QYohKAj50Li7MwrJBQltLdNkl2dT1McVNNq5g2pjGU0=";
27707     };
27708     perlPreHook = lib.optionalString stdenv.isi686 "export LD=$CC"; # fix undefined reference to `__stack_chk_fail_local'
27709     meta = {
27710       description = "Unicode case-folding for case-insensitive lookups";
27711       homepage = "https://metacpan.org/release/Unicode-CaseFold";
27712       license = with lib.licenses; [ artistic1 gpl1Plus ];
27713     };
27714   };
27716   UnicodeCheckUTF8 = buildPerlPackage {
27717     pname = "Unicode-CheckUTF8";
27718     version = "1.03";
27719     src = fetchurl {
27720       url = "mirror://cpan/authors/id/B/BR/BRADFITZ/Unicode-CheckUTF8-1.03.tar.gz";
27721       hash = "sha256-l/hNrwM+ubSc2P4x2yIf7wNaXC7h11fzEiyIz5diQUw=";
27722     };
27723     meta = {
27724       description = "Checks if scalar is valid UTF-8";
27725       license = with lib.licenses; [ ucd /* and */ artistic1 gpl1Plus ];
27726     };
27727   };
27729   UnicodeLineBreak = buildPerlPackage {
27730     pname = "Unicode-LineBreak";
27731     version = "2019.001";
27732     src = fetchurl {
27733       url = "mirror://cpan/authors/id/N/NE/NEZUMI/Unicode-LineBreak-2019.001.tar.gz";
27734       hash = "sha256-SGdi5MrN3Md7E5ifl5oCn4RjC4F15/7xeYnhV9S2MYo=";
27735     };
27736     propagatedBuildInputs = [ MIMECharset ];
27737     meta = {
27738       description = "UAX #14 Unicode Line Breaking Algorithm";
27739       license = with lib.licenses; [ artistic1 gpl1Plus ];
27740     };
27741   };
27743   UnicodeString = buildPerlPackage {
27744     pname = "Unicode-String";
27745     version = "2.10";
27746     src = fetchurl {
27747       url = "mirror://cpan/authors/id/G/GA/GAAS/GAAS/Unicode-String-2.10.tar.gz";
27748       hash = "sha256-iUoRDs5HlUaviv7Aly7scyDIbE3qTms1Tf88dSa6m2g=";
27749     };
27750     meta = {
27751       description = "String of Unicode characters (UTF-16BE)";
27752       license = with lib.licenses; [ artistic1 gpl1Plus ];
27753     };
27754   };
27756   UnicodeStringprep = buildPerlModule {
27757     pname = "Unicode-Stringprep";
27758     version = "1.105";
27759     src = fetchurl {
27760       url = "mirror://cpan/authors/id/C/CF/CFAERBER/Unicode-Stringprep-1.105.tar.gz";
27761       hash = "sha256-5r67xYQIIx/RMX25ECRJs+faT6Q3559jc4LTYxPv0BE=";
27762     };
27763     buildInputs = [ TestNoWarnings ];
27764     meta = {
27765       description = "Preparation of Internationalized Strings (RFC 3454)";
27766       license = with lib.licenses; [ artistic1 gpl1Plus ];
27767       maintainers = [ maintainers.sgo ];
27768     };
27769   };
27771   UnicodeUTF8 = buildPerlPackage {
27772     pname = "Unicode-UTF8";
27773     version = "0.62";
27774     src = fetchurl {
27775       url = "mirror://cpan/authors/id/C/CH/CHANSEN/Unicode-UTF8-0.62.tar.gz";
27776       hash = "sha256-+oci0LdGluMy/d1EKZRDbqk9O/x5gtS6vc7f3dZX0PY=";
27777     };
27778     buildInputs = [ TestFatal ];
27779     meta = {
27780       description = "Encoding and decoding of UTF-8 encoding form";
27781       homepage = "https://github.com/chansen/p5-unicode-utf8";
27782       license = with lib.licenses; [ artistic1 gpl1Plus ];
27783       maintainers = with maintainers; [ sgo ];
27784     };
27785   };
27787   UnixGetrusage = buildPerlPackage {
27788     pname = "Unix-Getrusage";
27789     version = "0.03";
27790     src = fetchurl {
27791       url = "mirror://cpan/authors/id/T/TA/TAFFY/Unix-Getrusage-0.03.tar.gz";
27792       hash = "sha256-ds3hzuJFMmC4WrvdwnzcmHXwHSRX4XbgPcq/BftETRI=";
27793     };
27794     meta = {
27795       description = "Perl interface to the Unix getrusage system call";
27796       license = with lib.licenses; [ artistic1 gpl1Plus ];
27797     };
27798   };
27800   URI = buildPerlPackage {
27801     pname = "URI";
27802     version = "5.21";
27803     src = fetchurl {
27804       url = "mirror://cpan/authors/id/O/OA/OALDERS/URI-5.21.tar.gz";
27805       hash = "sha256-liZYYM1hveFuhBXc+/EIBW3hYsqgrDf4HraVydLgq3c=";
27806     };
27807     buildInputs = [ TestFatal TestNeeds TestWarnings ];
27808     meta = {
27809       description = "Uniform Resource Identifiers (absolute and relative)";
27810       homepage = "https://github.com/libwww-perl/URI";
27811       license = with lib.licenses; [ artistic1 gpl1Plus ];
27812     };
27813   };
27815   URIdb = buildPerlModule {
27816     pname = "URI-db";
27817     version = "0.21";
27818     src = fetchurl {
27819       url = "mirror://cpan/authors/id/D/DW/DWHEELER/URI-db-0.21.tar.gz";
27820       hash = "sha256-pkM9wVF6kH4YmRKkx2td/HYzLj/X/Is4oTfkAZx4CzQ=";
27821     };
27822     propagatedBuildInputs = [ URINested ];
27823     meta = {
27824       description = "Database URIs";
27825       homepage = "https://search.cpan.org/dist/URI-db";
27826       license = with lib.licenses; [ artistic1 gpl1Plus ];
27827     };
27828   };
27830   URIFind = buildPerlModule {
27831     pname = "URI-Find";
27832     version = "20160806";
27833     src = fetchurl {
27834       url = "mirror://cpan/authors/id/M/MS/MSCHWERN/URI-Find-20160806.tar.gz";
27835       hash = "sha256-4hOkJaUbX1UyQhHzeQnXh0nQus3qJZulGphV0NGWY9Y=";
27836     };
27837     propagatedBuildInputs = [ URI ];
27838     meta = {
27839       description = "Find URIs in arbitrary text";
27840       homepage = "https://metacpan.org/release/URI-Find";
27841       license = with lib.licenses; [ artistic1 gpl1Plus ];
27842       mainProgram = "urifind";
27843     };
27844   };
27846   URIFromHash = buildPerlPackage {
27847     pname = "URI-FromHash";
27848     version = "0.05";
27849     src = fetchurl {
27850       url = "mirror://cpan/authors/id/D/DR/DROLSKY/URI-FromHash-0.05.tar.gz";
27851       hash = "sha256-p8rFvM7p8uLYrQ9gVAAWNxLNCsZN8vuDT3YPtJ8vb9A=";
27852     };
27853     propagatedBuildInputs = [ ParamsValidate URI ];
27854     buildInputs = [ TestFatal ];
27855     meta = {
27856       description = "Build a URI from a set of named parameters";
27857       homepage = "https://metacpan.org/release/URI-FromHash";
27858       license = with lib.licenses; [ artistic2 ];
27859     };
27860   };
27862   UriGoogleChart = buildPerlPackage {
27863     pname = "URI-GoogleChart";
27864     version = "1.02";
27865     src = fetchurl {
27866       url = "mirror://cpan/authors/id/G/GA/GAAS/URI-GoogleChart-1.02.tar.gz";
27867       hash = "sha256-WoLCLsYBejXQ/IJv7xNBIiaHL8SiPA4sAUqfqS8rGAI=";
27868     };
27869     propagatedBuildInputs = [ URI ];
27870     meta = {
27871       description = "Generate Google Chart URIs";
27872       license = with lib.licenses; [ artistic1 gpl1Plus ];
27873     };
27874   };
27876   UserIdentity = buildPerlPackage {
27877     pname = "User-Identity";
27878     version = "1.02";
27879     src = fetchurl {
27880       url = "mirror://cpan/authors/id/M/MA/MARKOV/User-Identity-1.02.tar.gz";
27881       hash = "sha256-OySu5/UnjGXD8EEVsHyG5kaTTpnqQJJANj8wiZE+uJk=";
27882     };
27883     propagatedBuildInputs = [ HashOrdered ];
27884     meta = {
27885       description = "Collect information about a user";
27886       homepage = "http://perl.overmeer.net/CPAN";
27887       license = with lib.licenses; [ artistic1 gpl1Plus ];
27888     };
27889   };
27891   URIIMAP = buildPerlPackage {
27892     pname = "URI-imap";
27893     version = "1.01";
27894     src = fetchurl {
27895       url = "mirror://cpan/authors/id/C/CW/CWEST/URI-imap-1.01.tar.gz";
27896       hash = "sha256-uxSZiW7ONKe08JFinC5yw2imcwDoVzqyIZjJ2HI1uy0=";
27897     };
27898     propagatedBuildInputs = [ URI ];
27899     meta = {
27900       description = "Support IMAP URI";
27901       license = with lib.licenses; [ artistic1 gpl1Plus ];
27902     };
27903   };
27905   URINested = buildPerlModule {
27906     pname = "URI-Nested";
27907     version = "0.10";
27908     src = fetchurl {
27909       url = "mirror://cpan/authors/id/D/DW/DWHEELER/URI-Nested-0.10.tar.gz";
27910       hash = "sha256-4ZcTOaZfusY6uHFC1LWdPSWdUUF3U8d8tY6jGoIz768=";
27911     };
27912     propagatedBuildInputs = [ URI ];
27913     meta = {
27914       description = "Nested URIs";
27915       homepage = "https://metacpan.org/release/URI-Nested";
27916       license = with lib.licenses; [ artistic1 gpl1Plus ];
27917     };
27918   };
27920   URISmartURI = buildPerlPackage {
27921     pname = "URI-SmartURI";
27922     version = "0.032";
27923     src = fetchurl {
27924       url = "mirror://cpan/authors/id/R/RK/RKITOVER/URI-SmartURI-0.032.tar.gz";
27925       hash = "sha256-6xdLeUYi4UK30JT2p+Nqe6T8i7zySF4QPuPaNevMTyw=";
27926     };
27927     propagatedBuildInputs = [ ClassC3Componentised FileFindRule ListMoreUtils Moose URI namespaceclean ];
27928     buildInputs = [ TestFatal TestNoWarnings ];
27929     meta = {
27930       description = "Subclassable and hostless URIs";
27931       license = with lib.licenses; [ artistic1 gpl1Plus ];
27932     };
27933   };
27935   URITemplate = buildPerlPackage {
27936     pname = "URI-Template";
27937     version = "0.24";
27938     src = fetchurl {
27939       url = "mirror://cpan/authors/id/B/BR/BRICAS/URI-Template-0.24.tar.gz";
27940       hash = "sha256-aK4tYbV+FNytD4Kvr/3F7AW1B6HpyN9aphOKqipbEd4=";
27941     };
27942     propagatedBuildInputs = [ URI ];
27943     meta = {
27944       description = "Object for handling URI templates (RFC 6570)";
27945       license = with lib.licenses; [ artistic1 gpl1Plus ];
27946     };
27947   };
27949   URIcpan = buildPerlPackage {
27950     pname = "URI-cpan";
27951     version = "1.009";
27952     src = fetchurl {
27953       url = "mirror://cpan/authors/id/R/RJ/RJBS/URI-cpan-1.009.tar.gz";
27954       hash = "sha256-JFV5sCW2P1d8cndDARmEcjhxykDcNezsjq05riSkjhI=";
27955     };
27956     propagatedBuildInputs = [ CPANDistnameInfo URI ];
27957     meta = {
27958       description = "URLs that refer to things on the CPAN";
27959       homepage = "https://github.com/rjbs/URI-cpan";
27960       license = with lib.licenses; [ artistic1 gpl1Plus ];
27961     };
27962   };
27964   URIws = buildPerlPackage {
27965     pname = "URI-ws";
27966     version = "0.03";
27967     src = fetchurl {
27968       url = "mirror://cpan/authors/id/P/PL/PLICEASE/URI-ws-0.03.tar.gz";
27969       hash = "sha256-bmsOQXKstqU8IiY5wABgjC3WHVCEhkdIKshgDVDlQe8=";
27970     };
27971     propagatedBuildInputs = [ URI ];
27972     meta = {
27973       description = "WebSocket support for URI package";
27974       homepage = "http://perl.wdlabs.com/URI-ws";
27975       license = with lib.licenses; [ artistic1 gpl1Plus ];
27976     };
27977   };
27979   UUID4Tiny = buildPerlPackage {
27980     pname = "UUID4-Tiny";
27981     version = "0.003";
27982     src = fetchurl {
27983       url = "mirror://cpan/authors/id/C/CV/CVLIBRARY/UUID4-Tiny-0.003.tar.gz";
27984       hash = "sha256-4S9sgrg1dcORd3O0HA+1HPeDx8bPcuDJkWks4u8Hg2I=";
27985     };
27986     postPatch = lib.optionalString (stdenv.isAarch64) ''
27987       # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/asm-generic/unistd.h
27988       # printf SYS_getrandom | gcc -include sys/syscall.h -E -
27989       substituteInPlace lib/UUID4/Tiny.pm \
27990         --replace "syscall( 318" "syscall( 278"
27991     '';
27992     meta = {
27993       description = "Cryptographically secure v4 UUIDs for Linux x64";
27994       license = with lib.licenses; [ artistic1 gpl1Plus ];
27995       platforms = lib.platforms.linux; # configure phase fails with "OS unsupported"
27996     };
27997   };
27999   UUIDTiny = buildPerlPackage {
28000     pname = "UUID-Tiny";
28001     version = "1.04";
28002     src = fetchurl {
28003       url = "mirror://cpan/authors/id/C/CA/CAUGUSTIN/UUID-Tiny-1.04.tar.gz";
28004       hash = "sha256-bc2SYE1k6WzGwYgZSuFqnTpGVWIk93tvPR0TEraPmj0=";
28005     };
28006     meta = {
28007       description = "Pure Perl UUID Support With Functional Interface";
28008       license = with lib.licenses; [ artistic1 gpl1Plus ];
28009     };
28010   };
28012   UUIDURandom = buildPerlPackage {
28013     pname = "UUID-URandom";
28014     version = "0.001";
28015     src = fetchurl {
28016       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/UUID-URandom-0.001.tar.gz";
28017       hash = "sha256-PxNjGxO5YE+0ieKYlJDJnxA3Q6g3I5va+unWuvVfj0Y=";
28018     };
28019     propagatedBuildInputs = [ CryptURandom ];
28020     meta = {
28021       description = "UUIDs based on /dev/urandom or the Windows Crypto API";
28022       homepage = "https://github.com/dagolden/UUID-URandom";
28023       license = with lib.licenses; [ asl20 ];
28024     };
28025   };
28027   VariableMagic = buildPerlPackage {
28028     pname = "Variable-Magic";
28029     version = "0.63";
28030     src = fetchurl {
28031       url = "mirror://cpan/authors/id/V/VP/VPIT/Variable-Magic-0.63.tar.gz";
28032       hash = "sha256-ukCDssMf8mlPI3EzPVVMgmqvJLTZjQPki1tKQ6Kg5nk=";
28033     };
28034     meta = {
28035       description = "Associate user-defined magic to variables from Perl";
28036       homepage = "https://search.cpan.org/dist/Variable-Magic";
28037       license = with lib.licenses; [ artistic1 gpl1Plus ];
28038     };
28039   };
28041   Version = buildPerlPackage {
28042     pname = "version";
28043     version = "0.9930";
28044     src = fetchurl {
28045       url = "mirror://cpan/authors/id/L/LE/LEONT/version-0.9930.tar.gz";
28046       hash = "sha256-YduVX7yzn1kC+myLlXrrJ0HiPUhA+Eq/hGrx9nCu7jA=";
28047     };
28048     meta = {
28049       description = "Structured version objects";
28050       license = with lib.licenses; [ artistic1 gpl1Plus ];
28051     };
28052   };
28054   vidir = buildPerlPackage {
28055     pname = "App-vidir";
28056     version = "0.052";
28057     src = fetchurl {
28058       url = "mirror://cpan/authors/id/W/WO/WOLDRICH/App-vidir-0.052.tar.gz";
28059       hash = "sha256-GSKQdqXxPvGe1sEbu5Bcrc4iYH+pDoXJrxqqKbWsFQo=";
28060     };
28061     outputs = [ "out" ];
28062     meta = {
28063       description = "File manager USING vim itself";
28064       license = with lib.licenses; [ artistic1 gpl1Plus ];
28065       maintainers = [ maintainers.chreekat ];
28066       mainProgram = "vidir";
28067     };
28068   };
28070   VMEC2 = buildPerlModule {
28071     pname = "VM-EC2";
28072     version = "1.28";
28073     src = fetchurl {
28074       url = "mirror://cpan/authors/id/L/LD/LDS/VM-EC2-1.28.tar.gz";
28075       hash = "sha256-srazF0XFdDH8oO+5udC48WjWCBdV4Ej9nWxEab0Qis0=";
28076     };
28077     propagatedBuildInputs = [ AnyEventCacheDNS AnyEventHTTP JSON StringApprox XMLSimple ];
28078     meta = {
28079       description = "Perl interface to Amazon EC2, Virtual Private Cloud, Elastic Load Balancing, Autoscaling, and Relational Database services";
28080       license = with lib.licenses; [ artistic1 gpl1Plus ];
28081     };
28082   };
28084   VMEC2SecurityCredentialCache = buildPerlPackage {
28085     pname = "VM-EC2-Security-CredentialCache";
28086     version = "0.25";
28087     src = fetchurl {
28088       url = "mirror://cpan/authors/id/R/RC/RCONOVER/VM-EC2-Security-CredentialCache-0.25.tar.gz";
28089       hash = "sha256-/H6cFS/ytyHMsiGsQAiZNHdc9YNmrttcwWk2CfhAk3s=";
28090     };
28091     propagatedBuildInputs = [ DateTimeFormatISO8601 VMEC2 ];
28092     meta = {
28093       description = "Cache credentials respecting expiration time for IAM roles";
28094       homepage = "https://search.cpan.org/dist/VM-EC2-Security-CredentialCache";
28095       license = with lib.licenses; [ artistic1 gpl1Plus ];
28096     };
28097   };
28099   W3CLinkChecker = buildPerlPackage {
28100     pname = "W3C-LinkChecker";
28101     version = "5.0.0";
28102     src = fetchurl {
28103       url = "mirror://cpan/authors/id/D/DH/DHM/W3C-LinkChecker-5.0.0.tar.gz";
28104       hash = "sha256-CvdY0ZUMswTdqvqnoDmHaHTYjC/teL2KYx6zkG5U+6Y=";
28105     };
28106     outputs = [ "out" ];
28107     propagatedBuildInputs = [ CGI CSSDOM ConfigGeneral LWP LocaleCodes NetIP TermReadKey ];
28108     meta = {
28109       description = "W3C Link Checker";
28110       homepage = "https://validator.w3.org/checklink";
28111       license = with lib.licenses; [ w3c ];
28112       mainProgram = "checklink";
28113     };
28114   };
28116   WWWCurl = buildPerlPackage {
28117     pname = "WWW-Curl";
28118     version = "4.17";
28119     src = fetchurl {
28120       url = "mirror://cpan/authors/id/S/SZ/SZBALINT/WWW-Curl-4.17.tar.gz";
28121       hash = "sha256-Uv+rEQ4yNI13XyQclz61b5awju28EQ130lfNsKJKt7o=";
28122     };
28123     patches = [
28124       (fetchpatch {
28125         url = "https://aur.archlinux.org/cgit/aur.git/plain/makefile.patch?h=perl-www-curl&id=7e004bb8c5dc49c903a5d5fa5ff28c30a58e2595";
28126         hash = "sha256-8JZbe4IMfRZyLa118AAH/wsXrazOFy79OoH3Nuy57A4=";
28127         name = "perl-www-curl-makefile.patch";
28128       })
28129     ];
28130     env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-return-type";
28131     buildInputs = [ pkgs.curl ];
28132     doCheck = false; # performs network access
28133     meta = {
28134       description = "Perl extension interface for libcurl";
28135       license = with lib.licenses; [ mit ];
28136     };
28137   };
28139   WWWFormUrlEncoded = buildPerlModule {
28140     pname = "WWW-Form-UrlEncoded";
28141     version = "0.26";
28142     src = fetchurl {
28143       url = "mirror://cpan/authors/id/K/KA/KAZEBURO/WWW-Form-UrlEncoded-0.26.tar.gz";
28144       hash = "sha256-wEgLXx8VtxFj7DJ7jnhCKY8Ms6zpfmPXA0rx6UotkPQ=";
28145     };
28146     meta = {
28147       description = "Parser and builder for application/x-www-form-urlencoded";
28148       homepage = "https://github.com/kazeburo/WWW-Form-UrlEncoded";
28149       license = with lib.licenses; [ artistic1 gpl1Plus ];
28150     };
28151   };
28153   WWWMechanize = buildPerlPackage {
28154     pname = "WWW-Mechanize";
28155     version = "2.17";
28156     src = fetchurl {
28157       url = "mirror://cpan/authors/id/S/SI/SIMBABQUE/WWW-Mechanize-2.17.tar.gz";
28158       hash = "sha256-nAIAPoRiHeoSyYDEEB555PjK5OOCzT2iOfqovRmPBjo=";
28159     };
28160     propagatedBuildInputs = [ HTMLForm HTMLTree LWP ];
28161     doCheck = false;
28162     buildInputs = [ CGI HTTPServerSimple PathTiny TestDeep TestFatal TestOutput TestWarnings ];
28163     meta = {
28164       description = "Handy web browsing in a Perl object";
28165       homepage = "https://github.com/libwww-perl/WWW-Mechanize";
28166       license = with lib.licenses; [ artistic1 gpl1Plus ];
28167       mainProgram = "mech-dump";
28168     };
28169   };
28171   WWWMechanizeCGI = buildPerlPackage {
28172     pname = "WWW-Mechanize-CGI";
28173     version = "0.3";
28174     src = fetchurl {
28175       url = "mirror://cpan/authors/id/M/MR/MRAMBERG/WWW-Mechanize-CGI-0.3.tar.gz";
28176       hash = "sha256-weBNi/Hh8NfP9Rl7I2Z2kyrLgCgJNq7a5PngSFGo0hA=";
28177     };
28178     propagatedBuildInputs = [ HTTPRequestAsCGI WWWMechanize ];
28179     preConfigure = ''
28180       substituteInPlace t/cgi-bin/script.cgi \
28181         --replace '#!/usr/bin/perl' '#!${perl}/bin/perl'
28182     '';
28183     meta = {
28184       description = "Use WWW::Mechanize with CGI applications";
28185       license = with lib.licenses; [ artistic1 gpl1Plus ];
28186       broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.WWWMechanizeCGI.x86_64-darwin
28187     };
28188   };
28190   WWWRobotRules = buildPerlPackage {
28191     pname = "WWW-RobotRules";
28192     version = "6.02";
28193     src = fetchurl {
28194       url = "mirror://cpan/authors/id/G/GA/GAAS/WWW-RobotRules-6.02.tar.gz";
28195       hash = "sha256-RrUC56KI1VlCmJHutdl5Rh3T7MalxJHq2F0WW24DpR4=";
28196     };
28197     propagatedBuildInputs = [ URI ];
28198     meta = {
28199       description = "Database of robots.txt-derived permissions";
28200       license = with lib.licenses; [ artistic1 gpl1Plus ];
28201     };
28202   };
28204   WWWTwilioAPI = buildPerlPackage {
28205     pname = "WWW-Twilio-API";
28206     version = "0.21";
28207     src = fetchurl {
28208       url = "mirror://cpan/authors/id/S/SC/SCOTTW/WWW-Twilio-API-0.21.tar.gz";
28209       hash = "sha256-WC21OgkfjaNnDAN3MzFPJRCvXo7gukKg45Hi8uPKdzQ=";
28210     };
28211     prePatch = "rm examples.pl";
28212     propagatedBuildInputs = [ LWPProtocolHttps ];
28213     meta = {
28214       description = "Accessing Twilio's REST API with Perl";
28215       license = with lib.licenses; [ artistic1 gpl1Plus ];
28216     };
28217   };
28219   WWWYoutubeViewer = callPackage ../development/perl-modules/WWW-YoutubeViewer { };
28221   Want = buildPerlPackage {
28222     pname = "Want";
28223     version = "0.29";
28224     src = fetchurl {
28225       url = "mirror://cpan/authors/id/R/RO/ROBIN/Want-0.29.tar.gz";
28226       hash = "sha256-tOR0C41Mt4NZEnPGNr1oMEiS4o2J6Iq/knOx3hf1Uvc=";
28227     };
28228     meta = {
28229       description = "A generalisation of wantarray";
28230       license = with lib.licenses; [ artistic1 gpl1Plus ];
28231     };
28232   };
28234   Win32ShellQuote = buildPerlPackage {
28235     pname = "Win32-ShellQuote";
28236     version = "0.003001";
28237     src = fetchurl {
28238       url = "mirror://cpan/authors/id/H/HA/HAARG/Win32-ShellQuote-0.003001.tar.gz";
28239       hash = "sha256-qnSw49wtQc1j9i+FPlIf/Xa42CNHmiYZ4i7bQEm0wNw=";
28240     };
28241     meta = {
28242       description = "Quote argument lists for Win32";
28243       license = with lib.licenses; [ artistic1 gpl1Plus ];
28244     };
28245   };
28247   Workflow = buildPerlPackage {
28248     pname = "Workflow";
28249     version = "1.62";
28250     src = fetchurl {
28251       url = "mirror://cpan/authors/id/J/JO/JONASBN/Workflow-1.62.tar.gz";
28252       hash = "sha256-WNNokAm4j+Gp2DcWfTKaoe4xTzFZeeVik2OGVFs80pU=";
28253     };
28254     buildInputs = [ DBDMock ListMoreUtils MockMonkeyPatch PodCoverageTrustPod TestException TestKwalitee TestPod TestPodCoverage ];
28255     propagatedBuildInputs = [ ClassAccessor ClassFactory DateTime DBI DataUUID DateTimeFormatStrptime ExceptionClass FileSlurp LogLog4perl Readonly XMLSimple ];
28256     meta = {
28257       description = "Simple, flexible system to implement workflows";
28258       homepage = "https://github.com/jonasbn/perl-workflow";
28259       license = with lib.licenses; [ artistic1 gpl1Plus ];
28260     };
28261   };
28263   Wx = buildPerlPackage {
28264     pname = "Wx";
28265     version = "0.9932";
28266     src = fetchurl {
28267       url = "mirror://cpan/authors/id/M/MD/MDOOTSON/Wx-0.9932.tar.gz";
28268       hash = "sha256-HP22U1oPRnbm8aqyydjhbVd74+s7fMBMgHTWheZlG3A=";
28269     };
28270     patches = [
28271       (fetchpatch {
28272         url = "https://sources.debian.org/data/main/libw/libwx-perl/1%3A0.9932-8/debian/patches/gtk3.patch";
28273         hash = "sha256-CokmRzDTFmEMN/jTKw9ECCPvi0mHt5+h8Ojg4Jgd7D4=";
28274       })
28275       (fetchpatch {
28276         url = "https://sources.debian.org/data/main/libw/libwx-perl/1%3A0.9932-8/debian/patches/wxWidgets_3.2_MakeMaker.patch";
28277         hash = "sha256-kTJiCGv8yxQbgMych9yT2cOt+2bL1G4oJ0gehNcu0Rc=";
28278       })
28279       (fetchpatch {
28280         url = "https://sources.debian.org/data/main/libw/libwx-perl/1%3A0.9932-8/debian/patches/wxWidgets_3.2_port.patch";
28281         hash = "sha256-y9LMpcbm7p8+LZ2Hw3PA2jc7bHAFEu0QRa170XuseKw=";
28282       })
28283     ];
28284     # DND.c:453:15: error: incompatible integer to pointer conversion assigning to 'NativeFormat' (aka 'const __CFString *') from 'wxDataFormatId'
28285     postPatch = ''
28286       substituteInPlace ext/dnd/XS/DataObject.xs \
28287         --replace "#ifdef __WXGTK20__" "#if wxUSE_GUI"
28288     '';
28289     propagatedBuildInputs = [ AlienWxWidgets ];
28290     # Testing requires an X server:
28291     #   Error: Unable to initialize GTK, is DISPLAY set properly?"
28292     doCheck = false;
28293     buildInputs = [ ExtUtilsXSpp ];
28294     meta = {
28295       description = "Interface to the wxWidgets cross-platform GUI toolkit";
28296       license = with lib.licenses; [ artistic1 gpl1Plus ];
28297     };
28298   };
28300   WxGLCanvas = buildPerlPackage {
28301     pname = "Wx-GLCanvas";
28302     version = "0.09";
28303     src = fetchurl {
28304       url = "mirror://cpan/authors/id/M/MB/MBARBON/Wx-GLCanvas-0.09.tar.gz";
28305       hash = "sha256-atLCn/Bv+Apci0udHWvwrtV0iegxvlnJRJT09ojcj+A=";
28306     };
28307     propagatedBuildInputs = [ pkgs.libGLU Wx ];
28308     doCheck = false;
28309     meta = {
28310       description = "wxPerl demo helper for Wx::GLCanvas";
28311       license = with lib.licenses; [ artistic1 gpl1Plus ];
28312     };
28313   };
28315   X11IdleTime = buildPerlPackage {
28316     pname = "X11-IdleTime";
28317     version = "0.09";
28318     src = fetchurl {
28319       url = "mirror://cpan/authors/id/A/AW/AWENDT/X11-IdleTime-0.09.tar.gz";
28320       hash = "sha256-2P3cB455ge4xt2CMZTZFyyDwFr3dx8VQtNUn79NiR0g=";
28321     };
28322     buildInputs = [ pkgs.xorg.libXext pkgs.xorg.libXScrnSaver pkgs.xorg.libX11 ];
28323     propagatedBuildInputs = [ InlineC ];
28324     patchPhase = "sed -ie 's,-L/usr/X11R6/lib/,-L${pkgs.xorg.libX11.out}/lib/ -L${pkgs.xorg.libXext.out}/lib/ -L${pkgs.xorg.libXScrnSaver}/lib/,' IdleTime.pm";
28325     meta = {
28326       description = "Get the idle time of X11";
28327       license = with lib.licenses; [ artistic1 gpl1Plus ];
28328     };
28329   };
28331   X11Protocol = buildPerlPackage {
28332     pname = "X11-Protocol";
28333     version = "0.56";
28334     src = fetchurl {
28335       url = "mirror://cpan/authors/id/S/SM/SMCCAM/X11-Protocol-0.56.tar.gz";
28336       hash = "sha256-3pbdbHwfJfMoeqevZJAr+ErKqo4MO7dqoWdjZ+BKCLc=";
28337     };
28338     doCheck = false; # requires an X server
28339     meta = {
28340       description = "Perl module for the X Window System Protocol, version 11";
28341       license = with lib.licenses; [ artistic1 gpl1Plus ];
28342     };
28343   };
28345   X11ProtocolOther = buildPerlPackage {
28346     pname = "X11-Protocol-Other";
28347     version = "31";
28348     src = fetchurl {
28349       url = "mirror://cpan/authors/id/K/KR/KRYDE/X11-Protocol-Other-31.tar.gz";
28350       hash = "sha256-PGJZk9x6jrHQLgcQimZjAkWcb8b589J2FfdJUVjcc/Q=";
28351     };
28352     propagatedBuildInputs = [ X11Protocol ];
28353     buildInputs = [ EncodeHanExtra ModuleUtil ];
28354     meta = {
28355       description = "Miscellaneous helpers for X11::Protocol connections";
28356       homepage = "https://user42.tuxfamily.org/x11-protocol-other/index.html";
28357       license = with lib.licenses; [ gpl1Plus gpl3Plus ];
28358     };
28359   };
28361   X11GUITest = buildPerlPackage {
28362     pname = "X11-GUITest";
28363     version = "0.28";
28364     src = fetchurl {
28365       url = "mirror://cpan/authors/id/C/CT/CTRONDLP/X11-GUITest-0.28.tar.gz";
28366       hash = "sha256-3O7eU3AGEP/xQtydXE5M0DcMiKTysTcfnL9NjYzm9ks=";
28367     };
28368     buildInputs = [ pkgs.xorg.libX11 pkgs.xorg.libXi pkgs.xorg.libXt pkgs.xorg.libXtst ];
28369     NIX_CFLAGS_LINK = "-lX11";
28370     doCheck = false; # requires an X server
28371     meta = {
28372       description = "Provides GUI testing/interaction routines";
28373       license = with lib.licenses; [ gpl2Only ];
28374     };
28375   };
28377   X11XCB = buildPerlPackage {
28378     pname = "X11-XCB";
28379     version = "0.20";
28380     src = fetchurl {
28381       url = "mirror://cpan/authors/id/Z/ZH/ZHMYLOVE/X11-XCB-0.20.tar.gz";
28382       hash = "sha256-rVY5Yd4gIlVOdZHvXLjZY0ngxzdxIYXkeFBViMZ6L9I=";
28383     };
28384     env.AUTOMATED_TESTING = false;
28385     nativeBuildInputs = [ pkgs.pkg-config ];
28386     buildInputs = [ pkgs.xorg.libxcb pkgs.xorg.xcbproto pkgs.xorg.xcbutil pkgs.xorg.xcbutilwm ExtUtilsDepends ExtUtilsPkgConfig TestDeep TestException XSObjectMagic ];
28387     propagatedBuildInputs = [ DataDump MouseXNativeTraits XMLDescent XMLSimple ];
28388     NIX_CFLAGS_LINK = "-lxcb -lxcb-util -lxcb-xinerama -lxcb-icccm";
28389     doCheck = false; # requires an X server
28390     meta = {
28391       description = "Perl bindings for libxcb";
28392       license = with lib.licenses; [ artistic1 gpl1Plus ];
28393     };
28394   };
28396   XMLCanonicalizeXML = buildPerlPackage {
28397     pname = "XML-CanonicalizeXML";
28398     version = "0.10";
28399     src = fetchurl {
28400       url = "mirror://cpan/authors/id/S/SJ/SJZASADA/XML-CanonicalizeXML-0.10.tar.gz";
28401       hash = "sha256-5yhGSIDLtMHz/XceCQOoUmzWV7OUuzchYDUkXPHihu4=";
28402     };
28403     buildInputs = [ pkgs.libxml2 ];
28404     meta = {
28405       description = "Perl extension for inclusive (1.0 and 1.1) and exclusive canonicalization of XML using libxml2";
28406       license = with lib.licenses; [ artistic1 gpl1Plus ];
28407       maintainers = [ maintainers.sgo ];
28408     };
28409   };
28411   XMLDescent = buildPerlModule {
28412     pname = "XML-Descent";
28413     version = "1.04";
28414     src = fetchurl {
28415       url = "mirror://cpan/authors/id/A/AN/ANDYA/XML-Descent-1.04.tar.gz";
28416       hash = "sha256-pxG4VvjN9eZHpExx+WfUjAlgNbnb0/Hvvb6kBgWvvVA=";
28417     };
28418     buildInputs = [ TestDifferences ];
28419     propagatedBuildInputs = [ XMLTokeParser ];
28420     meta = {
28421       description = "Recursive descent XML parsing";
28422       license = with lib.licenses; [ artistic1 gpl1Plus ];
28423     };
28424   };
28426   XMLEncoding = buildPerlPackage {
28427     pname = "XML-Encoding";
28428     version = "2.11";
28429     src = fetchurl {
28430       url = "mirror://cpan/authors/id/S/SH/SHAY/XML-Encoding-2.11.tar.gz";
28431       hash = "sha256-pQ5Brwp5uILUiBa5VoHzilWvHmqIgo3NljdKi94jBaE=";
28432     };
28433     propagatedBuildInputs = [ XMLParser ];
28434     meta = {
28435       description = "A perl module for parsing XML encoding maps";
28436       license = with lib.licenses; [ artistic1 gpl1Plus ];
28437     };
28438   };
28440   XMLEntities = buildPerlPackage {
28441     pname = "XML-Entities";
28442     version = "1.0002";
28443     src = fetchurl {
28444       url = "mirror://cpan/authors/id/S/SI/SIXTEASE/XML-Entities-1.0002.tar.gz";
28445       hash = "sha256-wyqk8wlXPXZIqy5Bb2K2sgZS8q2c/T7sgv1REB/nMQ0=";
28446     };
28447     nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang;
28448     propagatedBuildInputs = [ LWP ];
28449     postInstall = lib.optionalString stdenv.isDarwin ''
28450       shortenPerlShebang $out/bin/download-entities.pl
28451     '';
28452     meta = {
28453       description = "Mapping of XML entities to Unicode";
28454       license = with lib.licenses; [ artistic1 gpl1Plus ];
28455     };
28456   };
28458   XMLDOM = buildPerlPackage {
28459     pname = "XML-DOM";
28460     version = "1.46";
28461     src = fetchurl {
28462       url = "mirror://cpan/authors/id/T/TJ/TJMATHER/XML-DOM-1.46.tar.gz";
28463       hash = "sha256-i6JLC0WbAdbF5bBAiCnH1d/kf/ebNUjIE3WQSAmbF14=";
28464     };
28465     propagatedBuildInputs = [ XMLRegExp libxml_perl ];
28466     meta = {
28467       description = "Interface to XML::DOM toolset";
28468       license = with lib.licenses; [ gpl2Only ];
28469     };
28470   };
28472   XMLFeedPP = buildPerlPackage {
28473     pname = "XML-FeedPP";
28474     version = "0.95";
28475     src = fetchurl {
28476       url = "mirror://cpan/authors/id/M/MA/MARKOV/XML-FeedPP-0.95.tar.gz";
28477       hash = "sha256-kMOVm/GmC3aimnSac5QfOgx7mllUwTZbyB2vyrsBqPQ=";
28478     };
28479     propagatedBuildInputs = [ XMLTreePP ];
28480     meta = {
28481       description = "Parse/write/merge/edit RSS/RDF/Atom syndication feeds";
28482       homepage = "http://perl.overmeer.net/CPAN";
28483       license = with lib.licenses; [ artistic1 gpl1Plus ];
28484     };
28485   };
28487   XMLFilterBufferText = buildPerlPackage {
28488     pname = "XML-Filter-BufferText";
28489     version = "1.01";
28490     src = fetchurl {
28491       url = "mirror://cpan/authors/id/R/RB/RBERJON/XML-Filter-BufferText-1.01.tar.gz";
28492       hash = "sha256-j9ISbTvuxVTfhSkZ9HOeaJICy7pqF1Bum2bqFlhBp1w=";
28493     };
28494     doCheck = false;
28495     meta = {
28496       description = "Filter to put all characters() in one event";
28497       license = with lib.licenses; [ artistic1 gpl1Plus ];
28498     };
28499   };
28501   XMLFilterXInclude = buildPerlPackage {
28502     pname = "XML-Filter-XInclude";
28503     version = "1.0";
28504     src = fetchurl {
28505       url = "mirror://cpan/authors/id/M/MS/MSERGEANT/XML-Filter-XInclude-1.0.tar.gz";
28506       hash = "sha256-mHRvPB9vBJSR/sID1FW7j4ycbiUPBBkE3aXXjiEYf5M=";
28507     };
28508     doCheck = false;
28509     meta = {
28510       description = "XInclude as a SAX Filter";
28511       license = with lib.licenses; [ artistic1 gpl1Plus ];
28512     };
28513   };
28515   XMLFilterSort = buildPerlPackage {
28516     pname = "XML-Filter-Sort";
28517     version = "1.01";
28518     src = fetchurl {
28519       url = "mirror://cpan/authors/id/G/GR/GRANTM/XML-Filter-Sort-1.01.tar.gz";
28520       hash = "sha256-UQWF85pJFszV+o1UXpYXnJHq9vx8l6QBp1aOhBFi+l8=";
28521     };
28522     nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang;
28523     propagatedBuildInputs = [
28524       XMLSAX
28525       XMLSAXWriter
28526     ];
28527     postInstall = lib.optionalString stdenv.isDarwin ''
28528       shortenPerlShebang $out/bin/xmlsort
28529     '';
28530     meta = {
28531       description = "SAX filter for sorting elements in XML";
28532       license = with lib.licenses; [ artistic1 gpl1Plus ];
28533       mainProgram = "xmlsort";
28534     };
28535   };
28537   XMLGrove = buildPerlPackage {
28538     pname = "XML-Grove";
28539     version = "0.46alpha";
28540     src = fetchurl {
28541       url = "mirror://cpan/authors/id/K/KM/KMACLEOD/XML-Grove-0.46alpha.tar.gz";
28542       hash = "sha256-/LZtffSsKcsO3B6mLBdQcCyqaob8lHkKlPyxo2vQ0Rc=";
28543     };
28544     buildInputs = [ pkgs.libxml2 ];
28545     propagatedBuildInputs = [ libxml_perl ];
28547     #patch from https://bugzilla.redhat.com/show_bug.cgi?id=226285
28548     patches = [ ../development/perl-modules/xml-grove-utf8.patch ];
28549     meta = {
28550       description = "Perl-style XML objects";
28551       license = with lib.licenses; [ artistic1 gpl1Plus ];
28552     };
28553   };
28555   XMLHandlerYAWriter = buildPerlPackage {
28556     pname = "XML-Handler-YAWriter";
28557     version = "0.23";
28558     src = fetchurl {
28559       url = "mirror://cpan/authors/id/K/KR/KRAEHE/XML-Handler-YAWriter-0.23.tar.gz";
28560       hash = "sha256-50y7vl41wapyYZC/re8cePN7ThV3+JyT2sKgr4MqpIU=";
28561     };
28562     propagatedBuildInputs = [ libxml_perl ];
28563     meta = {
28564       description = "Yet another Perl SAX XML Writer";
28565       license = with lib.licenses; [ gpl1Only ];
28566       mainProgram = "xmlpretty";
28567     };
28568   };
28570   XMLLibXML = buildPerlPackage {
28571     pname = "XML-LibXML";
28572     version = "2.0209";
28573     src = fetchurl {
28574       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/XML-LibXML-2.0209.tar.gz";
28575       hash = "sha256-tKWrvNaJqi+7yLe0UznpYcSYTkgQhJTrbCgrR0giJCU=";
28576     };
28577     SKIP_SAX_INSTALL = 1;
28578     buildInputs = [ AlienBuild AlienLibxml2 ]
28579       ++ lib.optionals stdenv.isDarwin (with pkgs; [ libiconv zlib ]);
28580     patches = [
28581       ../development/perl-modules/XML-LibXML-clang16.patch
28582     ];
28583     # Remove test that fails after LibXML 2.11 upgrade
28584     postPatch = ''
28585       rm t/35huge_mode.t
28586     '';
28587     propagatedBuildInputs = [ XMLSAX ];
28588     meta = {
28589       description = "Perl Binding for libxml2";
28590       license = with lib.licenses; [ artistic1 gpl1Plus ];
28591     };
28592   };
28594   XMLLibXMLSimple = buildPerlPackage {
28595     pname = "XML-LibXML-Simple";
28596     version = "1.01";
28597     src = fetchurl {
28598       url = "mirror://cpan/authors/id/M/MA/MARKOV/XML-LibXML-Simple-1.01.tar.gz";
28599       hash = "sha256-zZjIEEtw12cr+ia0UTt4rfK0uSIOWGqovrGlCFADZaY=";
28600     };
28601     propagatedBuildInputs = [ XMLLibXML ];
28602     meta = {
28603       description = "An API for simple XML files";
28604       license = with lib.licenses; [ artistic1 gpl1Plus ];
28605     };
28606   };
28608   XMLLibXSLT = buildPerlPackage {
28609     pname = "XML-LibXSLT";
28610     version = "2.002001";
28611     src = fetchurl {
28612       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/XML-LibXSLT-2.002001.tar.gz";
28613       hash = "sha256-34knxP8ZSfYlgNHB5vAPDNVrU9OpV+5LFxtZv/pjssA=";
28614     };
28615     nativeBuildInputs = [ pkgs.pkg-config ];
28616     buildInputs = [ pkgs.zlib pkgs.libxml2 pkgs.libxslt ];
28617     propagatedBuildInputs = [ XMLLibXML ];
28618     meta = {
28619       description = "Interface to the GNOME libxslt library";
28620       license = with lib.licenses; [ artistic1 gpl1Plus ];
28621     };
28622   };
28624   XMLMini = buildPerlPackage {
28625     pname = "XML-Mini";
28626     version = "1.38";
28627     src = fetchurl {
28628       url = "mirror://cpan/authors/id/P/PD/PDEEGAN/XML-Mini-1.38.tar.gz";
28629       hash = "sha256-r4A9OANqMYThJKaC5UZvG8EH9IqJ7zWwx2R+EaBz/i0=";
28630     };
28631     meta = {
28632       description = "Perl implementation of the XML::Mini XML create/parse interface";
28633       license = with lib.licenses; [ gpl3Plus ];
28634     };
28635   };
28637   XMLNamespaceSupport = buildPerlPackage {
28638     pname = "XML-NamespaceSupport";
28639     version = "1.12";
28640     src = fetchurl {
28641       url = "mirror://cpan/authors/id/P/PE/PERIGRIN/XML-NamespaceSupport-1.12.tar.gz";
28642       hash = "sha256-R+mVhZ+N0EE6o/ItNQxKYtplLoVCZ6oFhq5USuK65e8=";
28643     };
28644     meta = {
28645       description = "A simple generic namespace processor";
28646       license = with lib.licenses; [ artistic1 gpl1Plus ];
28647     };
28648   };
28650   XMLParser = buildPerlPackage {
28651     pname = "XML-Parser";
28652     version = "2.46";
28653     src = fetchurl {
28654       url = "mirror://cpan/authors/id/T/TO/TODDR/XML-Parser-2.46.tar.gz";
28655       hash = "sha256-0zEzJJHFHMz7TLlP/ET5zXM3jmGEmNSjffngQ2YcUV0=";
28656     };
28657     patches = [ ../development/perl-modules/xml-parser-0001-HACK-Assumes-Expat-paths-are-good.patch ];
28658     postPatch = lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
28659       substituteInPlace Expat/Makefile.PL --replace 'use English;' '#'
28660     '' + lib.optionalString stdenv.isCygwin ''
28661       sed -i"" -e "s@my \$compiler = File::Spec->catfile(\$path, \$cc\[0\]) \. \$Config{_exe};@my \$compiler = File::Spec->catfile(\$path, \$cc\[0\]) \. (\$^O eq 'cygwin' ? \"\" : \$Config{_exe});@" inc/Devel/CheckLib.pm
28662     '';
28663     makeMakerFlags = [ "EXPATLIBPATH=${pkgs.expat.out}/lib" "EXPATINCPATH=${pkgs.expat.dev}/include" ];
28664     propagatedBuildInputs = [ LWP ];
28665     meta = {
28666       description = "A perl module for parsing XML documents";
28667       license = with lib.licenses; [ artistic1 gpl1Plus ];
28668     };
28669   };
28671   XMLParserLite = buildPerlPackage {
28672     pname = "XML-Parser-Lite";
28673     version = "0.722";
28674     src = fetchurl {
28675       url = "mirror://cpan/authors/id/P/PH/PHRED/XML-Parser-Lite-0.722.tar.gz";
28676       hash = "sha256-b5CgJ+FTGg5UBs8d4Txwm1IWlm349z0Lq5q5GSCXY+4=";
28677     };
28678     buildInputs = [ TestRequires ];
28679     meta = {
28680       description = "Lightweight pure-perl XML Parser (based on regexps)";
28681       license = with lib.licenses; [ artistic1 gpl1Plus ];
28682     };
28683   };
28685   XMLXPath = buildPerlPackage {
28686     pname = "XML-XPath";
28687     version = "1.48";
28688     src = fetchurl {
28689       url = "mirror://cpan/authors/id/M/MA/MANWAR/XML-XPath-1.48.tar.gz";
28690       hash = "sha256-e8db42sjnlsucAqVcNK1O0MJPUZ/Kr5qdD+f+Qk3kM0=";
28691     };
28692     buildInputs = [ PathTiny ];
28693     propagatedBuildInputs = [ XMLParser ];
28694     meta = {
28695       description = "Parse and evaluate XPath statements";
28696       license = with lib.licenses; [ artistic2 ];
28697       mainProgram = "xpath";
28698     };
28699   };
28701   XMLXPathEngine = buildPerlPackage {
28702     pname = "XML-XPathEngine";
28703     version = "0.14";
28704     src = fetchurl {
28705       url = "mirror://cpan/authors/id/M/MI/MIROD/XML-XPathEngine-0.14.tar.gz";
28706       hash = "sha256-0v57y70L66FET0pzNAHnuKpSgvrUJm1Cc13XRYKy4mQ=";
28707     };
28708     meta = {
28709       description = "A re-usable XPath engine for DOM-like trees";
28710       license = with lib.licenses; [ artistic1 gpl1Plus ];
28711     };
28712   };
28714   XMLRegExp = buildPerlPackage {
28715     pname = "XML-RegExp";
28716     version = "0.04";
28717     src = fetchurl {
28718       url = "mirror://cpan/authors/id/T/TJ/TJMATHER/XML-RegExp-0.04.tar.gz";
28719       hash = "sha256-3xmQCWA2CFyOLUWQT+GA+Cv+1A8afgUkPzNOoQCQ/FQ=";
28720     };
28721     meta = {
28722       description = "Regular expressions for XML tokens";
28723       license = with lib.licenses; [ gpl2Plus];
28724     };
28725   };
28727   XMLRPCLite = buildPerlPackage {
28728     pname = "XMLRPC-Lite";
28729     version = "0.717";
28730     src = fetchurl {
28731       url = "mirror://cpan/authors/id/P/PH/PHRED/XMLRPC-Lite-0.717.tar.gz";
28732       hash = "sha256-Op+l8ssfr4t8ZrTDhuqzXKxgiK/E28dX1Pd9KE2rRSQ=";
28733     };
28734     propagatedBuildInputs = [ SOAPLite ];
28735     # disable tests that require network
28736     preCheck = "rm t/{26-xmlrpc.t,37-mod_xmlrpc.t}";
28737     meta = {
28738       description = "Client and server implementation of XML-RPC protocol";
28739       license = with lib.licenses; [ artistic1 gpl1Plus ];
28740     };
28741   };
28743   XMLRSS = buildPerlModule {
28744     pname = "XML-RSS";
28745     version = "1.62";
28746     src = fetchurl {
28747       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/XML-RSS-1.62.tar.gz";
28748       hash = "sha256-0ycGNELH/3FDmTqgwtFv3lEhSRyXFmHrbLcA0uBDi04=";
28749     };
28750     propagatedBuildInputs = [ DateTimeFormatMail DateTimeFormatW3CDTF XMLParser ];
28751     meta = {
28752       description = "Creates and updates RSS files";
28753       homepage = "https://metacpan.org/release/XML-RSS";
28754       license = with lib.licenses; [ artistic1 gpl1Plus ];
28755     };
28756   };
28758   XMLRules = buildPerlModule {
28759     pname = "XML-Rules";
28760     version = "1.16";
28761     src = fetchurl {
28762       url = "mirror://cpan/authors/id/J/JE/JENDA/XML-Rules-1.16.tar.gz";
28763       hash = "sha256-N4glXAev5BlaDecs4FBlIyDYF1KP8tEMYR9uOSBDhos=";
28764     };
28765     propagatedBuildInputs = [ XMLParser ];
28766     meta = {
28767       description = "Parse XML and specify what and how to keep/process for individual tags";
28768       license = with lib.licenses; [ artistic1 gpl1Plus ];
28769     };
28770   };
28772   XMLSAX = buildPerlPackage {
28773     pname = "XML-SAX";
28774     version = "1.02";
28775     src = fetchurl {
28776       url = "mirror://cpan/authors/id/G/GR/GRANTM/XML-SAX-1.02.tar.gz";
28777       hash = "sha256-RQbDhwQ6pqd7RV8A9XQJ83IKp+VTSVqyU1JjtO0eoSo=";
28778     };
28779     propagatedBuildInputs = [ XMLNamespaceSupport XMLSAXBase ];
28780     postInstall = ''
28781       perl -MXML::SAX -e "XML::SAX->add_parser(q(XML::SAX::PurePerl))->save_parsers()"
28782       '';
28783     meta = {
28784       description = "Simple API for XML";
28785       license = with lib.licenses; [ artistic1 gpl1Plus ];
28786     };
28787   };
28789   XMLSAXBase = buildPerlPackage {
28790     pname = "XML-SAX-Base";
28791     version = "1.09";
28792     src = fetchurl {
28793       url = "mirror://cpan/authors/id/G/GR/GRANTM/XML-SAX-Base-1.09.tar.gz";
28794       hash = "sha256-Zss1W6TvR8EMpzi9NZmXI2RDhqyFOrvrUTKEH16KKtA=";
28795     };
28796     meta = {
28797       description = "Base class for SAX Drivers and Filters";
28798       homepage = "https://github.com/grantm/XML-SAX-Base";
28799       license = with lib.licenses; [ artistic1 gpl1Plus ];
28800     };
28801   };
28803   XMLSAXExpat = buildPerlPackage {
28804     pname = "XML-SAX-Expat";
28805     version = "0.51";
28806     src = fetchurl {
28807       url = "mirror://cpan/authors/id/B/BJ/BJOERN/XML-SAX-Expat-0.51.tar.gz";
28808       hash = "sha256-TAFiE9DOfbLElOMAhrWZF7MC24wpLc0h853uvZeAyD8=";
28809     };
28810     propagatedBuildInputs = [ XMLParser XMLSAX ];
28811     # Avoid creating perllocal.pod, which contains a timestamp
28812     installTargets = [ "pure_install" ];
28813     meta = {
28814       description = "SAX Driver for Expat";
28815       license = with lib.licenses; [ artistic1 gpl1Plus ];
28816     };
28817   };
28819   XMLSAXWriter = buildPerlPackage {
28820     pname = "XML-SAX-Writer";
28821     version = "0.57";
28822     src = fetchurl {
28823       url = "mirror://cpan/authors/id/P/PE/PERIGRIN/XML-SAX-Writer-0.57.tar.gz";
28824       hash = "sha256-PWHQfvQ7ASb1tN5PQVolb6hZ+ojcT9q6rXC3vnxoLPA=";
28825     };
28826     propagatedBuildInputs = [ XMLFilterBufferText XMLNamespaceSupport XMLSAXBase ];
28827     meta = {
28828       description = "SAX2 XML Writer";
28829       homepage = "https://github.com/perigrin/xml-sax-writer";
28830       license = with lib.licenses; [ artistic1 gpl1Plus ];
28831     };
28832   };
28834   XMLSemanticDiff = buildPerlModule {
28835     pname = "XML-SemanticDiff";
28836     version = "1.0007";
28837     src = fetchurl {
28838       url = "mirror://cpan/authors/id/P/PE/PERIGRIN/XML-SemanticDiff-1.0007.tar.gz";
28839       hash = "sha256-Bf3v77vD9rYvx8m1+rr7a2le1o8KPZWFdyUdHwQCoPU=";
28840     };
28841     propagatedBuildInputs = [ XMLParser ];
28842     meta = {
28843       description = "Perl extension for comparing XML documents";
28844       license = with lib.licenses; [ artistic1 gpl1Plus ];
28845     };
28846   };
28848   XMLSimple = buildPerlPackage {
28849     pname = "XML-Simple";
28850     version = "2.25";
28851     src = fetchurl {
28852       url = "mirror://cpan/authors/id/G/GR/GRANTM/XML-Simple-2.25.tar.gz";
28853       hash = "sha256-Ux/drr6iQWdD61xP36sCj1AhI9miIEBaQQDmj8SA2/g=";
28854     };
28855     propagatedBuildInputs = [ XMLSAXExpat ];
28856     meta = {
28857       description = "An API for simple XML files";
28858       license = with lib.licenses; [ artistic1 gpl1Plus ];
28859     };
28860   };
28862   XMLTokeParser = buildPerlPackage {
28863     pname = "XML-TokeParser";
28864     version = "0.05";
28865     src = fetchurl {
28866       url = "mirror://cpan/authors/id/P/PO/PODMASTER/XML-TokeParser-0.05.tar.gz";
28867       hash = "sha256-hTm0+YQ2sabQiDQai0Uwt5IqzWUfPyk3f4sZSMfi18I=";
28868     };
28869     propagatedBuildInputs = [ XMLParser ];
28870     meta = {
28871       description = "Simplified interface to XML::Parser";
28872       license = with lib.licenses; [ artistic1 gpl1Plus ];
28873     };
28874   };
28876   XMLTreePP = buildPerlPackage {
28877     pname = "XML-TreePP";
28878     version = "0.43";
28879     src = fetchurl {
28880       url = "mirror://cpan/authors/id/K/KA/KAWASAKI/XML-TreePP-0.43.tar.gz";
28881       hash = "sha256-f74tZDCGAFmJSu7r911MrPG/jXt1KU64fY4VAvgb12A=";
28882     };
28883     propagatedBuildInputs = [ LWP ];
28884     meta = {
28885       description = "Pure Perl implementation for parsing/writing XML documents";
28886       license = with lib.licenses; [ artistic1 gpl1Plus ];
28887     };
28888   };
28890   XMLTwig = buildPerlPackage {
28891     pname = "XML-Twig";
28892     version = "3.52";
28893     src = fetchurl {
28894       url = "mirror://cpan/authors/id/M/MI/MIROD/XML-Twig-3.52.tar.gz";
28895       hash = "sha256-/vdYJsJPK4d9Cg0mRSEvxPuXVu1NJxFhSsFcSX6GgK0=";
28896     };
28897     postInstall = ''
28898       mkdir -p $out/bin
28899       cp tools/xml_grep/xml_grep $out/bin
28900     '';
28901     propagatedBuildInputs = [ XMLParser ];
28902     doCheck = false;  # requires lots of extra packages
28903     meta = {
28904       description = "A Perl module for processing huge XML documents in tree mode";
28905       license = with lib.licenses; [ artistic1 gpl1Plus ];
28906       mainProgram = "xml_grep";
28907     };
28908   };
28910   XMLValidatorSchema = buildPerlPackage {
28911     pname = "XML-Validator-Schema";
28912     version = "1.10";
28913     src = fetchurl {
28914       url = "mirror://cpan/authors/id/S/SA/SAMTREGAR/XML-Validator-Schema-1.10.tar.gz";
28915       hash = "sha256-YUJnlYAVCokffTIjK14x4rTl5T6Kb6nL7stcI4FPFCI=";
28916     };
28917     propagatedBuildInputs = [ TreeDAGNode XMLFilterBufferText XMLSAX ];
28918     meta = {
28919       description = "Validate XML against a subset of W3C XML Schema";
28920       license = with lib.licenses; [ artistic1 gpl1Plus ];
28921     };
28922   };
28924   XMLWriter = buildPerlPackage {
28925     pname = "XML-Writer";
28926     version = "0.900";
28927     src = fetchurl {
28928       url = "mirror://cpan/authors/id/J/JO/JOSEPHW/XML-Writer-0.900.tar.gz";
28929       hash = "sha256-c8j1vT7PKzUPStrm1mdtUuCOzC199KnwifpoNg1ADR8=";
28930     };
28931     meta = {
28932       description = "Module for creating a XML document object oriented with on the fly validating towards the given DTD";
28933       license = with lib.licenses; [ gpl1Only ];
28934     };
28935   };
28937   XSObjectMagic = buildPerlPackage {
28938     pname = "XS-Object-Magic";
28939     version = "0.05";
28940     src = fetchurl {
28941       url = "mirror://cpan/authors/id/E/ET/ETHER/XS-Object-Magic-0.05.tar.gz";
28942       hash = "sha256-PcnkYM7pLhF0QGJ1RkOjN3jKUqVNIF/K/6SrDzzxXlo=";
28943     };
28944     buildInputs = [ ExtUtilsDepends TestFatal TestSimple13 ];
28945     meta = {
28946       description = "Opaque, extensible XS pointer backed objects using sv_magic";
28947       homepage = "https://github.com/karenetheridge/XS-Object-Magic";
28948       license = with lib.licenses; [ artistic1 gpl1Plus ];
28949     };
28950   };
28952   XSParseKeyword = buildPerlModule {
28953     pname = "XS-Parse-Keyword";
28954     version = "0.38";
28955     src = fetchurl {
28956       url = "mirror://cpan/authors/id/P/PE/PEVANS/XS-Parse-Keyword-0.38.tar.gz";
28957       hash = "sha256-JQDEeGnPXKjGHdI8Z7rav2a48e+14nkgdlfBzmk+IR4=";
28958     };
28959     buildInputs = [ ExtUtilsCChecker Test2Suite ];
28960     perlPreHook = lib.optionalString stdenv.isDarwin "export LD=$CC";
28961     meta = {
28962       description = "XS functions to assist in parsing keyword syntax";
28963       license = with lib.licenses; [ artistic1 gpl1Plus ];
28964       maintainers = [ maintainers.zakame ];
28965     };
28966   };
28968   XSParseSublike = buildPerlModule {
28969     pname = "XS-Parse-Sublike";
28970     version = "0.20";
28971     src = fetchurl {
28972       url = "mirror://cpan/authors/id/P/PE/PEVANS/XS-Parse-Sublike-0.20.tar.gz";
28973       hash = "sha256-Wn0myqMroqQQUZwMJLHYCznvMgdRN224vbef2u/pms0=";
28974     };
28975     buildInputs = [ Test2Suite ];
28976     perlPreHook = lib.optionalString stdenv.isDarwin "export LD=$CC";
28977     meta = {
28978       description = "XS functions to assist in parsing sub-like syntax";
28979       license = with lib.licenses; [ artistic1 gpl1Plus ];
28980       maintainers = [ maintainers.zakame ];
28981     };
28982   };
28984   XXX = buildPerlPackage {
28985     pname = "XXX";
28986     version = "0.38";
28987     src = fetchurl {
28988       url = "mirror://cpan/authors/id/I/IN/INGY/XXX-0.38.tar.gz";
28989       hash = "sha256-0QUQ6gD2Gav0erKZ8Ui9WzYM+gfcDtUYE4t87HJpLSo=";
28990     };
28991     propagatedBuildInputs = [ YAMLPP ];
28992     meta = {
28993       description = "See Your Data in the Nude";
28994       homepage = "https://github.com/ingydotnet/xxx-pm";
28995       license = with lib.licenses; [ artistic1 gpl1Plus ];
28996     };
28997   };
28999   YAML = buildPerlPackage {
29000     pname = "YAML";
29001     version = "1.30";
29002     src = fetchurl {
29003       url = "mirror://cpan/authors/id/T/TI/TINITA/YAML-1.30.tar.gz";
29004       hash = "sha256-UDCm1sv/rxJYMFC/VSqoANRkbKlnjBh63WSSJ/V0ec0=";
29005     };
29007     buildInputs = [ TestBase TestDeep TestYAML ];
29009     meta = {
29010       description = "YAML Ain't Markup Language (tm)";
29011       homepage = "https://github.com/ingydotnet/yaml-pm";
29012       license = with lib.licenses; [ artistic1 gpl1Plus ];
29013     };
29014   };
29016   YAMLOld = buildPerlPackage {
29017     pname = "YAML-Old";
29018     version = "1.23";
29019     src = fetchurl {
29020       url = "mirror://cpan/authors/id/I/IN/INGY/YAML-Old-1.23.tar.gz";
29021       hash = "sha256-+lRvzZrMWjm8iHGQL3/B66UOfceBxc1cCr8a7ObRfs0=";
29022     };
29023     buildInputs = [ TestYAML TestBase ];
29024     meta = {
29025       description = "Old YAML.pm Legacy Code";
29026       homepage = "https://github.com/ingydotnet/yaml-old-pm";
29027       license = with lib.licenses; [ artistic1 gpl1Plus ];
29028     };
29029   };
29031   YAMLSyck = buildPerlPackage {
29032     pname = "YAML-Syck";
29033     version = "1.34";
29034     src = fetchurl {
29035       url = "mirror://cpan/authors/id/T/TO/TODDR/YAML-Syck-1.34.tar.gz";
29036       hash = "sha256-zJFWzK69p5jr/i8xthnoBld/hg7RcEJi8X/608bjQVk=";
29037     };
29038     perlPreHook = lib.optionalString stdenv.isDarwin "export LD=$CC";
29039     meta = {
29040       description = "Fast, lightweight YAML loader and dumper";
29041       homepage = "https://github.com/toddr/YAML-Syck";
29042       license = with lib.licenses; [ mit ];
29043     };
29044   };
29046   YAMLTiny = buildPerlPackage {
29047     pname = "YAML-Tiny";
29048     version = "1.74";
29049     src = fetchurl {
29050       url = "mirror://cpan/authors/id/E/ET/ETHER/YAML-Tiny-1.74.tar.gz";
29051       hash = "sha256-ezjKn1084kIwpri9wfR/Wy2zSOf3+WZsJvWVVjbjPWw=";
29052     };
29053     meta = {
29054       description = "Read/Write YAML files with as little code as possible";
29055       license = with lib.licenses; [ artistic1 gpl1Plus ];
29056     };
29057   };
29059   YAMLLibYAML = buildPerlPackage {
29060     pname = "YAML-LibYAML";
29061     version = "0.88";
29062     src = fetchurl {
29063       url = "mirror://cpan/authors/id/I/IN/INGY/YAML-LibYAML-0.88.tar.gz";
29064       hash = "sha256-qKJzjMzDMqj3VJxMJ/PgCQyasR7vD2yFZEUXc5gTVng=";
29065     };
29066     meta = {
29067       description = "Perl YAML Serialization using XS and libyaml";
29068       license = with lib.licenses; [ artistic1 gpl1Plus ];
29069     };
29070   };
29072   YAMLPP = buildPerlPackage {
29073     pname = "YAML-PP";
29074     version = "0.036";
29075     src = fetchurl {
29076       url = "mirror://cpan/authors/id/T/TI/TINITA/YAML-PP-0.036.tar.gz";
29077       hash = "sha256-yLTlBYSt+S73Vz9rsB1u1Y5iF2MsV0J7cnTPp8pG/Bs=";
29078     };
29079     buildInputs = [ TestDeep TestWarn ];
29080     meta = {
29081       description = "YAML 1.2 Processor";
29082       license = with lib.licenses; [ artistic1 gpl1Plus ];
29083     };
29084   };
29086   Yancy = buildPerlPackage {
29087     pname = "Yancy";
29088     version = "1.088";
29089     src = fetchurl {
29090       url = "mirror://cpan/authors/id/P/PR/PREACTION/Yancy-1.088.tar.gz";
29091       hash = "sha256-addqs5ilrGiQc0Paisybr9UZ+0x4WrAU7CagUhA2vSo=";
29092     };
29093     buildInputs = [ FileShareDirInstall ];
29094     propagatedBuildInputs = [ ClassMethodModifiers JSONValidator Mojolicious MojoliciousPluginI18N MojoliciousPluginOpenAPI RoleTiny ];
29095     meta = {
29096       homepage = "http://preaction.me/yancy/";
29097       description = "The Best Web Framework Deserves the Best CMS";
29098       license = with lib.licenses; [ artistic1 gpl1Plus ];
29099     };
29100   };
29102   WebMachine = buildPerlPackage {
29103     pname = "Web-Machine";
29104     version = "0.17";
29105     src = fetchurl {
29106       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Web-Machine-0.17.tar.gz";
29107       hash = "sha256-8TnSsxFMVJ6RhH2qq4t1y2meV9r1u/Db0TKT8z/l4io=";
29108     };
29109     buildInputs = [ NetHTTP TestFailWarnings TestFatal ];
29110     propagatedBuildInputs = [ HTTPHeadersActionPack HTTPMessage HashMultiValue IOHandleUtil ModuleRuntime Plack SubExporter TryTiny ];
29111     meta = {
29112       description = "A Perl port of Webmachine";
29113       homepage = "https://metacpan.org/release/Web-Machine";
29114       license = with lib.licenses; [ artistic1 gpl1Plus ];
29115     };
29116   };
29118   WebScraper = buildPerlModule {
29119     pname = "Web-Scraper";
29120     version = "0.38";
29121     src = fetchurl {
29122       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Web-Scraper-0.38.tar.gz";
29123       hash = "sha256-+VtuX41/7r4RbQW/WaK3zxpR7Z0wvKgBI0MOxFZ1Q78=";
29124     };
29125     buildInputs = [ ModuleBuildTiny TestBase TestRequires ];
29126     propagatedBuildInputs = [ HTMLParser HTMLSelectorXPath HTMLTagset HTMLTree HTMLTreeBuilderXPath UNIVERSALrequire URI XMLXPathEngine YAML libwwwperl ];
29127     meta = {
29128       homepage = "https://github.com/miyagawa/web-scraper";
29129       description = "Web Scraping Toolkit using HTML and CSS Selectors or XPath expressions";
29130       license = with lib.licenses; [ artistic1 gpl1Plus ];
29131     };
29132   };
29134   WebServiceLinode = buildPerlModule {
29135     pname = "WebService-Linode";
29136     version = "0.29";
29137     src = fetchurl {
29138       url = "mirror://cpan/authors/id/M/MI/MIKEGRB/WebService-Linode-0.29.tar.gz";
29139       hash = "sha256-EDqrJFME8I6eh6x7yITdtEpjDea6wHfckh9xbXEVSSI=";
29140     };
29141     buildInputs = [ ModuleBuildTiny ];
29142     propagatedBuildInputs = [ JSON LWPProtocolHttps ];
29143     meta = {
29144       description = "Perl Interface to the Linode.com API";
29145       homepage = "https://github.com/mikegrb/WebService-Linode";
29146       license = with lib.licenses; [ artistic1 gpl1Plus ];
29147     };
29148   };
29150   WebServiceValidatorHTMLW3C = buildPerlModule {
29151     pname = "WebService-Validator-HTML-W3C";
29152     version = "0.28";
29153     src = fetchurl {
29154       url = "mirror://cpan/authors/id/S/ST/STRUAN/WebService-Validator-HTML-W3C-0.28.tar.gz";
29155       hash = "sha256-zLB60zegOuyBob6gqJzSlUaR/1uzZ9+aMrnZEw8XURA=";
29156     };
29157     buildInputs = [ ClassAccessor LWP ];
29158     meta = {
29159       description = "Access the W3Cs online HTML validator";
29160       license = with lib.licenses; [ artistic1 gpl1Plus ];
29161     };
29162   };
29164   ZonemasterCLI = buildPerlPackage {
29165     pname = "Zonemaster-CLI";
29166     version = "6.000003";
29167     src = fetchurl {
29168       url = "mirror://cpan/authors/id/Z/ZN/ZNMSTR/Zonemaster-CLI-v6.0.3.tar.gz";
29169       hash = "sha256-oYDBYVygvPUZ9vrGX/y5A0MAQ6zgSsrf6AtUdFcZG4Q=";
29170     };
29171     propagatedBuildInputs = [
29172       JSONXS
29173       MooseXGetopt
29174       TextReflow
29175       ZonemasterEngine
29176       ZonemasterLDNS
29177       libintl-perl
29178     ];
29180     preConfigure = ''
29181       patchShebangs script/
29182     '';
29184     meta = {
29185       description = "Run Zonemaster tests from the command line";
29186       license = with lib.licenses; [ bsd3 ];
29187       maintainers = with lib.maintainers; [ qbit ];
29188     };
29189   };
29191   ZonemasterEngine = buildPerlPackage {
29192     pname = "Zonemaster-Engine";
29193     version = "4.6.1";
29194     src = fetchurl {
29195       url = "mirror://cpan/authors/id/Z/ZN/ZNMSTR/Zonemaster-Engine-v4.6.1.tar.gz";
29196       hash = "sha256-4AXo3bZTOLnnPjjX5KNb/2O7MRqcAtlqpz5sPwNN9b0=";
29197     };
29198     buildInputs = [ PodCoverage TestDifferences TestException TestFatal TestNoWarnings TestPod ];
29199     propagatedBuildInputs = [ ClassAccessor Clone EmailValid FileShareDir FileSlurp IOSocketINET6 ListMoreUtils ModuleFind Moose MooseXSingleton NetIP NetIPXS Readonly TextCSV ZonemasterLDNS libintl-perl ];
29201     meta = {
29202       description = "A tool to check the quality of a DNS zone";
29203       license = with lib.licenses; [ bsd3 ];
29204     };
29205   };
29207   ZonemasterLDNS = buildPerlPackage {
29208     pname = "Zonemaster-LDNS";
29209     version = "3.2.0";
29210     src = fetchurl {
29211       url = "mirror://cpan/authors/id/Z/ZN/ZNMSTR/Zonemaster-LDNS-3.2.0.tar.gz";
29212       hash = "sha256-BpsWQRcpX6gtJSlAocqLMIrYsfPocjvk6CaqqX9wbWw=";
29213     };
29214     env.NIX_CFLAGS_COMPILE = "-I${pkgs.openssl.dev}/include -I${pkgs.libidn2}.dev}/include";
29215     NIX_CFLAGS_LINK = "-L${lib.getLib pkgs.openssl}/lib -L${lib.getLib pkgs.libidn2}/lib -lcrypto -lidn2";
29217     makeMakerFlags = [ "--prefix-openssl=${pkgs.openssl.dev}" ];
29219     nativeBuildInputs = [ pkgs.pkg-config ];
29220     buildInputs = [ DevelChecklib ModuleInstall ModuleInstallXSUtil TestFatal TestDifferences pkgs.ldns pkgs.libidn2 pkgs.openssl ];
29221     meta = {
29222       description = "Perl wrapper for the ldns DNS library";
29223       license = with lib.licenses; [ bsd3 ];
29224     };
29225   };
29227 } // lib.optionalAttrs config.allowAliases {
29228   autodie = null; # part of Perl
29229   AutoLoader = null; # part of Perl 5.22
29230   constant = null; # part of Perl 5.22
29231   DevelSelfStubber = null; # part of Perl 5.22
29232   Digest = null; # part of Perl 5.22
29233   Exporter = null; # part of Perl 5.22
29234   I18NCollate = null; # part of Perl 5.22
29235   lib_ = null; # part of Perl 5.22
29236   LocaleMaketextSimple = null; # part of Perl 5.22
29237   MathComplex = null; # part of Perl 5.22
29238   MIMEBase64 = null; # part of Perl 5.22
29239   PerlIOviaQuotedPrint = null; # part of Perl 5.22
29240   PodEscapes = null; # part of Perl 5.22
29241   Safe = null; # part of Perl 5.22
29242   SearchDict = null; # part of Perl 5.22
29243   Test = null; # part of Perl 5.22
29244   TextAbbrev = null; # part of Perl 5.22
29245   TextTabsWrap = null; # part of Perl 5.22
29246   DigestSHA = null;
29247   "if" = null;
29248   TestSimple = null;
29249   AttributeHandlers = null; # part of Perl 5.26
29250   base = null; # part of Perl 5.26
29251   CPANMeta = null; # part of Perl 5.26
29252   CPANMetaRequirements = null; # part of Perl 5.26
29253   CPANMetaYAML = null; # part of Perl 5.26
29254   DigestMD5 = null; # part of Perl 5.26
29255   LocaleMaketext = null; # part of Perl 5.26
29256   ModuleLoadConditional = null; # part of Perl 5.26
29257   ModuleMetadata = null; # part of Perl 5.26
29258   PerlOSType = null; # part of Perl 5.26
29259   PodUsage = null; # part of Perl 5.26
29260   TermANSIColor = null; # part of Perl 5.26
29261   TermCap = null; # part of Perl 5.26
29262   ThreadSemaphore = null; # part of Perl 5.26
29263   UnicodeNormalize = null; # part of Perl 5.26
29264   XSLoader = null; # part of Perl 5.26
29266   Carp = null; # part of Perl 5.28
29267   ExtUtilsCBuilder = null; # part of Perl 5.28
29268   ExtUtilsParseXS = null; # part of Perl 5.28
29269   FilterSimple = null; # part of Perl 5.28
29270   IOSocketIP = null; # part of Perl 5.28
29271   SelfLoader = null; # part of Perl 5.28
29272   Socket = null; # part of Perl 5.28
29273   TestHarness = null; # part of Perl 5.28
29274   threads = null; # part of Perl 5.28
29275   TimeHiRes = null; # part of Perl 5.28
29276   UnicodeCollate = null; # part of Perl 5.28
29277   ModuleCoreList = null; # part of Perl 5.28.2
29279   bignum = null; # part of Perl 5.30.3
29280   DataDumper = null; # part of Perl 5.30.3
29281   ExtUtilsManifest = null; # part of Perl 5.30.3
29282   FileTemp = null; # part of Perl 5.30.3
29283   MathBigRat = null; # part of Perl 5.30.3
29284   Storable = null; # part of Perl 5.30.3
29285   threadsshared = null; # part of Perl 5.30.3
29286   ThreadQueue = null; # part of Perl 5.30.3
29288   ArchiveZip_1_53 = self.ArchiveZip;
29289   Autobox = self.autobox;
29290   CommonSense = self.commonsense; # For backwards compatibility.
29291   if_ = self."if"; # For backwards compatibility.
29292   Log4Perl = self.LogLog4perl; # For backwards compatibility.
29293   MouseXGetOpt = self.MouseXGetopt;
29294   NamespaceAutoclean = self.namespaceautoclean; # Deprecated.
29295   NamespaceClean = self.namespaceclean; # Deprecated.
29296   CatalystPluginUnicodeEncoding = self.CatalystRuntime;
29297   ClassAccessorFast = self.ClassAccessor;
29298   ClassMOP = self.Moose;
29299   CompressZlib = self.IOCompress;
29300   constantdefer = self.constant-defer;
29301   DigestHMAC_SHA1 = self.DigestHMAC;
29302   DistZillaPluginNoTabsTests = self.DistZillaPluginTestNoTabs;
29303   EmailMIMEModifier = self.EmailMIME;
29304   ExtUtilsCommand = self.ExtUtilsMakeMaker;
29305   IOSocketInet6 = self.IOSocketINET6;
29306   IOstringy = self.IOStringy;
29307   libintl_perl = self.libintl-perl;
29308   libintlperl = self.libintl-perl;
29309   LWPProtocolconnect = self.LWPProtocolConnect;
29310   LWPProtocolhttps = self.LWPProtocolHttps;
29311   LWPUserAgent = self.LWP;
29312   MIMEtools = self.MIMETools;
29313   NetLDAP = self.perlldap;
29314   NetSMTP = self.libnet;
29315   OLEStorageLight = self.OLEStorage_Lite; # For backwards compatibility. Please use OLEStorage_Lite instead.
29316   ParseCPANMeta = self.CPANMeta;
29317   TestMoose = self.Moose;
29318   TestMore = self.TestSimple;
29319   TestTester = self.TestSimple;
29320   Testuseok = self.TestSimple;
29321   SubExporterUtil = self.SubExporter;
29322   version = self.Version;
29324   Gtk2GladeXML = throw "Gtk2GladeXML has been removed"; # 2022-01-15