base16-schemes: unstable-2024-06-21 -> unstable-2024-11-12 (#356361)
[NixPkgs.git] / pkgs / top-level / perl-packages.nix
blobfa15b777e3a56c698bf23112b91048e7864ca301
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, fetchpatch2, 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 // { perlPackages = self.perlPackages // { __attrsFailEvaluation = true; }; };
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.hostPlatform.isDarwin shortenPerlShebang;
104     propagatedBuildInputs = [ FileNext ];
105     postInstall = lib.optionalString stdenv.hostPlatform.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 = "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 = "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 = "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.hostPlatform.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 = "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.19";
590     src = fetchurl {
591       url = "mirror://cpan/authors/id/M/MS/MSTPLBG/AnyEvent-I3-0.19.tar.gz";
592       hash = "sha256-G807YNs9VWAUjeeRNT6K8RciZPWoXncZe5/8BB2sSDo=";
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 = "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 = "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.hostPlatform.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       broken = true; # DB.c:(.text+0x153): undefined reference to `Perl_init_debugger'
703     };
704   };
706   ApacheLogFormatCompiler = buildPerlModule {
707     pname = "Apache-LogFormat-Compiler";
708     version = "0.36";
709     src = fetchurl {
710       url = "mirror://cpan/authors/id/K/KA/KAZEBURO/Apache-LogFormat-Compiler-0.36.tar.gz";
711       hash = "sha256-lFCVA+506oIBg9BwwRYw7lvA/YwSy3T66VPtYuShrBc=";
712     };
713     buildInputs = [ HTTPMessage ModuleBuildTiny TestMockTime TestRequires TryTiny URI ];
714     propagatedBuildInputs = [ POSIXstrftimeCompiler ];
715     # We cannot change the timezone on the fly.
716     prePatch = "rm t/04_tz.t";
717     meta = {
718       description = "Compile a log format string to perl-code";
719       homepage = "https://github.com/kazeburo/Apache-LogFormat-Compiler";
720       license = with lib.licenses; [ artistic1 gpl1Plus ];
721     };
722   };
724   ApacheSession = buildPerlModule {
725     pname = "Apache-Session";
726     version = "1.94";
727     src = fetchurl {
728       url = "mirror://cpan/authors/id/C/CH/CHORNY/Apache-Session-1.94.tar.gz";
729       hash = "sha256-/mm3aJmv6QuK5bgt4qqnV1rakIk39EhbgKrvMXVj6Z8=";
730     };
731     buildInputs = [ TestDeep TestException ];
732     meta = {
733       description = "Persistence framework for session data";
734       license = with lib.licenses; [ artistic1 gpl1Plus ];
735     };
736   };
738   ApacheTest = buildPerlPackage {
739     pname = "Apache-Test";
740     version = "1.43";
741     src = fetchurl {
742       url = "mirror://cpan/authors/id/S/SH/SHAY/Apache-Test-1.43.tar.gz";
743       hash = "sha256-qZmfAqeBpYkhi1ibGHnBHEladFrwlXXly7It/LZWgKw=";
744     };
745     doCheck = false;
746     meta = {
747       description = "Test.pm wrapper with helpers for testing Apache";
748       license = with lib.licenses; [ asl20 ];
749     };
750   };
752   AppCLI = buildPerlPackage {
753     pname = "App-CLI";
754     version = "0.52";
755     src = fetchurl {
756       url = "mirror://cpan/authors/id/P/PT/PTC/App-CLI-0.52.tar.gz";
757       hash = "sha256-Ur1D9VWRPML/1kBfmVHSqr1Gr2PXAdm140amMycJ8M4=";
758     };
759     propagatedBuildInputs = [ CaptureTiny ClassLoad ];
760     buildInputs = [ TestKwalitee TestPod ];
761     meta = {
762       description = "Dispatcher module for command line interface programs";
763       license = with lib.licenses; [ artistic1 gpl1Plus ];
764     };
765   };
767   AppClusterSSH = buildPerlModule {
768     pname = "App-ClusterSSH";
769     version = "4.16";
770     src = fetchurl {
771       url = "mirror://cpan/authors/id/D/DU/DUNCS/App-ClusterSSH-4.16.tar.gz";
772       hash = "sha256-G3y4q2BoViRK34vZrE0nUHwuQWh7OvGiJs4dsvP9VXg=";
773     };
774     propagatedBuildInputs = [ ExceptionClass Tk X11ProtocolOther XMLSimple ];
775     buildInputs = [ DataDump FileWhich Readonly TestDifferences TestTrap ];
776     preCheck = "rm t/30cluster.t t/15config.t"; # do not run failing tests
777     postInstall = ''
778       mkdir -p $out/share/bash-completion/completions
779       mv $out/bin/clusterssh_bash_completion.dist \
780         $out/share/bash-completion/completions/clusterssh_bash_completion
781       substituteInPlace $out/share/bash-completion/completions/clusterssh_bash_completion \
782         --replace '/bin/true' '${pkgs.coreutils}/bin/true' \
783         --replace 'grep' '${pkgs.gnugrep}/bin/grep' \
784         --replace 'sed' '${pkgs.gnused}/bin/sed'
785     '';
786     meta = {
787       description = "Cluster administration tool";
788       homepage = "https://github.com/duncs/clusterssh/wiki";
789       license = with lib.licenses; [ artistic1 gpl1Plus ];
790       mainProgram = "cssh";
791     };
792   };
794   AppCmd = buildPerlPackage {
795     pname = "App-Cmd";
796     version = "0.336";
797     src = fetchurl {
798       url = "mirror://cpan/authors/id/R/RJ/RJBS/App-Cmd-0.336.tar.gz";
799       hash = "sha256-35ZrV9WauxluADBIheW/EXypWBgq4/Tu3xchjqKDjoE=";
800     };
801     buildInputs = [ TestFatal ];
802     propagatedBuildInputs = [ CaptureTiny ClassLoad GetoptLongDescriptive IOTieCombine ModulePluggable StringRewritePrefix ];
803     meta = {
804       description = "Write command line apps with less suffering";
805       homepage = "https://github.com/rjbs/App-Cmd";
806       license = with lib.licenses; [ artistic1 gpl1Plus ];
807     };
808   };
810   AppConfig = buildPerlPackage {
811     pname = "AppConfig";
812     version = "1.71";
813     src = fetchurl {
814       url = "mirror://cpan/authors/id/N/NE/NEILB/AppConfig-1.71.tar.gz";
815       hash = "sha256-EXcCcCXssJ7mTZ+fJVYVwE214U91NsNEr2MgMuuIew8=";
816     };
817     buildInputs = [ TestPod ];
818     meta = {
819       description = "Bundle of Perl5 modules for reading configuration files and parsing command line arguments";
820       license = with lib.licenses; [ artistic1 gpl1Plus ];
821     };
822   };
824   AppFatPacker = buildPerlPackage {
825     pname = "App-FatPacker";
826     version = "0.010008";
827     src = fetchurl {
828       url = "mirror://cpan/authors/id/M/MS/MSTROUT/App-FatPacker-0.010008.tar.gz";
829       hash = "sha256-Ep2zbchFZhpYIoaBDP4tUhbrLOCCutQK4fzc4PRd7M8=";
830     };
831     meta = {
832       description = "Pack your dependencies onto your script file";
833       license = with lib.licenses; [ artistic1 gpl1Plus ];
834       mainProgram = "fatpack";
835     };
836   };
838   Appcpanminus = buildPerlPackage {
839     pname = "App-cpanminus";
840     version = "1.7047";
841     src = fetchurl {
842       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/App-cpanminus-1.7047.tar.gz";
843       hash = "sha256-lj5jxuGocl/y9iTpCGOWrhUNtR3QozfDeB0JqZSvBaU=";
844     };
845     # CVE-2024-45321: Use TLS endpoints for downloads and metadata
846     preConfigure = ''
847       substituteInPlace bin/cpanm \
848         --replace-fail http://www.cpan.org https://www.cpan.org \
849         --replace-fail http://cpan.metacpan.org https://cpan.metacpan.org \
850         --replace-fail http://backpan.perl.org https://backpan.perl.org \
851         --replace-fail http://fastapi.metacpan.org https://fastapi.metacpan.org \
852         --replace-fail http://cpanmetadb.plackperl.org https://cpanmetadb.plackperl.org
853     '';
854     propagatedBuildInputs = [ IOSocketSSL ];
855     meta = {
856       description = "Get, unpack, build and install modules from CPAN";
857       homepage = "https://github.com/miyagawa/cpanminus";
858       license = with lib.licenses; [ artistic1 gpl1Plus ];
859       mainProgram = "cpanm";
860     };
861   };
863   Appcpm = buildPerlModule {
864     pname = "App-cpm";
865     version = "0.997018";
866     src = fetchurl {
867       url = "mirror://cpan/authors/id/S/SK/SKAJI/App-cpm-0.997018.tar.gz";
868       hash = "sha256-ePvZawR9A4O2p/iJWxk/CziworVQuS8YwH91Lql8Tv0=";
869     };
870     buildInputs = [ ModuleBuildTiny ];
871     propagatedBuildInputs = [ CPAN02PackagesSearch CPANCommonIndex CPANDistnameInfo ClassTiny CommandRunner ExtUtilsInstall ExtUtilsInstallPaths FileCopyRecursive Filepushd HTTPTinyish MenloLegacy Modulecpmfile ModuleCPANfile ParsePMFile ParallelPipes locallib ];
872     nativeBuildInputs = lib.optional stdenv.hostPlatform.isDarwin shortenPerlShebang;
873     postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
874       shortenPerlShebang $out/bin/cpm
875     '';
876     meta = {
877       description = "Fast CPAN module installer";
878       homepage = "https://github.com/skaji/cpm";
879       license = with lib.licenses; [ artistic1 gpl1Plus ];
880       maintainers = [ maintainers.zakame ];
881       mainProgram = "cpm";
882     };
883   };
885   Applify = buildPerlPackage {
886     pname = "Applify";
887     version = "0.23";
888     src = fetchurl {
889       url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/Applify-0.23.tar.gz";
890       hash = "sha256-fI3Z55e9DsJgDTAOzUnul4EZgxxlay0L3q7OoENIoRI=";
891     };
892     meta = {
893       description = "Write object oriented scripts with ease";
894       homepage = "https://github.com/jhthorsen/applify";
895       license = with lib.licenses; [ artistic2 ];
896       maintainers = [ maintainers.sgo ];
897     };
898   };
900   AppMusicChordPro = buildPerlPackage {
901     pname = "App-Music-ChordPro";
902     version = "6.050.7";
903     src = fetchurl {
904       url = "mirror://cpan/authors/id/J/JV/JV/App-Music-ChordPro-6.050.7.tar.gz";
905       hash = "sha256-tpNsqhoWOPIwprK3ou5tb9oXKih3HEQjm/2c5F9rOoQ=";
906     };
907     buildInputs = [ ObjectPad ];
908     propagatedBuildInputs = [ AppPackager DataPrinter FileLoadLines FileHomeDir IOString ImageInfo PDFAPI2 StringInterpolateNamed TextLayout ]
909       ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [ Wx ];
910     nativeBuildInputs = lib.optional stdenv.hostPlatform.isDarwin shortenPerlShebang;
912     # Delete tests that fail when version env var is set, see
913     # https://github.com/ChordPro/chordpro/issues/293
914     patchPhase = ''
915       rm t/320_subst.t t/321_subst.t t/322_subst.t
916     '';
918     postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
919       shortenPerlShebang $out/bin/chordpro
920       rm $out/bin/wxchordpro # Wx not supported on darwin
921     '';
922     meta = {
923       description = "Lyrics and chords formatting program";
924       homepage = "https://www.chordpro.org";
925       license = with lib.licenses; [ artistic1 gpl1Plus ];
926       mainProgram = "chordpro";
927     };
928   };
930   AppPackager =  buildPerlPackage {
931     pname = "App-Packager";
932     version = "1.440";
933     src = fetchurl {
934       url = "mirror://cpan/authors/id/J/JV/JV/App-Packager-1.440.tar.gz";
935       hash = "sha256-VoFBa+b9eJe+mEg8TqKOsN3gzGWzwg5o1HswRN7PKHo=";
936     };
937     meta = {
938       description = "Abstraction for Packagers";
939       license = with lib.licenses; [ artistic1 gpl1Plus ];
940     };
941   };
943   Apppapersway = buildPerlPackage rec {
944     pname = "App-papersway";
945     version = "1.001";
946     src = fetchurl {
947       url = "mirror://cpan/authors/id/S/SP/SPWHITTON/App-papersway-${version}.tar.gz";
948       hash = "sha256-61OMfvEhgwFbNlOFjm9p3QxDOn31jQZdN8i1nIsWlns=";
949     };
950     buildInputs = [ AnyEvent AnyEventI3 GetoptLong JSON ];
951     meta = {
952       description = "PaperWM-like scrollable tiling window management for Sway/i3wm";
953       homepage = "https://spwhitton.name/tech/code/papersway/";
954       license = lib.licenses.gpl3Plus;
955       mainProgram = "papersway";
956       maintainers = with lib.maintainers; [ fgaz ];
957     };
958   };
960   Appperlbrew = buildPerlModule {
961     pname = "App-perlbrew";
962     version = "1.00";
963     src = fetchurl {
964       url = "mirror://cpan/authors/id/G/GU/GUGOD/App-perlbrew-1.00.tar.gz";
965       hash = "sha256-PKNFnK6f/VHef2i95CEtBx1hOLZEUo9izJDHikhSyss=";
966     };
967     buildInputs = [ pkgs.curl FileWhich IOAll ModuleBuildTiny PathClass TestException TestNoWarnings TestOutput TestSpec TestTempDirTiny ];
968     propagatedBuildInputs = [ CPANPerlReleases CaptureTiny DevelPatchPerl PodParser locallib ];
970     doCheck = false;
972     meta = {
973       description = "Manage perl installations in your $HOME";
974       license = with lib.licenses; [ mit ];
975       mainProgram = "perlbrew";
976     };
977   };
979   ArchiveAnyLite = buildPerlPackage {
980     pname = "Archive-Any-Lite";
981     version = "0.11";
982     src = fetchurl {
983       url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/Archive-Any-Lite-0.11.tar.gz";
984       hash = "sha256-FcGIJTmTpLZuVZnweJsTJvCmbAkr2/rJMTcG1BwoUXA=";
985     };
986     propagatedBuildInputs = [ ArchiveZip ];
987     buildInputs = [ ExtUtilsMakeMakerCPANfile TestUseAllModules ];
988     meta = {
989       description = "Simple CPAN package extractor";
990       license = with lib.licenses; [ artistic1 gpl1Plus ];
991     };
992   };
994   AppSqitch = buildPerlModule {
995     version = "1.4.1";
996     pname = "App-Sqitch";
997     src = fetchurl {
998       url = "mirror://cpan/authors/id/D/DW/DWHEELER/App-Sqitch-v1.4.1.tar.gz";
999       hash = "sha256-yvMcyPdy46TJ1LP/Oo9oSm61sbPCYfTdwPkKiMNgB8Y=";
1000     };
1001     buildInputs = [ CaptureTiny TestExit TestDeep TestDir TestException TestFile TestFileContents TestMockModule TestMockObject TestNoWarnings TestWarn ];
1002     propagatedBuildInputs = [ Clone ConfigGitLike DBI DateTime EncodeLocale HashMerge IOPager IPCRun3 IPCSystemSimple ListMoreUtils PathClass PerlIOutf8_strict PodParser StringFormatter StringShellQuote TemplateTiny Throwable TypeTiny URIdb libintl-perl AlgorithmBackoff ];
1003     meta = {
1004       description = "Sensible database change management";
1005       homepage = "https://sqitch.org";
1006       license = with lib.licenses; [ mit ];
1007       mainProgram = "sqitch";
1008     };
1009   };
1011   AppSt = buildPerlPackage {
1012     pname = "App-St";
1013     version = "1.1.4";
1014     src = fetchurl {
1015       url = "https://github.com/nferraz/st/archive/v1.1.4.tar.gz";
1016       hash = "sha256-wCoW9n5MNXaQpUODGYQxSf1wDCIxKPn/6+yrKEnFi7g=";
1017     };
1018     postInstall =
1019       ''
1020         ($out/bin/st --help || true) | grep Usage
1021       '';
1022     meta = {
1023       description = "Simple Statistics";
1024       homepage = "https://github.com/nferraz/st";
1025       license = with lib.licenses; [ mit ];
1026       maintainers = [ ];
1027       mainProgram = "st";
1028     };
1029   };
1031   AttributeParamsValidate = buildPerlPackage {
1032     pname = "Attribute-Params-Validate";
1033     version = "1.21";
1034     src = fetchurl {
1035       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Attribute-Params-Validate-1.21.tar.gz";
1036       hash = "sha256-WGuTnO/9s3GIt8Rh3RqPnzVpUYTIcDsFw19tUIyAkPU=";
1037     };
1038     buildInputs = [ TestFatal ];
1039     propagatedBuildInputs = [ ParamsValidate ];
1040     doCheck = false;
1041     meta = {
1042       description = "Validate method/function parameters";
1043       homepage = "https://metacpan.org/release/Params-Validate";
1044       license = with lib.licenses; [ artistic2 ];
1045     };
1046   };
1048   ArchiveLibarchive = buildPerlPackage {
1049     pname = "Archive-Libarchive";
1050     version = "0.09";
1051     src = fetchurl {
1052       url = "mirror://cpan/authors/id/P/PL/PLICEASE/Archive-Libarchive-0.09.tar.gz";
1053       hash = "sha256-avdG7P9/GjUwzmtaWNCtR0MaaZjUWduw8VYqEiPn3v8=";
1054     };
1055     patches = [ ../development/perl-modules/ArchiveLibarchive-set-findlib-path.patch ];
1056     postPatch = ''
1057       substituteInPlace lib/Archive/Libarchive/Lib.pm --replace-fail "@@libarchive@@" "${lib.getLib pkgs.libarchive}/lib"
1058     '';
1059     buildInputs = [ FFIC Filechdir PathTiny SubIdentify Test2ToolsMemoryCycle TestArchiveLibarchive TestScript ];
1060     propagatedBuildInputs = [ FFICStat FFICheckLib FFIPlatypus FFIPlatypusTypeEnum FFIPlatypusTypePtrObject RefUtil ];
1061     meta = {
1062       homepage = "https://metacpan.org/pod/Archive::Libarchive";
1063       description = "Modern Perl bindings to libarchive";
1064       license = with lib.licenses; [ artistic1 gpl1Plus ];
1065       maintainers = with maintainers; [ tomasajt ];
1066     };
1067   };
1069   ArchiveLibarchiveExtract = buildPerlPackage {
1070     pname = "Archive-Libarchive-Extract";
1071     version = "0.03";
1072     src = fetchurl {
1073       url = "mirror://cpan/authors/id/P/PL/PLICEASE/Archive-Libarchive-Extract-0.03.tar.gz";
1074       hash = "sha256-yXfAR0hnIX6zJvte5pA04e9spBQUkWHjEpAblf0SwIE=";
1075     };
1076     buildInputs = [ Test2Suite TestScript ];
1077     propagatedBuildInputs = [ ArchiveLibarchive Filechdir PathTiny RefUtil ];
1078     meta = {
1079       homepage = "https://metacpan.org/pod/Archive::Libarchive::Extract";
1080       description = "Archive extracting mechanism (using libarchive)";
1081       license = with lib.licenses; [ artistic1 gpl1Plus ];
1082       maintainers = with maintainers; [ tomasajt ];
1083     };
1084   };
1086   ArchiveLibarchivePeek = buildPerlPackage {
1087     pname = "Archive-Libarchive-Peek";
1088     version = "0.04";
1089     src = fetchurl {
1090       url = "mirror://cpan/authors/id/P/PL/PLICEASE/Archive-Libarchive-Peek-0.04.tar.gz";
1091       hash = "sha256-DYhJ4xG2RsozWz6gGodTtAIkK5XOgAo7zNXHCC4nJPo=";
1092     };
1093     buildInputs = [ Filechdir Test2Suite TestScript ];
1094     propagatedBuildInputs = [ ArchiveLibarchive PathTiny RefUtil ];
1095     meta = {
1096       homepage = "https://metacpan.org/pod/Archive::Libarchive::Peek";
1097       description = "Peek into archives without extracting them";
1098       license = with lib.licenses; [ artistic1 gpl1Plus ];
1099       maintainers = with maintainers; [ tomasajt ];
1100     };
1101   };
1103   ArrayCompare = buildPerlModule {
1104     pname = "Array-Compare";
1105     version = "3.0.8";
1106     src = fetchurl {
1107       url = "mirror://cpan/authors/id/D/DA/DAVECROSS/Array-Compare-v3.0.8.tar.gz";
1108       hash = "sha256-MEc7XpEBU4QNJDHqlGO55W5SPN56PFBhadaaK5dC2DQ=";
1109     };
1111     buildInputs = [ TestNoWarnings ];
1112     propagatedBuildInputs = [ Moo TypeTiny ];
1113     meta = {
1114       description = "Perl extension for comparing arrays";
1115       license = with lib.licenses; [ artistic1 gpl1Plus ];
1116     };
1117   };
1119   ArrayDiff = buildPerlPackage {
1120     pname = "Array-Diff";
1121     version = "0.09";
1122     src = fetchurl {
1123       url = "mirror://cpan/authors/id/N/NE/NEILB/Array-Diff-0.09.tar.gz";
1124       hash = "sha256-gAY5Lphh50FTfCu8kRbI5CuWLy4H6NZBov9qEcZEUHc=";
1125     };
1126     propagatedBuildInputs = [ AlgorithmDiff ClassAccessor ];
1127     meta = {
1128       description = "Find the differences between two arrays";
1129       homepage = "https://github.com/neilb/array-diff-perl";
1130       license = with lib.licenses; [ artistic1 gpl1Plus ];
1131     };
1132   };
1134   ArrayFIFO = buildPerlPackage {
1135     pname = "Array-FIFO";
1136     version = "0.13";
1137     src = fetchurl {
1138       url = "mirror://cpan/authors/id/D/DB/DBURKE/Array-FIFO-0.13.tar.gz";
1139       hash = "sha256-virrX1qa8alvADNQilacqTrRmtFdx8a5mObXvHQMZvc=";
1140     };
1141     buildInputs = [ TestDeep TestSpec TestTrap ];
1142     propagatedBuildInputs = [ Moose namespaceautoclean ];
1143     meta = {
1144       description = "Simple limitable FIFO array, with sum and average methods";
1145       homepage = "https://github.com/dwburke/perl-Array-FIFO";
1146       license = with lib.licenses; [ artistic2 ];
1147     };
1148   };
1150   ArrayRefElem = buildPerlPackage {
1151     pname = "Array-RefElem";
1152     version = "1.00";
1153     src = fetchurl {
1154       url = "mirror://cpan/authors/id//G/GA/GAAS/Array-RefElem-1.00.tar.gz";
1155       hash = "sha256-U7iAo67AQ+TjcM4SaCtHVt5F3XQtq1cpT+IaFUU87+M=";
1156     };
1157     meta = {
1158       description = "Set up array elements as aliases";
1159       license = with lib.licenses; [ artistic1 gpl1Plus ];
1160     };
1161   };
1163   ArrayUtils = buildPerlPackage {
1164     pname = "ArrayUtils";
1165     version = "0.5";
1166     src = fetchurl {
1167       url = "mirror://cpan/authors/id/Z/ZM/ZMIJ/Array/Array-Utils-0.5.tar.gz";
1168       hash = "sha256-id0bf82bQ3lJKjp3SW45/mzTebdz/QOmsWDdJu3mN3A=";
1169     };
1170     meta = {
1171       description = "Small utils for array manipulation";
1172       homepage = "https://metacpan.org/pod/Array::Utils";
1173       license = with lib.licenses; [ artistic1 gpl1Plus ];
1174     };
1175   };
1177   AsyncPing = buildPerlPackage {
1178     pname = "AsyncPing";
1179     version = "2016.1207";
1180     src = fetchurl {
1181       url = "mirror://cpan/authors/id/X/XI/XINFWANG/AsyncPing-2016.1207.tar.gz";
1182       hash = "sha256-b76a/sF6d3B2+K2JksjSMAr2WpUDRD0dT/nD+NKZyVo=";
1183     };
1184     meta = {
1185       description = "Ping a huge number of servers in several seconds";
1186       license = with lib.licenses; [ artistic2 ];
1187     };
1188   };
1190   AsyncUtil = buildPerlPackage {
1191     pname = "Async-Util";
1192     version = "0.01";
1193     src = fetchurl {
1194       url = "mirror://cpan/authors/id/W/WH/WHITNEY/Async-Util-0.01.tar.gz";
1195       hash = "sha256-jzKxHKvFD2Xjh79W8mWBV6IsNah5Nmbhtfis/hMQkQY=";
1196     };
1197     buildInputs = [ AnyEvent ListMoreUtils ];
1198     meta = {
1199       description = "Utilities for doing common async operations";
1200       license = with lib.licenses; [ artistic1 gpl1Plus ];
1201     };
1202   };
1204   ArchiveCpio = buildPerlPackage {
1205     pname = "Archive-Cpio";
1206     version = "0.10";
1207     src = fetchurl {
1208       url = "mirror://cpan/authors/id/P/PI/PIXEL/Archive-Cpio-0.10.tar.gz";
1209       hash = "sha256-JG+zFml2TngzayGRE0Ei4HxE8tgtxPN9VSqyj4ZovtM=";
1210     };
1211     meta = {
1212       description = "Module for manipulations of cpio archives";
1213       license = with lib.licenses; [ artistic1 gpl1Plus ]; # See https://rt.cpan.org/Public/Bug/Display.html?id=43597#txn-569710
1214       mainProgram = "cpio-filter";
1215     };
1216   };
1218   ArchiveExtract = buildPerlPackage {
1219     pname = "Archive-Extract";
1220     version = "0.88";
1221     src = fetchurl {
1222       url = "mirror://cpan/authors/id/B/BI/BINGOS/Archive-Extract-0.88.tar.gz";
1223       hash = "sha256-z/zxNc0GIih9OwIVT31nFklUSfyu0DlmYhlI4l6l90I=";
1224     };
1225     meta = {
1226       description = "Generic archive extracting mechanism";
1227       license = with lib.licenses; [ artistic1 gpl1Plus ];
1228     };
1229   };
1231   ArchiveTar = buildPerlPackage {
1232     pname = "Archive-Tar";
1233     version = "3.02";
1234     src = fetchurl {
1235       url = "mirror://cpan/authors/id/B/BI/BINGOS/Archive-Tar-3.02.tar.gz";
1236       hash = "sha256-gWM8h/c3hGGD01wPTJ1ALalHqEa0iBswzObZ6+PInRk=";
1237     };
1238     meta = {
1239       description = "Manipulates TAR archives";
1240       license = with lib.licenses; [ artistic1 gpl1Plus ];
1241       mainProgram = "ptar";
1242     };
1243   };
1245   ArchiveTarWrapper = buildPerlPackage {
1246     pname = "Archive-Tar-Wrapper";
1247     version = "0.38";
1248     src = fetchurl {
1249       url = "mirror://cpan/authors/id/A/AR/ARFREITAS/Archive-Tar-Wrapper-0.38.tar.gz";
1250       hash = "sha256-GfPQ2qi5XP+2jHBDUN0GdKI+HS8U0DKQO36WCe23s3o=";
1251     };
1252     propagatedBuildInputs = [ FileWhich IPCRun LogLog4perl ];
1253     meta = {
1254       description = "API wrapper around the 'tar' utility";
1255       license = with lib.licenses; [ gpl3Plus ];
1256     };
1257   };
1259   ArchiveZip = buildPerlPackage {
1260     pname = "Archive-Zip";
1261     version = "1.68";
1262     src = fetchurl {
1263       url = "mirror://cpan/authors/id/P/PH/PHRED/Archive-Zip-1.68.tar.gz";
1264       hash = "sha256-mE4YXXhbr2EpxudfjrREEXRawAv2Ei+xyOgio4YexlA=";
1265     };
1266     buildInputs = [ TestMockModule ];
1267     meta = {
1268       description = "Provide an interface to ZIP archive files";
1269       license = with lib.licenses; [ artistic1 gpl1Plus ];
1270       mainProgram = "crc32";
1271     };
1272   };
1274   AstroFITSHeader = buildPerlModule {
1275     pname = "Astro-FITS-Header";
1276     version = "3.09";
1277     src = fetchurl {
1278       url = "mirror://cpan/authors/id/G/GS/GSB/Astro-FITS-Header-3.09.tar.gz";
1279       hash = "sha256-cq1oveWku+zv8VFtZ3A/4tACFDlwQpo81pplFlLVaYY=";
1280     };
1281     meta = {
1282       description = "Object-oriented interface to FITS HDUs";
1283       homepage = "https://github.com/timj/perl-Astro-FITS-Header";
1284       license = with lib.licenses; [ gpl3Plus ];
1285     };
1286   };
1288   AudioCuefileParser = buildPerlPackage {
1289     pname = "Audio-Cuefile-Parser";
1290     version = "0.02";
1291     src = fetchurl {
1292       url = "mirror://cpan/authors/id/M/MA/MATTK/Audio-Cuefile-Parser-0.02.tar.gz";
1293       hash = "sha256-ulbQcMhz2WxoatmoH99P6JuETkPrSd/gAL+c70PFtmk=";
1294     };
1295     meta = {
1296       license = with lib.licenses; [ artistic1 gpl1Plus ];
1297     };
1298   };
1300   AudioFLACHeader = buildPerlPackage {
1301     pname = "Audio-FLAC-Header";
1302     version = "2.4";
1303     src = fetchurl {
1304       url = "mirror://cpan/authors/id/D/DA/DANIEL/Audio-FLAC-Header-2.4.tar.gz";
1305       hash = "sha256-+6WRHWwi2BUGVlzZoUOOhgVCD/eYbPA9GhLQBqQHBUM=";
1306     };
1307     meta = {
1308       description = "Interface to FLAC header metadata";
1309       license = with lib.licenses; [ artistic1 gpl1Plus ];
1310     };
1311   };
1313   AudioScan = buildPerlPackage {
1314     pname = "Audio-Scan";
1315     version = "1.05";
1316     src = fetchurl {
1317         url = "https://github.com/Logitech/slimserver-vendor/raw/public/8.3/CPAN/Audio-Scan-1.05.tar.gz";
1318         hash = "sha256-9YXC8GHPRWKlV8emmTke7RB0HhiCbALmZQqtQFLcBi4=";
1319     };
1320     buildInputs = [ pkgs.zlib TestWarn ];
1321     env.NIX_CFLAGS_COMPILE = "-I${pkgs.zlib.dev}/include";
1322     NIX_CFLAGS_LINK = "-L${pkgs.zlib.out}/lib -lz";
1323     meta = {
1324       description = "Fast C metadata and tag reader for all common audio file formats, slimserver fork";
1325       homepage = "https://github.com/Logitech/slimserver-vendor";
1326       license = with lib.licenses; [ gpl2Plus ];
1327     };
1328   };
1330   AuthenDecHpwd = buildPerlModule {
1331     pname = "Authen-DecHpwd";
1332     version = "2.007";
1333     src = fetchurl {
1334       url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Authen-DecHpwd-2.007.tar.gz";
1335       hash = "sha256-9DqTuwK0H3Mn2S+eljtpUF9nNQpS6PUHlvmK/E+z8Xc=";
1336     };
1337     perlPreHook = lib.optionalString stdenv.hostPlatform.isi686 "export LD=$CC"; # fix undefined reference to `__stack_chk_fail_local'
1338     propagatedBuildInputs = [ DataInteger DigestCRC ScalarString ];
1339     meta = {
1340       description = "DEC VMS password hashing";
1341       license = with lib.licenses; [ gpl1Plus ];
1342     };
1343   };
1345   AuthenHtpasswd = buildPerlPackage {
1346     pname = "Authen-Htpasswd";
1347     version = "0.171";
1348     src = fetchurl {
1349       url = "mirror://cpan/authors/id/M/MS/MSTROUT/Authen-Htpasswd-0.171.tar.gz";
1350       hash = "sha256-tfr0fj+UikUoEGzLiMxxBIz+WY5bAmpEQ2i8fjk0gGc=";
1351     };
1352     propagatedBuildInputs = [ ClassAccessor CryptPasswdMD5 DigestSHA1 IOLockedFile ];
1353     # Remove test files that fail after DES support was removed from crypt()
1354     postPatch = ''
1355       rm t/04core.t t/05edit.t
1356     '';
1357     meta = {
1358       description = "Interface to read and modify Apache .htpasswd files";
1359       license = with lib.licenses; [ artistic1 gpl1Plus ];
1360     };
1361   };
1363   AuthenKrb5 = buildPerlModule {
1364     pname = "Authen-Krb5";
1365     version = "1.905";
1366     src = fetchurl {
1367       url = "mirror://cpan/authors/id/I/IO/IOANR/Authen-Krb5-1.905.tar.gz";
1368       hash = "sha256-13sAuxUBpW9xGOkarAx+Qi2888QY+c6YuAF3HDqg900=";
1369     };
1370     perlPreHook = "export LD=$CC";
1371     propagatedBuildInputs = [ pkgs.libkrb5 ];
1372     buildInputs = [ DevelChecklib FileWhich PkgConfig ];
1373     meta = {
1374       description = "XS bindings for Kerberos 5";
1375       license = with lib.licenses; [ artistic1 gpl1Plus ];
1376     };
1377   };
1379   AuthenKrb5Admin = buildPerlPackage {
1380     pname = "Authen-Krb5-Admin";
1381     version = "0.17";
1382     src = fetchurl {
1383       url = "mirror://cpan/authors/id/S/SJ/SJQUINNEY/Authen-Krb5-Admin-0.17.tar.gz";
1384       hash = "sha256-XdScrNmD79YajD8aVlcbtzeF6xVZCLXXvsl+7XjfDFQ=";
1385     };
1386     propagatedBuildInputs = [ pkgs.krb5.dev AuthenKrb5 ];
1387     # The following ENV variables are required by Makefile.PL to find
1388     # programs in krb5.dev. It is not enough to just specify the
1389     # path to krb5-config as this tool returns the prefix of krb5,
1390     # which implies a working value for KRB5_LIBDIR, but not the others.
1391     perlPreHook = ''
1392       export KRB5_CONFTOOL=${pkgs.krb5.dev}/bin/krb5-config
1393       export KRB5_BINDIR=${pkgs.krb5.dev}/bin
1394       export KRB5_INCDIR=${pkgs.krb5.dev}/include
1395     '';
1396     # Tests require working Kerberos infrastructure so replace with a
1397     # simple attempt to exercise the module.
1398     checkPhase = ''
1399       perl -I blib/lib -I blib/arch -MAuthen::Krb5::Admin -e 'print "1..1\nok 1\n"'
1400     '';
1401     meta = {
1402       description = "Perl extension for MIT Kerberos 5 admin interface";
1403       license = with lib.licenses; [ bsd3 ];
1404     };
1405   };
1407   AuthenModAuthPubTkt = buildPerlPackage {
1408     pname = "Authen-ModAuthPubTkt";
1409     version = "0.1.1";
1410     src = fetchurl {
1411       url = "mirror://cpan/authors/id/A/AG/AGORDON/Authen-ModAuthPubTkt-0.1.1.tar.gz";
1412       hash = "sha256-eZbhpCxRIWADzPA8S1JQKGtMVWhCV5cYUfXs6RYdx90=";
1413     };
1414     propagatedBuildInputs = [ pkgs.openssl IPCRun3 ];
1415     patchPhase = ''
1416       sed -i 's|my $openssl_bin = "openssl";|my $openssl_bin = "${pkgs.openssl}/bin/openssl";|' lib/Authen/ModAuthPubTkt.pm
1417       # -dss1 doesn't exist for dgst in openssl 1.1, -sha1 can also handle DSA keys now
1418       sed -i 's|-dss1|-sha1|' lib/Authen/ModAuthPubTkt.pm
1419     '';
1420     preCheck = "rm t/04-verify-dsa.t"; # remove unstable test: https://rt.cpan.org/Ticket/Display.html?id=110752
1421     meta = {
1422       description = "Generate Tickets (Signed HTTP Cookies) for mod_auth_pubtkt protected websites";
1423       license = with lib.licenses; [ artistic1 gpl1Plus ];
1424       mainProgram = "mod_auth_pubtkt.pl";
1425     };
1426   };
1428   AuthenOATH = buildPerlPackage {
1429     pname = "Authen-OATH";
1430     version = "2.0.1";
1431     src = fetchurl {
1432       url = "mirror://cpan/authors/id/O/OA/OALDERS/Authen-OATH-2.0.1.tar.gz";
1433       hash = "sha256-GoE9vcBcP72d0528/YXiz7C6PQ9lLPaybsg6uBRt3Hc=";
1434     };
1435     buildInputs = [ TestNeeds ];
1436     propagatedBuildInputs = [ DigestHMAC Moo TypeTiny ];
1437     meta = {
1438       description = "OATH One Time Passwords";
1439       homepage = "https://github.com/oalders/authen-oath";
1440       license = with lib.licenses; [ artistic1 gpl1Plus ];
1441       maintainers = [ maintainers.sgo ];
1442     };
1443   };
1445   AuthenPassphrase = buildPerlModule {
1446     pname = "Authen-Passphrase";
1447     version = "0.008";
1448     src = fetchurl {
1449       url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Authen-Passphrase-0.008.tar.gz";
1450       hash = "sha256-VdtFIGF9hZ2IwO5Ull2oFbcibXkrjNyN6/kgc1WeBGM=";
1451     };
1452     propagatedBuildInputs = [ AuthenDecHpwd CryptDES CryptEksblowfish CryptMySQL CryptPasswdMD5 CryptUnixCryptXS DataEntropy DigestMD4 ModuleRuntime ];
1453     meta = {
1454       description = "Hashed passwords/passphrases as objects";
1455       license = with lib.licenses; [ artistic1 gpl1Plus ];
1456     };
1457   };
1459   AuthenRadius = buildPerlPackage {
1460     pname = "Authen-Radius";
1461     version = "0.32";
1462     src = fetchurl {
1463       url = "mirror://cpan/authors/id/P/PO/PORTAONE/Authen-Radius-0.32.tar.gz";
1464       hash = "sha256-eyCPmDfIOhhCZyVIklNlh+7Qvd5J577euj1ypmUjF0A=";
1465     };
1466     buildInputs = [ TestNoWarnings ];
1467     propagatedBuildInputs = [ DataHexDump NetIP ];
1468     meta = {
1469       description = "Provide simple Radius client facilities";
1470       license = with lib.licenses; [ artistic2 ];
1471     };
1472   };
1474   AuthenSASL = buildPerlPackage {
1475     pname = "Authen-SASL";
1476     version = "2.1700";
1477     src = fetchurl {
1478       url = "mirror://cpan/authors/id/E/EH/EHUELS/Authen-SASL-2.1700.tar.gz";
1479       hash = "sha256-uG1aV2uNOHruJPOfR6VK/RS7ZrCQA9tQZQAfHeA6js4=";
1480     };
1481     propagatedBuildInputs = [ DigestHMAC ];
1482     meta = {
1483       description = "SASL Authentication framework";
1484       license = with lib.licenses; [ artistic1 gpl1Plus ];
1485     };
1486   };
1488   AuthenSASLSASLprep = buildPerlModule {
1489     pname = "Authen-SASL-SASLprep";
1490     version = "1.100";
1491     src = fetchurl {
1492       url = "mirror://cpan/authors/id/C/CF/CFAERBER/Authen-SASL-SASLprep-1.100.tar.gz";
1493       hash = "sha256-pMzMNLs/U6zwunjJ/GGvjRVtEJ0cEEh7pZiKVQd9H3A=";
1494     };
1495     buildInputs = [ TestNoWarnings ];
1496     propagatedBuildInputs = [ UnicodeStringprep ];
1497     meta = {
1498       description = "Stringprep Profile for User Names and Passwords (RFC 4013)";
1499       license = with lib.licenses; [ artistic1 gpl1Plus ];
1500       maintainers = [ maintainers.sgo ];
1501     };
1502   };
1504   AuthenSCRAM = buildPerlPackage {
1505     pname = "Authen-SCRAM";
1506     version = "0.011";
1507     src = fetchurl {
1508       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Authen-SCRAM-0.011.tar.gz";
1509       hash = "sha256-RRCMI5pzc9AJQdzw0XGs0D58FqY85vfZVo/wUrF89ag=";
1510     };
1511     buildInputs = [ TestFailWarnings TestFatal ];
1512     propagatedBuildInputs = [ AuthenSASLSASLprep CryptURandom Moo PBKDF2Tiny TypeTiny namespaceclean ];
1513     meta = {
1514       description = "Salted Challenge Response Authentication Mechanism (RFC 5802)";
1515       homepage = "https://github.com/dagolden/Authen-SCRAM";
1516       license = with lib.licenses; [ asl20 ];
1517       maintainers = [ maintainers.sgo ];
1518     };
1519   };
1521   AuthenSimple = buildPerlPackage {
1522     pname = "Authen-Simple";
1523     version = "0.5";
1524     src = fetchurl {
1525       url = "mirror://cpan/authors/id/C/CH/CHANSEN/Authen-Simple-0.5.tar.gz";
1526       hash = "sha256-As3atH+L8aHL1Mm/jSWPbQURFJnDP4MV5yRIEvcmE6o=";
1527     };
1528     # Our C crypt() doesn't support this weak "crypt" algorithm anymore.
1529     postPatch = ''
1530       patch -p1 <<-EOF
1531         --- a/t/09password.t
1532         +++ b/t/09password.t
1533         @@ -10 +10 @@
1534         -use Test::More tests => 16;
1535         +use Test::More tests => 14;
1536         @@ -14 +13,0 @@
1537         -    [ 'crypt',     'lk9Mh5KHGjAaM',                          'crypt'        ],
1538         @@ -18 +16,0 @@
1539         -    [ 'crypt',     '{CRYPT}lk9Mh5KHGjAaM',                   '{CRYPT}'      ],
1540       EOF
1541     '';
1542     propagatedBuildInputs = [ ClassAccessor ClassDataInheritable CryptPasswdMD5 ParamsValidate ];
1543     meta = {
1544       description = "Simple Authentication";
1545       license = with lib.licenses; [ artistic1 gpl1Plus ];
1546     };
1547   };
1549   AuthenSimplePasswd = buildPerlModule {
1550     pname = "Authen-Simple-Passwd";
1551     version = "0.6";
1552     src = fetchurl {
1553       url = "mirror://cpan/authors/id/C/CH/CHANSEN/Authen-Simple-Passwd-0.6.tar.gz";
1554       hash = "sha256-z1W8NiWe3w/Wr5rSusgbMdxbVqFixmBZDsuWnHwWdLI=";
1555     };
1556     # Our C crypt() doesn't support this weak "crypt" algorithm anymore.
1557     postPatch = ''
1558       sed -e 's/tests => 8/tests => 7/' -e "/'crypt'/d" -i t/04basic.t
1559     '';
1560     propagatedBuildInputs = [ AuthenSimple ];
1561     meta = {
1562       description = "Simple Passwd authentication";
1563       license = with lib.licenses; [ artistic1 gpl1Plus ];
1564     };
1565   };
1567   autobox = buildPerlPackage {
1568     pname = "autobox";
1569     version = "3.0.1";
1570     src = fetchurl {
1571       url = "mirror://cpan/authors/id/C/CH/CHOCOLATE/autobox-v3.0.1.tar.gz";
1572       hash = "sha256-wwO3/M+qH/TUxCmrPxXlyip3VU74yfw7jGK6hZ6HTJg=";
1573     };
1574     propagatedBuildInputs = [ ScopeGuard ];
1575     buildInputs = [ IPCSystemSimple TestFatal ];
1576     meta = {
1577       description = "Call methods on native types";
1578       license = with lib.licenses; [ artistic2 ];
1579     };
1580   };
1582   Autodia = buildPerlPackage {
1583     pname = "Autodia";
1584     version = "2.14";
1585     src = fetchurl {
1586       url = "mirror://cpan/authors/id/T/TE/TEEJAY/Autodia-2.14.tar.gz";
1587       hash = "sha256-rIElyIq+Odn+Aco6zBOgCinzM2pLt+9gRH5ri4Iv9CI=";
1588     };
1589     propagatedBuildInputs = [ TemplateToolkit XMLSimple ];
1590     buildInputs = [ DBI ];
1592     meta = {
1593       description = "AutoDia, create UML diagrams from source code";
1594       longDescription = ''
1595         AutoDia is a modular application that parses source code, XML or data
1596         and produces an XML document in Dia format (or images via graphviz
1597         and vcg).  Its goal is to be a UML / DB Schema diagram autocreation
1598         package.  The diagrams its creates are standard UML diagrams showing
1599         dependencies, superclasses, packages, classes and inheritances, as
1600         well as the methods, etc of each class.
1602         AutoDia supports any language that a Handler has been written for,
1603         which includes C, C++, Java, Perl, Python, and more.
1604       '';
1605       homepage = "http://www.aarontrevena.co.uk/opensource/autodia/";
1606       license = with lib.licenses; [ gpl2Plus ];
1607       mainProgram = "autodia.pl";
1608     };
1609   };
1611   AWSSignature4 = buildPerlModule {
1612     pname = "AWS-Signature4";
1613     version = "1.02";
1614     src = fetchurl {
1615       url = "mirror://cpan/authors/id/L/LD/LDS/AWS-Signature4-1.02.tar.gz";
1616       hash = "sha256-ILvBbLNFT+XozzT+YfGpH+JsPxfkSf9mX8u7kqtEPr0=";
1617     };
1618     propagatedBuildInputs = [ LWP TimeDate URI ];
1619     meta = {
1620       description = "Create a version4 signature for Amazon Web Services";
1621       license = with lib.licenses; [ artistic1 gpl1Plus ];
1622     };
1623   };
1625   autovivification = buildPerlPackage {
1626     pname = "autovivification";
1627     version = "0.18";
1628     src = fetchurl {
1629       url = "mirror://cpan/authors/id/V/VP/VPIT/autovivification-0.18.tar.gz";
1630       hash = "sha256-LZmXVoUkKYDQqZBPY5FEwFnW7OFYme/eSst0LTJT8QU=";
1631     };
1632     meta = {
1633       description = "Lexically disable autovivification";
1634       homepage = "https://search.cpan.org/dist/autovivification";
1635       license = with lib.licenses; [ artistic1 gpl1Plus ];
1636     };
1637   };
1639   BarcodeZBar = buildPerlPackage {
1640     pname = "Barcode-ZBar";
1641     version = "0.04pre";
1642     # The meta::cpan version of this module has been unmaintained from 2009
1643     # This uses an updated version from the ZBar repo that works with the current ZBar library
1644     src = "${pkgs.zbar.src}/perl";
1645     postPatch = ''
1646       substituteInPlace Makefile.PL --replace "-lzbar" "-L${pkgs.zbar.lib}/lib -lzbar"
1647       rm t/Processor.t
1648     '';
1649     buildInputs =[ ExtUtilsMakeMaker ];
1650     propagatedBuildInputs = [ pkgs.zbar PerlMagick ];
1651     perlPreHook = lib.optionalString stdenv.hostPlatform.isDarwin "export LD=$CC";
1652     meta = {
1653       description = "Perl interface to the ZBar Barcode Reader";
1654       homepage = "https://metacpan.org/pod/Barcode::ZBar";
1655       license = with lib.licenses; [ lgpl21Plus ];
1656     };
1657   };
1659   BC = buildPerlPackage {
1660     pname = "B-C";
1661     version = "1.57";
1662     src = fetchurl {
1663       url = "mirror://cpan/authors/id/R/RU/RURBAN/B-C-1.57.tar.gz";
1664       hash = "sha256-BFKmEdNDrfnZX86ra6a2YXbjrX/MzlKAkiwOQx9RSf8=";
1665     };
1666     propagatedBuildInputs = [ BFlags IPCRun Opcodes ];
1667     env = lib.optionalAttrs stdenv.cc.isGNU {
1668       NIX_CFLAGS_COMPILE = "-Wno-error=incompatible-pointer-types";
1669     };
1670     doCheck = false; /* test fails */
1671     meta = {
1672       description = "Perl compiler";
1673       homepage = "https://github.com/rurban/perl-compiler";
1674       license = with lib.licenses; [ artistic1 gpl1Plus ];
1675       mainProgram = "perlcc";
1676     };
1677   };
1679   BCOW = buildPerlPackage {
1680     pname = "B-COW";
1681     version = "0.007";
1682     src = fetchurl {
1683       url = "mirror://cpan/authors/id/A/AT/ATOOMIC/B-COW-0.007.tar.gz";
1684       hash = "sha256-EpDa8ifosJiJoxzxguKRBvHPnxpOm/d1L53pLtEVi0Q=";
1685     };
1686     meta = {
1687       description = "B::COW additional B helpers to check COW status";
1688       license = with lib.licenses; [ artistic1 gpl1Plus ];
1689     };
1690   };
1692   BFlags = buildPerlPackage {
1693     pname = "B-Flags";
1694     version = "0.17";
1695     src = fetchurl {
1696       url = "mirror://cpan/authors/id/R/RU/RURBAN/B-Flags-0.17.tar.gz";
1697       hash = "sha256-wduX0BMVvtEJtMSJWM0yGVz8nvXTt3B+tHhAwdV8ELI=";
1698     };
1699     meta = {
1700       description = "Friendlier flags for B";
1701       license = with lib.licenses; [ artistic1 gpl1Only ];
1702     };
1703   };
1705   BeanstalkClient = buildPerlPackage {
1706     pname = "Beanstalk-Client";
1707     version = "1.07";
1708     src = fetchurl {
1709       url = "mirror://cpan/authors/id/G/GB/GBARR/Beanstalk-Client-1.07.tar.gz";
1710       hash = "sha256-MYirESfyyrqX32XIT2nbDscMZOXXDylvmiZ0+nnBEsw=";
1711     };
1712     propagatedBuildInputs = [ ClassAccessor YAMLSyck ];
1713     meta = {
1714       description = "Client to communicate with beanstalkd server";
1715       license = with lib.licenses; [ artistic1 gpl1Plus ];
1716     };
1717   };
1719   BerkeleyDB = buildPerlPackage {
1720     pname = "BerkeleyDB";
1721     version = "0.65";
1723     src = fetchurl {
1724       url = "mirror://cpan/authors/id/P/PM/PMQS/BerkeleyDB-0.65.tar.gz";
1725       hash = "sha256-QQqonnIylB1JEGyeBI1jN0dVQ+wdIz6nzbcly1uWNQQ=";
1726     };
1728     preConfigure = ''
1729       echo "LIB = ${pkgs.db.out}/lib" > config.in
1730       echo "INCLUDE = ${pkgs.db.dev}/include" >> config.in
1731     '';
1732     meta = {
1733       description = "Perl extension for Berkeley DB version 2, 3, 4, 5 or 6";
1734       license = with lib.licenses; [ artistic1 gpl1Plus ];
1735     };
1736   };
1738   BDB = buildPerlPackage rec {
1739     pname = "BDB";
1740     version = "1.92";
1741     src = fetchurl {
1742       url = "mirror://cpan/authors/id/M/ML/MLEHMANN/${pname}-${version}.tar.gz";
1743       hash = "sha256-o/LKnSuu/BqqQJCLL5y5KS/aPn15fji7146rudna62s=";
1744     };
1745     env.NIX_CFLAGS_COMPILE = "-I${pkgs.db4.dev}/include";
1746     NIX_CFLAGS_LINK = "-L${pkgs.db4.out}/lib -ldb";
1747     buildInputs = [ pkgs.db4 ];
1748     propagatedBuildInputs = [ commonsense ];
1749     meta = {
1750       description = "Asynchronous Berkeley DB access";
1751       license = with lib.licenses; [ artistic1 gpl1Plus ];
1752     };
1753   };
1755   BHooksEndOfScope = buildPerlPackage {
1756     pname = "B-Hooks-EndOfScope";
1757     version = "0.26";
1758     src = fetchurl {
1759       url = "mirror://cpan/authors/id/E/ET/ETHER/B-Hooks-EndOfScope-0.26.tar.gz";
1760       hash = "sha256-Od8vjAB6dUZyB1+VuQeXuuvpetptlEsZemNScJyzBnE=";
1761     };
1762     propagatedBuildInputs = [ ModuleImplementation SubExporterProgressive ];
1763     meta = {
1764       description = "Execute code after a scope finished compilation";
1765       homepage = "https://github.com/karenetheridge/B-Hooks-EndOfScope";
1766       license = with lib.licenses; [ artistic1 gpl1Plus ];
1767     };
1768   };
1770   BHooksOPAnnotation = buildPerlPackage {
1771     pname = "B-Hooks-OP-Annotation";
1772     version = "0.44";
1773     src = fetchurl {
1774       url = "mirror://cpan/authors/id/C/CH/CHOCOLATE/B-Hooks-OP-Annotation-0.44.tar.gz";
1775       hash = "sha256-bib5k2f06pRBac9uBc9NBngyCCQkyo7O/Mt7WmMhexY=";
1776     };
1777     propagatedBuildInputs = [ ExtUtilsDepends ];
1778     meta = {
1779       description = "Annotate and delegate hooked OPs";
1780       license = with lib.licenses; [ artistic1 gpl1Plus ];
1781     };
1782   };
1784   BHooksOPCheck = buildPerlPackage {
1785     pname = "B-Hooks-OP-Check";
1786     version = "0.22";
1787     src = fetchurl {
1788       url = "mirror://cpan/authors/id/E/ET/ETHER/B-Hooks-OP-Check-0.22.tar.gz";
1789       hash = "sha256-x7XRvvWe+Qh/9n6zFo0mJL6UrlRkRp4lmtEb+4rYzc0=";
1790     };
1791     buildInputs = [ ExtUtilsDepends ];
1792     meta = {
1793       description = "Wrap OP check callbacks";
1794       homepage = "https://github.com/karenetheridge/B-Hooks-OP-Check";
1795       license = with lib.licenses; [ artistic1 gpl1Plus ];
1796     };
1797   };
1799   BioExtAlign = callPackage ../development/perl-modules/Bio-Ext-Align { };
1801   BioDBHTS = buildPerlModule {
1802     pname = "Bio-DB-HTS";
1803     version = "3.01";
1804     src = fetchurl {
1805       url = "mirror://cpan/authors/id/A/AV/AVULLO/Bio-DB-HTS-3.01.tar.gz";
1806       sha256 = "12a6bc1f579513cac8b9167cce4e363655cc8eba26b7d9fe1170dfe95e044f42";
1807     };
1809     buildInputs = [ pkgs.htslib pkgs.zlib ];
1811     propagatedBuildInputs = [ BioPerl ];
1812     htslibStore = toString pkgs.htslib;
1814     postPatch = ''
1815       # -Wl,-rpath not recognized : replaced by -rpath=
1816       sed -i 's/Wl,-rpath,/rpath=/' Build.PL
1817     '';
1819     preBuild = ''
1820       export HTSLIB_DIR=${pkgs.htslib}
1821     '';
1823     meta = {
1824       description = "Perl interface to HTS library for DNA sequencing";
1825       license = lib.licenses.asl20;
1826     };
1827   };
1829   BioBigFile = callPackage ../development/perl-modules/Bio-BigFile { };
1831   BioPerl = buildPerlPackage {
1832     pname = "BioPerl";
1833     version = "1.7.8";
1834     src = fetchurl {
1835       url = "mirror://cpan/authors/id/C/CJ/CJFIELDS/BioPerl-1.7.8.tar.gz";
1836       hash = "sha256-xJCjvncV6m5DBe/ZcQ5e2rgtq8Vf14a2UFtVCjDXFzg=";
1837     };
1838     buildInputs = [ ModuleBuild TestMemoryCycle TestWeaken TestDeep TestWarn TestException TestDifferences ];
1839     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 ];
1840     meta = {
1841       description = "Perl modules for biology";
1842       homepage = "https://metacpan.org/release/BioPerl";
1843       license = with lib.licenses; [ artistic1 gpl1Plus ];
1844     };
1845   };
1847   BitVector = buildPerlPackage {
1848     pname = "Bit-Vector";
1849     version = "7.4";
1850     src = fetchurl {
1851       url = "mirror://cpan/authors/id/S/ST/STBEY/Bit-Vector-7.4.tar.gz";
1852       hash = "sha256-PG2qZx/s+8Nfkqk4W1Y9ZfUN/Gvci0gF+e9GwNA1qSY=";
1853     };
1854     propagatedBuildInputs = [ CarpClan ];
1855     meta = {
1856       description = "Efficient bit vector, set of integers and 'big int' math library";
1857       license = with lib.licenses; [ artistic1 gpl1Plus lgpl2Only ];
1858     };
1859   };
1861   BKeywords = buildPerlPackage {
1862     pname = "B-Keywords";
1863     version = "1.27";
1864     src = fetchurl {
1865       url = "mirror://cpan/authors/id/R/RU/RURBAN/B-Keywords-1.27.tar.gz";
1866       hash = "sha256-7xC5CF5nTqpBfMt9aS+2zZj3u2feKhJ+ujRX2K5YfP8=";
1867     };
1868     meta = {
1869       description = "Lists of reserved barewords and symbol names";
1870       license = with lib.licenses; [ artistic1 gpl2Only ];
1871     };
1872   };
1874   boolean = buildPerlPackage {
1875     pname = "boolean";
1876     version = "0.46";
1877     src = fetchurl {
1878       url = "mirror://cpan/authors/id/I/IN/INGY/boolean-0.46.tar.gz";
1879       hash = "sha256-lcCICFw+g79oD+bOFtgmTsJjEEkPfRaA5BbqehGPFWo=";
1880     };
1881     meta = {
1882       description = "Boolean support for Perl";
1883       homepage = "https://github.com/ingydotnet/boolean-pm";
1884       license = with lib.licenses; [ artistic1 gpl1Plus ];
1885     };
1886   };
1888   BoostGeometryUtils = buildPerlModule {
1889     pname = "Boost-Geometry-Utils";
1890     version = "0.15";
1891     src = fetchurl {
1892       url = "mirror://cpan/authors/id/A/AA/AAR/Boost-Geometry-Utils-0.15.tar.gz";
1893       hash = "sha256-AFTdP1c70/b0e3PugdHoRYQvugSq21KICqUnAcaH0co=";
1894     };
1895     patches = [
1896       # Fix out of memory error on Perl 5.19.4 and later.
1897       ../development/perl-modules/boost-geometry-utils-fix-oom.patch
1898     ];
1899     perlPreHook = "export LD=$CC";
1900     buildInputs = [ ExtUtilsCppGuess ExtUtilsTypemapsDefault ExtUtilsXSpp ModuleBuildWithXSpp ];
1901     meta = {
1902       description = "Bindings for the Boost Geometry library";
1903       license = with lib.licenses; [ artistic1 gpl1Plus ];
1904     };
1905   };
1907   BotTraining = buildPerlPackage {
1908     pname = "Bot-Training";
1909     version = "0.07";
1910     src = fetchurl {
1911       url = "mirror://cpan/authors/id/A/AV/AVAR/Bot-Training-0.07.tar.gz";
1912       hash = "sha256-7ma7+BTw3D0egGgOBQ+tELHgGP7Xkp9lPtQOCIsqopU=";
1913     };
1914     buildInputs = [ FileSlurp ];
1915     propagatedBuildInputs = [ ClassLoad DirSelf FileShareDir ModulePluggable MooseXGetopt namespaceclean  ];
1916     meta = {
1917       description = "Plain text training material for bots like Hailo and AI::MegaHAL";
1918       homepage = "https://metacpan.org/release/Bot-Training";
1919       license = with lib.licenses; [ artistic1 gpl1Plus ];
1920       mainProgram = "bot-training";
1921     };
1922   };
1924   BotTrainingMegaHAL = buildPerlPackage {
1925     pname = "Bot-Training-MegaHAL";
1926     version = "0.03";
1927     src = fetchurl {
1928       url = "mirror://cpan/authors/id/A/AV/AVAR/Bot-Training-MegaHAL-0.03.tar.gz";
1929       hash = "sha256-lWByr/BPIW5cO4GWlltdgNTUdpXXfsqr1W5Z1l8iv2A=";
1930     };
1931     buildInputs = [ FileShareDirInstall ];
1932     propagatedBuildInputs = [ BotTraining ];
1933     meta = {
1934       description = "Provide megahal.trn via Bot::Training";
1935       homepage = "https://metacpan.org/release/Bot-Training-MegaHAL";
1936       license = with lib.licenses; [ artistic1 gpl1Plus ];
1937     };
1938   };
1940   BotTrainingStarCraft = buildPerlPackage {
1941     pname = "Bot-Training-StarCraft";
1942     version = "0.03";
1943     src = fetchurl {
1944       url = "mirror://cpan/authors/id/A/AV/AVAR/Bot-Training-StarCraft-0.03.tar.gz";
1945       hash = "sha256-58640Bxi5zLdib/l9Ng+eBwc2RJULRd8Iudht8hhTV4=";
1946     };
1947     buildInputs = [ FileShareDirInstall ];
1948     propagatedBuildInputs = [ BotTraining ];
1949     meta = {
1950       description = "Provide starcraft.trn via Bot::Training";
1951       homepage = "https://metacpan.org/release/Bot-Training-StarCraft";
1952       license = with lib.licenses; [ artistic1 gpl1Plus ];
1953     };
1954   };
1956   BSDResource = buildPerlPackage {
1957     pname = "BSD-Resource";
1958     version = "1.2911";
1959     src = fetchurl {
1960       url = "mirror://cpan/authors/id/J/JH/JHI/BSD-Resource-1.2911.tar.gz";
1961       hash = "sha256-nRz7oGPMGPckJ6IkUfeQiDa3MxrIeF2+B1U8WwQ6DD0=";
1962     };
1963     meta = {
1964       description = "BSD process resource limit and priority functions";
1965       license = with lib.licenses; [ artistic2 ];
1966       maintainers = teams.deshaw.members;
1967     };
1968   };
1970   BSON = buildPerlPackage {
1971     pname = "BSON";
1972     version = "1.12.2";
1973     src = fetchurl {
1974       url = "mirror://cpan/authors/id/M/MO/MONGODB/BSON-v1.12.2.tar.gz";
1975       hash = "sha256-9GEsDDVDEHQbmattJkUSJoIxUMonEJsbORIy1c/dpts=";
1976     };
1977     buildInputs = [ JSONMaybeXS PathTiny TestDeep TestFatal ];
1978     propagatedBuildInputs = [ CryptURandom Moo TieIxHash boolean namespaceclean ];
1979     meta = {
1980       description = "BSON serialization and deserialization (EOL)";
1981       homepage = "https://github.com/mongodb-labs/mongo-perl-bson";
1982       license = with lib.licenses; [ asl20 ];
1983     };
1984   };
1986   BSONXS = buildPerlPackage {
1987     pname = "BSON-XS";
1988     version = "0.8.4";
1989     src = fetchurl {
1990       url = "mirror://cpan/authors/id/M/MO/MONGODB/BSON-XS-v0.8.4.tar.gz";
1991       hash = "sha256-KPfTOP14tvnJpggL6d4/XLI9iIuW6/b8v6zp8pZq6/k=";
1992     };
1993     buildInputs = [ ConfigAutoConf JSONMaybeXS PathTiny TestDeep TestFatal TieIxHash ];
1994     propagatedBuildInputs = [ BSON boolean JSONXS JSONPP CpanelJSONXS ];
1995     meta = {
1996       description = "XS implementation of MongoDB's BSON serialization (EOL)";
1997       homepage = "https://github.com/mongodb-labs/mongo-perl-bson-xs";
1998       license = with lib.licenses; [ asl20 ];
1999       platforms = lib.platforms.linux; # configure phase fails with "ld: unknown option: -mmacosx-version-min=10.12"
2000     };
2001   };
2003   BUtils = buildPerlPackage {
2004     pname = "B-Utils";
2005     version = "0.27";
2006     src = fetchurl {
2007       url = "mirror://cpan/authors/id/E/ET/ETHER/B-Utils-0.27.tar.gz";
2008       hash = "sha256-+X9T9qMFAQmqQU/usYTK0QGBLUF2DpUrXYSZP2aF/+o=";
2009     };
2010     propagatedBuildInputs = [ TaskWeaken ];
2011     buildInputs = [ ExtUtilsDepends ];
2012     meta = {
2013       description = "Helper functions for op tree manipulation";
2014       homepage = "https://search.cpan.org/dist/B-Utils";
2015       license = with lib.licenses; [ artistic1 gpl1Plus ];
2016     };
2017   };
2019   BusinessHours = buildPerlPackage {
2020     pname = "Business-Hours";
2021     version = "0.13";
2022     src = fetchurl {
2023       url = "mirror://cpan/authors/id/B/BP/BPS/Business-Hours-0.13.tar.gz";
2024       hash = "sha256-qAf+P/u4T/pTlnEazOdXZPOknyQjZGc1DHHIp3pcPsI=";
2025     };
2026     propagatedBuildInputs = [ SetIntSpan ];
2027     meta = {
2028       description = "Calculate business hours in a time period";
2029       license = with lib.licenses; [ artistic1 gpl1Plus ];
2030     };
2031   };
2033   BusinessISBN = buildPerlPackage {
2034     pname = "Business-ISBN";
2035     version = "3.008";
2036     src = fetchurl {
2037       url = "mirror://cpan/authors/id/B/BD/BDFOY/Business-ISBN-3.008.tar.gz";
2038       hash = "sha256-GcSh1NmaDddpWpAZKxNASg4+7r7fy+l6AgLjayOMDmk=";
2039     };
2040     propagatedBuildInputs = [ BusinessISBNData ];
2041     meta = {
2042       description = "Work with International Standard Book Numbers";
2043       homepage = "https://github.com/briandfoy/business-isbn";
2044       license = with lib.licenses; [ artistic2 ];
2045     };
2046   };
2048   BusinessISBNData = buildPerlPackage {
2049     pname = "Business-ISBN-Data";
2050     version = "20231006.001";
2051     src = fetchurl {
2052       url = "mirror://cpan/authors/id/B/BD/BDFOY/Business-ISBN-Data-20231006.001.tar.gz";
2053       hash = "sha256-KhazbjIzXOjI337m8ig2LzSuc8T8wSNQCVCiyMd/F0g=";
2054     };
2055     meta = {
2056       description = "Data pack for Business::ISBN";
2057       homepage = "https://github.com/briandfoy/business-isbn-data";
2058       license = with lib.licenses; [ artistic2 ];
2059     };
2060   };
2062   BusinessISMN = buildPerlPackage {
2063     pname = "Business-ISMN";
2064     version = "1.203";
2065     src = fetchurl {
2066       url = "mirror://cpan/authors/id/B/BD/BDFOY/Business-ISMN-1.203.tar.gz";
2067       hash = "sha256-T1Ou2rLmh9Th9yhW6vwiFZOQYhEj2q955FBqiX4pPog=";
2068     };
2069     propagatedBuildInputs = [ TieCycle ];
2070     meta = {
2071       description = "Work with International Standard Music Numbers";
2072       homepage = "https://github.com/briandfoy/business-ismn";
2073       license = with lib.licenses; [ artistic2 ];
2074     };
2075   };
2077   BusinessISSN = buildPerlPackage {
2078     pname = "Business-ISSN";
2079     version = "1.005";
2080     src = fetchurl {
2081       url = "mirror://cpan/authors/id/B/BD/BDFOY/Business-ISSN-1.005.tar.gz";
2082       hash = "sha256-OwmwJn8KZmD7krb1DEx3lu9qJjtirTu+qgcYmgx8ObM=";
2083     };
2084     meta = {
2085       description = "Perl extension for International Standard Serial Numbers";
2086       homepage = "https://github.com/briandfoy/business-issn";
2087       license = with lib.licenses; [ artistic2 ];
2088     };
2089   };
2091   BytesRandomSecure = buildPerlPackage {
2092     pname = "Bytes-Random-Secure";
2093     version = "0.29";
2094     src = fetchurl {
2095       url = "mirror://cpan/authors/id/D/DA/DAVIDO/Bytes-Random-Secure-0.29.tar.gz";
2096       hash = "sha256-U7vTOeahHvygfGGaYVx8GIpouyvoSaHLfvw91Nmuha4=";
2097     };
2098     propagatedBuildInputs = [ CryptRandomSeed MathRandomISAAC ];
2099     meta = {
2100       description = "Perl extension to generate cryptographically-secure random bytes";
2101       license = with lib.licenses; [ artistic1 gpl1Plus ];
2102       maintainers = [ maintainers.sgo ];
2103     };
2104   };
2106   BytesRandomSecureTiny = buildPerlPackage {
2107     pname = "Bytes-Random-Secure-Tiny";
2108     version = "1.011";
2109     src = fetchurl {
2110       url = "mirror://cpan/authors/id/D/DA/DAVIDO/Bytes-Random-Secure-Tiny-1.011.tar.gz";
2111       hash = "sha256-A9lntfgoRpCRN9WrmYSsVwrBCkQB4MYC89IgjEZayYI=";
2112     };
2113     meta = {
2114       description = "Tiny Perl extension to generate cryptographically-secure random bytes";
2115       license = with lib.licenses; [ artistic1 gpl1Plus ];
2116       maintainers = [ maintainers.sgo ];
2117     };
2118   };
2120   CacheCache = buildPerlPackage {
2121     pname = "Cache-Cache";
2122     version = "1.08";
2123     src = fetchurl {
2124       url = "mirror://cpan/authors/id/R/RJ/RJBS/Cache-Cache-1.08.tar.gz";
2125       hash = "sha256-0sf9Xbpd0BC32JI1FokLtsz2tfGIzLafNcsP1sAx0eg=";
2126     };
2127     propagatedBuildInputs = [ DigestSHA1 Error IPCShareLite ];
2128     doCheck = false; # randomly fails
2129     meta = {
2130       description = "Cache Interface";
2131       license = with lib.licenses; [ artistic1 gpl1Plus ];
2132     };
2133   };
2135   CacheFastMmap = buildPerlPackage {
2136     pname = "Cache-FastMmap";
2137     version = "1.57";
2138     src = fetchurl {
2139       url = "mirror://cpan/authors/id/R/RO/ROBM/Cache-FastMmap-1.57.tar.gz";
2140       hash = "sha256-4Es6KNmJ7bj7lur6zcK4f57MuE8EfrLifLJqp9CMx7g=";
2141     };
2142     buildInputs = [ TestDeep ];
2143     meta = {
2144       description = "Uses an mmap'ed file to act as a shared memory interprocess cache";
2145       license = with lib.licenses; [ artistic1 gpl1Plus ];
2146     };
2147   };
2149   CacheKyotoTycoon = buildPerlModule {
2150     pname = "Cache-KyotoTycoon";
2151     version = "0.16";
2152     src = fetchurl {
2153       url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/Cache-KyotoTycoon-0.16.tar.gz";
2154       hash = "sha256-zLBII1iUxItpegDleMtFC05evBQYpVSnz6hjJwezlHw=";
2155     };
2156     propagatedBuildInputs = [ Furl URI ];
2157     buildInputs = [ FileWhich TestRequires TestSharedFork TestTCP ];
2158     meta = {
2159       description = "KyotoTycoon client library";
2160       homepage = "https://github.com/tokuhirom/Cache-KyotoTycoon";
2161       license = with lib.licenses; [ artistic1 gpl1Plus ];
2162     };
2163   };
2165   CacheMemcached = buildPerlPackage {
2166     pname = "Cache-Memcached";
2167     version = "1.30";
2168     src = fetchurl {
2169       url =
2170       "mirror://cpan/authors/id/D/DO/DORMANDO/Cache-Memcached-1.30.tar.gz";
2171       hash = "sha256-MbPFHsDqrwMALizI49fVy+YZGc/a2mHACOuYU6ysQqk=";
2172     };
2173     propagatedBuildInputs = [ StringCRC32 ];
2174     meta = {
2175       description = "Client library for memcached (memory cache daemon)";
2176       license = with lib.licenses; [ artistic1 gpl1Plus ];
2177     };
2178   };
2180   CacheMemcachedFast = buildPerlPackage {
2181     pname = "Cache-Memcached-Fast";
2182     version = "0.28";
2183     src = fetchurl {
2184       url = "mirror://cpan/authors/id/R/RA/RAZ/Cache-Memcached-Fast-0.28.tar.gz";
2185       hash = "sha256-fEJMJTtl/2LPFXe7QYgCGSoYgF6jH6/Ap65YnkRsidI=";
2186     };
2187     buildInputs = [ Test2Suite ];
2188     meta = {
2189       description = "Perl client for memcached, in C language";
2190       license = with lib.licenses; [ artistic1 gpl1Plus ];
2191     };
2192   };
2194   CacheMemory = buildPerlModule {
2195     pname = "Cache";
2196     version = "2.11";
2197     src = fetchurl {
2198       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Cache-2.11.tar.gz";
2199       hash = "sha256-4dLYlneYEWarxbtuXsxkcfAB8T61bVvpVE2AR9wIpZI=";
2200     };
2201     propagatedBuildInputs = [ DBFile FileNFSLock HeapFibonacci IOString TimeDate ];
2202     doCheck = false; # can time out
2203     meta = {
2204       description = "Memory based implementation of the Cache interface";
2205       license = with lib.licenses; [ artistic1 gpl1Plus ];
2206     };
2207   };
2209   CacheSimpleTimedExpiry = buildPerlPackage {
2210     pname = "Cache-Simple-TimedExpiry";
2211     version = "0.27";
2212     src = fetchurl {
2213       url = "mirror://cpan/authors/id/J/JE/JESSE/Cache-Simple-TimedExpiry-0.27.tar.gz";
2214       hash = "sha256-Tni35N0jG1VxpIzQ7htjlT9eNHkMnQIOFZWnx9Crvkk=";
2215     };
2216     meta = {
2217       description = "Lightweight cache with timed expiration";
2218       license = with lib.licenses; [ artistic1 gpl1Plus ];
2219     };
2220   };
2222   Cairo = buildPerlPackage {
2223     pname = "Cairo";
2224     version = "1.109";
2225     src = fetchurl {
2226       url = "mirror://cpan/authors/id/X/XA/XAOC/Cairo-1.109.tar.gz";
2227       hash = "sha256-ghlzbkAcIxHaX1FXdd5D/YfmOEtQTaNqGS8rIXZDB38=";
2228     };
2229     buildInputs = [ pkgs.cairo ];
2230     propagatedBuildInputs = [ ExtUtilsDepends ExtUtilsPkgConfig ];
2231     meta = {
2232       description = "Perl interface to the cairo 2d vector graphics library";
2233       homepage = "https://gtk2-perl.sourceforge.net";
2234       license = with lib.licenses; [ lgpl21Only ];
2235     };
2236   };
2238   CairoGObject = buildPerlPackage {
2239     pname = "Cairo-GObject";
2240     version = "1.005";
2241     src = fetchurl {
2242       url = "mirror://cpan/authors/id/X/XA/XAOC/Cairo-GObject-1.005.tar.gz";
2243       hash = "sha256-jYlkRNceHQvKPSTjHl2CvQ2VQqrtkdH7fqs2e85nXFA=";
2244     };
2245     buildInputs = [ pkgs.cairo ];
2246     propagatedBuildInputs = [ Cairo Glib ];
2247     meta = {
2248       description = "Integrate Cairo into the Glib type system";
2249       homepage = "https://gtk2-perl.sourceforge.net";
2250       license = with lib.licenses; [ lgpl21Only ];
2251     };
2252   };
2254   CallContext = buildPerlPackage {
2255     pname = "Call-Context";
2256     version = "0.03";
2257     src = fetchurl {
2258       url = "mirror://cpan/authors/id/F/FE/FELIPE/Call-Context-0.03.tar.gz";
2259       hash = "sha256-Dua/RrxydVrbemsI550S4gfeX3gJcHs8NTtYyy8LWiY=";
2260     };
2261     meta = {
2262       description = "Sanity-check calling context";
2263       license = with lib.licenses; [ artistic1 gpl1Plus ];
2264       maintainers = [ maintainers.sgo ];
2265     };
2266   };
2268   cam_pdf = buildPerlModule {
2269     pname = "CAM-PDF";
2270     version = "1.60";
2271     src = fetchurl {
2272       url = "mirror://cpan/authors/id/C/CD/CDOLAN/CAM-PDF-1.60.tar.gz";
2273       hash = "sha256-52r8fzimJJJKd8XJiMNsnjiL+ncW51zTl/744bQuu4k=";
2274     };
2275     propagatedBuildInputs = [ CryptRC4 TextPDF ];
2276     meta = {
2277       description = "PDF manipulation library";
2278       license = with lib.licenses; [ artistic1 gpl1Plus ];
2279     };
2280   };
2282   capitalization = buildPerlPackage {
2283     pname = "capitalization";
2284     version = "0.03";
2285     src = fetchurl {
2286       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/capitalization-0.03.tar.gz";
2287       hash = "sha256-8TUW1XKUH2ihwj8uDkn1vwmyL5B+uSkrcrr/5ie77jw=";
2288     };
2289     propagatedBuildInputs = [ DevelSymdump ];
2290     meta = {
2291       description = "No capitalization on method names";
2292       license = with lib.licenses; [ artistic1 gpl1Plus ];
2293     };
2294   };
2296   CanaryStability = buildPerlPackage {
2297     pname = "Canary-Stability";
2298     version = "2013";
2299     src = fetchurl {
2300       url = "mirror://cpan/authors/id/M/ML/MLEHMANN/Canary-Stability-2013.tar.gz";
2301       hash = "sha256-pckcYs+V/Lho9g6rXIMpCPaQUiEBP+orzj/1cEbXtuo=";
2302     };
2303     meta = {
2304       description = "Canary to check perl compatibility for schmorp's modules";
2305       license = with lib.licenses; [ gpl1Plus ];
2306     };
2307   };
2309   CaptchaReCAPTCHA = buildPerlPackage {
2310     pname = "Captcha-reCaptcha";
2311     version = "0.99";
2312     src = fetchurl {
2313       url = "mirror://cpan/authors/id/S/SU/SUNNYP/Captcha-reCaptcha-0.99.tar.gz";
2314       hash = "sha256-uJI1dmARZu3j9/Ly/1X/bjw7znDmnzZaUe076MykQ5I=";
2315     };
2316     propagatedBuildInputs = [ HTMLTiny LWP ];
2317     meta = {
2318       description = "Perl implementation of the reCAPTCHA API";
2319       license = with lib.licenses; [ artistic1 gpl1Plus ];
2320     };
2321   };
2323   CaptureTiny = buildPerlPackage {
2324     pname = "Capture-Tiny";
2325     version = "0.48";
2326     src = fetchurl {
2327       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Capture-Tiny-0.48.tar.gz";
2328       hash = "sha256-bCMRPoe605MwjJCiBwE+UF9lknRzZjjYx5usnGfMPhk=";
2329     };
2330     meta = {
2331       description = "Capture STDOUT and STDERR from Perl, XS or external programs";
2332       homepage = "https://github.com/dagolden/Capture-Tiny";
2333       license = with lib.licenses; [ asl20 ];
2334     };
2335   };
2337   CarpAlways = buildPerlPackage {
2338     pname = "Carp-Always";
2339     version = "0.16";
2340     src = fetchurl {
2341       url = "mirror://cpan/authors/id/F/FE/FERREIRA/Carp-Always-0.16.tar.gz";
2342       hash = "sha256-mKoRSSFxwBb7CCdYGrH6XtAbHpnGNXSJ3fOoJzFYZvE=";
2343     };
2344     buildInputs = [ TestBase ];
2345     meta = {
2346       description = "Warns and dies noisily with stack backtraces";
2347       license = with lib.licenses; [ artistic1 gpl1Plus ];
2348     };
2349   };
2351   CarpAssert = buildPerlPackage {
2352     pname = "Carp-Assert";
2353     version = "0.22";
2354     src = fetchurl {
2355       url = "mirror://cpan/authors/id/Y/YV/YVES/Carp-Assert-0.22.tar.gz";
2356       hash = "sha256-gH6pfGvtdqwuSWnvun2uSP7+ufKHl/ESZxs6yKSTVfc=";
2357     };
2358     meta = {
2359       description = "Executable comments";
2360       license = with lib.licenses; [ artistic1 gpl1Plus ];
2361     };
2362   };
2364   CarpAssertMore = buildPerlPackage {
2365     pname = "Carp-Assert-More";
2366     version = "2.3.0";
2367     src = fetchurl {
2368       url = "mirror://cpan/authors/id/P/PE/PETDANCE/Carp-Assert-More-2.3.0.tar.gz";
2369       hash = "sha256-/2nqCb2maiAPygiK3ZHFww5lcqt7ujF6f58zxRKzzqc=";
2370     };
2371     propagatedBuildInputs = [ CarpAssert ];
2372     buildInputs = [ TestException ];
2373     meta = {
2374       description = "Convenience assertions for common situations";
2375       license = with lib.licenses; [ artistic2 ];
2376     };
2377   };
2379   CarpClan = buildPerlPackage {
2380     pname = "Carp-Clan";
2381     version = "6.08";
2382     src = fetchurl {
2383       url = "mirror://cpan/authors/id/E/ET/ETHER/Carp-Clan-6.08.tar.gz";
2384       hash = "sha256-x1+S40QizFplqwXRVYQrcBRSQ06a77ZJ1uIonEfvZwg=";
2385     };
2386     meta = {
2387       description = "Report errors from perspective of caller of a \"clan\" of modules";
2388       homepage = "https://github.com/karenetheridge/Carp-Clan";
2389       license = with lib.licenses; [ artistic1 gpl1Plus ];
2390     };
2391   };
2393   Carton = buildPerlPackage {
2394     pname = "Carton";
2395     version = "1.0.35";
2396     src = fetchurl {
2397       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Carton-v1.0.35.tar.gz";
2398       hash = "sha256-nEVYypfNCLaf37UrKMPdwgQ+9S8GJ7kOU9BaQIc0QXU=";
2399     };
2400     propagatedBuildInputs = [ MenloLegacy PathTiny TryTiny ];
2401     meta = {
2402       description = "Perl module dependency manager (aka Bundler for Perl)";
2403       homepage = "https://github.com/perl-carton/carton";
2404       license = with lib.licenses; [ artistic1 gpl1Plus ];
2405       mainProgram = "carton";
2406     };
2407   };
2409   CatalystActionRenderView = buildPerlPackage {
2410     pname = "Catalyst-Action-RenderView";
2411     version = "0.16";
2412     src = fetchurl {
2413       url = "mirror://cpan/authors/id/B/BO/BOBTFISH/Catalyst-Action-RenderView-0.16.tar.gz";
2414       hash = "sha256-hWUgOVCgV9Q+zWTpWTcV1WXC+9iwLJH0PFOyERrNOUg=";
2415     };
2416     propagatedBuildInputs = [ CatalystRuntime DataVisitor ];
2417     buildInputs = [ HTTPRequestAsCGI ];
2418     meta = {
2419       description = "Sensible default end action";
2420       license = with lib.licenses; [ artistic1 gpl1Plus ];
2421     };
2422   };
2424   CatalystActionREST = buildPerlPackage {
2425     pname = "Catalyst-Action-REST";
2426     version = "1.21";
2427     src = fetchurl {
2428       url = "mirror://cpan/authors/id/J/JJ/JJNAPIORK/Catalyst-Action-REST-1.21.tar.gz";
2429       hash = "sha256-zPgbulIA06CtaQH5I68XOj1EFmGK6gimk4uq/970yyA=";
2430     };
2431     buildInputs = [ TestRequires ];
2432     propagatedBuildInputs = [ CatalystRuntime URIFind ];
2433     meta = {
2434       description = "Automated REST Method Dispatching";
2435       license = with lib.licenses; [ artistic1 gpl1Plus ];
2436     };
2437   };
2439   CatalystAuthenticationCredentialHTTP = buildPerlModule {
2440     pname = "Catalyst-Authentication-Credential-HTTP";
2441     version = "1.018";
2442     src = fetchurl {
2443       url = "mirror://cpan/authors/id/E/ET/ETHER/Catalyst-Authentication-Credential-HTTP-1.018.tar.gz";
2444       hash = "sha256-b6GBbe5kSw216gzBXF5xHcLO0gg2JavOcJZSHx1lpSk=";
2445     };
2446     buildInputs = [ ModuleBuildTiny TestException TestMockObject TestNeeds ];
2447     propagatedBuildInputs = [ CatalystPluginAuthentication ClassAccessor DataUUID StringEscape ];
2448     meta = {
2449       description = "HTTP Basic and Digest authentication for Catalyst";
2450       homepage = "https://github.com/perl-catalyst/Catalyst-Authentication-Credential-HTTP";
2451       license = with lib.licenses; [ artistic1 gpl1Plus ];
2452     };
2453   };
2455   CatalystAuthenticationStoreHtpasswd = buildPerlModule {
2456     pname = "Catalyst-Authentication-Store-Htpasswd";
2457     version = "1.006";
2458     src = fetchurl {
2459       url = "mirror://cpan/authors/id/E/ET/ETHER/Catalyst-Authentication-Store-Htpasswd-1.006.tar.gz";
2460       hash = "sha256-x/2FYnXo3hjAAWHXNJTsZr0N3QoZ27dMQtVXHJ7ggE8=";
2461     };
2462     buildInputs = [ ModuleBuildTiny TestLongString TestSimple13 TestWWWMechanize TestWWWMechanizeCatalyst ];
2463     propagatedBuildInputs = [ AuthenHtpasswd CatalystPluginAuthentication ];
2464     patches = [
2465       ../development/perl-modules/CatalystAuthenticationStoreHtpasswd-test-replace-DES-hash-with-bcrypt.patch
2466     ];
2467     meta = {
2468       description = "Authen::Htpasswd based user storage/authentication";
2469       license = with lib.licenses; [ artistic1 gpl1Plus ];
2470     };
2471   };
2473   CatalystAuthenticationStoreDBIxClass = buildPerlPackage {
2474     pname = "Catalyst-Authentication-Store-DBIx-Class";
2475     version = "0.1506";
2476     src = fetchurl {
2477       url = "mirror://cpan/authors/id/I/IL/ILMARI/Catalyst-Authentication-Store-DBIx-Class-0.1506.tar.gz";
2478       hash = "sha256-fFefJZUoXmTD3LVUAzSqmgAkQ+HUyMg6tEk7kMxRskQ=";
2479     };
2480     propagatedBuildInputs = [ CatalystModelDBICSchema CatalystPluginAuthentication ];
2481     buildInputs = [ TestWarn ];
2482     meta = {
2483       description = "Extensible and flexible object <-> relational mapper";
2484       license = with lib.licenses; [ artistic1 gpl1Plus ];
2485     };
2486   };
2488   CatalystAuthenticationStoreLDAP = buildPerlPackage {
2489     pname = "Catalyst-Authentication-Store-LDAP";
2490     version = "1.017";
2491     src = fetchurl {
2492       url = "mirror://cpan/authors/id/I/IL/ILMARI/Catalyst-Authentication-Store-LDAP-1.017.tar.gz";
2493       hash = "sha256-keW4vd/XOGYqNh6/6nPYQrO6Me1wne2xqE7DRB3O7sU=";
2494     };
2495     propagatedBuildInputs = [ perlldap CatalystPluginAuthentication ClassAccessor ];
2496     buildInputs = [ TestMockObject TestException NetLDAPServerTest ];
2497     doCheck = !stdenv.hostPlatform.isDarwin; # t/02-realms_api.t and t/50.auth.case.sensitivity.t
2498     meta = {
2499       description = "Authenticate Users against LDAP Directories";
2500       license = with lib.licenses; [ artistic1 gpl1Plus ];
2501     };
2502   };
2504   CatalystComponentInstancePerContext = buildPerlPackage {
2505     pname = "Catalyst-Component-InstancePerContext";
2506     version = "0.001001";
2507     src = fetchurl {
2508       url = "mirror://cpan/authors/id/G/GR/GRODITI/Catalyst-Component-InstancePerContext-0.001001.tar.gz";
2509       hash = "sha256-f2P5MOHmE/FZVcnm1zhzZ1xQwKO8KmGgNHMzYe0m0nE=";
2510     };
2511     propagatedBuildInputs = [ CatalystRuntime ];
2512     meta = {
2513       description = "Moose role to create only one instance of component per context";
2514       license = with lib.licenses; [ artistic1 gpl1Plus ];
2515     };
2516   };
2518   CatalystControllerHTMLFormFu = buildPerlPackage {
2519     pname = "Catalyst-Controller-HTML-FormFu";
2520     version = "2.04";
2521     src = fetchurl {
2522       url = "mirror://cpan/authors/id/N/NI/NIGELM/Catalyst-Controller-HTML-FormFu-2.04.tar.gz";
2523       hash = "sha256-8T+5s7OwCzXwarwxYURhyNc0b74H+1accejVhuXrXdw=";
2524     };
2525     buildInputs = [ CatalystActionRenderView CatalystPluginSession CatalystPluginSessionStateCookie CatalystPluginSessionStoreFile CatalystViewTT CodeTidyAllPluginPerlAlignMooseAttributes PodCoverageTrustPod PodTidy TemplateToolkit TestCPANMeta TestDifferences TestEOL TestKwalitee TestLongString TestMemoryCycle TestNoTabs TestPAUSEPermissions TestPod TestPodCoverage TestWWWMechanize TestWWWMechanizeCatalyst ];
2526     propagatedBuildInputs = [ CatalystComponentInstancePerContext HTMLFormFuMultiForm RegexpAssemble ];
2527     doCheck = false; /* fails with 'open3: exec of .. perl .. failed: Argument list too long at .../TAP/Parser/Iterator/Process.pm line 165.' */
2528     meta = {
2529       description = "HTML Form Creation, Rendering and Validation Framework";
2530       homepage = "https://github.com/FormFu/HTML-FormFu";
2531       license = with lib.licenses; [ artistic1 gpl1Plus ];
2532     };
2533   };
2535   CatalystControllerPOD = buildPerlModule {
2536     pname = "Catalyst-Controller-POD";
2537     version = "1.0.0";
2538     src = fetchurl {
2539       url = "mirror://cpan/authors/id/P/PE/PERLER/Catalyst-Controller-POD-1.0.0.tar.gz";
2540       hash = "sha256-7ipLs+14uqFGQzVAjyhDRba6DvZXate/vXtlbHiKOfk=";
2541     };
2542     buildInputs = [ ModuleInstall TestLongString TestWWWMechanize TestWWWMechanizeCatalyst ];
2543     propagatedBuildInputs = [ CatalystPluginStaticSimple ClassAccessor FileSlurp JSONXS ListMoreUtils PodPOMViewTOC XMLSimple ];
2544     meta = {
2545       description = "Serves PODs right from your Catalyst application";
2546       homepage = "https://search.cpan.org/dist/Catalyst-Controller-POD";
2547       license = with lib.licenses; [ bsd3 ];
2548     };
2549   };
2551   CatalystDevel = buildPerlPackage {
2552     pname = "Catalyst-Devel";
2553     version = "1.42";
2554     src = fetchurl {
2555       url = "mirror://cpan/authors/id/H/HA/HAARG/Catalyst-Devel-1.42.tar.gz";
2556       hash = "sha256-fsbwtsq1uMCX5Hdp/HOk1MAVpYxB/bQPwk3z7nfEir0=";
2557     };
2558     buildInputs = [ FileShareDirInstall TestFatal ];
2559     propagatedBuildInputs = [ CatalystActionRenderView CatalystPluginConfigLoader CatalystPluginStaticSimple ConfigGeneral FileChangeNotify FileCopyRecursive ModuleInstall TemplateToolkit ];
2560     meta = {
2561       description = "Catalyst Development Tools";
2562       homepage = "http://dev.catalyst.perl.org";
2563       license = with lib.licenses; [ artistic1 gpl1Plus ];
2564     };
2565   };
2567   CatalystDispatchTypeRegex = buildPerlModule {
2568     pname = "Catalyst-DispatchType-Regex";
2569     version = "5.90035";
2570     src = fetchurl {
2571       url = "mirror://cpan/authors/id/M/MG/MGRIMES/Catalyst-DispatchType-Regex-5.90035.tar.gz";
2572       hash = "sha256-AC3Pnv7HxYiSoYP5CAFTnQzxPsOvzPjTrRkhfCsNWBo=";
2573     };
2574     propagatedBuildInputs = [ CatalystRuntime ];
2575     meta = {
2576       description = "Regex DispatchType";
2577       license = with lib.licenses; [ artistic1 gpl1Plus ];
2578     };
2579   };
2581   CatalystManual = buildPerlPackage {
2582     pname = "Catalyst-Manual";
2583     version = "5.9011";
2584     src = fetchurl {
2585       url = "mirror://cpan/authors/id/H/HA/HAARG/Catalyst-Manual-5.9011.tar.gz";
2586       hash = "sha256-s54zllkDwAWD4BgOPdUopUkg9SB83wUmBcoTgoz6wTw=";
2587     };
2588     meta = {
2589       description = "Catalyst developer's manual";
2590       license = with lib.licenses; [ artistic1 gpl1Plus ];
2591     };
2592   };
2594   CatalystModelDBICSchema = buildPerlPackage {
2595     pname = "Catalyst-Model-DBIC-Schema";
2596     version = "0.66";
2597     src = fetchurl {
2598       url = "mirror://cpan/authors/id/H/HA/HAARG/Catalyst-Model-DBIC-Schema-0.66.tar.gz";
2599       hash = "sha256-GST0wA6PD/HF0a+hbv5PhW8cXnT+VW7Cxfj1v2OtA0g=";
2600     };
2601     buildInputs = [ DBDSQLite TestException TestRequires ];
2602     propagatedBuildInputs = [ CatalystComponentInstancePerContext CatalystXComponentTraits DBIxClassSchemaLoader MooseXMarkAsMethods MooseXNonMoose MooseXTypesLoadableClass TieIxHash ];
2603     meta = {
2604       description = "DBIx::Class::Schema Model Class";
2605       license = with lib.licenses; [ artistic1 gpl1Plus ];
2606     };
2607   };
2609   CatalystRuntime = buildPerlPackage {
2610     pname = "Catalyst-Runtime";
2611     version = "5.90131";
2612     src = fetchurl {
2613       url = "mirror://cpan/authors/id/J/JJ/JJNAPIORK/Catalyst-Runtime-5.90131.tar.gz";
2614       hash = "sha256-nWQe+s8PmTXm7LmPWjtHbJYbH4Gb0vjyOmR9HYZ+GEk=";
2615     };
2616     buildInputs = [ TestFatal TypeTiny ];
2617     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 ];
2618     meta = {
2619       description = "Catalyst Framework Runtime";
2620       homepage = "http://dev.catalyst.perl.org";
2621       license = with lib.licenses; [ artistic1 gpl1Plus ];
2622       mainProgram = "catalyst.pl";
2623     };
2624   };
2626   CatalystPluginAccessLog = buildPerlPackage {
2627     pname = "Catalyst-Plugin-AccessLog";
2628     version = "1.10";
2629     src = fetchurl {
2630       url = "mirror://cpan/authors/id/A/AR/ARODLAND/Catalyst-Plugin-AccessLog-1.10.tar.gz";
2631       hash = "sha256-hz245OcqmU4+F661PSuDfm1SS0uLDzU58mITXIjMISA=";
2632     };
2633     propagatedBuildInputs = [ CatalystRuntime DateTime ];
2634     meta = {
2635       description = "Request logging from within Catalyst";
2636       homepage = "https://metacpan.org/release/Catalyst-Plugin-AccessLog";
2637       license = with lib.licenses; [ artistic1 gpl1Plus ];
2638     };
2639   };
2641   CatalystPluginAuthentication = buildPerlPackage {
2642     pname = "Catalyst-Plugin-Authentication";
2643     version = "0.10023";
2644     src = fetchurl {
2645       url = "mirror://cpan/authors/id/B/BO/BOBTFISH/Catalyst-Plugin-Authentication-0.10023.tar.gz";
2646       hash = "sha256-NgOaq9rLB+Zoek16i/rHj+nQ+7BM2o1tlm1sHjJZ0Gw=";
2647     };
2648     buildInputs = [ TestException ];
2649     propagatedBuildInputs = [ CatalystPluginSession ];
2650     meta = {
2651       description = "Infrastructure plugin for the Catalyst authentication framework";
2652       license = with lib.licenses; [ artistic1 gpl1Plus ];
2653     };
2654   };
2656   CatalystPluginAuthorizationACL = buildPerlPackage {
2657     pname = "Catalyst-Plugin-Authorization-ACL";
2658     version = "0.16";
2659     src = fetchurl {
2660       url = "mirror://cpan/authors/id/R/RK/RKITOVER/Catalyst-Plugin-Authorization-ACL-0.16.tar.gz";
2661       hash = "sha256-KjfmU0gu/SyTuGxqg4lB4FbF+U3YbA8LiT1RkzMSg3w=";
2662     };
2663     propagatedBuildInputs = [ CatalystRuntime ClassThrowable ];
2664     buildInputs = [ CatalystPluginAuthentication CatalystPluginAuthorizationRoles CatalystPluginSession CatalystPluginSessionStateCookie TestWWWMechanizeCatalyst ];
2665     meta = {
2666       description = "ACL support for Catalyst applications";
2667       license = with lib.licenses; [ artistic1 gpl1Plus ];
2668     };
2669   };
2671   CatalystPluginAuthorizationRoles = buildPerlPackage {
2672     pname = "Catalyst-Plugin-Authorization-Roles";
2673     version = "0.09";
2674     src = fetchurl {
2675       url = "mirror://cpan/authors/id/B/BO/BOBTFISH/Catalyst-Plugin-Authorization-Roles-0.09.tar.gz";
2676       hash = "sha256-7kBE5eKg2UxOxRL61V7gyN4UTh47h4Ugf5YCXPmkA1E=";
2677     };
2678     buildInputs = [ TestException ];
2679     propagatedBuildInputs = [ CatalystPluginAuthentication SetObject UNIVERSALisa ];
2680     meta = {
2681       description = "Role based authorization for Catalyst based on Catalyst::Plugin::Authentication";
2682       license = with lib.licenses; [ artistic1 gpl1Plus ];
2683     };
2684   };
2686   CatalystPluginCache = buildPerlPackage {
2687     pname = "Catalyst-Plugin-Cache";
2688     version = "0.12";
2689     src = fetchurl {
2690       url = "mirror://cpan/authors/id/B/BO/BOBTFISH/Catalyst-Plugin-Cache-0.12.tar.gz";
2691       hash = "sha256-KV/tRJyTJLBleP1GjjOR4E+/ZK0kN2oARAjRvG9UQ+A=";
2692     };
2693     buildInputs = [ ClassAccessor TestDeep TestException ];
2694     propagatedBuildInputs = [ CatalystRuntime ];
2695     meta = {
2696       description = "Flexible caching support for Catalyst";
2697       license = with lib.licenses; [ artistic1 gpl1Plus ];
2698     };
2699   };
2701   CatalystPluginCacheHTTP = buildPerlPackage {
2702     pname = "Catalyst-Plugin-Cache-HTTP";
2703     version = "0.001000";
2704     src = fetchurl {
2705       url = "mirror://cpan/authors/id/G/GR/GRAF/Catalyst-Plugin-Cache-HTTP-0.001000.tar.gz";
2706       hash = "sha256-aq2nDrKfYd90xTj5KaEHD92TIMW278lNJkwzghe8sWw=";
2707     };
2708     buildInputs = [ CatalystRuntime TestLongString TestSimple13 TestWWWMechanize TestWWWMechanizeCatalyst ];
2709     propagatedBuildInputs = [ ClassAccessor HTTPMessage MROCompat ];
2710     meta = {
2711       description = "HTTP/1.1 cache validators for Catalyst";
2712       license = with lib.licenses; [ artistic1 gpl1Plus ];
2713     };
2714   };
2716   CatalystPluginCaptcha = buildPerlPackage {
2717     pname = "Catalyst-Plugin-Captcha";
2718     version = "0.04";
2719     src = fetchurl {
2720       url = "mirror://cpan/authors/id/D/DI/DIEGOK/Catalyst-Plugin-Captcha-0.04.tar.gz";
2721       hash = "sha256-Sj1ccgBiTT567ULQWnBnSSdGg+t7rSYN6Sx1W/aQnlI=";
2722     };
2723     propagatedBuildInputs = [ CatalystPluginSession GDSecurityImage ];
2724     meta = {
2725       description = "Create and validate Captcha for Catalyst";
2726       license = with lib.licenses; [ artistic1 gpl1Plus ];
2727     };
2728   };
2730   CatalystPluginConfigLoader = buildPerlPackage {
2731     pname = "Catalyst-Plugin-ConfigLoader";
2732     version = "0.35";
2733     src = fetchurl {
2734       url = "mirror://cpan/authors/id/H/HA/HAARG/Catalyst-Plugin-ConfigLoader-0.35.tar.gz";
2735       hash = "sha256-nippim8tBG4NxeV1EpKc1CPIB9Sja6Pynp5a3NcaGXE=";
2736     };
2737     propagatedBuildInputs = [ CatalystRuntime ConfigAny DataVisitor ];
2738     meta = {
2739       description = "Load config files of various types";
2740       license = with lib.licenses; [ artistic1 gpl1Plus ];
2741     };
2742   };
2744   CatalystPluginFormValidator = buildPerlPackage {
2745     pname = "Catalyst-Plugin-FormValidator";
2746     version = "0.094";
2747     src = fetchurl {
2748       url = "mirror://cpan/authors/id/D/DH/DHOSS/Catalyst-Plugin-FormValidator-0.094.tar.gz";
2749       hash = "sha256-WDTxG/XJ9LXTNtZcfOZjm3bOe/56KHXrBI1+ocgs4Fo=";
2750     };
2751     propagatedBuildInputs = [ CatalystRuntime DataFormValidator ];
2752     meta = {
2753       description = "Data::FormValidator";
2754       license = with lib.licenses; [ artistic1 gpl1Plus ];
2755     };
2756   };
2758   CatalystPluginFormValidatorSimple = buildPerlPackage {
2759     pname = "Catalyst-Plugin-FormValidator-Simple";
2760     version = "0.15";
2761     src = fetchurl {
2762       url = "mirror://cpan/authors/id/D/DH/DHOSS/Catalyst-Plugin-FormValidator-Simple-0.15.tar.gz";
2763       hash = "sha256-SGxqDo9BD9AXJ59IBKueNbpGMh0zoKlyH+Hgijkd56A=";
2764     };
2765     propagatedBuildInputs = [ CatalystPluginFormValidator FormValidatorSimple ];
2766     meta = {
2767       description = "Validation with simple chains of constraints ";
2768       license = with lib.licenses; [ artistic1 gpl1Plus ];
2769     };
2770   };
2772   CatalystPluginLogHandler = buildPerlModule {
2773     pname = "Catalyst-Plugin-Log-Handler";
2774     version = "0.08";
2775     src = fetchurl {
2776       url = "mirror://cpan/authors/id/P/PE/PEPE/Catalyst-Plugin-Log-Handler-0.08.tar.gz";
2777       hash = "sha256-DbPDpXtO49eJulEpiQ4oWJE/7wDYGFvcnF1/3jHgQ+8=";
2778     };
2779     propagatedBuildInputs = [ ClassAccessor LogHandler MROCompat ];
2780     meta = {
2781       description = "Log messages to several outputs";
2782       license = with lib.licenses; [ artistic1 gpl1Plus ];
2783     };
2784   };
2786   CatalystPluginPrometheusTiny = buildPerlPackage {
2787     pname = "Catalyst-Plugin-PrometheusTiny";
2788     version = "0.006";
2789     src = fetchurl {
2790       url = "mirror://cpan/authors/id/S/SY/SYSPETE/Catalyst-Plugin-PrometheusTiny-0.006.tar.gz";
2791       hash = "sha256-Kzm5l7q/+rNTquMsol8smbdljlBEew23H7gKFsS2osE=";
2792     };
2793     buildInputs = [ HTTPMessage Plack SubOverride TestDeep ];
2794     propagatedBuildInputs = [ CatalystRuntime Moose PrometheusTiny PrometheusTinyShared ];
2795     meta = {
2796       description = "Tiny Prometheus client";
2797       homepage = "https://github.com/robn/Prometheus-Tiny";
2798       license = with lib.licenses; [ artistic1 gpl1Plus ];
2799     };
2800   };
2802   CatalystPluginSession = buildPerlPackage {
2803     pname = "Catalyst-Plugin-Session";
2804     version = "0.43";
2805     src = fetchurl {
2806       url = "mirror://cpan/authors/id/H/HA/HAARG/Catalyst-Plugin-Session-0.43.tar.gz";
2807       hash = "sha256-Xn180rlbH8IkS8buuPRPg11gPqB/WjkRCIHbYJKLFMQ=";
2808     };
2809     buildInputs = [ TestDeep TestException TestNeeds ];
2810     propagatedBuildInputs = [ CatalystRuntime ObjectSignature ];
2811     meta = {
2812       description = "Generic Session plugin - ties together server side storage and client side state required to maintain session data";
2813       license = with lib.licenses; [ artistic1 gpl1Plus ];
2814     };
2815   };
2817   CatalystPluginSessionDynamicExpiry = buildPerlPackage {
2818     pname = "Catalyst-Plugin-Session-DynamicExpiry";
2819     version = "0.04";
2820     src = fetchurl {
2821       url = "mirror://cpan/authors/id/B/BO/BOBTFISH/Catalyst-Plugin-Session-DynamicExpiry-0.04.tar.gz";
2822       hash = "sha256-dwfFZzTNsVEvcz3EAPrfb0xTyyF7WCB4V4JNrWeAoHk=";
2823     };
2824     propagatedBuildInputs = [ CatalystPluginSession ];
2825     meta = {
2826       description = "Per-session custom expiry times";
2827       license = with lib.licenses; [ artistic1 gpl1Plus ];
2828     };
2829   };
2831   CatalystPluginSessionStateCookie = buildPerlPackage {
2832     pname = "Catalyst-Plugin-Session-State-Cookie";
2833     version = "0.18";
2834     src = fetchurl {
2835       url = "mirror://cpan/authors/id/H/HA/HAARG/Catalyst-Plugin-Session-State-Cookie-0.18.tar.gz";
2836       hash = "sha256-6bHHsrlsGU+Hpfd+FElxcHfHD/xnpL/CnwJsnuLge+o=";
2837     };
2838     propagatedBuildInputs = [ CatalystPluginSession ];
2839     meta = {
2840       description = "Maintain session IDs using cookies";
2841       license = with lib.licenses; [ artistic1 gpl1Plus ];
2842     };
2843   };
2845   CatalystPluginSessionStoreFastMmap = buildPerlPackage {
2846     pname = "Catalyst-Plugin-Session-Store-FastMmap";
2847     version = "0.16";
2848     src = fetchurl {
2849       url = "mirror://cpan/authors/id/B/BO/BOBTFISH/Catalyst-Plugin-Session-Store-FastMmap-0.16.tar.gz";
2850       hash = "sha256-uut/17+QW+dGMciHYP2KKYDO6pVieZM5lYFkPvY3cnQ=";
2851     };
2852     propagatedBuildInputs = [ CacheFastMmap CatalystPluginSession ];
2853     meta = {
2854       description = "FastMmap session storage backend";
2855       license = with lib.licenses; [ artistic1 gpl1Plus ];
2856     };
2857   };
2859   CatalystPluginSessionStoreFile = buildPerlPackage {
2860     pname = "Catalyst-Plugin-Session-Store-File";
2861     version = "0.18";
2862     src = fetchurl {
2863       url = "mirror://cpan/authors/id/F/FL/FLORA/Catalyst-Plugin-Session-Store-File-0.18.tar.gz";
2864       hash = "sha256-VHOOPOdvi+i2aUcJLSiXPHPXnR7hm12SsFdVL4/wm08=";
2865     };
2866     propagatedBuildInputs = [ CacheCache CatalystPluginSession ClassDataInheritable ];
2867     meta = {
2868       description = "File storage backend for session data";
2869       license = with lib.licenses; [ artistic1 gpl1Plus ];
2870     };
2871   };
2873   CatalystPluginSmartURI = buildPerlPackage {
2874     pname = "Catalyst-Plugin-SmartURI";
2875     version = "0.041";
2876     src = fetchurl {
2877       url = "mirror://cpan/authors/id/R/RK/RKITOVER/Catalyst-Plugin-SmartURI-0.041.tar.gz";
2878       hash = "sha256-y4ghhphUUSA9kj19+QIKoELajcGUltgj4WU1twUfX1c=";
2879     };
2880     propagatedBuildInputs = [ CatalystRuntime ClassC3Componentised ];
2881     buildInputs = [ CatalystActionREST TestWarnings TimeOut URISmartURI ];
2882     meta = {
2883       description = "Configurable URIs for Catalyst";
2884       license = with lib.licenses; [ artistic1 gpl1Plus ];
2885     };
2886   };
2888   CatalystPluginStackTrace = buildPerlPackage {
2889     pname = "Catalyst-Plugin-StackTrace";
2890     version = "0.12";
2891     src = fetchurl {
2892       url = "mirror://cpan/authors/id/B/BO/BOBTFISH/Catalyst-Plugin-StackTrace-0.12.tar.gz";
2893       hash = "sha256-Mp2s0LoJ0Qp2CHqxdvldtro9smotD+M+7i9eRs7XU6w=";
2894     };
2895     propagatedBuildInputs = [ CatalystRuntime ];
2896     meta = {
2897       description = "Display a stack trace on the debug screen";
2898       license = with lib.licenses; [ artistic1 gpl1Plus ];
2899     };
2900   };
2902   CatalystPluginStaticSimple = buildPerlPackage {
2903     pname = "Catalyst-Plugin-Static-Simple";
2904     version = "0.37";
2905     src = fetchurl {
2906       url = "mirror://cpan/authors/id/I/IL/ILMARI/Catalyst-Plugin-Static-Simple-0.37.tar.gz";
2907       hash = "sha256-Wk2Fo1iM1Og/GwAlgUEufXG31X9mBW5dh6Nvk9icnnw=";
2908     };
2909     patches = [ ../development/perl-modules/catalyst-plugin-static-simple-etag.patch ];
2910     propagatedBuildInputs = [ CatalystRuntime MIMETypes MooseXTypes ];
2911     meta = {
2912       description = "Make serving static pages painless";
2913       license = with lib.licenses; [ artistic1 gpl1Plus ];
2914     };
2915   };
2917   CatalystPluginStatusMessage = buildPerlPackage {
2918     pname = "Catalyst-Plugin-StatusMessage";
2919     version = "1.002000";
2920     src = fetchurl {
2921       url = "mirror://cpan/authors/id/H/HK/HKCLARK/Catalyst-Plugin-StatusMessage-1.002000.tar.gz";
2922       hash = "sha256-ZJyJSrFvn0itqPnMWZp+y7iJGrN2H/b9UQUgxt5AfB8=";
2923     };
2924     propagatedBuildInputs = [ CatalystRuntime strictures ];
2925     meta = {
2926       description = "Handle passing of status (success and error) messages between screens of a web application";
2927       license = with lib.licenses; [ artistic1 gpl1Plus ];
2928     };
2929   };
2931   CatalystViewCSV = buildPerlPackage {
2932     pname = "Catalyst-View-CSV";
2933     version = "1.8";
2934     src = fetchurl {
2935       url = "mirror://cpan/authors/id/J/JM/JMREIN/Catalyst-View-CSV-1.8.tar.gz";
2936       hash = "sha256-vKcEaDzDXEevuJrDjHFRAu2+gIF57gcz0qDrMRojbN8=";
2937     };
2938     buildInputs = [ CatalystActionRenderView CatalystModelDBICSchema CatalystPluginConfigLoader CatalystXComponentTraits ConfigGeneral DBDSQLite DBIxClass TestException ];
2939     propagatedBuildInputs = [ CatalystRuntime TextCSV ];
2940     meta = {
2941       description = "CSV view class";
2942       license = with lib.licenses; [ artistic1 gpl1Plus ];
2943     };
2944   };
2946   CatalystViewDownload = buildPerlPackage {
2947     pname = "Catalyst-View-Download";
2948     version = "0.09";
2949     src = fetchurl {
2950       url = "mirror://cpan/authors/id/G/GA/GAUDEON/Catalyst-View-Download-0.09.tar.gz";
2951       hash = "sha256-es+PXyRex/bzU/SHKdE3sSrxrPos8fvWXHA5HpM3+OE=";
2952     };
2953     buildInputs = [ CatalystRuntime TestLongString TestSimple13 TestWWWMechanize TestWWWMechanizeCatalyst TextCSV XMLSimple ];
2954     meta = {
2955       description = "View module to help in the convenience of downloading data into many supportable formats";
2956       license = with lib.licenses; [ artistic1 gpl1Plus ];
2957     };
2958   };
2960   CatalystViewJSON = buildPerlPackage {
2961     pname = "Catalyst-View-JSON";
2962     version = "0.37";
2963     src = fetchurl {
2964       url = "mirror://cpan/authors/id/H/HA/HAARG/Catalyst-View-JSON-0.37.tar.gz";
2965       hash = "sha256-xdo/bop3scmYVd431YgCwLGU4pp9hsYO04Mc/dWfnew=";
2966     };
2967     propagatedBuildInputs = [ CatalystRuntime ];
2968     meta = {
2969       description = "JSON (JavaScript Object Notation) encoder/decoder";
2970       license = with lib.licenses; [ artistic1 gpl1Plus ];
2971     };
2972   };
2974   CatalystViewTT = buildPerlPackage {
2975     pname = "Catalyst-View-TT";
2976     version = "0.46";
2977     src = fetchurl {
2978       url = "mirror://cpan/authors/id/J/JJ/JJNAPIORK/Catalyst-View-TT-0.46.tar.gz";
2979       hash = "sha256-7aRFfbv4GkJBtzWl1GnZcn2KMJHSSvGuPJog8CTeUcw=";
2980     };
2981     propagatedBuildInputs = [ CatalystRuntime ClassAccessor TemplateTimer ];
2982     meta = {
2983       description = "Template View Class";
2984       license = with lib.licenses; [ artistic1 gpl1Plus ];
2985     };
2986   };
2988   CatalystXComponentTraits = buildPerlPackage {
2989     pname = "CatalystX-Component-Traits";
2990     version = "0.19";
2991     src = fetchurl {
2992       url = "mirror://cpan/authors/id/R/RK/RKITOVER/CatalystX-Component-Traits-0.19.tar.gz";
2993       hash = "sha256-CElE6cnQ37ENSrNFPhwSX97jkSm0bRfAI0w8U1FkBEc=";
2994     };
2995     propagatedBuildInputs = [ CatalystRuntime MooseXTraitsPluggable ];
2996     meta = {
2997       description = "Automatic Trait Loading and Resolution for Catalyst Components";
2998       license = with lib.licenses; [ artistic1 gpl1Plus ];
2999     };
3000   };
3002   CatalystXRoleApplicator = buildPerlPackage {
3003     pname = "CatalystX-RoleApplicator";
3004     version = "0.005";
3005     src = fetchurl {
3006       url = "mirror://cpan/authors/id/H/HD/HDP/CatalystX-RoleApplicator-0.005.tar.gz";
3007       hash = "sha256-4o5HZ3aJva31VE4cQaKsV1WZNm+EDXO70LA8ZPtVim8=";
3008     };
3009     propagatedBuildInputs = [ CatalystRuntime MooseXRelatedClassRoles ];
3010     meta = {
3011       description = "Apply roles to your Catalyst application-related classes";
3012       license = with lib.licenses; [ artistic1 gpl1Plus ];
3013     };
3014   };
3016   CatalystTraitForRequestProxyBase = buildPerlPackage {
3017     pname = "Catalyst-TraitFor-Request-ProxyBase";
3018     version = "0.000005";
3019     src = fetchurl {
3020       url = "mirror://cpan/authors/id/B/BO/BOBTFISH/Catalyst-TraitFor-Request-ProxyBase-0.000005.tar.gz";
3021       hash = "sha256-p78Pqn4Syl32Jdn1/HEPEb/Ra6U4WDfkjUKz0obJcQo=";
3022     };
3023     buildInputs = [ CatalystRuntime CatalystXRoleApplicator HTTPMessage ];
3024     propagatedBuildInputs = [ Moose URI namespaceautoclean ];
3025     meta = {
3026       description = "Replace request base with value passed by HTTP proxy";
3027       license = with lib.licenses; [ artistic1 gpl1Plus ];
3028     };
3029   };
3031   CatalystXScriptServerStarman = buildPerlPackage {
3032     pname = "CatalystX-Script-Server-Starman";
3033     version = "0.03";
3034     src = fetchurl {
3035       url = "mirror://cpan/authors/id/A/AB/ABRAXXA/CatalystX-Script-Server-Starman-0.03.tar.gz";
3036       hash = "sha256-5jpH80y0P3+87GdYyaVCiAGOOIAjZTYYkLKjTfCKWyI=";
3037     };
3038     patches = [
3039       # See Nixpkgs issues #16074 and #17624
3040       ../development/perl-modules/CatalystXScriptServerStarman-fork-arg.patch
3041     ];
3042     buildInputs = [ TestWWWMechanizeCatalyst ];
3043     propagatedBuildInputs = [ CatalystRuntime MooseXTypes PodParser Starman ];
3044     meta = {
3045       description = "Replace the development server with Starman";
3046       license = with lib.licenses; [ artistic1 gpl1Plus ];
3047     };
3048   };
3050   CDB_File = buildPerlPackage {
3051     pname = "CDB_File";
3052     version = "1.05";
3053     src = fetchurl {
3054       url = "mirror://cpan/authors/id/T/TO/TODDR/CDB_File-1.05.tar.gz";
3055       hash = "sha256-hWSEnVY5AV3iNiTlc8riU265CUMrZNkAmKHgtFKp60s=";
3056     };
3057     buildInputs = [ TestFatal TestWarnings ];
3058     propagatedBuildInputs = [ BCOW ];
3059     meta = {
3060       description = "Perl extension for access to cdb databases";
3061       homepage = "https://github.com/toddr/CDB_File";
3062       license = with lib.licenses; [ artistic1 gpl1Plus ];
3063     };
3064   };
3066   Catmandu = buildPerlModule {
3067     pname = "Catmandu";
3068     version = "1.2020";
3069     src = fetchurl {
3070       url = "mirror://cpan/authors/id/H/HO/HOCHSTEN/Catmandu-1.2020.tar.gz";
3071       hash = "sha256-1jIbR+NkGvkb7vZjNhWZVk88wzwAc5isa7opuO5A4cU=";
3072     };
3073     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 ];
3074     buildInputs = [ LogAnyAdapterLog4perl LogLog4perl TestDeep TestException TestLWPUserAgent TestPod ];
3075     meta = {
3076       description = "Data toolkit";
3077       homepage = "https://github.com/LibreCat/Catmandu";
3078       license = with lib.licenses; [ artistic1 gpl1Plus ];
3079       mainProgram = "catmandu";
3080     };
3081   };
3083   CDDB_get = buildPerlPackage {
3084     pname = "CDDB_get";
3085     version = "2.28";
3086     src = fetchurl {
3087       url = "mirror://cpan/authors/id/F/FO/FONKIE/CDDB_get-2.28.tar.gz";
3088       hash = "sha256-vcy6H6jkwc8xicXlo1KaZpOmSKpSgrWXU4x6rdzm2ck=";
3089     };
3090     meta = {
3091       description = "Get the CDDB info for an audio cd";
3092       license = with lib.licenses; [ artistic1 ];
3093       maintainers = [ maintainers.endgame ];
3094       mainProgram = "cddb.pl";
3095     };
3096   };
3098   CDDBFile = buildPerlPackage {
3099     pname = "CDDB-File";
3100     version = "1.05";
3101     src = fetchurl {
3102       url = "mirror://cpan/authors/id/T/TM/TMTM/CDDB-File-1.05.tar.gz";
3103       hash = "sha256-6+ZCnEFcFOc8bK/g1OLc3o4WnYFScfHhUjwmThrsx8k=";
3104     };
3105     meta = {
3106       description = "Parse a CDDB/freedb data file";
3107       license = with lib.licenses; [ artistic1 ];
3108     };
3109   };
3112   CGI = buildPerlPackage {
3113     pname = "CGI";
3114     version = "4.59";
3115     src = fetchurl {
3116       url = "mirror://cpan/authors/id/L/LE/LEEJO/CGI-4.59.tar.gz";
3117       hash = "sha256-be5LibiLEOd8lvPAjRm1hq74M7F6Ql1hiq19KMJi+Rw=";
3118     };
3119     buildInputs = [ TestDeep TestNoWarnings TestWarn ];
3120     propagatedBuildInputs = [ HTMLParser ];
3121     meta = {
3122       description = "Handle Common Gateway Interface requests and responses";
3123       homepage = "https://metacpan.org/module/CGI";
3124       license = with lib.licenses; [ artistic2 ];
3125     };
3126   };
3128   CGICompile = buildPerlModule {
3129     pname = "CGI-Compile";
3130     version = "0.26";
3131     src = fetchurl {
3132       url = "mirror://cpan/authors/id/R/RK/RKITOVER/CGI-Compile-0.26.tar.gz";
3133       hash = "sha256-TzhcEMLJd+tgPzjNFT4OA2jfA3H9vSP1qm7nL0/GXcg=";
3134     };
3135     propagatedBuildInputs = [ Filepushd SubName ];
3136     buildInputs = [ CGI CaptureTiny ModuleBuildTiny SubIdentify Switch TestNoWarnings TestRequires TryTiny ];
3137     preCheck = "rm t/race-conditions.t"; # this test is unstable
3138     meta = {
3139       description = "Compile .cgi scripts to a code reference like ModPerl::Registry";
3140       homepage = "https://github.com/miyagawa/CGI-Compile";
3141       license = with lib.licenses; [ artistic1 gpl1Plus ];
3142     };
3143   };
3145   CGICookieXS = buildPerlPackage {
3146     pname = "CGI-Cookie-XS";
3147     version = "0.18";
3148     src = fetchurl {
3149       url = "mirror://cpan/authors/id/A/AG/AGENT/CGI-Cookie-XS-0.18.tar.gz";
3150       hash = "sha256-RpnLSr2XIBSvO+ubCmlbQluH2ibLK0vbJgIHCqrdPcY=";
3151     };
3152     meta = {
3153       description = "HTTP Cookie parser in pure C";
3154       license = with lib.licenses; [ artistic1 gpl1Plus ];
3155     };
3156   };
3158   CGIEmulatePSGI = buildPerlPackage {
3159     pname = "CGI-Emulate-PSGI";
3160     version = "0.23";
3161     src = fetchurl {
3162       url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/CGI-Emulate-PSGI-0.23.tar.gz";
3163       hash = "sha256-3VtsNT8I+6EA2uCZBChPf3P4Mo0x9qZ7LBNvrXKNFYs=";
3164     };
3165     buildInputs = [ TestRequires ];
3166     propagatedBuildInputs = [ CGI ];
3167     meta = {
3168       description = "PSGI adapter for CGI";
3169       homepage = "https://github.com/tokuhirom/p5-cgi-emulate-psgi";
3170       license = with lib.licenses; [ artistic1 gpl1Plus ];
3171     };
3172   };
3174   CGIExpand = buildPerlPackage {
3175     pname = "CGI-Expand";
3176     version = "2.05";
3177     src = fetchurl {
3178       url = "mirror://cpan/authors/id/B/BO/BOWMANBS/CGI-Expand-2.05.tar.gz";
3179       hash = "sha256-boLRGOPEwMLa/NpYde3l6N2//+C336pkjkUeA5pFpKk=";
3180     };
3181     buildInputs = [ TestException ];
3182     meta = {
3183       description = "Convert flat hash to nested data using TT2's dot convention";
3184       license = with lib.licenses; [ artistic1 gpl1Plus ];
3185     };
3186   };
3188   CGIFast = buildPerlPackage {
3189     pname = "CGI-Fast";
3190     version = "2.16";
3191     src = fetchurl {
3192       url = "mirror://cpan/authors/id/L/LE/LEEJO/CGI-Fast-2.16.tar.gz";
3193       hash = "sha256-AiPX+RuAA3ud/183NgZAtx9dyNvZiaBZPV0i8/c8s9Q=";
3194     };
3195     propagatedBuildInputs = [ CGI FCGI ];
3196     doCheck = false;
3197     meta = {
3198       description = "CGI Interface for Fast CGI";
3199       homepage = "https://metacpan.org/module/CGI::Fast";
3200       license = with lib.licenses; [ artistic1 gpl1Plus ];
3201     };
3202   };
3204   CGIFormBuilder = buildPerlPackage {
3205     pname = "CGI-FormBuilder";
3206     version = "3.10";
3207     src = fetchurl {
3208       url = "mirror://cpan/authors/id/B/BI/BIGPRESH/CGI-FormBuilder-3.10.tar.gz";
3209       hash = "sha256-rsmb4MDwZ6fnJpxTeOWubI1905s2i08SwNhGOxPucZg=";
3210     };
3212     propagatedBuildInputs = [ CGI ];
3213     meta = {
3214       description = "Easily generate and process stateful forms";
3215       license = with lib.licenses; [ artistic1 gpl1Plus ];
3216     };
3217   };
3219   CGIMinimal = buildPerlModule {
3220     pname = "CGI-Minimal";
3221     version = "1.30";
3222     src = fetchurl {
3223       url = "mirror://cpan/authors/id/S/SN/SNOWHARE/CGI-Minimal-1.30.tar.gz";
3224       hash = "sha256-uU1QghsCYR2m7lQjGTFFB4xNuygvKxYqSw1YCUmXvEc=";
3225     };
3226     meta = {
3227       description = "Lightweight CGI form processing package";
3228       homepage = "https://github.com/JerilynFranz/perl-CGI-Minimal";
3229       license = with lib.licenses; [ mit ];
3230     };
3231   };
3233   CGIPSGI = buildPerlPackage {
3234     pname = "CGI-PSGI";
3235     version = "0.15";
3236     src = fetchurl {
3237       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/CGI-PSGI-0.15.tar.gz";
3238       hash = "sha256-xQ3LEL+EhqmEO67QMq2J2Hn/L0HJkzQt6tYvlHpZjZE=";
3239     };
3240     propagatedBuildInputs = [ CGI ];
3241     meta = {
3242       description = "Adapt CGI.pm to the PSGI protocol";
3243       license = with lib.licenses; [ artistic1 gpl1Plus ];
3244     };
3245   };
3247   CGISession = buildPerlModule {
3248     pname = "CGI-Session";
3249     version = "4.48";
3250     src = fetchurl {
3251       url = "mirror://cpan/authors/id/M/MA/MARKSTOS/CGI-Session-4.48.tar.gz";
3252       hash = "sha256-RnVkYcJM52ZrgQjduW26thJpnfMBLIDvEQFmGf4VVPc=";
3253     };
3254     propagatedBuildInputs = [ CGI ];
3255     meta = {
3256       description = "Persistent session data in CGI applications";
3257       license = with lib.licenses; [ artistic1 ];
3258     };
3259   };
3261   CGISimple = buildPerlPackage {
3262     pname = "CGI-Simple";
3263     version = "1.280";
3264     src = fetchurl {
3265       url = "mirror://cpan/authors/id/M/MA/MANWAR/CGI-Simple-1.280.tar.gz";
3266       hash = "sha256-GOAen/uBTl5O6neshImyBp/oNlGFUPN/bCIT61Wcar8=";
3267     };
3268     buildInputs = [ TestException TestNoWarnings ];
3269     meta = {
3270       description = "Simple totally OO CGI interface that is CGI.pm compliant";
3271       license = with lib.licenses; [ artistic1 gpl1Plus ];
3272     };
3273   };
3275   CGIStruct = buildPerlPackage {
3276     pname = "CGI-Struct";
3277     version = "1.21";
3278     src = fetchurl {
3279       url = "mirror://cpan/authors/id/F/FU/FULLERMD/CGI-Struct-1.21.tar.gz";
3280       hash = "sha256-0T2Np/3NbZBgVOR2D8KKcYrskb088GeliSf7fLHAnWw=";
3281     };
3282     buildInputs = [ TestDeep ];
3283     meta = {
3284       description = "Build structures from CGI data";
3285       license = with lib.licenses; [ bsd2 ];
3286     };
3287   };
3289   CHI = buildPerlPackage {
3290     pname = "CHI";
3291     version = "0.61";
3292     src = fetchurl {
3293       url = "mirror://cpan/authors/id/A/AS/ASB/CHI-0.61.tar.gz";
3294       hash = "sha256-WDVFyeUxK7QZOrFt6fVf+PS0p97RKM7o3SywIdRni1s=";
3295     };
3296     preConfigure = ''
3297       # fix error 'Unescaped left brace in regex is illegal here in regex'
3298       substituteInPlace lib/CHI/t/Driver/Subcache/l1_cache.pm --replace 'qr/CHI stats: {' 'qr/CHI stats: \{'
3299     '';
3300     buildInputs = [ TestClass TestDeep TestException TestWarn TimeDate ];
3301     propagatedBuildInputs = [ CarpAssert ClassLoad DataUUID DigestJHash HashMoreUtils JSONMaybeXS ListMoreUtils LogAny Moo MooXTypesMooseLikeNumeric StringRewritePrefix TaskWeaken TimeDuration TimeDurationParse ];
3302     meta = {
3303       description = "Unified cache handling interface";
3304       license = with lib.licenses; [ artistic1 gpl1Plus ];
3305     };
3306   };
3308   Chart = buildPerlPackage {
3309     pname = "Chart";
3310     version = "2.403.9";
3311     src = fetchurl {
3312       url = "mirror://cpan/authors/id/L/LI/LICHTKIND/Chart-v2.403.9.tar.gz";
3313       hash = "sha256-V8aCi7TIpyFw/rZ9wfFIq/Gcqzgnd54wh3tGEe1n86s=";
3314     };
3315     buildInputs = [ TestWarn ];
3316     propagatedBuildInputs = [ GD GraphicsToolkitColor ];
3317     meta = {
3318       description = "Series of charting modules";
3319       license = with lib.licenses; [ artistic1 gpl1Plus ];
3320     };
3321   };
3323   ChipcardPCSC = buildPerlPackage {
3324     pname = "Chipcard-PCSC";
3325     version = "1.4.16";
3326     src = fetchurl {
3327       url = "mirror://cpan/authors/id/W/WH/WHOM/Chipcard-PCSC-v1.4.16.tar.gz";
3328       hash = "sha256-O14p1jRDXxQm7Nzfebo1G04mWPNsPCK+N7HTHjbKj6k=";
3329     };
3330     buildInputs = [ pkgs.pcsclite ];
3331     nativeBuildInputs = [ pkgs.pkg-config ];
3332     env.NIX_CFLAGS_COMPILE = toString ([
3333       "-I${pkgs.pcsclite.dev}/include/PCSC"
3334     ] ++ lib.optionals stdenv.cc.isClang [
3335       "-Wno-error=implicit-int"
3336       "-Wno-error=int-conversion"
3337     ]);
3338     postPatch = ''
3339       substituteInPlace Makefile.PL --replace pkg-config $PKG_CONFIG
3340     '';
3341     NIX_CFLAGS_LINK = "-L${lib.getLib pkgs.pcsclite}/lib -lpcsclite";
3342     # tests fail; look unfinished
3343     doCheck = false;
3344     meta = {
3345       description = "Communicate with a smart card using PC/SC";
3346       homepage = "https://pcsc-perl.apdu.fr/";
3347       license = with lib.licenses; [ gpl2Plus ];
3348       maintainers = with maintainers; [ abbradar anthonyroussel ];
3349     };
3350   };
3352   CiscoIPPhone = buildPerlPackage {
3353     pname = "Cisco-IPPhone";
3354     version = "0.05";
3355     src = fetchurl {
3356       url = "mirror://cpan/authors/id/M/MR/MRPALMER/Cisco-IPPhone-0.05.tar.gz";
3357       hash = "sha256-sDyiY/j0Gm7FRcU5MhOjFG02vUUzWt6Zr1HdQqtu4W0=";
3358     };
3359     meta = {
3360       description = "Package for creating Cisco IPPhone XML objects";
3361       license = with lib.licenses; [ artistic1 ];
3362     };
3363   };
3365   CLASS = buildPerlPackage {
3366     pname = "CLASS";
3367     version = "1.1.8";
3368     src = fetchurl {
3369       url = "mirror://cpan/authors/id/J/JD/JDEGUEST/CLASS-v1.1.8.tar.gz";
3370       hash = "sha256-IZAaUmXL29iRJ36X/Gs0X3nby/B3RFePX/iGaltddgM=";
3371     };
3372     meta = {
3373       description = "Alias for __PACKAGE__";
3374       homepage = "https://metacpan.org/pod/CLASS";
3375       license = with lib.licenses; [ artistic1 gpl1Plus ];
3376       maintainers = [ maintainers.sgo ];
3377     };
3378   };
3380   ClassAccessor = buildPerlPackage {
3381     pname = "Class-Accessor";
3382     version = "0.51";
3383     src = fetchurl {
3384       url = "mirror://cpan/authors/id/K/KA/KASEI/Class-Accessor-0.51.tar.gz";
3385       hash = "sha256-vxKj5d5aLG6KRHs2T09aBQv3RiTFbjFQIq55kv8vQRw=";
3386     };
3387     meta = {
3388       description = "Automated accessor generation";
3389       license = with lib.licenses; [ artistic1 gpl1Plus ];
3390     };
3391   };
3393   ClassAccessorChained = buildPerlModule {
3394     pname = "Class-Accessor-Chained";
3395     version = "0.01";
3396     src = fetchurl {
3397       url = "mirror://cpan/authors/id/R/RC/RCLAMP/Class-Accessor-Chained-0.01.tar.gz";
3398       hash = "sha256-pb9J04BPg60lobFvMn0U1MvuInATIQSyhwUDHbzMNNI=";
3399     };
3400     propagatedBuildInputs = [ ClassAccessor ];
3401     meta = {
3402       description = "Make chained accessors";
3403       license = with lib.licenses; [ artistic1 gpl1Plus ];
3404     };
3405   };
3407   ClassAccessorGrouped = buildPerlPackage {
3408     pname = "Class-Accessor-Grouped";
3409     version = "0.10014";
3410     src = fetchurl {
3411       url = "mirror://cpan/authors/id/H/HA/HAARG/Class-Accessor-Grouped-0.10014.tar.gz";
3412       hash = "sha256-NdWwPvwJ9n86MVXJYkEmw+FiyOPKmP+CbbNYUzpExLs=";
3413     };
3414     buildInputs = [ TestException ];
3415     propagatedBuildInputs = [ ModuleRuntime ];
3416     meta = {
3417       description = "Lets you build groups of accessors";
3418       homepage = "https://metacpan.org/release/Class-Accessor-Grouped";
3419       license = with lib.licenses; [ artistic1 gpl1Plus ];
3420     };
3421   };
3423   ClassAccessorLite = buildPerlPackage {
3424     pname = "Class-Accessor-Lite";
3425     version = "0.08";
3426     src = fetchurl {
3427       url = "mirror://cpan/authors/id/K/KA/KAZUHO/Class-Accessor-Lite-0.08.tar.gz";
3428       hash = "sha256-dbO47I7+aHZ3tj8KEO75ZuAfYHNcVmVs51y7RMq6M1o=";
3429     };
3430     meta = {
3431       description = "Minimalistic variant of Class::Accessor";
3432       license = with lib.licenses; [ artistic1 gpl1Plus ];
3433     };
3434   };
3436   ClassAutouse = buildPerlPackage {
3437     pname = "Class-Autouse";
3438     version = "2.01";
3439     src = fetchurl {
3440       url = "mirror://cpan/authors/id/A/AD/ADAMK/Class-Autouse-2.01.tar.gz";
3441       hash = "sha256-wFsyNsBXGdgZwg2w/ettCVR0fkPXpzgpTu1/vPNuzxs=";
3442     };
3443     meta = {
3444       description = "Run-time load a class the first time you call a method in it";
3445       license = with lib.licenses; [ artistic1 gpl1Plus ];
3446     };
3447   };
3449   ClassBase = buildPerlPackage {
3450     pname = "Class-Base";
3451     version = "0.09";
3452     src = fetchurl {
3453       url = "mirror://cpan/authors/id/Y/YA/YANICK/Class-Base-0.09.tar.gz";
3454       hash = "sha256-4aW93lJQWAJmSpEIpRXJ6OUCy3IppJ3pT0CBsbKu7YQ=";
3455     };
3456     propagatedBuildInputs = [ Clone ];
3457     meta = {
3458       description = "Useful base class for deriving other modules";
3459       license = with lib.licenses; [ artistic1 gpl1Plus ];
3460     };
3461   };
3463   ClassC3 = buildPerlPackage {
3464     pname = "Class-C3";
3465     version = "0.35";
3466     src = fetchurl {
3467       url = "mirror://cpan/authors/id/H/HA/HAARG/Class-C3-0.35.tar.gz";
3468       hash = "sha256-hAU88aaPzIwSBWwvEgrfBPf2jjvjT0QI6V0Cb+5n4z4=";
3469     };
3470     propagatedBuildInputs = [ AlgorithmC3 ];
3471     meta = {
3472       description = "Pragma to use the C3 method resolution order algorithm";
3473       homepage = "https://metacpan.org/release/Class-C3";
3474       license = with lib.licenses; [ artistic1 gpl1Plus ];
3475     };
3476   };
3478   ClassC3AdoptNEXT = buildPerlModule {
3479     pname = "Class-C3-Adopt-NEXT";
3480     version = "0.14";
3481     src = fetchurl {
3482       url = "mirror://cpan/authors/id/E/ET/ETHER/Class-C3-Adopt-NEXT-0.14.tar.gz";
3483       hash = "sha256-hWdiJarbduhmamq+LgZZ1A60WBrWOFsXDupOHWvzS/c=";
3484     };
3485     buildInputs = [ ModuleBuildTiny TestException ];
3486     propagatedBuildInputs = [ MROCompat ];
3487     meta = {
3488       description = "Make NEXT suck less";
3489       homepage = "https://github.com/karenetheridge/Class-C3-Adopt-NEXT";
3490       license = with lib.licenses; [ artistic1 gpl1Plus ];
3491     };
3492   };
3494   ClassC3Componentised = buildPerlPackage {
3495     pname = "Class-C3-Componentised";
3496     version = "1.001002";
3497     src = fetchurl {
3498       url = "mirror://cpan/authors/id/H/HA/HAARG/Class-C3-Componentised-1.001002.tar.gz";
3499       hash = "sha256-MFGxRtwe/q6hqaLp5rF3MICZW4mKtYPxVWWNX8gLlpM=";
3500     };
3501     buildInputs = [ TestException ];
3502     propagatedBuildInputs = [ ClassC3 ClassInspector MROCompat ];
3503     meta = {
3504       description = "Load mix-ins or components to your C3-based class";
3505       license = with lib.licenses; [ artistic1 gpl1Plus ];
3506     };
3507   };
3509   ClassClassgenclassgen = buildPerlPackage {
3510     pname = "Class-Classgen-classgen";
3511     version = "3.03";
3512     src = fetchurl {
3513       url = "mirror://cpan/authors/id/M/MS/MSCHLUE/Class-Classgen-classgen-3.03.tar.gz";
3514       hash = "sha256-m2XUG5kVOJkugWsyzE+ptKSguz6cEOfuvv+CZY27yPY=";
3515     };
3516     meta = {
3517       description = "Simplifies creation, manipulation and usage of complex objects";
3518       license = with lib.licenses; [ artistic1 gpl1Plus ];
3519       mainProgram = "classgen";
3520     };
3521   };
3523   ClassContainer = buildPerlModule {
3524     pname = "Class-Container";
3525     version = "0.13";
3526     src = fetchurl {
3527       url = "mirror://cpan/authors/id/K/KW/KWILLIAMS/Class-Container-0.13.tar.gz";
3528       hash = "sha256-9dSVsd+4JtXAxF0DtNDmtgR8uwbNv2vhX9TckCrutws=";
3529     };
3530     propagatedBuildInputs = [ ParamsValidate ];
3531     meta = {
3532       description = "Glues object frameworks together transparently";
3533       license = with lib.licenses; [ artistic1 gpl1Plus ];
3534     };
3535   };
3537   ClassDataAccessor = buildPerlPackage {
3538     pname = "Class-Data-Accessor";
3539     version = "0.04004";
3540     src = fetchurl {
3541       url = "mirror://cpan/authors/id/C/CL/CLACO/Class-Data-Accessor-0.04004.tar.gz";
3542       hash = "sha256-wSLW4t9hNs6b6h5tK3dsueaeAAhezplTAYFMevOo6BQ=";
3543     };
3544     meta = {
3545       description = "Inheritable, overridable class and instance data accessor creation";
3546       license = with lib.licenses; [ artistic1 gpl1Plus ];
3547     };
3548   };
3550   ClassDataInheritable = buildPerlPackage {
3551     pname = "Class-Data-Inheritable";
3552     version = "0.09";
3553     src = fetchurl {
3554       url = "mirror://cpan/authors/id/R/RS/RSHERER/Class-Data-Inheritable-0.09.tar.gz";
3555       hash = "sha256-RAiNbpBxLhh7ilsFDKWxxw7+K6oyrhI+m9j1nynwbk0=";
3556     };
3557     meta = {
3558       description = "Inheritable, overridable class data";
3559       license = with lib.licenses; [ artistic1 gpl1Plus ];
3560     };
3561   };
3563   ClassEHierarchy = buildPerlPackage {
3564     pname = "Class-EHierarchy";
3565     version = "2.01";
3566     src = fetchurl {
3567       url = "mirror://cpan/authors/id/C/CO/CORLISS/Class-EHierarchy/Class-EHierarchy-2.01.tar.gz";
3568       hash = "sha256-Y3q3a+s4MqmwcbmZobFb8F0pffamYsyxqABPKYcwg4I=";
3569     };
3570     meta = {
3571       description = "Base class for hierarchally ordered objects";
3572       license = with lib.licenses; [ artistic1 gpl1Plus ];
3573       maintainers = teams.deshaw.members;
3574     };
3575   };
3577   ClassFactory = buildPerlPackage {
3578     pname = "Class-Factory";
3579     version = "1.06";
3580     src = fetchurl {
3581       url = "mirror://cpan/authors/id/P/PH/PHRED/Class-Factory-1.06.tar.gz";
3582       hash = "sha256-w3otJp65NfNqI+ETSArglG+nwSoSeBOWoSJsjkNfMPU=";
3583     };
3584     meta = {
3585       description = "Base class for dynamic factory classes";
3586       license = with lib.licenses; [ artistic1 gpl1Plus ];
3587     };
3588   };
3590   ClassFactoryUtil = buildPerlModule {
3591     pname = "Class-Factory-Util";
3592     version = "1.7";
3593     src = fetchurl {
3594       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Class-Factory-Util-1.7.tar.gz";
3595       hash = "sha256-bFFrRFtE+HNj+zoUhDHTHp7LXm8h+2SByJskBrZpLiY=";
3596     };
3597     meta = {
3598       description = "Provide utility methods for factory classes";
3599       license = with lib.licenses; [ artistic1 gpl1Plus ];
3600     };
3601   };
3603   ClassGomor = buildPerlModule {
3604     pname = "Class-Gomor";
3605     version = "1.03";
3606     src = fetchurl {
3607       url = "mirror://cpan/authors/id/G/GO/GOMOR/Class-Gomor-1.03.tar.gz";
3608       hash = "sha256-R9s86pzp/6mL+cdFV/0yz3AHkatTcCDJWKwwtKn/IAs=";
3609     };
3610     meta = {
3611       description = "Another class and object builder";
3612       license = with lib.licenses; [ artistic1 ];
3613     };
3614   };
3616   ClassInspector = buildPerlPackage {
3617     pname = "Class-Inspector";
3618     version = "1.36";
3619     src = fetchurl {
3620       url = "mirror://cpan/authors/id/P/PL/PLICEASE/Class-Inspector-1.36.tar.gz";
3621       hash = "sha256-zCldI6RyaHwkSJ1YIm6tI7n9wliOUi8LXwdHdBcAaU4=";
3622     };
3623     meta = {
3624       description = "Get information about a class and its structure";
3625       homepage = "https://metacpan.org/pod/Class::Inspector";
3626       license = with lib.licenses; [ artistic1 gpl1Plus ];
3627     };
3628   };
3630   ClassISA = buildPerlPackage {
3631     pname = "Class-ISA";
3632     version = "0.36";
3633     src = fetchurl {
3634       url = "mirror://cpan/authors/id/S/SM/SMUELLER/Class-ISA-0.36.tar.gz";
3635       hash = "sha256-iBbzTpo46EmhDfdWAw3M+f4GGhlsEaw/qv1xE8kpuWQ=";
3636     };
3637     meta = {
3638       description = "Report the search path for a class's ISA tree";
3639       license = with lib.licenses; [ artistic1 gpl1Plus ];
3640     };
3641   };
3643   ClassIterator = buildPerlPackage {
3644     pname = "Class-Iterator";
3645     version = "0.3";
3646     src = fetchurl {
3647       url = "mirror://cpan/authors/id/T/TE/TEXMEC/Class-Iterator-0.3.tar.gz";
3648       hash = "sha256-2xuofKkQfxYf6cHp5+JnwAJt78Jv4+c7ytirj/wY750=";
3649     };
3650     meta = {
3651       description = "Iterator class";
3652       license = with lib.licenses; [ artistic1 gpl1Plus ];
3653     };
3654   };
3656   ClassLoader = buildPerlPackage {
3657     pname = "Class-Loader";
3658     version = "2.03";
3659     src = fetchurl {
3660       url = "mirror://cpan/authors/id/V/VI/VIPUL/Class-Loader-2.03.tar.gz";
3661       hash = "sha256-T+8gdurWBCNFT/H06ChZqam5lCtfuO7gyYucY8nyuOc=";
3662     };
3663     meta = {
3664       description = "Load modules and create objects on demand";
3665       license = with lib.licenses; [ artistic1 gpl1Plus ];
3666     };
3667   };
3669   ClassMakeMethods = buildPerlPackage {
3670     pname = "Class-MakeMethods";
3671     version = "1.01";
3672     src = fetchurl {
3673       url = "mirror://cpan/authors/id/E/EV/EVO/Class-MakeMethods-1.01.tar.gz";
3674       hash = "sha256-rKx0LnnQ7Ip75Nj7gTqF6kTUfRnAFwzdswZEYCtYLGY=";
3675     };
3676     preConfigure = ''
3677       # fix error 'Unescaped left brace in regex is illegal here in regex'
3678       substituteInPlace tests/xemulator/class_methodmaker/Test.pm --replace 's/(TEST\s{)/$1/g' 's/(TEST\s\{)/$1/g'
3679     '';
3680     meta = {
3681       description = "Generate common types of methods";
3682       license = with lib.licenses; [ artistic1 gpl1Plus ];
3683     };
3684   };
3686   ClassMember = buildPerlPackage {
3687     pname = "Class-Member";
3688     version = "1.6";
3689     src = fetchurl {
3690       url = "mirror://cpan/authors/id/O/OP/OPI/Class-Member-1.6.tar.gz";
3691       hash = "sha256-p1KK8in6OhIF3NJakd59dKxvp9lSgbmTtV6Lb0+HuZE=";
3692     };
3693     meta = {
3694       description = "Set of modules to make the module developement easier";
3695       license = with lib.licenses; [ artistic1 gpl1Plus ];
3696     };
3697   };
3699   ClassMethodMaker = buildPerlPackage {
3700     pname = "Class-MethodMaker";
3701     version = "2.24";
3702     src = fetchurl {
3703       url = "mirror://cpan/authors/id/S/SC/SCHWIGON/class-methodmaker/Class-MethodMaker-2.24.tar.gz";
3704       hash = "sha256-Xu9YzLJ+vQG83lsUvMVTtTR6Bpnlw+khx3gMNSaJAyg=";
3705     };
3706     # Remove unnecessary, non-autoconf, configure script.
3707     prePatch = "rm configure";
3708     meta = {
3709       description = "Module for creating generic methods";
3710       license = with lib.licenses; [ artistic1 gpl1Plus ];
3711     };
3712   };
3714   ClassMethodModifiers = buildPerlPackage {
3715     pname = "Class-Method-Modifiers";
3716     version = "2.15";
3717     src = fetchurl {
3718       url = "mirror://cpan/authors/id/E/ET/ETHER/Class-Method-Modifiers-2.15.tar.gz";
3719       hash = "sha256-Zc2Fv+R10GbpGG96jMY2BwmFswsOuxzehoHPBiwuFfw=";
3720     };
3721     buildInputs = [ TestFatal TestNeeds ];
3722     meta = {
3723       description = "Provides Moose-like method modifiers";
3724       homepage = "https://github.com/moose/Class-Method-Modifiers";
3725       license = with lib.licenses; [ artistic1 gpl1Plus ];
3726     };
3727   };
3729   ClassMix = buildPerlModule {
3730     pname = "Class-Mix";
3731     version = "0.006";
3732     src = fetchurl {
3733       url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Class-Mix-0.006.tar.gz";
3734       hash = "sha256-h0f2Q4k5FPjESXnxcW0MHsikE5R5ZVVEeUToYPH/fAs=";
3735     };
3736     propagatedBuildInputs = [ ParamsClassify ];
3737     meta = {
3738       description = "Dynamic class mixing";
3739       license = with lib.licenses; [ artistic1 gpl1Plus ];
3740     };
3741   };
3743   ClassRefresh = buildPerlPackage {
3744     pname = "Class-Refresh";
3745     version = "0.07";
3746     src = fetchurl {
3747       url = "mirror://cpan/authors/id/D/DO/DOY/Class-Refresh-0.07.tar.gz";
3748       hash = "sha256-47ADU1XLs1oq7j8iNojVeJRqenxXCs05iyjN2x/UvrM=";
3749     };
3750     buildInputs = [ TestFatal TestRequires ];
3751     propagatedBuildInputs = [ ClassLoad ClassUnload DevelOverrideGlobalRequire TryTiny ];
3752     meta = {
3753       homepage = "http://metacpan.org/release/Class-Refresh";
3754       description = "Refresh your classes during runtime";
3755       license = with lib.licenses; [ artistic1 gpl1Plus ];
3756     };
3757   };
3759   ClassReturnValue = buildPerlPackage {
3760     pname = "Class-ReturnValue";
3761     version = "0.55";
3762     src = fetchurl {
3763       url = "mirror://cpan/authors/id/J/JE/JESSE/Class-ReturnValue-0.55.tar.gz";
3764       hash = "sha256-7Tg2iF149zTM16mFUOxCKmFt98MTEMG3sfZFn1+w5L0=";
3765     };
3766     propagatedBuildInputs = [ DevelStackTrace ];
3767     meta = {
3768       description = "(deprecated) polymorphic return values";
3769       homepage = "https://github.com/rjbs/Return-Value";
3770       license = with lib.licenses; [ artistic1 gpl1Plus ];
3771     };
3772   };
3774   ClassSingleton = buildPerlPackage {
3775     pname = "Class-Singleton";
3776     version = "1.6";
3777     src = fetchurl {
3778       url = "mirror://cpan/authors/id/S/SH/SHAY/Class-Singleton-1.6.tar.gz";
3779       hash = "sha256-J7oT8NlRKSkWa72MnvldkNYw/IDwyaG3RYiRBV6SgqQ=";
3780     };
3781     meta = {
3782       description = "Implementation of a 'Singleton' class";
3783       license = with lib.licenses; [ artistic1 gpl1Plus ];
3784     };
3785   };
3787   ClassThrowable = buildPerlPackage {
3788     pname = "Class-Throwable";
3789     version = "0.13";
3790     src = fetchurl {
3791       url = "mirror://cpan/authors/id/K/KM/KMX/Class-Throwable-0.13.tar.gz";
3792       hash = "sha256-3JoR4Nq1bcIg3qjJT+PEfbXn3Xwe0E3IF4qlu3v7vM4=";
3793     };
3794     meta = {
3795       description = "Minimal lightweight exception class";
3796       license = with lib.licenses; [ artistic1 gpl1Plus ];
3797     };
3798   };
3800   ClassTiny = buildPerlPackage {
3801     pname = "Class-Tiny";
3802     version = "1.008";
3803     src = fetchurl {
3804       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Class-Tiny-1.008.tar.gz";
3805       hash = "sha256-7gWKY5Evofy5pySY9WykIaIFbcf59LZ4N0RtZCGBVhU=";
3806     };
3807     meta = {
3808       description = "Minimalist class construction";
3809       homepage = "https://github.com/dagolden/Class-Tiny";
3810       license = with lib.licenses; [ asl20 ];
3811     };
3812   };
3814   ClassLoad = buildPerlPackage {
3815     pname = "Class-Load";
3816     version = "0.25";
3817     src = fetchurl {
3818       url = "mirror://cpan/authors/id/E/ET/ETHER/Class-Load-0.25.tar.gz";
3819       hash = "sha256-Kkj6d5tSl+VhVjgOizJjfGxY3stPSn88c1BSPhEnX48=";
3820     };
3821     buildInputs = [ TestFatal TestNeeds ];
3822     propagatedBuildInputs = [ DataOptList PackageStash ];
3823     meta = {
3824       description = "Working (require \"Class::Name\") and more";
3825       homepage = "https://github.com/moose/Class-Load";
3826       license = with lib.licenses; [ artistic1 gpl1Plus ];
3827     };
3828   };
3830   ClassLoadXS = buildPerlPackage {
3831     pname = "Class-Load-XS";
3832     version = "0.10";
3833     src = fetchurl {
3834       url = "mirror://cpan/authors/id/E/ET/ETHER/Class-Load-XS-0.10.tar.gz";
3835       hash = "sha256-W8Is9Tbr/SVkxb2vQvDYpM7j0ZMPyLRLfUpCA4YirdE=";
3836     };
3837     buildInputs = [ TestFatal TestNeeds ];
3838     propagatedBuildInputs = [ ClassLoad ];
3839     meta = {
3840       description = "XS implementation of parts of Class::Load";
3841       homepage = "https://github.com/moose/Class-Load-XS";
3842       license = with lib.licenses; [ artistic2 ];
3843     };
3844   };
3846   ClassObservable = buildPerlPackage {
3847     pname = "Class-Observable";
3848     version = "2.004";
3849     src = fetchurl {
3850       url = "mirror://cpan/authors/id/A/AR/ARISTOTLE/Class-Observable-2.004.tar.gz";
3851       hash = "sha256-bfMun+XwCIkfxO+k5PReqhQE0wIgRZyPyKUB8KfPLmk=";
3852     };
3853     propagatedBuildInputs = [ ClassISA ];
3854     meta = {
3855       description = "Allow other classes and objects to respond to events in yours";
3856       license = with lib.licenses; [ artistic1 gpl1Plus ];
3857     };
3858   };
3860   ClassStd = buildPerlModule {
3861     pname = "Class-Std";
3862     version = "0.013";
3863     src = fetchurl {
3864       url = "mirror://cpan/authors/id/C/CH/CHORNY/Class-Std-0.013.tar.gz";
3865       hash = "sha256-vNbYL2yK8P4Gn87X3RZaR5WwtukjUcfU5aGrmhT8NcY=";
3866     };
3867     meta = {
3868       description = "Support for creating standard 'inside-out' classes";
3869       license = with lib.licenses; [ artistic1 gpl1Plus ];
3870     };
3871   };
3873   ClassStdFast = buildPerlModule {
3874     pname = "Class-Std-Fast";
3875     version = "0.0.8";
3876     src = fetchurl {
3877       url = "mirror://cpan/authors/id/A/AC/ACID/Class-Std-Fast-v0.0.8.tar.gz";
3878       hash = "sha256-G9Q3Y8ajcxgwl6MOeH9dZxOw2ydRHFLVMyZrWdLPp4A=";
3879     };
3880     propagatedBuildInputs = [ ClassStd ];
3881     nativeCheckInputs = [ TestPod TestPodCoverage ];
3882     meta = {
3883       description = "Faster but less secure than Class::Std";
3884       license = with lib.licenses; [ artistic1 gpl1Plus ];
3885     };
3886   };
3888   ClassUnload = buildPerlPackage {
3889     pname = "Class-Unload";
3890     version = "0.11";
3891     src = fetchurl {
3892       url = "mirror://cpan/authors/id/I/IL/ILMARI/Class-Unload-0.11.tar.gz";
3893       hash = "sha256-UuKXR6fk0uGiicDh3oEHY08QyEJs18nTHsrIOD5KCl8=";
3894     };
3895     propagatedBuildInputs = [ ClassInspector ];
3896     buildInputs = [ TestRequires ];
3897     meta = {
3898       description = "Unload a class";
3899       license = with lib.licenses; [ artistic1 gpl1Plus ];
3900     };
3901   };
3903   ClassVirtual = buildPerlPackage {
3904     pname = "Class-Virtual";
3905     version = "0.08";
3906     src = fetchurl {
3907       url = "mirror://cpan/authors/id/M/MS/MSCHWERN/Class-Virtual-0.08.tar.gz";
3908       hash = "sha256-xkmbQtO05cZIil6C+8KGmObJhgFlBy3d+mdJNVqc+7I=";
3909     };
3910     propagatedBuildInputs = [ CarpAssert ClassDataInheritable ClassISA ];
3911     meta = {
3912       description = "Base class for virtual base classes";
3913       homepage = "https://metacpan.org/release/Class-Virtual";
3914       license = with lib.licenses; [ artistic1 gpl1Plus ];
3915     };
3916   };
3918   ClassXSAccessor = buildPerlPackage {
3919     pname = "Class-XSAccessor";
3920     version = "1.19";
3921     src = fetchurl {
3922       url = "mirror://cpan/authors/id/S/SM/SMUELLER/Class-XSAccessor-1.19.tar.gz";
3923       hash = "sha256-mcVrOV8SOa8ZkB8v7rEl2ey041Gg2A2qlSkhGkcApvI=";
3924     };
3925     meta = {
3926       description = "Generate fast XS accessors without runtime compilation";
3927       license = with lib.licenses; [ artistic1 gpl1Plus ];
3928     };
3929   };
3931   CLDRNumber = buildPerlModule {
3932     pname = "CLDR-Number";
3933     version = "0.19";
3934     src = fetchurl {
3935       url = "mirror://cpan/authors/id/P/PA/PATCH/CLDR-Number-0.19.tar.gz";
3936       hash = "sha256-xnFkiOZf53n/eag/DyA2rZRGPv49DzSca5kRKXW9hfw=";
3937     };
3938     buildInputs = [ SoftwareLicense TestDifferences TestException TestWarn ];
3939     propagatedBuildInputs =
3940       [ ClassMethodModifiers MathRound Moo namespaceclean ];
3941     meta = {
3942       description = "Localized number formatters using the Unicode CLDR";
3943       homepage = "https://github.com/patch/cldr-number-pm5";
3944       license = with lib.licenses; [ artistic1 gpl1Plus ];
3945     };
3946   };
3948   CLIHelpers = buildPerlPackage {
3949     pname = "CLI-Helpers";
3950     version = "2.0";
3951     src = fetchurl {
3952       url = "mirror://cpan/authors/id/B/BL/BLHOTSKY/CLI-Helpers-2.0.tar.gz";
3953       hash = "sha256-yhpPFnTzsfMmjyekfJiAszgmrenxI34sEUXnAqfIePY=";
3954     };
3955     buildInputs = [ PodCoverageTrustPod TestPerlCritic ];
3956     propagatedBuildInputs = [ CaptureTiny IOInteractive RefUtil TermReadKey YAML ];
3957     meta = {
3958       description = "Subroutines for making simple command line scripts";
3959       homepage = "https://github.com/reyjrar/CLI-Helpers";
3960       license = with lib.licenses; [ bsd3 ];
3961     };
3962   };
3964   Clipboard = buildPerlModule {
3965     pname = "Clipboard";
3966     version = "0.28";
3967     src = fetchurl {
3968       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Clipboard-0.28.tar.gz";
3969       hash = "sha256-no15AVGUJjNXwloPXQlIAP/0O9v5+GAew7DtXrCWbSY=";
3970     };
3971     propagatedBuildInputs = [ CGI ];
3972     # Disable test on darwin because MacPasteboard fails when not logged in interactively.
3973     # Mac OS error -4960 (coreFoundationUnknownErr): The unknown error at lib/Clipboard/MacPasteboard.pm line 3.
3974     # Mac-Pasteboard-0.009.readme: 'NOTE that Mac OS X appears to restrict pasteboard access to processes that are logged in interactively.
3975     #     Ssh sessions and cron jobs can not create the requisite pasteboard handles, giving coreFoundationUnknownErr (-4960)'
3976     doCheck = !stdenv.hostPlatform.isDarwin;
3977     meta = {
3978       description = "Copy and paste with any OS";
3979       homepage = "https://metacpan.org/release/Clipboard";
3980       license = with lib.licenses; [ artistic1 gpl1Plus ];
3981     };
3982   };
3985   Clone = buildPerlPackage {
3986     pname = "Clone";
3987     version = "0.46";
3988     src = fetchurl {
3989       url = "mirror://cpan/authors/id/G/GA/GARU/Clone-0.46.tar.gz";
3990       hash = "sha256-qt7tXkyL1rvfaMDdAGbLUT4Wq55bQ4LcSgqv1ViQaXs=";
3991     };
3992     buildInputs = [ BCOW ];
3993     meta = {
3994       description = "Recursively copy Perl datatypes";
3995       license = with lib.licenses; [ artistic1 gpl1Plus ];
3996     };
3997   };
3999   CloneChoose = buildPerlPackage {
4000     pname = "Clone-Choose";
4001     version = "0.010";
4002     src = fetchurl {
4003       url = "mirror://cpan/authors/id/H/HE/HERMES/Clone-Choose-0.010.tar.gz";
4004       hash = "sha256-ViNIH1jO6O25bNICqtDfViLUJ+X3SLJThR39YuUSNjI=";
4005     };
4006     buildInputs = [ Clone ClonePP TestWithoutModule ];
4007     meta = {
4008       description = "Choose appropriate clone utility";
4009       homepage = "https://metacpan.org/release/Clone-Choose";
4010       license = with lib.licenses; [ artistic1 gpl1Plus ];
4011     };
4012   };
4014   ClonePP = buildPerlPackage {
4015     pname = "Clone-PP";
4016     version = "1.08";
4017     src = fetchurl {
4018       url = "mirror://cpan/authors/id/N/NE/NEILB/Clone-PP-1.08.tar.gz";
4019       hash = "sha256-VyAwlKXYV0tqAJUejyOZtmb050+VEdnJ+1tFPV0R9Xg=";
4020     };
4021     meta = {
4022       description = "Recursively copy Perl datatypes";
4023       license = with lib.licenses; [ artistic1 gpl1Plus ];
4024     };
4025   };
4027   CodeTidyAll = buildPerlPackage {
4028     pname = "Code-TidyAll";
4029     version = "0.84";
4030     src = fetchurl {
4031       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Code-TidyAll-0.84.tar.gz";
4032       hash = "sha256-s8AU4e3X9EBHkJjkHkeHNhBy9QE6ZqX4j5a05Tyisfc=";
4033     };
4034     propagatedBuildInputs = [ CaptureTiny ConfigINI FileWhich Filepushd IPCRun3 IPCSystemSimple ListCompare ListSomeUtils LogAny Moo ScopeGuard SpecioLibraryPathTiny TextDiff TimeDate TimeDurationParse ];
4035     buildInputs = [ TestClass TestClassMost TestDeep TestDifferences TestException TestFatal TestMost TestWarn TestWarnings librelative ];
4036     meta = {
4037       description = "Engine for tidyall, your all-in-one code tidier and validator";
4038       homepage = "https://metacpan.org/release/Code-TidyAll";
4039       license = with lib.licenses; [ artistic1 gpl1Plus ];
4040       mainProgram = "tidyall";
4041     };
4042   };
4044   CodeTidyAllPluginPerlAlignMooseAttributes = buildPerlPackage {
4045     pname = "Code-TidyAll-Plugin-Perl-AlignMooseAttributes";
4046     version = "0.01";
4047     src = fetchurl {
4048       url = "mirror://cpan/authors/id/J/JS/JSWARTZ/Code-TidyAll-Plugin-Perl-AlignMooseAttributes-0.01.tar.gz";
4049       hash = "sha256-jR3inlbwczFoXqONGDr87f8hCOccSp2zb0GeUN0sHOU=";
4050     };
4051     propagatedBuildInputs = [ CodeTidyAll TextAligner ];
4052     meta = {
4053       description = "TidyAll plugin to sort and align Moose-style attributes";
4054       license = with lib.licenses; [ artistic1 gpl1Plus ];
4055     };
4056   };
4058   ColorLibrary = buildPerlPackage {
4059     pname = "Color-Library";
4060     version = "0.021";
4061     src = fetchurl {
4062       url = "mirror://cpan/authors/id/R/RO/ROKR/Color-Library-0.021.tar.gz";
4063       hash = "sha256-WMv34zPTpKQCl6vENBKzIdpEnGgWAg5PpmJasHn8kKU=";
4064     };
4065     buildInputs = [ TestMost TestWarn TestException TestDeep TestDifferences ModulePluggable ];
4066     propagatedBuildInputs = [ ClassAccessor ClassDataInheritable ];
4067     meta = {
4068       description = "Easy-to-use and comprehensive named-color library";
4069       license = with lib.licenses; [ artistic1 gpl1Plus ];
4070     };
4071   };
4073   CommandRunner = buildPerlModule {
4074     pname = "Command-Runner";
4075     version = "0.200";
4076     src = fetchurl {
4077       url = "mirror://cpan/authors/id/S/SK/SKAJI/Command-Runner-0.200.tar.gz";
4078       hash = "sha256-WtJtBhEb/s1TyPW7XeqUvyAl9seOlfbYAS5M+oninyY=";
4079     };
4080     buildInputs = [ ModuleBuildTiny ];
4081     propagatedBuildInputs = [ CaptureTiny Filepushd StringShellQuote Win32ShellQuote ];
4082     meta = {
4083       description = "Run external commands and Perl code refs";
4084       homepage = "https://github.com/skaji/Command-Runner";
4085       license = with lib.licenses; [ artistic1 gpl1Plus ];
4086       maintainers = [ maintainers.zakame ];
4087     };
4088   };
4090   commonsense = buildPerlPackage {
4091     pname = "common-sense";
4092     version = "3.75";
4093     src = fetchurl {
4094       url = "mirror://cpan/authors/id/M/ML/MLEHMANN/common-sense-3.75.tar.gz";
4095       hash = "sha256-qGocTKTzAG10eQZEJaCfpbZonlcmH8uZT+Z9Bhy6Dn4=";
4096     };
4097     meta = {
4098       description = "Implements some sane defaults for Perl programs";
4099       license = with lib.licenses; [ artistic1 gpl1Plus ];
4100     };
4101   };
4103   CompilerLexer = buildPerlModule {
4104     pname = "Compiler-Lexer";
4105     version = "0.23";
4106     src = fetchurl {
4107       url = "mirror://cpan/authors/id/G/GO/GOCCY/Compiler-Lexer-0.23.tar.gz";
4108       hash = "sha256-YDHOSv67+k9JKidJSb57gjIxTpECOCjEOOR5gf8Kmds=";
4109     };
4110     nativeBuildInputs = [ pkgs.ld-is-cc-hook ];
4111     buildInputs = [ ModuleBuildXSUtil ];
4112     meta = {
4113       homepage = "https://github.com/goccy/p5-Compiler-Lexer";
4114       description = "Lexical Analyzer for Perl5";
4115       license = with lib.licenses; [ artistic1 gpl1Plus ];
4116     };
4117   };
4119   CompressBzip2 = buildPerlPackage {
4120     pname = "Compress-Bzip2";
4121     version = "2.28";
4122     src = fetchurl {
4123       url = "mirror://cpan/authors/id/R/RU/RURBAN/Compress-Bzip2-2.28.tar.gz";
4124       hash = "sha256-hZ+DXD9cmYgQ2LKm+eKC/5nWy2bM+lXK5+Ztr7A1EW4=";
4125     };
4126     meta = {
4127       description = "Interface to Bzip2 compression library";
4128       license = with lib.licenses; [ artistic1 gpl1Plus ];
4129     };
4130   };
4132   CompressLZF = buildPerlPackage rec {
4133     pname = "Compress-LZF";
4134     version = "3.8";
4135     src = fetchurl {
4136       url = "mirror://cpan/authors/id/M/ML/MLEHMANN/${pname}-${version}.tar.gz";
4137       hash = "sha256-XR9d9IzhO03uHMnyeOzb+Bd4d7C5iBWk6zyRw0ZnFvI=";
4138     };
4139     meta = {
4140       description = "Extremely light-weight Lempel-Ziv-Free compression";
4141       license = with lib.licenses; [ artistic1 gpl1Plus ];
4142     };
4143   };
4145   CompressRawBzip2 = buildPerlPackage {
4146     pname = "Compress-Raw-Bzip2";
4147     version = "2.206";
4148     src = fetchurl {
4149       url = "mirror://cpan/authors/id/P/PM/PMQS/Compress-Raw-Bzip2-2.206.tar.gz";
4150       hash = "sha256-ISuB2xwK6CLRmShhmmA70QjLXVxHAPxn3HyxaeDMZSU=";
4151     };
4153     # Don't build a private copy of bzip2.
4154     BUILD_BZIP2 = false;
4155     BZIP2_LIB = "${pkgs.bzip2.out}/lib";
4156     BZIP2_INCLUDE = "${pkgs.bzip2.dev}/include";
4158     meta = {
4159       description = "Low-Level Interface to bzip2 compression library";
4160       homepage = "https://github.com/pmqs/Compress-Raw-Bzip2";
4161       license = with lib.licenses; [ artistic1 gpl1Plus ];
4162     };
4163   };
4165   CompressRawLzma = buildPerlPackage {
4166     pname = "Compress-Raw-Lzma";
4167     version = "2.206";
4168     src = fetchurl {
4169       url = "mirror://cpan/authors/id/P/PM/PMQS/Compress-Raw-Lzma-2.206.tar.gz";
4170       hash = "sha256-4BpwQLhL3GdZLRPuwMeIWQ4faW0dTwfHCXvXKk+IbrQ=";
4171     };
4172     preConfigure = ''
4173       cat > config.in <<EOF
4174         INCLUDE      = ${pkgs.xz.dev}/include
4175         LIB          = ${pkgs.xz.out}/lib
4176       EOF
4177     '';
4178     meta = {
4179       description = "Low-Level Interface to lzma compression library";
4180       homepage = "https://github.com/pmqs/Compress-Raw-Lzma";
4181       license = with lib.licenses; [ artistic1 gpl1Plus ];
4182     };
4183   };
4185   CompressRawZlib = buildPerlPackage {
4186     pname = "Compress-Raw-Zlib";
4187     version = "2.206";
4189     src = fetchurl {
4190       url = "mirror://cpan/authors/id/P/PM/PMQS/Compress-Raw-Zlib-2.206.tar.gz";
4191       hash = "sha256-Rnhaajg6HIQ4lbf58l1ddZ58MFFZ+dHgSjYE63THc3Q=";
4192     };
4194     preConfigure = ''
4195       cat > config.in <<EOF
4196         BUILD_ZLIB   = False
4197         INCLUDE      = ${pkgs.zlib.dev}/include
4198         LIB          = ${pkgs.zlib.out}/lib
4199         OLD_ZLIB     = False
4200         GZIP_OS_CODE = AUTO_DETECT
4201         USE_ZLIB_NG  = False
4202       EOF
4203     '';
4205     doCheck = !stdenv.hostPlatform.isDarwin;
4207     meta = {
4208       description = "Low-Level Interface to zlib or zlib-ng compression library";
4209       homepage = "https://github.com/pmqs/Compress-Raw-Zlib";
4210       license = with lib.licenses; [ artistic1 gpl1Plus ];
4211     };
4212   };
4214   CompressUnLZMA = buildPerlPackage {
4215     pname = "Compress-unLZMA";
4216     version = "0.05";
4217     src = fetchurl {
4218       url = "mirror://cpan/authors/id/F/FE/FERREIRA/Compress-unLZMA-0.05.tar.gz";
4219       hash = "sha256-TegBoo2S1ekJR0Zc60jU45/WQJOF6cIw5MBIKdllF7g=";
4220     };
4221     meta = {
4222       description = "Interface to LZMA decompression library";
4223       license = with lib.licenses; [ artistic1 gpl1Plus lgpl21Plus ];
4224     };
4225   };
4227   ConfigAny = buildPerlPackage {
4228     pname = "Config-Any";
4229     version = "0.33";
4230     src = fetchurl {
4231       url = "mirror://cpan/authors/id/H/HA/HAARG/Config-Any-0.33.tar.gz";
4232       hash = "sha256-wGaOtfLNNVvyBVfwTcGKJUdLegvPp5Vi4xZdmjx4kzM=";
4233     };
4234     propagatedBuildInputs = [ ModulePluggable ];
4235     meta = {
4236       description = "Load configuration from different file formats, transparently";
4237       license = with lib.licenses; [ artistic1 gpl1Plus ];
4238     };
4239   };
4241   ConfigAutoConf = buildPerlPackage {
4242     pname = "Config-AutoConf";
4243     version = "0.320";
4244     src = fetchurl {
4245       url = "mirror://cpan/authors/id/A/AM/AMBS/Config-AutoConf-0.320.tar.gz";
4246       hash = "sha256-u1epWO9J0/cWInba4Up71a9D/R2FEyMa811mVFlFQCM=";
4247     };
4248     propagatedBuildInputs = [ CaptureTiny ];
4249     meta = {
4250       description = "Module to implement some of AutoConf macros in pure perl";
4251       homepage = "https://metacpan.org/release/Config-AutoConf";
4252       license = with lib.licenses; [ artistic1 gpl1Plus ];
4253     };
4254   };
4256   ConfigGeneral = buildPerlPackage {
4257     pname = "Config-General";
4258     version = "2.65";
4259     src = fetchurl {
4260       url = "mirror://cpan/authors/id/T/TL/TLINDEN/Config-General-2.65.tar.gz";
4261       hash = "sha256-TW1XVL46nzCQaDbwzBDlVMiDLhTnoTQe+xWwXXBvxY8=";
4262     };
4263     meta = {
4264       description = "Generic Config Module";
4265       license = with lib.licenses; [ artistic2 ];
4266     };
4267   };
4269   ConfigGitLike = buildPerlPackage {
4270     pname = "Config-GitLike";
4271     version = "1.18";
4272     src = fetchurl {
4273       url = "mirror://cpan/authors/id/A/AL/ALEXMV/Config-GitLike-1.18.tar.gz";
4274       hash = "sha256-9650QPOtq1uf+apXIW2E/UpoEAm5WE4y2kL4u3HjMsU=";
4275     };
4276     buildInputs = [ TestException ];
4277     propagatedBuildInputs = [ Moo MooXTypesMooseLike ];
4278     meta = {
4279       description = "Git-compatible config file parsing";
4280       license = with lib.licenses; [ artistic1 gpl1Plus ];
4281     };
4282   };
4284   ConfigGrammar = buildPerlPackage {
4285     pname = "Config-Grammar";
4286     version = "1.13";
4287     src = fetchurl {
4288       url = "mirror://cpan/authors/id/D/DS/DSCHWEI/Config-Grammar-1.13.tar.gz";
4289       hash = "sha256-qLOjosnIxDuS3EAb8nCdZRTxW0Z/1PcsSNNWM1dx1uM=";
4290     };
4291     meta = {
4292       description = "Grammar-based, user-friendly config parser";
4293       homepage = "https://github.com/schweikert/Config-Grammar";
4294       license = with lib.licenses; [ artistic1 gpl1Plus ];
4295     };
4296   };
4298   ConfigINI = buildPerlPackage {
4299     pname = "Config-INI";
4300     version = "0.029";
4301     src = fetchurl {
4302       url = "mirror://cpan/authors/id/R/RJ/RJBS/Config-INI-0.029.tar.gz";
4303       hash = "sha256-C755enMCEGRKkH2QzUqisjrVgMsnvTk5O/xqfvn9/eo=";
4304     };
4305     propagatedBuildInputs = [ MixinLinewise ];
4306     meta = {
4307       description = "Simple .ini-file format";
4308       homepage = "https://github.com/rjbs/Config-INI";
4309       license = with lib.licenses; [ artistic1 gpl1Plus ];
4310     };
4311   };
4313   ConfigIdentity = buildPerlPackage {
4314     pname = "Config-Identity";
4315     version = "0.0019";
4316     src = fetchurl {
4317       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Config-Identity-0.0019.tar.gz";
4318       hash = "sha256-KVIL2zdlnmQUkbDGlmFCmhqJtqLkdcL5tOvyfkXoEqg=";
4319     };
4320     propagatedBuildInputs = [ FileHomeDir IPCRun ];
4321     buildInputs = [ TestDeep ];
4322     meta = {
4323       description = "Load (and optionally decrypt via GnuPG) user/pass identity information ";
4324       homepage = "https://github.com/dagolden/Config-Identity";
4325       license = with lib.licenses; [ artistic1 gpl1Plus ];
4326     };
4327   };
4329   ConfigIniFiles = buildPerlPackage {
4330     pname = "Config-IniFiles";
4331     version = "3.000003";
4332     src = fetchurl {
4333       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Config-IniFiles-3.000003.tar.gz";
4334       hash = "sha256-PEV7ZdmOX/QL25z4FLDVmD6wxT+4aWvaO6A1rSrNaAI=";
4335     };
4336     propagatedBuildInputs = [ IOStringy ];
4337     meta = {
4338       description = "Module for reading .ini-style configuration files";
4339       homepage = "https://metacpan.org/release/Config-IniFiles";
4340       license = with lib.licenses; [ artistic1 gpl1Plus ];
4341       maintainers = teams.deshaw.members;
4342     };
4343   };
4345   ConfigMerge = buildPerlPackage {
4346     pname = "Config-Merge";
4347     version = "1.04";
4348     src = fetchurl {
4349       url = "mirror://cpan/authors/id/D/DR/DRTECH/Config-Merge-1.04.tar.gz";
4350       hash = "sha256-qTJHe0OuX7BKFvBxqJHae9IIbBDGgFkvKIj6nZlyzM8=";
4351     };
4352     buildInputs = [ YAML ];
4353     propagatedBuildInputs = [ ConfigAny ];
4354     meta = {
4355       description = "Load a configuration directory tree containing YAML, JSON, XML, Perl, INI or Config::General files";
4356       license = with lib.licenses; [ artistic1 gpl1Plus ];
4357     };
4358   };
4360   ConfigOnion = buildPerlPackage {
4361     pname = "Config-Onion";
4362     version = "1.007";
4363     src = fetchurl {
4364       url = "mirror://cpan/authors/id/D/DS/DSHEROH/Config-Onion-1.007.tar.gz";
4365       hash = "sha256-Mn/d9o4TiyRp5aK643xzP4fKhMr2Hhz6qUm+PZUNqK8=";
4366     };
4367     propagatedBuildInputs = [ ConfigAny HashMergeSimple Moo ];
4368     buildInputs = [ TestException YAML ];
4369     meta = {
4370       description = "Layered configuration, because configs are like ogres";
4371       license = with lib.licenses; [ artistic1 gpl1Plus ];
4372     };
4373   };
4375   ConfigMVP = buildPerlPackage {
4376     pname = "Config-MVP";
4377     version = "2.200013";
4378     src = fetchurl {
4379       url = "mirror://cpan/authors/id/R/RJ/RJBS/Config-MVP-2.200013.tar.gz";
4380       hash = "sha256-AY0WFiPuOmf4YNnmgOIuYbeermAY8OfDtSX8k09bfUU=";
4381     };
4382     buildInputs = [ TestFatal ];
4383     propagatedBuildInputs = [ ModulePluggable MooseXOneArgNew RoleHasMessage RoleIdentifiable Throwable TieIxHash ];
4384     meta = {
4385       description = "Multivalue-property package-oriented configuration";
4386       homepage = "https://github.com/rjbs/Config-MVP";
4387       license = with lib.licenses; [ artistic1 gpl1Plus ];
4388     };
4389   };
4391   ConfigMVPReaderINI = buildPerlPackage {
4392     pname = "Config-MVP-Reader-INI";
4393     version = "2.101465";
4394     src = fetchurl {
4395       url = "mirror://cpan/authors/id/R/RJ/RJBS/Config-MVP-Reader-INI-2.101465.tar.gz";
4396       hash = "sha256-E8eqJ8HfmM0zraOZ5Z/zj6v6nWVRPkKvAvcsLT9jYkc=";
4397     };
4398     propagatedBuildInputs = [ ConfigINI ConfigMVP ];
4399     meta = {
4400       description = "MVP config reader for .ini files";
4401       homepage = "https://github.com/rjbs/Config-MVP-Reader-INI";
4402       license = with lib.licenses; [ artistic1 gpl1Plus ];
4403     };
4404   };
4406   ConfigProperties = buildPerlPackage {
4407     pname = "Config-Properties";
4408     version = "1.80";
4409     src = fetchurl {
4410       url = "mirror://cpan/authors/id/S/SA/SALVA/Config-Properties-1.80.tar.gz";
4411       hash = "sha256-XQQ5W+fhTpcKA+qVL7dimuME2XwDH5DMHCm9Cmpi/EA=";
4412     };
4413     meta = {
4414       description = "Read and write property files";
4415       license = with lib.licenses; [ artistic1 gpl1Plus ];
4416     };
4417   };
4419   ConfigSimple = buildPerlPackage {
4420     pname = "Config-Simple";
4421     version = "4.58";
4422     src = fetchurl {
4423       url = "mirror://cpan/authors/id/S/SH/SHERZODR/Config-Simple-4.58.tar.gz";
4424       hash = "sha256-3ZmVcG8Pk4ShXM/+EWw7biL0K6LljY8k7QPEoOOG7bQ=";
4425     };
4426     meta = {
4427       description = "Simple configuration file class";
4428       license = with lib.licenses; [ artistic1 gpl1Plus ];
4429     };
4430   };
4432   ConfigStd = buildPerlModule {
4433     pname = "Config-Std";
4434     version = "0.903";
4435     src = fetchurl {
4436       url = "mirror://cpan/authors/id/B/BR/BRICKER/Config-Std-0.903.tar.gz";
4437       hash = "sha256-t3Cf9mO9J50mSrnC9R6elYhHmjNnqMTPwYZZwqEUgP4=";
4438     };
4439     propagatedBuildInputs = [ ClassStd ];
4440     meta = {
4441       description = "Load and save configuration files in a standard format";
4442       license = with lib.licenses; [ artistic1 gpl1Plus ];
4443     };
4444   };
4446   ConfigTiny = buildPerlPackage {
4447     pname = "Config-Tiny";
4448     version = "2.29";
4449     src = fetchurl {
4450       url = "mirror://cpan/authors/id/R/RS/RSAVAGE/Config-Tiny-2.29.tgz";
4451       hash = "sha256-PeebDqA6jWqT6dkSj+hF+1ViIrFGmaT28NXKBXrjMzs=";
4452     };
4453     buildInputs = [ TestPod ];
4454     meta = {
4455       description = "Read/Write .ini style files with as little code as possible";
4456       license = with lib.licenses; [ artistic1 gpl1Plus ];
4457     };
4458   };
4460   ConfigVersioned = buildPerlPackage {
4461     pname = "Config-Versioned";
4462     version = "1.01";
4463     src = fetchurl {
4464       url = "mirror://cpan/authors/id/M/MR/MRSCOTTY/Config-Versioned-1.01.tar.gz";
4465       hash = "sha256-vJpK43OL2J+GoHvKZzYnyjySupaXN81tvHq3rRfNI0g=";
4466     };
4467     propagatedBuildInputs = [ ConfigStd GitPurePerl ];
4468     doCheck = false;
4469     meta = {
4470       description = "Simple, versioned access to configuration data";
4471       license = with lib.licenses; [ artistic1 gpl1Plus ];
4472       mainProgram = "cfgver";
4473     };
4474   };
4476   Connector = buildPerlModule {
4477     pname = "Connector";
4478     version = "1.53";
4479     src = fetchurl {
4480       url = "mirror://cpan/authors/id/M/MR/MRSCOTTY/Connector-1.53.tar.gz";
4481       hash = "sha256-1D50VEcZ/7lKDgZFhqetRXVbKTZPGJHZ4ncEFqsSTPo=";
4482     };
4483     buildInputs = [ ModuleBuildTiny ConfigMerge ConfigStd ConfigVersioned DBDSQLite DBI IOSocketSSL JSON LWP LWPProtocolHttps ProcSafeExec TemplateToolkit YAML ];
4484     propagatedBuildInputs = [ LogLog4perl Moose ];
4485     prePatch = ''
4486       # Attempts to use network.
4487       rm t/01-proxy-http.t
4488       rm t/01-proxy-proc-safeexec.t
4490       # crypt() tests that use DES
4491       rm t/01-builtin-password.t
4492       rm t/01-builtin-password-scheme.t
4493     '';
4494     meta = {
4495       description = "Generic connection to a hierarchical-structured data set";
4496       homepage = "https://github.com/whiterabbitsecurity/connector";
4497       license = with lib.licenses; [ artistic1 gpl1Plus ];
4498     };
4499   };
4501   ConstFast = buildPerlModule {
4502     pname = "Const-Fast";
4503     version = "0.014";
4504     src = fetchurl {
4505       url = "mirror://cpan/authors/id/L/LE/LEONT/Const-Fast-0.014.tar.gz";
4506       hash = "sha256-+AWVOgjFeEahak2F17dmOYr698NsFGX8sd6gnl+jlNs=";
4507     };
4508     propagatedBuildInputs = [ SubExporterProgressive ];
4509     buildInputs = [ ModuleBuildTiny TestFatal ];
4510     meta = {
4511       description = "Facility for creating read-only scalars, arrays, and hashes";
4512       license = with lib.licenses; [ artistic1 gpl1Plus ];
4513     };
4514   };
4516   ConvertASCIIArmour = buildPerlPackage {
4517     pname = "Convert-ASCII-Armour";
4518     version = "1.4";
4519     src = fetchurl {
4520       url = "mirror://cpan/authors/id/V/VI/VIPUL/Convert-ASCII-Armour-1.4.tar.gz";
4521       hash = "sha256-l+istusqKpGvfWzw0t/2+kKq+Tn8fW0cYFek8N9SyQQ=";
4522     };
4523     meta = {
4524       description = "Convert binary octets into ASCII armoured messages";
4525       license = with lib.licenses; [ artistic1 gpl1Plus ];
4526       maintainers = [ maintainers.sgo ];
4527     };
4528   };
4530   ConvertASN1 = buildPerlPackage {
4531     pname = "Convert-ASN1";
4532     version = "0.34";
4533     src = fetchurl {
4534       url = "mirror://cpan/authors/id/T/TI/TIMLEGGE/Convert-ASN1-0.34.tar.gz";
4535       hash = "sha256-pijXydOQVo+3Y1mXX6A/YmzlfxDcF5gOjjWH13E+Tuc=";
4536     };
4537     meta = {
4538       description = "ASN.1 Encode/Decode library";
4539       license = with lib.licenses; [ artistic1 gpl1Plus ];
4540     };
4541   };
4543   ConvertBase32 = buildPerlPackage {
4544     pname = "Convert-Base32";
4545     version = "0.06";
4546     src = fetchurl {
4547       url = "mirror://cpan/authors/id/I/IK/IKEGAMI/Convert-Base32-0.06.tar.gz";
4548       hash = "sha256-S6gsFnxB9FWqgoRzhyfkyUouvLHEznl/b9oHJFpkIRU=";
4549     };
4550     buildInputs = [ TestException ];
4551     meta = {
4552       description = "Encoding and decoding of base32 strings";
4553       license = with lib.licenses; [ artistic1 gpl1Plus ];
4554       maintainers = [ maintainers.sgo ];
4555     };
4556   };
4558   ConvertBencode = buildPerlPackage {
4559     pname = "Convert-Bencode";
4560     version = "1.03";
4561     src = fetchurl {
4562       url = "mirror://cpan/authors/id/O/OR/ORCLEV/Convert-Bencode-1.03.tar.gz";
4563       hash = "sha256-Jp89+GVpJZbeIU/kK5Lc+H1qa8It237Sq8f0i4LkXmw=";
4564     };
4565     meta = {
4566       description = "Functions for converting to/from bencoded strings";
4567       license = with lib.licenses; [ artistic1 gpl1Plus ];
4568     };
4569   };
4571   ConvertColor = buildPerlModule {
4572     pname = "Convert-Color";
4573     version = "0.17";
4574     src = fetchurl {
4575       url = "mirror://cpan/authors/id/P/PE/PEVANS/Convert-Color-0.17.tar.gz";
4576       hash = "sha256-5/jDN8VSXqoDd3xXaD6hGvm5j/HQURojSvH4CkMiTsc=";
4577     };
4578     buildInputs = [ Test2Suite ];
4579     propagatedBuildInputs = [ ListUtilsBy ModulePluggable ];
4580     meta = {
4581       description = "Color space conversions and named lookups";
4582       license = with lib.licenses; [ artistic1 gpl1Plus ];
4583     };
4584   };
4586   ConvertUU = buildPerlPackage {
4587     pname = "Convert-UU";
4588     version = "0.5201";
4589     src = fetchurl {
4590       url = "mirror://cpan/authors/id/A/AN/ANDK/Convert-UU-0.5201.tar.gz";
4591       hash = "sha256-kjKc4cMrWVLEjhIj2wGMjFjOr+8Dv6D9SBfNicNVo70=";
4592     };
4593     meta = {
4594       description = "Perl module for uuencode and uudecode";
4595       license = with lib.licenses; [ artistic1 gpl1Plus ];
4596     };
4597   };
4599   constantboolean = buildPerlModule {
4600     pname = "constant-boolean";
4601     version = "0.02";
4602     src = fetchurl {
4603       url = "mirror://cpan/authors/id/D/DE/DEXTER/constant-boolean-0.02.tar.gz";
4604       hash = "sha256-zSxZ1YBhzhpJdaMTFg33GG9i7qJlW4XVIOXiTp7rD+k=";
4605     };
4606     propagatedBuildInputs = [ SymbolUtil ];
4607     meta = {
4608       description = "Define TRUE and FALSE constants";
4609       license = with lib.licenses; [ artistic1 gpl1Plus ];
4610     };
4611   };
4613   curry = buildPerlPackage {
4614     pname = "curry";
4615     version = "2.000001";
4616     src = fetchurl {
4617       url = "mirror://cpan/authors/id/M/MS/MSTROUT/curry-2.000001.tar.gz";
4618       hash = "sha256-yY/iBQ+t7KOYGdboDVROkSGE/oRsvnNTnGhpT7G1HAg=";
4619     };
4620     meta = {
4621       description = "Create automatic curried method call closures for any class or object";
4622       license = with lib.licenses; [ artistic1 gpl1Plus ];
4623     };
4624   };
4626   constant-defer = buildPerlPackage {
4627     pname = "constant-defer";
4628     version = "6";
4629     src = fetchurl {
4630       url = "mirror://cpan/authors/id/K/KR/KRYDE/constant-defer-6.tar.gz";
4631       hash = "sha256-eyEmMZjKImhu//OumHokC+Qj3SFgr96yn+cW0DKYb/o=";
4632     };
4633     meta = {
4634       description = "Constant subs with deferred value calculation";
4635       license = with lib.licenses; [ gpl3Plus ];
4636     };
4637   };
4639   ContextPreserve = buildPerlPackage {
4640     pname = "Context-Preserve";
4641     version = "0.03";
4642     src = fetchurl {
4643       url = "mirror://cpan/authors/id/E/ET/ETHER/Context-Preserve-0.03.tar.gz";
4644       hash = "sha256-CZFKTCx725nKtoDBg8v0kuyY1uI/vMSH/MSuEFZ9/R8=";
4645     };
4646     buildInputs = [ TestException TestSimple13 ];
4647     meta = {
4648       description = "Run code after a subroutine call, preserving the context the subroutine would have seen if it were the last statement in the caller";
4649       license = with lib.licenses; [ artistic1 gpl1Plus ];
4650     };
4651   };
4653   CookieBaker = buildPerlModule {
4654     pname = "Cookie-Baker";
4655     version = "0.11";
4656     src = fetchurl {
4657       url = "mirror://cpan/authors/id/K/KA/KAZEBURO/Cookie-Baker-0.11.tar.gz";
4658       hash = "sha256-WSdfR04HwKo2EePmhLiU59uRMzPYIUQgvmPxLsGM16s=";
4659     };
4660     buildInputs = [ ModuleBuildTiny TestTime ];
4661     propagatedBuildInputs = [ URI ];
4662     meta = {
4663       description = "Cookie string generator / parser";
4664       homepage = "https://github.com/kazeburo/Cookie-Baker";
4665       license = with lib.licenses; [ artistic1 gpl1Plus ];
4666     };
4667   };
4669   CookieXS = buildPerlPackage {
4670     pname = "Cookie-XS";
4671     version = "0.11";
4672     src = fetchurl {
4673       url = "mirror://cpan/authors/id/A/AG/AGENT/Cookie-XS-0.11.tar.gz";
4674       hash = "sha256-o7lxB4CiJC5w750G5R+Rt/PqCq5o9Tx25CxYLCzLJpg=";
4675     };
4676     propagatedBuildInputs = [ CGICookieXS ];
4677     meta = {
4678       description = "HTTP Cookie parser in C (Please use CGI::Cookie::XS instead)";
4679       license = with lib.licenses; [ artistic1 gpl1Plus ];
4680     };
4681   };
4683   Coro = buildPerlPackage {
4684     pname = "Coro";
4685     version = "6.57";
4686     src = fetchurl {
4687       url = "mirror://cpan/authors/id/M/ML/MLEHMANN/Coro-6.57.tar.gz";
4688       hash = "sha256-GSjkgDNUDhHr9VBpht0QGveNJCHSEPllmSI7FdUXFMY=";
4689     };
4690     propagatedBuildInputs = [ AnyEvent Guard commonsense ];
4691     buildInputs = [ CanaryStability ];
4692     meta = {
4693       description = "Only real threads in perl";
4694       license = with lib.licenses; [ artistic1 gpl1Plus ];
4695     };
4696   };
4698   CoroEV = buildPerlPackage rec {
4699     pname = "CoroEV";
4700     version = "6.55";
4701     src = fetchurl {
4702       url = "mirror://cpan/authors/id/M/ML/MLEHMANN/Coro-${version}.tar.gz";
4703       hash = "sha256-Q9ecAnFw/NpMoO6Sc0YFvJXhImhvUHG5TZB2TIGuijA=";
4704     };
4705     buildInputs = [ CanaryStability ];
4706     propagatedBuildInputs = [ AnyEvent Coro EV Guard commonsense ];
4707     preConfigure = ''
4708       cd EV
4709     '';
4710     meta = {
4711       description = "Do events the coro-way, with EV";
4712       license = with lib.licenses; [ artistic1 gpl1Plus ];
4713     };
4714   };
4716   Corona = buildPerlPackage {
4717     pname = "Corona";
4718     version = "0.1004";
4719     src = fetchurl {
4720       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Corona-0.1004.tar.gz";
4721       hash = "sha256-//XRnoPeem0mWfNGgpgmsWUrtmZlS4eDsRmlNFS9rzw=";
4722     };
4723     propagatedBuildInputs = [ NetServerCoro Plack ];
4724     buildInputs = [ TestSharedFork TestTCP ];
4725     meta = {
4726       description = "Coro based PSGI web server";
4727       license = with lib.licenses; [ artistic1 gpl1Plus ];
4728       mainProgram = "corona";
4729     };
4730   };
4732   CPAN = buildPerlPackage {
4733     pname = "CPAN";
4734     version = "2.36";
4735     src = fetchurl {
4736       url = "mirror://cpan/authors/id/A/AN/ANDK/CPAN-2.36.tar.gz";
4737       hash = "sha256-HXKl60DliOPBDx88hckC6HGxaDdH1ncjOvd3yCv8kJ4=";
4738     };
4739     propagatedBuildInputs = [ ArchiveZip CPANChecksums CPANPerlReleases CompressBzip2 Expect FileHomeDir FileWhich LWP LogLog4perl ModuleSignature TermReadKey TextGlob YAML YAMLLibYAML YAMLSyck IOSocketSSL ];
4740     meta = {
4741       description = "Query, download and build perl modules from CPAN sites";
4742       license = with lib.licenses; [ artistic1 gpl1Plus ];
4743       mainProgram = "cpan";
4744     };
4745   };
4747   CPANAudit = buildPerlPackage {
4748     pname = "CPAN-Audit";
4749     version = "20230826.001";
4750     src = fetchurl {
4751       url = "mirror://cpan/authors/id/B/BD/BDFOY/CPAN-Audit-20230826.001.tar.gz";
4752       hash = "sha256-DXU7O9fdpXweIKycWScKcKTNkfttfN4mJEPoVUy2Geo=";
4753     };
4754     buildInputs = [ CaptureTiny YAMLTiny ];
4755     propagatedBuildInputs = [ CPANDistnameInfo IOInteractive JSON ModuleCPANfile ModuleExtractVERSION PerlIOgzip Mojolicious ];
4756     meta = {
4757       homepage = "https://github.com/briandfoy/cpan-audit";
4758       description = "Audit CPAN distributions for known vulnerabilities";
4759       license = with lib.licenses; [ artistic1 gpl1Plus ];
4760     };
4761   };
4763   CPANMini = buildPerlPackage {
4764     pname = "CPAN-Mini";
4765     version = "1.111017";
4766     src = fetchurl {
4767       url = "mirror://cpan/authors/id/R/RJ/RJBS/CPAN-Mini-1.111017.tar.gz";
4768       hash = "sha256-8gQpO+JqyEGsyHBEoYjbD1kegIgTFseiiK7A7s4wYVU=";
4769     };
4770     nativeBuildInputs = lib.optional stdenv.hostPlatform.isDarwin shortenPerlShebang;
4771     propagatedBuildInputs = [ FileHomeDir LWPProtocolHttps ];
4772     postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
4773       shortenPerlShebang $out/bin/minicpan
4774     '';
4776     meta = {
4777       description = "Create a minimal mirror of CPAN";
4778       homepage = "https://github.com/rjbs/CPAN-Mini";
4779       license = with lib.licenses; [ artistic1 gpl1Plus ];
4780       maintainers = [ maintainers.sgo ];
4781       mainProgram = "minicpan";
4782     };
4783   };
4785   CpanelJSONXS = buildPerlPackage {
4786     pname = "Cpanel-JSON-XS";
4787     version = "4.37";
4788     src = fetchurl {
4789       url = "mirror://cpan/authors/id/R/RU/RURBAN/Cpanel-JSON-XS-4.37.tar.gz";
4790       hash = "sha256-wkFhWg4X/3Raqoa79Gam4pzSQFFeZfBqegUBe2GebUs=";
4791     };
4792     meta = {
4793       description = "CPanel fork of JSON::XS, fast and correct serializing";
4794       license = with lib.licenses; [ artistic1 gpl1Plus ];
4795       mainProgram = "cpanel_json_xs";
4796     };
4797   };
4799   CPAN02PackagesSearch = buildPerlModule {
4800     pname = "CPAN-02Packages-Search";
4801     version = "0.100";
4802     src = fetchurl {
4803       url = "mirror://cpan/authors/id/S/SK/SKAJI/CPAN-02Packages-Search-0.100.tar.gz";
4804       hash = "sha256-prabrHmiUwA0RrKD76bzrv+mCdDBxStCCYeCEtpw+as=";
4805     };
4806     buildInputs = [ ModuleBuildTiny ];
4807     propagatedBuildInputs = [ TieHandleOffset ];
4808     meta = {
4809       description = "Search packages in 02packages.details.txt";
4810       homepage = "https://github.com/skaji/CPAN-02Packages-Search";
4811       license = with lib.licenses; [ artistic1 gpl1Plus ];
4812       maintainers = [ maintainers.zakame ];
4813     };
4814   };
4816   CPANChanges = buildPerlPackage {
4817     pname = "CPAN-Changes";
4818     version = "0.400002";
4819     src = fetchurl {
4820       url = "mirror://cpan/authors/id/H/HA/HAARG/CPAN-Changes-0.400002.tar.gz";
4821       hash = "sha256-Ae7eqQ0HRoy1jkpQv6O7HU7tqQc1lq3REY/DWRU6vo0=";
4822     };
4823     meta = {
4824       description = "Read and write Changes files";
4825       license = with lib.licenses; [ artistic1 gpl1Plus ];
4826       mainProgram = "tidy_changelog";
4827     };
4828   };
4830   CPANChecksums = buildPerlPackage {
4831     pname = "CPAN-Checksums";
4832     version = "2.14";
4833     src = fetchurl {
4834       url = "mirror://cpan/authors/id/A/AN/ANDK/CPAN-Checksums-2.14.tar.gz";
4835       hash = "sha256-QIBxbF2n4DtQTjzA6h/V757WkV9vtzdWTp4T01Wonjk=";
4836     };
4837     propagatedBuildInputs = [ CompressBzip2 DataCompare ModuleSignature ];
4838     meta = {
4839       description = "Write a CHECKSUMS file for a directory as on CPAN";
4840       license = with lib.licenses; [ artistic1 gpl1Plus ];
4841     };
4842   };
4844   CPANCommonIndex = buildPerlPackage {
4845     pname = "CPAN-Common-Index";
4846     version = "0.010";
4847     src = fetchurl {
4848       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/CPAN-Common-Index-0.010.tar.gz";
4849       hash = "sha256-xD3bsi/UKwYRj+Y1f1NwD7139TG6PEJ/qvvzA8v06vA=";
4850     };
4851     buildInputs = [ TestDeep TestFailWarnings TestFatal ];
4852     propagatedBuildInputs = [ CPANDistnameInfo ClassTiny TieHandleOffset URI ];
4853     meta = {
4854       description = "Common library for searching CPAN modules, authors and distributions";
4855       homepage = "https://github.com/Perl-Toolchain-Gang/CPAN-Common-Index";
4856       license = with lib.licenses; [ asl20 ];
4857     };
4858   };
4860   CPANDistnameInfo = buildPerlPackage {
4861     pname = "CPAN-DistnameInfo";
4862     version = "0.12";
4863     src = fetchurl {
4864       url = "mirror://cpan/authors/id/G/GB/GBARR/CPAN-DistnameInfo-0.12.tar.gz";
4865       hash = "sha256-LyT76ffurLwmnTX8YWGDIvwXvkme4M2QGPNwk0qfJDU=";
4866     };
4867     meta = {
4868       description = "Extract distribution name and version from a distribution filename";
4869       license = with lib.licenses; [ artistic1 gpl1Plus ];
4870     };
4871   };
4873   CPANMetaCheck = buildPerlPackage {
4874     pname = "CPAN-Meta-Check";
4875     version = "0.018";
4876     src = fetchurl {
4877       url = "mirror://cpan/authors/id/L/LE/LEONT/CPAN-Meta-Check-0.018.tar.gz";
4878       hash = "sha256-9hnS316g/ZHIz4PrVKzMteQ9nm7Bo/cns9CsFdDPN4o=";
4879     };
4880     buildInputs = [ TestDeep ];
4881     meta = {
4882       description = "Verify requirements in a CPAN::Meta object";
4883       license = with lib.licenses; [ artistic1 gpl1Plus ];
4884     };
4885   };
4887   CPANPerlReleases = buildPerlPackage {
4888     pname = "CPAN-Perl-Releases";
4889     version = "5.20230920";
4890     src = fetchurl {
4891       url = "mirror://cpan/authors/id/B/BI/BINGOS/CPAN-Perl-Releases-5.20230920.tar.gz";
4892       hash = "sha256-MbyTiJR2uOx1iRjdmSSmKYPgh7BsjN6Sb7mnp+h60cA=";
4893     };
4894     meta = {
4895       description = "Mapping Perl releases on CPAN to the location of the tarballs";
4896       homepage = "https://github.com/bingos/cpan-perl-releases";
4897       license = with lib.licenses; [ artistic1 gpl1Plus ];
4898     };
4899   };
4901   CPANPLUS = buildPerlPackage {
4902     pname = "CPANPLUS";
4903     version = "0.9914";
4904     src = fetchurl {
4905       url = "mirror://cpan/authors/id/B/BI/BINGOS/CPANPLUS-0.9914.tar.gz";
4906       hash = "sha256-dsPl2mI6SvYP5krexEj7H44Mrp9nmKNraIZZdAROm2c=";
4907     };
4908     propagatedBuildInputs = [ ArchiveExtract ModulePluggable ObjectAccessor PackageConstants TermUI ];
4909     meta = {
4910       description = "Ameliorated interface to the CPAN";
4911       homepage = "https://github.com/jib/cpanplus-devel";
4912       license = with lib.licenses; [ artistic1 gpl1Plus ];
4913       mainProgram = "cpanp";
4914     };
4915   };
4917   CPANUploader = buildPerlPackage {
4918     pname = "CPAN-Uploader";
4919     version = "0.103018";
4920     src = fetchurl {
4921       url = "mirror://cpan/authors/id/R/RJ/RJBS/CPAN-Uploader-0.103018.tar.gz";
4922       hash = "sha256-xP/k7enbebOW47/F583w4umCHh8eCH9SO8+nTJ/J4kg=";
4923     };
4924     propagatedBuildInputs = [ FileHomeDir GetoptLongDescriptive LWPProtocolHttps TermReadKey ];
4925     meta = {
4926       description = "Upload things to the CPAN";
4927       homepage = "https://github.com/rjbs/CPAN-Uploader";
4928       license = with lib.licenses; [ artistic1 gpl1Plus ];
4929       mainProgram = "cpan-upload";
4930     };
4931   };
4933   CryptArgon2 = buildPerlModule {
4934     pname = "Crypt-Argon2";
4935     version = "0.019";
4936     src = fetchurl {
4937       url = "mirror://cpan/authors/id/L/LE/LEONT/Crypt-Argon2-0.019.tar.gz";
4938       hash = "sha256-+Fm+6NL2tAf11EZFwiOu4hL+AFkd/YLlBlrhvnio5Dg=";
4939     };
4940     nativeBuildInputs = [ pkgs.ld-is-cc-hook ];
4941     meta = {
4942       description = "Perl interface to the Argon2 key derivation functions";
4943       license = with lib.licenses; [ cc0 ];
4944     };
4945   };
4947   CryptBcrypt = buildPerlPackage {
4948     pname = "Crypt-Bcrypt";
4949     version = "0.011";
4950     src = fetchurl {
4951       url = "mirror://cpan/authors/id/L/LE/LEONT/Crypt-Bcrypt-0.011.tar.gz";
4952       hash = "sha256-Z/ymiwUm5zTi2VvGsyutAcMZ5Yer9j5M80Itpmu+o6A=";
4953     };
4954     meta = {
4955       description = "modern bcrypt implementation";
4956       license = with lib.licenses; [ artistic1 gpl1Plus ];
4957     };
4958   };
4960   CryptBlowfish = buildPerlPackage {
4961     pname = "Crypt-Blowfish";
4962     version = "2.14";
4963     src = fetchurl {
4964       url = "mirror://cpan/authors/id/D/DP/DPARIS/Crypt-Blowfish-2.14.tar.gz";
4965       hash = "sha256-RrNDH/tr9bnLNZ95Vl1IQH5lKtKwT99cpipp5xl6Z7E=";
4966     };
4967     meta = {
4968       description = "Perl Blowfish encryption module";
4969       license = with lib.licenses; [ bsdOriginalShortened ];
4970     };
4971   };
4973   CryptCAST5_PP = buildPerlPackage {
4974     pname = "Crypt-CAST5_PP";
4975     version = "1.04";
4976     src = fetchurl {
4977       url = "mirror://cpan/authors/id/B/BO/BOBMATH/Crypt-CAST5_PP-1.04.tar.gz";
4978       hash = "sha256-y6mKgEA/uJihTJKPI39EgWtISGQYQM4lFzY8LAcbUyc=";
4979     };
4980     meta = {
4981       description = "CAST5 block cipher in pure Perl";
4982       license = with lib.licenses; [ artistic1 gpl1Plus ];
4983       maintainers = [ maintainers.sgo ];
4984     };
4985   };
4987   CryptCBC = buildPerlPackage {
4988     pname = "Crypt-CBC";
4989     version = "2.33";
4990     src = fetchurl {
4991       url = "mirror://cpan/authors/id/L/LD/LDS/Crypt-CBC-2.33.tar.gz";
4992       hash = "sha256-anDeIbbMfysQAGfo4Yjblm6agAG122+pdufLWylK5kU=";
4993     };
4994     meta = {
4995       description = "Encrypt Data with Cipher Block Chaining Mode";
4996       license = with lib.licenses; [ artistic1 gpl1Plus ];
4997     };
4998   };
5000   CryptCurve25519 = buildPerlPackage {
5001     pname = "Crypt-Curve25519";
5002     version = "0.07";
5003     src = fetchurl {
5004       url = "mirror://cpan/authors/id/K/KA/KARASIK/Crypt-Curve25519-0.07.tar.gz";
5005       hash = "sha256-Z6mIcTclIdb34R/dYnyq21wdVAFCag6c9CFnpDxbSx0=";
5006     };
5007     meta = {
5008       description = "Generate shared secret using elliptic-curve Diffie-Hellman function";
5009       homepage = "https://metacpan.org/release/Crypt-Curve25519";
5010       license = with lib.licenses; [ artistic1 gpl1Plus ];
5011     };
5012   };
5014   CryptDES = buildPerlPackage {
5015     pname = "Crypt-DES";
5016     version = "2.07";
5017     src = fetchurl {
5018       url = "mirror://cpan/authors/id/D/DP/DPARIS/Crypt-DES-2.07.tar.gz";
5019       hash = "sha256-LbHrtYN7TLIAUcDuW3M7RFPjE33wqSMGA0yGdiHt1+c=";
5020     };
5021     meta = {
5022       description = "Perl DES encryption module";
5023       license = with lib.licenses; [ bsdOriginalShortened ];
5024     };
5025   };
5027   CryptDES_EDE3 = buildPerlPackage {
5028     pname = "Crypt-DES_EDE3";
5029     version = "0.01";
5030     src = fetchurl {
5031       url = "mirror://cpan/authors/id/B/BT/BTROTT/Crypt-DES_EDE3-0.01.tar.gz";
5032       hash = "sha256-nLLgS2JenMCDPNSZ92/RJVZYPs7KeCqXWKVeP5aXSNY=";
5033     };
5034     propagatedBuildInputs = [ CryptDES ];
5035     meta = {
5036       description = "Triple-DES EDE encryption/decryption";
5037       license = with lib.licenses; [ artistic1 gpl1Plus ];
5038       maintainers = [ maintainers.sgo ];
5039     };
5040   };
5042   CryptDH = buildPerlPackage {
5043     pname = "Crypt-DH";
5044     version = "0.07";
5045     src = fetchurl {
5046       url = "mirror://cpan/authors/id/M/MI/MITHALDU/Crypt-DH-0.07.tar.gz";
5047       hash = "sha256-yIzzQjsB5nguiYbX/lMEQ2q4SwklxEmMb9+hfvmjf18=";
5048     };
5049     propagatedBuildInputs = [ MathBigIntGMP ];
5050     meta = {
5051       description = "Diffie-Hellman key exchange system";
5052       license = with lib.licenses; [ artistic1 gpl1Plus ];
5053     };
5054   };
5056   CryptDHGMP = buildPerlPackage {
5057     pname = "Crypt-DH-GMP";
5058     version = "0.00012";
5059     src = fetchurl {
5060       url = "mirror://cpan/authors/id/D/DM/DMAKI/Crypt-DH-GMP-0.00012.tar.gz";
5061       hash = "sha256-UeekeuWUz1X2bAdi9mkhVIbn2LNGC9rf55NQzPJtrzg=";
5062     };
5063     buildInputs = [ pkgs.gmp DevelChecklib TestRequires ];
5064     env.NIX_CFLAGS_COMPILE = "-I${pkgs.gmp.dev}/include";
5065     NIX_CFLAGS_LINK = "-L${pkgs.gmp.out}/lib -lgmp";
5066     meta = {
5067       description = "Crypt::DH Using GMP Directly";
5068       license = with lib.licenses; [ artistic1 gpl1Plus ];
5069     };
5070   };
5072   CryptDSA = buildPerlPackage {
5073     pname = "Crypt-DSA";
5074     version = "1.17";
5075     src = fetchurl {
5076       url = "mirror://cpan/authors/id/A/AD/ADAMK/Crypt-DSA-1.17.tar.gz";
5077       hash = "sha256-0bhYX2v3RvduXcXaNkHTJe1la8Ll80S1RRS1XDEAmgM=";
5078     };
5079     propagatedBuildInputs = [ DataBuffer DigestSHA1 FileWhich ];
5080     meta = {
5081       description = "DSA Signatures and Key Generation";
5082       license = with lib.licenses; [ artistic1 gpl1Plus ];
5083       maintainers = [ maintainers.sgo ];
5084     };
5085   };
5087   CryptECB = buildPerlPackage {
5088     pname = "Crypt-ECB";
5089     version = "2.22";
5090     src = fetchurl {
5091       url = "mirror://cpan/authors/id/A/AP/APPEL/Crypt-ECB-2.22.tar.gz";
5092       hash = "sha256-9a9i6QjNMaNLK4ExNaBxgBb9AD/6ACH/vdhMUBWCZ6o=";
5093     };
5094     meta = {
5095       description = "Use block ciphers using ECB mode";
5096       license = with lib.licenses; [ artistic1 gpl1Plus ];
5097     };
5098   };
5100   CryptEksblowfish = buildPerlModule {
5101     pname = "Crypt-Eksblowfish";
5102     version = "0.009";
5103     src = fetchurl {
5104       url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Crypt-Eksblowfish-0.009.tar.gz";
5105       hash = "sha256-PMcSbVhBEHI3qb4txcf7wWfPPEtM40Z4qESLhQdXAUw=";
5106     };
5107     propagatedBuildInputs = [ ClassMix ];
5108     perlPreHook = lib.optionalString (stdenv.hostPlatform.isi686 || stdenv.hostPlatform.isDarwin) "export LD=$CC";
5109     meta = {
5110       description = "Eksblowfish block cipher";
5111       license = with lib.licenses; [ artistic1 gpl1Plus ];
5112     };
5113   };
5115   CryptFormat = buildPerlPackage {
5116     pname = "Crypt-Format";
5117     version = "0.12";
5118     src = fetchurl {
5119       url = "mirror://cpan/authors/id/F/FE/FELIPE/Crypt-Format-0.12.tar.gz";
5120       hash = "sha256-p1cdS+9XeOGln0O2XPLVaAtJ+nu78z89IfRSL0Pmp9o=";
5121     };
5122     buildInputs = [ TestException TestFailWarnings ];
5123     meta = {
5124       description = "Conversion utilities for encryption applications";
5125       license = with lib.licenses; [ artistic1 gpl1Plus ];
5126       maintainers = [ maintainers.sgo ];
5127     };
5128   };
5130   CryptHSXKPasswd = buildPerlPackage {
5131     pname = "Crypt-HSXKPasswd";
5132     version = "3.6";
5133     src = fetchurl {
5134       url = "mirror://cpan/authors/id/B/BA/BARTB/Crypt-HSXKPasswd-v3.6.tar.gz";
5135       hash = "sha256-lZ3MX58BG/ALha0i31ZrerK/XqHTYrDeD7WuKfvEWLM=";
5136     };
5137     nativeBuildInputs = lib.optional stdenv.hostPlatform.isDarwin shortenPerlShebang;
5138     propagatedBuildInputs = [ Clone DateTime FileHomeDir FileShare FileShareDir GetoptLong JSON ListMoreUtils MathRound Readonly TextUnidecode TypeTiny ];
5139     postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
5140       shortenPerlShebang $out/bin/hsxkpasswd
5141     '';
5143     meta = {
5144       description = "Secure memorable password generator";
5145       homepage = "http://www.bartb.ie/hsxkpasswd";
5146       license = with lib.licenses; [ bsd2 ];
5147       maintainers = [ maintainers.dannixon ];
5148       mainProgram = "hsxkpasswd";
5149     };
5150     # Two tests fail as a result of https://github.com/bbusschots/hsxkpasswd/issues/42
5151     # (also see https://github.com/bbusschots/hsxkpasswd/issues/43)
5152     doCheck = false;
5153   };
5155   CryptIDEA = buildPerlPackage {
5156     pname = "Crypt-IDEA";
5157     version = "1.10";
5158     src = fetchurl {
5159       url = "mirror://cpan/authors/id/D/DP/DPARIS/Crypt-IDEA-1.10.tar.gz";
5160       hash = "sha256-M714wRkkoPwf8+7d6UB4y79rbKnt4EbSsvVh6emnIBk=";
5161     };
5162     meta = {
5163       description = "Perl interface to IDEA block cipher";
5164       license = with lib.licenses; [ bsdOriginalShortened ];
5165     };
5166   };
5168   CryptJWT = buildPerlPackage {
5169     pname = "Crypt-JWT";
5170     version = "0.035";
5171     src = fetchurl {
5172       url = "mirror://cpan/authors/id/M/MI/MIK/Crypt-JWT-0.035.tar.gz";
5173       hash = "sha256-XPvVX63DrtNtZ0/AU6zoZ7XT4aTOiiDPu3wmef3wlkE=";
5174     };
5175     propagatedBuildInputs = [ CryptX JSON ];
5176     meta = {
5177       description = "JSON Web Token";
5178       license = with lib.licenses; [ artistic1 gpl1Plus ];
5179     };
5180   };
5182   CryptPassphrase = buildPerlPackage {
5183     pname = "Crypt-Passphrase";
5184     version = "0.016";
5185     src = fetchurl {
5186       url = "mirror://cpan/authors/id/L/LE/LEONT/Crypt-Passphrase-0.016.tar.gz";
5187       hash = "sha256-TOtPi1SsM/PYHJq0euTPoejDbzhJ76ghcDycMH46T8c=";
5188     };
5189     propagatedBuildInputs = [ CryptURandom ];
5190     meta = {
5191       description = "Module for managing passwords in a cryptographically agile manner";
5192       license = with lib.licenses; [ artistic1 gpl1Plus ];
5193     };
5194   };
5196   CryptPassphraseArgon2 = buildPerlPackage {
5197     pname = "Crypt-Passphrase-Argon2";
5198     version = "0.009";
5199     src = fetchurl {
5200       url = "mirror://cpan/authors/id/L/LE/LEONT/Crypt-Passphrase-Argon2-0.009.tar.gz";
5201       hash = "sha256-M39AVZY6EG2bt7tcJvwPSHCGYJ2XKHVgucpEwEPCF1I=";
5202     };
5203     propagatedBuildInputs = with perlPackages; [ CryptArgon2 CryptPassphrase ];
5204     meta = {
5205       description = "Argon2 encoder for Crypt::Passphrase";
5206       license = with lib.licenses; [ artistic1 gpl1Plus ];
5207     };
5208   };
5210   CryptPassphraseBcrypt = buildPerlPackage {
5211     pname = "Crypt-Passphrase-Bcrypt";
5212     version = "0.007";
5213     src = fetchurl {
5214       url = "mirror://cpan/authors/id/L/LE/LEONT/Crypt-Passphrase-Bcrypt-0.007.tar.gz";
5215       hash = "sha256-/k1NHTm9TxODQaJZUFzhE3EnCnZ8nndH90H7dGH9sA8=";
5216     };
5217     propagatedBuildInputs = [ CryptBcrypt CryptPassphrase ];
5218     meta = {
5219       description = "Bcrypt encoder for Crypt::Passphrase";
5220       homepage = "https://github.com/Leont/crypt-passphrase-bcrypt";
5221       license = with lib.licenses; [ artistic1 gpl1Plus ];
5222     };
5223   };
5225   CryptPasswdMD5 = buildPerlPackage {
5226     pname = "Crypt-PasswdMD5";
5227     version = "1.42";
5228     src = fetchurl {
5229       url = "mirror://cpan/authors/id/R/RS/RSAVAGE/Crypt-PasswdMD5-1.42.tgz";
5230       hash = "sha256-/Tlubn9E7rkj6TyZOUC49nqa7Vb8dKrK8Dj8QFPvO1k=";
5231     };
5232     meta = {
5233       description = "Provide interoperable MD5-based crypt() functions";
5234       license = with lib.licenses; [ artistic1 gpl1Plus ];
5235     };
5236   };
5238   CryptPKCS10 = buildPerlModule {
5239     pname = "Crypt-PKCS10";
5240     version = "2.005";
5241     src = fetchurl {
5242       url = "mirror://cpan/authors/id/M/MR/MRSCOTTY/Crypt-PKCS10-2.005.tar.gz";
5243       hash = "sha256-LdEv0JHCPjp8NKZqw1rDq/kHQCOUtVV0mO3kj8QUU6c=";
5244     };
5245     buildInputs = [ CryptX ModuleBuildTiny pkgs.unzip ];
5246     propagatedBuildInputs = [ ConvertASN1 ];
5247     meta = {
5248       description = "Parse PKCS #10 certificate requests";
5249       homepage = "https://github.com/openxpki/Crypt-PKCS10";
5250       license = with lib.licenses; [ gpl1Only ];
5251     };
5252   };
5254   CryptRandomSeed = buildPerlPackage {
5255     pname = "Crypt-Random-Seed";
5256     version = "0.03";
5257     src = fetchurl {
5258       url = "mirror://cpan/authors/id/D/DA/DANAJ/Crypt-Random-Seed-0.03.tar.gz";
5259       hash = "sha256-WT2lS1IsCcwmu8wOTknByOaIpv0zsHJq+AHXIqXI0PE=";
5260     };
5261     propagatedBuildInputs = [ CryptRandomTESHA2 ];
5262     meta = {
5263       description = "Provide strong randomness for seeding";
5264       homepage = "https://github.com/danaj/Crypt-Random-Seed";
5265       license = with lib.licenses; [ artistic1 gpl1Plus ];
5266       maintainers = [ maintainers.sgo ];
5267     };
5268   };
5270   CryptRandom = buildPerlPackage {
5271     pname = "Crypt-Random";
5272     version = "1.54";
5273     src = fetchurl {
5274       url = "mirror://cpan/authors/id/V/VI/VIPUL/Crypt-Random-1.54.tar.gz";
5275       hash = "sha256-1m+OF+3Dh3zHl/3VneU045kGNvjxpecmBiFZr35n2sw=";
5276     };
5277     propagatedBuildInputs = [ ClassLoader MathPari StatisticsChiSquare ];
5278     meta = {
5279       description = "Interface to /dev/random and /dev/urandom";
5280       license = with lib.licenses; [ artistic1 gpl1Plus ];
5281       mainProgram = "makerandom";
5282     };
5283   };
5285   CryptRandomSource = buildPerlModule {
5286     pname = "Crypt-Random-Source";
5287     version = "0.14";
5288     src = fetchurl {
5289       url = "mirror://cpan/authors/id/E/ET/ETHER/Crypt-Random-Source-0.14.tar.gz";
5290       hash = "sha256-7E7OJp+a0ZWMbimOzuLlpDReNX86T/ssdIEWr4du7eY=";
5291     };
5292     buildInputs = [ ModuleBuildTiny TestFatal TestSimple13 ];
5293     propagatedBuildInputs = [ CaptureTiny ModuleFind Moo SubExporter TypeTiny namespaceclean ];
5294     meta = {
5295       description = "Get weak or strong random data from pluggable sources";
5296       homepage = "https://github.com/karenetheridge/Crypt-Random-Source";
5297       license = with lib.licenses; [ artistic1 gpl1Plus ];
5298     };
5299   };
5301   CryptRandomTESHA2 = buildPerlPackage {
5302     pname = "Crypt-Random-TESHA2";
5303     version = "0.01";
5304     src = fetchurl {
5305       url = "mirror://cpan/authors/id/D/DA/DANAJ/Crypt-Random-TESHA2-0.01.tar.gz";
5306       hash = "sha256-oJErQsUr4XPaUo1VJ+QNlnMkvASseNn8LdyR/xb+ljM=";
5307     };
5308     meta = {
5309       description = "Random numbers using timer/schedule entropy, aka userspace voodoo entropy";
5310       homepage = "https://github.com/danaj/Crypt-Random-TESHA2";
5311       license = with lib.licenses; [ artistic1 gpl1Plus ];
5312     };
5313   };
5315   CryptRC4 = buildPerlPackage {
5316     pname = "Crypt-RC4";
5317     version = "2.02";
5318     src = fetchurl {
5319       url = "mirror://cpan/authors/id/S/SI/SIFUKURT/Crypt-RC4-2.02.tar.gz";
5320       hash = "sha256-XsRCXGvCIgeIljC+c1DZlobmKkTGE2lgEQIDzVlK4Oo=";
5321     };
5322     meta = {
5323       description = "Perl implementation of the RC4 encryption algorithm";
5324       license = with lib.licenses; [ artistic1 gpl1Plus ];
5325     };
5326   };
5328   CryptRandPasswd = buildPerlPackage {
5329     pname = "Crypt-RandPasswd";
5330     version = "0.07";
5331     src = fetchurl {
5332       url = "mirror://cpan/authors/id/J/JA/JANITOR/Crypt-RandPasswd-0.07.tar.gz";
5333       hash = "sha256-bd26Sdx+DwBRr6oKvhbxN4OiRM0eu1+B2qEay2KKSWE=";
5334     };
5335     meta = {
5336       description = "Random password generator based on FIPS-181";
5337       license = with lib.licenses; [ artistic1 gpl1Plus ];
5338     };
5339   };
5341   CryptRIPEMD160 = buildPerlPackage {
5342     pname = "Crypt-RIPEMD160";
5343     version = "0.08";
5344     src = fetchurl {
5345       url = "mirror://cpan/authors/id/T/TO/TODDR/Crypt-RIPEMD160-0.08.tar.gz";
5346       hash = "sha256-NNHIdgf2yd76s3QbdtMbzPu21NIBr4Dg9gg8N4EwsjI=";
5347     };
5348     meta = {
5349       description = "Perl extension for the RIPEMD-160 Hash function";
5350       homepage = "https://wiki.github.com/toddr/Crypt-RIPEMD160";
5351       license = with lib.licenses; [ artistic1 gpl1Plus ];
5352       maintainers = [ maintainers.sgo ];
5353     };
5354   };
5356   CryptMySQL = buildPerlModule {
5357     pname = "Crypt-MySQL";
5358     version = "0.04";
5359     src = fetchurl {
5360       url = "mirror://cpan/authors/id/I/IK/IKEBE/Crypt-MySQL-0.04.tar.gz";
5361       hash = "sha256-k+vfqu/P6atoPwEhyF8kR12Bl/C87EYBghnkERQ03eM=";
5362     };
5363     propagatedBuildInputs = [ DigestSHA1 ];
5364     perlPreHook = lib.optionalString (stdenv.hostPlatform.isi686 || stdenv.hostPlatform.isDarwin) "export LD=$CC";
5365     meta = {
5366       description = "Emulate MySQL PASSWORD() function";
5367       license = with lib.licenses; [ artistic1 gpl1Plus ];
5368     };
5369   };
5371   CryptRijndael = buildPerlPackage {
5372     pname = "Crypt-Rijndael";
5373     version = "1.16";
5374     src = fetchurl {
5375       url = "mirror://cpan/authors/id/L/LE/LEONT/Crypt-Rijndael-1.16.tar.gz";
5376       hash = "sha256-ZUAIXjgEuCpvB1LBEiz3jK3SIZkBNt1v1MCX0FbITUA=";
5377     };
5378     meta = {
5379       description = "Crypt::CBC compliant Rijndael encryption module";
5380       license = with lib.licenses; [ gpl3Only ];
5381     };
5382   };
5384   CryptUnixCryptXS = buildPerlPackage {
5385     pname = "Crypt-UnixCrypt_XS";
5386     version = "0.11";
5387     src = fetchurl {
5388       url = "mirror://cpan/authors/id/B/BO/BORISZ/Crypt-UnixCrypt_XS-0.11.tar.gz";
5389       hash = "sha256-Yus0EsLJG9TcK4pNnuJtW94usRkycDtu6sR3Pk0fT6o=";
5390     };
5391     meta = {
5392       description = "Perl xs interface for a portable traditional crypt function";
5393       license = with lib.licenses; [ artistic1 gpl1Plus ];
5394     };
5395   };
5397   CryptURandom = buildPerlPackage {
5398     pname = "Crypt-URandom";
5399     version = "0.39";
5400     src = fetchurl {
5401       url = "mirror://cpan/authors/id/D/DD/DDICK/Crypt-URandom-0.39.tar.gz";
5402       hash = "sha256-Jol7PPualWAJFRLWCHMaPVv08pn20Pj3LIXzmQEkQSI=";
5403     };
5404     meta = {
5405       description = "Provide non blocking randomness";
5406       license = with lib.licenses; [ artistic1 gpl1Plus ];
5407       maintainers = [ maintainers.sgo ];
5408     };
5409   };
5411   CryptScryptKDF = buildPerlModule {
5412     pname = "Crypt-ScryptKDF";
5413     version = "0.010";
5414     src = fetchurl {
5415       url = "mirror://cpan/authors/id/M/MI/MIK/Crypt-ScryptKDF-0.010.tar.gz";
5416       hash = "sha256-fRbulczj61TBdGc6cpn0wIb7o6yF+EfQ4TT+7V93YBc=";
5417     };
5418     propagatedBuildInputs = [ CryptOpenSSLRandom ];
5419     perlPreHook = "export LD=$CC";
5420     meta = {
5421       description = "Scrypt password based key derivation function";
5422       homepage = "https://github.com/DCIT/perl-Crypt-ScryptKDF";
5423       license = with lib.licenses; [ artistic1 gpl1Plus ];
5424       maintainers = [ maintainers.sgo ];
5425     };
5426   };
5428   CryptSmbHash = buildPerlPackage {
5429     pname = "Crypt-SmbHash";
5430     version = "0.12";
5431     src = fetchurl {
5432       url = "mirror://cpan/authors/id/B/BJ/BJKUIT/Crypt-SmbHash-0.12.tar.gz";
5433       hash = "sha256-aMSsfqv6lX3PiUwsI7zsCW+H6M8G3t/Lv3AuVTHbsTc=";
5434     };
5435     meta = {
5436       description = "Perl-only implementation of lanman and nt md4 hash functions, for use in Samba style smbpasswd entries";
5437       license = with lib.licenses; [ gpl2Plus ];
5438     };
5439   };
5441   CryptSodium = buildPerlPackage {
5442     pname = "Crypt-Sodium";
5443     version = "0.11";
5444     src = fetchurl {
5445       url = "mirror://cpan/authors/id/M/MG/MGREGORO/Crypt-Sodium-0.11.tar.gz";
5446       hash = "sha256-kHxzoQVs6gV9qYGa6kipKreG5qqq858c3ZZHsj8RbHg=";
5447     };
5448     env.NIX_CFLAGS_COMPILE = "-I${pkgs.libsodium.dev}/include";
5449     NIX_CFLAGS_LINK = "-L${pkgs.libsodium.out}/lib -lsodium";
5450     meta = {
5451       description = "Perl bindings for libsodium (NaCL)";
5452       homepage = "https://metacpan.org/release/Crypt-Sodium";
5453       license = with lib.licenses; [ artistic1 gpl1Plus ];
5454       maintainers = [ maintainers.sgo ];
5455     };
5456   };
5458   CryptTwofish = buildPerlPackage {
5459     pname = "Crypt-Twofish";
5460     version = "2.18";
5461     src = fetchurl {
5462       url = "mirror://cpan/authors/id/A/AM/AMS/Crypt-Twofish-2.18.tar.gz";
5463       hash = "sha256-WIFVXWGHlyojgqoNTbLXTJcLBndMYhtspSNzkjbS1QE=";
5464     };
5465     meta = {
5466       description = "Twofish Encryption Algorithm";
5467       license = with lib.licenses; [ artistic1 gpl1Plus ];
5468       maintainers = [ maintainers.sgo ];
5469     };
5470   };
5472   CryptOpenPGP = buildPerlPackage {
5473     pname = "Crypt-OpenPGP";
5474     version = "1.12";
5475     src = fetchurl {
5476       url = "mirror://cpan/authors/id/S/SR/SROMANOV/Crypt-OpenPGP-1.12.tar.gz";
5477       hash = "sha256-6Kf/Kpk7dqaa1t/9vlV1W+Vni4Tm7ElNzZq5Zvdm9Q4=";
5478     };
5479     patches = [
5480       # See https://github.com/NixOS/nixpkgs/pull/93599
5481       ../development/perl-modules/crypt-openpgp-remove-impure-keygen-tests.patch
5482     ];
5483     buildInputs = [ TestException ];
5484     propagatedBuildInputs = [ AltCryptRSABigInt CryptCAST5_PP CryptDES_EDE3 CryptDSA CryptIDEA CryptRIPEMD160 CryptRijndael CryptTwofish FileHomeDir LWP ];
5486     nativeBuildInputs = lib.optional stdenv.hostPlatform.isDarwin shortenPerlShebang;
5487     postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
5488       shortenPerlShebang $out/bin/pgplet
5489     '';
5490     doCheck = false; /* test fails with 'No random source available!' */
5492     meta = {
5493       description = "Pure-Perl OpenPGP implementation";
5494       homepage = "https://github.com/btrott/Crypt-OpenPGP";
5495       license = with lib.licenses; [ artistic1 gpl1Plus ];
5496       maintainers = [ maintainers.sgo ];
5497       mainProgram = "pgplet";
5498     };
5499   };
5501   CryptOpenSSLAES = buildPerlPackage {
5502     pname = "Crypt-OpenSSL-AES";
5503     version = "0.17";
5504     src = fetchurl {
5505       url = "mirror://cpan/authors/id/T/TI/TIMLEGGE/Crypt-OpenSSL-AES-0.17.tar.gz";
5506       hash = "sha256-7+GBsYxtIqc/LlNWOQ6Fdyes5UY2JeIhHdhgIyvtO7c=";
5507     };
5508     buildInputs = [ CryptOpenSSLGuess FileWhich pkgs.openssl ];
5509     env.NIX_CFLAGS_COMPILE = "-I${pkgs.openssl.dev}/include";
5510     NIX_CFLAGS_LINK = "-L${lib.getLib pkgs.openssl}/lib -lcrypto";
5511     meta = {
5512       description = "Perl wrapper around OpenSSL's AES library";
5513       license = with lib.licenses; [ artistic1 gpl1Plus ];
5514     };
5515   };
5517   CryptOpenSSLBignum = buildPerlPackage {
5518     pname = "Crypt-OpenSSL-Bignum";
5519     version = "0.09";
5520     src = fetchurl {
5521       url = "mirror://cpan/authors/id/K/KM/KMX/Crypt-OpenSSL-Bignum-0.09.tar.gz";
5522       hash = "sha256-I05y+4OW1FUn5v1F5DdZxcPzogjPjynmoiFhqZb9Qtw=";
5523     };
5524     env.NIX_CFLAGS_COMPILE = "-I${pkgs.openssl.dev}/include";
5525     NIX_CFLAGS_LINK = "-L${lib.getLib pkgs.openssl}/lib -lcrypto";
5526     meta = {
5527       description = "OpenSSL's multiprecision integer arithmetic";
5528       license = with lib.licenses; [ artistic1 gpl1Plus ];
5529     };
5530   };
5532   CryptOpenSSLGuess = buildPerlPackage {
5533     pname = "Crypt-OpenSSL-Guess";
5534     version = "0.15";
5535     src = fetchurl {
5536       url = "mirror://cpan/authors/id/A/AK/AKIYM/Crypt-OpenSSL-Guess-0.15.tar.gz";
5537       hash = "sha256-HFAzOBgZ/bTJCH3SkbkOxw54ENMdV+remziOzP1wOG0=";
5538     };
5539     meta = {
5540       description = "Guess OpenSSL include path";
5541       homepage = "https://github.com/akiym/Crypt-OpenSSL-Guess";
5542       license = with lib.licenses; [ artistic1 gpl1Plus ];
5543     };
5544   };
5546   CryptOpenSSLRandom = buildPerlPackage {
5547     pname = "Crypt-OpenSSL-Random";
5548     version = "0.15";
5549     src = fetchurl {
5550       url = "mirror://cpan/authors/id/R/RU/RURBAN/Crypt-OpenSSL-Random-0.15.tar.gz";
5551       hash = "sha256-8IdvqhujER45uGqnMMYDIR7/KQXkYMcqV7YejPR1zvQ=";
5552     };
5553     env.NIX_CFLAGS_COMPILE = "-I${pkgs.openssl.dev}/include";
5554     NIX_CFLAGS_LINK = "-L${lib.getLib pkgs.openssl}/lib -lcrypto";
5555     OPENSSL_PREFIX = pkgs.openssl;
5556     buildInputs = [ CryptOpenSSLGuess ];
5557     meta = {
5558       description = "OpenSSL/LibreSSL pseudo-random number generator access";
5559       license = with lib.licenses; [ artistic1 gpl1Plus ];
5560     };
5561   };
5563   CryptOpenSSLRSA = buildPerlPackage {
5564     pname = "Crypt-OpenSSL-RSA";
5565     version = "0.33";
5566     src = fetchurl {
5567       url = "mirror://cpan/authors/id/T/TO/TODDR/Crypt-OpenSSL-RSA-0.33.tar.gz";
5568       hash = "sha256-vb5jD21vVAMldGrZmXcnKshmT/gb0Z8K2rptb0Xv2GQ=";
5569     };
5570     propagatedBuildInputs = [ CryptOpenSSLRandom ];
5571     env.NIX_CFLAGS_COMPILE = "-I${pkgs.openssl.dev}/include";
5572     NIX_CFLAGS_LINK = "-L${lib.getLib pkgs.openssl}/lib -lcrypto";
5573     OPENSSL_PREFIX = pkgs.openssl;
5574     buildInputs = [ CryptOpenSSLGuess ];
5575     meta = {
5576       description = "RSA encoding and decoding, using the openSSL libraries";
5577       license = with lib.licenses; [ artistic1 gpl1Plus ];
5578     };
5579   };
5581   CryptOpenSSLX509 = buildPerlPackage {
5582     pname = "Crypt-OpenSSL-X509";
5583     version = "1.915";
5584     src = fetchurl {
5585       url = "mirror://cpan/authors/id/J/JO/JONASBN/Crypt-OpenSSL-X509-1.915.tar.gz";
5586       hash = "sha256-xNvBbE/CloV4I3v8MkWH/9eSSacQFQJlLbnjjUSJUX8=";
5587     };
5588     env.NIX_CFLAGS_COMPILE = "-I${pkgs.openssl.dev}/include";
5589     NIX_CFLAGS_LINK = "-L${lib.getLib pkgs.openssl}/lib -lcrypto";
5590     OPENSSL_PREFIX = pkgs.openssl;
5591     buildInputs = [ CryptOpenSSLGuess ];
5592     propagatedBuildInputs = [ ConvertASN1 ];
5593     meta = {
5594       description = "Perl extension to OpenSSL's X509 API";
5595       homepage = "https://github.com/dsully/perl-crypt-openssl-x509";
5596       license = with lib.licenses; [ artistic1 gpl1Plus ];
5597       maintainers = [ maintainers.sgo ];
5598     };
5599   };
5601   CryptPBKDF2 = buildPerlPackage {
5602     pname = "Crypt-PBKDF2";
5603     version = "0.161520";
5604     src = fetchurl {
5605       url = "mirror://cpan/authors/id/A/AR/ARODLAND/Crypt-PBKDF2-0.161520.tar.gz";
5606       hash = "sha256-l9+nmjCaCG4YSk5hBH+KEP+z2wUQJefSIqJfGRMLpBc=";
5607     };
5608     buildInputs = [ TestFatal ];
5609     propagatedBuildInputs = [ DigestHMAC DigestSHA3 Moo TypeTiny namespaceautoclean strictures ];
5610     meta = {
5611       description = "PBKDF2 password hash algorithm";
5612       homepage = "https://metacpan.org/release/Crypt-PBKDF2";
5613       license = with lib.licenses; [ artistic1 gpl1Plus ];
5614       maintainers = [ maintainers.sgo ];
5615     };
5616   };
5618   CryptPerl = buildPerlPackage {
5619     pname = "Crypt-Perl";
5620     version = "0.38";
5621     src = fetchurl {
5622       url = "mirror://cpan/authors/id/F/FE/FELIPE/Crypt-Perl-0.38.tar.gz";
5623       hash = "sha256-eJdUj7AeFqIK5JDt3UZX+Br3sZKEFLkvbbQsY10ax+A=";
5624     };
5625     nativeCheckInputs = [ pkgs.openssl MathBigIntGMP ];
5626     buildInputs = [ CallContext ExtUtilsMakeMakerCPANfile FileSlurp FileWhich TestClass TestDeep TestException TestFailWarnings TestNoWarnings ];
5627     propagatedBuildInputs = [ BytesRandomSecureTiny ClassAccessor ConvertASN1 CryptFormat MathProvablePrime SymbolGet TryTiny ];
5628     meta = {
5629       description = "Cryptography in pure Perl";
5630       license = with lib.licenses; [ artistic1 gpl1Plus ];
5631       maintainers = [ maintainers.sgo ];
5632     };
5633   };
5635   CryptEd25519 = buildPerlPackage {
5636     pname = "Crypt-Ed25519";
5637     version = "1.05";
5638     src = fetchurl {
5639       url = "mirror://cpan/authors/id/M/ML/MLEHMANN/Crypt-Ed25519-1.05.tar.gz";
5640       hash = "sha256-sdEaWU/rUeQG2BsUfcDRClV8z0yrgcDbP4mBAmd9JKg=";
5641     };
5643     nativeBuildInputs = [ CanaryStability ];
5644     buildInputs = [ CanaryStability ];
5646     meta = {
5647       description = "Minimal Ed25519 bindings";
5648       license = with lib.licenses; [ artistic2 ];
5649       maintainers = [ maintainers.thoughtpolice ];
5650     };
5651   };
5653   CryptSSLeay = buildPerlPackage {
5654     pname = "Crypt-SSLeay";
5655     version = "0.73_06";
5656     src = fetchurl {
5657       url = "mirror://cpan/authors/id/N/NA/NANIS/Crypt-SSLeay-0.73_06.tar.gz";
5658       hash = "sha256-+OzKRch+uRMlmSsT8FlPgI5vG8TDuafxQbmoODhNJSw=";
5659     };
5661     makeMakerFlags = [ "--libpath=${lib.getLib pkgs.openssl}/lib" "--incpath=${pkgs.openssl.dev}/include" ];
5662     buildInputs = [ PathClass ];
5663     propagatedBuildInputs = [ BytesRandomSecure LWPProtocolHttps ];
5664     meta = {
5665       description = "OpenSSL support for LWP";
5666       license = with lib.licenses; [ artistic2 ];
5667     };
5668   };
5670   CSSDOM = buildPerlPackage {
5671     pname = "CSS-DOM";
5672     version = "0.17";
5673     src = fetchurl {
5674       url = "mirror://cpan/authors/id/S/SP/SPROUT/CSS-DOM-0.17.tar.gz";
5675       hash = "sha256-Zbl46/PDmF5V7jK7baHp+upJSoXTAFxjuux+lphZ8CY=";
5676     };
5678     patches = [
5679       # Replace apostrophe as package separator
5680       # https://rt.cpan.org/Public/Bug/Display.html?id=146661
5681       ../development/perl-modules/CSSDOM-replace-apostrophe.patch
5682     ];
5684     propagatedBuildInputs = [ Clone ];
5685     meta = {
5686       description = "Document Object Model for Cascading Style Sheets";
5687       license = with lib.licenses; [ artistic1 gpl1Plus ];
5688     };
5689   };
5691   CSSMinifier = buildPerlPackage {
5692     pname = "CSS-Minifier";
5693     version = "0.01";
5694     src = fetchurl {
5695       url = "mirror://cpan/authors/id/P/PM/PMICHAUX/CSS-Minifier-0.01.tar.gz";
5696       hash = "sha256-0Kk0m46LfoOrcM+IVM+7Qv8pwfbHyCmPIlfdIaoMf+8=";
5697     };
5698     meta = {
5699       description = "Perl extension for minifying CSS";
5700       license = with lib.licenses; [ artistic1 ];
5701     };
5702   };
5704   CSSMinifierXS = buildPerlPackage {
5705     pname = "CSS-Minifier-XS";
5706     version = "0.13";
5707     src = fetchurl {
5708       url = "mirror://cpan/authors/id/G/GT/GTERMARS/CSS-Minifier-XS-0.13.tar.gz";
5709       hash = "sha256-xBnjCM3IKvHCXWuNB7L/JjR6Yit6Y+wghWq+jbQFH4I=";
5710     };
5711     perlPreHook = lib.optionalString (stdenv.hostPlatform.isi686 || stdenv.hostPlatform.isDarwin) "export LD=$CC";
5712     buildInputs = [ TestDiagINC ];
5713     meta = {
5714       description = "XS based CSS minifier";
5715       homepage = "https://metacpan.org/release/CSS-Minifier-XS";
5716       license = with lib.licenses; [ artistic1 gpl1Plus ];
5717     };
5718   };
5720   CSSSquish = buildPerlPackage {
5721     pname = "CSS-Squish";
5722     version = "0.10";
5723     src = fetchurl {
5724       url = "mirror://cpan/authors/id/T/TS/TSIBLEY/CSS-Squish-0.10.tar.gz";
5725       hash = "sha256-ZfwNaazR+jPZpMOwnM4PvXN9dHsfzE6dh+vZEFDLy04=";
5726     };
5727     buildInputs = [ TestLongString ];
5728     propagatedBuildInputs = [ URI ];
5729     meta = {
5730       description = "Compact many CSS files into one big file";
5731       license = with lib.licenses; [ artistic1 gpl1Plus ];
5732     };
5733   };
5735   Curses = buildPerlPackage {
5736     pname = "Curses";
5737     version = "1.44";
5738     src = fetchurl {
5739       url = "mirror://cpan/authors/id/G/GI/GIRAFFED/Curses-1.44.tar.gz";
5740       hash = "sha256-ou+4x8iG1pL/xNshNhx2gJoGXliOQ/rQ1n5E751CvTA=";
5741     };
5742     preConfigure = ''
5743       substituteInPlace makeConfig \
5744         --replace '#! /usr/bin/perl' '#!${perl}/bin/perl'
5745     '';
5746     propagatedBuildInputs = [ pkgs.ncurses ];
5747     NIX_CFLAGS_LINK = "-L${pkgs.ncurses.out}/lib -lncurses";
5748     meta = {
5749       description = "Perl bindings to ncurses";
5750       license = with lib.licenses; [ artistic1 ];
5751     };
5752   };
5754   CursesUI = buildPerlPackage {
5755     pname = "Curses-UI";
5756     version = "0.9609";
5757     src = fetchurl {
5758       url = "mirror://cpan/authors/id/M/MD/MDXI/Curses-UI-0.9609.tar.gz";
5759       hash = "sha256-CrgnpRO24UQDGE+wZajqHS69oSLSF4y/RceB8xEkDq8=";
5760     };
5761     propagatedBuildInputs = [ Curses TermReadKey ];
5762     meta = {
5763       description = "Curses based OO user interface framework";
5764       license = with lib.licenses; [ artistic1 gpl1Plus ];
5765     };
5766   };
5768   CursesUIGrid = buildPerlPackage {
5769     pname = "Curses-UI-Grid";
5770     version = "0.15";
5771     src = fetchurl {
5772       url = "mirror://cpan/authors/id/A/AD/ADRIANWIT/Curses-UI-Grid-0.15.tar.gz";
5773       hash = "sha256-CCDKSp+5SbqPr5evV0AYuu/7aU6YDFCHu2UiqnC52+w=";
5774     };
5775     propagatedBuildInputs = [ CursesUI TestPod TestPodCoverage ];
5776     meta = {
5777       description = "Create and manipulate data in grid model";
5778       license = with lib.licenses; [ artistic1 gpl1Plus ];
5779     };
5780   };
5782   CryptX = buildPerlPackage {
5783     pname = "CryptX";
5784     version = "0.080";
5785     src = fetchurl {
5786       url = "mirror://cpan/authors/id/M/MI/MIK/CryptX-0.080.tar.gz";
5787       hash = "sha256-tFe3khlKbJwT8G/goLXqFYllwygvOFypPh8AorM+fok=";
5788     };
5789     meta = {
5790       description = "Cryptographic toolkit";
5791       license = with lib.licenses; [ artistic1 gpl1Plus ];
5792     };
5793   };
5795   CryptX509 = buildPerlPackage {
5796     pname = "Crypt-X509";
5797     version = "0.55";
5798     src = fetchurl {
5799       url = "mirror://cpan/authors/id/M/MR/MRSCOTTY/Crypt-X509-0.55.tar.gz";
5800       hash = "sha256-FHlrEdFfdq10ROeKYZtw/92RMIaN0LANhYV5yTA4Icc=";
5801     };
5802     propagatedBuildInputs = [ ConvertASN1 ];
5803     meta = {
5804       description = "Parse a X.509 certificate";
5805       license = with lib.licenses; [ artistic1 gpl1Plus ];
5806     };
5807   };
5809   CwdGuard = buildPerlModule {
5810     pname = "Cwd-Guard";
5811     version = "0.05";
5812     src = fetchurl {
5813       url = "mirror://cpan/authors/id/K/KA/KAZEBURO/Cwd-Guard-0.05.tar.gz";
5814       hash = "sha256-evx8orlQLkQCQZOK2Xo+fr1VAYDr1hQuHbOUGGsmjnc=";
5815     };
5816     buildInputs = [ TestRequires ];
5817     meta = {
5818       description = "Temporary changing working directory (chdir)";
5819       license = with lib.licenses; [ artistic1 gpl1Plus ];
5820     };
5821   };
5823   DataClone = buildPerlPackage {
5824     pname = "Data-Clone";
5825     version = "0.004";
5826     src = fetchurl {
5827       url = "mirror://cpan/authors/id/G/GF/GFUJI/Data-Clone-0.004.tar.gz";
5828       hash = "sha256-L+XheYgqa5Jt/vChCLSiyHof+waJK88vuI5Mj0uEODw=";
5829     };
5830     buildInputs = [ TestRequires ];
5831     patches = [
5832       ../development/perl-modules/Data-Clone-fix-apostrophe-package-separator.patch
5833     ];
5834     meta = {
5835       description = "Polymorphic data cloning";
5836       license = with lib.licenses; [ artistic1 gpl1Plus ];
5837     };
5838   };
5840   DataCompactReadonly = buildPerlPackage {
5841     pname = "Data-CompactReadonly";
5842     version = "0.1.0";
5843     src = fetchurl {
5844       url = "mirror://cpan/authors/id/D/DC/DCANTRELL/Data-CompactReadonly-0.1.0.tar.gz";
5845       hash = "sha256-fVYJCEz1E7p6d4u1lSNHDoNXdn1ZHL1CxYTgPfO+xug=";
5846     };
5847     propagatedBuildInputs = [ DataIEEE754 DevelStackTrace ScalarType StringBinaryInterpolation TestDifferences TestException ];
5848     meta = {
5849       description = "Compact Read Only Database that consumes very little memory";
5850       license = with lib.licenses; [ artistic1 gpl2Only ];
5851     };
5852   };
5854   DataCompare = buildPerlPackage {
5855     pname = "Data-Compare";
5856     version = "1.29";
5857     src = fetchurl {
5858       url = "mirror://cpan/authors/id/D/DC/DCANTRELL/Data-Compare-1.29.tar.gz";
5859       hash = "sha256-U8nbO5MmPIiqo8QHLYGere0CTXo2s4wMN3N9KI1a+ow=";
5860     };
5861     propagatedBuildInputs = [ Clone FileFindRule ];
5862     meta = {
5863       description = "Compare perl data structures";
5864       license = with lib.licenses; [ artistic1 gpl1Plus ];
5865     };
5866   };
5868   DataDump = buildPerlPackage {
5869     pname = "Data-Dump";
5870     version = "1.25";
5871     src = fetchurl {
5872       url = "mirror://cpan/authors/id/G/GA/GARU/Data-Dump-1.25.tar.gz";
5873       hash = "sha256-pKpuDdvznVrUm93+D4nZ2oZOO8APYnEl0bxYBHL1P70=";
5874     };
5875     meta = {
5876       description = "Pretty printing of data structures";
5877       license = with lib.licenses; [ artistic1 gpl1Plus ];
5878     };
5879   };
5881   DataDumperAutoEncode = buildPerlModule {
5882     pname = "Data-Dumper-AutoEncode";
5883     version = "1.00";
5884     src = fetchurl {
5885       url = "mirror://cpan/authors/id/B/BA/BAYASHI/Data-Dumper-AutoEncode-1.00.tar.gz";
5886       hash = "sha256-LZoCYq1EPTIdxInvbfp7Pu0RonCKddOX03G7JYXl7KE=";
5887     };
5888     buildInputs = [ ModuleBuildPluggable ModuleBuildPluggableCPANfile ];
5889     propagatedBuildInputs = [ IOInteractiveTiny ];
5890     meta = {
5891       description = "Dump with recursive encoding";
5892       license = with lib.licenses; [ artistic2 ];
5893       mainProgram = "edumper";
5894     };
5895   };
5897   DataDumperConcise = buildPerlPackage {
5898     pname = "Data-Dumper-Concise";
5899     version = "2.023";
5900     src = fetchurl {
5901       url = "mirror://cpan/authors/id/E/ET/ETHER/Data-Dumper-Concise-2.023.tar.gz";
5902       hash = "sha256-psIvETyvMRN1kN7xtwKKfnGO+s4yKCctBnLCXgNdWFM=";
5903     };
5904     meta = {
5905       description = "Less indentation and newlines plus sub deparsing";
5906       license = with lib.licenses; [ artistic1 gpl1Plus ];
5907     };
5908   };
5910   DataEntropy = buildPerlModule {
5911     pname = "Data-Entropy";
5912     version = "0.007";
5913     src = fetchurl {
5914       url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Data-Entropy-0.007.tar.gz";
5915       hash = "sha256-JhHEoaMDhZTXnqTtFNnhWpr493EF9RZneV/k+KU0J+Q=";
5916     };
5917     propagatedBuildInputs = [ CryptRijndael DataFloat HTTPLite ParamsClassify ];
5918     meta = {
5919       description = "Entropy (randomness) management";
5920       license = with lib.licenses; [ artistic1 gpl1Plus ];
5921     };
5922   };
5924   DataFloat = buildPerlModule {
5925     pname = "Data-Float";
5926     version = "0.013";
5927     src = fetchurl {
5928       url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Data-Float-0.013.tar.gz";
5929       hash = "sha256-4rFSPYWJMLi729GW8II19eZ4uEkZuodxLiYxO5wnUYo=";
5930     };
5931     meta = {
5932       description = "Details of the floating point data type";
5933       license = with lib.licenses; [ artistic1 gpl1Plus ];
5934     };
5935   };
5937   DataFormValidator = buildPerlPackage {
5938     pname = "Data-FormValidator";
5939     version = "4.88";
5940     src = fetchurl {
5941       url = "mirror://cpan/authors/id/D/DF/DFARRELL/Data-FormValidator-4.88.tar.gz";
5942       hash = "sha256-waU5+RySy82KjYNZfsmnZD/NjM9alOFTgsN2UokXAGY=";
5943     };
5944     propagatedBuildInputs = [ DateCalc EmailValid FileMMagic ImageSize MIMETypes RegexpCommon ];
5945     buildInputs = [ CGI ];
5946     meta = {
5947       description = "Validates user input (usually from an HTML form) based on input profile";
5948       license = with lib.licenses; [ artistic1 gpl1Plus ];
5949     };
5950   };
5952   DataGUID = buildPerlPackage {
5953     pname = "Data-GUID";
5954     version = "0.051";
5955     src = fetchurl {
5956       url = "mirror://cpan/authors/id/R/RJ/RJBS/Data-GUID-0.051.tar.gz";
5957       hash = "sha256-aOp3xz/KiROC8gbhJEkJRQG2+/Llf1SQLVBkInz9ji4=";
5958     };
5959     propagatedBuildInputs = [ DataUUID SubExporter ];
5960     meta = {
5961       description = "Globally unique identifiers";
5962       homepage = "https://github.com/rjbs/Data-GUID";
5963       license = with lib.licenses; [ artistic1 gpl1Plus ];
5964     };
5965   };
5967   DataHexDump = buildPerlPackage {
5968     pname = "Data-HexDump";
5969     version = "0.04";
5970     src = fetchurl {
5971       url = "mirror://cpan/authors/id/N/NE/NEILB/Data-HexDump-0.04.tar.gz";
5972       hash = "sha256-vDb0BEOKw2rSuSlVOSJ9Nvmc0WI/HjR693xZTEDMvPg=";
5973     };
5974     meta = {
5975       description = "Hexadecial Dumper";
5976       homepage = "https://github.com/neilb/Data-HexDump";
5977       license = with lib.licenses; [ artistic1 gpl1Plus ];
5978       maintainers = with maintainers; [ AndersonTorres ];
5979       mainProgram = "hexdump";
5980     };
5981   };
5983   DataHexdumper = buildPerlPackage {
5984     pname = "Data-Hexdumper";
5985     version = "3.0001";
5986     src = fetchurl {
5987       url = "mirror://cpan/authors/id/D/DC/DCANTRELL/Data-Hexdumper-3.0001.tar.gz";
5988       hash = "sha256-+SQ8vor/7VBF/k31BXJqenKJRx4wxRrAZbPtbODRpgQ=";
5989     };
5990     meta = {
5991       description = "Make binary data human-readable";
5992       license = with lib.licenses; [ artistic1 gpl2Only ];
5993     };
5994   };
5996   DataHierarchy = buildPerlPackage {
5997     pname = "Data-Hierarchy";
5998     version = "0.34";
5999     src = fetchurl {
6000       url = "mirror://cpan/authors/id/C/CL/CLKAO/Data-Hierarchy-0.34.tar.gz";
6001       hash = "sha256-s6jmK1Pin3HdWYmu75n7+vH0tuJyoGgAOBNg1Z6f2e0=";
6002     };
6003     buildInputs = [ TestException ];
6004     meta = {
6005       description = "Handle data in a hierarchical structure";
6006       license = with lib.licenses; [ artistic1 gpl1Plus ];
6007     };
6008   };
6010   DataICal = buildPerlPackage {
6011     pname = "Data-ICal";
6012     version = "0.24";
6013     src = fetchurl {
6014       url = "mirror://cpan/authors/id/B/BP/BPS/Data-ICal-0.24.tar.gz";
6015       hash = "sha256-czHHyEiGxTM3wNuCNhXg5xNKjxPv0oTlwgcm1bzVLf8=";
6016     };
6017     buildInputs = [ TestLongString TestNoWarnings TestWarn ];
6018     propagatedBuildInputs = [ ClassReturnValue TextvFileasData ];
6019     meta = {
6020       description = "Generates iCalendar (RFC 2445) calendar files";
6021       license = with lib.licenses; [ artistic1 gpl1Plus ];
6022     };
6023   };
6025   DataIEEE754 = buildPerlPackage {
6026     pname = "Data-IEEE754";
6027     version = "0.02";
6028     src = fetchurl {
6029       url = "mirror://cpan/authors/id/M/MA/MAXMIND/Data-IEEE754-0.02.tar.gz";
6030       hash = "sha256-xvSrE0ZygjQTtQ8HR5saGwUfTO5C3Tzn6xWD1mkbZx0=";
6031     };
6032     buildInputs = [ TestBits ];
6033     meta = {
6034       description = "Pack and unpack big-endian IEEE754 floats and doubles";
6035       homepage = "https://metacpan.org/release/Data-IEEE754";
6036       license = with lib.licenses; [ artistic2 ];
6037     };
6038   };
6040   DataInteger = buildPerlModule {
6041     pname = "Data-Integer";
6042     version = "0.006";
6043     src = fetchurl {
6044       url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Data-Integer-0.006.tar.gz";
6045       hash = "sha256-Y7d+3jtjnONRUlA0hjYpr5iavL/0qwOxT8Tq1GH/o1Q=";
6046     };
6047     meta = {
6048       description = "Details of the native integer data type";
6049       license = with lib.licenses; [ artistic1 gpl1Plus ];
6050     };
6051   };
6053   DataMessagePack = buildPerlModule {
6054     pname = "Data-MessagePack";
6055     version = "1.02";
6056     src = fetchurl {
6057       url = "mirror://cpan/authors/id/S/SY/SYOHEX/Data-MessagePack-1.02.tar.gz";
6058       hash = "sha256-wz20R5CqjSVBR4guI3jf/pcK1gMxNQveBi0XlTSCsbc=";
6059     };
6060     buildInputs = [ ModuleBuildXSUtil TestRequires ];
6061     meta = {
6062       description = "Grep-like program for searching source code";
6063       homepage = "https://github.com/msgpack/msgpack-perl";
6064       license = with lib.licenses; [ artistic1 gpl1Plus ];
6065       maintainers = [ maintainers.sgo ];
6066       broken = stdenv.hostPlatform.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.DataMessagePack.x86_64-darwin
6067     };
6068   };
6070   DataOptList = buildPerlPackage {
6071     pname = "Data-OptList";
6072     version = "0.114";
6073     src = fetchurl {
6074       url = "mirror://cpan/authors/id/R/RJ/RJBS/Data-OptList-0.114.tar.gz";
6075       hash = "sha256-n9EJO5F6Ift5rhYH21PRE7TgrY/grndssHen5QBE/fM=";
6076     };
6077     propagatedBuildInputs = [ ParamsUtil SubInstall ];
6078     meta = {
6079       description = "Parse and validate simple name/value option pairs";
6080       homepage = "https://github.com/rjbs/Data-OptList";
6081       license = with lib.licenses; [ artistic1 gpl1Plus ];
6082     };
6083   };
6085   DataPage = buildPerlPackage {
6086     pname = "Data-Page";
6087     version = "2.03";
6088     src = fetchurl {
6089       url = "mirror://cpan/authors/id/E/ET/ETHER/Data-Page-2.03.tar.gz";
6090       hash = "sha256-LvpSFn0ferNZAs8yrgJ3amI3BdeRnUEYmBKHsETOPYs=";
6091     };
6092     propagatedBuildInputs = [ ClassAccessorChained ];
6093     buildInputs = [ TestException ];
6094     meta = {
6095       description = "Help when paging through sets of results";
6096       license = with lib.licenses; [ artistic1 gpl1Plus ];
6097     };
6098   };
6100   DataPagePageset = buildPerlModule {
6101     pname = "Data-Page-Pageset";
6102     version = "1.02";
6103     src = fetchurl {
6104       url = "mirror://cpan/authors/id/C/CH/CHUNZI/Data-Page-Pageset-1.02.tar.gz";
6105       hash = "sha256-zqwbtVQ+I9qyUZUTxibj/+ZaF3uOHtnlagMNRVHUUZA=";
6106     };
6107     buildInputs = [ ClassAccessor DataPage TestException ];
6108     meta = {
6109       description = "Change long page list to be shorter and well navigate";
6110       license = with lib.licenses; [ artistic1 gpl1Plus ];
6111     };
6112   };
6114   DataPassword = buildPerlPackage {
6115     pname = "Data-Password";
6116     version = "1.12";
6117     src = fetchurl {
6118       url = "mirror://cpan/authors/id/R/RA/RAZINF/Data-Password-1.12.tar.gz";
6119       hash = "sha256-gwzegXQf84Q4VBLhb6ulV0WlSnzAGd0j1+1PBdVRqWE=";
6120     };
6121     meta = {
6122       description = "Perl extension for assessing password quality";
6123       license = with lib.licenses; [ artistic1 gpl1Plus ];
6124     };
6125   };
6127   DataPerl = buildPerlPackage {
6128     pname = "Data-Perl";
6129     version = "0.002011";
6130     src = fetchurl {
6131       url = "mirror://cpan/authors/id/T/TO/TOBYINK/Data-Perl-0.002011.tar.gz";
6132       hash = "sha256-jTTb4xTPotmb2arlRrvelMOLsFt0sHyJveFnOm9sVfQ=";
6133     };
6134     buildInputs = [ TestDeep TestFatal TestOutput ];
6135     propagatedBuildInputs = [ ClassMethodModifiers ListMoreUtils ModuleRuntime RoleTiny strictures ];
6136     meta = {
6137       description = "Base classes wrapping fundamental Perl data types";
6138       homepage = "https://github.com/tobyink/Data-Perl";
6139       license = with lib.licenses; [ artistic1 gpl1Plus ];
6140     };
6141   };
6143   DataPrinter = buildPerlPackage {
6144     pname = "Data-Printer";
6145     version = "1.001001";
6146     src = fetchurl {
6147       url = "mirror://cpan/authors/id/G/GA/GARU/Data-Printer-1.001001.tar.gz";
6148       hash = "sha256-q64DMVUU0rcxxkYrjwZ2SN2ZChA1SyFgbHeM/ZHUe4A=";
6149     };
6150     propagatedBuildInputs = [ ClonePP FileHomeDir PackageStash SortNaturally ];
6151     meta = {
6152       description = "Colored & full-featured pretty print of Perl data structures and objects";
6153       license = with lib.licenses; [ artistic1 gpl1Plus ];
6154     };
6155   };
6157   DataRandom = buildPerlPackage {
6158     pname = "Data-Random";
6159     version = "0.13";
6160     src = fetchurl {
6161       url = "mirror://cpan/authors/id/B/BA/BAREFOOT/Data-Random-0.13.tar.gz";
6162       hash = "sha256-61kBhKjbKKfknqsJ4l+GUMM/H2aLakcoKd50pTJWv8A=";
6163     };
6164     buildInputs = [ FileShareDirInstall TestMockTime ];
6165     meta = {
6166       description = "Perl module to generate random data";
6167       license = with lib.licenses; [ artistic1 gpl1Plus ];
6168     };
6169   };
6171   DataSection = buildPerlPackage {
6172     pname = "Data-Section";
6173     version = "0.200008";
6174     src = fetchurl {
6175       url = "mirror://cpan/authors/id/R/RJ/RJBS/Data-Section-0.200008.tar.gz";
6176       hash = "sha256-g6zHpV091+026deNNQrzE4xpz6F4pEdlgicS/0M7mQ4=";
6177     };
6178     propagatedBuildInputs = [ MROCompat SubExporter ];
6179     buildInputs = [ TestFailWarnings ];
6180     meta = {
6181       description = "Read multiple hunks of data out of your DATA section";
6182       homepage = "https://github.com/rjbs/Data-Section";
6183       license = with lib.licenses; [ artistic1 gpl1Plus ];
6184     };
6185   };
6187   DataSectionSimple = buildPerlPackage {
6188     pname = "Data-Section-Simple";
6189     version = "0.07";
6190     src = fetchurl {
6191       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Data-Section-Simple-0.07.tar.gz";
6192       hash = "sha256-CzA1/9uQmqH33ta2CPqdiUQhyCwJfVHnFxFw1nV5qcs=";
6193     };
6194     buildInputs = [ TestRequires ];
6195     meta = {
6196       description = "Read data from __DATA__";
6197       homepage = "https://github.com/miyagawa/Data-Section-Simple";
6198       license = with lib.licenses; [ artistic1 gpl1Plus ];
6199     };
6200   };
6202   DataSerializer = buildPerlModule {
6203     pname = "Data-Serializer";
6204     version = "0.65";
6205     src = fetchurl {
6206       url = "mirror://cpan/authors/id/N/NE/NEELY/Data-Serializer-0.65.tar.gz";
6207       hash = "sha256-EhVaUgADPYCl8HVzd19JPxcAcs97KK48otFStZGXHxE=";
6208     };
6209     meta = {
6210       description = "Modules that serialize data structures";
6211       homepage = "https://metacpan.org/release/Data-Serializer";
6212       license = with lib.licenses; [ artistic1 gpl1Plus ];
6213     };
6214   };
6216   DataSExpression = buildPerlPackage {
6217     pname = "Data-SExpression";
6218     version = "0.41";
6219     src = fetchurl {
6220       url = "mirror://cpan/authors/id/N/NE/NELHAGE/Data-SExpression-0.41.tar.gz";
6221       hash = "sha256-gWJCakKFoJQ4X9+vbQnO0QbVr1dVP5U6yx1Whn3QFJs=";
6222     };
6223     buildInputs = [ TestDeep ];
6224     propagatedBuildInputs = [ ClassAccessor ];
6225     meta = {
6226       description = "Parse Lisp S-Expressions into perl data structures";
6227       license = with lib.licenses; [ artistic1 gpl1Plus ];
6228     };
6229   };
6231   DataSpreadPagination = buildPerlPackage {
6232     pname = "Data-SpreadPagination";
6233     version = "0.1.2";
6234     src = fetchurl {
6235       url = "mirror://cpan/authors/id/K/KN/KNEW/Data-SpreadPagination-0.1.2.tar.gz";
6236       hash = "sha256-dOv9hHEyw4zJ6DXhToLEPxgJqVy8mLuE0ffOLk70h+M=";
6237     };
6238     propagatedBuildInputs = [ DataPage MathRound ];
6239     meta = {
6240       description = "Page numbering and spread pagination";
6241       license = with lib.licenses; [ artistic1 gpl1Plus ];
6242     };
6243   };
6245   DataStag = buildPerlPackage {
6246     pname = "Data-Stag";
6247     version = "0.14";
6248     src = fetchurl {
6249       url = "mirror://cpan/authors/id/C/CM/CMUNGALL/Data-Stag-0.14.tar.gz";
6250       hash = "sha256-SrEiUI0vuG0XGhX0AG5c+JbV+s+mUhnAskOomQYljlk=";
6251     };
6252     propagatedBuildInputs = [ IOString ];
6253     meta = {
6254       description = "Structured Tags";
6255       license = with lib.licenses; [ artistic1 gpl1Plus ];
6256     };
6257   };
6259   DataStreamBulk = buildPerlPackage {
6260     pname = "Data-Stream-Bulk";
6261     version = "0.11";
6262     src = fetchurl {
6263       url = "mirror://cpan/authors/id/D/DO/DOY/Data-Stream-Bulk-0.11.tar.gz";
6264       hash = "sha256-BuCEMqa5dwVgbJJXCbmRKa2SZRbkd9WORGHks9nzCRc=";
6265     };
6266     buildInputs = [ TestRequires ];
6267     propagatedBuildInputs = [ Moose PathClass namespaceclean ];
6268     meta = {
6269       description = "N at a time iteration API";
6270       homepage = "https://metacpan.org/release/Data-Stream-Bulk";
6271       license = with lib.licenses; [ artistic1 gpl1Plus ];
6272     };
6273   };
6275   DataStructureUtil = buildPerlPackage {
6276     pname = "Data-Structure-Util";
6277     version = "0.16";
6278     src = fetchurl {
6279       url = "mirror://cpan/authors/id/A/AN/ANDYA/Data-Structure-Util-0.16.tar.gz";
6280       hash = "sha256-nNQqE+ZcsV86diluuaE02iIBaOx0fFaNMxpQrnot28Y=";
6281     };
6282     buildInputs = [ TestPod ];
6283     meta = {
6284       description = "Change nature of data within a structure";
6285       license = with lib.licenses; [ artistic1 gpl1Plus ];
6286     };
6287   };
6289   DataTaxi = buildPerlPackage {
6290     pname = "Data-Taxi";
6291     version = "0.96";
6292     src = fetchurl {
6293       url = "mirror://cpan/authors/id/M/MI/MIKO/Data-Taxi-0.96.tar.gz";
6294       hash = "sha256-q8s2EPygbZodmRaraYB0OmHYWvVfn9N2vqZxKommnHg=";
6295     };
6296     buildInputs = [ DebugShowStuff ];
6297     meta = {
6298       description = "Taint-aware, XML-ish data serialization";
6299       license = with lib.licenses; [ artistic1 gpl1Plus ];
6300     };
6301   };
6303   DataULID = buildPerlPackage {
6304     pname = "Data-ULID";
6305     version = "1.2.1";
6306     src = fetchurl {
6307       url = "mirror://cpan/authors/id/B/BA/BALDUR/Data-ULID-1.2.1.tar.gz";
6308       hash = "sha256-SbThGyY0inXfNONGF0UuMZ/XpygasJQgYvFieeqKHSc=";
6309     };
6310     propagatedBuildInputs = [ CryptX ];
6311     meta = {
6312       description = "Universally Unique Lexicographically Sortable Identifier";
6313       homepage = "https://metacpan.org/release/Data-ULID";
6314       license = with lib.licenses; [ artistic1 gpl1Plus ];
6315       maintainers = with maintainers; [ sgo ];
6316     };
6317   };
6319   DataUniqid = buildPerlPackage {
6320     pname = "Data-Uniqid";
6321     version = "0.12";
6322     src = fetchurl {
6323       url = "mirror://cpan/authors/id/M/MW/MWX/Data-Uniqid-0.12.tar.gz";
6324       hash = "sha256-tpGbpJuf6Yv98+isyue5t/eNyeceu9C3/vekXZkyTMs=";
6325     };
6326     meta = {
6327       description = "Perl extension for simple genrating of unique id's";
6328       license = with lib.licenses; [ artistic1 gpl1Plus ];
6329     };
6330   };
6332   DataUtil = buildPerlModule {
6333     pname = "Data-Util";
6334     version = "0.67";
6335     src = fetchurl {
6336       url = "mirror://cpan/authors/id/S/SY/SYOHEX/Data-Util-0.67.tar.gz";
6337       hash = "sha256-tVypHHafgTN8xrCrIMMmg4eOWyZj8cwljFEamZpd/dM=";
6338     };
6339     buildInputs = [ HashUtilFieldHashCompat ModuleBuildXSUtil ScopeGuard TestException ];
6340     perlPreHook = lib.optionalString stdenv.hostPlatform.isi686 "export LD=$CC"; # fix undefined reference to `__stack_chk_fail_local'
6341     meta = {
6342       description = "Selection of utilities for data and data types";
6343       homepage = "https://github.com/gfx/Perl-Data-Util";
6344       license = with lib.licenses; [ artistic1 gpl1Plus ];
6345       broken = stdenv.hostPlatform.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.DataUtil.x86_64-darwin
6346     };
6347   };
6349   DataURIEncode = buildPerlPackage {
6350     pname = "Data-URIEncode";
6351     version = "0.11";
6352     src = fetchurl {
6353       url = "mirror://cpan/authors/id/R/RH/RHANDOM/Data-URIEncode-0.11.tar.gz";
6354       hash = "sha256-Ucnvv4QjhTYW6qJIQeTRmWstsANpAGF/sdvHbHWh82A=";
6355     };
6356     meta = {
6357       description = "Allow complex data structures to be encoded using flat URIs";
6358       license = with lib.licenses; [ artistic1 gpl1Plus ];
6359     };
6360   };
6362   DataUUID = buildPerlPackage {
6363     pname = "Data-UUID";
6364     version = "1.226";
6365     src = fetchurl {
6366       url = "mirror://cpan/authors/id/R/RJ/RJBS/Data-UUID-1.226.tar.gz";
6367       hash = "sha256-CT1X/6DUEalLr6+uSVaX2yb1ydAncZj+P3zyviKZZFM=";
6368     };
6369     patches = [
6370       ../development/perl-modules/Data-UUID-CVE-2013-4184.patch
6371     ];
6372     meta = {
6373       description = "Globally/Universally Unique Identifiers (GUIDs/UUIDs)";
6374       license = with lib.licenses; [ bsd0 ];
6375     };
6376   };
6378   DataUUIDMT = buildPerlPackage {
6379     pname = "Data-UUID-MT";
6380     version = "1.001";
6381     src = fetchurl {
6382       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Data-UUID-MT-1.001.tar.gz";
6383       hash = "sha256-MExLmBKDEfhLf1KccBi6hJx102Q6qA6jgrSwgFfEZy0=";
6384     };
6385     buildInputs = [ ListAllUtils ];
6386     propagatedBuildInputs = [ MathRandomMTAuto ];
6387     meta = {
6388       description = "Fast random UUID generator using the Mersenne Twister algorithm";
6389       homepage = "https://metacpan.org/release/Data-UUID-MT";
6390       license = with lib.licenses; [ asl20 ];
6391     };
6392   };
6394   DataValidateDomain = buildPerlPackage {
6395     pname = "Data-Validate-Domain";
6396     version = "0.15";
6397     src = fetchurl {
6398       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Data-Validate-Domain-0.15.tar.gz";
6399       hash = "sha256-PJ95GHsNPHGt0fj1WbgN8VmTAKbSA+CxYcvhjhdqqzY=";
6400     };
6401     buildInputs = [ Test2Suite ];
6402     propagatedBuildInputs = [ NetDomainTLD ];
6403     meta = {
6404       description = "Domain and host name validation";
6405       homepage = "https://metacpan.org/release/Data-Validate-Domain";
6406       license = with lib.licenses; [ artistic1 gpl1Plus ];
6407     };
6408   };
6410   DataValidateIP = buildPerlPackage {
6411     pname = "Data-Validate-IP";
6412     version = "0.31";
6413     src = fetchurl {
6414       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Data-Validate-IP-0.31.tar.gz";
6415       hash = "sha256-c0r/hrb5ytQOHE2oHyj68Y4IAsdqVm2V5WE9QxgYL8E=";
6416     };
6417     buildInputs = [ TestRequires ];
6418     propagatedBuildInputs = [ NetAddrIP ];
6419     meta = {
6420       description = "IPv4 and IPv6 validation methods";
6421       homepage = "https://metacpan.org/release/Data-Validate-IP";
6422       license = with lib.licenses; [ artistic1 gpl1Plus ];
6423     };
6424   };
6426   DataValidateURI = buildPerlPackage {
6427     pname = "Data-Validate-URI";
6428     version = "0.07";
6429     src = fetchurl {
6430       url = "mirror://cpan/authors/id/S/SO/SONNEN/Data-Validate-URI-0.07.tar.gz";
6431       hash = "sha256-8GQY0qRgORPRts5SsWfdE+eH4TvyvjJaBl331Aj3nGA=";
6432     };
6433     propagatedBuildInputs = [ DataValidateDomain DataValidateIP ];
6434     meta = {
6435       description = "Common URL validation methods";
6436       license = with lib.licenses; [ artistic1 gpl1Plus ];
6437     };
6438   };
6440   DataVisitor = buildPerlPackage {
6441     pname = "Data-Visitor";
6442     version = "0.32";
6443     src = fetchurl {
6444       url = "mirror://cpan/authors/id/E/ET/ETHER/Data-Visitor-0.32.tar.gz";
6445       hash = "sha256-sZQpDyV8xidaA5N0ERVUxmahZQ5MAa15nB4KJ39HkX0=";
6446     };
6447     buildInputs = [ TestNeeds ];
6448     propagatedBuildInputs = [ Moose TieToObject namespaceclean ];
6449     meta = {
6450       description = "Visitor style traversal of Perl data structures";
6451       license = with lib.licenses; [ artistic1 gpl1Plus ];
6452     };
6453   };
6455   DateCalc = buildPerlPackage {
6456     pname = "Date-Calc";
6457     version = "6.4";
6458     src = fetchurl {
6459       url = "mirror://cpan/authors/id/S/ST/STBEY/Date-Calc-6.4.tar.gz";
6460       hash = "sha256-fOE3sueXt8CQHzrfGgWhk0M1bNHwRnaqHFap9iT4Wa0=";
6461     };
6462     propagatedBuildInputs = [ BitVector ];
6463     doCheck = false; # some of the checks rely on the year being <2015
6464     meta = {
6465       description = "Gregorian calendar date calculations";
6466       license = with lib.licenses; [ artistic1 gpl1Plus ];
6467     };
6468   };
6470   DateExtract = buildPerlPackage {
6471     pname = "Date-Extract";
6472     version = "0.07";
6473     src = fetchurl {
6474       url = "mirror://cpan/authors/id/E/ET/ETHER/Date-Extract-0.07.tar.gz";
6475       hash = "sha256-+geIBK3k7uwd4UcuDguwR65i5MjU1QIHAbnlBXfFuPQ=";
6476     };
6477     buildInputs = [ TestMockTimeHiRes ];
6478     propagatedBuildInputs = [ ClassDataInheritable DateTimeFormatNatural ];
6479     meta = {
6480       description = "Extract probable dates from strings";
6481       license = with lib.licenses; [ artistic1 gpl1Plus ];
6482     };
6483   };
6485   DateManip = buildPerlPackage {
6486     pname = "Date-Manip";
6487     version = "6.92";
6488     src = fetchurl {
6489       url = "mirror://cpan/authors/id/S/SB/SBECK/Date-Manip-6.92.tar.gz";
6490       hash = "sha256-q5Yr05ygnsb8/n5aaRKvcbDB9vA+TtK+9uRHHJ02ehM=";
6491     };
6492     # for some reason, parsing /etc/localtime does not work anymore - make sure that the fallback "/bin/date +%Z" will work
6493     patchPhase = ''
6494       sed -i "s#/bin/date#${pkgs.coreutils}/bin/date#" lib/Date/Manip/TZ.pm
6495     '';
6496     doCheck = !stdenv.hostPlatform.isi686; # build freezes during tests on i686
6497     buildInputs = [ TestInter ];
6498     meta = {
6499       description = "Date manipulation routines";
6500       homepage = "https://github.com/SBECK-github/Date-Manip";
6501       license = with lib.licenses; [ artistic1 gpl1Plus ];
6502     };
6503   };
6505   DateRange = buildPerlPackage {
6506     pname = "Date-Range";
6507     version = "1.41";
6508     src = fetchurl {
6509       url = "mirror://cpan/authors/id/T/TM/TMTM/Date-Range-1.41.tar.gz";
6510       hash = "sha256-v5iXSSsQHAUDh50Up+fr6QJUQ4NgGufGmpXedcvZSLk=";
6511     };
6512     propagatedBuildInputs = [ DateSimple ];
6513     meta = {
6514       description = "work with a range of dates";
6515       license = with lib.licenses; [ gpl2Plus ];
6516     };
6517   };
6519   DateSimple = buildPerlPackage {
6520     pname = "Date-Simple";
6521     version = "3.03";
6522     src = fetchurl {
6523       url = "mirror://cpan/authors/id/I/IZ/IZUT/Date-Simple-3.03.tar.gz";
6524       hash = "sha256-KaGSYxTOFoGjEtYVXClZDHcd2s+Rt0hYc85EnvIJ3QQ=";
6525     };
6526     meta = {
6527       description = "Simple date object";
6528       license = with lib.licenses; [ artistic1 gpl2Plus ];
6529     };
6530   };
6532   DateTime = buildPerlPackage {
6533     pname = "DateTime";
6534     version = "1.59";
6535     src = fetchurl {
6536       url = "mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-1.59.tar.gz";
6537       hash = "sha256-3j6aY84VRwtNtK2tS6asjsKX2IwMbGs1SwgYg7CmdpU=";
6538     };
6539     buildInputs = [ CPANMetaCheck TestFatal TestWarnings TestWithoutModule ];
6540     propagatedBuildInputs = [ DateTimeLocale DateTimeTimeZone ];
6541     meta = {
6542       description = "Date and time object for Perl";
6543       homepage = "https://metacpan.org/release/DateTime";
6544       license = with lib.licenses; [ artistic2 ];
6545     };
6546   };
6548   DateTimeCalendarJulian = buildPerlPackage {
6549     pname = "DateTime-Calendar-Julian";
6550     version = "0.107";
6551     src = fetchurl {
6552       url = "mirror://cpan/authors/id/W/WY/WYANT/DateTime-Calendar-Julian-0.107.tar.gz";
6553       hash = "sha256-/LK0JIRLsTvK1GsceqI5taCbqyVW9TvR8n+tkMJg0z0=";
6554     };
6555     propagatedBuildInputs = [ DateTime ];
6556     meta = {
6557       description = "DateTime object in the Julian calendar";
6558       license = with lib.licenses; [ artistic1 gpl1Plus ];
6559     };
6560   };
6562   DateTimeEventICal = buildPerlPackage {
6563     pname = "DateTime-Event-ICal";
6564     version = "0.13";
6565     src = fetchurl {
6566       url = "mirror://cpan/authors/id/F/FG/FGLOCK/DateTime-Event-ICal-0.13.tar.gz";
6567       hash = "sha256-U9pDhO9c8w7ofcATH0tu7iEhzA66NHFioyi5vPr0deo=";
6568     };
6569     propagatedBuildInputs = [ DateTimeEventRecurrence ];
6570     meta = {
6571       description = "DateTime rfc2445 recurrences";
6572       license = with lib.licenses; [ artistic1 gpl1Plus ];
6573     };
6574   };
6576   DateTimeEventRecurrence = buildPerlPackage {
6577     pname = "DateTime-Event-Recurrence";
6578     version = "0.19";
6579     src = fetchurl {
6580       url = "mirror://cpan/authors/id/F/FG/FGLOCK/DateTime-Event-Recurrence-0.19.tar.gz";
6581       hash = "sha256-+UCHiaRhEHdmyhojK7PsHnAu7HyoFnQB6m7D9LbQtaU=";
6582     };
6583     propagatedBuildInputs = [ DateTimeSet ];
6584     meta = {
6585       description = "DateTime::Set extension for create basic recurrence sets";
6586       license = with lib.licenses; [ artistic1 gpl1Plus ];
6587     };
6588   };
6590   DateTimeFormatBuilder = buildPerlPackage {
6591     pname = "DateTime-Format-Builder";
6592     version = "0.83";
6593     src = fetchurl {
6594       url = "mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-Format-Builder-0.83.tar.gz";
6595       hash = "sha256-Yf+yPYWzyheGstoyiembV+BiX+DknbAqbcDLYsaJ4vI=";
6596     };
6597     propagatedBuildInputs = [ DateTimeFormatStrptime ParamsValidate ];
6598     meta = {
6599       description = "Create DateTime parser classes and objects";
6600       homepage = "https://metacpan.org/release/DateTime-Format-Builder";
6601       license = with lib.licenses; [ artistic2 ];
6602     };
6603   };
6605   DateTimeFormatDateParse = buildPerlModule {
6606     pname = "DateTime-Format-DateParse";
6607     version = "0.05";
6608     src = fetchurl {
6609       url = "mirror://cpan/authors/id/J/JH/JHOBLITT/DateTime-Format-DateParse-0.05.tar.gz";
6610       hash = "sha256-9uykyL5mzpmS7hUJMvj88HgJ/T0WZMryALil/Tp+Xrw=";
6611     };
6612     propagatedBuildInputs = [ DateTime TimeDate ];
6613     meta = {
6614       description = "Parses Date::Parse compatible formats";
6615       license = with lib.licenses; [ artistic1 gpl1Plus ];
6616     };
6617   };
6619   DateTimeFormatFlexible = buildPerlPackage {
6620     pname = "DateTime-Format-Flexible";
6621     version = "0.34";
6622     src = fetchurl {
6623       url = "mirror://cpan/authors/id/T/TH/THINC/DateTime-Format-Flexible-0.34.tar.gz";
6624       hash = "sha256-g2rvXSXm/4gnMIpDv/dBkeXSAiDao9ISAFC8w0FI/PE=";
6625     };
6626     propagatedBuildInputs = [ DateTimeFormatBuilder ListMoreUtils ModulePluggable ];
6627     buildInputs = [ TestException TestMockTime TestNoWarnings ];
6628     meta = {
6629       description = "Flexibly parse strings and turn them into DateTime objects";
6630       license = with lib.licenses; [ artistic1 gpl1Plus ];
6631     };
6632   };
6634   DateTimeFormatHTTP = buildPerlModule {
6635     pname = "DateTime-Format-HTTP";
6636     version = "0.42";
6637     src = fetchurl {
6638       url = "mirror://cpan/authors/id/C/CK/CKRAS/DateTime-Format-HTTP-0.42.tar.gz";
6639       hash = "sha256-0E52nfRZaN/S0b3GR6Mlxod2FAaXYnhubxN/H17D2EA=";
6640     };
6641     propagatedBuildInputs = [ DateTime HTTPDate ];
6642     meta = {
6643       description = "Date conversion routines";
6644       license = with lib.licenses; [ artistic1 gpl1Plus ];
6645     };
6646   };
6648   DateTimeFormatICal = buildPerlModule {
6649     pname = "DateTime-Format-ICal";
6650     version = "0.09";
6651     src = fetchurl {
6652       url = "mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-Format-ICal-0.09.tar.gz";
6653       hash = "sha256-iwn2U59enA3w5hNQMWme1O+e74Fl/ICu/uzIF++ZfDM=";
6654     };
6655     propagatedBuildInputs = [ DateTimeEventICal ];
6656     meta = {
6657       description = "Parse and format iCal datetime and duration strings";
6658       license = with lib.licenses; [ artistic1 gpl1Plus ];
6659     };
6660   };
6662   DateTimeFormatISO8601 = buildPerlPackage {
6663     pname = "DateTime-Format-ISO8601";
6664     version = "0.16";
6665     src = fetchurl {
6666       url = "mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-Format-ISO8601-0.16.tar.gz";
6667       hash = "sha256-WChH9uApBlM0oAVk8gzXwo9OXNTsIVE9D2klMe07VuE=";
6668     };
6669     propagatedBuildInputs = [ DateTimeFormatBuilder ];
6670     buildInputs = [ Test2Suite ];
6671     meta = {
6672       description = "Parses ISO8601 formats";
6673       homepage = "https://metacpan.org/release/DateTime-HiRes";
6674       license = with lib.licenses; [ artistic1 gpl1Plus ];
6675     };
6676   };
6678   DateTimeFormatMail = buildPerlPackage {
6679     pname = "DateTime-Format-Mail";
6680     version = "0.403";
6681     src = fetchurl {
6682       url = "mirror://cpan/authors/id/B/BO/BOOK/DateTime-Format-Mail-0.403.tar.gz";
6683       hash = "sha256-jfjjXER3OI/1x86LPotq5O0wIJx6UFHUFze9FNdV/LA=";
6684     };
6685     propagatedBuildInputs = [ DateTime ParamsValidate ];
6686     meta = {
6687       description = "Convert between DateTime and RFC2822/822 formats";
6688       license = with lib.licenses; [ artistic1 gpl1Plus ];
6689     };
6690   };
6692   DateTimeFormatNatural = buildPerlModule {
6693     pname = "DateTime-Format-Natural";
6694     version = "1.18";
6695     src = fetchurl {
6696       url = "mirror://cpan/authors/id/S/SC/SCHUBIGER/DateTime-Format-Natural-1.18.tar.gz";
6697       hash = "sha256-2TRqRhUDVFnYvO4PrD1OuuoDj09DsoT2nt9z9u1XUf4=";
6698     };
6699     buildInputs = [ ModuleUtil TestMockTimeHiRes ];
6700     propagatedBuildInputs = [ Clone DateTime DateTimeHiRes DateTimeTimeZone ListMoreUtils ParamsValidate boolean ];
6701     meta = {
6702       description = "Parse informal natural language date/time strings";
6703       license = with lib.licenses; [ artistic1 gpl1Plus ];
6704       mainProgram = "dateparse";
6705     };
6706   };
6708   DateTimeFormatMySQL = buildPerlModule {
6709     pname = "DateTime-Format-MySQL";
6710     version = "0.08";
6711     src = fetchurl {
6712       url = "mirror://cpan/authors/id/X/XM/XMIKEW/DateTime-Format-MySQL-0.08.tar.gz";
6713       hash = "sha256-Gctw6YWEZV41TS1qjnHMXKkC3dw6xEQWcS+RY9Eiueg=";
6714     };
6715     propagatedBuildInputs = [ DateTimeFormatBuilder ];
6716     meta = {
6717       description = "Parse and format MySQL dates and times";
6718       license = with lib.licenses; [ artistic1 gpl1Plus ];
6719     };
6720   };
6722   DateTimeFormatPg = buildPerlModule {
6723     pname = "DateTime-Format-Pg";
6724     version = "0.16014";
6725     src = fetchurl {
6726       url = "mirror://cpan/authors/id/D/DM/DMAKI/DateTime-Format-Pg-0.16014.tar.gz";
6727       hash = "sha256-OLuWZlJNw4TDNm9jQsuWVsULrA+XFqPUTxz1Usy+Drk=";
6728     };
6729     propagatedBuildInputs = [ DateTimeFormatBuilder ];
6730     buildInputs = [ ModuleBuildTiny ];
6731     meta = {
6732       description = "Parse and format PostgreSQL dates and times";
6733       homepage = "https://github.com/lestrrat-p5/DateTime-Format-Pg";
6734       license = with lib.licenses; [ artistic1 gpl1Plus ];
6735     };
6736   };
6738   DateTimeFormatStrptime = buildPerlPackage {
6739     pname = "DateTime-Format-Strptime";
6740     version = "1.79";
6741     src = fetchurl {
6742       url = "mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-Format-Strptime-1.79.tar.gz";
6743       hash = "sha256-cB5GgCyG7U2IaVwabay76QszkL7reU84fnx5IwADdXk=";
6744     };
6745     buildInputs = [ TestFatal TestWarnings ];
6746     propagatedBuildInputs = [ DateTime ];
6747     meta = {
6748       description = "Parse and format strp and strf time patterns";
6749       homepage = "https://metacpan.org/release/DateTime-Format-Strptime";
6750       license = with lib.licenses; [ artistic2 ];
6751     };
6752   };
6754   DateTimeFormatSQLite = buildPerlPackage {
6755     pname = "DateTime-Format-SQLite";
6756     version = "0.11";
6757     src = fetchurl {
6758       url = "mirror://cpan/authors/id/C/CF/CFAERBER/DateTime-Format-SQLite-0.11.tar.gz";
6759       hash = "sha256-zB9OCuHTmw1MPd3M/XQjx3xnpwlQxLXsq/jKVTqylLQ=";
6760     };
6761     propagatedBuildInputs = [ DateTimeFormatBuilder ];
6762     meta = {
6763       description = "Parse and format SQLite dates and times";
6764       license = with lib.licenses; [ artistic1 gpl1Plus ];
6765     };
6766   };
6768   DateTimeFormatW3CDTF = buildPerlPackage {
6769     pname = "DateTime-Format-W3CDTF";
6770     version = "0.08";
6771     src = fetchurl {
6772       url = "mirror://cpan/authors/id/G/GW/GWILLIAMS/DateTime-Format-W3CDTF-0.08.tar.gz";
6773       hash = "sha256-3MIAoHOiHLpIEipdrgtqh135PT+MiunURtzdm++qQTo=";
6774     };
6775     propagatedBuildInputs = [ DateTime ];
6776     meta = {
6777       description = "Parse and format W3CDTF datetime strings";
6778       homepage = "https://metacpan.org/release/DateTime-Format-W3CDTF";
6779       license = with lib.licenses; [ artistic1 gpl1Plus ];
6780     };
6781   };
6783   DateTimeHiRes = buildPerlPackage {
6784     pname = "DateTime-HiRes";
6785     version = "0.04";
6786     src = fetchurl {
6787       url = "mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-HiRes-0.04.tar.gz";
6788       hash = "sha256-HCMVkzLDD566VLdeZpK+TeqAUiQ+r/MCbJyQuLZLw5U=";
6789     };
6790     propagatedBuildInputs = [ DateTime ];
6791     meta = {
6792       homepage = "https://metacpan.org/release/DateTime-HiRes";
6793       description = "Create DateTime objects with sub-second current time resolution";
6794       license = with lib.licenses; [ artistic1 gpl1Plus ];
6795     };
6796   };
6798   DateTimeLocale = buildPerlPackage {
6799     pname = "DateTime-Locale";
6800     version = "1.39";
6801     src = fetchurl {
6802       url = "mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-Locale-1.39.tar.gz";
6803       hash = "sha256-EMFFpsfa9xGIZOl0grSun5T5O5QUIS7uiqMLFqgTUQA=";
6804     };
6805     buildInputs = [ CPANMetaCheck FileShareDirInstall IPCSystemSimple PathTiny Test2PluginNoWarnings Test2Suite TestFileShareDir ];
6806     propagatedBuildInputs = [ FileShareDir ParamsValidationCompiler Specio namespaceautoclean ];
6807     meta = {
6808       description = "Localization support for DateTime.pm";
6809       homepage = "https://metacpan.org/release/DateTime-Locale";
6810       license = with lib.licenses; [ artistic1 gpl1Plus ];
6811     };
6812   };
6814   DateTimeFormatRFC3339 = buildPerlPackage rec {
6815     pname = "DateTime-Format-RFC3339";
6816     version = "1.2.0";
6817     src = fetchurl {
6818       url = "mirror://cpan/authors/id/I/IK/IKEGAMI/DateTime-Format-RFC3339-v${version}.tar.gz";
6819       hash = "sha256-E27hIkwxxuAXaSqfXlb9tPcKlfRq7DrYVdN4PeNaDfc=";
6820     };
6821     propagatedBuildInputs = [ DateTime ];
6822     meta = {
6823       description = "Parse and format RFC3339 datetime strings";
6824       homepage = "https://search.cpan.org/dist/DateTime-Format-RFC3339";
6825       license = with lib.licenses; [ cc0 ];
6826     };
6827   };
6829   DateTimeSet = buildPerlModule {
6830     pname = "DateTime-Set";
6831     version = "0.3900";
6832     src = fetchurl {
6833       url = "mirror://cpan/authors/id/F/FG/FGLOCK/DateTime-Set-0.3900.tar.gz";
6834       hash = "sha256-lPQcOSSq/eTvf6a1jgWV1AONisX/1iuhEbE8X028CUY=";
6835     };
6836     propagatedBuildInputs = [ DateTime ParamsValidate SetInfinite ];
6837     meta = {
6838       description = "DateTime set objects";
6839       license = with lib.licenses; [ artistic1 gpl1Plus ];
6840     };
6841   };
6843   DateTimeTimeZone = buildPerlPackage {
6844     pname = "DateTime-TimeZone";
6845     version = "2.60";
6846     src = fetchurl {
6847       url = "mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-TimeZone-2.60.tar.gz";
6848       hash = "sha256-8EYNN5MjkFtXm+1E4UEjejN9wl3Sa2qwxgrCuAYpMj0=";
6849     };
6850     buildInputs = [ TestFatal TestRequires ];
6851     propagatedBuildInputs = [ ClassSingleton ParamsValidationCompiler Specio namespaceautoclean ];
6852     meta = {
6853       description = "Time zone object base class and factory";
6854       homepage = "https://metacpan.org/release/DateTime-TimeZone";
6855       license = with lib.licenses; [ artistic1 gpl1Plus ];
6856     };
6857   };
6859   DateTimeXEasy = buildPerlPackage {
6860     pname = "DateTimeX-Easy";
6861     version = "0.091";
6862     src = fetchurl {
6863       url = "mirror://cpan/authors/id/J/JJ/JJNAPIORK/DateTimeX-Easy-0.091.tar.gz";
6864       hash = "sha256-pfjbvntpZdUD4VJYIBXaKk+B46WGA9/t1Oc9H92s/II=";
6865     };
6866     buildInputs = [ TestMost ];
6867     propagatedBuildInputs = [ DateTimeFormatFlexible DateTimeFormatICal DateTimeFormatNatural TimeDate ];
6868     doCheck = false;
6869     meta = {
6870       description = "Parse a date/time string using the best method available";
6871       license = with lib.licenses; [ artistic1 gpl1Plus ];
6872     };
6873   };
6875   DebugShowStuff = buildPerlModule {
6876     pname = "Debug-ShowStuff";
6877     version = "1.16";
6878     src = fetchurl {
6879       url = "mirror://cpan/authors/id/M/MI/MIKO/Debug-ShowStuff-1.16.tar.gz";
6880       hash = "sha256-pN1dLNfbjqbkhhsZPgJLQYeisO0rmdWHBi37EaXNLLc=";
6881     };
6882     propagatedBuildInputs = [ ClassISA DevelStackTrace StringUtil TermReadKey TextTabularDisplay TieIxHash ];
6883     meta = {
6884       description = "Collection of handy debugging routines for displaying the values of variables with a minimum of coding";
6885       license = with lib.licenses; [ artistic1 gpl1Plus ];
6886     };
6887   };
6889   Deliantra = buildPerlPackage rec {
6890     pname = "Deliantra";
6891     version = "2.01";
6892     src = fetchurl {
6893       url = "mirror://cpan/authors/id/M/ML/MLEHMANN/${pname}-${version}.tar.gz";
6894       hash = "sha256-JxbZsfBWJ9YJQs4GNLnBolEJsWSBgoXUW2Ca6FluKxc=";
6895     };
6896     propagatedBuildInputs = [ AnyEvent CompressLZF JSONXS commonsense ];
6897     meta = {
6898       description = "Deliantra suppport module to read/write archetypes, maps etc";
6899       license = with lib.licenses; [ artistic1 gpl1Plus ];
6900     };
6901   };
6903   DevelCaller = buildPerlPackage {
6904     pname = "Devel-Caller";
6905     version = "2.07";
6906     src = fetchurl {
6907       url = "mirror://cpan/authors/id/R/RC/RCLAMP/Devel-Caller-2.07.tar.gz";
6908       hash = "sha256-tnmisYA0sLcg3oLDcIckw2SxCmyhZMvGfNw68oPzUD8=";
6909     };
6910     propagatedBuildInputs = [ PadWalker ];
6911     meta = {
6912       description = "Meatier versions of caller";
6913       license = with lib.licenses; [ artistic1 gpl1Plus ];
6914     };
6915   };
6917   DevelCheckBin = buildPerlPackage {
6918     pname = "Devel-CheckBin";
6919     version = "0.04";
6920     src = fetchurl {
6921       url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/Devel-CheckBin-0.04.tar.gz";
6922       hash = "sha256-FX89tZwp7R1JEzpGnO53LIha1O5k6GkqkbPr/b4v4+Q=";
6923     };
6924     meta = {
6925       description = "Check that a command is available";
6926       homepage = "https://github.com/tokuhirom/Devel-CheckBin";
6927       license = with lib.licenses; [ artistic1 gpl1Plus ];
6928     };
6929   };
6931   DevelCheckCompiler = buildPerlModule {
6932     pname = "Devel-CheckCompiler";
6933     version = "0.07";
6934     src = fetchurl {
6935       url = "mirror://cpan/authors/id/S/SY/SYOHEX/Devel-CheckCompiler-0.07.tar.gz";
6936       hash = "sha256-dot2l7S41NNyx1B7ZendJqpCI/cQAYO7tNOvRtQ4abU=";
6937     };
6938     buildInputs = [ ModuleBuildTiny ];
6939     meta = {
6940       description = "Check the compiler's availability";
6941       homepage = "https://github.com/tokuhirom/Devel-CheckCompiler";
6942       license = with lib.licenses; [ artistic1 gpl1Plus ];
6943     };
6944   };
6946   DevelChecklib = buildPerlPackage {
6947     pname = "Devel-CheckLib";
6948     version = "1.16";
6949     src = fetchurl {
6950       url = "mirror://cpan/authors/id/M/MA/MATTN/Devel-CheckLib-1.16.tar.gz";
6951       hash = "sha256-hp04wljmRtzvZ2YJ8N18qQ8IX1bPb9cAGwGaXVuDH8o=";
6952     };
6953     buildInputs = [ CaptureTiny MockConfig ];
6954     meta = {
6955       description = "Check that a library is available";
6956       license = with lib.licenses; [ artistic1 gpl1Plus ];
6957     };
6958   };
6960   DevelCheckOS = buildPerlPackage {
6961     pname = "Devel-CheckOS";
6962     version = "1.96";
6963     src = fetchurl {
6964       url = "mirror://cpan/authors/id/D/DC/DCANTRELL/Devel-CheckOS-1.96.tar.gz";
6965       hash = "sha256-+GB5BfT1reSI9+9Et8HnyFI/ure5HS3IMLMa6cqBPfU=";
6966     };
6967     buildInputs = [ TestWarnings ];
6968     propagatedBuildInputs = [ FileFindRule ];
6969     meta = {
6970       description = "Check what OS we're running on";
6971       license = with lib.licenses; [ gpl2Only artistic1 ];
6972     };
6973   };
6975   DevelCover = buildPerlPackage {
6976     pname = "Devel-Cover";
6977     version = "1.44";
6978     src = fetchurl {
6979       url = "mirror://cpan/authors/id/P/PJ/PJCJ/Devel-Cover-1.44.tar.gz";
6980       hash = "sha256-9AwVQ5kuXWWm94AD1GLVms15rm0w04BHscadmZ0rH9g=";
6981     };
6982     propagatedBuildInputs = [ HTMLParser ];
6983     doCheck = false;
6984     meta = {
6985       description = "Code coverage metrics for Perl";
6986       homepage = "http://www.pjcj.net/perl.html";
6987       license = with lib.licenses; [ artistic1 gpl1Plus ];
6988     };
6989   };
6991   DevelDeprecationsEnvironmental = buildPerlPackage {
6992     pname = "Devel-Deprecations-Environmental";
6993     version = "1.101";
6994     src = fetchurl {
6995       url = "mirror://cpan/authors/id/D/DC/DCANTRELL/Devel-Deprecations-Environmental-1.101.tar.gz";
6996       hash = "sha256-S+SC08PcOtHvR0P6s4DOuQG3QVZQeVOoNITfadolpqY=";
6997     };
6998     propagatedBuildInputs = [ DevelCheckOS DevelHide TestException TestTime ];
6999     meta = {
7000       description = "Framework for managing deprecations";
7001       homepage = "https://github.com/DrHyde/perl-modules-Devel-Deprecations-Environmental";
7002       license = with lib.licenses; [ gpl2Only artistic1 ];
7003     };
7004   };
7006   DevelLeak = buildPerlPackage {
7007     pname = "Devel-Leak";
7008     version = "0.03";
7009     src = fetchurl {
7010       url = "mirror://cpan/authors/id/N/NI/NI-S/Devel-Leak-0.03.tar.gz";
7011       hash = "sha256-b0LDTxHitOPqLg5rlBaoimha3UR5EMr02R3SwXgXclI=";
7012     };
7013     meta = {
7014       description = "Utility for looking for perl objects that are not reclaimed";
7015       homepage = "https://metacpan.org/release/Devel-Leak";
7016       license = with lib.licenses; [ artistic1 gpl1Plus ]; # According to Debian
7017     };
7018   };
7020   DevelPatchPerl = buildPerlPackage {
7021     pname = "Devel-PatchPerl";
7022     version = "2.08";
7023     src = fetchurl {
7024       url = "mirror://cpan/authors/id/B/BI/BINGOS/Devel-PatchPerl-2.08.tar.gz";
7025       hash = "sha256-acbpcBYmD0COnX5Ej5QrNqbUnfWvBzQPHWXX4jAWdBk=";
7026     };
7027     propagatedBuildInputs = [ Filepushd ModulePluggable ];
7028     meta = {
7029       description = "Patch perl source a la Devel::PPPort's buildperl.pl";
7030       homepage = "https://github.com/bingos/devel-patchperl";
7031       license = with lib.licenses; [ artistic1 gpl1Plus ];
7032       mainProgram = "patchperl";
7033     };
7034   };
7036   DevelRefcount = buildPerlModule {
7037     pname = "Devel-Refcount";
7038     version = "0.10";
7039     src = fetchurl {
7040       url = "mirror://cpan/authors/id/P/PE/PEVANS/Devel-Refcount-0.10.tar.gz";
7041       hash = "sha256-tlTUaWPRqIFCa6FZlPKPUuuDmw0TW/I5tNG/OLHKyko=";
7042     };
7043     buildInputs = [ TestFatal ];
7044     meta = {
7045       description = "Obtain the REFCNT value of a referent";
7046       license = with lib.licenses; [ artistic1 gpl1Plus ];
7047     };
7048   };
7050   DevelPPPort = buildPerlPackage {
7051     pname = "Devel-PPPort";
7052     version = "3.68";
7053     src = fetchurl {
7054       url = "mirror://cpan/authors/id/A/AT/ATOOMIC/Devel-PPPort-3.68.tar.gz";
7055       hash = "sha256-UpDVu4TN6enmEROiDGe11HJn645loRmookjMlqrAuts=";
7056     };
7057     meta = {
7058       description = "Perl/Pollution/Portability";
7059       license = with lib.licenses; [ artistic1 gpl1Plus ];
7060     };
7061   };
7063   DevelTrace = buildPerlPackage {
7064     pname = "Devel-Trace";
7065     version = "0.12";
7066     src = fetchurl {
7067       url = "mirror://cpan/authors/id/M/MJ/MJD/Devel-Trace-0.12.tar.gz";
7068       hash = "sha256-9QHK93b/fphvduAlRNbOI0yJdwFzKD8x333MV4AKOGg=";
7069     };
7070     meta = {
7071       description = "Print out each line before it is executed (like sh -x)";
7072       license = with lib.licenses; [ publicDomain ];
7073     };
7074   };
7076   DeviceMAC = buildPerlPackage {
7077     pname = "Device-MAC";
7078     version = "1.00";
7079     src = fetchurl {
7080       url = "mirror://cpan/authors/id/J/JA/JASONK/Device-MAC-1.00.tar.gz";
7081       hash = "sha256-xCGCqahImjFMv+bhyEUvMrO2Jqpsif7h2JJebftk+tU=";
7082     };
7083     buildInputs = [ TestDeep TestDifferences TestException TestMost TestWarn ];
7084     propagatedBuildInputs = [ DeviceOUI Moose ];
7085     meta = {
7086       description = "Handle hardware MAC Addresses (EUI-48 and EUI-64)";
7087       license = with lib.licenses; [ artistic1 gpl1Plus ];
7088       maintainers = [ maintainers.sgo ];
7089     };
7090   };
7092   DeviceOUI = buildPerlPackage {
7093     pname = "Device-OUI";
7094     version = "1.04";
7095     src = fetchurl {
7096       url = "mirror://cpan/authors/id/J/JA/JASONK/Device-OUI-1.04.tar.gz";
7097       hash = "sha256-SzZ+YbH63ed/tvtynzzVrNHUbnEhjZb0Bry6ONQ7S+8=";
7098     };
7099     buildInputs = [ TestException ];
7100     patches = [ ../development/perl-modules/Device-OUI-1.04-hash.patch ];
7101     propagatedBuildInputs = [ ClassAccessorGrouped LWP SubExporter ];
7102     meta = {
7103       description = "Resolve an Organizationally Unique Identifier";
7104       license = with lib.licenses; [ artistic1 gpl1Plus ];
7105       maintainers = [ maintainers.sgo ];
7106     };
7107   };
7109   DBDCSV = buildPerlPackage {
7110     pname = "DBD-CSV";
7111     version = "0.60";
7112     src = fetchurl {
7113       url = "mirror://cpan/authors/id/H/HM/HMBRAND/DBD-CSV-0.60.tgz";
7114       hash = "sha256-AYuDow95mXm8jDwwRMixyAAc32C9w+dGhIgYGVJUtOc=";
7115     };
7116     propagatedBuildInputs = [ DBI SQLStatement TextCSV_XS ];
7117     meta = {
7118       description = "DBI driver for CSV files";
7119       license = with lib.licenses; [ artistic1 gpl1Plus ];
7120     };
7121   };
7123   DBDMock = buildPerlModule {
7124     pname = "DBD-Mock";
7125     version = "1.59";
7126     src = fetchurl {
7127       url = "mirror://cpan/authors/id/J/JL/JLCOOPER/DBD-Mock-1.59.tar.gz";
7128       hash = "sha256-ClqllTq2XPeQaB5sBFLjGK1X2ArCf1dfhJGMYDqkdAY=";
7129     };
7130     propagatedBuildInputs = [ DBI ];
7131     buildInputs = [ ModuleBuildTiny TestException ];
7132     meta = {
7133       description = "Mock database driver for testing";
7134       license = with lib.licenses; [ artistic1 gpl1Plus ];
7135     };
7136   };
7138   DBDSQLite = buildPerlPackage {
7139     pname = "DBD-SQLite";
7140     version = "1.74";
7142     src = fetchurl {
7143       url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/DBD-SQLite-1.74.tar.gz";
7144       hash = "sha256-iZSZfYS5/rRUd5X3h0bGYfty48tqJdvdeJtzH1aIpN0=";
7145     };
7147     propagatedBuildInputs = [ DBI ];
7148     buildInputs = [ pkgs.sqlite ];
7150     patches = [
7151       # Support building against our own sqlite.
7152       ../development/perl-modules/DBD-SQLite/external-sqlite.patch
7154       # Pull upstream fix for test failures against sqlite-3.37.
7155       (fetchpatch {
7156         name = "sqlite-3.37-compat.patch";
7157         url = "https://github.com/DBD-SQLite/DBD-SQLite/commit/ba4f472e7372dbf453444c7764d1c342e7af12b8.patch";
7158         hash = "sha256-nn4JvaIGlr2lUnUC+0ABe9AFrRrC5bfdTQiefo0Pjwo=";
7159       })
7160     ];
7162     makeMakerFlags = [ "SQLITE_INC=${pkgs.sqlite.dev}/include" "SQLITE_LIB=${pkgs.sqlite.out}/lib" ];
7164     postInstall = ''
7165       # Get rid of a pointless copy of the SQLite sources.
7166       rm -rf $out/${perl.libPrefix}/*/*/auto/share
7167     '';
7169     preCheck = "rm t/65_db_config.t"; # do not run failing tests
7171     meta = {
7172       description = "Self Contained SQLite RDBMS in a DBI Driver";
7173       license = with lib.licenses; [ artistic1 gpl1Plus ];
7174       platforms = lib.platforms.unix;
7175     };
7176   };
7178   DBDMariaDB = buildPerlPackage {
7179     pname = "DBD-MariaDB";
7180     version = "1.23";
7181     src = fetchurl {
7182       url = "mirror://cpan/authors/id/P/PA/PALI/DBD-MariaDB-1.23.tar.gz";
7183       hash = "sha256-DQx2xmDd1VVw5I8+L96o9iGmmsDtSBkOjPyvy16bhZ0=";
7184     };
7185     buildInputs = [ pkgs.mariadb-connector-c DevelChecklib TestDeep TestDistManifest TestPod ];
7186     propagatedBuildInputs = [ DBI ];
7187     meta = {
7188       description = "MariaDB and MySQL driver for the Perl5 Database Interface (DBI)";
7189       homepage = "https://github.com/gooddata/DBD-MariaDB";
7190       license = with lib.licenses; [ artistic1 gpl1Plus ];
7191       maintainers = [ maintainers.sgo ];
7192     };
7193   };
7195   DBDmysql = buildPerlPackage {
7196     pname = "DBD-mysql";
7197     version = "4.050";
7199     src = fetchurl {
7200       url = "mirror://cpan/authors/id/D/DV/DVEEDEN/DBD-mysql-4.050.tar.gz";
7201       hash = "sha256-T0hUH/FaCnQF92rcEPgWJ8M5lvv1bJXCbAlERMCSjXg=";
7202     };
7204     buildInputs = [ pkgs.libmysqlclient DevelChecklib TestDeep TestDistManifest TestPod ];
7205     propagatedBuildInputs = [ DBI ];
7207     doCheck = false;
7209   #  makeMakerFlags = "MYSQL_HOME=${mysql}";
7210     meta = {
7211       description = "MySQL driver for the Perl5 Database Interface (DBI)";
7212       license = with lib.licenses; [ artistic1 gpl1Plus ];
7213     };
7214   };
7216   DBDOracle = buildPerlPackage {
7217     pname = "DBD-Oracle";
7218     version = "1.83";
7220     src = fetchurl {
7221       url = "mirror://cpan/authors/id/Z/ZA/ZARQUON/DBD-Oracle-1.83.tar.gz";
7222       hash = "sha256-Uf6cFYlV/aDKkXqAaGPwvFEGi1M/u8dCOzzErVle0VM=";
7223     };
7225     ORACLE_HOME = "${pkgs.oracle-instantclient.lib}/lib";
7227     buildInputs = [ pkgs.oracle-instantclient TestNoWarnings ];
7228     propagatedBuildInputs = [ DBI ];
7230     postBuild = lib.optionalString stdenv.hostPlatform.isDarwin ''
7231       install_name_tool -add_rpath "${pkgs.oracle-instantclient.lib}/lib" blib/arch/auto/DBD/Oracle/Oracle.bundle
7232     '';
7233     meta = {
7234       description = "Oracle database driver for the DBI module";
7235       license = with lib.licenses; [ artistic1 gpl1Plus ];
7236     };
7237   };
7239   DBDPg = buildPerlPackage {
7240     pname = "DBD-Pg";
7241     version = "3.17.0";
7243     src = fetchurl {
7244       url = "mirror://cpan/authors/id/T/TU/TURNSTEP/DBD-Pg-3.17.0.tar.gz";
7245       hash = "sha256-jZANTA50nzchh1KmZh+w01V6sfzMjeo4TLWHw4LeIZs=";
7246     };
7248     buildInputs = [ pkgs.postgresql ];
7249     propagatedBuildInputs = [ DBI ];
7251     makeMakerFlags = [ "POSTGRES_HOME=${pkgs.postgresql}" ];
7253     # tests freeze in a sandbox
7254     doCheck = false;
7256     meta = {
7257       description = "DBI PostgreSQL interface";
7258       homepage = "https://search.cpan.org/dist/DBD-Pg";
7259       license = with lib.licenses; [ artistic1 gpl1Plus ];
7260       platforms = lib.platforms.unix;
7261     };
7262   };
7264   DBDsybase = buildPerlPackage {
7265     pname = "DBD-Sybase";
7266     version = "1.23";
7268     src = fetchurl {
7269       url = "mirror://cpan/authors/id/M/ME/MEWP/DBD-Sybase-1.23.tar.gz";
7270       hash = "sha256-B1e6aqyaKaLcOFmV1myPQSqIlo/SNsDYu0ZZAo5OmWU=";
7271     };
7273     SYBASE = pkgs.freetds;
7275     buildInputs = [ pkgs.freetds ];
7276     propagatedBuildInputs = [ DBI ];
7278     doCheck = false;
7280     meta = {
7281       description = "DBI driver for Sybase datasources";
7282       license = with lib.licenses; [ artistic1 gpl1Only ];
7283       broken = stdenv.hostPlatform.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.DBDsybase.x86_64-darwin
7284     };
7285   };
7287   DBFile = buildPerlPackage {
7288     pname = "DB_File";
7289     version = "1.859";
7291     src = fetchurl {
7292       url = "mirror://cpan/authors/id/P/PM/PMQS/DB_File-1.859.tar.gz";
7293       hash = "sha256-VnTg0s0LBgxNElNnDqAixk2EKlUlf5647bGcD1PiVlw=";
7294     };
7296     preConfigure = ''
7297       cat > config.in <<EOF
7298       PREFIX = size_t
7299       HASH = u_int32_t
7300       LIB = ${pkgs.db.out}/lib
7301       INCLUDE = ${pkgs.db.dev}/include
7302       EOF
7303     '';
7304     meta = {
7305       description = "Perl5 access to Berkeley DB version 1.x";
7306       license = with lib.licenses; [ artistic1 gpl1Plus ];
7307     };
7308   };
7310   DBI = buildPerlPackage {
7311     pname = "DBI";
7312     version = "1.644";
7314     src = fetchurl {
7315       url = "mirror://cpan/authors/id/H/HM/HMBRAND/DBI-1.644.tar.gz";
7316       hash = "sha256-Ipe5neCeZwhmQLWQaZ4OmC+0adpjqT/ijcFHgtt6U8g=";
7317     };
7319     env = lib.optionalAttrs stdenv.cc.isGNU {
7320       NIX_CFLAGS_COMPILE = "-Wno-error=incompatible-pointer-types";
7321     };
7323     postInstall = lib.optionalString (perl ? crossVersion) ''
7324       mkdir -p $out/${perl.libPrefix}/cross_perl/${perl.version}/DBI
7325       cat > $out/${perl.libPrefix}/cross_perl/${perl.version}/DBI.pm <<EOF
7326       package DBI;
7327       BEGIN {
7328       our \$VERSION = "$version";
7329       }
7330       1;
7331       EOF
7333       autodir=$(echo $out/${perl.libPrefix}/${perl.version}/*/auto/DBI)
7334       cat > $out/${perl.libPrefix}/cross_perl/${perl.version}/DBI/DBD.pm <<EOF
7335       package DBI::DBD;
7336       use Exporter ();
7337       use vars qw (@ISA @EXPORT);
7338       @ISA = qw(Exporter);
7339       @EXPORT = qw(dbd_postamble);
7340       sub dbd_postamble {
7341           return '
7342       # --- This section was generated by DBI::DBD::dbd_postamble()
7343       DBI_INSTARCH_DIR=$autodir
7344       DBI_DRIVER_XST=$autodir/Driver.xst
7346       # The main dependency (technically correct but probably not used)
7347       \$(BASEEXT).c: \$(BASEEXT).xsi
7349       # This dependency is needed since MakeMaker uses the .xs.o rule
7350       \$(BASEEXT)\$(OBJ_EXT): \$(BASEEXT).xsi
7352       \$(BASEEXT).xsi: \$(DBI_DRIVER_XST) $autodir/Driver_xst.h
7353       ''\t\$(PERL) -p -e "s/~DRIVER~/\$(BASEEXT)/g" \$(DBI_DRIVER_XST) > \$(BASEEXT).xsi
7355       # ---
7356       ';
7357       }
7358       1;
7359       EOF
7360     '';
7362     meta = {
7363       description = "Database independent interface for Perl";
7364       homepage = "https://dbi.perl.org";
7365       license = with lib.licenses; [ artistic1 gpl1Plus ];
7366     };
7367   };
7369   DBICxTestDatabase = buildPerlPackage {
7370     pname = "DBICx-TestDatabase";
7371     version = "0.05";
7372     src = fetchurl {
7373       url = "mirror://cpan/authors/id/J/JR/JROCKWAY/DBICx-TestDatabase-0.05.tar.gz";
7374       hash = "sha256-jjvCUwsBIWGIw6plrNvS9ZxOYx864IXfxDmr2J+PCs8=";
7375     };
7376     buildInputs = [ DBIxClass TestSimple13 ];
7377     propagatedBuildInputs = [ DBDSQLite SQLTranslator ];
7378     meta = {
7379       description = "Create a temporary database from a DBIx::Class::Schema";
7380       homepage = "https://metacpan.org/pod/DBICx::TestDatabase";
7381       license = with lib.licenses; [ artistic1 gpl1Plus ];
7382       maintainers = [ maintainers.sgo ];
7383     };
7384   };
7386   DBIxClass = buildPerlPackage {
7387     pname = "DBIx-Class";
7388     version = "0.082843";
7389     src = fetchurl {
7390       url = "mirror://cpan/authors/id/R/RI/RIBASUSHI/DBIx-Class-0.082843.tar.gz";
7391       hash = "sha256-NB4Lbssp2MSRdKbAnXxtvzhym6QBXuf9cDYKT/7h8lE=";
7392     };
7393     buildInputs = [ DBDSQLite TestDeep TestException TestWarn ];
7394     propagatedBuildInputs = [ ClassAccessorGrouped ClassC3Componentised ConfigAny ContextPreserve DBI DataDumperConcise DataPage DevelGlobalDestruction ModuleFind PathClass SQLAbstractClassic ScopeGuard SubName namespaceclean ];
7395     meta = {
7396       description = "Extensible and flexible object <-> relational mapper";
7397       homepage = "https://metacpan.org/pod/DBIx::Class";
7398       license = with lib.licenses; [ artistic1 gpl1Plus ];
7399       mainProgram = "dbicadmin";
7400     };
7401   };
7403   DBIxClassCandy = buildPerlPackage {
7404     pname = "DBIx-Class-Candy";
7405     version = "0.005003";
7406     src = fetchurl {
7407       url = "mirror://cpan/authors/id/F/FR/FREW/DBIx-Class-Candy-0.005003.tar.gz";
7408       hash = "sha256-uKIpp7FfVZCV1FYc+CIEYBKFQbp/w1Re01hpkj1GVlw=";
7409     };
7410     buildInputs = [ TestDeep TestFatal ];
7411     propagatedBuildInputs = [ DBIxClass LinguaENInflect SubExporter ];
7412     meta = {
7413       description = "Sugar for your favorite ORM, DBIx::Class";
7414       homepage = "https://github.com/frioux/DBIx-Class-Candy";
7415       license = with lib.licenses; [ artistic1 gpl1Plus ];
7416     };
7417   };
7419   DBIxClassCursorCached = buildPerlPackage {
7420     pname = "DBIx-Class-Cursor-Cached";
7421     version = "1.001004";
7422     src = fetchurl {
7423       url = "mirror://cpan/authors/id/A/AR/ARCANEZ/DBIx-Class-Cursor-Cached-1.001004.tar.gz";
7424       hash = "sha256-NwhSMqEjClqodUOZ+1mw+PzV9Zeh4uNIxSJ0YaGSYiU=";
7425     };
7426     buildInputs = [ CacheCache DBDSQLite ];
7427     propagatedBuildInputs = [ CarpClan DBIxClass ];
7428     meta = {
7429       description = "Cursor class with built-in caching support";
7430       license = with lib.licenses; [ artistic1 gpl1Plus ];
7431     };
7432   };
7434   DBIxClassDynamicDefault = buildPerlPackage {
7435     pname = "DBIx-Class-DynamicDefault";
7436     version = "0.04";
7437     src = fetchurl {
7438       url = "mirror://cpan/authors/id/M/MS/MSTROUT/DBIx-Class-DynamicDefault-0.04.tar.gz";
7439       hash = "sha256-Io9RqyJGQlhLTcY9tt4mZ8W/riqJSpN2shChBIBqWvs=";
7440     };
7441     buildInputs = [ DBICxTestDatabase ];
7442     propagatedBuildInputs = [ DBIxClass ];
7443     meta = {
7444       description = "Automatically set and update fields";
7445       homepage = "https://metacpan.org/pod/DBIx::Class::DynamicDefault";
7446       license = with lib.licenses; [ artistic1 gpl1Plus ];
7447       maintainers = [ maintainers.sgo ];
7448     };
7449   };
7451   DBIxClassHTMLWidget = buildPerlPackage {
7452     pname = "DBIx-Class-HTMLWidget";
7453     version = "0.16";
7454     src = fetchurl {
7455       url = "mirror://cpan/authors/id/A/AN/ANDREMAR/DBIx-Class-HTMLWidget-0.16.tar.gz";
7456       hash = "sha256-QUJ1YyFu31qTllCQrg4chaldN6gdcg8CwTYM+n208Bc=";
7457     };
7458     propagatedBuildInputs = [ DBIxClass HTMLWidget ];
7459     meta = {
7460       description = "Like FromForm but with DBIx::Class and HTML::Widget";
7461       license = with lib.licenses; [ artistic1 gpl1Plus ];
7462     };
7463   };
7465   DBIxClassHelpers = buildPerlPackage {
7466     pname = "DBIx-Class-Helpers";
7467     version = "2.036000";
7468     src = fetchurl {
7469       url = "mirror://cpan/authors/id/F/FR/FREW/DBIx-Class-Helpers-2.036000.tar.gz";
7470       hash = "sha256-t7i0iRqYPANO8LRfQRJASgpAVQxOIX2ut6IsoWhh79s=";
7471     };
7472     buildInputs = [ DBDSQLite DateTimeFormatSQLite TestDeep TestFatal TestRoo aliased ];
7473     propagatedBuildInputs = [ CarpClan DBIxClassCandy DBIxIntrospector SafeIsa TextBrew ];
7474     meta = {
7475       description = "Simplify the common case stuff for DBIx::Class";
7476       homepage = "https://github.com/frioux/DBIx-Class-Helpers";
7477       license = with lib.licenses; [ artistic1 gpl1Plus ];
7478     };
7479   };
7481   DBIxClassInflateColumnSerializer = buildPerlPackage {
7482     pname = "DBIx-Class-InflateColumn-Serializer";
7483     version = "0.09";
7484     src = fetchurl {
7485       url = "mirror://cpan/authors/id/M/MR/MRUIZ/DBIx-Class-InflateColumn-Serializer-0.09.tar.gz";
7486       hash = "sha256-YmK0hx22psRaDL583o8biQsiwpGt1OzEDKruq1o6b1A=";
7487     };
7488     buildInputs = [ DBDSQLite TestException ];
7489     propagatedBuildInputs = [ DBIxClass JSONMaybeXS YAML ];
7490     meta = {
7491       description = "Inflators to serialize data structures for DBIx::Class";
7492       homepage = "https://metacpan.org/release/DBIx-Class-InflateColumn-Serializer";
7493       license = with lib.licenses; [ artistic1 gpl1Plus ];
7494       maintainers = [ maintainers.sgo ];
7495     };
7496   };
7498   DBIxClassIntrospectableM2M = buildPerlPackage {
7499     pname = "DBIx-Class-IntrospectableM2M";
7500     version = "0.001002";
7501     src = fetchurl {
7502       url = "mirror://cpan/authors/id/I/IL/ILMARI/DBIx-Class-IntrospectableM2M-0.001002.tar.gz";
7503       hash = "sha256-xrqvtCQWk/2zSynr2QaZOt02S/Mar6RGLz4GIgTMh/A=";
7504     };
7505     propagatedBuildInputs = [ DBIxClass ];
7506     meta = {
7507       description = "Introspect many-to-many relationships";
7508       license = with lib.licenses; [ artistic1 gpl1Plus ];
7509     };
7510   };
7512   DBIxClassSchemaLoader = buildPerlPackage {
7513     pname = "DBIx-Class-Schema-Loader";
7514     version = "0.07051";
7515     src = fetchurl {
7516       url = "mirror://cpan/authors/id/V/VE/VEESH/DBIx-Class-Schema-Loader-0.07051.tar.gz";
7517       hash = "sha256-GgieUISlJ2j0J0vCGB3LrhTcxXnk2YD89WnGeBsGCSw=";
7518     };
7519     buildInputs = [ DBDSQLite TestDeep TestDifferences TestException TestWarn ];
7520     propagatedBuildInputs = [ CarpClan ClassUnload DBIxClass DataDump StringCamelCase StringToIdentifierEN curry ];
7521     meta = {
7522       description = "Create a DBIx::Class::Schema based on a database";
7523       license = with lib.licenses; [ artistic1 gpl1Plus ];
7524       mainProgram = "dbicdump";
7525     };
7526   };
7528   DBIxConnector = buildPerlPackage {
7529     pname = "DBIx-Connector";
7530     version = "0.59";
7531     src = fetchurl {
7532       url = "mirror://cpan/authors/id/A/AR/ARISTOTLE/DBIx-Connector-0.59.tar.gz";
7533       hash = "sha256-eCmU8T9JVVhAU4SU+EBrC/JVj1M8zahsjSuV4jAQh/Q=";
7534     };
7535     buildInputs = [ TestMockModule ];
7536     propagatedBuildInputs = [ DBI ];
7537     meta = {
7538       description = "Fast, safe DBI connection and transaction management";
7539       license = with lib.licenses; [ artistic1 gpl1Plus ];
7540     };
7541   };
7543   DBIxDBSchema = buildPerlPackage {
7544     pname = "DBIx-DBSchema";
7545     version = "0.47";
7546     src = fetchurl {
7547       url = "mirror://cpan/authors/id/I/IV/IVAN/DBIx-DBSchema-0.47.tar.gz";
7548       hash = "sha256-7u4hDcFKjWPrAawtZsZ6HcJ5+Sib6WphckyJUXkcUhI=";
7549     };
7550     propagatedBuildInputs = [ DBI ];
7551     meta = {
7552       description = "Database-independent schema objects";
7553       license = with lib.licenses; [ artistic1 gpl1Plus ];
7554     };
7555   };
7557   DBIxSearchBuilder = buildPerlPackage {
7558     pname = "DBIx-SearchBuilder";
7559     version = "1.77";
7560     src = fetchurl {
7561       url = "mirror://cpan/authors/id/B/BP/BPS/DBIx-SearchBuilder-1.77.tar.gz";
7562       hash = "sha256-O/il1cjF/cYK0vY/Y/c90fZJP/TYJYcoOj4iM36P4HA=";
7563     };
7564     buildInputs = [ DBDSQLite ];
7565     propagatedBuildInputs = [ CacheSimpleTimedExpiry ClassAccessor ClassReturnValue Clone DBIxDBSchema Want capitalization ];
7566     meta = {
7567       description = "Encapsulate SQL queries and rows in simple perl objects";
7568       license = with lib.licenses; [ artistic1 gpl1Plus ];
7569     };
7570   };
7572   DBIxSimple = buildPerlPackage {
7573     pname = "DBIx-Simple";
7574     version = "1.37";
7575     src = fetchurl {
7576       url = "mirror://cpan/authors/id/J/JU/JUERD/DBIx-Simple-1.37.tar.gz";
7577       hash = "sha256-RtMRqizgiQdAHFYRllhCbbsETFpA3nPZp7eb9QOQyuM=";
7578     };
7579     propagatedBuildInputs = [ DBI ];
7580     meta = {
7581       description = "Very complete easy-to-use OO interface to DBI";
7582       license = with lib.licenses; [ artistic1 gpl1Plus ];
7583     };
7584   };
7586   DBMDeep = buildPerlPackage {
7587     pname = "DBM-Deep";
7588     version = "2.0017";
7589     src = fetchurl {
7590       url = "mirror://cpan/authors/id/D/DC/DCANTRELL/DBM-Deep-2.0017.tar.gz";
7591       hash = "sha256-1yNFIFdVO72UXWMhXr/gqnepLsbg+jOw2spXrhuKTSQ=";
7592     };
7593     buildInputs = [ TestDeep TestException TestPod TestPodCoverage TestWarn ];
7594     meta = {
7595       description = "Pure perl multi-level hash/array DBM that supports transactions";
7596       homepage = "https://github.com/robkinyon/dbm-deep";
7597       license = with lib.licenses; [ artistic1 gpl1Plus ];
7598     };
7599   };
7601   DataBinary = buildPerlPackage {
7602     pname = "Data-Binary";
7603     version = "0.01";
7604     src = fetchurl {
7605       url = "mirror://cpan/authors/id/S/SN/SNKWATT/Data-Binary-0.01.tar.gz";
7606       hash = "sha256-SCGi3hCscQj03LKEpxuHaYGwyx6mxe1q+xd78ufLjXM=";
7607     };
7608     meta = {
7609       description = "Simple detection of binary versus text in strings";
7610       license = with lib.licenses; [ artistic2 ];
7611     };
7612   };
7614   DataBuffer = buildPerlPackage {
7615     pname = "Data-Buffer";
7616     version = "0.04";
7617     src = fetchurl {
7618       url = "mirror://cpan/authors/id/B/BT/BTROTT/Data-Buffer-0.04.tar.gz";
7619       hash = "sha256-Kz0Jt7zzifwRYgeyg77iUONI1EycY0YL7mfvq03SG7Q=";
7620     };
7621     meta = {
7622       description = "Read/write buffer class";
7623       license = with lib.licenses; [ artistic1 gpl1Plus ];
7624       maintainers = [ maintainers.sgo ];
7625     };
7626   };
7628   DBIxIntrospector = buildPerlPackage {
7629     pname = "DBIx-Introspector";
7630     version = "0.001005";
7631     src = fetchurl {
7632       url = "mirror://cpan/authors/id/F/FR/FREW/DBIx-Introspector-0.001005.tar.gz";
7633       hash = "sha256-lqlNLMaQwfqP00ET47CEvypGmjI6l4AoWu+S3cOB5jo=";
7634     };
7636     propagatedBuildInputs = [ DBI Moo ];
7637     buildInputs = [ DBDSQLite TestFatal TestRoo ];
7638     meta = {
7639       description = "Detect what database you are connected to";
7640       license = with lib.licenses; [ artistic1 gpl1Plus ];
7641     };
7642   };
7644   DevelCamelcadedb = buildPerlPackage {
7645     pname = "Devel-Camelcadedb";
7646     version = "2023.1";
7647     src = fetchurl {
7648       url = "mirror://cpan/authors/id/H/HU/HURRICUP/Devel-Camelcadedb-v2023.1.tar.gz";
7649       hash = "sha256-z/jSTllF45RN6/ITmVprFVuR5YE0aRVrE9Ws819qXZ8=";
7650     };
7651     propagatedBuildInputs = [ HashStoredIterator JSONXS PadWalker ];
7652     perlPreHook = lib.optionalString stdenv.hostPlatform.isDarwin "export LD=$CC";
7653     meta = {
7654       description = "Perl side of the Perl debugger for IntelliJ IDEA and other JetBrains IDEs";
7655       license = with lib.licenses; [ mit ];
7656     };
7657   };
7659   DevelCycle = buildPerlPackage {
7660     pname = "Devel-Cycle";
7661     version = "1.12";
7662     src = fetchurl {
7663       url = "mirror://cpan/authors/id/L/LD/LDS/Devel-Cycle-1.12.tar.gz";
7664       hash = "sha256-/TNlxNiYsrK927eKRtUHoYzKhJCikBmVR9q38ec5C8I=";
7665     };
7666     meta = {
7667       description = "Find memory cycles in objects";
7668       license = with lib.licenses; [ artistic1 gpl1Plus ];
7669     };
7670   };
7672   DevelDeclare = buildPerlPackage {
7673     pname = "Devel-Declare";
7674     version = "0.006022";
7675     src = fetchurl {
7676       url = "mirror://cpan/authors/id/E/ET/ETHER/Devel-Declare-0.006022.tar.gz";
7677       hash = "sha256-cvKco1ZGpZO+mDEf/dtyAzrh6KnYJUxiqiSL1iYOWW4=";
7678     };
7679     buildInputs = [ ExtUtilsDepends TestRequires ];
7680     propagatedBuildInputs = [ BHooksEndOfScope BHooksOPCheck SubName ];
7681     meta = {
7682       description = "(DEPRECATED) Adding keywords to perl, in perl";
7683       license = with lib.licenses; [ artistic1 gpl1Plus ];
7684     };
7685   };
7687   DevelFindPerl = buildPerlPackage {
7688     pname = "Devel-FindPerl";
7689     version = "0.016";
7690     src = fetchurl {
7691       url = "mirror://cpan/authors/id/L/LE/LEONT/Devel-FindPerl-0.016.tar.gz";
7692       hash = "sha256-Q6K/L3h6PxuIEXkGMWKyqj58sET25eduxkZq6QqGETg=";
7693     };
7694     meta = {
7695       description = "Find the path to your perl";
7696       license = with lib.licenses; [ artistic1 gpl1Plus ];
7697     };
7698   };
7700   DevelGlobalDestruction = buildPerlPackage {
7701     pname = "Devel-GlobalDestruction";
7702     version = "0.14";
7703     src = fetchurl {
7704       url = "mirror://cpan/authors/id/H/HA/HAARG/Devel-GlobalDestruction-0.14.tar.gz";
7705       hash = "sha256-NLil8pmRMRRo/mkTytq6df1dKws+47tB/ltT76uRVKs=";
7706     };
7707     propagatedBuildInputs = [ SubExporterProgressive ];
7708     meta = {
7709       description = "Provides function returning the equivalent of \${^GLOBAL_PHASE} eq 'DESTRUCT' for older perls";
7710       homepage = "https://metacpan.org/release/Devel-GlobalDestruction";
7711       license = with lib.licenses; [ artistic1 gpl1Plus ];
7712     };
7713   };
7715   DevelGlobalPhase = buildPerlPackage {
7716     pname = "Devel-GlobalPhase";
7717     version = "0.003003";
7718     src = fetchurl {
7719       url = "mirror://cpan/authors/id/H/HA/HAARG/Devel-GlobalPhase-0.003003.tar.gz";
7720       hash = "sha256-jaMCL3ynHf2/SqYGmJRNcgCsMUn0c32KnJG/Q4f/MvU=";
7721     };
7722     meta = {
7723       description = "Detect perl's global phase on older perls";
7724       license = with lib.licenses; [ artistic1 gpl1Plus ];
7725     };
7726   };
7728   DevelHide = buildPerlPackage {
7729     pname = "Devel-Hide";
7730     version = "0.0015";
7731     src = fetchurl {
7732       url = "mirror://cpan/authors/id/D/DC/DCANTRELL/Devel-Hide-0.0015.tar.gz";
7733       hash = "sha256-/I2+t/fXWnjtSWseDgXPyZxorKs6LpLP8VXKXw+l31g=";
7734     };
7735     meta = {
7736       description = "Forces the unavailability of specified Perl modules (for testing)";
7737       license = with lib.licenses; [ artistic1 gpl1Plus ];
7738     };
7739   };
7741   DevelNYTProf = buildPerlPackage {
7742     pname = "Devel-NYTProf";
7743     version = "6.12";
7744     src = fetchurl {
7745       url = "mirror://cpan/authors/id/J/JK/JKEENAN/Devel-NYTProf-6.12.tar.gz";
7746       hash = "sha256-qDtZheTalr24X1McFqtvPUkHGnM80JSqMPqF+2pLAsQ=";
7747     };
7748     propagatedBuildInputs = [ FileWhich JSONMaybeXS ];
7749     buildInputs = [ CaptureTiny TestDifferences ];
7750     nativeBuildInputs = lib.optional stdenv.hostPlatform.isDarwin shortenPerlShebang;
7751     postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
7752       shortenPerlShebang $out/bin/*
7753     '';
7754     meta = {
7755       description = "Powerful fast feature-rich Perl source code profiler";
7756       homepage = "https://code.google.com/p/perl-devel-nytprof";
7757       license = with lib.licenses; [ artistic1 gpl1Plus ];
7758     };
7759   };
7761   DevelOverloadInfo = buildPerlPackage {
7762     pname = "Devel-OverloadInfo";
7763     version = "0.007";
7764     src = fetchurl {
7765       url = "mirror://cpan/authors/id/I/IL/ILMARI/Devel-OverloadInfo-0.007.tar.gz";
7766       hash = "sha256-IaGEFjuQ+R8G/8f13guWg1ZUaum0AKnXXFc8lYwkYiI=";
7767     };
7768     propagatedBuildInputs = [ MROCompat PackageStash SubIdentify ];
7769     buildInputs = [ TestFatal ];
7770     meta = {
7771       description = "Introspect overloaded operators";
7772       license = with lib.licenses; [ artistic1 gpl1Plus ];
7773     };
7774   };
7776   DevelOverrideGlobalRequire = buildPerlPackage {
7777     pname = "Devel-OverrideGlobalRequire";
7778     version = "0.001";
7779     src = fetchurl {
7780       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Devel-OverrideGlobalRequire-0.001.tar.gz";
7781       hash = "sha256-B5GJLeOuKSr0qU44LyHbHuiCEIdQMYUebqgsNBB4Xvk=";
7782     };
7783     meta = {
7784       homepage = "https://metacpan.org/release/Devel-OverrideGlobalRequire";
7785       description = "Override CORE::GLOBAL::require safely";
7786       license = with lib.licenses; [ artistic1 gpl1Plus ];
7787     };
7788   };
7790   DevelPartialDump = buildPerlPackage {
7791     pname = "Devel-PartialDump";
7792     version = "0.20";
7793     src = fetchurl {
7794       url = "mirror://cpan/authors/id/E/ET/ETHER/Devel-PartialDump-0.20.tar.gz";
7795       hash = "sha256-rvD/PqWalpGWfCiFEY/2ZxVghJVwicQ4j0nbZG/T2Qc=";
7796     };
7797     propagatedBuildInputs = [ ClassTiny SubExporter namespaceclean ];
7798     buildInputs = [ TestSimple13 TestWarnings ];
7799     meta = {
7800       description = "Partial dumping of data structures, optimized for argument printing";
7801       license = with lib.licenses; [ artistic1 gpl1Plus ];
7802     };
7803   };
7805   DevelStackTrace = buildPerlPackage {
7806     pname = "Devel-StackTrace";
7807     version = "2.04";
7808     src = fetchurl {
7809       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Devel-StackTrace-2.04.tar.gz";
7810       hash = "sha256-zTwD7VR9PULGH6WBTJgpYTk5LnlxwJLgmkMfLJ9daFU=";
7811     };
7812     meta = {
7813       description = "Object representing a stack trace";
7814       homepage = "https://metacpan.org/release/Devel-StackTrace";
7815       license = with lib.licenses; [ artistic2 ];
7816     };
7817   };
7819   DevelSize = buildPerlPackage {
7820     pname = "Devel-Size";
7821     version = "0.84";
7822     src = fetchurl {
7823       url = "mirror://cpan/authors/id/N/NW/NWCLARK/Devel-Size-0.84.tar.gz";
7824       hash = "sha256-2y5NZfaI2/WSc7XoIQGsPxpm9mWvsFlNzhaLhlCk0OQ=";
7825     };
7826     meta = {
7827       description = "Perl extension for finding the memory usage of Perl variables";
7828       license = with lib.licenses; [ artistic1 gpl1Plus ];
7829     };
7830   };
7832   DevelStackTraceAsHTML = buildPerlPackage {
7833     pname = "Devel-StackTrace-AsHTML";
7834     version = "0.15";
7835     src = fetchurl {
7836       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Devel-StackTrace-AsHTML-0.15.tar.gz";
7837       hash = "sha256-YoPb4hl+LyAAnMS0SZl3Qhac3ZUb/ETLxuYsKpYtMUc=";
7838     };
7839     propagatedBuildInputs = [ DevelStackTrace ];
7840     meta = {
7841       description = "Displays stack trace in HTML";
7842       homepage = "https://github.com/miyagawa/Devel-StackTrace-AsHTML";
7843       license = with lib.licenses; [ artistic1 gpl1Plus ];
7844     };
7845   };
7847   DevelSymdump = buildPerlPackage {
7848     pname = "Devel-Symdump";
7849     version = "2.18";
7850     src = fetchurl {
7851       url = "mirror://cpan/authors/id/A/AN/ANDK/Devel-Symdump-2.18.tar.gz";
7852       hash = "sha256-gm+BoQf1WSolFnZu1DvrR+EMyD7cnqSAkLAqNgQHdsA=";
7853     };
7854     meta = {
7855       description = "Dump symbol names or the symbol table";
7856       license = with lib.licenses; [ artistic1 gpl1Plus ];
7857     };
7858   };
7860   DigestCRC = buildPerlPackage {
7861     pname = "Digest-CRC";
7862     version = "0.24";
7863     src = fetchurl {
7864       url = "mirror://cpan/authors/id/O/OL/OLIMAUL/Digest-CRC-0.24.tar.gz";
7865       hash = "sha256-ugIqBbGtvsc3EsRvIz2Eif4Tobn8QKH8zu2bUvkN78E=";
7866     };
7867     meta = {
7868       description = "Module that calculates CRC sums of all sorts";
7869       license = with lib.licenses; [ publicDomain ];
7870     };
7871   };
7873   DigestHMAC = buildPerlPackage {
7874     pname = "Digest-HMAC";
7875     version = "1.04";
7876     src = fetchurl {
7877       url = "mirror://cpan/authors/id/A/AR/ARODLAND/Digest-HMAC-1.04.tar.gz";
7878       hash = "sha256-1ryBVqonXETXlLfBj0TNrEpYFAJFyVnmsZssODiwjtQ=";
7879     };
7880     meta = {
7881       description = "Keyed-Hashing for Message Authentication";
7882       homepage = "https://metacpan.org/release/Digest-HMAC";
7883       license = with lib.licenses; [ artistic1 gpl1Plus ];
7884     };
7885   };
7887   DigestJHash = buildPerlPackage {
7888     pname = "Digest-JHash";
7889     version = "0.10";
7890     src = fetchurl {
7891       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Digest-JHash-0.10.tar.gz";
7892       hash = "sha256-x0bPCoYaAECQJjzVTXco0MdZWgz5DLv9hAmzlu47AGM=";
7893     };
7894     meta = {
7895       description = "Perl extension for 32 bit Jenkins Hashing Algorithm";
7896       license = with lib.licenses; [ artistic2 ];
7897     };
7898   };
7900   DigestMD2 = buildPerlPackage {
7901     pname = "Digest-MD2";
7902     version = "2.04";
7903     src = fetchurl {
7904       url = "mirror://cpan/authors/id/G/GA/GAAS/Digest-MD2-2.04.tar.gz";
7905       hash = "sha256-0Kq/SDTCCsQRvqQnxKMItZpfyqMnZ571KUwdaKtx7tM=";
7906     };
7907     meta = {
7908       description = "Perl interface to the MD2 Algorithm";
7909       license = with lib.licenses; [ artistic1 gpl1Plus ];
7910       maintainers = [ maintainers.sgo ];
7911     };
7912   };
7914   DigestMD4 = buildPerlPackage {
7915     pname = "Digest-MD4";
7916     version = "1.9";
7917     src = fetchurl {
7918       url = "mirror://cpan/authors/id/M/MI/MIKEM/DigestMD4/Digest-MD4-1.9.tar.gz";
7919       hash = "sha256-ZlEQu6MkcPOY8xHNZGL9iXXXyDZ1/2dLwvbHtysMqqY=";
7920     };
7921     meta = {
7922       description = "Perl interface to the MD4 Algorithm";
7923       license = with lib.licenses; [ artistic1 gpl1Plus ];
7924     };
7925   };
7927   DigestMD5File = buildPerlPackage {
7928     pname = "Digest-MD5-File";
7929     version = "0.08";
7930     src = fetchurl {
7931       url = "mirror://cpan/authors/id/D/DM/DMUEY/Digest-MD5-File-0.08.tar.gz";
7932       hash = "sha256-rbQ6VOMmJ7T35XyWQObrBtC7edjqVM0L157TVoj7Ehg=";
7933     };
7934     propagatedBuildInputs = [ LWP ];
7935     meta = {
7936       description = "Perl extension for getting MD5 sums for files and urls";
7937       license = with lib.licenses; [ artistic1 gpl1Plus ];
7938     };
7939   };
7941   DigestPerlMD5 = buildPerlPackage {
7942     pname = "Digest-Perl-MD5";
7943     version = "1.9";
7944     src = fetchurl {
7945       url = "mirror://cpan/authors/id/D/DE/DELTA/Digest-Perl-MD5-1.9.tar.gz";
7946       hash = "sha256-cQDLoXEPRfsOkH2LGnvYyu81xkrNMdfyJa/1r/7s2bE=";
7947     };
7948     meta = {
7949       description = "Perl Implementation of Rivest's MD5 algorithm";
7950       license = with lib.licenses; [ artistic1 gpl1Plus ];
7951     };
7952   };
7954   DigestSHA1 = buildPerlPackage {
7955     pname = "Digest-SHA1";
7956     version = "2.13";
7957     src = fetchurl {
7958       url = "mirror://cpan/authors/id/G/GA/GAAS/Digest-SHA1-2.13.tar.gz";
7959       hash = "sha256-aMHawhh0IfDrer9xRSoG8ZAYG4/Eso7e31uQKW+5Q8w=";
7960     };
7961     meta = {
7962       description = "Perl interface to the SHA-1 algorithm";
7963       license = with lib.licenses; [ artistic1 gpl1Plus ];
7964     };
7965   };
7967   DigestSHA3 = buildPerlPackage {
7968     pname = "Digest-SHA3";
7969     version = "1.05";
7970     src = fetchurl {
7971       url = "mirror://cpan/authors/id/M/MS/MSHELOR/Digest-SHA3-1.05.tar.gz";
7972       hash = "sha256-rfG5B5sreBdV5XBId6FDCl8SmX6oIgX9KWbJzEZahSI=";
7973     };
7974     meta = {
7975       description = "Perl extension for SHA-3";
7976       homepage = "https://metacpan.org/release/Digest-SHA3";
7977       license = with lib.licenses; [ artistic1 gpl1Plus ];
7978       maintainers = [ maintainers.sgo ];
7979       mainProgram = "sha3sum";
7980     };
7981   };
7983   DigestSRI = buildPerlPackage {
7984     pname = "Digest-SRI";
7985     version = "0.02";
7986     src = fetchurl {
7987       url = "mirror://cpan/authors/id/H/HA/HAUKEX/Digest-SRI-0.02.tar.gz";
7988       hash = "sha256-VITN/m68OYwkZfeBx3w++1OKOULNSyDWiBjG//kHT8c=";
7989     };
7990     meta = {
7991       description = "Calculate and verify Subresource Integrity hashes (SRI)";
7992       homepage = "https://github.com/haukex/Digest-SRI";
7993       license = with lib.licenses; [ gpl3Plus ];
7994     };
7995   };
7997   DirManifest = buildPerlModule {
7998     pname = "Dir-Manifest";
7999     version = "0.6.1";
8000     src = fetchurl {
8001       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Dir-Manifest-0.6.1.tar.gz";
8002       hash = "sha256-hP9yJoc9XoZW7Hc0TAg4wVOp8BW0a2Dh/oeYuykn5QU=";
8003     };
8004     propagatedBuildInputs = [ Moo PathTiny ];
8005     meta = {
8006       description = "Treat a directory and a manifest file as a hash/dictionary of keys to texts or blobs";
8007       homepage = "https://metacpan.org/release/Dir-Manifest";
8008       license = with lib.licenses; [ mit ];
8009     };
8010   };
8012   DirSelf = buildPerlPackage {
8013     pname = "Dir-Self";
8014     version = "0.11";
8015     src = fetchurl {
8016       url = "mirror://cpan/authors/id/M/MA/MAUKE/Dir-Self-0.11.tar.gz";
8017       hash = "sha256-4lGlGrx9m6PnCPc8KqII4J1HoMUo1iVHEPp4zI1ohbU=";
8018     };
8019     meta = {
8020       description = "__DIR__ constant for the directory your source file is in";
8021       homepage = "https://github.com/mauke/Dir-Self";
8022       license = with lib.licenses; [ artistic1 gpl1Plus ];
8023     };
8024   };
8026   DispatchClass = buildPerlPackage {
8027     pname = "Dispatch-Class";
8028     version = "0.02";
8029     src = fetchurl {
8030       url = "mirror://cpan/authors/id/M/MA/MAUKE/Dispatch-Class-0.02.tar.gz";
8031       hash = "sha256-1020Oxr56L1G/8Fb/k3x5dgQxCzoWC6TdRDcKiyhZYI=";
8032     };
8033     propagatedBuildInputs = [ ExporterTiny ];
8034     meta = {
8035       description = "Dispatch on the type (class) of an argument";
8036       license = with lib.licenses; [ artistic1 gpl1Plus ];
8037     };
8038   };
8040   DistCheckConflicts = buildPerlPackage {
8041     pname = "Dist-CheckConflicts";
8042     version = "0.11";
8043     src = fetchurl {
8044       url = "mirror://cpan/authors/id/D/DO/DOY/Dist-CheckConflicts-0.11.tar.gz";
8045       hash = "sha256-6oRLlobJTWZtnURDIddkSQss3i+YXEFltMLHdmXK7cQ=";
8046     };
8047     buildInputs = [ TestFatal ];
8048     propagatedBuildInputs = [ ModuleRuntime ];
8049     meta = {
8050       description = "Declare version conflicts for your dist";
8051       homepage = "https://metacpan.org/release/Dist-CheckConflicts";
8052       license = with lib.licenses; [ artistic1 gpl1Plus ];
8053     };
8054   };
8056   DistZilla = buildPerlPackage {
8057     pname = "Dist-Zilla";
8058     version = "6.030";
8059     src = fetchurl {
8060       url = "mirror://cpan/authors/id/R/RJ/RJBS/Dist-Zilla-6.030.tar.gz";
8061       hash = "sha256-xAa75oCelO23DKlDJMMBQz1sij375wsC3xLh3/LzsTA=";
8062     };
8063     buildInputs = [ CPANMetaCheck TestDeep TestFailWarnings TestFatal TestFileShareDir ];
8064     propagatedBuildInputs = [ AppCmd CPANUploader ConfigMVPReaderINI DateTime FileCopyRecursive FileFindRule FileShareDirInstall Filepushd LogDispatchouli MooseXLazyRequire MooseXSetOnce MooseXTypesPerl PathTiny PerlPrereqScanner SoftwareLicense TermEncoding TermUI YAMLTiny ];
8065     nativeBuildInputs = lib.optional stdenv.hostPlatform.isDarwin shortenPerlShebang;
8066     postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
8067       shortenPerlShebang $out/bin/dzil
8068     '';
8069     doCheck = false;
8070     meta = {
8071       description = "Distribution builder; installer not included!";
8072       homepage = "https://dzil.org";
8073       license = with lib.licenses; [ artistic1 gpl1Plus ];
8074       mainProgram = "dzil";
8075     };
8076   };
8078   DistZillaPluginBundleTestingMania = buildPerlModule {
8079     pname = "Dist-Zilla-PluginBundle-TestingMania";
8080     version = "0.25";
8081     src = fetchurl {
8082       url = "mirror://cpan/authors/id/D/DO/DOHERTY/Dist-Zilla-PluginBundle-TestingMania-0.25.tar.gz";
8083       hash = "sha256-XguywA8UD9ZNy9EvpdPJ4kS5NWgor0ZRmLYjBGnUWRw=";
8084     };
8085     buildInputs = [ MooseAutobox TestCPANMeta TestPerlCritic TestVersion ];
8086     propagatedBuildInputs = [ DistZillaPluginMojibakeTests DistZillaPluginTestCPANChanges DistZillaPluginTestCPANMetaJSON DistZillaPluginTestCompile DistZillaPluginTestDistManifest DistZillaPluginTestEOL DistZillaPluginTestKwalitee DistZillaPluginTestMinimumVersion DistZillaPluginTestNoTabs DistZillaPluginTestPerlCritic DistZillaPluginTestPodLinkCheck DistZillaPluginTestPortability DistZillaPluginTestSynopsis DistZillaPluginTestUnusedVars DistZillaPluginTestVersion PodCoverageTrustPod ];
8087     doCheck = false; /* fails with 'open3: exec of .. perl .. failed: Argument list too long at .../TAP/Parser/Iterator/Process.pm line 165.' */
8088     meta = {
8089       description = "Test your dist with every testing plugin conceivable";
8090       homepage = "https://metacpan.org/release/Dist-Zilla-PluginBundle-TestingMania";
8091       license = with lib.licenses; [ artistic1 gpl1Plus ];
8092     };
8093   };
8095   DistZillaPluginCheckChangeLog = buildPerlPackage {
8096     pname = "Dist-Zilla-Plugin-CheckChangeLog";
8097     version = "0.05";
8098     src = fetchurl {
8099       url = "mirror://cpan/authors/id/F/FA/FAYLAND/Dist-Zilla-Plugin-CheckChangeLog-0.05.tar.gz";
8100       hash = "sha256-sLNNbXC1bxlE0DxfDcO49vJEdMgW0HtlehFsaSwuBSo=";
8101     };
8102     propagatedBuildInputs = [ DistZilla ];
8103     buildInputs = [ PathClass PodCoverage PodCoverageTrustPod PodMarkdown TestDeep TestException TestPod TestPodCoverage ];
8104     meta = {
8105       description = "Dist::Zilla with Changes check";
8106       license = with lib.licenses; [ artistic1 gpl1Plus ];
8107     };
8108   };
8110   DistZillaPluginMojibakeTests = buildPerlPackage {
8111     pname = "Dist-Zilla-Plugin-MojibakeTests";
8112     version = "0.8";
8113     src = fetchurl {
8114       url = "mirror://cpan/authors/id/S/SY/SYP/Dist-Zilla-Plugin-MojibakeTests-0.8.tar.gz";
8115       hash = "sha256-8f/1R+okqPekg0Bqcu1sQFjXRtna6WNyVQLdugJas4A=";
8116     };
8117     propagatedBuildInputs = [ DistZilla ];
8118     buildInputs = [ TestMojibake ];
8119     meta = {
8120       description = "Author tests for source encoding";
8121       homepage = "https://github.com/creaktive/Dist-Zilla-Plugin-MojibakeTests";
8122       license = with lib.licenses; [ artistic1 gpl1Plus ];
8123     };
8124   };
8126   DistZillaPluginPodWeaver = buildPerlPackage {
8127     pname = "Dist-Zilla-Plugin-PodWeaver";
8128     version = "4.010";
8129     src = fetchurl {
8130       url = "mirror://cpan/authors/id/R/RJ/RJBS/Dist-Zilla-Plugin-PodWeaver-4.010.tar.gz";
8131       hash = "sha256-Zm1S1UXUjSpn8VN63HTPOMdkofmVHQtiNiP2IGDLYj4=";
8132     };
8133     propagatedBuildInputs = [ DistZilla PodElementalPerlMunger PodWeaver ];
8134     meta = {
8135       description = "Weave your Pod together from configuration and Dist::Zilla";
8136       homepage = "https://github.com/rjbs/Dist-Zilla-Plugin-PodWeaver";
8137       license = with lib.licenses; [ artistic1 gpl1Plus ];
8138     };
8139   };
8141   DistZillaPluginReadmeAnyFromPod = buildPerlPackage {
8142     pname = "Dist-Zilla-Plugin-ReadmeAnyFromPod";
8143     version = "0.163250";
8144     src = fetchurl {
8145       url = "mirror://cpan/authors/id/R/RT/RTHOMPSON/Dist-Zilla-Plugin-ReadmeAnyFromPod-0.163250.tar.gz";
8146       hash = "sha256-1E8nmZIveLKnlh7YkSPhG913q/6FuiBA2CuArXLtE7w=";
8147     };
8148     buildInputs = [ TestDeep TestDifferences TestException TestFatal TestMost TestRequires TestSharedFork TestWarn ];
8149     propagatedBuildInputs = [ DistZillaRoleFileWatcher MooseXHasSugar PodMarkdownGithub ];
8150     meta = {
8151       description = "Automatically convert POD to a README in any format for Dist::Zilla";
8152       homepage = "https://github.com/DarwinAwardWinner/Dist-Zilla-Plugin-ReadmeAnyFromPod";
8153       license = with lib.licenses; [ artistic1 gpl1Plus ];
8154     };
8155   };
8157   DistZillaPluginReadmeMarkdownFromPod = buildPerlPackage {
8158     pname = "Dist-Zilla-Plugin-ReadmeMarkdownFromPod";
8159     version = "0.141140";
8160     src = fetchurl {
8161       url = "mirror://cpan/authors/id/R/RT/RTHOMPSON/Dist-Zilla-Plugin-ReadmeMarkdownFromPod-0.141140.tar.gz";
8162       hash = "sha256-nKrXs2bqWRGa1zzdmdzdU/h3pRW9AWT8KLM5wBc5qAE=";
8163     };
8164     buildInputs = [ TestDeep TestDifferences TestException TestMost TestWarn ];
8165     propagatedBuildInputs = [ DistZillaPluginReadmeAnyFromPod ];
8166     meta = {
8167       description = "Automatically convert POD to a README.mkdn for Dist::Zilla";
8168       homepage = "https://github.com/DarwinAwardWinner/Dist-Zilla-Plugin-ReadmeMarkdownFromPod";
8169       license = with lib.licenses; [ artistic1 gpl1Plus ];
8170     };
8171   };
8173   DistZillaPluginTestCPANChanges = buildPerlPackage {
8174     pname = "Dist-Zilla-Plugin-Test-CPAN-Changes";
8175     version = "0.012";
8176     src = fetchurl {
8177       url = "mirror://cpan/authors/id/D/DO/DOHERTY/Dist-Zilla-Plugin-Test-CPAN-Changes-0.012.tar.gz";
8178       hash = "sha256-IVs6XDxYyLqw6icTBEG72uxzfuzADwZwk39gi9v2SAY=";
8179     };
8180     buildInputs = [ CPANChanges TestDeep ];
8181     propagatedBuildInputs = [ DistZilla ];
8182     meta = {
8183       description = "Release tests for your changelog";
8184       homepage = "https://metacpan.org/release/Dist-Zilla-Plugin-Test-CPAN-Changes";
8185       license = with lib.licenses; [ artistic1 gpl1Plus ];
8186     };
8187   };
8189   DistZillaPluginTestCPANMetaJSON = buildPerlModule {
8190     pname = "Dist-Zilla-Plugin-Test-CPAN-Meta-JSON";
8191     version = "0.004";
8192     src = fetchurl {
8193       url = "mirror://cpan/authors/id/D/DO/DOHERTY/Dist-Zilla-Plugin-Test-CPAN-Meta-JSON-0.004.tar.gz";
8194       hash = "sha256-Clc+HVZAN05u5NVtT7lKPGfU511Ss93q5wz6ZFDhryI=";
8195     };
8196     buildInputs = [ MooseAutobox TestCPANMetaJSON TestDeep ];
8197     propagatedBuildInputs = [ DistZilla ];
8198     meta = {
8199       description = "Validate your CPAN META.json files";
8200       homepage = "https://p3rl.org/Dist::Zilla::Plugin::Test::CPAN::Meta::JSON";
8201       license = with lib.licenses; [ artistic2 ];
8202     };
8203   };
8205   DistZillaPluginTestCompile = buildPerlModule {
8206     pname = "Dist-Zilla-Plugin-Test-Compile";
8207     version = "2.058";
8208     src = fetchurl {
8209       url = "mirror://cpan/authors/id/E/ET/ETHER/Dist-Zilla-Plugin-Test-Compile-2.058.tar.gz";
8210       hash = "sha256-0M+T5SXxAuyg9/OWcSTS5Z0KIS9zjOVMHd2R3aJo2Io=";
8211     };
8212     buildInputs = [ CPANMetaCheck ModuleBuildTiny TestDeep TestMinimumVersion TestWarnings ];
8213     propagatedBuildInputs = [ DistZilla ];
8214     meta = {
8215       description = "Assert that your Perl files compile OK";
8216       homepage = "https://github.com/karenetheridge/Dist-Zilla-Plugin-Test-Compile";
8217       license = with lib.licenses; [ artistic1 gpl1Plus ];
8218     };
8219   };
8221   DistZillaPluginTestDistManifest = buildPerlModule {
8222     pname = "Dist-Zilla-Plugin-Test-DistManifest";
8223     version = "2.000006";
8224     src = fetchurl {
8225       url = "mirror://cpan/authors/id/E/ET/ETHER/Dist-Zilla-Plugin-Test-DistManifest-2.000006.tar.gz";
8226       hash = "sha256-Wj2kW/yYzjhf7X3BZTp4kGEfC57xVsABOueFdPiWYH0=";
8227     };
8228     buildInputs = [ ModuleBuildTiny TestDeep TestDistManifest TestOutput ];
8229     propagatedBuildInputs = [ DistZilla ];
8230     meta = {
8231       description = "Author test that validates a package MANIFEST";
8232       homepage = "https://github.com/jawnsy/Test-DistManifest";
8233       license = with lib.licenses; [ artistic1 gpl1Plus ];
8234     };
8235   };
8237   DistZillaPluginTestEOL = buildPerlModule {
8238     pname = "Dist-Zilla-Plugin-Test-EOL";
8239     version = "0.19";
8240     src = fetchurl {
8241       url = "mirror://cpan/authors/id/E/ET/ETHER/Dist-Zilla-Plugin-Test-EOL-0.19.tar.gz";
8242       hash = "sha256-orlZx6AszDLt1D7lhgmHVhPv1Ty8u9YDmeF/FUZ6Qzg=";
8243     };
8244     buildInputs = [ ModuleBuildTiny TestDeep TestEOL TestWarnings ];
8245     propagatedBuildInputs = [ DistZilla ];
8246     meta = {
8247       description = "Check the correct line endings in your project";
8248       homepage = "https://github.com/karenetheridge/Test-EOL";
8249       license = with lib.licenses; [ artistic1 gpl1Plus ];
8250     };
8251   };
8253   DistZillaPluginTestKwalitee = buildPerlModule {
8254     pname = "Dist-Zilla-Plugin-Test-Kwalitee";
8255     version = "2.12";
8256     src = fetchurl {
8257       url = "mirror://cpan/authors/id/E/ET/ETHER/Dist-Zilla-Plugin-Test-Kwalitee-2.12.tar.gz";
8258       hash = "sha256-vdvPzHXo6y0tnIYRVS8AzcGwUfDwB5hiO4aS/1Awry8=";
8259     };
8260     buildInputs = [ ModuleBuildTiny TestDeep TestFatal TestKwalitee ];
8261     propagatedBuildInputs = [ DistZilla ];
8262     meta = {
8263       description = "Test the Kwalitee of a distribution before you release it";
8264       license = with lib.licenses; [ artistic1 gpl1Plus ];
8265     };
8266   };
8268   DistZillaPluginTestMinimumVersion = buildPerlModule {
8269     pname = "Dist-Zilla-Plugin-Test-MinimumVersion";
8270     version = "2.000010";
8271     src = fetchurl {
8272       url = "mirror://cpan/authors/id/E/ET/ETHER/Dist-Zilla-Plugin-Test-MinimumVersion-2.000010.tar.gz";
8273       hash = "sha256-uLcfS2S2ifS2R6OofWqqrkWmiJLTXja6qXb2BXNjcPs=";
8274     };
8275     buildInputs = [ ModuleBuildTiny TestDeep TestMinimumVersion TestOutput ];
8276     propagatedBuildInputs = [ DistZilla ];
8277     meta = {
8278       description = "Release tests for minimum required versions";
8279       license = with lib.licenses; [ artistic1 gpl1Plus ];
8280     };
8281   };
8283   DistZillaPluginTestNoTabs = buildPerlModule {
8284     pname = "Dist-Zilla-Plugin-Test-NoTabs";
8285     version = "0.15";
8286     src = fetchurl {
8287       url = "mirror://cpan/authors/id/E/ET/ETHER/Dist-Zilla-Plugin-Test-NoTabs-0.15.tar.gz";
8288       hash = "sha256-G2EMQpFpKbtwFDw2t55XF1JbDp3njj1GCal4ZCtk0KQ=";
8289     };
8290     propagatedBuildInputs = [ DistZilla ];
8291     buildInputs = [ ModuleBuildTiny TestDeep TestNoTabs TestRequires ];
8292     meta = {
8293       description = "Check the presence of tabs in your project";
8294       homepage = "https://github.com/karenetheridge/Dist-Zilla-Plugin-Test-NoTabs";
8295       license = with lib.licenses; [ artistic1 gpl1Plus ];
8296     };
8297   };
8299   DistZillaPluginTestPerlCritic = buildPerlModule {
8300     pname = "Dist-Zilla-Plugin-Test-Perl-Critic";
8301     version = "3.001";
8302     src = fetchurl {
8303       url = "mirror://cpan/authors/id/E/ET/ETHER/Dist-Zilla-Plugin-Test-Perl-Critic-3.001.tar.gz";
8304       hash = "sha256-klC1nV3Brkxok7p4O9PwUTGxT/npGvtFVTFPVSaKOCU=";
8305     };
8306     buildInputs = [ ModuleBuildTiny TestDeep TestPerlCritic ];
8307     propagatedBuildInputs = [ DistZilla ];
8308     meta = {
8309       description = "Tests to check your code against best practices";
8310       license = with lib.licenses; [ artistic1 gpl1Plus ];
8311     };
8312   };
8314   DistZillaPluginTestPodLinkCheck = buildPerlPackage {
8315     pname = "Dist-Zilla-Plugin-Test-Pod-LinkCheck";
8316     version = "1.004";
8317     src = fetchurl {
8318       url = "mirror://cpan/authors/id/R/RW/RWSTAUNER/Dist-Zilla-Plugin-Test-Pod-LinkCheck-1.004.tar.gz";
8319       hash = "sha256-Ml0jbaCUA4jSqobsXBMmUWtK1Fre+Oek+Du5HV7hVJA=";
8320     };
8321     # buildInputs = [ TestPodLinkCheck ];
8322     propagatedBuildInputs = [ DistZilla ];
8323     buildInputs = [ TestPodLinkCheck ];
8324     meta = {
8325       description = "Add release tests for POD links";
8326       homepage = "https://github.com/rwstauner/Dist-Zilla-Plugin-Test-Pod-LinkCheck";
8327       license = with lib.licenses; [ artistic1 gpl1Plus ];
8328     };
8329   };
8331   DistZillaPluginTestPortability = buildPerlModule {
8332     pname = "Dist-Zilla-Plugin-Test-Portability";
8333     version = "2.001001";
8334     src = fetchurl {
8335       url = "mirror://cpan/authors/id/E/ET/ETHER/Dist-Zilla-Plugin-Test-Portability-2.001001.tar.gz";
8336       hash = "sha256-07kxVx4VoidI6BJwmq/aclEKdMAA/AaiyrWHVYEACyA=";
8337     };
8338     buildInputs = [ ModuleBuildTiny TestDeep TestPortabilityFiles TestWarnings ];
8339     propagatedBuildInputs = [ DistZilla ];
8340     meta = {
8341       description = "Author tests for portability";
8342       homepage = "https://github.com/karenetheridge/Dist-Zilla-Plugin-Test-Portability";
8343       license = with lib.licenses; [ artistic1 gpl1Plus ];
8344     };
8345   };
8347   DistZillaPluginTestSynopsis = buildPerlPackage {
8348     pname = "Dist-Zilla-Plugin-Test-Synopsis";
8349     version = "2.000007";
8350     src = fetchurl {
8351       url = "mirror://cpan/authors/id/D/DO/DOHERTY/Dist-Zilla-Plugin-Test-Synopsis-2.000007.tar.gz";
8352       hash = "sha256-59XiUwzYpbtarfPhZpplOqqW4yyte9a5yrprQlzqtWM=";
8353     };
8354     buildInputs = [ TestDeep TestOutput TestSynopsis ];
8355     propagatedBuildInputs = [ DistZilla ];
8356     meta = {
8357       description = "Release tests for synopses";
8358       license = with lib.licenses; [ artistic1 gpl1Plus ];
8359     };
8360   };
8362   DistZillaPluginTestUnusedVars = buildPerlModule {
8363     pname = "Dist-Zilla-Plugin-Test-UnusedVars";
8364     version = "2.001001";
8365     src = fetchurl {
8366       url = "mirror://cpan/authors/id/E/ET/ETHER/Dist-Zilla-Plugin-Test-UnusedVars-2.001001.tar.gz";
8367       hash = "sha256-df7W0NzCv0B/8nrJ4W7yFTRnFEuYbPovmPhpuqWNdkc=";
8368     };
8369     buildInputs = [ ModuleBuildTiny TestDeep TestOutput TestVars ];
8370     propagatedBuildInputs = [ DistZilla ];
8371     meta = {
8372       description = "Release tests for unused variables";
8373       homepage = "https://metacpan.org/release/Dist-Zilla-Plugin-Test-UnusedVars";
8374       license = with lib.licenses; [ artistic1 gpl1Plus ];
8375     };
8376   };
8378   DistZillaPluginTestVersion = buildPerlPackage {
8379     pname = "Dist-Zilla-Plugin-Test-Version";
8380     version = "1.09";
8381     src = fetchurl {
8382       url = "mirror://cpan/authors/id/P/PL/PLICEASE/Dist-Zilla-Plugin-Test-Version-1.09.tar.gz";
8383       hash = "sha256-ckBQhzG8G/bfrXcB7GVFChjvkkWlIasm69ass5qevhc=";
8384     };
8385     buildInputs = [ Filechdir TestDeep TestEOL TestNoTabs TestScript TestVersion ];
8386     propagatedBuildInputs = [ DistZilla ];
8387     meta = {
8388       description = "Release Test::Version tests";
8389       license = with lib.licenses; [ artistic2 ];
8390     };
8391   };
8393   DistZillaRoleFileWatcher = buildPerlModule {
8394     pname = "Dist-Zilla-Role-FileWatcher";
8395     version = "0.006";
8396     src = fetchurl {
8397       url = "mirror://cpan/authors/id/E/ET/ETHER/Dist-Zilla-Role-FileWatcher-0.006.tar.gz";
8398       hash = "sha256-/jpEuVhtrxJ3/Lu69yFrAs4j77vWlPDfEbf3U0S+TpY=";
8399     };
8400     propagatedBuildInputs = [ DistZilla SafeIsa ];
8401     buildInputs = [ ModuleBuildTiny TestDeep TestFatal ];
8402     meta = {
8403       description = "Receive notification when something changes a file's contents";
8404       homepage = "https://github.com/karenetheridge/Dist-Zilla-Role-FileWatcher";
8405       license = with lib.licenses; [ artistic1 gpl1Plus ];
8406     };
8407   };
8409   Dotenv = buildPerlPackage {
8410     pname = "Dotenv";
8411     version = "0.002";
8412     src = fetchurl {
8413       url = "mirror://cpan/authors/id/B/BO/BOOK/Dotenv-0.002.tar.gz";
8414       hash = "sha256-BMenzEURYX16cMTKQQ0QcH3EliSM2tICQK4kIiMhJFQ=";
8415     };
8416     buildInputs = [ TestCPANMeta TestPod TestPodCoverage ];
8417     propagatedBuildInputs = [ PathTiny ];
8418     meta = {
8419       description = "Support for dotenv in Perl";
8420       license = with lib.licenses; [ artistic1 gpl1Plus ];
8421     };
8422   };
8424   Dumbbench = buildPerlPackage {
8425     pname = "Dumbbench";
8426     version = "0.503";
8427     src = fetchurl {
8428       url = "mirror://cpan/authors/id/B/BD/BDFOY/Dumbbench-0.503.tar.gz";
8429       hash = "sha256-0BYBmoGDE+cERk8oDPZB72Dodx0HeRtZuZ4XoeyAH6k=";
8430     };
8431     propagatedBuildInputs = [ CaptureTiny ClassXSAccessor DevelCheckOS NumberWithError StatisticsCaseResampling ];
8432     meta = {
8433       description = "More reliable benchmarking with the least amount of thinking";
8434       homepage = "https://github.com/briandfoy/dumbbench";
8435       license = with lib.licenses; [ artistic1 gpl1Plus ];
8436       mainProgram = "dumbbench";
8437     };
8438   };
8440   EmailAbstract = buildPerlPackage {
8441     pname = "Email-Abstract";
8442     version = "3.010";
8443     src = fetchurl {
8444       url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-Abstract-3.010.tar.gz";
8445       hash = "sha256-jBL2i1l0yvyZ10lCq+/IWXGTA1qv0nYxKOaqr8pLftY=";
8446     };
8447     propagatedBuildInputs = [ EmailSimple MROCompat ModulePluggable ];
8448     meta = {
8449       description = "Unified interface to mail representations";
8450       homepage = "https://github.com/rjbs/Email-Abstract";
8451       license = with lib.licenses; [ artistic1 gpl1Plus ];
8452     };
8453   };
8455   EmailAddress = buildPerlPackage {
8456     pname = "Email-Address";
8457     version = "1.913";
8458     src = fetchurl {
8459       url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-Address-1.913.tar.gz";
8460       hash = "sha256-avtUH232tTXM92QtNhrhjXqVo/k6zhvFNz9kwkEMpa8=";
8461     };
8462     meta = {
8463       description = "RFC 2822 Address Parsing and Creation";
8464       homepage = "https://github.com/rjbs/Email-Address";
8465       license = with lib.licenses; [ artistic1 gpl1Plus ];
8466     };
8467   };
8469   EmailAddressList = buildPerlPackage {
8470     pname = "Email-Address-List";
8471     version = "0.06";
8472     src = fetchurl {
8473       url = "mirror://cpan/authors/id/B/BP/BPS/Email-Address-List-0.06.tar.gz";
8474       hash = "sha256-MFuUx3gBHO5w2fIVFNkumF+p3Mu4TGR5jwwfCyTrhw4=";
8475     };
8476     buildInputs = [ JSON ];
8477     propagatedBuildInputs = [ EmailAddress ];
8478     meta = {
8479       description = "RFC close address list parsing";
8480       license = with lib.licenses; [ artistic1 gpl1Plus ];
8481     };
8482   };
8484   EmailAddressXS = buildPerlPackage {
8485     pname = "Email-Address-XS";
8486     version = "1.05";
8487     src = fetchurl {
8488       url = "mirror://cpan/authors/id/P/PA/PALI/Email-Address-XS-1.05.tar.gz";
8489       hash = "sha256-FRC38Q1nIBA3zVDSLJ1rJu7KVe3tpM20a7yiflmk6hY=";
8490     };
8491     meta = {
8492       description = "Parse and format RFC 5322 email addresses and groups";
8493       license = with lib.licenses; [ artistic1 gpl1Plus ];
8494     };
8495   };
8497   EmailDateFormat = buildPerlPackage {
8498     pname = "Email-Date-Format";
8499     version = "1.008";
8500     src = fetchurl {
8501       url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-Date-Format-1.008.tar.gz";
8502       hash = "sha256-Qyt8g/+IdJrxKAA/UlfFc67BpGNBjbkO0ihDy7wli08=";
8503     };
8504     meta = {
8505       description = "Produce RFC 2822 date strings";
8506       homepage = "https://github.com/rjbs/Email-Date-Format";
8507       license = with lib.licenses; [ artistic1 gpl1Plus ];
8508     };
8509   };
8511   EmailReply = buildPerlPackage {
8512     pname = "Email-Reply";
8513     version = "1.204";
8514     src = fetchurl {
8515       url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-Reply-1.204.tar.gz";
8516       hash = "sha256-uk/YCsUBfW0TLgNYx4aw7NHHrcvu5cGfs9opZHkaVvA=";
8517     };
8518     propagatedBuildInputs = [ EmailAbstract EmailAddress EmailMIME ];
8519     meta = {
8520       description = "Reply to an email message";
8521       homepage = "https://github.com/Perl-Email-Project/Email-Reply";
8522       license = with lib.licenses; [ artistic1 gpl1Plus ];
8523     };
8524   };
8526   EmailMessageID = buildPerlPackage {
8527     pname = "Email-MessageID";
8528     version = "1.408";
8529     src = fetchurl {
8530       url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-MessageID-1.408.tar.gz";
8531       hash = "sha256-Hz1bT/Cxx7OemsfDGPs3rc0LrJVWA2VGSU0U8G3FZDw=";
8532     };
8533     meta = {
8534       description = "Generate world unique message-ids";
8535       homepage = "https://github.com/rjbs/Email-MessageID";
8536       license = with lib.licenses; [ artistic1 gpl1Plus ];
8537     };
8538   };
8540   EmailMIME = buildPerlPackage {
8541     pname = "Email-MIME";
8542     version = "1.953";
8543     src = fetchurl {
8544       url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-MIME-1.953.tar.gz";
8545       hash = "sha256-mPsGeFBpmiJLq8NI8c7+MNdExg2okC56XOnYt+c99zU=";
8546     };
8547     propagatedBuildInputs = [ EmailAddressXS EmailMIMEContentType EmailMIMEEncodings EmailMessageID EmailSimple MIMETypes ModuleRuntime ];
8548     meta = {
8549       description = "Easy MIME message handling";
8550       homepage = "https://github.com/rjbs/Email-MIME";
8551       license = with lib.licenses; [ artistic1 gpl1Plus ];
8552     };
8553   };
8555   EmailMIMEAttachmentStripper = buildPerlPackage {
8556     pname = "Email-MIME-Attachment-Stripper";
8557     version = "1.317";
8558     buildInputs = [ CaptureTiny ];
8559     propagatedBuildInputs = [ EmailAbstract EmailMIME ];
8561     src = fetchurl {
8562       url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-MIME-Attachment-Stripper-1.317.tar.gz";
8563       hash = "sha256-3LmLCdw+j3V+w4gqQjRUgQi7LRLjz635WibO84Gp54k=";
8564     };
8565     meta = {
8566       description = "Strip the attachments from an email";
8567       homepage = "https://github.com/rjbs/Email-MIME-Attachment-Stripper";
8568       license = with lib.licenses; [ artistic1 gpl1Plus ];
8569     };
8570   };
8572   EmailMIMEContentType = buildPerlPackage {
8573     pname = "Email-MIME-ContentType";
8574     version = "1.028";
8575     src = fetchurl {
8576       url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-MIME-ContentType-1.028.tar.gz";
8577       hash = "sha256-55UCRkM/ftbD5P1N8iJ+DyNBE3w8qxmJAY/DcPWBRcQ=";
8578     };
8579     propagatedBuildInputs = [ TextUnidecode ];
8580     meta = {
8581       description = "Parse and build a MIME Content-Type or Content-Disposition Header";
8582       homepage = "https://github.com/rjbs/Email-MIME-ContentType";
8583       license = with lib.licenses; [ artistic1 gpl1Plus ];
8584     };
8585   };
8587   EmailMIMEEncodings = buildPerlPackage {
8588     pname = "Email-MIME-Encodings";
8589     version = "1.317";
8590     src = fetchurl {
8591       url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-MIME-Encodings-1.317.tar.gz";
8592       hash = "sha256-SppBZxqdFQTE2iQb5BmpUD+jSGJiUm7bgeyp4uvqC68=";
8593     };
8594     buildInputs = [ CaptureTiny ];
8595     meta = {
8596       description = "Unified interface to MIME encoding and decoding";
8597       homepage = "https://github.com/rjbs/Email-MIME-Encodings";
8598       license = with lib.licenses; [ artistic1 gpl1Plus ];
8599     };
8600   };
8602   EmailSend = buildPerlPackage {
8603     pname = "Email-Send";
8604     version = "2.201";
8605     src = fetchurl {
8606       url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-Send-2.201.tar.gz";
8607       hash = "sha256-S77JM1WNfMm4FSutht0xPeJ3ohqJtOqD2E5hWH6V28Y=";
8608     };
8609     propagatedBuildInputs = [ EmailAbstract EmailAddress ReturnValue ];
8610     buildInputs = [ MIMETools MailTools ];
8611     meta = {
8612       description = "Simply Sending Email";
8613       homepage = "https://github.com/rjbs/Email-Send";
8614       license = with lib.licenses; [ artistic1 gpl1Plus ];
8615     };
8616   };
8618   EmailOutlookMessage = buildPerlModule {
8619     pname = "Email-Outlook-Message";
8620     version = "0.921";
8621     src = fetchurl {
8622       url = "mirror://cpan/authors/id/M/MV/MVZ/Email-Outlook-Message-0.921.tar.gz";
8623       hash = "sha256-+0q+6hTNpRweYLwhHPlSG7uq50uEEYym1Y8KciNoA4g=";
8624     };
8625     propagatedBuildInputs = [ EmailMIME EmailSender IOAll IOString OLEStorage_Lite ];
8626     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)
8627     meta = {
8628       homepage = "https://www.matijs.net/software/msgconv/";
8629       description = ".MSG to mbox converter";
8630       license = with lib.licenses; [ artistic1 gpl1Plus ];
8631       maintainers = with maintainers; [ peterhoeg ];
8632       mainProgram = "msgconvert";
8633     };
8634   };
8636   EmailSender = buildPerlPackage {
8637     pname = "Email-Sender";
8638     version = "2.600";
8639     src = fetchurl {
8640       url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-Sender-2.600.tar.gz";
8641       hash = "sha256-7MZ10DDXnZpPsGRWfqiFxmsXw4Yjea0w+CBaKBzY7ik=";
8642     };
8643     buildInputs = [ CaptureTiny ];
8644     propagatedBuildInputs = [ EmailAbstract EmailAddressXS EmailSimple ModuleRuntime Moo MooXTypesMooseLike SubExporter Throwable TryTiny ];
8645     nativeBuildInputs = lib.optional stdenv.hostPlatform.isDarwin shortenPerlShebang;
8646     postPatch = ''
8647       patchShebangs --build util
8648     '';
8649     preCheck = lib.optionalString stdenv.hostPlatform.isDarwin ''
8650       shortenPerlShebang util/sendmail
8651     '';
8652     meta = {
8653       description = "Library for sending email";
8654       homepage = "https://github.com/rjbs/Email-Sender";
8655       license = with lib.licenses; [ artistic1 gpl1Plus ];
8656     };
8657   };
8659   EmailSimple = buildPerlPackage {
8660     pname = "Email-Simple";
8661     version = "2.218";
8662     src = fetchurl {
8663       url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-Simple-2.218.tar.gz";
8664       hash = "sha256-Lc4daP3pnVPbnKQ+IRtpsWm6Lvrs+HpVyzOpM2BHyW0=";
8665     };
8666     propagatedBuildInputs = [ EmailDateFormat ];
8667     meta = {
8668       description = "Simple parsing of RFC2822 message format and headers";
8669       homepage = "https://github.com/rjbs/Email-Simple";
8670       license = with lib.licenses; [ artistic1 gpl1Plus ];
8671     };
8672   };
8674   EmailStuffer = buildPerlPackage {
8675     pname = "Email-Stuffer";
8676     version = "0.020";
8677     src = fetchurl {
8678       url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-Stuffer-0.020.tar.gz";
8679       hash = "sha256-Ch77fy3t05BSsSb3GMotO1hFpBI6OTkv2d+gx25gV8c=";
8680     };
8681     buildInputs = [ Moo TestFatal ];
8682     propagatedBuildInputs = [ EmailMIME EmailSender ModuleRuntime ParamsUtil ];
8683     meta = {
8684       description = "More casual approach to creating and sending Email:: emails";
8685       homepage = "https://github.com/rjbs/Email-Stuffer";
8686       license = with lib.licenses; [ artistic1 gpl1Plus ];
8687       maintainers = with maintainers; [ sgo ];
8688     };
8689   };
8691   EmailValid = buildPerlPackage {
8692     pname = "Email-Valid";
8693     version = "1.203";
8694     src = fetchurl {
8695       url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-Valid-1.203.tar.gz";
8696       hash = "sha256-ICG/ux4sJ55evYRoDllvlzRNQphQsjIme3b0kDdSK5M=";
8697     };
8698     propagatedBuildInputs = [ IOCaptureOutput MailTools NetDNS NetDomainTLD ];
8699     doCheck = false;
8700     meta = {
8701       description = "Check validity of Internet email addresses";
8702       license = with lib.licenses; [ artistic1 gpl1Plus ];
8703     };
8704   };
8706   EmailValidLoose = buildPerlPackage {
8707     pname = "Email-Valid-Loose";
8708     version = "0.05";
8709     src = fetchurl {
8710       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Email-Valid-Loose-0.05.tar.gz";
8711       hash = "sha256-5xjnbt3uJAJRyZnhOcjL5vLMgBktpa+HXL0S+oq5Olk=";
8712     };
8713     propagatedBuildInputs = [ EmailValid ];
8714     meta = {
8715       description = "Email::Valid which allows dot before at mark";
8716       license = with lib.licenses; [ artistic1 gpl1Plus ];
8717     };
8718   };
8720   Encode = buildPerlPackage {
8721     pname = "Encode";
8722     version = "3.19";
8723     src = fetchurl {
8724       url = "mirror://cpan/authors/id/D/DA/DANKOGAI/Encode-3.19.tar.gz";
8725       hash = "sha256-kWP4SO72nk1MyIODl/CGH9nqft4AERfb2WlPjZUFLvU=";
8726     };
8727     meta = {
8728       description = "Character encodings in Perl";
8729       license = with lib.licenses; [ artistic1 gpl1Plus ];
8730       mainProgram = "piconv";
8731     };
8732   };
8734   EncodeBase32GMP = buildPerlPackage {
8735     pname = "Encode-Base32-GMP";
8736     version = "0.02";
8737     src = fetchurl {
8738       url = "mirror://cpan/authors/id/J/JW/JWANG/Encode-Base32-GMP-0.02.tar.gz";
8739       hash = "sha256-RUIG+n2C5V4DJ0aYcyNBtgcVDwDo4q7FjzUyagMIMtw=";
8740     };
8741     buildInputs = [ TestBase ];
8742     propagatedBuildInputs = [ MathGMPz ];
8743     meta = {
8744       description = "High speed Base32 encoding using GMP with BigInt and MD5 support";
8745       homepage = "https://metacpan.org/release/Encode-Base32-GMP";
8746       license = with lib.licenses; [ mit ];
8747       maintainers = with maintainers; [ sgo ];
8748     };
8749   };
8751   EncodeDetect = buildPerlModule {
8752     pname = "Encode-Detect";
8753     version = "1.01";
8754     src = fetchurl {
8755       url = "mirror://cpan/authors/id/J/JG/JGMYERS/Encode-Detect-1.01.tar.gz";
8756       hash = "sha256-g02JOqfbbOPxWK+9DkMtbtFaJ24JQNsKdL4T/ZxLu/E=";
8757     };
8758     nativeBuildInputs = [ pkgs.ld-is-cc-hook ];
8759     meta = {
8760       description = "Encode::Encoding subclass that detects the encoding of data";
8761       license = with lib.licenses; [ mpl11 gpl2Plus lgpl2Plus ]; # taken from fedora
8762     };
8763   };
8766   EncodeEUCJPASCII = buildPerlPackage {
8767     pname = "Encode-EUCJPASCII";
8768     version = "0.03";
8769     src = fetchurl {
8770       url = "mirror://cpan/authors/id/N/NE/NEZUMI/Encode-EUCJPASCII-0.03.tar.gz";
8771       hash = "sha256-+ZjTTVX9nILPkQeGoESNHt+mC/aOLCMGckymfGKd6GE=";
8772     };
8773     outputs = [ "out" ];
8774     meta = {
8775       description = "EucJP-ascii - An eucJP-open mapping";
8776       license = with lib.licenses; [ artistic1 gpl1Plus ];
8777     };
8778   };
8780   EncodeHanExtra = buildPerlPackage {
8781     pname = "Encode-HanExtra";
8782     version = "0.23";
8783     src = fetchurl {
8784       url = "mirror://cpan/authors/id/A/AU/AUDREYT/Encode-HanExtra-0.23.tar.gz";
8785       hash = "sha256-H9SwbK2nCFgAOvFT+UyGOzuV8uPQO6GNBFGoHVHbRDo=";
8786     };
8787     meta = {
8788       description = "Extra sets of Chinese encodings";
8789       license = with lib.licenses; [ mit ];
8790     };
8791   };
8793   EncodeIMAPUTF7 = buildPerlPackage {
8794     pname = "Encode-IMAPUTF7";
8795     version = "1.05";
8796     src = fetchurl {
8797       url = "mirror://cpan/authors/id/P/PM/PMAKHOLM/Encode-IMAPUTF7-1.05.tar.gz";
8798       hash = "sha256-RwMF3cN0g8/o08FtE3cKKAEfYAv1V6y4w+B3OZl8N+E=";
8799     };
8800     nativeCheckInputs = [ TestNoWarnings ];
8801     meta = {
8802       description = "IMAP modified UTF-7 encoding";
8803       license = with lib.licenses; [ artistic1 gpl1Plus ];
8804     };
8805     patches = [
8806       ../development/perl-modules/encode-imaputf7.patch
8807     ];
8808   };
8810   EncodeJIS2K = buildPerlPackage {
8811     pname = "Encode-JIS2K";
8812     version = "0.03";
8813     src = fetchurl {
8814       url = "mirror://cpan/authors/id/D/DA/DANKOGAI/Encode-JIS2K-0.03.tar.gz";
8815       hash = "sha256-HshNcts53rTa1vypWs/MIQM/RaJNNHwg+aGmlolsNcw=";
8816     };
8817     outputs = [ "out" ];
8818     meta = {
8819       description = "JIS X 0212 (aka JIS 2000) Encodings";
8820       license = with lib.licenses; [ artistic1 gpl1Plus ];
8821     };
8822   };
8824   EncodeLocale = buildPerlPackage {
8825     pname = "Encode-Locale";
8826     version = "1.05";
8827     src = fetchurl {
8828       url = "mirror://cpan/authors/id/G/GA/GAAS/Encode-Locale-1.05.tar.gz";
8829       hash = "sha256-F2+gJ3H1QqTvsdvCpMko6PQ5G/QHhHO9YEDY8RrbDsE=";
8830     };
8831     preCheck = if stdenv.hostPlatform.isCygwin then ''
8832       sed -i"" -e "s@plan tests => 13@plan tests => 10@" t/env.t
8833       sed -i"" -e "s@ok(env(\"\\\x@#ok(env(\"\\\x@" t/env.t
8834       sed -i"" -e "s@ok(\$ENV{\"\\\x@#ok(\$ENV{\"\\\x@" t/env.t
8835     '' else null;
8836     meta = {
8837       description = "Determine the locale encoding";
8838       license = with lib.licenses; [ artistic1 gpl1Plus ];
8839     };
8840   };
8842   EncodeNewlines = buildPerlPackage {
8843     pname = "Encode-Newlines";
8844     version = "0.05";
8845     src = fetchurl {
8846       url = "mirror://cpan/authors/id/N/NE/NEILB/Encode-Newlines-0.05.tar.gz";
8847       hash = "sha256-NLMfysjI/cghubNDSoLXEzIT73TM/yVf4UioavloN74=";
8848     };
8849     meta = {
8850       description = "Normalize line ending sequences";
8851       homepage = "https://github.com/neilb/Encode-Newlines";
8852       license = with lib.licenses; [ artistic1 gpl1Plus ];
8853     };
8854   };
8856   EncodePunycode = buildPerlPackage {
8857     pname = "Encode-Punycode";
8858     version = "1.002";
8859     src = fetchurl {
8860       url = "mirror://cpan/authors/id/C/CF/CFAERBER/Encode-Punycode-1.002.tar.gz";
8861       hash = "sha256-yjrO7NuAtdRaoQ4c3o/sTpC0+MkYnHUE3YZY8HH3cZQ=";
8862     };
8863     buildInputs = [ TestNoWarnings ];
8864     propagatedBuildInputs = [ NetIDNEncode ];
8865     meta = {
8866       description = "Encode plugin for Punycode (RFC 3492)";
8867       homepage = "https://search.cpan.org/dist/Encode-Punycode";
8868       license = with lib.licenses; [ artistic1 gpl1Plus ];
8869     };
8870   };
8872   enum = buildPerlPackage {
8873     pname = "enum";
8874     version = "1.12";
8875     src = fetchurl {
8876       url = "mirror://cpan/authors/id/N/NE/NEILB/enum-1.12.tar.gz";
8877       hash = "sha256-aaeokc04iO2LAsXpmh9In5KmLsNRwLx4lP1719FEfqk=";
8878     };
8879     meta = {
8880       description = "C style enumerated types and bitmask flags in Perl";
8881       homepage = "https://github.com/neilb/enum";
8882       license = with lib.licenses; [ artistic1 gpl1Plus ];
8883     };
8884   };
8886   Env = buildPerlPackage {
8887     pname = "Env";
8888     version = "1.04";
8889     src = fetchurl {
8890       url = "mirror://cpan/authors/id/F/FL/FLORA/Env-1.04.tar.gz";
8891       hash = "sha256-2Uo9QS3yRq/cMaIZnL2K6RUWej9GhPe3AUzhIAJR67A=";
8892     };
8893     meta = {
8894       description = "Perl module that imports environment variables as scalars or arrays";
8895       homepage = "https://search.cpan.org/dist/Env";
8896       license = with lib.licenses; [ artistic1 gpl1Plus ];
8897     };
8898   };
8900   EnvPath = buildPerlPackage {
8901     pname = "Env-Path";
8902     version = "0.19";
8903     src = fetchurl {
8904       url = "mirror://cpan/authors/id/D/DS/DSB/Env-Path-0.19.tar.gz";
8905       hash = "sha256-JEvwk3mIMqfYQdnuW0sOa0iZlu72NUHlBQkao0qQFeI=";
8906     };
8907     meta = {
8908       description = "Advanced operations on path variables";
8909       license = with lib.licenses; [ artistic1 gpl1Plus ];
8910       mainProgram = "envpath";
8911     };
8912   };
8914   EnvSanctify = buildPerlPackage {
8915     pname = "Env-Sanctify";
8916     version = "1.12";
8917     src = fetchurl {
8918       url = "mirror://cpan/authors/id/B/BI/BINGOS/Env-Sanctify-1.12.tar.gz";
8919       hash = "sha256-IOO1ZhwmVHSmnyiZR46ye5RkklWGu2tvtmYSnlgoMl8=";
8920     };
8921     meta = {
8922       description = "Lexically scoped sanctification of %ENV";
8923       homepage = "https://github.com/bingos/env-sanctify";
8924       license = with lib.licenses; [ artistic1 gpl1Plus ];
8925     };
8926   };
8928   ENVUtil = buildPerlPackage {
8929     pname = "ENV-Util";
8930     version = "0.03";
8931     src = fetchurl {
8932       url = "mirror://cpan/authors/id/G/GA/GARU/ENV-Util-0.03.tar.gz";
8933       hash = "sha256-B1574ehSxD6wiGYvr978FS9O9WyEPB4F2QDaGQb3P60=";
8934     };
8935     meta = {
8936       description = "Parse prefixed environment variables and dotnev (.env) files into Perl";
8937       license = with lib.licenses; [ artistic1 gpl1Plus ];
8938     };
8939   };
8941   Error = buildPerlModule {
8942     pname = "Error";
8943     version = "0.17029";
8944     src = fetchurl {
8945       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Error-0.17029.tar.gz";
8946       hash = "sha256-GiP3kTAyrtbUtoMhNzo4mcpmWQ9HJzkaCR7BnJW/etw=";
8947     };
8948     meta = {
8949       description = "Error/exception handling in an OO-ish way";
8950       license = with lib.licenses; [ artistic1 gpl1Plus ];
8951     };
8952   };
8954   EV = buildPerlPackage {
8955     pname = "EV";
8956     version = "4.34";
8957     src = fetchurl {
8958       url = "mirror://cpan/authors/id/M/ML/MLEHMANN/EV-4.34.tar.gz";
8959       hash = "sha256-EhFoPc57Z3H0q3EMwVNxK913umFXoTKU0LtzSR/QZWA=";
8960     };
8961     buildInputs = [ CanaryStability ];
8962     propagatedBuildInputs = [ commonsense ];
8963     meta = {
8964       description = "Perl interface to libev, a high performance full-featured event loop";
8965       license = with lib.licenses; [ gpl1Plus ];
8966     };
8967   };
8969   EvalClosure = buildPerlPackage {
8970     pname = "Eval-Closure";
8971     version = "0.14";
8972     src = fetchurl {
8973       url = "mirror://cpan/authors/id/D/DO/DOY/Eval-Closure-0.14.tar.gz";
8974       hash = "sha256-6glE8vXsmNiVvvbVA+bko3b+pjg6a8ZMdnDUb/IhjK0=";
8975     };
8976     buildInputs = [ TestFatal TestRequires ];
8977     meta = {
8978       description = "Safely and cleanly create closures via string eval";
8979       homepage = "https://metacpan.org/release/Eval-Closure";
8980       license = with lib.licenses; [ artistic1 gpl1Plus ];
8981     };
8982   };
8984   EvalSafe = buildPerlPackage rec {
8985     pname = "Eval-Safe";
8986     version = "0.02";
8987     src = fetchurl {
8988       url = "mirror://cpan/authors/id/M/MA/MATHIAS/Eval-Safe/Eval-Safe-${version}.tar.gz";
8989       hash = "sha256-VaUsIz4troYRP58Zs09hftz8hBb5vs5nEme9GBGxIRE=";
8990     };
8991     outputs = [ "out" ];
8992     meta = with lib; {
8993       description = "Simplified safe evaluation of Perl code";
8994       homepage = "https://github.com/mkende/perl-eval-safe";
8995       license = licenses.mit;
8996       maintainers = with maintainers; [ figsoda ];
8997     };
8998   };
9000   ExcelWriterXLSX = buildPerlPackage {
9001     pname = "Excel-Writer-XLSX";
9002     version = "1.11";
9003     src = fetchurl {
9004       url = "mirror://cpan/authors/id/J/JM/JMCNAMARA/Excel-Writer-XLSX-1.11.tar.gz";
9005       hash = "sha256-yzMA0jEZxpiGTvC3PBmnLLpxi/wG7QBzWaUxP5YcwqA=";
9006     };
9007     propagatedBuildInputs = [ ArchiveZip ];
9008     meta = {
9009       description = "Create a new file in the Excel 2007+ XLSX format";
9010       homepage = "https://jmcnamara.github.com/excel-writer-xlsx";
9011       license = with lib.licenses; [ artistic1 gpl1Plus ];
9012       mainProgram = "extract_vba";
9013     };
9014   };
9016   ExceptionBase = buildPerlModule {
9017     pname = "Exception-Base";
9018     version = "0.2501";
9019     src = fetchurl {
9020       url = "mirror://cpan/authors/id/D/DE/DEXTER/Exception-Base-0.2501.tar.gz";
9021       hash = "sha256-VyPdePSsC00mKgXqRq9mPqANgJay6cCkNRXCEHYOHnU=";
9022     };
9023     buildInputs = [ TestUnitLite ];
9024     patches = [
9025       ../development/perl-modules/Exception-Base-remove-smartmatch-when-5.38.0.patch
9026     ];
9027     meta = {
9028       description = "Lightweight exceptions";
9029       license = with lib.licenses; [ artistic1 gpl1Plus ];
9030     };
9031   };
9033   ExceptionClass = buildPerlPackage {
9034     pname = "Exception-Class";
9035     version = "1.45";
9036     src = fetchurl {
9037       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Exception-Class-1.45.tar.gz";
9038       hash = "sha256-VIKnfvAnyh+fOeH0jFWDVulUk2/I+73ubIEcUScBskk=";
9039     };
9040     propagatedBuildInputs = [ ClassDataInheritable DevelStackTrace ];
9041     meta = {
9042       description = "Exception Object Class";
9043       license = with lib.licenses; [ artistic1 gpl1Plus ];
9044     };
9045   };
9047   ExceptionDied = buildPerlModule {
9048     pname = "Exception-Died";
9049     version = "0.06";
9050     src = fetchurl {
9051       url = "mirror://cpan/authors/id/D/DE/DEXTER/Exception-Died-0.06.tar.gz";
9052       hash = "sha256-NcRAvCr9TVfiQaDbG05o2dUpXfLbjXidObX0UQWXirU=";
9053     };
9054     buildInputs = [ TestAssert TestUnitLite ];
9055     propagatedBuildInputs = [ ExceptionBase constantboolean ];
9056     meta = {
9057       description = "Convert simple die into real exception object";
9058       license = with lib.licenses; [ artistic1 gpl1Plus ];
9059     };
9060   };
9062   ExceptionWarning = buildPerlModule {
9063     pname = "Exception-Warning";
9064     version = "0.0401";
9065     src = fetchurl {
9066       url = "mirror://cpan/authors/id/D/DE/DEXTER/Exception-Warning-0.0401.tar.gz";
9067       hash = "sha256-ezacps61se3ytdX4cOl0x8k+kwNnw5o5AL/2CZce06g=";
9068     };
9069     buildInputs = [ TestAssert TestUnitLite ];
9070     propagatedBuildInputs = [ ExceptionBase ];
9071     meta = {
9072       description = "Convert simple warn into real exception object";
9073       license = with lib.licenses; [ artistic1 gpl1Plus ];
9074     };
9075   };
9077   ExporterDeclare = buildPerlModule {
9078     pname = "Exporter-Declare";
9079     version = "0.114";
9080     src = fetchurl {
9081       url = "mirror://cpan/authors/id/E/EX/EXODIST/Exporter-Declare-0.114.tar.gz";
9082       hash = "sha256-S9cNbKdvb2un5MYY1KyTuFk6WPEjPMvhixD18gTx1OQ=";
9083     };
9084     buildInputs = [ FennecLite TestException ];
9085     propagatedBuildInputs = [ MetaBuilder aliased ];
9086     meta = {
9087       description = "Exporting done right";
9088       homepage = "http://open-exodus.net/projects/Exporter-Declare";
9089       license = with lib.licenses; [ artistic1 gpl1Plus ];
9090     };
9091   };
9093   ExporterLite = buildPerlPackage {
9094     pname = "Exporter-Lite";
9095     version = "0.09";
9096     src = fetchurl {
9097       url = "mirror://cpan/authors/id/N/NE/NEILB/Exporter-Lite-0.09.tar.gz";
9098       hash = "sha256-edixT9UBOSLGPoUPFb9RBZ8lAkBFNetmkO8jYSwqGY0=";
9099     };
9100     meta = {
9101       description = "Lightweight exporting of functions and variables";
9102       license = with lib.licenses; [ artistic1 gpl1Plus ];
9103     };
9104   };
9106   ExporterTiny = buildPerlPackage {
9107     pname = "Exporter-Tiny";
9108     version = "1.006002";
9109     src = fetchurl {
9110       url = "mirror://cpan/authors/id/T/TO/TOBYINK/Exporter-Tiny-1.006002.tar.gz";
9111       hash = "sha256-byleLL/7HbwVvbna3DQWccHgzSvfLTErF1Jic8MiY40=";
9112     };
9113     meta = {
9114       description = "Exporter with the features of Sub::Exporter but only core dependencies";
9115       homepage = "https://metacpan.org/release/Exporter-Tiny";
9116       license = with lib.licenses; [ artistic1 gpl1Plus ];
9117     };
9118   };
9120   Expect = buildPerlPackage {
9121     pname = "Expect";
9122     version = "1.35";
9123     src = fetchurl {
9124       url = "mirror://cpan/authors/id/J/JA/JACOBY/Expect-1.35.tar.gz";
9125       hash = "sha256-CdknYUId7NSVhTEDN5FlqZ779FLHIPMCd2As8jZ5/QY=";
9126     };
9127     propagatedBuildInputs = [ IOTty ];
9128     meta = {
9129       description = "Automate interactions with command line programs that expose a text terminal interface";
9130       license = with lib.licenses; [ artistic1 gpl1Plus ];
9131     };
9132   };
9134   ExpectSimple = buildPerlPackage {
9135     pname = "Expect-Simple";
9136     version = "0.04";
9137     src = fetchurl {
9138       url = "mirror://cpan/authors/id/D/DJ/DJERIUS/Expect-Simple-0.04.tar.gz";
9139       hash = "sha256-r4O5IYXmQmlZE/8Tjv6Bl1LoCFd1mZber8qrJwCtXbU=";
9140     };
9141     propagatedBuildInputs = [ Expect ];
9142     meta = {
9143       description = "Wrapper around the Expect module";
9144       license = with lib.licenses; [ artistic1 gpl1Plus ];
9145     };
9146   };
9148   ExtUtilsCChecker = buildPerlModule {
9149     pname = "ExtUtils-CChecker";
9150     version = "0.11";
9151     src = fetchurl {
9152       url = "mirror://cpan/authors/id/P/PE/PEVANS/ExtUtils-CChecker-0.11.tar.gz";
9153       hash = "sha256-EXc2Z343/GEfW3Y3TX+VLhlw64Dh9q1RUNUW565TG/U=";
9154     };
9155     buildInputs = [ TestFatal ];
9156     meta = {
9157       description = "Configure-time utilities for using C headers,";
9158       license = with lib.licenses; [ artistic1 gpl1Plus ];
9159     };
9160   };
9162   ExtUtilsConfig = buildPerlPackage {
9163     pname = "ExtUtils-Config";
9164     version = "0.008";
9165     src = fetchurl {
9166       url = "mirror://cpan/authors/id/L/LE/LEONT/ExtUtils-Config-0.008.tar.gz";
9167       hash = "sha256-rlEE9jRlDc6KebftE/tZ1no5whOmd2z9qj7nSeYvGow=";
9168     };
9169     meta = {
9170       description = "Wrapper for perl's configuration";
9171       license = with lib.licenses; [ artistic1 gpl1Plus ];
9172     };
9173   };
9175   ExtUtilsConstant = buildPerlPackage {
9176     pname = "ExtUtils-Constant";
9177     version = "0.25";
9178     src = fetchurl {
9179       url = "mirror://cpan/authors/id/N/NW/NWCLARK/ExtUtils-Constant-0.25.tar.gz";
9180       hash = "sha256-aTPQ6WO2IoHvdWEGjmrsrIxKwrR2srugmrC5D7rJ11c=";
9181     };
9182     patches = [
9183       ../development/perl-modules/ExtUtils-Constant-fix-indirect-method-call-in-test.patch
9184     ];
9185     meta = {
9186       description = "Generate XS code to import C header constants";
9187       license = with lib.licenses; [ artistic1 gpl1Plus ];
9188     };
9189   };
9191   ExtUtilsCppGuess = buildPerlPackage {
9192     pname = "ExtUtils-CppGuess";
9193     version = "0.26";
9194     src = fetchurl {
9195       url = "mirror://cpan/authors/id/E/ET/ETJ/ExtUtils-CppGuess-0.26.tar.gz";
9196       hash = "sha256-yLNiuGAXKkB2rO4AQ49SuGRk8sUAcCz891J4Ef+aaD4=";
9197     };
9198     doCheck = !stdenv.hostPlatform.isDarwin;
9199     nativeBuildInputs = [ pkgs.ld-is-cc-hook ];
9200     propagatedBuildInputs = [ CaptureTiny ];
9201     buildInputs = [ ModuleBuild ];
9202     meta = {
9203       description = "Guess C++ compiler and flags";
9204       license = with lib.licenses; [ artistic1 gpl1Plus ];
9205     };
9206   };
9208   ExtUtilsDepends = buildPerlPackage {
9209     pname = "ExtUtils-Depends";
9210     version = "0.8001";
9211     src = fetchurl {
9212       url = "mirror://cpan/authors/id/X/XA/XAOC/ExtUtils-Depends-0.8001.tar.gz";
9213       hash = "sha256-ZzxDh+eJbBohYJnB+7P6qndj1/X5WhpWpgoqKQbBMcU=";
9214     };
9215     meta = {
9216       description = "Easily build XS extensions that depend on XS extensions";
9217       license = with lib.licenses; [ artistic1 gpl1Plus artistic1 gpl1Plus ];
9218     };
9219   };
9221   ExtUtilsF77 = buildPerlPackage {
9222     pname = "ExtUtils-F77";
9223     version = "1.26";
9224     src = fetchurl {
9225       url = "mirror://cpan/authors/id/E/ET/ETJ/ExtUtils-F77-1.26.tar.gz";
9226       hash = "sha256-q90dPuxMpPyuXxUrQLyqhi48gG4H5KqRI3V/aqSLndY=";
9227     };
9228     buildInputs = [ pkgs.gfortran ];
9229     propagatedBuildInputs = [ FileWhich ];
9230     meta = {
9231       description = "Simple interface to F77 libs";
9232       license = with lib.licenses; [ artistic1 gpl1Plus ];
9233     };
9234   };
9236   ExtUtilsHelpers = buildPerlPackage {
9237     pname = "ExtUtils-Helpers";
9238     version = "0.026";
9239     src = fetchurl {
9240       url = "mirror://cpan/authors/id/L/LE/LEONT/ExtUtils-Helpers-0.026.tar.gz";
9241       hash = "sha256-3pAbZ5CkVXz07JCBSeA1eDsSW/EV65ZA/rG8HCTDNBY=";
9242     };
9243     meta = {
9244       description = "Various portability utilities for module builders";
9245       license = with lib.licenses; [ artistic1 gpl1Plus ];
9246     };
9247   };
9249   ExtUtilsInstall = buildPerlPackage {
9250     pname = "ExtUtils-Install";
9251     version = "2.22";
9252     src = fetchurl {
9253       url = "mirror://cpan/authors/id/B/BI/BINGOS/ExtUtils-Install-2.22.tar.gz";
9254       hash = "sha256-M3Jbr77Tgp1hPkxlHC4a0SBnDH0qxc8F+DdX/Jddb/I=";
9255     };
9256     meta = {
9257       description = "Install files from here to there";
9258       homepage = "https://metacpan.org/release/ExtUtils-Install";
9259       license = with lib.licenses; [ artistic1 gpl1Plus ];
9260     };
9261   };
9263   ExtUtilsInstallPaths = buildPerlPackage {
9264     pname = "ExtUtils-InstallPaths";
9265     version = "0.012";
9266     src = fetchurl {
9267       url = "mirror://cpan/authors/id/L/LE/LEONT/ExtUtils-InstallPaths-0.012.tar.gz";
9268       hash = "sha256-hHNeMDe6sf3/o8JQhWetQSp4XJFZnbPBJZOlCh3UNO0=";
9269     };
9270     propagatedBuildInputs = [ ExtUtilsConfig ];
9271     meta = {
9272       description = "Build.PL install path logic made easy";
9273       license = with lib.licenses; [ artistic1 gpl1Plus ];
9274     };
9275   };
9277   ExtUtilsLibBuilder = buildPerlModule {
9278     pname = "ExtUtils-LibBuilder";
9279     version = "0.08";
9280     src = fetchurl {
9281       url = "mirror://cpan/authors/id/A/AM/AMBS/ExtUtils-LibBuilder-0.08.tar.gz";
9282       hash = "sha256-xRFx4G3lMDnwvKHZemRx7DeUH/Weij0csXDr3SVztdI=";
9283     };
9284     perlPreHook = "export LD=$CC";
9285     meta = {
9286       description = "Tool to build C libraries";
9287       license = with lib.licenses; [ artistic1 gpl1Plus ];
9288     };
9289   };
9291   ExtUtilsMakeMaker = buildPerlPackage {
9292     pname = "ExtUtils-MakeMaker";
9293     version = "7.70";
9294     src = fetchurl {
9295       url = "mirror://cpan/authors/id/B/BI/BINGOS/ExtUtils-MakeMaker-7.70.tar.gz";
9296       hash = "sha256-8Qi9RkINLwDSQoJfhlsPaIUQhJJJJPkiYdaExJ4+enQ=";
9297     };
9298     meta = {
9299       description = "Create a module Makefile";
9300       homepage = "https://metacpan.org/release/ExtUtils-MakeMaker";
9301       license = with lib.licenses; [ artistic1 gpl1Plus ];
9302       mainProgram = "instmodsh";
9303     };
9304   };
9306   ExtUtilsMakeMakerCPANfile = buildPerlPackage {
9307     pname = "ExtUtils-MakeMaker-CPANfile";
9308     version = "0.09";
9309     src = fetchurl {
9310       url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/ExtUtils-MakeMaker-CPANfile-0.09.tar.gz";
9311       hash = "sha256-LAd2B9SwoQhWkHTf926BaGWQYq2jpq94swzKDUD44nU=";
9312     };
9313     propagatedBuildInputs = [ ModuleCPANfile ];
9314     meta = {
9315       description = "Cpanfile support for EUMM";
9316       license = with lib.licenses; [ artistic1 gpl1Plus ];
9317     };
9318   };
9320   ExtUtilsPkgConfig = buildPerlPackage {
9321     pname = "ExtUtils-PkgConfig";
9322     version = "1.16";
9323     src = fetchurl {
9324       url = "mirror://cpan/authors/id/X/XA/XAOC/ExtUtils-PkgConfig-1.16.tar.gz";
9325       hash = "sha256-u+rO2ZXX2NEM/FGjpaZtpBzrK8BP7cq1DhDmMA6AHG4=";
9326     };
9327     nativeBuildInputs = [ buildPackages.pkg-config ];
9328     propagatedBuildInputs = [ pkgs.pkg-config ];
9329     postPatch = ''
9330       # no pkg-config binary when cross-compiling so the check fails
9331       substituteInPlace Makefile.PL \
9332         --replace "pkg-config" "$PKG_CONFIG"
9333     '';
9334     doCheck = false; # expects test_glib-2.0.pc in PKG_CONFIG_PATH
9335     meta = {
9336       description = "Simplistic interface to pkg-config";
9337       license = with lib.licenses; [ lgpl21Plus ];
9338     };
9339   };
9341   # From CPAN[1]:
9342   #   This module exists merely as a compatibility wrapper around
9343   #   ExtUtils::Typemaps. In a nutshell, ExtUtils::Typemap was renamed to
9344   #   ExtUtils::Typemaps because the Typemap directory in lib/ could collide with
9345   #   the typemap file on case-insensitive file systems.
9346   #
9347   #   The ExtUtils::Typemaps module is part of the ExtUtils::ParseXS distribution
9348   #   and ships with the standard library of perl starting with perl version
9349   #   5.16.
9350   #
9351   # [1] https://metacpan.org/pod/release/SMUELLER/ExtUtils-Typemap-1.00/lib/ExtUtils/Typemap.pm:
9352   ExtUtilsTypemap = buildPerlPackage {
9353     pname = "ExtUtils-Typemap";
9354     version = "1.00";
9355     src = fetchurl {
9356       url = "mirror://cpan/authors/id/S/SM/SMUELLER/ExtUtils-Typemap-1.00.tar.gz";
9357       hash = "sha256-sbAVdy27BouToPb/oC9dlIIjZeYBisXtK8U8pmkHH8c=";
9358     };
9359     meta = {
9360       description = "Read/Write/Modify Perl/XS typemap files";
9361       license = with lib.licenses; [ artistic1 gpl1Plus ];
9362     };
9363   };
9365   ExtUtilsTypemapsDefault = buildPerlModule {
9366     pname = "ExtUtils-Typemaps-Default";
9367     version = "1.05";
9368     src = fetchurl {
9369       url = "mirror://cpan/authors/id/S/SM/SMUELLER/ExtUtils-Typemaps-Default-1.05.tar.gz";
9370       hash = "sha256-Pfr1g36/3AB4lb/KhMPC521Ymn0zZADo37MkPYGCFd4=";
9371     };
9372     meta = {
9373       description = "Set of useful typemaps";
9374       license = with lib.licenses; [ artistic1 gpl1Plus ];
9375     };
9376   };
9378   ExtUtilsXSBuilder = buildPerlPackage {
9379     pname = "ExtUtils-XSBuilder";
9380     version = "0.28";
9381     src = fetchurl {
9382       url = "mirror://cpan/authors/id/G/GR/GRICHTER/ExtUtils-XSBuilder-0.28.tar.gz";
9383       hash = "sha256-jM7ThuPVRMXsLes67QVbcuvPwuqabIB9qHxCRScv6Ao=";
9384     };
9385     propagatedBuildInputs = [ ParseRecDescent TieIxHash ];
9386     meta = {
9387       description = "Automatic Perl XS glue code generation";
9388       license = with lib.licenses; [ artistic1 gpl1Plus ];
9389     };
9390   };
9392   ExtUtilsXSpp = buildPerlModule {
9393     pname = "ExtUtils-XSpp";
9394     version = "0.18";
9395     src = fetchurl {
9396       url = "mirror://cpan/authors/id/S/SM/SMUELLER/ExtUtils-XSpp-0.18.tar.gz";
9397       hash = "sha256-kXatZGcp470nz3q/EUvt00JL/xumEYXPx9VPOpIjqP8=";
9398     };
9399     buildInputs = [ TestBase TestDifferences ];
9400     meta = {
9401       description = "XS for C++";
9402       license = with lib.licenses; [ artistic1 gpl1Plus ];
9403       mainProgram = "xspp";
9404     };
9405   };
9407   FatalException = buildPerlModule {
9408     pname = "Fatal-Exception";
9409     version = "0.05";
9410     src = fetchurl {
9411       url = "mirror://cpan/authors/id/D/DE/DEXTER/Fatal-Exception-0.05.tar.gz";
9412       hash = "sha256-KAldIT+zKknJwjKmhEg375Rdua1unmHkULTfTQjj7k8=";
9413     };
9414     buildInputs = [ ExceptionWarning TestAssert TestUnitLite ];
9415     propagatedBuildInputs = [ ExceptionDied ];
9416     meta = {
9417       description = "Thrown when core function has a fatal error";
9418       license = with lib.licenses; [ artistic1 gpl1Plus ];
9419     };
9420   };
9422   FCGI = buildPerlPackage {
9423     pname = "FCGI";
9424     version = "0.82";
9425     src = fetchurl {
9426       url = "mirror://cpan/authors/id/E/ET/ETHER/FCGI-0.82.tar.gz";
9427       hash = "sha256-TH1g4m2iwH8Fik40UCHpJQUnOzPJVCIVl34IRhHwns8=";
9428     };
9429     buildInputs = [ FCGIClient ];
9430     postPatch = lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
9431       sed -i '/use IO::File/d' Makefile.PL
9432     '';
9433     meta = {
9434       description = "Fast CGI module";
9435       license = with lib.licenses; [ oml ];
9436     };
9437   };
9439   FCGIClient = buildPerlModule {
9440     pname = "FCGI-Client";
9441     version = "0.09";
9442     src = fetchurl {
9443       url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/FCGI-Client-0.09.tar.gz";
9444       hash = "sha256-1TfLCc5aqz9Eemu0QV5GzAbv4BYRzVYom1WCvbRiIeg=";
9445     };
9446     propagatedBuildInputs = [ Moo TypeTiny ];
9447     buildInputs = [ ModuleBuildTiny ];
9448     meta = {
9449       description = "Client library for fastcgi protocol";
9450       homepage = "https://github.com/tokuhirom/p5-fcgi-client";
9451       license = with lib.licenses; [ artistic1 gpl1Plus ];
9452     };
9453   };
9455   FCGIProcManager = buildPerlPackage {
9456     pname = "FCGI-ProcManager";
9457     version = "0.28";
9458     src = fetchurl {
9459       url = "mirror://cpan/authors/id/A/AR/ARODLAND/FCGI-ProcManager-0.28.tar.gz";
9460       hash = "sha256-4clYwEJCehdeBR4ACPICXo7IBhPTx3UFl7+OUpsEQg4=";
9461     };
9462     meta = {
9463       description = "Perl-based FastCGI process manager";
9464       license = with lib.licenses; [ gpl2Plus ];
9465     };
9466   };
9468   FFIC = buildPerlPackage {
9469     pname = "FFI-C";
9470     version = "0.15";
9471     src = fetchurl {
9472       url = "mirror://cpan/authors/id/P/PL/PLICEASE/FFI-C-0.15.tar.gz";
9473       hash = "sha256-63BgfmZzvMsY3yf0zuRZ+23EGODak+aSzcNVX+QNL04=";
9474     };
9475     buildInputs = [ CaptureTiny PathTiny Test2Suite ];
9476     propagatedBuildInputs = [ ClassInspector FFIPlatypus FFIPlatypusTypeEnum RefUtil SubIdentify SubInstall ];
9477     meta = {
9478       homepage = "https://metacpan.org/pod/FFI::C";
9479       description = "C data types for FFI";
9480       license = with lib.licenses; [ artistic1 gpl1Plus ];
9481       maintainers = with maintainers; [ tomasajt ];
9482     };
9483   };
9485   FFICheckLib = buildPerlPackage {
9486     pname = "FFI-CheckLib";
9487     version = "0.31";
9488     src = fetchurl {
9489       url = "mirror://cpan/authors/id/P/PL/PLICEASE/FFI-CheckLib-0.31.tar.gz";
9490       hash = "sha256-BNiF/Dd9RIluXqHE7DEPl5uwTy8YZYp+ek1Qn36Au4A=";
9491     };
9492     buildInputs = [ Test2Suite ];
9493     propagatedBuildInputs = [ FileWhich ];
9494     meta = {
9495       description = "Check that a library is available for FFI";
9496       homepage = "https://metacpan.org/pod/FFI::CheckLib";
9497       license = with lib.licenses; [ artistic1 gpl1Plus ];
9498     };
9499   };
9501   FeatureCompatTry = buildPerlModule {
9502     pname = "Feature-Compat-Try";
9503     version = "0.05";
9504     src = fetchurl {
9505       url = "mirror://cpan/authors/id/P/PE/PEVANS/Feature-Compat-Try-0.05.tar.gz";
9506       hash = "sha256-WaHHFzysMNsTHF8T+jhA9xhYju+bV5NS/+FWtVBxbXw=";
9507     };
9508     buildInputs = [ Test2Suite ];
9509     propagatedBuildInputs = [ SyntaxKeywordTry ];
9510     meta = {
9511       description = "Make C<try/catch> syntax available";
9512       license = with lib.licenses; [ artistic1 gpl1Plus ];
9513     };
9514   };
9516   FFICStat = buildPerlPackage {
9517     pname = "FFI-C-Stat";
9518     version = "0.03";
9519     src = fetchurl {
9520       url = "mirror://cpan/authors/id/P/PL/PLICEASE/FFI-C-Stat-0.03.tar.gz";
9521       hash = "sha256-YOjveCyLs0cFXJ49ov1BTzX2EP5P77eNBzncyiQoQx4=";
9522     };
9523     buildInputs = [ Filechdir PathTiny Test2Suite TestScript ];
9524     propagatedBuildInputs = [ FFIPlatypus RefUtil ];
9525     meta = {
9526       homepage = "https://metacpan.org/pod/FFI::C::Stat";
9527       description = "Object-oriented FFI interface to native stat and lstat";
9528       license = with lib.licenses; [ artistic1 gpl1Plus ];
9529       maintainers = with maintainers; [ tomasajt ];
9530     };
9531   };
9533   FFIPlatypus = buildPerlPackage {
9534     pname = "FFI-Platypus";
9535     version = "2.09";
9536     src = fetchurl {
9537       url = "mirror://cpan/authors/id/P/PL/PLICEASE/FFI-Platypus-2.09.tar.gz";
9538       hash = "sha256-nTEjEiieeHNbRcMRt6wWqejaCT93m/aUaccK+sTdW2M=";
9539     };
9540     buildInputs = [ AlienFFI Test2Suite ];
9541     propagatedBuildInputs = [ CaptureTiny FFICheckLib ];
9542     meta = {
9543       homepage = "https://pl.atypus.org";
9544       description = "Write Perl bindings to non-Perl libraries with FFI. No XS required";
9545       license = with lib.licenses; [ artistic1 gpl1Plus ];
9546       maintainers = with maintainers; [ tomasajt ];
9547     };
9548   };
9550   FFIPlatypusTypePtrObject = buildPerlPackage {
9551     pname = "FFI-Platypus-Type-PtrObject";
9552     version = "0.03";
9553     src = fetchurl {
9554       url = "mirror://cpan/authors/id/P/PL/PLICEASE/FFI-Platypus-Type-PtrObject-0.03.tar.gz";
9555       hash = "sha256-4elJB++QtANgqabAPSlaEwR9T2ybVqyvHfK1TRcwf3Q=";
9556     };
9557     buildInputs = [ Test2Suite Test2ToolsFFI ];
9558     propagatedBuildInputs = [ FFIPlatypus RefUtil ];
9559     meta = {
9560       homepage = "https://metacpan.org/pod/FFI::Platypus::Type::PtrObject";
9561       description = "Platypus custom type for an object wrapped around an opaque pointer";
9562       license = with lib.licenses; [ artistic1 gpl1Plus ];
9563       maintainers = with maintainers; [ tomasajt ];
9564     };
9565   };
9567   FFIPlatypusTypeEnum = buildPerlPackage {
9568     pname = "FFI-Platypus-Type-Enum";
9569     version = "0.06";
9570     src = fetchurl {
9571       url = "mirror://cpan/authors/id/P/PL/PLICEASE/FFI-Platypus-Type-Enum-0.06.tar.gz";
9572       hash = "sha256-yVSmBPfWkpYk+pQT2NDh2DtL2XfQVifKznPtU6lcd98=";
9573     };
9574     buildInputs = [ FFIPlatypus Test2Suite ];
9575     propagatedBuildInputs = [ RefUtil ];
9576     meta = {
9577       homepage = "https://metacpan.org/pod/FFI::Platypus::Type::Enum";
9578       description = "Custom platypus type for dealing with C enumerated types";
9579       license = with lib.licenses; [ artistic1 gpl1Plus ];
9580       maintainers = with maintainers; [ tomasajt ];
9581     };
9582   };
9584   FennecLite = buildPerlModule {
9585     pname = "Fennec-Lite";
9586     version = "0.004";
9587     src = fetchurl {
9588       url = "mirror://cpan/authors/id/E/EX/EXODIST/Fennec-Lite-0.004.tar.gz";
9589       hash = "sha256-3OKOOTJ2LC/5KqUtkEBcBuiY6By3sWTMrolmrnfx3Ks=";
9590     };
9591     meta = {
9592       description = "Minimalist Fennec, the commonly used bits";
9593       homepage = "http://open-exodus.net/projects/Fennec-Lite";
9594       license = with lib.licenses; [ artistic1 gpl1Plus ];
9595     };
9596   };
9598   FileChangeNotify = buildPerlPackage {
9599     pname = "File-ChangeNotify";
9600     version = "0.31";
9601     src = fetchurl {
9602       url = "mirror://cpan/authors/id/D/DR/DROLSKY/File-ChangeNotify-0.31.tar.gz";
9603       hash = "sha256-GSvbHOdiZsamlKjpYtA5463uuCm2rB4j9QV/K1Bjkr0=";
9604     };
9605     buildInputs = [ Test2Suite TestRequires TestWithoutModule ];
9606     propagatedBuildInputs = [ ModulePluggable Moo TypeTiny namespaceautoclean ];
9607     meta = {
9608       description = "Watch for changes to files, cross-platform style";
9609       license = with lib.licenses; [ artistic2 ];
9610     };
9611   };
9613   Filechdir = buildPerlPackage {
9614     pname = "File-chdir";
9615     version = "0.1011";
9616     src = fetchurl {
9617       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/File-chdir-0.1011.tar.gz";
9618       hash = "sha256-Mev5Et9I1daB3vdLmIDXix86ykNRoO0f41cLjgOvbHk=";
9619     };
9620     meta = {
9621       description = "More sensible way to change directories";
9622       license = with lib.licenses; [ artistic1 gpl1Plus ];
9623     };
9624   };
9626   FileBaseDir = buildPerlPackage {
9627     version = "0.09";
9628     pname = "File-BaseDir";
9629     src = fetchurl {
9630       url = "mirror://cpan/authors/id/P/PL/PLICEASE/File-BaseDir-0.09.tar.gz";
9631       hash = "sha256-bab3KBVirI8R7xo69q7bUcQRgrYPHxIs7QB579kpZ9k=";
9632     };
9633     propagatedBuildInputs = [ IPCSystemSimple ];
9634     nativeCheckInputs = [ FileWhich ];
9635     meta = {
9636       description = "Use the Freedesktop.org base directory specification";
9637       license = with lib.licenses; [ artistic1 gpl1Plus ];
9638     };
9639   };
9641   FileBOM = buildPerlModule {
9642     pname = "File-BOM";
9643     version = "0.18";
9644     src = fetchurl {
9645       url = "mirror://cpan/authors/id/M/MA/MATTLAW/File-BOM-0.18.tar.gz";
9646       hash = "sha256-KO3EP8sRjhG8RYya6InVbTiMHZvCmZewCx3/2Fc4I6M=";
9647     };
9648     buildInputs = [ TestException ];
9649     propagatedBuildInputs = [ Readonly ];
9650     meta = {
9651       description = "Utilities for handling Byte Order Marks";
9652       license = with lib.licenses; [ artistic1 gpl1Plus ];
9653     };
9654   };
9656   FileCheckTree = buildPerlPackage {
9657     pname = "File-CheckTree";
9658     version = "4.42";
9659     src = fetchurl {
9660       url = "mirror://cpan/authors/id/R/RJ/RJBS/File-CheckTree-4.42.tar.gz";
9661       hash = "sha256-ZvtBf4/4peW36iVgYVbnDiBIYcWfqMODGSW03T8VX4o=";
9662     };
9663     meta = {
9664       description = "Run many filetest checks on a tree";
9665       homepage = "https://search.cpan.org/dist/File-CheckTree";
9666       license = with lib.licenses; [ artistic1 gpl1Plus ];
9667     };
9668   };
9670   Filechmod = buildPerlPackage {
9671     pname = "File-chmod";
9672     version = "0.42";
9673     src = fetchurl {
9674       url = "mirror://cpan/authors/id/X/XE/XENO/File-chmod-0.42.tar.gz";
9675       hash = "sha256-bK+v/2i8hCFRaLVe3g0ZHctX+aMgG1HWHtsoWKJAd5U=";
9676     };
9677     meta = {
9678       description = "Implements symbolic and ls chmod modes";
9679       homepage = "https://metacpan.org/dist/File-chmod";
9680       license = with lib.licenses; [ artistic1 gpl1Plus ];
9681     };
9682   };
9684   FilechmodRecursive = buildPerlPackage {
9685     pname = "File-chmod-Recursive";
9686     version = "1.0.3";
9687     src = fetchurl {
9688       url = "mirror://cpan/authors/id/M/MI/MITHUN/File-chmod-Recursive-v1.0.3.tar.gz";
9689       hash = "sha256-k0jKXFuI3q3MSDuTme98Lg/CUE+QWNtl88PFPEETmqc=";
9690     };
9691     propagatedBuildInputs = [ Filechmod ];
9692     meta = {
9693       description = "Run chmod recursively against directories";
9694       homepage = "https://github.com/mithun/perl-file-chmod-recursive";
9695       license = with lib.licenses; [ artistic1 gpl1Plus ];
9696     };
9697   };
9699   FileCopyRecursive = buildPerlPackage {
9700     pname = "File-Copy-Recursive";
9701     version = "0.45";
9702     src = fetchurl {
9703       url = "mirror://cpan/authors/id/D/DM/DMUEY/File-Copy-Recursive-0.45.tar.gz";
9704       hash = "sha256-05cc94qDReOAQrIIu3s5y2lQgDhq9in0oE/9ZUnfEVc=";
9705     };
9706     buildInputs = [ PathTiny TestDeep TestFatal TestFile TestWarnings ];
9707     meta = {
9708       description = "Perl extension for recursively copying files and directories";
9709       license = with lib.licenses; [ artistic1 gpl1Plus ];
9710     };
9711   };
9713   FileCopyRecursiveReduced = buildPerlPackage {
9714     pname = "File-Copy-Recursive-Reduced";
9715     version = "0.007";
9716     src = fetchurl {
9717       url = "mirror://cpan/authors/id/J/JK/JKEENAN/File-Copy-Recursive-Reduced-0.007.tar.gz";
9718       hash = "sha256-07WFIuaYA6kUN+KcCZ63Bug3Px7vBRik3DZp3T383Cc=";
9719     };
9720     buildInputs = [ CaptureTiny PathTiny ];
9721     meta = {
9722       description = "Recursive copying of files and directories within Perl 5 toolchain";
9723       homepage = "http://thenceforward.net/perl/modules/File-Copy-Recursive-Reduced";
9724       license = with lib.licenses; [ artistic1 gpl1Plus ];
9725     };
9726   };
9728   FileCountLines = buildPerlPackage {
9729     pname = "File-CountLines";
9730     version = "0.0.3";
9731     src = fetchurl {
9732       url = "mirror://cpan/authors/id/M/MO/MORITZ/File-CountLines-v0.0.3.tar.gz";
9733       hash = "sha256-z9l8znyWE+TladR4dKK1cE8b6eztLwc5yHByVpQ4KmI=";
9734     };
9735     meta = {
9736       description = "Efficiently count the number of line breaks in a file";
9737       license = with lib.licenses; [ artistic1 gpl1Plus ];
9738     };
9739   };
9741   FileDesktopEntry = buildPerlPackage {
9742     version = "0.22";
9743     pname = "File-DesktopEntry";
9744     src = fetchurl {
9745       url = "mirror://cpan/authors/id/M/MI/MICHIELB/File-DesktopEntry-0.22.tar.gz";
9746       hash = "sha256-FpwB49ri9il2e+wanxzb1uxtcT0VAeCyeG5N0SNWNbg=";
9747     };
9748     propagatedBuildInputs = [ FileBaseDir URI ];
9749     meta = {
9750       description = "Object to handle .desktop files";
9751       license = with lib.licenses; [ artistic1 gpl1Plus ];
9752     };
9753   };
9755   FileDirList = buildPerlPackage {
9756     version = "0.05";
9757     pname = "File-DirList";
9758     src = fetchurl {
9759       url = "mirror://cpan/authors/id/T/TP/TPABA/File-DirList/File-DirList-0.05.tar.gz";
9760       sha256 = "sha256-mTt9dmLlV5hEih7azLmr0oHSvSO+fquZ9Wm44pYtO8M=";
9761     };
9762     preCheck = ''
9763       export HOME="$TMPDIR"
9764     '';
9765     meta = {
9766       description = "Provide a sorted list of directory content";
9767       license = with lib.licenses; [ artistic1 gpl1Plus ];
9768     };
9769   };
9771   FileFindIterator = buildPerlPackage {
9772     pname = "File-Find-Iterator";
9773     version = "0.4";
9774     src = fetchurl {
9775       url = "mirror://cpan/authors/id/T/TE/TEXMEC/File-Find-Iterator-0.4.tar.gz";
9776       hash = "sha256-orh6uXVqLlu2dK29OZN2Y+0gwoxxa/WhCVo8pE1Uqyw=";
9777     };
9778     propagatedBuildInputs = [ ClassIterator ];
9779     meta = {
9780       description = "Iterator interface for search files";
9781       license = with lib.licenses; [ artistic1 gpl1Plus ];
9782     };
9783   };
9785   FileFindObject = buildPerlModule {
9786     pname = "File-Find-Object";
9787     version = "0.3.8";
9788     src = fetchurl {
9789       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/File-Find-Object-0.3.8.tar.gz";
9790       hash = "sha256-TlJRRt6GTt+8kJsIRGKe7O0AY7YdQYuXLu8D+ES7NRQ=";
9791     };
9792     buildInputs = [ FileTreeCreate TestFile ];
9793     propagatedBuildInputs = [ ClassXSAccessor ];
9794     meta = {
9795       description = "Object oriented File::Find replacement";
9796       homepage = "https://metacpan.org/release/File-Find-Object";
9797       license = with lib.licenses; [ artistic2 ];
9798     };
9799   };
9801   FileFindObjectRule = buildPerlModule {
9802     pname = "File-Find-Object-Rule";
9803     version = "0.0313";
9804     src = fetchurl {
9805       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/File-Find-Object-Rule-0.0313.tar.gz";
9806       hash = "sha256-gZQPKZ1khySPvzDY8ft99sajSz35RApWIbE1yONPz/I=";
9807     };
9808     buildInputs = [ FileTreeCreate ];
9809     propagatedBuildInputs = [ ClassXSAccessor FileFindObject NumberCompare TextGlob ];
9810     # restore t/sample-data which is corrupted by patching shebangs
9811     preCheck = ''
9812       tar xf $src */t/sample-data --strip-components=1
9813     '';
9814     meta = {
9815       description = "Alternative interface to File::Find::Object";
9816       homepage = "https://www.shlomifish.org/open-source/projects/File-Find-Object";
9817       license = with lib.licenses; [ artistic1 gpl1Plus ];
9818       mainProgram = "findorule";
9819     };
9820   };
9822   FileFindRule = buildPerlPackage {
9823     pname = "File-Find-Rule";
9824     version = "0.34";
9825     src = fetchurl {
9826       url = "mirror://cpan/authors/id/R/RC/RCLAMP/File-Find-Rule-0.34.tar.gz";
9827       hash = "sha256-fm8WzDPrHyn/Jb7lHVE/S4qElHu/oY7bLTzECi1kyv4=";
9828     };
9829     propagatedBuildInputs = [ NumberCompare TextGlob ];
9830     meta = {
9831       description = "File::Find::Rule is a friendlier interface to File::Find";
9832       license = with lib.licenses; [ artistic1 gpl1Plus ];
9833       mainProgram = "findrule";
9834     };
9835   };
9837   FileFindRulePerl = buildPerlPackage {
9838     pname = "File-Find-Rule-Perl";
9839     version = "1.16";
9840     src = fetchurl {
9841       url = "mirror://cpan/authors/id/E/ET/ETHER/File-Find-Rule-Perl-1.16.tar.gz";
9842       hash = "sha256-rhiGBQ2cohIjwHPihwq9yA3DDj9VKJoRw32jggqDIf8=";
9843     };
9844     propagatedBuildInputs = [ FileFindRule ParamsUtil ];
9845     meta = {
9846       description = "Common rules for searching for Perl things";
9847       homepage = "https://github.com/karenetheridge/File-Find-Rule-Perl";
9848       license = with lib.licenses; [ artistic1 gpl1Plus ];
9849     };
9850   };
9852   FileFinder = buildPerlPackage {
9853     pname = "File-Finder";
9854     version = "0.53";
9855     src = fetchurl {
9856       url = "mirror://cpan/authors/id/M/ME/MERLYN/File-Finder-0.53.tar.gz";
9857       hash = "sha256-LsvBmsZ6nmNchyqAeo0+qv9bq8BU8VoZHUfN/F8XanQ=";
9858     };
9859     propagatedBuildInputs = [ TextGlob ];
9860     meta = {
9861       description = "Nice wrapper for File::Find ala find(1)";
9862       license = with lib.licenses; [ artistic1 gpl1Plus ];
9863     };
9864   };
9866   FileFnMatch = buildPerlPackage {
9867     pname = "File-FnMatch";
9868     version = "0.02";
9869     src = fetchurl {
9870       url = "mirror://cpan/authors/id/M/MJ/MJP/File-FnMatch-0.02.tar.gz";
9871       hash = "sha256-liRUuOhr6osTK/ivNXV9DGqPXVmQFb1qXWjLeuep6RY=";
9872     };
9873     meta = {
9874       description = "Simple filename and pathname matching";
9875       license = with lib.licenses; [ artistic1 gpl1Plus ];
9876       maintainers = teams.deshaw.members;
9877     };
9878   };
9880   FileFcntlLock = buildPerlPackage {
9881     pname = "File-FcntlLock";
9882     version = "0.22";
9883     src = fetchurl {
9884       url = "mirror://cpan/authors/id/J/JT/JTT/File-FcntlLock-0.22.tar.gz";
9885       hash = "sha256-mpq7Lv/5Orc3QaEo0/cA5SUnNUbBXQTnxRxwSrCdvN8=";
9886     };
9887     meta = {
9888       description = "File locking with fcntl(2)";
9889       license = with lib.licenses; [ artistic1 ];
9890       maintainers = with maintainers; [ das_j ];
9891     };
9892   };
9894   FileGrep = buildPerlPackage {
9895     pname = "File-Grep";
9896     version = "0.02";
9897     src = fetchurl {
9898       url = "mirror://cpan/authors/id/M/MN/MNEYLON/File-Grep-0.02.tar.gz";
9899       hash = "sha256-Ri4VJ062J4UhQH6jAtnupyUs1EyrI4KHH33oM9X4VjI=";
9900     };
9901     meta = {
9902       description = "Find matches to a pattern in a series of files and related functions";
9903       license = with lib.licenses; [ artistic1 gpl1Plus ];
9904       maintainers = teams.deshaw.members;
9905     };
9906   };
9908   FileHandleUnget = buildPerlPackage {
9909     pname = "FileHandle-Unget";
9910     version = "0.1634";
9911     src = fetchurl {
9912       url = "mirror://cpan/authors/id/D/DC/DCOPPIT/FileHandle-Unget-0.1634.tar.gz";
9913       hash = "sha256-OA80rTzl6exmHUxGi7M5IjHBYjF9QXLfN4FGtCqrF4U=";
9914     };
9915     buildInputs = [ FileSlurper TestCompile UNIVERSALrequire URI ];
9916     meta = {
9917       description = "FileHandle which supports multi-byte unget";
9918       homepage = "https://github.com/coppit/filehandle-unget";
9919       license = with lib.licenses; [ gpl2Only ];
9920       maintainers = with maintainers; [ romildo ];
9921     };
9922   };
9924   FileHomeDir = buildPerlPackage {
9925     pname = "File-HomeDir";
9926     version = "1.006";
9927     src = fetchurl {
9928       url = "mirror://cpan/authors/id/R/RE/REHSACK/File-HomeDir-1.006.tar.gz";
9929       hash = "sha256-WTc3xi3w9tq11BIuC0R2QXlFu2Jiwz7twAlmXvFUiFI=";
9930     };
9931     propagatedBuildInputs = [ FileWhich ];
9932     preCheck = "export HOME=$TMPDIR";
9933     doCheck = !stdenv.hostPlatform.isDarwin;
9934     meta = {
9935       description = "Find your home and other directories on any platform";
9936       homepage = "https://metacpan.org/release/File-HomeDir";
9937       license = with lib.licenses; [ artistic1 gpl1Plus ];
9938     };
9939   };
9941   FileKDBX = buildPerlPackage {
9942     pname = "File-KDBX";
9943     version = "0.906";
9944     src = fetchurl {
9945       url = "mirror://cpan/authors/id/C/CC/CCM/File-KDBX-0.906.tar.gz";
9946       hash = "sha256-tHt/kzOrtJHqrsY0WhTn+TlW0UOUTBS4Fkp/0bIkvW8=";
9947     };
9948     propagatedBuildInputs = [ CryptArgon2 CryptX DevelGlobalDestruction FileKeePass IteratorSimple RefUtil XMLLibXML boolean namespaceclean ];
9949     buildInputs = [ ScopeGuard TestDeep TestFatal TestWarnings ];
9950     meta = {
9951       description = "Interface to KeePass V3 and V4 database files";
9952       license = with lib.licenses; [ artistic1 gpl1Plus ];
9953     };
9954   };
9956   FileKeePass = buildPerlPackage {
9957     pname = "File-KeePass";
9958     version = "2.03";
9959     src = fetchurl {
9960       url = "mirror://cpan/authors/id/R/RH/RHANDOM/File-KeePass-2.03.tar.gz";
9961       hash = "sha256-wwxogCelL/T1jNadbY7zVHKnzxBtTOlOtzp5a6fH/6c=";
9962     };
9963     propagatedBuildInputs = [ CryptRijndael ];
9964     meta = {
9965       description = "Interface to KeePass V1 and V2 database files";
9966       license = with lib.licenses; [ gpl2Only gpl3Only ];
9967     };
9968   };
9970   Filelchown = buildPerlModule {
9971     pname = "File-lchown";
9972     version = "0.02";
9973     src = fetchurl {
9974       url = "mirror://cpan/authors/id/P/PE/PEVANS/File-lchown-0.02.tar.gz";
9975       hash = "sha256-oC+/KFQGqKTZOZKE8DLy1VxWl1FUwuFnS9EJg3uAluw=";
9976     };
9977     buildInputs = [ ExtUtilsCChecker ];
9978     perlPreHook = lib.optionalString (stdenv.hostPlatform.isi686 || stdenv.hostPlatform.isDarwin) "export LD=$CC"; # fix undefined reference to `__stack_chk_fail_local'
9979     meta = {
9980       description = "Modify attributes of symlinks without dereferencing them";
9981       license = with lib.licenses; [ artistic1 gpl1Plus ];
9982     };
9983   };
9985   FileLibMagic = buildPerlPackage {
9986     pname = "File-LibMagic";
9987     version = "1.23";
9988     src = fetchurl {
9989       url = "mirror://cpan/authors/id/D/DR/DROLSKY/File-LibMagic-1.23.tar.gz";
9990       hash = "sha256-Uuax3Hyy2HpM30OboUXguejPKMwmpIo8+Zd8g0Y5Z+4=";
9991     };
9992     buildInputs = [ pkgs.file ConfigAutoConf TestFatal ];
9993     makeMakerFlags = [ "--lib=${pkgs.file}/lib" ];
9994     preCheck = ''
9995       substituteInPlace t/oo-api.t \
9996         --replace "/usr/share/file/magic.mgc" "${pkgs.file}/share/misc/magic.mgc"
9997     '';
9998     meta = {
9999       description = "Determine MIME types of data or files using libmagic";
10000       homepage = "https://metacpan.org/release/File::LibMagic";
10001       license = with lib.licenses; [ artistic1 gpl1Plus ];
10002       broken = stdenv.hostPlatform.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.FileLibMagic.x86_64-darwin
10003     };
10004   };
10006   FileListing = buildPerlPackage {
10007     pname = "File-Listing";
10008     version = "6.16";
10009     src = fetchurl {
10010       url = "mirror://cpan/authors/id/P/PL/PLICEASE/File-Listing-6.16.tar.gz";
10011       hash = "sha256-GJs6E/wKG6QSudnsWQHp5eREzHRrnwFW1DmTcNM2VcY=";
10012     };
10013     propagatedBuildInputs = [ HTTPDate ];
10014     meta = {
10015       description = "Parse directory listing";
10016       license = with lib.licenses; [ artistic1 gpl1Plus ];
10017     };
10018   };
10020   FileLoadLines = buildPerlPackage {
10021     pname = "File-LoadLines";
10022     version = "1.046";
10023     src = fetchurl {
10024       url = "mirror://cpan/authors/id/J/JV/JV/File-LoadLines-1.046.tar.gz";
10025       hash = "sha256-ebmx0HqFLHJaR/YEa3V9HXDKOvrWP6J6CHCHQ23XK8I=";
10026     };
10027     buildInputs = [ TestException ];
10028     meta = {
10029       description = "Load lines from file";
10030       license = with lib.licenses; [ artistic1 gpl1Plus ];
10031     };
10032   };
10034   FileMimeInfo = buildPerlPackage {
10035     pname = "File-MimeInfo";
10036     version = "0.33";
10037     src = fetchurl {
10038       url = "mirror://cpan/authors/id/M/MI/MICHIELB/File-MimeInfo-0.33.tar.gz";
10039       hash = "sha256-9r6ms4kGITJeycJ5KvruiOlIoK4dEIcvpyxxELPhscQ=";
10040     };
10041     doCheck = false; # Failed test 'desktop file is the right one'
10042     buildInputs = [ FileBaseDir FileDesktopEntry EncodeLocale ];
10043     meta = {
10044       description = "Determine file type from the file name";
10045       license = with lib.licenses; [ artistic1 gpl1Plus ];
10046     };
10047   };
10049   FileMMagic = buildPerlPackage {
10050     pname = "File-MMagic";
10051     version = "1.30";
10052     src = fetchurl {
10053       url = "mirror://cpan/authors/id/K/KN/KNOK/File-MMagic-1.30.tar.gz";
10054       hash = "sha256-zwwbHrKXBcAtl8KRNkgAnAvkLOk+wks2xpa/LU9evX4=";
10055     };
10056     meta = {
10057       description = "Guess file type from contents";
10058       license = with lib.licenses; [ asl20 ];
10059     };
10060   };
10062   FileMap = buildPerlModule {
10063     pname = "File-Map";
10064     version = "0.71";
10065     src = fetchurl {
10066       url = "mirror://cpan/authors/id/L/LE/LEONT/File-Map-0.71.tar.gz";
10067       hash = "sha256-yOJpM4BOhw1KupJiO3iGrIs8dgyY+/zTvcSyMFxGR1k=";
10068     };
10069     perlPreHook = "export LD=$CC";
10070     propagatedBuildInputs = [ PerlIOLayers SubExporterProgressive ];
10071     buildInputs = [ TestFatal TestWarnings ];
10072     meta = {
10073       description = "Memory mapping made simple and safe";
10074       license = with lib.licenses; [ artistic1 gpl1Plus ];
10075     };
10076   };
10078   FileModified = buildPerlPackage {
10079     pname = "File-Modified";
10080     version = "0.10";
10081     src = fetchurl {
10082       url = "mirror://cpan/authors/id/N/NE/NEILB/File-Modified-0.10.tar.gz";
10083       hash = "sha256-a1CxqrbsaZigF/ZAPCc1s7weHPRhh70TTX623z/EUUQ=";
10084     };
10085     meta = {
10086       description = "Checks intelligently if files have changed";
10087       homepage = "https://github.com/neilbowers/File-Modified";
10088       license = with lib.licenses; [ artistic1 gpl1Plus ];
10089     };
10090   };
10092   FileNext = buildPerlPackage {
10093     pname = "File-Next";
10094     version = "1.18";
10095     src = fetchurl {
10096       url = "mirror://cpan/authors/id/P/PE/PETDANCE/File-Next-1.18.tar.gz";
10097       hash = "sha256-+QDLOVBetuFoqcpRoQtz8bveGRS5I6CezXLZwC5uwu8=";
10098     };
10099     meta = {
10100       description = "File-finding iterator";
10101       license = with lib.licenses; [ artistic2 ];
10102     };
10103   };
10105   FileNFSLock = buildPerlPackage {
10106     pname = "File-NFSLock";
10107     version = "1.29";
10108     src = fetchurl {
10109       url = "mirror://cpan/authors/id/B/BB/BBB/File-NFSLock-1.29.tar.gz";
10110       hash = "sha256-YdQVmbSBFk7fm4vsq77y0j9iKpcn9sGDZekrV4LU+jc=";
10111     };
10112     meta = {
10113       description = "Perl module to do NFS (or not) locking";
10114       license = with lib.licenses; [ artistic1 gpl1Only ];
10115     };
10116   };
10118   FilePath = buildPerlPackage {
10119     pname = "File-Path";
10120     version = "2.18";
10121     src = fetchurl {
10122       url = "mirror://cpan/authors/id/J/JK/JKEENAN/File-Path-2.18.tar.gz";
10123       hash = "sha256-mA8KF+2zU99G6c17NX+fWSnN4PgMRf16Bs9+DovWrd0=";
10124     };
10125     meta = {
10126       description = "Create or remove directory trees";
10127       license = with lib.licenses; [ artistic1 gpl1Plus ];
10128     };
10129   };
10131   FilePid = buildPerlPackage {
10132     pname = "File-Pid";
10133     version = "1.01";
10134     src = fetchurl {
10135       url = "mirror://cpan/authors/id/C/CW/CWEST/File-Pid-1.01.tar.gz";
10136       hash = "sha256-uv7uj9yW6wYwagxYu9tyCbbeRfhQ51/caxbbV24F5CI=";
10137     };
10138     patches = [(fetchpatch {
10139       name = "missing-pidfile.patch";
10140       url = "https://sources.debian.org/data/main/libf/libfile-pid-perl/1.01-2/debian/patches/missing-pidfile.patch";
10141       hash = "sha256-VBsIYyCnjcZLYQ2Uq2MKPK3kF2wiMKvnq0m727DoavM=";
10142     })];
10143     propagatedBuildInputs = [ ClassAccessor ];
10144     meta = {
10145       description = "Pid File Manipulation";
10146       license = with lib.licenses; [ artistic1 gpl1Plus ];
10147       maintainers = teams.deshaw.members;
10148     };
10149   };
10151   Filepushd = buildPerlPackage {
10152     pname = "File-pushd";
10153     version = "1.016";
10154     src = fetchurl {
10155       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/File-pushd-1.016.tar.gz";
10156       hash = "sha256-1zp/CUQpg7CYJg3z33qDKl9mB3OjE8onP6i1ZmX5fNw=";
10157     };
10158     meta = {
10159       description = "Change directory temporarily for a limited scope";
10160       homepage = "https://github.com/dagolden/File-pushd";
10161       license = with lib.licenses; [ asl20 ];
10162     };
10163   };
10165   FileReadBackwards = buildPerlPackage {
10166     pname = "File-ReadBackwards";
10167     version = "1.06";
10168     src = fetchurl {
10169       url = "mirror://cpan/authors/id/P/PL/PLICEASE/File-ReadBackwards-1.06.tar.gz";
10170       hash = "sha256-MrKgVJOJqviIde8D1+u//y1ZeeyoW3yBL2tLsQ0QL2I=";
10171     };
10172     meta = {
10173       description = "Read a file backwards by lines";
10174       homepage = "https://metacpan.org/pod/File::ReadBackwards";
10175       license = with lib.licenses; [ artistic1 gpl1Plus ];
10176     };
10177   };
10179   FileRemove = buildPerlModule {
10180     pname = "File-Remove";
10181     version = "1.61";
10182     src = fetchurl {
10183       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/File-Remove-1.61.tar.gz";
10184       hash = "sha256-/YV/WFkI/FA0YbnkizyFlOZTV2a8FL6xfJC6WNXcSXU=";
10185     };
10186     meta = {
10187       description = "Remove files and directories";
10188       license = with lib.licenses; [ artistic1 gpl1Plus ];
10189     };
10190   };
10192   FileShare = buildPerlPackage {
10193     pname = "File-Share";
10194     version = "0.27";
10195     src = fetchurl {
10196       url = "mirror://cpan/authors/id/I/IN/INGY/File-Share-0.27.tar.gz";
10197       hash = "sha256-1uj0tV69OOC7ReRDkuP6J9wf3harxdH/U+FX4ZpXVb4=";
10198     };
10199     propagatedBuildInputs = [ FileShareDir Readonly ];
10200     meta = {
10201       description = "Extend File::ShareDir to Local Libraries";
10202       homepage = "https://github.com/ingydotnet/file-share-pm";
10203       license = with lib.licenses; [ artistic1 gpl1Plus ];
10204     };
10205   };
10207   FileShareDir = buildPerlPackage {
10208     pname = "File-ShareDir";
10209     version = "1.118";
10210     src = fetchurl {
10211       url = "mirror://cpan/authors/id/R/RE/REHSACK/File-ShareDir-1.118.tar.gz";
10212       hash = "sha256-O7KiC6Nd+VjcCk8jBvwF2QPYuMTePIvu/OF3OdKByVg=";
10213     };
10214     propagatedBuildInputs = [ ClassInspector ];
10215     buildInputs = [ FileShareDirInstall ];
10216     meta = {
10217       description = "Locate per-dist and per-module shared files";
10218       homepage = "https://metacpan.org/release/File-ShareDir";
10219       license = with lib.licenses; [ artistic1 gpl1Plus ];
10220     };
10221   };
10223   FileShareDirDist = buildPerlPackage {
10224     pname = "File-ShareDir-Dist";
10225     version = "0.07";
10226     src = fetchurl {
10227       url = "mirror://cpan/authors/id/P/PL/PLICEASE/File-ShareDir-Dist-0.07.tar.gz";
10228       hash = "sha256-jX/l0O4iNR9B75Wtwi29VsMf+iqbLBmEMA6S/36f6G0=";
10229     };
10230     meta = {
10231       homepage = "https://metacpan.org/pod/File::ShareDir::Dist";
10232       description = "Locate per-dist shared files";
10233       license = with lib.licenses; [ artistic1 gpl1Plus ];
10234       maintainers = with maintainers; [ tomasajt ];
10235     };
10236   };
10238   FileShareDirInstall = buildPerlPackage {
10239     pname = "File-ShareDir-Install";
10240     version = "0.14";
10241     src = fetchurl {
10242       url = "mirror://cpan/authors/id/E/ET/ETHER/File-ShareDir-Install-0.14.tar.gz";
10243       hash = "sha256-j5UzsZjy1KmlKIy8fSJPdnmtBaeoVzdFWZeJQovFrqA=";
10244     };
10245     meta = {
10246       description = "Install shared files";
10247       homepage = "https://github.com/Perl-Toolchain-Gang/File-ShareDir-Install";
10248       license = with lib.licenses; [ artistic1 gpl1Plus ];
10249     };
10250   };
10252   FilesysDf = buildPerlPackage {
10253     pname = "Filesys-Df";
10254     version = "0.92";
10255     src = fetchurl {
10256       url = "mirror://cpan/authors/id/I/IG/IGUTHRIE/Filesys-Df-0.92.tar.gz";
10257       hash = "sha256-/onLtCfg4F8c2Xwt1tOGasayG8eoVzTt4Vm9w1R5VSo=";
10258     };
10259     meta = {
10260       description = "Perl extension for filesystem disk space information";
10261       license = with lib.licenses; [ artistic1 gpl1Plus ];
10262     };
10263   };
10265   FilesysNotifySimple = buildPerlPackage {
10266     pname = "Filesys-Notify-Simple";
10267     version = "0.14";
10268     src = fetchurl {
10269       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Filesys-Notify-Simple-0.14.tar.gz";
10270       hash = "sha256-H9pxLUul4YaBWe019vjvv66dQ11jdvVgbVM7ywgFVaQ=";
10271     };
10272     buildInputs = [ TestSharedFork ];
10273     meta = {
10274       description = "Simple and dumb file system watcher";
10275       homepage = "https://github.com/miyagawa/Filesys-Notify-Simple";
10276       license = with lib.licenses; [ artistic1 gpl1Plus ];
10277     };
10278   };
10280   FilesysDiskUsage = buildPerlPackage {
10281     pname = "Filesys-DiskUsage";
10282     version = "0.13";
10283     src = fetchurl {
10284       url = "mirror://cpan/authors/id/M/MA/MANWAR/Filesys-DiskUsage-0.13.tar.gz";
10285       hash = "sha256-/T5SxvYkEnGigTSNHUPEQVTC9hoyVD20aqnhVpLRtxM=";
10286     };
10287     buildInputs = [ TestWarn ];
10288     meta = {
10289       description = "Estimate file space usage (similar to `du`)";
10290       license = with lib.licenses; [ artistic1 gpl1Plus ];
10291       mainProgram = "fdu";
10292     };
10293   };
10295   FileSlurp = buildPerlPackage {
10296     pname = "File-Slurp";
10297     version = "9999.32";
10298     src = fetchurl {
10299       url = "mirror://cpan/authors/id/C/CA/CAPOEIRAB/File-Slurp-9999.32.tar.gz";
10300       hash = "sha256-TDwhmSqdQr46ed10o8g9J9OAVyadZVCaL1VeoPsrxbA=";
10301     };
10302     meta = {
10303       description = "Simple and Efficient Reading/Writing/Modifying of Complete Files";
10304       license = with lib.licenses; [ artistic1 gpl1Plus ];
10305     };
10306   };
10308   FileSlurper = buildPerlPackage {
10309     pname = "File-Slurper";
10310     version = "0.014";
10311     src = fetchurl {
10312       url = "mirror://cpan/authors/id/L/LE/LEONT/File-Slurper-0.014.tar.gz";
10313       hash = "sha256-1aNkhzOYiMPNdY5kgWDuHXDrQVPKy6/1eEbbzvs0Sww=";
10314     };
10315     buildInputs = [ TestWarnings ];
10316     meta = {
10317       description = "Simple, sane and efficient module to slurp a file";
10318       license = with lib.licenses; [ artistic1 gpl1Plus ];
10319     };
10320   };
10322   FileSlurpTiny = buildPerlPackage {
10323     pname = "File-Slurp-Tiny";
10324     version = "0.004";
10325     src = fetchurl {
10326       url = "mirror://cpan/authors/id/L/LE/LEONT/File-Slurp-Tiny-0.004.tar.gz";
10327       hash = "sha256-RSmVvuq/DpI+Zf3GJ6cl27EsnhDADYAYwW0QumJ1fx4=";
10328     };
10329     meta = {
10330       description = "Simple, sane and efficient file slurper [DISCOURAGED]";
10331       license = with lib.licenses; [ artistic1 gpl1Plus ];
10332     };
10333   };
10335   FileTail = buildPerlPackage {
10336     pname = "File-Tail";
10337     version = "1.3";
10338     src = fetchurl {
10339       url = "mirror://cpan/authors/id/M/MG/MGRABNAR/File-Tail-1.3.tar.gz";
10340       hash = "sha256-JtCfgYNuQ+rkACjVKD/lYg/m/mJ4vz6462AMSOw0r8c=";
10341     };
10342     meta = {
10343       description = "Perl extension for reading from continously updated files";
10344       license = with lib.licenses; [ artistic1 gpl1Plus ];
10345       maintainers = teams.deshaw.members;
10346     };
10347   };
10349   FileTouch = buildPerlPackage {
10350     pname = "File-Touch";
10351     version = "0.12";
10352     src = fetchurl {
10353       url = "mirror://cpan/authors/id/N/NE/NEILB/File-Touch-0.12.tar.gz";
10354       hash = "sha256-KgTcQk30jpjFRVbGBFyrAmpJ43N6qUohz0l3YbDy5Zw=";
10355     };
10356     meta = {
10357       description = "Update file access and modification times, optionally creating files if needed";
10358       homepage = "https://github.com/neilb/File-Touch";
10359       license = with lib.licenses; [ artistic1 gpl1Plus ];
10360       maintainers = teams.deshaw.members;
10361     };
10362   };
10364   FileTreeCreate = buildPerlModule {
10365     pname = "File-TreeCreate";
10366     version = "0.0.1";
10367     src = fetchurl {
10368       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/File-TreeCreate-0.0.1.tar.gz";
10369       hash = "sha256-V2hvEIQ76Br/rRha5BMXkLoMSvNtIQTW+2kSZSgFUmc=";
10370     };
10371     meta = {
10372       homepage = "http://metacpan.org/release/File-TreeCreate";
10373       description = "Recursively create a directory tree";
10374       license = lib.licenses.mit;
10375     };
10376   };
10378   FileType = buildPerlModule {
10379     pname = "File-Type";
10380     version = "0.22";
10381     src = fetchurl {
10382       url = "mirror://cpan/authors/id/P/PM/PMISON/File-Type-0.22.tar.gz";
10383       hash = "sha256-01zZX+9X/U39iDH2LDTilNfEuGH8kJ4Ct2Bxc51S00E=";
10384     };
10385     meta = {
10386       description = "Uses magic numbers (typically at the start of a file) to determine the MIME type of that file";
10387       license = with lib.licenses; [ artistic1 gpl1Plus ];
10388     };
10389   };
10391   FileUtil = buildPerlModule {
10392     pname = "File-Util";
10393     version = "4.201720";
10394     src = fetchurl {
10395       url = "mirror://cpan/authors/id/T/TO/TOMMY/File-Util-4.201720.tar.gz";
10396       hash = "sha256-1EkQIYUNXFy9cCx+R0SFgHmEHS+pPxwtCd3Jp4Y2CN8=";
10397     };
10398     buildInputs = [ TestNoWarnings ];
10399     meta = {
10400       description = "Easy, versatile, portable file handling";
10401       homepage = "https://github.com/tommybutler/file-util/wiki";
10402       license = with lib.licenses; [ artistic1 gpl1Plus ];
10403     };
10404   };
10406   FileUtilTempdir = buildPerlPackage {
10407     pname = "File-Util-Tempdir";
10408     version = "0.034";
10409     src = fetchurl {
10410       url = "mirror://cpan/authors/id/P/PE/PERLANCAR/File-Util-Tempdir-0.034.tar.gz";
10411       hash = "sha256-0R3izl5vrT8GFLymR0ykScNa7TUSXVsyJ+ZpvBdv3Bw=";
10412     };
10413     buildInputs = [ Perlosnames TestException ];
10414     meta = {
10415       description = "Cross-platform way to get system-wide & user private temporary directory";
10416       homepage = "https://metacpan.org/release/File-Util-Tempdir";
10417       license = with lib.licenses; [ artistic1 gpl1Plus ];
10418       maintainers = [ maintainers.sgo ];
10419     };
10420   };
10422   FileWhich = buildPerlPackage {
10423     pname = "File-Which";
10424     version = "1.27";
10425     src = fetchurl {
10426       url = "mirror://cpan/authors/id/P/PL/PLICEASE/File-Which-1.27.tar.gz";
10427       hash = "sha256-MgHxpg4/FkhAguYEXIloQiYfw0Xen7LmIP0qLHrzqTo=";
10428     };
10429     meta = {
10430       description = "Perl implementation of the which utility as an API";
10431       homepage = "https://metacpan.org/pod/File::Which";
10432       license = with lib.licenses; [ artistic1 gpl1Plus ];
10433     };
10434   };
10436   FileXDG = buildPerlPackage {
10437     pname = "File-XDG";
10438     version = "1.03";
10439     src = fetchurl {
10440       url = "mirror://cpan/authors/id/P/PL/PLICEASE/File-XDG-1.03.tar.gz";
10441       hash = "sha256-iL18FFjLdjvs7W570MEZcqFWseOSMphPinqL5CBr984=";
10442     };
10443     preCheck = "rm t/file_xdg.t"; # Tries to write to $HOME
10444     propagatedBuildInputs = [ PathClass PathTiny RefUtil ];
10445     meta = {
10446       homepage = "https://metacpan.org/pod/File::XDG";
10447       description = "Basic implementation of the XDG base directory specification";
10448       license = with lib.licenses; [ artistic1 gpl1Plus ];
10449     };
10450   };
10452   FileZglob = buildPerlPackage {
10453     pname = "File-Zglob";
10454     version = "0.11";
10455     src = fetchurl {
10456       url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/File-Zglob-0.11.tar.gz";
10457       hash = "sha256-HLHt3iCsCU7wA3lLr+8sdiQWnPhALHNn2bdGD2wOZps=";
10458     };
10459     meta = {
10460       description = "Extended globs";
10461       license = with lib.licenses; [ artistic1 gpl1Plus ];
10462     };
10463   };
10465   Filter = buildPerlPackage {
10466     pname = "Filter";
10467     version = "1.64";
10468     src = fetchurl {
10469       url = "mirror://cpan/authors/id/R/RU/RURBAN/Filter-1.64.tar.gz";
10470       hash = "sha256-E+f7fh0yZZjjZgEDzxl0vun2kKxbQ7M58sAi8rX87yw=";
10471     };
10472     meta = {
10473       description = "Source Filters";
10474       license = with lib.licenses; [ artistic1 gpl1Plus ];
10475     };
10476   };
10478   FinanceQuote = buildPerlPackage rec {
10479     pname = "Finance-Quote";
10480     version = "1.63";
10481     src = fetchurl {
10482       url = "mirror://cpan/authors/id/B/BP/BPSCHUCK/Finance-Quote-${version}.tar.gz";
10483       hash = "sha256-Y0dqDIJ60aHf7KjePopkKiToeMH0p6neb1FNaoV3so0=";
10484     };
10485     buildInputs = [ DateManip DateRange DateSimple DateTime DateTimeFormatISO8601 StringUtil TestKwalitee TestPerlCritic TestPod TestPodCoverage ];
10486     propagatedBuildInputs = [ DateManip DateTimeFormatStrptime Encode HTMLTableExtract HTMLTokeParserSimple HTMLTree HTMLTreeBuilderXPath HTTPCookies HTTPCookieJar JSON IOCompress IOString LWPProtocolHttps Readonly StringUtil SpreadsheetXLSX TextTemplate TryTiny WebScraper XMLLibXML libwwwperl ];
10487     meta = {
10488       homepage = "https://finance-quote.sourceforge.net/";
10489       changelog = "https://github.com/finance-quote/finance-quote/releases/tag/v${version}";
10490       description = "Get stock and mutual fund quotes from various exchanges";
10491       license = with lib.licenses; [ gpl2Plus ];
10492       maintainers = with lib.maintainers; [ nevivurn ];
10493     };
10494   };
10496   FindLib = buildPerlPackage {
10497     pname = "Find-Lib";
10498     version = "1.04";
10499     src = fetchurl {
10500       url = "mirror://cpan/authors/id/Y/YA/YANNK/Find-Lib-1.04.tar.gz";
10501       hash = "sha256-HXOSHjBh4bBG/kJo4tBf/VpMV2Jmbi5HI/g6rMFG6FE=";
10502     };
10503     meta = {
10504       description = "Helper to smartly find libs to use in the filesystem tree";
10505       license = with lib.licenses; [ artistic1 gpl1Plus ];
10506     };
10507   };
10509   FontAFM = buildPerlPackage {
10510     pname = "Font-AFM";
10511     version = "1.20";
10512     src = fetchurl {
10513       url = "mirror://cpan/authors/id/G/GA/GAAS/Font-AFM-1.20.tar.gz";
10514       hash = "sha256-MmcRZtoyWWoPa6rNDBIzglpgrK8lgF15yBo/GNYIi8E=";
10515     };
10516     meta = {
10517       description = "Interface to Adobe Font Metrics files";
10518       license = with lib.licenses; [ artistic1 gpl1Plus ];
10519     };
10520   };
10522   FontTTF = buildPerlPackage {
10523     pname = "Font-TTF";
10524     version = "1.06";
10525     src = fetchurl {
10526       url = "mirror://cpan/authors/id/B/BH/BHALLISSY/Font-TTF-1.06.tar.gz";
10527       hash = "sha256-S2l9REJZdZ6gLSxELJv/5f/hTJIUCEoB90NpOpRMwpM=";
10528     };
10529     buildInputs = [ IOString ];
10530     meta = {
10531       description = "TTF font support for Perl";
10532       license = with lib.licenses; [ artistic2 ];
10533     };
10534   };
10536   ForksSuper = buildPerlPackage {
10537     pname = "Forks-Super";
10538     version = "0.97";
10539     src = fetchurl {
10540       url = "mirror://cpan/authors/id/M/MO/MOB/Forks-Super-0.97.tar.gz";
10541       hash = "sha256-M9tDV+Es1vQPKlijq5b+tP/9JedC29SL75B9skLQKk4=";
10542     };
10543     doCheck = false;
10544     propagatedBuildInputs = [ URI ];
10545     meta = {
10546       description = "Extensions and convenience methods to manage background processes";
10547       license = with lib.licenses; [ artistic1 gpl1Plus ];
10548     };
10549   };
10551   FormValidatorSimple = buildPerlPackage {
10552     pname = "FormValidator-Simple";
10553     version = "0.29";
10554     src = fetchurl {
10555       url = "mirror://cpan/authors/id/L/LY/LYOKATO/FormValidator-Simple-0.29.tar.gz";
10556       hash = "sha256-/Dpj3FS5YtdFhgcBdq2vW+hp8JtWG7MPX9Mu9TF5JmY=";
10557     };
10558     propagatedBuildInputs = [ ClassAccessor ClassDataAccessor DateCalc DateTimeFormatStrptime EmailValidLoose ListMoreUtils TieIxHash UNIVERSALrequire YAML ];
10559     buildInputs = [ CGI ];
10560     meta = {
10561       description = "Validation with simple chains of constraints";
10562       license = with lib.licenses; [ artistic1 gpl1Plus ];
10563     };
10564   };
10566   FreezeThaw = buildPerlPackage {
10567     pname = "FreezeThaw";
10568     version = "0.5001";
10569     src = fetchurl {
10570       url = "mirror://cpan/authors/id/I/IL/ILYAZ/modules/FreezeThaw-0.5001.tar.gz";
10571       hash = "sha256-PF4IMpEG+c7jq0RLgTMcWTX4MIShUdiFBeekZdpUD0E=";
10572     };
10573     doCheck = false;
10574     meta = {
10575       description = "Converting Perl structures to strings and back";
10576       license = with lib.licenses; [ artistic1 gpl1Plus ];
10577     };
10578   };
10580   FunctionParameters = buildPerlPackage {
10581     pname = "Function-Parameters";
10582     version = "2.002004";
10583     src = fetchurl {
10584       url = "mirror://cpan/authors/id/M/MA/MAUKE/Function-Parameters-2.002004.tar.gz";
10585       hash = "sha256-KKvqWODAnOMnmaCMvXr3DaHimXd8KZEZQpygaacYg+g=";
10586     };
10587     buildInputs = [ DirSelf TestFatal ];
10588     meta = {
10589       description = "Define functions and methods with parameter lists (\"subroutine signatures\")";
10590       license = with lib.licenses; [ artistic1 gpl1Plus ];
10591     };
10592   };
10594   Furl = buildPerlModule {
10595     pname = "Furl";
10596     version = "3.14";
10597     src = fetchurl {
10598       url = "mirror://cpan/authors/id/S/SY/SYOHEX/Furl-3.14.tar.gz";
10599       hash = "sha256-Nd29iIDXHxniAkM+F2H9EXc4XmML9QaFvEi2t6y4V7k=";
10600     };
10601     propagatedBuildInputs = [ ClassAccessorLite HTTPParserXS MozillaCA ];
10602     buildInputs = [ HTTPCookieJar HTTPProxy ModuleBuildTiny Plack Starlet TestFakeHTTPD TestRequires TestSharedFork TestTCP TestValgrind URI ];
10603     meta = {
10604       description = "Lightning-fast URL fetcher";
10605       homepage = "https://github.com/tokuhirom/Furl";
10606       license = with lib.licenses; [ artistic1 gpl1Plus ];
10607     };
10608   };
10610   Future = buildPerlModule {
10611     pname = "Future";
10612     version = "0.50";
10613     src = fetchurl {
10614       url = "mirror://cpan/authors/id/P/PE/PEVANS/Future-0.50.tar.gz";
10615       hash = "sha256-wDXj2eaaOvFEszrINN7p5lrTYPKlHbnxWNw0Ls3dX0Q=";
10616     };
10617     buildInputs = [ Test2Suite ];
10618     meta = {
10619       description = "Represent an operation awaiting completion";
10620       license = with lib.licenses; [ artistic1 gpl1Plus ];
10621     };
10622   };
10624   FutureAsyncAwait = buildPerlModule {
10625     pname = "Future-AsyncAwait";
10626     version = "0.66";
10627     src = fetchurl {
10628       url = "mirror://cpan/authors/id/P/PE/PEVANS/Future-AsyncAwait-0.66.tar.gz";
10629       hash = "sha256-xqD03kYr8yS1usoXddGZ7DJGo1jBPbm2Ssv82+bl7CE=";
10630     };
10631     buildInputs = [ Test2Suite ];
10632     propagatedBuildInputs = [ Future XSParseKeyword XSParseSublike ];
10633     perlPreHook = lib.optionalString stdenv.hostPlatform.isDarwin "export LD=$CC";
10634     meta = {
10635       description = "Deferred subroutine syntax for futures";
10636       license = with lib.licenses; [ artistic1 gpl1Plus ];
10637       maintainers = [ maintainers.zakame ];
10638     };
10639   };
10641   FutureIO = buildPerlModule {
10642     pname = "Future-IO";
10643     version = "0.14";
10644     src = fetchurl {
10645       url = "mirror://cpan/authors/id/P/PE/PEVANS/Future-IO-0.14.tar.gz";
10646       hash = "sha256-a1j++vwwlMJwHwp7mMsUCwmItRaKfV3069Hu6OhyBgo=";
10647     };
10648     buildInputs = [ TestFutureIOImpl ];
10649     propagatedBuildInputs = [ Future StructDumb ];
10650     preCheck = "rm t/06connect.t"; # this test fails in sandbox
10651     meta = {
10652       description = "Future-returning IO methods";
10653       license = with lib.licenses; [ artistic1 gpl1Plus ];
10654       maintainers = [ maintainers.zakame ];
10655     };
10656   };
10658   FutureQueue = buildPerlModule {
10659     pname = "Future-Queue";
10660     version = "0.51";
10661     src = fetchurl {
10662       url = "mirror://cpan/authors/id/P/PE/PEVANS/Future-Queue-0.51.tar.gz";
10663       hash = "sha256-HVAcOpot3/x8YPlvpmlp1AyykuCSBM9t7NHCuLUAPNY=";
10664     };
10665     buildInputs = [ Test2Suite ];
10666     propagatedBuildInputs = [ Future ];
10667     meta = {
10668       description = "FIFO queue of values that uses L<Future>s";
10669       license = with lib.licenses; [ artistic1 gpl1Plus ];
10670     };
10671   };
10673   GamesSolitaireVerify = buildPerlModule {
10674     pname = "Games-Solitaire-Verify";
10675     version = "0.2403";
10676     src = fetchurl {
10677       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Games-Solitaire-Verify-0.2403.tar.gz";
10678       hash = "sha256-5atHXIK6HLCIrSj0I8pRTUaUTWrjw+tV6WNunn8dyJM=";
10679     };
10680     buildInputs = [ DirManifest TestDifferences ];
10681     propagatedBuildInputs = [ ClassXSAccessor ExceptionClass PathTiny ];
10682     meta = {
10683       description = "Verify solutions for solitaire games";
10684       homepage = "https://metacpan.org/release/Games-Solitaire-Verify";
10685       license = with lib.licenses; [ mit ];
10686       mainProgram = "verify-solitaire-solution";
10687     };
10688   };
10690   GD = buildPerlPackage {
10691     pname = "GD";
10692     version = "2.78";
10693     src = fetchurl {
10694       url = "mirror://cpan/authors/id/R/RU/RURBAN/GD-2.78.tar.gz";
10695       hash = "sha256-aDEFS/VCS09cI9NifT0UhEgPb5wsZmMiIpFfKFG+buQ=";
10696     };
10698     buildInputs = [ pkgs.gd pkgs.libjpeg pkgs.zlib pkgs.freetype pkgs.libpng pkgs.fontconfig pkgs.xorg.libXpm ExtUtilsPkgConfig TestFork TestNoWarnings ];
10700     # otherwise "cc1: error: -Wformat-security ignored without -Wformat [-Werror=format-security]"
10701     hardeningDisable = [ "format" ];
10703     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}" ];
10705     meta = {
10706       description = "Perl interface to the gd2 graphics library";
10707       license = with lib.licenses; [ artistic1 gpl1Plus ];
10708       mainProgram = "bdf2gdfont.pl";
10709     };
10710   };
10712   GDGraph = buildPerlPackage {
10713     pname = "GDGraph";
10714     version = "1.56";
10715     src = fetchurl {
10716       url = "mirror://cpan/authors/id/B/BP/BPS/GDGraph-1.56.tar.gz";
10717       hash = "sha256-b0nMTlkBVIDbnJtrGK/YxQvjCIZoe2lBFRPQbziXERM=";
10718     };
10719     propagatedBuildInputs = [ GDText ];
10720     buildInputs = [ CaptureTiny TestException ];
10721     meta = {
10722       description = "Graph Plotting Module for Perl 5";
10723       license = with lib.licenses; [ artistic1 gpl1Plus ];
10724     };
10725   };
10727   GDSecurityImage = buildPerlPackage {
10728     pname = "GD-SecurityImage";
10729     version = "1.75";
10730     src = fetchurl {
10731       url = "mirror://cpan/authors/id/B/BU/BURAK/GD-SecurityImage-1.75.tar.gz";
10732       hash = "sha256-Pd4k2ay6lRzd5bVp0eQsrZRs/bUSgORGnzNv1f4MjqY=";
10733     };
10734     propagatedBuildInputs = [ GD ];
10735     meta = {
10736       description = "Security image (captcha) generator";
10737       license = with lib.licenses; [ artistic1 gpl1Plus ];
10738     };
10739   };
10741   GDText = buildPerlPackage {
10742     pname = "GDTextUtil";
10743     version = "0.86";
10744     src = fetchurl {
10745       url = "mirror://cpan/authors/id/M/MV/MVERB/GDTextUtil-0.86.tar.gz";
10746       hash = "sha256-iG7L+Fz+lPQTXuVonEhHqa54PsuZ5nWeEsc08t1hFrw=";
10747     };
10748     propagatedBuildInputs = [ GD ];
10749     meta = {
10750       description = "Text utilities for use with GD";
10751       license = with lib.licenses; [ artistic1 gpl1Plus ];
10752     };
10753   };
10755   GeoIP = buildPerlPackage {
10756     pname = "Geo-IP";
10757     version = "1.51";
10758     src = fetchurl {
10759       url = "mirror://cpan/authors/id/M/MA/MAXMIND/Geo-IP-1.51.tar.gz";
10760       hash = "sha256-FjAgMV1cVEGDaseeCKd7Qo8nf9CQvqT6gNpwd7JDaro=";
10761     };
10762     makeMakerFlags = [ "LIBS=-L${pkgs.geoip}/lib" "INC=-I${pkgs.geoip}/include" ];
10763     doCheck = false; # seems to access the network
10764     meta = {
10765       description = "Look up location and network information by IP Address";
10766       license = with lib.licenses; [ artistic1 gpl1Plus ];
10767     };
10768   };
10770   GeoIP2 = buildPerlPackage {
10771     pname = "GeoIP2";
10772     version = "2.006002";
10773     src = fetchurl {
10774       url = "mirror://cpan/authors/id/M/MA/MAXMIND/GeoIP2-2.006002.tar.gz";
10775       hash = "sha256-CQVCqO7pvTwS5ZxLZWJMidAf/ZQgTx8Hah20CybAmDQ=";
10776     };
10777     propagatedBuildInputs = [ JSONMaybeXS LWPProtocolHttps MaxMindDBReader ParamsValidate Throwable ];
10778     buildInputs = [ PathClass TestFatal TestNumberDelta ];
10779     meta = {
10780       description = "Perl API for MaxMind's GeoIP2 web services and databases";
10781       homepage = "https://metacpan.org/release/GeoIP2";
10782       license = with lib.licenses; [ artistic1 gpl1Plus ];
10783       mainProgram = "web-service-request";
10784     };
10785   };
10787   GetoptArgvFile = buildPerlPackage {
10788     pname = "Getopt-ArgvFile";
10789     version = "1.11";
10790     src = fetchurl {
10791       url = "mirror://cpan/authors/id/J/JS/JSTENZEL/Getopt-ArgvFile-1.11.tar.gz";
10792       hash = "sha256-NwmqUTzm/XHRpVoC400vCQAX1TUKm9RHAFZTybCDWyI=";
10793     };
10794     meta = {
10795       description = "Interpolates script options from files into @ARGV or another array";
10796       license = with lib.licenses; [ artistic1 ];
10797       maintainers = [ maintainers.pSub ];
10798     };
10799   };
10801   GetoptLong = buildPerlPackage {
10802     pname = "Getopt-Long";
10803     version = "2.58";
10804     src = fetchurl {
10805       url = "mirror://cpan/authors/id/J/JV/JV/Getopt-Long-2.58.tar.gz";
10806       hash = "sha256-EwXtRuoh95QwTpeqPc06OFGQWXhenbdBXa8sIYUGxWk=";
10807     };
10808     meta = {
10809       description = "Extended processing of command line options";
10810       license = with lib.licenses; [ artistic1 gpl2Plus ];
10811     };
10812   };
10814   GetoptLongDescriptive = buildPerlPackage {
10815     pname = "Getopt-Long-Descriptive";
10816     version = "0.114";
10817     src = fetchurl {
10818       url = "mirror://cpan/authors/id/R/RJ/RJBS/Getopt-Long-Descriptive-0.114.tar.gz";
10819       hash = "sha256-QQ6EIRSpy/0/06X9JIqWcDwHxdh5sqpfnbAzPyMnYBY=";
10820     };
10821     buildInputs = [ CPANMetaCheck TestFatal TestWarnings ];
10822     propagatedBuildInputs = [ ParamsValidate SubExporter GetoptLong ];
10823     meta = {
10824       description = "Getopt::Long, but simpler and more powerful";
10825       homepage = "https://github.com/rjbs/Getopt-Long-Descriptive";
10826       license = with lib.licenses; [ artistic1 gpl1Plus ];
10827     };
10828   };
10830   GetoptTabular = buildPerlPackage {
10831     pname = "Getopt-Tabular";
10832     version = "0.3";
10833     src = fetchurl {
10834       url = "mirror://cpan/authors/id/G/GW/GWARD/Getopt-Tabular-0.3.tar.gz";
10835       hash = "sha256-m98GdjO1kTEngg9OgDXtxT0INy+qzla6a/oAyWiiU3c=";
10836     };
10837     meta = {
10838       description = "Table-driven argument parsing for Perl 5";
10839       license = with lib.licenses; [ artistic1 gpl1Plus ];
10840     };
10841   };
10843   Git = buildPerlPackage {
10844     pname = "Git";
10845     version = "0.42";
10846     src = fetchurl {
10847       url = "mirror://cpan/authors/id/M/MS/MSOUTH/Git-0.42.tar.gz";
10848       hash = "sha256-lGmp85jzor8rBQBWbuQdP/b65GBBKhNxhXZ6HMR4Om0=";
10849     };
10850     propagatedBuildInputs = [ Error ];
10851     meta = {
10852       description = "This is the Git.pm, plus the other files in the perl/Git directory, from github's git/git";
10853       license = with lib.licenses; [ gpl2Plus ];
10854       maintainers = teams.deshaw.members;
10855     };
10856   };
10858   GitAutofixup = buildPerlPackage {
10859     pname = "App-Git-Autofixup";
10860     version = "0.004001";
10861     src = fetchurl {
10862       url = "mirror://cpan/authors/id/T/TO/TORBIAK/App-Git-Autofixup-0.004001.tar.gz";
10863       hash = "sha256-WroBPI3hOZD1iRoOKjnJcHTQcnvjZTIMLGrxnTbF3aw=";
10864     };
10865     nativeBuildInputs = lib.optional stdenv.hostPlatform.isDarwin shortenPerlShebang;
10866     postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
10867       shortenPerlShebang $out/bin/git-autofixup
10868     '';
10869     meta = {
10870       description = "Create fixup commits for topic branches";
10871       license = with lib.licenses; [ artistic2 ];
10872       maintainers = [ maintainers.DamienCassou ];
10873       mainProgram = "git-autofixup";
10874     };
10875   };
10877   GitPurePerl = buildPerlPackage {
10878     pname = "Git-PurePerl";
10879     version = "0.53";
10880     src = fetchurl {
10881       url = "mirror://cpan/authors/id/B/BR/BROQ/Git-PurePerl-0.53.tar.gz";
10882       hash = "sha256-mHx0NmzEw37ghAUPmF+iVDWcicElB/W4v8ZgfeU41ag=";
10883     };
10884     buildInputs = [ Testutf8 ];
10885     propagatedBuildInputs = [ ArchiveExtract ConfigGitLike DataStreamBulk DateTime FileFindRule IODigest MooseXStrictConstructor MooseXTypesPathClass ];
10886     doCheck = false;
10887     meta = {
10888       description = "Pure Perl interface to Git repositories";
10889       license = with lib.licenses; [ artistic1 gpl1Plus ];
10890     };
10891   };
10893   GitRepository = buildPerlPackage {
10894     pname = "Git-Repository";
10895     version = "1.325";
10896     src = fetchurl {
10897       url = "mirror://cpan/authors/id/B/BO/BOOK/Git-Repository-1.325.tar.gz";
10898       hash = "sha256-mypPoZT0oOtFI1XQyAhyfl6cFsFFrH0kw+qW0Kvv7UM=";
10899     };
10900     buildInputs = [ TestRequiresGit ];
10901     propagatedBuildInputs = [ GitVersionCompare SystemCommand namespaceclean ];
10902     meta = {
10903       description = "Perl interface to Git repositories";
10904       license = with lib.licenses; [ artistic1 gpl1Plus ];
10905     };
10906   };
10908   GitVersionCompare = buildPerlPackage {
10909     pname = "Git-Version-Compare";
10910     version = "1.005";
10911     src = fetchurl {
10912       url = "mirror://cpan/authors/id/B/BO/BOOK/Git-Version-Compare-1.005.tar.gz";
10913       hash = "sha256-NX/e2eVflesvUWoY9dwbRyCp3u+eLA52vNX+SuubPLs=";
10914     };
10915     buildInputs = [ TestNoWarnings ];
10916     meta = {
10917       description = "Functions to compare Git versions";
10918       license = with lib.licenses; [ artistic1 gpl1Plus ];
10919     };
10920   };
10922   Glib = buildPerlPackage {
10923     pname = "Glib";
10924     version = "1.3294";
10925     src = fetchurl {
10926       url = "mirror://cpan/authors/id/X/XA/XAOC/Glib-1.3294.tar.gz";
10927       hash = "sha256-1xX1qGvMGHB13oXnrlvAewcU1u3BlqktpDmG76ROXLs=";
10928     };
10929     buildInputs = [ pkgs.glib ];
10930     propagatedBuildInputs = [ ExtUtilsDepends ExtUtilsPkgConfig ];
10931     meta = {
10932       description = "Perl wrappers for the GLib utility and Object libraries";
10933       homepage = "https://gtk2-perl.sourceforge.net";
10934       license = with lib.licenses; [ lgpl21Only ];
10935     };
10936   };
10938   GlibObjectIntrospection = buildPerlPackage {
10939     pname = "Glib-Object-Introspection";
10940     version = "0.051";
10941     src = fetchurl {
10942       url = "mirror://cpan/authors/id/X/XA/XAOC/Glib-Object-Introspection-0.051.tar.gz";
10943       hash = "sha256-ZWlhHcyArBSCx8IiZLGujJw1HUmDUR65psX0ehAVAIk=";
10944     };
10945     patches = [
10946       # Fix build with gobject-introspection 1.82
10947       # https://gitlab.gnome.org/GNOME/perl-glib-object-introspection/-/issues/7
10948       (fetchpatch {
10949         url = "https://gitlab.gnome.org/GNOME/perl-glib-object-introspection/-/commit/e5adffecdc9b321d1f8d91777b190b8ae08f8dd0.patch";
10950         hash = "sha256-/QAhKENSeP+QRoWx/v8EMFPOouZ36Qd78lhZpvInz7Q=";
10951       })
10952     ];
10953     nativeCheckInputs = [ pkgs.cairo CairoGObject ];
10954     propagatedBuildInputs = [ pkgs.gobject-introspection Glib ];
10955     preCheck = ''
10956       # Our gobject-introspection patches make the shared library paths absolute
10957       # in the GIR files. When running tests, the library is not yet installed,
10958       # though, so we need to replace the absolute path with a local one during build.
10959       # We are using a symlink that we will delete after the execution of the tests.
10960       mkdir -p $out/lib
10961       ln -s $PWD/build/*.so $out/lib/
10962     '';
10963     postCheck = ''
10964       rm -r $out/lib
10965     '';
10966     doCheck = !stdenv.hostPlatform.isDarwin;
10967     meta = {
10968       description = "Dynamically create Perl language bindings";
10969       homepage = "https://gtk2-perl.sourceforge.net";
10970       license = with lib.licenses; [ lgpl21Only ];
10971     };
10972   };
10974   GnuPG = buildPerlPackage {
10975     pname = "GnuPG";
10976     version = "0.19";
10977     src = fetchurl {
10978       url = "mirror://cpan/authors/id/Y/YA/YANICK/GnuPG-0.19.tar.gz";
10979       hash = "sha256-r1Py0/Yyl+BGZ26uFKdilq/dKRDglyO2sRNwhiK3mJs=";
10980     };
10981     buildInputs = [ pkgs.gnupg1orig ];
10982     doCheck = false;
10983     meta = {
10984       description = "Perl interface to the GNU Privacy Guard";
10985       license = with lib.licenses; [ gpl2Plus ];
10986       mainProgram = "gpgmailtunl";
10987     };
10988   };
10990   GnuPGInterface = buildPerlPackage {
10991     pname = "GnuPG-Interface";
10992     version = "1.03";
10993     src = fetchurl {
10994       url = "mirror://cpan/authors/id/B/BP/BPS/GnuPG-Interface-1.03.tar.gz";
10995       hash = "sha256-WvVmMPD6wpDXJCGD9kSaoOAoKfRhHcYrxunps4CPGHo=";
10996     };
10997     buildInputs = [ pkgs.which pkgs.gnupg1compat ];
10998     propagatedBuildInputs = [ MooXHandlesVia MooXlate ];
10999     doCheck = false;
11000     meta = {
11001       description = "Supply object methods for interacting with GnuPG";
11002       license = with lib.licenses; [ artistic1 gpl1Plus ];
11003     };
11004   };
11006   GoferTransporthttp = buildPerlPackage {
11007     pname = "GoferTransport-http";
11008     version = "1.017";
11009     src = fetchurl {
11010       url = "mirror://cpan/authors/id/T/TI/TIMB/GoferTransport-http-1.017.tar.gz";
11011       hash = "sha256-9z7/4+p6+hkHzol3yHOHq7DUQE+FpySuJjeymnMVSps=";
11012     };
11013     propagatedBuildInputs = [ DBI LWP mod_perl2 ];
11014     doCheck = false; # no make target 'test'
11015     meta = {
11016       description = "HTTP transport for DBI stateless proxy driver DBD::Gofer";
11017       license = with lib.licenses; [ artistic1 gpl1Plus ];
11018     };
11019   };
11021   GooCanvas = buildPerlPackage {
11022     pname = "Goo-Canvas";
11023     version = "0.06";
11024     src = fetchurl {
11025       url = "mirror://cpan/authors/id/Y/YE/YEWENBIN/Goo-Canvas-0.06.tar.gz";
11026       hash = "sha256-DFiMUH7tXmLRLtHMHkkcb/Oh9ZxPs9Q14UIUs3qzklE=";
11027     };
11028     propagatedBuildInputs = [ pkgs.goocanvas pkgs.gtk2 Gtk2 ];
11029     meta = {
11030       description = "Perl interface to the GooCanvas";
11031       license = with lib.licenses; [ artistic1 gpl1Plus ];
11032     };
11033   };
11035   GooCanvas2 = buildPerlPackage {
11036     pname = "GooCanvas2";
11037     version = "0.06";
11038     src = fetchurl {
11039       url = "mirror://cpan/authors/id/P/PE/PERLMAX/GooCanvas2-0.06.tar.gz";
11040       hash = "sha256-4kyHhz4ZBj3U1eLHCcqs+MCuiIEEQ5W7hl3CtP3WO1A=";
11041     };
11042     buildInputs = [ pkgs.gtk3 ];
11043     propagatedBuildInputs = [ pkgs.goocanvas2 Gtk3 ];
11044     meta = {
11045       description = "Perl binding for GooCanvas2 widget using Glib::Object::Introspection";
11046       license = with lib.licenses; [ artistic1 gpl1Plus ];
11047     };
11048   };
11050   GooCanvas2CairoTypes = buildPerlPackage rec {
11051     pname = "GooCanvas2-CairoTypes";
11052     version = "0.001";
11053     src = fetchurl {
11054       url = "mirror://cpan/authors/id/A/AS/ASOKOLOV/GooCanvas2-CairoTypes-${version}.tar.gz";
11055       hash = "sha256-uoBnNuvMnePYFBp2Omgr3quxy4cCveKZrf1XSs6HUFI=";
11056     };
11057     propagatedBuildInputs = [ pkgs.goocanvas2 Gtk3 ];
11058     meta = {
11059       description = "Bridge between GooCanvas2 and Cairo types";
11060       license = with lib.licenses; [ artistic1 gpl1Plus ];
11061     };
11062   };
11064   GoogleProtocolBuffers = buildPerlPackage {
11065     pname = "Google-ProtocolBuffers";
11066     version = "0.12";
11067     src = fetchurl {
11068       url = "mirror://cpan/authors/id/S/SA/SAXJAZMAN/protobuf/Google-ProtocolBuffers-0.12.tar.gz";
11069       hash = "sha256-s4RJxguaJxLd5IFIXMerA7KgrBw/1ICzhT5BEawpTXE=";
11070     };
11071     propagatedBuildInputs = [ ClassAccessor ParseRecDescent ];
11072     patches =
11073       [ ../development/perl-modules/Google-ProtocolBuffers-multiline-comments.patch ];
11074     meta = {
11075       description = "Simple interface to Google Protocol Buffers";
11076       homepage = "https://github.com/csirtgadgets/google-protocolbuffers-perl";
11077       license = with lib.licenses; [ artistic1 gpl1Plus ];
11078       mainProgram = "protoc-perl";
11079     };
11080   };
11082   gotofile = buildPerlPackage {
11083     pname = "goto-file";
11084     version = "0.005";
11085     src = fetchurl {
11086       url = "mirror://cpan/authors/id/E/EX/EXODIST/goto-file-0.005.tar.gz";
11087       hash = "sha256-xs3V7kps3L2/MU2SpPmYXbzfnkJYBIyudhJcBSqjH3c=";
11088     };
11089     buildInputs = [ Test2Suite ];
11090     meta = {
11091       description = "Stop parsing the current file and move on to a different one";
11092       license = with lib.licenses; [ artistic1 gpl1Plus ];
11093     };
11094   };
11096   Graph = buildPerlPackage {
11097     pname = "Graph";
11098     version = "0.9727";
11099     src = fetchurl {
11100       url = "mirror://cpan/authors/id/E/ET/ETJ/Graph-0.9727.tar.gz";
11101       hash = "sha256-OSqJFtyVExq+jJE9/Kx2mEhL9IZrQq9fcEPABi50Iik=";
11102     };
11103     propagatedBuildInputs = [ HeapFibonacci SetObject ];
11104     meta = {
11105       description = "GRaph data structures and algorithms";
11106       license = with lib.licenses; [ artistic1 gpl1Plus ];
11107     };
11108   };
11110   GraphicsColor = buildPerlPackage {
11111     pname = "Graphics-Color";
11112     version = "0.31";
11113     src = fetchurl {
11114       url = "mirror://cpan/authors/id/G/GP/GPHAT/Graphics-Color-0.31.tar.gz";
11115       hash = "sha256-+qj+1bLYDlFgr5duXbIkLAs1VVQs4QQldf9raUWHoz0=";
11116     };
11117     buildInputs = [ TestNumberDelta ModulePluggable ];
11118     propagatedBuildInputs = [ ColorLibrary Moose MooseXAliases MooseXClone MooseXStorage MooseXTypes ];
11119     meta = {
11120       description = "Device and library agnostic color spaces";
11121       homepage = "https://github.com/gphat/graphics-color";
11122       license = with lib.licenses; [ artistic1 gpl1Plus ];
11123     };
11124   };
11126   GraphicsTIFF = buildPerlPackage {
11127     pname = "Graphics-TIFF";
11128     version = "20";
11129     src = fetchurl {
11130       url = "mirror://cpan/authors/id/R/RA/RATCLIFFE/Graphics-TIFF-20.tar.gz";
11131       hash = "sha256-PlXMIJRl4GQBmiFaUvBf9RBAKX0CA5P+n7PeJ60CDjU=";
11132     };
11133     buildInputs = [ pkgs.libtiff ExtUtilsDepends ExtUtilsPkgConfig ];
11134     propagatedBuildInputs = [ Readonly ];
11135     nativeCheckInputs = [ TestRequires TestDeep pkgs.hexdump ];
11136     meta = {
11137       description = "Perl extension for the libtiff library";
11138       license = with lib.licenses; [ artistic1 gpl1Plus ];
11139     };
11140   };
11142   GraphicsToolkitColor = buildPerlPackage {
11143     pname = "Graphics-Toolkit-Color";
11144     version = "1.71";
11145     src = fetchurl {
11146       url = "mirror://cpan/authors/id/L/LI/LICHTKIND/Graphics-Toolkit-Color-1.71.tar.gz";
11147       hash = "sha256-NOiLb2hY9H2ZYQHxWC8esA23+G4Snl8dYb9/m922LvI=";
11148     };
11149     buildInputs = [ TestWarn ];
11150     meta = {
11151       description = "Color palette constructor";
11152       license = with lib.licenses; [ artistic1 gpl1Plus ];
11153     };
11154   };
11156   GraphViz = buildPerlPackage {
11157     pname = "GraphViz";
11158     version = "2.26";
11159     src = fetchurl {
11160       url = "mirror://cpan/authors/id/E/ET/ETJ/GraphViz-2.26.tar.gz";
11161       hash = "sha256-ml0lILMmK/MEdSct12SkRfjn+TG++Ivg49O/9EXacyg=";
11162     };
11164     # XXX: It'd be nicer it `GraphViz.pm' could record the path to graphviz.
11165     buildInputs = [ pkgs.graphviz TestPod ];
11166     propagatedBuildInputs = [ FileWhich IPCRun ParseRecDescent XMLTwig XMLXPath ];
11168     meta = {
11169       description = "Perl interface to the GraphViz graphing tool";
11170       license = with lib.licenses; [ artistic2 ];
11171     };
11172   };
11174   GraphViz2 = buildPerlPackage {
11175     pname = "GraphViz2";
11176     version = "2.67";
11177     src = fetchurl {
11178       url = "mirror://cpan/authors/id/E/ET/ETJ/GraphViz2-2.67.tar.gz";
11179       hash = "sha256-h8hcbt/86k+W5rSAD2+VEq6rGeuNOzSDAachMxvLhYA=";
11180     };
11182     # XXX: It'd be nicer if `GraphViz.pm' could record the path to graphviz.
11183     buildInputs = [ pkgs.graphviz TestPod Moo IPCRun3 TypeTiny TestSnapshot Graph ];
11184     propagatedBuildInputs = [ FileWhich IPCRun ParseRecDescent XMLTwig XMLXPath DataSectionSimple ];
11186     # needed for fontconfig tests
11187     HOME = "/build";
11188     FONTCONFIG_PATH = "${lib.getOutput "out" pkgs.fontconfig}/etc/fonts";
11190     meta = {
11191       description = "Perl interface to the GraphViz graphing tool";
11192       license = with lib.licenses; [ artistic2 ];
11193     };
11194   };
11196   grepmail = buildPerlPackage {
11197     pname = "grepmail";
11198     version = "5.3111";
11199     src = fetchurl {
11200       url = "mirror://cpan/authors/id/D/DC/DCOPPIT/grepmail-5.3111.tar.gz";
11201       hash = "sha256-0JhOP3ob4XrgFFdfcMFngVGlvMliIYXcWgUstjJxp2E=";
11202     };
11203     buildInputs = [ FileHomeDir FileSlurper TestCompile UNIVERSALrequire URI ];
11204     propagatedBuildInputs = [ MailMboxMessageParser TimeDate ];
11205     outputs = [ "out" ];
11206     meta = {
11207       description = "Search mailboxes for mail matching a regular expression";
11208       homepage = "https://github.com/coppit/grepmail";
11209       license = with lib.licenses; [ gpl2Only ];
11210       maintainers = with maintainers; [ romildo ];
11211     };
11212   };
11214   GrowlGNTP = buildPerlModule {
11215     pname = "Growl-GNTP";
11216     version = "0.21";
11217     src = fetchurl {
11218       url = "mirror://cpan/authors/id/M/MA/MATTN/Growl-GNTP-0.21.tar.gz";
11219       hash = "sha256-KHl/jkJ0BnIFhMr9EOeAp47CtWnFVaGHQ9dFU9X1CD8=";
11220     };
11221     buildInputs = [ ModuleBuildTiny ];
11222     propagatedBuildInputs = [ CryptCBC DataUUID ];
11223     meta = {
11224       description = "Perl implementation of GNTP Protocol (Client Part)";
11225       license = with lib.licenses; [ artistic1 gpl1Plus ];
11226     };
11227   };
11229   GSSAPI = buildPerlPackage {
11230     pname = "GSSAPI";
11231     version = "0.28";
11232     src = fetchurl {
11233       url = "mirror://cpan/authors/id/A/AG/AGROLMS/GSSAPI-0.28.tar.gz";
11234       hash = "sha256-fY8se2F2L7TsctLsKBKQ8vh/nH0pgnPaRSVDKmXncNY=";
11235     };
11236     propagatedBuildInputs = [ pkgs.krb5.dev ];
11237     makeMakerFlags = [ "--gssapiimpl" "${pkgs.krb5.dev}" ];
11238     meta = {
11239       description = "Perl extension providing access to the GSSAPIv2 library";
11240       license = with lib.licenses; [ artistic1 gpl1Plus ];
11241       maintainers = teams.deshaw.members;
11242     };
11243   };
11245   Gtk2 = buildPerlPackage {
11246     pname = "Gtk2";
11247     version = "1.24993";
11248     src = fetchurl {
11249       url = "mirror://cpan/authors/id/X/XA/XAOC/Gtk2-1.24993.tar.gz";
11250       hash = "sha256-ScRDdDsu7+EadoACck9/akxI78lP8806VZ+357aTyWc=";
11251     };
11252     patches = [
11253       # Fix incompatible function pointer conversion (assigning `GdkNativeWindow` to `guint32`).
11254       ../development/perl-modules/Gtk2-fix-incompatible-pointer-conversion.patch
11255     ];
11256     buildInputs = [ pkgs.gtk2 ];
11257     # https://rt.cpan.org/Public/Bug/Display.html?id=130742
11258     # doCheck = !stdenv.hostPlatform.isDarwin;
11259     doCheck = false;
11260     propagatedBuildInputs = [ Pango ];
11261     meta = {
11262       description = "Perl interface to the 2.x series of the Gimp Toolkit library";
11263       homepage = "https://gtk2-perl.sourceforge.net";
11264       license = with lib.licenses; [ lgpl21Plus ];
11265     };
11266   };
11268   Gtk2TrayIcon = buildPerlPackage {
11269     pname = "Gtk2-TrayIcon";
11270     version = "0.07";
11271     src = fetchurl {
11272       url = "mirror://cpan/authors/id/X/XA/XAOC/Gtk2-TrayIcon-0.07.tar.gz";
11273       hash = "sha256-OfwrmabmE9qeqXfYy1MD+l4H5poVJIk03hIXqXuWRVQ=";
11274     };
11275     propagatedBuildInputs = [ pkgs.gtk2 Gtk2 ];
11276     meta = {
11277       description = "(DEPRECATED) Perl interface to the EggTrayIcon library";
11278       license = with lib.licenses; [ gpl2Plus ];
11279       broken = stdenv.hostPlatform.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.Gtk2TrayIcon.x86_64-darwin
11280     };
11281   };
11283   Gtk2AppIndicator = buildPerlPackage {
11284     pname = "Gtk2-AppIndicator";
11285     version = "0.15";
11286     src = fetchurl {
11287       url = "mirror://cpan/authors/id/O/OE/OESTERHOL/Gtk2-AppIndicator-0.15.tar.gz";
11288       hash = "sha256-olywceIU+4m0RQqkYFAx6uibeWHhSbDW6PSRwZwUqQo=";
11289     };
11290     propagatedBuildInputs = [ pkgs.libappindicator-gtk2 pkgs.libdbusmenu-gtk2 pkgs.gtk2 pkgs.pkg-config Gtk2 ];
11291     # Tests fail due to no display:
11292     #   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.
11293     doCheck = false;
11294     meta = {
11295       description = "Perl extension for libappindicator";
11296       license = with lib.licenses; [ artistic1 ];
11297     };
11298   };
11300   Gtk2ImageView = buildPerlPackage {
11301     pname = "Gtk2-ImageView";
11302     version = "0.05";
11303     src = fetchurl {
11304       url = "mirror://cpan/authors/id/R/RA/RATCLIFFE/Gtk2-ImageView-0.05.tar.gz";
11305       hash = "sha256-CHGGw2k6zxlkUc9ZzIt/XPmnsFq+INMty8uggilT+4A=";
11306     };
11307     buildInputs = [ pkgs.gtkimageview pkgs.gtk2 ];
11308     propagatedBuildInputs = [ Gtk2 ];
11309     # Tests fail due to no display server:
11310     #   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.
11311     #   t/animview.t ...........
11312     doCheck = false;
11313     meta = {
11314       description = "Perl bindings for the GtkImageView widget";
11315       license = with lib.licenses; [ lgpl3Plus ];
11316     };
11317   };
11319   Gtk2Unique = buildPerlPackage {
11320     pname = "Gtk2-Unique";
11321     version = "0.07";
11322     src = fetchurl {
11323       url = "mirror://cpan/authors/id/X/XA/XAOC/Gtk2-Unique-0.07.tar.gz";
11324       hash = "sha256-nOX2ikFgC8z31u/eMMBwqxFOk57XqKx8O3rZE5mJGGc=";
11325     };
11326     propagatedBuildInputs = [ pkgs.libunique pkgs.gtk2 Gtk2 ];
11327     meta = {
11328       description = "(DEPRECATED) Use single instance applications";
11329       license = with lib.licenses; [ artistic1 gpl1Plus ];
11330       broken = stdenv.hostPlatform.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.Gtk2Unique.x86_64-darwin
11331     };
11332   };
11334   Gtk3 = buildPerlPackage rec {
11335     pname = "Gtk3";
11336     version = "0.038";
11337     src = fetchurl {
11338       url = "mirror://cpan/authors/id/X/XA/XAOC/Gtk3-${version}.tar.gz";
11339       hash = "sha256-cNxL8qp0mBx54V/SmNmY4FqS66SBHxrVyfH03jdzesw=";
11340     };
11341     propagatedBuildInputs = [ pkgs.gtk3 CairoGObject GlibObjectIntrospection ];
11342     preCheck = lib.optionalString stdenv.hostPlatform.isDarwin ''
11343       # Currently failing on macOS
11344       rm t/overrides.t
11345       rm t/signals.t
11346       rm t/zz-GdkEvent.t
11347       rm t/zz-GtkContainer.t
11348       rm t/zz-GtkDialog.t
11349     '';
11350     meta = {
11351       description = "Perl interface to the 3.x series of the gtk+ toolkit";
11352       license = with lib.licenses; [ lgpl21Plus ];
11353     };
11354   };
11356   Gtk3ImageView = buildPerlPackage rec {
11357     pname = "Gtk3-ImageView";
11358     version = "10";
11359     src = fetchurl {
11360       url = "mirror://cpan/authors/id/A/AS/ASOKOLOV/Gtk3-ImageView-${version}.tar.gz";
11361       hash = "sha256-vHfnBgaeZPK7hBgZcP1KjepG+IvsDE3XwrH9U4xoN+Y=";
11362     };
11363     buildInputs = [ pkgs.gtk3 ];
11364     propagatedBuildInputs = [ Readonly Gtk3 ];
11365     nativeCheckInputs = [ TestDifferences TestDeep ImageMagick TryTiny TestMockObject CarpAlways pkgs.librsvg ];
11366     checkPhase = ''
11367       ${pkgs.xvfb-run}/bin/xvfb-run -s '-screen 0 800x600x24' \
11368         make test
11369     '';
11370     meta = {
11371       description = "Image viewer widget for Gtk3";
11372       homepage = "https://github.com/carygravel/gtk3-imageview";
11373       license = with lib.licenses; [ artistic1 gpl1Plus ];
11374     };
11375   };
11377   Gtk3SimpleList = buildPerlPackage {
11378     pname = "Gtk3-SimpleList";
11379     version = "0.21";
11380     src = fetchurl {
11381       url = "mirror://cpan/authors/id/T/TV/TVIGNAUD/Gtk3-SimpleList-0.21.tar.gz";
11382       hash = "sha256-HURlEAvzvAR0opRppAb9AzVituNzYYgSEAA3KrKtqIQ=";
11383     };
11384     propagatedBuildInputs = [ Gtk3 ];
11385     meta = {
11386       description = "Simple interface to Gtk3's complex MVC list widget";
11387       homepage = "https://github.com/soig/Gtk3-SimpleList";
11388       license = with lib.licenses; [ lgpl21Plus ];
11389     };
11390   };
11392   Guard = buildPerlPackage {
11393     pname = "Guard";
11394     version = "1.023";
11395     src = fetchurl {
11396       url = "mirror://cpan/authors/id/M/ML/MLEHMANN/Guard-1.023.tar.gz";
11397       hash = "sha256-NMTd+R/JPRCQ2G2hTfcG0XWxYQxnNywB4SzpVV1N0dw=";
11398     };
11399     meta = {
11400       description = "Safe cleanup blocks";
11401       license = with lib.licenses; [ artistic1 gpl1Plus ];
11402     };
11403   };
11405   HamAPRSFAP = buildPerlPackage {
11406     pname = "Ham-APRS-FAP";
11407     version = "1.21";
11408     src = fetchurl {
11409       url = "mirror://cpan/authors/id/H/HE/HESSU/Ham-APRS-FAP-1.21.tar.gz";
11410       hash = "sha256-4BtFXUb0RxDbzyG2+oQ/CTWM5g7uHEFBvHTgogTToCA=";
11411     };
11412     propagatedBuildInputs = [ DateCalc ];
11413     meta = {
11414       description = "Finnish APRS Parser (Fabulous APRS Parser)";
11415       maintainers = [ ];
11416       license = with lib.licenses; [ artistic1 gpl1Plus ];
11417     };
11418   };
11420   Hailo = buildPerlPackage {
11421     pname = "Hailo";
11422     version = "0.75";
11423     src = fetchurl {
11424       url = "mirror://cpan/authors/id/A/AV/AVAR/Hailo-0.75.tar.gz";
11425       hash = "sha256-u6mcsM+j7oYy3YmQbG5voF/muzZ/IoLoiQnO/Y+RdMI=";
11426     };
11427     buildInputs = [ BotTrainingMegaHAL BotTrainingStarCraft DataSection FileSlurp PodSection TestException TestExpect TestOutput TestScript TestScriptRun ];
11428     propagatedBuildInputs = [ ClassLoad DBDSQLite DataDump DirSelf FileCountLines GetoptLongDescriptive IOInteractive IPCSystemSimple ListMoreUtils Moose MooseXGetopt MooseXStrictConstructor MooseXTypes RegexpCommon TermSk namespaceclean ];
11429     nativeBuildInputs = lib.optional stdenv.hostPlatform.isDarwin shortenPerlShebang;
11430     patches = [
11431       ../development/perl-modules/Hailo-fix-test-gld.patch
11432     ];
11433     postPatch = ''
11434       patchShebangs bin
11435     '';
11436     postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
11437       shortenPerlShebang $out/bin/hailo
11438     '';
11439     meta = {
11440       description = "Pluggable Markov engine analogous to MegaHAL";
11441       homepage = "https://hailo.org";
11442       license = with lib.licenses; [ artistic1 gpl1Plus ];
11443       mainProgram = "hailo";
11444     };
11445   };
11447   HashDiff = buildPerlPackage {
11448     pname = "Hash-Diff";
11449     version = "0.010";
11450     src = fetchurl {
11451       url = "mirror://cpan/authors/id/B/BO/BOLAV/Hash-Diff-0.010.tar.gz";
11452       hash = "sha256-vJpKo47JjwqYKJ41q/mhfC8qMjmiIJoymADglwqi4MU=";
11453     };
11454     propagatedBuildInputs = [ HashMerge ];
11455     buildInputs = [ TestSimple13 ];
11457     meta = {
11458       description = "Return difference between two hashes as a hash";
11459       homepage = "https://github.com/bolav/hash-diff";
11460       license = with lib.licenses; [ artistic1 gpl1Plus ];
11461     };
11462   };
11464   ham = callPackage ../development/perl-modules/ham { };
11466   HashFlatten = buildPerlPackage {
11467     pname = "Hash-Flatten";
11468     version = "1.19";
11469     src = fetchurl {
11470       url = "mirror://cpan/authors/id/B/BB/BBC/Hash-Flatten-1.19.tar.gz";
11471       hash = "sha256-cMbEnYtsRgdGQXpQmO3SoP0x/YuGxUv4SS6FPB9OS5g=";
11472     };
11473     buildInputs = [ TestAssertions ];
11474     propagatedBuildInputs = [ LogTrace ];
11475     meta = {
11476       description = "Flatten/unflatten complex data hashes";
11477       license = with lib.licenses; [ gpl2Only ];
11478     };
11479   };
11481   HashMerge = buildPerlPackage {
11482     pname = "Hash-Merge";
11483     version = "0.302";
11484     src = fetchurl {
11485       url = "mirror://cpan/authors/id/H/HE/HERMES/Hash-Merge-0.302.tar.gz";
11486       hash = "sha256-rgUi92U5YIth3eFGcOeWd+DzkQNoMvcKIfMa3eJThkQ=";
11487     };
11488     propagatedBuildInputs = [ CloneChoose ];
11489     buildInputs = [ Clone ClonePP ];
11490     meta = {
11491       description = "Merges arbitrarily deep hashes into a single hash";
11492       homepage = "https://metacpan.org/release/Hash-Merge";
11493       license = with lib.licenses; [ artistic1 gpl1Plus ];
11494     };
11495   };
11497   HashMergeSimple = buildPerlPackage {
11498     pname = "Hash-Merge-Simple";
11499     version = "0.051";
11500     src = fetchurl {
11501       url = "mirror://cpan/authors/id/R/RO/ROKR/Hash-Merge-Simple-0.051.tar.gz";
11502       hash = "sha256-HFYyeHPS8E1XInd/BEhj2WiRBGaZd0DVWnVAccYoe3M=";
11503     };
11504     buildInputs = [ TestDeep TestDifferences TestException TestMost TestWarn ];
11505     propagatedBuildInputs = [ Clone ];
11506     meta = {
11507       description = "Recursively merge two or more hashes, simply";
11508       license = with lib.licenses; [ artistic1 gpl1Plus ];
11509     };
11510   };
11512   HashMoreUtils = buildPerlPackage {
11513     pname = "Hash-MoreUtils";
11514     version = "0.06";
11515     src = fetchurl {
11516       url = "mirror://cpan/authors/id/R/RE/REHSACK/Hash-MoreUtils-0.06.tar.gz";
11517       hash = "sha256-25qPuGfVB1PDgIiaXlQHVlG14IybO3IctyIMCINUfeg=";
11518     };
11519     meta = {
11520       description = "Provide the stuff missing in Hash::Util";
11521       homepage = "https://metacpan.org/release/Hash-MoreUtils";
11522       license = with lib.licenses; [ artistic1 gpl1Plus ];
11523     };
11524   };
11526   HashMultiValue = buildPerlPackage {
11527     pname = "Hash-MultiValue";
11528     version = "0.16";
11529     src = fetchurl {
11530       url = "mirror://cpan/authors/id/A/AR/ARISTOTLE/Hash-MultiValue-0.16.tar.gz";
11531       hash = "sha256-Zhgd96po4nhvr2iVyIsYuVyACo5Ob7TAf9F2QQo8c/Q=";
11532     };
11533     meta = {
11534       description = "Store multiple values per key";
11535       homepage = "https://github.com/miyagawa/Hash-MultiValue";
11536       license = with lib.licenses; [ artistic1 gpl1Plus ];
11537     };
11538   };
11540   HashOrdered = buildPerlPackage {
11541     pname = "Hash-Ordered";
11542     version = "0.014";
11543     src = fetchurl {
11544       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Hash-Ordered-0.014.tar.gz";
11545       hash = "sha256-jcNs15FVrjerij3l/ZEg/7qaMeQJJYwoUp7FJRxZdHs=";
11546     };
11547     buildInputs = [ TestDeep TestFailWarnings TestFatal ];
11548     meta = {
11549       homepage = "https://github.com/dagolden/Hash-Ordered";
11550       description = "Fast, pure-Perl ordered hash class";
11551       license = lib.licenses.asl20;
11552     };
11553   };
11555   HashSafeKeys = buildPerlPackage {
11556     pname = "Hash-SafeKeys";
11557     version = "0.04";
11558     src = fetchurl {
11559       url = "mirror://cpan/authors/id/M/MO/MOB/Hash-SafeKeys-0.04.tar.gz";
11560       hash = "sha256-pSStO/naZ3wfi+bhWXG3ZXVAj3RJI9onZHro8dPDfMw=";
11561     };
11562     meta = {
11563       description = "Get hash contents without resetting each iterator";
11564       license = with lib.licenses; [ artistic1 gpl1Plus ];
11565     };
11566   };
11568   HashSharedMem = buildPerlModule {
11569     pname = "Hash-SharedMem";
11570     version = "0.005";
11571     src = fetchurl {
11572       url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Hash-SharedMem-0.005.tar.gz";
11573       hash = "sha256-Mkd2gIYC973EStqpN4lTZUVAKakm+mEfMhyb9rlAu14=";
11574     };
11575     env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.hostPlatform.isAarch64 "-mno-outline-atomics";
11576     buildInputs = [ ScalarString ];
11577     meta = {
11578       description = "Efficient shared mutable hash";
11579       license = with lib.licenses; [ artistic1 gpl1Plus ];
11580       broken = stdenv.hostPlatform.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.HashSharedMem.x86_64-darwin
11581     };
11582   };
11584   HashStoredIterator = buildPerlModule {
11585     pname = "Hash-StoredIterator";
11586     version = "0.008";
11587     src = fetchurl {
11588       url = "mirror://cpan/authors/id/M/MS/MSCHWERN/Hash-StoredIterator-0.008.tar.gz";
11589       hash = "sha256-ucvE3NgjPo0dfxSB3beaSl+dtxgMs+8CtLy+4F5l6gw=";
11590     };
11591     buildInputs = [ Test2Suite ];
11592     perlPreHook = lib.optionalString stdenv.hostPlatform.isDarwin "export LD=$CC";
11593     meta = {
11594       description = "Functions for accessing a hashes internal iterator";
11595       license = with lib.licenses; [ artistic1 gpl1Plus ];
11596     };
11597   };
11599   HashUtilFieldHashCompat = buildPerlPackage {
11600     pname = "Hash-Util-FieldHash-Compat";
11601     version = "0.11";
11602     src = fetchurl {
11603       url = "mirror://cpan/authors/id/E/ET/ETHER/Hash-Util-FieldHash-Compat-0.11.tar.gz";
11604       hash = "sha256-ZC5Gp1tTe6EUILMPiwNAPJCgahVFjNgAnzOf6eXzdBs=";
11605     };
11606     meta = {
11607       description = "Use Hash::Util::FieldHash or ties, depending on availability";
11608       license = with lib.licenses; [ artistic1 gpl1Plus ];
11609     };
11610   };
11612   HeapFibonacci = buildPerlPackage {
11613     pname = "Heap";
11614     version = "0.80";
11615     src = fetchurl {
11616       url = "mirror://cpan/authors/id/J/JM/JMM/Heap-0.80.tar.gz";
11617       hash = "sha256-zNop88kxdq0P3/9N1vXkrJCzcMuksCg4a3NDv2QTm94=";
11618     };
11619     meta = {
11620       description = "Perl extensions for keeping data partially sorted";
11621       license = with lib.licenses; [ artistic1 gpl1Plus ];
11622     };
11623   };
11625   HookLexWrap = buildPerlPackage {
11626     pname = "Hook-LexWrap";
11627     version = "0.26";
11628     src = fetchurl {
11629       url = "mirror://cpan/authors/id/E/ET/ETHER/Hook-LexWrap-0.26.tar.gz";
11630       hash = "sha256-tgvcX5j5T5KUsGre+CsdmW2hktXxg/n0NLYQ/RE37C0=";
11631     };
11632     buildInputs = [ pkgs.unzip ];
11633     meta = {
11634       description = "Lexically scoped subroutine wrappers";
11635       homepage = "https://github.com/karenetheridge/Hook-LexWrap";
11636       license = with lib.licenses; [ artistic1 gpl1Plus ];
11637     };
11638   };
11640   HTMLClean = buildPerlPackage {
11641     pname = "HTML-Clean";
11642     version = "1.4";
11643     src = fetchurl {
11644       url = "mirror://cpan/authors/id/A/AZ/AZJADFTRE/HTML-Clean-1.4.tar.gz";
11645       hash = "sha256-pn1KvadR/DxrSjUYU3eoi8pbZRxgszN5gEtOkKF4hwY=";
11646     };
11647     meta = {
11648       description = "Cleans up HTML code for web browsers, not humans";
11649       license = with lib.licenses; [ artistic1 gpl1Plus ];
11650       mainProgram = "htmlclean";
11651     };
11652   };
11654   HTMLElementExtended = buildPerlPackage {
11655     pname = "HTML-Element-Extended";
11656     version = "1.18";
11657     src = fetchurl {
11658       url = "mirror://cpan/authors/id/M/MS/MSISK/HTML-Element-Extended-1.18.tar.gz";
11659       hash = "sha256-8+8a8Qjyf+8V6+xmR58lHOCKpJvQCwRiycgMhrS2sys=";
11660     };
11661     propagatedBuildInputs = [ HTMLTree ];
11662     meta = {
11663       description = "Perl extension for HTML::Element(3)";
11664       license = with lib.licenses; [ artistic1 gpl1Plus ];
11665     };
11666   };
11668   HTMLEscape = buildPerlModule {
11669     pname = "HTML-Escape";
11670     version = "1.11";
11671     src = fetchurl {
11672       url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/HTML-Escape-1.11.tar.gz";
11673       hash = "sha256-Wl7viWUA0epsJKkIXs++mkOr7mjPxmwD+InSostoml0=";
11674     };
11675     buildInputs = [ ModuleBuildPluggablePPPort TestRequires ];
11676     perlPreHook = lib.optionalString stdenv.hostPlatform.isi686 "export LD=$CC"; # fix undefined reference to `__stack_chk_fail_local'
11677     meta = {
11678       description = "Extremely fast HTML escaping";
11679       homepage = "https://github.com/tokuhirom/HTML-Escape";
11680       license = with lib.licenses; [ artistic1 gpl1Plus ];
11681       broken = stdenv.hostPlatform.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.HTMLEscape.x86_64-darwin
11682     };
11683   };
11685   HTMLFromANSI = buildPerlPackage {
11686     pname = "HTML-FromANSI";
11687     version = "2.03";
11688     src = fetchurl {
11689       url = "mirror://cpan/authors/id/N/NU/NUFFIN/HTML-FromANSI-2.03.tar.gz";
11690       hash = "sha256-IXdjRe1wGywEx7CTgK+UP5mEzH+ZYkCHrqRdtfwJw1k=";
11691     };
11692     propagatedBuildInputs = [ HTMLParser TermVT102Boundless ];
11693     meta = {
11694       description = "Mark up ANSI sequences as HTML";
11695       license = with lib.licenses; [ artistic1 gpl1Plus ];
11696       mainProgram = "ansi2html";
11697     };
11698   };
11700   HTMLForm = buildPerlPackage {
11701     pname = "HTML-Form";
11702     version = "6.11";
11703     src = fetchurl {
11704       url = "mirror://cpan/authors/id/S/SI/SIMBABQUE/HTML-Form-6.11.tar.gz";
11705       hash = "sha256-Q7+qcIc5NIfS1RJhoap/b4Gpex2P73pI/PbvMrFtZFQ=";
11706     };
11707     buildInputs = [ TestWarnings ];
11708     propagatedBuildInputs = [ HTMLParser URI ];
11709     meta = {
11710       description = "Class that represents an HTML form element";
11711       homepage = "https://github.com/libwww-perl/HTML-Form";
11712       license = with lib.licenses; [ artistic1 gpl1Plus ];
11713     };
11714   };
11716   HTMLFormatter = buildPerlPackage {
11717     pname = "HTML-Formatter";
11718     version = "2.16";
11719     src = fetchurl {
11720       url = "mirror://cpan/authors/id/N/NI/NIGELM/HTML-Formatter-2.16.tar.gz";
11721       hash = "sha256-ywoN2Kpei6nKIUzkUb9N8zqgnBPpB+jTCC3a/rMBUcw=";
11722     };
11723     buildInputs = [ FileSlurper TestWarnings ];
11724     propagatedBuildInputs = [ FontAFM HTMLTree ];
11725     meta = {
11726       description = "Base class for HTML formatters";
11727       homepage = "https://metacpan.org/release/HTML-Formatter";
11728       license = with lib.licenses; [ artistic1 gpl1Plus ];
11729     };
11730   };
11732   HTMLFormatExternal = buildPerlPackage {
11733     pname = "HTML-FormatExternal";
11734     version = "26";
11735     src = fetchurl {
11736       url = "mirror://cpan/authors/id/K/KR/KRYDE/HTML-FormatExternal-26.tar.gz";
11737       hash = "sha256-PFnyM9CxBoaoWu0MmUARzsaGJtoBKN6pC1xP3BdGz8M=";
11738     };
11739     propagatedBuildInputs = [ IPCRun URI constant-defer ];
11740     meta = {
11741       description = "HTML to text formatting using external programs";
11742       homepage = "https://user42.tuxfamily.org/html-formatexternal/index.html";
11743       license = with lib.licenses; [ gpl3Plus ];
11744     };
11745   };
11747   HTMLFormatTextWithLinks = buildPerlModule {
11748     pname = "HTML-FormatText-WithLinks";
11749     version = "0.15";
11750     src = fetchurl {
11751       url = "mirror://cpan/authors/id/S/ST/STRUAN/HTML-FormatText-WithLinks-0.15.tar.gz";
11752       hash = "sha256-f8wat561j7l9Q+W90U4heRolCiBJmJGMYtahcRMYM7E=";
11753     };
11754     propagatedBuildInputs = [ HTMLFormatter ];
11755     meta = {
11756       description = "HTML to text conversion with links as footnotes";
11757       license = with lib.licenses; [ artistic1 gpl1Plus ];
11758     };
11759   };
11761   HTMLFormatTextWithLinksAndTables = buildPerlPackage {
11762     pname = "HTML-FormatText-WithLinks-AndTables";
11763     version = "0.07";
11764     src = fetchurl {
11765       url = "mirror://cpan/authors/id/D/DA/DALEEVANS/HTML-FormatText-WithLinks-AndTables-0.07.tar.gz";
11766       hash = "sha256-gJ7i8RcFcGszxUMStce+5nSDjyvqrtr4y5RecCquObY=";
11767     };
11768     propagatedBuildInputs = [ HTMLFormatTextWithLinks ];
11769     meta = {
11770       description = "Converts HTML to Text with tables intact";
11771       license = with lib.licenses; [ artistic1 gpl1Plus ];
11772     };
11773   };
11775   HTMLFormFu = buildPerlPackage {
11776     pname = "HTML-FormFu";
11777     version = "2.07";
11778     src = fetchurl {
11779       url = "mirror://cpan/authors/id/C/CF/CFRANKS/HTML-FormFu-2.07.tar.gz";
11780       hash = "sha256-Ty8Bf3qHVPu26RIGyI7RPHVqFOO+oXgYjDuXdGNm6zI=";
11781     };
11782     buildInputs = [ CGI FileShareDirInstall RegexpAssemble TestException TestMemoryCycle TestRequiresInternet ];
11783     propagatedBuildInputs = [ ConfigAny DataVisitor DateTimeFormatBuilder DateTimeFormatNatural EmailValid HTMLScrubber HTMLTokeParserSimple HashFlatten JSONMaybeXS MooseXAliases MooseXAttributeChained NumberFormat PathClass Readonly RegexpCommon TaskWeaken YAMLLibYAML ];
11784     meta = {
11785       description = "HTML Form Creation, Rendering and Validation Framework";
11786       homepage = "https://github.com/FormFu/HTML-FormFu";
11787       license = with lib.licenses; [ artistic1 gpl1Plus ];
11788     };
11789   };
11791   HTMLFormFuMultiForm = buildPerlPackage {
11792     pname = "HTML-FormFu-MultiForm";
11793     version = "1.03";
11794     src = fetchurl {
11795       url = "mirror://cpan/authors/id/N/NI/NIGELM/HTML-FormFu-MultiForm-1.03.tar.gz";
11796       hash = "sha256-NvAM12u4luTaCd0rsOXYkGZ/cMePVCUa9NJYyCFJFZ8=";
11797     };
11798     propagatedBuildInputs = [ CryptCBC CryptDES HTMLFormFu ];
11799     meta = {
11800       description = "Handle multi-page/stage forms with FormFu";
11801       homepage = "https://github.com/FormFu/HTML-FormFu-MultiForm";
11802       license = with lib.licenses; [ artistic1 gpl1Plus ];
11803     };
11804   };
11806   HTMLFormHandler = buildPerlPackage {
11807     pname = "HTML-FormHandler";
11808     version = "0.40068";
11809     src = fetchurl {
11810       url = "mirror://cpan/authors/id/G/GS/GSHANK/HTML-FormHandler-0.40068.tar.gz";
11811       hash = "sha256-63t43aMSV1LMi8wDltOXf70o2jPS1ExQQq1tNdbN6Cc=";
11812     };
11813     # a single test is failing on perl 5.20
11814     doCheck = false;
11815     buildInputs = [ FileShareDirInstall PadWalker TestDifferences TestException TestMemoryCycle TestWarn ];
11816     propagatedBuildInputs = [ CryptBlowfish CryptCBC DataClone DateTimeFormatStrptime EmailValid HTMLTree JSONMaybeXS MooseXGetopt MooseXTypesCommon MooseXTypesLoadableClass aliased ];
11817     meta = {
11818       description = "HTML forms using Moose";
11819       license = with lib.licenses; [ artistic1 gpl1Plus ];
11820     };
11821   };
11823   HTMLGumbo = buildPerlModule {
11824     pname = "HTML-Gumbo";
11825     version = "0.18";
11826     src = fetchurl {
11827       url = "mirror://cpan/authors/id/R/RU/RUZ/HTML-Gumbo-0.18.tar.gz";
11828       hash = "sha256-v1C2HCRlbMP8lYYC2AqcfQFyR6842Nv6Dp3sW3VCXV8=";
11829     };
11830     propagatedBuildInputs = [ AlienLibGumbo ];
11831     meta = {
11832       description = "HTML5 parser based on gumbo C library";
11833       license = with lib.licenses; [ artistic1 gpl1Plus ];
11834     };
11835   };
11837   HTMLMason = buildPerlPackage {
11838     pname = "HTML-Mason";
11839     version = "1.60";
11840     src = fetchurl {
11841       url = "mirror://cpan/authors/id/D/DR/DROLSKY/HTML-Mason-1.60.tar.gz";
11842       hash = "sha256-qgu9WmtjxiyJVfjFXsCF43DXktZSZrbDtcXweIu8d+Y=";
11843     };
11844     buildInputs = [ TestDeep ];
11845     propagatedBuildInputs = [ CGI CacheCache ClassContainer ExceptionClass LogAny ];
11846     meta = {
11847       description = "High-performance, dynamic web site authoring system";
11848       homepage = "https://metacpan.org/release/HTML-Mason";
11849       license = with lib.licenses; [ artistic1 gpl1Plus ];
11850     };
11851   };
11853   HTMLMasonPSGIHandler = buildPerlPackage {
11854     pname = "HTML-Mason-PSGIHandler";
11855     version = "0.53";
11856     src = fetchurl {
11857       url = "mirror://cpan/authors/id/R/RU/RUZ/HTML-Mason-PSGIHandler-0.53.tar.gz";
11858       hash = "sha256-6v18dlXfqCYd80RrkxooPTAwaHe4OsRnHEnP906n8As=";
11859     };
11860     buildInputs = [ Plack ];
11861     propagatedBuildInputs = [ CGIPSGI HTMLMason ];
11862     meta = {
11863       description = "PSGI handler for HTML::Mason";
11864       homepage = "https://search.cpan.org/dist/HTML-Mason-PSGIHandler";
11865       license = with lib.licenses; [ artistic1 gpl1Plus ];
11866     };
11867   };
11869   HTMLParser = buildPerlPackage {
11870     pname = "HTML-Parser";
11871     version = "3.81";
11872     src = fetchurl {
11873       url = "mirror://cpan/authors/id/O/OA/OALDERS/HTML-Parser-3.81.tar.gz";
11874       hash = "sha256-wJEKXI+S+IF+3QbM/SJLocLr6MEPVR8DJYeh/IPWL/I=";
11875     };
11876     propagatedBuildInputs = [ HTMLTagset HTTPMessage ];
11877     meta = {
11878       description = "HTML parser class";
11879       homepage = "https://github.com/libwww-perl/HTML-Parser";
11880       license = with lib.licenses; [ artistic1 gpl1Plus ];
11881     };
11882   };
11884   HTMLTagCloud = buildPerlModule {
11885     pname = "HTML-TagCloud";
11886     version = "0.38";
11887     src = fetchurl {
11888       url = "mirror://cpan/authors/id/R/RO/ROBERTSD/HTML-TagCloud-0.38.tar.gz";
11889       hash = "sha256-SYCZRy3vhmtEi/YvQYLfrfWUcuE/JMuGZKZxynm2cBU=";
11890     };
11891     meta = {
11892       description = "Generate An HTML Tag Cloud";
11893       license = with lib.licenses; [ artistic1 gpl1Plus ];
11894     };
11895   };
11897   HTMLQuoted = buildPerlPackage {
11898     pname = "HTML-Quoted";
11899     version = "0.04";
11900     src = fetchurl {
11901       url = "mirror://cpan/authors/id/T/TS/TSIBLEY/HTML-Quoted-0.04.tar.gz";
11902       hash = "sha256-i0HzE/3BgS8C9vbDfVjyEshP3PeCf3/UsDCQfzncZQw=";
11903     };
11904     propagatedBuildInputs = [ HTMLParser ];
11905     meta = {
11906       description = "Extract structure of quoted HTML mail message";
11907       license = with lib.licenses; [ artistic1 gpl1Plus ];
11908     };
11909   };
11911   HTMLRewriteAttributes = buildPerlPackage {
11912     pname = "HTML-RewriteAttributes";
11913     version = "0.05";
11914     src = fetchurl {
11915       url = "mirror://cpan/authors/id/T/TS/TSIBLEY/HTML-RewriteAttributes-0.05.tar.gz";
11916       hash = "sha256-GAjsfN9A0nCFdf5hVaiPEDsX/sd5c6WDHC8kwlDnpYw=";
11917     };
11918     propagatedBuildInputs = [ HTMLParser ];
11919     meta = {
11920       description = "Concise attribute rewriting";
11921       license = with lib.licenses; [ artistic1 gpl1Plus ];
11922     };
11923   };
11925   HTMLSelectorXPath = buildPerlPackage {
11926     pname = "HTML-Selector-XPath";
11927     version = "0.28";
11928     src = fetchurl {
11929       url = "mirror://cpan/authors/id/C/CO/CORION/HTML-Selector-XPath-0.28.tar.gz";
11930       hash = "sha256-QycX8D7Szz1kETDP09ShU/Ca1PhW2gB4E3kv4LLljQ8=";
11931     };
11932     buildInputs = [ TestBase ];
11933     meta = {
11934       description = "CSS Selector to XPath compiler";
11935       license = with lib.licenses; [ artistic1 gpl1Plus ];
11936     };
11937   };
11939   HTMLScrubber = buildPerlPackage {
11940     pname = "HTML-Scrubber";
11941     version = "0.19";
11942     src = fetchurl {
11943       url = "mirror://cpan/authors/id/N/NI/NIGELM/HTML-Scrubber-0.19.tar.gz";
11944       hash = "sha256-rihVePhWX5FUxj5CNHBLV7aDX3ei+C/+ckiZ1FMmK7E=";
11945     };
11946     propagatedBuildInputs = [ HTMLParser ];
11947     buildInputs = [ TestDifferences TestMemoryCycle ];
11948     meta = {
11949       description = "Perl extension for scrubbing/sanitizing HTML";
11950       license = with lib.licenses; [ artistic1 gpl1Plus ];
11951     };
11952   };
11954   HTMLStripScripts = buildPerlPackage {
11955     pname = "HTML-StripScripts";
11956     version = "1.06";
11957     src = fetchurl {
11958       url = "mirror://cpan/authors/id/D/DR/DRTECH/HTML-StripScripts-1.06.tar.gz";
11959       hash = "sha256-Iiv7fsH9+kZeMto9xKvtLtxzZLvhno48UTx9WFsBCa0=";
11960     };
11961     meta = {
11962       description = "Strip scripting constructs out of HTML";
11963       license = with lib.licenses; [ artistic1 gpl1Plus ];
11964     };
11965   };
11967   HTMLStripScriptsParser = buildPerlPackage {
11968     pname = "HTML-StripScripts-Parser";
11969     version = "1.03";
11970     src = fetchurl {
11971       url = "mirror://cpan/authors/id/D/DR/DRTECH/HTML-StripScripts-Parser-1.03.tar.gz";
11972       hash = "sha256-R4waTkbrd/p7zpa6KIFo8LmMJ/JQ4A3GMSNlCBrtNAc=";
11973     };
11974     propagatedBuildInputs = [ HTMLParser HTMLStripScripts ];
11975     meta = {
11976       description = "XSS filter using HTML::Parser";
11977       license = with lib.licenses; [ artistic1 gpl1Plus ];
11978     };
11979   };
11981   HTMLTableExtract = buildPerlPackage {
11982     pname = "HTML-TableExtract";
11983     version = "2.15";
11984     src = fetchurl {
11985       url = "mirror://cpan/authors/id/M/MS/MSISK/HTML-TableExtract-2.15.tar.gz";
11986       hash = "sha256-hsWcnVjaPKF02l5i9aD7AvTaArGx4B355dFLtl5MPs8=";
11987     };
11988     preCheck = ''
11989       # https://rt.cpan.org/Public/Bug/Display.html?id=121920
11990       rm t/30_tree.t
11991     '';
11992     propagatedBuildInputs = [ HTMLElementExtended ];
11993     meta = {
11994       description = "Perl module for extracting the content contained in tables within an HTML document, either as text or encoded element trees";
11995       license = with lib.licenses; [ artistic1 gpl1Plus ];
11996     };
11997   };
11999   HTMLTagset = buildPerlPackage {
12000     pname = "HTML-Tagset";
12001     version = "3.20";
12002     src = fetchurl {
12003       url = "mirror://cpan/authors/id/P/PE/PETDANCE/HTML-Tagset-3.20.tar.gz";
12004       hash = "sha256-rbF9rJ42zQEfUkOIHJc5QX/RAvznYPjeTpvkxxMRCOI=";
12005     };
12006     meta = {
12007       description = "Data tables useful in parsing HTML";
12008       license = with lib.licenses; [ artistic1 gpl1Plus ];
12009     };
12010   };
12012   HTMLTemplate = buildPerlPackage {
12013     pname = "HTML-Template";
12014     version = "2.97";
12015     src = fetchurl {
12016       url = "mirror://cpan/authors/id/S/SA/SAMTREGAR/HTML-Template-2.97.tar.gz";
12017       hash = "sha256-ZUevYfOqhXk/hhYZCTjWd9eZX7O3IMFiWAQLyTXiEp8=";
12018     };
12019     propagatedBuildInputs = [ CGI ];
12020     buildInputs = [ TestPod ];
12021     meta = {
12022       description = "Perl module to use HTML-like templating language";
12023       license = with lib.licenses; [ artistic1 gpl1Plus ];
12024     };
12025   };
12027   HTMLTidy = buildPerlPackage {
12028     pname = "HTML-Tidy";
12029     version = "1.60";
12030     src = fetchurl {
12031       url = "mirror://cpan/authors/id/P/PE/PETDANCE/HTML-Tidy-1.60.tar.gz";
12032       hash = "sha256-vPv2XWh/jmcs9gyYIbzWXV6McqeCcrZ7sKwcaZoT18c=";
12033     };
12035     patchPhase = ''
12036       sed -i "s#/usr/include/tidyp#${pkgs.tidyp}/include/tidyp#" Makefile.PL
12037       sed -i "s#/usr/lib#${pkgs.tidyp}/lib#" Makefile.PL
12038     '';
12039     buildInputs = [ TestException ];
12040     meta = {
12041       description = "(X)HTML validation in a Perl object";
12042       homepage = "https://github.com/petdance/html-tidy";
12043       license = with lib.licenses; [ artistic2 ];
12044       mainProgram = "webtidy";
12045     };
12046   };
12048   HTMLTiny = buildPerlPackage {
12049     pname = "HTML-Tiny";
12050     version = "1.08";
12051     src = fetchurl {
12052       url = "mirror://cpan/authors/id/A/AR/ARISTOTLE/HTML-Tiny-1.08.tar.gz";
12053       hash = "sha256-DwHfDJ/ICz2dooi6q/jApTdHRE964euWAOevxKPc/rU=";
12054     };
12055     meta = {
12056       description = "Lightweight, dependency free HTML/XML generation";
12057       license = with lib.licenses; [ artistic1 gpl1Plus ];
12058     };
12059   };
12061   HTMLTokeParserSimple = buildPerlModule {
12062     pname = "HTML-TokeParser-Simple";
12063     version = "3.16";
12064     src = fetchurl {
12065       url = "mirror://cpan/authors/id/O/OV/OVID/HTML-TokeParser-Simple-3.16.tar.gz";
12066       hash = "sha256-7RETXGg55uDq+WlS5qw1Oi8i67QKchZZZx5dLcwOSp0=";
12067     };
12068     propagatedBuildInputs = [ HTMLParser SubOverride ];
12069     meta = {
12070       description = "Easy to use HTML::TokeParser interface";
12071       license = with lib.licenses; [ artistic1 gpl1Plus ];
12072     };
12073   };
12075   HTMLTree = buildPerlModule {
12076     pname = "HTML-Tree";
12077     version = "5.07";
12078     src = fetchurl {
12079       url = "mirror://cpan/authors/id/K/KE/KENTNL/HTML-Tree-5.07.tar.gz";
12080       hash = "sha256-8DdNuEcxwgS4bB1bkJdf7w0wqGvZ3vkZND5VTjGp278=";
12081     };
12082     buildInputs = [ TestFatal ];
12083     propagatedBuildInputs = [ HTMLParser ];
12084     meta = {
12085       description = "Work with HTML in a DOM-like tree structure";
12086       license = with lib.licenses; [ artistic1 gpl1Plus ];
12087       mainProgram = "htmltree";
12088     };
12089   };
12091   HTMLTreeBuilderXPath = buildPerlPackage {
12092     pname = "HTML-TreeBuilder-XPath";
12093     version = "0.14";
12094     src = fetchurl {
12095       url = "mirror://cpan/authors/id/M/MI/MIROD/HTML-TreeBuilder-XPath-0.14.tar.gz";
12096       hash = "sha256-Jeu9skRKClma5eekV9deCe/N8yZqXFcAsUA8y3SIpPM=";
12097     };
12098     propagatedBuildInputs = [ HTMLTree XMLXPathEngine ];
12099     meta = {
12100       description = "Add XPath support to HTML::TreeBuilder";
12101       license = with lib.licenses; [ artistic1 gpl1Plus ];
12102     };
12103   };
12105   HTMLWidget = buildPerlPackage {
12106     pname = "HTML-Widget";
12107     version = "1.11";
12108     src = fetchurl {
12109       url = "mirror://cpan/authors/id/C/CF/CFRANKS/HTML-Widget-1.11.tar.gz";
12110       hash = "sha256-vkLfQFWSXOalob818eB60SvEP2VJ91JJAuozMFoOggs=";
12111     };
12112     doCheck = false;
12113     propagatedBuildInputs = [ ClassAccessorChained ClassDataAccessor DateCalc EmailValid HTMLScrubber HTMLTree ModulePluggableFast ];
12114     buildInputs = [ TestNoWarnings ];
12115     meta = {
12116       description = "HTML Widget And Validation Framework";
12117       license = with lib.licenses; [ artistic1 gpl1Plus ];
12118     };
12119   };
12121   HTTPAcceptLanguage = buildPerlModule {
12122     pname = "HTTP-AcceptLanguage";
12123     version = "0.02";
12124     src = fetchurl {
12125       url = "mirror://cpan/authors/id/Y/YA/YAPPO/HTTP-AcceptLanguage-0.02.tar.gz";
12126       hash = "sha256-LmBfVk7J66tlVI/17sk/nF3qvv7XBzpyneCuKE5OQq8=";
12127     };
12128     buildInputs = [ ModuleBuildTiny ];
12129     meta = {
12130       description = "Accept-Language header parser and find available language";
12131       homepage = "https://github.com/yappo/p5-HTTP-AcceptLanguage";
12132       license = with lib.licenses; [ artistic1 gpl1Plus ];
12133     };
12134   };
12136   HTTPBody = buildPerlPackage {
12137     pname = "HTTP-Body";
12138     version = "1.23";
12139     src = fetchurl {
12140       url = "mirror://cpan/authors/id/G/GE/GETTY/HTTP-Body-1.23.tar.gz";
12141       hash = "sha256-7OmB9BYWNaL7piFdAlcZXlOMTyNDhFMFAd/bahvY1jY=";
12142     };
12143     buildInputs = [ TestDeep ];
12144     propagatedBuildInputs = [ HTTPMessage ];
12145     meta = {
12146       description = "HTTP Body Parser";
12147       license = with lib.licenses; [ artistic1 gpl1Plus ];
12148     };
12149   };
12151   HTTPCookieJar = buildPerlPackage {
12152     pname = "HTTP-CookieJar";
12153     version = "0.014";
12154     src = fetchurl {
12155       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/HTTP-CookieJar-0.014.tar.gz";
12156       hash = "sha256-cJTqXJH1NtJjuF6Dq06alj4RxECM4I7K5VP6nAzEfnM=";
12157     };
12158     propagatedBuildInputs = [ HTTPDate ];
12159     buildInputs = [ TestDeep TestRequires URI ];
12160     # Broken on Hydra since 2021-06-17: https://hydra.nixos.org/build/146507373
12161     doCheck = false;
12162     meta = {
12163       description = "Minimalist HTTP user agent cookie jar";
12164       homepage = "https://github.com/dagolden/HTTP-CookieJar";
12165       license = with lib.licenses; [ asl20 ];
12166     };
12167   };
12169   HTTPCookies = buildPerlPackage {
12170     pname = "HTTP-Cookies";
12171     version = "6.10";
12172     src = fetchurl {
12173       url = "mirror://cpan/authors/id/O/OA/OALDERS/HTTP-Cookies-6.10.tar.gz";
12174       hash = "sha256-4282Yzxc5rXkuHb/z3R4fMXv4HNt1/SHvdc8FPC9cAc=";
12175     };
12176     propagatedBuildInputs = [ HTTPMessage ];
12177     meta = {
12178       description = "HTTP cookie jars";
12179       homepage = "https://github.com/libwww-perl/HTTP-Cookies";
12180       license = with lib.licenses; [ artistic1 gpl1Plus ];
12181     };
12182   };
12184   HTTPDaemon = buildPerlPackage {
12185     pname = "HTTP-Daemon";
12186     version = "6.16";
12187     src = fetchurl {
12188       url = "mirror://cpan/authors/id/O/OA/OALDERS/HTTP-Daemon-6.16.tar.gz";
12189       hash = "sha256-s40JJyXm+k4MTcKkfhVwcEkbr6Db4Wx4o1joBqp+Fz0=";
12190     };
12191     buildInputs = [ ModuleBuildTiny TestNeeds ];
12192     propagatedBuildInputs = [ HTTPMessage ];
12193     __darwinAllowLocalNetworking = true;
12194     meta = {
12195       description = "Simple http server class";
12196       homepage = "https://github.com/libwww-perl/HTTP-Daemon";
12197       license = with lib.licenses; [ artistic1 gpl1Plus ];
12198     };
12199   };
12201   HTTPDate = buildPerlPackage {
12202     pname = "HTTP-Date";
12203     version = "6.06";
12204     src = fetchurl {
12205       url = "mirror://cpan/authors/id/O/OA/OALDERS/HTTP-Date-6.06.tar.gz";
12206       hash = "sha256-e2hRkcasw+dz0fwCyV7h+frpT3d4MXX154wYHMktK1I=";
12207     };
12208     propagatedBuildInputs = [ TimeDate ];
12209     meta = {
12210       description = "Date conversion routines";
12211       homepage = "https://github.com/libwww-perl/HTTP-Date";
12212       license = with lib.licenses; [ artistic1 gpl1Plus ];
12213     };
12214   };
12216   HTTPEntityParser = buildPerlModule {
12217     pname = "HTTP-Entity-Parser";
12218     version = "0.25";
12219     src = fetchurl {
12220       url = "mirror://cpan/authors/id/K/KA/KAZEBURO/HTTP-Entity-Parser-0.25.tar.gz";
12221       hash = "sha256-OozQ2Muj0XzYwE7oLXNB36okfb3ZSknrlLU/aeSD7Do=";
12222     };
12223     propagatedBuildInputs = [ HTTPMultiPartParser HashMultiValue JSONMaybeXS StreamBuffered WWWFormUrlEncoded ];
12224     buildInputs = [ HTTPMessage ModuleBuildTiny ];
12225     meta = {
12226       description = "PSGI compliant HTTP Entity Parser";
12227       homepage = "https://github.com/kazeburo/HTTP-Entity-Parser";
12228       license = with lib.licenses; [ artistic1 gpl1Plus ];
12229     };
12230   };
12232   HTTPDAV = buildPerlPackage {
12233     pname = "HTTP-DAV";
12234     version = "0.49";
12235     src = fetchurl {
12236       url = "mirror://cpan/authors/id/C/CO/COSIMO/HTTP-DAV-0.49.tar.gz";
12237       hash = "sha256-MzOd+ewQbeN9hgnP0NPAg8z7sGwWxlG1s4UaVtF6lXw=";
12238     };
12239     propagatedBuildInputs = [ XMLDOM ];
12240     meta = {
12241       description = "WebDAV client library";
12242       license = with lib.licenses; [ artistic1 gpl1Plus ];
12243       mainProgram = "dave";
12244     };
12245   };
12247   HTTPHeadersActionPack = buildPerlPackage {
12248     pname = "HTTP-Headers-ActionPack";
12249     version = "0.09";
12250     src = fetchurl {
12251       url = "mirror://cpan/authors/id/D/DR/DROLSKY/HTTP-Headers-ActionPack-0.09.tar.gz";
12252       hash = "sha256-x4ERq4V+SMaYJJA9S2zoKT/v/GtdZw21UKdn+FOsx9o=";
12253     };
12254     buildInputs = [ TestFatal TestWarnings ];
12255     propagatedBuildInputs = [ HTTPDate HTTPMessage ModuleRuntime SubExporter URI ];
12256     meta = {
12257       description = "HTTP Action, Adventure and Excitement";
12258       license = with lib.licenses; [ artistic1 gpl1Plus ];
12259     };
12260   };
12262   HTTPHeaderParserXS = buildPerlPackage {
12263     pname = "HTTP-HeaderParser-XS";
12264     version = "0.20";
12265     src = fetchurl {
12266       url = "mirror://cpan/authors/id/M/MA/MARKSMITH/HTTP-HeaderParser-XS-0.20.tar.gz";
12267       hash = "sha256-qeAP/7PYmRoUqq/dxh1tFoxP8U4xSuPbstTaMAjXRu8=";
12268     };
12269     meta = {
12270       description = "XS extension for processing HTTP headers";
12271       license = with lib.licenses; [ artistic1 gpl1Plus ];
12272       broken =
12273         stdenv.hostPlatform.isi686 # loadable library and perl binaries are mismatched (got handshake key 0x7d40080, needed 0x7dc0080)
12274         || stdenv.hostPlatform.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.HTTPHeaderParserXS.x86_64-darwin
12275     };
12276   };
12278   HTTPHeadersFast = buildPerlModule {
12279     pname = "HTTP-Headers-Fast";
12280     version = "0.22";
12281     src = fetchurl {
12282       url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/HTTP-Headers-Fast-0.22.tar.gz";
12283       hash = "sha256-zEMdtoSW3YhNtLwMC3ESwfSk8dxoxPWjyqdXoedIG0g=";
12284     };
12285     buildInputs = [ ModuleBuildTiny TestRequires ];
12286     propagatedBuildInputs = [ HTTPDate ];
12287     meta = {
12288       description = "Faster implementation of HTTP::Headers";
12289       homepage = "https://github.com/tokuhirom/HTTP-Headers-Fast";
12290       license = with lib.licenses; [ artistic1 gpl1Plus ];
12291     };
12292   };
12294   HTTPLite = buildPerlPackage {
12295     pname = "HTTP-Lite";
12296     version = "2.44";
12297     src = fetchurl {
12298       url = "mirror://cpan/authors/id/N/NE/NEILB/HTTP-Lite-2.44.tar.gz";
12299       hash = "sha256-OOQ9eRHPwU46OPA4K2zHptVZMH0jsQnOc6x9JKmz53w=";
12300     };
12301     buildInputs = [ CGI ];
12302     meta = {
12303       description = "Lightweight HTTP implementation";
12304       license = with lib.licenses; [ artistic1 gpl1Plus ];
12305     };
12306   };
12308   HTTPMessage = buildPerlPackage {
12309     pname = "HTTP-Message";
12310     version = "6.45";
12311     src = fetchurl {
12312       url = "mirror://cpan/authors/id/O/OA/OALDERS/HTTP-Message-6.45.tar.gz";
12313       hash = "sha256-AcuEBmEqP3OIQtHpcxOuTYdIcNG41tZjMfFgAJQ9TL4=";
12314     };
12315     buildInputs = [ TestNeeds TryTiny ];
12316     propagatedBuildInputs = [ Clone EncodeLocale HTTPDate IOHTML LWPMediaTypes URI ];
12317     meta = {
12318       description = "HTTP style message (base class)";
12319       homepage = "https://github.com/libwww-perl/HTTP-Message";
12320       license = with lib.licenses; [ artistic1 gpl1Plus ];
12321     };
12322   };
12324   HTTPMultiPartParser = buildPerlPackage {
12325     pname = "HTTP-MultiPartParser";
12326     version = "0.02";
12327     src = fetchurl {
12328       url = "mirror://cpan/authors/id/C/CH/CHANSEN/HTTP-MultiPartParser-0.02.tar.gz";
12329       hash = "sha256-Xt3aFZ9U0W+GjgMkQKwrAk5VqsSJMYcbYmJ/GhbQCxI=";
12330     };
12331     buildInputs = [ TestDeep ];
12332     meta = {
12333       description = "HTTP MultiPart Parser";
12334       license = with lib.licenses; [ artistic1 gpl1Plus ];
12335     };
12336   };
12338   HTTPNegotiate = buildPerlPackage {
12339     pname = "HTTP-Negotiate";
12340     version = "6.01";
12341     src = fetchurl {
12342       url = "mirror://cpan/authors/id/G/GA/GAAS/HTTP-Negotiate-6.01.tar.gz";
12343       hash = "sha256-HHKcHqYxAOh4QFzafWb5rf0+1PHWysrKDukVLfco4BY=";
12344     };
12345     propagatedBuildInputs = [ HTTPMessage ];
12346     meta = {
12347       description = "Choose a variant to serve";
12348       license = with lib.licenses; [ artistic1 gpl1Plus ];
12349     };
12350   };
12352   HTTPParserXS = buildPerlPackage {
12353     pname = "HTTP-Parser-XS";
12354     version = "0.17";
12355     src = fetchurl {
12356       url = "mirror://cpan/authors/id/K/KA/KAZUHO/HTTP-Parser-XS-0.17.tar.gz";
12357       hash = "sha256-eU5oM+MmsQ0kNp+c2/wWZxBe9lkej0HlYaPUGnAnqAk=";
12358     };
12359     meta = {
12360       description = "Fast, primitive HTTP request parser";
12361       license = with lib.licenses; [ artistic1 gpl1Plus ];
12362     };
12363   };
12365   HTTPProxy = buildPerlPackage {
12366     pname = "HTTP-Proxy";
12367     version = "0.304";
12368     src = fetchurl {
12369       url = "mirror://cpan/authors/id/B/BO/BOOK/HTTP-Proxy-0.304.tar.gz";
12370       hash = "sha256-sFKQU07HNiXCGgVl/DUXCJDasWOEPZUzHCksI/UExp0=";
12371     };
12372     propagatedBuildInputs = [ LWP ];
12373     # tests fail because they require network access
12374     doCheck = false;
12375     meta = {
12376       description = "Pure Perl HTTP proxy";
12377       license = with lib.licenses; [ artistic1 gpl1Plus ];
12378     };
12379   };
12381   HTTPRequestAsCGI = buildPerlPackage {
12382     pname = "HTTP-Request-AsCGI";
12383     version = "1.2";
12384     src = fetchurl {
12385       url = "mirror://cpan/authors/id/F/FL/FLORA/HTTP-Request-AsCGI-1.2.tar.gz";
12386       hash = "sha256-lFv7B8bRr1J3P7eEW6YuOnQRGzXL0tXkPvgxnlWsvOo=";
12387     };
12388     propagatedBuildInputs = [ ClassAccessor HTTPMessage ];
12389     meta = {
12390       description = "Set up a CGI environment from an HTTP::Request";
12391       license = with lib.licenses; [ artistic1 gpl1Plus ];
12392     };
12393   };
12395   HTTPResponseEncoding = buildPerlPackage {
12396     pname = "HTTP-Response-Encoding";
12397     version = "0.06";
12398     src = fetchurl {
12399       url = "mirror://cpan/authors/id/D/DA/DANKOGAI/HTTP-Response-Encoding-0.06.tar.gz";
12400       hash = "sha256-EBZ7jiOKaCAEqw16zL6dduri21evB8WuLfqAgHSkqKo=";
12401     };
12402     propagatedBuildInputs = [ HTTPMessage ];
12403     buildInputs = [ LWP ];
12404     meta = {
12405       description = "Adds encoding() to HTTP::Response";
12406       license = with lib.licenses; [ artistic1 gpl1Plus ];
12407     };
12408   };
12410   HTTPServerSimple = buildPerlPackage {
12411     pname = "HTTP-Server-Simple";
12412     version = "0.52";
12413     src = fetchurl {
12414       url = "mirror://cpan/authors/id/B/BP/BPS/HTTP-Server-Simple-0.52.tar.gz";
12415       hash = "sha256-2JOfpPEr1rjAQ1N/0L+WsFWsNoa5zdn6dz3KauZ5y0w=";
12416     };
12417     doCheck = false;
12418     propagatedBuildInputs = [ CGI ];
12419     meta = {
12420       description = "Lightweight HTTP server";
12421       license = with lib.licenses; [ artistic1 gpl1Plus ];
12422     };
12423   };
12425   HTTPServerSimpleAuthen = buildPerlPackage {
12426     pname = "HTTP-Server-Simple-Authen";
12427     version = "0.04";
12428     src = fetchurl {
12429       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/HTTP-Server-Simple-Authen-0.04.tar.gz";
12430       hash = "sha256-Ld3Iq53ImGmAFR5LqDamu/CR9Fzxlb4XaOvbSpk+1Zs=";
12431     };
12432     propagatedBuildInputs = [ AuthenSimple HTTPServerSimple ];
12433     meta = {
12434       description = "Authentication plugin for HTTP::Server::Simple";
12435       license = with lib.licenses; [ artistic1 gpl1Plus ];
12436     };
12437   };
12439   HTTPServerSimpleMason = buildPerlPackage {
12440     pname = "HTTP-Server-Simple-Mason";
12441     version = "0.14";
12442     src = fetchurl {
12443       url = "mirror://cpan/authors/id/J/JE/JESSE/HTTP-Server-Simple-Mason-0.14.tar.gz";
12444       hash = "sha256-t6Sdjm5Vv/Cx8CeNlRaFRmsUMkO2+eWeBx9UcsoqAlo=";
12445     };
12446     propagatedBuildInputs = [ HTMLMason HTTPServerSimple HookLexWrap ];
12447     meta = {
12448       description = "Simple mason server";
12449       license = with lib.licenses; [ artistic1 gpl1Plus ];
12450     };
12451   };
12453   HTTPServerSimplePSGI = buildPerlPackage {
12454     pname = "HTTP-Server-Simple-PSGI";
12455     version = "0.16";
12456     src = fetchurl {
12457       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/HTTP-Server-Simple-PSGI-0.16.tar.gz";
12458       hash = "sha256-X3zLhFMEO5cnhJKnVzKBFuEeA1LyhUooqcY05ukTHbo=";
12459     };
12460     propagatedBuildInputs = [ HTTPServerSimple ];
12461     meta = {
12462       description = "Perl Web Server Gateway Interface Specification";
12463       homepage = "https://github.com/miyagawa/HTTP-Server-Simple-PSGI";
12464       license = with lib.licenses; [ artistic1 gpl1Plus ];
12465     };
12466   };
12468   HTTPTinyCache = buildPerlPackage {
12469     pname = "HTTP-Tiny-Cache";
12470     version = "0.002";
12471     src = fetchurl {
12472       url = "mirror://cpan/authors/id/P/PE/PERLANCAR/HTTP-Tiny-Cache-0.002.tar.gz";
12473       hash = "sha256-c323zxncN4By2Rysdnh/sorNg8DRB85OTrS708kRhiE=";
12474     };
12475     propagatedBuildInputs = [ FileUtilTempdir Logger ];
12476     meta = {
12477       description = "Cache HTTP::Tiny responses";
12478       homepage = "https://metacpan.org/release/HTTP-Tiny-Cache";
12479       license = with lib.licenses; [ artistic1 gpl1Plus ];
12480       maintainers = [ maintainers.sgo ];
12481     };
12482   };
12484   HTTPTinyish = buildPerlPackage {
12485     pname = "HTTP-Tinyish";
12486     version = "0.18";
12487     src = fetchurl {
12488       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/HTTP-Tinyish-0.18.tar.gz";
12489       hash = "sha256-gDgLjTPGv6lrsBBPpqQcJ9zE6cg6SN8frTkJf1/c/eU=";
12490     };
12491     propagatedBuildInputs = [ FileWhich IPCRun3 ];
12492     meta = {
12493       description = "HTTP::Tiny compatible HTTP client wrappers";
12494       homepage = "https://github.com/miyagawa/HTTP-Tinyish";
12495       license = with lib.licenses; [ artistic1 gpl1Plus ];
12496     };
12497   };
12499   iCalParser = buildPerlPackage {
12500     pname = "iCal-Parser";
12501     version = "1.21";
12502     src = fetchurl {
12503       url = "mirror://cpan/authors/id/R/RI/RIXED/iCal-Parser-1.21.tar.gz";
12504       hash = "sha256-DXk5pkSo5nAX7HI509lgTzmGu5pP+Avmj+cpnr/SJww=";
12505     };
12506     propagatedBuildInputs = [ DateTimeFormatICal FreezeThaw IOString TextvFileasData ];
12507     meta = {
12508       description = "Parse iCalendar files into a data structure";
12509       license = with lib.licenses; [ artistic1 gpl1Plus ];
12510     };
12511   };
12513   ImagePNGLibpng = buildPerlPackage {
12514     pname = "Image-PNG-Libpng";
12515     version = "0.57";
12516     src = fetchurl {
12517       url = "mirror://cpan/authors/id/B/BK/BKB/Image-PNG-Libpng-0.56.tar.gz";
12518       hash = "sha256-+vu/6/9CP3u4XvJ6MEH7YpG1AzbHpYIiSlysQzHDx9k=";
12519     };
12520     buildInputs = [ pkgs.libpng ];
12521     meta = {
12522       description = "Perl interface to libpng";
12523       license = with lib.licenses; [ artistic1 gpl1Plus ];
12524       mainProgram = "pnginspect";
12525       broken = stdenv.hostPlatform.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.ImagePNGLibpng.x86_64-darwin
12526     };
12527   };
12529   Imager = buildPerlPackage {
12530     pname = "Imager";
12531     version = "1.019";
12532     src = fetchurl {
12533       url = "mirror://cpan/authors/id/T/TO/TONYC/Imager-1.019.tar.gz";
12534       hash = "sha256-dNRNcBwfFPxLmE+toelVcmtQTC2LBtJl56hh+llDy0g=";
12535     };
12536     buildInputs = [ pkgs.freetype pkgs.fontconfig pkgs.libjpeg pkgs.libpng ];
12537     makeMakerFlags = [ "--incpath ${pkgs.libjpeg.dev}/include" "--libpath ${pkgs.libjpeg.out}/lib" "--incpath" "${pkgs.libpng.dev}/include" "--libpath" "${pkgs.libpng.out}/lib" ];
12538     meta = {
12539       description = "Perl extension for Generating 24 bit Images";
12540       homepage = "http://imager.perl.org";
12541       license = with lib.licenses; [ artistic1 gpl1Plus ];
12542     };
12543   };
12545   ImagerQRCode = buildPerlPackage {
12546     pname = "Imager-QRCode";
12547     version = "0.035";
12548     src = fetchurl {
12549       url = "mirror://cpan/authors/id/K/KU/KURIHARA/Imager-QRCode-0.035.tar.gz";
12550       hash = "sha256-KoSN66Kes5QsRHCaaFPjGKyrDEaMv+27m6rlR2ADJRM=";
12551     };
12552     propagatedBuildInputs = [ Imager ];
12553     meta = {
12554       description = "Generate QR Code with Imager using libqrencode";
12555       license = with lib.licenses; [ artistic1 gpl1Plus ];
12556       maintainers = with maintainers; [ sgo ];
12557     };
12558   };
12560   ImageInfo = buildPerlPackage {
12561     pname = "Image-Info";
12562     version = "1.44";
12563     src = fetchurl {
12564       url = "mirror://cpan/authors/id/S/SR/SREZIC/Image-Info-1.44.tar.gz";
12565       hash = "sha256-y3/GXdHv/gHrR8HHmlLdFlT0KOOpfbHvI7EmzgFjbw0=";
12566     };
12567     propagatedBuildInputs = [ IOStringy ];
12568     meta = {
12569       description = "Extract meta information from image files";
12570       license = with lib.licenses; [ artistic1 gpl1Plus ];
12571     };
12572   };
12574   ImageSane = buildPerlPackage {
12575     pname = "Image-Sane";
12576     version = "5";
12577     src = fetchurl {
12578       url = "mirror://cpan/authors/id/R/RA/RATCLIFFE/Image-Sane-5.tar.gz";
12579       hash = "sha256-Ipqg6fBJ76dg88L25h2dU5r0PY92S1Cm4DBktHKaNf8=";
12580     };
12581     buildInputs = [ pkgs.sane-backends ExtUtilsDepends ExtUtilsPkgConfig TestRequires TryTiny ];
12582     propagatedBuildInputs = [ ExceptionClass Readonly ];
12583     meta = {
12584       description = "Perl extension for the SANE (Scanner Access Now Easy) Project";
12585       license = with lib.licenses; [ artistic1 gpl1Plus ];
12586     };
12587   };
12589   ImageScale = buildPerlPackage {
12590     pname = "Image-Scale";
12591     version = "0.14";
12592     src = fetchurl {
12593       url = "mirror://cpan/authors/id/A/AG/AGRUNDMA/Image-Scale-0.14.tar.gz";
12594       hash = "sha256-8JxfBmO4dzg2WsKBnhhrkJq+ue2F2DvBXudocslHzfg=";
12595     };
12596     buildInputs = [ pkgs.libpng pkgs.libjpeg TestNoWarnings ];
12597     propagatedBuildInputs = [ pkgs.zlib ];
12598     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" ];
12599     meta = {
12600       description = "Fast, high-quality fixed-point image resizing";
12601       license = with lib.licenses; [ gpl2Plus ];
12602     };
12603   };
12605   ImageSize = buildPerlPackage {
12606     pname = "Image-Size";
12607     version = "3.300";
12608     src = fetchurl {
12609       url = "mirror://cpan/authors/id/R/RJ/RJRAY/Image-Size-3.300.tar.gz";
12610       hash = "sha256-U8mx+GUxzeBg7mNwnR/ac8q8DPLVgdKbIrAUeBufAms=";
12611     };
12612     buildInputs = [ ModuleBuild ];
12613     meta = {
12614       description = "Library to extract height/width from images";
12615       homepage = "https://search.cpan.org/dist/Image-Size";
12616       license = with lib.licenses; [ artistic1 gpl1Plus ];
12617       mainProgram = "imgsize";
12618     };
12619   };
12621   ImageOCRTesseract = buildPerlPackage {
12622     pname = "Image-OCR-Tesseract";
12623     version = "1.26";
12624     src = fetchurl {
12625       url = "mirror://cpan/authors/id/L/LE/LEOCHARRE/Image-OCR-Tesseract-1.26.tar.gz";
12626       hash = "sha256-mNkEJmpwYvCcm0b3fE6UUp4f6ZM54/g/2h+SAT8AfOo=";
12627     };
12628     nativeBuildInputs = [ pkgs.which pkgs.makeWrapper pkgs.tesseract pkgs.imagemagick ];
12629     propagatedBuildInputs = [ FileFindRule FileWhich LEOCHARRECLI StringShellQuote ];
12630     postPatch = ''
12631       substituteInPlace lib/Image/OCR/Tesseract.pm \
12632         --replace "which('tesseract')" "\"${pkgs.tesseract}/bin/tesseract\"" \
12633         --replace "which('convert')" "\"${pkgs.imagemagick}/bin/convert"\"
12634     '';
12635     postInstall = ''
12636       wrapProgram $out/bin/ocr --prefix PATH : ${lib.makeBinPath [ pkgs.tesseract pkgs.imagemagick ]}
12637     '';
12638     meta = {
12639       description = "Read an image with tesseract ocr and get output";
12640       license = with lib.licenses; [ artistic1 gpl1Plus ];
12641       mainProgram = "ocr";
12642     };
12643   };
12645   IMAPClient = buildPerlPackage {
12646     pname = "IMAP-Client";
12647     version = "0.13";
12648     src = fetchurl {
12649       url = "mirror://cpan/authors/id/C/CO/CONTEB/IMAP-Client-0.13.tar.gz";
12650       hash = "sha256-inovpVt1qFPEgBQXeDk62sKUts0gfN9UFA9nwS8kypU=";
12651     };
12652     doCheck = false; # nondeterministic
12653     meta = {
12654       description = "Advanced manipulation of IMAP services w/ referral support";
12655       license = with lib.licenses; [ artistic1 gpl1Plus ];
12656     };
12657   };
12659   Importer = buildPerlPackage {
12660     pname = "Importer";
12661     version = "0.026";
12662     src = fetchurl {
12663       url = "mirror://cpan/authors/id/E/EX/EXODIST/Importer-0.026.tar.gz";
12664       hash = "sha256-4I+oThPLmYt6iX/I7Jw0WfzBcWr/Jcw0Pjbvh1iRsO8=";
12665     };
12666     meta = {
12667       description = "Alternative but compatible interface to modules that export symbols";
12668       license = with lib.licenses; [ artistic1 gpl1Plus ];
12669     };
12670   };
12672   ImportInto = buildPerlPackage {
12673     pname = "Import-Into";
12674     version = "1.002005";
12675     src = fetchurl {
12676       url = "mirror://cpan/authors/id/H/HA/HAARG/Import-Into-1.002005.tar.gz";
12677       hash = "sha256-vZ53o/tmK0C0OxjTKAzTUu35+tjZQoPlGBgcwc6fBWc=";
12678     };
12679     propagatedBuildInputs = [ ModuleRuntime ];
12680     meta = {
12681       description = "Import packages into other packages";
12682       license = with lib.licenses; [ artistic1 gpl1Plus ];
12683     };
12684   };
12686   IO = buildPerlPackage {
12687     pname = "IO";
12688     version = "1.51";
12689     src = fetchurl {
12690       url = "mirror://cpan/authors/id/T/TO/TODDR/IO-1.51.tar.gz";
12691       hash = "sha256-VJPqVZmHKM0rfsuCNMWPtdXfJwmNDwet3KIkRNdhbOA=";
12692     };
12693     doCheck = false;
12694     meta = {
12695       description = "Perl core IO modules";
12696       license = with lib.licenses; [ artistic1 gpl1Plus ];
12697     };
12698   };
12700   IOAIO = buildPerlPackage {
12701     pname = "IO-AIO";
12702     version = "4.73";
12703     src = fetchurl {
12704       url = "mirror://cpan/authors/id/M/ML/MLEHMANN/IO-AIO-4.73.tar.gz";
12705       hash = "sha256-mltHx4Ak+rdmPR5a90ob6rRQ19Y7poV+MbP9gobkrFo=";
12706     };
12707     buildInputs = [ CanaryStability ];
12708     propagatedBuildInputs = [ commonsense ];
12709     nativeBuildInputs = lib.optional stdenv.hostPlatform.isDarwin shortenPerlShebang;
12710     postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
12711       shortenPerlShebang $out/bin/treescan
12712     '';
12713     meta = {
12714       description = "Asynchronous/Advanced Input/Output";
12715       license = with lib.licenses; [ artistic1 gpl1Plus ];
12716       mainProgram = "treescan";
12717     };
12718   };
12720   IOAll = buildPerlPackage {
12721     pname = "IO-All";
12722     version = "0.87";
12723     src = fetchurl {
12724       url = "mirror://cpan/authors/id/F/FR/FREW/IO-All-0.87.tar.gz";
12725       hash = "sha256-VOIdJQwCKRJ+MLd6NGHhAHeFTsJE8m+2cPG0Re1MTVs=";
12726     };
12727     meta = {
12728       description = "IO::All of it to Graham and Damian!";
12729       homepage = "https://github.com/ingydotnet/io-all-pm";
12730       license = with lib.licenses; [ artistic1 gpl1Plus ];
12731     };
12732   };
12734   IOAsync = buildPerlModule {
12735     pname = "IO-Async";
12736     version = "0.802";
12737     src = fetchurl {
12738       url = "mirror://cpan/authors/id/P/PE/PEVANS/IO-Async-0.802.tar.gz";
12739       hash = "sha256-5YJzFXd2fEfqxDXvKQRmPUp1Cw5oAqSmGJo38Mswhzg";
12740     };
12741     preCheck = "rm t/50resolver.t"; # this test fails with "Temporary failure in name resolution" in sandbox
12742     propagatedBuildInputs = [ Future StructDumb ];
12743     buildInputs = [ TestFatal TestFutureIOImpl TestIdentity TestMetricsAny TestRefcount ];
12744     meta = {
12745       description = "Asynchronous event-driven programming";
12746       license = with lib.licenses; [ artistic1 gpl1Plus ];
12747     };
12748   };
12750   IOAsyncSSL = buildPerlModule {
12751     pname = "IO-Async-SSL";
12752     version = "0.25";
12753     src = fetchurl {
12754       url = "mirror://cpan/authors/id/P/PE/PEVANS/IO-Async-SSL-0.25.tar.gz";
12755       hash = "sha256-Te9IXbHv9OE5tLWRIgLA/WHDrtLOw1vVq4v3u9g/WnU=";
12756     };
12757     buildInputs = [ TestIdentity ];
12758     propagatedBuildInputs = [ Future IOAsync IOSocketSSL ];
12759     meta = {
12760       description = "Use SSL/TLS with IO::Async";
12761       license = with lib.licenses; [ artistic1 gpl1Plus ];
12762       maintainers = [ maintainers.zakame ];
12763     };
12764   };
12766   IOCapture = buildPerlPackage {
12767     pname = "IO-Capture";
12768     version = "0.05";
12769     src = fetchurl {
12770       url = "mirror://cpan/authors/id/R/RE/REYNOLDS/IO-Capture-0.05.tar.gz";
12771       hash = "sha256-wsFaJUynT7jFfSXXtsvK/3ejtPtWlUI/H4C7Qjq//qk=";
12772     };
12773     meta = {
12774       description = "Abstract Base Class to build modules to capture output";
12775       license = with lib.licenses; [ artistic1 gpl1Plus ];
12776     };
12777   };
12779   IOCaptureOutput = buildPerlPackage {
12780     pname = "IO-CaptureOutput";
12781     version = "1.1105";
12782     src = fetchurl {
12783       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/IO-CaptureOutput-1.1105.tar.gz";
12784       hash = "sha256-rpkAn8oSc4APFp7LgvTtHMbHZ5XxVr7lwAkwBdVy9Ic=";
12785     };
12786     meta = {
12787       description = "(DEPRECATED) capture STDOUT and STDERR from Perl code, subprocesses or XS";
12788       homepage = "https://github.com/dagolden/IO-CaptureOutput";
12789       license = with lib.licenses; [ artistic1 gpl1Plus ];
12790     };
12791   };
12793   IOCompress = buildPerlPackage {
12794     pname = "IO-Compress";
12795     version = "2.206";
12796     src = fetchurl {
12797       url = "mirror://cpan/authors/id/P/PM/PMQS/IO-Compress-2.206.tar.gz";
12798       hash = "sha256-fTBiuaSU91fo0GFPIg2D8icxu9oa6198/w5yqD9DPTU=";
12799     };
12800     propagatedBuildInputs = [ CompressRawBzip2 CompressRawZlib ];
12801     # Same as CompressRawZlib
12802     doCheck = false && !stdenv.hostPlatform.isDarwin;
12803     meta = {
12804       description = "IO Interface to compressed data files/buffers";
12805       homepage = "https://github.com/pmqs/IO-Compress";
12806       license = with lib.licenses; [ artistic1 gpl1Plus ];
12807       mainProgram = "streamzip";
12808     };
12809   };
12811   IODigest = buildPerlPackage {
12812     pname = "IO-Digest";
12813     version = "0.11";
12814     src = fetchurl {
12815       url = "mirror://cpan/authors/id/C/CL/CLKAO/IO-Digest-0.11.tar.gz";
12816       hash = "sha256-j/z4Wn9iE+XpQUCtzCsXntAkmOrchDCUV+kE3sk/f5I=";
12817     };
12818     propagatedBuildInputs = [ PerlIOviadynamic ];
12819     meta = {
12820       description = "Calculate digests while reading or writing";
12821       license = with lib.licenses; [ artistic1 gpl1Plus ];
12822     };
12823   };
12825   IOHTML = buildPerlPackage {
12826     pname = "IO-HTML";
12827     version = "1.004";
12828     src = fetchurl {
12829       url = "mirror://cpan/authors/id/C/CJ/CJM/IO-HTML-1.004.tar.gz";
12830       hash = "sha256-yHst9ZRju/LDlZZ3PftcA73g9+EFGvM5+WP1jBy9i/U=";
12831     };
12832     meta = {
12833       description = "Open an HTML file with automatic charset detection";
12834       license = with lib.licenses; [ artistic1 gpl1Plus ];
12835     };
12836   };
12838   IOHandleUtil = buildPerlModule {
12839     pname = "IO-Handle-Util";
12840     version = "0.02";
12841     src = fetchurl {
12842       url = "mirror://cpan/authors/id/E/ET/ETHER/IO-Handle-Util-0.02.tar.gz";
12843       hash = "sha256-jblmqRPaxORkIwcCqiIr84r+ISGT5ja8DzzGUbrezO4=";
12844     };
12845     propagatedBuildInputs = [ IOString SubExporter asa ];
12846     buildInputs = [ ModuleBuildTiny TestSimple13 ];
12847     meta = {
12848       description = "Functions for working with IO::Handle like objects";
12849       homepage = "https://github.com/karenetheridge/IO-Handle-Util";
12850       license = with lib.licenses; [ artistic1 gpl1Plus ];
12851     };
12852   };
12854   IOInterface = buildPerlModule {
12855     pname = "IO-Interface";
12856     version = "1.09";
12857     src = fetchurl {
12858       url = "mirror://cpan/authors/id/L/LD/LDS/IO-Interface-1.09.tar.gz";
12859       hash = "sha256-5j6BxS6x4OYOwtmD9VUtJJPhFxeZJclnV/I8S9n6cTo=";
12860     };
12861     nativeBuildInputs = lib.optionals stdenv.hostPlatform.isDarwin [ pkgs.ld-is-cc-hook ];
12862     meta = {
12863       description = "Access and modify network interface card configuration";
12864       license = with lib.licenses; [ artistic1 gpl1Plus ];
12865     };
12866   };
12868   IOInteractive = buildPerlPackage {
12869     pname = "IO-Interactive";
12870     version = "1.025";
12871     src = fetchurl {
12872       url = "mirror://cpan/authors/id/B/BD/BDFOY/IO-Interactive-1.025.tar.gz";
12873       hash = "sha256-yh7G+6t6AnXdLpz2e3yw4ARYY/MVMyEMfcVEYxtqqqc=";
12874     };
12875     meta = {
12876       description = "Utilities for interactive I/O";
12877       homepage = "https://github.com/briandfoy/io-interactive";
12878       license = with lib.licenses; [ artistic2 ];
12879     };
12880   };
12882   IOInteractiveTiny = buildPerlPackage {
12883     pname = "IO-Interactive-Tiny";
12884     version = "0.2";
12885     src = fetchurl {
12886       url = "mirror://cpan/authors/id/D/DM/DMUEY/IO-Interactive-Tiny-0.2.tar.gz";
12887       hash = "sha256-RcBpZQXH5DR4RfXNJRK3sbx4+85MvtK1gAgoP8lepfk=";
12888     };
12889     meta = {
12890       description = "Is_interactive() without large deps";
12891       license = with lib.licenses; [ artistic2 ];
12892     };
12893   };
12895   IOLockedFile = buildPerlPackage {
12896     pname = "IO-LockedFile";
12897     version = "0.23";
12898     src = fetchurl {
12899       url = "mirror://cpan/authors/id/R/RA/RANI/IO-LockedFile-0.23.tar.gz";
12900       hash = "sha256-sdt+amvxvh4GFabstc6+eLAOKHsSfVhW0/FrNd1H+LU=";
12901     };
12902     meta = {
12903       description = "Supply object methods for locking files";
12904       license = with lib.licenses; [ artistic1 gpl1Plus ];
12905     };
12906   };
12908   IOMultiplex = buildPerlPackage {
12909     pname = "IO-Multiplex";
12910     version = "1.16";
12911     src = fetchurl {
12912       url = "mirror://cpan/authors/id/B/BB/BBB/IO-Multiplex-1.16.tar.gz";
12913       hash = "sha256-dNIsRLWtLnGQ4nhuihfXS79M74m00RV7ozWYtaJyDa0=";
12914     };
12915     meta = {
12916       description = "Supply object methods for locking files";
12917       license = with lib.licenses; [ artistic1 gpl1Plus ];
12918     };
12919   };
12921   IOPager = buildPerlPackage {
12922     version = "2.10";
12923     pname = "IO-Pager";
12924     src = fetchurl {
12925       url = "mirror://cpan/authors/id/J/JP/JPIERCE/IO-Pager-2.10.tgz";
12926       hash = "sha256-vLTYwtKAyANLglkcwLnrZ6AE+QzpqgWXn8YHEwessZU=";
12927     };
12928     propagatedBuildInputs = [ pkgs.more FileWhich TermReadKey ]; # `more` used in tests
12929     meta = {
12930       description = "Select a pager (possibly perl-based) & pipe it text if a TTY";
12931       license = with lib.licenses; [ artistic1 gpl1Plus ];
12932       mainProgram = "tp";
12933     };
12934   };
12936   IOPty = buildPerlModule {
12937     pname = "IO-Pty";
12938     version = "1.16";
12939     src = fetchurl {
12940       url = "mirror://cpan/authors/id/T/TO/TODDR/IO-Tty-1.16.tar.gz";
12941       hash = "sha256-jxoJwHBzitxpXfkD8uf3QwjdjZkbkUwLw5Cg5gISlN0=";
12942     };
12943     buildPhase = "make";
12944     checkPhase = "make test";
12945     installPhase = "make install";
12946     meta = {
12947       homepage = "https://github.com/toddr/IO-Tty";
12948       description = "Pseudo TTY object class";
12949       license = with lib.licenses; [ artistic1 gpl1Plus ];
12950     };
12951   };
12953   IOPrompt = buildPerlModule {
12954     pname = "IO-Prompt";
12955     version = "0.997004";
12956     src = fetchurl {
12957       url = "mirror://cpan/authors/id/D/DC/DCONWAY/IO-Prompt-0.997004.tar.gz";
12958       hash = "sha256-8XuzBe5qyLWyA+bYJuuUDE8/bW9L/nGcOzoiX0b1hhU=";
12959     };
12960     propagatedBuildInputs = [ TermReadKey Want ];
12961     doCheck = false; # needs access to /dev/tty
12962     meta = {
12963       description = "Interactively prompt for user input";
12964       license = with lib.licenses; [ artistic1 gpl1Plus ];
12965     };
12966   };
12968   IOSessionData = buildPerlPackage {
12969     pname = "IO-SessionData";
12970     version = "1.03";
12971     src = fetchurl {
12972       url = "mirror://cpan/authors/id/P/PH/PHRED/IO-SessionData-1.03.tar.gz";
12973       hash = "sha256-ZKRxKj7bs/0QIw2ylsKcjGbwZq37wMPfakglj+85Ld0=";
12974     };
12975     outputs = [ "out" "dev" ]; # no "devdoc"
12976     meta = {
12977       description = "Supporting module for SOAP::Lite";
12978       license = with lib.licenses; [ artistic1 gpl1Plus ];
12979     };
12980   };
12982   IOSocketINET6 = buildPerlModule {
12983     pname = "IO-Socket-INET6";
12984     version = "2.73";
12985     src = fetchurl {
12986       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/IO-Socket-INET6-2.73.tar.gz";
12987       hash = "sha256-ttp0aFMlPVtKxDGRtPaaRxlZXuE6fKZ2qAVM825tFrs=";
12988     };
12989     propagatedBuildInputs = [ Socket6 ];
12990     doCheck = false;
12991     meta = {
12992       description = "[DEPRECATED] Object interface for AF_INET/AF_INET6 domain sockets";
12993       license = with lib.licenses; [ artistic1 gpl1Plus ];
12994     };
12995   };
12997   IOSocketSSL = buildPerlPackage {
12998     pname = "IO-Socket-SSL";
12999     version = "2.083";
13000     src = fetchurl {
13001       url = "mirror://cpan/authors/id/S/SU/SULLR/IO-Socket-SSL-2.083.tar.gz";
13002       hash = "sha256-kE7yh2VECpfYqaDfWX+MPX88sKBT0bCCwQvtA7yAIGk=";
13003     };
13004     propagatedBuildInputs = [ MozillaCA NetSSLeay ];
13005     # Fix path to default certificate store.
13006     postPatch = ''
13007       substituteInPlace lib/IO/Socket/SSL.pm \
13008         --replace "\$openssldir/cert.pem" "/etc/ssl/certs/ca-certificates.crt"
13009     '';
13010     doCheck = false; # tries to connect to facebook.com etc.
13011     meta = {
13012       description = "Nearly transparent SSL encapsulation for IO::Socket::INET";
13013       homepage = "https://github.com/noxxi/p5-io-socket-ssl";
13014       license = with lib.licenses; [ artistic1 gpl1Plus ];
13015     };
13016   };
13018   IOSocketSocks = buildPerlPackage {
13019     pname = "IO-Socket-Socks";
13020     version = "0.74";
13021     src = fetchurl {
13022       url = "mirror://cpan/authors/id/O/OL/OLEG/IO-Socket-Socks-0.74.tar.gz";
13023       hash = "sha256-N/Bxos9LqPCQoil8ZIK3osUJ61Lc1s5dgDXU7ixoJLE=";
13024     };
13025     meta = {
13026       description = "Provides a way to create socks client or server both 4 and 5 version";
13027       license = lib.licenses.free;
13028     };
13029   };
13031   IOSocketTimeout = buildPerlModule {
13032     pname = "IO-Socket-Timeout";
13033     version = "0.32";
13034     src = fetchurl {
13035       url = "mirror://cpan/authors/id/D/DA/DAMS/IO-Socket-Timeout-0.32.tar.gz";
13036       hash = "sha256-7fkV1sxmvuQ1A6ptwrNzNm846v9wFYIYPa0Qy4rfKXI=";
13037     };
13038     buildInputs = [ ModuleBuildTiny TestSharedFork TestTCP ];
13039     propagatedBuildInputs = [ PerlIOviaTimeout ];
13040     meta = {
13041       description = "IO::Socket with read/write timeout";
13042       license = with lib.licenses; [ artistic1 gpl1Plus ];
13043     };
13044   };
13046   IOString = buildPerlPackage {
13047     pname = "IO-String";
13048     version = "1.08";
13049     src = fetchurl {
13050       url = "mirror://cpan/authors/id/G/GA/GAAS/IO-String-1.08.tar.gz";
13051       hash = "sha256-Kj9K2EQtkHB4DljvQ3ItGdHuIagDv3yCBod6EEgt5aA=";
13052     };
13053     meta = {
13054       description = "Emulate file interface for in-core strings";
13055       license = with lib.licenses; [ artistic1 gpl1Plus ];
13056     };
13057   };
13059   IOStringy = buildPerlPackage {
13060     pname = "IO-Stringy";
13061     version = "2.113";
13062     src = fetchurl {
13063       url = "mirror://cpan/authors/id/C/CA/CAPOEIRAB/IO-Stringy-2.113.tar.gz";
13064       hash = "sha256-USIPyvn2amObadJR17B1e/QgL0+d69Rb3TQaaspi/k4=";
13065     };
13066     meta = {
13067       description = "I/O on in-core objects like strings and arrays";
13068       license = with lib.licenses; [ artistic1 gpl1Plus ];
13069     };
13070   };
13072   IOStty = buildPerlModule {
13073     pname = "IO-Stty";
13074     version = "0.04";
13075     src = fetchurl {
13076       url = "mirror://cpan/authors/id/T/TO/TODDR/IO-Stty-0.04.tar.gz";
13077       hash = "sha256-XJUJ8ahpPYKH+gE97wv4eqZM2ScThGHvjetVUDxmUcI=";
13078     };
13079     buildPhase = "make";
13080     checkPhase = "make test";
13081     installPhase = "make install";
13082     meta = {
13083       description = "Change and print terminal line settings";
13084       homepage = "https://wiki.github.com/toddr/IO-Stty";
13085       license = with lib.licenses; [ artistic1 gpl1Plus ];
13086     };
13087   };
13089   IOTee = buildPerlPackage {
13090     pname = "IO-Tee";
13091     version = "0.66";
13092     src = fetchurl {
13093       url = "mirror://cpan/authors/id/N/NE/NEILB/IO-Tee-0.66.tar.gz";
13094       hash = "sha256-LZznIGUW+cMIY6NnqhwrmzVwLjabCrqhX5n7LMCFUuA=";
13095     };
13096     meta = {
13097       description = "Multiplex output to multiple output handles";
13098       license = with lib.licenses; [ artistic1 gpl1Plus ];
13099     };
13100   };
13102   IOTieCombine = buildPerlPackage {
13103     pname = "IO-TieCombine";
13104     version = "1.005";
13105     src = fetchurl {
13106       url = "mirror://cpan/authors/id/R/RJ/RJBS/IO-TieCombine-1.005.tar.gz";
13107       hash = "sha256-QC1NuDALPScWMvSZXgreMp2JKAp+R/K634s4r25Vaa8=";
13108     };
13109     meta = {
13110       description = "Produce tied (and other) separate but combined variables";
13111       homepage = "https://github.com/rjbs/IO-TieCombine";
13112       license = with lib.licenses; [ artistic1 gpl1Plus ];
13113     };
13114   };
13116   IOTty = buildPerlPackage {
13117     pname = "IO-Tty";
13118     version = "1.17";
13119     src = fetchurl {
13120       url = "mirror://cpan/authors/id/T/TO/TODDR/IO-Tty-1.17.tar.gz";
13121       hash = "sha256-pfGoMCC8W13WwbVw9Ix1RuCo9/rBCgaHQLA5Ja2eFOg=";
13122     };
13123     patches = [ ../development/perl-modules/IO-Tty-fix-makefile.patch ];
13124     doCheck = !stdenv.hostPlatform.isDarwin;  # openpty fails in the sandbox
13125     meta = {
13126       description = "Low-level allocate a pseudo-Tty, import constants";
13127       license = with lib.licenses; [ artistic1 gpl1Plus ];
13128     };
13129   };
13131   IPCConcurrencyLimit = buildPerlPackage {
13132     pname = "IPC-ConcurrencyLimit";
13133     version = "0.17";
13134     src = fetchurl {
13135       url = "mirror://cpan/authors/id/M/MA/MATTK/IPC-ConcurrencyLimit-0.17.tar.gz";
13136       hash = "sha256-Lk11vlLpD8YFg31ajp+yacCofdPTYfMBLA/5Sl+9z+8=";
13137     };
13138     buildInputs = [ ExtUtilsMakeMaker ];
13139     propagatedBuildInputs = [ FilePath IO ];
13140     meta = {
13141       description = "Lock-based limits on cooperative multi-processing";
13142       license = with lib.licenses; [ artistic1 gpl1Plus ];
13143     };
13144   };
13146   IPCountry = buildPerlPackage {
13147     pname = "IP-Country";
13148     version = "2.28";
13149     src = fetchurl {
13150       url = "mirror://cpan/authors/id/N/NW/NWETTERS/IP-Country-2.28.tar.gz";
13151       hash = "sha256-iNuDOlqyLtBstT1vIFcl47U3GyVFlgU3OIhekfoQX3U=";
13152     };
13153     propagatedBuildInputs = [ GeographyCountries ];
13154     meta = {
13155       description = "Fast lookup of country codes from IP addresses";
13156       license = with lib.licenses; [ mit ];
13157       mainProgram = "ip2cc";
13158     };
13159   };
13161   GeographyCountries = buildPerlPackage {
13162     pname = "Geography-Countries";
13163     version = "2009041301";
13164     src = fetchurl {
13165       url = "mirror://cpan/authors/id/A/AB/ABIGAIL/Geography-Countries-2009041301.tar.gz";
13166       hash = "sha256-SMQuQOgoG6fJgXQ6hUxI5t7y1R6wkl6myW4lx0SX8g8=";
13167     };
13168     meta = {
13169       description = "2-letter, 3-letter, and numerical codes for countries";
13170       license = with lib.licenses; [ mit ];
13171     };
13172   };
13175   IPCRun = buildPerlPackage {
13176     pname = "IPC-Run";
13177     version = "20231003.0";
13178     src = fetchurl {
13179       url = "mirror://cpan/authors/id/T/TO/TODDR/IPC-Run-20231003.0.tar.gz";
13180       hash = "sha256-6yW731kT0pF5fvG/6ZjxUTC0VdPtAqrN5oVvCyXk/lc=";
13181     };
13182     doCheck = false; /* attempts a network connection to localhost */
13183     propagatedBuildInputs = [ IOTty ];
13184     buildInputs = [ Readonly ];
13185     meta = {
13186       description = "System() and background procs w/ piping, redirs, ptys (Unix, Win32)";
13187       license = with lib.licenses; [ artistic1 gpl1Plus ];
13188     };
13189   };
13191   IPCRun3 = buildPerlPackage {
13192     pname = "IPC-Run3";
13193     version = "0.048";
13194     src = fetchurl {
13195       url = "mirror://cpan/authors/id/R/RJ/RJBS/IPC-Run3-0.048.tar.gz";
13196       hash = "sha256-PYHDzBtc/2nMqTYeLG443wNSJRrntB4v8/68hQ5GNWU=";
13197     };
13198     meta = {
13199       description = "Run a subprocess with input/output redirection";
13200       license = with lib.licenses; [ artistic1 gpl1Plus bsd3 ];
13201     };
13202   };
13204   IPCShareLite = buildPerlPackage {
13205     pname = "IPC-ShareLite";
13206     version = "0.17";
13207     src = fetchurl {
13208       url = "mirror://cpan/authors/id/A/AN/ANDYA/IPC-ShareLite-0.17.tar.gz";
13209       hash = "sha256-FNQGuR2pbWUh0NGoLSKjBidHZSJrhrClbn/93Plq578=";
13210     };
13211     meta = {
13212       description = "Lightweight interface to shared memory";
13213       license = with lib.licenses; [ artistic1 gpl1Plus ];
13214     };
13215   };
13217   IPCSystemSimple = buildPerlPackage {
13218     pname = "IPC-System-Simple";
13219     version = "1.30";
13220     src = fetchurl {
13221       url = "mirror://cpan/authors/id/J/JK/JKEENAN/IPC-System-Simple-1.30.tar.gz";
13222       hash = "sha256-Iub1IitQXuUTBY/co1q3oeq4BTm5jlykqSOnCorpup4=";
13223     };
13224     meta = {
13225       description = "Run commands simply, with detailed diagnostics";
13226       homepage = "http://thenceforward.net/perl/modules/IPC-System-Simple";
13227       license = with lib.licenses; [ artistic1 gpl1Plus ];
13228     };
13229   };
13231   IPCSysV = buildPerlPackage {
13232     pname = "IPC-SysV";
13233     version = "2.09";
13234     src = fetchurl {
13235       url = "mirror://cpan/authors/id/M/MH/MHX/IPC-SysV-2.09.tar.gz";
13236       hash = "sha256-GJdUHHTVSP0QB+tsB/NBnTx1ddgFamK1ulJwohZtLb0=";
13237     };
13238     meta = {
13239       description = "System V IPC constants and system calls";
13240       license = with lib.licenses; [ artistic1 gpl1Plus ];
13241     };
13242   };
13244   IRCUtils = buildPerlPackage {
13245     pname = "IRC-Utils";
13246     version = "0.12";
13247     src = fetchurl {
13248       url = "mirror://cpan/authors/id/H/HI/HINRIK/IRC-Utils-0.12.tar.gz";
13249       hash = "sha256-x9YxHrbHnpg4M8nmtOjUJtB6mHTSD0vGQbMTuZybyKA=";
13250     };
13251     meta = {
13252       description = "Common utilities for IRC-related tasks";
13253       homepage = "https://metacpan.org/release/IRC-Utils";
13254       license = with lib.licenses; [ artistic1 gpl1Plus ];
13255       maintainers = with maintainers; [ sgo ];
13256     };
13257   };
13259   ImageExifTool = callPackage ../development/perl-modules/ImageExifTool { };
13261   Inline = buildPerlPackage {
13262     pname = "Inline";
13263     version = "0.86";
13264     src = fetchurl {
13265       url = "mirror://cpan/authors/id/I/IN/INGY/Inline-0.86.tar.gz";
13266       hash = "sha256-UQp94tARsNuAsIdOjA9zkAEJkQAK4TXP90dN8ebVHjo=";
13267     };
13268     buildInputs = [ TestWarn ];
13269     meta = {
13270       description = "Write Perl Subroutines in Other Programming Languages";
13271       longDescription = ''
13272         The Inline module allows you to put source code from other
13273         programming languages directly "inline" in a Perl script or
13274         module. The code is automatically compiled as needed, and then loaded
13275         for immediate access from Perl.
13276       '';
13277       homepage = "https://github.com/ingydotnet/inline-pm";
13278       license = with lib.licenses; [ artistic1 gpl1Plus ];
13279     };
13280   };
13282   InlineC = buildPerlPackage {
13283     pname = "Inline-C";
13284     version = "0.82";
13285     src = fetchurl {
13286       url = "mirror://cpan/authors/id/E/ET/ETJ/Inline-C-0.82.tar.gz";
13287       hash = "sha256-EPvPHhWNHI134d2TTjeRZbEmpFwTZFrQvp3AfRUd0Mw=";
13288     };
13289     buildInputs = [ FileCopyRecursive TestWarn YAMLLibYAML ];
13290     propagatedBuildInputs = [ Inline ParseRecDescent Pegex ];
13291     postPatch = ''
13292       # this test will fail with chroot builds
13293       rm -f t/08taint.t
13294       rm -f t/28autowrap.t
13295     '';
13296     meta = {
13297       description = "C Language Support for Inline";
13298       homepage = "https://github.com/ingydotnet/inline-c-pm";
13299       license = with lib.licenses; [ artistic1 gpl1Plus ];
13300     };
13301   };
13303   InlineJava = buildPerlPackage {
13304     pname = "Inline-Java";
13305     version = "0.67";
13307     src = fetchurl {
13308       url = "mirror://cpan/authors/id/E/ET/ETJ/Inline-Java-0.67.tar.gz";
13309       hash = "sha256-9YVLMcvOFjwz4mJN0jFODA2X4JRDcbcYjlkBuj9vpMk=";
13310     };
13312     buildInputs = [ FileWhich ];
13313     propagatedBuildInputs = [ Inline ];
13315     # TODO: upgrade https://github.com/NixOS/nixpkgs/pull/89731
13316     makeMakerFlags = [ "J2SDK=${pkgs.jdk8}" ];
13318     # FIXME: Apparently tests want to access the network.
13319     doCheck = false;
13321     meta = {
13322       description = "Write Perl classes in Java";
13323       longDescription = ''
13324         The Inline::Java module allows you to put Java source code directly
13325         "inline" in a Perl script or module.  A Java compiler is launched and
13326         the Java code is compiled.  Then Perl asks the Java classes what
13327         public methods have been defined.  These classes and methods are
13328         available to the Perl program as if they had been written in Perl.
13329       '';
13330       license = with lib.licenses; [ artistic2 ];
13331       broken = stdenv.hostPlatform.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.InlineJava.x86_64-darwin
13332     };
13333   };
13335   IteratorSimple = buildPerlPackage {
13336     pname = "Iterator-Simple";
13337     version = "0.07";
13338     src = fetchurl {
13339       url = "mirror://cpan/authors/id/M/MI/MICHAEL/Iterator-Simple-0.07.tar.gz";
13340       hash = "sha256-y1dNBju0gcj7nLV4GkZFiWqg4e5xW6lHz3ZvH/Tp60Q=";
13341     };
13342     meta = {
13343       description = "Simple iterator and utilities";
13344       license = with lib.licenses; [ artistic1 gpl2Only ];
13345     };
13346   };
13348   IPCSignal = buildPerlPackage {
13349     pname = "IPC-Signal";
13350     version = "1.00";
13351     src = fetchurl {
13352       url = "mirror://cpan/authors/id/R/RO/ROSCH/IPC-Signal-1.00.tar.gz";
13353       hash = "sha256-fCH5yMLQwPDw9G533nw9h53VYmaN3wUlh1w4zvIHb9A=";
13354     };
13355     meta = {
13356       description = "Utility functions dealing with signals";
13357       license = with lib.licenses; [ artistic1 gpl1Plus ];
13358     };
13359   };
13361   JavaScriptMinifierXS = buildPerlPackage {
13362     pname = "JavaScript-Minifier-XS";
13363     version = "0.15";
13364     src = fetchurl {
13365       url = "mirror://cpan/authors/id/G/GT/GTERMARS/JavaScript-Minifier-XS-0.15.tar.gz";
13366       hash = "sha256-XZsDT1jwtv9bZGR708WpzgWypw7e4zn7wxc67nR8wFA=";
13367     };
13368     buildInputs = [ TestDiagINC ];
13369     perlPreHook = lib.optionalString (stdenv.hostPlatform.isi686 || stdenv.hostPlatform.isDarwin) "export LD=$CC";
13370     meta = {
13371       description = "XS based JavaScript minifier";
13372       homepage = "https://metacpan.org/release/JavaScript-Minifier-XS";
13373       license = with lib.licenses; [ artistic1 gpl1Plus ];
13374     };
13375   };
13377   JavaScriptValueEscape = buildPerlModule {
13378     pname = "JavaScript-Value-Escape";
13379     version = "0.07";
13380     src = fetchurl {
13381       url = "mirror://cpan/authors/id/K/KA/KAZEBURO/JavaScript-Value-Escape-0.07.tar.gz";
13382       hash = "sha256-msvaNwjt4R9r6uXxEvGIw6kCOk0myOzYmqgru2kxo9w=";
13383     };
13384     meta = {
13385       description = "Avoid XSS with JavaScript value interpolation";
13386       homepage = "https://github.com/kazeburo/JavaScript-Value-Escape";
13387       license = with lib.licenses; [ artistic1 gpl1Plus ];
13388     };
13389   };
13391   JSON = buildPerlPackage {
13392     pname = "JSON";
13393     version = "4.10";
13394     src = fetchurl {
13395       url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/JSON-4.10.tar.gz";
13396       hash = "sha256-34tRQ9mn3pnEe1XxoXC9H2n3EZNcGGptwKtW3QV1jjU=";
13397     };
13398     # Do not abort cross-compilation on failure to load native JSON module into host perl
13399     preConfigure = lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
13400       substituteInPlace Makefile.PL --replace "exit 0;" ""
13401     '';
13402     buildInputs = [ TestPod ];
13403     meta = {
13404       description = "JSON (JavaScript Object Notation) encoder/decoder";
13405       license = with lib.licenses; [ artistic1 gpl1Plus ];
13406     };
13407   };
13409   JSONAny = buildPerlPackage {
13410     pname = "JSON-Any";
13411     version = "1.40";
13412     src = fetchurl {
13413       url = "mirror://cpan/authors/id/E/ET/ETHER/JSON-Any-1.40.tar.gz";
13414       hash = "sha256-CDJWJVpICU/ZrBI54P6ooQojg6nNHvSxxyZO3htEAKs=";
13415     };
13416     buildInputs = [ TestFatal TestNeeds TestWarnings TestWithoutModule ];
13417     meta = {
13418       description = "(DEPRECATED) Wrapper Class for the various JSON classes";
13419       homepage = "https://github.com/karenetheridge/JSON-Any";
13420       license = with lib.licenses; [ artistic1 gpl1Plus ];
13421     };
13422   };
13424   JSONCreate = buildPerlPackage {
13425     pname = "JSON-Create";
13426     version = "0.35";
13427     src = fetchurl {
13428       url = "mirror://cpan/authors/id/B/BK/BKB/JSON-Create-0.35.tar.gz";
13429       hash = "sha256-X67+DYM7gTJWiGUwjzI5082qG4oezJtWJNzx774QaD4=";
13430     };
13431     propagatedBuildInputs = [ JSONParse UnicodeUTF8 ];
13432     meta = {
13433       description = "Create JSON";
13434       license = with lib.licenses; [ artistic1 gpl1Plus ];
13435     };
13436   };
13438   JSONMaybeXS = buildPerlPackage {
13439     pname = "JSON-MaybeXS";
13440     version = "1.004005";
13441     src = fetchurl {
13442       url = "mirror://cpan/authors/id/E/ET/ETHER/JSON-MaybeXS-1.004005.tar.gz";
13443       hash = "sha256-9ba8GfV55mtymfh0i4rD4XGTbcTn/LcqiiV6m9SCozE=";
13444     };
13445     buildInputs = [ TestNeeds ];
13446     meta = {
13447       description = "Use Cpanel::JSON::XS with a fallback to JSON::XS and JSON::PP";
13448       license = with lib.licenses; [ artistic1 gpl1Plus ];
13449     };
13450   };
13452   JSONPP = buildPerlPackage {
13453     pname = "JSON-PP";
13454     version = "4.16";
13455     src = fetchurl {
13456       url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/JSON-PP-4.16.tar.gz";
13457       hash = "sha256-i8LxYrr8QmRcSJkFrXJUDw08KEs2DJYpkJUYPDDMl4k=";
13458     };
13459     meta = {
13460       description = "JSON::XS compatible pure-Perl module";
13461       license = with lib.licenses; [ artistic1 gpl1Plus ];
13462       mainProgram = "json_pp";
13463     };
13464   };
13466   JSONPPCompat5006 = buildPerlPackage {
13467     pname = "JSON-PP-Compat5006";
13468     version = "1.09";
13469     src = fetchurl {
13470       url = "mirror://cpan/authors/id/M/MA/MAKAMAKA/JSON-PP-Compat5006-1.09.tar.gz";
13471       hash = "sha256-GXAw31JjX5u+Ja8QdC7qW9dJcUcxGMETEfyry2LjcWo=";
13472     };
13473     meta = {
13474       description = "Helper module in using JSON::PP in Perl 5.6";
13475       license = with lib.licenses; [ artistic1 gpl1Plus ];
13476     };
13477   };
13479   JSONParse = buildPerlPackage {
13480     pname = "JSON-Parse";
13481     version = "0.62";
13482     src = fetchurl {
13483       url = "mirror://cpan/authors/id/B/BK/BKB/JSON-Parse-0.62.tar.gz";
13484       hash = "sha256-YnMYD5OSSXQB3dbYIHBvWqhsG+iIkd1qq02Qa1z/Ztk=";
13485     };
13486     meta = {
13487       description = "Parse JSON";
13488       license = with lib.licenses; [ artistic1 gpl1Plus ];
13489       mainProgram = "validjson";
13490     };
13491   };
13493   JSONValidator = buildPerlPackage {
13494     pname = "JSON-Validator";
13495     version = "5.14";
13496     src = fetchurl {
13497       url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/JSON-Validator-5.14.tar.gz";
13498       hash = "sha256-YISl1AdeQhqTj/su6XuFBPqjXoZtD3tbWBETr17ijhs=";
13499     };
13500     buildInputs = [ TestDeep ];
13501     propagatedBuildInputs = [ Mojolicious YAMLLibYAML ];
13502     meta = {
13503       description = "Validate data against a JSON schema";
13504       homepage = "https://github.com/mojolicious/json-validator";
13505       license = with lib.licenses; [ artistic2 ];
13506       maintainers = [ maintainers.sgo ];
13507     };
13508   };
13510   JSONWebToken = buildPerlModule {
13511     pname = "JSON-WebToken";
13512     version = "0.10";
13513     src = fetchurl {
13514       url = "mirror://cpan/authors/id/X/XA/XAICRON/JSON-WebToken-0.10.tar.gz";
13515       hash = "sha256-d8GCqYUo8XFNgq/FSNWztNyT5nBpEou5uUE/JM8HJIs=";
13516     };
13517     buildInputs = [ TestMockGuard TestRequires ];
13518     propagatedBuildInputs = [ JSON ModuleRuntime ];
13519     meta = {
13520       description = "JSON Web Token (JWT) implementation";
13521       homepage = "https://github.com/xaicron/p5-JSON-WebToken";
13522       license = with lib.licenses; [ artistic1 gpl1Plus ];
13523     };
13524   };
13526   JSONXS = buildPerlPackage {
13527     pname = "JSON-XS";
13528     version = "4.03";
13529     src = fetchurl {
13530       url = "mirror://cpan/authors/id/M/ML/MLEHMANN/JSON-XS-4.03.tar.gz";
13531       hash = "sha256-UVU29F8voafojIgkUzdY0BIdJnq5y0U6G1iHyKVrkGg=";
13532     };
13533     propagatedBuildInputs = [ TypesSerialiser ];
13534     buildInputs = [ CanaryStability ];
13535     meta = {
13536       description = "JSON serialising/deserialising, done correctly and fast";
13537       license = with lib.licenses; [ artistic1 gpl1Plus ];
13538       mainProgram = "json_xs";
13539     };
13540   };
13542   JSONXSVersionOneAndTwo = buildPerlPackage {
13543     pname = "JSON-XS-VersionOneAndTwo";
13544     version = "0.31";
13545     src = fetchurl {
13546       url = "mirror://cpan/authors/id/L/LB/LBROCARD/JSON-XS-VersionOneAndTwo-0.31.tar.gz";
13547       hash = "sha256-5gksTZYfrnd6z3/pn7PNbltxD+yFdlprkEF0gOTJSjQ=";
13548     };
13549     propagatedBuildInputs = [ JSONXS ];
13550     meta = {
13551       description = "Support versions 1 and 2 of JSON::XS";
13552       license = with lib.licenses; [ artistic1 gpl1Plus ];
13553     };
13554   };
13556   Later = buildPerlPackage {
13557     version = "0.21";
13558     pname = "Object-Realize-Later";
13559     src = fetchurl {
13560       url = "mirror://cpan/authors/id/M/MA/MARKOV/Object-Realize-Later-0.21.tar.gz";
13561       hash = "sha256-j3uWQMyONOqSvPbAEEmgPBReDrRuViJ14o3d06jW2Nk=";
13562     };
13563     meta = {
13564       description = "Delayed creation of objects";
13565       license = with lib.licenses; [ artistic1 gpl1Plus ];
13566     };
13567   };
13569   LatexIndent = buildPerlPackage rec {
13570     pname = "latexindent.pl";
13571     version = "3.21";
13573     src = fetchFromGitHub {
13574       owner = "cmhughes";
13575       repo = pname;
13576       rev = "V${version}";
13577       hash = "sha256-STXHOzsshyN7rc2VtJxxt6La4UPGpRYlMO8TX1Jd7pM=";
13578     };
13580     outputs = [ "out" ];
13582     propagatedBuildInputs = [ FileHomeDir YAMLTiny ];
13584     preBuild = ''
13585       patchShebangs ./latexindent.pl
13586     '';
13588     meta = {
13589       description = "Perl script to add indentation to LaTeX files";
13590       homepage = "https://github.com/cmhughes/latexindent.pl";
13591       license = lib.licenses.gpl3Plus;
13592     };
13593   };
13595   LaTeXML = buildPerlPackage rec {
13596     pname = "LaTeXML";
13597     version = "0.8.8";
13598     src = fetchurl {
13599       url = "mirror://cpan/authors/id/B/BR/BRMILLER/${pname}-${version}.tar.gz";
13600       hash = "sha256-fSu+LOJSuvhro/OIzQ3sOqSDj0nWErnsfMT/iBBbrcw=";
13601     };
13602     outputs = [ "out" "tex" ];
13603     propagatedBuildInputs = [ ArchiveZip DBFile FileWhich IOString ImageMagick ImageSize JSONXS LWP ParseRecDescent PodParser TextUnidecode XMLLibXSLT ];
13604     nativeBuildInputs = [ pkgs.makeWrapper ] ++ lib.optional stdenv.hostPlatform.isDarwin shortenPerlShebang;
13605     makeMakerFlags = [ "TEXMF=\${tex}" "NOMKTEXLSR" ];
13606     # shebangs need to be patched before executables are copied to $out
13607     preBuild = ''
13608       patchShebangs bin/
13609     '' + lib.optionalString stdenv.hostPlatform.isDarwin ''
13610       for file in bin/*; do
13611         shortenPerlShebang "$file"
13612       done
13613     '';
13614     postInstall = ''
13615       for file in latexmlc latexmlmath latexmlpost ; do
13616         # add runtime dependencies that cause silent failures when missing
13617         wrapProgram $out/bin/$file --prefix PATH : ${lib.makeBinPath [ pkgs.ghostscript pkgs.potrace ]}
13618       done
13619     '';
13620     passthru = {
13621       tlType = "run";
13622       pkgs = [ LaTeXML.tex ];
13623     };
13624     meta = {
13625       description = "Transforms TeX and LaTeX into XML/HTML/MathML";
13626       homepage = "https://dlmf.nist.gov/LaTeXML/";
13627       license = with lib.licenses; [ publicDomain ];
13628       maintainers = with maintainers; [ xworld21 ];
13629       mainProgram = "latexmlc";
13630     };
13631   };
13633   LEOCHARRECLI = buildPerlPackage {
13634     pname = "LEOCHARRE-CLI";
13635     version = "1.19";
13636     src = fetchurl {
13637       url = "mirror://cpan/authors/id/L/LE/LEOCHARRE/LEOCHARRE-CLI-1.19.tar.gz";
13638       hash = "sha256-N4NfEe41MmJBtNMDaK4bwZWlBBSzZi2z4TuGW9Uvzek=";
13639     };
13640     propagatedBuildInputs = [ FileWhich Filechmod LEOCHARREDebug Linuxusermod YAML ];
13641     meta = {
13642       description = "Useful subs for coding cli scripts";
13643       license = with lib.licenses; [ artistic1 gpl1Plus ];
13644     };
13645   };
13647   LEOCHARREDebug = buildPerlPackage {
13648     pname = "LEOCHARRE-Debug";
13649     version = "1.03";
13650     src = fetchurl {
13651       url = "mirror://cpan/authors/id/L/LE/LEOCHARRE/LEOCHARRE-Debug-1.03.tar.gz";
13652       hash = "sha256-wWZao6vUV8yGJLjEGMb4vfWPs6aG+O7VFc9+k1FN8ZI=";
13653     };
13654     meta = {
13655       description = "Debug sub";
13656       license = with lib.licenses; [ artistic1 gpl1Plus ];
13657     };
13658   };
13660   LexicalSealRequireHints = buildPerlModule {
13661     pname = "Lexical-SealRequireHints";
13662     version = "0.012";
13663     src = fetchurl {
13664       url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Lexical-SealRequireHints-0.012.tar.gz";
13665       hash = "sha256-wyvcOOBvjWyQdlu74xaMNYJH2n2uhbgLqEotoXY3V90=";
13666     };
13667     meta = {
13668       description = "Prevent leakage of lexical hints";
13669       license = with lib.licenses; [ artistic1 gpl1Plus ];
13670     };
13671   };
13673   libapreq2 = buildPerlPackage rec {
13674     pname = "libapreq2";
13675     version = "2.17";
13676     src = fetchurl {
13677       url = "mirror://apache/httpd/libapreq/${pname}-${version}.tar.gz";
13678       hash = "sha256-BGSH8ITBL6HIIq/8X33lbv7ZtIkFpCbmMaa5ScEU2Gw=";
13679     };
13680     outputs = [ "out" ];
13681     buildInputs = [ pkgs.apacheHttpd pkgs.apr pkgs.aprutil ApacheTest ExtUtilsXSBuilder ];
13682     propagatedBuildInputs = [ (pkgs.apacheHttpdPackages.mod_perl.override { inherit perl; }) ];
13683     makeMakerFlags = [
13684       "--with-apache2-src=${pkgs.apacheHttpd.dev}"
13685       "--with-apache2-apxs=${pkgs.apacheHttpd.dev}/bin/apxs"
13686       "--with-apache2-httpd=${pkgs.apacheHttpd.out}/bin/httpd"
13687       "--with-apr-config=${pkgs.apr.dev}/bin/apr-1-config"
13688       "--with-apu-config=${pkgs.aprutil.dev}/bin/apu-1-config"
13689     ];
13690     preConfigure = ''
13691       # override broken prereq check
13692       substituteInPlace configure --replace "prereq_check=\"\$PERL \$PERL_OPTS build/version_check.pl\"" "prereq_check=\"echo\""
13693       '';
13694     preBuild = ''
13695       substituteInPlace apreq2-config --replace "dirname" "${pkgs.coreutils}/bin/dirname"
13696       '';
13697     installPhase = ''
13698       mkdir $out
13700       # install the library
13701       make install DESTDIR=$out
13702       cp -r $out/${pkgs.apacheHttpd.dev}/. $out/.
13703       cp -r $out/$out/. $out/.
13705       # install the perl module
13706       pushd glue/perl
13707       perl Makefile.PL
13708       make install DESTDIR=$out
13709       cp -r $out/${perl}/lib/perl5 $out/lib/
13710       popd
13712       # install the apache module
13713       # https://computergod.typepad.com/home/2007/06/webgui_and_suse.html
13714       # NOTE: if using the apache module you must use "apreq" as the module name, not "apreq2"
13715       # services.httpd.extraModules = [ { name = "apreq"; path = "''${pkgs.perlPackages.libapreq2}/modules/mod_apreq2.so"; } ];
13716       pushd module
13717       make install DESTDIR=$out
13718       cp -r $out/${pkgs.apacheHttpd.out}/modules $out/
13719       popd
13721       rm -r $out/nix
13722     '';
13723     doCheck = false; # test would need to start apache httpd
13724     meta = {
13725       description = "Wrapper for libapreq2's module/handle API";
13726       license = with lib.licenses; [ asl20 ];
13727     };
13728   };
13730   libintl-perl = buildPerlPackage {
13731     pname = "libintl-perl";
13732     version = "1.33";
13733     src = fetchurl {
13734       url = "mirror://cpan/authors/id/G/GU/GUIDO/libintl-perl-1.33.tar.gz";
13735       hash = "sha256-USbtqczQ7rENuC3e9jy8r329dx54zA+xEMw7WmuGeec=";
13736     };
13737     meta = {
13738       description = "Portable l10n and i10n functions";
13739       license = with lib.licenses; [ gpl3Only ];
13740     };
13741   };
13743   libnet = buildPerlPackage {
13744     pname = "libnet";
13745     version = "3.15";
13746     src = fetchurl {
13747       url = "mirror://cpan/authors/id/S/SH/SHAY/libnet-3.15.tar.gz";
13748       hash = "sha256-px9NtYDhp2fWk2+qW6848fpheCQ0LaB4tWEoPob49KI=";
13749     };
13750     meta = {
13751       description = "Collection of network protocol modules";
13752       license = with lib.licenses; [ artistic1 gpl1Plus ];
13753     };
13754   };
13756   librelative = buildPerlPackage {
13757     pname = "lib-relative";
13758     version = "1.002";
13759     src = fetchurl {
13760       url = "mirror://cpan/authors/id/D/DB/DBOOK/lib-relative-1.002.tar.gz";
13761       hash = "sha256-5EcCFRZ8QGkXYD54vk2TESz2kTzTQq64ALQS4BHIp4s=";
13762     };
13763     meta = {
13764       description = "Add paths relative to the current file to @INC";
13765       homepage = "https://github.com/Grinnz/lib-relative";
13766       license = with lib.licenses; [ artistic2 ];
13767     };
13768   };
13770   libwwwperl = buildPerlPackage {
13771     pname = "libwww-perl";
13772     version = "6.72";
13773     src = fetchurl {
13774       url = "mirror://cpan/authors/id/O/OA/OALDERS/libwww-perl-6.72.tar.gz";
13775       hash = "sha256-6bg1T9XiC+IHr+I93VhPzVm/gpmNwHfez2hLodrloF0=";
13776     };
13777     buildInputs = [ HTTPDaemon TestFatal TestNeeds TestRequiresInternet ];
13778     propagatedBuildInputs = [ EncodeLocale FileListing HTMLParser HTTPCookieJar HTTPCookies HTTPDate HTTPMessage HTTPNegotiate LWPMediaTypes NetHTTP TryTiny URI WWWRobotRules ];
13779     meta = {
13780       homepage = "https://github.com/libwww-perl/libwww-perl";
13781       description = "World-Wide Web library for Perl";
13782       license = with lib.licenses; [ artistic1 gpl1Plus ];
13783     };
13784   };
13786   libxml_perl = buildPerlPackage {
13787     pname = "libxml-perl";
13788     version = "0.08";
13789     src = fetchurl {
13790       url = "mirror://cpan/authors/id/K/KM/KMACLEOD/libxml-perl-0.08.tar.gz";
13791       hash = "sha256-RXEFm3tdSLfOUrATieldeYv1zyAgUjwVP/J7SYFTycs=";
13792     };
13793     propagatedBuildInputs = [ XMLParser ];
13794     meta = {
13795       description = "Collection of Perl modules for working with XML";
13796       license = with lib.licenses; [ artistic1 gpl1Plus ];
13797     };
13798   };
13800   LinguaENFindNumber = buildPerlPackage {
13801     pname = "Lingua-EN-FindNumber";
13802     version = "1.32";
13803     src = fetchurl {
13804       url = "mirror://cpan/authors/id/N/NE/NEILB/Lingua-EN-FindNumber-1.32.tar.gz";
13805       hash = "sha256-HRdtHIY/uYRL0Z0sKk5ooO1z2hWPckqJQFuQ236NvQQ=";
13806     };
13807     propagatedBuildInputs = [ LinguaENWords2Nums ];
13808     meta = {
13809       description = "Locate (written) numbers in English text ";
13810       homepage = "https://github.com/neilb/Lingua-EN-FindNumber";
13811       license = with lib.licenses; [ artistic1 gpl1Plus ];
13812     };
13813   };
13815   LinguaENInflect = buildPerlPackage {
13816     pname = "Lingua-EN-Inflect";
13817     version = "1.905";
13818     src = fetchurl {
13819       url = "mirror://cpan/authors/id/D/DC/DCONWAY/Lingua-EN-Inflect-1.905.tar.gz";
13820       hash = "sha256-BcKew0guVyMTpg2iGBsLMMXbfPAfiudhatZ+G2YmMpY=";
13821     };
13822     meta = {
13823       description = "Convert singular to plural. Select 'a' or 'an'";
13824       license = with lib.licenses; [ artistic1 gpl1Plus ];
13825     };
13826   };
13828   LinguaENInflectNumber = buildPerlPackage {
13829     pname = "Lingua-EN-Inflect-Number";
13830     version = "1.12";
13831     src = fetchurl {
13832       url = "mirror://cpan/authors/id/N/NE/NEILB/Lingua-EN-Inflect-Number-1.12.tar.gz";
13833       hash = "sha256-Zvszg4USdG9cWX6AJk/qZmQ/fyZXDsL5IFthNa1nrL8=";
13834     };
13835     propagatedBuildInputs = [ LinguaENInflect ];
13836     meta = {
13837       description = "Force number of words to singular or plural";
13838       homepage = "https://github.com/neilbowers/Lingua-EN-Inflect-Number";
13839       license = with lib.licenses; [ artistic1 gpl1Plus ];
13840     };
13841   };
13843   LinguaENInflectPhrase = buildPerlPackage {
13844     pname = "Lingua-EN-Inflect-Phrase";
13845     version = "0.20";
13846     src = fetchurl {
13847       url = "mirror://cpan/authors/id/R/RK/RKITOVER/Lingua-EN-Inflect-Phrase-0.20.tar.gz";
13848       hash = "sha256-VQWJEamfF1XePrRJqZ/765LYjAH/XcYFEaJGeQUN3qg=";
13849     };
13850     buildInputs = [ TestNoWarnings ];
13851     propagatedBuildInputs = [ LinguaENInflectNumber LinguaENNumberIsOrdinal LinguaENTagger ];
13852     meta = {
13853       description = "Inflect short English Phrases";
13854       homepage = "https://metacpan.org/release/Lingua-EN-Inflect-Phrase";
13855       license = with lib.licenses; [ artistic1 gpl1Plus ];
13856     };
13857   };
13859   LinguaENNumberIsOrdinal = buildPerlPackage {
13860     pname = "Lingua-EN-Number-IsOrdinal";
13861     version = "0.05";
13862     src = fetchurl {
13863       url = "mirror://cpan/authors/id/R/RK/RKITOVER/Lingua-EN-Number-IsOrdinal-0.05.tar.gz";
13864       hash = "sha256-KNVpVADA9OK9IJeTy3T22iuSVzVqrLKUfGA0JeCWGNY=";
13865     };
13866     buildInputs = [ TestFatal TryTiny ];
13867     propagatedBuildInputs = [ LinguaENFindNumber ];
13868     meta = {
13869       description = "Detect if English number is ordinal or cardinal";
13870       homepage = "https://metacpan.org/release/Lingua-EN-Number-IsOrdinal";
13871       license = with lib.licenses; [ artistic1 gpl1Plus ];
13872     };
13873   };
13875   LinguaENTagger = buildPerlPackage {
13876     pname = "Lingua-EN-Tagger";
13877     version = "0.31";
13878     src = fetchurl {
13879       url = "mirror://cpan/authors/id/A/AC/ACOBURN/Lingua-EN-Tagger-0.31.tar.gz";
13880       hash = "sha256-lJ6Mh+SAj3uglrl5Ig/wgbvgO21XiQ0u7NS4Ouhy6ZM=";
13881     };
13882     propagatedBuildInputs = [ HTMLParser LinguaStem MemoizeExpireLRU ];
13883     meta = {
13884       description = "Part-of-speech tagger for English natural language processing";
13885       license = with lib.licenses; [ gpl3Only ];
13886     };
13887   };
13889   LinguaENWords2Nums = buildPerlPackage {
13890     pname = "Lingua-EN-Words2Nums";
13891     version = "0.18";
13892     src = fetchurl {
13893       url = "mirror://cpan/authors/id/J/JO/JOEY/Lingua-EN-Words2Nums-0.18.tar.gz";
13894       hash = "sha256-aGVWeXzSpOqgZvGbvwOrJcBieCksnq0vGH39kDHqHYU=";
13895     };
13896     meta = {
13897       description = "Convert English text to numbers";
13898       license = with lib.licenses; [ artistic1 gpl1Plus ];
13899     };
13900   };
13902   LinguaPTStemmer = buildPerlPackage {
13903     pname = "Lingua-PT-Stemmer";
13904     version = "0.02";
13905     src = fetchurl {
13906       url = "mirror://cpan/authors/id/N/NE/NEILB/Lingua-PT-Stemmer-0.02.tar.gz";
13907       hash = "sha256-WW3wH4q3n//9RQ6Ug2pUQ3HYpMk6FffojqLxt5xGhJ0=";
13908     };
13909     meta = {
13910       description = "Portuguese language stemming";
13911       homepage = "https://github.com/neilb/Lingua-PT-Stemmer";
13912       license = with lib.licenses; [ artistic1 gpl1Plus ];
13913     };
13914   };
13916   LinguaStem = buildPerlModule {
13917     pname = "Lingua-Stem";
13918     version = "2.31";
13919     src = fetchurl {
13920       url = "mirror://cpan/authors/id/S/SN/SNOWHARE/Lingua-Stem-2.31.tar.gz";
13921       hash = "sha256-qhqZMrZCflmCU+YajM0NBMxVn66dWNh3TCAncItjAmQ=";
13922     };
13923     doCheck = false;
13924     propagatedBuildInputs = [ LinguaPTStemmer LinguaStemFr LinguaStemIt LinguaStemRu LinguaStemSnowballDa SnowballNorwegian SnowballSwedish TextGerman ];
13925     meta = {
13926       description = "Stemming of words";
13927       license = with lib.licenses; [ artistic1 gpl1Plus ];
13928     };
13929   };
13931   LinguaStemFr = buildPerlPackage {
13932     pname = "Lingua-Stem-Fr";
13933     version = "0.02";
13934     src = fetchurl {
13935       url = "mirror://cpan/authors/id/S/SD/SDP/Lingua-Stem-Fr-0.02.tar.gz";
13936       hash = "sha256-nU9ks6iJihhTQyGFJtWsaKSh+ObEQY1rqV1i9fnV2W8=";
13937     };
13938     meta = {
13939       description = "Perl French Stemming";
13940       license = with lib.licenses; [ artistic1 gpl1Plus ];
13941     };
13942   };
13944   LinguaStemIt = buildPerlPackage {
13945     pname = "Lingua-Stem-It";
13946     version = "0.02";
13947     src = fetchurl {
13948       url = "mirror://cpan/authors/id/A/AC/ACALPINI/Lingua-Stem-It-0.02.tar.gz";
13949       hash = "sha256-OOZz+3T+ARWILlrbJnTesIH6tyHXKO4qgRQWPVDIB4g=";
13950     };
13951     meta = {
13952       description = "Porter's stemming algorithm for Italian";
13953       license = with lib.licenses; [ artistic1 gpl1Plus ];
13954     };
13955   };
13957   LinguaStemRu = buildPerlPackage {
13958     pname = "Lingua-Stem-Ru";
13959     version = "0.04";
13960     src = fetchurl {
13961       url = "mirror://cpan/authors/id/N/NE/NEILB/Lingua-Stem-Ru-0.04.tar.gz";
13962       hash = "sha256-EnDOt0dk/blYNwqAiDSvl26H9pqFRw+LxGJYeX6rUig=";
13963     };
13964     meta = {
13965       description = "Porter's stemming algorithm for Russian (KOI8-R only)";
13966       homepage = "https://github.com/neilb/Lingua-Stem-Ru";
13967       license = with lib.licenses; [ artistic1 gpl1Plus ];
13968     };
13969   };
13971   LinguaStemSnowballDa = buildPerlPackage {
13972     pname = "Lingua-Stem-Snowball-Da";
13973     version = "1.01";
13974     src = fetchurl {
13975       url = "mirror://cpan/authors/id/C/CI/CINE/Lingua-Stem-Snowball-Da-1.01.tar.gz";
13976       hash = "sha256-Ljm+TuAVx+xHwrBnhYAYp0BuONUSHWVcikaHSt+poFY=";
13977     };
13978     meta = {
13979       description = "Porters stemming algorithm for Denmark";
13980       license = with lib.licenses; [ gpl2Only ];
13981     };
13982   };
13984   LinguaTranslit = buildPerlPackage {
13985     pname = "Lingua-Translit";
13986     version = "0.29";
13987     src = fetchurl {
13988       url = "mirror://cpan/authors/id/A/AL/ALINKE/Lingua-Translit-0.29.tar.gz";
13989       hash = "sha256-GtL6vAB52tcIt9nVVDfJ67GS5hC/lgryWUWFi5JZd1I=";
13990     };
13991     doCheck = false;
13992     meta = {
13993       description = "Transliterates text between writing systems";
13994       license = with lib.licenses; [ artistic1 gpl1Plus ];
13995       mainProgram = "translit";
13996     };
13997   };
13999   LinkEmbedder = buildPerlPackage {
14000     pname = "LinkEmbedder";
14001     version = "1.20";
14002     src = fetchurl {
14003       url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/LinkEmbedder-1.20.tar.gz";
14004       hash = "sha256-sd6LTiXHIplEOeesA0vorjeiCUijG/SF8iu0hvzI3KU=";
14005     };
14006     buildInputs = [ TestDeep ];
14007     propagatedBuildInputs = [ Mojolicious ];
14008     meta = {
14009       description = "Embed / expand oEmbed resources and other URL / links";
14010       homepage = "https://github.com/jhthorsen/linkembedder";
14011       license = with lib.licenses; [ artistic2 ];
14012       maintainers = with maintainers; [ sgo ];
14013     };
14014   };
14016   LinuxACL = buildPerlPackage {
14017     pname = "Linux-ACL";
14018     version = "0.05";
14019     src = fetchurl {
14020       url = "mirror://cpan/authors/id/N/NA/NAZAROV/Linux-ACL-0.05.tar.gz";
14021       hash = "sha256-MSlAwfYPR8T8k/oKnSpiZCX6qDcEDIwvGtWO4J9i83E=";
14022     };
14023     buildInputs = [ pkgs.acl ];
14024     NIX_CFLAGS_LINK = "-L${pkgs.acl.out}/lib -lacl";
14025     meta = {
14026       description = "Perl extension for reading and setting Access Control Lists for files by libacl linux library";
14027       license = with lib.licenses; [ artistic1 gpl1Plus ];
14028       maintainers = teams.deshaw.members;
14029     };
14030   };
14032   LinuxDesktopFiles = buildPerlModule {
14033     pname = "Linux-DesktopFiles";
14034     version = "0.25";
14035     src = fetchurl {
14036       url = "mirror://cpan/authors/id/T/TR/TRIZEN/Linux-DesktopFiles-0.25.tar.gz";
14037       hash = "sha256-YDd6dPupD6RlIA7hx0MNvd5p1FTYX57hAcA5gDoH5fU=";
14038     };
14039     meta = {
14040       description = "Fast parsing of the Linux desktop files";
14041       homepage = "https://github.com/trizen/Linux-DesktopFiles";
14042       license = with lib.licenses; [ artistic2 ];
14043     };
14044   };
14046   LinuxDistribution = buildPerlModule {
14047     pname = "Linux-Distribution";
14048     version = "0.23";
14049     src = fetchurl {
14050       url = "mirror://cpan/authors/id/C/CH/CHORNY/Linux-Distribution-0.23.tar.gz";
14051       hash = "sha256-YD4n2mB7PocqZp16ZtdZgvCWkVPqstSyDDQTR7Tr2l8=";
14052     };
14053     # The tests fail if the distro it's built on isn't in the supported list.
14054     # This includes NixOS.
14055     doCheck = false;
14056     meta = {
14057       description = "Perl extension to detect on which Linux distribution we are running";
14058       license = with lib.licenses; [ artistic1 gpl1Plus ];
14059       platforms = lib.platforms.linux;
14060     };
14061   };
14063   LinuxFD = buildPerlModule {
14064     pname = "Linux-FD";
14065     version = "0.014";
14066     src = fetchurl {
14067       url = "mirror://cpan/authors/id/L/LE/LEONT/Linux-FD-0.014.tar.gz";
14068       hash = "sha256-eDHcJkxG2bh/dkNhdNdmFBRSQ2Mwg+CQqrTZo1LwQ60=";
14069     };
14070     buildInputs = [ TestException ];
14071     propagatedBuildInputs = [ SubExporter ];
14072     perlPreHook = lib.optionalString stdenv.hostPlatform.isi686 "export LD=$CC"; # fix undefined reference to `__stack_chk_fail_local'
14073     meta = {
14074       description = "Linux specific special filehandles";
14075       license = with lib.licenses; [ artistic1 gpl1Plus ];
14076       platforms = lib.platforms.linux;
14077     };
14078   };
14080   LinuxInotify2 = buildPerlPackage {
14081     pname = "Linux-Inotify2";
14082     version = "2.3";
14083     src = fetchurl {
14084       url = "mirror://cpan/authors/id/M/ML/MLEHMANN/Linux-Inotify2-2.3.tar.gz";
14085       hash = "sha256-y5kVD5/6UdvDvl7pjY6RyYzf6uIuuI5xjyzzZ78nDRc=";
14086     };
14087     propagatedBuildInputs = [ commonsense ];
14089     meta = {
14090       description = "Scalable directory/file change notification for Perl on Linux";
14091       license = with lib.licenses; [ artistic1 gpl1Plus ];
14092       platforms = lib.platforms.linux;
14093     };
14094   };
14096   Linuxusermod = buildPerlPackage {
14097     pname = "Linux-usermod";
14098     version = "0.69";
14099     src = fetchurl {
14100       url = "mirror://cpan/authors/id/V/VI/VIDUL/Linux-usermod-0.69.tar.gz";
14101       hash = "sha256-l8oYajxBa/ae1i2gRvGmDYjYm45u0lAIsvlueH3unWA=";
14102     };
14103     meta = {
14104       description = "This module adds, removes and modify user and group accounts according to the passwd and shadow files syntax";
14105       license = with lib.licenses; [ artistic1 gpl1Plus ];
14106       platforms = lib.platforms.linux;
14107     };
14108   };
14110   ListAllUtils = buildPerlPackage {
14111     pname = "List-AllUtils";
14112     version = "0.19";
14113     src = fetchurl {
14114       url = "mirror://cpan/authors/id/D/DR/DROLSKY/List-AllUtils-0.19.tar.gz";
14115       hash = "sha256-MKgUarIad4e4xW1YKc+afysVJ207P8oHM2rDjTAC/7w=";
14116     };
14117     propagatedBuildInputs = [ ListSomeUtils ListUtilsBy ];
14118     meta = {
14119       description = "Combines List::Util, List::SomeUtils and List::UtilsBy in one bite-sized package";
14120       homepage = "https://metacpan.org/release/List-AllUtils";
14121       license = with lib.licenses; [ artistic2 ];
14122     };
14123   };
14125   ListBinarySearch = buildPerlPackage {
14126     pname = "List-BinarySearch";
14127     version = "0.25";
14128     src = fetchurl {
14129       url = "mirror://cpan/authors/id/D/DA/DAVIDO/List-BinarySearch-0.25.tar.gz";
14130       hash = "sha256-yBEwcb1gQANe6KsBzxtyqRBXQZLx0XkQKud1qXPy6Co=";
14131     };
14132     meta = {
14133       description = "Binary Search within a sorted array";
14134       license = with lib.licenses; [ artistic1 gpl1Plus ];
14135     };
14136   };
14138   ListCompare = buildPerlPackage {
14139     pname = "List-Compare";
14140     version = "0.55";
14141     src = fetchurl {
14142       url = "mirror://cpan/authors/id/J/JK/JKEENAN/List-Compare-0.55.tar.gz";
14143       hash = "sha256-zHGUeYNledUrArwyjtgKmPZ53wQ6mbVxCrLBkWaeuDc=";
14144     };
14145     buildInputs = [ CaptureTiny ];
14146     meta = {
14147       description = "Compare elements of two or more lists";
14148       homepage = "http://thenceforward.net/perl/modules/List-Compare";
14149       license = with lib.licenses; [ artistic1 gpl1Plus ];
14150     };
14151   };
14153   ListMoreUtils = buildPerlPackage {
14154     pname = "List-MoreUtils";
14155     version = "0.430";
14156     src = fetchurl {
14157       url = "mirror://cpan/authors/id/R/RE/REHSACK/List-MoreUtils-0.430.tar.gz";
14158       hash = "sha256-Y7H3hCzULZtTjR404DMN5f8VWeTCc3NCUGQYJ29kZSc=";
14159     };
14160     propagatedBuildInputs = [ ExporterTiny ListMoreUtilsXS ];
14161     buildInputs = [ TestLeakTrace ];
14162     meta = {
14163       description = "Provide the stuff missing in List::Util";
14164       license = with lib.licenses; [ artistic1 gpl1Plus ];
14165     };
14166   };
14168   ListMoreUtilsXS = buildPerlPackage {
14169     pname = "List-MoreUtils-XS";
14170     version = "0.430";
14171     src = fetchurl {
14172       url = "mirror://cpan/authors/id/R/RE/REHSACK/List-MoreUtils-XS-0.430.tar.gz";
14173       hash = "sha256-6M5G1XwXnuzYdYKT6UAP8wCq8g/v4KnRW5/iMCucskI=";
14174     };
14175     preConfigure = ''
14176       export LD=$CC
14177     '';
14178     meta = {
14179       description = "Provide the stuff missing in List::Util in XS";
14180       homepage = "https://metacpan.org/release/List-MoreUtils-XS";
14181       license = with lib.licenses; [ asl20 ];
14182     };
14183   };
14185   ListSomeUtils = buildPerlPackage {
14186     pname = "List-SomeUtils";
14187     version = "0.59";
14188     src = fetchurl {
14189       url = "mirror://cpan/authors/id/D/DR/DROLSKY/List-SomeUtils-0.59.tar.gz";
14190       hash = "sha256-+rMDcuTGe/WkYGLaONHQyHVief6tqGbrQ5+ilXGi3Hs=";
14191     };
14192     buildInputs = [ TestLeakTrace ];
14193     propagatedBuildInputs = [ ModuleImplementation ];
14194     meta = {
14195       description = "Provide the stuff missing in List::Util";
14196       homepage = "https://metacpan.org/release/List-SomeUtils";
14197       license = with lib.licenses; [ artistic1 gpl1Plus ];
14198     };
14199   };
14201   ListUtilsBy = buildPerlModule {
14202     pname = "List-UtilsBy";
14203     version = "0.12";
14204     src = fetchurl {
14205       url = "mirror://cpan/authors/id/P/PE/PEVANS/List-UtilsBy-0.12.tar.gz";
14206       hash = "sha256-//EoH9Rp/pgrGlgES+z9lw8xO/86JuHHsrP0wKXtceA=";
14207     };
14208     meta = {
14209       description = "Higher-order list utility functions";
14210       license = with lib.licenses; [ artistic1 gpl1Plus ];
14211     };
14212   };
14214   LocaleCodes = buildPerlPackage {
14215     pname = "Locale-Codes";
14216     version = "3.76";
14217     src = fetchurl {
14218       url = "mirror://cpan/authors/id/S/SB/SBECK/Locale-Codes-3.76.tar.gz";
14219       hash = "sha256-Qo00GFUJ7fbaYoYoAJcohrsCwySTRU/L4Y+Zmk9DXzk=";
14220     };
14221     buildInputs = [ TestInter ];
14222     meta = {
14223       description = "Distribution of modules to handle locale codes";
14224       homepage = "https://github.com/SBECK-github/Locale-Codes";
14225       license = with lib.licenses; [ artistic1 gpl1Plus ];
14226     };
14227   };
14229   LocaleGettext = buildPerlPackage {
14230     pname = "gettext";
14231     version = "1.07";
14232     strictDeps = true;
14233     buildInputs = [ pkgs.gettext ];
14234     src = fetchurl {
14235       url = "mirror://cpan/authors/id/P/PV/PVANDRY/gettext-1.07.tar.gz";
14236       hash = "sha256-kJ1HlUaX58BCGPlykVt4e9EkTXXjvQFiC8Fn1bvEnBU=";
14237     };
14238     LANG="C";
14239     meta = {
14240       description = "Perl extension for emulating gettext-related API";
14241       license = with lib.licenses; [ artistic1 gpl1Plus ];
14242     };
14243   };
14245   LocaleMaketextLexiconGetcontext = buildPerlPackage {
14246     pname = "Locale-Maketext-Lexicon-Getcontext";
14247     version = "0.05";
14248     src = fetchurl {
14249       url = "mirror://cpan/authors/id/S/SA/SAPER/Locale-Maketext-Lexicon-Getcontext-0.05.tar.gz";
14250       hash = "sha256-dcsz35RypZYt5UCC9CxqdrJg/EBboQylMkb7H4LAkgg=";
14251     };
14252     propagatedBuildInputs = [ LocaleMaketextLexicon ];
14253     meta = {
14254       description = "PO file parser for Maketext";
14255       license = with lib.licenses; [ mit ];
14256     };
14257   };
14259   LocaleMOFile = buildPerlPackage {
14260     pname = "Locale-MO-File";
14261     version = "0.09";
14262     src = fetchurl {
14263       url = "mirror://cpan/authors/id/S/ST/STEFFENW/Locale-MO-File-0.09.tar.gz";
14264       hash = "sha256-lwNtw/Cds3BSrp2aUUSH6IS1bZDHbKEtbKtAXSNWSj8=";
14265     };
14266     propagatedBuildInputs = [ ConstFast MooXStrictConstructor MooXTypesMooseLike ParamsValidate namespaceautoclean ];
14267     buildInputs = [ TestDifferences TestException TestHexDifferences TestNoWarnings ];
14268     meta = {
14269       description = "Write or read gettext MO files";
14270       license = with lib.licenses; [ artistic1 gpl1Plus ];
14271     };
14272   };
14274   LocaleMaketextFuzzy = buildPerlPackage {
14275     pname = "Locale-Maketext-Fuzzy";
14276     version = "0.11";
14277     src = fetchurl {
14278       url = "mirror://cpan/authors/id/A/AU/AUDREYT/Locale-Maketext-Fuzzy-0.11.tar.gz";
14279       hash = "sha256-N4UXHOt4zHZxMZo6bYztmxkOCX382bKp68gEzRooL5Y=";
14280     };
14281     meta = {
14282       description = "Maketext from already interpolated strings";
14283       license = with lib.licenses; [ cc0 ];
14284     };
14285   };
14287   LocaleMaketextLexicon = buildPerlPackage {
14288     pname = "Locale-Maketext-Lexicon";
14289     version = "1.00";
14290     src = fetchurl {
14291       url = "mirror://cpan/authors/id/D/DR/DRTECH/Locale-Maketext-Lexicon-1.00.tar.gz";
14292       hash = "sha256-tz9rBKWNPw446/IRWkwVMvGk7vb6xcaipEnk4Uwd3Hw=";
14293     };
14294     meta = {
14295       description = "Use other catalog formats in Maketext";
14296       homepage = "https://search.cpan.org/dist/Locale-Maketext-Lexicon";
14297       license = with lib.licenses; [ mit ];
14298       mainProgram = "xgettext.pl";
14299     };
14300   };
14302   LocaleMsgfmt = buildPerlPackage {
14303     pname = "Locale-Msgfmt";
14304     version = "0.15";
14305     src = fetchurl {
14306       url = "mirror://cpan/authors/id/A/AZ/AZAWAWI/Locale-Msgfmt-0.15.tar.gz";
14307       hash = "sha256-wydoMcvuz1i+AggbzBgL00jao12iGnc3t7A4pZ9kOrQ=";
14308     };
14309     meta = {
14310       description = "Compile .po files to .mo files";
14311       license = with lib.licenses; [ artistic1 gpl1Plus ];
14312     };
14313   };
14315   LocalePO = buildPerlPackage {
14316     pname = "Locale-PO";
14317     version = "0.27";
14318     src = fetchurl {
14319       url = "mirror://cpan/authors/id/C/CO/COSIMO/Locale-PO-0.27.tar.gz";
14320       hash = "sha256-PJlKS2Pm5Og2xveak/UZIcq3fJDJdT/g+LVCkiDVFrk=";
14321     };
14322     propagatedBuildInputs = [ FileSlurp ];
14323     meta = {
14324       description = "Perl module for manipulating .po entries from GNU gettext";
14325       license = with lib.licenses; [ artistic1 gpl1Plus ];
14326     };
14327   };
14329   LocaleTextDomainOO = buildPerlPackage {
14330     pname = "Locale-TextDomain-OO";
14331     version = "1.036";
14332     src = fetchurl {
14333       url = "mirror://cpan/authors/id/S/ST/STEFFENW/Locale-TextDomain-OO-1.036.tar.gz";
14334       hash = "sha256-tReD4aiWICE+oqg+RbrsOqhunL4en6W590+HSbBUDjg=";
14335     };
14336     propagatedBuildInputs = [ ClassLoad Clone JSON LocaleMOFile LocalePO LocaleTextDomainOOUtil LocaleUtilsPlaceholderBabelFish LocaleUtilsPlaceholderMaketext LocaleUtilsPlaceholderNamed MooXSingleton PathTiny TieSub ];
14337     buildInputs = [ TestDifferences TestException TestNoWarnings ];
14338     meta = {
14339       description = "Locale::TextDomain::OO - Perl OO Interface to Uniforum Message Translation";
14340       license = with lib.licenses; [ artistic1 gpl1Plus ];
14341     };
14342   };
14344   LocaleTextDomainOOUtil = buildPerlPackage {
14345     pname = "Locale-TextDomain-OO-Util";
14346     version = "4.002";
14347     src = fetchurl {
14348       url = "mirror://cpan/authors/id/S/ST/STEFFENW/Locale-TextDomain-OO-Util-4.002.tar.gz";
14349       hash = "sha256-PF+gf2Xtd8Ap4g0kahBAQRSPGptH4332PzflHQK9RqA=";
14350     };
14351     propagatedBuildInputs = [ namespaceautoclean ];
14352     buildInputs = [ TestDifferences TestException TestNoWarnings ];
14353     meta = {
14354       description = "Locale::TextDomain::OO::Util - Lexicon utils";
14355       license = with lib.licenses; [ artistic1 gpl1Plus ];
14356     };
14357   };
14359   LocaleUtilsPlaceholderBabelFish = buildPerlPackage {
14360     pname = "Locale-Utils-PlaceholderBabelFish";
14361     version = "0.006";
14362     src = fetchurl {
14363       url = "mirror://cpan/authors/id/S/ST/STEFFENW/Locale-Utils-PlaceholderBabelFish-0.006.tar.gz";
14364       hash = "sha256-LhwAU5ljqeyr0se5te+QpWBna7A0giUXYin8jqS0pMw=";
14365     };
14366     propagatedBuildInputs = [ HTMLParser MooXStrictConstructor MooXTypesMooseLike namespaceautoclean ];
14367     buildInputs = [ TestDifferences TestException TestNoWarnings ];
14368     meta = {
14369       description = "Locale::Utils::PlaceholderBabelFish - Utils to expand BabelFish palaceholders";
14370       license = with lib.licenses; [ artistic1 gpl1Plus ];
14371     };
14372   };
14374   LocaleUtilsPlaceholderMaketext = buildPerlPackage {
14375     pname = "Locale-Utils-PlaceholderMaketext";
14376     version = "1.005";
14377     src = fetchurl {
14378       url = "mirror://cpan/authors/id/S/ST/STEFFENW/Locale-Utils-PlaceholderMaketext-1.005.tar.gz";
14379       hash = "sha256-UChgS9jzPY0yymkp+9DagP9L30KN6ARfs/Bbp9FdNOs=";
14380     };
14381     propagatedBuildInputs = [ MooXStrictConstructor MooXTypesMooseLike namespaceautoclean ];
14382     buildInputs = [ TestDifferences TestException TestNoWarnings ];
14383     meta = {
14384       description = "Locale::Utils::PlaceholderMaketext - Utils to expand maketext placeholders";
14385       license = with lib.licenses; [ artistic1 gpl1Plus ];
14386     };
14387   };
14389   LocaleUtilsPlaceholderNamed = buildPerlPackage {
14390     pname = "Locale-Utils-PlaceholderNamed";
14391     version = "1.004";
14392     src = fetchurl {
14393       url = "mirror://cpan/authors/id/S/ST/STEFFENW/Locale-Utils-PlaceholderNamed-1.004.tar.gz";
14394       hash = "sha256-b9eOojm1w1m6lCJ1N2b2OO5PkM0hdRpZs4YVXipFpr0=";
14395     };
14396     propagatedBuildInputs = [ MooXStrictConstructor MooXTypesMooseLike namespaceautoclean ];
14397     buildInputs = [ TestDifferences TestException TestNoWarnings ];
14398     meta = {
14399       description = "Locale::Utils::PlaceholderNamed - Utils to expand named placeholders";
14400       license = with lib.licenses; [ artistic1 gpl1Plus ];
14401     };
14402   };
14404   locallib = buildPerlPackage {
14405     pname = "local-lib";
14406     version = "2.000029";
14407     src = fetchurl {
14408       url = "mirror://cpan/authors/id/H/HA/HAARG/local-lib-2.000029.tar.gz";
14409       hash = "sha256-jfh6EMFMjpCcW0fFcB5LgYfVGeUlHofIBwmwK7M+/dc=";
14410     };
14411     propagatedBuildInputs = [ ModuleBuild ];
14412     meta = {
14413       description = "Create and use a local lib/ for perl modules with PERL5LIB";
14414       license = with lib.licenses; [ artistic1 gpl1Plus ];
14415     };
14416   };
14418   LockFileSimple = buildPerlPackage {
14419     pname = "LockFile-Simple";
14420     version = "0.208";
14421     src = fetchurl {
14422       url = "mirror://cpan/authors/id/S/SC/SCHWIGON/lockfile-simple/LockFile-Simple-0.208.tar.gz";
14423       hash = "sha256-Rcd4lrKloKRfYgKm+BP0N/+LKD+EocYNDE83MIAq86I=";
14424     };
14425     meta = {
14426       description = "Simple file locking scheme";
14427       license = with lib.licenses; [ artistic1 gpl2Plus ];
14428     };
14429   };
14431   LogAny = buildPerlPackage {
14432     pname = "Log-Any";
14433     version = "1.717";
14434     src = fetchurl {
14435       url = "mirror://cpan/authors/id/P/PR/PREACTION/Log-Any-1.717.tar.gz";
14436       hash = "sha256-VmSdoPOQAjDJ49KSUssKdIBvst3r0igFrNc2iVmmW8o=";
14437     };
14438     # Syslog test fails.
14439     preCheck = "rm t/syslog.t";
14440     meta = {
14441       description = "Bringing loggers and listeners together";
14442       homepage = "https://github.com/preaction/Log-Any";
14443       license = with lib.licenses; [ artistic1 gpl1Plus ];
14444     };
14445   };
14447   LogAnyAdapterLog4perl = buildPerlPackage {
14448     pname = "Log-Any-Adapter-Log4perl";
14449     version = "0.09";
14450     src = fetchurl {
14451       url = "mirror://cpan/authors/id/P/PR/PREACTION/Log-Any-Adapter-Log4perl-0.09.tar.gz";
14452       hash = "sha256-EZfT5BIhS+IIgAz3v1BXsf6hVCRTmip5J8/kb3FuwaU=";
14453     };
14454     propagatedBuildInputs = [ LogAny LogLog4perl ];
14455     meta = {
14456       description = "Log::Any adapter for Log::Log4perl";
14457       homepage = "https://github.com/preaction/Log-Any-Adapter-Log4perl";
14458       license = with lib.licenses; [ artistic1 gpl1Plus ];
14459     };
14460   };
14462   LogAnyAdapterTAP = buildPerlPackage {
14463     pname = "Log-Any-Adapter-TAP";
14464     version = "0.003003";
14465     src = fetchurl {
14466       url = "mirror://cpan/authors/id/N/NE/NERDVANA/Log-Any-Adapter-TAP-0.003003.tar.gz";
14467       hash = "sha256-Ex8GibK0KxsxRJcUxu2o+BHdlqfIZ0jx4DsjnP0BIcA=";
14468     };
14469     propagatedBuildInputs = [ LogAny TryTiny ];
14470     meta = {
14471       description = "Logger suitable for use with TAP test files";
14472       homepage = "https://github.com/silverdirk/perl-Log-Any-Adapter-TAP";
14473       license = with lib.licenses; [ artistic1 gpl1Plus ];
14474     };
14475   };
14477   LogContextual = buildPerlPackage {
14478     pname = "Log-Contextual";
14479     version = "0.008001";
14480     src = fetchurl {
14481       url = "mirror://cpan/authors/id/F/FR/FREW/Log-Contextual-0.008001.tar.gz";
14482       hash = "sha256-uTy8+7h5bVHINuOwAkPNpWMICMFSwU7uXyDKCclFGZM=";
14483     };
14484     buildInputs = [ TestFatal ];
14485     propagatedBuildInputs = [ DataDumperConcise ExporterDeclare Moo ];
14486     meta = {
14487       description = "Simple logging interface with a contextual log";
14488       homepage = "https://github.com/frioux/Log-Contextual";
14489       license = with lib.licenses; [ artistic1 gpl1Plus ];
14490     };
14491   };
14493   LogDispatch = buildPerlPackage {
14494     pname = "Log-Dispatch";
14495     version = "2.71";
14496     src = fetchurl {
14497       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Log-Dispatch-2.71.tar.gz";
14498       hash = "sha256-nWDZZIw1zidUcx603rfwWAns4b1jO3TXR5Wu2exzJXA=";
14499     };
14500     propagatedBuildInputs = [ DevelGlobalDestruction ParamsValidationCompiler Specio namespaceautoclean ];
14501     buildInputs = [ IPCRun3 TestFatal TestNeeds ];
14502     meta = {
14503       description = "Dispatches messages to one or more outputs";
14504       homepage = "https://metacpan.org/release/Log-Dispatch";
14505       license = with lib.licenses; [ artistic2 ];
14506     };
14507   };
14509   LogDispatchFileRotate = buildPerlPackage {
14510     pname = "Log-Dispatch-FileRotate";
14511     version = "1.38";
14512     src = fetchurl {
14513       url = "mirror://cpan/authors/id/M/MS/MSCHOUT/Log-Dispatch-FileRotate-1.38.tar.gz";
14514       hash = "sha256-tV1s7ePwoGQmSI+/pVT0VhMgsBTBAjiTztKVCOW85Ow=";
14515     };
14516     propagatedBuildInputs = [ DateManip LogDispatch ];
14517     buildInputs = [ PathTiny TestWarn ];
14518     meta = {
14519       description = "Log to Files that Archive/Rotate Themselves";
14520       homepage = "https://github.com/mschout/perl-log-dispatch-filerotate";
14521       license = with lib.licenses; [ artistic1 gpl1Plus ];
14522     };
14523   };
14525   LogfileRotate = buildPerlPackage {
14526     pname = "Logfile-Rotate";
14527     version = "1.04";
14528     src = fetchurl {
14529       url = "mirror://cpan/authors/id/P/PA/PAULG/Logfile-Rotate-1.04.tar.gz";
14530       hash = "sha256-gQ+LfM2GV9Ox71PNR1glR4Rc67WCArBVObNAhjjK2j4=";
14531     };
14532     meta = {
14533       description = "Perl module to rotate logfiles";
14534       homepage = "https://metacpan.org/dist/Logfile-Rotate";
14535       license = with lib.licenses; [ artistic1 gpl1Plus ];
14536       maintainers = with maintainers; [ tomasajt ];
14537     };
14538   };
14540   Logger = buildPerlPackage {
14541     pname = "Log-ger";
14542     version = "0.040";
14543     src = fetchurl {
14544       url = "mirror://cpan/authors/id/P/PE/PERLANCAR/Log-ger-0.040.tar.gz";
14545       hash = "sha256-6JEdM4ePoWmeQ+jQpU7V1WEEA4Z/9cM5+TQQPRfsZLA=";
14546     };
14547     meta = {
14548       description = "Lightweight, flexible logging framework";
14549       homepage = "https://metacpan.org/release/Log-ger";
14550       license = with lib.licenses; [ artistic1 gpl1Plus ];
14551       maintainers = [ maintainers.sgo ];
14552     };
14553   };
14555   LogHandler = buildPerlModule {
14556     pname = "Log-Handler";
14557     version = "0.90";
14558     src = fetchurl {
14559       url = "mirror://cpan/authors/id/B/BL/BLOONIX/Log-Handler-0.90.tar.gz";
14560       hash = "sha256-OlyA5xKEVHcPg6yrjL0+cOXsPVmmHcMnkqF48LMb900=";
14561     };
14562     propagatedBuildInputs = [ ParamsValidate ];
14563     meta = {
14564       description = "Log messages to several outputs";
14565       license = with lib.licenses; [ artistic1 gpl1Plus ];
14566     };
14567   };
14569   LogMessage = buildPerlPackage {
14570     pname = "Log-Message";
14571     version = "0.08";
14572     src = fetchurl {
14573       url = "mirror://cpan/authors/id/B/BI/BINGOS/Log-Message-0.08.tar.gz";
14574       hash = "sha256-vWl91iqvJtEY6fCggTQp3rHFRORQFVmHm2H8vf6Z/kY=";
14575     };
14576     meta = {
14577       description = "Powerful and flexible message logging mechanism";
14578       license = with lib.licenses; [ artistic1 gpl1Plus ];
14579     };
14580   };
14582   LogMessageSimple = buildPerlPackage {
14583     pname = "Log-Message-Simple";
14584     version = "0.10";
14585     src = fetchurl {
14586       url = "mirror://cpan/authors/id/B/BI/BINGOS/Log-Message-Simple-0.10.tar.gz";
14587       hash = "sha256-qhLRpMCsJguU1Ej6Af66JCqKhctsv9xmQy47W0aK3ZY=";
14588     };
14589     propagatedBuildInputs = [ LogMessage ];
14590     meta = {
14591       description = "Simplified interface to Log::Message";
14592       license = with lib.licenses; [ artistic1 gpl1Plus ];
14593     };
14594   };
14596   LogTrace = buildPerlPackage {
14597     pname = "Log-Trace";
14598     version = "1.070";
14599     src = fetchurl {
14600       url = "mirror://cpan/authors/id/B/BB/BBC/Log-Trace-1.070.tar.gz";
14601       hash = "sha256-nsuCWO8wwvJN7/SRckDQ/nMkLaWyGSQC95gVsJLtNuM=";
14602     };
14603     meta = {
14604       description = "Provides a unified approach to tracing";
14605       license = with lib.licenses; [ gpl1Only ];
14606     };
14607   };
14609   MCE = buildPerlPackage {
14610     pname = "MCE";
14611     version = "1.889";
14612     src = fetchurl {
14613       url = "mirror://cpan/authors/id/M/MA/MARIOROY/MCE-1.889.tar.gz";
14614       hash = "sha256-22FT5HTQRvwlMFC/U8VAAthM1Mp30hwrnfVv7rgJu+0=";
14615     };
14616     meta = {
14617       description = "Many-Core Engine for Perl providing parallel processing capabilities";
14618       homepage = "https://github.com/marioroy/mce-perl";
14619       license = with lib.licenses; [ artistic1 gpl1Plus ];
14620     };
14621   };
14623   LogLog4perl = buildPerlPackage {
14624     pname = "Log-Log4perl";
14625     version = "1.57";
14626     src = fetchurl {
14627       url = "mirror://cpan/authors/id/E/ET/ETJ/Log-Log4perl-1.57.tar.gz";
14628       hash = "sha256-D4/Ldjio89tMeX35T9vFYBN0kULy+Uy8lbQ8n8oJahM=";
14629     };
14630     meta = {
14631       description = "Log4j implementation for Perl";
14632       homepage = "https://mschilli.github.io/log4perl/";
14633       license = with lib.licenses; [ artistic1 gpl1Plus ];
14634       mainProgram = "l4p-tmpl";
14635     };
14636   };
14638   LogDispatchArray = buildPerlPackage {
14639     pname = "Log-Dispatch-Array";
14640     version = "1.005";
14641     src = fetchurl {
14642       url = "mirror://cpan/authors/id/R/RJ/RJBS/Log-Dispatch-Array-1.005.tar.gz";
14643       hash = "sha256-MRZAt6ln+N18m7QaInBzVlY21w30/MHUT+2KgiOzR8o=";
14644     };
14645     buildInputs = [ TestDeep ];
14646     propagatedBuildInputs = [ LogDispatch ];
14647     meta = {
14648       description = "Log events to an array (reference)";
14649       homepage = "https://github.com/rjbs/Log-Dispatch-Array";
14650       license = with lib.licenses; [ artistic1 gpl1Plus ];
14651     };
14652   };
14654   LogDispatchouli = buildPerlPackage {
14655     pname = "Log-Dispatchouli";
14656     version = "3.007";
14657     src = fetchurl {
14658       url = "mirror://cpan/authors/id/R/RJ/RJBS/Log-Dispatchouli-3.007.tar.gz";
14659       hash = "sha256-mIEYlllSukmo+nkaZTaIDIkBf0651ywXRe1n0VwNJyw=";
14660     };
14661     buildInputs = [ TestDeep TestFatal ];
14662     propagatedBuildInputs = [ LogDispatchArray StringFlogger SubExporterGlobExporter ];
14663     meta = {
14664       description = "Simple wrapper around Log::Dispatch";
14665       homepage = "https://github.com/rjbs/Log-Dispatchouli";
14666       license = with lib.licenses; [ artistic1 gpl1Plus ];
14667     };
14668   };
14670   LogJournald = buildPerlModule {
14671     pname = "Log-Journald";
14672     version = "0.30";
14673     src = fetchurl {
14674       url = "mirror://cpan/authors/id/L/LK/LKUNDRAK/Log-Journald-0.30.tar.gz";
14675       hash = "sha256-VZks+aHh+4M/QoMAUlv6fPftRrg+xBT4KgkXibN9CKM=";
14676     };
14677     nativeBuildInputs = [ pkgs.pkg-config ];
14678     buildInputs = [ pkgs.systemd ];
14679     postPatch = ''
14680       substituteInPlace Build.PL \
14681         --replace "libsystemd-journal" "libsystemd"
14682     '';
14683     meta = {
14684       description = "Send messages to a systemd journal";
14685       license = with lib.licenses; [ artistic1 gpl1Plus ];
14686     };
14687   };
14689   LogLogLite = buildPerlPackage {
14690     pname = "Log-LogLite";
14691     version = "0.82";
14692     src = fetchurl {
14693       url = "mirror://cpan/authors/id/R/RA/RANI/Log-LogLite-0.82.tar.gz";
14694       hash = "sha256-BQn7i8VDrJZ1pI6xplpjUoYIxsP99ioZ4XBzUA5RGms=";
14695     };
14696     propagatedBuildInputs = [ IOLockedFile ];
14697     meta = {
14698       description = "Helps us create simple logs for our application";
14699       license = with lib.licenses; [ artistic1 gpl1Plus ];
14700     };
14701   };
14703   LongJump = buildPerlPackage {
14704     pname = "Long-Jump";
14705     version = "0.000001";
14706     src = fetchurl {
14707       url = "mirror://cpan/authors/id/E/EX/EXODIST/Long-Jump-0.000001.tar.gz";
14708       hash = "sha256-1dZFbYaZK1Wdj2b8kJYPkZKSzTgDwTQD+qxXV2LHevQ=";
14709     };
14710     buildInputs = [ Test2Suite ];
14711     meta = {
14712       description = "Mechanism for returning to a specific point from a deeply nested stack";
14713       license = with lib.licenses; [ artistic1 gpl1Plus ];
14714     };
14715   };
14717   LWP = buildPerlPackage {
14718     pname = "libwww-perl";
14719     version = "6.72";
14720     src = fetchurl {
14721       url = "mirror://cpan/authors/id/O/OA/OALDERS/libwww-perl-6.72.tar.gz";
14722       hash = "sha256-6bg1T9XiC+IHr+I93VhPzVm/gpmNwHfez2hLodrloF0=";
14723     };
14724     propagatedBuildInputs = [ FileListing HTMLParser HTTPCookies HTTPCookieJar HTTPNegotiate NetHTTP TryTiny WWWRobotRules ];
14725     preCheck = ''
14726       export NO_NETWORK_TESTING=1
14727     '';
14728     # support cross-compilation by avoiding using `has_module` which does not work in miniperl (it requires B native module)
14729     postPatch = lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
14730       substituteInPlace Makefile.PL --replace 'if has_module' 'if 0; #'
14731     '';
14732     doCheck = !stdenv.hostPlatform.isDarwin;
14733     nativeCheckInputs = [ HTTPDaemon TestFatal TestNeeds TestRequiresInternet ];
14734     meta = {
14735       description = "World-Wide Web library for Perl";
14736       license = with lib.licenses; [ artistic1 gpl1Plus ];
14737     };
14738   };
14740   LWPAuthenOAuth = buildPerlPackage {
14741     pname = "LWP-Authen-OAuth";
14742     version = "1.02";
14743     src = fetchurl {
14744       url = "mirror://cpan/authors/id/T/TI/TIMBRODY/LWP-Authen-OAuth-1.02.tar.gz";
14745       hash = "sha256-544L196AAs+0dgBzJY1VXvVbLCfAepSz2KIWahf9lrw=";
14746     };
14747     propagatedBuildInputs = [ LWP ];
14748     meta = {
14749       description = "Generate signed OAuth requests";
14750       license = with lib.licenses; [ artistic1 gpl1Plus ];
14751     };
14752   };
14754   LWPMediaTypes = buildPerlPackage {
14755     pname = "LWP-MediaTypes";
14756     version = "6.04";
14757     src = fetchurl {
14758       url = "mirror://cpan/authors/id/O/OA/OALDERS/LWP-MediaTypes-6.04.tar.gz";
14759       hash = "sha256-jxvKEtqxahwqfAOknF5YzOQab+yVGfCq37qNrZl5Gdk=";
14760     };
14761     buildInputs = [ TestFatal ];
14762     meta = {
14763       description = "Guess media type for a file or a URL";
14764       homepage = "https://github.com/libwww-perl/lwp-mediatypes";
14765       license = with lib.licenses; [ artistic1 gpl1Plus ];
14766     };
14767   };
14769   LWPProtocolConnect = buildPerlPackage {
14770     pname = "LWP-Protocol-connect";
14771     version = "6.09";
14772     src = fetchurl {
14773       url = "mirror://cpan/authors/id/B/BE/BENNING/LWP-Protocol-connect-6.09.tar.gz";
14774       hash = "sha256-nyUjlHdeI6pCwxdmEeWTBjirUo1RkBELRzGqWwvzWhU=";
14775     };
14776     buildInputs = [ TestException ];
14777     propagatedBuildInputs = [ LWPProtocolHttps ];
14778     meta = {
14779       description = "Provides HTTP/CONNECT proxy support for LWP::UserAgent";
14780       license = with lib.licenses; [ artistic1 gpl1Plus ];
14781     };
14782   };
14784   LWPProtocolHttps = buildPerlPackage {
14785     pname = "LWP-Protocol-https";
14786     version = "6.11";
14787     src = fetchurl {
14788       url = "mirror://cpan/authors/id/O/OA/OALDERS/LWP-Protocol-https-6.11.tar.gz";
14789       hash = "sha256-ATLdvwNmFWXKhQUPKlCU+5Jjy7w8yxpNnEGsm7CDuRc=";
14790     };
14791     patches = [ ../development/perl-modules/lwp-protocol-https-cert-file.patch ];
14792     propagatedBuildInputs = [ IOSocketSSL LWP ];
14793     preCheck = ''
14794       export NO_NETWORK_TESTING=1
14795     '';
14796     buildInputs = [ TestRequiresInternet TestNeeds ];
14797     meta = {
14798       description = "Provide https support for LWP::UserAgent";
14799       homepage = "https://github.com/libwww-perl/LWP-Protocol-https";
14800       license = with lib.licenses; [ artistic1 gpl1Plus ];
14801     };
14802   };
14804   LWPProtocolhttp10 = buildPerlPackage {
14805     pname = "LWP-Protocol-http10";
14806     version = "6.03";
14807     src = fetchurl {
14808       url = "mirror://cpan/authors/id/G/GA/GAAS/LWP-Protocol-http10-6.03.tar.gz";
14809       hash = "sha256-8/+pEfnVkYHxcXkQ6iZiCQXCmLdNww99TlE57jAguNM=";
14810     };
14811     propagatedBuildInputs = [ LWP ];
14812     meta = {
14813       description = "Legacy HTTP/1.0 support for LWP";
14814       license = with lib.licenses; [ artistic1 gpl1Plus ];
14815     };
14816   };
14818   LWPUserAgentCached = buildPerlPackage {
14819     pname = "LWP-UserAgent-Cached";
14820     version = "0.08";
14821     src = fetchurl {
14822       url = "mirror://cpan/authors/id/O/OL/OLEG/LWP-UserAgent-Cached-0.08.tar.gz";
14823       hash = "sha256-Pc5atMeAQWVs54Vk92Az5b0ew4b1TS57MHQK5I7nh8M=";
14824     };
14825     propagatedBuildInputs = [ LWP ];
14826     meta = {
14827       description = "LWP::UserAgent with simple caching mechanism";
14828       license = with lib.licenses; [ artistic1 gpl1Plus ];
14829     };
14830   };
14832   LWPUserAgentDNSHosts = buildPerlModule {
14833     pname = "LWP-UserAgent-DNS-Hosts";
14834     version = "0.14";
14835     src = fetchurl {
14836       url = "mirror://cpan/authors/id/M/MA/MASAKI/LWP-UserAgent-DNS-Hosts-0.14.tar.gz";
14837       hash = "sha256-mWl5RD8Ib/yLNmvbukSGWR2T+SF7wgSz5dZrlHIghx8=";
14838     };
14839     propagatedBuildInputs = [ LWP ScopeGuard ];
14840     buildInputs = [ ModuleBuildTiny TestFakeHTTPD TestSharedFork TestTCP TestUseAllModules ];
14841     meta = {
14842       description = "Override LWP HTTP/HTTPS request's host like /etc/hosts";
14843       homepage = "https://github.com/masaki/p5-LWP-UserAgent-DNS-Hosts";
14844       license = with lib.licenses; [ artistic1 gpl1Plus ];
14845     };
14846   };
14848   LWPUserAgentDetermined = buildPerlPackage {
14849     pname = "LWP-UserAgent-Determined";
14850     version = "1.07";
14851     src = fetchurl {
14852       url = "mirror://cpan/authors/id/A/AL/ALEXMV/LWP-UserAgent-Determined-1.07.tar.gz";
14853       hash = "sha256-BtjVDozTaSoRy0+0Si+E5UdqmPDi5qSg386fZ+Vd21M=";
14854     };
14855     propagatedBuildInputs = [ LWP ];
14856     meta = {
14857       description = "Virtual browser that retries errors";
14858       license = with lib.licenses; [ artistic1 gpl1Plus ];
14859     };
14860   };
14862   LWPUserAgentMockable = buildPerlModule {
14863     pname = "LWP-UserAgent-Mockable";
14864     version = "1.18";
14865     src = fetchurl {
14866       url = "mirror://cpan/authors/id/M/MJ/MJEMMESON/LWP-UserAgent-Mockable-1.18.tar.gz";
14867       hash = "sha256-JYZPUOOlIZ+J00oYQlmFSUWussXtSBjzbw8wIShUQyQ=";
14868     };
14869     propagatedBuildInputs = [ HookLexWrap LWP SafeIsa ];
14870     # Tests require network connectivity
14871     # https://rt.cpan.org/Public/Bug/Display.html?id=63966 is the bug upstream,
14872     # which doesn't look like it will get fixed anytime soon.
14873     doCheck = false;
14874     buildInputs = [ ModuleBuildTiny TestRequiresInternet ];
14875     meta = {
14876       description = "Permits recording, and later playing back of LWP requests";
14877       license = with lib.licenses; [ artistic1 gpl1Plus ];
14878     };
14879   };
14881   LWPxParanoidAgent = buildPerlPackage {
14882     pname = "LWPx-ParanoidAgent";
14883     version = "1.12";
14884     src = fetchurl {
14885       url = "mirror://cpan/authors/id/S/SA/SAXJAZMAN/lwp/LWPx-ParanoidAgent-1.12.tar.gz";
14886       hash = "sha256-zAQa7bdOGDzfkcvryhx71tdk/e5o+9yE8r4IveTg0D0=";
14887     };
14888     doCheck = false; # 3 tests fail, probably because they try to connect to the network
14889     propagatedBuildInputs = [ LWP NetDNS ];
14890     meta = {
14891       description = "Subclass of LWP::UserAgent that protects you from harm";
14892       license = with lib.licenses; [ artistic1 gpl1Plus ];
14893     };
14894   };
14896   maatkit = callPackage ../development/perl-modules/maatkit { };
14898   MacPasteboard = buildPerlPackage {
14899     pname = "Mac-Pasteboard";
14900     version = "0.103";
14901     src = fetchurl {
14902       url = "mirror://cpan/authors/id/W/WY/WYANT/Mac-Pasteboard-0.103.tar.gz";
14903       hash = "sha256-L16N0tsNZEVVhITKbULYOcWpfuiqGyUOaU1n1bf2Y0w=";
14904     };
14905     buildInputs = [ pkgs.darwin.apple_sdk.frameworks.ApplicationServices ];
14906     meta = {
14907       description = "Manipulate Mac OS X pasteboards";
14908       license = with lib.licenses; [ artistic1 gpl1Plus ];
14909       platforms = lib.platforms.darwin;
14910       mainProgram = "pbtool";
14911     };
14912   };
14914   MacPropertyList = buildPerlPackage {
14915     pname = "Mac-PropertyList";
14916     version = "1.504";
14917     src = fetchurl {
14918       url = "mirror://cpan/authors/id/B/BD/BDFOY/Mac-PropertyList-1.504.tar.gz";
14919       hash = "sha256-aIl96Yw2j76c22iF1H3qADxG7Ho3MmNSPvZkVwc7eq4=";
14920     };
14921     propagatedBuildInputs = [ XMLEntities ];
14922     meta = {
14923       description = "Work with Mac plists at a low level";
14924       homepage = "https://github.com/briandfoy/mac-propertylist";
14925       license = lib.licenses.artistic2;
14926     };
14927   };
14929   MacSysProfile = buildPerlPackage {
14930     pname = "Mac-SysProfile";
14931     version = "0.05";
14932     src = fetchurl {
14933       url = "mirror://cpan/authors/id/D/DM/DMUEY/Mac-SysProfile-0.05.tar.gz";
14934       hash = "sha256-QDOXa3dbOcwqaTtyoC1l71p7oDveTU2w3/RuEmx9n2w=";
14935     };
14936     propagatedBuildInputs = [ MacPropertyList ];
14937     meta = {
14938       description = "Perl extension for OS X system_profiler";
14939       license = with lib.licenses; [ artistic1 gpl1Plus ];
14940       platforms = lib.platforms.darwin;
14941     };
14942   };
14944   MailAuthenticationResults = buildPerlPackage {
14945     pname = "Mail-AuthenticationResults";
14946     version = "2.20230112";
14947     src = fetchurl {
14948       url = "mirror://cpan/authors/id/M/MB/MBRADSHAW/Mail-AuthenticationResults-2.20230112.tar.gz";
14949       hash = "sha256-wtFEyuAiX4vJ0PX60cPxOdJ89TT85+rHB2T79m/SI0E=";
14950     };
14951     buildInputs = [ TestException ];
14952     propagatedBuildInputs = [ Clone JSON ];
14953     meta = {
14954       description = "Object Oriented Authentication-Results Headers";
14955       license = with lib.licenses; [ artistic1 gpl1Plus ];
14956     };
14957   };
14959   MailDMARC = buildPerlPackage {
14960     pname = "Mail-DMARC";
14961     version = "1.20230215";
14962     src = fetchurl {
14963       url = "mirror://cpan/authors/id/M/MB/MBRADSHAW/Mail-DMARC-1.20230215.tar.gz";
14964       hash = "sha256-V9z1R1nLkkSOVukUE0D2E0QnTFjZ3WWqkKqczw5+uQM=";
14965     };
14966     buildInputs = [ ExtUtilsMakeMaker FileShareDirInstall ];
14967     doCheck = false;  # uses actual DNS at runtime
14968     checkInputs = [ XMLSAX XMLValidatorSchema TestException TestFileShareDir TestMore TestOutput ];
14969     propagatedBuildInputs = [
14970       ConfigTiny DBDSQLite DBIxSimple EmailMIME EmailSender Encode FileShareDir GetoptLong
14971       IOCompress IO IOSocketSSL NetDNS NetIDNEncode NetIP NetSSLeay RegexpCommon Socket6
14972       SysSyslog URI XMLLibXML
14973     ];
14974     meta = {
14975       description = "Perl implementation of DMARC";
14976       homepage = "https://github.com/msimerson/mail-dmarc";
14977       license = with lib.licenses; [ artistic1 gpl1Plus ];
14978     };
14979   };
14981   MailMaildir = buildPerlPackage {
14982     version = "1.0.0";
14983     pname = "Mail-Maildir";
14984     src = fetchurl {
14985       url = "mirror://cpan/authors/id/Z/ZE/ZEROALTI/Mail-Maildir-100/Mail-Maildir-1.0.0.tar.bz2";
14986       hash = "sha256-RF6s2ixmN5ApbXGbypzHKYVUX6GgkBRhdnFgo6/DM88=";
14987     };
14988     meta = {
14989       description = "Handle Maildir folders";
14990       license = with lib.licenses; [ artistic1 gpl1Plus ];
14991     };
14992   };
14994   MailBox = buildPerlPackage {
14995     version = "3.010";
14996     pname = "Mail-Box";
14997     src = fetchurl {
14998       url = "mirror://cpan/authors/id/M/MA/MARKOV/Mail-Box-3.010.tar.gz";
14999       hash = "sha256-rhlPolDFRcm5FT4/tRA8qyn3nPKs1On9dc7FMiAalWQ=";
15000     };
15002     doCheck = false;
15004     propagatedBuildInputs = [ DevelGlobalDestruction FileRemove Later MailTransport ];
15005     meta = {
15006       description = "Manage a mailbox, a folder with messages";
15007       license = with lib.licenses; [ artistic1 gpl1Plus ];
15008     };
15009   };
15011   MailMboxMessageParser = buildPerlPackage {
15012     pname = "Mail-Mbox-MessageParser";
15013     version = "1.5111";
15014     src = fetchurl {
15015       url = "mirror://cpan/authors/id/D/DC/DCOPPIT/Mail-Mbox-MessageParser-1.5111.tar.gz";
15016       hash = "sha256-VyPAqpzBC6ue0eO/2dXJX3FZ5xwaR1QU6xrx3uOkYjc=";
15017     };
15018     buildInputs = [ FileSlurper TestCompile TestPod TestPodCoverage TextDiff UNIVERSALrequire URI ];
15019     propagatedBuildInputs = [ FileHandleUnget ];
15020     meta = {
15021       description = "Fast and simple mbox folder reader";
15022       homepage = "https://github.com/coppit/mail-mbox-messageparser";
15023       license = with lib.licenses; [ gpl2Only ];
15024       maintainers = with maintainers; [ romildo ];
15025     };
15026   };
15028   MailMessage = buildPerlPackage {
15029     pname = "Mail-Message";
15030     version = "3.013";
15031     src = fetchurl {
15032       url = "mirror://cpan/authors/id/M/MA/MARKOV/Mail-Message-3.013.tar.gz";
15033       hash = "sha256-yK1YiNsBWkUOti7Cqj6mbcLdwRtwpdtsjKGn+fgg6B8=";
15034     };
15035     propagatedBuildInputs = [ IOStringy MIMETypes MailTools URI UserIdentity ];
15036     meta = {
15037       description = "Processing MIME messages";
15038       homepage = "http://perl.overmeer.net/CPAN";
15039       license = with lib.licenses; [ artistic1 gpl1Plus ];
15040     };
15041   };
15043   MailDKIM = buildPerlPackage {
15044     pname = "Mail-DKIM";
15045     version = "1.20230911";
15046     src = fetchurl {
15047       url = "mirror://cpan/authors/id/M/MB/MBRADSHAW/Mail-DKIM-1.20230911.tar.gz";
15048       hash = "sha256-kecxcoK3JM+9LJtuZjDvFDKISLb8UgPv1w3sL7hyaMo=";
15049     };
15050     propagatedBuildInputs = [ CryptOpenSSLRSA MailAuthenticationResults MailTools NetDNS ];
15051     doCheck = false; # tries to access the domain name system
15052     buildInputs = [ NetDNSResolverMock TestRequiresInternet YAMLLibYAML ];
15053     meta = {
15054       description = "Signs/verifies Internet mail with DKIM/DomainKey signatures";
15055       license = with lib.licenses; [ artistic1 gpl1Plus ];
15056     };
15057   };
15059   MailIMAPClient = buildPerlPackage {
15060     pname = "Mail-IMAPClient";
15061     version = "3.43";
15062     src = fetchurl {
15063       url = "mirror://cpan/authors/id/P/PL/PLOBBES/Mail-IMAPClient-3.43.tar.gz";
15064       hash = "sha256-CTyX+sFbR6j+TSk27y3zd6v3fMirdAktISi7lF0ftG8=";
15065     };
15066     propagatedBuildInputs = [ ParseRecDescent ];
15067     meta = {
15068       description = "IMAP Client API";
15069       license = with lib.licenses; [ artistic1 gpl1Plus ];
15070     };
15071   };
15073   MailPOP3Client = buildPerlPackage {
15074     pname = "Mail-POP3Client";
15075     version = "2.21";
15076     src = fetchurl {
15077       url = "mirror://cpan/authors/id/S/SD/SDOWD/Mail-POP3Client-2.21.tar.gz";
15078       hash = "sha256-sW7yFJtuNXOHPx5ZDk1RNmxZlLi1MV3xaSXRe4niSQE=";
15079     };
15080     meta = {
15081       description = "Perl 5 module to talk to a POP3 (RFC1939) server";
15082       license = with lib.licenses; [ artistic1 gpl1Plus ];
15083     };
15084   };
15086   MailRFC822Address = buildPerlPackage {
15087     pname = "Mail-RFC822-Address";
15088     version = "0.3";
15089     src = fetchurl {
15090       url = "mirror://cpan/authors/id/P/PD/PDWARREN/Mail-RFC822-Address-0.3.tar.gz";
15091       hash = "sha256-NR70EE7LZ17K5pAIJD+ugkPRp+U8aB7rdZ57eBaEyKc=";
15092     };
15093     meta = {
15094       description = "Perl extension for validating email addresses according to RFC822";
15095       license = with lib.licenses; [ mit ];
15096     };
15097   };
15099   MailSender = buildPerlPackage {
15100     pname = "Mail-Sender";
15101     version = "0.903";
15102     src = fetchurl {
15103       url = "mirror://cpan/authors/id/C/CA/CAPOEIRAB/Mail-Sender-0.903.tar.gz";
15104       hash = "sha256-RBPrSfUgqDGBUYEcywWo1UKXOq2iCqUDrTL5/8mKOb8=";
15105     };
15106     meta = {
15107       description = "(DEPRECATED) module for sending mails with attachments through an SMTP server";
15108       homepage = "https://github.com/Perl-Email-Project/Mail-Sender";
15109       license = with lib.licenses; [ artistic1 gpl1Plus ];
15110     };
15111   };
15113   MailSendmail = buildPerlPackage {
15114     pname = "Mail-Sendmail";
15115     version = "0.80";
15116     src = fetchurl {
15117       url = "mirror://cpan/authors/id/N/NE/NEILB/Mail-Sendmail-0.80.tar.gz";
15118       hash = "sha256-W4qYy1zDnYBEGjiqsBCIXd+A5vzY5uAxQ5LLI+fCaOQ=";
15119     };
15120     # The test suite simply loads the module and attempts to send an email to
15121     # the module's author, the latter of which is a) more of an integration
15122     # test, b) impossible to verify, and c) won't work from a sandbox. Replace
15123     # it in its entirety with the following simple smoke test.
15124     checkPhase = ''
15125       perl -I blib/lib -MMail::Sendmail -e 'print "1..1\nok 1\n"'
15126     '';
15127     meta = {
15128       description = "Simple platform independent mailer";
15129       homepage = "https://github.com/neilb/Mail-Sendmail";
15130       license = with lib.licenses; [ artistic1 gpl1Plus ];
15131       maintainers = teams.deshaw.members;
15132     };
15133   };
15135   MailSPF = buildPerlPackage {
15136     pname = "Mail-SPF";
15137     version = "2.9.0";
15138     src = fetchurl {
15139       url = "mirror://cpan/authors/id/J/JM/JMEHNLE/mail-spf/Mail-SPF-v2.9.0.tar.gz";
15140       hash = "sha256-YctZFfHHrMepMf/Bv8EpG9+sVV4qRusjkbmV6p7LYWI=";
15141     };
15142     # remove this patch patches = [ ../development/perl-modules/Mail-SPF.patch ];
15144     buildInputs = [ ModuleBuild NetDNSResolverProgrammable ];
15145     propagatedBuildInputs = [ Error NetAddrIP NetDNS URI ];
15147     buildPhase = "perl Build.PL --install_base=$out --install_path=\"sbin=$out/bin\" --install_path=\"lib=$out/${perl.libPrefix}\"; ./Build build ";
15149     doCheck = false; # The main test performs network access
15150     meta = {
15151       description = "Object-oriented implementation of Sender Policy Framework";
15152       license = with lib.licenses; [ bsd3 ];
15153       mainProgram = "spfquery";
15154     };
15155   };
15158   MailTools = buildPerlPackage {
15159     pname = "MailTools";
15160     version = "2.21";
15161     src = fetchurl {
15162       url = "mirror://cpan/authors/id/M/MA/MARKOV/MailTools-2.21.tar.gz";
15163       hash = "sha256-Stm9aCa28DonJzMkZrG30piQyNmaMrSzsKjZJu4aRMs=";
15164     };
15165     propagatedBuildInputs = [ TimeDate ];
15166     meta = {
15167       description = "Various ancient e-mail related modules";
15168       homepage = "http://perl.overmeer.net/CPAN";
15169       license = with lib.licenses; [ artistic1 gpl1Plus ];
15170     };
15171   };
15173   MailTransport = buildPerlPackage {
15174     pname = "Mail-Transport";
15175     version = "3.005";
15176     src = fetchurl {
15177       url = "mirror://cpan/authors/id/M/MA/MARKOV/Mail-Transport-3.005.tar.gz";
15178       hash = "sha256-0Ny5P3BcEoXYCONN59htvijR7WaqKn3oMPZlH8NRlqM=";
15179     };
15180     propagatedBuildInputs = [ MailMessage ];
15181     meta = {
15182       description = "Email message exchange";
15183       homepage = "http://perl.overmeer.net/CPAN";
15184       license = with lib.licenses; [ artistic1 gpl1Plus ];
15185     };
15186   };
15188   MathBase85 = buildPerlPackage {
15189     pname = "Math-Base85";
15190     version = "0.5";
15191     src = fetchurl {
15192       url = "mirror://cpan/authors/id/P/PT/PTC/Math-Base85-0.5.tar.gz";
15193       hash = "sha256-CwX3+2UKh5ezktjqkPLnK/uNCFBcmi4LlV39RacqNOU=";
15194     };
15195     meta = {
15196       description = "Perl extension for base 85 numbers, as referenced by RFC 1924";
15197       license = with lib.licenses; [ artistic1 gpl1Plus ];
15198     };
15199   };
15201   MathBaseConvert = buildPerlPackage {
15202     pname = "Math-Base-Convert";
15203     version = "0.11";
15204     src = fetchurl {
15205       url = "mirror://cpan/authors/id/M/MI/MIKER/Math-Base-Convert-0.11.tar.gz";
15206       hash = "sha256-jAlxNV8kyTt553rVSkVwCQoaWY/Lm4b1wX66QvOLQOA=";
15207     };
15208     meta = {
15209       description = "Very fast base to base conversion";
15210       license = with lib.licenses; [ artistic1 gpl1Plus ];
15211     };
15212   };
15214   MathLibm = buildPerlPackage {
15215     pname = "Math-Libm";
15216     version = "1.00";
15217     src = fetchurl {
15218       url = "mirror://cpan/authors/id/D/DS/DSLEWART/Math-Libm-1.00.tar.gz";
15219       hash = "sha256-v9MJ8oOsjLm/AK+MfDoQvyWr/WQoYcICLvr/CkpSwnY=";
15220     };
15221     meta = {
15222       description = "Perl extension for the C math library, libm";
15223       license = with lib.licenses; [ artistic1 gpl1Plus ];
15224     };
15225   };
15227   MathCalcParser = buildPerlPackage {
15228     pname = "Math-Calc-Parser";
15229     version = "1.005";
15230     src = fetchurl {
15231       url = "mirror://cpan/authors/id/D/DB/DBOOK/Math-Calc-Parser-1.005.tar.gz";
15232       hash = "sha256-r8PrSWqzo6MBs0N68H4ZfrdDwGCQ8BAdrPggMC8rf3U=";
15233     };
15234     buildInputs = [ TestNeeds ];
15235     meta = {
15236       description = "Parse and evaluate mathematical expressions";
15237       homepage = "https://github.com/Grinnz/Math-Calc-Parser";
15238       broken = true;
15239       license = with lib.licenses; [ artistic2 ];
15240       maintainers = with maintainers; [ sgo ];
15241     };
15242   };
15244   MathCalcUnits = buildPerlPackage {
15245     pname = "Math-Calc-Units";
15246     version = "1.07";
15247     src = fetchurl {
15248       url = "mirror://cpan/authors/id/S/SF/SFINK/Math-Calc-Units-1.07.tar.gz";
15249       hash = "sha256-YePP2ye7O+4nvrlxJN2TB2DhA57cHreBbC9WJ3Zfj48=";
15250     };
15251     meta = {
15252       description = "Human-readable unit-aware calculator";
15253       license = with lib.licenses; [ artistic1 gpl2Only ];
15254       mainProgram = "ucalc";
15255     };
15256   };
15258   MathBigInt = buildPerlPackage {
15259     pname = "Math-BigInt";
15260     version = "1.999842";
15261     src = fetchurl {
15262       url = "mirror://cpan/authors/id/P/PJ/PJACKLAM/Math-BigInt-1.999842.tar.gz";
15263       hash = "sha256-VGAcUMaZPn7hPYw6wzRs8VpNgGMUnNu+husB5WEORnU=";
15264     };
15265     meta = {
15266       description = "Arbitrary size integer/float math package";
15267       license = with lib.licenses; [ artistic1 gpl1Plus ];
15268     };
15269   };
15271   MathBigIntGMP = buildPerlPackage {
15272     pname = "Math-BigInt-GMP";
15273     version = "1.6013";
15274     src = fetchurl {
15275       url = "mirror://cpan/authors/id/P/PJ/PJACKLAM/Math-BigInt-GMP-1.6013.tar.gz";
15276       hash = "sha256-yxqS4CJn1AUV+OA6TiEvZv0wfJdMu9MT4j3jL98Q9rU=";
15277     };
15278     buildInputs = [ pkgs.gmp ];
15279     doCheck = false;
15280     env.NIX_CFLAGS_COMPILE = "-I${pkgs.gmp.dev}/include";
15281     NIX_CFLAGS_LINK = "-L${pkgs.gmp.out}/lib -lgmp";
15282     propagatedBuildInputs = [ MathBigInt ];
15283     meta = {
15284       description = "Backend library for Math::BigInt etc. based on GMP";
15285       license = with lib.licenses; [ artistic1 gpl1Plus ];
15286     };
15287   };
15289   MathBigIntLite = buildPerlPackage {
15290     pname = "Math-BigInt-Lite";
15291     version = "0.29";
15292     src = fetchurl {
15293       url = "mirror://cpan/authors/id/P/PJ/PJACKLAM/Math-BigInt-Lite-0.29.tar.gz";
15294       hash = "sha256-R4YN/KYxl4txxKqZkaGynk7LrzYbW7nrOVl1t//Nd/U=";
15295     };
15296     propagatedBuildInputs = [ MathBigInt ];
15297     meta = {
15298       description = "What Math::BigInts are before they become big";
15299       license = with lib.licenses; [ artistic1 gpl1Plus ];
15300     };
15301   };
15303   MathClipper = buildPerlModule {
15304     pname = "Math-Clipper";
15305     version = "1.29";
15306     src = fetchurl {
15307       url = "mirror://cpan/authors/id/S/SH/SHELDRAKE/Math-Clipper-1.29.tar.gz";
15308       hash = "sha256-UyfE8TOGbenXmzGGV/Zp7LSZhgVQs5aGmNRyiHr4dZM=";
15309     };
15310     nativeBuildInputs = [ pkgs.ld-is-cc-hook ];
15311     buildInputs = [ ExtUtilsCppGuess ExtUtilsTypemapsDefault ExtUtilsXSpp ModuleBuildWithXSpp TestDeep ];
15312     meta = {
15313       description = "Polygon clipping in 2D";
15314       license = with lib.licenses; [ artistic1 gpl1Plus ];
15315     };
15316   };
15318   MathConvexHullMonotoneChain = buildPerlPackage {
15319     pname = "Math-ConvexHull-MonotoneChain";
15320     version = "0.01";
15321     src = fetchurl {
15322       url = "mirror://cpan/authors/id/S/SM/SMUELLER/Math-ConvexHull-MonotoneChain-0.01.tar.gz";
15323       hash = "sha256-KIvEWQgmMkVUj5FIKrEkiGjdne5Ef5yibK15YT47lPU=";
15324     };
15325     meta = {
15326       description = "Andrew's monotone chain algorithm for finding a convex hull in 2D";
15327       license = with lib.licenses; [ artistic1 gpl1Plus ];
15328     };
15329   };
15331   MathFibonacci = buildPerlPackage {
15332     pname = "Math-Fibonacci";
15333     version = "1.5";
15334     src = fetchurl {
15335       url = "mirror://cpan/authors/id/V/VI/VIPUL/Math-Fibonacci-1.5.tar.gz";
15336       hash = "sha256-cKgobpRVjfmdyS9S2D4eIKe494UrzDod59njOCYLmbo=";
15337     };
15338     meta = {
15339       description = "This module provides a few functions related to Fibonacci numbers";
15340       license = with lib.licenses; [ artistic2 ];
15341     };
15342   };
15344   MathGMP = buildPerlPackage {
15345     pname = "Math-GMP";
15346     version = "2.25";
15347     src = fetchurl {
15348       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Math-GMP-2.25.tar.gz";
15349       hash = "sha256-OCtx5Udi9jnppCqbBpNBUZh7pX0Ru3DTXjvsiNUEUM4=";
15350     };
15351     buildInputs = [ pkgs.gmp AlienGMP ];
15352     env.NIX_CFLAGS_COMPILE = "-I${pkgs.gmp.dev}/include";
15353     NIX_CFLAGS_LINK = "-L${pkgs.gmp.out}/lib -lgmp";
15354     meta = {
15355       description = "High speed arbitrary size integer math";
15356       license = with lib.licenses; [ lgpl21Plus ];
15357     };
15358   };
15360   MathGMPz = buildPerlPackage {
15361     pname = "Math-GMPz";
15362     version = "0.59";
15363     src = fetchurl {
15364       url = "mirror://cpan/authors/id/S/SI/SISYPHUS/Math-GMPz-0.59.tar.gz";
15365       hash = "sha256-mmrN45G0Ff5f7HwUyCTVUf/j+W81rycYRWuJ3jpkEaQ=";
15366     };
15367     buildInputs = [ TestWarn pkgs.gmp ];
15368     NIX_CFLAGS_LINK = "-L${pkgs.gmp.out}/lib -lgmp";
15369     meta = {
15370       description = "Perl interface to the GMP integer functions";
15371       homepage = "https://github.com/sisyphus/math-gmpz";
15372       license = with lib.licenses; [ artistic1 gpl1Plus ];
15373       maintainers = with maintainers; [ sgo ];
15374     };
15375   };
15377   MathGeometryVoronoi = buildPerlPackage {
15378     pname = "Math-Geometry-Voronoi";
15379     version = "1.3";
15380     src = fetchurl {
15381       url = "mirror://cpan/authors/id/S/SA/SAMTREGAR/Math-Geometry-Voronoi-1.3.tar.gz";
15382       hash = "sha256-cgdeTpiDzuUURrqVESZMjDKgFagPSlZIo/azgsU0QCw=";
15383     };
15384     propagatedBuildInputs = [ ClassAccessor ParamsValidate ];
15385     meta = {
15386       description = "Compute Voronoi diagrams from sets of points";
15387       license = with lib.licenses; [ artistic1 gpl1Plus ];
15388     };
15389   };
15391   MathInt128 = buildPerlPackage {
15392     pname = "Math-Int128";
15393     version = "0.22";
15394     src = fetchurl {
15395       url = "mirror://cpan/authors/id/S/SA/SALVA/Math-Int128-0.22.tar.gz";
15396       hash = "sha256-pjDKQBdThmlV8Rc4SKtbSsStXKatkIfxHN+R3ehRGbw=";
15397     };
15398     propagatedBuildInputs = [ MathInt64 ];
15399     meta = {
15400       description = "Manipulate 128 bits integers in Perl";
15401       homepage = "https://metacpan.org/release/Math-Int128";
15402       license = with lib.licenses; [ artistic1 gpl1Plus ];
15403       broken = stdenv.hostPlatform.is32bit; # compiler doesn't support a 128-bit integer type
15404     };
15405   };
15407   MathInt64 = buildPerlPackage {
15408     pname = "Math-Int64";
15409     version = "0.54";
15410     src = fetchurl {
15411       url = "mirror://cpan/authors/id/S/SA/SALVA/Math-Int64-0.54.tar.gz";
15412       hash = "sha256-3PxR5phDfqa5zv4CdiFcVs22p/hePiSitrQYnxlg01E=";
15413     };
15414     meta = {
15415       description = "Manipulate 64 bits integers in Perl";
15416       homepage = "https://metacpan.org/release/Math-Int64";
15417       license = with lib.licenses; [ artistic1 gpl1Plus ];
15418     };
15419   };
15421   MathPari = buildPerlPackage rec {
15422     pname = "Math-Pari";
15423     version = "2.030523";
15424     nativeBuildInputs = [ pkgs.unzip ];
15425     pariversion = "2.1.7";
15426     pari_tgz = fetchurl {
15427       url = "https://pari.math.u-bordeaux.fr/pub/pari/OLD/2.1/pari-${pariversion}.tgz";
15428       hash = "sha256-kULyza8wg8iWLxpcK7Dp/okV99lJDAMxKsI2HH6hVfo=";
15429     };
15430     # Workaround build failure on -fno-common toolchains:
15431     #   ld: libPARI/libPARI.a(compat.o):(.bss+0x8): multiple definition of
15432     #   `overflow'; Pari.o:(.bss+0x80): first defined here
15433     env.NIX_CFLAGS_COMPILE = "-fcommon";
15434     preConfigure = "cp ${pari_tgz} pari-${pariversion}.tgz";
15435     makeMakerFlags = [ "pari_tgz=pari-${pariversion}.tgz" ];
15436     src = fetchurl {
15437       url = "mirror://cpan/authors/id/I/IL/ILYAZ/modules/Math-Pari-2.030518.zip";
15438       hash = "sha256-3DiVWpaQvmuvqN4lJiEjd8Psn+jaXsAiY6nK+UtYu5E=";
15439     };
15440     meta = {
15441       description = "Perl interface to PARI";
15442       license = with lib.licenses; [ artistic1 gpl1Plus gpl2Only ];
15443     };
15444   };
15446   MathPlanePath = buildPerlPackage {
15447     pname = "Math-PlanePath";
15448     version = "129";
15449     src = fetchurl {
15450       url = "mirror://cpan/authors/id/K/KR/KRYDE/Math-PlanePath-129.tar.gz";
15451       hash = "sha256-jaFdDk1Qd7bF0gN2WyiFv3KOUJ4y3pJkYFwIYhN+OX4=";
15452     };
15453     propagatedBuildInputs = [ MathLibm constant-defer ];
15454     buildInputs = [ DataFloat MathBigIntLite NumberFraction ];
15455     meta = {
15456       description = "Points on a path through the 2-D plane";
15457       license = with lib.licenses; [ gpl3Plus ];
15458     };
15459   };
15461   MathPrimeUtil = buildPerlPackage {
15462     pname = "Math-Prime-Util";
15463     version = "0.73";
15464     src = fetchurl {
15465       url = "mirror://cpan/authors/id/D/DA/DANAJ/Math-Prime-Util-0.73.tar.gz";
15466       hash = "sha256-Svpt2M25dJm9TsppJYYYEsKdn1oPGsJ62dLZybVgKJQ=";
15467     };
15468     propagatedBuildInputs = [ MathPrimeUtilGMP ];
15469     buildInputs = [ TestWarn ];
15470     meta = {
15471       description = "Utilities related to prime numbers, including fast sieves and factoring";
15472       homepage = "https://github.com/danaj/Math-Prime-Util";
15473       license = with lib.licenses; [ artistic1 gpl1Plus ];
15474       maintainers = [ maintainers.sgo ];
15475     };
15476   };
15478   MathPrimeUtilGMP = buildPerlPackage {
15479     pname = "Math-Prime-Util-GMP";
15480     version = "0.52";
15481     src = fetchurl {
15482       url = "mirror://cpan/authors/id/D/DA/DANAJ/Math-Prime-Util-GMP-0.52.tar.gz";
15483       hash = "sha256-JpfH/Vx+Nf3sf1DtVqZ76Aei8iZXWJ5jfa01knRAA74=";
15484     };
15485     buildInputs = [ pkgs.gmp ];
15486     env.NIX_CFLAGS_COMPILE = "-I${pkgs.gmp.dev}/include";
15487     NIX_CFLAGS_LINK = "-L${pkgs.gmp.out}/lib -lgmp";
15488     meta = {
15489       description = "Utilities related to prime numbers, using GMP";
15490       homepage = "https://github.com/danaj/Math-Prime-Util-GMP";
15491       license = with lib.licenses; [ artistic1 gpl1Plus ];
15492       maintainers = [ maintainers.sgo ];
15493     };
15494   };
15496   MathProvablePrime = buildPerlPackage {
15497     pname = "Math-ProvablePrime";
15498     version = "0.51";
15499     src = fetchurl {
15500       url = "mirror://cpan/authors/id/F/FE/FELIPE/Math-ProvablePrime-0.51.tar.gz";
15501       hash = "sha256-D7YWRJ+weorR6KgJxwghthjlPcD/3ayWVnYY3jPEbBE=";
15502     };
15503     buildInputs = [ FileWhich TestClass TestDeep TestException TestFailWarnings ];
15504     propagatedBuildInputs = [ BytesRandomSecureTiny ];
15505     meta = {
15506       description = "Generate a provable prime number, in pure Perl";
15507       license = with lib.licenses; [ artistic1 gpl1Plus ];
15508       maintainers = [ maintainers.sgo ];
15509     };
15510   };
15512   MathRandom = buildPerlPackage {
15513     pname = "Math-Random";
15514     version = "0.72";
15515     src = fetchurl {
15516       url = "mirror://cpan/authors/id/G/GR/GROMMEL/Math-Random-0.72.tar.gz";
15517       hash = "sha256-vgUiMogR2W3lBdnrrD0JY1kCb6jVw497uZmnjsW8JUw=";
15518     };
15519     meta = {
15520       description = "Random Number Generators";
15521       license = with lib.licenses; [ artistic1 gpl1Plus publicDomain ];
15522     };
15523   };
15525   MathRandomISAAC = buildPerlPackage {
15526     pname = "Math-Random-ISAAC";
15527     version = "1.004";
15528     src = fetchurl {
15529       url = "mirror://cpan/authors/id/J/JA/JAWNSY/Math-Random-ISAAC-1.004.tar.gz";
15530       hash = "sha256-J3PwL78gfpdF52oDffCL9ajMmH7SPFcEDOf3sVYfK3w=";
15531     };
15532     buildInputs = [ TestNoWarnings ];
15533     meta = {
15534       description = "Perl interface to the ISAAC PRNG algorithm";
15535       homepage = "https://search.cpan.org/dist/Math-Random-ISAAC";
15536       license = with lib.licenses; [ publicDomain mit artistic2 gpl1Plus ];
15537     };
15538   };
15540   MathRandomMTAuto = buildPerlPackage {
15541     pname = "Math-Random-MT-Auto";
15542     version = "6.23";
15543     src = fetchurl {
15544       url = "mirror://cpan/authors/id/J/JD/JDHEDDEN/Math-Random-MT-Auto-6.23.tar.gz";
15545       hash = "sha256-WLy1rTFilk/1oMTS3LqgICwshdnEcElvO3qZh1d3YxM=";
15546     };
15547     propagatedBuildInputs = [ ObjectInsideOut ];
15548     meta = {
15549       description = "Auto-seeded Mersenne Twister PRNGs";
15550       license = with lib.licenses; [ bsd3 ];
15551     };
15552   };
15554   MathRandomSecure = buildPerlPackage {
15555     pname = "Math-Random-Secure";
15556     version = "0.080001";
15557     src = fetchurl {
15558       url = "mirror://cpan/authors/id/F/FR/FREW/Math-Random-Secure-0.080001.tar.gz";
15559       hash = "sha256-v6Sk6BfspyIGfB/z2hKrWrgNbFfapeXnq5NQyixx6zU=";
15560     };
15561     buildInputs = [ ListMoreUtils TestSharedFork TestWarn ];
15562     propagatedBuildInputs = [ CryptRandomSource MathRandomISAAC ];
15563     meta = {
15564       description = "Cryptographically-secure, cross-platform replacement for rand()";
15565       homepage = "https://github.com/frioux/Math-Random-Secure";
15566       license = with lib.licenses; [ artistic2 ];
15567     };
15568   };
15570   MathRound = buildPerlPackage {
15571     pname = "Math-Round";
15572     version = "0.07";
15573     src = fetchurl {
15574       url = "mirror://cpan/authors/id/G/GR/GROMMEL/Math-Round-0.07.tar.gz";
15575       hash = "sha256-c6cymoblSlwppEA4LlgDCVtY8zEp5hod8Ak7SCTekyc=";
15576     };
15577     meta = {
15578       description = "Perl extension for rounding numbers";
15579       license = with lib.licenses; [ artistic1 gpl1Plus ];
15580     };
15581   };
15583   MathVecStat = buildPerlPackage {
15584     pname = "Math-VecStat";
15585     version = "0.08";
15586     src = fetchurl {
15587       url = "mirror://cpan/authors/id/A/AS/ASPINELLI/Math-VecStat-0.08.tar.gz";
15588       hash = "sha256-QJqODksQJcjoD2KPZal3iqd6soUWFAbKSmwJexNlbQ0=";
15589     };
15590     meta = {
15591       description = "Some basic numeric stats on vectors";
15592       license = with lib.licenses; [ artistic1 gpl1Plus ];
15593     };
15594   };
15596   MaxMindDBCommon = buildPerlPackage {
15597     pname = "MaxMind-DB-Common";
15598     version = "0.040001";
15599     src = fetchurl {
15600       url = "mirror://cpan/authors/id/M/MA/MAXMIND/MaxMind-DB-Common-0.040001.tar.gz";
15601       hash = "sha256-a8bfS9NjANB6pKX4GYrmaUyn4xPAOBCciNvDqZeyG9c=";
15602     };
15603     propagatedBuildInputs = [ DataDumperConcise DateTime ListAllUtils MooXStrictConstructor ];
15604     meta = {
15605       description = "Code shared by the MaxMind DB reader and writer modules";
15606       homepage = "https://metacpan.org/release/MaxMind-DB-Common";
15607       license = with lib.licenses; [ artistic2 ];
15608     };
15609   };
15611   MaxMindDBReader = buildPerlPackage {
15612     pname = "MaxMind-DB-Reader";
15613     version = "1.000014";
15614     src = fetchurl {
15615       url = "mirror://cpan/authors/id/M/MA/MAXMIND/MaxMind-DB-Reader-1.000014.tar.gz";
15616       hash = "sha256-OCAHj5yWf5qIch6kDKBeSZnBxTAb68HRGQYPntXOOak=";
15617     };
15618     propagatedBuildInputs = [ DataIEEE754 DataPrinter DataValidateIP MaxMindDBCommon ];
15619     buildInputs = [ PathClass TestBits TestFatal TestNumberDelta TestRequires ];
15620     meta = {
15621       description = "Read MaxMind DB files and look up IP addresses";
15622       homepage = "https://metacpan.org/release/MaxMind-DB-Reader";
15623       license = with lib.licenses; [ artistic2 ];
15624     };
15625   };
15627   MaxMindDBReaderXS = buildPerlModule {
15628     pname = "MaxMind-DB-Reader-XS";
15629     version = "1.000009";
15630     src = fetchurl {
15631       url = "mirror://cpan/authors/id/M/MA/MAXMIND/MaxMind-DB-Reader-XS-1.000009.tar.gz";
15632       hash = "sha256-qm+4f+0Z1UnymxNd55l+6SsSJ9Ymyw6JBgCpHK3DBTo=";
15633     };
15634     propagatedBuildInputs = [ pkgs.libmaxminddb MathInt128 MaxMindDBReader ];
15635     buildInputs = [ NetWorks PathClass TestFatal TestNumberDelta TestRequires ];
15636     meta = {
15637       description = "Fast XS implementation of MaxMind DB reader";
15638       homepage = "https://metacpan.org/release/MaxMind-DB-Reader-XS";
15639       license = with lib.licenses; [ artistic2 ];
15640       broken = stdenv.hostPlatform.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.MaxMindDBReaderXS.x86_64-darwin
15641     };
15642   };
15644   MaxMindDBWriter = buildPerlModule {
15645     pname = "MaxMind-DB-Writer";
15646     version = "0.300003";
15647     src = fetchurl {
15648       url = "mirror://cpan/authors/id/M/MA/MAXMIND/MaxMind-DB-Writer-0.300003.tar.gz";
15649       hash = "sha256-ulP1upZfekd/ZxZNl7R1oMESCIcv7fI4mIVQ2SvN6z4=";
15650     };
15651     propagatedBuildInputs = [ DigestSHA1 MaxMindDBReader MooseXParamsValidate MooseXStrictConstructor NetWorks SerealDecoder SerealEncoder ];
15652     buildInputs = [ DevelRefcount JSON TestBits TestDeep TestFatal TestHexDifferences TestRequires TestWarnings ];
15653     hardeningDisable = [ "format" ];
15654     meta = {
15655       description = "Create MaxMind DB database files";
15656       homepage = "https://metacpan.org/release/MaxMind-DB-Writer";
15657       license = with lib.licenses; [ artistic1 gpl1Plus ];
15658       broken = stdenv.hostPlatform.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.MaxMindDBWriter.x86_64-darwin
15659     };
15660   };
15662   Memoize = buildPerlPackage {
15663     pname = "Memoize";
15664     version = "1.16";
15665     src = fetchurl {
15666       url = "mirror://cpan/authors/id/A/AR/ARISTOTLE/Memoize-1.16.tar.gz";
15667       hash = "sha256-CRlSvPSS7O41ueW41ykgxYAjRB15IIwduHg3xcV4B74=";
15668     };
15669     meta = {
15670       description = "Make functions faster by trading space for time";
15671       license = with lib.licenses; [ artistic1 gpl1Plus ];
15672     };
15673   };
15675   MemoizeExpireLRU = buildPerlPackage {
15676     pname = "Memoize-ExpireLRU";
15677     version = "0.56";
15678     src = fetchurl {
15679       url = "mirror://cpan/authors/id/N/NE/NEILB/Memoize-ExpireLRU-0.56.tar.gz";
15680       hash = "sha256-7oNjAcu6uaJLBfxlft+pS3/YV42YNuVmoZHQpbAc1/Y=";
15681     };
15682     meta = {
15683       description = "Expiry plug-in for Memoize that adds LRU cache expiration";
15684       homepage = "https://github.com/neilb/Memoize-ExpireLRU";
15685       license = with lib.licenses; [ artistic1 gpl1Plus ];
15686     };
15687   };
15689   MemoryProcess = buildPerlPackage {
15690     pname = "Memory-Process";
15691     version = "0.06";
15692     src = fetchurl {
15693       url = "mirror://cpan/authors/id/S/SK/SKIM/Memory-Process-0.06.tar.gz";
15694       hash = "sha256-NYFEiP/SnJdiFiXqOz1wCvv6YO0FW9dZ1OWNnI/UTk4=";
15695     };
15696     buildInputs = [ CaptureTiny TestNoWarnings ];
15697     propagatedBuildInputs = [ MemoryUsage Readonly ];
15698     meta = {
15699       description = "Memory process reporting";
15700       homepage = "https://github.com/michal-josef-spacek/Memory-Process";
15701       license = lib.licenses.bsd3;
15702       platforms = lib.platforms.linux;
15703     };
15704   };
15706   MemoryUsage = buildPerlPackage {
15707     pname = "Memory-Usage";
15708     version = "0.201";
15709     src = fetchurl {
15710       url = "mirror://cpan/authors/id/D/DO/DONEILL/Memory-Usage-0.201.tar.gz";
15711       hash = "sha256-jyr60h5Ap0joHIwPPkDKcYwU3bn7LYgL+9KK6RPOU0k=";
15712     };
15713     meta = {
15714       description = "Tools to determine actual memory usage";
15715       license = with lib.licenses; [ artistic1 gpl1Plus ];
15716     };
15717   };
15719   Menlo = buildPerlPackage {
15720     pname = "Menlo";
15721     version = "1.9019";
15722     src = fetchurl {
15723       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Menlo-1.9019.tar.gz";
15724       hash = "sha256-O1c/aOezo2qHyGC+JYWZMw+sJItRiFTftWV6xIPcpWU=";
15725     };
15726     propagatedBuildInputs = [ CPANCommonIndex CPANMetaCheck CaptureTiny ExtUtilsHelpers ExtUtilsInstallPaths Filepushd HTTPTinyish ModuleCPANfile ParsePMFile StringShellQuote Win32ShellQuote locallib ];
15727     meta = {
15728       description = "CPAN client";
15729       homepage = "https://github.com/miyagawa/cpanminus";
15730       license = with lib.licenses; [ artistic1 gpl1Plus ];
15731     };
15732   };
15734   MenloLegacy = buildPerlPackage {
15735     pname = "Menlo-Legacy";
15736     version = "1.9022";
15737     src = fetchurl {
15738       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Menlo-Legacy-1.9022.tar.gz";
15739       hash = "sha256-pqysP+4xioBLQ53lSsvHwn8LRM/a2FUbvJzUWYarwgE=";
15740     };
15741     propagatedBuildInputs = [ Menlo ];
15742     meta = {
15743       description = "Legacy internal and client support for Menlo";
15744       homepage = "https://github.com/miyagawa/cpanminus";
15745       license = with lib.licenses; [ artistic1 gpl1Plus ];
15746     };
15747   };
15749   meta = buildPerlModule {
15750     pname = "meta";
15751     version = "0.012";
15752     src = fetchurl {
15753       url = "mirror://cpan/authors/id/P/PE/PEVANS/meta-0.012.tar.gz";
15754       hash = "sha256-Fx0J0wn4APVTTQE4tXMDmpYfEDtDaKhBC3dogzFuuFk=";
15755     };
15756     buildInputs = [ Test2Suite ];
15757     meta = {
15758       description = "Meta-programming API";
15759       license = with lib.licenses; [ artistic1 gpl1Plus ];
15760       maintainers = [ maintainers.zakame ];
15761     };
15762   };
15764   MetaBuilder = buildPerlModule {
15765     pname = "Meta-Builder";
15766     version = "0.004";
15767     src = fetchurl {
15768       url = "mirror://cpan/authors/id/E/EX/EXODIST/Meta-Builder-0.004.tar.gz";
15769       hash = "sha256-rLSZqnIG652yHrhTV6dFIb/jva5KZBbVCnx1uTnPVv4=";
15770     };
15771     buildInputs = [ FennecLite TestException ];
15772     meta = {
15773       description = "Tools for creating Meta objects to track custom metrics";
15774       license = with lib.licenses; [ artistic1 gpl1Plus ];
15775     };
15776   };
15778   MetaCPANClient = buildPerlPackage {
15779     pname = "MetaCPAN-Client";
15780     version = "2.030000";
15781     src = fetchurl {
15782       url = "mirror://cpan/authors/id/M/MI/MICKEY/MetaCPAN-Client-2.030000.tar.gz";
15783       hash = "sha256-2bdlxSN3VPFyYmljgqc4XZCy0BmGl5gXhisWZLBt068=";
15784     };
15786     # Most tests are online, so we only include offline tests
15787     postPatch = ''
15788       substituteInPlace Makefile.PL \
15789         --replace '"t/*.t t/api/*.t"' \
15790         '"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"'
15791     '';
15793     buildInputs = [ LWPProtocolHttps TestFatal TestNeeds ];
15794     propagatedBuildInputs = [ IOSocketSSL JSONMaybeXS Moo RefUtil SafeIsa TypeTiny URI ];
15795     meta = {
15796       description = "Comprehensive, DWIM-featured client to the MetaCPAN API";
15797       homepage = "https://github.com/metacpan/metacpan-client";
15798       license = with lib.licenses; [ artistic1 gpl1Plus ];
15799       maintainers = with maintainers; [ sgo ];
15800     };
15801   };
15803   MethodSignaturesSimple = buildPerlPackage {
15804     pname = "Method-Signatures-Simple";
15805     version = "1.07";
15806     src = fetchurl {
15807       url = "mirror://cpan/authors/id/R/RH/RHESA/Method-Signatures-Simple-1.07.tar.gz";
15808       hash = "sha256-yM19Rxl3zIh2BEGSq9mKga/d/yomu5oQu+NY76Nx2tw=";
15809     };
15810     propagatedBuildInputs = [ DevelDeclare ];
15811     meta = {
15812       description = "Basic method declarations with signatures, without source filters";
15813       license = with lib.licenses; [ artistic1 gpl1Plus ];
15814     };
15815   };
15817   MetricsAny = buildPerlModule {
15818     pname = "Metrics-Any";
15819     version = "0.10";
15820     src = fetchurl {
15821       url = "mirror://cpan/authors/id/P/PE/PEVANS/Metrics-Any-0.10.tar.gz";
15822       hash = "sha256-qQ6t+civJKUWu5obZwYfZBhT+QuP7p/8JNK7lyDouZs=";
15823     };
15824     buildInputs = [ Test2Suite ];
15825     meta = {
15826       description = "Abstract collection of monitoring metrics";
15827       license = with lib.licenses; [ artistic1 gpl1Plus ];
15828     };
15829   };
15831   # TODO: use CPAN version
15832   MHonArc = buildPerlPackage {
15833     pname = "MHonArc";
15834     version = "2.6.24";
15836     src = fetchurl {
15837       url = "mirror://cpan/authors/id/L/LD/LDIDRY/MHonArc-2.6.24.tar.gz";
15838       hash = "sha256-RX3HN07lnLdaBynlHO8vLFK0gYD3Odj9lW6hmIKBXzM=";
15839     };
15841     outputs = [ "out" "dev" ]; # no "devdoc"
15843     installTargets = [ "install" ];
15845     meta = {
15846       homepage = "https://www.mhonarc.org/";
15847       description = "Mail-to-HTML converter";
15848       mainProgram = "mhonarc";
15849       license = with lib.licenses; [ gpl2Only ];
15850     };
15851   };
15853   MIMECharset = buildPerlPackage {
15854     pname = "MIME-Charset";
15855     version = "1.013.1";
15856     src = fetchurl {
15857       url = "mirror://cpan/authors/id/N/NE/NEZUMI/MIME-Charset-1.013.1.tar.gz";
15858       hash = "sha256-G7em4MDSUfI9bmC/hMmt78W3TuxYR1v+5NORB+YIcPA=";
15859     };
15860     meta = {
15861       description = "Charset Information for MIME";
15862       license = with lib.licenses; [ artistic1 gpl1Plus ];
15863     };
15864   };
15866   mimeConstruct = buildPerlPackage {
15867     pname = "mime-construct";
15868     version = "1.11";
15869     src = fetchurl {
15870       url = "mirror://cpan/authors/id/R/RO/ROSCH/mime-construct-1.11.tar.gz";
15871       hash = "sha256-TNe7YbUdQRktFJjBBRqmpMzXWusJtx0uxwanCEpKkwM=";
15872     };
15873     outputs = [ "out" ];
15874     buildInputs = [ ProcWaitStat ];
15875     meta = {
15876       description = "Construct and optionally mail MIME messages";
15877       license = with lib.licenses; [ gpl2Plus ];
15878     };
15879     # Nothing in mime-construct --help or mime-construct’s man page mentions
15880     # anything about mime-construct executing its arguments.
15881     passthru.binlore.out = pkgs.binlore.synthesize self.perlPackages.mimeConstruct ''
15882       execer cannot bin/mime-construct
15883     '';
15884   };
15886   MIMEEncWords = buildPerlPackage {
15887     pname = "MIME-EncWords";
15888     version = "1.014.3";
15889     src = fetchurl {
15890       url = "mirror://cpan/authors/id/N/NE/NEZUMI/MIME-EncWords-1.014.3.tar.gz";
15891       hash = "sha256-6a+1SGEdTn5sULfwa70rG7KAjjeoEN7vtTfGevVIUjg=";
15892     };
15893     propagatedBuildInputs = [ MIMECharset ];
15894     meta = {
15895       description = "Deal with RFC 2047 encoded words (improved)";
15896       homepage = "https://metacpan.org/pod/MIME::EncWords";
15897       license = with lib.licenses; [ artistic1 gpl1Plus ];
15898       maintainers = [ maintainers.sgo ];
15899     };
15900   };
15902   MIMELite = buildPerlPackage {
15903     pname = "MIME-Lite";
15904     version = "3.033";
15905     src = fetchurl {
15906       url = "mirror://cpan/authors/id/R/RJ/RJBS/MIME-Lite-3.033.tar.gz";
15907       hash = "sha256-eKJ58dLiQlUcNH75ehP8Z1dmYCy4TCqAxWlAD082i6s=";
15908     };
15909     propagatedBuildInputs = [ EmailDateFormat ];
15910     meta = {
15911       description = "Low-calorie MIME generator (DEPRECATED)";
15912       license = with lib.licenses; [ artistic1 gpl1Plus ];
15913     };
15914   };
15916   MIMELiteHTML = buildPerlPackage {
15917     pname = "MIME-Lite-HTML";
15918     version = "1.24";
15919     src = fetchurl {
15920       url = "mirror://cpan/authors/id/A/AL/ALIAN/MIME-Lite-HTML-1.24.tar.gz";
15921       hash = "sha256-22A8y/ZlO80oz6gk1y5RHq0Bn8ivufGFTshy2y082No=";
15922     };
15923     doCheck = false;
15924     propagatedBuildInputs = [ LWP MIMELite ];
15925     meta = {
15926       description = "Provide routine to transform a HTML page in a MIME-Lite mail";
15927       license = with lib.licenses; [ artistic1 gpl1Plus ];
15928     };
15929   };
15931   MIMETools = buildPerlPackage {
15932     pname = "MIME-tools";
15933     version = "5.509";
15934     src = fetchurl {
15935       url = "mirror://cpan/authors/id/D/DS/DSKOLL/MIME-tools-5.509.tar.gz";
15936       hash = "sha256-ZFefDJI9gdmiGUWG5Hw0dVGeJkbktcECqJIHWfrPaXM=";
15937     };
15938     propagatedBuildInputs = [ MailTools ];
15939     buildInputs = [ TestDeep ];
15940     meta = {
15941       description = "Tools to manipulate MIME messages";
15942       license = with lib.licenses; [ artistic1 gpl1Plus ];
15943     };
15944   };
15946   MIMETypes = buildPerlPackage {
15947     pname = "MIME-Types";
15948     version = "2.24";
15949     src = fetchurl {
15950       url = "mirror://cpan/authors/id/M/MA/MARKOV/MIME-Types-2.24.tar.gz";
15951       hash = "sha256-Yp42HyKyIL5QwtpzVOI8BFF1dwmgPCWiLzFg7blMtl8=";
15952     };
15953     meta = {
15954       description = "Definition of MIME types";
15955       homepage = "http://perl.overmeer.net/CPAN";
15956       license = with lib.licenses; [ artistic1 gpl1Plus ];
15957     };
15958   };
15960   Minion = buildPerlPackage {
15961     pname = "Minion";
15962     version = "10.30";
15963     src = fetchurl {
15964       url = "mirror://cpan/authors/id/S/SR/SRI/Minion-10.30.tar.gz";
15965       hash = "sha256-twS9ZuxK8cAzlGifAsCsBIDr0GzpzKFykVAbkgLG7Rw=";
15966     };
15967     propagatedBuildInputs = [ Mojolicious YAMLLibYAML ];
15968     meta = {
15969       description = "High performance job queue for Perl";
15970       homepage = "https://github.com/mojolicious/minion";
15971       license = with lib.licenses; [ artistic2 ];
15972       maintainers = [ maintainers.sgo ];
15973     };
15974   };
15976   MinionBackendRedis = buildPerlModule {
15977     pname = "Minion-Backend-Redis";
15978     version = "0.003";
15979     src = fetchurl {
15980       url = "mirror://cpan/authors/id/D/DF/DFUG/Minion-Backend-Redis-0.003.tar.gz";
15981       hash = "sha256-zXZRIQbfHKmQF75fObSmXgSCawzZQxe3GsAWGzXzI6A=";
15982     };
15983     buildInputs = [ ModuleBuildTiny ];
15984     propagatedBuildInputs = [ Minion MojoRedis Mojolicious SortVersions ];
15985     meta = {
15986       homepage = "https://github.com/Difegue/Minion-Backend-Redis";
15987       description = "Redis backend for Minion job queue";
15988       license = with lib.licenses; [ artistic2 ];
15989       maintainers = with maintainers; [ tomasajt ];
15990     };
15991   };
15993   MinionBackendSQLite = buildPerlModule {
15994     pname = "Minion-Backend-SQLite";
15995     version = "5.0.7";
15996     src = fetchurl {
15997       url = "mirror://cpan/authors/id/D/DB/DBOOK/Minion-Backend-SQLite-v5.0.7.tar.gz";
15998       hash = "sha256-zd49IrGv+n32seErKlLp88G2gci1k6G+TeO+aOTaXHI=";
15999     };
16000     buildInputs = [ ModuleBuildTiny ];
16001     propagatedBuildInputs = [ Minion MojoSQLite ];
16002     meta = {
16003       description = "SQLite backend for Minion job queue";
16004       homepage = "https://github.com/Grinnz/Minion-Backend-SQLite";
16005       license = with lib.licenses; [ artistic2 ];
16006       maintainers = [ maintainers.sgo ];
16007     };
16008   };
16010   MinionBackendmysql = buildPerlPackage {
16011     pname = "Minion-Backend-mysql";
16012     version = "1.003";
16013     src = fetchurl {
16014       url = "mirror://cpan/authors/id/P/PR/PREACTION/Minion-Backend-mysql-1.003.tar.gz";
16015       hash = "sha256-aaJcJAyw5NTvTxqjKgTt+Nolt+jTqCDP1kVhWZ7aRUI=";
16016     };
16017     buildInputs = [ Testmysqld ];
16018     propagatedBuildInputs = [ Minion Mojomysql ];
16019     meta = {
16020       description = "MySQL backend for the Minion job queue";
16021       homepage = "https://github.com/preaction/Minion-Backend-mysql";
16022       license = with lib.licenses; [ artistic1 gpl1Plus ];
16023       maintainers = [ maintainers.sgo ];
16024     };
16025   };
16027   MixinLinewise = buildPerlPackage {
16028     pname = "Mixin-Linewise";
16029     version = "0.111";
16030     src = fetchurl {
16031       url = "mirror://cpan/authors/id/R/RJ/RJBS/Mixin-Linewise-0.111.tar.gz";
16032       hash = "sha256-0o6IUWzptSlcMWMdzM3A/I8qt9ilzIdrsbIBMQh7Ads=";
16033     };
16034     propagatedBuildInputs = [ PerlIOutf8_strict SubExporter ];
16035     meta = {
16036       description = "Write your linewise code for handles; this does the rest";
16037       homepage = "https://github.com/rjbs/Mixin-Linewise";
16038       license = with lib.licenses; [ artistic1 gpl1Plus ];
16039     };
16040   };
16042   MLDBM = buildPerlModule {
16043     pname = "MLDBM";
16044     version = "2.05";
16045     src = fetchurl {
16046       url = "mirror://cpan/authors/id/C/CH/CHORNY/MLDBM-2.05.tar.gz";
16047       hash = "sha256-WGiA7QwggBq79nNHR+E+AgPt7+zm68TyDdtQWfAqF6I=";
16048     };
16049     meta = {
16050       description = "Store multi-level Perl hash structure in single level tied hash";
16051       license = with lib.licenses; [ artistic1 gpl1Plus ];
16052     };
16053   };
16055   MNI-Perllib = callPackage ../development/perl-modules/MNI {};
16057   Mo = buildPerlPackage {
16058     pname = "Mo";
16059     version = "0.40";
16060     src = fetchurl {
16061       url = "mirror://cpan/authors/id/T/TI/TINITA/Mo-0.40.tar.gz";
16062       hash = "sha256-kdJBUjkfjCeX7jUDkTja6m3j7gO98+G4ck+lx1VAzrk=";
16063     };
16064     meta = {
16065       description = "Micro Objects. Mo is less";
16066       homepage = "https://github.com/ingydotnet/mo-pm";
16067       license = with lib.licenses; [ artistic1 gpl1Plus ];
16068       mainProgram = "mo-inline";
16069     };
16070   };
16072   MockConfig = buildPerlPackage {
16073     pname = "Mock-Config";
16074     version = "0.03";
16075     src = fetchurl {
16076       url = "mirror://cpan/authors/id/R/RU/RURBAN/Mock-Config-0.03.tar.gz";
16077       hash = "sha256-pbg0V1fKTyuTNfW+FOk+u7UChlIzp1W/U7xxVt7sABs=";
16078     };
16079     meta = {
16080       description = "Temporarily set Config or XSConfig values";
16081       license = with lib.licenses; [ artistic1 gpl1Plus ];
16082     };
16083   };
16085   ModernPerl = buildPerlPackage {
16086     pname = "Modern-Perl";
16087     version = "1.20230106";
16089     src = fetchurl {
16090       url = "mirror://cpan/authors/id/C/CH/CHROMATIC/Modern-Perl-1.20230106.tar.gz";
16091       hash = "sha256-BFncq4DOgrY0Yf2B7pTgbpplFdmPP7wxmDjdHmAoUfc=";
16092     };
16093     meta = {
16094       description = "Enable all of the features of Modern Perl with one import";
16095       homepage = "https://github.com/chromatic/Modern-Perl";
16096       license = with lib.licenses; [ artistic1 gpl1Plus ];
16097     };
16098   };
16100   Modulecpmfile = buildPerlModule {
16101     pname = "Module-cpmfile";
16102     version = "0.006";
16103     src = fetchurl {
16104       url = "mirror://cpan/authors/id/S/SK/SKAJI/Module-cpmfile-0.006.tar.gz";
16105       hash = "sha256-G8l24pN3JIlsn26unl3KmB4n+YQwuS3icO41FP0ArA8=";
16106     };
16107     buildInputs = [ ModuleBuildTiny ModuleCPANfile Test2Suite ];
16108     propagatedBuildInputs = [ YAMLPP ];
16109     meta = {
16110       description = "Parse cpmfile";
16111       homepage = "https://github.com/skaji/cpmfile";
16112       license = with lib.licenses; [ artistic1 gpl1Plus ];
16113       maintainers = [ maintainers.zakame ];
16114     };
16115   };
16117   ModuleBuild = buildPerlPackage {
16118     pname = "Module-Build";
16119     version = "0.4234";
16120     src = fetchurl {
16121       url = "mirror://cpan/authors/id/L/LE/LEONT/Module-Build-0.4234.tar.gz";
16122       hash = "sha256-Zq6sYSdBi+XkcerTdEZIx2a9AUgoJcW2ZlJnXyvIao8=";
16123     };
16124     postConfigure = lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
16125       # for unknown reason, the first run of Build fails
16126       ./Build || true
16127     '';
16128     postPatch = lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
16129       # remove version check since miniperl uses a stub of File::Temp, which do not provide a version:
16130       # https://github.com/arsv/perl-cross/blob/master/cnf/stub/File/Temp.pm
16131       sed -i '/File::Temp/d' \
16132         Build.PL
16134       # fix discover perl function, it can not handle a wrapped perl
16135       sed -i "s,\$self->_discover_perl_interpreter,'$(type -p perl)',g" \
16136         lib/Module/Build/Base.pm
16137     '';
16138     meta = {
16139       description = "Build and install Perl modules";
16140       license = with lib.licenses; [ artistic1 gpl1Plus ];
16141       mainProgram = "config_data";
16142     };
16143   };
16145   ModuleBuildDeprecated = buildPerlModule {
16146     pname = "Module-Build-Deprecated";
16147     version = "0.4210";
16148     src = fetchurl {
16149       url = "mirror://cpan/authors/id/L/LE/LEONT/Module-Build-Deprecated-0.4210.tar.gz";
16150       hash = "sha256-vgiTE/wjjuIYNHOsqMhrVfs89EeXMSy+m4ktY2JiFwM=";
16151     };
16152     doCheck = false;
16153     meta = {
16154       description = "Collection of modules removed from Module-Build";
16155       license = with lib.licenses; [ artistic1 gpl1Plus ];
16156     };
16157   };
16159   ModuleBuildPluggable = buildPerlModule {
16160     pname = "Module-Build-Pluggable";
16161     version = "0.10";
16162     src = fetchurl {
16163       url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/Module-Build-Pluggable-0.10.tar.gz";
16164       hash = "sha256-5bsqyxF3ksmEYogSrLD+w3bLlwyu6O3ldTXgTXYrDkA=";
16165     };
16166     propagatedBuildInputs = [ ClassAccessorLite ClassMethodModifiers DataOptList ];
16167     buildInputs = [ TestSharedFork ];
16168     meta = {
16169       description = "Module::Build meets plugins";
16170       homepage = "https://github.com/tokuhirom/Module-Build-Pluggable";
16171       license = with lib.licenses; [ artistic1 gpl1Plus ];
16172     };
16173   };
16175   ModuleBuildPluggableCPANfile = buildPerlModule {
16176     pname = "Module-Build-Pluggable-CPANfile";
16177     version = "0.05";
16178     src = fetchurl {
16179       url = "mirror://cpan/authors/id/K/KA/KAZEBURO/Module-Build-Pluggable-CPANfile-0.05.tar.gz";
16180       hash = "sha256-SuxsuiQMtueAFkBrajqHVjTMKuwI/8XxVy2hzcQOHnw=";
16181     };
16182     buildInputs = [ CaptureTiny TestRequires TestSharedFork ];
16183     propagatedBuildInputs = [ ModuleBuildPluggable ModuleCPANfile ];
16184     meta = {
16185       description = "Include cpanfile";
16186       homepage = "https://github.com/kazeburo/Module-Build-Pluggable-CPANfile";
16187       license = with lib.licenses; [ artistic1 gpl1Plus ];
16188     };
16189   };
16191   ModuleBuildPluggablePPPort = buildPerlModule {
16192     pname = "Module-Build-Pluggable-PPPort";
16193     version = "0.04";
16194     src = fetchurl {
16195       url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/Module-Build-Pluggable-PPPort-0.04.tar.gz";
16196       hash = "sha256-RAhLo9iBXzQ705FYWsXYM5pIB85cDdhMmNuPMQtkwOo=";
16197     };
16198     buildInputs = [ TestRequires TestSharedFork ];
16199     propagatedBuildInputs = [ ModuleBuildPluggable ];
16200     meta = {
16201       description = "Generate ppport.h";
16202       license = with lib.licenses; [ artistic1 gpl1Plus ];
16203     };
16204   };
16206   ModuleBuildTiny = buildPerlModule {
16207     pname = "Module-Build-Tiny";
16208     version = "0.047";
16209     src = fetchurl {
16210       url = "mirror://cpan/authors/id/L/LE/LEONT/Module-Build-Tiny-0.047.tar.gz";
16211       hash = "sha256-cSYOlCG5PDPdGz59DPFfdZwMp8dT+oQCeew75w+PjJ0=";
16212     };
16213     buildInputs = [ FileShareDir ];
16214     propagatedBuildInputs = [ ExtUtilsHelpers ExtUtilsInstallPaths ];
16215     meta = {
16216       description = "Tiny replacement for Module::Build";
16217       license = with lib.licenses; [ artistic1 gpl1Plus ];
16218     };
16219   };
16221   ModuleBuildWithXSpp = buildPerlModule {
16222     pname = "Module-Build-WithXSpp";
16223     version = "0.14";
16224     src = fetchurl {
16225       url = "mirror://cpan/authors/id/S/SM/SMUELLER/Module-Build-WithXSpp-0.14.tar.gz";
16226       hash = "sha256-U7PIyP29UPw9rT0Z2iDxtkFO9wZluTEXEMgClp50aTQ=";
16227     };
16228     propagatedBuildInputs = [ ExtUtilsCppGuess ExtUtilsXSpp ];
16229     meta = {
16230       description = "XS++ enhanced flavour of Module::Build";
16231       license = with lib.licenses; [ artistic1 gpl1Plus ];
16232     };
16233   };
16235   ModuleBuildXSUtil = buildPerlModule {
16236     pname = "Module-Build-XSUtil";
16237     version = "0.19";
16238     src = fetchurl {
16239       url = "mirror://cpan/authors/id/H/HI/HIDEAKIO/Module-Build-XSUtil-0.19.tar.gz";
16240       hash = "sha256-kGOzw0bt60IoB//kn/sjA4xPkA1Kd7hFzktT2XvylAA=";
16241     };
16242     buildInputs = [ CaptureTiny CwdGuard FileCopyRecursiveReduced ];
16243     propagatedBuildInputs = [ DevelCheckCompiler ];
16244     perlPreHook = "export LD=$CC";
16245     meta = {
16246       description = "Module::Build class for building XS modules";
16247       homepage = "https://github.com/hideo55/Module-Build-XSUtil";
16248       license = with lib.licenses; [ artistic1 gpl1Plus ];
16249     };
16250   };
16252   ModuleCompile = buildPerlPackage {
16253     pname = "Module-Compile";
16254     version = "0.38";
16255     src = fetchurl {
16256       url = "mirror://cpan/authors/id/I/IN/INGY/Module-Compile-0.38.tar.gz";
16257       hash = "sha256-gJDPu2ESNDfu/sPjvthgBdH3xaUp+2/aLr68ZWS5qhA=";
16258     };
16259     propagatedBuildInputs = [ CaptureTiny DigestSHA1 ];
16260     meta = {
16261       description = "Perl Module Compilation";
16262       homepage = "https://github.com/ingydotnet/module-compile-pm";
16263       license = with lib.licenses; [ artistic1 gpl1Plus ];
16264     };
16265   };
16267   ModuleCPANTSAnalyse = buildPerlPackage {
16268     pname = "Module-CPANTS-Analyse";
16269     version = "1.02";
16270     src = fetchurl {
16271       url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/Module-CPANTS-Analyse-1.02.tar.gz";
16272       hash = "sha256-nhFzm5zQi6LXWllzfx+yl/RYA/KJBjxcdZv8eP1Rbns=";
16273     };
16274     propagatedBuildInputs = [ ArchiveAnyLite ArrayDiff ClassAccessor DataBinary FileFindObject ModuleFind ParseDistname PerlPrereqScannerNotQuiteLite SoftwareLicense ];
16275     buildInputs = [ ExtUtilsMakeMakerCPANfile TestFailWarnings ];
16276     meta = {
16277       description = "Generate Kwalitee ratings for a distribution";
16278       homepage = "https://cpants.cpanauthors.org";
16279       license = with lib.licenses; [ artistic1 gpl1Plus ];
16280     };
16281   };
16283   ModuleCPANfile = buildPerlPackage {
16284     pname = "Module-CPANfile";
16285     version = "1.1004";
16286     src = fetchurl {
16287       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Module-CPANfile-1.1004.tar.gz";
16288       hash = "sha256-iO++LppkLc6qGGQw/t/PmZqvDgb2zO0opxS45WtRSSE=";
16289     };
16290     buildInputs = [ Filepushd ];
16291     meta = {
16292       description = "Parse cpanfile";
16293       homepage = "https://github.com/miyagawa/cpanfile";
16294       license = with lib.licenses; [ artistic1 gpl1Plus ];
16295     };
16296   };
16298   ModuleExtractUse = buildPerlModule {
16299     pname = "Module-ExtractUse";
16300     version = "0.345";
16301     src = fetchurl {
16302       url = "mirror://cpan/authors/id/D/DO/DOMM/Module-ExtractUse-0.345.tar.gz";
16303       hash = "sha256-juJOh0KrnaeSKL4Yfdoxm01fUKkaHs+H1JQhO1uzDdE=";
16304     };
16305     propagatedBuildInputs = [ ParseRecDescent PodStrip ];
16306     buildInputs = [ TestDeep TestNoWarnings ];
16307     meta = {
16308       description = "Find out what modules are used";
16309       license = with lib.licenses; [ artistic1 gpl1Plus ];
16310     };
16311   };
16313   ModuleExtractVERSION = buildPerlPackage {
16314     pname = "Module-Extract-VERSION";
16315     version = "1.116";
16316     src = fetchurl {
16317       url = "mirror://cpan/authors/id/B/BD/BDFOY/Module-Extract-VERSION-1.116.tar.gz";
16318       hash = "sha256-QZA6BoUXgoU0X12oVdkluUVO5xCpeV48TDJ7ri9Vdpg=";
16319     };
16320     meta = {
16321       homepage = "https://github.com/briandfoy/module-extract-version";
16322       description = "Extract a module version safely";
16323       license = lib.licenses.artistic2;
16324     };
16325   };
16327   ModuleFind = buildPerlPackage {
16328     pname = "Module-Find";
16329     version = "0.16";
16330     src = fetchurl {
16331       url = "mirror://cpan/authors/id/C/CR/CRENZ/Module-Find-0.16.tar.gz";
16332       hash = "sha256-S8qqN2kVAUco1PUzqYxbWdZlBRzTzbr8lg5aZv0TEJI=";
16333     };
16334     meta = {
16335       description = "Find and use installed modules in a (sub)category";
16336       license = with lib.licenses; [ artistic1 gpl1Plus ];
16337     };
16338   };
16340   ModuleImplementation = buildPerlPackage {
16341     pname = "Module-Implementation";
16342     version = "0.09";
16343     src = fetchurl {
16344       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Module-Implementation-0.09.tar.gz";
16345       hash = "sha256-wV8aEvDCEwye//PC4a/liHsIzNAzvRMhhtHn1Qh/1m0=";
16346     };
16347     buildInputs = [ TestFatal TestRequires ];
16348     propagatedBuildInputs = [ ModuleRuntime TryTiny ];
16349     meta = {
16350       description = "Loads one of several alternate underlying implementations for a module";
16351       homepage = "https://metacpan.org/release/Module-Implementation";
16352       license = with lib.licenses; [ artistic2 ];
16353     };
16354   };
16356   ModuleInfo = buildPerlPackage {
16357     pname = "Module-Info";
16358     version = "0.37";
16359     src = fetchurl {
16360       url = "mirror://cpan/authors/id/N/NE/NEILB/Module-Info-0.37.tar.gz";
16361       hash = "sha256-jqgCUpeQsZwfNzoeR9g4FmT5xMH3ao2LvG221zEcJEg=";
16362     };
16363     buildInputs = [ TestPod TestPodCoverage ];
16364     propagatedBuildInputs = [ BUtils ];
16365     meta = {
16366       description = "Information about Perl modules";
16367       license = with lib.licenses; [ artistic1 gpl1Plus ];
16368       mainProgram = "module_info";
16369     };
16370   };
16372   ModuleInstall = buildPerlPackage {
16373     pname = "Module-Install";
16374     version = "1.21";
16375     src = fetchurl {
16376       url = "mirror://cpan/authors/id/E/ET/ETHER/Module-Install-1.21.tar.gz";
16377       hash = "sha256-+/kQB/MFZfOSDhBgVf0NQoeYHV59rYs1MjzktzPxWns=";
16378     };
16379     propagatedBuildInputs = [ FileRemove ModuleBuild ModuleScanDeps YAMLTiny ];
16380     meta = {
16381       description = "Standalone, extensible Perl module installer";
16382       license = with lib.licenses; [ artistic1 gpl1Plus ];
16383     };
16384   };
16386   ModuleInstallAuthorRequires = buildPerlPackage {
16387     pname = "Module-Install-AuthorRequires";
16388     version = "0.02";
16389     src = fetchurl {
16390       url = "mirror://cpan/authors/id/F/FL/FLORA/Module-Install-AuthorRequires-0.02.tar.gz";
16391       hash = "sha256-zGMhU310XSqDqChvhe8zRnRZOcw7NBAgRb7IVg6PTOw=";
16392     };
16393     propagatedBuildInputs = [ ModuleInstall ];
16394     meta = {
16395       description = "Declare author-only dependencies";
16396       license = with lib.licenses; [ artistic1 gpl1Plus ];
16397     };
16398   };
16400   ModuleInstallAuthorTests = buildPerlPackage {
16401     pname = "Module-Install-AuthorTests";
16402     version = "0.002";
16403     src = fetchurl {
16404       url = "mirror://cpan/authors/id/R/RJ/RJBS/Module-Install-AuthorTests-0.002.tar.gz";
16405       hash = "sha256-QCVyLeY1ft9TwoUBsA59qSzS+fxhG6B1N2Gg4d/zLYg=";
16406     };
16407     propagatedBuildInputs = [ ModuleInstall ];
16408     meta = {
16409       description = "Designate tests only run by module authors";
16410       license = with lib.licenses; [ artistic1 gpl1Plus ];
16411     };
16412   };
16414   ModuleInstallGithubMeta = buildPerlPackage {
16415     pname = "Module-Install-GithubMeta";
16416     version = "0.30";
16417     src = fetchurl {
16418       url = "mirror://cpan/authors/id/B/BI/BINGOS/Module-Install-GithubMeta-0.30.tar.gz";
16419       hash = "sha256-Lq1EyXPHSNctnxmeQcRNwYAf6a4GsPrcWUR2k6PJgoE=";
16420     };
16421     buildInputs = [ CaptureTiny ];
16422     propagatedBuildInputs = [ ModuleInstall ];
16423     meta = {
16424       description = "Module::Install extension to include GitHub meta information in META.yml";
16425       homepage = "https://github.com/bingos/module-install-githubmeta";
16426       license = with lib.licenses; [ artistic1 gpl1Plus ];
16427       maintainers = [ maintainers.sgo ];
16428     };
16429   };
16431   ModuleInstallReadmeFromPod = buildPerlPackage {
16432     pname = "Module-Install-ReadmeFromPod";
16433     version = "0.30";
16434     src = fetchurl {
16435       url = "mirror://cpan/authors/id/B/BI/BINGOS/Module-Install-ReadmeFromPod-0.30.tar.gz";
16436       hash = "sha256-efbfVTZhn6/72mlr3SXMrRfEab8y5RzT5hM2bUlAAWk=";
16437     };
16438     buildInputs = [ TestInDistDir ];
16439     propagatedBuildInputs = [ CaptureTiny IOAll ModuleInstall PodMarkdown ];
16440     meta = {
16441       description = "Module::Install extension to automatically convert POD to a README";
16442       homepage = "https://github.com/bingos/module-install-readmefrompod";
16443       license = with lib.licenses; [ artistic1 gpl1Plus ];
16444       maintainers = [ maintainers.sgo ];
16445     };
16446   };
16448   ModuleInstallReadmeMarkdownFromPod = buildPerlPackage {
16449     pname = "Module-Install-ReadmeMarkdownFromPod";
16450     version = "0.04";
16451     src = fetchurl {
16452       url = "mirror://cpan/authors/id/M/MA/MATTN/Module-Install-ReadmeMarkdownFromPod-0.04.tar.gz";
16453       hash = "sha256-MAsuJE+DuaVKlfhATBzTrwY1tPrpdMplOQ7kKOxmhZE=";
16454     };
16455     buildInputs = [ URI ];
16456     propagatedBuildInputs = [ ModuleInstall PodMarkdown ];
16457     meta = {
16458       description = "Create README.mkdn from POD";
16459       homepage = "https://search.cpan.org/dist/Module-Install-ReadmeMarkdownFromPod";
16460       license = with lib.licenses; [ artistic1 gpl1Plus ];
16461       maintainers = [ maintainers.sgo ];
16462     };
16463   };
16465   ModuleInstallRepository = buildPerlPackage {
16466     pname = "Module-Install-Repository";
16467     version = "0.06";
16468     src = fetchurl {
16469       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Module-Install-Repository-0.06.tar.gz";
16470       hash = "sha256-AOJZDQkznMzL2qMo0SrY7HfoMaOMmtZjcF5Z7LsYcis=";
16471     };
16472     buildInputs = [ PathClass ];
16473     meta = {
16474       description = "Automatically sets repository URL from svn/svk/Git checkout";
16475       license = with lib.licenses; [ artistic1 gpl1Plus ];
16476       maintainers = [ maintainers.sgo ];
16477     };
16478   };
16480   ModuleInstallXSUtil = buildPerlPackage {
16481     pname = "Module-Install-XSUtil";
16482     version = "0.45";
16483     src = fetchurl {
16484       url = "mirror://cpan/authors/id/G/GF/GFUJI/Module-Install-XSUtil-0.45.tar.gz";
16485       hash = "sha256-/nHlMyC+4TGXdJoLF2CaomP3H/RuXiwTDpR0Lqar31Y=";
16486     };
16487     buildInputs = [ BHooksOPAnnotation ];
16488     propagatedBuildInputs = [ ModuleInstall ];
16489     meta = {
16490       description = "Utility functions for XS modules";
16491       license = with lib.licenses; [ artistic1 gpl1Plus ];
16492     };
16493   };
16495   ModuleManifest = buildPerlPackage {
16496     pname = "Module-Manifest";
16497     version = "1.09";
16498     src = fetchurl {
16499       url = "mirror://cpan/authors/id/E/ET/ETHER/Module-Manifest-1.09.tar.gz";
16500       hash = "sha256-o5X4D/FeoOZv1sRThEtnh+1Kh1o82N+ffikoAlC9U5s=";
16501     };
16502     buildInputs = [ TestException TestWarn ];
16503     propagatedBuildInputs = [ ParamsUtil ];
16504     meta = {
16505       description = "Parse and examine a Perl distribution MANIFEST file";
16506       homepage = "https://github.com/karenetheridge/Module-Manifest";
16507       license = with lib.licenses; [ artistic1 gpl1Plus ];
16508     };
16509   };
16511   ModulePath = buildPerlPackage {
16512     pname = "Module-Path";
16513     version = "0.19";
16514     src = fetchurl {
16515       url = "mirror://cpan/authors/id/N/NE/NEILB/Module-Path-0.19.tar.gz";
16516       hash = "sha256-szF5zk3XPfzefUaAiAS5/7sR2wJF/kVafQAXR1Yv6so=";
16517     };
16518     buildInputs = [ DevelFindPerl ];
16519     meta = {
16520       description = "Get the full path to a locally installed module";
16521       homepage = "https://github.com/neilbowers/Module-Path";
16522       license = with lib.licenses; [ artistic1 gpl1Plus ];
16523       mainProgram = "mpath";
16524     };
16525   };
16527   ModulePluggable = buildPerlPackage {
16528     pname = "Module-Pluggable";
16529     version = "5.2";
16530     src = fetchurl {
16531       url = "mirror://cpan/authors/id/S/SI/SIMONW/Module-Pluggable-5.2.tar.gz";
16532       hash = "sha256-s/KtReT9ELP7kNkS142LeVqylUgNtW3GToa5+nXFpt8=";
16533     };
16534     patches = [
16535       # !!! merge this patch into Perl itself (which contains Module::Pluggable as well)
16536       ../development/perl-modules/module-pluggable.patch
16537     ];
16538     buildInputs = [ AppFatPacker ];
16539     meta = {
16540       description = "Automatically give your module the ability to have plugins";
16541       license = with lib.licenses; [ artistic1 gpl1Plus ];
16542     };
16543   };
16545   ModulePluggableFast = buildPerlPackage {
16546     pname = "Module-Pluggable-Fast";
16547     version = "0.19";
16548     src = fetchurl {
16549       url = "mirror://cpan/authors/id/M/MR/MRAMBERG/Module-Pluggable-Fast-0.19.tar.gz";
16550       hash = "sha256-CMhXcFjxmTLKG2Zre5EmoYtVajmwi+b7ObBqRTkqB18=";
16551     };
16552     propagatedBuildInputs = [ UNIVERSALrequire ];
16553     meta = {
16554       description = "Fast plugins with instantiation";
16555       license = with lib.licenses; [ artistic1 gpl1Plus ];
16556     };
16557   };
16559   ModuleRefresh = buildPerlPackage {
16560     pname = "Module-Refresh";
16561     version = "0.18";
16562     src = fetchurl {
16563       url = "mirror://cpan/authors/id/B/BP/BPS/Module-Refresh-0.18.tar.gz";
16564       hash = "sha256-4JTaqQmv32SJqeKzJzP2haLBy1zIh2BhB1SGEJsN71k=";
16565     };
16566     buildInputs = [ PathClass ];
16567     meta = {
16568       description = "Refresh %INC files when updated on disk";
16569       license = with lib.licenses; [ artistic1 gpl1Plus ];
16570     };
16571   };
16573   ModuleRuntime = buildPerlModule {
16574     pname = "Module-Runtime";
16575     version = "0.016";
16576     src = fetchurl {
16577       url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Module-Runtime-0.016.tar.gz";
16578       hash = "sha256-aDAuxkaDNUfUEL4o4JZ223UAb0qlihHzvbRP/pnw8CQ=";
16579     };
16580     meta = {
16581       description = "Runtime module handling";
16582       license = with lib.licenses; [ artistic1 gpl1Plus ];
16583     };
16584   };
16586   ModuleRuntimeConflicts = buildPerlPackage {
16587     pname = "Module-Runtime-Conflicts";
16588     version = "0.003";
16589     src = fetchurl {
16590       url = "mirror://cpan/authors/id/E/ET/ETHER/Module-Runtime-Conflicts-0.003.tar.gz";
16591       hash = "sha256-cHzcdQOMcP6Rd5uIisBQ8ShWXTlnupZoDhscfMlzOHU=";
16592     };
16593     propagatedBuildInputs = [ DistCheckConflicts ];
16594     meta = {
16595       description = "Provide information on conflicts for Module::Runtime";
16596       homepage = "https://github.com/karenetheridge/Module-Runtime-Conflicts";
16597       license = with lib.licenses; [ artistic1 gpl1Plus ];
16598     };
16599   };
16601   ModuleScanDeps = buildPerlPackage {
16602     pname = "Module-ScanDeps";
16603     version = "1.34";
16604     src = fetchurl {
16605       url = "mirror://cpan/authors/id/R/RS/RSCHUPP/Module-ScanDeps-1.34.tar.gz";
16606       hash = "sha256-ysUw5c/EE+BneXx9I3xsXNMpFcPZ+u5dlANcjzqFUOs=";
16607     };
16608     buildInputs = [ TestRequires IPCRun3 ];
16609     propagatedBuildInputs = [ TextParsewords ];
16610     meta = {
16611       description = "Recursively scan Perl code for dependencies";
16612       license = with lib.licenses; [ artistic1 gpl1Plus ];
16613       mainProgram = "scandeps.pl";
16614     };
16615   };
16617   ModuleSignature = buildPerlPackage {
16618     pname = "Module-Signature";
16619     version = "0.87";
16620     src = fetchurl {
16621       url = "mirror://cpan/authors/id/A/AU/AUDREYT/Module-Signature-0.87.tar.gz";
16622       hash = "sha256-IU6AVcUP7DcalXQ1IP4mlAAE52FpBjsrROyQoNRdaYI=";
16623     };
16624     buildInputs = [ IPCRun ];
16625     meta = {
16626       description = "Module signature file manipulation";
16627       license = with lib.licenses; [ cc0 ];
16628       mainProgram = "cpansign";
16629     };
16630   };
16632   ModuleUtil = buildPerlModule {
16633     pname = "Module-Util";
16634     version = "1.09";
16635     src = fetchurl {
16636       url = "mirror://cpan/authors/id/M/MA/MATTLAW/Module-Util-1.09.tar.gz";
16637       hash = "sha256-bPvLakUGREbsiqDuGn3dxCC1RGkwM0QYeu+E0sfz4sY=";
16638     };
16639     meta = {
16640       description = "Module name tools and transformations";
16641       license = with lib.licenses; [ artistic1 gpl1Plus ];
16642       mainProgram = "pm_which";
16643     };
16644   };
16646   ModuleVersions = buildPerlPackage {
16647     pname = "Module-Versions";
16648     version = "0.02";
16649     src = fetchurl {
16650       url = "mirror://cpan/authors/id/T/TH/THW/Module-Versions-0.02.zip";
16651       hash = "sha256-DTimWxenrFGI1zh8/+f6oSY4Rw3JNxYevz2kh7fR+Dw=";
16652     };
16653     buildInputs = [ pkgs.unzip ];
16654     meta = {
16655       description = "Handle versions of loaded modules with flexible result interface";
16656       license = with lib.licenses; [ artistic1 gpl1Plus ];
16657     };
16658   };
16660   ModuleVersionsReport = buildPerlPackage {
16661     pname = "Module-Versions-Report";
16662     version = "1.06";
16663     src = fetchurl {
16664       url = "mirror://cpan/authors/id/J/JE/JESSE/Module-Versions-Report-1.06.tar.gz";
16665       hash = "sha256-oyYdDYSxdnjYxP1V6w+JL1FE2BylPqmjjXXRoArZeWo=";
16666     };
16667     meta = {
16668       description = "Report versions of all modules in memory";
16669       license = with lib.licenses; [ artistic1 gpl1Plus ];
16670     };
16671   };
16673   MojoDOM58 = buildPerlPackage {
16674     pname = "Mojo-DOM58";
16675     version = "3.001";
16676     src = fetchurl {
16677       url = "mirror://cpan/authors/id/D/DB/DBOOK/Mojo-DOM58-3.001.tar.gz";
16678       hash = "sha256-GLJtVB5TFEFa3d8xQ2nZQMi6BrESNMpQb9vmzyJPV5Y=";
16679     };
16680     meta = {
16681       description = "Minimalistic HTML/XML DOM parser with CSS selectors";
16682       homepage = "https://github.com/Grinnz/Mojo-DOM58";
16683       license = with lib.licenses; [ artistic2 ];
16684     };
16685   };
16687   mod_perl2 = buildPerlPackage {
16688     pname = "mod_perl";
16689     version = "2.0.12";
16690     src = fetchurl {
16691       url = "mirror://cpan/authors/id/S/SH/SHAY/mod_perl-2.0.12.tar.gz";
16692       hash = "sha256-9bghtZsP3JZw5G7Q/PMtiRHyUSYYmotowWUvkiHu4mk=";
16693     };
16695     makeMakerFlags = [ "MP_AP_DESTDIR=$out" ];
16696     buildInputs = [ pkgs.apacheHttpd ];
16697     doCheck = false; # would try to start Apache HTTP server
16698     passthru.tests = nixosTests.mod_perl;
16699     meta = {
16700       description = "Embed a Perl interpreter in the Apache/2.x HTTP server";
16701       license = with lib.licenses; [ asl20 ];
16702       mainProgram = "mp2bug";
16703     };
16704   };
16706   Mojolicious = buildPerlPackage {
16707     pname = "Mojolicious";
16708     version = "9.36";
16709     src = fetchurl {
16710       url = "mirror://cpan/authors/id/S/SR/SRI/Mojolicious-9.36.tar.gz";
16711       hash = "sha256-UX7Pb9hqC3xhadVRAiOL+YUWGNt2L7ANTPDZTGJSAV8=";
16712     };
16713     meta = {
16714       description = "Real-time web framework";
16715       homepage = "https://mojolicious.org";
16716       license = with lib.licenses; [ artistic2 ];
16717       maintainers = with maintainers; [ marcusramberg sgo thoughtpolice ];
16718       mainProgram = "mojo";
16719     };
16720   };
16722   MojoliciousPluginAssetPack = buildPerlPackage {
16723     pname = "Mojolicious-Plugin-AssetPack";
16724     version = "2.14";
16725     src = fetchurl {
16726       url = "mirror://cpan/authors/id/S/SR/SRI/Mojolicious-Plugin-AssetPack-2.14.tar.gz";
16727       hash = "sha256-jwWMyIw1mb6/ZjeK7GS91uvNkMljGL3m1ov6551j6qM=";
16728     };
16729     propagatedBuildInputs = [ FileWhich IPCRun3 Mojolicious ];
16730     meta = {
16731       description = "Compress and convert css, less, sass, javascript and coffeescript files";
16732       homepage = "https://github.com/jhthorsen/mojolicious-plugin-assetpack";
16733       license = with lib.licenses; [ artistic2 ];
16734       maintainers = with maintainers; [ sgo ];
16735     };
16736   };
16738   MojoliciousPluginGravatar = buildPerlPackage {
16739     pname = "Mojolicious-Plugin-Gravatar";
16740     version = "0.04";
16741     src = fetchurl {
16742       url = "mirror://cpan/authors/id/K/KO/KOORCHIK/Mojolicious-Plugin-Gravatar-0.04.tar.gz";
16743       hash = "sha256-pJ+XDGxw+ZMLMEp1IWPLlfHZmHEvecsTZAgy5Le2dd0=";
16744     };
16745     propagatedBuildInputs = [ Mojolicious ];
16746     meta = {
16747       description = "Globally Recognized Avatars for Mojolicious";
16748       license = with lib.licenses; [ artistic1 gpl1Plus ];
16749       maintainers = with maintainers; [ sgo ];
16750     };
16751   };
16753   MojoliciousPluginI18N = buildPerlModule {
16754     pname = "Mojolicious-Plugin-I18N";
16755     version = "1.6";
16756     src = fetchurl {
16757       url = "mirror://cpan/authors/id/S/SH/SHARIFULN/Mojolicious-Plugin-I18N-1.6.tar.gz";
16758       hash = "sha256-Mvte+AN9lUt+zr71wbKyS0IKvYKXAjEvStQnlPUrUU0=";
16759     };
16760     propagatedBuildInputs = [ Mojolicious ];
16761     meta = {
16762       homepage = "https://github.com/sharifulin/Mojolicious-Plugin-I18N";
16763       description = "Internationalization Plugin for Mojolicious";
16764       license = with lib.licenses; [ artistic1 gpl1Plus ];
16765     };
16766   };
16768   MojoliciousPluginMail = buildPerlModule {
16769     pname = "Mojolicious-Plugin-Mail";
16770     version = "1.5";
16771     src = fetchurl {
16772       url = "mirror://cpan/authors/id/S/SH/SHARIFULN/Mojolicious-Plugin-Mail-1.5.tar.gz";
16773       hash = "sha256-VvDTQevDp6zzkZ9a3UPpghbqEoWqDYfn+wDAK7Dv8UY=";
16774     };
16775     propagatedBuildInputs = [ MIMEEncWords MIMELite Mojolicious ];
16776     meta = {
16777       description = "Mojolicious Plugin for send mail";
16778       homepage = "https://github.com/sharifulin/Mojolicious-Plugin-Mail";
16779       license = with lib.licenses; [ artistic1 gpl1Plus ];
16780       maintainers = [ maintainers.sgo ];
16781     };
16782   };
16784   MojoliciousPluginOpenAPI = buildPerlPackage {
16785     pname = "Mojolicious-Plugin-OpenAPI";
16786     version = "5.09";
16787     src = fetchurl {
16788       url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/Mojolicious-Plugin-OpenAPI-5.09.tar.gz";
16789       hash = "sha256-BIJdfOIe20G80Ujrz6Gu+Ek258QOhKOdvyeGcdSaMQY=";
16790     };
16791     propagatedBuildInputs = [ JSONValidator Mojolicious ];
16792     meta = {
16793       description = "OpenAPI / Swagger plugin for Mojolicious";
16794       homepage = "https://github.com/jhthorsen/mojolicious-plugin-openapi";
16795       license = with lib.licenses; [ artistic2 ];
16796       maintainers = [ maintainers.sgo ];
16797     };
16798   };
16800   MojoliciousPluginRenderFile = buildPerlPackage {
16801     pname = "Mojolicious-Plugin-RenderFile";
16802     version = "0.12";
16803     src = fetchurl {
16804       url = "mirror://cpan/authors/id/K/KO/KOORCHIK/Mojolicious-Plugin-RenderFile-0.12.tar.gz";
16805       hash = "sha256-AT5CoswGvHBBuxPJ3ziK8kAQ5peTqN8PCrHSQKphFz8=";
16806     };
16807     propagatedBuildInputs = [ Mojolicious ];
16808     meta = {
16809       description = "\"render_file\" helper for Mojolicious";
16810       homepage = "https://github.com/koorchik/Mojolicious-Plugin-RenderFile";
16811       license = with lib.licenses; [ artistic1 gpl1Plus ];
16812       maintainers = with maintainers; [ tomasajt ];
16813     };
16814   };
16816   MojoliciousPluginStatus = buildPerlPackage {
16817     pname = "Mojolicious-Plugin-Status";
16818     version = "1.17";
16819     src = fetchurl {
16820       url = "mirror://cpan/authors/id/S/SR/SRI/Mojolicious-Plugin-Status-1.17.tar.gz";
16821       hash = "sha256-TCsfr+PhkSYby0TiDo75rz+YjR25akrgsG7tQSArh7Q=";
16822     };
16823     propagatedBuildInputs = [ BSDResource CpanelJSONXS FileMap Mojolicious Sereal ];
16824     meta = {
16825       description = "Mojolicious server status";
16826       homepage = "https://mojolicious.org";
16827       license = with lib.licenses; [ artistic2 ];
16828       maintainers = [ maintainers.thoughtpolice ];
16829     };
16830   };
16832   MojoliciousPluginSyslog = buildPerlPackage {
16833     pname = "Mojolicious-Plugin-Syslog";
16834     version = "0.06";
16835     src = fetchurl {
16836       url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/Mojolicious-Plugin-Syslog-0.06.tar.gz";
16837       hash = "sha256-IuxL9TYwDseyAYuoV3C9g2ZFDBAwVDZ9srFp9Mh3QRM=";
16838     };
16839     propagatedBuildInputs = [ Mojolicious ];
16840     meta = {
16841       description = "Plugin for enabling a Mojolicious app to log to syslog";
16842       homepage = "https://github.com/jhthorsen/mojolicious-plugin-syslog";
16843       license = with lib.licenses; [ artistic2 ];
16844       maintainers = [ maintainers.sgo ];
16845     };
16846   };
16848   MojoliciousPluginTemplateToolkit = buildPerlModule {
16849     pname = "Mojolicious-Plugin-TemplateToolkit";
16850     version = "0.006";
16851     src = fetchurl {
16852       url = "mirror://cpan/authors/id/D/DB/DBOOK/Mojolicious-Plugin-TemplateToolkit-0.006.tar.gz";
16853       hash = "sha256-dBoFAmtTArtrKc+I3KICC3rv0iNHgWELpZNaqPCXNKY=";
16854     };
16855     buildInputs = [ ModuleBuildTiny ];
16856     propagatedBuildInputs = [ ClassMethodModifiers Mojolicious TemplateToolkit ];
16857     meta = {
16858       homepage = "https://github.com/Grinnz/Mojolicious-Plugin-TemplateToolkit";
16859       description = "Template Toolkit renderer plugin for Mojolicious";
16860       license = with lib.licenses; [ artistic2 ];
16861       maintainers = with maintainers; [ tomasajt ];
16862     };
16863   };
16865   MojoliciousPluginTextExceptions = buildPerlPackage {
16866     pname = "Mojolicious-Plugin-TextExceptions";
16867     version = "0.02";
16868     src = fetchurl {
16869       url = "mirror://cpan/authors/id/M/MR/MRAMBERG/Mojolicious-Plugin-TextExceptions-0.02.tar.gz";
16870       hash = "sha256-Oht0BcV4TO5mHP8bARpzlRBN1IS7kbnnWT+ralOb+HQ=";
16871     };
16872     propagatedBuildInputs = [ Mojolicious ];
16873     meta = {
16874       description = "Render exceptions as text in command line user agents";
16875       homepage = "https://github.com/marcusramberg/mojolicious-plugin-textexceptions";
16876       license = with lib.licenses; [ artistic2 ];
16877       maintainers = [ maintainers.sgo ];
16878     };
16879   };
16881   MojoliciousPluginWebpack = buildPerlPackage {
16882     pname = "Mojolicious-Plugin-Webpack";
16883     version = "1.02";
16884     src = fetchurl {
16885       url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/Mojolicious-Plugin-Webpack-1.02.tar.gz";
16886       hash = "sha256-REzqioOZquelrWt8iQ/yFgk8WM6uaxyKBl77cBC3zn0=";
16887     };
16888     propagatedBuildInputs = [ Mojolicious Filechdir ];
16889     meta = {
16890       description = "Mojolicious <3 Webpack";
16891       homepage = "https://github.com/jhthorsen/mojolicious-plugin-webpack";
16892       license = with lib.licenses; [ artistic2 ];
16893       maintainers = [ maintainers.sgo ];
16894     };
16895   };
16897   MojoRedis = buildPerlPackage {
16898     pname = "Mojo-Redis";
16899     version = "3.29";
16900     src = fetchurl {
16901       url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/Mojo-Redis-3.29.tar.gz";
16902       hash = "sha256-oDMZpF0uYTpsfS1ZrAD9SwtHiGVi5ish3pG0r4llgII=";
16903     };
16904     propagatedBuildInputs = [ Mojolicious ProtocolRedisFaster ];
16905     meta = {
16906       description = "Redis driver based on Mojo::IOLoop";
16907       homepage = "https://github.com/jhthorsen/mojo-redis";
16908       license = with lib.licenses; [ artistic2 ];
16909       maintainers = [ maintainers.sgo ];
16910     };
16911   };
16913   MojoSAML = buildPerlModule {
16914     pname = "Mojo-SAML";
16915     version = "0.07";
16916     src = fetchurl {
16917       url = "mirror://cpan/authors/id/J/JB/JBERGER/Mojo-SAML-0.07.tar.gz";
16918       hash = "sha256-csJMrNtvHXp14uqgBDfHFKv1eafSENSqTT8g8e/0cQ0=";
16919     };
16920     buildInputs = [ ModuleBuildTiny ];
16921     propagatedBuildInputs = [ CryptOpenSSLRSA CryptOpenSSLX509 DataGUID Mojolicious XMLCanonicalizeXML ];
16922     meta = {
16923       description = "SAML2 toolkit using the Mojo toolkit";
16924       license = with lib.licenses; [ artistic1 gpl1Plus ];
16925       maintainers = [ maintainers.sgo ];
16926     };
16927   };
16929   MojoSQLite = buildPerlModule {
16930     pname = "Mojo-SQLite";
16931     version = "3.009";
16932     src = fetchurl {
16933       url = "mirror://cpan/authors/id/D/DB/DBOOK/Mojo-SQLite-3.009.tar.gz";
16934       hash = "sha256-Vzmprz/A/BYrOAMt9hCgcANSY7++C+wWrsUvDd3Xtkc=";
16935     };
16936     buildInputs = [ ModuleBuildTiny ];
16937     propagatedBuildInputs = [ DBDSQLite Mojolicious SQLAbstractPg URIdb URI ];
16938     meta = {
16939       description = "Tiny Mojolicious wrapper for SQLite";
16940       homepage = "https://github.com/Grinnz/Mojo-SQLite";
16941       license = with lib.licenses; [ artistic2 ];
16942       maintainers = [ maintainers.sgo ];
16943     };
16944   };
16946   Mojomysql = buildPerlPackage {
16947     pname = "Mojo-mysql";
16948     version = "1.26";
16949     src = fetchurl {
16950       url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/Mojo-mysql-1.26.tar.gz";
16951       hash = "sha256-H9LjBlr4Je9N2x2W9g9MVc9NCCD77L0wrHGdTeJx5rw=";
16952     };
16953     propagatedBuildInputs = [ DBDmysql Mojolicious SQLAbstract ];
16954     buildInputs = [ TestDeep ];
16955     meta = {
16956       description = "Mojolicious and Async MySQL/MariaDB";
16957       homepage = "https://github.com/jhthorsen/mojo-mysql";
16958       license = with lib.licenses; [ artistic2 ];
16959       maintainers = [ maintainers.sgo ];
16960     };
16961   };
16963   MojoIOLoopDelay = buildPerlModule {
16964     pname = "Mojo-IOLoop-Delay";
16965     version = "8.76";
16966     src = fetchurl {
16967       url = "mirror://cpan/authors/id/J/JB/JBERGER/Mojo-IOLoop-Delay-8.76.tar.gz";
16968       hash = "sha256-jsvAYUg3IdkgRZQya+zpXM2/vbbRihc8gt1xgXLQqe0=";
16969     };
16970     buildInputs = [ ModuleBuildTiny ];
16971     propagatedBuildInputs = [ Mojolicious ];
16972     meta = {
16973       description = "(DISCOURAGED) Promises/A+ and flow-control helpers";
16974       homepage = "https://github.com/jberger/Mojo-IOLoop-Delay";
16975       license = with lib.licenses; [ artistic2 ];
16976       maintainers = [ maintainers.zakame ];
16977     };
16978   };
16980   MojoIOLoopForkCall = buildPerlModule {
16981     pname = "Mojo-IOLoop-ForkCall";
16982     version = "0.21";
16983     src = fetchurl {
16984       url = "mirror://cpan/authors/id/J/JB/JBERGER/Mojo-IOLoop-ForkCall-0.21.tar.gz";
16985       hash = "sha256-8dpdh4RxvdhvAcQjhQgAgE9ttCtUU8IW8Jslt5RYS3g=";
16986     };
16987     propagatedBuildInputs = [ IOPipely Mojolicious MojoIOLoopDelay ];
16988     preBuild = ''
16989       # This module needs the deprecated Mojo::IOLoop::Delay
16990       substituteInPlace lib/Mojo/IOLoop/ForkCall.pm \
16991         --replace "use Mojo::IOLoop;" "use Mojo::IOLoop; use Mojo::IOLoop::Delay;"
16992     '';
16993     meta = {
16994       description = "(DEPRECATED) run blocking functions asynchronously by forking";
16995       homepage = "https://github.com/jberger/Mojo-IOLoop-ForkCall";
16996       license = with lib.licenses; [ artistic1 gpl1Plus ];
16997       maintainers = [ maintainers.zakame ];
16998     };
16999   };
17001   MojoJWT = buildPerlModule {
17002     pname = "Mojo-JWT";
17003     version = "0.09";
17004     src = fetchurl {
17005       url = "mirror://cpan/authors/id/J/JB/JBERGER/Mojo-JWT-0.09.tar.gz";
17006       hash = "sha256-wE4DmD4MbyvORdCOoucph5yWee+mNLDmjLa4t7SoWIY=";
17007     };
17008     buildInputs = [ ModuleBuildTiny ];
17009     propagatedBuildInputs = [ Mojolicious ];
17010     meta = {
17011       description = "JSON Web Token the Mojo way";
17012       homepage = "https://github.com/jberger/Mojo-JWT";
17013       license = with lib.licenses; [ artistic1 gpl1Plus ];
17014       maintainers = [ maintainers.sgo ];
17015     };
17016   };
17018   MojoPg = buildPerlPackage {
17019     pname = "Mojo-Pg";
17020     version = "4.27";
17021     src = fetchurl {
17022       url = "mirror://cpan/authors/id/S/SR/SRI/Mojo-Pg-4.27.tar.gz";
17023       hash = "sha256-oyLI3wDj5WVf300LernXmSiTIOKfZP6ZrHrxJEhO+dg=";
17024     };
17025     propagatedBuildInputs = [ DBDPg Mojolicious SQLAbstractPg ];
17026     buildInputs = [ TestDeep ];
17027     meta = {
17028       description = "Mojolicious â™¥ PostgreSQL";
17029       homepage = "https://mojolicious.org";
17030       license = with lib.licenses; [ artistic2 ];
17031       maintainers = [ maintainers.sgo ];
17032     };
17033   };
17035   MojoUserAgentCached = buildPerlPackage {
17036     pname = "Mojo-UserAgent-Cached";
17037     version = "1.25";
17038     src = fetchurl {
17039       url = "mirror://cpan/authors/id/N/NI/NICOMEN/Mojo-UserAgent-Cached-1.25.tar.gz";
17040       hash = "sha256-lZmikTjq/ZKPWF7jDvFm0j/x3FKkBn50hyxR4W3shko=";
17041     };
17042     buildInputs = [ ModuleInstall ];
17043     propagatedBuildInputs = [ AlgorithmLCSS CHI DataSerializer DevelStackTrace Mojolicious Readonly StringTruncate ];
17044     doCheck = !stdenv.hostPlatform.isDarwin;
17045     meta = {
17046       description = "Caching, Non-blocking I/O HTTP, Local file and WebSocket user agent";
17047       homepage = "https://github.com/nicomen/mojo-useragent-cached";
17048       license = with lib.licenses; [ artistic1 gpl1Plus ];
17049       maintainers = [ maintainers.sgo ];
17050     };
17051   };
17053   MongoDB = buildPerlPackage {
17054     pname = "MongoDB";
17055     version = "2.2.2";
17056     src = fetchurl {
17057       url = "mirror://cpan/authors/id/M/MO/MONGODB/MongoDB-v2.2.2.tar.gz";
17058       hash = "sha256-IBk1+S2slPOcNd5zZh6LJSQ55JbyKGV9uF/5MlfDJo8=";
17059     };
17060     buildInputs = [ JSONMaybeXS PathTiny TestDeep TestFatal TimeMoment ];
17061     propagatedBuildInputs = [ AuthenSASLSASLprep AuthenSCRAM BSON IOSocketSSL NetSSLeay ClassXSAccessor BSONXS TypeTinyXS MozillaCA Moo NetDNS SafeIsa SubQuote TieIxHash TypeTiny UUIDURandom boolean namespaceclean ];
17062     meta = {
17063       description = "Official MongoDB Driver for Perl (EOL)";
17064       homepage = "https://github.com/mongodb-labs/mongo-perl-driver";
17065       license = with lib.licenses; [ asl20 ];
17066     };
17067   };
17069   MonitoringPlugin = buildPerlPackage {
17070     pname = "Monitoring-Plugin";
17071     version = "0.40";
17072     src = fetchurl {
17073       url = "mirror://cpan/authors/id/N/NI/NIERLEIN/Monitoring-Plugin-0.40.tar.gz";
17074       hash = "sha256-+LprfifSuwpPmjKVWiRC1OQo0cSLgMixIUL/YRvnI28=";
17075     };
17076     propagatedBuildInputs = [ ClassAccessor ConfigTiny MathCalcUnits ParamsValidate ];
17077     meta = {
17078       description = ''
17079         A family of perl modules to streamline writing Naemon,
17080         Nagios, Icinga or Shinken (and compatible) plugins
17081       '';
17082       license = with lib.licenses; [ artistic1 gpl1Plus ];
17083     };
17084   };
17086   IOPipely = buildPerlPackage {
17087     pname = "IO-Pipely";
17088     version = "0.006";
17089     src = fetchurl {
17090       url = "mirror://cpan/authors/id/R/RC/RCAPUTO/IO-Pipely-0.006.tar.gz";
17091       hash = "sha256-Dj/NhBoyfvtUn6AbIIPcNpXnLqDGMwPlbtUWG/gQQTs=";
17092     };
17093     meta = {
17094       description = "Portably create pipe() or pipe-like handles, one way or another";
17095       homepage = "https://search.cpan.org/dist/IO-Pipely";
17096       license = with lib.licenses; [ artistic1 gpl1Plus ];
17097     };
17098   };
17100   Moo = buildPerlPackage {
17101     pname = "Moo";
17102     version = "2.005005";
17103     src = fetchurl {
17104       url = "mirror://cpan/authors/id/H/HA/HAARG/Moo-2.005005.tar.gz";
17105       hash = "sha256-+1opUmSfrtBzc/Igt4AEqcaro4dzkTN0DBdw6bH0sQg=";
17106     };
17107     buildInputs = [ TestFatal ];
17108     propagatedBuildInputs = [ ClassMethodModifiers ModuleRuntime RoleTiny SubQuote ];
17109     meta = {
17110       description = "Minimalist Object Orientation (with Moose compatibility)";
17111       license = with lib.licenses; [ artistic1 gpl1Plus ];
17112     };
17113   };
17115   Moose = buildPerlPackage {
17116     pname = "Moose";
17117     version = "2.2206";
17118     src = fetchurl {
17119       url = "mirror://cpan/authors/id/E/ET/ETHER/Moose-2.2206.tar.gz";
17120       hash = "sha256-Z5csTivDn72jhRgXevDme7vrVIVi5OxLdZoaelg+UFs=";
17121     };
17122     buildInputs = [ DistCheckConflicts CPANMetaCheck TestCleanNamespaces TestFatal TestNeeds TestRequires ];
17123     propagatedBuildInputs = [ ClassLoadXS DataOptList DevelGlobalDestruction DevelOverloadInfo DevelStackTrace EvalClosure MROCompat ModuleRuntimeConflicts PackageDeprecationManager PackageStashXS ParamsUtil SubExporter TryTiny ];
17124     preConfigure = ''
17125       export LD=$CC
17126     '';
17127     meta = {
17128       description = "Postmodern object system for Perl 5";
17129       homepage = "http://moose.perl.org";
17130       license = with lib.licenses; [ artistic1 gpl1Plus ];
17131       maintainers = [ ];
17132       mainProgram = "moose-outdated";
17133     };
17134   };
17136   MooXHandlesVia = buildPerlPackage {
17137     pname = "MooX-HandlesVia";
17138     version = "0.001009";
17139     src = fetchurl {
17140       url = "mirror://cpan/authors/id/T/TO/TOBYINK/MooX-HandlesVia-0.001009.tar.gz";
17141       hash = "sha256-cWNT44iU7Lfo5MF7yVSD219ZACsDVBtUpywn8qjzbBI=";
17142     };
17143     buildInputs = [ MooXTypesMooseLike TestException TestFatal ];
17144     propagatedBuildInputs = [ DataPerl Moo ];
17145     meta = {
17146       description = "NativeTrait-like behavior for Moo";
17147       license = with lib.licenses; [ artistic1 gpl1Plus ];
17148     };
17149   };
17151   MooXLocalePassthrough = buildPerlPackage {
17152     pname = "MooX-Locale-Passthrough";
17153     version = "0.001";
17154     src = fetchurl {
17155       url = "mirror://cpan/authors/id/R/RE/REHSACK/MooX-Locale-Passthrough-0.001.tar.gz";
17156       hash = "sha256-egWCflKrWh3eLqXHEpJ7HljI0lFmTZZmJ6353TDsBRI=";
17157     };
17158     propagatedBuildInputs = [ Moo ];
17159     meta = {
17160       description = "Provide API used in translator modules without translating";
17161       homepage = "https://metacpan.org/release/MooX-Locale-Passthrough";
17162       license = with lib.licenses; [ artistic1 gpl1Plus ];
17163     };
17164   };
17166   MooXLocaleTextDomainOO = buildPerlPackage {
17167     pname = "MooX-Locale-TextDomain-OO";
17168     version = "0.001";
17169     src = fetchurl {
17170       url = "mirror://cpan/authors/id/R/RE/REHSACK/MooX-Locale-TextDomain-OO-0.001.tar.gz";
17171       hash = "sha256-W45Sz/3YSpXTaMoQuUNUG5lqk+DQY5b0/hkzVojkFz0=";
17172     };
17173     propagatedBuildInputs = [ LocaleTextDomainOO MooXLocalePassthrough ];
17174     meta = {
17175       description = "Provide API used in translator modules without translating";
17176       homepage = "https://metacpan.org/release/MooX-Locale-TextDomain-OO";
17177       license = with lib.licenses; [ artistic1 gpl1Plus ];
17178     };
17179   };
17181   MooXOptions = buildPerlPackage {
17182     pname = "MooX-Options";
17183     version = "4.103";
17184     src = fetchurl {
17185       url = "mirror://cpan/authors/id/R/RE/REHSACK/MooX-Options-4.103.tar.gz";
17186       hash = "sha256-TfnVdPjybbAivwbBvaRwgolFEJjC4VYzNd840jsHMm0=";
17187     };
17188     propagatedBuildInputs = [ GetoptLongDescriptive MROCompat MooXLocalePassthrough PathClass UnicodeLineBreak strictures ];
17189     buildInputs = [ Mo MooXCmd MooXLocaleTextDomainOO Moose TestTrap ];
17190     preCheck = "rm t/16-namespace_clean.t"; # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=942275
17191     meta = {
17192       description = "Explicit Options eXtension for Object Class";
17193       homepage = "https://metacpan.org/celogeek/MooX-Options";
17194       license = with lib.licenses; [ artistic1 gpl1Plus ];
17195     };
17196   };
17198   MooXSingleton = buildPerlModule {
17199     pname = "MooX-Singleton";
17200     version = "1.20";
17201     src = fetchurl {
17202       url = "mirror://cpan/authors/id/A/AJ/AJGB/MooX-Singleton-1.20.tar.gz";
17203       hash = "sha256-99dib//emPhewSwe4msB8Tmk3d0vRT6lbDQd8ZTjIQ4=";
17204     };
17205     propagatedBuildInputs = [ RoleTiny ];
17206     buildInputs = [ Moo ];
17207     meta = {
17208       description = "Turn your Moo class into singleton";
17209       homepage = "https://search.cpan.org/dist/MooX-Singleton";
17210       license = with lib.licenses; [ artistic1 gpl1Plus ];
17211     };
17212   };
17214   MooXStrictConstructor = buildPerlPackage {
17215     pname = "MooX-StrictConstructor";
17216     version = "0.011";
17217     src = fetchurl {
17218       url = "mirror://cpan/authors/id/H/HA/HARTZELL/MooX-StrictConstructor-0.011.tar.gz";
17219       hash = "sha256-2jgvgi/8TiKgOqQZpCVydJmdNtiaThI27PT892vGU+I=";
17220     };
17221     propagatedBuildInputs = [ Moo strictures ];
17222     buildInputs = [ TestFatal ];
17223     meta = {
17224       description = "Make your Moo-based object constructors blow up on unknown attributes";
17225       homepage = "https://metacpan.org/release/MooX-StrictConstructor";
17226       license = with lib.licenses; [ artistic1 gpl1Plus ];
17227     };
17228   };
17230   MooXTypesMooseLike = buildPerlPackage {
17231     pname = "MooX-Types-MooseLike";
17232     version = "0.29";
17233     src = fetchurl {
17234       url = "mirror://cpan/authors/id/M/MA/MATEU/MooX-Types-MooseLike-0.29.tar.gz";
17235       hash = "sha256-HTeAqpvqQwr75lqox25xjxBFzniKrdpBFvWdO3p60rQ=";
17236     };
17237     propagatedBuildInputs = [ ModuleRuntime ];
17238     buildInputs = [ Moo TestFatal ];
17239     meta = {
17240       description = "Some Moosish types and a type builder";
17241       license = with lib.licenses; [ artistic1 gpl1Plus ];
17242     };
17243   };
17245   MooXTypesMooseLikeNumeric = buildPerlPackage {
17246     pname = "MooX-Types-MooseLike-Numeric";
17247     version = "1.03";
17248     src = fetchurl {
17249       url = "mirror://cpan/authors/id/M/MA/MATEU/MooX-Types-MooseLike-Numeric-1.03.tar.gz";
17250       hash = "sha256-Fq3rYXuWPQEBeZIsLk6HYt93x1Iy4XMgtFmGjElwxEs=";
17251     };
17252     buildInputs = [ Moo TestFatal ];
17253     propagatedBuildInputs = [ MooXTypesMooseLike ];
17254     meta = {
17255       description = "Moo types for numbers";
17256       license = with lib.licenses; [ artistic1 gpl1Plus ];
17257     };
17258   };
17260   MooXTypeTiny = buildPerlPackage {
17261     pname = "MooX-TypeTiny";
17262     version = "0.002003";
17263     src = fetchurl {
17264       url = "mirror://cpan/authors/id/H/HA/HAARG/MooX-TypeTiny-0.002003.tar.gz";
17265       hash = "sha256-2B4m/2+NsQJh8Ah/ltxUNn3LSanz3o1TI4+DTs4ZYks=";
17266     };
17267     buildInputs = [ TestFatal ];
17268     propagatedBuildInputs = [ Moo TypeTiny ];
17269     meta = {
17270       description = "Tiny, yet Moo(se)-compatible type constraint";
17271       homepage = "https://typetiny.toby.ink";
17272       license = with lib.licenses; [ artistic1 gpl1Plus ];
17273     };
17274   };
17276   MooseAutobox = buildPerlModule {
17277     pname = "Moose-Autobox";
17278     version = "0.16";
17279     src = fetchurl {
17280       url = "mirror://cpan/authors/id/E/ET/ETHER/Moose-Autobox-0.16.tar.gz";
17281       hash = "sha256-kkAdpM9ITrcYjsGWtoGG76eCoQK0UeoVbNi4dy5ocFU=";
17282     };
17283     buildInputs = [ ModuleBuildTiny TestException ];
17284     propagatedBuildInputs = [ ListMoreUtils Moose SyntaxKeywordJunction autobox namespaceautoclean ];
17285     meta = {
17286       description = "Autoboxed wrappers for Native Perl datatypes";
17287       homepage = "https://github.com/moose/Moose-Autobox";
17288       license = with lib.licenses; [ artistic1 gpl1Plus ];
17289     };
17290   };
17292   MooseXABC = buildPerlPackage {
17293     pname = "MooseX-ABC";
17294     version = "0.06";
17295     src = fetchurl {
17296       url = "mirror://cpan/authors/id/D/DO/DOY/MooseX-ABC-0.06.tar.gz";
17297       hash = "sha256-Tr7suUbkVSssRyH1u/I+9huTJlELVzlr9ZkLEW8Dfuo=";
17298     };
17299     buildInputs = [ TestFatal ];
17300     propagatedBuildInputs = [ Moose ];
17301     meta = {
17302       description = "Abstract base classes for Moose";
17303       homepage = "https://metacpan.org/release/MooseX-ABC";
17304       license = with lib.licenses; [ artistic1 gpl1Plus ];
17305     };
17306   };
17308   MooseXAliases = buildPerlPackage {
17309     pname = "MooseX-Aliases";
17310     version = "0.11";
17311     src = fetchurl {
17312       url = "mirror://cpan/authors/id/D/DO/DOY/MooseX-Aliases-0.11.tar.gz";
17313       hash = "sha256-xIUPlyQmw0R6ru2Ny0Az6ERgylFwWtPqeLY6+Rn+B0g=";
17314     };
17315     buildInputs = [ TestFatal ];
17316     propagatedBuildInputs = [ Moose ];
17317     meta = {
17318       description = "Easy aliasing of methods and attributes in Moose";
17319       license = with lib.licenses; [ artistic1 gpl1Plus ];
17320     };
17321   };
17323   MooseXAppCmd = buildPerlModule {
17324     pname = "MooseX-App-Cmd";
17325     version = "0.34";
17326     src = fetchurl {
17327       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-App-Cmd-0.34.tar.gz";
17328       hash = "sha256-9eLy7xKcOI8qPjb1PeWYBErxtyLofXEFKdBcwl0jesI=";
17329     };
17330     buildInputs = [ ModuleBuildTiny MooseXConfigFromFile TestOutput YAML ];
17331     propagatedBuildInputs = [ AppCmd MooseXGetopt MooseXNonMoose ];
17332     meta = {
17333       description = "Mashes up MooseX::Getopt and App::Cmd";
17334       homepage = "https://github.com/moose/MooseX-App-Cmd";
17335       license = with lib.licenses; [ artistic1 gpl1Plus ];
17336     };
17337   };
17339   MooseXStorageFormatJSONpm = buildPerlPackage {
17340     pname = "MooseX-Storage-Format-JSONpm";
17341     version = "0.093094";
17342     src = fetchurl {
17343       url = "mirror://cpan/authors/id/R/RJ/RJBS/MooseX-Storage-Format-JSONpm-0.093094.tar.gz";
17344       hash = "sha256-9sgItyC99HI4VaZ4sblQLHSSABXFq8YL2uasYNFGxYQ=";
17345     };
17346     buildInputs = [ Moose TestDeepJSON TestWithoutModule DigestHMAC MooseXTypes ];
17347     propagatedBuildInputs = [ JSON MooseXRoleParameterized MooseXStorage namespaceautoclean ];
17348     meta = {
17349       description = "Format role for MooseX::Storage using JSON.pm";
17350       homepage = "https://github.com/rjbs/MooseX-Storage-Format-JSONpm";
17351       license = with lib.licenses; [ artistic1 gpl1Plus ];
17352     };
17353   };
17355   MooX = buildPerlPackage {
17356     pname = "MooX";
17357     version = "0.101";
17358     src = fetchurl {
17359       url = "mirror://cpan/authors/id/G/GE/GETTY/MooX-0.101.tar.gz";
17360       hash = "sha256-L/kaZW54quCspCKTgp16flrLm/IrBAFjWyq2yHDeMtU=";
17361     };
17362     propagatedBuildInputs = [ DataOptList ImportInto Moo ];
17363     meta = {
17364       description = "Using Moo and MooX:: packages the most lazy way";
17365       homepage = "https://github.com/Getty/p5-moox";
17366       license = with lib.licenses; [ artistic1 gpl1Plus ];
17367     };
17368   };
17370   MooXAliases = buildPerlPackage {
17371     pname = "MooX-Aliases";
17372     version = "0.001006";
17373     src = fetchurl {
17374       url = "mirror://cpan/authors/id/H/HA/HAARG/MooX-Aliases-0.001006.tar.gz";
17375       hash = "sha256-AWAxJ4ysYSY9AZUt/lv7XztGtLhCsv/6nyybiKrGOGc=";
17376     };
17377     propagatedBuildInputs = [ Moo strictures ];
17378     buildInputs = [ TestFatal ];
17379     meta = {
17380       description = "Easy aliasing of methods and attributes in Moo";
17381       license = with lib.licenses; [ artistic1 gpl1Plus ];
17382     };
17383   };
17385   MooXCmd = buildPerlPackage {
17386     pname = "MooX-Cmd";
17387     version = "0.017";
17388     src = fetchurl {
17389       url = "mirror://cpan/authors/id/R/RE/REHSACK/MooX-Cmd-0.017.tar.gz";
17390       hash = "sha256-lD/yjaqAiXMnx8X+xacQDPqsktrw+fl8OOOnfQCucPU=";
17391     };
17392     propagatedBuildInputs = [ ListMoreUtils ModulePluggable Moo PackageStash ParamsUtil RegexpCommon ];
17393     buildInputs = [ CaptureTiny ];
17394     meta = {
17395       description = "Giving an easy Moo style way to make command organized CLI apps";
17396       homepage = "https://metacpan.org/release/MooX-Cmd";
17397       license = with lib.licenses; [ artistic1 gpl1Plus ];
17398     };
17399   };
17401   MooXlate = buildPerlPackage {
17402     pname = "MooX-late";
17403     version = "0.100";
17404     src = fetchurl {
17405       url = "mirror://cpan/authors/id/T/TO/TOBYINK/MooX-late-0.100.tar.gz";
17406       hash = "sha256-KuWx49pavA5ABieOy8+o+nwiTqVSmmpoisuyKcCeal8=";
17407     };
17408     buildInputs = [ TestFatal TestRequires ];
17409     propagatedBuildInputs = [ Moo SubHandlesVia ];
17410     meta = {
17411       description = "Easily translate Moose code to Moo";
17412       homepage = "https://metacpan.org/release/MooX-late";
17413       license = with lib.licenses; [ artistic1 gpl1Plus ];
17414     };
17415   };
17417   MouseXSimpleConfig = buildPerlPackage {
17418     pname = "MouseX-SimpleConfig";
17419     version = "0.11";
17420     src = fetchurl {
17421       url = "mirror://cpan/authors/id/M/MJ/MJGARDNER/MouseX-SimpleConfig-0.11.tar.gz";
17422       hash = "sha256-JX84QJHTPTQDc6YVOUcDnGmNxEnR75iTNWRPw9LaAGk=";
17423     };
17424     propagatedBuildInputs = [ ConfigAny MouseXConfigFromFile ];
17425     meta = {
17426       description = "Mouse role for setting attributes from a simple configfile";
17427       license = with lib.licenses; [ artistic1 gpl1Plus ];
17428     };
17429   };
17431   TestArchiveLibarchive = buildPerlPackage {
17432     pname = "Test-Archive-Libarchive";
17433     version = "0.02";
17434     src = fetchurl {
17435       url = "mirror://cpan/authors/id/P/PL/PLICEASE/Test-Archive-Libarchive-0.02.tar.gz";
17436       hash = "sha256-KxkYZx4F2i2dIiwQx9kXWFpiQYb+r7j4SQhZnDRwJ1E=";
17437     };
17438     propagatedBuildInputs = [ RefUtil Test2Suite ];
17439     meta = {
17440       homepage = "https://metacpan.org/pod/Test::Archive::Libarchive";
17441       description = "Testing tools for Archive::Libarchive";
17442       license = with lib.licenses; [ artistic1 gpl1Plus ];
17443       maintainers = with maintainers; [ tomasajt ];
17444     };
17445   };
17447   TestPostgreSQL = buildPerlModule {
17448     pname = "Test-PostgreSQL";
17449     version = "1.29";
17450     src = fetchurl {
17451       url = "mirror://cpan/authors/id/T/TJ/TJC/Test-PostgreSQL-1.29.tar.gz";
17452       hash = "sha256-GKz35YnKTMqc3kdgm1NsnYI8hWLRqlIQwWjl6xuOT54=";
17453     };
17454     buildInputs = [ ModuleBuildTiny TestSharedFork pkgs.postgresql ];
17455     propagatedBuildInputs = [ DBDPg DBI FileWhich FunctionParameters Moo TieHashMethod TryTiny TypeTiny ];
17457     makeMakerFlags = [ "POSTGRES_HOME=${pkgs.postgresql}" ];
17459     meta = {
17460       description = "PostgreSQL runner for tests";
17461       homepage = "https://github.com/TJC/Test-postgresql";
17462       license = with lib.licenses; [ artistic2 ];
17463     };
17464   };
17466   TestUseAllModules = buildPerlPackage {
17467     pname = "Test-UseAllModules";
17468     version = "0.17";
17469     src = fetchurl {
17470       url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/Test-UseAllModules-0.17.tar.gz";
17471       hash = "sha256-px8v6LlquL/Cdgqh0xNeoEmlsg3LEFRXt2mhGVx6JQk=";
17472     };
17473     meta = {
17474       description = "Do use_ok() for all the MANIFESTed modules";
17475       license = with lib.licenses; [ artistic1 gpl1Plus ];
17476     };
17477   };
17479   TestValgrind = buildPerlPackage {
17480     pname = "Test-Valgrind";
17481     version = "1.19";
17482     src = fetchurl {
17483       url = "mirror://cpan/authors/id/V/VP/VPIT/Test-Valgrind-1.19.tar.gz";
17484       hash = "sha256-GDinoV/ueo8Gnk5rRhxeFpBYthW437Q3hLPV2hpggRs=";
17485     };
17486     propagatedBuildInputs = [ EnvSanctify FileHomeDir PerlDestructLevel XMLTwig ];
17487     meta = {
17488       description = "Generate suppressions, analyse and test any command with valgrind";
17489       homepage = "https://search.cpan.org/dist/Test-Valgrind";
17490       license = with lib.licenses; [ artistic1 gpl1Plus ];
17491     };
17492   };
17494   MouseXTypesPathClass = buildPerlPackage {
17495     pname = "MouseX-Types-Path-Class";
17496     version = "0.07";
17497     src = fetchurl {
17498       url = "mirror://cpan/authors/id/M/MA/MASAKI/MouseX-Types-Path-Class-0.07.tar.gz";
17499       hash = "sha256-Io1LTz8O2VRyeGkdC3xf5T2Qh0pp33CaSXA8avh8Cd4=";
17500     };
17501     buildInputs = [ TestUseAllModules ];
17502     propagatedBuildInputs = [ MouseXTypes PathClass ];
17503     meta = {
17504       description = "Cross-platform path specification manipulation";
17505       license = with lib.licenses; [ artistic1 gpl1Plus ];
17506     };
17507   };
17509   MouseXTypes = buildPerlPackage {
17510     pname = "MouseX-Types";
17511     version = "0.06";
17512     src = fetchurl {
17513       url = "mirror://cpan/authors/id/G/GF/GFUJI/MouseX-Types-0.06.tar.gz";
17514       hash = "sha256-dyiEQf2t0Vvu7JoIE+zorsFULx2M6q7BR1Wz8xb7z4s=";
17515     };
17516     buildInputs = [ TestException ];
17517     propagatedBuildInputs = [ AnyMoose ];
17518     meta = {
17519       description = "Organize your Mouse types in libraries";
17520       license = with lib.licenses; [ artistic1 gpl1Plus ];
17521     };
17522   };
17524   MouseXConfigFromFile = buildPerlPackage {
17525     pname = "MouseX-ConfigFromFile";
17526     version = "0.05";
17527     src = fetchurl {
17528       url = "mirror://cpan/authors/id/M/MA/MASAKI/MouseX-ConfigFromFile-0.05.tar.gz";
17529       hash = "sha256-khsxyxP8H5gqYC+OI4Fbet0joiQlfkN5Dih1BM6HlTQ=";
17530     };
17531     buildInputs = [ TestUseAllModules ];
17532     propagatedBuildInputs = [ MouseXTypesPathClass ];
17533     meta = {
17534       description = "Abstract Mouse role for setting attributes from a configfile";
17535       license = with lib.licenses; [ artistic1 gpl1Plus ];
17536     };
17537   };
17539   MouseXGetopt = buildPerlModule {
17540     pname = "MouseX-Getopt";
17541     version = "0.38";
17542     src = fetchurl {
17543       url = "mirror://cpan/authors/id/G/GF/GFUJI/MouseX-Getopt-0.38.tar.gz";
17544       hash = "sha256-3j6o70Ut2VAeqMTtqHRLciRgJgKwRpJgft19YrefA48=";
17545     };
17546     buildInputs = [ ModuleBuildTiny MouseXConfigFromFile MouseXSimpleConfig TestException TestWarn ];
17547     propagatedBuildInputs = [ GetoptLongDescriptive Mouse ];
17548     preCheck = ''
17549       # Remove tests that fail due to updated Getopt::Long::Descriptive
17550       rm -f t/109_help_flag.t t/107_no_auto_help.t t/104_override_usage.t t/110_sort_usage_by_attr_order.t
17551     '';
17552     meta = {
17553       description = "Mouse role for processing command line options";
17554       homepage = "https://github.com/gfx/mousex-getopt";
17555       license = with lib.licenses; [ artistic1 gpl1Plus ];
17556     };
17557   };
17559   MooseXAttributeChained = buildPerlModule {
17560     pname = "MooseX-Attribute-Chained";
17561     version = "1.0.3";
17562     src = fetchurl {
17563       url = "mirror://cpan/authors/id/T/TO/TOMHUKINS/MooseX-Attribute-Chained-1.0.3.tar.gz";
17564       hash = "sha256-5+OKp8O3i1c06dQ892gy/OAHZ+alPV3Xmhci2GdtXk4=";
17565     };
17566     propagatedBuildInputs = [ Moose ];
17567     meta = {
17568       description = "Attribute that returns the instance to allow for chaining";
17569       license = with lib.licenses; [ artistic1 gpl1Plus ];
17570     };
17571   };
17573   MooseXAttributeHelpers = buildPerlModule {
17574     pname = "MooseX-AttributeHelpers";
17575     version = "0.25";
17576     src = fetchurl {
17577       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-AttributeHelpers-0.25.tar.gz";
17578       hash = "sha256-sMgZ7IOZmyWLJI+CBZ+ll1oM7jZUI6u+4O+spUAcXsY=";
17579     };
17580     buildInputs = [ ModuleBuildTiny TestException ];
17581     propagatedBuildInputs = [ Moose ];
17582     meta = {
17583       description = "(DEPRECATED) Extend your attribute interfaces";
17584       homepage = "https://github.com/moose/MooseX-AttributeHelpers";
17585       license = with lib.licenses; [ artistic1 gpl1Plus ];
17586     };
17587   };
17589   MooseXClone = buildPerlModule {
17590     pname = "MooseX-Clone";
17591     version = "0.06";
17592     src = fetchurl {
17593       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Clone-0.06.tar.gz";
17594       hash = "sha256-y9eCXbnnSwU/UkVEoBTwZv3OKQMW67Vo+HZ5GBs5jac=";
17595     };
17596     propagatedBuildInputs = [ DataVisitor HashUtilFieldHashCompat namespaceautoclean ];
17597     buildInputs = [ ModuleBuildTiny ];
17598     meta = {
17599       description = "Fine-grained cloning support for Moose objects";
17600       license = with lib.licenses; [ artistic1 gpl1Plus ];
17601     };
17602   };
17604   MooseXConfigFromFile = buildPerlModule {
17605     pname = "MooseX-ConfigFromFile";
17606     version = "0.14";
17607     src = fetchurl {
17608       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-ConfigFromFile-0.14.tar.gz";
17609       hash = "sha256-mtNDzZ+G1xS+m1S5xopEPYrMZQG2rWsV6coBMLLpbwg=";
17610     };
17611     buildInputs = [ ModuleBuildTiny TestDeep TestFatal TestRequires TestWithoutModule ];
17612     propagatedBuildInputs = [ MooseXTypesPathTiny ];
17613     meta = {
17614       description = "Abstract Moose role for setting attributes from a configfile";
17615       homepage = "https://github.com/moose/MooseX-ConfigFromFile";
17616       license = with lib.licenses; [ artistic1 gpl1Plus ];
17617     };
17618   };
17620   MooseXDaemonize = buildPerlModule {
17621     pname = "MooseX-Daemonize";
17622     version = "0.22";
17623     src = fetchurl {
17624       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Daemonize-0.22.tar.gz";
17625       hash = "sha256-in+5mdypuAKoUTahAUGy0zeKPs3gUnwd9z1V7bKOWbM=";
17626     };
17627     buildInputs = [ DevelCheckOS ModuleBuildTiny TestFatal ];
17628     propagatedBuildInputs = [ MooseXGetopt MooseXTypesPathClass ];
17629     meta = {
17630       description = "Role for daemonizing your Moose based application";
17631       homepage = "https://github.com/moose/MooseX-Daemonize";
17632       license = with lib.licenses; [ artistic1 gpl1Plus ];
17633     };
17634   };
17636   MooseXEmulateClassAccessorFast = buildPerlPackage {
17637     pname = "MooseX-Emulate-Class-Accessor-Fast";
17638     version = "0.009032";
17639     src = fetchurl {
17640       url = "mirror://cpan/authors/id/H/HA/HAARG/MooseX-Emulate-Class-Accessor-Fast-0.009032.tar.gz";
17641       hash = "sha256-gu637x8NJUGK5AbqJpErJBQo1LKrlRDV6d6z9ywYeZQ=";
17642     };
17643     buildInputs = [ TestException ];
17644     propagatedBuildInputs = [ Moose namespaceclean ];
17645     meta = {
17646       description = "Emulate Class::Accessor::Fast behavior using Moose attributes";
17647       license = with lib.licenses; [ artistic1 gpl1Plus ];
17648     };
17649   };
17651   MooseXGetopt = buildPerlModule {
17652     pname = "MooseX-Getopt";
17653     version = "0.76";
17654     src = fetchurl {
17655       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Getopt-0.76.tar.gz";
17656       hash = "sha256-/4cxvSsd+DNH37av6coVwE0uzYsojleT0JXq+Va2sCg=";
17657     };
17658     buildInputs = [ ModuleBuildTiny MooseXStrictConstructor PathTiny TestDeep TestFatal TestNeeds TestTrap TestWarnings ];
17659     propagatedBuildInputs = [ GetoptLongDescriptive MooseXRoleParameterized ];
17660     meta = {
17661       description = "Moose role for processing command line options";
17662       homepage = "https://github.com/moose/MooseX-Getopt";
17663       license = with lib.licenses; [ artistic1 gpl1Plus ];
17664     };
17665   };
17667   MooseXHasOptions = buildPerlPackage {
17668     pname = "MooseX-Has-Options";
17669     version = "0.003";
17670     src = fetchurl {
17671       url = "mirror://cpan/authors/id/P/PS/PSHANGOV/MooseX-Has-Options-0.003.tar.gz";
17672       hash = "sha256-B8Ic+O1QCycgIP+NoZ8ZRyi7QU4AEqLwzFTvLvYiKmg=";
17673     };
17674     buildInputs = [ Moose TestDeep TestDifferences TestException TestMost TestWarn namespaceautoclean ];
17675     propagatedBuildInputs = [ ClassLoad ListMoreUtils StringRewritePrefix ];
17676     meta = {
17677       description = "Succinct options for Moose";
17678       homepage = "https://github.com/pshangov/moosex-has-options";
17679       license = with lib.licenses; [ artistic1 gpl1Plus ];
17680     };
17681   };
17683   MooseXHasSugar = buildPerlPackage {
17684     pname = "MooseX-Has-Sugar";
17685     version = "1.000006";
17686     src = fetchurl {
17687       url = "mirror://cpan/authors/id/K/KE/KENTNL/MooseX-Has-Sugar-1.000006.tar.gz";
17688       hash = "sha256-7+7T3bOo6hj0FtSF88KwQnFF0mfmM2jGUdSI6qjCjQk=";
17689     };
17690     buildInputs = [ TestFatal namespaceclean ];
17691     propagatedBuildInputs = [ SubExporterProgressive ];
17692     meta = {
17693       description = "Sugar Syntax for moose 'has' fields";
17694       homepage = "https://github.com/kentnl/MooseX-Has-Sugar";
17695       license = with lib.licenses; [ artistic1 gpl1Plus ];
17696     };
17697   };
17699   MooseXLazyRequire = buildPerlModule {
17700     pname = "MooseX-LazyRequire";
17701     version = "0.11";
17702     src = fetchurl {
17703       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-LazyRequire-0.11.tar.gz";
17704       hash = "sha256-72IMHgGdr5zz8jqUPSWpTJHpOrMSvNY74ul0DsC5Qog=";
17705     };
17706     buildInputs = [ ModuleBuildTiny TestFatal ];
17707     propagatedBuildInputs = [ Moose aliased namespaceautoclean ];
17708     meta = {
17709       description = "Required attributes which fail only when trying to use them";
17710       homepage = "https://github.com/moose/MooseX-LazyRequire";
17711       license = with lib.licenses; [ artistic1 gpl1Plus ];
17712     };
17713   };
17715   MooseXMarkAsMethods = buildPerlPackage {
17716     pname = "MooseX-MarkAsMethods";
17717     version = "0.15";
17718     src = fetchurl {
17719       url = "mirror://cpan/authors/id/R/RS/RSRCHBOY/MooseX-MarkAsMethods-0.15.tar.gz";
17720       hash = "sha256-yezBM3bQ/326SBl3M3wz6nTl0makKLavMVUqKRnvfvg=";
17721     };
17722     propagatedBuildInputs = [ Moose namespaceautoclean ];
17723     meta = {
17724       description = "Mark overload code symbols as methods";
17725       homepage = "https://metacpan.org/release/MooseX-MarkAsMethods";
17726       license = with lib.licenses; [ lgpl21Only ];
17727     };
17728   };
17730   MooseXMethodAttributes = buildPerlPackage {
17731     pname = "MooseX-MethodAttributes";
17732     version = "0.32";
17733     src = fetchurl {
17734       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-MethodAttributes-0.32.tar.gz";
17735       hash = "sha256-yzOIZXS30t05xCwNzccHrNsK7H273pohwEImYDaMGXs=";
17736     };
17737     buildInputs = [ MooseXRoleParameterized TestFatal TestNeeds ];
17738     propagatedBuildInputs = [ Moose namespaceautoclean ];
17739     meta = {
17740       description = "Code attribute introspection";
17741       homepage = "https://github.com/moose/MooseX-MethodAttributes";
17742       license = with lib.licenses; [ artistic1 gpl1Plus ];
17743     };
17744   };
17746   MooseXNonMoose = buildPerlPackage {
17747     pname = "MooseX-NonMoose";
17748     version = "0.26";
17749     src = fetchurl {
17750       url = "mirror://cpan/authors/id/D/DO/DOY/MooseX-NonMoose-0.26.tar.gz";
17751       hash = "sha256-y75S7PFgOCMfvX8sxrzhZqNWnIyzlq6A7EUXwuCNqn0=";
17752     };
17753     buildInputs = [ TestFatal ];
17754     propagatedBuildInputs = [ ListMoreUtils Moose ];
17755     meta = {
17756       description = "Easy subclassing of non-Moose classes";
17757       homepage = "https://metacpan.org/release/MooseX-NonMoose";
17758       license = with lib.licenses; [ artistic1 gpl1Plus ];
17759     };
17760   };
17762   MooseXOneArgNew = buildPerlPackage {
17763     pname = "MooseX-OneArgNew";
17764     version = "0.007";
17765     src = fetchurl {
17766       url = "mirror://cpan/authors/id/R/RJ/RJBS/MooseX-OneArgNew-0.007.tar.gz";
17767       hash = "sha256-hCgkNfEWnPCddRP6k4fiCReRY1zzWgeLUAuCmu6gYTg=";
17768     };
17769     propagatedBuildInputs = [ MooseXRoleParameterized ];
17770     meta = {
17771       description = "Teach ->new to accept single, non-hashref arguments";
17772       homepage = "https://github.com/rjbs/MooseX-OneArgNew";
17773       license = with lib.licenses; [ artistic1 gpl1Plus ];
17774     };
17775   };
17777   MooseXRelatedClassRoles = buildPerlPackage {
17778     pname = "MooseX-RelatedClassRoles";
17779     version = "0.004";
17780     src = fetchurl {
17781       url = "mirror://cpan/authors/id/H/HD/HDP/MooseX-RelatedClassRoles-0.004.tar.gz";
17782       hash = "sha256-MNt6I33SYCIhb/+5cLmFKFNHEws2kjxxGqCVaty0fp8=";
17783     };
17784     propagatedBuildInputs = [ MooseXRoleParameterized ];
17785     meta = { description = "Apply roles to a class related to yours";
17786       license = with lib.licenses; [ artistic1 gpl1Plus ];
17787     };
17788   };
17790   MooseXParamsValidate = buildPerlPackage {
17791     pname = "MooseX-Params-Validate";
17792     version = "0.21";
17793     src = fetchurl {
17794       url = "mirror://cpan/authors/id/D/DR/DROLSKY/MooseX-Params-Validate-0.21.tar.gz";
17795       hash = "sha256-iClURqupmcu4+ZjX+5onAdZhc5SlHW1yTHdObZ/xOdk=";
17796     };
17797     buildInputs = [ TestFatal ];
17798     propagatedBuildInputs = [ DevelCaller Moose ParamsValidate ];
17799     meta = {
17800       description = "Extension of Params::Validate using Moose's types";
17801       license = with lib.licenses; [ artistic1 gpl1Plus ];
17802     };
17803   };
17805   MooseXRoleParameterized = buildPerlModule {
17806     pname = "MooseX-Role-Parameterized";
17807     version = "1.11";
17808     src = fetchurl {
17809       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Role-Parameterized-1.11.tar.gz";
17810       hash = "sha256-HP52bF1/Dsq1f3M9zKQwoqKs1rmVdXFBuUCt42kr7J4=";
17811     };
17812     buildInputs = [ CPANMetaCheck ModuleBuildTiny TestFatal TestNeeds ];
17813     propagatedBuildInputs = [ Moose namespaceautoclean ];
17814     meta = {
17815       description = "Moose roles with composition parameters";
17816       homepage = "https://github.com/moose/MooseX-Role-Parameterized";
17817       license = with lib.licenses; [ artistic1 gpl1Plus ];
17818     };
17819   };
17821   MooseXRoleWithOverloading = buildPerlPackage {
17822     pname = "MooseX-Role-WithOverloading";
17823     version = "0.17";
17824     src = fetchurl {
17825       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Role-WithOverloading-0.17.tar.gz";
17826       hash = "sha256-krCV1z8SIPnC7S06qlugcutaot4gm3xFXaWocBuYaGU=";
17827     };
17828     propagatedBuildInputs = [ Moose aliased namespaceautoclean ];
17829     meta = {
17830       description = "(DEPRECATED) Roles which support overloading";
17831       homepage = "https://github.com/moose/MooseX-Role-WithOverloading";
17832       license = with lib.licenses; [ artistic1 gpl1Plus ];
17833     };
17834   };
17836   MooseXRunnable = buildPerlModule {
17837     pname = "MooseX-Runnable";
17838     version = "0.10";
17839     src = fetchurl {
17840       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Runnable-0.10.tar.gz";
17841       hash = "sha256-QNj9G1UkrpZZZaHxRNegoMhQWUxSRAKyMZsk1cSvEZk=";
17842     };
17843     buildInputs = [ ModuleBuildTiny TestFatal TestSimple13 TestTableDriven ];
17844     propagatedBuildInputs = [ ListSomeUtils MooseXTypesPathTiny ];
17845     meta = {
17846       description = "Tag a class as a runnable application";
17847       homepage = "https://github.com/moose/MooseX-Runnable";
17848       license = with lib.licenses; [ artistic1 gpl1Plus ];
17849       mainProgram = "mx-run";
17850     };
17851   };
17853   MooseXSemiAffordanceAccessor = buildPerlPackage {
17854     pname = "MooseX-SemiAffordanceAccessor";
17855     version = "0.10";
17856     src = fetchurl {
17857       url = "mirror://cpan/authors/id/D/DR/DROLSKY/MooseX-SemiAffordanceAccessor-0.10.tar.gz";
17858       hash = "sha256-pbhXdrzd7RaAJ6H/ZktBxfZYhnIc3VQ+OvnVN1misdU=";
17859     };
17860     propagatedBuildInputs = [ Moose ];
17861     meta = {
17862       description = "Name your accessors foo() and set_foo()";
17863       license = with lib.licenses; [ artistic2 ];
17864     };
17865   };
17867   MooseXSetOnce = buildPerlPackage {
17868     pname = "MooseX-SetOnce";
17869     version = "0.200002";
17870     src = fetchurl {
17871       url = "mirror://cpan/authors/id/R/RJ/RJBS/MooseX-SetOnce-0.200002.tar.gz";
17872       hash = "sha256-y+0Gt/zTU/DZm/gKh8HAtYEWBpcjGzrZpgjaIxuitlk=";
17873     };
17874     buildInputs = [ TestFatal ];
17875     propagatedBuildInputs = [ Moose ];
17876     meta = {
17877       description = "Write-once, read-many attributes for Moose";
17878       license = with lib.licenses; [ artistic1 gpl1Plus ];
17879     };
17880   };
17882   MooseXSingleton = buildPerlModule {
17883     pname = "MooseX-Singleton";
17884     version = "0.30";
17885     src = fetchurl {
17886       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Singleton-0.30.tar.gz";
17887       hash = "sha256-ZYSy8xsdPrbdfiMShzjnP2wBWxUhOLCoFX09DVnQZUE=";
17888     };
17889     buildInputs = [ ModuleBuildTiny TestFatal TestRequires TestWarnings ];
17890     propagatedBuildInputs = [ Moose ];
17891     meta = {
17892       description = "Turn your Moose class into a singleton";
17893       license = with lib.licenses; [ artistic1 gpl1Plus ];
17894     };
17895   };
17897   MooseXStorage = buildPerlPackage {
17898     pname = "MooseX-Storage";
17899     version = "0.53";
17900     src = fetchurl {
17901       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Storage-0.53.tar.gz";
17902       hash = "sha256-hwS/5QX2azQPYuhcn/MZwZ6WcLJtSwEskfThA7HarOA=";
17903     };
17904     buildInputs = [ TestDeep TestDeepType TestFatal TestNeeds TestDeepJSON TestWithoutModule DigestHMAC MooseXTypes ];
17905     propagatedBuildInputs = [ ModuleRuntime Moose MooseXRoleParameterized PodCoverage StringRewritePrefix namespaceautoclean IOStringy JSON JSONXS JSONMaybeXS CpanelJSONXS YAML YAMLOld YAMLTiny YAMLLibYAML YAMLSyck ];
17906     meta = {
17907       description = "Serialization framework for Moose classes";
17908       homepage = "https://github.com/moose/MooseX-Storage";
17909       license = with lib.licenses; [ artistic1 gpl1Plus ];
17910     };
17911   };
17913   MooseXStrictConstructor = buildPerlPackage {
17914     pname = "MooseX-StrictConstructor";
17915     version = "0.21";
17916     src = fetchurl {
17917       url = "mirror://cpan/authors/id/D/DR/DROLSKY/MooseX-StrictConstructor-0.21.tar.gz";
17918       hash = "sha256-xypa6Vg3Bszexx1AHcswVAE6dTa3UN8UNmE9hY6ikg0=";
17919     };
17920     buildInputs = [ Moo TestFatal TestNeeds ];
17921     propagatedBuildInputs = [ Moose namespaceautoclean ];
17922     meta = {
17923       description = "Make your object constructors blow up on unknown attributes";
17924       homepage = "https://metacpan.org/release/MooseX-StrictConstructor";
17925       license = with lib.licenses; [ artistic2 ];
17926     };
17927   };
17929   MooseXTraits = buildPerlModule {
17930     pname = "MooseX-Traits";
17931     version = "0.13";
17932     src = fetchurl {
17933       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Traits-0.13.tar.gz";
17934       hash = "sha256-dK/gxPr047l8V/KJQ3yqYL7Mo0zVgh9IndTMnaT74po=";
17935     };
17936     buildInputs = [ ModuleBuildTiny MooseXRoleParameterized TestFatal TestRequires TestSimple13 ];
17937     propagatedBuildInputs = [ Moose namespaceautoclean ];
17938     meta = {
17939       description = "Automatically apply roles at object creation time";
17940       homepage = "https://github.com/moose/MooseX-Traits";
17941       license = with lib.licenses; [ artistic1 gpl1Plus ];
17942     };
17943   };
17945   MooseXTraitsPluggable = buildPerlPackage {
17946     pname = "MooseX-Traits-Pluggable";
17947     version = "0.12";
17948     src = fetchurl {
17949       url = "mirror://cpan/authors/id/R/RK/RKITOVER/MooseX-Traits-Pluggable-0.12.tar.gz";
17950       hash = "sha256-q5a3lQ7L8puDb9/uu+Cqwiylc+cYO+fLfW0S3yKrWMo=";
17951     };
17952     buildInputs = [ TestException ];
17953     propagatedBuildInputs = [ ListMoreUtils Moose namespaceautoclean ];
17954     meta = {
17955       description = "Trait loading and resolution for Moose";
17956       license = with lib.licenses; [ artistic1 gpl1Plus ];
17957     };
17958   };
17960   MooseXTypes = buildPerlModule {
17961     pname = "MooseX-Types";
17962     version = "0.50";
17963     src = fetchurl {
17964       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Types-0.50.tar.gz";
17965       hash = "sha256-nNh7NJLL8L6dLfkxeyrfn8MGY3cOaZBmVL6j9BsXywg=";
17966     };
17967     buildInputs = [ ModuleBuildTiny TestFatal TestRequires ];
17968     propagatedBuildInputs = [ CarpClan Moose SubExporterForMethods namespaceautoclean ];
17969     meta = {
17970       description = "Organise your Moose types in libraries";
17971       homepage = "https://github.com/moose/MooseX-Types";
17972       license = with lib.licenses; [ artistic1 gpl1Plus ];
17973     };
17974   };
17976   MooseXTypesCommon = buildPerlModule {
17977     pname = "MooseX-Types-Common";
17978     version = "0.001014";
17979     src = fetchurl {
17980       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Types-Common-0.001014.tar.gz";
17981       hash = "sha256-75Nxi20vJA1QtcOssadLTCoZGGllFHAAGoK+HzXQ7w8=";
17982     };
17983     buildInputs = [ ModuleBuildTiny TestDeep TestWarnings ];
17984     propagatedBuildInputs = [ MooseXTypes ];
17985     meta = {
17986       description = "Library of commonly used type constraints";
17987       homepage = "https://github.com/moose/MooseX-Types-Common";
17988       license = with lib.licenses; [ artistic1 gpl1Plus ];
17989     };
17990   };
17992   MooseXTypesDateTime = buildPerlModule {
17993     pname = "MooseX-Types-DateTime";
17994     version = "0.13";
17995     src = fetchurl {
17996       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Types-DateTime-0.13.tar.gz";
17997       hash = "sha256-uJ+iZjb2oX6qOGi0UUNARytou9whYaHXmiKhv1sdOcY=";
17998     };
17999     buildInputs = [ ModuleBuildTiny TestFatal TestSimple13 ];
18000     propagatedBuildInputs = [ DateTime MooseXTypes ];
18001     meta = {
18002       description = "DateTime related constraints and coercions for Moose";
18003       homepage = "https://github.com/moose/MooseX-Types-DateTime";
18004       license = with lib.licenses; [ artistic1 gpl1Plus ];
18005     };
18006   };
18008   MooseXTypesDateTimeMoreCoercions = buildPerlModule {
18009     pname = "MooseX-Types-DateTime-MoreCoercions";
18010     version = "0.15";
18011     src = fetchurl {
18012       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Types-DateTime-MoreCoercions-0.15.tar.gz";
18013       hash = "sha256-Ibs6WXcZiI7bbOqhMkGNXPkuy5KlDM43uUJZpV4ON5Y=";
18014     };
18015     buildInputs = [ ModuleBuildTiny TestFatal TestSimple13 ];
18016     propagatedBuildInputs = [ DateTimeXEasy MooseXTypesDateTime TimeDurationParse ];
18017     meta = {
18018       description = "Extensions to MooseX::Types::DateTime";
18019       homepage = "https://github.com/moose/MooseX-Types-DateTime-MoreCoercions";
18020       license = with lib.licenses; [ artistic1 gpl1Plus ];
18021     };
18022   };
18024   MooseXTypesLoadableClass = buildPerlModule {
18025     pname = "MooseX-Types-LoadableClass";
18026     version = "0.015";
18027     src = fetchurl {
18028       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Types-LoadableClass-0.015.tar.gz";
18029       hash = "sha256-4DfTd4JT3PkpRkNXFbraDmRJwKKAj6P/MqllBk1aO/Q=";
18030     };
18031     buildInputs = [ ModuleBuildTiny TestFatal ];
18032     propagatedBuildInputs = [ MooseXTypes ];
18033     meta = {
18034       description = "ClassName type constraint with coercion to load the class";
18035       homepage = "https://github.com/moose/MooseX-Types-LoadableClass";
18036       license = with lib.licenses; [ artistic1 gpl1Plus ];
18037     };
18038   };
18040   MooseXTypesPathClass = buildPerlModule {
18041     pname = "MooseX-Types-Path-Class";
18042     version = "0.09";
18043     src = fetchurl {
18044       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Types-Path-Class-0.09.tar.gz";
18045       hash = "sha256-54S6tTaYrpWnCahmMwYUX/7FVmjfbPMWFTM1I/vn734=";
18046     };
18047     propagatedBuildInputs = [ MooseXTypes PathClass ];
18048     buildInputs = [ ModuleBuildTiny TestNeeds ];
18049     meta = {
18050       description = "Path::Class type library for Moose";
18051       license = with lib.licenses; [ artistic1 gpl1Plus ];
18052     };
18053   };
18055   MooseXTypesPathTiny = buildPerlModule {
18056     pname = "MooseX-Types-Path-Tiny";
18057     version = "0.012";
18058     src = fetchurl {
18059       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Types-Path-Tiny-0.012.tar.gz";
18060       hash = "sha256-Ge7eAt1lTnD3PjTNevAGN2UXO8rv7v8b2+ITGOz9kVg=";
18061     };
18062     buildInputs = [ Filepushd ModuleBuildTiny TestFatal ];
18063     propagatedBuildInputs = [ MooseXGetopt MooseXTypesStringlike PathTiny ];
18064     meta = {
18065       description = "Path::Tiny types and coercions for Moose";
18066       homepage = "https://github.com/karenetheridge/moosex-types-path-tiny";
18067       license = with lib.licenses; [ asl20 ];
18068     };
18069   };
18071   MooseXTypesPerl = buildPerlPackage {
18072     pname = "MooseX-Types-Perl";
18073     version = "0.101344";
18074     src = fetchurl {
18075       url = "mirror://cpan/authors/id/R/RJ/RJBS/MooseX-Types-Perl-0.101344.tar.gz";
18076       hash = "sha256-h2RDVPdPplI1yyv8pEJ3kwp+q+UazF+B+2MVMKg1XiQ=";
18077     };
18078     propagatedBuildInputs = [ MooseXTypes ];
18079     meta = {
18080       description = "Moose types that check against Perl syntax";
18081       homepage = "https://github.com/rjbs/MooseX-Types-Perl";
18082       license = with lib.licenses; [ artistic1 gpl1Plus ];
18083     };
18084   };
18086   MooseXTypesStringlike = buildPerlPackage {
18087     pname = "MooseX-Types-Stringlike";
18088     version = "0.003";
18089     src = fetchurl {
18090       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/MooseX-Types-Stringlike-0.003.tar.gz";
18091       hash = "sha256-LuNJ7FxSmm80f0L/ZA5HskVWS5PMowXfY8eCH1tVzxk=";
18092     };
18093     propagatedBuildInputs = [ MooseXTypes ];
18094     meta = {
18095       description = "Moose type constraints for strings or string-like objects";
18096       homepage = "https://github.com/dagolden/MooseX-Types-Stringlike";
18097       license = with lib.licenses; [ asl20 ];
18098     };
18099   };
18101   MooseXTypesStructured = buildPerlModule {
18102     pname = "MooseX-Types-Structured";
18103     version = "0.36";
18104     src = fetchurl {
18105       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Types-Structured-0.36.tar.gz";
18106       hash = "sha256-Q822UvljhyPjV3yw+LVGhiAkTJY252WYEeW0qAFgPVc=";
18107     };
18108     buildInputs = [ DateTime ModuleBuildTiny MooseXTypesDateTime TestFatal TestNeeds ];
18109     propagatedBuildInputs = [ DevelPartialDump MooseXTypes ];
18110     meta = {
18111       description = "Structured Type Constraints for Moose";
18112       homepage = "https://github.com/moose/MooseX-Types-Structured";
18113       license = with lib.licenses; [ artistic1 gpl1Plus ];
18114     };
18115   };
18117   MooseXTypesURI = buildPerlModule {
18118     pname = "MooseX-Types-URI";
18119     version = "0.09";
18120     src = fetchurl {
18121       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Types-URI-0.09.tar.gz";
18122       hash = "sha256-Jxd1Ta25EIbhHSH+oGy6qaEuYBtB0VRDFQ7dfZUI7+g=";
18123     };
18124     buildInputs = [ ModuleBuildTiny TestNeeds TestWithoutModule ];
18125     propagatedBuildInputs = [ MooseXTypes URI URIFromHash namespaceautoclean ];
18126     meta = {
18127       description = "URI related types and coercions for Moose";
18128       homepage = "https://github.com/moose/MooseX-Types-URI";
18129       license = with lib.licenses; [ artistic1 gpl1Plus ];
18130     };
18131   };
18133   MP3CutGapless = buildPerlPackage {
18134     pname = "MP3-Cut-Gapless";
18135     version = "0.03";
18136     src = fetchurl {
18137       url = "mirror://cpan/authors/id/A/AG/AGRUNDMA/MP3-Cut-Gapless-0.03.tar.gz";
18138       hash = "sha256-PoS3OdHx4902FvhR3GV14WXTKEZ/AySGB5UOWVH+pPM=";
18139     };
18140     propagatedBuildInputs = [ AudioCuefileParser ];
18141     meta = {
18142       description = "Split an MP3 file without gaps (based on pcutmp3)";
18143       license = with lib.licenses; [ artistic1 ];
18144     };
18145   };
18147   MP3Info = buildPerlPackage {
18148     pname = "MP3-Info";
18149     version = "1.26";
18150     src = fetchurl {
18151       url = "mirror://cpan/authors/id/J/JM/JMERELO/MP3-Info-1.26.tar.gz";
18152       hash = "sha256-V2I0BzJCHyUCp3DWoSblhPLNljNR0rwle9J4w5vOi+c=";
18153     };
18154     meta = {
18155       description = "Manipulate / fetch info from MP3 audio files";
18156       license = with lib.licenses; [ artistic1 gpl1Plus ];
18157     };
18158   };
18160   MP3Tag = buildPerlPackage {
18161     pname = "MP3-Tag";
18162     version = "1.16";
18163     src = fetchurl {
18164       url = "mirror://cpan/authors/id/I/IL/ILYAZ/modules/MP3-Tag-1.16.zip";
18165       hash = "sha256-UDhQk6owAFa8Jiu2pACpbiGVl3wcXh6/FaXgdak3e4Y=";
18166     };
18167     buildInputs = [ pkgs.unzip ];
18169     postPatch = ''
18170       substituteInPlace Makefile.PL --replace "'PL_FILES'" "#'PL_FILES'"
18171     '';
18172     postFixup = ''
18173       perl data_pod.PL PERL5LIB:$PERL5LIB
18174     '';
18175     outputs = [ "out" ];
18176     meta = {
18177       description = "Module for reading tags of MP3 audio files";
18178       license = with lib.licenses; [ artistic1 ];
18179     };
18180   };
18182   MockMonkeyPatch = buildPerlModule {
18183     pname = "Mock-MonkeyPatch";
18184     version = "1.02";
18185     src = fetchurl {
18186       url = "mirror://cpan/authors/id/J/JB/JBERGER/Mock-MonkeyPatch-1.02.tar.gz";
18187       hash = "sha256-xbaUTKVP6DVXN2cwYO1OnvhyNyZXfXluHK5eVr8bAYE=";
18188     };
18189     buildInputs = [ ModuleBuildTiny ];
18190     meta = {
18191       description = "Monkey patching with test mocking in mind";
18192       license = with lib.licenses; [ artistic1 gpl1Plus ];
18193     };
18194   };
18196   Mouse = buildPerlModule {
18197     pname = "Mouse";
18198     version = "2.5.10";
18199     src = fetchurl {
18200       url = "mirror://cpan/authors/id/S/SK/SKAJI/Mouse-v2.5.10.tar.gz";
18201       hash = "sha256-zo3COUYVOkZ/8JdlFn7iWQ9cUCEg9IotlEFzPzmqMu4=";
18202     };
18203     buildInputs = [ ModuleBuildXSUtil TestException TestFatal TestLeakTrace TestOutput TestRequires TryTiny ];
18204     perlPreHook = "export LD=$CC";
18205     env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.hostPlatform.isi686 "-fno-stack-protector";
18206     hardeningDisable = lib.optional stdenv.hostPlatform.isi686 "stackprotector";
18207     meta = {
18208       description = "Moose minus the antlers";
18209       license = with lib.licenses; [ artistic1 gpl1Plus ];
18210     };
18211   };
18213   MouseXNativeTraits = buildPerlPackage {
18214     pname = "MouseX-NativeTraits";
18215     version = "1.09";
18216     src = fetchurl {
18217       url = "mirror://cpan/authors/id/G/GF/GFUJI/MouseX-NativeTraits-1.09.tar.gz";
18218       hash = "sha256-+KW/WihwLfsTyAk75cQcq5xfwcXSR6uR4i591ydky14=";
18219     };
18220     buildInputs = [ AnyMoose TestFatal ];
18221     propagatedBuildInputs = [ Mouse ];
18222     meta = {
18223       description = "Extend your attribute interfaces for Mouse";
18224       license = with lib.licenses; [ artistic1 gpl1Plus ];
18225     };
18226   };
18228   MozillaCA = buildPerlPackage {
18229     pname = "Mozilla-CA";
18230     version = "20230821";
18231     src = fetchurl {
18232       url = "mirror://cpan/authors/id/L/LW/LWP/Mozilla-CA-20230821.tar.gz";
18233       hash = "sha256-MuHQBFKZAEBFucTRbC2q5FOiFiCIc97qJED3EmCnzaE=";
18234     };
18236     postPatch = ''
18237       ln -s --force ${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt lib/Mozilla/CA/cacert.pem
18238     '';
18240     meta = {
18241       description = "Mozilla's CA cert bundle in PEM format";
18242       homepage = "https://github.com/gisle/mozilla-ca";
18243       license = with lib.licenses; [ mpl20 ];
18244     };
18245   };
18247   MozillaLdap = callPackage ../development/perl-modules/Mozilla-LDAP { };
18249   MROCompat = buildPerlPackage {
18250     pname = "MRO-Compat";
18251     version = "0.15";
18252     src = fetchurl {
18253       url = "mirror://cpan/authors/id/H/HA/HAARG/MRO-Compat-0.15.tar.gz";
18254       hash = "sha256-DUU1+I5Dur2Eq2BIZiFfxNBDmL1Nt7IYUtSjGxwV72E=";
18255     };
18256     meta = {
18257       description = "Mro::* interface compatibility for Perls < 5.9.5";
18258       homepage = "https://metacpan.org/release/MRO-Compat";
18259       license = with lib.licenses; [ artistic1 gpl1Plus ];
18260     };
18261   };
18263   MsgPackRaw = buildPerlPackage rec {
18264     pname = "MsgPack-Raw";
18265     version = "0.05";
18266     src = fetchurl {
18267       url = "mirror://cpan/authors/id/J/JA/JACQUESG/MsgPack-Raw-${version}.tar.gz";
18268       hash = "sha256-hVnitkzZjZmrxmbt8qTIckyVNGEmFq8R9OsLvQ1CLaw=";
18269     };
18270     checkInputs = [ TestPod TestPodCoverage ];
18271     meta = with lib; {
18272       description = "Perl bindings to the msgpack C library";
18273       homepage = "https://github.com/jacquesg/p5-MsgPack-Raw";
18274       license = with licenses; [ gpl1Plus /* or */ artistic1 ];
18275       maintainers = with maintainers; [ figsoda ];
18276     };
18277   };
18279   MusicBrainzDiscID = buildPerlPackage {
18280     pname = "MusicBrainz-DiscID";
18281     version = "0.06";
18282     src = fetchurl {
18283       url = "mirror://cpan/authors/id/N/NJ/NJH/MusicBrainz-DiscID-0.06.tar.gz";
18284       hash = "sha256-ugtu0JiX/1Y7pZhy7pNxW+83FXUVsZt8bW8obmVI7Ks=";
18285     };
18286     # Makefile.PL in this package uses which to find pkg-config -- make it use envvar instead
18287     postPatch = ''
18288       substituteInPlace Makefile.PL \
18289         --replace-fail '`which pkg-config`' "'$PKG_CONFIG'"
18290     '';
18291     doCheck = false; # The main test performs network access
18292     nativeBuildInputs = [ pkgs.pkg-config ];
18293     propagatedBuildInputs = [ pkgs.libdiscid ];
18294     meta = {
18295       description = "- Perl interface for the MusicBrainz libdiscid library";
18296       license = with lib.licenses; [ mit ];
18297     };
18298   };
18300   MusicBrainz = buildPerlModule {
18301     pname = "WebService-MusicBrainz";
18302     version = "1.0.6";
18303     src = fetchurl {
18304       url = "mirror://cpan/authors/id/B/BF/BFAIST/WebService-MusicBrainz-1.0.6.tar.gz";
18305       hash = "sha256-XpH1ZZZ3w5CJv28lO0Eoe7zTVh9qJaB5Zc6DsmKIUuE=";
18306     };
18307     propagatedBuildInputs = [ Mojolicious ];
18308     doCheck = false; # Test performs network access.
18309     meta = {
18310       description = "API to search the musicbrainz.org database";
18311       license = with lib.licenses; [ artistic1 gpl1Plus ];
18312     };
18313   };
18315   MustacheSimple = buildPerlPackage {
18316     pname = "Mustache-Simple";
18317     version = "1.3.6";
18318     src = fetchurl {
18319       url = "mirror://cpan/authors/id/C/CM/CMS/Mustache-Simple-v1.3.6.tar.gz";
18320       hash = "sha256-UdtdUf9LJaZw2L+r45ArbUVDTs94spvB//Ga9uc4MAM=";
18321     };
18322     propagatedBuildInputs = [ YAMLLibYAML ];
18323     meta = {
18324       description = "Simple Mustache Renderer";
18325       license = with lib.licenses; [ artistic1 gpl1Plus ];
18326     };
18327   };
18329   MySQLDiff = buildPerlPackage {
18330     pname = "MySQL-Diff";
18331     version = "0.60";
18332     src = fetchurl {
18333       url = "mirror://cpan/authors/id/E/ES/ESTRABD/MySQL-Diff-0.60.tar.gz";
18334       hash = "sha256-XXCApL1XFP+e9Taqd0p62zxvDnYCFcpsOdijVFNE+VY=";
18335     };
18336     propagatedBuildInputs = [ pkgs.mariadb.client FileSlurp StringShellQuote ];
18337     meta = {
18338       description = "Generates a database upgrade instruction set";
18339       homepage = "https://github.com/estrabd/mysqldiff";
18340       license = with lib.licenses; [ artistic1 gpl1Plus ];
18341       maintainers = [ maintainers.sgo ];
18342       mainProgram = "mysqldiff";
18343     };
18344   };
18346   namespaceautoclean = buildPerlPackage {
18347     pname = "namespace-autoclean";
18348     version = "0.29";
18349     src = fetchurl {
18350       url = "mirror://cpan/authors/id/E/ET/ETHER/namespace-autoclean-0.29.tar.gz";
18351       hash = "sha256-RevY5kpUqG+I2OAa5VISlnyKqP7VfoFAhd73YIrGWAQ=";
18352     };
18353     buildInputs = [ TestNeeds ];
18354     propagatedBuildInputs = [ SubIdentify namespaceclean ];
18355     meta = {
18356       description = "Keep imports out of your namespace";
18357       homepage = "https://github.com/moose/namespace-autoclean";
18358       license = with lib.licenses; [ artistic1 gpl1Plus ];
18359     };
18360   };
18362   namespaceclean = buildPerlPackage {
18363     pname = "namespace-clean";
18364     version = "0.27";
18365     src = fetchurl {
18366       url = "mirror://cpan/authors/id/R/RI/RIBASUSHI/namespace-clean-0.27.tar.gz";
18367       hash = "sha256-ihCoPD4YPcePnnt6pNCbR8EftOfTozuaEpEv0i4xr50=";
18368     };
18369     propagatedBuildInputs = [ BHooksEndOfScope PackageStash ];
18370     meta = {
18371       description = "Keep imports and functions out of your namespace";
18372       homepage = "https://search.cpan.org/dist/namespace-clean";
18373       license = with lib.licenses; [ artistic1 gpl1Plus ];
18374     };
18375   };
18377   NeovimExt = buildPerlPackage rec {
18378     pname = "Neovim-Ext";
18379     version = "0.06";
18380     src = fetchurl {
18381       url = "mirror://cpan/authors/id/J/JA/JACQUESG/Neovim-Ext-${version}.tar.gz";
18382       hash = "sha256-bSzrMGLJZzfbpVbLIEYxMPxABocbJbfE9mzTgZ1FBLg=";
18383     };
18384     propagatedBuildInputs = [
18385       ClassAccessor
18386       EvalSafe
18387       IOAsync
18388       MsgPackRaw
18389     ];
18390     checkInputs = [
18391       ArchiveZip
18392       FileSlurper
18393       FileWhich
18394       ProcBackground
18395       TestPod
18396       TestPodCoverage
18397     ];
18398     # TODO: fix tests
18399     doCheck = false;
18400     meta = with lib; {
18401       description = "Perl bindings for Neovim";
18402       homepage = "https://github.com/jacquesg/p5-Neovim-Ext";
18403       license = with licenses; [ gpl1Plus /* or */ artistic1 ];
18404       maintainers = with maintainers; [ figsoda ];
18405     };
18406   };
18408   NetDNSNative = buildPerlPackage {
18409     pname = "Net-DNS-Native";
18410     version = "0.22";
18411     src = fetchurl {
18412       url = "mirror://cpan/authors/id/O/OL/OLEG/Net-DNS-Native-0.22.tar.gz";
18413       hash = "sha256-EI2d7bq5/69qDQFSVSbeGJSITpUL/YM3F+XNOJBcMNU=";
18414     };
18415     meta = {
18416       description = "Non-blocking system DNS resolver";
18417       license = with lib.licenses; [ artistic1 gpl1Plus ];
18418       maintainers = with maintainers; [ tomasajt ];
18419     };
18420   };
18422   NetIdent = buildPerlPackage {
18423     pname = "Net-Ident";
18424     version = "1.25";
18425     src = fetchurl {
18426       url = "mirror://cpan/authors/id/T/TO/TODDR/Net-Ident-1.25.tar.gz";
18427       hash = "sha256-LlvViwHCpm6ASaL42ck+G19tzlPg7jpIHOam9BHyyPg=";
18428     };
18429     meta = {
18430       description = "Lookup the username on the remote end of a TCP/IP connection";
18431       homepage = "https://github.com/toddr/Net-Ident";
18432       license = with lib.licenses; [ mit ];
18433     };
18434   };
18436   NetINET6Glue = buildPerlPackage {
18437     pname = "Net-INET6Glue";
18438     version = "0.604";
18439     src = fetchurl {
18440       url = "mirror://cpan/authors/id/S/SU/SULLR/Net-INET6Glue-0.604.tar.gz";
18441       hash = "sha256-kMNjmPlQFBTMzaiynyOn908vK09VLhLevxYhjHNbuxc=";
18442     };
18443     meta = {
18444       description = "Make common modules IPv6 ready by hotpatching";
18445       homepage = "https://github.com/noxxi/p5-net-inet6glue";
18446       license = with lib.licenses; [ artistic1 gpl1Plus ];
18447     };
18448   };
18450   NetAddrIP = buildPerlPackage {
18451     pname = "NetAddr-IP";
18452     version = "4.079";
18453     src = fetchurl {
18454       url = "mirror://cpan/authors/id/M/MI/MIKER/NetAddr-IP-4.079.tar.gz";
18455       hash = "sha256-7FqC37cCi80ouz1Wn5XYfdQWbMGYZ/IYTtOln21soOc=";
18456     };
18457     meta = {
18458       description = "Manages IPv4 and IPv6 addresses and subnets";
18459       license = with lib.licenses; [ artistic1 gpl1Plus ];
18460     };
18461   };
18463   NetAmazonAWSSign = buildPerlPackage {
18464     pname = "Net-Amazon-AWSSign";
18465     version = "0.12";
18466     src = fetchurl {
18467       url = "mirror://cpan/authors/id/N/NA/NATON/Net-Amazon-AWSSign-0.12.tar.gz";
18468       hash = "sha256-HQQMazseorVlkFefnBjgUAtsaiF7WdiDHw2WBMqX7T4=";
18469     };
18470     propagatedBuildInputs = [ URI ];
18471     meta = {
18472       description = "Perl extension to create signatures for AWS requests";
18473       license = with lib.licenses; [ artistic1 gpl1Plus ];
18474     };
18475   };
18477   NetAmazonEC2 = buildPerlPackage {
18478     pname = "Net-Amazon-EC2";
18479     version = "0.36";
18480     src = fetchurl {
18481       url = "mirror://cpan/authors/id/M/MA/MALLEN/Net-Amazon-EC2-0.36.tar.gz";
18482       hash = "sha256-Tig2kufwZsJBjtrpIz47YkAPk1X01SH5lRXlL3t9cvE=";
18483     };
18484     propagatedBuildInputs = [ LWPProtocolHttps Moose ParamsValidate XMLSimple ];
18485     buildInputs = [ TestException ];
18486     meta = {
18487       description = "Perl interface to the Amazon Elastic Compute Cloud (EC2) environment";
18488       homepage = "https://metacpan.org/dist/Net-Amazon-EC2";
18489       license = with lib.licenses; [ artistic1 gpl1Plus ];
18490     };
18491   };
18493   NetAmazonMechanicalTurk = buildPerlModule {
18494     pname = "Net-Amazon-MechanicalTurk";
18495     version = "1.02";
18496     src = fetchurl {
18497       url = "mirror://cpan/authors/id/M/MT/MTURK/Net-Amazon-MechanicalTurk-1.02.tar.gz";
18498       hash = "sha256-jQlewUjglLJ/TMzHnhyvnDHzzA5t2CzoqORCyNx7D44=";
18499     };
18500     patches =
18501       [ ../development/perl-modules/net-amazon-mechanicalturk.patch ];
18502     propagatedBuildInputs = [ DigestHMAC LWPProtocolHttps XMLParser ];
18503     doCheck = false; /* wants network */
18504     meta = {
18505       description = "Amazon Mechanical Turk SDK for Perl";
18506       license = with lib.licenses; [ asl20 ];
18507     };
18508   };
18510   NetAmazonS3 = buildPerlPackage {
18511     pname = "Net-Amazon-S3";
18512     version = "0.991";
18513     src = fetchurl {
18514       url = "mirror://cpan/authors/id/B/BA/BARNEY/Net-Amazon-S3-0.991.tar.gz";
18515       hash = "sha256-+3r4umSUjRo/MdgJ13EFImiA8GmYrH8Rn4JITmijI9M=";
18516     };
18517     buildInputs = [ TestDeep TestException TestLWPUserAgent TestMockTime TestWarnings ];
18518     propagatedBuildInputs = [ DataStreamBulk DateTimeFormatHTTP DigestHMAC DigestMD5File FileFindRule LWPUserAgentDetermined MIMETypes MooseXRoleParameterized MooseXStrictConstructor MooseXTypesDateTimeMoreCoercions RefUtil RegexpCommon SafeIsa SubOverride TermEncoding TermProgressBarSimple XMLLibXML ];
18519     meta = {
18520       description = "Use the Amazon S3 - Simple Storage Service";
18521       license = with lib.licenses; [ artistic1 gpl1Plus ];
18522       mainProgram = "s3cl";
18523     };
18524   };
18526   NetAmazonS3Policy = buildPerlModule {
18527     pname = "Net-Amazon-S3-Policy";
18528     version = "0.1.6";
18529     src = fetchurl {
18530       url = "mirror://cpan/authors/id/P/PO/POLETTIX/Net-Amazon-S3-Policy-0.1.6.tar.gz";
18531       hash = "sha256-0rFukwhnSHQ0tHdHhooAP0scyECy15WfiPw2vQ2G2RQ=";
18532     };
18533     propagatedBuildInputs = [ JSON ];
18534     meta = {
18535       description = "Manage Amazon S3 policies for HTTP POST forms";
18536       license = with lib.licenses; [ artistic1 gpl1Plus ];
18537     };
18538   };
18540   NetAsyncHTTP = buildPerlModule {
18541     pname = "Net-Async-HTTP";
18542     version = "0.49";
18543     src = fetchurl {
18544       url = "mirror://cpan/authors/id/P/PE/PEVANS/Net-Async-HTTP-0.49.tar.gz";
18545       hash = "sha256-OSBtBpSV0bhq7jeqitPJM0025ZzObPec04asDPN5jNs=";
18546     };
18547     buildInputs = [ HTTPCookies Test2Suite TestMetricsAny ];
18548     propagatedBuildInputs = [ Future HTTPMessage IOAsync MetricsAny StructDumb URI ];
18549     preCheck = lib.optionalString stdenv.hostPlatform.isDarwin ''
18550       # network tests fail on Darwin/sandbox, so disable these
18551       rm -f t/20local-connect.t t/22local-connect-pipeline.t t/23local-connect-redir.t
18552       rm -f t/90rt75615.t t/90rt75616.t t/90rt93232.t
18553     '';
18554     meta = {
18555       description = "Use HTTP with IO::Async";
18556       license = with lib.licenses; [ artistic1 gpl1Plus ];
18557       maintainers = [ maintainers.zakame ];
18558     };
18559   };
18561   NetAsyncHTTPServer = buildPerlModule {
18562     pname = "Net-Async-HTTP-Server";
18563     version = "0.14";
18564     src = fetchurl {
18565       url = "mirror://cpan/authors/id/P/PE/PEVANS/Net-Async-HTTP-Server-0.14.tar.gz";
18566       hash = "sha256-6nG3kcEtD6X3JubMA/Zuo20bRhNxj2xb84EzvRinsrY=";
18567     };
18568     buildInputs = [ Test2Suite TestMetricsAny TestRefcount ];
18569     propagatedBuildInputs = [ HTTPMessage IOAsync MetricsAny ];
18570     meta = {
18571       description = "Serve HTTP with IO::Async";
18572       license = with lib.licenses; [ artistic1 gpl1Plus ];
18573       maintainers = [ maintainers.anoa ];
18574     };
18575   };
18577   NetAsyncPing = buildPerlPackage {
18578     pname = "Net-Async-Ping";
18579     version = "0.004001";
18580     src = fetchurl {
18581       url = "mirror://cpan/authors/id/A/AB/ABRAXXA/Net-Async-Ping-0.004001.tar.gz";
18582       hash = "sha256-kFfoUHYMcT2rB6DBycj4isEfbnTop0gcEObyc12K6Vs=";
18583     };
18584     propagatedBuildInputs = [ IOAsync Moo NetFrameLayerIPv6 namespaceclean ];
18585     buildInputs = [ TestFatal ];
18586     preCheck = "rm t/icmp_ps.t t/icmpv6_ps.t"; # ping socket tests fail
18587     meta = {
18588       description = "Asyncronously check remote host for reachability";
18589       homepage = "https://github.com/frioux/Net-Async-Ping";
18590       license = with lib.licenses; [ artistic1 gpl1Plus ];
18591     };
18592   };
18594   NetAsyncWebSocket = buildPerlModule {
18595     pname = "Net-Async-WebSocket";
18596     version = "0.13";
18597     src = fetchurl {
18598       url = "mirror://cpan/authors/id/P/PE/PEVANS/Net-Async-WebSocket-0.13.tar.gz";
18599       hash = "sha256-DayDQtPHii/syr1GZxRd1a3U+4zRjRVtKXoead/hFgA=";
18600     };
18601     propagatedBuildInputs = [ IOAsync ProtocolWebSocket URI ];
18602     preCheck = lib.optionalString stdenv.hostPlatform.isDarwin ''
18603       # network tests fail on Darwin/sandbox, so disable these
18604       rm -f t/02server.t t/03cross.t
18605     '';
18606     meta = {
18607       description = "Use WebSockets with IO::Async";
18608       license = with lib.licenses; [ artistic1 gpl1Plus ];
18609       maintainers = [ maintainers.zakame ];
18610     };
18611   };
18613   NetAMQP = buildPerlModule {
18614     pname = "Net-AMQP";
18615     version = "0.06";
18616     src = fetchurl {
18617       url = "mirror://cpan/authors/id/C/CH/CHIPS/Net-AMQP-0.06.tar.gz";
18618       hash = "sha256-Cyun3izX3dX+ECouKueuuiHqqxB4vzv9PFpyKTclY4A=";
18619     };
18620     doCheck = false; # failures on 32bit
18621     buildInputs = [ TestDeep ];
18622     propagatedBuildInputs = [ ClassAccessor ClassDataInheritable XMLLibXML ];
18623     meta = {
18624       description = "Advanced Message Queue Protocol (de)serialization and representation";
18625       license = with lib.licenses; [ artistic1 gpl1Plus ];
18626     };
18627   };
18629   NetCIDR = buildPerlPackage {
18630     pname = "Net-CIDR";
18631     version = "0.21";
18632     src = fetchurl {
18633       url = "mirror://cpan/authors/id/M/MR/MRSAM/Net-CIDR-0.21.tar.gz";
18634       hash = "sha256-MPMDwHNZSNozNw3sx+h8+mi8QwqkS4HRj42CO20av78=";
18635     };
18636     meta = {
18637       description = "Manipulate IPv4/IPv6 netblocks in CIDR notation";
18638       license = with lib.licenses; [ artistic1 gpl1Plus ];
18639       maintainers = [ maintainers.bjornfor ];
18640     };
18641   };
18643   NetCIDRLite = buildPerlPackage {
18644     pname = "Net-CIDR-Lite";
18645     version = "0.22";
18646     src = fetchurl {
18647       url = "mirror://cpan/authors/id/S/ST/STIGTSP/Net-CIDR-Lite-0.22.tar.gz";
18648       hash = "sha256-QxfYyzQaYXueCIjaQ8Cc3//8sMnt97jJko10KlY7hRc=";
18649     };
18650     meta = {
18651       description = "Perl extension for merging IPv4 or IPv6 CIDR addresses";
18652       license = with lib.licenses; [ artistic1 gpl1Plus ];
18653       maintainers = [ maintainers.sgo ];
18654     };
18655   };
18657   NetCoverArtArchive = buildPerlPackage {
18658     pname = "Net-CoverArtArchive";
18659     version = "1.02";
18660     src = fetchurl {
18661       url = "mirror://cpan/authors/id/C/CY/CYCLES/Net-CoverArtArchive-1.02.tar.gz";
18662       hash = "sha256-VyXiCCZDVq1rP6++uXVqz8Kny5WDiMpcCHqsJzNF3dE=";
18663     };
18664     buildInputs = [ FileFindRule ];
18665     propagatedBuildInputs = [ JSONAny LWP Moose namespaceautoclean ];
18666     meta = {
18667       description = "Query the coverartarchive.org";
18668       homepage = "https://github.com/metabrainz/CoverArtArchive";
18669       license = with lib.licenses; [ artistic1 gpl1Plus ];
18670     };
18671   };
18673   NetCUPS = buildPerlPackage {
18674     pname = "Net-CUPS";
18675     version = "0.64";
18676     src = fetchurl {
18677       url = "mirror://cpan/authors/id/N/NI/NINE/Net-CUPS-0.64.tar.gz";
18678       hash = "sha256-17x3/w9iv4dMhDxZDrEqgLvUR0mi+3Tb7URcNdDoWoU=";
18679     };
18680     buildInputs = [ pkgs.cups pkgs.cups-filters ];
18681     NIX_CFLAGS_LINK = "-L${lib.getLib pkgs.cups}/lib -lcups";
18682     meta = {
18683       description = "Common Unix Printing System Interface";
18684       homepage = "https://github.com/niner/perl-Net-CUPS";
18685       license = with lib.licenses; [ artistic1 gpl1Plus ];
18686     };
18687   };
18689   NetDBus = buildPerlPackage {
18690     pname = "Net-DBus";
18691     version = "1.2.0";
18692     src = fetchurl {
18693       url = "mirror://cpan/authors/id/D/DA/DANBERR/Net-DBus-1.2.0.tar.gz";
18694       hash = "sha256-56GsnvShI1s/29WIj4bDRxgjBkZ715q8mwdWpktEHLw=";
18695     };
18696     nativeBuildInputs = [ buildPackages.pkg-config ];
18697     buildInputs = [ pkgs.dbus TestPod TestPodCoverage ];
18698     propagatedBuildInputs = [ XMLTwig ];
18700     # https://gitlab.com/berrange/perl-net-dbus/-/merge_requests/19
18701     patches = fetchpatch {
18702       url = "https://gitlab.com/berrange/perl-net-dbus/-/commit/6bac8f188fb06e5e5edd27aee672d66b7c28caa4.patch";
18703       hash = "sha256-68kyUxM3E7w99rM2AZWZQMpGcaQxfSWaBs3DnmwnzqY=";
18704     };
18706     postPatch = ''
18707       substituteInPlace Makefile.PL --replace pkg-config $PKG_CONFIG
18708     '';
18710     meta = {
18711       description = "Extension for the DBus bindings";
18712       homepage = "https://www.freedesktop.org/wiki/Software/dbus";
18713       license = with lib.licenses; [ artistic1 gpl1Plus ];
18714     };
18715   };
18717   NetDNS = buildPerlPackage {
18718     pname = "Net-DNS";
18719     version = "1.44";
18720     src = fetchurl {
18721       url = "mirror://cpan/authors/id/N/NL/NLNETLABS/Net-DNS-1.44.tar.gz";
18722       hash = "sha256-E9ftxLjOoBMhR/qsNXH2s8cdHQz9hExTDFoET0o+wx4=";
18723     };
18724     propagatedBuildInputs = [ DigestHMAC ];
18725     makeMakerFlags = [ "--noonline-tests" ];
18726     meta = {
18727       description = "Perl Interface to the Domain Name System";
18728       license = with lib.licenses; [ mit ];
18729     };
18730   };
18732   NetDNSResolverMock = buildPerlPackage {
18733     pname = "Net-DNS-Resolver-Mock";
18734     version = "1.20230216";
18735     src = fetchurl {
18736       url = "mirror://cpan/authors/id/M/MB/MBRADSHAW/Net-DNS-Resolver-Mock-1.20230216.tar.gz";
18737       hash = "sha256-7UkwV3/Rop1kNbWHVTPTso9cElijWDP+bKLLaiaFpJs=";
18738     };
18739     propagatedBuildInputs = [ NetDNS ];
18740     buildInputs = [ TestException ];
18741     meta = {
18742       description = "Mock a DNS Resolver object for testing";
18743       license = with lib.licenses; [ artistic1 gpl1Plus ];
18744     };
18745   };
18747   NetDomainTLD = buildPerlPackage {
18748     pname = "Net-Domain-TLD";
18749     version = "1.75";
18750     src = fetchurl {
18751       url = "mirror://cpan/authors/id/A/AL/ALEXP/Net-Domain-TLD-1.75.tar.gz";
18752       hash = "sha256-TDf4ERhNaKxBedSMEOoxki3V/KLBv/zc2VxaKjtAAu4=";
18753     };
18754     meta = {
18755       description = "Work with TLD names";
18756       license = with lib.licenses; [ artistic1 gpl1Plus ];
18757     };
18758   };
18760   NetFastCGI = buildPerlPackage {
18761     pname = "Net-FastCGI";
18762     version = "0.14";
18763     src = fetchurl {
18764       url = "mirror://cpan/authors/id/C/CH/CHANSEN/Net-FastCGI-0.14.tar.gz";
18765       hash = "sha256-EZOQCk/V6eupzNBuE4+RCSG3Ugf/i1JLZDqIyD61WWo=";
18766     };
18767     buildInputs = [ TestException TestHexString ];
18768     meta = {
18769       description = "FastCGI Toolkit";
18770       license = with lib.licenses; [ artistic1 gpl1Plus ];
18771     };
18772   };
18774   NetFrame = buildPerlModule {
18775     pname = "Net-Frame";
18776     version = "1.21";
18777     src = fetchurl {
18778       url = "mirror://cpan/authors/id/G/GO/GOMOR/Net-Frame-1.21.tar.gz";
18779       hash = "sha256-vLNXootjnwyvfWLTPS5g/wv8z4lNAHzmAfY1UTiD1zk=";
18780     };
18781     propagatedBuildInputs = [ BitVector ClassGomor NetIPv6Addr ];
18782     preCheck = "rm t/13-gethostsubs.t"; # it performs DNS queries
18783     meta = {
18784       description = "Base framework for frame crafting";
18785       license = with lib.licenses; [ artistic1 ];
18786     };
18787   };
18789   NetFrameLayerIPv6 = buildPerlModule {
18790     pname = "Net-Frame-Layer-IPv6";
18791     version = "1.08";
18792     src = fetchurl {
18793       url = "mirror://cpan/authors/id/G/GO/GOMOR/Net-Frame-Layer-IPv6-1.08.tar.gz";
18794       hash = "sha256-ui2FK+jzf1iE4wfagriqPNeU4YoVyAdSGsLKKtE599c=";
18795     };
18796     propagatedBuildInputs = [ NetFrame ];
18797     meta = {
18798       description = "Internet Protocol v6 layer object";
18799       license = with lib.licenses; [ artistic1 ];
18800     };
18801   };
18803   NetFreeDB = buildPerlPackage {
18804     pname = "Net-FreeDB";
18805     version = "0.10";
18806     src = fetchurl {
18807       url = "mirror://cpan/authors/id/D/DS/DSHULTZ/Net-FreeDB-0.10.tar.gz";
18808       hash = "sha256-90PhIjjrFslIBK+0sxCwJUj3C8rxeRZOrlZ/i0mIroU=";
18809     };
18810     buildInputs = [ TestDeep TestDifferences TestException TestMost TestWarn ];
18811     propagatedBuildInputs = [ CDDBFile Moo ];
18812     meta = {
18813       description = "OOP Interface to FreeDB Server(s)";
18814       license = with lib.licenses; [ artistic1 ];
18815       broken = stdenv.hostPlatform.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.NetFreeDB.x86_64-darwin
18816     };
18817   };
18819   NetHTTP = buildPerlPackage {
18820     pname = "Net-HTTP";
18821     version = "6.23";
18822     src = fetchurl {
18823       url = "mirror://cpan/authors/id/O/OA/OALDERS/Net-HTTP-6.23.tar.gz";
18824       hash = "sha256-DWXAndbIWJsq4RGBdNPBphcDtuz8FKNEKox0r2XgyU4=";
18825     };
18826     propagatedBuildInputs = [ URI ];
18827     __darwinAllowLocalNetworking = true;
18828     doCheck = false; /* wants network */
18829     meta = {
18830       description = "Low-level HTTP connection (client)";
18831       homepage = "https://github.com/libwww-perl/Net-HTTP";
18832       license = with lib.licenses; [ artistic1 gpl1Plus ];
18833     };
18834   };
18836   NetHTTPSNB = buildPerlPackage {
18837     pname = "Net-HTTPS-NB";
18838     version = "0.15";
18839     src = fetchurl {
18840       url = "mirror://cpan/authors/id/O/OL/OLEG/Net-HTTPS-NB-0.15.tar.gz";
18841       hash = "sha256-amnPT6Vfuju70iYu4UKC7YMQc22PWslNGmxZfNEnjE8=";
18842     };
18843     propagatedBuildInputs = [ IOSocketSSL NetHTTP ];
18844     meta = {
18845       description = "Non-blocking HTTPS client";
18846       homepage = "https://github.com/olegwtf/p5-Net-HTTPS-NB";
18847       license = with lib.licenses; [ artistic1 gpl1Plus ];
18848     };
18849   };
18851   NetIDNEncode = buildPerlModule {
18852     pname = "Net-IDN-Encode";
18853     version = "2.500";
18854     src = fetchurl {
18855       url = "mirror://cpan/authors/id/C/CF/CFAERBER/Net-IDN-Encode-2.500.tar.gz";
18856       hash = "sha256-VUU2M+P/JM4yWzS8LIFXuYWZYqMatc8ov3zMHJs6Pqo=";
18857     };
18858     buildInputs = [ TestNoWarnings ];
18859     perlPreHook = "export LD=$CC";
18860     meta = {
18861       description = "Internationalizing Domain Names in Applications (UTS #46)";
18862       homepage = "https://metacpan.org/release/Net-IDN-Encode";
18863       license = with lib.licenses; [ artistic1 gpl1Plus ];
18864     };
18865   };
18867   NetIMAPClient = buildPerlPackage {
18868     pname = "Net-IMAP-Client";
18869     version = "0.9507";
18870     src = fetchurl {
18871       url = "mirror://cpan/authors/id/G/GA/GANGLION/Net-IMAP-Client-0.9507.tar.gz";
18872       hash = "sha256-QE5vW7xQjPFnxAUqXhRwXv7sb7eTvPm1xCniX0cYNUk=";
18873     };
18874     propagatedBuildInputs = [ IOSocketSSL ListMoreUtils ];
18875     meta = {
18876       description = "Not so simple IMAP client library";
18877       license = with lib.licenses; [ artistic1 gpl1Plus ];
18878     };
18879   };
18881   NetIP = buildPerlPackage {
18882     pname = "Net-IP";
18883     version = "1.26";
18884     src = fetchurl {
18885       url = "mirror://cpan/authors/id/M/MA/MANU/Net-IP-1.26.tar.gz";
18886       hash = "sha256-BA8W8wZmR9dhtySjtwdU0oy9Hm/l6gHGPtHNhXEX1jk=";
18887     };
18888     meta = {
18889       description = "Perl extension for manipulating IPv4/IPv6 addresses";
18890       license = with lib.licenses; [ artistic1 gpl1Plus ];
18891     };
18892   };
18894   NetIPLite = buildPerlPackage {
18895     pname = "Net-IP-Lite";
18896     version = "0.03";
18897     src = fetchurl {
18898       url = "mirror://cpan/authors/id/A/AL/ALEXKOM/Net-IP-Lite-0.03.tar.gz";
18899       hash = "sha256-yZFubPqlO+J1N5zksqVQrhdt36tQ2tQ7Q+1D6CZ4Aqk=";
18900     };
18901     buildInputs = [ TestException ];
18902     meta = {
18903       description = "Perl extension for manipulating IPv4/IPv6 addresses";
18904       homepage = "https://metacpan.org/pod/Net::IP::Lite";
18905       license = with lib.licenses; [ artistic1 gpl1Plus ];
18906       maintainers = [ maintainers.sgo ];
18907     };
18908   };
18910   NetIPv4Addr = buildPerlPackage {
18911     pname = "Net-IPv4Addr";
18912     version = "0.10";
18913     src = fetchurl {
18914       url = "mirror://cpan/authors/id/F/FR/FRAJULAC/Net-IPv4Addr-0.10.tar.gz";
18915       hash = "sha256-OEXeTzCxfIQrGSys6Iedu2IU3paSz6cPCq8JgUIqY/4=";
18916     };
18917     meta = {
18918       description = "Perl extension for manipulating IPv4 addresses";
18919       license = with lib.licenses; [ artistic1 gpl1Plus ];
18920       mainProgram = "ipv4calc";
18921     };
18922   };
18924   NetIPv6Addr = buildPerlPackage {
18925     pname = "Net-IPv6Addr";
18926     version = "1.02";
18927     src = fetchurl {
18928       url = "mirror://cpan/authors/id/B/BK/BKB/Net-IPv6Addr-1.02.tar.gz";
18929       hash = "sha256-sjQBwSJv7o3+Yn9a4OkMVaxUcBDso5gRDcFjH0HJ7H0=";
18930     };
18931     propagatedBuildInputs = [ MathBase85 NetIPv4Addr ];
18932     meta = {
18933       description = "Check and manipulate IPv6 addresses";
18934       license = with lib.licenses; [ artistic1 gpl1Plus ];
18935     };
18936   };
18938   NetIPXS = buildPerlPackage {
18939     pname = "Net-IP-XS";
18940     version = "0.22";
18941     src = fetchurl {
18942       url = "mirror://cpan/authors/id/T/TO/TOMHRR/Net-IP-XS-0.22.tar.gz";
18943       hash = "sha256-JZe0aDizgur3S6XJnD9gpqC1poHsNqFBchJL9E9LGSA=";
18944     };
18945     propagatedBuildInputs = [ IOCapture TieSimple ];
18946     meta = {
18947       homepage = "https://github.com/tomhrr/p5-Net-IP-XS";
18948       description = "IPv4/IPv6 address library";
18949       license = with lib.licenses; [ gpl2Plus ];
18950     };
18951   };
18953   NetLDAPServer = buildPerlPackage {
18954     pname = "Net-LDAP-Server";
18955     version = "0.43";
18956     src = fetchurl {
18957       url = "mirror://cpan/authors/id/A/AA/AAR/Net-LDAP-Server-0.43.tar.gz";
18958       hash = "sha256-3WxMtNMLwyEUsHh/qioeK0/t0bkcLvN5Zey6ETMbsGI=";
18959     };
18960     propagatedBuildInputs = [ perlldap ConvertASN1 ];
18961     meta = {
18962       description = "LDAP server side protocol handling";
18963       license = with lib.licenses; [ artistic1 gpl1Plus ];
18964     };
18965   };
18967   NetLDAPSID = buildPerlPackage {
18968     pname = "Net-LDAP-SID";
18969     version = "0.001";
18970     src = fetchurl {
18971       url = "mirror://cpan/authors/id/K/KA/KARMAN/Net-LDAP-SID-0.001.tar.gz";
18972       hash = "sha256-qMLNQGeQl/w7hCV24bU+w1/UNIGoalA4PutOJOu81tY=";
18973     };
18974     meta = {
18975       description = "Active Directory Security Identifier manipulation";
18976       homepage = "https://github.com/karpet/net-ldap-sid";
18977       license = with lib.licenses; [ artistic1 gpl1Plus ];
18978     };
18979   };
18981   NetLDAPServerTest = buildPerlPackage {
18982     pname = "Net-LDAP-Server-Test";
18983     version = "0.22";
18984     src = fetchurl {
18985       url = "mirror://cpan/authors/id/K/KA/KARMAN/Net-LDAP-Server-Test-0.22.tar.gz";
18986       hash = "sha256-sSBxe18fb2sTsxQ3/dIY7g/GnrASGN4U2SL5Kc+NLY4=";
18987     };
18988     propagatedBuildInputs = [ perlldap NetLDAPServer DataDump NetLDAPSID ];
18989     meta = {
18990       description = "Test Net::LDAP code";
18991       homepage = "https://github.com/karpet/net-ldap-server-test";
18992       license = with lib.licenses; [ artistic1 gpl1Plus ];
18993     };
18994   };
18996   NetLibIDN2 = buildPerlModule {
18997     pname = "Net-LibIDN2";
18998     version = "1.02";
18999     src = fetchurl {
19000       url = "mirror://cpan/authors/id/T/TH/THOR/Net-LibIDN2-1.02.tar.gz";
19001       hash = "sha256-0fMK/GrPplQbAMCafkx059jkuknjJ3wLvEGuNcE5DQc=";
19002     };
19003     propagatedBuildInputs = [ pkgs.libidn2 ];
19004     meta = {
19005       description = "Perl bindings for GNU Libidn2";
19006       homepage = "https://github.com/gnuthor/Net--LibIDN2";
19007       license = with lib.licenses; [ artistic1 gpl1Plus ];
19008     };
19009   };
19011   NetNetmask = buildPerlPackage {
19012     pname = "Net-Netmask";
19013     version = "2.0002";
19014     src = fetchurl {
19015       url = "mirror://cpan/authors/id/J/JM/JMASLAK/Net-Netmask-2.0002.tar.gz";
19016       hash = "sha256-JKmy58a8wTAteXROukwCG/PeR/FJqvrM2U+bBC/dv5Q=";
19017     };
19018     buildInputs = [ Test2Suite TestUseAllModules ];
19019     meta = {
19020       description = "Understand and manipulate IP netmasks";
19021       homepage = "https://search.cpan.org/~jmaslak/Net-Netmask";
19022       license = with lib.licenses; [ artistic1 gpl1Plus ];
19023     };
19024   };
19026   NetMPD = buildPerlModule {
19027     pname = "Net-MPD";
19028     version = "0.07";
19029     buildInputs = [ ModuleBuildTiny ];
19030     src = fetchurl {
19031       url = "mirror://cpan/authors/id/A/AB/ABERNDT/Net-MPD-0.07.tar.gz";
19032       hash = "sha256-M4L7nG9cJd4mKPVhRCn6igB5FSFnjELaBoyZ57KU6VM=";
19033     };
19034     meta = {
19035       description = "Communicate with an MPD server";
19036       homepage = "https://metacpan.org/pod/Net::MPD";
19037       license = with lib.licenses; [ mit ];
19038     };
19039   };
19041   NetMQTTSimple = buildPerlPackage {
19042     pname = "Net-MQTT-Simple";
19043     version = "1.28";
19044     src = fetchurl {
19045       url = "mirror://cpan/authors/id/J/JU/JUERD/Net-MQTT-Simple-1.28.tar.gz";
19046       hash = "sha256-Sp6hB+a8IuJrUzZ4oKPMbEI7N4TsP8ROjjM5t8Vr7gM=";
19047     };
19048     meta = {
19049       description = "Minimal MQTT version 3 interface";
19050       license = with lib.licenses; [ artistic1 gpl1Plus ];
19051     };
19052   };
19054   NetNVD = buildPerlPackage {
19055     pname = "Net-NVD";
19056     version = "0.0.3";
19057     src = fetchurl {
19058       url = "mirror://cpan/authors/id/G/GA/GARU/Net-NVD-0.0.3.tar.gz";
19059       hash = "sha256-uKZXEg+UsO7R2OvbA4i8M2DSj6Xw+CNrnNjNrovv5Bg=";
19060     };
19061     propagatedBuildInputs = [ IOSocketSSL JSON ];
19062     meta = {
19063       description = "Query CVE data from NIST's NVD (National Vulnerability Database)";
19064       license = with lib.licenses; [ artistic1 gpl1Plus ];
19065     };
19066   };
19068   NetOAuth = buildPerlModule {
19069     pname = "Net-OAuth";
19070     version = "0.28";
19071     src = fetchurl {
19072       url = "mirror://cpan/authors/id/K/KG/KGRENNAN/Net-OAuth-0.28.tar.gz";
19073       hash = "sha256-e/wxnaCsV44Ali81o1DPUREKOjEwFtH9wwciAooikEw=";
19074     };
19075     buildInputs = [ TestWarn ];
19076     propagatedBuildInputs = [ ClassAccessor ClassDataInheritable DigestHMAC DigestSHA1 LWP ];
19077     meta = {
19078       description = "Implementation of the OAuth protocol";
19079       license = with lib.licenses; [ artistic1 gpl1Plus ];
19080     };
19081   };
19083   NetPatricia = buildPerlPackage {
19084     pname = "Net-Patricia";
19085     version = "1.22";
19086     src = fetchurl {
19087       url = "mirror://cpan/authors/id/G/GR/GRUBER/Net-Patricia-1.22.tar.gz";
19088       hash = "sha256-cINakm4cWo0DJMcv/+6C7rfsbBQd7gT9RGggtk9xxVI=";
19089     };
19090     propagatedBuildInputs = [ NetCIDRLite Socket6 ];
19091     meta = {
19092       description = "Patricia Trie perl module for fast IP address lookups";
19093       license = with lib.licenses; [ gpl2Plus ];
19094     };
19095   };
19097   NetPing = buildPerlPackage {
19098     pname = "Net-Ping";
19099     version = "2.75";
19100     src = fetchurl {
19101       url = "mirror://cpan/authors/id/R/RU/RURBAN/Net-Ping-2.75.tar.gz";
19102       hash = "sha256-tH3zz9lpLM0Aca05/nRxjrwy9ZcBVWpgT9FaCfCeDXQ=";
19103     };
19104     meta = {
19105       description = "Check a remote host for reachability";
19106       license = with lib.licenses; [ artistic1 gpl1Plus ];
19107     };
19108   };
19110   NetDNSResolverProgrammable = buildPerlPackage {
19111     pname = "Net-DNS-Resolver-Programmable";
19112     version = "0.009";
19113     src = fetchurl {
19114       url = "mirror://cpan/authors/id/B/BI/BIGPRESH/Net-DNS-Resolver-Programmable-0.009.tar.gz";
19115       hash = "sha256-gICiq3dmKVhZEa8Reb23xNwr6/1LXv13sR0drGJFS/g=";
19116     };
19117     propagatedBuildInputs = [ NetDNS ];
19118     meta = {
19119       description = "Programmable DNS resolver class for offline emulation of DNS";
19120       homepage = "https://github.com/bigpresh/Net-DNS-Resolver-Programmable";
19121       license = with lib.licenses; [ artistic1 gpl1Plus ];
19122     };
19123   };
19125   NetPrometheus = buildPerlModule {
19126     pname = "Net-Prometheus";
19127     version = "0.12";
19128     src = fetchurl {
19129       url = "mirror://cpan/authors/id/P/PE/PEVANS/Net-Prometheus-0.12.tar.gz";
19130       hash = "sha256-rs73NJygSW/yNahKkQ+KBDZtB/WqQfrieixKxbip6SM=";
19131     };
19132     propagatedBuildInputs = [ RefUtil StructDumb URI ];
19133     buildInputs = [ HTTPMessage TestFatal ];
19134     meta = {
19135       description = "Export monitoring metrics for prometheus";
19136       license = with lib.licenses; [ artistic1 gpl1Plus ];
19137     };
19138   };
19140   NetSCP = buildPerlPackage {
19141     pname = "Net-SCP";
19142     version = "0.08.reprise";
19143     src = fetchurl {
19144       url = "mirror://cpan/authors/id/I/IV/IVAN/Net-SCP-0.08.reprise.tar.gz";
19145       hash = "sha256-iKmy32nnaeWFWkCLGfYZFbguj+Bwq1z01SXdO4u+McE=";
19146     };
19147     propagatedBuildInputs = [ pkgs.openssl ];
19148     patchPhase = ''
19149       sed -i 's|$scp = "scp";|$scp = "${pkgs.openssh}/bin/scp";|' SCP.pm
19150     '';
19151     buildInputs = [ NetSSH StringShellQuote ];
19152     meta = {
19153       description = "Simple wrappers around ssh and scp commands";
19154       license = with lib.licenses; [ artistic1 gpl1Plus ];
19155     };
19156   };
19158   NetRemctl = callPackage ../development/perl-modules/NetRemctl { };
19160   NetServer = buildPerlPackage {
19161     pname = "Net-Server";
19162     version = "2.014";
19163     src = fetchurl {
19164       url = "mirror://cpan/authors/id/R/RH/RHANDOM/Net-Server-2.014.tar.gz";
19165       hash = "sha256-NAa5ylpmKgB17tR/t43hMWtgHJT2Kg7jSlVE25uqNyA=";
19166     };
19167     doCheck = false; # seems to hang waiting for connections
19168     meta = {
19169       description = "Extensible Perl internet server";
19170       license = with lib.licenses; [ artistic1 gpl1Plus ];
19171       mainProgram = "net-server";
19172     };
19173   };
19175   NetSFTPForeign = buildPerlPackage {
19176     pname = "Net-SFTP-Foreign";
19177     version = "1.93";
19178     src = fetchurl {
19179       url = "mirror://cpan/authors/id/S/SA/SALVA/Net-SFTP-Foreign-1.93.tar.gz";
19180       hash = "sha256-bH1kJQh2hz2kNIAOUGCovvekZFHYH4F+N+Q8/aUaD3o=";
19181     };
19182     propagatedBuildInputs = [ pkgs.openssl ];
19183     patchPhase = ''
19184       sed -i "s|$ssh_cmd = 'ssh'|$ssh_cmd = '${pkgs.openssh}/bin/ssh'|" lib/Net/SFTP/Foreign/Backend/Unix.pm
19185     '';
19186     meta = {
19187       description = "Secure File Transfer Protocol client";
19188       license = with lib.licenses; [ artistic1 gpl1Plus ];
19189     };
19190   };
19192   NetServerCoro = buildPerlPackage {
19193     pname = "Net-Server-Coro";
19194     version = "1.3";
19195     src = fetchurl {
19196       url = "mirror://cpan/authors/id/A/AL/ALEXMV/Net-Server-Coro-1.3.tar.gz";
19197       hash = "sha256-HhpwKw3TkMPmKfip6EzKY7eU0eInlX9Cm2dgEHV3+4Y=";
19198     };
19199     propagatedBuildInputs = [ Coro NetServer ];
19200     meta = {
19201       description = "Co-operative multithreaded server using Coro";
19202       license = with lib.licenses; [ mit ];
19203     };
19204   };
19206   NetServerSSPrefork = buildPerlPackage {
19207     pname = "Net-Server-SS-PreFork";
19208     version = "0.06pre";
19209     src = fetchFromGitHub {
19210       owner = "kazuho";
19211       repo = "p5-Net-Server-SS-PreFork";
19212       rev = "5fccc0c270e25c65ef634304630af74b48807d21";
19213       hash = "sha256-pveVyFdEe/TQCEI83RrQTWr7aoYrgOGaNqc1wJeiAnw=";
19214     };
19215     nativeCheckInputs = [ HTTPMessage LWP TestSharedFork HTTPServerSimple TestTCP TestUNIXSock ];
19216     buildInputs = [ ModuleInstall ];
19217     propagatedBuildInputs = [ NetServer ServerStarter ];
19218     meta = {
19219       description = "Hot-deployable variant of Net::Server::PreFork";
19220       license = with lib.licenses; [ artistic1 gpl1Plus ];
19221     };
19222   };
19224   NetSMTPSSL = buildPerlPackage {
19225     pname = "Net-SMTP-SSL";
19226     version = "1.04";
19227     src = fetchurl {
19228       url = "mirror://cpan/authors/id/R/RJ/RJBS/Net-SMTP-SSL-1.04.tar.gz";
19229       hash = "sha256-eynEWt0Z09UIS3Ufe6iajkBHmkRs4hz9nMdB5VgzKgA=";
19230     };
19231     propagatedBuildInputs = [ IOSocketSSL ];
19232     meta = {
19233       description = "SSL support for Net::SMTP";
19234       license = with lib.licenses; [ artistic1 gpl1Plus ];
19235     };
19236   };
19238   NetSMTPTLS = buildPerlPackage {
19239     pname = "Net-SMTP-TLS";
19240     version = "0.12";
19241     src = fetchurl {
19242       url = "mirror://cpan/authors/id/A/AW/AWESTHOLM/Net-SMTP-TLS-0.12.tar.gz";
19243       hash = "sha256-7+dyZnrDdwK5a221KXzIJ0J6Ozo4GbekMVsIudRE5KU=";
19244     };
19245     propagatedBuildInputs = [ DigestHMAC IOSocketSSL ];
19246     meta = {
19247       description = "SMTP client supporting TLS and AUTH";
19248       license = with lib.licenses; [ artistic1 gpl1Plus ];
19249     };
19250   };
19252   NetSMTPTLSButMaintained = buildPerlPackage {
19253     pname = "Net-SMTP-TLS-ButMaintained";
19254     version = "0.24";
19255     src = fetchurl {
19256       url = "mirror://cpan/authors/id/F/FA/FAYLAND/Net-SMTP-TLS-ButMaintained-0.24.tar.gz";
19257       hash = "sha256-a5XAj3FXnYUcAYP1AqcAyGof7O9XDjzugybF5M5mJW4=";
19258     };
19259     propagatedBuildInputs = [ DigestHMAC IOSocketSSL ];
19260     meta = {
19261       description = "SMTP client supporting TLS and AUTH (DEPRECATED, use Net::SMTPS instead)";
19262       license = with lib.licenses; [ artistic1 gpl1Plus ];
19263     };
19264   };
19266   NetSNMP = buildPerlModule {
19267     pname = "Net-SNMP";
19268     version = "6.0.1";
19269     src = fetchurl {
19270       url = "mirror://cpan/authors/id/D/DT/DTOWN/Net-SNMP-v6.0.1.tar.gz";
19271       hash = "sha256-FMN7wcuz883H1sE+DyeoWfFM3P1epUoEZ6iLwlmwt0E=";
19272     };
19273     patches = [
19274       (fetchpatch2 {
19275         url = "https://src.fedoraproject.org/rpms/perl-Net-SNMP/raw/6e1d3e8ff2b9bd38dab48301a9d8b5d81ef3b7fe/f/Net-SNMP-v6.0.1-Switch_from_Socket6_to_Socket.patch";
19276         hash = "sha256-IpVhqI+dXqzauTkLF0Doulg5U33FxHUhqFTp0jeMtMY=";
19277       })
19278       (fetchpatch2 {
19279         url = "https://src.fedoraproject.org/rpms/perl-Net-SNMP/raw/6e1d3e8ff2b9bd38dab48301a9d8b5d81ef3b7fe/f/Net-SNMP-v6.0.1-Simple_rewrite_to_Digest-HMAC-helpers.patch";
19280         hash = "sha256-ZXo9w2YLtPmM1SJLvIiLWefw7SwrTFyTo4eX6DG1yfA=";
19281       })
19282       (fetchpatch2 {
19283         url = "https://src.fedoraproject.org/rpms/perl-Net-SNMP/raw/6e1d3e8ff2b9bd38dab48301a9d8b5d81ef3b7fe/f/Net-SNMP-v6.0.1-Split_usm.t_to_two_parts.patch";
19284         hash = "sha256-A2gsD6DIX1aFSVLbSL/1zKSM1xiM6hWBadJJH7f5E8o=";
19285       })
19286       (fetchpatch2 {
19287         url = "https://src.fedoraproject.org/rpms/perl-Net-SNMP/raw/6e1d3e8ff2b9bd38dab48301a9d8b5d81ef3b7fe/f/Net-SNMP-v6.0.1-Add_tests_for_another_usm_scenarios.patch";
19288         hash = "sha256-U7nNuL35l/zdSzx1jgjp1PmLQn3xzzDw9DGnyeydi2E=";
19289       })
19290       (fetchpatch2 {
19291         url = "https://src.fedoraproject.org/rpms/perl-Net-SNMP/raw/6e1d3e8ff2b9bd38dab48301a9d8b5d81ef3b7fe/f/Net-SNMP-v6.0.1-Rewrite_from_Digest-SHA1-to-Digest-SHA.patch";
19292         hash = "sha256-dznhj1Fcy0iBBl92p825InjkNZixR2MURVQ/b9bVjtc=";
19293       })
19294       ../development/perl-modules/net-snmp-add-sha-algorithms.patch
19295     ];
19296     preCheck =
19297       (lib.optionalString stdenv.hostPlatform.isLinux ''
19298         export NIX_REDIRECTS=/etc/protocols=${pkgs.iana-etc}/etc/protocols
19299         export LD_PRELOAD=${pkgs.libredirect}/lib/libredirect.so
19300       '');
19301     propagatedBuildInputs = [
19302       CryptDES
19303       CryptRijndael
19304       DigestHMAC
19305     ];
19306     meta = {
19307       description = "Object oriented interface to SNMP";
19308       license = with lib.licenses; [ artistic1 gpl1Plus ];
19309       mainProgram = "snmpkey";
19310     };
19311   };
19313   NetSNPP = buildPerlPackage {
19314     pname = "Net-SNPP";
19315     version = "1.17";
19316     src = fetchurl {
19317       url = "mirror://cpan/authors/id/T/TO/TOBEYA/Net-SNPP-1.17.tar.gz";
19318       hash = "sha256-BrhR1kWWYl6GY1n7AX3Q0Ilz4OvFDDI/Sh1Q7N2GjnY=";
19319     };
19321     doCheck = false;
19322     meta = {
19323       description = "Simple Network Pager Protocol Client";
19324       license = with lib.licenses; [ artistic1 gpl1Plus ];
19325     };
19326   };
19328   NetSSH = buildPerlPackage {
19329     pname = "Net-SSH";
19330     version = "0.09";
19331     src = fetchurl {
19332       url = "mirror://cpan/authors/id/I/IV/IVAN/Net-SSH-0.09.tar.gz";
19333       hash = "sha256-fHHHw8vpUyNN/iW8wa1+2w4fWgV4YB9VI7xgcCYqOBc=";
19334     };
19335     propagatedBuildInputs = [ pkgs.openssl ];
19336     patchPhase = ''
19337       sed -i 's|$ssh = "ssh";|$ssh = "${pkgs.openssh}/bin/ssh";|' SSH.pm
19338     '';
19339     meta = {
19340       description = "Simple wrappers around ssh commands";
19341       license = with lib.licenses; [ artistic1 gpl1Plus ];
19342     };
19343   };
19345   NetSSHPerl = buildPerlPackage {
19346     pname = "Net-SSH-Perl";
19347     version = "2.142";
19348     src = fetchurl {
19349       url = "mirror://cpan/authors/id/B/BD/BDFOY/Net-SSH-Perl-2.142.tar.gz";
19350       hash = "sha256-UAHbPllS/BjYXDF5Uhr2kT0VQ+tP30/ZfcYDpHSMLJY=";
19351     };
19352     propagatedBuildInputs = [ CryptCurve25519 CryptIDEA CryptX FileHomeDir MathGMP StringCRC32 ];
19353     preCheck = "export HOME=$TMPDIR";
19354     meta = {
19355       description = "Perl client interface to SSH";
19356       homepage = "https://search.cpan.org/dist/Net-SSH-Perl";
19357       license = with lib.licenses; [ artistic1 gpl1Plus ];
19358     };
19359   };
19361   NetSSLeay = buildPerlPackage {
19362     pname = "Net-SSLeay";
19363     version = "1.92";
19364     src = fetchurl {
19365       url = "mirror://cpan/authors/id/C/CH/CHRISN/Net-SSLeay-1.92.tar.gz";
19366       hash = "sha256-R8LyswDy5xYtcdaZ9jPdajWwYloAy9qMUKwBFEqTlqk=";
19367     };
19368     buildInputs = [ pkgs.openssl pkgs.zlib ];
19369     doCheck = false; # Test performs network access.
19370     preConfigure = ''
19371       mkdir openssl
19372       ln -s ${lib.getLib pkgs.openssl}/lib openssl
19373       ln -s ${pkgs.openssl.bin}/bin openssl
19374       ln -s ${pkgs.openssl.dev}/include openssl
19375       export OPENSSL_PREFIX=$(realpath openssl)
19376     '';
19377     meta = {
19378       description = "Perl bindings for OpenSSL and LibreSSL";
19379       license = with lib.licenses; [ artistic2 ];
19380     };
19381   };
19383   NetStatsd = buildPerlPackage {
19384     pname = "Net-Statsd";
19385     version = "0.12";
19386     src = fetchurl {
19387       url = "mirror://cpan/authors/id/C/CO/COSIMO/Net-Statsd-0.12.tar.gz";
19388       hash = "sha256-Y+RTYD2hZbxtHEygtV7aPSIE8EDFkwSkd4LFqniGVlw=";
19389     };
19390     meta = {
19391       description = "Perl client for Etsy's statsd daemon";
19392       license = with lib.licenses; [ artistic1 gpl1Plus ];
19393       mainProgram = "benchmark.pl";
19394     };
19395   };
19397   NetTelnet = buildPerlPackage {
19398     pname = "Net-Telnet";
19399     version = "3.05";
19400     src = fetchurl {
19401       url = "mirror://cpan/authors/id/J/JR/JROGERS/Net-Telnet-3.05.tar.gz";
19402       hash = "sha256-Z39ouizSqCT64yP6guGDv349A8PEmckdkjvWKDeWp0M=";
19403     };
19404     meta = {
19405       description = "Interact with TELNET port or other TCP ports";
19406       license = with lib.licenses; [ artistic1 gpl1Plus ];
19407     };
19408   };
19410   NetTwitterLite = buildPerlModule {
19411     pname = "Net-Twitter-Lite";
19412     version = "0.12008";
19413     src = fetchurl {
19414       url = "mirror://cpan/authors/id/M/MM/MMIMS/Net-Twitter-Lite-0.12008.tar.gz";
19415       hash = "sha256-suq+Hyo/LGTezWDye8O0buZSVgsCTExWgRVhbI1KRo4=";
19416     };
19417     buildInputs = [ ModuleBuildTiny TestFatal ];
19418     propagatedBuildInputs = [ JSON LWPProtocolHttps ];
19419     doCheck = false;
19420     meta = {
19421       description = "Perl API library for the Twitter API";
19422       homepage = "https://github.com/semifor/net-twitter-lite";
19423       license = with lib.licenses; [ artistic1 gpl1Plus ];
19424     };
19425   };
19427   NetWhoisIP = buildPerlPackage {
19428     pname = "Net-Whois-IP";
19429     version = "1.19";
19430     src = fetchurl {
19431       url = "mirror://cpan/authors/id/B/BS/BSCHMITZ/Net-Whois-IP-1.19.tar.gz";
19432       hash = "sha256-8JvfoPHSZltTSCa186hmI0mTDu0pmO/k2Nv5iBMUciI=";
19433     };
19434     doCheck = false;
19436     # https://rt.cpan.org/Public/Bug/Display.html?id=99377
19437     postPatch = ''
19438       substituteInPlace IP.pm --replace " AutoLoader" ""
19439     '';
19440     buildInputs = [ RegexpIPv6 ];
19441     meta = {
19442       description = "Perl extension for looking up the whois information for ip addresses";
19443       license = with lib.licenses; [ artistic1 gpl1Plus ];
19444     };
19445   };
19447   NetWorks = buildPerlPackage {
19448     pname = "Net-Works";
19449     version = "0.22";
19450     src = fetchurl {
19451       url = "mirror://cpan/authors/id/M/MA/MAXMIND/Net-Works-0.22.tar.gz";
19452       hash = "sha256-CsmyPfvKGE4ocpskU5S8ZpOq22/EUcqplbS3GewO6f8=";
19453     };
19454     propagatedBuildInputs = [ ListAllUtils MathInt128 Moo namespaceautoclean ];
19455     buildInputs = [ TestFatal ];
19456     meta = {
19457       description = "Sane APIs for IP addresses and networks";
19458       license = with lib.licenses; [ artistic1 gpl1Plus ];
19459     };
19460   };
19462   NumberBytesHuman = buildPerlPackage {
19463     pname = "Number-Bytes-Human";
19464     version = "0.11";
19465     src = fetchurl {
19466       url = "mirror://cpan/authors/id/F/FE/FERREIRA/Number-Bytes-Human-0.11.tar.gz";
19467       hash = "sha256-X8ecSbC0DfeAR5xDaWOBND4ratH+UoWfYLxltm6+byw=";
19468     };
19469     meta = {
19470       description = "Convert byte count to human readable format";
19471       license = with lib.licenses; [ artistic1 gpl1Plus ];
19472     };
19473   };
19475   NumberCompare = buildPerlPackage {
19476     pname = "Number-Compare";
19477     version = "0.03";
19478     src = fetchurl {
19479       url = "mirror://cpan/authors/id/R/RC/RCLAMP/Number-Compare-0.03.tar.gz";
19480       hash = "sha256-gyk3N+gDtDESgwRD+1II7FIIoubqUS7VTvjk3SuICCc=";
19481     };
19482     meta = {
19483       description = "Numeric comparisons";
19484       license = with lib.licenses; [ artistic1 gpl1Plus ];
19485     };
19486   };
19488   NumberFormat = buildPerlPackage {
19489     pname = "Number-Format";
19490     version = "1.76";
19491     src = fetchurl {
19492       url = "mirror://cpan/authors/id/R/RJ/RJBS/Number-Format-1.76.tar.gz";
19493       hash = "sha256-DgBg6zY2NaiFcGxqJvX8qv6udZ97Ksrkndpw4ZXdRNY=";
19494     };
19495     meta = {
19496       description = "Perl extension for formatting numbers";
19497       license = with lib.licenses; [ artistic1 gpl1Plus ];
19498     };
19499   };
19501   NumberFraction = buildPerlModule {
19502     pname = "Number-Fraction";
19503     version = "3.0.4";
19504     src = fetchurl {
19505       url = "mirror://cpan/authors/id/D/DA/DAVECROSS/Number-Fraction-v3.0.4.tar.gz";
19506       hash = "sha256-xkGcird4/XKbENfmp487ewf8CJV8H3nlZm3Ny01iwIU=";
19507     };
19508     propagatedBuildInputs = [ Moo MooXTypesMooseLike ];
19509     meta = {
19510       description = "Perl extension to model fractions";
19511       license = with lib.licenses; [ artistic1 gpl1Plus ];
19512     };
19513   };
19515   NumberMisc = buildPerlModule {
19516     pname = "Number-Misc";
19517     version = "1.2";
19518     src = fetchurl {
19519       url = "mirror://cpan/authors/id/M/MI/MIKO/Number-Misc-1.2.tar.gz";
19520       hash = "sha256-d7m2jGAKBpzxb02BJuyzIVHmvNNLDtsXt4re5onckdg=";
19521     };
19522     meta = {
19523       description = "Number::Misc - handy utilities for numbers";
19524       license = with lib.licenses; [ artistic1 gpl1Plus ];
19525     };
19526   };
19528   NumberPhone = buildPerlPackage {
19529     pname = "Number-Phone";
19530     version = "4.0000";
19531     src = fetchurl {
19532       url = "mirror://cpan/authors/id/D/DC/DCANTRELL/Number-Phone-4.0000.tar.gz";
19533       hash = "sha256-H0mX/oMJSrDNgUDwvn/cHz+JGQKareajOYH4fLBIZjQ=";
19534     };
19535     buildInputs = [ DevelHide FileShareDirInstall ParallelForkManager TestDifferences TestWarnings ];
19536     propagatedBuildInputs = [ DataDumperConcise DataCompactReadonly DevelCheckOS DevelDeprecationsEnvironmental FileFindRule FileShareDir ];
19537     preCheck = ''
19538       # Remove slow memory hungry tests
19539       rm t/fork.t
19540       rm t/uk_slurp.t
19541     '';
19542     meta = {
19543       description = "Large suite of perl modules for parsing and dealing with phone numbers";
19544       homepage = "https://github.com/DrHyde/perl-modules-Number-Phone";
19545       license = with lib.licenses; [ artistic1 gpl2Only asl20 ];
19546     };
19547   };
19549   NumberWithError = buildPerlPackage {
19550     pname = "Number-WithError";
19551     version = "1.01";
19552     src = fetchurl {
19553       url = "mirror://cpan/authors/id/S/SM/SMUELLER/Number-WithError-1.01.tar.gz";
19554       hash = "sha256-3/agcn54ROpng3vfrdVSuG9rIW0Y7o7kaEKyLM7w9VQ=";
19555     };
19556     propagatedBuildInputs = [ ParamsUtil prefork ];
19557     buildInputs = [ TestLectroTest ];
19558     meta = {
19559       description = "Numbers with error propagation and scientific rounding";
19560       license = with lib.licenses; [ artistic1 gpl1Plus ];
19561     };
19562   };
19564   NTLM = buildPerlPackage {
19565     pname = "NTLM";
19566     version = "1.09";
19567     src = fetchurl {
19568       url = "mirror://cpan/authors/id/N/NB/NBEBOUT/NTLM-1.09.tar.gz";
19569       hash = "sha256-yCPjDNp2vBVjblhDAslg4rXu75UXwkSPdFRJiJMVH4U=";
19570     };
19571     propagatedBuildInputs = [ DigestHMAC ];
19572     meta = {
19573       description = "NTLM authentication module";
19574       license = with lib.licenses; [ artistic1 gpl1Plus ];
19575       maintainers = [ maintainers.pSub ];
19576     };
19577   };
19579   ObjectAccessor = buildPerlPackage {
19580     pname = "Object-Accessor";
19581     version = "0.48";
19582     src = fetchurl {
19583       url = "mirror://cpan/authors/id/B/BI/BINGOS/Object-Accessor-0.48.tar.gz";
19584       hash = "sha256-dsuCSie2tOVgQJ/Pb9Wzv7vTi3Lx89N+0LVL2cC66t4=";
19585     };
19586     meta = {
19587       description = "Per object accessors";
19588       license = with lib.licenses; [ artistic1 gpl1Plus ];
19589     };
19590   };
19592   ObjectEvent = buildPerlPackage rec {
19593     pname = "Object-Event";
19594     version = "1.23";
19595     src = fetchurl {
19596       url = "mirror://cpan/authors/id/E/EL/ELMEX/${pname}-${version}.tar.gz";
19597       hash = "sha256-q2u4BQj0/dry1RsgyodqqwOFgqhrUijmQ1QRNIr1PII=";
19598     };
19599     propagatedBuildInputs = [ AnyEvent commonsense ];
19600     meta = {
19601       description = "Class that provides an event callback interface";
19602       license = with lib.licenses; [ artistic1 gpl1Plus ];
19603     };
19604   };
19606   ObjectInsideOut = buildPerlModule {
19607     pname = "Object-InsideOut";
19608     version = "4.05";
19609     src = fetchurl {
19610       url = "mirror://cpan/authors/id/J/JD/JDHEDDEN/Object-InsideOut-4.05.tar.gz";
19611       hash = "sha256-nf1sooInJDR+DrZ1nQBwlCWBRwOtXGa9tiFFeYaLysQ=";
19612     };
19613     propagatedBuildInputs = [ ExceptionClass ];
19614     meta = {
19615       description = "Comprehensive inside-out object support module";
19616       license = with lib.licenses; [ artistic1 gpl1Plus ];
19617     };
19618   };
19620   ObjectPad = buildPerlModule {
19621     pname = "Object-Pad";
19622     version = "0.809";
19623     src = fetchurl {
19624       url = "mirror://cpan/authors/id/P/PE/PEVANS/Object-Pad-0.809.tar.gz";
19625       hash = "sha256-EpUKZkwGB+o/ynSA82XfVNF0YpH0XrsO2AkXt0+xXvU=";
19626     };
19627     buildInputs = [ Test2Suite TestFatal TestRefcount ];
19628     perlPreHook = lib.optionalString stdenv.hostPlatform.isDarwin "export LD=$CC";
19629     propagatedBuildInputs = [ XSParseKeyword XSParseSublike ];
19630     meta = {
19631       description = "Simple syntax for lexical field-based objects";
19632       license = with lib.licenses; [ artistic1 gpl1Plus ];
19633       maintainers = [ maintainers.zakame ];
19634     };
19635   };
19637   ObjectSignature = buildPerlPackage {
19638     pname = "Object-Signature";
19639     version = "1.08";
19640     src = fetchurl {
19641       url = "mirror://cpan/authors/id/E/ET/ETHER/Object-Signature-1.08.tar.gz";
19642       hash = "sha256-hCFTyU2pPiucs7VN7lcrUGS79JmjanPDiiN5mgIDaYo=";
19643     };
19644     meta = {
19645       description = "Generate cryptographic signatures for objects";
19646       homepage = "https://github.com/karenetheridge/Object-Signature";
19647       license = with lib.licenses; [ artistic1 gpl1Plus ];
19648     };
19649   };
19651   OggVorbisHeaderPurePerl = buildPerlPackage {
19652     pname = "Ogg-Vorbis-Header-PurePerl";
19653     version = "1.05";
19654     src = fetchurl {
19655       url = "mirror://cpan/authors/id/D/DA/DAVECROSS/Ogg-Vorbis-Header-PurePerl-1.05.tar.gz";
19656       hash = "sha256-Uh04CPQtcSKmsGwzpurm18OZR6q1fEyMyvzE9gP9pT4=";
19657     };
19659     # The testing mechanism is erorrneous upstream. See http://matrix.cpantesters.org/?dist=Ogg-Vorbis-Header-PurePerl+1.0
19660     doCheck = false;
19661     meta = {
19662       description = "Access Ogg Vorbis info and comment fields";
19663       license = with lib.licenses; [ artistic1 ];
19664     };
19665   };
19667   OLEStorage_Lite = buildPerlPackage {
19668     pname = "OLE-Storage_Lite";
19669     version = "0.22";
19670     src = fetchurl {
19671       url = "mirror://cpan/authors/id/J/JM/JMCNAMARA/OLE-Storage_Lite-0.22.tar.gz";
19672       hash = "sha256-0FZtbCnTl+pzY3ncUVw2hJ9rlxB89wC6glBQXJhM+WU=";
19673     };
19674     meta = {
19675       description = "Read and write OLE storage files";
19676       license = with lib.licenses; [ artistic1 gpl1Plus ];
19677     };
19678   };
19680   Opcodes = buildPerlPackage {
19681     pname = "Opcodes";
19682     version = "0.14";
19683     src = fetchurl {
19684       url = "mirror://cpan/authors/id/R/RU/RURBAN/Opcodes-0.14.tar.gz";
19685       hash = "sha256-f3NlRH5NHFuHtDCRRI8EiOZ8nwNrJsAipUCc1z00OJM=";
19686     };
19687     meta = {
19688       description = "More Opcodes information from opnames.h and opcode.h";
19689       license = with lib.licenses; [ artistic1 gpl1Plus ];
19690     };
19691   };
19693   OpenAPIClient = buildPerlPackage {
19694     pname = "OpenAPI-Client";
19695     version = "1.07";
19696     src = fetchurl {
19697       url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/OpenAPI-Client-1.07.tar.gz";
19698       hash = "sha256-Ue1kHSg7j0u7wG0BwVZzm9K5qItO+Et7hPlQ+g7hTbM=";
19699     };
19700     propagatedBuildInputs = [ MojoliciousPluginOpenAPI ];
19701     meta = {
19702       description = "Client for talking to an Open API powered server";
19703       homepage = "https://github.com/jhthorsen/openapi-client";
19704       license = with lib.licenses; [ artistic2 ];
19705       maintainers = [ maintainers.sgo ];
19706     };
19707   };
19709   OpenGL = buildPerlPackage rec {
19710     pname = "OpenGL";
19711     version = "0.70";
19712     src = fetchurl {
19713       url = "mirror://cpan/authors/id/C/CH/CHM/OpenGL-0.70.tar.gz";
19714       hash = "sha256-sg4q9EBLSQGrNbumrV46iqYL/3JBPJkojwEBjEz4dOA=";
19715     };
19717     # FIXME: try with libGL + libGLU instead of libGLU libGL
19718     buildInputs = [ pkgs.libGLU pkgs.libGL pkgs.libGLU pkgs.libglut pkgs.xorg.libX11 pkgs.xorg.libXi pkgs.xorg.libXmu pkgs.xorg.libXext pkgs.xdummy ];
19720     patches = [ ../development/perl-modules/perl-opengl.patch ];
19722     configurePhase = ''
19723       substituteInPlace Makefile.PL \
19724         --replace "@@libpaths@@" '${lib.concatStringsSep "\n" (map (f: "-L${f}/lib") buildInputs)}'
19726       cp -v ${../development/perl-modules/perl-opengl-gl-extensions.txt} utils/glversion.txt
19728       perl Makefile.PL PREFIX=$out INSTALLDIRS=site $makeMakerFlags
19729     '';
19731     doCheck = false;
19732     meta = {
19733       description = "Perl OpenGL bindings";
19734       license = with lib.licenses; [ artistic1 gpl1Plus ]; # taken from EPEL
19735     };
19736   };
19738   OpenOfficeOODoc = buildPerlPackage {
19739     pname = "OpenOffice-OODoc";
19740     version = "2.125";
19741     src = fetchurl {
19742       url = "mirror://cpan/authors/id/J/JM/JMGDOC/OpenOffice-OODoc-2.125.tar.gz";
19743       hash = "sha256-wRRIlwaTxCqLnpPaSMrJE1Fs4zqdRKZGhAD3rYeR2rY=";
19744     };
19745     propagatedBuildInputs = [ ArchiveZip XMLTwig ];
19746     meta = {
19747       description = "Perl Open OpenDocument Connector";
19748       license = with lib.licenses; [ lgpl21Only ];
19749       maintainers = [ maintainers.wentasah ];
19750     };
19751   };
19753   NetOpenIDCommon = buildPerlPackage {
19754     pname = "Net-OpenID-Common";
19755     version = "1.20";
19756     src = fetchurl {
19757       url = "mirror://cpan/authors/id/W/WR/WROG/Net-OpenID-Common-1.20.tar.gz";
19758       hash = "sha256-q06X10pHcQ4NtKwMgi9/32Iq+GpgpSunIlWoicKdq8k=";
19759     };
19760     propagatedBuildInputs = [ CryptDHGMP XMLSimple ];
19761     meta = {
19762       description = "Libraries shared between Net::OpenID::Consumer and Net::OpenID::Server";
19763       license = with lib.licenses; [ artistic1 gpl1Plus ];
19764     };
19765   };
19767   NetOpenIDConsumer = buildPerlPackage {
19768     pname = "Net-OpenID-Consumer";
19769     version = "1.18";
19770     src = fetchurl {
19771       url = "mirror://cpan/authors/id/W/WR/WROG/Net-OpenID-Consumer-1.18.tar.gz";
19772       hash = "sha256-Dhw4b+fBhDBx3Zlr3KymEJEGZK5LXRJ8lf6u/Zk2Tzg=";
19773     };
19774     propagatedBuildInputs = [ JSON NetOpenIDCommon ];
19775     buildInputs = [ CGI ];
19776     meta = {
19777       description = "Library for consumers of OpenID identities";
19778       license = with lib.licenses; [ artistic1 gpl1Plus ];
19779     };
19780   };
19782   NetOpenSSH = buildPerlPackage {
19783     pname = "Net-OpenSSH";
19784     version = "0.84";
19785     src = fetchurl {
19786       url = "mirror://cpan/authors/id/S/SA/SALVA/Net-OpenSSH-0.84.tar.gz";
19787       hash = "sha256-h4DmLwGxzw20PJy3BclP9JSbAyIzvkvpH8kavHkVOfg=";
19788     };
19789     meta = {
19790       description = "Perl SSH client package implemented on top of OpenSSH";
19791       license = with lib.licenses; [ artistic1 gpl1Plus ];
19792     };
19793   };
19795   NetZooKeeper = buildPerlPackage {
19796     pname = "Net-ZooKeeper";
19797     version = "0.42pre";
19798     src = fetchFromGitHub {
19799       owner = "mark-5";
19800       repo = "p5-net-zookeeper";
19801       rev = "66e1a360aff9c39af728c36092b540a4b6045f70";
19802       hash = "sha256-NyY97EWtqWFtKJnwX2HDkKcyviKq57yRtWC7lzajiHY=";
19803     };
19804     buildInputs = [ pkgs.zookeeper_mt ];
19805     # fix "error: format not a string literal and no format arguments [-Werror=format-security]"
19806     hardeningDisable = [ "format" ];
19807     # Make the async API accessible
19808     env.NIX_CFLAGS_COMPILE = "-DTHREADED";
19809     NIX_CFLAGS_LINK = "-L${pkgs.zookeeper_mt.out}/lib -lzookeeper_mt";
19810     # Most tests are skipped as no server is available in the sandbox.
19811     # `t/35_log.t` seems to suffer from a race condition; remove it.  See
19812     # https://github.com/NixOS/nixpkgs/pull/104889#issuecomment-737144513
19813     preCheck = ''
19814       rm t/35_log.t
19815     '' + lib.optionalString stdenv.hostPlatform.isDarwin ''
19816       rm t/30_connect.t
19817       rm t/45_class.t
19818     '';
19819     meta = {
19820       description = "Perl extension for Apache ZooKeeper";
19821       homepage = "https://github.com/mark-5/p5-net-zookeeper";
19822       license = with lib.licenses; [ asl20 ];
19823       maintainers = teams.deshaw.members ++ [ maintainers.ztzg ];
19824     };
19825   };
19827   PackageConstants = buildPerlPackage {
19828     pname = "Package-Constants";
19829     version = "0.06";
19830     src = fetchurl {
19831       url = "mirror://cpan/authors/id/B/BI/BINGOS/Package-Constants-0.06.tar.gz";
19832       hash = "sha256-C1i+eHBszE5L2butQXZ0cEJ/17LPrXSUid4QH4W8XfU=";
19833     };
19834     meta = {
19835       description = "List constants defined in a package";
19836       license = with lib.licenses; [ artistic1 gpl1Plus ];
19837     };
19838   };
19840   PackageDeprecationManager = buildPerlPackage {
19841     pname = "Package-DeprecationManager";
19842     version = "0.18";
19843     src = fetchurl {
19844       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Package-DeprecationManager-0.18.tar.gz";
19845       hash = "sha256-to0/DO1Vt2Ff3btgKbifkqNP4N2Mb9a87/wVfVaDT+g=";
19846     };
19847     buildInputs = [ TestFatal TestWarnings ];
19848     propagatedBuildInputs = [ PackageStash ParamsUtil SubInstall SubName ];
19849     meta = {
19850       description = "Manage deprecation warnings for your distribution";
19851       homepage = "https://metacpan.org/release/Package-DeprecationManager";
19852       license = with lib.licenses; [ artistic2 ];
19853     };
19854   };
19856   PatchReader = buildPerlPackage {
19857     pname = "PatchReader";
19858     version = "0.9.6";
19859     src = fetchurl {
19860       url = "mirror://cpan/authors/id/T/TM/TMANNERM/PatchReader-0.9.6.tar.gz";
19861       hash = "sha256-uN43RgNHu1R03AGRbMsx3S/gzZIkLEoy1zDo6wh8Mjw=";
19862     };
19863     meta = {
19864       description = "Utilities to read and manipulate patches and CVS";
19865       license = with lib.licenses; [ artistic1 ];
19866     };
19867   };
19869   PackageStash = buildPerlPackage {
19870     pname = "Package-Stash";
19871     version = "0.40";
19872     src = fetchurl {
19873       url = "mirror://cpan/authors/id/E/ET/ETHER/Package-Stash-0.40.tar.gz";
19874       hash = "sha256-WpcixtnLKe4TPl97CKU2J2KgtWM/9RcGQqWwaG6V4GY=";
19875     };
19876     buildInputs = [ CPANMetaCheck TestFatal TestNeeds TestRequires ];
19877     propagatedBuildInputs = [ DistCheckConflicts ModuleImplementation ];
19878     meta = {
19879       description = "Routines for manipulating stashes";
19880       homepage = "https://github.com/moose/Package-Stash";
19881       license = with lib.licenses; [ artistic1 gpl1Plus ];
19882       mainProgram = "package-stash-conflicts";
19883     };
19884   };
19886   PackageStashXS = buildPerlPackage {
19887     pname = "Package-Stash-XS";
19888     version = "0.30";
19889     src = fetchurl {
19890       url = "mirror://cpan/authors/id/E/ET/ETHER/Package-Stash-XS-0.30.tar.gz";
19891       hash = "sha256-JrrWXBlZxXN5s+E53HdvvsX3ApBmF+8nzcKT3fEjkjE=";
19892     };
19893     buildInputs = [ TestFatal TestNeeds ];
19894     meta = {
19895       description = "Faster and more correct implementation of the Package::Stash API";
19896       homepage = "https://github.com/moose/Package-Stash-XS";
19897       license = with lib.licenses; [ artistic1 gpl1Plus ];
19898     };
19899   };
19901   Pango = buildPerlPackage {
19902     pname = "Pango";
19903     version = "1.227";
19904     src = fetchurl {
19905       url = "mirror://cpan/authors/id/X/XA/XAOC/Pango-1.227.tar.gz";
19906       hash = "sha256-NLCkIt8/7NdZdYcEhVJFfUiudkxDu+/SqdYs62yLrHE=";
19907     };
19908     buildInputs = [ pkgs.pango ];
19909     propagatedBuildInputs = [ Cairo Glib ];
19910     meta = {
19911       description = "Layout and render international text";
19912       homepage = "https://gtk2-perl.sourceforge.net";
19913       license = with lib.licenses; [ lgpl21Plus ];
19914     };
19915   };
19917   ParallelForkManager = buildPerlPackage {
19918     pname = "Parallel-ForkManager";
19919     version = "2.02";
19920     src = fetchurl {
19921       url = "mirror://cpan/authors/id/Y/YA/YANICK/Parallel-ForkManager-2.02.tar.gz";
19922       hash = "sha256-wbKXCou2ZsPefKrEqPTbzAQ6uBm7wzdpLse/J62uRAQ=";
19923     };
19924     buildInputs = [ TestWarn ];
19925     propagatedBuildInputs = [ Moo ];
19926     meta = {
19927       description = "Simple parallel processing fork manager";
19928       homepage = "https://github.com/dluxhu/perl-parallel-forkmanager";
19929       license = with lib.licenses; [ artistic1 gpl1Plus ];
19930     };
19931   };
19933   ParallelLoops = buildPerlPackage {
19934     pname = "Parallel-Loops";
19935     version = "0.12";
19936     src = fetchurl {
19937       url = "mirror://cpan/authors/id/P/PM/PMORCH/Parallel-Loops-0.12.tar.gz";
19938       hash = "sha256-tmyP4v1RmHPIp7atHRoE3yAmkSJZteKKQeUdnJsVQVA=";
19939     };
19940     propagatedBuildInputs = [ ParallelForkManager ];
19941     meta = {
19942       description = "Execute loops using parallel forked subprocesses";
19943       homepage = "https://github.com/pmorch/perl-Parallel-Loops";
19944       license = with lib.licenses; [ artistic1 gpl1Plus ];
19945       maintainers = with maintainers; [ tomasajt ];
19946     };
19947   };
19949   ParallelPipes = buildPerlModule {
19950     pname = "Parallel-Pipes";
19951     version = "0.200";
19952     src = fetchurl {
19953       url = "mirror://cpan/authors/id/S/SK/SKAJI/Parallel-Pipes-0.200.tar.gz";
19954       hash = "sha256-iLmFDqzJ1hjz6RpRyqOGxKZOgswYc1AzUkTjSbgREQY=";
19955     };
19956     buildInputs = [ ModuleBuildTiny ];
19957     meta = {
19958       description = "Parallel processing using pipe(2) for communication and synchronization";
19959       homepage = "https://github.com/skaji/Parallel-Pipes";
19960       license = with lib.licenses; [ artistic1 gpl1Plus ];
19961       maintainers = [ maintainers.zakame ];
19962     };
19963   };
19965   ParallelPrefork = buildPerlPackage {
19966     pname = "Parallel-Prefork";
19967     version = "0.18";
19968     src = fetchurl {
19969       url = "mirror://cpan/authors/id/K/KA/KAZUHO/Parallel-Prefork-0.18.tar.gz";
19970       hash = "sha256-8cH0jxrhR6WLyI+csvVw1rsV6kwNWJq9TDCE3clhWW4=";
19971     };
19972     buildInputs = [ TestRequires TestSharedFork ];
19973     propagatedBuildInputs = [ ClassAccessorLite ListMoreUtils ProcWait3 ScopeGuard SignalMask ];
19974     meta = {
19975       description = "Simple prefork server framework";
19976       license = with lib.licenses; [ artistic1 gpl1Plus ];
19977     };
19978   };
19980   ParamsClassify = buildPerlModule {
19981     pname = "Params-Classify";
19982     version = "0.015";
19983     src = fetchurl {
19984       url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Params-Classify-0.015.tar.gz";
19985       hash = "sha256-OY7BXNiZ/Ni+89ueoXSL9jHxX2wyviA+R1tn31EKWRQ=";
19986     };
19987     perlPreHook = lib.optionalString stdenv.hostPlatform.isi686 "export LD=$CC"; # fix undefined reference to `__stack_chk_fail_local'
19988     meta = {
19989       description = "Argument type classification";
19990       license = with lib.licenses; [ artistic1 gpl1Plus ];
19991     };
19992   };
19994   ParamsUtil = buildPerlPackage {
19995     pname = "Params-Util";
19996     version = "1.102";
19997     src = fetchurl {
19998       url = "mirror://cpan/authors/id/R/RE/REHSACK/Params-Util-1.102.tar.gz";
19999       hash = "sha256-SZuxtILbJP2id6UVJVlq0JLCvVHdUI+o/sLp+EkJdAI=";
20000     };
20001     meta = {
20002       description = "Simple, compact and correct param-checking functions";
20003       homepage = "https://metacpan.org/release/Params-Util";
20004       license = with lib.licenses; [ artistic1 gpl1Plus ];
20005     };
20006   };
20008   ParamsValidate = buildPerlModule {
20009     pname = "Params-Validate";
20010     version = "1.31";
20011     src = fetchurl {
20012       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Params-Validate-1.31.tar.gz";
20013       hash = "sha256-G/JRjvLEhp+RWQ4hn1RcjvEu1TzzE+DrVwSt9/Gylh4=";
20014     };
20015     buildInputs = [ TestFatal TestRequires ];
20016     propagatedBuildInputs = [ ModuleImplementation ];
20017     perlPreHook = "export LD=$CC";
20018     meta = {
20019       description = "Validate method/function parameters";
20020       homepage = "https://metacpan.org/release/Params-Validate";
20021       license = with lib.licenses; [ artistic2 ];
20022     };
20023   };
20025   ParamsValidationCompiler = buildPerlPackage {
20026     pname = "Params-ValidationCompiler";
20027     version = "0.31";
20028     src = fetchurl {
20029       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Params-ValidationCompiler-0.31.tar.gz";
20030       hash = "sha256-e2SXFz8batsp9dUdjPnsNtLxIZQStLJBDp13qQHoSm0=";
20031     };
20032     propagatedBuildInputs = [ EvalClosure ExceptionClass ];
20033     buildInputs = [ Specio Test2PluginNoWarnings Test2Suite TestWithoutModule ];
20034     meta = {
20035       description = "Build an optimized subroutine parameter validator once, use it forever";
20036       homepage = "https://metacpan.org/release/Params-ValidationCompiler";
20037       license = with lib.licenses; [ artistic2 ];
20038     };
20039   };
20041   Paranoid = buildPerlPackage {
20042     pname = "Paranoid";
20043     version = "2.10";
20044     src = fetchurl {
20045       url = "mirror://cpan/authors/id/C/CO/CORLISS/Paranoid/Paranoid-2.10.tar.gz";
20046       hash = "sha256-vvS25l1cmk72C8qjF0hvOg0jm/2rRQqnEgLCl5i4dSk=";
20047     };
20048     patches = [ ../development/perl-modules/Paranoid-blessed-path.patch ];
20049     preConfigure = ''
20050       # Capture the path used when compiling this module as the "blessed"
20051       # system path, analogous to the module's own use of '/bin:/sbin'.
20052       sed -i "s#__BLESSED_PATH__#${pkgs.coreutils}/bin#" lib/Paranoid.pm t/01_init_core.t
20053     '';
20054     meta = {
20055       description = "General function library for safer, more secure programming";
20056       license = with lib.licenses; [ artistic1 gpl1Plus ];
20057       maintainers = teams.deshaw.members;
20058     };
20059   };
20061   PARDist = buildPerlPackage {
20062     pname = "PAR-Dist";
20063     version = "0.52";
20064     src = fetchurl {
20065       url = "mirror://cpan/authors/id/R/RS/RSCHUPP/PAR-Dist-0.52.tar.gz";
20066       hash = "sha256-y+ljAJ6nnSRUqF/heU9CW33cHoa3F0nIhNsp1gHqj4g=";
20067     };
20068     meta = {
20069       description = "Create and manipulate PAR distributions";
20070       license = with lib.licenses; [ artistic1 gpl1Plus ];
20071     };
20072   };
20074   PAUSEPermissions = buildPerlPackage {
20075     pname = "PAUSE-Permissions";
20076     version = "0.17";
20077     src = fetchurl {
20078       url = "mirror://cpan/authors/id/N/NE/NEILB/PAUSE-Permissions-0.17.tar.gz";
20079       hash = "sha256-ek6SDeODL5CfJV1aMj942M0hXGCMlJbNbJVwEsi0MQg=";
20080     };
20081     propagatedBuildInputs = [ FileHomeDir HTTPDate MooXOptions TimeDurationParse ];
20082     buildInputs = [ PathTiny ];
20083     meta = {
20084       description = "Interface to PAUSE's module permissions file (06perms.txt)";
20085       homepage = "https://github.com/neilb/PAUSE-Permissions";
20086       license = with lib.licenses; [ artistic1 gpl1Plus ];
20087       mainProgram = "pause-permissions";
20088     };
20089   };
20091   Parent = buildPerlPackage {
20092     pname = "parent";
20093     version = "0.241";
20094     src = fetchurl {
20095       url = "mirror://cpan/authors/id/C/CO/CORION/parent-0.241.tar.gz";
20096       hash = "sha256-sQs5YKs5l9q3Vx/+l1ukYtl50IZFB0Ch4Is5WedRKP4=";
20097     };
20098     meta = {
20099       description = "Establish an ISA relationship with base classes at compile time";
20100       license = with lib.licenses; [ artistic1 gpl1Plus ];
20101     };
20102   };
20104   ParseWin32Registry = buildPerlPackage {
20105     pname = "ParseWin32Registry";
20106     version = "1.1";
20107     src = fetchurl {
20108       url = "mirror://cpan/authors/id/J/JM/JMACFARLA/Parse-Win32Registry-1.1.tar.gz";
20109       hash = "sha256-wWOyAr5q17WPSEZJT/crjJqXloPKmU5DgOmsZWTcBbo=";
20110     };
20111     meta = with lib; {
20112       description = "Module for parsing Windows Registry files";
20113       license = with licenses; [ artistic1 gpl1Only ];
20114     };
20115   };
20117   ParseEDID = buildPerlPackage {
20118     pname = "Parse-Edid";
20119     version = "1.0.7";
20120     src = fetchurl {
20121       url = "mirror://cpan/authors/id/G/GR/GROUSSE/Parse-EDID-1.0.7.tar.gz";
20122       hash = "sha256-GtwPEFoyGYoqK02lsOD5hfBe/tmc42YZCnkOFl1nW/E=";
20123     };
20124     buildInputs = [ TestWarn ];
20125     meta = {
20126       description = "Extended display identification data (EDID) parser";
20127       license = lib.licenses.gpl3Plus;
20128     };
20129   };
20131   ParseDebControl = buildPerlPackage {
20132     pname = "Parse-DebControl";
20133     version = "2.005";
20134     src = fetchurl {
20135       url = "mirror://cpan/authors/id/J/JA/JAYBONCI/Parse-DebControl-2.005.tar.gz";
20136       hash = "sha256-tkvOH/IS1+PvnUNo57YnSc8ndR+oNgzfU+lpEjNGpyk=";
20137     };
20138     propagatedBuildInputs = [ IOStringy LWP ];
20139     meta = {
20140       description = "Easy OO parsing of debian control-like files";
20141       license = with lib.licenses; [ artistic1 gpl1Plus ];
20142     };
20143   };
20145   ParseDistname = buildPerlPackage {
20146     pname = "Parse-Distname";
20147     version = "0.05";
20148     src = fetchurl {
20149       url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/Parse-Distname-0.05.tar.gz";
20150       hash = "sha256-pfqTvsLat22IPaEtTzRLc7+L6wzEtmwkN28+Dzh67wc=";
20151     };
20152     buildInputs = [ ExtUtilsMakeMakerCPANfile TestDifferences TestUseAllModules ];
20153     meta = {
20154       description = "Parse a distribution name";
20155       license = with lib.licenses; [ artistic1 gpl1Plus ];
20156     };
20157   };
20159   ParseIRC = buildPerlPackage {
20160     pname = "Parse-IRC";
20161     version = "1.22";
20162     src = fetchurl {
20163       url = "mirror://cpan/authors/id/B/BI/BINGOS/Parse-IRC-1.22.tar.gz";
20164       hash = "sha256-RXsJiX8304pwVPlWMkc2VCf+JBAWIu1MfwVHI6RbWNU=";
20165     };
20166     meta = {
20167       description = "Parser for the IRC protocol";
20168       homepage = "https://github.com/bingos/parse-irc";
20169       license = with lib.licenses; [ artistic1 gpl1Plus ];
20170       maintainers = with maintainers; [ sgo ];
20171     };
20172   };
20174   ParseLocalDistribution = buildPerlPackage {
20175     pname = "Parse-LocalDistribution";
20176     version = "0.19";
20177     src = fetchurl {
20178       url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/Parse-LocalDistribution-0.19.tar.gz";
20179       hash = "sha256-awvDLE6NnoHz8qzB0qdMKi+IepHBUisxzkyNSaQV6Z4=";
20180     };
20181     propagatedBuildInputs = [ ParsePMFile ];
20182     buildInputs = [ ExtUtilsMakeMakerCPANfile TestUseAllModules ];
20183     meta = {
20184       description = "Parses local .pm files as PAUSE does";
20185       license = with lib.licenses; [ artistic1 gpl1Plus ];
20186     };
20187   };
20189   ParsePlainConfig = buildPerlPackage {
20190     pname = "Parse-PlainConfig";
20191     version = "3.06";
20192     src = fetchurl {
20193       url = "mirror://cpan/authors/id/C/CO/CORLISS/Parse-PlainConfig/Parse-PlainConfig-3.06.tar.gz";
20194       hash = "sha256-8ffT5OWawrbPbJjaDKpBxdTl2GVcIQdRSBlplS/+G4c=";
20195     };
20196     propagatedBuildInputs = [ ClassEHierarchy Paranoid ];
20197     meta = {
20198       description = "Parser/Generator of human-readable conf files";
20199       license = with lib.licenses; [ artistic1 gpl1Plus ];
20200       maintainers = teams.deshaw.members;
20201     };
20202   };
20204   ParsePMFile = buildPerlPackage {
20205     pname = "Parse-PMFile";
20206     version = "0.44";
20207     src = fetchurl {
20208       url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/Parse-PMFile-0.44.tar.gz";
20209       hash = "sha256-4I8PVkVbOsEtzNjHEWUGErfTzRUPim+K5rQ7LaR9+ZQ=";
20210     };
20211     buildInputs = [ ExtUtilsMakeMakerCPANfile ];
20212     meta = {
20213       description = "Parses .pm file as PAUSE does";
20214       license = with lib.licenses; [ artistic1 gpl1Plus ];
20215     };
20216   };
20218   ParseRecDescent = buildPerlModule {
20219     pname = "Parse-RecDescent";
20220     version = "1.967015";
20221     src = fetchurl {
20222       url = "mirror://cpan/authors/id/J/JT/JTBRAUN/Parse-RecDescent-1.967015.tar.gz";
20223       hash = "sha256-GUMzaky1TxeIpzPwgnwMVdtDENXq4V5UJjnJ3YVlbjc=";
20224     };
20225     meta = {
20226       description = "Generate Recursive-Descent Parsers";
20227       license = with lib.licenses; [ artistic1 gpl1Plus ];
20228     };
20229   };
20231   ParseSyslog = buildPerlPackage {
20232     pname = "Parse-Syslog";
20233     version = "1.10";
20234     src = fetchurl {
20235       url = "mirror://cpan/authors/id/D/DS/DSCHWEI/Parse-Syslog-1.10.tar.gz";
20236       hash = "sha256-ZZohRUQe822YNd7K+D2jCPzQP0kTjLPZCSjov8nxOdk=";
20237     };
20238     meta = {
20239       description = "Parse Unix syslog files";
20240       license = with lib.licenses; [ artistic1 gpl1Plus ];
20241     };
20242   };
20244   ParserMGC = buildPerlModule {
20245     pname = "Parser-MGC";
20246     version = "0.21";
20247     src = fetchurl {
20248       url = "mirror://cpan/authors/id/P/PE/PEVANS/Parser-MGC-0.21.tar.gz";
20249       hash = "sha256-DmGIpydqn5B1fGIEc98W08mGGRO6viWvIJz0RhWgKk8=";
20250     };
20251     buildInputs = [ TestFatal ];
20252     propagatedBuildInputs = [ FeatureCompatTry ];
20253     meta = {
20254       description = "Build simple recursive-descent parsers";
20255       license = with lib.licenses; [ artistic1 gpl1Plus ];
20256     };
20257   };
20259   ParseYapp = buildPerlPackage {
20260     pname = "Parse-Yapp";
20261     version = "1.21";
20262     src = fetchurl {
20263       url = "mirror://cpan/authors/id/W/WB/WBRASWELL/Parse-Yapp-1.21.tar.gz";
20264       hash = "sha256-OBDpmDCPui4PTyYEMDUDKwJ85RzlyKUqi440DKZfE+U=";
20265     };
20266     meta = {
20267       description = "Perl extension for generating and using LALR parsers";
20268       license = with lib.licenses; [ artistic1 gpl1Plus ];
20269       mainProgram = "yapp";
20270     };
20271   };
20273   PathClass = buildPerlModule {
20274     pname = "Path-Class";
20275     version = "0.37";
20276     src = fetchurl {
20277       url = "mirror://cpan/authors/id/K/KW/KWILLIAMS/Path-Class-0.37.tar.gz";
20278       hash = "sha256-ZUeBlIYCOG8ssuRHOnOfF9xpU9kqq8JJikyiVhvCSM4=";
20279     };
20280     meta = {
20281       description = "Cross-platform path specification manipulation";
20282       license = with lib.licenses; [ artistic1 gpl1Plus ];
20283     };
20284   };
20286   PathDispatcher = buildPerlPackage {
20287     pname = "Path-Dispatcher";
20288     version = "1.08";
20289     src = fetchurl {
20290       url = "mirror://cpan/authors/id/E/ET/ETHER/Path-Dispatcher-1.08.tar.gz";
20291       hash = "sha256-ean2HCdAi0/R7SNNrCRpdN3q+n/mNaGP5B7HeDEwrio=";
20292     };
20293     buildInputs = [ ModuleBuildTiny TestFatal ];
20294     propagatedBuildInputs = [ Moo MooXTypeTiny TryTiny TypeTiny ];
20295     meta = {
20296       description = "Flexible and extensible dispatch";
20297       homepage = "https://github.com/karenetheridge/Path-Dispatcher";
20298       license = with lib.licenses; [ artistic1 gpl1Plus ];
20299     };
20300   };
20302   PathIteratorRule = buildPerlPackage {
20303     pname = "Path-Iterator-Rule";
20304     version = "1.015";
20305     src = fetchurl {
20306       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Path-Iterator-Rule-1.015.tar.gz";
20307       hash = "sha256-87Bixo4Hx29o3lvDOHfP6eB4tjUaYboWUOM+CfUeyyk=";
20308     };
20309     propagatedBuildInputs = [ NumberCompare TextGlob TryTiny ];
20310     buildInputs = [ Filepushd PathTiny TestDeep TestFilename ];
20311     meta = {
20312       description = "Iterative, recursive file finder";
20313       homepage = "https://github.com/dagolden/Path-Iterator-Rule";
20314       license = with lib.licenses; [ asl20 ];
20315     };
20316   };
20318   PathTiny = buildPerlPackage {
20319     pname = "Path-Tiny";
20320     version = "0.144";
20321     src = fetchurl {
20322       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Path-Tiny-0.144.tar.gz";
20323       hash = "sha256-9uoJTs6EXJUqAsJ4kzJXk1TejUEKcH+bcEW9JBIGSH0=";
20324     };
20325     preConfigure =
20326       ''
20327         substituteInPlace lib/Path/Tiny.pm --replace 'use File::Spec 3.40' \
20328           'use File::Spec 3.39'
20329       '';
20330     # This appears to be currently failing tests, though I don't know why.
20331     # -- ocharles
20332     doCheck = false;
20333     meta = {
20334       description = "File path utility";
20335       homepage = "https://github.com/dagolden/Path-Tiny";
20336       license = with lib.licenses; [ asl20 ];
20337     };
20338   };
20340   PathTools = buildPerlPackage {
20341     pname = "PathTools";
20342     version = "3.75";
20343     preConfigure = ''
20344       substituteInPlace Cwd.pm --replace '/usr/bin/pwd' '${pkgs.coreutils}/bin/pwd'
20345     '';
20346     src = fetchurl {
20347       url = "mirror://cpan/authors/id/X/XS/XSAWYERX/PathTools-3.75.tar.gz";
20348       hash = "sha256-pVhQOqax+McnwAczOQgad4iGBqpwGtoa1i3Z2MP5RaI=";
20349     };
20350     # cwd() and fastgetcwd() does not work with taint due to PATH in nixpkgs
20351     preCheck = "rm t/taint.t";
20352     meta = {
20353       description = "Get pathname of current working directory";
20354       license = with lib.licenses; [ artistic1 gpl1Plus ];
20355     };
20356   };
20358   PBKDF2Tiny = buildPerlPackage {
20359     pname = "PBKDF2-Tiny";
20360     version = "0.005";
20361     src = fetchurl {
20362       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/PBKDF2-Tiny-0.005.tar.gz";
20363       hash = "sha256-tOIdxZswJl6qpBtwUIfsA0R9nGVaFKxA/0bk3inqv44=";
20364     };
20365     meta = {
20366       description = "Minimalist PBKDF2 (RFC 2898) with HMAC-SHA1 or HMAC-SHA2";
20367       homepage = "https://github.com/dagolden/PBKDF2-Tiny";
20368       license = with lib.licenses; [ asl20 ];
20369       maintainers = [ maintainers.sgo ];
20370     };
20371   };
20373   PDFAPI2 = buildPerlPackage {
20374     pname = "PDF-API2";
20375     version = "2.045";
20376     src = fetchurl {
20377       url = "mirror://cpan/authors/id/S/SS/SSIMMS/PDF-API2-2.045.tar.gz";
20378       hash = "sha256-tr204NDNZSYQP91YwXHgVgw2uEO3/jyk3cm7HkyDJAY=";
20379     };
20380     buildInputs = [ TestException TestMemoryCycle ];
20381     propagatedBuildInputs = [ FontTTF ];
20382     meta = {
20383       description = "Create, modify, and examine PDF files";
20384       license = with lib.licenses; [ lgpl21Plus ];
20385     };
20386   };
20388   PDFBuilder = buildPerlPackage {
20389     pname = "PDF-Builder";
20390     version = "3.025";
20391     src = fetchurl {
20392       url = "mirror://cpan/authors/id/P/PM/PMPERRY/PDF-Builder-3.025.tar.gz";
20393       hash = "sha256-qb6076DsKXWpFFzvBSEYsgmPRtnBUQ3WV4agPQ2j49U=";
20394     };
20395     nativeCheckInputs = [ TestException TestMemoryCycle ];
20396     propagatedBuildInputs = [ FontTTF ];
20397     meta = {
20398       description = "Facilitates the creation and modification of PDF files";
20399       homepage = "https://metacpan.org/pod/PDF::Builder";
20400       license = with lib.licenses; [ lgpl21Plus ];
20401     };
20402   };
20404   PDL = buildPerlPackage {
20405     pname = "PDL";
20406     version = "2.025";
20407     src = fetchurl {
20408       url = "mirror://cpan/authors/id/E/ET/ETJ/PDL-2.025.tar.gz";
20409       hash = "sha256-G1oWfq0ndy2V2tJ/jrfQlRnSkVbu1TxvwUQVGUtaitY=";
20410     };
20411     patchPhase = ''
20412       substituteInPlace perldl.conf \
20413         --replace 'POSIX_THREADS_LIBS => undef' 'POSIX_THREADS_LIBS => "-L${pkgs.glibc.dev}/lib"' \
20414         --replace 'POSIX_THREADS_INC  => undef' 'POSIX_THREADS_INC  => "-I${pkgs.glibc.dev}/include"' \
20415         --replace 'WITH_MINUIT => undef' 'WITH_MINUIT => 0' \
20416         --replace 'WITH_SLATEC => undef' 'WITH_SLATEC => 0' \
20417         --replace 'WITH_HDF => undef' 'WITH_HDF => 0' \
20418         --replace 'WITH_GD => undef' 'WITH_GD => 0' \
20419         --replace 'WITH_PROJ => undef' 'WITH_PROJ => 0'
20420     '';
20422     # FIXME: Why are these libraries in `nativeBuildInputs`?
20423     nativeBuildInputs = with pkgs; [ autoPatchelfHook (lib.getDev libGL) (lib.getDev glibc) (lib.getDev mesa_glu) ];
20425     buildInputs = [ DevelChecklib TestDeep TestException TestWarn ] ++
20426                   (with pkgs; [ gsl libglut xorg.libXmu xorg.libXi ]);
20428     propagatedBuildInputs = [
20429       AstroFITSHeader
20430       ConvertUU
20431       ExtUtilsF77
20432       FileMap
20433       Inline
20434       InlineC
20435       ListMoreUtils
20436       ModuleCompile
20437       OpenGL
20438       PodParser
20439       TermReadKey
20440     ];
20442     meta = {
20443       description = "Perl Data Language";
20444       homepage = "https://pdl.perl.org";
20445       license = with lib.licenses; [ artistic1 gpl1Plus ];
20446       mainProgram = "pdl2";
20447       platforms = lib.platforms.unix;
20448     };
20449   };
20451   Pegex = buildPerlPackage {
20452     pname = "Pegex";
20453     version = "0.75";
20454     src = fetchurl {
20455       url = "mirror://cpan/authors/id/I/IN/INGY/Pegex-0.75.tar.gz";
20456       hash = "sha256-TcjTNd6AslJHzbP5RvDRDZugs8NLDtfQAxb9Bo/QXtw=";
20457     };
20458     buildInputs = [ TestPod TieIxHash ];
20459     propagatedBuildInputs = [ FileShareDirInstall XXX ];
20460     meta = {
20461       description = "Acmeist PEG Parser Framework";
20462       homepage = "https://github.com/ingydotnet/pegex-pm";
20463       license = with lib.licenses; [ artistic1 gpl1Plus ];
20464     };
20465   };
20467   PerconaToolkit = callPackage ../development/perl-modules/Percona-Toolkit { };
20469   Perl5lib = buildPerlPackage {
20470     pname = "perl5lib";
20471     version = "1.02";
20472     src = fetchurl {
20473       url = "mirror://cpan/authors/id/N/NO/NOBULL/perl5lib-1.02.tar.gz";
20474       hash = "sha256-JLlpJYQBU8REJBOYs2/Il24IX9sNh5yRc0cJz5F+zqw=";
20475     };
20476     meta = {
20477       description = "Honour PERL5LIB even in taint mode";
20478       license = with lib.licenses; [ artistic1 gpl1Plus ];
20479     };
20480   };
20482   Perlosnames = buildPerlPackage {
20483     pname = "Perl-osnames";
20484     version = "0.122";
20485     src = fetchurl {
20486       url = "mirror://cpan/authors/id/P/PE/PERLANCAR/Perl-osnames-0.122.tar.gz";
20487       hash = "sha256-cHWTnXR+N1F40ANI0AxS/52yzrsYuudHPcsJ34JRGKA=";
20488     };
20489     meta = {
20490       description = "List possible $^O ($OSNAME) values, with description";
20491       homepage = "https://metacpan.org/release/Perl-osnames";
20492       license = with lib.licenses; [ artistic1 gpl1Plus ];
20493     };
20494   };
20496   PerlCritic = buildPerlModule {
20497     pname = "Perl-Critic";
20498     version = "1.150";
20499     src = fetchurl {
20500       url = "mirror://cpan/authors/id/P/PE/PETDANCE/Perl-Critic-1.150.tar.gz";
20501       hash = "sha256-5c2V3j5DvOcHdRdidLqkBfMm/IdA3wBUu4FpdcyNNJs=";
20502     };
20503     buildInputs = [ TestDeep ];
20504     nativeBuildInputs = lib.optional stdenv.hostPlatform.isDarwin shortenPerlShebang;
20505     propagatedBuildInputs = [ BKeywords ConfigTiny ExceptionClass FileWhich ListSomeUtils ModulePluggable PPI PPIxQuoteLike PPIxRegexp PPIxUtilities PPIxUtils PerlTidy PodSpell Readonly StringFormat ];
20506     postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
20507       shortenPerlShebang $out/bin/perlcritic
20508     '';
20509     meta = {
20510       description = "Critique Perl source code for best-practices";
20511       homepage = "http://perlcritic.com";
20512       license = with lib.licenses; [ artistic1 gpl1Plus ];
20513       mainProgram = "perlcritic";
20514     };
20515   };
20517   PerlCriticCommunity = buildPerlModule {
20518     pname = "Perl-Critic-Community";
20519     version = "1.0.3";
20520     src = fetchurl {
20521       url = "mirror://cpan/authors/id/D/DB/DBOOK/Perl-Critic-Community-v1.0.3.tar.gz";
20522       hash = "sha256-Ed3bt5F5/mIp8zPKOS+U/firXNmJzJfZk1IaidXEetU=";
20523     };
20524     buildInputs = [ ModuleBuildTiny ];
20525     propagatedBuildInputs = [ PPI PathTiny PerlCritic PerlCriticPolicyVariablesProhibitLoopOnHash PerlCriticPulp ];
20526     meta = {
20527       description = "Community-inspired Perl::Critic policies";
20528       homepage = "https://github.com/Grinnz/Perl-Critic-Community";
20529       license = with lib.licenses; [ artistic2 ];
20530     };
20531   };
20533   PerlCriticMoose = buildPerlPackage rec {
20534     pname = "Perl-Critic-Moose";
20535     version = "1.05";
20536     src = fetchurl {
20537       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Perl-Critic-Moose-${version}.tar.gz";
20538       hash = "sha256-UuuOIsQmQ/F/4peiFxQBfv254phsJOMzfgMPNlD5IgE=";
20539     };
20540     propagatedBuildInputs = [ PerlCritic Readonly namespaceautoclean ];
20541     meta = {
20542       description = "Policies for Perl::Critic concerned with using Moose";
20543       homepage = "https://metacpan.org/release/Perl-Critic-Moose";
20544       license = with lib.licenses; [ artistic1 ];
20545     };
20546   };
20548   PerlCriticPolicyVariablesProhibitLoopOnHash = buildPerlPackage {
20549     pname = "Perl-Critic-Policy-Variables-ProhibitLoopOnHash";
20550     version = "0.008";
20551     src = fetchurl {
20552       url = "mirror://cpan/authors/id/X/XS/XSAWYERX/Perl-Critic-Policy-Variables-ProhibitLoopOnHash-0.008.tar.gz";
20553       hash = "sha256-EvXwvpbqG9x4KAWFd70cXGPKI8F/rJw3CUUrPf9bhOA=";
20554     };
20555     propagatedBuildInputs = [ PerlCritic ];
20556     meta = {
20557       description = "Don't write loops on hashes, only on keys and values of hashes";
20558       license = with lib.licenses; [ artistic1 gpl1Plus ];
20559     };
20560   };
20562   PerlCriticPulp = buildPerlPackage {
20563     pname = "Perl-Critic-Pulp";
20564     version = "99";
20565     src = fetchurl {
20566       url = "mirror://cpan/authors/id/K/KR/KRYDE/Perl-Critic-Pulp-99.tar.gz";
20567       hash = "sha256-uP2oQvy+100hAlfAooS23HsdBVSkej3l2X59VC4j5/4=";
20568     };
20569     propagatedBuildInputs = [ IOString ListMoreUtils PPI PerlCritic PodMinimumVersion ];
20570     meta = {
20571       description = "Some add-on policies for Perl::Critic";
20572       homepage = "https://user42.tuxfamily.org/perl-critic-pulp/index.html";
20573       license = with lib.licenses; [ gpl3Plus ];
20574     };
20575   };
20577   PerlDestructLevel = buildPerlPackage {
20578     pname = "Perl-Destruct-Level";
20579     version = "0.02";
20580     src = fetchurl {
20581       url = "mirror://cpan/authors/id/R/RG/RGARCIA/Perl-Destruct-Level-0.02.tar.gz";
20582       hash = "sha256-QLSsCykrYM47h956o5vC+yWhnRDlyfaYZpYchLP20Ts=";
20583     };
20584     meta = {
20585       description = "Allow to change perl's destruction level";
20586       license = with lib.licenses; [ artistic1 gpl1Plus ];
20587     };
20588   };
20590   PerlIOLayers = buildPerlModule {
20591     pname = "PerlIO-Layers";
20592     version = "0.012";
20593     src = fetchurl {
20594       url = "mirror://cpan/authors/id/L/LE/LEONT/PerlIO-Layers-0.012.tar.gz";
20595       hash = "sha256-VC2lQvo2uz/de4d24jDTzMAqpnRM6bd7Tu9MyufASt8=";
20596     };
20597     perlPreHook = "export LD=$CC";
20598     meta = {
20599       description = "Querying your filehandle's capabilities";
20600       license = with lib.licenses; [ artistic1 gpl1Plus ];
20601     };
20602   };
20604   PerlIOeol = buildPerlPackage {
20605     pname = "PerlIO-eol";
20606     version = "0.19";
20607     src = fetchurl {
20608       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/PerlIO-eol-0.19.tar.gz";
20609       hash = "sha256-/3O+xgRP2EepbEGZZPNw5Qn9Nv1XH3o7fDUXX1iviFk=";
20610     };
20611     meta = {
20612       description = "PerlIO layer for normalizing line endings";
20613       license = with lib.licenses; [ artistic1 gpl1Plus ];
20614     };
20615   };
20617   PerlIOgzip = buildPerlPackage {
20618     pname = "PerlIO-gzip";
20619     version = "0.20";
20620     src = fetchurl {
20621       url = "mirror://cpan/authors/id/N/NW/NWCLARK/PerlIO-gzip-0.20.tar.gz";
20622       hash = "sha256-SEhnmj8gHj87DF9vlSbmAq9Skj/6RxoqNlfbeGvTvcU=";
20623     };
20624     buildInputs = [ pkgs.zlib ];
20625     NIX_CFLAGS_LINK = "-L${pkgs.zlib.out}/lib -lz";
20626     meta = {
20627       description = "Perl extension to provide a PerlIO layer to gzip/gunzip";
20628       license = with lib.licenses; [ artistic1 gpl1Plus ];
20629     };
20630   };
20632   PerlIOutf8_strict = buildPerlPackage {
20633     pname = "PerlIO-utf8_strict";
20634     version = "0.010";
20635     src = fetchurl {
20636       url = "mirror://cpan/authors/id/L/LE/LEONT/PerlIO-utf8_strict-0.010.tar.gz";
20637       hash = "sha256-vNKEi3LfKQtemE+uixpsqW9tByADzyIjiajJ6OHFcM0=";
20638     };
20639     buildInputs = [ TestException ];
20640     meta = {
20641       description = "Fast and correct UTF-8 IO";
20642       license = with lib.licenses; [ artistic1 gpl1Plus ];
20643     };
20644   };
20646   PerlIOviadynamic = buildPerlPackage {
20647     pname = "PerlIO-via-dynamic";
20648     version = "0.14";
20649     src = fetchurl {
20650       url = "mirror://cpan/authors/id/A/AL/ALEXMV/PerlIO-via-dynamic-0.14.tar.gz";
20651       hash = "sha256-is169NivIdKLnBWuE3/nbNBk2tfSbrqKMLl+vG4fa0k=";
20652     };
20653     meta = {
20654       description = "Dynamic PerlIO layers";
20655       license = with lib.licenses; [ artistic1 gpl1Plus ];
20656     };
20657   };
20659   PerlIOviasymlink = buildPerlPackage {
20660     pname = "PerlIO-via-symlink";
20661     version = "0.05";
20662     src = fetchurl {
20663       url = "mirror://cpan/authors/id/C/CL/CLKAO/PerlIO-via-symlink-0.05.tar.gz";
20664       hash = "sha256-QQfUw0pqNilFNEjCVpXZL4JSKv9k4ptxa1alr1hrLVI=";
20665     };
20667     buildInputs = [ ModuleInstall ];
20669     postPatch = ''
20670       # remove outdated inc::Module::Install included with module
20671       # causes build failure for perl5.18+
20672       rm -r  inc
20673     '';
20674     meta = {
20675       description = "PerlIO layers for create symlinks";
20676       license = with lib.licenses; [ artistic1 gpl1Plus ];
20677     };
20678   };
20680   PerlIOviaTimeout = buildPerlModule {
20681     pname = "PerlIO-via-Timeout";
20682     version = "0.32";
20683     src = fetchurl {
20684       url = "mirror://cpan/authors/id/D/DA/DAMS/PerlIO-via-Timeout-0.32.tar.gz";
20685       hash = "sha256-knj572aIUNkT2Y+kwNfn1mfP81AzkfSk6uc6JG8ueRY=";
20686     };
20687     buildInputs = [ ModuleBuildTiny TestSharedFork TestTCP ];
20688     meta = {
20689       description = "PerlIO layer that adds read & write timeout to a handle";
20690       license = with lib.licenses; [ artistic1 gpl1Plus ];
20691     };
20692   };
20694   PerlLanguageServer = buildPerlPackage {
20695     pname = "Perl-LanguageServer";
20696     version = "2.6.1";
20697     src = fetchurl {
20698       url = "mirror://cpan/authors/id/G/GR/GRICHTER/Perl-LanguageServer-2.6.1.tar.gz";
20699       hash = "sha256-IDM0uwsEXMeHAu9DA0CdCB87aN3XRoNEdGOIJ8NMsZg=";
20700     };
20701     propagatedBuildInputs = [ AnyEvent AnyEventAIO ClassRefresh CompilerLexer Coro DataDump HashSafeKeys IOAIO JSON Moose PadWalker ];
20702     meta = {
20703       description = "Language Server and Debug Protocol Adapter for Perl";
20704       license = lib.licenses.artistic2;
20705     };
20706   };
20708   perlldap = buildPerlPackage {
20709     pname = "perl-ldap";
20710     version = "0.68";
20711     src = fetchurl {
20712       url = "mirror://cpan/authors/id/M/MA/MARSCHAP/perl-ldap-0.68.tar.gz";
20713       hash = "sha256-4vOJ/j56nkthSIaSkZrXI7mPO0ebUoj2ENqownmVs1E=";
20714     };
20715     # ldapi socket location should match the one compiled into the openldap package
20716     postPatch = ''
20717       for f in lib/Net/LDAPI.pm lib/Net/LDAP/Util.pm lib/Net/LDAP.pod lib/Net/LDAP.pm; do
20718         sed -i 's:/var/run/ldapi:/run/openldap/ldapi:g' "$f"
20719       done
20720     '';
20721     buildInputs = [ TextSoundex ];
20722     propagatedBuildInputs = [ ConvertASN1 ];
20723     meta = {
20724       description = "LDAP client library";
20725       homepage = "https://ldap.perl.org";
20726       license = with lib.licenses; [ artistic1 gpl1Plus ];
20727       maintainers = teams.deshaw.members;
20728     };
20729   };
20731   PerlMagick = ImageMagick; # added 2021-08-02
20732   ImageMagick = buildPerlPackage rec {
20733     pname = "Image-Magick";
20734     version = "7.1.1-20";
20735     src = fetchurl {
20736       url = "mirror://cpan/authors/id/J/JC/JCRISTY/Image-Magick-${version}.tar.gz";
20737       hash = "sha256-oMAwXQBxuV2FgPHBhUi+toNFPVnRLNjZqdP2q+ki6jg=";
20738     };
20739     buildInputs = [ pkgs.imagemagick ];
20740     preConfigure =
20741       ''
20742         sed -i -e 's|my \$INC_magick = .*|my $INC_magick = "-I${pkgs.imagemagick.dev}/include/ImageMagick";|' Makefile.PL
20743       '';
20744     meta = {
20745       description = "Objected-oriented Perl interface to ImageMagick. Use it to read, manipulate, or write an image or image sequence from within a Perl script";
20746       license = with lib.licenses; [ imagemagick ];
20747     };
20748   };
20750   PerlTidy = buildPerlPackage {
20751     pname = "Perl-Tidy";
20752     version = "20230912";
20753     src = fetchurl {
20754       url = "mirror://cpan/authors/id/S/SH/SHANCOCK/Perl-Tidy-20230912.tar.gz";
20755       hash = "sha256-DFeIjyBvmHd34WZA5yV0qgp3eEZxn44+0EE8NTJfVUA=";
20756     };
20757     meta = {
20758       description = "Indent and reformat perl scripts";
20759       license = with lib.licenses; [ gpl2Plus ];
20760       mainProgram = "perltidy";
20761     };
20762   };
20764   PHPSerialization = buildPerlPackage {
20765     pname = "PHP-Serialization";
20766     version = "0.34";
20767     src = fetchurl {
20768       url = "mirror://cpan/authors/id/B/BO/BOBTFISH/PHP-Serialization-0.34.tar.gz";
20769       hash = "sha256-uRLUJumuulSRpeUC58XAOcXapXVCism9yCr/857G8Ho=";
20770     };
20771     meta = {
20772       description = "Simple flexible means of converting the output of PHP's serialize() into the equivalent Perl memory structure, and vice versa";
20773       license = with lib.licenses; [ artistic1 gpl1Plus ];
20774     };
20775   };
20777   PkgConfig = buildPerlPackage rec {
20778     pname = "PkgConfig";
20779     version = "0.25026";
20780     src = fetchurl {
20781       url = "mirror://cpan/authors/id/P/PL/PLICEASE/PkgConfig-0.25026.tar.gz";
20782       hash = "sha256-Tbpe08LWpoG5XF6/FLammVzmmRrkcZutfxqvOOmHwqA=";
20783     };
20784     # support cross-compilation by simplifying the way we get version during build
20785     postPatch = ''
20786       substituteInPlace Makefile.PL --replace \
20787         'do { require "./lib/PkgConfig.pm"; $PkgConfig::VERSION; }' \
20788         '"${version}"'
20789     '';
20790     meta = {
20791       description = "Pure-Perl Core-Only replacement for pkg-config";
20792       homepage = "https://metacpan.org/pod/PkgConfig";
20793       license = with lib.licenses; [ artistic1 gpl1Plus ];
20794       maintainers = teams.deshaw.members;
20795       mainProgram = "ppkg-config";
20796     };
20797   };
20799   Plack = buildPerlPackage {
20800     pname = "Plack";
20801     version = "1.0050";
20802     src = fetchurl {
20803       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Plack-1.0050.tar.gz";
20804       hash = "sha256-0mUa3oLrv/er4KOhifyTLa3Ed5GGzolGjlbQGJ6qbtQ=";
20805     };
20806     buildInputs = [ AuthenSimplePasswd CGIEmulatePSGI FileShareDirInstall HTTPRequestAsCGI HTTPServerSimplePSGI IOHandleUtil LWP LWPProtocolhttp10 LogDispatchArray MIMETypes TestMockTimeHiRes TestRequires TestSharedFork TestTCP ];
20807     propagatedBuildInputs = [ ApacheLogFormatCompiler CookieBaker DevelStackTraceAsHTML FileShareDir FilesysNotifySimple HTTPEntityParser HTTPHeadersFast HTTPMessage TryTiny ];
20808     patches = [
20809       ../development/perl-modules/Plack-test-replace-DES-hash-with-bcrypt.patch
20810     ];
20811     meta = {
20812       description = "Perl Superglue for Web frameworks and Web Servers (PSGI toolkit)";
20813       homepage = "https://github.com/plack/Plack";
20814       license = with lib.licenses; [ artistic1 gpl1Plus ];
20815       mainProgram = "plackup";
20816     };
20817   };
20819   PlackAppProxy = buildPerlPackage {
20820     pname = "Plack-App-Proxy";
20821     version = "0.29";
20822     src = fetchurl {
20823       url = "mirror://cpan/authors/id/L/LE/LEEDO/Plack-App-Proxy-0.29.tar.gz";
20824       hash = "sha256-BKqanbVKmpAn/nBLyjU/jl6fAr5AhytB0jX86c3ypg8=";
20825     };
20826     propagatedBuildInputs = [ AnyEventHTTP LWP Plack ];
20827     buildInputs = [ TestRequires TestSharedFork TestTCP ];
20828     meta = {
20829       description = "Proxy requests";
20830       license = with lib.licenses; [ artistic1 gpl1Plus ];
20831     };
20832   };
20834   PlackMiddlewareAuthDigest = buildPerlModule {
20835     pname = "Plack-Middleware-Auth-Digest";
20836     version = "0.05";
20837     src = fetchurl {
20838       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Plack-Middleware-Auth-Digest-0.05.tar.gz";
20839       hash = "sha256-mr0/kpQ2zV7N+28/DX/foRuUB6OMfWAAYWpQ7eYQFes=";
20840     };
20841     propagatedBuildInputs = [ DigestHMAC Plack ];
20842     buildInputs = [ LWP ModuleBuildTiny TestSharedFork TestTCP ];
20843     meta = {
20844       description = "Digest authentication";
20845       homepage = "https://github.com/miyagawa/Plack-Middleware-Auth-Digest";
20846       license = with lib.licenses; [ artistic1 gpl1Plus ];
20847     };
20848   };
20850   PlackMiddlewareConsoleLogger = buildPerlModule {
20851     pname = "Plack-Middleware-ConsoleLogger";
20852     version = "0.05";
20853     src = fetchurl {
20854       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Plack-Middleware-ConsoleLogger-0.05.tar.gz";
20855       hash = "sha256-VWc6ylBN4sw0AWpF8yyPft2k7k0oArctZ4TSxBuH+9k=";
20856     };
20857     propagatedBuildInputs = [ JavaScriptValueEscape Plack ];
20858     buildInputs = [ ModuleBuildTiny TestRequires ];
20859     meta = {
20860       description = "Write logs to Firebug or Webkit Inspector";
20861       homepage = "https://github.com/miyagawa/Plack-Middleware-ConsoleLogger";
20862       license = with lib.licenses; [ artistic1 gpl1Plus ];
20863     };
20864   };
20866   PlackMiddlewareDebug = buildPerlModule {
20867     pname = "Plack-Middleware-Debug";
20868     version = "0.18";
20869     src = fetchurl {
20870       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Plack-Middleware-Debug-0.18.tar.gz";
20871       hash = "sha256-GS73nlIckMbv9vQUmtLkv8kR0sld94k1hV6Q1lnprJo=";
20872     };
20873     buildInputs = [ ModuleBuildTiny TestRequires ];
20874     propagatedBuildInputs = [ ClassMethodModifiers DataDump DataDumperConcise Plack TextMicroTemplate ];
20875     meta = {
20876       description = "Display information about the current request/response";
20877       homepage = "https://github.com/miyagawa/Plack-Middleware-Debug";
20878       license = with lib.licenses; [ artistic1 gpl1Plus ];
20879     };
20880   };
20882   PlackMiddlewareDeflater = buildPerlPackage {
20883     pname = "Plack-Middleware-Deflater";
20884     version = "0.12";
20885     src = fetchurl {
20886       url = "mirror://cpan/authors/id/K/KA/KAZEBURO/Plack-Middleware-Deflater-0.12.tar.gz";
20887       hash = "sha256-KNqV59pMi1WRrEVFCckhds0IQpYM4HT94w+aEHXcwnU=";
20888     };
20889     propagatedBuildInputs = [ Plack ];
20890     buildInputs = [ TestRequires TestSharedFork TestTCP ];
20891     meta = {
20892       description = "Compress response body with Gzip or Deflate";
20893       license = with lib.licenses; [ artistic1 gpl1Plus ];
20894     };
20895   };
20897   PlackMiddlewareFixMissingBodyInRedirect = buildPerlPackage {
20898     pname = "Plack-Middleware-FixMissingBodyInRedirect";
20899     version = "0.12";
20900     src = fetchurl {
20901       url = "mirror://cpan/authors/id/S/SW/SWEETKID/Plack-Middleware-FixMissingBodyInRedirect-0.12.tar.gz";
20902       hash = "sha256-bCLQafWlesIG1GWbKLiGm7knBkC7lV793UUdzFjNs5E=";
20903     };
20904     propagatedBuildInputs = [ HTMLParser Plack ];
20905     meta = {
20906       description = "Plack::Middleware which sets body for redirect response, if it's not already set";
20907       homepage = "https://github.com/Sweet-kid/Plack-Middleware-FixMissingBodyInRedirect";
20908       license = with lib.licenses; [ artistic1 gpl1Plus ];
20909     };
20910   };
20912   PlackMiddlewareHeader = buildPerlPackage {
20913     pname = "Plack-Middleware-Header";
20914     version = "0.04";
20915     src = fetchurl {
20916       url = "mirror://cpan/authors/id/C/CH/CHIBA/Plack-Middleware-Header-0.04.tar.gz";
20917       hash = "sha256-Xra5/3Ly09VpUOI+K8AnFQqcXnVg1zo0GhZeGu3qXV4=";
20918     };
20919     propagatedBuildInputs = [ Plack ];
20920     meta = {
20921       description = "Modify HTTP response headers";
20922       license = with lib.licenses; [ artistic1 gpl1Plus ];
20923     };
20924   };
20926   PlackMiddlewareMethodOverride = buildPerlPackage {
20927     pname = "Plack-Middleware-MethodOverride";
20928     version = "0.20";
20929     src = fetchurl {
20930       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Plack-Middleware-MethodOverride-0.20.tar.gz";
20931       hash = "sha256-2/taLvtIv+sByzrh4cZ34VXce/4hDH5/IhuuPLaqtfE=";
20932     };
20933     propagatedBuildInputs = [ Plack ];
20934     meta = {
20935       description = "Override REST methods to Plack apps via POST";
20936       license = with lib.licenses; [ artistic1 gpl1Plus ];
20937     };
20938   };
20940   PlackMiddlewareRemoveRedundantBody = buildPerlPackage {
20941     pname = "Plack-Middleware-RemoveRedundantBody";
20942     version = "0.09";
20943     src = fetchurl {
20944       url = "mirror://cpan/authors/id/S/SW/SWEETKID/Plack-Middleware-RemoveRedundantBody-0.09.tar.gz";
20945       hash = "sha256-gNRfk9a3KQsL2LPO3YSjf8UBRWzD3sAux6rYHAAYCH4=";
20946     };
20947     propagatedBuildInputs = [ Plack ];
20948     meta = {
20949       description = "Plack::Middleware which removes body for HTTP response if it's not required";
20950       homepage = "https://github.com/upasana-me/Plack-Middleware-RemoveRedundantBody";
20951       license = with lib.licenses; [ artistic1 gpl1Plus ];
20952     };
20953   };
20955   PlackMiddlewareReverseProxy = buildPerlPackage {
20956     pname = "Plack-Middleware-ReverseProxy";
20957     version = "0.16";
20958     src = fetchurl {
20959       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Plack-Middleware-ReverseProxy-0.16.tar.gz";
20960       hash = "sha256-h0kx030HZnug0PN5A7lFEQcfQZH+tz+kV2XaK4wVoSg=";
20961     };
20962     propagatedBuildInputs = [ Plack ];
20963     meta = {
20964       description = "Supports app to run as a reverse proxy backend";
20965       homepage = "https://github.com/lopnor/Plack-Middleware-ReverseProxy";
20966       license = with lib.licenses; [ artistic1 gpl1Plus ];
20967     };
20968   };
20970   PlackMiddlewareSession = buildPerlModule {
20971     pname = "Plack-Middleware-Session";
20972     version = "0.33";
20973     src = fetchurl {
20974       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Plack-Middleware-Session-0.33.tar.gz";
20975       hash = "sha256-T/miydGK2ASbRd/ze5vdQSIeLC8eFrr7gb/tyIxRpO4=";
20976     };
20977     propagatedBuildInputs = [ DigestHMAC Plack ];
20978     buildInputs = [ HTTPCookies LWP ModuleBuildTiny TestFatal TestRequires TestSharedFork TestTCP ];
20979     meta = {
20980       description = "Middleware for session management";
20981       homepage = "https://github.com/plack/Plack-Middleware-Session";
20982       license = with lib.licenses; [ artistic1 gpl1Plus ];
20983     };
20984   };
20986   PlackTestExternalServer = buildPerlPackage {
20987     pname = "Plack-Test-ExternalServer";
20988     version = "0.02";
20989     src = fetchurl {
20990       url = "mirror://cpan/authors/id/E/ET/ETHER/Plack-Test-ExternalServer-0.02.tar.gz";
20991       hash = "sha256-W69cV/4MBkEt7snFq+eVKrigT4xHtLvY6emYImiQPtA=";
20992     };
20993     buildInputs = [ Plack TestSharedFork TestTCP ];
20994     propagatedBuildInputs = [ LWP ];
20995     meta = {
20996       description = "Run HTTP tests on external live servers";
20997       homepage = "https://github.com/perl-catalyst/Plack-Test-ExternalServer";
20998       license = with lib.licenses; [ artistic1 gpl1Plus ];
20999     };
21000   };
21002   PLS = buildPerlPackage {
21003     pname = "PLS";
21004     version = "0.905";
21005     src = fetchurl {
21006       url = "mirror://cpan/authors/id/M/MR/MREISNER/PLS-0.905.tar.gz";
21007       hash = "sha256-RVW1J5nBZBXDy/5eMB6gLKDrvDQhTH/lLx19ykUwLik=";
21008     };
21009     propagatedBuildInputs = [ Future FutureQueue IOAsync PPI PPR PathTiny PerlCritic PerlTidy PodMarkdown URI ];
21010     nativeBuildInputs = lib.optional stdenv.hostPlatform.isDarwin shortenPerlShebang;
21011     postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
21012       shortenPerlShebang $out/bin/pls
21013     '';
21014     meta = {
21015       description = "Perl Language Server";
21016       homepage = "https://github.com/FractalBoy/perl-language-server";
21017       license = with lib.licenses; [ artistic1 gpl1Plus ];
21018       maintainers = [ maintainers.artturin ];
21019       mainProgram = "pls";
21020     };
21021   };
21023   Po4a = callPackage ../development/perl-modules/Po4a { };
21025   PodMinimumVersion = buildPerlPackage {
21026     pname = "Pod-MinimumVersion";
21027     version = "50";
21028     src = fetchurl {
21029       url = "mirror://cpan/authors/id/K/KR/KRYDE/Pod-MinimumVersion-50.tar.gz";
21030       hash = "sha256-C9KBLZqsvZm7cfoQOkuxKelVwTi6dZhzQgfcn7Z7Wm8=";
21031     };
21032     propagatedBuildInputs = [ IOString PodParser ];
21033     meta = {
21034       description = "Determine minimum Perl version of POD directives";
21035       homepage = "https://user42.tuxfamily.org/pod-minimumversion/index.html";
21036       license = with lib.licenses; [ gpl3Plus ];
21037       mainProgram = "pod-minimumversion";
21038     };
21039   };
21041   POE = buildPerlPackage {
21042     pname = "POE";
21043     version = "1.370";
21044     src = fetchurl {
21045       url = "mirror://cpan/authors/id/B/BI/BINGOS/POE-1.370.tar.gz";
21046       hash = "sha256-V94rY1sV+joxqeVd1REiFJ5UFOEVjugiNQYmNO4YppM=";
21047     };
21048     # N.B. removing TestPodLinkCheck from buildInputs because tests requiring
21049     # this module don't disable themselves when "run_network_tests" is
21050     # not present (see below).
21051     propagatedBuildInputs = [ pkgs.cacert IOPipely IOTty POETestLoops ];
21052     preCheck = ''
21053       set -x
21055       : Makefile.PL touches the following file as a "marker" to indicate
21056       : it should perform tests which use the network. Delete this file
21057       : for sandbox builds.
21058       rm -f run_network_tests
21060       : Certs are required if not running in a sandbox.
21061       export SSL_CERT_FILE=${pkgs.cacert.out}/etc/ssl/certs/ca-bundle.crt
21063       : The following flag enables extra tests not normally performed.
21064       export RELEASE_TESTING=1
21066       set +x
21067     '';
21068     meta = {
21069       description = "Portable, event-loop agnostic eventy networking and multitasking";
21070       homepage = "http://poe.perl.org";
21071       license = with lib.licenses; [ artistic1 gpl1Plus ];
21072       maintainers = teams.deshaw.members;
21073     };
21074   };
21076   POETestLoops = buildPerlPackage {
21077     pname = "POE-Test-Loops";
21078     version = "1.360";
21079     src = fetchurl {
21080       url = "mirror://cpan/authors/id/R/RC/RCAPUTO/POE-Test-Loops-1.360.tar.gz";
21081       hash = "sha256-vtDJb+kcmP035utZqASqrJzEqekoRQt21L9VJ6nmpHs=";
21082     };
21083     meta = {
21084       description = "Reusable tests for POE::Loop authors";
21085       homepage = "https://search.cpan.org/dist/POE-Test-Loops";
21086       license = with lib.licenses; [ artistic1 gpl1Plus ];
21087       maintainers = teams.deshaw.members;
21088       mainProgram = "poe-gen-tests";
21089     };
21090   };
21092   PPI = buildPerlPackage {
21093     pname = "PPI";
21094     version = "1.277";
21095     src = fetchurl {
21096       url = "mirror://cpan/authors/id/M/MI/MITHALDU/PPI-1.277.tar.gz";
21097       hash = "sha256-h8efg7aHbiBgUZZdUBnSUHxVH4GahnUAgOx+xDsuCvg=";
21098     };
21099     buildInputs = [ ClassInspector TestDeep TestNoWarnings TestObject TestSubCalls ];
21100     propagatedBuildInputs = [ Clone IOString ParamsUtil TaskWeaken ];
21102     # Remove test that fails due to unexpected shebang after
21103     # patchShebang.
21104     preCheck = "rm t/03_document.t";
21106     meta = {
21107       description = "Parse, Analyze and Manipulate Perl (without perl)";
21108       homepage = "https://github.com/Perl-Critic/PPI";
21109       license = with lib.licenses; [ artistic1 gpl1Plus ];
21110     };
21111   };
21113   PPIxQuoteLike = buildPerlModule {
21114     pname = "PPIx-QuoteLike";
21115     version = "0.023";
21116     src = fetchurl {
21117       url = "mirror://cpan/authors/id/W/WY/WYANT/PPIx-QuoteLike-0.023.tar.gz";
21118       hash = "sha256-NXajFJ0sU+B+lze3iSvlz7hKSZpu8d8JC3E7BUQjTSE=";
21119     };
21120     propagatedBuildInputs = [ PPI Readonly ];
21121     meta = {
21122       description = "Parse Perl string literals and string-literal-like things";
21123       license = with lib.licenses; [ artistic1 gpl1Plus ];
21124     };
21125   };
21127   PPIxRegexp = buildPerlModule {
21128     pname = "PPIx-Regexp";
21129     version = "0.088";
21130     src = fetchurl {
21131       url = "mirror://cpan/authors/id/W/WY/WYANT/PPIx-Regexp-0.088.tar.gz";
21132       hash = "sha256-iFQz+bEC+tT9NrIccyC7A2A2ERyvmYExv0FvfNXul2Q=";
21133     };
21134     propagatedBuildInputs = [ PPI ];
21135     meta = {
21136       description = "Parse regular expressions";
21137       license = with lib.licenses; [ artistic1 gpl1Plus ];
21138     };
21139   };
21141   PPIxUtilities = buildPerlModule {
21142     pname = "PPIx-Utilities";
21143     version = "1.001000";
21144     src = fetchurl {
21145       url = "mirror://cpan/authors/id/E/EL/ELLIOTJS/PPIx-Utilities-1.001000.tar.gz";
21146       hash = "sha256-A6SDOG/WosgI8Jd41E2wawLDFA+yS6S/EvhR9G07y5s=";
21147     };
21148     buildInputs = [ TestDeep ];
21149     propagatedBuildInputs = [ ExceptionClass PPI Readonly ];
21150     meta = {
21151       description = "Extensions to PPI|PPI";
21152       license = with lib.licenses; [ artistic1 gpl1Plus ];
21153     };
21154   };
21156   PPIxUtils = buildPerlPackage {
21157     pname = "PPIx-Utils";
21158     version = "0.003";
21159     src = fetchurl {
21160       url = "mirror://cpan/authors/id/D/DB/DBOOK/PPIx-Utils-0.003.tar.gz";
21161       hash = "sha256-KpvM/I6tA74BtnJI/o4VJSIED3mChvpO9EMrfy79uhE=";
21162     };
21163     propagatedBuildInputs = [ BKeywords PPI ];
21164     meta = {
21165       homepage = "https://github.com/Grinnz/PPIx-Utils";
21166       description = "Utility functions for PPI";
21167       license = with lib.licenses; [ artistic1 gpl1Plus ];
21168     };
21169   };
21171   PPR = buildPerlPackage {
21172     pname = "PPR";
21173     version = "0.001008";
21174     src = fetchurl {
21175       url = "mirror://cpan/authors/id/D/DC/DCONWAY/PPR-0.001008.tar.gz";
21176       hash = "sha256-EQ5xwF8uLJDrAfCgaU5VqdvpHIV+SBJeF0LRflzbHkk=";
21177     };
21178     meta = {
21179       description = "Pattern-based Perl Recognizer";
21180       license = with lib.licenses; [ artistic2 ];
21181       maintainers = [ maintainers.artturin ];
21182     };
21183   };
21185   ProcBackground = buildPerlPackage {
21186     pname = "Proc-Background";
21187     version = "1.32";
21188     src = fetchurl {
21189       url = "mirror://cpan/authors/id/N/NE/NERDVANA/Proc-Background-1.32.tar.gz";
21190       hash = "sha256-Wxp4DduSnKQnJeuQtRgyFCX/d4tKE3+G+sldn7nNKWc=";
21191     };
21192     meta = {
21193       description = "Run asynchronous child processes under Unix or Windows";
21194       license = with lib.licenses; [ artistic1 gpl1Plus ];
21195       mainProgram = "timed-process";
21196     };
21197   };
21199   ProcProcessTable = buildPerlPackage {
21200     pname = "Proc-ProcessTable";
21201     version = "0.636";
21202     src = fetchurl {
21203       url = "mirror://cpan/authors/id/J/JW/JWB/Proc-ProcessTable-0.636.tar.gz";
21204       hash = "sha256-lEIk/7APwe81BpYzdwoK/ahiO1x1MtHkq0ip3zlIkP0=";
21205     };
21206     meta = {
21207       description = "Perl extension to access the unix process table";
21208       license = with lib.licenses; [ artistic2 ];
21209     };
21210   };
21212   ProcDaemon = buildPerlPackage {
21213     pname = "Proc-Daemon";
21214     version = "0.23";
21215     src = fetchurl {
21216       url = "mirror://cpan/authors/id/A/AK/AKREAL/Proc-Daemon-0.23.tar.gz";
21217       hash = "sha256-NMC4W3lItDHLq8l87lgINeUVzPQ7rb2DOesQlHQIm2k=";
21218     };
21219     buildInputs = [ ProcProcessTable ];
21220     meta = {
21221       description = "Run Perl program(s) as a daemon process";
21222       homepage = "https://github.com/akreal/Proc-Daemon";
21223       license = with lib.licenses; [ artistic1 gpl1Plus ];
21224     };
21225   };
21227   ProcPIDFile = buildPerlPackage {
21228     pname = "Proc-PID-File";
21229     version = "1.29";
21230     src = fetchurl {
21231       url = "mirror://cpan/authors/id/D/DM/DMITRI/Proc-PID-File-1.29.tar.gz";
21232       hash = "sha256-O87aSd8YLT2BaLcMKlGyBW8v1FlQptBCipmS/TVc1KQ=";
21233     };
21234     meta = {
21235       description = "Manage process id files";
21236       homepage = "https://github.com/dtikhonov/Proc-PID-File";
21237       license = with lib.licenses; [ artistic1 gpl1Plus ];
21238     };
21239   };
21241   ProcFind = buildPerlPackage {
21242     pname = "Proc-Find";
21243     version = "0.051";
21244     src = fetchurl {
21245       url = "mirror://cpan/authors/id/P/PE/PERLANCAR/Proc-Find-0.051.tar.gz";
21246       hash = "sha256-ZNOQceyU17ZqfKtalQJG8P/wE7WiAKY9EXZDKYfloTU=";
21247     };
21248     propagatedBuildInputs = [ ProcProcessTable ];
21249     meta = {
21250       description = "Find processes by name, PID, or some other attributes";
21251       homepage = "https://metacpan.org/release/Proc-Find";
21252       license = with lib.licenses; [ artistic1 gpl1Plus ];
21253     };
21254   };
21256   ProcSafeExec = buildPerlPackage {
21257     pname = "Proc-SafeExec";
21258     version = "1.5";
21259     src = fetchurl {
21260       url = "mirror://cpan/authors/id/B/BI/BILBO/Proc-SafeExec-1.5.tar.gz";
21261       hash = "sha256-G00JCLysVj00p+W+YcXaPu6Y5KbH+mjCZwzFhEtaLXg=";
21262     };
21263     meta = {
21264       description = "Convenient utility for executing external commands in various ways";
21265       license = with lib.licenses; [ gpl1Only bsd2 ];
21266     };
21267   };
21269   ProcSimple = buildPerlPackage {
21270     pname = "Proc-Simple";
21271     version = "1.32";
21272     src = fetchurl {
21273       url = "mirror://cpan/authors/id/M/MS/MSCHILLI/Proc-Simple-1.32.tar.gz";
21274       hash = "sha256-TI8KkksZrXihPac/4PswbTKnudEKMyxSMIf8g6IJqMQ=";
21275     };
21276     meta = {
21277       description = "Launch and control background processes";
21278       license = with lib.licenses; [ artistic1 gpl1Plus ];
21279     };
21280   };
21282   ProcWait3 = buildPerlPackage {
21283     pname = "Proc-Wait3";
21284     version = "0.05";
21285     src = fetchurl {
21286       url = "mirror://cpan/authors/id/C/CT/CTILMES/Proc-Wait3-0.05.tar.gz";
21287       hash = "sha256-GpB/XbaTPcKTm7/v/hnurn7TnvG5eivJtyPy8l+ByvM=";
21288     };
21289     meta = {
21290       description = "Perl extension for wait3 system call";
21291       license = with lib.licenses; [ artistic1 gpl1Plus ];
21292     };
21293   };
21295   ProcWaitStat = buildPerlPackage {
21296     pname = "Proc-WaitStat";
21297     version = "1.00";
21298     src = fetchurl {
21299       url = "mirror://cpan/authors/id/R/RO/ROSCH/Proc-WaitStat-1.00.tar.gz";
21300       hash = "sha256-0HVj9eeHkJ0W5zkCQeh39Jq3ObHenQ4uoaQb0L9EdLw=";
21301     };
21302     propagatedBuildInputs = [ IPCSignal ];
21303     meta = {
21304       description = "Interpret and act on wait() status values";
21305       license = with lib.licenses; [ artistic1 gpl1Plus ];
21306     };
21307   };
21309   PrometheusTiny = buildPerlPackage {
21310     pname = "Prometheus-Tiny";
21311     version = "0.011";
21312     src = fetchurl {
21313       url = "mirror://cpan/authors/id/R/RO/ROBN/Prometheus-Tiny-0.011.tar.gz";
21314       hash = "sha256-jbFIDzyJ64bUFM9fR/7tjfMRKzjEY8uPZbTAZOILHhM=";
21315     };
21316     buildInputs = [ HTTPMessage Plack TestException TestWarn ];
21317     meta = {
21318       description = "Tiny Prometheus client";
21319       homepage = "https://github.com/robn/Prometheus-Tiny";
21320       license = with lib.licenses; [ artistic1 gpl1Plus ];
21321     };
21322   };
21324   PrometheusTinyShared = buildPerlPackage {
21325     pname = "Prometheus-Tiny-Shared";
21326     version = "0.027";
21327     src = fetchurl {
21328       url = "mirror://cpan/authors/id/R/RO/ROBN/Prometheus-Tiny-Shared-0.027.tar.gz";
21329       hash = "sha256-egULqhjKfA0gsoih1L0nJ3E6lFg/Qmskn5XcjUDty9E=";
21330     };
21331     buildInputs = [ DataRandom HTTPMessage Plack TestDifferences TestException TestWarn ];
21332     propagatedBuildInputs = [ HashSharedMem JSONXS PrometheusTiny ];
21333     meta = {
21334       description = "Tiny Prometheus client with a shared database behind it";
21335       homepage = "https://github.com/robn/Prometheus-Tiny-Shared";
21336       license = with lib.licenses; [ artistic1 gpl1Plus ];
21337     };
21338   };
21340   ProtocolRedis = buildPerlPackage {
21341     pname = "Protocol-Redis";
21342     version = "1.0011";
21343     src = fetchurl {
21344       url = "mirror://cpan/authors/id/U/UN/UNDEF/Protocol-Redis-1.0011.tar.gz";
21345       hash = "sha256-fOtr2ABnyQRGXU/R8XFXJDiMm9w3xsLAA6IM5Wm39Og=";
21346     };
21347     meta = {
21348       description = "Redis protocol parser/encoder with asynchronous capabilities";
21349       homepage = "https://github.com/und3f/protocol-redis";
21350       license = with lib.licenses; [ artistic1 gpl1Plus ];
21351       maintainers = [ maintainers.sgo ];
21352     };
21353   };
21355   ProtocolRedisFaster = buildPerlPackage {
21356     pname = "Protocol-Redis-Faster";
21357     version = "0.003";
21358     src = fetchurl {
21359       url = "mirror://cpan/authors/id/D/DB/DBOOK/Protocol-Redis-Faster-0.003.tar.gz";
21360       hash = "sha256-a5r7PelOwczX20+eai6rolSld5AwHBe8sTuz7f4YULc=";
21361     };
21362     propagatedBuildInputs = [ ProtocolRedis ];
21363     meta = {
21364       description = "Optimized pure-perl Redis protocol parser/encoder";
21365       homepage = "https://github.com/Grinnz/Protocol-Redis-Faster";
21366       license = with lib.licenses; [ artistic2 ];
21367       maintainers = [ maintainers.sgo ];
21368     };
21369   };
21371   ProtocolWebSocket = buildPerlModule {
21372     pname = "Protocol-WebSocket";
21373     version = "0.26";
21374     src = fetchurl {
21375       url = "mirror://cpan/authors/id/V/VT/VTI/Protocol-WebSocket-0.26.tar.gz";
21376       hash = "sha256-WDfQNxGnoyVPCv7LfkCeiwk3YGDDiluClejumvdXVSI=";
21377     };
21378     buildInputs = [ ModuleBuildTiny ];
21379     meta = {
21380       description = "WebSocket protocol";
21381       license = with lib.licenses; [ artistic1 gpl1Plus ];
21382     };
21383   };
21385   ProtocolHTTP2 = buildPerlModule {
21386     pname = "Protocol-HTTP2";
21387     version = "1.11";
21388     src = fetchurl {
21389       url = "mirror://cpan/authors/id/C/CR/CRUX/Protocol-HTTP2-1.11.tar.gz";
21390       hash = "sha256-Vp8Fsavpl7UHyCUVMMyB0e6WvZMsxoJTS2zkhlNQCRM=";
21391     };
21392     buildInputs = [ AnyEvent ModuleBuildTiny NetSSLeay TestLeakTrace TestSharedFork TestTCP ];
21393     meta = {
21394       homepage = "https://github.com/vlet/p5-Protocol-HTTP2";
21395       description = "HTTP/2 protocol implementation (RFC 7540)";
21396       license = with lib.licenses; [ artistic1 gpl1Plus ];
21397     };
21398   };
21400   PSGI = buildPerlPackage {
21401     pname = "PSGI";
21402     version = "1.102";
21403     src = fetchurl {
21404       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/PSGI-1.102.tar.gz";
21405       hash = "sha256-pWxEZ0CRfahpJcKfxmM7nfg5shz5j2onCGWY7ZDuH0c=";
21406     };
21407     meta = {
21408       description = "Perl Web Server Gateway Interface Specification";
21409       license = with lib.licenses; [ cc-by-sa-25 ];
21410     };
21411   };
21413   PadWalker = buildPerlPackage {
21414     pname = "PadWalker";
21415     version = "2.5";
21416     src = fetchurl {
21417       url = "mirror://cpan/authors/id/R/RO/ROBIN/PadWalker-2.5.tar.gz";
21418       hash = "sha256-B7Jqu4QRRq8yByqNaMuQF2/7F2/ZJo5vL30Qb4F6DNA=";
21419     };
21420     meta = {
21421       description = "Play with other peoples' lexical variables";
21422       license = with lib.licenses; [ artistic1 gpl1Plus ];
21423     };
21424   };
21426   Perl6Junction = buildPerlPackage {
21427     pname = "Perl6-Junction";
21428     version = "1.60000";
21429     src = fetchurl {
21430       url = "mirror://cpan/authors/id/C/CF/CFRANKS/Perl6-Junction-1.60000.tar.gz";
21431       hash = "sha256-0CN16FGX6PkbTLLTM0rpqJ9gAi949c1gdtzU7G+ycWQ=";
21432     };
21433     meta = {
21434       description = "Perl6 style Junction operators in Perl5";
21435       license = with lib.licenses; [ artistic1 gpl1Plus ];
21436     };
21437   };
21439   PerlMinimumVersion = buildPerlPackage {
21440     pname = "Perl-MinimumVersion";
21441     version = "1.40";
21442     src = fetchurl {
21443       url = "mirror://cpan/authors/id/D/DB/DBOOK/Perl-MinimumVersion-1.40.tar.gz";
21444       hash = "sha256-dYmleMtg1wykdVw5WzWStECgzWobB05OzqyTsDGhvpA=";
21445     };
21446     buildInputs = [ TestScript ];
21447     propagatedBuildInputs = [ FileFindRulePerl PerlCritic ];
21448     meta = {
21449       description = "Find a minimum required version of perl for Perl code";
21450       homepage = "https://github.com/neilbowers/Perl-MinimumVersion";
21451       license = with lib.licenses; [ artistic1 gpl1Plus ];
21452       mainProgram = "perlver";
21453     };
21454   };
21456   PerlPrereqScanner = buildPerlPackage {
21457     pname = "Perl-PrereqScanner";
21458     version = "1.100";
21459     src = fetchurl {
21460       url = "mirror://cpan/authors/id/R/RJ/RJBS/Perl-PrereqScanner-1.100.tar.gz";
21461       hash = "sha256-ARgdOKLnr/g40mISJWPFBja6SzZS7l0dT471uj9bGGs=";
21462     };
21463     buildInputs = [ TryTiny ];
21464     propagatedBuildInputs = [ GetoptLongDescriptive ModulePath Moo ParamsUtil PPI StringRewritePrefix TypeTiny namespaceautoclean ];
21465     meta = {
21466       description = "Tool to scan your Perl code for its prerequisites";
21467       homepage = "https://github.com/rjbs/Perl-PrereqScanner";
21468       license = with lib.licenses; [ artistic1 gpl1Plus ];
21469       mainProgram = "scan-perl-prereqs";
21470     };
21471   };
21473   PerlPrereqScannerNotQuiteLite = buildPerlPackage {
21474     pname = "Perl-PrereqScanner-NotQuiteLite";
21475     version = "0.9917";
21476     src = fetchurl {
21477       url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/Perl-PrereqScanner-NotQuiteLite-0.9917.tar.gz";
21478       hash = "sha256-O6fuF9lfDJqNkqLkwYVLZKcH0cAihGIm3Q36Qvfeud0=";
21479     };
21480     propagatedBuildInputs = [ DataDump ModuleCPANfile ModuleFind RegexpTrie URIcpan ];
21481     buildInputs = [ ExtUtilsMakeMakerCPANfile ParseDistname TestFailWarnings TestUseAllModules ];
21482     meta = {
21483       description = "Tool to scan your Perl code for its prerequisites";
21484       license = with lib.licenses; [ artistic1 gpl1Plus ];
21485       mainProgram = "scan-perl-prereqs-nqlite";
21486     };
21487   };
21489   PerlVersion = buildPerlPackage {
21490     pname = "Perl-Version";
21491     version = "1.013";
21492     src = fetchurl {
21493       url = "mirror://cpan/authors/id/B/BD/BDFOY/Perl-Version-1.013.tar.gz";
21494       hash = "sha256-GIdBTRyGidhkyEARQQHgQ+mdfdW5zKaTaaYOgh460Pc=";
21495     };
21496     propagatedBuildInputs = [ FileSlurpTiny ];
21497     meta = {
21498       description = "Parse and manipulate Perl version strings";
21499       license = with lib.licenses; [ artistic1 gpl1Plus ];
21500       mainProgram = "perl-reversion";
21501     };
21502   };
21504   PodAbstract = buildPerlPackage {
21505     pname = "Pod-Abstract";
21506     version = "0.20";
21507     src = fetchurl {
21508       url = "mirror://cpan/authors/id/B/BL/BLILBURNE/Pod-Abstract-0.20.tar.gz";
21509       hash = "sha256-lW73u4hMVUVuL7bn8in5qH3VCmHXAFAMc4248ronf4c=";
21510     };
21511     propagatedBuildInputs = [ IOString TaskWeaken PodParser ];
21512     meta = {
21513       description = "Abstract, tree-based interface to perl POD documents";
21514       license = with lib.licenses; [ artistic1 gpl1Plus ];
21515       mainProgram = "paf";
21516     };
21517   };
21519   PodChecker = buildPerlPackage {
21520     pname = "Pod-Checker";
21521     version = "1.75";
21522     src = fetchurl {
21523       url = "mirror://cpan/authors/id/M/MA/MAREKR/Pod-Checker-1.75.tar.gz";
21524       hash = "sha256-82O1dOxmCvbtvT5dTJ/8UVodRsvxx8ytmkbO0oh5wiE=";
21525     };
21526     meta = {
21527       description = "Verifies POD documentation contents for compliance with the POD format specifications";
21528       license = with lib.licenses; [ artistic1 gpl1Plus ];
21529       mainProgram = "podchecker";
21530     };
21531   };
21533   PodCoverage = buildPerlPackage {
21534     pname = "Pod-Coverage";
21535     version = "0.23";
21536     src = fetchurl {
21537       url = "mirror://cpan/authors/id/R/RC/RCLAMP/Pod-Coverage-0.23.tar.gz";
21538       hash = "sha256-MLegsMlC9Ep1UsDTTpsfLgugtnlVxh47FYnsNpB0sQc=";
21539     };
21540     propagatedBuildInputs = [ DevelSymdump PodParser ];
21541     meta = {
21542       description = "Checks if the documentation of a module is comprehensive";
21543       license = with lib.licenses; [ artistic1 gpl1Plus ];
21544       mainProgram = "pod_cover";
21545     };
21546   };
21548   PodCoverageTrustPod = buildPerlPackage {
21549     pname = "Pod-Coverage-TrustPod";
21550     version = "0.100006";
21551     src = fetchurl {
21552       url = "mirror://cpan/authors/id/R/RJ/RJBS/Pod-Coverage-TrustPod-0.100006.tar.gz";
21553       hash = "sha256-NYrcJQTwOetpCYqpm93mrp3JNTZKjhRPZAXoKTs6fKM=";
21554     };
21555     propagatedBuildInputs = [ PodCoverage PodEventual ];
21556     meta = {
21557       description = "Allow a module's pod to contain Pod::Coverage hints";
21558       homepage = "https://github.com/rjbs/Pod-Coverage-TrustPod";
21559       license = with lib.licenses; [ artistic1 gpl1Plus ];
21560     };
21561   };
21563   PodElemental = buildPerlPackage {
21564     pname = "Pod-Elemental";
21565     version = "0.103006";
21566     src = fetchurl {
21567       url = "mirror://cpan/authors/id/R/RJ/RJBS/Pod-Elemental-0.103006.tar.gz";
21568       hash = "sha256-dQw6edjhgkdYpu99LdB33N3KUDVCuMNOzNWsu3edxCM=";
21569     };
21570     buildInputs = [ TestDeep TestDifferences ];
21571     propagatedBuildInputs = [ MooseXTypes PodEventual StringRewritePrefix StringTruncate ];
21572     meta = {
21573       description = "Work with nestable Pod elements";
21574       homepage = "https://github.com/rjbs/Pod-Elemental";
21575       license = with lib.licenses; [ artistic1 gpl1Plus ];
21576     };
21577   };
21579   PodElementalPerlMunger = buildPerlPackage {
21580     pname = "Pod-Elemental-PerlMunger";
21581     version = "0.200007";
21582     src = fetchurl {
21583       url = "mirror://cpan/authors/id/R/RJ/RJBS/Pod-Elemental-PerlMunger-0.200007.tar.gz";
21584       hash = "sha256-UYleTEGgeere+fJPXcSOMkWlwG40BO15yF+lzv63lak=";
21585     };
21586     buildInputs = [ TestDifferences ];
21587     propagatedBuildInputs = [ PPI PodElemental ];
21588     meta = {
21589       description = "Thing that takes a string of Perl and rewrites its documentation";
21590       homepage = "https://github.com/rjbs/Pod-Elemental-PerlMunger";
21591       license = with lib.licenses; [ artistic1 gpl1Plus ];
21592     };
21593   };
21595   PodEventual = buildPerlPackage {
21596     pname = "Pod-Eventual";
21597     version = "0.094003";
21598     src = fetchurl {
21599       url = "mirror://cpan/authors/id/R/RJ/RJBS/Pod-Eventual-0.094003.tar.gz";
21600       hash = "sha256-fwYMw00RZWzgadsGHj1g7cDKvI+JpKLcfqrpXayFbS0=";
21601     };
21602     propagatedBuildInputs = [ MixinLinewise ];
21603     buildInputs = [ TestDeep ];
21604     meta = {
21605       description = "Read a POD document as a series of trivial events";
21606       homepage = "https://github.com/rjbs/Pod-Eventual";
21607       license = with lib.licenses; [ artistic1 gpl1Plus ];
21608     };
21609   };
21611   PodParser = buildPerlPackage {
21612     pname = "Pod-Parser";
21613     version = "1.66";
21614     src = fetchurl {
21615       url = "mirror://cpan/authors/id/M/MA/MAREKR/Pod-Parser-1.66.tar.gz";
21616       hash = "sha256-IpKKe//mG0UsBbu7j1IW1LnPn+KoSbd2wlUA0k0g33w=";
21617     };
21618     meta = {
21619       description = "Modules for parsing/translating POD format documents";
21620       license = with lib.licenses; [ artistic1 ];
21621       mainProgram = "podselect";
21622     };
21623   };
21625   PodPOM = buildPerlPackage {
21626     pname = "Pod-POM";
21627     version = "2.01";
21628     src = fetchurl {
21629       url = "mirror://cpan/authors/id/N/NE/NEILB/Pod-POM-2.01.tar.gz";
21630       hash = "sha256-G1D7qbvd4+rRkr7roOrd0MYU46+xdD+m//gF9XxW9/Q=";
21631     };
21632     buildInputs = [ FileSlurper TestDifferences TextDiff ];
21633     meta = {
21634       description = "POD Object Model";
21635       homepage = "https://github.com/neilb/Pod-POM";
21636       license = with lib.licenses; [ artistic1 gpl1Plus ];
21637       mainProgram = "pom2";
21638     };
21639   };
21641   PodPOMViewTOC = buildPerlPackage {
21642     pname = "Pod-POM-View-TOC";
21643     version = "0.02";
21644     src = fetchurl {
21645       url = "mirror://cpan/authors/id/P/PE/PERLER/Pod-POM-View-TOC-0.02.tar.gz";
21646       hash = "sha256-zLQicsdQM3nLETE5RiDuUCdtcoRODoDrSwB6nVj4diM=";
21647     };
21648     propagatedBuildInputs = [ PodPOM ];
21649     meta = {
21650       description = "Generate the TOC of a POD with Pod::POM";
21651       license = with lib.licenses; [ artistic1 gpl1Plus ];
21652     };
21653   };
21655   PodSection = buildPerlModule {
21656     pname = "Pod-Section";
21657     version = "0.02";
21658     src = fetchurl {
21659       url = "mirror://cpan/authors/id/K/KT/KTAT/Pod-Section-0.02.tar.gz";
21660       hash = "sha256-ydHXUpLzIYgRhOxWmDwW9Aj9LTEtWnIPj7DSyvpykjg=";
21661     };
21662     propagatedBuildInputs = [ PodAbstract ];
21663     meta = {
21664       description = "Select specified section from Module's POD";
21665       homepage = "https://github.com/ktat/Pod-Section";
21666       license = with lib.licenses; [ artistic1 gpl1Plus ];
21667       mainProgram = "podsection";
21668     };
21669   };
21671   PodLaTeX = buildPerlModule {
21672     pname = "Pod-LaTeX";
21673     version = "0.61";
21674     src = fetchurl {
21675       url = "mirror://cpan/authors/id/T/TJ/TJENNESS/Pod-LaTeX-0.61.tar.gz";
21676       hash = "sha256-FahA6hyKds08hl+78v7DOwNhXA2qUPnIAMVODPBlnUY=";
21677     };
21678     propagatedBuildInputs = [ PodParser ];
21679     meta = {
21680       description = "Convert Pod data to formatted Latex";
21681       homepage = "https://github.com/timj/perl-Pod-LaTeX/tree/master";
21682       license = with lib.licenses; [ artistic1 gpl1Plus ];
21683       mainProgram = "pod2latex";
21684     };
21685   };
21687   podlators = buildPerlPackage {
21688     pname = "podlators";
21689     version = "5.01";
21690     src = fetchurl {
21691       url = "mirror://cpan/authors/id/R/RR/RRA/podlators-5.01.tar.gz";
21692       hash = "sha256-zP0d+fGkfwlbzm1xj61a9A94ziSR8scjlibhW3AgvHE=";
21693     };
21694     preCheck = ''
21695       # remove failing spdx check
21696       rm t/docs/spdx-license.t
21697     '';
21698     meta = {
21699       description = "Convert POD data to various other formats";
21700       homepage = "https://www.eyrie.org/~eagle/software/podlators";
21701       license = with lib.licenses; [ artistic1 gpl1Plus ];
21702     };
21703   };
21705   podlinkcheck = buildPerlPackage {
21706     pname = "podlinkcheck";
21707     version = "15";
21708     src = fetchurl {
21709       url = "mirror://cpan/authors/id/K/KR/KRYDE/podlinkcheck-15.tar.gz";
21710       hash = "sha256-Tjvr7Bv4Lb+FCpSuJqJTZEz1gG7EGvx05D4XEKNzIds=";
21711     };
21712     propagatedBuildInputs = [ FileFindIterator FileHomeDir IPCRun PodParser constant-defer libintl-perl ];
21713     meta = {
21714       description = "Check POD L<> link references";
21715       homepage = "https://user42.tuxfamily.org/podlinkcheck/index.html";
21716       license = with lib.licenses; [ gpl3Plus ];
21717     };
21718   };
21720   prefork = buildPerlPackage {
21721     pname = "prefork";
21722     version = "1.05";
21723     src = fetchurl {
21724       url = "mirror://cpan/authors/id/E/ET/ETHER/prefork-1.05.tar.gz";
21725       hash = "sha256-bYe836Y7KM78+ocIA6UZtlkOPqGcMA+YzssOGQuxkwU=";
21726     };
21727     meta = {
21728       description = "Optimized module loading for forking or non-forking processes";
21729       homepage = "https://github.com/karenetheridge/prefork";
21730       license = with lib.licenses; [ artistic1 gpl1Plus ];
21731     };
21732   };
21734   PodPerldoc = buildPerlPackage {
21735     pname = "Pod-Perldoc";
21736     version = "3.28";
21737     src = fetchurl {
21738       url = "mirror://cpan/authors/id/M/MA/MALLEN/Pod-Perldoc-3.28.tar.gz";
21739       hash = "sha256-zEHmBbjhPECo7mUE/0Y0e1un+9kiA7O7BVQiBRvvxk0=";
21740     };
21741     meta = {
21742       description = "Look up Perl documentation in Pod format";
21743       license = with lib.licenses; [ artistic1 gpl1Plus ];
21744       mainProgram = "perldoc";
21745     };
21746   };
21748   PodPlainer = buildPerlPackage {
21749     pname = "Pod-Plainer";
21750     version = "1.04";
21751     src = fetchurl {
21752       url = "mirror://cpan/authors/id/R/RM/RMBARKER/Pod-Plainer-1.04.tar.gz";
21753       hash = "sha256-G7+/fR1IceWoO6shN+ItCJB4IGgVGQ6x1cEmCjSZRW8=";
21754     };
21755     propagatedBuildInputs = [ PodParser ];
21756     meta = {
21757       description = "Perl extension for converting Pod to old-style Pod";
21758       license = with lib.licenses; [ artistic1 gpl1Plus ];
21759     };
21760   };
21762   PodMarkdown = buildPerlPackage {
21763     pname = "Pod-Markdown";
21764     version = "3.300";
21765     src = fetchurl {
21766       url = "mirror://cpan/authors/id/R/RW/RWSTAUNER/Pod-Markdown-3.300.tar.gz";
21767       hash = "sha256-7HnpkIo2BXScT+tQVHY+toEt0ztUzoWlEzmqfPmZG3k=";
21768     };
21769     buildInputs = [ TestDifferences ];
21770     propagatedBuildInputs = [ URI ];
21771     meta = {
21772       description = "Convert POD to Markdown";
21773       homepage = "https://github.com/rwstauner/Pod-Markdown";
21774       license = with lib.licenses; [ artistic1 gpl1Plus ];
21775       mainProgram = "pod2markdown";
21776     };
21777   };
21779   PodMarkdownGithub = buildPerlPackage {
21780     pname = "Pod-Markdown-Github";
21781     version = "0.04";
21782     src = fetchurl {
21783       url = "mirror://cpan/authors/id/M/MI/MINIMAL/Pod-Markdown-Github-0.04.tar.gz";
21784       hash = "sha256-s34vAJxMzkkk+yPuQxRuUGcilxvqa87S2sFdCAo7xhM=";
21785     };
21786     propagatedBuildInputs = [ PodMarkdown ];
21787     buildInputs = [ TestDifferences ];
21788     meta = {
21789       description = "Convert POD to Github's specific markdown";
21790       license = with lib.licenses; [ artistic1 gpl1Plus ];
21791       mainProgram = "pod2github";
21792     };
21793   };
21795   PodSimple = buildPerlPackage {
21796     pname = "Pod-Simple";
21797     version = "3.45";
21798     src = fetchurl {
21799       url = "mirror://cpan/authors/id/K/KH/KHW/Pod-Simple-3.45.tar.gz";
21800       hash = "sha256-hIO7lc0+QwfWbe8JKjd5+EOvdySCv9wCTj4A0MTbDPo=";
21801     };
21802     meta = {
21803       description = "Framework for parsing Pod";
21804       license = with lib.licenses; [ artistic1 gpl1Plus ];
21805     };
21806   };
21808   PodSpell = buildPerlPackage {
21809     pname = "Pod-Spell";
21810     version = "1.26";
21811     src = fetchurl {
21812       url = "mirror://cpan/authors/id/H/HA/HAARG/Pod-Spell-1.26.tar.gz";
21813       hash = "sha256-LwW/yc+wS5b8v6LIVE0eaukIWW02lsRuDiZVa3UK+78=";
21814     };
21815     propagatedBuildInputs = [ ClassTiny FileShareDir LinguaENInflect PathTiny PodParser ];
21816     buildInputs = [ FileShareDirInstall TestDeep ];
21817     meta = {
21818       description = "Formatter for spellchecking Pod";
21819       homepage = "https://github.com/perl-pod/Pod-Spell";
21820       license = with lib.licenses; [ artistic2 ];
21821       mainProgram = "podspell";
21822     };
21823   };
21825   PodStrip = buildPerlModule {
21826     pname = "Pod-Strip";
21827     version = "1.100";
21828     src = fetchurl {
21829       url = "mirror://cpan/authors/id/D/DO/DOMM/Pod-Strip-1.100.tar.gz";
21830       hash = "sha256-Z1BqZh+pyuzv57pPQvC8FbCm8JZ8eWB3QPbLaXSu1M0=";
21831     };
21832     meta = {
21833       description = "Remove POD from Perl code";
21834       homepage = "https://github.com/domm/Pod-Strip";
21835       license = with lib.licenses; [ artistic1 gpl1Plus ];
21836     };
21837   };
21839   PodTidy = buildPerlModule {
21840     pname = "Pod-Tidy";
21841     version = "0.10";
21842     src = fetchurl {
21843       url = "mirror://cpan/authors/id/J/JH/JHOBLITT/Pod-Tidy-0.10.tar.gz";
21844       hash = "sha256-iG7hQ+p81Tm0O+16KHmJ0Wc211y/ofheLMzq+eiVnb0=";
21845     };
21846     propagatedBuildInputs = [ EncodeNewlines IOString PodWrap TextGlob ];
21847     buildInputs = [ TestCmd ];
21848     meta = {
21849       description = "Reformatting Pod Processor";
21850       license = with lib.licenses; [ artistic1 gpl1Plus ];
21851       mainProgram = "podtidy";
21852     };
21853   };
21855   PodWeaver = buildPerlPackage {
21856     pname = "Pod-Weaver";
21857     version = "4.019";
21858     src = fetchurl {
21859       url = "mirror://cpan/authors/id/R/RJ/RJBS/Pod-Weaver-4.019.tar.gz";
21860       hash = "sha256-aUatHwTq+aoR8kzFRJTh1Xli9Y4FkS82S3T5WT595/c=";
21861     };
21862     buildInputs = [ PPI SoftwareLicense TestDifferences ];
21863     propagatedBuildInputs = [ ConfigMVPReaderINI DateTime ListMoreUtils LogDispatchouli PodElemental ];
21864     meta = {
21865       description = "Weave together a Pod document from an outline";
21866       homepage = "https://github.com/rjbs/Pod-Weaver";
21867       license = with lib.licenses; [ artistic1 gpl1Plus ];
21868     };
21869   };
21871   PodWrap = buildPerlModule {
21872     pname = "Pod-Wrap";
21873     version = "0.01";
21874     src = fetchurl {
21875       url = "mirror://cpan/authors/id/N/NU/NUFFIN/Pod-Wrap-0.01.tar.gz";
21876       hash = "sha256-UMrL4v/7tccNG6XpQn1cit7mGENuxz+W7QU5Iy4si2M=";
21877     };
21878     propagatedBuildInputs = [ PodParser ];
21879     meta = {
21880       description = "Wrap pod paragraphs, leaving verbatim text and code alone";
21881       license = with lib.licenses; [ artistic1 gpl1Plus ];
21882       mainProgram = "podwrap";
21883     };
21884   };
21886   ProbePerl = buildPerlPackage {
21887     pname = "Probe-Perl";
21888     version = "0.03";
21889     src = fetchurl {
21890       url = "mirror://cpan/authors/id/K/KW/KWILLIAMS/Probe-Perl-0.03.tar.gz";
21891       hash = "sha256-2eTSHi53Y4VZBF+gkEaxtv/2xAO5SZKdshPjCr6KPDE=";
21892     };
21893     meta = {
21894       description = "Information about the currently running perl";
21895       license = with lib.licenses; [ artistic1 gpl1Plus ];
21896     };
21897   };
21899   POSIXAtFork = buildPerlPackage {
21900     pname = "POSIX-AtFork";
21901     version = "0.04";
21902     src = fetchurl {
21903       url = "mirror://cpan/authors//id/N/NI/NIKOLAS/POSIX-AtFork-0.04.tar.gz";
21904       hash = "sha256-wuIpOobUhxRLyPe6COfEt2sRsOTf3EGAmEXTDvoH5g4=";
21905     };
21906     buildInputs = [ TestSharedFork ];
21907     meta = {
21908       description = "Hook registrations at fork(2)";
21909       license = with lib.licenses; [ artistic1 gpl1Plus ];
21910     };
21911   };
21913   POSIXstrftimeCompiler = buildPerlModule {
21914     pname = "POSIX-strftime-Compiler";
21915     version = "0.44";
21916     src = fetchurl {
21917       url = "mirror://cpan/authors/id/K/KA/KAZEBURO/POSIX-strftime-Compiler-0.44.tar.gz";
21918       hash = "sha256-39PJc5jc/lHII2uF49woA1Znt2Ux96oKZTXzqlQFs1o=";
21919     };
21920     # We cannot change timezones on the fly.
21921     prePatch = "rm t/04_tzset.t";
21922     buildInputs = [ ModuleBuildTiny ];
21923     meta = {
21924       description = "GNU C library compatible strftime for loggers and servers";
21925       homepage = "https://github.com/kazeburo/POSIX-strftime-Compiler";
21926       license = with lib.licenses; [ artistic1 gpl1Plus ];
21927       broken = stdenv.hostPlatform.isMusl; # Broken for Musl at 2023-01-14, reports:
21928                # Nixpkgs: https://github.com/NixOS/nixpkgs/issues/210749
21929                # Upstream: https://github.com/kazeburo/POSIX-strftime-Compiler/issues/8
21930     };
21931   };
21933   Apprainbarf = buildPerlModule {
21934     pname = "App-rainbarf";
21935     version = "1.4";
21936     src = fetchurl {
21937       url = "mirror://cpan/authors/id/S/SY/SYP/App-rainbarf-1.4.tar.gz";
21938       hash = "sha256-TxOa01+q8t4GI9wLsd2J+lpDHlSL/sh97hlM8OJcyX0=";
21939     };
21940     nativeBuildInputs = lib.optional stdenv.hostPlatform.isDarwin shortenPerlShebang;
21941     postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
21942       shortenPerlShebang $out/bin/rainbarf
21943     '';
21944     meta = {
21945       description = "CPU/RAM/battery stats chart bar for tmux (and GNU screen)";
21946       homepage = "https://github.com/creaktive/rainbarf";
21947       license = with lib.licenses; [ artistic1 gpl1Plus ];
21948       mainProgram = "rainbarf";
21949     };
21950   };
21952   Razor2ClientAgent = buildPerlPackage {
21953     pname = "Razor2-Client-Agent";
21954     version = "2.86";
21955     src = fetchurl {
21956       url = "mirror://cpan/authors/id/T/TO/TODDR/Razor2-Client-Agent-2.86.tar.gz";
21957       hash = "sha256-XgYuAuu2XiS3COfu+lMAxD1vZXvyDQj+xMqKCjuUhF8=";
21958     };
21959     propagatedBuildInputs = [ DigestSHA1 URI ];
21960     meta = {
21961       description = "Collaborative, content-based spam filtering network agent";
21962       homepage = "https://razor.sourceforge.net/";
21963       license = with lib.licenses; [ artistic1 gpl1Plus ];
21964     };
21965   };
21968   Readonly = buildPerlModule {
21969     pname = "Readonly";
21970     version = "2.05";
21971     src = fetchurl {
21972       url = "mirror://cpan/authors/id/S/SA/SANKO/Readonly-2.05.tar.gz";
21973       hash = "sha256-SyNUJJGvAQ1EpcfIYSRHOKzHSrq65riDjTVN+xlGK14=";
21974     };
21975     buildInputs = [ ModuleBuildTiny ];
21976     meta = {
21977       description = "Facility for creating read-only scalars, arrays, hashes";
21978       homepage = "https://github.com/sanko/readonly";
21979       license = with lib.licenses; [ artistic2 ];
21980     };
21981   };
21983   ReadonlyX = buildPerlModule {
21984     pname = "ReadonlyX";
21985     version = "1.04";
21986     src = fetchurl {
21987       url = "mirror://cpan/authors/id/S/SA/SANKO/ReadonlyX-1.04.tar.gz";
21988       hash = "sha256-gbuX26k6xrXMvOBKQsNZDrBFV9dQGHc+4Y1aMPz0gYg=";
21989     };
21990     buildInputs = [ ModuleBuildTiny TestFatal ];
21991     meta = {
21992       description = "Faster facility for creating read-only scalars, arrays, hashes";
21993       homepage = "https://github.com/sanko/readonly";
21994       license = with lib.licenses; [ artistic2 ];
21995     };
21996   };
21998   ReadonlyXS = buildPerlPackage {
21999     pname = "Readonly-XS";
22000     version = "1.05";
22001     src = fetchurl {
22002       url = "mirror://cpan/authors/id/R/RO/ROODE/Readonly-XS-1.05.tar.gz";
22003       hash = "sha256-iuXE6FKZ5ci93RsZby7qOPAHCeDcDLYEVNyRFK4//w0=";
22004     };
22005     propagatedBuildInputs = [ Readonly ];
22006     meta = {
22007       description = "Companion module for Readonly.pm, to speed up read-only scalar variables";
22008       license = with lib.licenses; [ artistic1 gpl1Plus ];
22009     };
22010   };
22012   Redis = buildPerlModule {
22013     pname = "Redis";
22014     version = "2.000";
22015     src = fetchurl {
22016       url = "mirror://cpan/authors/id/D/DA/DAMS/Redis-2.000.tar.gz";
22017       hash = "sha256-FMuJl5chJhW06T+Rbcva+0jQHF6qsgOP5ssXm/lcb+s=";
22018     };
22019     buildInputs = [ IOString ModuleBuildTiny TestDeep TestFatal TestSharedFork TestTCP ];
22020     propagatedBuildInputs = [ IOSocketTimeout TryTiny ];
22021     meta = {
22022       description = "Perl binding for Redis database";
22023       homepage = "https://github.com/PerlRedis/perl-redis";
22024       license = with lib.licenses; [ artistic2 ];
22025     };
22026   };
22028   RefUtil = buildPerlPackage {
22029     pname = "Ref-Util";
22030     version = "0.204";
22031     src = fetchurl {
22032       url = "mirror://cpan/authors/id/A/AR/ARC/Ref-Util-0.204.tar.gz";
22033       hash = "sha256-QV+nPbrPRPPV15wUiIzJlFYnIKtGjm9x+RzR92nxBeE=";
22034     };
22035     meta = {
22036       description = "Utility functions for checking references";
22037       license = with lib.licenses; [ mit ];
22038     };
22039   };
22041   RegexpAssemble = buildPerlPackage {
22042     pname = "Regexp-Assemble";
22043     version = "0.38";
22044     src = fetchurl {
22045       url = "mirror://cpan/authors/id/R/RS/RSAVAGE/Regexp-Assemble-0.38.tgz";
22046       hash = "sha256-oGvn+a4bc8m/1bZmKxQcDXBGnpwZu0QTpu5W+Cra5EI=";
22047     };
22048     meta = {
22049       description = "Assemble multiple Regular Expressions into a single RE";
22050       license = with lib.licenses; [ artistic1 gpl1Plus ];
22051     };
22052   };
22054   RegexpCommon = buildPerlPackage {
22055     pname = "Regexp-Common";
22056     version = "2017060201";
22057     src = fetchurl {
22058       url = "mirror://cpan/authors/id/A/AB/ABIGAIL/Regexp-Common-2017060201.tar.gz";
22059       hash = "sha256-7geFOu4G8xDgQLa/GgGZoY2BiW0yGbmzXJYw0OtpCJs=";
22060     };
22061     meta = {
22062       description = "Provide commonly requested regular expressions";
22063       license = with lib.licenses; [ mit ];
22064     };
22065   };
22067   RegexpCommonnetCIDR = buildPerlPackage {
22068     pname = "Regexp-Common-net-CIDR";
22069     version = "0.03";
22070     src = fetchurl {
22071       url = "mirror://cpan/authors/id/B/BP/BPS/Regexp-Common-net-CIDR-0.03.tar.gz";
22072       hash = "sha256-OWBqV6qyDU9EaDAPLsP6KrVX/MnLeIDsfG4H2AFi2jM=";
22073     };
22074     propagatedBuildInputs = [ RegexpCommon ];
22075     meta = {
22076       description = "Provide patterns for CIDR blocks";
22077       license = with lib.licenses; [ artistic1 gpl1Plus ];
22078     };
22079   };
22081   RegexpCommontime = buildPerlPackage {
22082     pname = "Regexp-Common-time";
22083     version = "0.16";
22084     src = fetchurl {
22085       url = "mirror://cpan/authors/id/M/MA/MANWAR/Regexp-Common-time-0.16.tar.gz";
22086       hash = "sha256-HIEHpQq1XHK/ePsRbJGIxM3xYsGGwVhsH5qu5V/xSso=";
22087     };
22088     propagatedBuildInputs = [ RegexpCommon ];
22089     meta = {
22090       description = "Date and time regexps";
22091       homepage = "https://github.com/manwar/Regexp-Common-time";
22092       license = with lib.licenses; [ artistic2 mit bsd3 ];
22093       maintainers = [ maintainers.artturin ];
22094     };
22095   };
22097   RegexpGrammars = buildPerlModule {
22098     pname = "Regexp-Grammars";
22099     version = "1.058";
22100     src = fetchurl {
22101       url = "mirror://cpan/authors/id/D/DC/DCONWAY/Regexp-Grammars-1.058.tar.gz";
22102       hash = "sha256-6ojVjiUWdPrjm0n007U0LqzLj8tVhWzTBKoaX/PUHJI=";
22103     };
22104     meta = {
22105       description = "Add grammatical parsing features to Perl 5.10 regexes";
22106       license = with lib.licenses; [ artistic1 gpl1Plus ];
22107     };
22108   };
22110   RegexpIPv6 = buildPerlPackage {
22111     pname = "Regexp-IPv6";
22112     version = "0.03";
22113     src = fetchurl {
22114       url = "mirror://cpan/authors/id/S/SA/SALVA/Regexp-IPv6-0.03.tar.gz";
22115       hash = "sha256-1ULRfXXOk2Md6LohVtoOC1inVcQJzUoNJ6OHOiZxLOI=";
22116     };
22117     meta = {
22118       description = "Regular expression for IPv6 addresses";
22119       license = with lib.licenses; [ artistic1 gpl1Plus ];
22120     };
22121   };
22123   RegexpParser = buildPerlPackage {
22124     pname = "Regexp-Parser";
22125     version = "0.23";
22126     src = fetchurl {
22127       url = "mirror://cpan/authors/id/T/TO/TODDR/Regexp-Parser-0.23.tar.gz";
22128       hash = "sha256-9znauN8rBqrlxI+ZcSUbc3BEZKMtB9jQJfPA+GlUTok=";
22129     };
22130     meta = {
22131       description = "Base class for parsing regexes";
22132       homepage = "https://wiki.github.com/toddr/Regexp-Parser";
22133       license = with lib.licenses; [ artistic1 gpl1Plus ];
22134     };
22135   };
22137   RegexpTrie = buildPerlPackage {
22138     pname = "Regexp-Trie";
22139     version = "0.02";
22140     src = fetchurl {
22141       url = "mirror://cpan/authors/id/D/DA/DANKOGAI/Regexp-Trie-0.02.tar.gz";
22142       hash = "sha256-+yv5TtjbwfSpXZ/I9xDLZ7P3lsbvycS7TCz6Prqhxfo=";
22143     };
22144     meta = {
22145       description = "Builds trie-ized regexp";
22146       license = with lib.licenses; [ artistic1 gpl1Plus ];
22147     };
22148   };
22150   RESTClient = buildPerlPackage {
22151     pname = "REST-Client";
22152     version = "281";
22153     src = fetchurl {
22154       url = "mirror://cpan/authors/id/A/AK/AKHUETTEL/REST-Client-281.tar.gz";
22155       hash = "sha256-+hDSGgA35oJgHv5mc4p1j/dSEJSqASKek8iIpnmyyPY=";
22156     };
22157     propagatedBuildInputs = [ LWPProtocolHttps ];
22158     meta = {
22159       description = "Simple client for interacting with RESTful http/https resources";
22160       homepage = "https://github.com/milescrawford/cpan-rest-client";
22161       license = with lib.licenses; [ artistic1 gpl1Plus ];
22162     };
22163   };
22165   RESTUtils = buildPerlModule {
22166     pname = "REST-Utils";
22167     version = "0.6";
22168     src = fetchurl {
22169       url = "mirror://cpan/authors/id/J/JA/JALDHAR/REST-Utils-0.6.tar.gz";
22170       hash = "sha256-1OlK3YetMf71h8RxFceIx88+EiyS85YyWuLmEsZwuf0=";
22171     };
22172     buildInputs = [ TestLongString TestWWWMechanize TestWWWMechanizeCGI ];
22173     meta = {
22174       description = "Utility functions for REST applications";
22175       homepage = "https://jaldhar.github.com/REST-Utils";
22176       license = with lib.licenses; [ artistic1 gpl1Plus ];
22177     };
22178   };
22180   RpcXML = buildPerlPackage {
22181     pname = "RPC-XML";
22182     version = "0.82";
22183     src = fetchurl {
22184       url = "mirror://cpan/authors/id/R/RJ/RJRAY/RPC-XML-0.82.tar.gz";
22185       hash = "sha256-UnnrDRNsUz/4l/aTTDqtbyBQS5l/smBuUsXbvZJ1jnM=";
22186     };
22187     propagatedBuildInputs = [ XMLParser ];
22188     doCheck = false;
22189     meta = {
22190       description = "Data, client and server classes for XML-RPC";
22191       homepage = "https://github.com/rjray/rpc-xml";
22192       license = with lib.licenses; [ artistic1 gpl1Plus ];
22193       mainProgram = "make_method";
22194     };
22195   };
22197   ReturnMultiLevel = buildPerlPackage {
22198     pname = "Return-MultiLevel";
22199     version = "0.08";
22200     src = fetchurl {
22201       url = "mirror://cpan/authors/id/P/PL/PLICEASE/Return-MultiLevel-0.08.tar.gz";
22202       hash = "sha256-UbGu8wxcQAn2QCZ6CFiSEuh9zRAYAPDSD5xjXJ/+iKE=";
22203     };
22204     buildInputs = [ TestFatal ];
22205     meta = {
22206       homepage = "https://metacpan.org/pod/Return::MultiLevel";
22207       description = "Return across multiple call levels";
22208       license = with lib.licenses; [ artistic1 gpl1Plus ];
22209     };
22210   };
22212   ReturnValue = buildPerlPackage {
22213     pname = "Return-Value";
22214     version = "1.666005";
22215     src = fetchurl {
22216       url = "mirror://cpan/authors/id/R/RJ/RJBS/Return-Value-1.666005.tar.gz";
22217       hash = "sha256-jiJgqWUx6TaGIAuciFDr4AXYjONp/2vHD/GnQFt1UKw=";
22218     };
22219     meta = {
22220       description = "Create context-sensitive return values";
22221       license = with lib.licenses; [ artistic1 gpl1Plus ];
22222     };
22223   };
22225   RoleBasic = buildPerlModule {
22226     pname = "Role-Basic";
22227     version = "0.13";
22228     src = fetchurl {
22229       url = "mirror://cpan/authors/id/O/OV/OVID/Role-Basic-0.13.tar.gz";
22230       hash = "sha256-OKCVnvnxk/925ywyWp6SEbxIaGib0OKwBXePU/i282o=";
22231     };
22232     meta = {
22233       description = "Just roles. Nothing else";
22234       license = with lib.licenses; [ artistic1 gpl1Plus ];
22235     };
22236   };
22238   RoleHasMessage = buildPerlPackage {
22239     pname = "Role-HasMessage";
22240     version = "0.007";
22241     src = fetchurl {
22242       url = "mirror://cpan/authors/id/R/RJ/RJBS/Role-HasMessage-0.007.tar.gz";
22243       hash = "sha256-XiZ6TXYgs2hIEgTIjqIES4sqWP+LBVd/JxeydUwEFM4=";
22244     };
22245     propagatedBuildInputs = [ MooseXRoleParameterized StringErrf ];
22246     meta = {
22247       description = "Thing with a message method";
22248       homepage = "https://github.com/rjbs/Role-HasMessage";
22249       license = with lib.licenses; [ artistic1 gpl1Plus ];
22250     };
22251   };
22253   RoleHooks = buildPerlPackage {
22254     pname = "Role-Hooks";
22255     version = "0.008";
22256     src = fetchurl {
22257       url = "mirror://cpan/authors/id/T/TO/TOBYINK/Role-Hooks-0.008.tar.gz";
22258       hash = "sha256-KNZuoKjcMGt22oP/CHlJPYCPcxhbz5xO03LzlG+1Q+w=";
22259     };
22260     buildInputs = [ TestRequires ];
22261     propagatedBuildInputs = [ ClassMethodModifiers ];
22262     meta = {
22263       homepage = "https://metacpan.org/release/Role-Hooks";
22264       description = "Role callbacks";
22265       license = with lib.licenses; [ artistic1 gpl1Plus ];
22266     };
22267   };
22269   RoleIdentifiable = buildPerlPackage {
22270     pname = "Role-Identifiable";
22271     version = "0.009";
22272     src = fetchurl {
22273       url = "mirror://cpan/authors/id/R/RJ/RJBS/Role-Identifiable-0.009.tar.gz";
22274       hash = "sha256-WnNen3F3+euuBH63uuKbfsKewCCuN2N66lNQ0wwIe3Y=";
22275     };
22276     propagatedBuildInputs = [ Moose ];
22277     meta = {
22278       description = "Thing you can identify somehow";
22279       homepage = "https://github.com/rjbs/Role-Identifiable";
22280       license = with lib.licenses; [ artistic1 gpl1Plus ];
22281     };
22282   };
22284   RoleTiny = buildPerlPackage {
22285     pname = "Role-Tiny";
22286     version = "2.002004";
22287     src = fetchurl {
22288       url = "mirror://cpan/authors/id/H/HA/HAARG/Role-Tiny-2.002004.tar.gz";
22289       hash = "sha256-173unhOKT4OqUtCpgWJWRL2of/FmQt+oRdy0TZokK0U=";
22290     };
22291     meta = {
22292       description = "Roles: a nouvelle cuisine portion size slice of Moose";
22293       license = with lib.licenses; [ artistic1 gpl1Plus ];
22294     };
22295   };
22297   RPCEPCService = buildPerlModule {
22298     pname = "RPC-EPC-Service";
22299     version = "0.0.11";
22300     src = fetchurl {
22301       url = "mirror://cpan/authors/id/K/KI/KIWANAMI/RPC-EPC-Service-v0.0.11.tar.gz";
22302       hash = "sha256-l19BNDZSWPtH+pIZGQU1E625EB8r1CD87+NF8gkSi+M=";
22303     };
22304     propagatedBuildInputs = [ AnyEvent DataSExpression ];
22305     meta = {
22306       description = "Asynchronous Remote Procedure Stack";
22307       license = with lib.licenses; [ artistic1 gpl1Plus ];
22308     };
22309   };
22311     RPM2 = buildPerlModule {
22312     pname = "RPM2";
22313     version = "1.4";
22314     src = fetchurl {
22315       url = "mirror://cpan/authors/id/L/LK/LKUNDRAK/RPM2-1.4.tar.gz";
22316       hash = "sha256-XstCqmkyTm9AiKv64HMTkG5aq/L0bxIE8/HeWRVbtjY=";
22317     };
22318     nativeBuildInputs = [ pkgs.pkg-config ];
22319     buildInputs = [ pkgs.rpm ];
22320     doCheck = false; # Tries to open /var/lib/rpm
22321     meta = {
22322       description = "Perl bindings for the RPM Package Manager API";
22323       license = with lib.licenses; [ artistic1 gpl1Plus ];
22324       platforms = lib.platforms.linux;
22325     };
22326   };
22328   RSSParserLite = buildPerlPackage {
22329     pname = "RSS-Parser-Lite";
22330     version = "0.12";
22331     src = fetchurl {
22332       url = "mirror://cpan/authors/id/T/TF/TFPBL/RSS-Parser-Lite-0.12.tar.gz";
22333       hash = "sha256-idw0vKixqp/uC8QK7d5eLBYCL8eYssOryH3gczG5lbk=";
22334     };
22335     propagatedBuildInputs = [ locallib ];
22336     doCheck = false; /* creates files in HOME */
22337     meta = {
22338       description = "Simple pure perl RSS parser";
22339       license = with lib.licenses; [ artistic1 gpl1Plus ];
22340     };
22341   };
22343   RTClientREST = buildPerlModule {
22344     pname = "RT-Client-REST";
22345     version = "0.72";
22346     src = fetchurl {
22347       url = "mirror://cpan/authors/id/D/DJ/DJZORT/RT-Client-REST-0.72.tar.gz";
22348       hash = "sha256-KPIBWKD3sfNLdM423lvdVimeuUAUBHLISXyVNYIm/bM=";
22349     };
22350     buildInputs = [ CGI HTTPServerSimple TestException ];
22351     propagatedBuildInputs = [ DateTimeFormatDateParse Error LWP ParamsValidate ];
22352     meta = {
22353       description = "Client for RT using REST API";
22354       homepage = "https://github.com/RT-Client-REST/RT-Client-REST";
22355       license = with lib.licenses; [ artistic1 gpl1Plus ];
22356     };
22357   };
22359   SafeIsa = buildPerlPackage {
22360     pname = "Safe-Isa";
22361     version = "1.000010";
22362     src = fetchurl {
22363       url = "mirror://cpan/authors/id/E/ET/ETHER/Safe-Isa-1.000010.tar.gz";
22364       hash = "sha256-h/QUiqD/HV5lJyMyLqt9r6OAHJZ9b5GskUejxGe4pmo=";
22365     };
22366     meta = {
22367       description = "Call isa, can, does and DOES safely on things that may not be objects";
22368       license = with lib.licenses; [ artistic1 gpl1Plus ];
22369     };
22370   };
22372   ScalarListUtils = buildPerlPackage {
22373     pname = "Scalar-List-Utils";
22374     version = "1.63";
22375     src = fetchurl {
22376       url = "mirror://cpan/authors/id/P/PE/PEVANS/Scalar-List-Utils-1.63.tar.gz";
22377       hash = "sha256-yvvfIS9oJ9yaDdO1e27lDoYFhtcZgiijMmLVXFWesqk=";
22378     };
22379     meta = {
22380       description = "Common Scalar and List utility subroutines";
22381       license = with lib.licenses; [ artistic1 gpl1Plus ];
22382     };
22383   };
22385   ScalarString = buildPerlModule {
22386     pname = "Scalar-String";
22387     version = "0.003";
22388     src = fetchurl {
22389       url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Scalar-String-0.003.tar.gz";
22390       hash = "sha256-9UoXybeHE7AsxDrfrfYLSUZ+djTTExfouenpfCbWi1I=";
22391     };
22392     meta = {
22393       description = "String aspects of scalars";
22394       license = with lib.licenses; [ artistic1 gpl1Plus ];
22395     };
22396   };
22398   ScalarType = buildPerlPackage {
22399     pname = "Scalar-Type";
22400     version = "0.3.2";
22401     src = fetchurl {
22402       url = "mirror://cpan/authors/id/D/DC/DCANTRELL/Scalar-Type-0.3.2.tar.gz";
22403       hash = "sha256-WQyv6gz1RZmSoEiFYsDb1vnfdYtfAH8OQ6uhMLRe7oY=";
22404     };
22405     propagatedBuildInputs = [ CaptureTiny TestException ];
22406     meta = {
22407       description = "Figure out what type a scalar is";
22408       license = with lib.licenses; [ artistic1 gpl2Only ];
22409     };
22410   };
22412   SCGI = buildPerlModule {
22413     pname = "SCGI";
22414     version = "0.6";
22415     src = fetchurl {
22416       url = "mirror://cpan/authors/id/V/VI/VIPERCODE/SCGI-0.6.tar.gz";
22417       hash = "sha256-WLeMWvTuReQ38Hro87DZRckf0sAlFW7pFtgRWA+R2aQ=";
22418     };
22419     preConfigure = "export HOME=$(mktemp -d)";
22420     meta = {
22421       description = "This module is for implementing an SCGI interface for an application server";
22422       license = with lib.licenses; [ artistic1 gpl1Plus ];
22423     };
22424   };
22426   ScopeGuard = buildPerlPackage {
22427     pname = "Scope-Guard";
22428     version = "0.21";
22429     src = fetchurl {
22430       url = "mirror://cpan/authors/id/C/CH/CHOCOLATE/Scope-Guard-0.21.tar.gz";
22431       hash = "sha256-jJsb6lxWRI4sP63GXQW+nkaQo4I6gPOdLxD92Pd30ng=";
22432     };
22433     meta = {
22434       description = "Lexically-scoped resource management";
22435       license = with lib.licenses; [ artistic1 gpl1Plus ];
22436     };
22437   };
22439   ScopeUpper = buildPerlPackage {
22440     pname = "Scope-Upper";
22441     version = "0.34";
22442     src = fetchurl {
22443       url = "mirror://cpan/authors/id/V/VP/VPIT/Scope-Upper-0.34.tar.gz";
22444       hash = "sha256-WB2LxRDevQxFal/HlSy3E4rmZ78486d+ltdz3DGWpB4=";
22445     };
22446     meta = {
22447       description = "Act on upper scopes";
22448       homepage = "https://search.cpan.org/dist/Scope-Upper";
22449       license = with lib.licenses; [ artistic1 gpl1Plus ];
22450     };
22451   };
22453   SDL = buildPerlModule {
22454     pname = "SDL";
22455     version = "2.548";
22456     src = fetchurl {
22457       url = "mirror://cpan/authors/id/F/FR/FROGGS/SDL-2.548.tar.gz";
22458       hash = "sha256-JSoZK/qcIHCkiDcH0TnDpF2cRRjM1moeaZtbeVm9T7U=";
22459     };
22460     patches = [
22461       # https://github.com/PerlGameDev/SDL/pull/304
22462       ../development/perl-modules/sdl-modern-perl.patch
22463     ];
22464     perlPreHook = "export LD=$CC";
22465     preCheck = "rm t/core_audiospec.t";
22466     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 ];
22467     propagatedBuildInputs = [ FileShareDir TieSimple ];
22468     meta = {
22469       description = "SDL bindings to Perl";
22470       license = with lib.licenses; [ lgpl21Plus ];
22471     };
22472   };
22474   SearchXapian = buildPerlPackage {
22475     pname = "Search-Xapian";
22476     version = "1.2.25.5";
22477     src = fetchurl {
22478       url = "mirror://cpan/authors/id/O/OL/OLLY/Search-Xapian-1.2.25.5.tar.gz";
22479       hash = "sha256-IE+9xxLWcR/6tmjB9M/AB7Y5qftkrX4ZyyD8EKkQuos=";
22480     };
22481     buildInputs = [ pkgs.xapian DevelLeak ];
22482     meta = {
22483       description = "Perl XS frontend to the Xapian C++ search library";
22484       homepage = "https://xapian.org";
22485       license = with lib.licenses; [ artistic1 gpl1Plus ];
22486     };
22487   };
22489   SeleniumRemoteDriver = buildPerlPackage {
22490     pname = "Selenium-Remote-Driver";
22491     version = "1.49";
22492     src = fetchurl {
22493       url = "mirror://cpan/authors/id/T/TE/TEODESIAN/Selenium-Remote-Driver-1.49.tar.gz";
22494       hash = "sha256-yg7/7s6kK72vOVqI5j5EkoWKAAZAfJTRz8QY1BOX+mI=";
22495     };
22496     buildInputs = [ TestDeep TestFatal TestLWPUserAgent TestMockModule ];
22497     propagatedBuildInputs = [ ArchiveZip Clone FileWhich HTTPMessage IOString JSON LWP Moo SubInstall TestLongString TryTiny XMLSimple namespaceclean ];
22498     meta = {
22499       homepage = "https://github.com/teodesian/Selenium-Remote-Driver";
22500       description = "Perl Client for Selenium Remote Driver";
22501       license = lib.licenses.asl20;
22502     };
22503   };
22505   SerealDecoder = buildPerlPackage {
22506     pname = "Sereal-Decoder";
22507     version = "5.004";
22508     src = fetchurl {
22509       url = "mirror://cpan/authors/id/Y/YV/YVES/Sereal-Decoder-5.004.tar.gz";
22510       hash = "sha256-aO8DFNh9Gm5guw9m/PQ+ssrN6xdUQy9eJeeE450+Z4Q=";
22511     };
22512     buildInputs = [ TestDeep TestDifferences TestLongString TestWarn ];
22513     preBuild = "ls";
22514     meta = {
22515       description = "Fast, compact, powerful binary deserialization";
22516       homepage = "https://github.com/Sereal/Sereal";
22517       license = with lib.licenses; [ artistic1 gpl1Plus ];
22518       maintainers = [ maintainers.thoughtpolice ];
22519     };
22520   };
22522   SerealEncoder = buildPerlPackage {
22523     pname = "Sereal-Encoder";
22524     version = "5.004";
22525     src = fetchurl {
22526       url = "mirror://cpan/authors/id/Y/YV/YVES/Sereal-Encoder-5.004.tar.gz";
22527       hash = "sha256-XlqGzNMtrjTtgJMuy+XGjil1K13g6bCnk6t+sspVyxs=";
22528     };
22529     buildInputs = [ SerealDecoder TestDeep TestDifferences TestLongString TestWarn ];
22530     meta = {
22531       description = "Fast, compact, powerful binary serialization";
22532       homepage = "https://github.com/Sereal/Sereal";
22533       license = with lib.licenses; [ artistic1 gpl1Plus ];
22534       maintainers = [ maintainers.thoughtpolice ];
22535     };
22536   };
22538   Sereal = buildPerlPackage {
22539     pname = "Sereal";
22540     version = "5.004";
22541     src = fetchurl {
22542       url = "mirror://cpan/authors/id/Y/YV/YVES/Sereal-5.004.tar.gz";
22543       hash = "sha256-nCW7euS9c20ksa0dk9dzlbDGXKh0HiZr/Ay+VCJh128=";
22544     };
22545     buildInputs = [ TestDeep TestLongString TestWarn ];
22546     propagatedBuildInputs = [ SerealDecoder SerealEncoder ];
22547     meta = {
22548       description = "Fast, compact, powerful binary (de-)serialization";
22549       license = with lib.licenses; [ artistic1 gpl1Plus ];
22550       maintainers = [ maintainers.thoughtpolice ];
22551     };
22552   };
22554   DeviceSerialPort = buildPerlPackage {
22555     pname = "Device-SerialPort";
22556     version = "1.04";
22557     src = fetchurl {
22558       url = "mirror://cpan/authors/id/C/CO/COOK/Device-SerialPort-1.04.tar.gz";
22559       hash = "sha256-05JWfLObTqYGwOCsr9jtcjIDEbmVM27OX878+bFQ6dc=";
22560     };
22561     meta = {
22562       description = "Linux/POSIX emulation of Win32::SerialPort functions";
22563       license = with lib.licenses; [ artistic1 gpl1Plus ];
22564       mainProgram = "modemtest";
22565     };
22566   };
22568   ServerStarter = buildPerlModule {
22569     pname = "Server-Starter";
22570     version = "0.35";
22571     src = fetchurl {
22572       url = "mirror://cpan/authors/id/K/KA/KAZUHO/Server-Starter-0.35.tar.gz";
22573       hash = "sha256-Z23A1s/0ZIU4Myxjwy+4itCe2GghPqnmLj8Z+tQbnEA=";
22574     };
22575     buildInputs = [ TestRequires TestSharedFork TestTCP ];
22576     doCheck = false; # Tests are slow and unstable
22577     meta = {
22578       description = "Superdaemon for hot-deploying server programs";
22579       homepage = "https://github.com/kazuho/p5-Server-Starter";
22580       license = with lib.licenses; [ artistic1 gpl1Plus ];
22581       mainProgram = "start_server";
22582     };
22583   };
22585   SessionToken = buildPerlPackage {
22586     pname = "Session-Token";
22587     version = "1.503";
22588     src = fetchurl {
22589       url = "mirror://cpan/authors/id/F/FR/FRACTAL/Session-Token-1.503.tar.gz";
22590       hash = "sha256-MsPflu9FXHGHA2Os2VDdxPvISMWU9LxVshtEz5efeaE=";
22591     };
22592     patches = [
22593       # Add final null-byte to tokens. https://github.com/hoytech/Session-Token/pull/3
22594       (fetchpatch {
22595         url = "https://github.com/hoytech/Session-Token/commit/cd64e7b69986054bb715755290811308159b7959.patch";
22596         hash = "sha256-nMQmdvVQW8cQYO0+bLJcdVfSOLVIsongk+71fQ7fQdU=";
22597       })
22598     ];
22599     meta = {
22600       description = "Secure, efficient, simple random session token generation";
22601       homepage = "https://github.com/hoytech/Session-Token";
22602       license = with lib.licenses; [ artistic1 gpl1Plus ];
22603       maintainers = [ maintainers.sgo ];
22604     };
22605   };
22607   SetInfinite = buildPerlPackage {
22608     pname = "Set-Infinite";
22609     version = "0.65";
22610     src = fetchurl {
22611       url = "mirror://cpan/authors/id/F/FG/FGLOCK/Set-Infinite-0.65.tar.gz";
22612       hash = "sha256-B7yIBzRJLeQLSjqLWjMXYvZOabRikCn9mp01eyW4fh8=";
22613     };
22614     meta = {
22615       description = "Infinite Sets math";
22616       license = with lib.licenses; [ artistic1 gpl1Plus ];
22617     };
22618   };
22620   SetIntSpan = buildPerlPackage {
22621     pname = "Set-IntSpan";
22622     version = "1.19";
22623     src = fetchurl {
22624       url = "mirror://cpan/authors/id/S/SW/SWMCD/Set-IntSpan-1.19.tar.gz";
22625       hash = "sha256-EbdUmxPsXYfMaV3Ux3fNApg91f6YZgEod/tTD0iz39A=";
22626     };
22628     meta = {
22629       description = "Manages sets of integers, newsrc style";
22630       license = with lib.licenses; [ artistic1 gpl1Plus ];
22631     };
22632   };
22634   SetObject = buildPerlPackage {
22635     pname = "Set-Object";
22636     version = "1.42";
22637     src = fetchurl {
22638       url = "mirror://cpan/authors/id/R/RU/RURBAN/Set-Object-1.42.tar.gz";
22639       hash = "sha256-0YxaiiM+q70CBs89pbAPzdezf+vxKpPcw9HAJub97EU=";
22640     };
22641     meta = {
22642       description = "Unordered collections (sets) of Perl Objects";
22643       license = with lib.licenses; [ artistic2 ];
22644     };
22645   };
22647   SetScalar = buildPerlPackage {
22648     pname = "Set-Scalar";
22649     version = "1.29";
22650     src = fetchurl {
22651       url = "mirror://cpan/authors/id/D/DA/DAVIDO/Set-Scalar-1.29.tar.gz";
22652       hash = "sha256-o9wVJvPd5y08ZOoAAHuGzmCM3Nk1Z89ubkLcEP3EUR0=";
22653     };
22654     meta = {
22655       description = "Basic set operations";
22656       license = with lib.licenses; [ artistic1 gpl1Plus ];
22657     };
22658   };
22660   SmartComments = buildPerlPackage {
22661     pname = "Smart-Comments";
22662     version = "1.06";
22663     src = fetchurl {
22664       url = "mirror://cpan/authors/id/N/NE/NEILB/Smart-Comments-1.06.tar.gz";
22665       hash = "sha256-3PijEhNKfGuCkmoBFdk7aSRypmLSjNw6m98omEranuM=";
22666     };
22667     meta = {
22668       description = "Comments that do more than just sit there";
22669       homepage = "https://github.com/neilb/Smart-Comments";
22670       license = with lib.licenses; [ artistic1 gpl1Plus ];
22671       maintainers = [ maintainers.sgo ];
22672     };
22673   };
22675   SGMLSpm = buildPerlModule {
22676     pname = "SGMLSpm";
22677     version = "1.1";
22678     src = fetchurl {
22679       url = "mirror://cpan/authors/id/R/RA/RAAB/SGMLSpm-1.1.tar.gz";
22680       hash = "sha256-VQySRSkcjfIkL36I95IaD2NsfuySxkRBjn2Jz+pwsr0=";
22681     };
22682     meta = {
22683       description = "Library for parsing the output from SGMLS and NSGMLS parsers";
22684       license = with lib.licenses; [ gpl2Plus ];
22685       mainProgram = "sgmlspl.pl";
22686     };
22687   };
22689   SignalMask = buildPerlPackage {
22690     pname = "Signal-Mask";
22691     version = "0.008";
22692     src = fetchurl {
22693       url = "mirror://cpan/authors/id/L/LE/LEONT/Signal-Mask-0.008.tar.gz";
22694       hash = "sha256-BD2ZW2sknZ68BMRn2zG7fdwuVfqgjohb2wULHyM2tz8=";
22695     };
22696     propagatedBuildInputs = [ IPCSignal ];
22697     meta = {
22698       description = "Signal masks made easy";
22699       license = with lib.licenses; [ artistic1 gpl1Plus ];
22700     };
22701   };
22703   SnowballNorwegian = buildPerlModule {
22704     pname = "Snowball-Norwegian";
22705     version = "1.2";
22706     src = fetchurl {
22707       url = "mirror://cpan/authors/id/A/AS/ASKSH/Snowball-Norwegian-1.2.tar.gz";
22708       hash = "sha256-Hc+NfyazdSCgENzVGXAU4KWDhe5muDtP3gfqtQrZ5Rg=";
22709     };
22710     meta = {
22711       description = "Porters stemming algorithm for norwegian";
22712       license = with lib.licenses; [ artistic1 gpl1Plus ];
22713       mainProgram = "stemmer-no.pl";
22714     };
22715   };
22717   SnowballSwedish = buildPerlModule {
22718     pname = "Snowball-Swedish";
22719     version = "1.2";
22720     src = fetchurl {
22721       url = "mirror://cpan/authors/id/A/AS/ASKSH/Snowball-Swedish-1.2.tar.gz";
22722       hash = "sha256-76qSNVhZj06IjZelEtYPvMRIHB+cXn3tUnWWKUVg/Ck=";
22723     };
22724     meta = {
22725       description = "Porters stemming algorithm for swedish";
22726       license = with lib.licenses; [ artistic1 gpl1Plus ];
22727       mainProgram = "stemmer-se.pl";
22728     };
22729   };
22731   SOAPLite = buildPerlPackage {
22732     pname = "SOAP-Lite";
22733     version = "1.27";
22734     src = fetchurl {
22735       url = "mirror://cpan/authors/id/P/PH/PHRED/SOAP-Lite-1.27.tar.gz";
22736       hash = "sha256-41kQa6saRaFgRKTC+ASfrQNOXe0VF5kLybX42G3d0wE=";
22737     };
22738     propagatedBuildInputs = [ ClassInspector IOSessionData LWPProtocolHttps TaskWeaken XMLParser ];
22739     buildInputs = [ TestWarn XMLParserLite ];
22740     nativeCheckInputs = [ HTTPDaemon ];
22741     meta = {
22742       description = "Perl's Web Services Toolkit";
22743       license = with lib.licenses; [ artistic1 gpl1Plus ];
22744     };
22745   };
22747   Socket6 = buildPerlPackage {
22748     pname = "Socket6";
22749     version = "0.29";
22750     src = fetchurl {
22751       url = "mirror://cpan/authors/id/U/UM/UMEMOTO/Socket6-0.29.tar.gz";
22752       hash = "sha256-RokV+joE3PZXT8lX7/SVkV4kVpQ0lwyR7o5OFFn8kRQ=";
22753     };
22754     setOutputFlags = false;
22755     buildInputs = [ pkgs.which ];
22756     patches = [ ../development/perl-modules/Socket6-sv_undef.patch ];
22757     meta = {
22758       description = "IPv6 related part of the C socket.h defines and structure manipulators";
22759       license = with lib.licenses; [ bsd3 ];
22760     };
22761   };
22763   SoftwareLicense = buildPerlPackage {
22764     pname = "Software-License";
22765     version = "0.104004";
22766     src = fetchurl {
22767       url = "mirror://cpan/authors/id/L/LE/LEONT/Software-License-0.104004.tar.gz";
22768       hash = "sha256-of2iTsh3UhmAlzgPuTAMFLV0gmJwzFgNr3UONYX8Jww=";
22769     };
22770     buildInputs = [ TryTiny ];
22771     propagatedBuildInputs = [ DataSection TextTemplate ];
22772     meta = {
22773       description = "Packages that provide templated software licenses";
22774       homepage = "https://github.com/Perl-Toolchain-Gang/Software-License";
22775       license = with lib.licenses; [ artistic1 gpl1Plus ];
22776     };
22777   };
22779   SoftwareLicenseCCpack = buildPerlPackage {
22780     pname = "Software-License-CCpack";
22781     version = "1.11";
22782     src = fetchurl {
22783       url = "mirror://cpan/authors/id/B/BB/BBYRD/Software-License-CCpack-1.11.tar.gz";
22784       hash = "sha256-WU9carwhbJXNRYd8Qd7FbSvDDh0DFq04VbCiqo5dU7E=";
22785     };
22786     propagatedBuildInputs = [ SoftwareLicense ];
22787     buildInputs = [ TestCheckDeps ];
22788     meta = {
22789       description = "Software::License pack for Creative Commons' licenses";
22790       homepage = "https://github.com/SineSwiper/Software-License-CCpack";
22791       license = with lib.licenses; [ lgpl3Plus ];
22792     };
22793   };
22795   SortKey = buildPerlPackage {
22796     pname = "Sort-Key";
22797     version = "1.33";
22798     src = fetchurl {
22799       url = "mirror://cpan/authors/id/S/SA/SALVA/Sort-Key-1.33.tar.gz";
22800       hash = "sha256-7WpMz6sJTJzRZPVkAk6YvSHZT0MSzKxNYkbSKzQIGs8=";
22801     };
22802     meta = {
22803       description = "Fastest way to sort anything in Perl";
22804       license = with lib.licenses; [ artistic1 gpl1Plus ];
22805     };
22806   };
22808   SortVersions = buildPerlPackage {
22809     pname = "Sort-Versions";
22810     version = "1.62";
22811     src = fetchurl {
22812       url = "mirror://cpan/authors/id/N/NE/NEILB/Sort-Versions-1.62.tar.gz";
22813       hash = "sha256-v18zB0BuviWBI38CWYLoyE9vZiXdd05FfAP4mU79Lqo=";
22814     };
22815     meta = {
22816       description = "Perl 5 module for sorting of revision-like numbers";
22817       license = with lib.licenses; [ artistic1 gpl1Plus ];
22818     };
22819   };
22821   Specio = buildPerlPackage {
22822     pname = "Specio";
22823     version = "0.48";
22824     src = fetchurl {
22825       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Specio-0.48.tar.gz";
22826       hash = "sha256-DIV5NYDxJ07wgXMHkTHRAfd7IqzOp6+oJVIC8IEWgrI=";
22827     };
22828     propagatedBuildInputs = [ DevelStackTrace EvalClosure MROCompat ModuleRuntime RoleTiny SubQuote TryTiny ];
22829     buildInputs = [ TestFatal TestNeeds ];
22830     meta = {
22831       description = "Type constraints and coercions for Perl";
22832       homepage = "https://metacpan.org/release/Specio";
22833       license = with lib.licenses; [ artistic2 ];
22834     };
22835   };
22837   SpecioLibraryPathTiny = buildPerlPackage {
22838     pname = "Specio-Library-Path-Tiny";
22839     version = "0.05";
22840     src = fetchurl {
22841       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Specio-Library-Path-Tiny-0.05.tar.gz";
22842       hash = "sha256-YN8Lubza6yxmoHi/bfmVTqT5Qz1stoCImULlQsfCelE=";
22843     };
22844     propagatedBuildInputs = [ PathTiny Specio ];
22845     buildInputs = [ Filepushd TestFatal ];
22846     meta = {
22847       description = "Path::Tiny types and coercions for Specio";
22848       homepage = "https://metacpan.org/release/Specio-Library-Path-Tiny";
22849       license = with lib.licenses; [ asl20 ];
22850     };
22851   };
22853   Spiffy = buildPerlPackage {
22854     pname = "Spiffy";
22855     version = "0.46";
22856     src = fetchurl {
22857       url = "mirror://cpan/authors/id/I/IN/INGY/Spiffy-0.46.tar.gz";
22858       hash = "sha256-j1hiCoQgJVxJtsQ8X/WAK9JeTwkkDFHlvysCKDPUHaM=";
22859     };
22860     meta = {
22861       description = "Spiffy Perl Interface Framework For You";
22862       license = with lib.licenses; [ artistic1 gpl1Plus ];
22863     };
22864   };
22866   SpreadsheetCSV = buildPerlPackage {
22867     pname = "Spreadsheet-CSV";
22868     version = "0.20";
22869     src = fetchurl {
22870       url = "mirror://cpan/authors/id/D/DD/DDICK/Spreadsheet-CSV-0.20.tar.gz";
22871       hash = "sha256-BwuyUqj+i5OKHOT8kFJfgz1OYZttRnOwrgojQI1RSrY=";
22872     };
22873     nativeBuildInputs = [ CGI ];
22874     propagatedBuildInputs = [ ArchiveZip SpreadsheetParseExcel TextCSV_XS XMLParser ];
22875     meta = {
22876       description = "Drop-in replacement for Text::CSV_XS with spreadsheet support";
22877       license = with lib.licenses; [ artistic1 gpl1Plus ];
22878     };
22879   };
22881   SpreadsheetParseExcel = buildPerlPackage {
22882     pname = "Spreadsheet-ParseExcel";
22883     version = "0.66";
22884     src = fetchurl {
22885       url = "mirror://cpan/authors/id/J/JM/JMCNAMARA/Spreadsheet-ParseExcel-0.66.tar.gz";
22886       hash = "sha256-v9dqz7qYhgHcBRvac7S7JfaDmgBt2WC2p0AcJJJF9ls=";
22887     };
22888     propagatedBuildInputs = [ CryptRC4 DigestPerlMD5 IOStringy OLEStorage_Lite ];
22889     meta = {
22890       description = "Read information from an Excel file";
22891       homepage = "https://github.com/runrig/spreadsheet-parseexcel";
22892       license = with lib.licenses; [ artistic1 gpl1Plus ];
22893     };
22894   };
22896   SpreadsheetWriteExcel = buildPerlPackage {
22897     pname = "Spreadsheet-WriteExcel";
22898     version = "2.40";
22899     src = fetchurl {
22900       url = "mirror://cpan/authors/id/J/JM/JMCNAMARA/Spreadsheet-WriteExcel-2.40.tar.gz";
22901       hash = "sha256-41aq1oZs8TVzEmjuDpeaGXRDwVoEh46c8+gNAirWwH4=";
22902     };
22903     propagatedBuildInputs = [ OLEStorage_Lite ParseRecDescent ];
22904     meta = {
22905       description = "Write to a cross platform Excel binary file";
22906       license = with lib.licenses; [ artistic1 gpl1Plus ];
22907       mainProgram = "chartex";
22908     };
22909   };
22911   SpreadsheetXLSX = buildPerlPackage {
22912     pname = "Spreadsheet-XLSX";
22913     version = "0.17";
22914     src = fetchurl {
22915       url = "mirror://cpan/authors/id/A/AS/ASB/Spreadsheet-XLSX-0.17.tar.gz";
22916       hash = "sha256-M7d4knz/FjCQZbdOuMRpawNxZg0szf5FvkYFCSrO6XY=";
22917     };
22918     buildInputs = [ TestNoWarnings TestWarnings ];
22919     propagatedBuildInputs = [ ArchiveZip SpreadsheetParseExcel ];
22920     meta = {
22921       homepage = "https://github.com/asb-capfan/Spreadsheet-XLSX";
22922       description = "Perl extension for reading MS Excel 2007 files;";
22923       license = with lib.licenses; [ artistic1 gpl1Plus ];
22924     };
22925   };
22927   SQLAbstract = buildPerlPackage {
22928     pname = "SQL-Abstract";
22929     version = "2.000001";
22930     src = fetchurl {
22931       url = "mirror://cpan/authors/id/M/MS/MSTROUT/SQL-Abstract-2.000001.tar.gz";
22932       hash = "sha256-NaZCZiw0lCDUS+bg732HZep0PrEq0UOZqjojK7lObpo=";
22933     };
22934     buildInputs = [ DataDumperConcise TestDeep TestException TestWarn ];
22935     propagatedBuildInputs = [ HashMerge MROCompat Moo ];
22936     meta = {
22937       description = "Generate SQL from Perl data structures";
22938       license = with lib.licenses; [ artistic1 gpl1Plus ];
22939     };
22940   };
22942   SQLAbstractClassic = buildPerlPackage {
22943     pname = "SQL-Abstract-Classic";
22944     version = "1.91";
22945     src = fetchurl {
22946       url = "mirror://cpan/authors/id/R/RI/RIBASUSHI/SQL-Abstract-Classic-1.91.tar.gz";
22947       hash = "sha256-Tj0d/QlbISMmhYa7BrhpKepXE4jU6UGszL3NoeEI7yg=";
22948     };
22949     buildInputs = [ TestDeep TestException TestWarn ];
22950     propagatedBuildInputs = [ SQLAbstract ];
22951     meta = {
22952       description = "Generate SQL from Perl data structures";
22953       license = with lib.licenses; [ artistic1 gpl1Plus ];
22954     };
22955   };
22957   SQLAbstractLimit = buildPerlPackage {
22958     pname = "SQL-Abstract-Limit";
22959     version = "0.143";
22960     src = fetchurl {
22961       url = "mirror://cpan/authors/id/A/AS/ASB/SQL-Abstract-Limit-0.143.tar.gz";
22962       hash = "sha256-0Yr9eIk72DC6JGXArmozQlRgFZADhk3tO1rc9RGJyuk=";
22963     };
22964     propagatedBuildInputs = [ DBI SQLAbstract ];
22965     buildInputs = [ TestDeep TestException ];
22966     meta = {
22967       description = "Portable LIMIT emulation";
22968       license = with lib.licenses; [ artistic1 gpl1Plus ];
22969     };
22970   };
22972   SQLAbstractPg = buildPerlPackage {
22973     pname = "SQL-Abstract-Pg";
22974     version = "1.0";
22975     src = fetchurl {
22976       url = "mirror://cpan/authors/id/S/SR/SRI/SQL-Abstract-Pg-1.0.tar.gz";
22977       hash = "sha256-Pic2DfN7jYjzxS2smwNJP5vT7v9sjYj5sIbScRVT9Uc=";
22978     };
22979     buildInputs = [ TestDeep ];
22980     propagatedBuildInputs = [ SQLAbstract ];
22981     meta = {
22982       description = "PostgreSQL features for SQL::Abstract";
22983       homepage = "https://mojolicious.org";
22984       license = with lib.licenses; [ artistic2 ];
22985     };
22986   };
22988   SQLSplitStatement = buildPerlPackage {
22989     pname = "SQL-SplitStatement";
22990     version = "1.00023";
22991     src = fetchurl {
22992       url = "mirror://cpan/authors/id/V/VE/VEESH/SQL-SplitStatement-1.00023.tar.gz";
22993       hash = "sha256-GnSEIM0q00HCUk7xGFt273Fylp8XqeS6tvQ3bw3p814=";
22994     };
22995     buildInputs = [ TestDifferences TestException ];
22996     propagatedBuildInputs = [ ClassAccessor ListMoreUtils RegexpCommon ];
22997     meta = {
22998       description = "Split any SQL code into atomic statements";
22999       license = with lib.licenses; [ artistic1 gpl1Plus ];
23000       mainProgram = "sql-split";
23001     };
23002   };
23004   SQLStatement = buildPerlPackage {
23005     pname = "SQL-Statement";
23006     version = "1.414";
23007     src = fetchurl {
23008       url = "mirror://cpan/authors/id/R/RE/REHSACK/SQL-Statement-1.414.tar.gz";
23009       hash = "sha256-3ei9z6ahNu7doGUZug8++uwIXDnbDfnEctwOxs14Gkk=";
23010     };
23011     buildInputs = [ MathBaseConvert TestDeep TextSoundex ];
23012     propagatedBuildInputs = [ Clone ModuleRuntime ParamsUtil ];
23013     meta = {
23014       description = "SQL parsing and processing engine";
23015       license = with lib.licenses; [ artistic1 gpl1Plus ];
23016     };
23017   };
23019   SQLTokenizer = buildPerlPackage {
23020     pname = "SQL-Tokenizer";
23021     version = "0.24";
23022     src = fetchurl {
23023       url = "mirror://cpan/authors/id/I/IZ/IZUT/SQL-Tokenizer-0.24.tar.gz";
23024       hash = "sha256-+qhpvEJlc2QVNqCfU1AuVA1ePjrWp6oaxiXT9pdrQuE=";
23025     };
23026     meta = {
23027       description = "Simple SQL tokenizer";
23028       license = with lib.licenses; [ artistic1 gpl1Plus ];
23029     };
23030   };
23032   SQLTranslator = buildPerlPackage {
23033     pname = "SQL-Translator";
23034     version = "1.63";
23035     src = fetchurl {
23036       url = "mirror://cpan/authors/id/V/VE/VEESH/SQL-Translator-1.63.tar.gz";
23037       hash = "sha256-WIWwTJNJi+MqGX3JcjlHUdXeYJNBiTqWZW3oikJgMTM=";
23038     };
23039     buildInputs = [ FileShareDirInstall JSONMaybeXS TestDifferences TestException XMLWriter YAML ];
23040     propagatedBuildInputs = [ CarpClan DBI FileShareDir Moo PackageVariant ParseRecDescent TryTiny GraphViz GD ];
23042     postPatch = ''
23043       patchShebangs script
23044     '';
23046     nativeBuildInputs = lib.optional stdenv.hostPlatform.isDarwin shortenPerlShebang;
23047     postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
23048       for file in $out/bin/*; do
23049         shortenPerlShebang $file
23050       done
23051     '';
23053     meta = {
23054       description = "SQL DDL transformations and more";
23055       license = with lib.licenses; [ artistic1 gpl1Plus ];
23056       mainProgram = "sqlt";
23057     };
23058   };
23060   PackageVariant = buildPerlPackage {
23061     pname = "Package-Variant";
23062     version = "1.003002";
23063     src = fetchurl {
23064       url = "mirror://cpan/authors/id/M/MS/MSTROUT/Package-Variant-1.003002.tar.gz";
23065       hash = "sha256-su2EnS9M3WZGdRLao/FDJm1t+BDF+ukXWyUsV7wVNtw=";
23066     };
23067     buildInputs = [ TestFatal ];
23068     propagatedBuildInputs = [ ImportInto strictures ];
23069     meta = {
23070       description = "Parameterizable packages";
23071       license = with lib.licenses; [ artistic1 gpl1Plus ];
23072     };
23073   };
23075   SortNaturally = buildPerlPackage {
23076     pname = "Sort-Naturally";
23077     version = "1.03";
23078     src = fetchurl {
23079       url = "mirror://cpan/authors/id/B/BI/BINGOS/Sort-Naturally-1.03.tar.gz";
23080       hash = "sha256-6qscXIdXWngmCJMEqx+P+n8Y5s2LOTdiPpmOhl7B50Y=";
23081     };
23082     meta = {
23083       description = "Sort lexically, but sort numeral parts numerically";
23084       license = with lib.licenses; [ artistic1 gpl1Plus ];
23085     };
23086   };
23088   Starlet = buildPerlPackage {
23089     pname = "Starlet";
23090     version = "0.31";
23091     src = fetchurl {
23092       url = "mirror://cpan/authors/id/K/KA/KAZUHO/Starlet-0.31.tar.gz";
23093       hash = "sha256-uWA7jmKIDLRYL2p5Oer+xl5u/T2QDyx900Ll9MaNYtg=";
23094     };
23095     buildInputs = [ LWP TestSharedFork TestTCP ];
23096     propagatedBuildInputs = [ ParallelPrefork Plack ServerStarter ];
23097     doCheck = !stdenv.hostPlatform.isDarwin;
23098     meta = {
23099       description = "Simple, high-performance PSGI/Plack HTTP server";
23100       license = with lib.licenses; [ artistic1 gpl1Plus ];
23101     };
23102   };
23104   Starman = buildPerlModule {
23105     pname = "Starman";
23106     version = "0.4017";
23107     src = fetchurl {
23108       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Starman-0.4017.tar.gz";
23109       hash = "sha256-b/q5FfMj9gCJ4+v4Urm5cH1pFyZt+K/XNw+sBL/f7k4=";
23110     };
23111     buildInputs = [ LWP ModuleBuildTiny TestRequires TestTCP ];
23112     nativeBuildInputs = lib.optional stdenv.hostPlatform.isDarwin shortenPerlShebang;
23113     propagatedBuildInputs = [ DataDump HTTPParserXS NetServer Plack NetServerSSPrefork IOSocketINET6 ];
23114     postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
23115       shortenPerlShebang $out/bin/starman
23116     '';
23118     doCheck = false; # binds to various TCP ports
23119     meta = {
23120       description = "High-performance preforking PSGI/Plack web server";
23121       homepage = "https://github.com/miyagawa/Starman";
23122       license = with lib.licenses; [ artistic1 gpl1Plus ];
23123       mainProgram = "starman";
23124     };
23125   };
23127   StatisticsBasic = buildPerlPackage {
23128     pname = "Statistics-Basic";
23129     version = "1.6611";
23130     src = fetchurl {
23131       url = "mirror://cpan/authors/id/J/JE/JETTERO/Statistics-Basic-1.6611.tar.gz";
23132       hash = "sha256-aFXOVhX9Phr0z8RRqb9E/ymjFAtOcTADTx8K8lEalPs=";
23133     };
23134     propagatedBuildInputs = [ NumberFormat ];
23135     meta = {
23136       description = "Collection of very basic statistics modules";
23137       license = with lib.licenses; [ lgpl2Only ];
23138     };
23139   };
23141   StatisticsCaseResampling = buildPerlPackage {
23142     pname = "Statistics-CaseResampling";
23143     version = "0.15";
23144     src = fetchurl {
23145       url = "mirror://cpan/authors/id/S/SM/SMUELLER/Statistics-CaseResampling-0.15.tar.gz";
23146       hash = "sha256-hRxDvW8Q0yKJUipQxqIJw7JGz9PrVmdz5oYe2gSkkIc=";
23147     };
23148     meta = {
23149       description = "Efficient resampling and calculation of medians with confidence intervals";
23150       license = with lib.licenses; [ artistic1 gpl1Plus ];
23151     };
23152   };
23154   StatisticsChiSquare = buildPerlPackage {
23155     pname = "Statistics-ChiSquare";
23156     version = "1.0000";
23157     src = fetchurl {
23158       url = "mirror://cpan/authors/id/D/DC/DCANTRELL/Statistics-ChiSquare-1.0000.tar.gz";
23159       hash = "sha256-JVpaODNtBI3bkHciJpHgAJhOkHquCaTqaVqc/Umh3dA=";
23160     };
23161     meta = {
23162       description = "Implements the Chi Squared test, using pre-computed tables";
23163       license = with lib.licenses; [ artistic1 gpl1Plus ];
23164     };
23165   };
23167   StatisticsDescriptive = buildPerlModule {
23168     pname = "Statistics-Descriptive";
23169     version = "3.0801";
23170     src = fetchurl {
23171       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Statistics-Descriptive-3.0801.tar.gz";
23172       hash = "sha256-BHtwpj/cqpFhaOD/LVjhVeDrvGjtTMvXOnIT3KMCj2U=";
23173     };
23174     propagatedBuildInputs = [ ListMoreUtils ];
23175     meta = {
23176       description = "Module of basic descriptive statistical functions";
23177       homepage = "https://metacpan.org/release/Statistics-Descriptive";
23178       license = with lib.licenses; [ artistic1 gpl1Plus ];
23179     };
23180   };
23182   StatisticsDistributions = buildPerlPackage {
23183     pname = "Statistics-Distributions";
23184     version = "1.02";
23185     src = fetchurl {
23186       url = "mirror://cpan/authors/id/M/MI/MIKEK/Statistics-Distributions-1.02.tar.gz";
23187       hash = "sha256-+Z85ar+EyjeqLOoxrUXXOq7kh1LJmRNsS5E4lCjXM8g=";
23188     };
23189     meta = {
23190       description = "Perl module for calculating critical values and upper probabilities of common statistical distributions";
23191       license = with lib.licenses; [ artistic1 gpl1Plus ];
23192     };
23193   };
23195   StatisticsTTest = buildPerlPackage {
23196     pname = "Statistics-TTest";
23197     version = "1.1.0";
23198     src = fetchurl {
23199       url = "mirror://cpan/authors/id/Y/YU/YUNFANG/Statistics-TTest-1.1.0.tar.gz";
23200       hash = "sha256-stlZ0ljHKEebfYYu4BRuWtjuqYm+JWN8vFdlUv9zcWY=";
23201     };
23202     propagatedBuildInputs = [ StatisticsDescriptive StatisticsDistributions ];
23203     meta = {
23204       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";
23205       license = with lib.licenses; [ artistic1 gpl1Plus ];
23206     };
23207   };
23209   StreamBuffered = buildPerlPackage {
23210     pname = "Stream-Buffered";
23211     version = "0.03";
23212     src = fetchurl {
23213       url = "mirror://cpan/authors/id/D/DO/DOY/Stream-Buffered-0.03.tar.gz";
23214       hash = "sha256-my1DkLXeawz0VY5K0EMXpzxeE90ZrykUnE5Hw3+yQjs=";
23215     };
23216     meta = {
23217       description = "Temporary buffer to save bytes";
23218       homepage = "https://github.com/plack/Stream-Buffered";
23219       license = with lib.licenses; [ artistic1 gpl1Plus ];
23220     };
23221   };
23223   strictures = buildPerlPackage {
23224     pname = "strictures";
23225     version = "2.000006";
23226     src = fetchurl {
23227       url = "mirror://cpan/authors/id/H/HA/HAARG/strictures-2.000006.tar.gz";
23228       hash = "sha256-CdV5dKbRsjgMgChw/tRxEI9RFw2oFFjidRhZ8nFPjVc=";
23229     };
23230     meta = {
23231       description = "Turn on strict and make most warnings fatal";
23232       homepage = "http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=p5sagit/strictures.git";
23233       license = with lib.licenses; [ artistic1 gpl1Plus ];
23234     };
23235   };
23237   StringApprox = buildPerlPackage {
23238     pname = "String-Approx";
23239     version = "3.28";
23240     src = fetchurl {
23241       url = "mirror://cpan/authors/id/J/JH/JHI/String-Approx-3.28.tar.gz";
23242       hash = "sha256-QyAedi2GmcsKwsB2SlRUvcIwbAdxAU1sj7qCFIBjE0I=";
23243     };
23244     meta = {
23245       description = "Perl extension for approximate matching (fuzzy matching)";
23246       license = with lib.licenses; [ artistic2 gpl2Only ];
23247     };
23248   };
23250   StringBinaryInterpolation = buildPerlPackage {
23251     pname = "String-Binary-Interpolation";
23252     version = "1.0.0";
23253     src = fetchurl {
23254       url = "mirror://cpan/authors/id/D/DC/DCANTRELL/String-Binary-Interpolation-1.0.0.tar.gz";
23255       hash = "sha256-2lXYmCTBrdniqpWP8OpILyaCLkJI7TOo1rT7vXdYivE=";
23256     };
23257     meta = {
23258       description = "Make it easier to interpolate binary bytes into a string";
23259       license = with lib.licenses; [ artistic2 gpl2Only ];
23260     };
23261   };
23263   StringCamelCase = buildPerlPackage {
23264     pname = "String-CamelCase";
23265     version = "0.04";
23266     src = fetchurl {
23267       url = "mirror://cpan/authors/id/H/HI/HIO/String-CamelCase-0.04.tar.gz";
23268       hash = "sha256-icPevO7Orodk9F10Aj+Pvu4tiDma9nVB29qgsr8nEak=";
23269     };
23270     meta = {
23271       description = "Camelcase, de-camelcase";
23272       license = with lib.licenses; [ artistic1 gpl1Plus ];
23273     };
23274   };
23276   StringCompareConstantTime = buildPerlPackage {
23277     pname = "String-Compare-ConstantTime";
23278     version = "0.321";
23279     src = fetchurl {
23280       url = "mirror://cpan/authors/id/F/FR/FRACTAL/String-Compare-ConstantTime-0.321.tar.gz";
23281       hash = "sha256-Cya6KxIdgARCXUSF0dRvWQAcg3Y6omYk3/YiDXc11/c=";
23282     };
23283     meta = {
23284       description = "Timing side-channel protected string compare";
23285       license = with lib.licenses; [ artistic1 gpl1Plus ];
23286     };
23287   };
23289   StringCRC32 = buildPerlPackage {
23290     pname = "String-CRC32";
23291     version = "2.100";
23292     src = fetchurl {
23293       url = "mirror://cpan/authors/id/L/LE/LEEJO/String-CRC32-2.100.tar.gz";
23294       hash = "sha256-lwYJOy0Gi2cV01tMWPUVWON5YAgyAhKfuwClfhmnRxM=";
23295     };
23296     meta = {
23297       description = "Perl interface for cyclic redundancy check generation";
23298       license = with lib.licenses; [ publicDomain ];
23299     };
23300   };
23302   StringDiff = buildPerlModule {
23303     pname = "String-Diff";
23304     version = "0.07";
23305     src = fetchurl {
23306       url = "mirror://cpan/authors/id/Y/YA/YAPPO/String-Diff-0.07.tar.gz";
23307       hash = "sha256-chW2fLwyJuLQ4Ys47FjJO+C/YJAnhpi++VU0iCbNCvM=";
23308     };
23309     patches = [
23310       (fetchpatch {
23311         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";
23312         hash = "sha256-RcYsn0jVa9sSF8iYPuaFTWx00LrF3m7hH9e6fC7j72U=";
23313       })
23314     ];
23315     buildInputs = [ TestBase ModuleBuildTiny ModuleInstallGithubMeta ModuleInstallRepository ModuleInstallReadmeFromPod ModuleInstallReadmeMarkdownFromPod YAML ];
23316     propagatedBuildInputs = [ AlgorithmDiff ];
23317     meta = {
23318       description = "Simple diff to String";
23319       homepage = "https://github.com/yappo/p5-String-Diff";
23320       license = with lib.licenses; [ artistic1 gpl1Plus ];
23321       maintainers = [ maintainers.sgo ];
23322     };
23323   };
23325   StringErrf = buildPerlPackage {
23326     pname = "String-Errf";
23327     version = "0.009";
23328     src = fetchurl {
23329       url = "mirror://cpan/authors/id/R/RJ/RJBS/String-Errf-0.009.tar.gz";
23330       hash = "sha256-4f7b+bT9ZLZOqBA43bdqTGzYX12xW8IfEGVqKYNJ3B8=";
23331     };
23332     buildInputs = [ JSONMaybeXS TimeDate ];
23333     propagatedBuildInputs = [ StringFormatter ];
23334     meta = {
23335       description = "Simple sprintf-like dialect";
23336       homepage = "https://github.com/rjbs/String-Errf";
23337       license = with lib.licenses; [ artistic1 gpl1Plus ];
23338     };
23339   };
23341   StringEscape = buildPerlPackage {
23342     pname = "String-Escape";
23343     version = "2010.002";
23344     src = fetchurl {
23345       url = "mirror://cpan/authors/id/E/EV/EVO/String-Escape-2010.002.tar.gz";
23346       hash = "sha256-/WRfizNiJNIKha5/saOEV26sMp963DkjwyQego47moo=";
23347     };
23348     meta = {
23349       description = "Backslash escapes, quoted phrase, word elision, etc";
23350       license = with lib.licenses; [ artistic1 gpl1Plus ];
23351     };
23352   };
23354   StringFlogger = buildPerlPackage {
23355     pname = "String-Flogger";
23356     version = "1.101246";
23357     src = fetchurl {
23358       url = "mirror://cpan/authors/id/R/RJ/RJBS/String-Flogger-1.101246.tar.gz";
23359       hash = "sha256-FfhJHgeBi7PPqfa9Oqv2QwuptOMJ8YEUNYvj2Bv/Og8=";
23360     };
23361     propagatedBuildInputs = [ JSONMaybeXS SubExporter ];
23362     meta = {
23363       description = "String munging for loggers";
23364       homepage = "https://github.com/rjbs/String-Flogger";
23365       license = with lib.licenses; [ artistic1 gpl1Plus ];
23366     };
23367   };
23369   StringFormat = buildPerlPackage {
23370     pname = "String-Format";
23371     version = "1.18";
23372     src = fetchurl {
23373       url = "mirror://cpan/authors/id/S/SR/SREZIC/String-Format-1.18.tar.gz";
23374       hash = "sha256-nkF6j42epiO+6i0TpHwNWmlvyGAsBQm4Js1F+Xt253g=";
23375     };
23376     meta = {
23377       description = "sprintf-like string formatting capabilities with arbitrary format definitions";
23378       license = with lib.licenses; [ gpl2Only ];
23379     };
23380   };
23382   StringFormatter = buildPerlPackage {
23383     pname = "String-Formatter";
23384     version = "1.235";
23385     src = fetchurl {
23386       url = "mirror://cpan/authors/id/R/RJ/RJBS/String-Formatter-1.235.tar.gz";
23387       hash = "sha256-CCNqkTuRHOZSzwhZjnwH0t8/Np/Ee/QBpIWlBKFmB4M=";
23388     };
23389     propagatedBuildInputs = [ SubExporter ];
23390     meta = {
23391       description = "Build sprintf-like functions of your own";
23392       license = with lib.licenses; [ gpl2Only ];
23393     };
23394   };
23396   StringInterpolate = buildPerlPackage {
23397     pname = "String-Interpolate";
23398     version = "0.33";
23399     src = fetchurl {
23400       url = "mirror://cpan/authors/id/N/NE/NEILB/String-Interpolate-0.33.tar.gz";
23401       hash = "sha256-qH7Qk4kH0xr32qltc6BjL1xko40d4N6HxLRCWDEpxBM=";
23402     };
23403     meta = {
23404       # https://metacpan.org/pod/String::Interpolate
23405       description = "String::Interpolate - Wrapper for builtin the Perl interpolation engine";
23406       license = with lib.licenses; [ gpl1Plus ];
23407     };
23408     propagatedBuildInputs = [ PadWalker SafeHole ];
23409   };
23411   StringInterpolateNamed = buildPerlPackage {
23412     pname = "String-Interpolate-Named";
23413     version = "1.03";
23414     src = fetchurl {
23415       url = "mirror://cpan/authors/id/J/JV/JV/String-Interpolate-Named-1.03.tar.gz";
23416       hash = "sha256-on13VgcnX2jtkqQT85SsAJLn3hzZPWJHnUf7pwF6Jtw=";
23417     };
23418     meta = {
23419       description = "Interpolated named arguments in string";
23420       license = with lib.licenses; [ artistic1 gpl1Plus ];
23421     };
23422   };
23424   StringMkPasswd = buildPerlPackage {
23425     pname = "String-MkPasswd";
23426     version = "0.05";
23427     src = fetchurl {
23428       url = "mirror://cpan/authors/id/C/CG/CGRAU/String-MkPasswd-0.05.tar.gz";
23429       hash = "sha256-UxD4NGAEVHUHFma1Qj2y8KqC1mhcgC7Hq+bCxBBjm5Y=";
23430     };
23431     meta = {
23432       description = "Random password generator";
23433       homepage = "https://github.com/sirhc/string-mkpasswd";
23434       license = with lib.licenses; [ artistic1 gpl1Plus ];
23435       mainProgram = "mkpasswd.pl";
23436     };
23437   };
23439   StringRandom = buildPerlModule {
23440     pname = "String-Random";
23441     version = "0.32";
23442     src = fetchurl {
23443       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/String-Random-0.32.tar.gz";
23444       hash = "sha256-nZPGeaNP+ibTtPoIN8rtHNLmfXZXKBi5HpfepzRwUkY=";
23445     };
23446     meta = {
23447       description = "Perl module to generate random strings based on a pattern";
23448       license = with lib.licenses; [ artistic1 gpl1Plus ];
23449     };
23450   };
23452   StringRewritePrefix = buildPerlPackage {
23453     pname = "String-RewritePrefix";
23454     version = "0.009";
23455     src = fetchurl {
23456       url = "mirror://cpan/authors/id/R/RJ/RJBS/String-RewritePrefix-0.009.tar.gz";
23457       hash = "sha256-RJGL7JalSvjKN8qJfkNnCewoSgeyhRbvPM5GZoaWRtU=";
23458     };
23459     propagatedBuildInputs = [ SubExporter ];
23460     meta = {
23461       description = "Rewrite strings based on a set of known prefixes";
23462       homepage = "https://github.com/rjbs/String-RewritePrefix";
23463       license = with lib.licenses; [ artistic1 gpl1Plus ];
23464     };
23465   };
23467   StringShellQuote = buildPerlPackage {
23468     pname = "String-ShellQuote";
23469     version = "1.04";
23470     src = fetchurl {
23471       url = "mirror://cpan/authors/id/R/RO/ROSCH/String-ShellQuote-1.04.tar.gz";
23472       hash = "sha256-5gY2UDjOINZG0lXIBe/90y+GR18Y1DynVFWwDk2G3TU=";
23473     };
23474     doCheck = !stdenv.hostPlatform.isDarwin;
23475     meta = {
23476       description = "Quote strings for passing through the shell";
23477       license = with lib.licenses; [ artistic1 gpl1Plus ];
23478       mainProgram = "shell-quote";
23479     };
23480   };
23482   StringSimilarity = buildPerlPackage {
23483     pname = "String-Similarity";
23484     version = "1.04";
23485     src = fetchurl {
23486       url = "mirror://cpan/authors/id/M/ML/MLEHMANN/String-Similarity-1.04.tar.gz";
23487       hash = "sha256-H47aIpC7y3Ia7wzhsL/hOwEgHdPaphijN/LwLikcMkU=";
23488     };
23489     doCheck = true;
23490     meta = {
23491       description = "Calculate the similarity of two strings";
23492       license = with lib.licenses; [ gpl2Only ];
23493     };
23494   };
23496   ShellCommand = buildPerlPackage {
23497     pname = "Shell-Command";
23498     version = "0.06";
23499     src = fetchurl {
23500       url = "mirror://cpan/authors/id/F/FL/FLORA/Shell-Command-0.06.tar.gz";
23501       hash = "sha256-8+Te71d5RL5G+nr1rBGKwoKJEXiLAbx2p0SVNVYW7NE=";
23502     };
23503     meta = {
23504       description = "Cross-platform functions emulating common shell commands";
23505       license = with lib.licenses; [ artistic1 gpl1Plus ];
23506     };
23507   };
23509   ShellConfigGenerate = buildPerlPackage {
23510     pname = "Shell-Config-Generate";
23511     version = "0.34";
23512     src = fetchurl {
23513       url = "mirror://cpan/authors/id/P/PL/PLICEASE/Shell-Config-Generate-0.34.tar.gz";
23514       hash = "sha256-hPRR8iIV3WjpwYqj992wOoIAfRZs+toAPQ8Wb1ceBWI=";
23515     };
23516     buildInputs = [ Test2Suite ];
23517     propagatedBuildInputs = [ ShellGuess ];
23518     meta = {
23519       description = "Portably generate config for any shell";
23520       homepage = "https://metacpan.org/pod/Shell::Config::Generate";
23521       license = with lib.licenses; [ artistic1 gpl1Plus ];
23522     };
23523   };
23525   ShellGuess = buildPerlPackage {
23526     pname = "Shell-Guess";
23527     version = "0.09";
23528     src = fetchurl {
23529       url = "mirror://cpan/authors/id/P/PL/PLICEASE/Shell-Guess-0.09.tar.gz";
23530       hash = "sha256-QGn6JjfkQxGO2VbXECMdFmgj0jsqZOuHuKRocuhloSs=";
23531     };
23532     meta = {
23533       description = "Make an educated guess about the shell in use";
23534       homepage = "https://metacpan.org/pod/Shell::Guess";
23535       license = with lib.licenses; [ artistic1 gpl1Plus ];
23536     };
23537   };
23539   StringToIdentifierEN = buildPerlPackage {
23540     pname = "String-ToIdentifier-EN";
23541     version = "0.12";
23542     src = fetchurl {
23543       url = "mirror://cpan/authors/id/R/RK/RKITOVER/String-ToIdentifier-EN-0.12.tar.gz";
23544       hash = "sha256-OvuEIykwuaxbGto4PI3VkHrk4jrsWrsBb3D56AU83Io=";
23545     };
23546     propagatedBuildInputs = [ LinguaENInflectPhrase TextUnidecode namespaceclean ];
23547     meta = {
23548       description = "Convert Strings to English Program Identifiers";
23549       license = with lib.licenses; [ artistic1 gpl1Plus ];
23550     };
23551   };
23553   StringTruncate = buildPerlPackage {
23554     pname = "String-Truncate";
23555     version = "1.100603";
23556     src = fetchurl {
23557       url = "mirror://cpan/authors/id/R/RJ/RJBS/String-Truncate-1.100603.tar.gz";
23558       hash = "sha256-q0VgLM4t2VFe37sublzeGc3VSY1hojr9jEbB8R+O7GI=";
23559     };
23560     propagatedBuildInputs = [ SubExporter ];
23561     meta = {
23562       description = "Module for when strings are too long to be displayed in...";
23563       homepage = "https://github.com/rjbs/String-Truncate";
23564       license = with lib.licenses; [ artistic1 gpl1Plus ];
23565     };
23566   };
23568   StringTT = buildPerlPackage {
23569     pname = "String-TT";
23570     version = "0.03";
23571     src = fetchurl {
23572       url = "mirror://cpan/authors/id/B/BO/BOBTFISH/String-TT-0.03.tar.gz";
23573       hash = "sha256-92BfCgT5+hI9Ot9PNFeaFMkLfai5O2XS5IkyzNPJUqs=";
23574     };
23575     buildInputs = [ TestException TestSimple13 TestTableDriven ];
23576     propagatedBuildInputs = [ PadWalker SubExporter TemplateToolkit ];
23577     meta = {
23578       description = "Use TT to interpolate lexical variables";
23579       license = with lib.licenses; [ artistic1 gpl1Plus ];
23580     };
23581   };
23583   StringUtil = buildPerlModule {
23584     pname = "String-Util";
23585     version = "1.34";
23586     src = fetchurl {
23587       url = "mirror://cpan/authors/id/B/BA/BAKERSCOT/String-Util-1.34.tar.gz";
23588       hash = "sha256-MZzozWZTQeVlIfoVXZYqGTKOkNn3A2dlklzN4mclxGk=";
23589     };
23590     buildInputs = [ ModuleBuildTiny ];
23591     meta = {
23592       description = "String processing utility functions";
23593       homepage = "https://github.com/scottchiefbaker/String-Util";
23594       license = with lib.licenses; [ artistic1 gpl1Plus ];
23595     };
23596   };
23598   strip-nondeterminism = callPackage ../development/perl-modules/strip-nondeterminism { };
23600   StructDumb = buildPerlModule {
23601     pname = "Struct-Dumb";
23602     version = "0.14";
23603     src = fetchurl {
23604       url = "mirror://cpan/authors/id/P/PE/PEVANS/Struct-Dumb-0.14.tar.gz";
23605       hash = "sha256-E8FIU2sQ4oxuC04TLynkym5ptXSQWcRBV6J+hKVFlDY=";
23606     };
23607     buildInputs = [ Test2Suite ];
23608     meta = {
23609       description = "Make simple lightweight record-like structures";
23610       license = with lib.licenses; [ artistic1 gpl1Plus ];
23611     };
23612   };
23614   SubExporter = buildPerlPackage {
23615     pname = "Sub-Exporter";
23616     version = "0.990";
23617     src = fetchurl {
23618       url = "mirror://cpan/authors/id/R/RJ/RJBS/Sub-Exporter-0.990.tar.gz";
23619       hash = "sha256-vGTsWgaGX5zGdiFcBqlEizoMizl0/7I6JPjirQkFRPw=";
23620     };
23621     propagatedBuildInputs = [ DataOptList ];
23622     meta = {
23623       description = "Sophisticated exporter for custom-built routines";
23624       homepage = "https://github.com/rjbs/Sub-Exporter";
23625       license = with lib.licenses; [ artistic1 gpl1Plus ];
23626     };
23627   };
23629   SubExporterForMethods = buildPerlPackage {
23630     pname = "Sub-Exporter-ForMethods";
23631     version = "0.100055";
23632     src = fetchurl {
23633       url = "mirror://cpan/authors/id/R/RJ/RJBS/Sub-Exporter-ForMethods-0.100055.tar.gz";
23634       hash = "sha256-eR9CA7p8D32DgLwBvsICFffIvHDX7QPlUu7kRUGr6U4=";
23635     };
23636     buildInputs = [ namespaceautoclean ];
23637     propagatedBuildInputs = [ SubExporter SubName ];
23638     meta = {
23639       description = "Helper routines for using Sub::Exporter to build methods";
23640       homepage = "https://github.com/rjbs/Sub-Exporter-ForMethods";
23641       license = with lib.licenses; [ artistic1 gpl1Plus ];
23642     };
23643   };
23645   SubExporterGlobExporter = buildPerlPackage {
23646     pname = "Sub-Exporter-GlobExporter";
23647     version = "0.006";
23648     src = fetchurl {
23649       url = "mirror://cpan/authors/id/R/RJ/RJBS/Sub-Exporter-GlobExporter-0.006.tar.gz";
23650       hash = "sha256-3nQ/CAJnAcKmoiKotBxM3CVLGkr+fvmJh806ukzlJpY=";
23651     };
23652     propagatedBuildInputs = [ SubExporter ];
23653     meta = {
23654       description = "Export shared globs with Sub::Exporter collectors";
23655       homepage = "https://github.com/rjbs/Sub-Exporter-GlobExporter";
23656       license = with lib.licenses; [ artistic1 gpl1Plus ];
23657     };
23658   };
23660   SubExporterProgressive = buildPerlPackage {
23661     pname = "Sub-Exporter-Progressive";
23662     version = "0.001013";
23663     src = fetchurl {
23664       url = "mirror://cpan/authors/id/F/FR/FREW/Sub-Exporter-Progressive-0.001013.tar.gz";
23665       hash = "sha256-1TW3lU1k2hrBMFsfrfmCAnaeNZk3aFSyztkMOCvqwFY=";
23666     };
23667     meta = {
23668       description = "Only use Sub::Exporter if you need it";
23669       homepage = "https://github.com/frioux/Sub-Exporter-Progressive";
23670       license = with lib.licenses; [ artistic1 gpl1Plus ];
23671     };
23672   };
23674   SubHandlesVia = buildPerlPackage {
23675     pname = "Sub-HandlesVia";
23676     version = "0.050000";
23677     src = fetchurl {
23678       url = "mirror://cpan/authors/id/T/TO/TOBYINK/Sub-HandlesVia-0.050000.tar.gz";
23679       hash = "sha256-Lfk0k+L56VvleblQtuGf9ST5TIBhOq3AOohhHf91eU8=";
23680     };
23681     propagatedBuildInputs = [ ClassMethodModifiers RoleHooks RoleTiny TypeTiny ];
23682     buildInputs = [ TestFatal TestRequires TryTiny ];
23683     meta = {
23684       description = "Alternative handles_via implementation";
23685       homepage = "https://metacpan.org/release/Sub-HandlesVia";
23686       license = with lib.licenses; [ artistic1 gpl1Plus ];
23687     };
23688   };
23690   SubIdentify = buildPerlPackage {
23691     pname = "Sub-Identify";
23692     version = "0.14";
23693     src = fetchurl {
23694       url = "mirror://cpan/authors/id/R/RG/RGARCIA/Sub-Identify-0.14.tar.gz";
23695       hash = "sha256-Bo0nIIZRTdHoQrakCxvtuv7mOQDlsIiQ72cAA53vrW8=";
23696     };
23697     meta = {
23698       description = "Retrieve names of code references";
23699       license = with lib.licenses; [ artistic1 gpl1Plus ];
23700     };
23701   };
23703   SubInfo = buildPerlPackage {
23704     pname = "Sub-Info";
23705     version = "0.002";
23706     src = fetchurl {
23707       url = "mirror://cpan/authors/id/E/EX/EXODIST/Sub-Info-0.002.tar.gz";
23708       hash = "sha256-6jBW1pa97/IamdNA1VcIh9OajMR7/yOt/ILfZ1jN0Oo=";
23709     };
23710     propagatedBuildInputs = [ Importer ];
23711     meta = {
23712       description = "Tool for inspecting subroutines";
23713       license = with lib.licenses; [ artistic1 gpl1Plus ];
23714     };
23715   };
23717   SubInstall = buildPerlPackage {
23718     pname = "Sub-Install";
23719     version = "0.929";
23720     src = fetchurl {
23721       url = "mirror://cpan/authors/id/R/RJ/RJBS/Sub-Install-0.929.tar.gz";
23722       hash = "sha256-gLHigdjNOysx2scR9cihZXqHzYC75przkkvL605dsHc=";
23723     };
23724     meta = {
23725       description = "Install subroutines into packages easily";
23726       homepage = "https://github.com/rjbs/Sub-Install";
23727       license = with lib.licenses; [ artistic1 gpl1Plus ];
23728     };
23729   };
23731   SubName = buildPerlPackage {
23732     pname = "Sub-Name";
23733     version = "0.27";
23734     src = fetchurl {
23735       url = "mirror://cpan/authors/id/E/ET/ETHER/Sub-Name-0.27.tar.gz";
23736       hash = "sha256-7PNvuhxHypPh2qOUlo7TnEGGhnRZ2c0XPEIeK5cgQ+g=";
23737     };
23738     buildInputs = [ BC DevelCheckBin ];
23739     meta = {
23740       description = "(Re)name a sub";
23741       homepage = "https://github.com/p5sagit/Sub-Name";
23742       license = with lib.licenses; [ artistic1 gpl1Plus ];
23743     };
23744   };
23746   SubOverride = buildPerlPackage {
23747     pname = "Sub-Override";
23748     version = "0.09";
23749     src = fetchurl {
23750       url = "mirror://cpan/authors/id/O/OV/OVID/Sub-Override-0.09.tar.gz";
23751       hash = "sha256-k5pnwfcplo4MyBt0lY23UOG9t8AgvuGiYzMvQiwuJbU=";
23752     };
23753     buildInputs = [ TestFatal ];
23754     meta = {
23755       description = "Perl extension for easily overriding subroutines";
23756       license = with lib.licenses; [ artistic1 gpl1Plus ];
23757     };
23758   };
23760   SubQuote = buildPerlPackage {
23761     pname = "Sub-Quote";
23762     version = "2.006008";
23763     src = fetchurl {
23764       url = "mirror://cpan/authors/id/H/HA/HAARG/Sub-Quote-2.006008.tar.gz";
23765       hash = "sha256-lL69UAr1V2LoPqLyvFlNh6+CgHI3DHEQxgwjioANFbI=";
23766     };
23767     buildInputs = [ TestFatal ];
23768     meta = {
23769       description = "Efficient generation of subroutines via string eval";
23770       license = with lib.licenses; [ artistic1 gpl1Plus ];
23771     };
23772   };
23774   SubStrictDecl = buildPerlModule {
23775     pname = "Sub-StrictDecl";
23776     version = "0.005";
23777     src = fetchurl {
23778       url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Sub-StrictDecl-0.005.tar.gz";
23779       hash = "sha256-oSfa52RcGpVwzZopcMbcST1SL/BzGKNKOeQJCY9pESU=";
23780     };
23781     propagatedBuildInputs = [ LexicalSealRequireHints ];
23782     perlPreHook = lib.optionalString stdenv.hostPlatform.isDarwin "export LD=$CC";
23783     meta = {
23784       description = "Detect undeclared subroutines in compilation";
23785       license = with lib.licenses; [ artistic1 gpl1Plus ];
23786     };
23787   };
23789   SubUplevel = buildPerlPackage {
23790     pname = "Sub-Uplevel";
23791     version = "0.2800";
23792     src = fetchurl {
23793       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Sub-Uplevel-0.2800.tar.gz";
23794       hash = "sha256-tPP2O4D2gKQhMy2IUd2+Wo5y/Kp01dHZjzyMxKPs4pM=";
23795     };
23796     meta = {
23797       description = "Apparently run a function in a higher stack frame";
23798       homepage = "https://github.com/Perl-Toolchain-Gang/Sub-Uplevel";
23799       license = with lib.licenses; [ artistic1 gpl1Plus ];
23800     };
23801   };
23803   SVNSimple = buildPerlPackage {
23804     pname = "SVN-Simple";
23805     version = "0.28";
23806     src = fetchurl {
23807       url = "mirror://cpan/authors/id/C/CL/CLKAO/SVN-Simple-0.28.tar.gz";
23808       hash = "sha256-1jzBaeQ2m+mKU5q+nMFhG/zCs2lmplF+Z2aI/tGIT/s=";
23809     };
23810     propagatedBuildInputs = [ (pkgs.subversionClient.override { inherit perl; }) ];
23811     meta = {
23812       description = "Simple interface to subversion's editor interface";
23813       license = with lib.licenses; [ artistic1 gpl1Plus ];
23814     };
23815   };
23817   SafeHole = buildPerlModule {
23818     pname = "Safe-Hole";
23819     version = "0.14";
23820     src = fetchurl {
23821       url = "mirror://cpan/authors/id/T/TO/TODDR/Safe-Hole-0.14.tar.gz";
23822       hash = "sha256-9PVui70GxP5K4G2xIYbeyt+6wep3XqGMbAKJSB0V7AU=";
23823     };
23824     perlPreHook = lib.optionalString stdenv.hostPlatform.isDarwin "export LD=$CC";
23825     meta = {
23826       description = "Lib/Safe/Hole.pm";
23827       homepage = "https://github.com/toddr/Safe-Hole";
23828       license = with lib.licenses; [ artistic1 gpl1Plus ];
23829     };
23830   };
23832   Swim = buildPerlPackage {
23833     pname = "Swim";
23834     version = "0.1.48";
23835     src = fetchurl {
23836       url = "mirror://cpan/authors/id/I/IN/INGY/Swim-0.1.48.tar.gz";
23837       hash = "sha256-pfcv0vIpF/orSsuy7iw9MpA9l+5bDkSbDzhwGMd/Tww=";
23838     };
23839     propagatedBuildInputs = [ HTMLEscape HashMerge IPCRun Pegex TextAutoformat YAMLLibYAML ];
23840     meta = {
23841       description = "See What I Mean?!";
23842       homepage = "https://github.com/ingydotnet/swim-pm";
23843       license = with lib.licenses; [ artistic1 gpl1Plus ];
23844       mainProgram = "swin";
23845     };
23846   };
23848   Switch = buildPerlPackage {
23849     pname = "Switch";
23850     version = "2.17";
23851     src = fetchurl {
23852       url = "mirror://cpan/authors/id/C/CH/CHORNY/Switch-2.17.tar.gz";
23853       hash = "sha256-MTVJdRQP5iNawTChCUlkka0z3UL5xiGJ4j9J91+TbXU=";
23854     };
23855     doCheck = false;                             # FIXME: 2/293 test failures
23856     meta = {
23857       description = "Switch statement for Perl, do not use if you can use given/when";
23858       license = with lib.licenses; [ artistic1 gpl1Plus ];
23859     };
23860   };
23862   SymbolGet = buildPerlPackage {
23863     pname = "Symbol-Get";
23864     version = "0.10";
23865     src = fetchurl {
23866       url = "mirror://cpan/authors/id/F/FE/FELIPE/Symbol-Get-0.10.tar.gz";
23867       hash = "sha256-DuVWjFrjVzyodOCeTQUkRmz8Gtmiwk0LyR1MewbyHZw=";
23868     };
23869     buildInputs = [ TestDeep TestException ];
23870     propagatedBuildInputs = [ CallContext ];
23871     meta = {
23872       description = "Read Perl's symbol table programmatically";
23873       license = with lib.licenses; [ artistic1 gpl1Plus ];
23874       maintainers = [ maintainers.sgo ];
23875     };
23876   };
23878   SymbolGlobalName = buildPerlPackage {
23879     pname = "Symbol-Global-Name";
23880     version = "0.05";
23881     src = fetchurl {
23882       url = "mirror://cpan/authors/id/A/AL/ALEXMV/Symbol-Global-Name-0.05.tar.gz";
23883       hash = "sha256-D3Yj6dckdgqmQEAiLaHYLxGIWGeRMpJhzGDa0dYNapI=";
23884     };
23885     meta = {
23886       description = "Finds name and type of a global variable";
23887       license = with lib.licenses; [ artistic1 gpl1Plus ];
23888     };
23889   };
23891   SymbolUtil = buildPerlModule {
23892     pname = "Symbol-Util";
23893     version = "0.0203";
23894     src = fetchurl {
23895       url = "mirror://cpan/authors/id/D/DE/DEXTER/Symbol-Util-0.0203.tar.gz";
23896       hash = "sha256-VbZh3SL5zpub5afgo/UomsAM0lTCHj2GAyiaVlrm3DI=";
23897     };
23898     meta = {
23899       description = "Additional utils for Perl symbols manipulation";
23900       license = with lib.licenses; [ artistic1 gpl1Plus ];
23901     };
23902   };
23904   syntax = buildPerlPackage {
23905     pname = "syntax";
23906     version = "0.004";
23907     src = fetchurl {
23908       url = "mirror://cpan/authors/id/P/PH/PHAYLON/syntax-0.004.tar.gz";
23909       hash = "sha256-/hm22oqPQ6WqLuVxRBvA4zn7FW0AgcFXoaJOmBLH02U=";
23910     };
23911     propagatedBuildInputs = [ DataOptList namespaceclean ];
23912     meta = {
23913       description = "Activate syntax extensions";
23914       homepage = "https://github.com/phaylon/syntax/wiki";
23915       license = with lib.licenses; [ artistic1 gpl1Plus ];
23916     };
23917   };
23919   SyntaxKeywordJunction = buildPerlPackage {
23920     pname = "Syntax-Keyword-Junction";
23921     version = "0.003008";
23922     src = fetchurl {
23923       url = "mirror://cpan/authors/id/F/FR/FREW/Syntax-Keyword-Junction-0.003008.tar.gz";
23924       hash = "sha256-i0l18hsZkqfmwt9dzJKyVMYZJVle3c368LFJhxeqle8=";
23925     };
23926     buildInputs = [ TestRequires ];
23927     propagatedBuildInputs = [ syntax ];
23928     meta = {
23929       description = "Perl6 style Junction operators in Perl5";
23930       homepage = "https://github.com/frioux/Syntax-Keyword-Junction";
23931       license = with lib.licenses; [ artistic1 gpl1Plus ];
23932     };
23933   };
23935   SyntaxKeywordTry = buildPerlModule {
23936     pname = "Syntax-Keyword-Try";
23937     version = "0.29";
23938     src = fetchurl {
23939       url = "mirror://cpan/authors/id/P/PE/PEVANS/Syntax-Keyword-Try-0.29.tar.gz";
23940       hash = "sha256-zDIHGdNgjaqVFHQ6Q9rCvpnLjM2Ymx/vooUpDLHVnY8=";
23941     };
23942     buildInputs = [ Test2Suite ];
23943     propagatedBuildInputs = [ XSParseKeyword ];
23944     perlPreHook = lib.optionalString (stdenv.hostPlatform.isi686 || stdenv.hostPlatform.isDarwin) "export LD=$CC";
23945     meta = {
23946       description = "Try/catch/finally syntax for perl";
23947       license = with lib.licenses; [ artistic1 gpl1Plus ];
23948       maintainers = [ maintainers.zakame ];
23949     };
23950   };
23952   SysMmap = buildPerlPackage {
23953     pname = "Sys-Mmap";
23954     version = "0.20";
23955     src = fetchurl {
23956       url = "mirror://cpan/authors/id/T/TO/TODDR/Sys-Mmap-0.20.tar.gz";
23957       hash = "sha256-GCDOLInxq3NXZE+NsPSfFC9UUmJQ+x4jXbEKqA8V4s8=";
23958     };
23959     meta = {
23960       description = "Use mmap to map in a file as a Perl variable";
23961       maintainers = with maintainers; [ peterhoeg ];
23962       license = with lib.licenses; [ gpl2Plus ];
23963     };
23964   };
23966   SysMemInfo = buildPerlPackage {
23967     pname = "Sys-MemInfo";
23968     version = "0.99";
23969     src = fetchurl {
23970       url = "mirror://cpan/authors/id/S/SC/SCRESTO/Sys-MemInfo-0.99.tar.gz";
23971       hash = "sha256-B4YxnTo6i65dcnk5JEvxfhQLcU9Sc01en2JyA+TPPjs=";
23972     };
23973     meta = {
23974       description = "Memory information";
23975       license = with lib.licenses; [ gpl2Plus ];
23976       maintainers = [ maintainers.pSub ];
23977     };
23978   };
23980   SysCPU = buildPerlPackage {
23981     pname = "Sys-CPU";
23982     version = "0.61";
23983     src = fetchurl {
23984       url = "mirror://cpan/authors/id/M/MZ/MZSANFORD/Sys-CPU-0.61.tar.gz";
23985       hash = "sha256-JQqGt5wjEAHErnHS9mQoCSpPuyBwlxrK/UcapJc5yeQ=";
23986     };
23987     patches = [
23988       # Bug #95400 for Sys-CPU: Tests fail on ARM and AArch64 Linux
23989       # https://rt.cpan.org/Public/Bug/Display.html?id=95400
23990       (fetchpatch {
23991         url = "https://rt.cpan.org/Ticket/Attachment/1359669/721669/0001-Add-support-for-cpu_type-on-ARM-and-AArch64-Linux-pl.patch";
23992         hash = "sha256-oIJQX+Fz/CPmJNPuJyHVpJxJB2K5IQibnvaT4dv/qmY=";
23993       })
23994       (fetchpatch {
23995         url = "https://rt.cpan.org/Ticket/Attachment/1388036/737125/0002-cpu_clock-can-be-undefined-on-an-ARM.patch";
23996         hash = "sha256-nCypGyi6bZDEXqdb7wlGGzk9cFzmYkWGP1slBpXDfHw=";
23997       })
23998     ];
23999     buildInputs = lib.optional stdenv.hostPlatform.isDarwin pkgs.darwin.apple_sdk.frameworks.Carbon;
24000     doCheck = !stdenv.hostPlatform.isAarch64;
24001     meta = {
24002       description = "Perl extension for getting CPU information. Currently only number of CPU's supported";
24003       license = with lib.licenses; [ artistic1 gpl1Plus ];
24004     };
24005   };
24007   SysCpuAffinity = buildPerlModule {
24008     pname = "Sys-CpuAffinity";
24009     version = "1.12";
24010     src = fetchurl {
24011       url = "mirror://cpan/authors/id/M/MO/MOB/Sys-CpuAffinity-1.12.tar.gz";
24012       hash = "sha256-/jLAXz6wWXCMZH8ruFslBFhZHyupBR2Nhm9Uajh+6Eg=";
24013     };
24014     doCheck = false; # Would run checks for all supported systems
24015     meta = {
24016       description = "Set CPU affinity for processes";
24017       license = with lib.licenses; [ artistic1 gpl1Plus ];
24018       maintainers = with maintainers; [ tomasajt ];
24019     };
24020   };
24022   SysHostnameLong = buildPerlPackage {
24023     pname = "Sys-Hostname-Long";
24024     version = "1.5";
24025     src = fetchurl {
24026       url = "mirror://cpan/authors/id/S/SC/SCOTT/Sys-Hostname-Long-1.5.tar.gz";
24027       hash = "sha256-6Rht83Bqh379YUnyxxHWz4fdbPcvark1uoEhsiWyZcs=";
24028     };
24029     doCheck = false; # no `hostname' in stdenv
24030     meta = {
24031       description = "Try every conceivable way to get full hostname";
24032       license = with lib.licenses; [ artistic1 gpl1Plus ];
24033     };
24034   };
24036   SysSigAction = buildPerlPackage {
24037     pname = "Sys-SigAction";
24038     version = "0.23";
24039     src = fetchurl {
24040       url = "mirror://cpan/authors/id/L/LB/LBAXTER/Sys-SigAction-0.23.tar.gz";
24041       hash = "sha256-xO9sk0VTQDH8u+Ktw0f8cZTUevyUXnpE+sfpVjCV01M=";
24042     };
24043     doCheck = !stdenv.hostPlatform.isAarch64; # it hangs on Aarch64
24044     meta = {
24045       description = "Perl extension for Consistent Signal Handling";
24046       license = with lib.licenses; [ artistic1 gpl1Plus ];
24047     };
24048   };
24050   SysSyslog = buildPerlPackage {
24051     pname = "Sys-Syslog";
24052     version = "0.36";
24053     src = fetchurl {
24054       url = "mirror://cpan/authors/id/S/SA/SAPER/Sys-Syslog-0.36.tar.gz";
24055       hash = "sha256-7UKp5boErUhWzAy1040onDxdN2RUPsBO+vxK9+M3jfg=";
24056     };
24057     meta = {
24058       description = "Perl interface to the UNIX syslog(3) calls";
24059       license = with lib.licenses; [ artistic1 gpl1Plus ];
24060     };
24061   };
24063   SystemCommand = buildPerlPackage {
24064     pname = "System-Command";
24065     version = "1.122";
24066     src = fetchurl {
24067       url = "mirror://cpan/authors/id/B/BO/BOOK/System-Command-1.122.tar.gz";
24068       hash = "sha256-2bgjsmYZqmn3oGFmUKeBDolajfBi3p0iQNZdvlz+dHo=";
24069     };
24070     propagatedBuildInputs = [ IPCRun ];
24071     buildInputs = [ PodCoverageTrustPod TestCPANMeta TestPod TestPodCoverage ];
24072     meta = {
24073       description = "Object for running system commands";
24074       license = with lib.licenses; [ artistic1 gpl1Plus ];
24075     };
24076   };
24078   SysVirt = buildPerlModule rec {
24079     pname = "Sys-Virt";
24080     version = "10.9.0";
24081     src = fetchFromGitLab {
24082       owner = "libvirt";
24083       repo = "libvirt-perl";
24084       rev = "v${version}";
24085       hash = "sha256-g2HH9Ep5cAa4qXo9/MKJmxeive6oqHQEX9C8qY+u2g4=";
24086     };
24087     nativeBuildInputs = [ pkgs.pkg-config ];
24088     buildInputs = [ pkgs.libvirt CPANChanges TestPod TestPodCoverage XMLXPath ];
24089     perlPreHook = lib.optionalString stdenv.hostPlatform.isi686 "export LD=$CC"; # fix undefined reference to `__stack_chk_fail_local'
24090     meta = {
24091       description = "Libvirt Perl API";
24092       homepage = "https://libvirt.org";
24093       license = with lib.licenses; [ gpl2Plus artistic1 ];
24094       broken = stdenv.hostPlatform.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.SysVirt.x86_64-darwin
24095     };
24096   };
24098   TAPParserSourceHandlerpgTAP = buildPerlModule {
24099     pname = "TAP-Parser-SourceHandler-pgTAP";
24100     version = "3.36";
24101     src = fetchurl {
24102       url = "mirror://cpan/authors/id/D/DW/DWHEELER/TAP-Parser-SourceHandler-pgTAP-3.36.tar.gz";
24103       hash = "sha256-B75RUy4GPqxu2OWBUFRw7ryB1VBkQa8tzzK8Dr7pjGc=";
24104     };
24105     doCheck = !stdenv.hostPlatform.isDarwin;
24106     meta = {
24107       description = "Stream TAP from pgTAP test scripts";
24108       homepage = "https://search.cpan.org/dist/Tap-Parser-Sourcehandler-pgTAP";
24109       license = with lib.licenses; [ artistic1 gpl1Plus ];
24110     };
24111   };
24113   TaskCatalystTutorial = buildPerlPackage {
24114     pname = "Task-Catalyst-Tutorial";
24115     version = "0.06";
24116     src = fetchurl {
24117       url = "mirror://cpan/authors/id/M/MR/MRAMBERG/Task-Catalyst-Tutorial-0.06.tar.gz";
24118       hash = "sha256-dbGy2WFVZHhCWHFGzv0N4wlDuFGV6OPspR4PC4ZC1h4=";
24119     };
24120     propagatedBuildInputs = [ CatalystAuthenticationStoreDBIxClass CatalystControllerHTMLFormFu CatalystDevel CatalystManual CatalystPluginAuthorizationACL CatalystPluginAuthorizationRoles CatalystPluginSessionStateCookie CatalystPluginSessionStoreFastMmap CatalystPluginStackTrace CatalystViewTT ];
24121     doCheck = false; /* fails with 'open3: exec of .. perl .. failed: Argument list too long at .../TAP/Parser/Iterator/Process.pm line 165.' */
24122     meta = {
24123       description = "Everything you need to follow the Catalyst Tutorial";
24124       license = with lib.licenses; [ artistic1 gpl1Plus ];
24125     };
24126   };
24128   TaskFreecellSolverTesting = buildPerlModule {
24129     pname = "Task-FreecellSolver-Testing";
24130     version = "0.0.12";
24131     src = fetchurl {
24132       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Task-FreecellSolver-Testing-0.0.12.tar.gz";
24133       hash = "sha256-PRkQt64SVBfG4HeUeOtK8/yc+J4iGVhfiiBBFGP5k6c=";
24134     };
24135     buildInputs = [ CodeTidyAll TestDataSplit TestDifferences TestPerlTidy TestRunPluginTrimDisplayedFilenames TestRunValgrind TestTrailingSpace TestTrap ];
24136     propagatedBuildInputs = [ EnvPath FileWhich GamesSolitaireVerify InlineC ListMoreUtils MooX StringShellQuote TaskTestRunAllPlugins TemplateToolkit YAMLLibYAML ];
24137     meta = {
24138       description = "Install the CPAN dependencies of the Freecell Solver test suite";
24139       homepage = "https://metacpan.org/release/Task-FreecellSolver-Testing";
24140       license = with lib.licenses; [ mit ];
24141     };
24142   };
24144   TaskPlack = buildPerlModule {
24145     pname = "Task-Plack";
24146     version = "0.28";
24147     src = fetchurl {
24148       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Task-Plack-0.28.tar.gz";
24149       hash = "sha256-edUriAZUjz+Vro1qyRW6Q524SJ/mOxOdCsFym7KfXCo=";
24150     };
24151     propagatedBuildInputs = [ CGICompile CGIEmulatePSGI CGIPSGI Corona FCGI FCGIClient FCGIProcManager HTTPServerSimplePSGI IOHandleUtil NetFastCGI PSGI PlackAppProxy PlackMiddlewareAuthDigest PlackMiddlewareConsoleLogger PlackMiddlewareDebug PlackMiddlewareDeflater PlackMiddlewareHeader PlackMiddlewareReverseProxy PlackMiddlewareSession Starlet Starman Twiggy ];
24152     buildInputs = [ ModuleBuildTiny TestSharedFork ];
24153     meta = {
24154       description = "Plack bundle";
24155       license = with lib.licenses; [ artistic1 gpl1Plus ];
24156     };
24157   };
24159   TaskTestRunAllPlugins = buildPerlModule {
24160     pname = "Task-Test-Run-AllPlugins";
24161     version = "0.0106";
24162     src = fetchurl {
24163       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Task-Test-Run-AllPlugins-0.0106.tar.gz";
24164       hash = "sha256-G40L8IhYBmWbwpiBDw1VCq/2gEWtwjepSaymshp9zng=";
24165     };
24166     buildInputs = [ TestRun TestRunCmdLine TestRunPluginAlternateInterpreters TestRunPluginBreakOnFailure TestRunPluginColorFileVerdicts TestRunPluginColorSummary TestRunPluginTrimDisplayedFilenames ];
24167     meta = {
24168       description = "Specifications for installing all the Test::Run";
24169       homepage = "https://web-cpan.shlomifish.org/modules/Test-Run";
24170       license = with lib.licenses; [ mit ];
24171     };
24172   };
24174   TaskWeaken = buildPerlPackage {
24175     pname = "Task-Weaken";
24176     version = "1.06";
24177     src = fetchurl {
24178       url = "mirror://cpan/authors/id/E/ET/ETHER/Task-Weaken-1.06.tar.gz";
24179       hash = "sha256-I4P+252672RkaOqCSvv3yAEHZyDPug3yp6B0cm3NZr4=";
24180     };
24181     meta = {
24182       description = "Ensure that a platform has weaken support";
24183       homepage = "https://github.com/karenetheridge/Task-Weaken";
24184       license = with lib.licenses; [ artistic1 gpl1Plus ];
24185     };
24186   };
24188   Tcl = buildPerlPackage {
24189     pname = "Tcl";
24190     version = "1.27";
24191     src = fetchurl {
24192       url = "mirror://cpan/authors/id/V/VK/VKON/Tcl-1.27.tar.gz";
24193       hash = "sha256-+DhYd6Sp7Z89OQPS0PfNcPrDzmgyxg9gCmghzuP7WHI=";
24194     };
24195     propagatedBuildInputs = [
24196       pkgs.tclPackages.bwidget
24197       pkgs.tcl
24198       pkgs.tclPackages.tix
24199       pkgs.tk
24200     ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
24201       darwin.apple_sdk.frameworks.CoreServices ];
24202     makeMakerFlags = lib.optionals stdenv.hostPlatform.isLinux
24203       [ "--tclsh=${pkgs.tcl}/bin/tclsh" "--nousestubs" ];
24204     meta = {
24205       description = "Tcl extension module for Perl";
24206       license = with lib.licenses; [ artistic1 gpl1Plus ];
24207     };
24208   };
24210   TclpTk = buildPerlPackage {
24211     pname = "Tcl-pTk";
24212     version = "1.11";
24213     src = fetchurl {
24214       url = "mirror://cpan/authors/id/C/CA/CAC/Tcl-pTk-1.11.tar.gz";
24215       hash = "sha256-05PxKxzN7I8ZbN27WJHZSEx5qpQQWmN22f+cRg2CDN0=";
24216     };
24217     propagatedBuildInputs = [
24218       ClassISA
24219       SubName
24220       Tcl
24221       TestDeep
24222     ];
24223     buildPhase = ''
24224       perl Makefile.PL --tclsh "${pkgs.tk.tcl}/bin/tclsh" INSTALL_BASE=$out --no-test-for-tk
24225     '';
24226     postInstall = ''
24227       mkdir -p $out/lib/perl5/site_perl
24228       mv $out/lib/perl5/Tcl $out/lib/perl5/site_perl/
24229       mv $out/lib/perl5/auto $out/lib/perl5/site_perl/
24230     '' + lib.optionalString stdenv.hostPlatform.isDarwin ''
24231       mv $out/lib/perl5/darwin-thread-multi-2level $out/lib/perl5/site_perl/
24232     '';
24233     meta = {
24234       description = "Interface to Tcl/Tk with Perl/Tk compatible syntax";
24235       license = with lib.licenses; [ artistic1 gpl1Plus ];
24236     };
24237   };
24239   TemplatePluginAutoformat = buildPerlPackage {
24240     pname = "Template-Plugin-Autoformat";
24241     version = "2.77";
24242     src = fetchurl {
24243       url = "mirror://cpan/authors/id/K/KA/KARMAN/Template-Plugin-Autoformat-2.77.tar.gz";
24244       hash = "sha256-vd+0kZ8Kuyor56lmUzPg1OCYAy8OOD268ExNiWx0hu0=";
24245     };
24246     propagatedBuildInputs = [ TemplateToolkit TextAutoformat ];
24247     meta = {
24248       description = "TT plugin for Text::Autoformat";
24249       homepage = "https://github.com/karpet/template-plugin-autoformat";
24250       license = with lib.licenses; [ artistic1 gpl1Plus ];
24251     };
24252   };
24254   TemplatePluginClass = buildPerlPackage {
24255     pname = "Template-Plugin-Class";
24256     version = "0.14";
24257     src = fetchurl {
24258       url = "mirror://cpan/authors/id/R/RC/RCLAMP/Template-Plugin-Class-0.14.tar.gz";
24259       hash = "sha256-BgT+iue/OtlnnmTZsa1MnpAUwXeqgOg11SqG942XB8M=";
24260     };
24261     propagatedBuildInputs = [ TemplateToolkit ];
24262     meta = {
24263       description = "Allow calling of class methods on arbitrary classes";
24264       license = with lib.licenses; [ artistic1 gpl1Plus ];
24265     };
24266   };
24268   TemplatePluginIOAll = buildPerlPackage {
24269     pname = "Template-Plugin-IO-All";
24270     version = "0.01";
24271     src = fetchurl {
24272       url = "mirror://cpan/authors/id/X/XE/XERN/Template-Plugin-IO-All-0.01.tar.gz";
24273       hash = "sha256-H3RFQiohky4Ju++TV2bgr2t8zrCI6djgMM16hLzcXuQ=";
24274     };
24275     propagatedBuildInputs = [ IOAll TemplateToolkit ];
24276     meta = {
24277       description = "Perl Template Toolkit Plugin for IO::All";
24278       license = with lib.licenses; [ artistic1 gpl1Plus ];
24279       maintainers = [ ];
24280     };
24281   };
24283   TemplatePluginJavaScript = buildPerlPackage {
24284     pname = "Template-Plugin-JavaScript";
24285     version = "0.02";
24286     src = fetchurl {
24287       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Template-Plugin-JavaScript-0.02.tar.gz";
24288       hash = "sha256-6iDYBq1lIoLQNTSY4oYN+BJcgLZJFjDCXSY72IDGGNc=";
24289     };
24290     propagatedBuildInputs = [ TemplateToolkit ];
24291     meta = {
24292       description = "Encodes text to be safe in JavaScript";
24293       license = with lib.licenses; [ artistic1 gpl1Plus ];
24294     };
24295   };
24297   TemplatePluginJSONEscape = buildPerlPackage {
24298     pname = "Template-Plugin-JSON-Escape";
24299     version = "0.02";
24300     src = fetchurl {
24301       url = "mirror://cpan/authors/id/N/NA/NANTO/Template-Plugin-JSON-Escape-0.02.tar.gz";
24302       hash = "sha256-BRqLHTvGAdWPxR4kYGfTZFDP6XAnigRW6KthlA8TzYY=";
24303     };
24304     propagatedBuildInputs = [ JSON TemplateToolkit ];
24305     meta = {
24306       description = "Adds a .json vmethod and a json filter";
24307       license = with lib.licenses; [ bsd0 ];
24308     };
24309   };
24311   TemplateTimer = buildPerlPackage {
24312     pname = "Template-Timer";
24313     version = "1.00";
24314     src = fetchurl {
24315       url = "mirror://cpan/authors/id/P/PE/PETDANCE/Template-Timer-1.00.tar.gz";
24316       hash = "sha256-tzFMs2UgnZNVe4BU4DEa6MPLXRydIo0es+P8GTpbd7Q=";
24317     };
24318     propagatedBuildInputs = [ TemplateToolkit ];
24319     meta = {
24320       description = "Rudimentary profiling for Template Toolkit";
24321       license = with lib.licenses; [ artistic2 gpl3Only ];
24322     };
24323   };
24325   TemplateTiny = buildPerlPackage {
24326     pname = "Template-Tiny";
24327     version = "1.14";
24328     src = fetchurl {
24329       url = "mirror://cpan/authors/id/E/ET/ETHER/Template-Tiny-1.14.tar.gz";
24330       hash = "sha256-gZz6tgREg8/ijOsof938MXaiAlsbbw6YCy3MJtImm0w=";
24331     };
24332     meta = {
24333       description = "Template Toolkit reimplemented in as little code as possible";
24334       homepage = "https://github.com/karenetheridge/Template-Tiny";
24335       license = with lib.licenses; [ artistic1 gpl1Plus ];
24336     };
24337   };
24339   TemplateToolkit = buildPerlPackage {
24340     pname = "Template-Toolkit";
24341     version = "3.101";
24342     src = fetchurl {
24343       url = "mirror://cpan/authors/id/A/AB/ABW/Template-Toolkit-3.101.tar.gz";
24344       hash = "sha256-0qMt1sIeSzfGqT34CHyp6IDPrmE6Pl766jB7C9yu21g=";
24345     };
24346     doCheck = !stdenv.hostPlatform.isDarwin;
24347     propagatedBuildInputs = [ AppConfig ];
24348     buildInputs = [ CGI TestLeakTrace ];
24349     meta = {
24350       description = "Comprehensive template processing system";
24351       homepage = "http://www.template-toolkit.org";
24352       license = with lib.licenses; [ artistic1 gpl1Plus ];
24353     };
24354   };
24356   TemplateGD = buildPerlPackage {
24357     pname = "Template-GD";
24358     version = "2.66";
24359     src = fetchurl {
24360       url = "mirror://cpan/authors/id/A/AB/ABW/Template-GD-2.66.tar.gz";
24361       hash = "sha256-mFI8gZLy6BhAQuWi4XK9dnrCid0uSA819oDc4yFgkFs=";
24362     };
24363     propagatedBuildInputs = [ GD TemplateToolkit ];
24364     meta = {
24365       description = "GD plugin(s) for the Template Toolkit";
24366       license = with lib.licenses; [ artistic1 gpl1Plus ];
24367     };
24368   };
24370   TermEncoding = buildPerlPackage {
24371     pname = "Term-Encoding";
24372     version = "0.03";
24373     src = fetchurl {
24374       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Term-Encoding-0.03.tar.gz";
24375       hash = "sha256-lbqWh9c10lo8vmRQjXiU8AnH+ioXJsPnhuniHaIlHQs=";
24376     };
24377     meta = {
24378       description = "Detect encoding of the current terminal";
24379       homepage = "https://github.com/miyagawa/Term-Encoding";
24380       license = with lib.licenses; [ artistic1 gpl1Plus ];
24381     };
24382   };
24384   TermProgressBar = buildPerlPackage {
24385     pname = "Term-ProgressBar";
24386     version = "2.23";
24387     src = fetchurl {
24388       url = "mirror://cpan/authors/id/M/MA/MANWAR/Term-ProgressBar-2.23.tar.gz";
24389       hash = "sha256-3vwD+59KwcnfE1nTEr/zwIZd3vvzq6ZM1CppqGIV1J0=";
24390     };
24391     buildInputs = [ CaptureTiny TestException TestWarnings ];
24392     propagatedBuildInputs = [ ClassMethodMaker TermReadKey ];
24393     meta = {
24394       description = "Provide a progress meter on a standard terminal";
24395       license = with lib.licenses; [ artistic1 gpl1Plus ];
24396     };
24397   };
24399   TermProgressBarQuiet = buildPerlPackage {
24400     pname = "Term-ProgressBar-Quiet";
24401     version = "0.31";
24402     src = fetchurl {
24403       url = "mirror://cpan/authors/id/L/LB/LBROCARD/Term-ProgressBar-Quiet-0.31.tar.gz";
24404       hash = "sha256-JWdSkvWIvCnTLnEM82Z9qaKhdR4TmAF3Cp/bGM0hhKY=";
24405     };
24406     propagatedBuildInputs = [ IOInteractive TermProgressBar ];
24407     buildInputs = [ TestMockObject ];
24408     meta = {
24409       description = "Provide a progress meter if run interactively";
24410       license = with lib.licenses; [ artistic1 gpl1Plus ];
24411     };
24412   };
24414   TermProgressBarSimple = buildPerlPackage {
24415     pname = "Term-ProgressBar-Simple";
24416     version = "0.03";
24417     src = fetchurl {
24418       url = "mirror://cpan/authors/id/E/EV/EVDB/Term-ProgressBar-Simple-0.03.tar.gz";
24419       hash = "sha256-og2zxn1b39DB+rOSxtHCaICn7oQ69gKvT5tTpwQ1eaY=";
24420     };
24421     propagatedBuildInputs = [ TermProgressBarQuiet ];
24422     buildInputs = [ TestMockObject ];
24423     meta = {
24424       description = "Simpler progress bars";
24425       license = with lib.licenses; [ artistic1 gpl1Plus ];
24426     };
24427   };
24429   TermReadKey = let
24430     cross = stdenv.hostPlatform != stdenv.buildPlatform;
24431   in buildPerlPackage {
24432     pname = "TermReadKey";
24433     version = "2.38";
24434     src = fetchurl {
24435       url = "mirror://cpan/authors/id/J/JS/JSTOWE/TermReadKey-2.38.tar.gz";
24436       hash = "sha256-WmRYeNxXCsM2YVgfuwkP8k684X1D6lP9IuEFqFakcpA=";
24437     };
24439     # use native libraries from the host when running build commands
24440     postConfigure = lib.optionalString cross (let
24441       host_perl = perl.perlOnBuild;
24442       host_self = perl.perlOnBuild.pkgs.TermReadKey;
24443       perl_lib = "${host_perl}/lib/perl5/${host_perl.version}";
24444       self_lib = "${host_self}/lib/perl5/site_perl/${host_perl.version}";
24445     in ''
24446       sed -ie 's|"-I$(INST_ARCHLIB)"|"-I${perl_lib}" "-I${self_lib}"|g' Makefile
24447     '');
24449     # TermReadKey uses itself in the build process
24450     nativeBuildInputs = lib.optionals cross [
24451       perl.perlOnBuild.pkgs.TermReadKey
24452     ];
24453     meta = {
24454       description = "Perl module for simple terminal control";
24455       license = with lib.licenses; [ artistic1 gpl1Plus ];
24456     };
24457   };
24459   TermReadLineGnu = buildPerlPackage {
24460     pname = "Term-ReadLine-Gnu";
24461     version = "1.46";
24462     src = fetchurl {
24463       url = "mirror://cpan/authors/id/H/HA/HAYASHI/Term-ReadLine-Gnu-1.46.tar.gz";
24464       hash = "sha256-sTgyEy5QNmw0/qwSzoKDfAqds0ylMK5dJ9uXz5yWTHs=";
24465     };
24466     buildInputs = [ pkgs.readline pkgs.ncurses ];
24467     NIX_CFLAGS_LINK = "-lreadline -lncursesw";
24469     # For some crazy reason Makefile.PL doesn't generate a Makefile if
24470     # AUTOMATED_TESTING is set.
24471     env.AUTOMATED_TESTING = false;
24473     # Makefile.PL looks for ncurses in Glibc's prefix.
24474     preConfigure =
24475       ''
24476         substituteInPlace Makefile.PL --replace '$Config{libpth}' \
24477           "'${pkgs.ncurses.out}/lib'"
24478       '';
24480     # Tests don't work because they require /dev/tty.
24481     doCheck = false;
24483     meta = {
24484       description = "Perl extension for the GNU Readline/History Library";
24485       homepage = "https://github.com/hirooih/perl-trg";
24486       license = with lib.licenses; [ artistic1 gpl1Plus ];
24487       mainProgram = "perlsh";
24488     };
24489   };
24491   TermReadLineTTYtter = buildPerlPackage {
24492     pname = "Term-ReadLine-TTYtter";
24493     version = "1.4";
24494     src = fetchurl {
24495       url = "mirror://cpan/authors/id/C/CK/CKAISER/Term-ReadLine-TTYtter-1.4.tar.gz";
24496       hash = "sha256-rDcxM87hshIqgnP+e0JEYT0O7O/oi2aL2Y/nHR7ErJM=";
24497     };
24499     outputs = [ "out" ];
24501     meta = {
24502       description = "Term::ReadLine driver based on Term::ReadLine::Perl, with special features for microblogging and the TTYtter client (q.v)";
24503       homepage = "https://www.floodgap.com/software/ttytter";
24504       license = with lib.licenses; [ artistic1 gpl1Plus ];
24505     };
24506   };
24508   TermReadPassword = buildPerlPackage rec {
24509     pname = "Term-ReadPassword";
24510     version = "0.11";
24511     src = fetchurl {
24512       url = "mirror://cpan/authors/id/P/PH/PHOENIX/${pname}-${version}.tar.gz";
24513       hash = "sha256-4ahmNFs1+f/vfQA34T1tTLKAMQCJ+YwgcTiAvHD7QyM=";
24514     };
24516     outputs = [ "out" ];
24518     meta = {
24519       description = "This module lets you ask the user for a password in the traditional way, from the keyboard, without echoing";
24520       license = with lib.licenses; [ artistic1 gpl1Plus ];
24521     };
24522   };
24524   TermShell = buildPerlModule {
24525     pname = "Term-Shell";
24526     version = "0.13";
24527     src = fetchurl {
24528       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Term-Shell-0.13.tar.gz";
24529       hash = "sha256-U6C9smVokcUIpHDZPLfhz+qzjuqeWClWCn2LX2APa/I=";
24530     };
24531     propagatedBuildInputs = [ TermReadKey TextAutoformat ];
24532     meta = {
24533       homepage = "https://metacpan.org/release/Term-Shell";
24534       description = "Simple command-line shell framework";
24535       license = with lib.licenses; [ artistic1 gpl1Plus ];
24536     };
24537   };
24539   TermShellUI = buildPerlPackage {
24540     pname = "Term-ShellUI";
24541     version = "0.92";
24542     src = fetchurl {
24543       url = "mirror://cpan/authors/id/B/BR/BRONSON/Term-ShellUI-0.92.tar.gz";
24544       hash = "sha256-MnnAHHYiczXu/wkDKkD0sCsoUVGzV2wEys0VvgWUK9s=";
24545     };
24546     meta = {
24547       description = "Fully-featured shell-like command line environment";
24548       license = with lib.licenses; [ mit ];
24549     };
24550   };
24552   TermSizeAny = buildPerlPackage {
24553     pname = "Term-Size-Any";
24554     version = "0.002";
24555     src = fetchurl {
24556       url = "mirror://cpan/authors/id/F/FE/FERREIRA/Term-Size-Any-0.002.tar.gz";
24557       hash = "sha256-ZPpf2xrjqCMTSqqVrsdTVLwXvdnKEroKeuNKflGz3tI=";
24558     };
24559     propagatedBuildInputs = [ DevelHide TermSizePerl ];
24560     meta = {
24561       description = "Retrieve terminal size";
24562       license = with lib.licenses; [ artistic1 gpl1Plus ];
24563     };
24564   };
24566   TermSizePerl = buildPerlPackage {
24567     pname = "Term-Size-Perl";
24568     version = "0.031";
24569     src = fetchurl {
24570       url = "mirror://cpan/authors/id/F/FE/FERREIRA/Term-Size-Perl-0.031.tar.gz";
24571       hash = "sha256-rppnRssbMF3cj42MpGh4VSucESNiiXHhOidRg4IvIJ4=";
24572     };
24573     meta = {
24574       description = "Perl extension for retrieving terminal size (Perl version)";
24575       license = with lib.licenses; [ artistic1 gpl1Plus ];
24576     };
24577   };
24579   TermTable = buildPerlPackage {
24580     pname = "Term-Table";
24581     version = "0.017";
24582     src = fetchurl {
24583       url = "mirror://cpan/authors/id/E/EX/EXODIST/Term-Table-0.017.tar.gz";
24584       hash = "sha256-8R20JorYBE9uGhrJU0ygzTrXecQAb/83+uUA25j6yRo=";
24585     };
24586     propagatedBuildInputs = [ Importer ];
24587     meta = {
24588       description = "Format a header and rows into a table";
24589       license = with lib.licenses; [ artistic1 gpl1Plus ];
24590     };
24591   };
24593   TermSk = buildPerlPackage {
24594     pname = "Term-Sk";
24595     version = "0.18";
24596     src = fetchurl {
24597       url = "mirror://cpan/authors/id/K/KE/KEICHNER/Term-Sk-0.18.tar.gz";
24598       hash = "sha256-8uSReWBhIFsIaIgCsod5LX2AOwiXIzn7EHC6BWEq+IU=";
24599     };
24600     meta = {
24601       description = "Perl extension for displaying a progress indicator on a terminal";
24602       license = with lib.licenses; [ artistic1 gpl1Plus ];
24603     };
24604   };
24606   TermUI = buildPerlPackage {
24607     pname = "Term-UI";
24608     version = "0.50";
24609     src = fetchurl {
24610       url = "mirror://cpan/authors/id/B/BI/BINGOS/Term-UI-0.50.tar.gz";
24611       hash = "sha256-YL/dbUwVi4jTcBM/xlsgSFo2pFsS2QYAC4HHjKUkFj0=";
24612     };
24613     propagatedBuildInputs = [ LogMessageSimple ];
24614     meta = {
24615       description = "User interfaces via Term::ReadLine made easy";
24616       license = with lib.licenses; [ artistic1 gpl1Plus ];
24617     };
24618   };
24620   TermVT102 = buildPerlPackage {
24621     pname = "Term-VT102";
24622     version = "0.91";
24623     src = fetchurl {
24624       url = "mirror://cpan/authors/id/A/AJ/AJWOOD/Term-VT102-0.91.tar.gz";
24625       hash = "sha256-+VTgMQlB1FwPw+tKQPXToA1oEZ4nfTA6HmrxHe1vvZQ=";
24626     };
24627     meta = {
24628       description = "Class to emulate a DEC VT102 terminal";
24629       license = with lib.licenses; [ artistic2 ];
24630     };
24631   };
24633   TermVT102Boundless = buildPerlPackage {
24634     pname = "Term-VT102-Boundless";
24635     version = "0.05";
24636     src = fetchurl {
24637       url = "mirror://cpan/authors/id/F/FB/FBARRIOS/Term-VT102-Boundless-0.05.tar.gz";
24638       hash = "sha256-4d7YWuPXa1nAO4aX9KbLAa4xvWKpNU9bt9GPnpJ7SF8=";
24639     };
24640     propagatedBuildInputs = [ TermVT102 ];
24641     meta = {
24642       description = "Term::VT102 that grows automatically to accommodate whatever you print to it";
24643       license = with lib.licenses; [ artistic1 gpl1Plus ];
24644     };
24645   };
24647   TermAnimation = buildPerlPackage {
24648     pname = "Term-Animation";
24649     version = "2.6";
24650     src = fetchurl {
24651       url = "mirror://cpan/authors/id/K/KB/KBAUCOM/Term-Animation-2.6.tar.gz";
24652       hash = "sha256-fVw8LU+bZXqLHc5/Xiy74CraLpfHLzoDBL88mdCEsEU=";
24653     };
24654     propagatedBuildInputs = [ Curses ];
24655     meta = {
24656       description = "ASCII sprite animation framework";
24657       license = with lib.licenses; [ artistic1 gpl1Plus ];
24658     };
24659   };
24661   Test2Harness = buildPerlPackage {
24662     pname = "Test2-Harness";
24663     version = "1.000155";
24664     src = fetchurl {
24665       url = "mirror://cpan/authors/id/E/EX/EXODIST/Test2-Harness-1.000155.tar.gz";
24666       hash = "sha256-Hvi/euDKALaHu24RXzq4yVBI5ICsmuUylzabxpSkc4s=";
24667     };
24669     checkPhase = ''
24670       patchShebangs ./t ./scripts/yath
24671       export AUTOMATED_TESTING=1
24672       ./scripts/yath test -j $NIX_BUILD_CORES
24673     '';
24675     propagatedBuildInputs = [ DataUUID Importer LongJump ScopeGuard TermTable Test2PluginMemUsage Test2PluginUUID Test2Suite YAMLTiny gotofile ];
24676     meta = {
24677       description = "New and improved test harness with better Test2 integration";
24678       license = with lib.licenses; [ artistic1 gpl1Plus ];
24679       mainProgram = "yath";
24680       broken = stdenv.hostPlatform.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.Test2Harness.x86_64-darwin
24681     };
24682   };
24684   Test2PluginMemUsage = buildPerlPackage {
24685     pname = "Test2-Plugin-MemUsage";
24686     version = "0.002003";
24687     src = fetchurl {
24688       url = "mirror://cpan/authors/id/E/EX/EXODIST/Test2-Plugin-MemUsage-0.002003.tar.gz";
24689       hash = "sha256-XgZi1agjrggWQfXOgoQxEe7BgxzTH4g6bG3lSv34fCU=";
24690     };
24691     buildInputs = [ Test2Suite ];
24692     meta = {
24693       description = "Collect and display memory usage information";
24694       license = with lib.licenses; [ artistic1 gpl1Plus ];
24695     };
24696   };
24698   Test2PluginUUID = buildPerlPackage {
24699     pname = "Test2-Plugin-UUID";
24700     version = "0.002001";
24701     src = fetchurl {
24702       url = "mirror://cpan/authors/id/E/EX/EXODIST/Test2-Plugin-UUID-0.002001.tar.gz";
24703       hash = "sha256-TGyNSE1xU9h3ncFVqZKyAwlbXFqhz7Hui87c0GAYeMk=";
24704     };
24705     buildInputs = [ Test2Suite ];
24706     propagatedBuildInputs = [ DataUUID ];
24707     meta = {
24708       description = "Use REAL UUIDs in Test2";
24709       license = with lib.licenses; [ artistic1 gpl1Plus ];
24710     };
24711   };
24713   Test2PluginNoWarnings = buildPerlPackage {
24714     pname = "Test2-Plugin-NoWarnings";
24715     version = "0.09";
24716     src = fetchurl {
24717       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Test2-Plugin-NoWarnings-0.09.tar.gz";
24718       hash = "sha256-vj3YAAQu7zYr8X0gVs+ek03ukczOmOTxeLj7V3Ly+3Q=";
24719     };
24720     buildInputs = [ IPCRun3 Test2Suite ];
24721     propagatedBuildInputs = [ TestSimple13 ];
24722     meta = {
24723       description = "Fail if tests warn";
24724       homepage = "https://metacpan.org/release/Test2-Plugin-NoWarnings";
24725       license = with lib.licenses; [ artistic2 ];
24726     };
24727   };
24729   Test2Suite = buildPerlPackage {
24730     pname = "Test2-Suite";
24731     version = "0.000156";
24732     src = fetchurl {
24733       url = "mirror://cpan/authors/id/E/EX/EXODIST/Test2-Suite-0.000156.tar.gz";
24734       hash = "sha256-vzgq5y86k79+02iFEY+uL/qw/xF3Q/WQON8lTv7yyU4=";
24735     };
24736     propagatedBuildInputs = [ ModulePluggable ScopeGuard SubInfo TermTable TestSimple13 ];
24737     meta = {
24738       description = "Distribution with a rich set of tools built upon the Test2 framework";
24739       license = with lib.licenses; [ artistic1 gpl1Plus ];
24740     };
24741   };
24743   Test2ToolsFFI = buildPerlPackage {
24744     pname = "Test2-Tools-FFI";
24745     version = "0.06";
24746     src = fetchurl {
24747       url = "mirror://cpan/authors/id/P/PL/PLICEASE/Test2-Tools-FFI-0.06.tar.gz";
24748       hash = "sha256-MA28QKEubG+7y7lv05uQK+bZZXJtrx5qtzuKCv0lLy8=";
24749     };
24750     buildInputs = [ FileShareDirInstall Test2Suite ];
24751     propagatedBuildInputs = [ CaptureTiny FFICheckLib FFIPlatypus FileShareDirDist ];
24752     meta = {
24753       homepage = "https://metacpan.org/pod/Test2::Tools::FFI";
24754       description = "Tools for testing FFI";
24755       license = with lib.licenses; [ artistic1 gpl1Plus ];
24756       maintainers = with maintainers; [ tomasajt ];
24757     };
24758   };
24760   Test2ToolsMemoryCycle = buildPerlPackage {
24761     pname = "Test2-Tools-MemoryCycle";
24762     version = "0.01";
24763     src = fetchurl {
24764       url = "mirror://cpan/authors/id/P/PL/PLICEASE/Test2-Tools-MemoryCycle-0.01.tar.gz";
24765       hash = "sha256-U1s9ylQqMyUVEq3ktafb6+PESNg/iA0ZjkPcEnl5aYs=";
24766     };
24767     buildInputs = [ Test2Suite ];
24768     propagatedBuildInputs = [ DevelCycle PadWalker ];
24769     meta = {
24770       homepage = "https://metacpan.org/pod/Test2::Tools::MemoryCycle";
24771       description = "Check for memory leaks and circular memory references";
24772       license = with lib.licenses; [ artistic1 gpl1Plus ];
24773       maintainers = with maintainers; [ tomasajt ];
24774     };
24775   };
24777   TestAbortable = buildPerlPackage {
24778     pname = "Test-Abortable";
24779     version = "0.003";
24780     src = fetchurl {
24781       url = "mirror://cpan/authors/id/R/RJ/RJBS/Test-Abortable-0.003.tar.gz";
24782       hash = "sha256-TVPDXvPLf5wXUrqfEdOpeiETt9hMJg6rj5p8G4Aba40=";
24783     };
24784     propagatedBuildInputs = [ SubExporter ];
24785     buildInputs = [ TestNeeds ];
24786     meta = {
24787       description = "Subtests that you can die your way out of ... but survive";
24788       homepage = "https://github.com/rjbs/Test-Abortable";
24789       license = with lib.licenses; [ artistic1 gpl1Plus ];
24790     };
24791   };
24793   TestAssert = buildPerlModule {
24794     pname = "Test-Assert";
24795     version = "0.0504";
24796     src = fetchurl {
24797       url = "mirror://cpan/authors/id/D/DE/DEXTER/Test-Assert-0.0504.tar.gz";
24798       hash = "sha256-z6NtqWxQQzH/ICZ0e6R9R37+g1z2zyNO4QywX6n7i6Q=";
24799     };
24800     buildInputs = [ ClassInspector TestUnitLite ];
24801     propagatedBuildInputs = [ ExceptionBase constantboolean ];
24802     meta = {
24803       description = "Assertion methods for those who like JUnit";
24804       license = with lib.licenses; [ artistic1 gpl1Plus ];
24805     };
24806   };
24808   TestAssertions = buildPerlPackage {
24809     pname = "Test-Assertions";
24810     version = "1.054";
24811     src = fetchurl {
24812       url = "mirror://cpan/authors/id/B/BB/BBC/Test-Assertions-1.054.tar.gz";
24813       hash = "sha256-/NzkHVcnOIFYGt9oCiCmrfUaTDt+McP2mGb7kQk3AoA=";
24814     };
24815     propagatedBuildInputs = [ LogTrace ];
24816     meta = {
24817       description = "Simple set of building blocks for both unit and runtime testing";
24818       license = with lib.licenses; [ gpl2Only ];
24819     };
24820   };
24822   TestAggregate = buildPerlModule {
24823     pname = "Test-Aggregate";
24824     version = "0.375";
24825     src = fetchurl {
24826       url = "mirror://cpan/authors/id/R/RW/RWSTAUNER/Test-Aggregate-0.375.tar.gz";
24827       hash = "sha256-xswKv9DU/OhTcazKk+wkU4GEHTK0yqLWR15LyBMEJ9E=";
24828     };
24829     buildInputs = [ TestMost TestNoWarnings TestTrap ];
24830     meta = {
24831       description = "Aggregate *.t tests to make them run faster";
24832       license = with lib.licenses; [ artistic1 gpl1Plus ];
24833       broken = true; # This module only works with Test::More version < 1.3, but you have 1.302133
24834     };
24835   };
24838   TestBase = buildPerlPackage {
24839     pname = "Test-Base";
24840     version = "0.89";
24841     src = fetchurl {
24842       url = "mirror://cpan/authors/id/I/IN/INGY/Test-Base-0.89.tar.gz";
24843       hash = "sha256-J5Shqq6x06KH3SxyhiWGY3llYvfbnMxrQkvE8d6K0BQ=";
24844     };
24845     propagatedBuildInputs = [ Spiffy ];
24846     buildInputs = [ AlgorithmDiff TextDiff ];
24847     meta = {
24848       description = "Data Driven Testing Framework";
24849       license = with lib.licenses; [ artistic1 gpl1Plus ];
24850     };
24851   };
24853   TestBits = buildPerlPackage {
24854     pname = "Test-Bits";
24855     version = "0.02";
24856     src = fetchurl {
24857       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Test-Bits-0.02.tar.gz";
24858       hash = "sha256-qYJvVkg6J+LGMVZZDzKKNjPjA3XBDfyJ9mkOOSneC8M=";
24859     };
24860     propagatedBuildInputs = [ ListAllUtils ];
24861     buildInputs = [ TestFatal ];
24862     meta = {
24863       description = "Provides a bits_is() subroutine for testing binary data";
24864       homepage = "https://metacpan.org/release/Test-Bits";
24865       license = with lib.licenses; [ artistic2 ];
24866     };
24867   };
24869   TestCheckDeps = buildPerlPackage {
24870     pname = "Test-CheckDeps";
24871     version = "0.010";
24872     src = fetchurl {
24873       url = "mirror://cpan/authors/id/L/LE/LEONT/Test-CheckDeps-0.010.tar.gz";
24874       hash = "sha256-ZvzMpsbzMOfsyJi9alGEbiFFs+AteMSZe6a33iO1Ue4=";
24875     };
24876     propagatedBuildInputs = [ CPANMetaCheck ];
24877     meta = {
24878       description = "Check for presence of dependencies";
24879       license = with lib.licenses; [ artistic1 gpl1Plus ];
24880     };
24881   };
24883   TestClass = buildPerlPackage {
24884     pname = "Test-Class";
24885     version = "0.52";
24886     src = fetchurl {
24887       url = "mirror://cpan/authors/id/S/SZ/SZABGAB/Test-Class-0.52.tar.gz";
24888       hash = "sha256-QMGx04jwqGdHacJ1KfDMNjTKD9nY9ysZbAUxYRk0vII=";
24889     };
24890     buildInputs = [ TestException ];
24891     propagatedBuildInputs = [ MROCompat ModuleRuntime TryTiny ];
24892     meta = {
24893       description = "Easily create test classes in an xUnit/JUnit style";
24894       license = with lib.licenses; [ artistic1 gpl1Plus ];
24895     };
24896   };
24898   TestClassMost = buildPerlModule {
24899     pname = "Test-Class-Most";
24900     version = "0.08";
24901     src = fetchurl {
24902       url = "mirror://cpan/authors/id/O/OV/OVID/Test-Class-Most-0.08.tar.gz";
24903       hash = "sha256-Y0ze2Gu6Xd4Hztcv+4pGcF/5OqhEuY6WveBVQCNMff8=";
24904     };
24905     buildInputs = [ TestClass TestDeep TestDifferences TestException TestMost TestWarn ];
24906     meta = {
24907       description = "Test Classes the easy way";
24908       license = with lib.licenses; [ artistic1 gpl1Plus ];
24909     };
24910   };
24912   TestCleanNamespaces = buildPerlPackage {
24913     pname = "Test-CleanNamespaces";
24914     version = "0.24";
24915     src = fetchurl {
24916       url = "mirror://cpan/authors/id/E/ET/ETHER/Test-CleanNamespaces-0.24.tar.gz";
24917       hash = "sha256-M41VaejommVJNfhD7AvISqpIb+jdGJj7nKs+zOzVMno=";
24918     };
24919     buildInputs = [ Filepushd Moo Mouse RoleTiny SubExporter TestDeep TestNeeds TestWarnings namespaceclean ];
24920     propagatedBuildInputs = [ PackageStash SubIdentify ];
24921     meta = {
24922       description = "Check for uncleaned imports";
24923       homepage = "https://github.com/karenetheridge/Test-CleanNamespaces";
24924       license = with lib.licenses; [ artistic1 gpl1Plus ];
24925     };
24926   };
24928   TestCmd = buildPerlPackage {
24929     pname = "Test-Cmd";
24930     version = "1.09";
24931     src = fetchurl {
24932       url = "mirror://cpan/authors/id/N/NE/NEILB/Test-Cmd-1.09.tar.gz";
24933       hash = "sha256-zzMg7N3nkeC4lFogwfbyZdkPHj2rGPHiPLZ3x51yloQ=";
24934     };
24935       doCheck = false; /* test fails */
24936     meta = {
24937       description = "Perl module for portable testing of commands and scripts";
24938       homepage = "https://github.com/neilb/Test-Cmd";
24939       license = with lib.licenses; [ artistic1 gpl1Plus ];
24940     };
24941   };
24943   TestCommand = buildPerlModule {
24944     pname = "Test-Command";
24945     version = "0.11";
24946     src = fetchurl {
24947       url = "mirror://cpan/authors/id/D/DA/DANBOO/Test-Command-0.11.tar.gz";
24948       hash = "sha256-KKP8b+pzoZ9WPxG9DygYZ1bUx0IHvm3qyq0m0ggblTM=";
24949     };
24950     meta = {
24951       description = "Test routines for external commands";
24952       homepage = "https://metacpan.org/release/Test-Command";
24953       license = with lib.licenses; [ artistic1 gpl1Plus ];
24954     };
24955   };
24957   TestCompile = buildPerlModule {
24958     pname = "Test-Compile";
24959     version = "3.3.1";
24960     src = fetchurl {
24961       url = "mirror://cpan/authors/id/E/EG/EGILES/Test-Compile-v3.3.1.tar.gz";
24962       hash = "sha256-gIRQ89Ref0GapNZo4pgodonp6jY4hpO/8YDXhwzj5iE=";
24963     };
24964     propagatedBuildInputs = [ UNIVERSALrequire ];
24965     meta = {
24966       description = "Assert that your Perl files compile OK";
24967       license = with lib.licenses; [ artistic1 gpl1Plus ];
24968     };
24969   };
24971   TestCPANMeta = buildPerlPackage {
24972     pname = "Test-CPAN-Meta";
24973     version = "0.25";
24974     src = fetchurl {
24975       url = "mirror://cpan/authors/id/B/BA/BARBIE/Test-CPAN-Meta-0.25.tar.gz";
24976       hash = "sha256-9VtPnPa8OW0P6AJyZ2hcsqxK/86JfQlnoxf6xttajbU=";
24977     };
24978     meta = {
24979       description = "Validate your CPAN META.json files";
24980       license = with lib.licenses; [ artistic2 ];
24981     };
24982   };
24984   TestCPANMetaJSON = buildPerlPackage {
24985     pname = "Test-CPAN-Meta-JSON";
24986     version = "0.16";
24987     src = fetchurl {
24988       url = "mirror://cpan/authors/id/B/BA/BARBIE/Test-CPAN-Meta-JSON-0.16.tar.gz";
24989       hash = "sha256-Z6xQmt/7HSslao+MBSPgB2HZYBZhksYHApj3CIqa6ck=";
24990     };
24991     propagatedBuildInputs = [ JSON ];
24992     meta = {
24993       description = "Validate your CPAN META.json files";
24994       license = with lib.licenses; [ artistic2 ];
24995     };
24996   };
24998   TestDataSplit = buildPerlModule {
24999     pname = "Test-Data-Split";
25000     version = "0.2.2";
25001     src = fetchurl {
25002       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-Data-Split-0.2.2.tar.gz";
25003       hash = "sha256-5Qg4kK2tMNfeUHA1adX1zvF0oZhZNSLqe0bOOHuCgCI=";
25004     };
25005     buildInputs = [ TestDifferences ];
25006     propagatedBuildInputs = [ IOAll ListMoreUtils MooX MooXlate ];
25007     meta = {
25008       description = "Split data-driven tests into several test scripts";
25009       homepage = "https://metacpan.org/release/Test-Data-Split";
25010       license = with lib.licenses; [ mit ];
25011     };
25012   };
25014   TestDeep = buildPerlPackage {
25015     pname = "Test-Deep";
25016     version = "1.204";
25017     src = fetchurl {
25018       url = "mirror://cpan/authors/id/R/RJ/RJBS/Test-Deep-1.204.tar.gz";
25019       hash = "sha256-tlkfbM3YU8fvyf88V1Y3BAMhHP/kYEfwgrHNFhGoTl8=";
25020     };
25021     meta = {
25022       description = "Extremely flexible deep comparison";
25023       homepage = "https://github.com/rjbs/Test-Deep";
25024       license = with lib.licenses; [ artistic1 gpl1Plus ];
25025     };
25026   };
25028   TestDeepJSON = buildPerlModule {
25029     pname = "Test-Deep-JSON";
25030     version = "0.05";
25031     src = fetchurl {
25032       url = "mirror://cpan/authors/id/M/MO/MOTEMEN/Test-Deep-JSON-0.05.tar.gz";
25033       hash = "sha256-rshXG54xtzAeJhMsEyxoAJUtwInGRddpVKOtGms1CFg=";
25034     };
25035     buildInputs = [ ModuleBuildTiny ];
25036     propagatedBuildInputs = [ ExporterLite JSONMaybeXS TestDeep ];
25037     meta = {
25038       description = "Compare JSON with Test::Deep";
25039       homepage = "https://github.com/motemen/perl5-Test-Deep-JSON";
25040       license = with lib.licenses; [ artistic1 gpl1Plus ];
25041     };
25042   };
25044   TestDeepType = buildPerlPackage {
25045     pname = "Test-Deep-Type";
25046     version = "0.008";
25047     src = fetchurl {
25048       url = "mirror://cpan/authors/id/E/ET/ETHER/Test-Deep-Type-0.008.tar.gz";
25049       hash = "sha256-bnvqGi8edTGaItHFGZbrrFDKXjZj0bwiMTCIfmLpWfE=";
25050     };
25051     buildInputs = [ TestFatal TestNeeds ];
25052     propagatedBuildInputs = [ TestDeep TryTiny ];
25053     meta = {
25054       description = "Test::Deep plugin for validating type constraints";
25055       homepage = "https://github.com/karenetheridge/Test-Deep-Type";
25056       license = with lib.licenses; [ artistic1 gpl1Plus ];
25057     };
25058   };
25060   TestDiagINC = buildPerlPackage {
25061     pname = "Test-DiagINC";
25062     version = "0.010";
25063     src = fetchurl {
25064       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Test-DiagINC-0.010.tar.gz";
25065       hash = "sha256-W8uNNWxQnjWdU9hpwH79qo/uXWz5mJcBi5qRTOshIi4=";
25066     };
25067     buildInputs = [ CaptureTiny ];
25068     meta = {
25069       homepage = "https://github.com/dagolden/Test-DiagINC";
25070       description = "List modules and versions loaded if tests fail";
25071       license = lib.licenses.asl20;
25072     };
25073   };
25075   TestDir = buildPerlPackage {
25076     pname = "Test-Dir";
25077     version = "1.16";
25078     src = fetchurl {
25079       url = "mirror://cpan/authors/id/M/MT/MTHURN/Test-Dir-1.16.tar.gz";
25080       hash = "sha256-czKzI5E+tqJoTQlHVRljBLL4YG9w6quRNlTKkfJz6sI=";
25081     };
25082     meta = {
25083       description = "Test directory attributes";
25084       license = with lib.licenses; [ artistic1 gpl1Plus ];
25085     };
25086   };
25088   TestDifferences = buildPerlPackage {
25089     pname = "Test-Differences";
25090     version = "0.70";
25091     src = fetchurl {
25092       url = "mirror://cpan/authors/id/D/DC/DCANTRELL/Test-Differences-0.70.tar.gz";
25093       hash = "sha256-vuG1GGqpuif+0r8bBnRSDQvQzQUdkTOH+QhsH5SlaFQ=";
25094     };
25095     propagatedBuildInputs = [ CaptureTiny TextDiff ];
25096     meta = {
25097       description = "Test strings and data structures and show differences if not ok";
25098       license = with lib.licenses; [ artistic1 gpl1Plus ];
25099     };
25100   };
25102   TestDistManifest = buildPerlModule {
25103     pname = "Test-DistManifest";
25104     version = "1.014";
25105     src = fetchurl {
25106       url = "mirror://cpan/authors/id/E/ET/ETHER/Test-DistManifest-1.014.tar.gz";
25107       hash = "sha256-PSbCDfQmKJgcv8+lscoCjGzq2zRMHc+XolrWqItz18U=";
25108     };
25109     buildInputs = [ ModuleBuildTiny ];
25110     propagatedBuildInputs = [ ModuleManifest ];
25111     meta = {
25112       description = "Author test that validates a package MANIFEST";
25113       homepage = "https://github.com/jawnsy/Test-DistManifest";
25114       license = with lib.licenses; [ artistic1 gpl1Plus ];
25115     };
25116   };
25118   TestEOL = buildPerlPackage {
25119     pname = "Test-EOL";
25120     version = "2.02";
25121     src = fetchurl {
25122       url = "mirror://cpan/authors/id/E/ET/ETHER/Test-EOL-2.02.tar.gz";
25123       hash = "sha256-KDGZ1/sngH/iImr3sSVxxtwlCNjlwP61BdCJ0xcgr8Q=";
25124     };
25125     meta = {
25126       description = "Check the correct line endings in your project";
25127       homepage = "https://github.com/karenetheridge/Test-EOL";
25128       license = with lib.licenses; [ artistic1 gpl1Plus ];
25129     };
25130   };
25132   TestException = buildPerlPackage {
25133     pname = "Test-Exception";
25134     version = "0.43";
25135     src = fetchurl {
25136       url = "mirror://cpan/authors/id/E/EX/EXODIST/Test-Exception-0.43.tar.gz";
25137       hash = "sha256-FWsT8Hdk92bYtFpDco8kOa+Bo1EmJUON6reDt4g+tTM=";
25138     };
25139     propagatedBuildInputs = [ SubUplevel ];
25140     meta = {
25141       description = "Test exception-based code";
25142       license = with lib.licenses; [ artistic1 gpl1Plus ];
25143     };
25144   };
25146   TestExit = buildPerlPackage {
25147     pname = "Test-Exit";
25148     version = "0.11";
25149     src = fetchurl {
25150       url = "mirror://cpan/authors/id/A/AR/ARODLAND/Test-Exit-0.11.tar.gz";
25151       hash = "sha256-+9qS034EgdGO68geSNAlIotXGExZstWm9r34cELox7I=";
25152     };
25153     propagatedBuildInputs = [ ReturnMultiLevel ];
25154     meta = {
25155       description = "Test whether code exits without terminating testing";
25156       license = with lib.licenses; [ artistic1 gpl1Plus ];
25157     };
25158   };
25160   TestExpect = buildPerlPackage {
25161     pname = "Test-Expect";
25162     version = "0.34";
25163     src = fetchurl {
25164       url = "mirror://cpan/authors/id/B/BP/BPS/Test-Expect-0.34.tar.gz";
25165       hash = "sha256-Jij87N2l9km9JTI/ZGuWoaB+RVfK3LMnybrU3EG7uZk=";
25166     };
25167     propagatedBuildInputs = [ ClassAccessorChained ExpectSimple ];
25168     meta = {
25169       description = "Automated driving and testing of terminal-based programs";
25170       license = with lib.licenses; [ artistic1 gpl1Plus ];
25171     };
25172   };
25174   TestFailWarnings = buildPerlPackage {
25175     pname = "Test-FailWarnings";
25176     version = "0.008";
25177     src = fetchurl {
25178       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Test-FailWarnings-0.008.tar.gz";
25179       hash = "sha256-2jTvkCn2hJ1gJiAdSRJ9BU7mrEuXnIIhAxX1chlkqW8=";
25180     };
25181     buildInputs = [ CaptureTiny ];
25182     meta = {
25183       description = "Add test failures if warnings are caught";
25184       homepage = "https://github.com/dagolden/Test-FailWarnings";
25185       license = with lib.licenses; [ asl20 ];
25186     };
25187   };
25189   TestFakeHTTPD = buildPerlModule {
25190     pname = "Test-Fake-HTTPD";
25191     version = "0.09";
25192     src = fetchurl {
25193       url = "mirror://cpan/authors/id/M/MA/MASAKI/Test-Fake-HTTPD-0.09.tar.gz";
25194       hash = "sha256-FPecsGepCSLpvlVPjks509aXeK5Mj/9E9WD2N/tvLR4=";
25195     };
25196     propagatedBuildInputs = [ HTTPDaemon Plack ];
25197     buildInputs = [ LWP ModuleBuildTiny TestException TestSharedFork TestTCP TestUseAllModules ];
25198     meta = {
25199       description = "Fake HTTP server";
25200       homepage = "https://github.com/masaki/Test-Fake-HTTPD";
25201       license = with lib.licenses; [ artistic1 gpl1Plus ];
25202     };
25203   };
25205   TestFatal = buildPerlPackage {
25206     pname = "Test-Fatal";
25207     version = "0.017";
25208     src = fetchurl {
25209       url = "mirror://cpan/authors/id/R/RJ/RJBS/Test-Fatal-0.017.tar.gz";
25210       hash = "sha256-N9//2vuEt2Lv6WsC+yqkHzcCbHPmuDWQ23YilpfzxKY=";
25211     };
25212     propagatedBuildInputs = [ TryTiny ];
25213     meta = {
25214       description = "Incredibly simple helpers for testing code with exceptions";
25215       homepage = "https://github.com/rjbs/Test-Fatal";
25216       license = with lib.licenses; [ artistic1 gpl1Plus ];
25217     };
25218   };
25220   TestFile = buildPerlPackage {
25221     pname = "Test-File";
25222     version = "1.993";
25223     src = fetchurl {
25224       url = "mirror://cpan/authors/id/B/BD/BDFOY/Test-File-1.993.tar.gz";
25225       hash = "sha256-7y/+Gq7HtC2HStQR7GR1R7m5vC9fuT5J4zmUiEVq/Ho=";
25226     };
25227     meta = {
25228       description = "Test file attributes";
25229       homepage = "https://github.com/briandfoy/test-file";
25230       license = with lib.licenses; [ artistic2 ];
25231     };
25232   };
25234   TestFileContents = buildPerlPackage {
25235     pname = "Test-File-Contents";
25236     version = "0.242";
25237     src = fetchurl {
25238       url = "mirror://cpan/authors/id/A/AR/ARISTOTLE/Test-File-Contents-0.242.tar.gz";
25239       hash = "sha256-qDisC29uEOiWE7UMphdzzbqbpHh7qC57tl2q9whKpQs=";
25240     };
25241     propagatedBuildInputs = [ TextDiff ];
25242     meta = {
25243       description = "Test routines for examining the contents of files";
25244       license = with lib.licenses; [ artistic1 gpl1Plus ];
25245     };
25246   };
25248   TestFileShareDir = buildPerlPackage {
25249     pname = "Test-File-ShareDir";
25250     version = "1.001002";
25251     src = fetchurl {
25252       url = "mirror://cpan/authors/id/K/KE/KENTNL/Test-File-ShareDir-1.001002.tar.gz";
25253       hash = "sha256-szZHy7Sy8vz73k+LtDg9CslcL4nExXcOtpHxZDozeq0=";
25254     };
25255     buildInputs = [ TestFatal ];
25256     propagatedBuildInputs = [ ClassTiny FileCopyRecursive FileShareDir PathTiny ScopeGuard ];
25257     meta = {
25258       description = "Create a Fake ShareDir for your modules for testing";
25259       homepage = "https://github.com/kentnl/Test-File-ShareDir";
25260       license = with lib.licenses; [ artistic1 gpl1Plus ];
25261     };
25262   };
25264   TestFilename = buildPerlPackage {
25265     pname = "Test-Filename";
25266     version = "0.03";
25267     src = fetchurl {
25268       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Test-Filename-0.03.tar.gz";
25269       hash = "sha256-akUMxMYoHtESnzKhwHQfIoln/touMqKRX/Yhw2Ul/L4=";
25270     };
25271     propagatedBuildInputs = [ PathTiny ];
25272     meta = {
25273       description = "Portable filename comparison";
25274       homepage = "https://metacpan.org/release/Test-Filename";
25275       license = with lib.licenses; [ asl20 ];
25276     };
25277   };
25279   TestFork = buildPerlModule {
25280     pname = "Test-Fork";
25281     version = "0.02";
25282     src = fetchurl {
25283       url = "mirror://cpan/authors/id/M/MS/MSCHWERN/Test-Fork-0.02.tar.gz";
25284       hash = "sha256-/P77+yT4havoJ8KtB6w9Th/s8hOhRxf8rzw3F1BF0D4=";
25285     };
25286     meta = {
25287       description = "Test code which forks";
25288       license = with lib.licenses; [ artistic1 gpl1Plus ];
25289     };
25290   };
25292   TestFutureIOImpl = buildPerlModule {
25293     pname = "Test-Future-IO-Impl";
25294     version = "0.14";
25295     src = fetchurl {
25296       url = "mirror://cpan/authors/id/P/PE/PEVANS/Test-Future-IO-Impl-0.14.tar.gz";
25297       hash = "sha256-AH22GdPUljQyXFbvvKDh5Vdt0z95RV8t6llb5u344jU=";
25298     };
25299     propagatedBuildInputs = [ Test2Suite ];
25300     meta = {
25301       description = "Acceptance tests for C<Future::IO> implementations";
25302       license = with lib.licenses; [ artistic1 gpl1Plus ];
25303     };
25304   };
25306   TestHarnessStraps = buildPerlModule {
25307     pname = "Test-Harness-Straps";
25308     version = "0.30";
25309     src = fetchurl {
25310       url = "mirror://cpan/authors/id/M/MS/MSCHWERN/Test-Harness-Straps-0.30.tar.gz";
25311       hash = "sha256-iwDvqjVyPBo1yMj1+kapnkvFKN+lIDUrVKxBjvbRz6g=";
25312     };
25313     meta = {
25314       description = "Detailed analysis of test results";
25315       license = with lib.licenses; [ artistic1 gpl1Plus ];
25316     };
25317   };
25319   TestHexDifferences = buildPerlPackage {
25320     pname = "Test-HexDifferences";
25321     version = "1.001";
25322     src = fetchurl {
25323       url = "mirror://cpan/authors/id/S/ST/STEFFENW/Test-HexDifferences-1.001.tar.gz";
25324       hash = "sha256-pjlF7N1CCvwxEJT5OiIM+zXfIyQt5hnlO6Z0d6E2kKI=";
25325     };
25326     propagatedBuildInputs = [ SubExporter TextDiff ];
25327     buildInputs = [ TestDifferences TestNoWarnings ];
25328     meta = {
25329       description = "Test binary as hexadecimal string";
25330       license = with lib.licenses; [ artistic1 gpl1Plus ];
25331     };
25332   };
25334   TestHexString = buildPerlModule {
25335     pname = "Test-HexString";
25336     version = "0.03";
25337     src = fetchurl {
25338       url = "mirror://cpan/authors/id/P/PE/PEVANS/Test-HexString-0.03.tar.gz";
25339       hash = "sha256-fUxM3BkvJZTceP916yz00FYfeUs27g6s7oxKGqigP0A=";
25340     };
25341     meta = {
25342       description = "Test binary strings with hex dump diagnostics";
25343       license = with lib.licenses; [ artistic1 gpl1Plus ];
25344     };
25345   };
25347   TestIdentity = buildPerlModule {
25348     pname = "Test-Identity";
25349     version = "0.01";
25350     src = fetchurl {
25351       url = "mirror://cpan/authors/id/P/PE/PEVANS/Test-Identity-0.01.tar.gz";
25352       hash = "sha256-LwIFAJrtFSZoGCqvoWNXqx9HtMvAAeiYcbZzh++OXyM=";
25353     };
25354     meta = {
25355       description = "Assert the referential identity of a reference";
25356       license = with lib.licenses; [ artistic1 gpl1Plus ];
25357     };
25358   };
25360   TestHTTPServerSimple = buildPerlPackage {
25361     pname = "Test-HTTP-Server-Simple";
25362     version = "0.11";
25363     src = fetchurl {
25364       url = "mirror://cpan/authors/id/A/AL/ALEXMV/Test-HTTP-Server-Simple-0.11.tar.gz";
25365       hash = "sha256-hcl+vU3rgFKRsXJ3Ay2kiAcijyT4mxzi+zwJ96iWu3g=";
25366     };
25367     propagatedBuildInputs = [ HTTPServerSimple ];
25368     meta = {
25369       description = "Test::More functions for HTTP::Server::Simple";
25370       license = with lib.licenses; [ artistic1 gpl1Plus ];
25371     };
25372   };
25374   TestJSON = buildPerlModule {
25375     pname = "Test-JSON";
25376     version = "0.11";
25377     src = fetchurl {
25378       url = "mirror://cpan/authors/id/O/OV/OVID/Test-JSON-0.11.tar.gz";
25379       hash = "sha256-B8CKsvzBKFDRrVT89q/prRoloJgxDD5xQq8dPLgh17M=";
25380     };
25381     propagatedBuildInputs = [ JSONAny ];
25382     buildInputs = [ TestDifferences ];
25383     meta = {
25384       description = "Test JSON data";
25385       license = with lib.licenses; [ artistic1 gpl1Plus ];
25386     };
25387   };
25389   TestKwalitee = buildPerlPackage {
25390     pname = "Test-Kwalitee";
25391     version = "1.28";
25392     src = fetchurl {
25393       url = "mirror://cpan/authors/id/E/ET/ETHER/Test-Kwalitee-1.28.tar.gz";
25394       hash = "sha256-tFNs3XVbWXciMtQyXae9T7f1vlC0WF27r3WO7DBiQ6M=";
25395     };
25396     propagatedBuildInputs = [ ModuleCPANTSAnalyse ];
25397     buildInputs = [ CPANMetaCheck TestDeep TestWarnings ];
25398     meta = {
25399       description = "Test the Kwalitee of a distribution before you release it";
25400       homepage = "https://github.com/karenetheridge/Test-Kwalitee";
25401       license = with lib.licenses; [ artistic1 gpl1Plus ];
25402       mainProgram = "kwalitee-metrics";
25403     };
25404   };
25406   TestLWPUserAgent = buildPerlPackage {
25407     pname = "Test-LWP-UserAgent";
25408     version = "0.036";
25409     src = fetchurl {
25410       url = "mirror://cpan/authors/id/E/ET/ETHER/Test-LWP-UserAgent-0.036.tar.gz";
25411       hash = "sha256-BTJ1MNNGuAphpulD+9dJmGvcqJIRpOswHAjC0XkxThE=";
25412     };
25413     propagatedBuildInputs = [ LWP SafeIsa namespaceclean ];
25414     buildInputs = [ PathTiny Plack TestDeep TestFatal TestNeeds TestRequiresInternet TestWarnings ];
25415     meta = {
25416       description = "LWP::UserAgent suitable for simulating and testing network calls";
25417       homepage = "https://github.com/karenetheridge/Test-LWP-UserAgent";
25418       license = with lib.licenses; [ artistic1 gpl1Plus ];
25419     };
25420   };
25422   TestLeakTrace = buildPerlPackage {
25423     pname = "Test-LeakTrace";
25424     version = "0.17";
25425     src = fetchurl {
25426       url = "mirror://cpan/authors/id/L/LE/LEEJO/Test-LeakTrace-0.17.tar.gz";
25427       hash = "sha256-d31k0pOPXqWGMA7vl+8D6stD1MGFPJw7EJHrMxFGeXA=";
25428     };
25429     meta = {
25430       description = "Traces memory leaks";
25431       homepage = "https://metacpan.org/release/Test-LeakTrace";
25432       license = with lib.licenses; [ artistic1 gpl1Plus ];
25433     };
25434   };
25436   TestLectroTest = buildPerlPackage {
25437     pname = "Test-LectroTest";
25438     version = "0.5001";
25439     src = fetchurl {
25440       url = "mirror://cpan/authors/id/T/TM/TMOERTEL/Test-LectroTest-0.5001.tar.gz";
25441       hash = "sha256-rCtPDZWJmvGhoex4TLdAsrkCVqvuEcg+eykRA+ye1zU=";
25442     };
25443     meta = {
25444       description = "Easy, automatic, specification-based tests";
25445       license = with lib.licenses; [ artistic1 gpl1Plus ];
25446     };
25447   };
25449   TestLoadAllModules = buildPerlPackage {
25450     pname = "Test-LoadAllModules";
25451     version = "0.022";
25452     src = fetchurl {
25453       url = "mirror://cpan/authors/id/K/KI/KITANO/Test-LoadAllModules-0.022.tar.gz";
25454       hash = "sha256-G4YfVVAgZIp0gdStKBqJ5iQYf4lDepizRjVpGyZeXP4=";
25455     };
25456     propagatedBuildInputs = [ ListMoreUtils ModulePluggable ];
25457     meta = {
25458       description = "Do use_ok for modules in search path";
25459       license = with lib.licenses; [ artistic1 gpl1Plus ];
25460     };
25461   };
25463   TestLongString = buildPerlPackage {
25464     pname = "Test-LongString";
25465     version = "0.17";
25466     src = fetchurl {
25467       url = "mirror://cpan/authors/id/R/RG/RGARCIA/Test-LongString-0.17.tar.gz";
25468       hash = "sha256-q8Q0nq8E0b7B5GQWajAYWR6oRtjzxcnIr0rEkF0+l08=";
25469     };
25470     meta = {
25471       description = "Tests strings for equality, with more helpful failures";
25472       license = with lib.licenses; [ artistic1 gpl1Plus ];
25473     };
25474   };
25476   TestMemoryCycle = buildPerlPackage {
25477     pname = "Test-Memory-Cycle";
25478     version = "1.06";
25479     src = fetchurl {
25480       url = "mirror://cpan/authors/id/P/PE/PETDANCE/Test-Memory-Cycle-1.06.tar.gz";
25481       hash = "sha256-nVPd/clkzYRUyw2kxpW2o65HtFg5KRw0y52NHPqrMgI=";
25482     };
25483     propagatedBuildInputs = [ DevelCycle PadWalker ];
25484     meta = {
25485       description = "Verifies code hasn't left circular references";
25486       license = with lib.licenses; [ artistic2 ];
25487     };
25488   };
25490   TestMemoryGrowth = buildPerlModule {
25491     pname = "Test-MemoryGrowth";
25492     version = "0.04";
25493     src = fetchurl {
25494       url = "mirror://cpan/authors/id/P/PE/PEVANS/Test-MemoryGrowth-0.04.tar.gz";
25495       hash = "sha256-oGWFJ1Kr1J5BFbmPbbRsdSy71ePkjtAUXO45L3k9LtA=";
25496     };
25497     meta = {
25498       description = "Assert that code does not cause growth in memory usage";
25499       license = with lib.licenses; [ artistic1 gpl1Plus ];
25500       broken = stdenv.hostPlatform.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.TestMemoryGrowth.x86_64-darwin
25501     };
25502   };
25504   TestMetricsAny = buildPerlModule {
25505     pname = "Test-Metrics-Any";
25506     version = "0.01";
25507     src = fetchurl {
25508       url = "mirror://cpan/authors/id/P/PE/PEVANS/Test-Metrics-Any-0.01.tar.gz";
25509       hash = "sha256-JQbIjU6yGydLEIX4BskY3Ml//2nhbRJJ5uGdlDYl5Gg=";
25510     };
25511     propagatedBuildInputs = [ MetricsAny ];
25512     meta = {
25513       description = "Assert that code produces metrics via Metrics::Any";
25514       license = with lib.licenses; [ artistic1 gpl1Plus ];
25515     };
25516   };
25518   TestMockClass = buildPerlModule {
25519     pname = "Test-Mock-Class";
25520     version = "0.0303";
25521     src = fetchurl {
25522       url = "mirror://cpan/authors/id/D/DE/DEXTER/Test-Mock-Class-0.0303.tar.gz";
25523       hash = "sha256-zS5S/inKCrtsLmGvvDP7Qui+tCGzhL5rwGSs8xl28wI=";
25524     };
25525     buildInputs = [ ClassInspector TestAssert TestUnitLite ];
25526     propagatedBuildInputs = [ FatalException Moose namespaceclean ];
25527     meta = {
25528       description = "Simulating other classes";
25529       license = with lib.licenses; [ lgpl2Plus ];
25530     };
25531   };
25533   TestMockGuard = buildPerlModule {
25534     pname = "Test-Mock-Guard";
25535     version = "0.10";
25536     src = fetchurl {
25537       url = "mirror://cpan/authors/id/X/XA/XAICRON/Test-Mock-Guard-0.10.tar.gz";
25538       hash = "sha256-fyKKY/jWzrkqp4QIChPoUHMSGyg17KBteU+XCZUNvT0=";
25539     };
25540     propagatedBuildInputs = [ ClassLoad ];
25541     meta = {
25542       description = "Simple mock test library using RAII";
25543       homepage = "https://github.com/zigorou/p5-test-mock-guard";
25544       license = with lib.licenses; [ artistic1 gpl1Plus ];
25545     };
25546   };
25548   TestMockHTTPTiny = buildPerlPackage {
25549     pname = "Test-Mock-HTTP-Tiny";
25550     version = "0.002";
25551     src = fetchurl {
25552       url = "mirror://cpan/authors/id/O/OD/ODYNIEC/Test-Mock-HTTP-Tiny-0.002.tar.gz";
25553       hash = "sha256-+c+tfYUEZQvtNJO8bSyoLXuRvDcTyGxDXnXriKxb5eY=";
25554     };
25555     propagatedBuildInputs = [ TestDeep URI ];
25556     meta = {
25557       description = "Record and replay HTTP requests/responses with HTTP::Tiny";
25558       homepage = "https://github.com/odyniec/p5-Test-Mock-HTTP-Tiny";
25559       license = with lib.licenses; [ artistic1 gpl1Plus ];
25560     };
25561   };
25563   TestMockModule = buildPerlModule {
25564     pname = "Test-MockModule";
25565     version = "0.177.0";
25566     src = fetchurl {
25567       url = "mirror://cpan/authors/id/G/GF/GFRANKS/Test-MockModule-v0.177.0.tar.gz";
25568       hash = "sha256-G9p6SdzqdgdtQKe2psPz4V5rGchLYXHfRFNNkROPEEU=";
25569     };
25570     propagatedBuildInputs = [ SUPER ];
25571     buildInputs = [ TestWarnings ];
25572     meta = {
25573       description = "Override subroutines in a module for unit testing";
25574       license = with lib.licenses; [ artistic1 gpl1Plus ];
25575     };
25576   };
25578   SUPER = buildPerlModule {
25579     pname = "SUPER";
25580     version = "1.20190531";
25581     src = fetchurl {
25582       url = "mirror://cpan/authors/id/C/CH/CHROMATIC/SUPER-1.20190531.tar.gz";
25583       hash = "sha256-aF0e525/DpAGlCkjv334sRwQcTKZKRdZPc9zl9QX05o=";
25584     };
25585     propagatedBuildInputs = [ SubIdentify ];
25586     meta = {
25587       description = "Control superclass method dispatch";
25588       license = with lib.licenses; [ artistic1 gpl1Plus ];
25589     };
25590   };
25593   TestMockObject = buildPerlPackage {
25594     pname = "Test-MockObject";
25595     version = "1.20200122";
25596     src = fetchurl {
25597       url = "mirror://cpan/authors/id/C/CH/CHROMATIC/Test-MockObject-1.20200122.tar.gz";
25598       hash = "sha256-K3+A2of1pv4DYNnuUhBRBTAXRCw6Juhdto36yfgwdiM=";
25599     };
25600     buildInputs = [ TestException TestWarn ];
25601     propagatedBuildInputs = [ UNIVERSALcan UNIVERSALisa ];
25602     meta = {
25603       description = "Perl extension for emulating troublesome interfaces";
25604       license = with lib.licenses; [ artistic1 gpl1Plus ];
25605     };
25606   };
25608   TestMockTime = buildPerlPackage {
25609     pname = "Test-MockTime";
25610     version = "0.17";
25611     src = fetchurl {
25612       url = "mirror://cpan/authors/id/D/DD/DDICK/Test-MockTime-0.17.tar.gz";
25613       hash = "sha256-M2PhGLJgbx1qvJVvIrDQkQl3K3CGFV+1ycf5gzUGAvk=";
25614     };
25615     meta = {
25616       description = "Replaces actual time with simulated time";
25617       license = with lib.licenses; [ artistic1 gpl1Plus ];
25618     };
25619   };
25621   TestMockTimeHiRes = buildPerlModule {
25622     pname = "Test-MockTime-HiRes";
25623     version = "0.08";
25624     src = fetchurl {
25625       url = "mirror://cpan/authors/id/T/TA/TARAO/Test-MockTime-HiRes-0.08.tar.gz";
25626       hash = "sha256-X0n3rviV0yfa/fJ0TznBdsirDkuCJ9LW495omiWb3sE=";
25627     };
25628     buildInputs = [ AnyEvent ModuleBuildTiny TestClass TestRequires ];
25629     propagatedBuildInputs = [ TestMockTime ];
25630     meta = {
25631       description = "Replaces actual time with simulated high resolution time";
25632       homepage = "https://github.com/tarao/perl5-Test-MockTime-HiRes";
25633       license = with lib.licenses; [ artistic1 gpl1Plus ];
25634     };
25635   };
25637   TestMojibake = buildPerlPackage {
25638     pname = "Test-Mojibake";
25639     version = "1.3";
25640     src = fetchurl {
25641       url = "mirror://cpan/authors/id/S/SY/SYP/Test-Mojibake-1.3.tar.gz";
25642       hash = "sha256-j/51/5tpNSSIcn3Kc9uR+KoUtZ8voQTrdxfA1xpfGzM=";
25643     };
25644     meta = {
25645       description = "Check your source for encoding misbehavior";
25646       homepage = "https://github.com/creaktive/Test-Mojibake";
25647       license = with lib.licenses; [ artistic1 gpl1Plus ];
25648       mainProgram = "scan_mojibake";
25649     };
25650   };
25652   TestMoreUTF8 = buildPerlPackage {
25653     pname = "Test-More-UTF8";
25654     version = "0.05";
25655     src = fetchurl {
25656       url = "mirror://cpan/authors/id/M/MO/MONS/Test-More-UTF8-0.05.tar.gz";
25657       hash = "sha256-ufHEs2qXzf76pT7REV3Tj0tIMDd3X2VZ7h3xSs/RzgQ=";
25658     };
25659     meta = {
25660       description = "Enhancing Test::More for UTF8-based projects";
25661       license = with lib.licenses; [ artistic1 gpl1Plus ];
25662     };
25663   };
25665   TestMost = buildPerlPackage {
25666     pname = "Test-Most";
25667     version = "0.38";
25668     src = fetchurl {
25669       url = "mirror://cpan/authors/id/O/OV/OVID/Test-Most-0.38.tar.gz";
25670       hash = "sha256-CJ64lPe6zkw3xjNODikOsgM47hAiOvDILL5ygceDgt8=";
25671     };
25672     propagatedBuildInputs = [ ExceptionClass ];
25673     buildInputs = [ TestDeep TestDifferences TestException TestWarn ];
25674     meta = {
25675       description = "Most commonly needed test functions and features";
25676       license = with lib.licenses; [ artistic1 gpl1Plus ];
25677     };
25678   };
25680   Testmysqld = buildPerlModule {
25681     pname = "Test-mysqld";
25682     version = "1.0013";
25683     src = fetchurl {
25684       url = "mirror://cpan/authors/id/S/SO/SONGMU/Test-mysqld-1.0013.tar.gz";
25685       hash = "sha256-V61BoJBXyWO1gsgaB276UPpW664hd9gwd33oOGBePu8=";
25686     };
25687     buildInputs = [ pkgs.which ModuleBuildTiny TestSharedFork ];
25688     propagatedBuildInputs = [ ClassAccessorLite DBDmysql FileCopyRecursive ];
25689     meta = {
25690       description = "Mysqld runner for tests";
25691       homepage = "https://github.com/kazuho/p5-test-mysqld";
25692       license = with lib.licenses; [ artistic1 gpl1Plus ];
25693       maintainers = [ maintainers.sgo ];
25694     };
25695   };
25697   TestNeeds = buildPerlPackage {
25698     pname = "Test-Needs";
25699     version = "0.002010";
25700     src = fetchurl {
25701       url = "mirror://cpan/authors/id/H/HA/HAARG/Test-Needs-0.002010.tar.gz";
25702       hash = "sha256-kj/9x4/LqWYJdT5LriawugGGiT3kpjzVI24BLHyQ4gg=";
25703     };
25704     meta = {
25705       description = "Skip tests when modules not available";
25706       license = with lib.licenses; [ artistic1 gpl1Plus ];
25707     };
25708   };
25710   TestNoTabs = buildPerlPackage {
25711     pname = "Test-NoTabs";
25712     version = "2.02";
25713     src = fetchurl {
25714       url = "mirror://cpan/authors/id/E/ET/ETHER/Test-NoTabs-2.02.tar.gz";
25715       hash = "sha256-+3XGo4ch8BaeEcHn2+UyntchaIWgsBEj80LdhtM1YDA=";
25716     };
25717     meta = {
25718       description = "Check the presence of tabs in your project";
25719       homepage = "https://github.com/karenetheridge/Test-NoTabs";
25720       license = with lib.licenses; [ artistic1 gpl1Plus ];
25721     };
25722   };
25724   TestNoWarnings = buildPerlPackage {
25725     pname = "Test-NoWarnings";
25726     version = "1.06";
25727     src = fetchurl {
25728       url = "mirror://cpan/authors/id/H/HA/HAARG/Test-NoWarnings-1.06.tar.gz";
25729       hash = "sha256-wtxRFDt+tjIxIQ4n3yDSyDk3cuCjM1R+yLeiBe1i9zc=";
25730     };
25731     meta = {
25732       description = "Make sure you didn't emit any warnings while testing";
25733       license = with lib.licenses; [ lgpl21Only ];
25734     };
25735   };
25737   TestObject = buildPerlPackage {
25738     pname = "Test-Object";
25739     version = "0.08";
25740     src = fetchurl {
25741       url = "mirror://cpan/authors/id/E/ET/ETHER/Test-Object-0.08.tar.gz";
25742       hash = "sha256-ZSeJZBR4NzE/QQjlW1lnboo2TW7fAbPcGYruiUqx0Ls=";
25743     };
25744     meta = {
25745       description = "Thoroughly testing objects via registered handlers";
25746       license = with lib.licenses; [ artistic1 gpl1Plus ];
25747     };
25748   };
25750   TestOutput = buildPerlPackage {
25751     pname = "Test-Output";
25752     version = "1.034";
25753     src = fetchurl {
25754       url = "mirror://cpan/authors/id/B/BD/BDFOY/Test-Output-1.034.tar.gz";
25755       hash = "sha256-zULigBwNK0gtGMn7SwbHVwVIGLy7KCTl378zrXo9aaA=";
25756     };
25757     propagatedBuildInputs = [ CaptureTiny ];
25758     meta = {
25759       description = "Utilities to test STDOUT and STDERR messages";
25760       license = with lib.licenses; [ artistic2 ];
25761     };
25762   };
25764   TestPAUSEPermissions = buildPerlPackage {
25765     pname = "Test-PAUSE-Permissions";
25766     version = "0.07";
25767     src = fetchurl {
25768       url = "mirror://cpan/authors/id/S/SK/SKAJI/Test-PAUSE-Permissions-0.07.tar.gz";
25769       hash = "sha256-VXDBu/KbxjeoRWcIuaJ0bPT8usE3SF7f82D48I5xBz4=";
25770     };
25771     propagatedBuildInputs = [ ConfigIdentity PAUSEPermissions ParseLocalDistribution ];
25772     buildInputs = [ ExtUtilsMakeMakerCPANfile TestUseAllModules ];
25773     meta = {
25774       description = "Tests module permissions in your distribution";
25775       license = with lib.licenses; [ artistic1 gpl1Plus ];
25776     };
25777   };
25779   TestPerlCritic = buildPerlModule {
25780     pname = "Test-Perl-Critic";
25781     version = "1.04";
25782     src = fetchurl {
25783       url = "mirror://cpan/authors/id/P/PE/PETDANCE/Test-Perl-Critic-1.04.tar.gz";
25784       hash = "sha256-KPgGtUEseQi1bPFnMIS4tEzhy1TJQX14TZFCjhoECW4=";
25785     };
25786     propagatedBuildInputs = [ MCE PerlCritic ];
25787     meta = {
25788       description = "Use Perl::Critic in test programs";
25789       license = with lib.licenses; [ artistic1 gpl1Plus ];
25790     };
25791   };
25793   TestPerlTidy = buildPerlModule {
25794     pname = "Test-PerlTidy";
25795     version = "20230226";
25796     src = fetchurl {
25797       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-PerlTidy-20230226.tar.gz";
25798       hash = "sha256-wOJCEQeVeV1Nu2xEFmzlV09cftuninidG8rnZoXYA8E=";
25799     };
25800     propagatedBuildInputs = [ PathTiny PerlTidy TextDiff ];
25801     buildInputs = [ TestPerlCritic ];
25802     meta = {
25803       description = "Check that all your files are tidy";
25804       homepage = "https://metacpan.org/release/Test-PerlTidy";
25805       license = with lib.licenses; [ artistic1 gpl1Plus ];
25806     };
25807   };
25809   TestPod = buildPerlPackage {
25810     pname = "Test-Pod";
25811     version = "1.52";
25812     src = fetchurl {
25813       url = "mirror://cpan/authors/id/E/ET/ETHER/Test-Pod-1.52.tar.gz";
25814       hash = "sha256-YKjbzGAWi/HapcwjUCNt+TQ+mHj0q5gwlwpd3m/o5fw=";
25815     };
25816     meta = {
25817       description = "Check for POD errors in files";
25818       homepage = "https://search.cpan.org/dist/Test-Pod";
25819       license = with lib.licenses; [ artistic1 gpl1Plus ];
25820     };
25821   };
25823   TestPodCoverage = buildPerlPackage {
25824     pname = "Test-Pod-Coverage";
25825     version = "1.10";
25826     src = fetchurl {
25827       url = "mirror://cpan/authors/id/N/NE/NEILB/Test-Pod-Coverage-1.10.tar.gz";
25828       hash = "sha256-SMnMqffZnu50EXZEW0Ma3wnAKeGqV8RwPJ9G92AdQNQ=";
25829     };
25830     propagatedBuildInputs = [ PodCoverage ];
25831     meta = {
25832       description = "Check for pod coverage in your distribution";
25833       license = with lib.licenses; [ artistic2 ];
25834     };
25835   };
25837   TestPodLinkCheck = buildPerlModule {
25838     pname = "Test-Pod-LinkCheck";
25839     version = "0.008";
25840     src = fetchurl {
25841       url = "mirror://cpan/authors/id/A/AP/APOCAL/Test-Pod-LinkCheck-0.008.tar.gz";
25842       hash = "sha256-K/53EXPDi2nusIlQTj92URuOReap5trD5hbkAOpnvPA=";
25843     };
25844     buildInputs = [ ModuleBuildTiny TestPod ];
25845     propagatedBuildInputs = [ CaptureTiny Moose podlinkcheck ];
25846     meta = {
25847       description = "Tests POD for invalid links";
25848       homepage = "https://search.cpan.org/dist/Test-Pod-LinkCheck";
25849       license = with lib.licenses; [ artistic1 gpl1Plus ];
25850     };
25851   };
25853   TestPodNo404s = buildPerlModule {
25854     pname = "Test-Pod-No404s";
25855     version = "0.02";
25856     src = fetchurl {
25857       url = "mirror://cpan/authors/id/A/AP/APOCAL/Test-Pod-No404s-0.02.tar.gz";
25858       hash = "sha256-EcYGBW/WK9ROB5977wbEWapYnuhc3tv6DMMl6jV8jnk=";
25859     };
25860     propagatedBuildInputs = [ LWP URIFind ];
25861     buildInputs = [ ModuleBuildTiny TestPod ];
25862     meta = {
25863       description = "Using this test module will check your POD for any http 404 links";
25864       homepage = "https://search.cpan.org/dist/Test-Pod-No404s";
25865       license = with lib.licenses; [ artistic1 gpl1Plus ];
25866     };
25867   };
25869   TestPortabilityFiles = buildPerlPackage {
25870     pname = "Test-Portability-Files";
25871     version = "0.10";
25872     src = fetchurl {
25873       url = "mirror://cpan/authors/id/A/AB/ABRAXXA/Test-Portability-Files-0.10.tar.gz";
25874       hash = "sha256-COS0MkktwbRLVdXbV5Uut2N5x/Q07o8WrKZNSR9AGhY=";
25875     };
25876     meta = {
25877       description = "Check file names portability";
25878       license = with lib.licenses; [ artistic1 gpl1Plus ];
25879     };
25880   };
25882   TestRefcount = buildPerlModule {
25883     pname = "Test-Refcount";
25884     version = "0.10";
25885     src = fetchurl {
25886       url = "mirror://cpan/authors/id/P/PE/PEVANS/Test-Refcount-0.10.tar.gz";
25887       hash = "sha256-BFfCCklWRz0VfE+q/4gUFUvJP24rVDwoEqGf+OM3DrI=";
25888     };
25889     meta = {
25890       description = "Assert reference counts on objects";
25891       license = with lib.licenses; [ artistic1 gpl1Plus ];
25892     };
25893   };
25895   TestRequires = buildPerlPackage {
25896     pname = "Test-Requires";
25897     version = "0.11";
25898     src = fetchurl {
25899       url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/Test-Requires-0.11.tar.gz";
25900       hash = "sha256-S4jeVJWX7s3ffDw4pNAgShb1mtgEV3tnGJasBOJOBA8=";
25901     };
25902     meta = {
25903       description = "Checks to see if the module can be loaded";
25904       homepage = "https://github.com/tokuhirom/Test-Requires";
25905       license = with lib.licenses; [ artistic1 gpl1Plus ];
25906     };
25907   };
25909   TestRequiresGit = buildPerlPackage {
25910     pname = "Test-Requires-Git";
25911     version = "1.008";
25912     src = fetchurl {
25913       url = "mirror://cpan/authors/id/B/BO/BOOK/Test-Requires-Git-1.008.tar.gz";
25914       hash = "sha256-cJFiEJcNhNdJFFEVmri2fhUlHIwNrnw99sjYhULqQqY=";
25915     };
25916     propagatedBuildInputs = [ GitVersionCompare ];
25917     meta = {
25918       description = "Check your test requirements against the available version of Git";
25919       license = with lib.licenses; [ artistic1 gpl1Plus ];
25920     };
25921   };
25923   TestRequiresInternet = buildPerlPackage {
25924     pname = "Test-RequiresInternet";
25925     version = "0.05";
25926     src = fetchurl {
25927       url = "mirror://cpan/authors/id/M/MA/MALLEN/Test-RequiresInternet-0.05.tar.gz";
25928       hash = "sha256-u6ezKhzA1Yzi7CCyAKc0fGljFkHoyuj/RWetJO8egz4=";
25929     };
25930     meta = {
25931       description = "Easily test network connectivity";
25932       homepage = "https://metacpan.org/dist/Test-RequiresInternet";
25933       license = with lib.licenses; [ artistic1 gpl1Plus ];
25934     };
25935   };
25937   TestRoo = buildPerlPackage {
25938     pname = "Test-Roo";
25939     version = "1.004";
25940     src = fetchurl {
25941       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Test-Roo-1.004.tar.gz";
25942       hash = "sha256-IRKaPOy1B7AJSOFs8V/N5dxNsjWrqEr9f0fSIBOp3tY=";
25943     };
25945     propagatedBuildInputs = [ Moo MooXTypesMooseLike SubInstall strictures ];
25946     buildInputs = [ CaptureTiny ];
25947     meta = {
25948       description = "Composable, reusable tests with roles and Moo";
25949       license = with lib.licenses; [ asl20 ];
25950     };
25951   };
25953   TestRoutine = buildPerlPackage {
25954     pname = "Test-Routine";
25955     version = "0.031";
25956     src = fetchurl {
25957       url = "mirror://cpan/authors/id/R/RJ/RJBS/Test-Routine-0.031.tar.gz";
25958       hash = "sha256-f9kp7TPyVMoJkCJQGSYInHeU71d7uoYHbn2YFlYPXAc=";
25959     };
25960     buildInputs = [ TestAbortable TestFatal ];
25961     propagatedBuildInputs = [ Moose namespaceautoclean ];
25962     meta = {
25963       description = "Composable units of assertion";
25964       homepage = "https://github.com/rjbs/Test-Routine";
25965       license = with lib.licenses; [ artistic1 gpl1Plus ];
25966     };
25967   };
25969   TestRun = buildPerlModule {
25970     pname = "Test-Run";
25971     version = "0.0305";
25972     src = fetchurl {
25973       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-Run-0.0305.tar.gz";
25974       hash = "sha256-+Jpx3WD44qd26OYBd8ntXlkJbUAF1QvSmJuSeeCHwkg=";
25975     };
25976     buildInputs = [ TestTrap ];
25977     propagatedBuildInputs = [ IPCSystemSimple ListMoreUtils MooseXStrictConstructor TextSprintfNamed UNIVERSALrequire ];
25978     meta = {
25979       description = "Base class to run standard TAP scripts";
25980       homepage = "https://web-cpan.shlomifish.org/modules/Test-Run";
25981       license = with lib.licenses; [ mit ];
25982     };
25983   };
25985   TestRunCmdLine = buildPerlModule {
25986     pname = "Test-Run-CmdLine";
25987     version = "0.0132";
25988     src = fetchurl {
25989       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-Run-CmdLine-0.0132.tar.gz";
25990       hash = "sha256-ssORzVRjV378dti/so6tKz1OOm+pLbDvNMANyfTPpwc=";
25991     };
25992     buildInputs = [ TestRun TestTrap ];
25993     propagatedBuildInputs = [ MooseXGetopt UNIVERSALrequire YAMLLibYAML ];
25994     doCheck = !stdenv.hostPlatform.isDarwin;
25995     meta = {
25996       description = "Analyze tests from the command line using Test::Run";
25997       homepage = "http://web-cpan.berlios.de/modules/Test-Run";
25998       license = with lib.licenses; [ mit ];
25999       mainProgram = "runprove";
26000     };
26001   };
26003   TestRunPluginAlternateInterpreters = buildPerlModule {
26004     pname = "Test-Run-Plugin-AlternateInterpreters";
26005     version = "0.0125";
26006     src = fetchurl {
26007       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-Run-Plugin-AlternateInterpreters-0.0125.tar.gz";
26008       hash = "sha256-UsNomxRdgh8XCj8uXPM6DCkoKE3d6W1sN88VAA8ymbs=";
26009     };
26010     buildInputs = [ TestRun TestRunCmdLine TestTrap YAMLLibYAML ];
26011     propagatedBuildInputs = [ Moose ];
26012     meta = {
26013       description = "Define different interpreters for different test scripts with Test::Run";
26014       homepage = "https://web-cpan.shlomifish.org/modules/Test-Run";
26015       license = with lib.licenses; [ mit ];
26016     };
26017   };
26019   TestRunPluginBreakOnFailure = buildPerlModule {
26020     pname = "Test-Run-Plugin-BreakOnFailure";
26021     version = "0.0.6";
26022     src = fetchurl {
26023       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-Run-Plugin-BreakOnFailure-v0.0.6.tar.gz";
26024       hash = "sha256-oBgO4+LwwUQSkFXaBeKTFRC59QcXTQ+6yjwMndBNE6k=";
26025     };
26026     buildInputs = [ TestRun TestRunCmdLine TestTrap YAMLLibYAML ];
26027     propagatedBuildInputs = [ Moose ];
26028     meta = {
26029       description = "Stop processing the entire test suite";
26030       homepage = "https://web-cpan.shlomifish.org/modules/Test-Run";
26031       license = with lib.licenses; [ mit ];
26032     };
26033   };
26035   TestRunPluginColorFileVerdicts = buildPerlModule {
26036     pname = "Test-Run-Plugin-ColorFileVerdicts";
26037     version = "0.0125";
26038     src = fetchurl {
26039       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-Run-Plugin-ColorFileVerdicts-0.0125.tar.gz";
26040       hash = "sha256-HCQaLBSm/WZLRy5Lb2iP1gyHlzsxjITgFIccBn8uHkY=";
26041     };
26042     buildInputs = [ TestRun TestRunCmdLine TestTrap ];
26043     propagatedBuildInputs = [ Moose ];
26044     moreInputs = [ TestTrap ]; # Added because tests were failing without it
26045     doCheck=true;
26046     meta = {
26047       description = "Make the file verdict ('ok', 'NOT OK')";
26048       homepage = "https://web-cpan.shlomifish.org/modules/Test-Run";
26049       license = with lib.licenses; [ mit ];
26050     };
26051   };
26053   TestRunPluginColorSummary = buildPerlModule {
26054     pname = "Test-Run-Plugin-ColorSummary";
26055     version = "0.0203";
26056     src = fetchurl {
26057       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-Run-Plugin-ColorSummary-0.0203.tar.gz";
26058       hash = "sha256-e9l5N5spa1EPxVuxwAuKEM00hQ5OIZf1cBtUYAY/iv0=";
26059     };
26060     buildInputs = [ TestRun TestRunCmdLine TestTrap ];
26061     moreInputs = [ TestTrap ]; # Added because tests were failing without it
26062     doCheck=true;
26063     meta = {
26064       description = "Test::Run plugin that";
26065       homepage = "https://web-cpan.shlomifish.org/modules/Test-Run";
26066       license = with lib.licenses; [ mit ];
26067     };
26068   };
26070   TestRunPluginTrimDisplayedFilenames = buildPerlModule {
26071     pname = "Test-Run-Plugin-TrimDisplayedFilenames";
26072     version = "0.0126";
26073     src = fetchurl {
26074       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-Run-Plugin-TrimDisplayedFilenames-0.0126.tar.gz";
26075       hash = "sha256-ioZJw8anmIp3N65KcW1g4MazIXMBtAFT6tNquPTqkCg=";
26076     };
26077     buildInputs = [ TestRun TestRunCmdLine TestTrap YAMLLibYAML ];
26078     propagatedBuildInputs = [ Moose ];
26079     meta = {
26080       description = "Trim the first components";
26081       homepage = "https://web-cpan.shlomifish.org/modules/Test-Run";
26082       license = with lib.licenses; [ mit ];
26083     };
26084   };
26086   TestRunValgrind = buildPerlModule {
26087     pname = "Test-RunValgrind";
26088     version = "0.2.2";
26089     src = fetchurl {
26090       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-RunValgrind-0.2.2.tar.gz";
26091       hash = "sha256-aRPRTK3CUbI8W3I1+NSsPeKHE41xK3W9lLACrwuPpe4=";
26092     };
26093     buildInputs = [ TestTrap ];
26094     propagatedBuildInputs = [ PathTiny ];
26095     meta = {
26096       description = "Tests that an external program is valgrind-clean";
26097       homepage = "https://metacpan.org/release/Test-RunValgrind";
26098       license = with lib.licenses; [ mit ];
26099     };
26100   };
26102   TestScript = buildPerlPackage {
26103     pname = "Test-Script";
26104     version = "1.29";
26105     src = fetchurl {
26106       url = "mirror://cpan/authors/id/P/PL/PLICEASE/Test-Script-1.29.tar.gz";
26107       hash = "sha256-iS5+bB6nsWcQkJlCz1wL2rcO7i79SqnBbqlS4rkPiVA=";
26108     };
26110     buildInputs = [ Test2Suite ];
26112     propagatedBuildInputs = [ CaptureTiny ProbePerl ];
26113     meta = {
26114       description = "Basic cross-platform tests for scripts";
26115       license = with lib.licenses; [ artistic1 gpl1Plus ];
26116     };
26117   };
26119   TestScriptRun = buildPerlPackage {
26120     pname = "Test-Script-Run";
26121     version = "0.08";
26122     src = fetchurl {
26123       url = "mirror://cpan/authors/id/S/SU/SUNNAVY/Test-Script-Run-0.08.tar.gz";
26124       hash = "sha256-H+8hbnC8QlrOPixDcN/N3bXnmLCZ77omeSRKTVvBqwo=";
26125     };
26126     propagatedBuildInputs = [ IPCRun3 TestException ];
26127     meta = {
26128       description = "Test scripts with run";
26129       license = with lib.licenses; [ artistic1 gpl1Plus ];
26130     };
26131   };
26133   TestSharedFork = buildPerlPackage {
26134     pname = "Test-SharedFork";
26135     version = "0.35";
26136     src = fetchurl {
26137       url = "mirror://cpan/authors/id/E/EX/EXODIST/Test-SharedFork-0.35.tar.gz";
26138       hash = "sha256-KTLoZWEOgHWPdkxYZ1fvjhHbEoTZWOJeS3qFCYQUxZ8=";
26139     };
26140     buildInputs = [ TestRequires ];
26141     meta = {
26142       description = "Fork test";
26143       homepage = "https://github.com/tokuhirom/Test-SharedFork";
26144       license = with lib.licenses; [ artistic1 gpl1Plus ];
26145     };
26146   };
26148   TestSimple13 = buildPerlPackage {
26149     pname = "Test-Simple";
26150     version = "1.302195";
26151     src = fetchurl {
26152       url = "mirror://cpan/authors/id/E/EX/EXODIST/Test-Simple-1.302195.tar.gz";
26153       hash = "sha256-s5C7I1kuC5Rsla27PDCxG8Y0ooayhHvmEa2SnFfjmmw=";
26154     };
26155     meta = {
26156       description = "Basic utilities for writing tests";
26157       license = with lib.licenses; [ artistic1 gpl1Plus ];
26158     };
26159   };
26161   TestSnapshot = buildPerlPackage {
26162     pname = "Test-Snapshot";
26163     version = "0.06";
26164     src = fetchurl {
26165       url = "mirror://cpan/authors/id/E/ET/ETJ/Test-Snapshot-0.06.tar.gz";
26166       hash = "sha256-9N16mlW6oiR1QK40IQzQWgT50QYb7+yXockO2pW/rkU=";
26167     };
26168     buildInputs = [ CaptureTiny ];
26169     propagatedBuildInputs = [ TextDiff ];
26170     meta = {
26171       description = "Test against data stored in automatically-named file";
26172       license = with lib.licenses; [ artistic2 ];
26173     };
26174   };
26176   TestSpec = buildPerlPackage {
26177     pname = "Test-Spec";
26178     version = "0.54";
26179     src = fetchurl {
26180       url = "mirror://cpan/authors/id/A/AK/AKZHAN/Test-Spec-0.54.tar.gz";
26181       hash = "sha256-CjHPEmXc7pC7xCRWrWC7Njr8f6xml//7D9SbupKhZdI=";
26182     };
26183     propagatedBuildInputs = [ DevelGlobalPhase PackageStash TieIxHash ];
26184     buildInputs = [ TestDeep TestTrap ];
26185     meta = {
26186       description = "Write tests in a declarative specification style";
26187       license = with lib.licenses; [ artistic1 gpl1Plus ];
26188     };
26189   };
26191   TestSubCalls = buildPerlPackage {
26192     pname = "Test-SubCalls";
26193     version = "1.10";
26194     src = fetchurl {
26195       url = "mirror://cpan/authors/id/E/ET/ETHER/Test-SubCalls-1.10.tar.gz";
26196       hash = "sha256-y8Hps1oF5x/rwT5e9UejHIJJiZu2AR29ydn/Nm3atsI=";
26197     };
26198     propagatedBuildInputs = [ HookLexWrap ];
26199     meta = {
26200       description = "Track the number of times subs are called";
26201       license = with lib.licenses; [ artistic1 gpl1Plus ];
26202     };
26203   };
26205   TestSynopsis = buildPerlPackage {
26206     pname = "Test-Synopsis";
26207     version = "0.17";
26208     src = fetchurl {
26209       url = "mirror://cpan/authors/id/Z/ZO/ZOFFIX/Test-Synopsis-0.17.tar.gz";
26210       hash = "sha256-0mjJizPS+hTbsisg1lYbq0ie6CWH374ZrSd2IMe4tt4=";
26211     };
26212     meta = {
26213       description = "Test your SYNOPSIS code";
26214       homepage = "https://metacpan.org/release/Test-Synopsis";
26215       license = with lib.licenses; [ artistic1 gpl1Plus ];
26216     };
26217   };
26219   TestTableDriven = buildPerlPackage {
26220     pname = "Test-TableDriven";
26221     version = "0.02";
26222     src = fetchurl {
26223       url = "mirror://cpan/authors/id/J/JR/JROCKWAY/Test-TableDriven-0.02.tar.gz";
26224       hash = "sha256-Qlh4r88qFOBHyviRsZFen1/7A2lBYJxDjg370bWxhZo=";
26225     };
26226     meta = {
26227       description = "Write tests, not scripts that run them";
26228       license = with lib.licenses; [ artistic1 gpl1Plus ];
26229     };
26230   };
26232   TestTempDirTiny = buildPerlPackage {
26233     pname = "Test-TempDir-Tiny";
26234     version = "0.018";
26235     src = fetchurl {
26236       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Test-TempDir-Tiny-0.018.tar.gz";
26237       hash = "sha256-17eh/X/M4BaNRPuIdpGP6KmvSa4OuLCWJbZ7GNcfXoE=";
26238     };
26239     meta = {
26240       description = "Temporary directories that stick around when tests fail";
26241       homepage = "https://github.com/dagolden/Test-TempDir-Tiny";
26242       license = with lib.licenses; [ asl20 ];
26243     };
26244   };
26246   TestTCP = buildPerlPackage {
26247     pname = "Test-TCP";
26248     version = "2.22";
26249     src = fetchurl {
26250       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Test-TCP-2.22.tar.gz";
26251       hash = "sha256-PlPDwG1tCYCiv+uRVgK3FOaC7iEa6IwRdIzyzHFOe1c=";
26252     };
26253     buildInputs = [ TestSharedFork ];
26254     meta = {
26255       description = "Testing TCP program";
26256       homepage = "https://github.com/tokuhirom/Test-TCP";
26257       license = with lib.licenses; [ artistic1 gpl1Plus ];
26258     };
26259   };
26261   TestUNIXSock = buildPerlModule rec {
26262     pname = "Test-UNIXSock";
26263     version = "0.4";
26264     src = fetchurl {
26265       url = "mirror://cpan/authors/id/F/FU/FUJIWARA/${pname}-${version}.tar.gz";
26266       hash = "sha256-NzC0zBA0Es+/b+JHvbwwC+l94wnMmxxcvVc3E7hojz8=";
26267     };
26268     buildInputs = [ ModuleBuildTiny ];
26269     propagatedBuildInputs = [ TestSharedFork TestTCP ];
26270     meta = {
26271       description = "Testing UNIX domain socket program";
26272       homepage = "https://github.com/fujiwara/Test-UNIXSock";
26273       license = with lib.licenses; [ artistic1 gpl1Plus ];
26274     };
26275   };
26277   TestTime = buildPerlPackage {
26278     pname = "Test-Time";
26279     version = "0.092";
26280     src = fetchurl {
26281       url = "mirror://cpan/authors/id/A/AN/ANATOFUZ/Test-Time-0.092.tar.gz";
26282       hash = "sha256-MNkPVM6ECJPHuiysKk0e7NTJzfgFkQxZXjronf1kRzg=";
26283     };
26284     meta = {
26285       description = "Overrides the time() and sleep() core functions for testing";
26286       homepage = "https://github.com/cho45/Test-Time";
26287       license = with lib.licenses; [ artistic1 gpl1Plus ];
26288     };
26289   };
26291   TestToolbox = buildPerlModule {
26292     pname = "Test-Toolbox";
26293     version = "0.4";
26294     src = fetchurl {
26295       url = "mirror://cpan/authors/id/M/MI/MIKO/Test-Toolbox-0.4.tar.gz";
26296       hash = "sha256-QCC1x/OhWsmxh9Bd/ZgWuAMOwNSkf/g3P3Yzu2FOvcM=";
26297     };
26298     meta = {
26299       description = "Test::Toolbox - tools for testing";
26300       license = with lib.licenses; [ artistic1 gpl1Plus ];
26301     };
26302   };
26304   TestTrailingSpace = buildPerlModule {
26305     pname = "Test-TrailingSpace";
26306     version = "0.0601";
26307     src = fetchurl {
26308       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-TrailingSpace-0.0601.tar.gz";
26309       hash = "sha256-q7jOdEg6Y9c/4e9gO3zgptR8mO3nMZVdc1eE+tHcT8w=";
26310     };
26311     buildInputs = [ FileTreeCreate ];
26312     propagatedBuildInputs = [ FileFindObjectRule ];
26313     meta = {
26314       description = "Test for trailing space in source files";
26315       homepage = "https://metacpan.org/release/Test-TrailingSpace";
26316       license = with lib.licenses; [ mit ];
26317     };
26318   };
26320   TestUnitLite = buildPerlModule {
26321     pname = "Test-Unit-Lite";
26322     version = "0.1202";
26323     src = fetchurl {
26324       url = "mirror://cpan/authors/id/D/DE/DEXTER/Test-Unit-Lite-0.1202.tar.gz";
26325       hash = "sha256-NR0l7nExYoqvfjmV/h//uJOuf+bvWM8zcO0yCVP1sqg=";
26326     };
26327     meta = {
26328       description = "Unit testing without external dependencies";
26329       license = with lib.licenses; [ artistic1 gpl1Plus ];
26330     };
26331   };
26333   TestWarn = buildPerlPackage {
26334     pname = "Test-Warn";
26335     version = "0.37";
26336     src = fetchurl {
26337       url = "mirror://cpan/authors/id/B/BI/BIGJ/Test-Warn-0.37.tar.gz";
26338       hash = "sha256-mMoy5/L16om4v7mgYJl389FT4kLi5RcFEmy5VPGga1c=";
26339     };
26340     propagatedBuildInputs = [ SubUplevel ];
26341     meta = {
26342       description = "Perl extension to test methods for warnings";
26343       license = with lib.licenses; [ artistic1 gpl1Plus ];
26344     };
26345   };
26347   TestWarnings = buildPerlPackage {
26348     pname = "Test-Warnings";
26349     version = "0.032";
26350     src = fetchurl {
26351       url = "mirror://cpan/authors/id/E/ET/ETHER/Test-Warnings-0.032.tar.gz";
26352       hash = "sha256-Ryfa4kFunwfkHi3DqRQ7pq/8HsV2UhF8mdUAOOMT6dk=";
26353     };
26354     buildInputs = [ CPANMetaCheck PadWalker ];
26355     meta = {
26356       description = "Test for warnings and the lack of them";
26357       homepage = "https://github.com/karenetheridge/Test-Warnings";
26358       license = with lib.licenses; [ artistic1 gpl1Plus ];
26359     };
26360   };
26362   TestWeaken = buildPerlPackage {
26363     pname = "Test-Weaken";
26364     version = "3.022000";
26365     src = fetchurl {
26366       url = "mirror://cpan/authors/id/K/KR/KRYDE/Test-Weaken-3.022000.tar.gz";
26367       hash = "sha256-JjGocSExAmLg6WEHpvoO1pSHt3AVIHc77l+prMwpX1s=";
26368     };
26369     propagatedBuildInputs = [ ScalarListUtils ];
26370     meta = {
26371       description = "Test that freed memory objects were, indeed, freed";
26372       license = with lib.licenses; [ artistic1 gpl1Plus ];
26373     };
26374   };
26376   TestWithoutModule = buildPerlPackage {
26377     pname = "Test-Without-Module";
26378     version = "0.21";
26379     src = fetchurl {
26380       url = "mirror://cpan/authors/id/C/CO/CORION/Test-Without-Module-0.21.tar.gz";
26381       hash = "sha256-PN6vraxIU+vq/miTRtVV2l36PPqdTITj5ee/7lC+7EY=";
26382     };
26383     meta = {
26384       description = "Test fallback behaviour in absence of modules";
26385       license = with lib.licenses; [ artistic1 gpl1Plus ];
26386     };
26387   };
26389   TestWWWMechanize = buildPerlPackage {
26390     pname = "Test-WWW-Mechanize";
26391     version = "1.60";
26392     src = fetchurl {
26393       url = "mirror://cpan/authors/id/P/PE/PETDANCE/Test-WWW-Mechanize-1.60.tar.gz";
26394       hash = "sha256-I/1y5+0b553h0CotFfDfCTQV4Oq2/GFf9rtoh0Emhnc=";
26395     };
26396     buildInputs = [ TestLongString ];
26397     propagatedBuildInputs = [ CarpAssertMore HTTPServerSimple WWWMechanize ];
26398     meta = {
26399       description = "Testing-specific WWW::Mechanize subclass";
26400       homepage = "https://github.com/libwww-perl/WWW-Mechanize";
26401       license = with lib.licenses; [ artistic2 ];
26402     };
26403   };
26405   TestWWWMechanizeCatalyst = buildPerlPackage {
26406     pname = "Test-WWW-Mechanize-Catalyst";
26407     version = "0.62";
26408     src = fetchurl {
26409       url = "mirror://cpan/authors/id/M/MS/MSTROUT/Test-WWW-Mechanize-Catalyst-0.62.tar.gz";
26410       hash = "sha256-GDveGuerpw3LPtd3xVSCN/QsPtVR/VvGWM7obQIWrLE=";
26411     };
26412     doCheck = false; # listens on an external port
26413     propagatedBuildInputs = [ CatalystRuntime WWWMechanize ];
26414     buildInputs = [ CatalystPluginSession CatalystPluginSessionStateCookie TestException TestWWWMechanize Testutf8 ];
26415     meta = {
26416       description = "Test::WWW::Mechanize for Catalyst";
26417       license = with lib.licenses; [ artistic1 gpl1Plus ];
26418     };
26419   };
26421   TestWWWMechanizeCGI = buildPerlPackage {
26422     pname = "Test-WWW-Mechanize-CGI";
26423     version = "0.1";
26424     src = fetchurl {
26425       url = "mirror://cpan/authors/id/M/MR/MRAMBERG/Test-WWW-Mechanize-CGI-0.1.tar.gz";
26426       hash = "sha256-pXagsi470a/JJ0/FY7A3ru53cThJyev2pq1EFcFsnC8=";
26427     };
26428     propagatedBuildInputs = [ WWWMechanizeCGI ];
26429     buildInputs = [ TestLongString TestWWWMechanize ];
26430     meta = {
26431       description = "Test CGI applications with Test::WWW::Mechanize";
26432       license = with lib.licenses; [ artistic1 gpl1Plus ];
26433     };
26434   };
26436   TestWWWMechanizePSGI = buildPerlPackage {
26437     pname = "Test-WWW-Mechanize-PSGI";
26438     version = "0.39";
26439     src = fetchurl {
26440       url = "mirror://cpan/authors/id/O/OA/OALDERS/Test-WWW-Mechanize-PSGI-0.39.tar.gz";
26441       hash = "sha256-R2s6s7R9U05Nag9JkAIdXTTGnsk3rAcW5mzop7yHmVg=";
26442     };
26443     buildInputs = [ CGI TestLongString TestWWWMechanize ];
26444     propagatedBuildInputs = [ Plack ];
26445     meta = {
26446       description = "Test PSGI programs using WWW::Mechanize";
26447       homepage = "https://github.com/acme/test-www-mechanize-psgi";
26448       license = with lib.licenses; [ artistic1 gpl1Plus ];
26449     };
26450   };
26452   TestXPath = buildPerlPackage {
26453     pname = "Test-XPath";
26454     version = "0.20";
26455     src = fetchurl {
26456       url = "mirror://cpan/authors/id/M/MA/MANWAR/Test-XPath-0.20.tar.gz";
26457       hash = "sha256-36phHnFGrZyXabW89oiUmXa4Ny3354ekC5M6FI2JIDk=";
26458     };
26459     propagatedBuildInputs = [ XMLLibXML ];
26460     meta = {
26461       description = "Test XML and HTML content and structure with XPath expressions";
26462       license = with lib.licenses; [ artistic1 gpl1Plus ];
26463     };
26464   };
26466   TestYAML = buildPerlPackage {
26467     pname = "Test-YAML";
26468     version = "1.07";
26469     src = fetchurl {
26470       url = "mirror://cpan/authors/id/T/TI/TINITA/Test-YAML-1.07.tar.gz";
26471       hash = "sha256-HzANA09GKYy5KWCRLMBLrDP7J/BbiFLY8FHhELnNmV8=";
26472     };
26473     buildInputs = [ TestBase ];
26474     meta = {
26475       description = "Testing Module for YAML Implementations";
26476       license = with lib.licenses; [ artistic1 gpl1Plus ];
26477       mainProgram = "test-yaml";
26478     };
26479   };
26481   TextAligner = buildPerlModule {
26482     pname = "Text-Aligner";
26483     version = "0.16";
26484     src = fetchurl {
26485       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Text-Aligner-0.16.tar.gz";
26486       hash = "sha256-XIV9vOWG9X+j18Tr0yACOrOyljsgSUKK4BvTvE8hVyU=";
26487     };
26488     meta = {
26489       description = "Module to align text";
26490       homepage = "https://metacpan.org/release/Text-Aligner";
26491       license = with lib.licenses; [ isc ];
26492     };
26493   };
26495   TextAspell = buildPerlPackage {
26496     pname = "Text-Aspell";
26497     version = "0.09";
26498     src = fetchurl {
26499       url = "mirror://cpan/authors/id/H/HA/HANK/Text-Aspell-0.09.tar.gz";
26500       hash = "sha256-K+oyCfGOJzsZPjF1pC0mk5GRnkmrEGtuJSOV0nIYL2U=";
26501     };
26502     propagatedBuildInputs = [ pkgs.aspell ];
26503     ASPELL_CONF = "dict-dir ${pkgs.aspellDicts.en}/lib/aspell";
26504     env.NIX_CFLAGS_COMPILE = "-I${pkgs.aspell}/include";
26505     NIX_CFLAGS_LINK = "-L${pkgs.aspell}/lib -laspell";
26506     meta = {
26507       description = "Perl interface to the GNU Aspell library";
26508       license = with lib.licenses; [ artistic1 gpl1Plus ];
26509     };
26510   };
26512   TextAutoformat = buildPerlPackage {
26513     pname = "Text-Autoformat";
26514     version = "1.75";
26515     src = fetchurl {
26516       url = "mirror://cpan/authors/id/N/NE/NEILB/Text-Autoformat-1.75.tar.gz";
26517       hash = "sha256-ndT0zj2uxLTb9bWdrEVoqJRq7RLCi05ZiMjoxgLGt3E=";
26518     };
26519     propagatedBuildInputs = [ TextReform ];
26520     meta = {
26521       description = "Automatic text wrapping and reformatting";
26522       homepage = "https://github.com/neilb/Text-Autoformat";
26523       license = with lib.licenses; [ artistic1 gpl1Plus ];
26524     };
26525   };
26527   TextBalanced = buildPerlPackage {
26528     pname = "Text-Balanced";
26529     version = "2.06";
26530     src = fetchurl {
26531       url = "mirror://cpan/authors/id/S/SH/SHAY/Text-Balanced-2.06.tar.gz";
26532       hash = "sha256-dz4PDyHAyyz2ZM7muij/cCWbq8yJL5tlD5y9oAvgkq0=";
26533     };
26534     meta = {
26535       description = "Extract delimited text sequences from strings";
26536       license = with lib.licenses; [ artistic1 gpl1Plus ];
26537     };
26538   };
26540   TextBibTeX = buildPerlModule {
26541     pname = "Text-BibTeX";
26542     version = "0.89";
26543     buildInputs = [ CaptureTiny ConfigAutoConf ExtUtilsLibBuilder ];
26544     src = fetchurl {
26545       url = "mirror://cpan/authors/id/A/AM/AMBS/Text-BibTeX-0.89.tar.gz";
26546       hash = "sha256-iKeOvwiOx1AvQBxaKxOMhiz1RYU0t3MiO786r0EiQZY=";
26547     };
26548     # libbtparse.so: cannot open shared object file
26549     patches = [ ../development/perl-modules/TextBibTeX-use-lib.patch ];
26550     perlPreHook = "export LD=$CC";
26551     perlPostHook = lib.optionalString stdenv.hostPlatform.isDarwin ''
26552       oldPath="$(pwd)/btparse/src/libbtparse.dylib"
26553       newPath="$out/lib/libbtparse.dylib"
26555       install_name_tool -id "$newPath" "$newPath"
26556       install_name_tool -change "$oldPath" "$newPath" "$out/bin/biblex"
26557       install_name_tool -change "$oldPath" "$newPath" "$out/bin/bibparse"
26558       install_name_tool -change "$oldPath" "$newPath" "$out/bin/dumpnames"
26559       install_name_tool -change "$oldPath" "$newPath" "$out/${perl.libPrefix}/${perl.version}/darwin"*"-2level/auto/Text/BibTeX/BibTeX.bundle"
26560     '';
26561     meta = {
26562       description = "Interface to read and parse BibTeX files";
26563       license = with lib.licenses; [ artistic1 gpl1Plus ];
26564     };
26565   };
26567   TextBrew = buildPerlPackage {
26568     pname = "Text-Brew";
26569     version = "0.02";
26570     src = fetchurl {
26571       url = "mirror://cpan/authors/id/K/KC/KCIVEY/Text-Brew-0.02.tar.gz";
26572       hash = "sha256-qhuFhBz5/G/jODZrvIcKTpMEonZB5j+Sof2Wvujr9kw=";
26573     };
26574     meta = {
26575       description = "Implementation of the Brew edit distance";
26576       license = with lib.licenses; [ artistic1 gpl1Plus ];
26577     };
26578   };
26580   TextCharWidth = buildPerlPackage {
26581     pname = "Text-CharWidth";
26582     version = "0.04";
26583     src = fetchurl {
26584       url = "mirror://cpan/authors/id/K/KU/KUBOTA/Text-CharWidth-0.04.tar.gz";
26585       hash = "sha256-q97V9P3ZM46J/S8dgnHESYna5b9Qrs5BthedjiMHBPg=";
26586     };
26587     meta = {
26588       description = "Get number of occupied columns of a string on terminal";
26589       license = with lib.licenses; [ artistic1 gpl1Plus ];
26590     };
26591   };
26593   TextCSV = buildPerlPackage {
26594     pname = "Text-CSV";
26595     version = "2.03";
26596     src = fetchurl {
26597       url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/Text-CSV-2.03.tar.gz";
26598       hash = "sha256-SLvOnyNJNaiFlWGOBN0UFigkbWUPKnJgJN8cE34LZfs=";
26599     };
26600     meta = {
26601       description = "Comma-separated values manipulator (using XS or PurePerl)";
26602       license = with lib.licenses; [ artistic1 gpl1Plus ];
26603     };
26604   };
26606   TextCSVEncoded = buildPerlPackage {
26607     pname = "Text-CSV-Encoded";
26608     version = "0.25";
26609     src = fetchurl {
26610       url = "mirror://cpan/authors/id/Z/ZA/ZARQUON/Text-CSV-Encoded-0.25.tar.gz";
26611       hash = "sha256-JIpZg6IN1XeGY56I2v3WVPO5OSVJASDW1xLaayvludA=";
26612     };
26613     propagatedBuildInputs = [ TextCSV ];
26614     meta = {
26615       description = "Encoding aware Text::CSV";
26616       homepage = "https://github.com/singingfish/Text-CSV-Encoded";
26617       license = with lib.licenses; [ artistic1 gpl1Plus ];
26618     };
26619   };
26621   TextCSV_XS = buildPerlPackage {
26622     pname = "Text-CSV_XS";
26623     version = "1.52";
26624     src = fetchurl {
26625       url = "mirror://cpan/authors/id/H/HM/HMBRAND/Text-CSV_XS-1.52.tgz";
26626       hash = "sha256-5BWqcFut+Es1ncTA8MmC8b9whIHaoUdW8xNufInA5B0=";
26627     };
26628     meta = {
26629       description = "Comma-Separated Values manipulation routines";
26630       homepage = "https://metacpan.org/pod/Text::CSV_XS";
26631       license = with lib.licenses; [ artistic1 gpl1Plus ];
26632     };
26633   };
26635   TextDiff = buildPerlPackage {
26636     pname = "Text-Diff";
26637     version = "1.45";
26638     src = fetchurl {
26639       url = "mirror://cpan/authors/id/N/NE/NEILB/Text-Diff-1.45.tar.gz";
26640       hash = "sha256-6Lqgexs/U+AK82NomLv3OuyaD/OPlFNu3h2+lu8IbwQ=";
26641     };
26642     propagatedBuildInputs = [ AlgorithmDiff ];
26643     meta = {
26644       description = "Perform diffs on files and record sets";
26645       license = with lib.licenses; [ artistic1 gpl1Plus ];
26646     };
26647   };
26649   TextFormat = buildPerlModule {
26650     pname = "Text-Format";
26651     version = "0.62";
26652     src = fetchurl {
26653       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Text-Format-0.62.tar.gz";
26654       hash = "sha256-fUKQVzGeEjxZC6B2UzTwreSl656o23wOxNOQLeX5BAQ=";
26655     };
26656     meta = {
26657       description = "Various subroutines to format text";
26658       homepage = "https://github.com/shlomif/perl-Module-Format";
26659       license = with lib.licenses; [ artistic1 gpl1Plus ];
26660       maintainers = with maintainers; [ bcdarwin ];
26661     };
26662   };
26664   TextDiffFormattedHTML = buildPerlPackage {
26665     pname = "Text-Diff-FormattedHTML";
26666     version = "0.08";
26667     src = fetchurl {
26668       url = "mirror://cpan/authors/id/A/AM/AMBS/Text-Diff-FormattedHTML-0.08.tar.gz";
26669       hash = "sha256-Oat3WlwFZ0Xyq9jMfBy8VJbf735SqfS9itpqpsnHtw0=";
26670     };
26671     propagatedBuildInputs = [ FileSlurp StringDiff ];
26672     meta = {
26673       description = "Generate a colorful HTML diff of strings/files";
26674       license = with lib.licenses; [ artistic1 gpl1Plus ];
26675       maintainers = [ maintainers.sgo ];
26676     };
26677   };
26679   TextFuzzy = buildPerlPackage {
26680     pname = "Text-Fuzzy";
26681     version = "0.29";
26682     src = fetchurl {
26683       url = "mirror://cpan/authors/id/B/BK/BKB/Text-Fuzzy-0.29.tar.gz";
26684       hash = "sha256-PfXP0soaTFyn/3urPMjVOtIGThNMvxEATzz4xLkFW/8=";
26685     };
26686     meta = {
26687       description = "Partial string matching using edit distances";
26688       license = with lib.licenses; [ artistic1 gpl1Plus ];
26689     };
26690   };
26692   TextGerman = buildPerlPackage {
26693     pname = "Text-German";
26694     version = "0.06";
26695     src = fetchurl {
26696       url = "mirror://cpan/authors/id/U/UL/ULPFR/Text-German-0.06.tar.gz";
26697       hash = "sha256-ki1PGQEtl3OxH0pvZCEF6fkT9YZvRGG2BZymdNW7B90=";
26698     };
26699     meta = {
26700       description = "German grundform reduction";
26701       license = with lib.licenses; [ artistic1 gpl1Plus ];
26702     };
26703   };
26705   TextGlob = buildPerlPackage {
26706     pname = "Text-Glob";
26707     version = "0.11";
26708     src = fetchurl {
26709       url = "mirror://cpan/authors/id/R/RC/RCLAMP/Text-Glob-0.11.tar.gz";
26710       hash = "sha256-BpzNSdPwot7bEV9L3J+6wHqDWShAlT0fzfw5650wUoc=";
26711     };
26712     meta = {
26713       description = "Match globbing patterns against text";
26714       license = with lib.licenses; [ artistic1 gpl1Plus ];
26715     };
26716   };
26718   TextHogan = buildPerlPackage {
26719     pname = "Text-Hogan";
26720     version = "2.03";
26721     src = fetchurl {
26722       url = "mirror://cpan/authors/id/K/KA/KAORU/Text-Hogan-2.03.tar.gz";
26723       hash = "sha256-WNkj7eTFmEiI75u7JW2IVMxdIqRwikd0sxPLU4jFYXo=";
26724     };
26725     propagatedBuildInputs = [ Clone RefUtil TextTrim ];
26726     buildInputs = [ DataVisitor PathTiny TryTiny YAML ];
26727     meta = {
26728       description = "Text::Hogan - A mustache templating engine statement-for-statement cloned from hogan.js";
26729       license = with lib.licenses; [ artistic1 gpl1Plus ];
26730     };
26731   };
26733   TextIconv = buildPerlPackage {
26734     pname = "Text-Iconv";
26735     version = "1.7";
26736     src = fetchurl {
26737       url = "mirror://cpan/authors/id/M/MP/MPIOTR/Text-Iconv-1.7.tar.gz";
26738       hash = "sha256-W4C31ecJ00OTvLqIlxhkoXtEpb8PnkvO44PQKefS1cM=";
26739     };
26740     meta = {
26741       description = "Perl interface to iconv() codeset conversion function";
26742       license = with lib.licenses; [ artistic1 gpl1Plus ]; # taken from el6
26743       broken = stdenv.hostPlatform.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.TextIconv.x86_64-darwin
26744     };
26745   };
26747   TestInDistDir = buildPerlPackage {
26748     pname = "Test-InDistDir";
26749     version = "1.112071";
26750     src = fetchurl {
26751       url = "mirror://cpan/authors/id/M/MI/MITHALDU/Test-InDistDir-1.112071.tar.gz";
26752       hash = "sha256-kixcYzFPQG9MuzXsQjrCFU0sK3GmWt23cyydJAqD/vs=";
26753     };
26754     meta = {
26755       description = "Test environment setup for development with IDE";
26756       homepage = "https://github.com/wchristian/Test-InDistDir";
26757       license = with lib.licenses; [ wtfpl ];
26758       maintainers = [ maintainers.sgo ];
26759     };
26760   };
26762   TestInter = buildPerlPackage {
26763     pname = "Test-Inter";
26764     version = "1.10";
26765     src = fetchurl {
26766       url = "mirror://cpan/authors/id/S/SB/SBECK/Test-Inter-1.10.tar.gz";
26767       hash = "sha256-cewRXqwm+2aJGb1mQLQcNzInUuvUjBx222a3O679O10=";
26768     };
26769     buildInputs = [ FileFindRule TestPod TestPodCoverage ];
26770     meta = {
26771       description = "Framework for more readable interactive test scripts";
26772       license = with lib.licenses; [ artistic1 gpl1Plus ];
26773     };
26774   };
26776   TextLayout = buildPerlPackage {
26777     pname = "Text-Layout";
26778     version = "0.037";
26779     src = fetchurl {
26780       url = "mirror://cpan/authors/id/J/JV/JV/Text-Layout-0.037.tar.gz";
26781       hash = "sha256-WCeTQSR8SBh0BIdkAPBq19qm/nFilVgYXfNnPfCbnOo=";
26782     };
26783     buildInputs = [ IOString ObjectPad PDFAPI2 ];
26784     meta = {
26785       description = "Pango style markup formatting";
26786       license = with lib.licenses; [ artistic1 gpl1Plus ];
26787     };
26788   };
26790   TextLevenshteinXS = buildPerlPackage {
26791     pname = "Text-LevenshteinXS";
26792     version = "0.03";
26793     src = fetchurl {
26794       url = "mirror://cpan/authors/id/J/JG/JGOLDBERG/Text-LevenshteinXS-0.03.tar.gz";
26795       hash = "sha256-43T/eyN5Gc5eqSRfNW0ctSzIf9JrOlo4s/Pl/4KgFJE=";
26796     };
26797     meta = {
26798       description = "Levenshtein edit distance in a XS way";
26799       license = with lib.licenses; [ artistic1 gpl1Plus ];
26800     };
26801   };
26803   TextLorem = buildPerlPackage {
26804     pname = "Text-Lorem";
26805     version = "0.34";
26806     src = fetchurl {
26807       url = "mirror://cpan/authors/id/A/AD/ADEOLA/Text-Lorem-0.34.tar.gz";
26808       hash = "sha256-DOajwZkXsjI0JKGqdC2YiwY8OUQEJ6MQGkzsbb2EcVc=";
26809     };
26810     meta = {
26811       description = "Generate random Latin looking text";
26812       license = with lib.licenses; [ artistic1 gpl1Plus ];
26813       maintainers = [ maintainers.sgo ];
26814       mainProgram = "lorem";
26815     };
26816   };
26818   TestManifest = buildPerlPackage {
26819     pname = "Test-Manifest";
26820     version = "2.023";
26821     src = fetchurl {
26822       url = "mirror://cpan/authors/id/B/BD/BDFOY/Test-Manifest-2.023.tar.gz";
26823       hash = "sha256-0k5SVT58uc2oH5L/6MkrPkNGcY5HEIAaWzW38lGnceI=";
26824     };
26825     meta = {
26826       description = "Interact with a t/test_manifest file";
26827       homepage = "https://github.com/briandfoy/test-manifest";
26828       license = with lib.licenses; [ artistic2 ];
26829     };
26830   };
26832   TextMarkdown = buildPerlPackage {
26833     pname = "Text-Markdown";
26834     version = "1.000031";
26835     src = fetchurl {
26836       url = "mirror://cpan/authors/id/B/BO/BOBTFISH/Text-Markdown-1.000031.tar.gz";
26837       hash = "sha256-wZHG1ezrjLdcBWUZI2BmLSAtcWutB6IzxLMppChNxxs=";
26838     };
26839     nativeBuildInputs = [ shortenPerlShebang ];
26840     nativeCheckInputs = [ ListMoreUtils TestDifferences TestException ];
26841     postInstall = ''
26842       shortenPerlShebang $out/bin/Markdown.pl
26843     '';
26844     meta = {
26845       description = "Convert Markdown syntax to (X)HTML";
26846       license = with lib.licenses; [ bsd3 ];
26847       mainProgram = "Markdown.pl";
26848     };
26849   };
26851   TextMarkdownHoedown = buildPerlModule {
26852     pname = "Text-Markdown-Hoedown";
26853     version = "1.03";
26854     src = fetchurl {
26855       url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/Text-Markdown-Hoedown-1.03.tar.gz";
26856       hash = "sha256-U6cw/29IgrmavYVW8mqRH1gvZ1tZ8OFnJe0ey8CE7lA=";
26857     };
26858     buildInputs = [ Filepushd ];
26859     perlPreHook = lib.optionalString stdenv.hostPlatform.isDarwin "export LD=$CC";
26860     meta = {
26861       description = "Hoedown for Perl5";
26862       homepage = "https://github.com/tokuhirom/Text-Markdown-Hoedown";
26863       license = with lib.licenses; [ artistic1 gpl1Plus ];
26864     };
26865   };
26867   TestMinimumVersion = buildPerlPackage {
26868     pname = "Test-MinimumVersion";
26869     version = "0.101083";
26870     src = fetchurl {
26871       url = "mirror://cpan/authors/id/R/RJ/RJBS/Test-MinimumVersion-0.101083.tar.gz";
26872       hash = "sha256-MqHrzYA/oQ7vylU7w87dQ1lqdZ3Dl1revSJoiCPDauo=";
26873     };
26874     propagatedBuildInputs = [ PerlMinimumVersion ];
26875     meta = {
26876       description = "Does your code require newer perl than you think?";
26877       homepage = "https://github.com/rjbs/Test-MinimumVersion";
26878       license = with lib.licenses; [ artistic1 gpl1Plus ];
26879     };
26880   };
26882   TextMicroTemplate = buildPerlPackage {
26883     pname = "Text-MicroTemplate";
26884     version = "0.24";
26885     src = fetchurl {
26886       url = "mirror://cpan/authors/id/K/KA/KAZUHO/Text-MicroTemplate-0.24.tar.gz";
26887       hash = "sha256-MoAecfNe6Kqg1XbOwSXO5Gs9SRWuZCvGSWISDU+XtMg=";
26888     };
26889     meta = {
26890       description = "Micro template engine with Perl5 language";
26891       license = with lib.licenses; [ artistic1 gpl1Plus ];
26892     };
26893   };
26895   TextMultiMarkdown = buildPerlPackage {
26896     pname = "Text-MultiMarkdown";
26897     version = "1.001";
26898     src = fetchurl {
26899       url = "mirror://cpan/authors/id/B/BD/BDFOY/Text-MultiMarkdown-1.001.tar.gz";
26900       hash = "sha256-UB1ErH2lSUSZzqhR6bL7UlOAgLDB6TYjDIwm1n4EhDM=";
26901     };
26902     buildInputs = [ ListMoreUtils TestException ];
26903     propagatedBuildInputs = [ HTMLParser TextMarkdown ];
26904     meta = {
26905       description = "Convert MultiMarkdown syntax to (X)HTML";
26906       license = with lib.licenses; [ bsd3 ];
26907       mainProgram = "MultiMarkdown.pl";
26908     };
26909   };
26911   TestNumberDelta = buildPerlPackage {
26912     pname = "Test-Number-Delta";
26913     version = "1.06";
26914     src = fetchurl {
26915       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Test-Number-Delta-1.06.tar.gz";
26916       hash = "sha256-U1QwkZ5v32zlX/dumJKvzLo7fUFg20XzrEOw+S/80Ek=";
26917     };
26918     meta = {
26919       description = "Compare the difference between numbers against a given tolerance";
26920       homepage = "https://github.com/dagolden/Test-Number-Delta";
26921       license = with lib.licenses; [ asl20 ];
26922     };
26923   };
26925   TextParsewords = buildPerlPackage {
26926     pname = "Text-ParseWords";
26927     version = "3.31";
26928     src = fetchurl {
26929       url = "mirror://cpan/authors/id/N/NE/NEILB/Text-ParseWords-3.31.tar.gz";
26930       hash = "sha256-KuVVughNdbK4/u640aAJESdoFa2oa8yxRSI2lk1aL8c=";
26931     };
26932     meta = {
26933       description = "Parse text into an array of tokens or array of arrays";
26934       license = with lib.licenses; [ artistic1 gpl1Plus ];
26935     };
26936   };
26938   TextPasswordPronounceable = buildPerlPackage {
26939     pname = "Text-Password-Pronounceable";
26940     version = "0.30";
26941     src = fetchurl {
26942       url = "mirror://cpan/authors/id/T/TS/TSIBLEY/Text-Password-Pronounceable-0.30.tar.gz";
26943       hash = "sha256-wYalAlbgvt+vsX584VfnxS8ZUDu3nhjr8GJVkR9urRo=";
26944     };
26945     meta = {
26946       description = "Generate pronounceable passwords";
26947       license = with lib.licenses; [ artistic1 gpl1Plus ];
26948     };
26949   };
26951   TextPatch = buildPerlPackage {
26952     pname = "Text-Patch";
26953     version = "1.8";
26954     src = fetchurl {
26955       url = "mirror://cpan/authors/id/C/CA/CADE/Text-Patch-1.8.tar.gz";
26956       hash = "sha256-6vGOYbpqPhQ4RqfMZvCM5YoMT72pKssxrt4lyztcPcw=";
26957     };
26958     propagatedBuildInputs = [ TextDiff ];
26959     meta = {
26960       description = "Patches text with given patch";
26961       license = with lib.licenses; [ gpl2Only ];
26962     };
26963   };
26965   TextPDF = buildPerlPackage {
26966     pname = "Text-PDF";
26967     version = "0.31";
26968     src = fetchurl {
26969       url = "mirror://cpan/authors/id/B/BH/BHALLISSY/Text-PDF-0.31.tar.gz";
26970       hash = "sha256-359RXuFZgEsNWnXVrbk8RYTH7EAdjFnCfp9zkl2NrGg=";
26971     };
26972     meta = {
26973       description = "Module for manipulating PDF files";
26974       license = with lib.licenses; [ artistic1 gpl1Plus ];
26975     };
26976   };
26978   TextQuoted = buildPerlPackage {
26979     pname = "Text-Quoted";
26980     version = "2.10";
26981     src = fetchurl {
26982       url = "mirror://cpan/authors/id/B/BP/BPS/Text-Quoted-2.10.tar.gz";
26983       hash = "sha256-CBv5XskiCvJs7IkWHmG/c/n7y/7uHZrxUTnl17cI9EU=";
26984     };
26985     propagatedBuildInputs = [ TextAutoformat ];
26986     meta = {
26987       description = "Extract the structure of a quoted mail message";
26988       license = with lib.licenses; [ artistic1 gpl1Plus ];
26989     };
26990   };
26992   TextRecordParser = buildPerlPackage {
26993     pname = "Text-RecordParser";
26994     version = "1.6.5";
26995     src = fetchurl {
26996       url = "mirror://cpan/authors/id/K/KC/KCLARK/Text-RecordParser-1.6.5.tar.gz";
26997       hash = "sha256-2juBQUxj+NkhjRFnRaiLlIxGyYsYdjT2KYkuVAAbw1o=";
26998     };
27000     # In a NixOS chroot build, the tests fail because the font configuration
27001     # at /etc/fonts/font.conf is not available.
27002     doCheck = false;
27004     propagatedBuildInputs = [ ClassAccessor IOStringy ListMoreUtils Readonly TextAutoformat ];
27005     buildInputs = [ TestException ];
27006     meta = {
27007       description = "Read record-oriented files";
27008       license = with lib.licenses; [ gpl2Only ];
27009     };
27010   };
27012   TextReflow = buildPerlPackage {
27013     pname = "Text-Reflow";
27014     version = "1.17";
27015     src = fetchurl {
27016       url = "mirror://cpan/authors/id/M/MW/MWARD/Text-Reflow-1.17.tar.gz";
27017       hash = "sha256-S/ITn/YX1uWcwOWc3s18tyPs/SjVrDh6+1U//cBxuGA=";
27018     };
27019     meta = {
27020       description = "Reflow text files using Knuth's paragraphing algorithm";
27021       license = with lib.licenses; [ artistic1 gpl1Plus ];
27022     };
27023   };
27025   TextReform = buildPerlModule {
27026     pname = "Text-Reform";
27027     version = "1.20";
27028     src = fetchurl {
27029       url = "mirror://cpan/authors/id/C/CH/CHORNY/Text-Reform-1.20.tar.gz";
27030       hash = "sha256-qHkt2MGqyXABAyM3s2o1a+luLXTE8DnvmjY7ZB20rmE=";
27031     };
27032     meta = {
27033       description = "Manual text wrapping and reformatting";
27034       license = with lib.licenses; [ artistic1 gpl1Plus ];
27035     };
27036   };
27038   TextRoman = buildPerlPackage {
27039     pname = "Text-Roman";
27040     version = "3.5";
27041     src = fetchurl {
27042       url = "mirror://cpan/authors/id/S/SY/SYP/Text-Roman-3.5.tar.gz";
27043       hash = "sha256-y0oIo7FRgC/7L84yWKQWVCq4HbD3Oe5HSpWD/7c+BGo=";
27044     };
27045     meta = {
27046       description = "Allows conversion between Roman and Arabic algarisms";
27047       homepage = "https://github.com/creaktive/Text-Roman";
27048       license = with lib.licenses; [ artistic1 gpl1Plus ];
27049     };
27050   };
27052   TextSimpleTable = buildPerlPackage {
27053     pname = "Text-SimpleTable";
27054     version = "2.07";
27055     src = fetchurl {
27056       url = "mirror://cpan/authors/id/M/MR/MRAMBERG/Text-SimpleTable-2.07.tar.gz";
27057       hash = "sha256-JW0/OHZOljMxWLFKsYJXuS8xVcYNZYyvuAOJ9y9GGe0=";
27058     };
27059     propagatedBuildInputs = [ UnicodeLineBreak ];
27060     meta = {
27061       description = "Simple eyecandy ASCII tables";
27062       license = with lib.licenses; [ artistic2 ];
27063     };
27064   };
27066   TextSoundex = buildPerlPackage {
27067     pname = "Text-Soundex";
27068     version = "3.05";
27069     src = fetchurl {
27070       url = "mirror://cpan/authors/id/R/RJ/RJBS/Text-Soundex-3.05.tar.gz";
27071       hash = "sha256-9t1VtCgLJd6peCIYOYZDglYAdOHWkzOV+u4lEMLbYO0=";
27072     };
27073     meta = {
27074       description = "Implementation of the soundex algorithm";
27075       license = with lib.licenses; [ artistic1 gpl1Plus ];
27076     };
27077   };
27079   TextSprintfNamed = buildPerlModule {
27080     pname = "Text-Sprintf-Named";
27081     version = "0.0405";
27082     src = fetchurl {
27083       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Text-Sprintf-Named-0.0405.tar.gz";
27084       hash = "sha256-m0cNeP/PxAqz+ZgjGzNrnTQXIw+3zlW0fNewVXOnD/w=";
27085     };
27086     buildInputs = [ TestWarn ];
27087     meta = {
27088       description = "Sprintf-like function with named conversions";
27089       homepage = "https://metacpan.org/release/Text-Sprintf-Named";
27090       license = with lib.licenses; [ mit ];
27091     };
27092   };
27094   TextTable = buildPerlModule {
27095     pname = "Text-Table";
27096     version = "1.135";
27097     src = fetchurl {
27098       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Text-Table-1.135.tar.gz";
27099       hash = "sha256-/KPBboMSf3xE3ePT9+PHPqUNEJoQVERd6Agv6nlMpdI=";
27100     };
27101     propagatedBuildInputs = [ TextAligner ];
27102     meta = {
27103       description = "Organize Data in Tables";
27104       homepage = "https://metacpan.org/release/Text-Table";
27105       license = with lib.licenses; [ isc ];
27106     };
27107   };
27109   TextTabularDisplay = buildPerlPackage {
27110     pname = "Text-TabularDisplay";
27111     version = "1.38";
27112     src = fetchurl {
27113       url = "mirror://cpan/authors/id/D/DA/DARREN/Text-TabularDisplay-1.38.tar.gz";
27114       hash = "sha256-6wmQ+vpWtmfyPbdkvdpaTcX0sd3EsTg6pe7W8i7Rhug=";
27115     };
27116     meta = {
27117       description = "Display text in formatted table output";
27118       license = with lib.licenses; [ gpl2Plus ];
27119     };
27120   };
27122   TextTemplate = buildPerlPackage {
27123     pname = "Text-Template";
27124     version = "1.61";
27125     src = fetchurl {
27126       url = "mirror://cpan/authors/id/M/MS/MSCHOUT/Text-Template-1.61.tar.gz";
27127       hash = "sha256-opXqfR7yQa4mQMH3hktij45vmewU+x2ngbL18haNzwk=";
27128     };
27129     buildInputs = [ TestMoreUTF8 TestWarnings ];
27130     meta = {
27131       description = "Expand template text with embedded Perl";
27132       license = with lib.licenses; [ artistic1 gpl1Plus ];
27133     };
27134   };
27136   TestTrap = buildPerlModule {
27137     pname = "Test-Trap";
27138     version = "0.3.5";
27139     src = fetchurl {
27140       url = "mirror://cpan/authors/id/E/EB/EBHANSSEN/Test-Trap-v0.3.5.tar.gz";
27141       hash = "sha256-VPmQFlYrWx1yEQEA8fK+Q3F4zfhDdvSV/9A3bx1+y5o=";
27142     };
27143     propagatedBuildInputs = [ DataDump ];
27144     meta = {
27145       description = "Trap exit codes, exceptions, output, etc";
27146       license = with lib.licenses; [ artistic1 gpl1Plus ];
27147     };
27148   };
27150   TestVars = buildPerlModule {
27151     pname = "Test-Vars";
27152     version = "0.015";
27153     src = fetchurl {
27154       url = "mirror://cpan/authors/id/G/GF/GFUJI/Test-Vars-0.015.tar.gz";
27155       hash = "sha256-4Y3RWCcuTsmTnh37M8dDGrTnXGtAsoDDi16AT9pHGlQ=";
27156     };
27158     buildInputs = [ ModuleBuildTiny ];
27160     meta = {
27161       description = "Detects unused variables in perl modules";
27162       homepage = "https://github.com/houseabsolute/p5-Test-Vars";
27163       license = with lib.licenses; [ artistic1 gpl1Plus ];
27164     };
27165   };
27167   TestVersion = buildPerlPackage {
27168     pname = "Test-Version";
27169     version = "2.09";
27170     src = fetchurl {
27171       url = "mirror://cpan/authors/id/P/PL/PLICEASE/Test-Version-2.09.tar.gz";
27172       hash = "sha256-nOHdKJel8w4bf4lm7Gb1fY2PKA9gXyjHyiIfp5rKOOA=";
27173     };
27174     buildInputs = [ TestException ];
27175     propagatedBuildInputs = [ FileFindRulePerl ];
27176     meta = {
27177       description = "Check to see that version's in modules are sane";
27178       license = with lib.licenses; [ artistic2 ];
27179     };
27180   };
27182   TextTrim = buildPerlPackage {
27183     pname = "Text-Trim";
27184     version = "1.04";
27185     src = fetchurl {
27186       url = "mirror://cpan/authors/id/R/RJ/RJT/Text-Trim-1.04.tar.gz";
27187       hash = "sha256-1YeKkHnTPNF2bParxEzWJb0AoCE9LOjjFD/mlEq6qhE=";
27188     };
27189     meta = {
27190       description = "Remove leading and/or trailing whitespace from strings";
27191       license = with lib.licenses; [ artistic1 gpl1Plus ];
27192     };
27193   };
27195   TextUnaccent = buildPerlPackage {
27196     pname = "Text-Unaccent";
27197     version = "1.08";
27198     src = fetchurl {
27199       url = "mirror://cpan/authors/id/L/LD/LDACHARY/Text-Unaccent-1.08.tar.gz";
27200       hash = "sha256-J45u/Jsk82mclh77NuvmAqNAi1QVcgF97hMdFScocys=";
27201     };
27202     # https://rt.cpan.org/Public/Bug/Display.html?id=124815
27203     env.NIX_CFLAGS_COMPILE = "-DHAS_VPRINTF";
27204     meta = {
27205       description = "Remove accents from a string";
27206       license = with lib.licenses; [ gpl2Only ];
27207       broken = stdenv.hostPlatform.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.TextUnaccent.x86_64-darwin
27208     };
27209   };
27211   TextUnidecode = buildPerlPackage {
27212     pname = "Text-Unidecode";
27213     version = "1.30";
27214     src = fetchurl {
27215       url = "mirror://cpan/authors/id/S/SB/SBURKE/Text-Unidecode-1.30.tar.gz";
27216       hash = "sha256-bCTxTdwdIOJhYcIHtzyhhO7S71fwi1+y7hlubi6IscY=";
27217     };
27218     meta = {
27219       description = "Plain ASCII transliterations of Unicode tex";
27220       license = with lib.licenses; [ artistic1 gpl1Plus ];
27221     };
27222   };
27224   Testutf8 = buildPerlPackage {
27225     pname = "Test-utf8";
27226     version = "1.02";
27227     src = fetchurl {
27228       url = "mirror://cpan/authors/id/M/MA/MARKF/Test-utf8-1.02.tar.gz";
27229       hash = "sha256-34LwnFlAgwslpJ8cgWL6JNNx5gKIDt742aTUv9Zri9c=";
27230     };
27231     meta = {
27232       description = "Handy utf8 tests";
27233       homepage = "https://github.com/2shortplanks/Test-utf8/tree";
27234       license = with lib.licenses; [ artistic1 gpl1Plus ];
27235     };
27236   };
27238   TextNSP = buildPerlPackage {
27239     pname = "Text-NSP";
27240     version = "1.31";
27241     src = fetchurl {
27242       url = "mirror://cpan/authors/id/T/TP/TPEDERSE/Text-NSP-1.31.tar.gz";
27243       hash = "sha256-oBIBvrKWNrPkHs2ips9lIv0mVBa9bZlPrQL1n7Sc9ZU=";
27244     };
27245     meta = {
27246       description = "Extract collocations and Ngrams from text";
27247       license = with lib.licenses; [ gpl2Plus ];
27248       maintainers = [ maintainers.bzizou ];
27249     };
27250   };
27252   TextvFileasData = buildPerlPackage {
27253     pname = "Text-vFile-asData";
27254     version = "0.08";
27255     src = fetchurl {
27256       url = "mirror://cpan/authors/id/R/RC/RCLAMP/Text-vFile-asData-0.08.tar.gz";
27257       hash = "sha256-spGrXg+YfFFyVgppIjRxGnXkWW2DR19y0BJ4NpUy+Co=";
27258     };
27259     propagatedBuildInputs = [ ClassAccessorChained ];
27260     meta = {
27261       description = "Parse vFile formatted files into data structures";
27262       license = with lib.licenses; [ artistic1 gpl1Plus ];
27263     };
27264   };
27266   TextWikiFormat = buildPerlModule {
27267     pname = "Text-WikiFormat";
27268     version = "0.81";
27269     src = fetchurl {
27270       url = "mirror://cpan/authors/id/C/CY/CYCLES/Text-WikiFormat-0.81.tar.gz";
27271       hash = "sha256-5DzZla2RV6foOdmT7ntsTRhUlH5VfQltnVqvdFB/qzM=";
27272     };
27273     propagatedBuildInputs = [ URI ];
27274     meta = {
27275       description = "Module for translating Wiki formatted text into other formats";
27276       license = with lib.licenses; [ artistic1 gpl1Plus ];
27277     };
27278   };
27280   TextWordDiff = buildPerlPackage {
27281     pname = "Text-WordDiff";
27282     version = "0.09";
27283     src = fetchurl {
27284       url = "mirror://cpan/authors/id/T/TI/TIMK/Text-WordDiff-0.09.tar.gz";
27285       hash = "sha256-/uaZynY63KL04Y9KioNv0hArwoIK9wj460M1bVrg1Q4=";
27286     };
27287     propagatedBuildInputs = [ AlgorithmDiff HTMLParser ];
27288     meta = {
27289       description = "Track changes between documents";
27290       homepage = "https://metacpan.org/release/Text-WordDiff";
27291       license = with lib.licenses; [ artistic1 gpl1Plus ];
27292     };
27293   };
27295   TextWrapI18N = buildPerlPackage {
27296     pname = "Text-WrapI18N";
27297     version = "0.06";
27298     src = fetchurl {
27299       url = "mirror://cpan/authors/id/K/KU/KUBOTA/Text-WrapI18N-0.06.tar.gz";
27300       hash = "sha256-S9KaF/DCx5LRLBAFs8J28qsPrjnACFmuF0HXlBhGpIg=";
27301     };
27302     buildInputs = lib.optionals (!stdenv.hostPlatform.isDarwin) [ pkgs.glibcLocales ];
27303     propagatedBuildInputs = [ TextCharWidth ];
27304     preConfigure = ''
27305       substituteInPlace WrapI18N.pm --replace '/usr/bin/locale' '${pkgs.unixtools.locale}/bin/locale'
27306     '';
27307     meta = {
27308       description = "Line wrapping module with support for multibyte, fullwidth, and combining characters and languages without whitespaces between words";
27309       license = with lib.licenses; [ artistic1 gpl1Plus ];
27310     };
27311   };
27313   TextWrapper = buildPerlPackage {
27314     pname = "Text-Wrapper";
27315     version = "1.05";
27316     src = fetchurl {
27317       url = "mirror://cpan/authors/id/C/CJ/CJM/Text-Wrapper-1.05.tar.gz";
27318       hash = "sha256-ZCaOFZg6nfR+HZGZpJHzlOifVC5Ur7M/S3jz8xjgmrk=";
27319     };
27320     buildInputs = [ TestDifferences ];
27321     meta = {
27322       description = "Word wrap text by breaking long lines";
27323       license = with lib.licenses; [ artistic1 gpl1Plus ];
27324     };
27325   };
27327   Throwable = buildPerlPackage {
27328     pname = "Throwable";
27329     version = "1.001";
27330     src = fetchurl {
27331       url = "mirror://cpan/authors/id/R/RJ/RJBS/Throwable-1.001.tar.gz";
27332       hash = "sha256-0MtenX0G1w8sxW7s+FeoOkXqykOFDc3akdP+tN3eTFE=";
27333     };
27334     propagatedBuildInputs = [ DevelStackTrace Moo ];
27335     meta = {
27336       description = "Role for classes that can be thrown";
27337       homepage = "https://github.com/rjbs/Throwable";
27338       license = with lib.licenses; [ artistic1 gpl1Plus ];
27339     };
27340   };
27342   TieCacheLRU = buildPerlPackage {
27343     pname = "Tie-Cache-LRU";
27344     version = "20150301";
27345     src = fetchurl {
27346       url = "mirror://cpan/authors/id/M/MS/MSCHWERN/Tie-Cache-LRU-20150301.tar.gz";
27347       hash = "sha256-G/dARQ06bXwStIwl99pZZOROfMOLKFcs+3b/IkZPRGk=";
27348     };
27349     propagatedBuildInputs = [ ClassVirtual enum ];
27350     meta = {
27351       description = "Least-Recently Used cache";
27352       license = with lib.licenses; [ artistic1 gpl1Plus ];
27353     };
27354   };
27356   TieCacheLRUExpires = buildPerlPackage {
27357     pname = "Tie-Cache-LRU-Expires";
27358     version = "0.55";
27359     src = fetchurl {
27360       url = "mirror://cpan/authors/id/O/OE/OESTERHOL/Tie-Cache-LRU-Expires-0.55.tar.gz";
27361       hash = "sha256-sxbYSazSXyQ0bVWplQ0oH+4HRjmHZ8YBI0EiFZVz65o=";
27362     };
27363     propagatedBuildInputs = [ TieCacheLRU ];
27364     meta = {
27365       description = "Extends Tie::Cache::LRU with expiring";
27366       license = with lib.licenses; [ artistic1 ];
27367     };
27368   };
27370   TieCycle = buildPerlPackage {
27371     pname = "Tie-Cycle";
27372     version = "1.227";
27373     src = fetchurl {
27374       url = "mirror://cpan/authors/id/B/BD/BDFOY/Tie-Cycle-1.227.tar.gz";
27375       hash = "sha256-eDgzV5HnGjszuKGd4wUpSeGJCkgj3vY5eCPJkiL6Hdg=";
27376     };
27377     meta = {
27378       description = "Cycle through a list of values via a scalar";
27379       homepage = "https://github.com/briandfoy/tie-cycle";
27380       license = with lib.licenses; [ artistic2 ];
27381     };
27382   };
27384   TieEncryptedHash = buildPerlPackage {
27385     pname = "Tie-EncryptedHash";
27386     version = "1.24";
27387     src = fetchurl {
27388       url = "mirror://cpan/authors/id/V/VI/VIPUL/Tie-EncryptedHash-1.24.tar.gz";
27389       hash = "sha256-qpoIOiMeQEYXCliUZE48WWecfb0KotEhfchRUN8sHiE=";
27390     };
27391     propagatedBuildInputs = [ CryptBlowfish CryptCBC CryptDES ];
27392     meta = {
27393       description = "Hashes (and objects based on hashes) with encrypting fields";
27394       license = with lib.licenses; [ artistic1 gpl1Plus ];
27395       maintainers = [ maintainers.sgo ];
27396     };
27397   };
27399   TieFile = buildPerlPackage {
27400     pname = "Tie-File";
27401     version = "1.07";
27402     src = fetchurl {
27403       url = "mirror://cpan/authors/id/T/TO/TODDR/Tie-File-1.07.tar.gz";
27404       hash = "sha256-S1NUpB/pVBvc6lK0/VMBRPMVME0D8F3Q/vwynYHCawg=";
27405     };
27406     meta = {
27407       description = "Access the lines of a disk file via a Perl array";
27408       license = with lib.licenses; [ artistic1 gpl1Plus ];
27409     };
27410   };
27412   TieIxHash = buildPerlModule {
27413     pname = "Tie-IxHash";
27414     version = "1.23";
27415     src = fetchurl {
27416       url = "mirror://cpan/authors/id/C/CH/CHORNY/Tie-IxHash-1.23.tar.gz";
27417       hash = "sha256-+rsLjJfmfJs0tswY7Wb2xeAcVbJX3PAHVV4LAn1Mr1Y=";
27418     };
27419     meta = {
27420       description = "Ordered associative arrays for Perl";
27421       license = with lib.licenses; [ artistic1 gpl1Plus ];
27422     };
27423   };
27425   TieHandleOffset = buildPerlPackage {
27426     pname = "Tie-Handle-Offset";
27427     version = "0.004";
27428     src = fetchurl {
27429       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Tie-Handle-Offset-0.004.tar.gz";
27430       hash = "sha256-7p85BV3GlaokSiUvVv/Tf4vgcgmzN604eCRyEgbSqJ4=";
27431     };
27432     meta = {
27433       description = "Tied handle that hides the beginning of a file";
27434       homepage = "https://github.com/dagolden/tie-handle-offset";
27435       license = with lib.licenses; [ asl20 ];
27436     };
27437   };
27439   TieHashIndexed = buildPerlPackage {
27440     pname = "Tie-Hash-Indexed";
27441     version = "0.08";
27442     src = fetchurl {
27443       url = "mirror://cpan/authors/id/M/MH/MHX/Tie-Hash-Indexed-0.08.tar.gz";
27444       hash = "sha256-N7xigV9ahIrHeRK5v0eIqfJyiE6DpS4gk9q0qDpKexA=";
27445     };
27446     doCheck = false; /* test fails on some machines */
27447     meta = {
27448       description = "Ordered hashes for Perl";
27449       license = with lib.licenses; [ artistic1 gpl1Plus ];
27450     };
27451   };
27453   TieHashMethod = buildPerlPackage {
27454     pname = "Tie-Hash-Method";
27455     version = "0.02";
27456     src = fetchurl {
27457       url = "mirror://cpan/authors/id/Y/YV/YVES/Tie-Hash-Method-0.02.tar.gz";
27458       hash = "sha256-1RP7tRQT98oeZKG9zmGU337GB23qVQZtZ7lQGR7sMqk=";
27459     };
27460     meta = {
27461       description = "Tied hash with specific methods overriden by callbacks";
27462       license = with lib.licenses; [ artistic1 ];
27463     };
27464   };
27466   TieRefHash = buildPerlPackage {
27467     pname = "Tie-RefHash";
27468     version = "1.40";
27469     src = fetchurl {
27470       url = "mirror://cpan/authors/id/E/ET/ETHER/Tie-RefHash-1.40.tar.gz";
27471       hash = "sha256-Ws8fUY0vtfYgyq16Gy/x9vdRb++PQLprdD7si5aSftc=";
27472     };
27473     meta = {
27474       description = "Use references as hash keys";
27475       license = with lib.licenses; [ artistic1 gpl1Plus ];
27476     };
27477   };
27479   TieRegexpHash = buildPerlPackage {
27480     pname = "Tie-RegexpHash";
27481     version = "0.17";
27482     src = fetchurl {
27483       url = "mirror://cpan/authors/id/A/AL/ALTREUS/Tie-RegexpHash-0.17.tar.gz";
27484       hash = "sha256-DCB4UOd++xZhjgqgFVB5JqNCWzSq1apuPkDYOYmghaM=";
27485     };
27486     meta = {
27487       description = "Use regular expressions as hash keys";
27488       license = with lib.licenses; [ artistic1 ];
27489     };
27490   };
27492   TieSimple = buildPerlPackage {
27493     pname = "Tie-Simple";
27494     version = "1.04";
27495     src = fetchurl {
27496       url = "mirror://cpan/authors/id/H/HA/HANENKAMP/Tie-Simple-1.04.tar.gz";
27497       hash = "sha256-KeniEzlRBGx48gXxs+jfYskOEU8OCPoGuBd2ag+AixI=";
27498     };
27499     meta = {
27500       description = "Variable ties made much easier: much, much, much easier.";
27501       license = with lib.licenses; [ artistic1 gpl1Plus ];
27502     };
27503   };
27505   TieSub = buildPerlPackage {
27506     pname = "Tie-Sub";
27507     version = "1.001";
27508     src = fetchurl {
27509       url = "mirror://cpan/authors/id/S/ST/STEFFENW/Tie-Sub-1.001.tar.gz";
27510       hash = "sha256-73GgSCbRNisrduyyHOFzw304pHqf7Cg6qYJDWJD08bE=";
27511     };
27512     propagatedBuildInputs = [ ParamsValidate ];
27513     buildInputs = [ ModuleBuild TestDifferences TestException TestNoWarnings ];
27514     meta = {
27515       description = "Tie::Sub - Tying a subroutine, function or method to a hash";
27516       license = with lib.licenses; [ artistic1 gpl1Plus ];
27517     };
27518   };
27520   TieToObject = buildPerlPackage {
27521     pname = "Tie-ToObject";
27522     version = "0.03";
27523     src = fetchurl {
27524       url = "mirror://cpan/authors/id/N/NU/NUFFIN/Tie-ToObject-0.03.tar.gz";
27525       hash = "sha256-oxoNRDD+FPWWIvMdt/JbInXa0uxS8QQL6wMNPoOtOvQ=";
27526     };
27527     meta = {
27528       description = "Tie to an existing object";
27529       license = with lib.licenses; [ artistic1 gpl1Plus ];
27530     };
27531   };
27533   TimeDate = buildPerlPackage {
27534     pname = "TimeDate";
27535     version = "2.33";
27536     src = fetchurl {
27537       url = "mirror://cpan/authors/id/A/AT/ATOOMIC/TimeDate-2.33.tar.gz";
27538       hash = "sha256-wLacSwOd5vUBsNnxPsWMhrBAwffpsn7ySWUcFD1gXrI=";
27539     };
27540     meta = {
27541       description = "Miscellaneous timezone manipulations routines";
27542       license = with lib.licenses; [ artistic1 gpl1Plus ];
27543     };
27544   };
27546   TimeDuration = buildPerlPackage {
27547     pname = "Time-Duration";
27548     version = "1.21";
27549     src = fetchurl {
27550       url = "mirror://cpan/authors/id/N/NE/NEILB/Time-Duration-1.21.tar.gz";
27551       hash = "sha256-/jQOuodl+SY2lGdOXf8UgzRD4Zhl5f9Ce715t7X4qbg=";
27552     };
27553     meta = {
27554       description = "Rounded or exact English expression of durations";
27555       homepage = "https://github.com/neilbowers/Time-Duration";
27556       license = with lib.licenses; [ artistic1 gpl1Plus ];
27557     };
27558   };
27560   TimeDurationParse = buildPerlPackage {
27561     pname = "Time-Duration-Parse";
27562     version = "0.16";
27563     src = fetchurl {
27564       url = "mirror://cpan/authors/id/N/NE/NEILB/Time-Duration-Parse-0.16.tar.gz";
27565       hash = "sha256-EISmRj7ieQ+ZIVvXaxNcpFr+K/ppmPpv1UcLaeG6vBI=";
27566     };
27567     buildInputs = [ TimeDuration ];
27568     propagatedBuildInputs = [ ExporterLite ];
27569     meta = {
27570       description = "Parse string that represents time duration";
27571       homepage = "https://github.com/neilb/Time-Duration-Parse";
27572       license = with lib.licenses; [ artistic1 gpl1Plus ];
27573     };
27574   };
27576   TimeLocal = buildPerlPackage {
27577     pname = "Time-Local";
27578     version = "1.35";
27579     src = fetchurl {
27580       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Time-Local-1.35.tar.gz";
27581       hash = "sha256-HRNrcb0EHL5vZsQxgO555nW3KtWjWWq9akTSEQcq2ik=";
27582     };
27583     meta = {
27584       description = "Efficiently compute time from local and GMT time";
27585       homepage = "https://metacpan.org/release/Time-Local";
27586       license = with lib.licenses; [ artistic1 gpl1Plus ];
27587     };
27588   };
27590   TimeMoment = buildPerlPackage {
27591     pname = "Time-Moment";
27592     version = "0.44";
27593     src = fetchurl {
27594       url = "mirror://cpan/authors/id/C/CH/CHANSEN/Time-Moment-0.44.tar.gz";
27595       hash = "sha256-ZKz6BC9jT8742t9V5/QrpOqriq631SEuuJgVox949v0=";
27596     };
27597     buildInputs = [ TestFatal TestNumberDelta TestRequires ];
27598     meta = {
27599       description = "Represents a date and time of day with an offset from UTC";
27600       license = with lib.licenses; [ artistic1 gpl1Plus ];
27601     };
27602   };
27604   TimeOut = buildPerlPackage {
27605     pname = "Time-Out";
27606     version = "0.11";
27607     src = fetchurl {
27608       url = "mirror://cpan/authors/id/P/PA/PATL/Time-Out-0.11.tar.gz";
27609       hash = "sha256-k5baaY/UUtnOYNZCzaIQjxHyDtdsiWF3muEbiXroFdI=";
27610     };
27611     meta = {
27612       description = "Easily timeout long running operations";
27613       license = with lib.licenses; [ artistic1 gpl1Plus ];
27614     };
27615   };
27617   TimeParseDate = buildPerlPackage {
27618     pname = "Time-ParseDate";
27619     version = "2015.103";
27620     src = fetchurl {
27621       url = "mirror://cpan/authors/id/M/MU/MUIR/modules/Time-ParseDate-2015.103.tar.gz";
27622       hash = "sha256-LBoGI1v4EYE8qsnqqdqnGvdYZnzfewgstZhjIg/K7tE=";
27623     };
27624     doCheck = false;
27625     meta = {
27626       description = "Parse and format time values";
27627       license = with lib.licenses; [ publicDomain ];
27628     };
27629   };
27631   TimePeriod = buildPerlPackage {
27632     pname = "Time-Period";
27633     version = "1.25";
27634     src = fetchurl {
27635       url = "mirror://cpan/authors/id/P/PB/PBOYD/Time-Period-1.25.tar.gz";
27636       hash = "sha256-0H+lgFKb6sapyCdMa/IgtMOq3mhd9lwWadUzOb9u8eg=";
27637     };
27638     meta = {
27639       description = "Perl module to deal with time periods";
27640       license = with lib.licenses; [ artistic1 gpl1Plus ];
27641       maintainers = [ maintainers.winpat ];
27642     };
27643   };
27645   TimePiece = buildPerlPackage {
27646     pname = "Time-Piece";
27647     version = "1.3401";
27648     src = fetchurl {
27649       url = "mirror://cpan/authors/id/E/ES/ESAYM/Time-Piece-1.3401.tar.gz";
27650       hash = "sha256-S1W3uw6rRc8jmlTf6tJ336BhIaQ+Y7P84IU67P2wTCc=";
27651     };
27652     meta = {
27653       description = "Object Oriented time objects";
27654       homepage = "https://metacpan.org/release/Time-Piece";
27655       license = with lib.licenses; [ artistic1 gpl1Plus ];
27656       maintainers = with maintainers; [ sgo ];
27657     };
27658   };
27660   Tirex = callPackage ../development/perl-modules/Tirex { };
27662   Tk = buildPerlPackage {
27663     pname = "Tk";
27664     version = "804.036";
27665     src = fetchurl {
27666       url = "mirror://cpan/authors/id/S/SR/SREZIC/Tk-804.036.tar.gz";
27667       hash = "sha256-Mqpycaa9/twzMBGbOCXa3dCqS1yTb4StdOq7kyogCl4=";
27668     };
27669     patches = [
27670       # Fix failing configure test due to implicit int return value of main, which results
27671       # in an error with clang 16.
27672       ../development/perl-modules/tk-configure-implicit-int-fix.patch
27673     ];
27674     makeMakerFlags = [ "X11INC=${pkgs.xorg.libX11.dev}/include" "X11LIB=${pkgs.xorg.libX11.out}/lib" ];
27675     buildInputs = [ pkgs.xorg.libX11 pkgs.libpng ];
27676     env = lib.optionalAttrs stdenv.cc.isGNU {
27677       NIX_CFLAGS_COMPILE = toString [
27678         "-Wno-error=implicit-int"
27679         "-Wno-error=incompatible-pointer-types"
27680       ];
27681     };
27682     doCheck = false;            # Expects working X11.
27683     meta = {
27684       description = "Tk - a Graphical User Interface Toolkit";
27685       license = with lib.licenses; [ tcltk ];
27686     };
27687   };
27689   TkToolBar = buildPerlPackage {
27690     pname = "Tk-ToolBar";
27691     version = "0.12";
27692     src = fetchurl {
27693       url = "mirror://cpan/authors/id/A/AS/ASB/Tk-ToolBar-0.12.tar.gz";
27694       hash = "sha256-Rj4oTsRxN+fEJclpGwKo3sXOJytY6h9jWa6AQaI53Q8=";
27695     };
27696     makeMakerFlags = [ "X11INC=${pkgs.xorg.libX11.dev}/include" "X11LIB=${pkgs.xorg.libX11.out}/lib" ];
27697     buildInputs = [ Tk ];
27698     doCheck = false;            # Expects working X11.
27699     meta = {
27700       description = "Toolbar widget for Perl/Tk";
27701       license = with lib.licenses; [ artistic1 gpl1Plus ];
27702     };
27703   };
27705   TreeDAGNode = buildPerlPackage {
27706     pname = "Tree-DAG_Node";
27707     version = "1.32";
27708     src = fetchurl {
27709       url = "mirror://cpan/authors/id/R/RS/RSAVAGE/Tree-DAG_Node-1.32.tgz";
27710       hash = "sha256-ItnePW5vSv2J5tglxmT5SCh4vUninLgTQqcHr0BULT0=";
27711     };
27712     propagatedBuildInputs = [ FileSlurpTiny ];
27713     meta = {
27714       description = "N-ary tree";
27715       license = with lib.licenses; [ artistic1 gpl1Plus ];
27716     };
27717   };
27719   TreeSimple = buildPerlPackage {
27720     pname = "Tree-Simple";
27721     version = "1.34";
27722     src = fetchurl {
27723       url = "mirror://cpan/authors/id/R/RS/RSAVAGE/Tree-Simple-1.34.tgz";
27724       hash = "sha256-t+l5m9Iiu5TP+ZP312WYDL6hts0qql7L6tY1q99H0pw=";
27725     };
27726     buildInputs = [ TestException ];
27727     meta = {
27728       description = "Simple tree object";
27729       license = with lib.licenses; [ artistic1 gpl1Plus ];
27730     };
27731   };
27733   TreeSimpleVisitorFactory = buildPerlPackage {
27734     pname = "Tree-Simple-VisitorFactory";
27735     version = "0.16";
27736     src = fetchurl {
27737       url = "mirror://cpan/authors/id/R/RS/RSAVAGE/Tree-Simple-VisitorFactory-0.16.tgz";
27738       hash = "sha256-nPU4+qEsVP+0qRQ5lF5IjxhW9iuJrFByqSIRngGIDaY=";
27739     };
27740     propagatedBuildInputs = [ TreeSimple ];
27741     buildInputs = [ TestException ];
27742     meta = {
27743       description = "Factory object for dispensing Visitor objects";
27744       license = with lib.licenses; [ artistic1 gpl1Plus ];
27745     };
27746   };
27748   TryTiny = buildPerlPackage {
27749     pname = "Try-Tiny";
27750     version = "0.31";
27751     src = fetchurl {
27752       url = "mirror://cpan/authors/id/E/ET/ETHER/Try-Tiny-0.31.tar.gz";
27753       hash = "sha256-MwDTHYpAdbJtj0bOhkodkT4OhGfO66ZlXV0rLiBsEb4=";
27754     };
27755     buildInputs = [ CPANMetaCheck CaptureTiny ];
27756     meta = {
27757       description = "Minimal try/catch with proper preservation of $@";
27758       homepage = "https://github.com/p5sagit/Try-Tiny";
27759       license = with lib.licenses; [ mit ];
27760     };
27761   };
27763   TryTinyByClass = buildPerlPackage {
27764     pname = "Try-Tiny-ByClass";
27765     version = "0.01";
27766     src = fetchurl {
27767       url = "mirror://cpan/authors/id/M/MA/MAUKE/Try-Tiny-ByClass-0.01.tar.gz";
27768       hash = "sha256-A45O9SkpXyacKA/vmZpeTbkVaULwkaw8rXabHkVw8UY=";
27769     };
27770     propagatedBuildInputs = [ DispatchClass TryTiny ];
27771     meta = {
27772       description = "Selectively catch exceptions by class name";
27773       license = with lib.licenses; [ artistic1 gpl1Plus ];
27774     };
27775   };
27777   Twiggy = buildPerlPackage {
27778     pname = "Twiggy";
27779     version = "0.1026";
27780     src = fetchurl {
27781       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Twiggy-0.1026.tar.gz";
27782       hash = "sha256-TZHqbtmumo70MU3Cp89S6wJrNlvmg4azXqaGTfrFf54=";
27783     };
27784     propagatedBuildInputs = [ AnyEvent Plack ];
27785     buildInputs = [ TestRequires TestSharedFork TestTCP ];
27786     meta = {
27787       description = "AnyEvent HTTP server for PSGI";
27788       homepage = "https://github.com/miyagawa/Twiggy";
27789       license = with lib.licenses; [ artistic1 gpl1Plus ];
27790       mainProgram = "twiggy";
27791     };
27792   };
27794   TypeTiny = buildPerlPackage {
27795     pname = "Type-Tiny";
27796     version = "2.004000";
27797     src = fetchurl {
27798       url = "mirror://cpan/authors/id/T/TO/TOBYINK/Type-Tiny-2.004000.tar.gz";
27799       hash = "sha256-aX5/d17fyF9M8HeS0E/RmwnCUoX5j1k46O/E90UHoSg=";
27800     };
27801     propagatedBuildInputs = [ ExporterTiny ];
27802     buildInputs = [ TestMemoryCycle ];
27803     meta = {
27804       description = "Tiny, yet Moo(se)-compatible type constraint";
27805       homepage = "https://typetiny.toby.ink";
27806       license = with lib.licenses; [ artistic1 gpl1Plus ];
27807     };
27808   };
27810   TypeTinyXS = buildPerlPackage {
27811     pname = "Type-Tiny-XS";
27812     version = "0.025";
27813     src = fetchurl {
27814       url = "mirror://cpan/authors/id/T/TO/TOBYINK/Type-Tiny-XS-0.025.tar.gz";
27815       hash = "sha256-mmFFDdqQKU9gbNej+kTzsaNmvNiKQZkXsFTuXiPRSL0=";
27816     };
27817     meta = {
27818       description = "Provides an XS boost for some of Type::Tiny's built-in type constraints";
27819       homepage = "https://metacpan.org/release/Type-Tiny-XS";
27820       license = with lib.licenses; [ artistic1 gpl1Plus ];
27821     };
27822   };
27824   TypesSerialiser = buildPerlPackage {
27825     pname = "Types-Serialiser";
27826     version = "1.01";
27827     src = fetchurl {
27828       url = "mirror://cpan/authors/id/M/ML/MLEHMANN/Types-Serialiser-1.01.tar.gz";
27829       hash = "sha256-+McXOwkU0OPZVyggd7Nm8MjHAlZxXq7zKY/zK5I4ioA=";
27830     };
27831     propagatedBuildInputs = [ commonsense ];
27832     meta = {
27833       description = "Simple data types for common serialisation formats";
27834       license = with lib.licenses; [ artistic1 gpl1Plus ];
27835     };
27836   };
27838   UNIVERSALcan = buildPerlPackage {
27839     pname = "UNIVERSAL-can";
27840     version = "1.20140328";
27841     src = fetchurl {
27842       url = "mirror://cpan/authors/id/C/CH/CHROMATIC/UNIVERSAL-can-1.20140328.tar.gz";
27843       hash = "sha256-Ui2p8nR4b+LLqZvHfMHIHSFhlHkD1/rRC9Yt+38RmQ8=";
27844     };
27845     meta = {
27846       description = "Work around buggy code calling UNIVERSAL::can() as a function";
27847       homepage = "https://github.com/chromatic/UNIVERSAL-can";
27848       license = with lib.licenses; [ artistic1 gpl1Plus ];
27849     };
27850   };
27852   UNIVERSALisa = buildPerlPackage {
27853     pname = "UNIVERSAL-isa";
27854     version = "1.20171012";
27855     src = fetchurl {
27856       url = "mirror://cpan/authors/id/E/ET/ETHER/UNIVERSAL-isa-1.20171012.tar.gz";
27857       hash = "sha256-0WlWA2ywHIGd7H0pT274kb4Ltkh2mJYBNUspMWTafys=";
27858     };
27859     meta = {
27860       description = "Attempt to recover from people calling UNIVERSAL::isa as a function";
27861       homepage = "https://github.com/karenetheridge/UNIVERSAL-isa";
27862       license = with lib.licenses; [ artistic1 gpl1Plus ];
27863     };
27864   };
27866   UNIVERSALrequire = buildPerlPackage {
27867     pname = "UNIVERSAL-require";
27868     version = "0.19";
27869     src = fetchurl {
27870       url = "mirror://cpan/authors/id/N/NE/NEILB/UNIVERSAL-require-0.19.tar.gz";
27871       hash = "sha256-1GfNJuBsjDsgP9O8B5aubIN6xeMQCTyCJn/134UPGgM=";
27872     };
27873     meta = {
27874       description = "Require() modules from a variable [deprecated]";
27875       license = with lib.licenses; [ artistic1 gpl1Plus ];
27876     };
27877   };
27879   UnicodeCaseFold = buildPerlModule {
27880     pname = "Unicode-CaseFold";
27881     version = "1.01";
27882     src = fetchurl {
27883       url = "mirror://cpan/authors/id/A/AR/ARODLAND/Unicode-CaseFold-1.01.tar.gz";
27884       hash = "sha256-QYohKAj50Li7MwrJBQltLdNkl2dT1McVNNq5g2pjGU0=";
27885     };
27886     perlPreHook = lib.optionalString stdenv.hostPlatform.isi686 "export LD=$CC"; # fix undefined reference to `__stack_chk_fail_local'
27887     meta = {
27888       description = "Unicode case-folding for case-insensitive lookups";
27889       homepage = "https://metacpan.org/release/Unicode-CaseFold";
27890       license = with lib.licenses; [ artistic1 gpl1Plus ];
27891     };
27892   };
27894   UnicodeCheckUTF8 = buildPerlPackage {
27895     pname = "Unicode-CheckUTF8";
27896     version = "1.03";
27897     src = fetchurl {
27898       url = "mirror://cpan/authors/id/B/BR/BRADFITZ/Unicode-CheckUTF8-1.03.tar.gz";
27899       hash = "sha256-l/hNrwM+ubSc2P4x2yIf7wNaXC7h11fzEiyIz5diQUw=";
27900     };
27901     meta = {
27902       description = "Checks if scalar is valid UTF-8";
27903       license = with lib.licenses; [ ucd /* and */ artistic1 gpl1Plus ];
27904     };
27905   };
27907   UnicodeLineBreak = buildPerlPackage {
27908     pname = "Unicode-LineBreak";
27909     version = "2019.001";
27910     src = fetchurl {
27911       url = "mirror://cpan/authors/id/N/NE/NEZUMI/Unicode-LineBreak-2019.001.tar.gz";
27912       hash = "sha256-SGdi5MrN3Md7E5ifl5oCn4RjC4F15/7xeYnhV9S2MYo=";
27913     };
27914     propagatedBuildInputs = [ MIMECharset ];
27915     meta = {
27916       description = "UAX #14 Unicode Line Breaking Algorithm";
27917       license = with lib.licenses; [ artistic1 gpl1Plus ];
27918     };
27919   };
27921   UnicodeString = buildPerlPackage {
27922     pname = "Unicode-String";
27923     version = "2.10";
27924     src = fetchurl {
27925       url = "mirror://cpan/authors/id/G/GA/GAAS/GAAS/Unicode-String-2.10.tar.gz";
27926       hash = "sha256-iUoRDs5HlUaviv7Aly7scyDIbE3qTms1Tf88dSa6m2g=";
27927     };
27928     meta = {
27929       description = "String of Unicode characters (UTF-16BE)";
27930       license = with lib.licenses; [ artistic1 gpl1Plus ];
27931     };
27932   };
27934   UnicodeStringprep = buildPerlModule {
27935     pname = "Unicode-Stringprep";
27936     version = "1.105";
27937     src = fetchurl {
27938       url = "mirror://cpan/authors/id/C/CF/CFAERBER/Unicode-Stringprep-1.105.tar.gz";
27939       hash = "sha256-5r67xYQIIx/RMX25ECRJs+faT6Q3559jc4LTYxPv0BE=";
27940     };
27941     buildInputs = [ TestNoWarnings ];
27942     meta = {
27943       description = "Preparation of Internationalized Strings (RFC 3454)";
27944       license = with lib.licenses; [ artistic1 gpl1Plus ];
27945       maintainers = [ maintainers.sgo ];
27946     };
27947   };
27949   UnicodeUTF8 = buildPerlPackage {
27950     pname = "Unicode-UTF8";
27951     version = "0.62";
27952     src = fetchurl {
27953       url = "mirror://cpan/authors/id/C/CH/CHANSEN/Unicode-UTF8-0.62.tar.gz";
27954       hash = "sha256-+oci0LdGluMy/d1EKZRDbqk9O/x5gtS6vc7f3dZX0PY=";
27955     };
27956     buildInputs = [ TestFatal ];
27957     meta = {
27958       description = "Encoding and decoding of UTF-8 encoding form";
27959       homepage = "https://github.com/chansen/p5-unicode-utf8";
27960       license = with lib.licenses; [ artistic1 gpl1Plus ];
27961       maintainers = with maintainers; [ sgo ];
27962     };
27963   };
27965   UnixGetrusage = buildPerlPackage {
27966     pname = "Unix-Getrusage";
27967     version = "0.03";
27968     src = fetchurl {
27969       url = "mirror://cpan/authors/id/T/TA/TAFFY/Unix-Getrusage-0.03.tar.gz";
27970       hash = "sha256-ds3hzuJFMmC4WrvdwnzcmHXwHSRX4XbgPcq/BftETRI=";
27971     };
27972     meta = {
27973       description = "Perl interface to the Unix getrusage system call";
27974       license = with lib.licenses; [ artistic1 gpl1Plus ];
27975     };
27976   };
27978   URI = buildPerlPackage {
27979     pname = "URI";
27980     version = "5.21";
27981     src = fetchurl {
27982       url = "mirror://cpan/authors/id/O/OA/OALDERS/URI-5.21.tar.gz";
27983       hash = "sha256-liZYYM1hveFuhBXc+/EIBW3hYsqgrDf4HraVydLgq3c=";
27984     };
27985     buildInputs = [ TestFatal TestNeeds TestWarnings ];
27986     meta = {
27987       description = "Uniform Resource Identifiers (absolute and relative)";
27988       homepage = "https://github.com/libwww-perl/URI";
27989       license = with lib.licenses; [ artistic1 gpl1Plus ];
27990     };
27991   };
27993   URIdb = buildPerlModule {
27994     pname = "URI-db";
27995     version = "0.21";
27996     src = fetchurl {
27997       url = "mirror://cpan/authors/id/D/DW/DWHEELER/URI-db-0.21.tar.gz";
27998       hash = "sha256-pkM9wVF6kH4YmRKkx2td/HYzLj/X/Is4oTfkAZx4CzQ=";
27999     };
28000     propagatedBuildInputs = [ URINested ];
28001     meta = {
28002       description = "Database URIs";
28003       homepage = "https://search.cpan.org/dist/URI-db";
28004       license = with lib.licenses; [ artistic1 gpl1Plus ];
28005     };
28006   };
28008   URIFind = buildPerlModule {
28009     pname = "URI-Find";
28010     version = "20160806";
28011     src = fetchurl {
28012       url = "mirror://cpan/authors/id/M/MS/MSCHWERN/URI-Find-20160806.tar.gz";
28013       hash = "sha256-4hOkJaUbX1UyQhHzeQnXh0nQus3qJZulGphV0NGWY9Y=";
28014     };
28015     propagatedBuildInputs = [ URI ];
28016     meta = {
28017       description = "Find URIs in arbitrary text";
28018       homepage = "https://metacpan.org/release/URI-Find";
28019       license = with lib.licenses; [ artistic1 gpl1Plus ];
28020       mainProgram = "urifind";
28021     };
28022   };
28024   URIFromHash = buildPerlPackage {
28025     pname = "URI-FromHash";
28026     version = "0.05";
28027     src = fetchurl {
28028       url = "mirror://cpan/authors/id/D/DR/DROLSKY/URI-FromHash-0.05.tar.gz";
28029       hash = "sha256-p8rFvM7p8uLYrQ9gVAAWNxLNCsZN8vuDT3YPtJ8vb9A=";
28030     };
28031     propagatedBuildInputs = [ ParamsValidate URI ];
28032     buildInputs = [ TestFatal ];
28033     meta = {
28034       description = "Build a URI from a set of named parameters";
28035       homepage = "https://metacpan.org/release/URI-FromHash";
28036       license = with lib.licenses; [ artistic2 ];
28037     };
28038   };
28040   UriGoogleChart = buildPerlPackage {
28041     pname = "URI-GoogleChart";
28042     version = "1.02";
28043     src = fetchurl {
28044       url = "mirror://cpan/authors/id/G/GA/GAAS/URI-GoogleChart-1.02.tar.gz";
28045       hash = "sha256-WoLCLsYBejXQ/IJv7xNBIiaHL8SiPA4sAUqfqS8rGAI=";
28046     };
28047     propagatedBuildInputs = [ URI ];
28048     meta = {
28049       description = "Generate Google Chart URIs";
28050       license = with lib.licenses; [ artistic1 gpl1Plus ];
28051     };
28052   };
28054   UserIdentity = buildPerlPackage {
28055     pname = "User-Identity";
28056     version = "1.02";
28057     src = fetchurl {
28058       url = "mirror://cpan/authors/id/M/MA/MARKOV/User-Identity-1.02.tar.gz";
28059       hash = "sha256-OySu5/UnjGXD8EEVsHyG5kaTTpnqQJJANj8wiZE+uJk=";
28060     };
28061     propagatedBuildInputs = [ HashOrdered ];
28062     meta = {
28063       description = "Collect information about a user";
28064       homepage = "http://perl.overmeer.net/CPAN";
28065       license = with lib.licenses; [ artistic1 gpl1Plus ];
28066     };
28067   };
28069   URIIMAP = buildPerlPackage {
28070     pname = "URI-imap";
28071     version = "1.01";
28072     src = fetchurl {
28073       url = "mirror://cpan/authors/id/C/CW/CWEST/URI-imap-1.01.tar.gz";
28074       hash = "sha256-uxSZiW7ONKe08JFinC5yw2imcwDoVzqyIZjJ2HI1uy0=";
28075     };
28076     propagatedBuildInputs = [ URI ];
28077     meta = {
28078       description = "Support IMAP URI";
28079       license = with lib.licenses; [ artistic1 gpl1Plus ];
28080     };
28081   };
28083   URINested = buildPerlModule {
28084     pname = "URI-Nested";
28085     version = "0.10";
28086     src = fetchurl {
28087       url = "mirror://cpan/authors/id/D/DW/DWHEELER/URI-Nested-0.10.tar.gz";
28088       hash = "sha256-4ZcTOaZfusY6uHFC1LWdPSWdUUF3U8d8tY6jGoIz768=";
28089     };
28090     propagatedBuildInputs = [ URI ];
28091     meta = {
28092       description = "Nested URIs";
28093       homepage = "https://metacpan.org/release/URI-Nested";
28094       license = with lib.licenses; [ artistic1 gpl1Plus ];
28095     };
28096   };
28098   URISmartURI = buildPerlPackage {
28099     pname = "URI-SmartURI";
28100     version = "0.032";
28101     src = fetchurl {
28102       url = "mirror://cpan/authors/id/R/RK/RKITOVER/URI-SmartURI-0.032.tar.gz";
28103       hash = "sha256-6xdLeUYi4UK30JT2p+Nqe6T8i7zySF4QPuPaNevMTyw=";
28104     };
28105     propagatedBuildInputs = [ ClassC3Componentised FileFindRule ListMoreUtils Moose URI namespaceclean ];
28106     buildInputs = [ TestFatal TestNoWarnings ];
28107     meta = {
28108       description = "Subclassable and hostless URIs";
28109       license = with lib.licenses; [ artistic1 gpl1Plus ];
28110     };
28111   };
28113   URITemplate = buildPerlPackage {
28114     pname = "URI-Template";
28115     version = "0.24";
28116     src = fetchurl {
28117       url = "mirror://cpan/authors/id/B/BR/BRICAS/URI-Template-0.24.tar.gz";
28118       hash = "sha256-aK4tYbV+FNytD4Kvr/3F7AW1B6HpyN9aphOKqipbEd4=";
28119     };
28120     propagatedBuildInputs = [ URI ];
28121     meta = {
28122       description = "Object for handling URI templates (RFC 6570)";
28123       license = with lib.licenses; [ artistic1 gpl1Plus ];
28124     };
28125   };
28127   URIcpan = buildPerlPackage {
28128     pname = "URI-cpan";
28129     version = "1.009";
28130     src = fetchurl {
28131       url = "mirror://cpan/authors/id/R/RJ/RJBS/URI-cpan-1.009.tar.gz";
28132       hash = "sha256-JFV5sCW2P1d8cndDARmEcjhxykDcNezsjq05riSkjhI=";
28133     };
28134     propagatedBuildInputs = [ CPANDistnameInfo URI ];
28135     meta = {
28136       description = "URLs that refer to things on the CPAN";
28137       homepage = "https://github.com/rjbs/URI-cpan";
28138       license = with lib.licenses; [ artistic1 gpl1Plus ];
28139     };
28140   };
28142   URIws = buildPerlPackage {
28143     pname = "URI-ws";
28144     version = "0.03";
28145     src = fetchurl {
28146       url = "mirror://cpan/authors/id/P/PL/PLICEASE/URI-ws-0.03.tar.gz";
28147       hash = "sha256-bmsOQXKstqU8IiY5wABgjC3WHVCEhkdIKshgDVDlQe8=";
28148     };
28149     propagatedBuildInputs = [ URI ];
28150     meta = {
28151       description = "WebSocket support for URI package";
28152       homepage = "http://perl.wdlabs.com/URI-ws";
28153       license = with lib.licenses; [ artistic1 gpl1Plus ];
28154     };
28155   };
28157   UUID4Tiny = buildPerlPackage {
28158     pname = "UUID4-Tiny";
28159     version = "0.003";
28160     src = fetchurl {
28161       url = "mirror://cpan/authors/id/C/CV/CVLIBRARY/UUID4-Tiny-0.003.tar.gz";
28162       hash = "sha256-4S9sgrg1dcORd3O0HA+1HPeDx8bPcuDJkWks4u8Hg2I=";
28163     };
28164     postPatch = lib.optionalString (stdenv.hostPlatform.isAarch64) ''
28165       # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/asm-generic/unistd.h
28166       # printf SYS_getrandom | gcc -include sys/syscall.h -E -
28167       substituteInPlace lib/UUID4/Tiny.pm \
28168         --replace "syscall( 318" "syscall( 278"
28169     '';
28170     meta = {
28171       description = "Cryptographically secure v4 UUIDs for Linux x64";
28172       license = with lib.licenses; [ artistic1 gpl1Plus ];
28173       platforms = lib.platforms.linux; # configure phase fails with "OS unsupported"
28174     };
28175   };
28177   UUIDTiny = buildPerlPackage {
28178     pname = "UUID-Tiny";
28179     version = "1.04";
28180     src = fetchurl {
28181       url = "mirror://cpan/authors/id/C/CA/CAUGUSTIN/UUID-Tiny-1.04.tar.gz";
28182       hash = "sha256-bc2SYE1k6WzGwYgZSuFqnTpGVWIk93tvPR0TEraPmj0=";
28183     };
28184     meta = {
28185       description = "Pure Perl UUID Support With Functional Interface";
28186       license = with lib.licenses; [ artistic1 gpl1Plus ];
28187     };
28188   };
28190   UUIDURandom = buildPerlPackage {
28191     pname = "UUID-URandom";
28192     version = "0.001";
28193     src = fetchurl {
28194       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/UUID-URandom-0.001.tar.gz";
28195       hash = "sha256-PxNjGxO5YE+0ieKYlJDJnxA3Q6g3I5va+unWuvVfj0Y=";
28196     };
28197     propagatedBuildInputs = [ CryptURandom ];
28198     meta = {
28199       description = "UUIDs based on /dev/urandom or the Windows Crypto API";
28200       homepage = "https://github.com/dagolden/UUID-URandom";
28201       license = with lib.licenses; [ asl20 ];
28202     };
28203   };
28205   VariableMagic = buildPerlPackage {
28206     pname = "Variable-Magic";
28207     version = "0.63";
28208     src = fetchurl {
28209       url = "mirror://cpan/authors/id/V/VP/VPIT/Variable-Magic-0.63.tar.gz";
28210       hash = "sha256-ukCDssMf8mlPI3EzPVVMgmqvJLTZjQPki1tKQ6Kg5nk=";
28211     };
28212     meta = {
28213       description = "Associate user-defined magic to variables from Perl";
28214       homepage = "https://search.cpan.org/dist/Variable-Magic";
28215       license = with lib.licenses; [ artistic1 gpl1Plus ];
28216     };
28217   };
28219   Version = buildPerlPackage {
28220     pname = "version";
28221     version = "0.9930";
28222     src = fetchurl {
28223       url = "mirror://cpan/authors/id/L/LE/LEONT/version-0.9930.tar.gz";
28224       hash = "sha256-YduVX7yzn1kC+myLlXrrJ0HiPUhA+Eq/hGrx9nCu7jA=";
28225     };
28226     meta = {
28227       description = "Structured version objects";
28228       license = with lib.licenses; [ artistic1 gpl1Plus ];
28229     };
28230   };
28232   vidir = buildPerlPackage {
28233     pname = "App-vidir";
28234     version = "0.052";
28235     src = fetchurl {
28236       url = "mirror://cpan/authors/id/W/WO/WOLDRICH/App-vidir-0.052.tar.gz";
28237       hash = "sha256-GSKQdqXxPvGe1sEbu5Bcrc4iYH+pDoXJrxqqKbWsFQo=";
28238     };
28239     outputs = [ "out" ];
28240     meta = {
28241       description = "File manager USING vim itself";
28242       license = with lib.licenses; [ artistic1 gpl1Plus ];
28243       maintainers = [ maintainers.chreekat ];
28244       mainProgram = "vidir";
28245     };
28246   };
28248   VMEC2 = buildPerlModule {
28249     pname = "VM-EC2";
28250     version = "1.28";
28251     src = fetchurl {
28252       url = "mirror://cpan/authors/id/L/LD/LDS/VM-EC2-1.28.tar.gz";
28253       hash = "sha256-srazF0XFdDH8oO+5udC48WjWCBdV4Ej9nWxEab0Qis0=";
28254     };
28255     propagatedBuildInputs = [ AnyEventCacheDNS AnyEventHTTP JSON StringApprox XMLSimple ];
28256     meta = {
28257       description = "Perl interface to Amazon EC2, Virtual Private Cloud, Elastic Load Balancing, Autoscaling, and Relational Database services";
28258       license = with lib.licenses; [ artistic1 gpl1Plus ];
28259     };
28260   };
28262   VMEC2SecurityCredentialCache = buildPerlPackage {
28263     pname = "VM-EC2-Security-CredentialCache";
28264     version = "0.25";
28265     src = fetchurl {
28266       url = "mirror://cpan/authors/id/R/RC/RCONOVER/VM-EC2-Security-CredentialCache-0.25.tar.gz";
28267       hash = "sha256-/H6cFS/ytyHMsiGsQAiZNHdc9YNmrttcwWk2CfhAk3s=";
28268     };
28269     propagatedBuildInputs = [ DateTimeFormatISO8601 VMEC2 ];
28270     meta = {
28271       description = "Cache credentials respecting expiration time for IAM roles";
28272       homepage = "https://search.cpan.org/dist/VM-EC2-Security-CredentialCache";
28273       license = with lib.licenses; [ artistic1 gpl1Plus ];
28274     };
28275   };
28277   W3CLinkChecker = buildPerlPackage {
28278     pname = "W3C-LinkChecker";
28279     version = "5.0.0";
28280     src = fetchurl {
28281       url = "mirror://cpan/authors/id/D/DH/DHM/W3C-LinkChecker-5.0.0.tar.gz";
28282       hash = "sha256-CvdY0ZUMswTdqvqnoDmHaHTYjC/teL2KYx6zkG5U+6Y=";
28283     };
28284     outputs = [ "out" ];
28285     propagatedBuildInputs = [ CGI CSSDOM ConfigGeneral LWP LocaleCodes NetIP TermReadKey ];
28286     meta = {
28287       description = "W3C Link Checker";
28288       homepage = "https://validator.w3.org/checklink";
28289       license = with lib.licenses; [ w3c ];
28290       mainProgram = "checklink";
28291     };
28292   };
28294   WWWCurl = buildPerlPackage {
28295     pname = "WWW-Curl";
28296     version = "4.17";
28297     src = fetchurl {
28298       url = "mirror://cpan/authors/id/S/SZ/SZBALINT/WWW-Curl-4.17.tar.gz";
28299       hash = "sha256-Uv+rEQ4yNI13XyQclz61b5awju28EQ130lfNsKJKt7o=";
28300     };
28301     patches = [
28302       (fetchpatch {
28303         url = "https://aur.archlinux.org/cgit/aur.git/plain/makefile.patch?h=perl-www-curl&id=7e004bb8c5dc49c903a5d5fa5ff28c30a58e2595";
28304         hash = "sha256-8JZbe4IMfRZyLa118AAH/wsXrazOFy79OoH3Nuy57A4=";
28305         name = "perl-www-curl-makefile.patch";
28306       })
28307     ];
28308     env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-return-type";
28309     buildInputs = [ pkgs.curl ];
28310     doCheck = false; # performs network access
28311     meta = {
28312       description = "Perl extension interface for libcurl";
28313       license = with lib.licenses; [ mit ];
28314     };
28315   };
28317   WWWFormUrlEncoded = buildPerlModule {
28318     pname = "WWW-Form-UrlEncoded";
28319     version = "0.26";
28320     src = fetchurl {
28321       url = "mirror://cpan/authors/id/K/KA/KAZEBURO/WWW-Form-UrlEncoded-0.26.tar.gz";
28322       hash = "sha256-wEgLXx8VtxFj7DJ7jnhCKY8Ms6zpfmPXA0rx6UotkPQ=";
28323     };
28324     meta = {
28325       description = "Parser and builder for application/x-www-form-urlencoded";
28326       homepage = "https://github.com/kazeburo/WWW-Form-UrlEncoded";
28327       license = with lib.licenses; [ artistic1 gpl1Plus ];
28328     };
28329   };
28331   WWWMechanize = buildPerlPackage {
28332     pname = "WWW-Mechanize";
28333     version = "2.17";
28334     src = fetchurl {
28335       url = "mirror://cpan/authors/id/S/SI/SIMBABQUE/WWW-Mechanize-2.17.tar.gz";
28336       hash = "sha256-nAIAPoRiHeoSyYDEEB555PjK5OOCzT2iOfqovRmPBjo=";
28337     };
28338     propagatedBuildInputs = [ HTMLForm HTMLTree LWP ];
28339     doCheck = false;
28340     buildInputs = [ CGI HTTPServerSimple PathTiny TestDeep TestFatal TestOutput TestWarnings ];
28341     meta = {
28342       description = "Handy web browsing in a Perl object";
28343       homepage = "https://github.com/libwww-perl/WWW-Mechanize";
28344       license = with lib.licenses; [ artistic1 gpl1Plus ];
28345       mainProgram = "mech-dump";
28346     };
28347   };
28349   WWWMechanizeCGI = buildPerlPackage {
28350     pname = "WWW-Mechanize-CGI";
28351     version = "0.3";
28352     src = fetchurl {
28353       url = "mirror://cpan/authors/id/M/MR/MRAMBERG/WWW-Mechanize-CGI-0.3.tar.gz";
28354       hash = "sha256-weBNi/Hh8NfP9Rl7I2Z2kyrLgCgJNq7a5PngSFGo0hA=";
28355     };
28356     propagatedBuildInputs = [ HTTPRequestAsCGI WWWMechanize ];
28357     preConfigure = ''
28358       substituteInPlace t/cgi-bin/script.cgi \
28359         --replace '#!/usr/bin/perl' '#!${perl}/bin/perl'
28360     '';
28361     meta = {
28362       description = "Use WWW::Mechanize with CGI applications";
28363       license = with lib.licenses; [ artistic1 gpl1Plus ];
28364       broken = stdenv.hostPlatform.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.WWWMechanizeCGI.x86_64-darwin
28365     };
28366   };
28368   WWWRobotRules = buildPerlPackage {
28369     pname = "WWW-RobotRules";
28370     version = "6.02";
28371     src = fetchurl {
28372       url = "mirror://cpan/authors/id/G/GA/GAAS/WWW-RobotRules-6.02.tar.gz";
28373       hash = "sha256-RrUC56KI1VlCmJHutdl5Rh3T7MalxJHq2F0WW24DpR4=";
28374     };
28375     propagatedBuildInputs = [ URI ];
28376     meta = {
28377       description = "Database of robots.txt-derived permissions";
28378       license = with lib.licenses; [ artistic1 gpl1Plus ];
28379     };
28380   };
28382   WWWTwilioAPI = buildPerlPackage {
28383     pname = "WWW-Twilio-API";
28384     version = "0.21";
28385     src = fetchurl {
28386       url = "mirror://cpan/authors/id/S/SC/SCOTTW/WWW-Twilio-API-0.21.tar.gz";
28387       hash = "sha256-WC21OgkfjaNnDAN3MzFPJRCvXo7gukKg45Hi8uPKdzQ=";
28388     };
28389     prePatch = "rm examples.pl";
28390     propagatedBuildInputs = [ LWPProtocolHttps ];
28391     meta = {
28392       description = "Accessing Twilio's REST API with Perl";
28393       license = with lib.licenses; [ artistic1 gpl1Plus ];
28394     };
28395   };
28397   WWWYoutubeViewer = callPackage ../development/perl-modules/WWW-YoutubeViewer { };
28399   Want = buildPerlPackage {
28400     pname = "Want";
28401     version = "0.29";
28402     src = fetchurl {
28403       url = "mirror://cpan/authors/id/R/RO/ROBIN/Want-0.29.tar.gz";
28404       hash = "sha256-tOR0C41Mt4NZEnPGNr1oMEiS4o2J6Iq/knOx3hf1Uvc=";
28405     };
28406     meta = {
28407       description = "Generalisation of wantarray";
28408       license = with lib.licenses; [ artistic1 gpl1Plus ];
28409     };
28410   };
28412   Win32ShellQuote = buildPerlPackage {
28413     pname = "Win32-ShellQuote";
28414     version = "0.003001";
28415     src = fetchurl {
28416       url = "mirror://cpan/authors/id/H/HA/HAARG/Win32-ShellQuote-0.003001.tar.gz";
28417       hash = "sha256-qnSw49wtQc1j9i+FPlIf/Xa42CNHmiYZ4i7bQEm0wNw=";
28418     };
28419     meta = {
28420       description = "Quote argument lists for Win32";
28421       license = with lib.licenses; [ artistic1 gpl1Plus ];
28422     };
28423   };
28425   Workflow = buildPerlPackage {
28426     pname = "Workflow";
28427     version = "1.62";
28428     src = fetchurl {
28429       url = "mirror://cpan/authors/id/J/JO/JONASBN/Workflow-1.62.tar.gz";
28430       hash = "sha256-WNNokAm4j+Gp2DcWfTKaoe4xTzFZeeVik2OGVFs80pU=";
28431     };
28432     buildInputs = [ DBDMock ListMoreUtils MockMonkeyPatch PodCoverageTrustPod TestException TestKwalitee TestPod TestPodCoverage ];
28433     propagatedBuildInputs = [ ClassAccessor ClassFactory DateTime DBI DataUUID DateTimeFormatStrptime ExceptionClass FileSlurp LogLog4perl Readonly XMLSimple ];
28434     meta = {
28435       description = "Simple, flexible system to implement workflows";
28436       homepage = "https://github.com/jonasbn/perl-workflow";
28437       license = with lib.licenses; [ artistic1 gpl1Plus ];
28438     };
28439   };
28441   Wx = buildPerlPackage {
28442     pname = "Wx";
28443     version = "0.9932";
28444     src = fetchurl {
28445       url = "mirror://cpan/authors/id/M/MD/MDOOTSON/Wx-0.9932.tar.gz";
28446       hash = "sha256-HP22U1oPRnbm8aqyydjhbVd74+s7fMBMgHTWheZlG3A=";
28447     };
28448     patches = [
28449       (fetchpatch {
28450         url = "https://sources.debian.org/data/main/libw/libwx-perl/1%3A0.9932-8/debian/patches/gtk3.patch";
28451         hash = "sha256-CokmRzDTFmEMN/jTKw9ECCPvi0mHt5+h8Ojg4Jgd7D4=";
28452       })
28453       (fetchpatch {
28454         url = "https://sources.debian.org/data/main/libw/libwx-perl/1%3A0.9932-8/debian/patches/wxWidgets_3.2_MakeMaker.patch";
28455         hash = "sha256-kTJiCGv8yxQbgMych9yT2cOt+2bL1G4oJ0gehNcu0Rc=";
28456       })
28457       (fetchpatch {
28458         url = "https://sources.debian.org/data/main/libw/libwx-perl/1%3A0.9932-8/debian/patches/wxWidgets_3.2_port.patch";
28459         hash = "sha256-y9LMpcbm7p8+LZ2Hw3PA2jc7bHAFEu0QRa170XuseKw=";
28460       })
28461     ];
28462     # DND.c:453:15: error: incompatible integer to pointer conversion assigning to 'NativeFormat' (aka 'const __CFString *') from 'wxDataFormatId'
28463     postPatch = ''
28464       substituteInPlace ext/dnd/XS/DataObject.xs \
28465         --replace "#ifdef __WXGTK20__" "#if wxUSE_GUI"
28466     '';
28467     propagatedBuildInputs = [ AlienWxWidgets ];
28468     # Testing requires an X server:
28469     #   Error: Unable to initialize GTK, is DISPLAY set properly?"
28470     doCheck = false;
28471     buildInputs = [ ExtUtilsXSpp ];
28472     meta = {
28473       description = "Interface to the wxWidgets cross-platform GUI toolkit";
28474       license = with lib.licenses; [ artistic1 gpl1Plus ];
28475     };
28476   };
28478   WxGLCanvas = buildPerlPackage {
28479     pname = "Wx-GLCanvas";
28480     version = "0.09";
28481     src = fetchurl {
28482       url = "mirror://cpan/authors/id/M/MB/MBARBON/Wx-GLCanvas-0.09.tar.gz";
28483       hash = "sha256-atLCn/Bv+Apci0udHWvwrtV0iegxvlnJRJT09ojcj+A=";
28484     };
28485     propagatedBuildInputs = [ pkgs.libGLU Wx ];
28486     doCheck = false;
28487     meta = {
28488       description = "wxPerl demo helper for Wx::GLCanvas";
28489       license = with lib.licenses; [ artistic1 gpl1Plus ];
28490     };
28491   };
28493   X11IdleTime = buildPerlPackage {
28494     pname = "X11-IdleTime";
28495     version = "0.09";
28496     src = fetchurl {
28497       url = "mirror://cpan/authors/id/A/AW/AWENDT/X11-IdleTime-0.09.tar.gz";
28498       hash = "sha256-2P3cB455ge4xt2CMZTZFyyDwFr3dx8VQtNUn79NiR0g=";
28499     };
28500     buildInputs = [ pkgs.xorg.libXext pkgs.xorg.libXScrnSaver pkgs.xorg.libX11 ];
28501     propagatedBuildInputs = [ InlineC ];
28502     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";
28503     meta = {
28504       description = "Get the idle time of X11";
28505       license = with lib.licenses; [ artistic1 gpl1Plus ];
28506     };
28507   };
28509   X11Protocol = buildPerlPackage {
28510     pname = "X11-Protocol";
28511     version = "0.56";
28512     src = fetchurl {
28513       url = "mirror://cpan/authors/id/S/SM/SMCCAM/X11-Protocol-0.56.tar.gz";
28514       hash = "sha256-3pbdbHwfJfMoeqevZJAr+ErKqo4MO7dqoWdjZ+BKCLc=";
28515     };
28516     doCheck = false; # requires an X server
28517     meta = {
28518       description = "Perl module for the X Window System Protocol, version 11";
28519       license = with lib.licenses; [ artistic1 gpl1Plus ];
28520     };
28521   };
28523   X11ProtocolOther = buildPerlPackage {
28524     pname = "X11-Protocol-Other";
28525     version = "31";
28526     src = fetchurl {
28527       url = "mirror://cpan/authors/id/K/KR/KRYDE/X11-Protocol-Other-31.tar.gz";
28528       hash = "sha256-PGJZk9x6jrHQLgcQimZjAkWcb8b589J2FfdJUVjcc/Q=";
28529     };
28530     propagatedBuildInputs = [ X11Protocol ];
28531     buildInputs = [ EncodeHanExtra ModuleUtil ];
28532     meta = {
28533       description = "Miscellaneous helpers for X11::Protocol connections";
28534       homepage = "https://user42.tuxfamily.org/x11-protocol-other/index.html";
28535       license = with lib.licenses; [ gpl1Plus gpl3Plus ];
28536     };
28537   };
28539   X11GUITest = buildPerlPackage {
28540     pname = "X11-GUITest";
28541     version = "0.28";
28542     src = fetchurl {
28543       url = "mirror://cpan/authors/id/C/CT/CTRONDLP/X11-GUITest-0.28.tar.gz";
28544       hash = "sha256-3O7eU3AGEP/xQtydXE5M0DcMiKTysTcfnL9NjYzm9ks=";
28545     };
28546     buildInputs = [ pkgs.xorg.libX11 pkgs.xorg.libXi pkgs.xorg.libXt pkgs.xorg.libXtst ];
28547     NIX_CFLAGS_LINK = "-lX11";
28548     doCheck = false; # requires an X server
28549     meta = {
28550       description = "Provides GUI testing/interaction routines";
28551       license = with lib.licenses; [ gpl2Only ];
28552     };
28553   };
28555   X11XCB = buildPerlPackage {
28556     pname = "X11-XCB";
28557     version = "0.20";
28558     src = fetchurl {
28559       url = "mirror://cpan/authors/id/Z/ZH/ZHMYLOVE/X11-XCB-0.20.tar.gz";
28560       hash = "sha256-rVY5Yd4gIlVOdZHvXLjZY0ngxzdxIYXkeFBViMZ6L9I=";
28561     };
28562     env.AUTOMATED_TESTING = false;
28563     nativeBuildInputs = [ pkgs.pkg-config ];
28564     buildInputs = [ pkgs.xorg.libxcb pkgs.xorg.xcbproto pkgs.xorg.xcbutil pkgs.xorg.xcbutilwm ExtUtilsDepends ExtUtilsPkgConfig TestDeep TestException ];
28565     propagatedBuildInputs = [ DataDump MouseXNativeTraits XMLDescent XMLSimple XSObjectMagic ];
28566     NIX_CFLAGS_LINK = "-lxcb -lxcb-util -lxcb-xinerama -lxcb-icccm -lxcb-randr -lxcb-xkb";
28567     doCheck = false; # requires an X server
28568     meta = {
28569       description = "Perl bindings for libxcb";
28570       license = with lib.licenses; [ artistic1 gpl1Plus ];
28571     };
28572   };
28574   XMLCanonicalizeXML = buildPerlPackage {
28575     pname = "XML-CanonicalizeXML";
28576     version = "0.10";
28577     src = fetchurl {
28578       url = "mirror://cpan/authors/id/S/SJ/SJZASADA/XML-CanonicalizeXML-0.10.tar.gz";
28579       hash = "sha256-5yhGSIDLtMHz/XceCQOoUmzWV7OUuzchYDUkXPHihu4=";
28580     };
28581     buildInputs = [ pkgs.libxml2 ];
28582     meta = {
28583       description = "Perl extension for inclusive (1.0 and 1.1) and exclusive canonicalization of XML using libxml2";
28584       license = with lib.licenses; [ artistic1 gpl1Plus ];
28585       maintainers = [ maintainers.sgo ];
28586     };
28587   };
28589   XMLDescent = buildPerlModule {
28590     pname = "XML-Descent";
28591     version = "1.04";
28592     src = fetchurl {
28593       url = "mirror://cpan/authors/id/A/AN/ANDYA/XML-Descent-1.04.tar.gz";
28594       hash = "sha256-pxG4VvjN9eZHpExx+WfUjAlgNbnb0/Hvvb6kBgWvvVA=";
28595     };
28596     buildInputs = [ TestDifferences ];
28597     propagatedBuildInputs = [ XMLTokeParser ];
28598     meta = {
28599       description = "Recursive descent XML parsing";
28600       license = with lib.licenses; [ artistic1 gpl1Plus ];
28601     };
28602   };
28604   XMLEncoding = buildPerlPackage {
28605     pname = "XML-Encoding";
28606     version = "2.11";
28607     src = fetchurl {
28608       url = "mirror://cpan/authors/id/S/SH/SHAY/XML-Encoding-2.11.tar.gz";
28609       hash = "sha256-pQ5Brwp5uILUiBa5VoHzilWvHmqIgo3NljdKi94jBaE=";
28610     };
28611     propagatedBuildInputs = [ XMLParser ];
28612     meta = {
28613       description = "Perl module for parsing XML encoding maps";
28614       license = with lib.licenses; [ artistic1 gpl1Plus ];
28615     };
28616   };
28618   XMLEntities = buildPerlPackage {
28619     pname = "XML-Entities";
28620     version = "1.0002";
28621     src = fetchurl {
28622       url = "mirror://cpan/authors/id/S/SI/SIXTEASE/XML-Entities-1.0002.tar.gz";
28623       hash = "sha256-wyqk8wlXPXZIqy5Bb2K2sgZS8q2c/T7sgv1REB/nMQ0=";
28624     };
28625     nativeBuildInputs = lib.optional stdenv.hostPlatform.isDarwin shortenPerlShebang;
28626     propagatedBuildInputs = [ LWP ];
28627     postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
28628       shortenPerlShebang $out/bin/download-entities.pl
28629     '';
28630     meta = {
28631       description = "Mapping of XML entities to Unicode";
28632       license = with lib.licenses; [ artistic1 gpl1Plus ];
28633     };
28634   };
28636   XMLDOM = buildPerlPackage {
28637     pname = "XML-DOM";
28638     version = "1.46";
28639     src = fetchurl {
28640       url = "mirror://cpan/authors/id/T/TJ/TJMATHER/XML-DOM-1.46.tar.gz";
28641       hash = "sha256-i6JLC0WbAdbF5bBAiCnH1d/kf/ebNUjIE3WQSAmbF14=";
28642     };
28643     propagatedBuildInputs = [ XMLRegExp libxml_perl ];
28644     meta = {
28645       description = "Interface to XML::DOM toolset";
28646       license = with lib.licenses; [ gpl2Only ];
28647     };
28648   };
28650   XMLFeedPP = buildPerlPackage {
28651     pname = "XML-FeedPP";
28652     version = "0.95";
28653     src = fetchurl {
28654       url = "mirror://cpan/authors/id/M/MA/MARKOV/XML-FeedPP-0.95.tar.gz";
28655       hash = "sha256-kMOVm/GmC3aimnSac5QfOgx7mllUwTZbyB2vyrsBqPQ=";
28656     };
28657     propagatedBuildInputs = [ XMLTreePP ];
28658     meta = {
28659       description = "Parse/write/merge/edit RSS/RDF/Atom syndication feeds";
28660       homepage = "http://perl.overmeer.net/CPAN";
28661       license = with lib.licenses; [ artistic1 gpl1Plus ];
28662     };
28663   };
28665   XMLFilterBufferText = buildPerlPackage {
28666     pname = "XML-Filter-BufferText";
28667     version = "1.01";
28668     src = fetchurl {
28669       url = "mirror://cpan/authors/id/R/RB/RBERJON/XML-Filter-BufferText-1.01.tar.gz";
28670       hash = "sha256-j9ISbTvuxVTfhSkZ9HOeaJICy7pqF1Bum2bqFlhBp1w=";
28671     };
28672     doCheck = false;
28673     meta = {
28674       description = "Filter to put all characters() in one event";
28675       license = with lib.licenses; [ artistic1 gpl1Plus ];
28676     };
28677   };
28679   XMLFilterXInclude = buildPerlPackage {
28680     pname = "XML-Filter-XInclude";
28681     version = "1.0";
28682     src = fetchurl {
28683       url = "mirror://cpan/authors/id/M/MS/MSERGEANT/XML-Filter-XInclude-1.0.tar.gz";
28684       hash = "sha256-mHRvPB9vBJSR/sID1FW7j4ycbiUPBBkE3aXXjiEYf5M=";
28685     };
28686     doCheck = false;
28687     meta = {
28688       description = "XInclude as a SAX Filter";
28689       license = with lib.licenses; [ artistic1 gpl1Plus ];
28690     };
28691   };
28693   XMLFilterSort = buildPerlPackage {
28694     pname = "XML-Filter-Sort";
28695     version = "1.01";
28696     src = fetchurl {
28697       url = "mirror://cpan/authors/id/G/GR/GRANTM/XML-Filter-Sort-1.01.tar.gz";
28698       hash = "sha256-UQWF85pJFszV+o1UXpYXnJHq9vx8l6QBp1aOhBFi+l8=";
28699     };
28700     nativeBuildInputs = lib.optional stdenv.hostPlatform.isDarwin shortenPerlShebang;
28701     propagatedBuildInputs = [
28702       XMLSAX
28703       XMLSAXWriter
28704     ];
28705     postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
28706       shortenPerlShebang $out/bin/xmlsort
28707     '';
28708     meta = {
28709       description = "SAX filter for sorting elements in XML";
28710       license = with lib.licenses; [ artistic1 gpl1Plus ];
28711       mainProgram = "xmlsort";
28712     };
28713   };
28715   XMLGrove = buildPerlPackage {
28716     pname = "XML-Grove";
28717     version = "0.46alpha";
28718     src = fetchurl {
28719       url = "mirror://cpan/authors/id/K/KM/KMACLEOD/XML-Grove-0.46alpha.tar.gz";
28720       hash = "sha256-/LZtffSsKcsO3B6mLBdQcCyqaob8lHkKlPyxo2vQ0Rc=";
28721     };
28722     buildInputs = [ pkgs.libxml2 ];
28723     propagatedBuildInputs = [ libxml_perl ];
28725     #patch from https://bugzilla.redhat.com/show_bug.cgi?id=226285
28726     patches = [ ../development/perl-modules/xml-grove-utf8.patch ];
28727     meta = {
28728       description = "Perl-style XML objects";
28729       license = with lib.licenses; [ artistic1 gpl1Plus ];
28730     };
28731   };
28733   XMLHandlerYAWriter = buildPerlPackage {
28734     pname = "XML-Handler-YAWriter";
28735     version = "0.23";
28736     src = fetchurl {
28737       url = "mirror://cpan/authors/id/K/KR/KRAEHE/XML-Handler-YAWriter-0.23.tar.gz";
28738       hash = "sha256-50y7vl41wapyYZC/re8cePN7ThV3+JyT2sKgr4MqpIU=";
28739     };
28740     propagatedBuildInputs = [ libxml_perl ];
28741     meta = {
28742       description = "Yet another Perl SAX XML Writer";
28743       license = with lib.licenses; [ gpl1Only ];
28744       mainProgram = "xmlpretty";
28745     };
28746   };
28748   XMLLibXML = buildPerlPackage {
28749     pname = "XML-LibXML";
28750     version = "2.0210";
28751     src = fetchurl {
28752       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/XML-LibXML-2.0210.tar.gz";
28753       hash = "sha256-opvz8Aq5ye4EIYFU4K/I95m/I2dOuZwantTeH0BZpI0=";
28754     };
28755     SKIP_SAX_INSTALL = 1;
28756     buildInputs = [ AlienBuild AlienLibxml2 ]
28757       ++ lib.optionals stdenv.hostPlatform.isDarwin (with pkgs; [ libiconv zlib ]);
28758     patches = [
28759       # https://github.com/shlomif/perl-XML-LibXML/pull/87
28760       ../development/perl-modules/XML-LibXML-fix-tests-libxml-2.13.0.patch
28761     ];
28762     propagatedBuildInputs = [ XMLSAX ];
28763     meta = {
28764       description = "Perl Binding for libxml2";
28765       license = with lib.licenses; [ artistic1 gpl1Plus ];
28766     };
28767   };
28769   XMLLibXMLSimple = buildPerlPackage {
28770     pname = "XML-LibXML-Simple";
28771     version = "1.01";
28772     src = fetchurl {
28773       url = "mirror://cpan/authors/id/M/MA/MARKOV/XML-LibXML-Simple-1.01.tar.gz";
28774       hash = "sha256-zZjIEEtw12cr+ia0UTt4rfK0uSIOWGqovrGlCFADZaY=";
28775     };
28776     propagatedBuildInputs = [ XMLLibXML ];
28777     meta = {
28778       description = "API for simple XML files";
28779       license = with lib.licenses; [ artistic1 gpl1Plus ];
28780     };
28781   };
28783   XMLLibXSLT = buildPerlPackage {
28784     pname = "XML-LibXSLT";
28785     version = "2.002001";
28786     src = fetchurl {
28787       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/XML-LibXSLT-2.002001.tar.gz";
28788       hash = "sha256-34knxP8ZSfYlgNHB5vAPDNVrU9OpV+5LFxtZv/pjssA=";
28789     };
28790     nativeBuildInputs = [ pkgs.pkg-config ];
28791     buildInputs = [ pkgs.zlib pkgs.libxml2 pkgs.libxslt ];
28792     propagatedBuildInputs = [ XMLLibXML ];
28793     meta = {
28794       description = "Interface to the GNOME libxslt library";
28795       license = with lib.licenses; [ artistic1 gpl1Plus ];
28796     };
28797   };
28799   XMLMini = buildPerlPackage {
28800     pname = "XML-Mini";
28801     version = "1.38";
28802     src = fetchurl {
28803       url = "mirror://cpan/authors/id/P/PD/PDEEGAN/XML-Mini-1.38.tar.gz";
28804       hash = "sha256-r4A9OANqMYThJKaC5UZvG8EH9IqJ7zWwx2R+EaBz/i0=";
28805     };
28806     meta = {
28807       description = "Perl implementation of the XML::Mini XML create/parse interface";
28808       license = with lib.licenses; [ gpl3Plus ];
28809     };
28810   };
28812   XMLNamespaceSupport = buildPerlPackage {
28813     pname = "XML-NamespaceSupport";
28814     version = "1.12";
28815     src = fetchurl {
28816       url = "mirror://cpan/authors/id/P/PE/PERIGRIN/XML-NamespaceSupport-1.12.tar.gz";
28817       hash = "sha256-R+mVhZ+N0EE6o/ItNQxKYtplLoVCZ6oFhq5USuK65e8=";
28818     };
28819     meta = {
28820       description = "Simple generic namespace processor";
28821       license = with lib.licenses; [ artistic1 gpl1Plus ];
28822     };
28823   };
28825   XMLParser = buildPerlPackage {
28826     pname = "XML-Parser";
28827     version = "2.46";
28828     src = fetchurl {
28829       url = "mirror://cpan/authors/id/T/TO/TODDR/XML-Parser-2.46.tar.gz";
28830       hash = "sha256-0zEzJJHFHMz7TLlP/ET5zXM3jmGEmNSjffngQ2YcUV0=";
28831     };
28832     patches = [ ../development/perl-modules/xml-parser-0001-HACK-Assumes-Expat-paths-are-good.patch ];
28833     postPatch = lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
28834       substituteInPlace Expat/Makefile.PL --replace 'use English;' '#'
28835     '' + lib.optionalString stdenv.hostPlatform.isCygwin ''
28836       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
28837     '';
28838     makeMakerFlags = [ "EXPATLIBPATH=${pkgs.expat.out}/lib" "EXPATINCPATH=${pkgs.expat.dev}/include" ];
28839     propagatedBuildInputs = [ LWP ];
28840     meta = {
28841       description = "Perl module for parsing XML documents";
28842       license = with lib.licenses; [ artistic1 gpl1Plus ];
28843     };
28844   };
28846   XMLParserLite = buildPerlPackage {
28847     pname = "XML-Parser-Lite";
28848     version = "0.722";
28849     src = fetchurl {
28850       url = "mirror://cpan/authors/id/P/PH/PHRED/XML-Parser-Lite-0.722.tar.gz";
28851       hash = "sha256-b5CgJ+FTGg5UBs8d4Txwm1IWlm349z0Lq5q5GSCXY+4=";
28852     };
28853     buildInputs = [ TestRequires ];
28854     meta = {
28855       description = "Lightweight pure-perl XML Parser (based on regexps)";
28856       license = with lib.licenses; [ artistic1 gpl1Plus ];
28857     };
28858   };
28860   XMLXPath = buildPerlPackage {
28861     pname = "XML-XPath";
28862     version = "1.48";
28863     src = fetchurl {
28864       url = "mirror://cpan/authors/id/M/MA/MANWAR/XML-XPath-1.48.tar.gz";
28865       hash = "sha256-e8db42sjnlsucAqVcNK1O0MJPUZ/Kr5qdD+f+Qk3kM0=";
28866     };
28867     buildInputs = [ PathTiny ];
28868     propagatedBuildInputs = [ XMLParser ];
28869     meta = {
28870       description = "Parse and evaluate XPath statements";
28871       license = with lib.licenses; [ artistic2 ];
28872       mainProgram = "xpath";
28873     };
28874   };
28876   XMLXPathEngine = buildPerlPackage {
28877     pname = "XML-XPathEngine";
28878     version = "0.14";
28879     src = fetchurl {
28880       url = "mirror://cpan/authors/id/M/MI/MIROD/XML-XPathEngine-0.14.tar.gz";
28881       hash = "sha256-0v57y70L66FET0pzNAHnuKpSgvrUJm1Cc13XRYKy4mQ=";
28882     };
28883     meta = {
28884       description = "Re-usable XPath engine for DOM-like trees";
28885       license = with lib.licenses; [ artistic1 gpl1Plus ];
28886     };
28887   };
28889   XMLRegExp = buildPerlPackage {
28890     pname = "XML-RegExp";
28891     version = "0.04";
28892     src = fetchurl {
28893       url = "mirror://cpan/authors/id/T/TJ/TJMATHER/XML-RegExp-0.04.tar.gz";
28894       hash = "sha256-3xmQCWA2CFyOLUWQT+GA+Cv+1A8afgUkPzNOoQCQ/FQ=";
28895     };
28896     meta = {
28897       description = "Regular expressions for XML tokens";
28898       license = with lib.licenses; [ gpl2Plus];
28899     };
28900   };
28902   XMLRPCLite = buildPerlPackage {
28903     pname = "XMLRPC-Lite";
28904     version = "0.717";
28905     src = fetchurl {
28906       url = "mirror://cpan/authors/id/P/PH/PHRED/XMLRPC-Lite-0.717.tar.gz";
28907       hash = "sha256-Op+l8ssfr4t8ZrTDhuqzXKxgiK/E28dX1Pd9KE2rRSQ=";
28908     };
28909     propagatedBuildInputs = [ SOAPLite ];
28910     # disable tests that require network
28911     preCheck = "rm t/{26-xmlrpc.t,37-mod_xmlrpc.t}";
28912     meta = {
28913       description = "Client and server implementation of XML-RPC protocol";
28914       license = with lib.licenses; [ artistic1 gpl1Plus ];
28915     };
28916   };
28918   XMLRSS = buildPerlModule {
28919     pname = "XML-RSS";
28920     version = "1.62";
28921     src = fetchurl {
28922       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/XML-RSS-1.62.tar.gz";
28923       hash = "sha256-0ycGNELH/3FDmTqgwtFv3lEhSRyXFmHrbLcA0uBDi04=";
28924     };
28925     propagatedBuildInputs = [ DateTimeFormatMail DateTimeFormatW3CDTF XMLParser ];
28926     meta = {
28927       description = "Creates and updates RSS files";
28928       homepage = "https://metacpan.org/release/XML-RSS";
28929       license = with lib.licenses; [ artistic1 gpl1Plus ];
28930     };
28931   };
28933   XMLRules = buildPerlModule {
28934     pname = "XML-Rules";
28935     version = "1.16";
28936     src = fetchurl {
28937       url = "mirror://cpan/authors/id/J/JE/JENDA/XML-Rules-1.16.tar.gz";
28938       hash = "sha256-N4glXAev5BlaDecs4FBlIyDYF1KP8tEMYR9uOSBDhos=";
28939     };
28940     propagatedBuildInputs = [ XMLParser ];
28941     meta = {
28942       description = "Parse XML and specify what and how to keep/process for individual tags";
28943       license = with lib.licenses; [ artistic1 gpl1Plus ];
28944     };
28945   };
28947   XMLSAX = buildPerlPackage {
28948     pname = "XML-SAX";
28949     version = "1.02";
28950     src = fetchurl {
28951       url = "mirror://cpan/authors/id/G/GR/GRANTM/XML-SAX-1.02.tar.gz";
28952       hash = "sha256-RQbDhwQ6pqd7RV8A9XQJ83IKp+VTSVqyU1JjtO0eoSo=";
28953     };
28954     propagatedBuildInputs = [ XMLNamespaceSupport XMLSAXBase ];
28955     postInstall = ''
28956       perl -MXML::SAX -e "XML::SAX->add_parser(q(XML::SAX::PurePerl))->save_parsers()"
28957       '';
28958     meta = {
28959       description = "Simple API for XML";
28960       license = with lib.licenses; [ artistic1 gpl1Plus ];
28961     };
28962   };
28964   XMLSAXBase = buildPerlPackage {
28965     pname = "XML-SAX-Base";
28966     version = "1.09";
28967     src = fetchurl {
28968       url = "mirror://cpan/authors/id/G/GR/GRANTM/XML-SAX-Base-1.09.tar.gz";
28969       hash = "sha256-Zss1W6TvR8EMpzi9NZmXI2RDhqyFOrvrUTKEH16KKtA=";
28970     };
28971     meta = {
28972       description = "Base class for SAX Drivers and Filters";
28973       homepage = "https://github.com/grantm/XML-SAX-Base";
28974       license = with lib.licenses; [ artistic1 gpl1Plus ];
28975     };
28976   };
28978   XMLSAXExpat = buildPerlPackage {
28979     pname = "XML-SAX-Expat";
28980     version = "0.51";
28981     src = fetchurl {
28982       url = "mirror://cpan/authors/id/B/BJ/BJOERN/XML-SAX-Expat-0.51.tar.gz";
28983       hash = "sha256-TAFiE9DOfbLElOMAhrWZF7MC24wpLc0h853uvZeAyD8=";
28984     };
28985     propagatedBuildInputs = [ XMLParser XMLSAX ];
28986     # Avoid creating perllocal.pod, which contains a timestamp
28987     installTargets = [ "pure_install" ];
28988     meta = {
28989       description = "SAX Driver for Expat";
28990       license = with lib.licenses; [ artistic1 gpl1Plus ];
28991     };
28992   };
28994   XMLSAXWriter = buildPerlPackage {
28995     pname = "XML-SAX-Writer";
28996     version = "0.57";
28997     src = fetchurl {
28998       url = "mirror://cpan/authors/id/P/PE/PERIGRIN/XML-SAX-Writer-0.57.tar.gz";
28999       hash = "sha256-PWHQfvQ7ASb1tN5PQVolb6hZ+ojcT9q6rXC3vnxoLPA=";
29000     };
29001     propagatedBuildInputs = [ XMLFilterBufferText XMLNamespaceSupport XMLSAXBase ];
29002     meta = {
29003       description = "SAX2 XML Writer";
29004       homepage = "https://github.com/perigrin/xml-sax-writer";
29005       license = with lib.licenses; [ artistic1 gpl1Plus ];
29006     };
29007   };
29009   XMLSemanticDiff = buildPerlModule {
29010     pname = "XML-SemanticDiff";
29011     version = "1.0007";
29012     src = fetchurl {
29013       url = "mirror://cpan/authors/id/P/PE/PERIGRIN/XML-SemanticDiff-1.0007.tar.gz";
29014       hash = "sha256-Bf3v77vD9rYvx8m1+rr7a2le1o8KPZWFdyUdHwQCoPU=";
29015     };
29016     propagatedBuildInputs = [ XMLParser ];
29017     meta = {
29018       description = "Perl extension for comparing XML documents";
29019       license = with lib.licenses; [ artistic1 gpl1Plus ];
29020     };
29021   };
29023   XMLSimple = buildPerlPackage {
29024     pname = "XML-Simple";
29025     version = "2.25";
29026     src = fetchurl {
29027       url = "mirror://cpan/authors/id/G/GR/GRANTM/XML-Simple-2.25.tar.gz";
29028       hash = "sha256-Ux/drr6iQWdD61xP36sCj1AhI9miIEBaQQDmj8SA2/g=";
29029     };
29030     propagatedBuildInputs = [ XMLSAXExpat ];
29031     meta = {
29032       description = "API for simple XML files";
29033       license = with lib.licenses; [ artistic1 gpl1Plus ];
29034     };
29035   };
29037   XMLTokeParser = buildPerlPackage {
29038     pname = "XML-TokeParser";
29039     version = "0.05";
29040     src = fetchurl {
29041       url = "mirror://cpan/authors/id/P/PO/PODMASTER/XML-TokeParser-0.05.tar.gz";
29042       hash = "sha256-hTm0+YQ2sabQiDQai0Uwt5IqzWUfPyk3f4sZSMfi18I=";
29043     };
29044     propagatedBuildInputs = [ XMLParser ];
29045     meta = {
29046       description = "Simplified interface to XML::Parser";
29047       license = with lib.licenses; [ artistic1 gpl1Plus ];
29048     };
29049   };
29051   XMLTreePP = buildPerlPackage {
29052     pname = "XML-TreePP";
29053     version = "0.43";
29054     src = fetchurl {
29055       url = "mirror://cpan/authors/id/K/KA/KAWASAKI/XML-TreePP-0.43.tar.gz";
29056       hash = "sha256-f74tZDCGAFmJSu7r911MrPG/jXt1KU64fY4VAvgb12A=";
29057     };
29058     propagatedBuildInputs = [ LWP ];
29059     meta = {
29060       description = "Pure Perl implementation for parsing/writing XML documents";
29061       license = with lib.licenses; [ artistic1 gpl1Plus ];
29062     };
29063   };
29065   XMLTwig = buildPerlPackage {
29066     pname = "XML-Twig";
29067     version = "3.52";
29068     src = fetchurl {
29069       url = "mirror://cpan/authors/id/M/MI/MIROD/XML-Twig-3.52.tar.gz";
29070       hash = "sha256-/vdYJsJPK4d9Cg0mRSEvxPuXVu1NJxFhSsFcSX6GgK0=";
29071     };
29072     postInstall = ''
29073       mkdir -p $out/bin
29074       cp tools/xml_grep/xml_grep $out/bin
29075     '';
29076     propagatedBuildInputs = [ XMLParser ];
29077     doCheck = false;  # requires lots of extra packages
29078     meta = {
29079       description = "Perl module for processing huge XML documents in tree mode";
29080       license = with lib.licenses; [ artistic1 gpl1Plus ];
29081       mainProgram = "xml_grep";
29082     };
29083   };
29085   XMLValidatorSchema = buildPerlPackage {
29086     pname = "XML-Validator-Schema";
29087     version = "1.10";
29088     src = fetchurl {
29089       url = "mirror://cpan/authors/id/S/SA/SAMTREGAR/XML-Validator-Schema-1.10.tar.gz";
29090       hash = "sha256-YUJnlYAVCokffTIjK14x4rTl5T6Kb6nL7stcI4FPFCI=";
29091     };
29092     propagatedBuildInputs = [ TreeDAGNode XMLFilterBufferText XMLSAX ];
29093     meta = {
29094       description = "Validate XML against a subset of W3C XML Schema";
29095       license = with lib.licenses; [ artistic1 gpl1Plus ];
29096     };
29097   };
29099   XMLWriter = buildPerlPackage {
29100     pname = "XML-Writer";
29101     version = "0.900";
29102     src = fetchurl {
29103       url = "mirror://cpan/authors/id/J/JO/JOSEPHW/XML-Writer-0.900.tar.gz";
29104       hash = "sha256-c8j1vT7PKzUPStrm1mdtUuCOzC199KnwifpoNg1ADR8=";
29105     };
29106     meta = {
29107       description = "Module for creating a XML document object oriented with on the fly validating towards the given DTD";
29108       license = with lib.licenses; [ gpl1Only ];
29109     };
29110   };
29112   XSObjectMagic = buildPerlPackage {
29113     pname = "XS-Object-Magic";
29114     version = "0.05";
29115     src = fetchurl {
29116       url = "mirror://cpan/authors/id/E/ET/ETHER/XS-Object-Magic-0.05.tar.gz";
29117       hash = "sha256-PcnkYM7pLhF0QGJ1RkOjN3jKUqVNIF/K/6SrDzzxXlo=";
29118     };
29119     buildInputs = [ ExtUtilsDepends TestFatal TestSimple13 ];
29120     meta = {
29121       description = "Opaque, extensible XS pointer backed objects using sv_magic";
29122       homepage = "https://github.com/karenetheridge/XS-Object-Magic";
29123       license = with lib.licenses; [ artistic1 gpl1Plus ];
29124     };
29125   };
29127   XSParseKeyword = buildPerlModule {
29128     pname = "XS-Parse-Keyword";
29129     version = "0.44";
29130     src = fetchurl {
29131       url = "mirror://cpan/authors/id/P/PE/PEVANS/XS-Parse-Keyword-0.44.tar.gz";
29132       hash = "sha256-ohrnkiGSfvwR2J2MnbMt9swgsxacX2kuGSEUriNNdhI=";
29133     };
29134     buildInputs = [ ExtUtilsCChecker Test2Suite ];
29135     propagatedBuildInputs = [ FileShareDir ];
29136     perlPreHook = lib.optionalString (stdenv.hostPlatform.isi686 || stdenv.hostPlatform.isDarwin) "export LD=$CC";
29137     meta = {
29138       description = "XS functions to assist in parsing keyword syntax";
29139       license = with lib.licenses; [ artistic1 gpl1Plus ];
29140       maintainers = [ maintainers.zakame ];
29141     };
29142   };
29144   XSParseSublike = buildPerlModule {
29145     pname = "XS-Parse-Sublike";
29146     version = "0.29";
29147     src = fetchurl {
29148       url = "mirror://cpan/authors/id/P/PE/PEVANS/XS-Parse-Sublike-0.29.tar.gz";
29149       hash = "sha256-UnX1w457gFe6cuzRzAcpO26TOadzdA51pse+lSAfHjw=";
29150     };
29151     buildInputs = [ Test2Suite ];
29152     propagatedBuildInputs = [ FileShareDir ];
29153     perlPreHook = lib.optionalString stdenv.hostPlatform.isDarwin "export LD=$CC";
29154     meta = {
29155       description = "XS functions to assist in parsing sub-like syntax";
29156       license = with lib.licenses; [ artistic1 gpl1Plus ];
29157       maintainers = [ maintainers.zakame ];
29158     };
29159   };
29161   XXX = buildPerlPackage {
29162     pname = "XXX";
29163     version = "0.38";
29164     src = fetchurl {
29165       url = "mirror://cpan/authors/id/I/IN/INGY/XXX-0.38.tar.gz";
29166       hash = "sha256-0QUQ6gD2Gav0erKZ8Ui9WzYM+gfcDtUYE4t87HJpLSo=";
29167     };
29168     propagatedBuildInputs = [ YAMLPP ];
29169     meta = {
29170       description = "See Your Data in the Nude";
29171       homepage = "https://github.com/ingydotnet/xxx-pm";
29172       license = with lib.licenses; [ artistic1 gpl1Plus ];
29173     };
29174   };
29176   YAML = buildPerlPackage {
29177     pname = "YAML";
29178     version = "1.30";
29179     src = fetchurl {
29180       url = "mirror://cpan/authors/id/T/TI/TINITA/YAML-1.30.tar.gz";
29181       hash = "sha256-UDCm1sv/rxJYMFC/VSqoANRkbKlnjBh63WSSJ/V0ec0=";
29182     };
29184     buildInputs = [ TestBase TestDeep TestYAML ];
29186     meta = {
29187       description = "YAML Ain't Markup Language (tm)";
29188       homepage = "https://github.com/ingydotnet/yaml-pm";
29189       license = with lib.licenses; [ artistic1 gpl1Plus ];
29190     };
29191   };
29193   YAMLOld = buildPerlPackage {
29194     pname = "YAML-Old";
29195     version = "1.23";
29196     src = fetchurl {
29197       url = "mirror://cpan/authors/id/I/IN/INGY/YAML-Old-1.23.tar.gz";
29198       hash = "sha256-+lRvzZrMWjm8iHGQL3/B66UOfceBxc1cCr8a7ObRfs0=";
29199     };
29200     buildInputs = [ TestYAML TestBase ];
29201     meta = {
29202       description = "Old YAML.pm Legacy Code";
29203       homepage = "https://github.com/ingydotnet/yaml-old-pm";
29204       license = with lib.licenses; [ artistic1 gpl1Plus ];
29205     };
29206   };
29208   YAMLSyck = buildPerlPackage {
29209     pname = "YAML-Syck";
29210     version = "1.34";
29211     src = fetchurl {
29212       url = "mirror://cpan/authors/id/T/TO/TODDR/YAML-Syck-1.34.tar.gz";
29213       hash = "sha256-zJFWzK69p5jr/i8xthnoBld/hg7RcEJi8X/608bjQVk=";
29214     };
29215     perlPreHook = lib.optionalString stdenv.hostPlatform.isDarwin "export LD=$CC";
29216     meta = {
29217       description = "Fast, lightweight YAML loader and dumper";
29218       homepage = "https://github.com/toddr/YAML-Syck";
29219       license = with lib.licenses; [ mit ];
29220     };
29221   };
29223   YAMLTiny = buildPerlPackage {
29224     pname = "YAML-Tiny";
29225     version = "1.74";
29226     src = fetchurl {
29227       url = "mirror://cpan/authors/id/E/ET/ETHER/YAML-Tiny-1.74.tar.gz";
29228       hash = "sha256-ezjKn1084kIwpri9wfR/Wy2zSOf3+WZsJvWVVjbjPWw=";
29229     };
29230     meta = {
29231       description = "Read/Write YAML files with as little code as possible";
29232       license = with lib.licenses; [ artistic1 gpl1Plus ];
29233     };
29234   };
29236   YAMLLibYAML = buildPerlPackage {
29237     pname = "YAML-LibYAML";
29238     version = "0.89";
29239     src = fetchurl {
29240       url = "mirror://cpan/authors/id/T/TI/TINITA/YAML-LibYAML-0.89.tar.gz";
29241       hash = "sha256-FVq4NnU0XFCt0DMRrPndkVlVcH+Qmiq9ixfXeShZsuw=";
29242     };
29243     meta = {
29244       description = "Perl YAML Serialization using XS and libyaml";
29245       license = with lib.licenses; [ artistic1 gpl1Plus ];
29246     };
29247   };
29249   YAMLPP = buildPerlPackage {
29250     pname = "YAML-PP";
29251     version = "0.38.0";
29252     src = fetchurl {
29253       url = "mirror://cpan/authors/id/T/TI/TINITA/YAML-PP-v0.38.0.tar.gz";
29254       hash = "sha256-qBlGXFL2o0EEmjlCdCwI4E8olLKmZILkOn9AfOELTqA=";
29255     };
29256     buildInputs = [ TestDeep TestWarn ];
29257     meta = {
29258       description = "YAML 1.2 Processor";
29259       license = with lib.licenses; [ artistic1 gpl1Plus ];
29260     };
29261   };
29263   Yancy = buildPerlPackage {
29264     pname = "Yancy";
29265     version = "1.088";
29266     src = fetchurl {
29267       url = "mirror://cpan/authors/id/P/PR/PREACTION/Yancy-1.088.tar.gz";
29268       hash = "sha256-addqs5ilrGiQc0Paisybr9UZ+0x4WrAU7CagUhA2vSo=";
29269     };
29270     buildInputs = [ FileShareDirInstall ];
29271     propagatedBuildInputs = [ ClassMethodModifiers JSONValidator Mojolicious MojoliciousPluginI18N MojoliciousPluginOpenAPI RoleTiny ];
29272     meta = {
29273       homepage = "http://preaction.me/yancy/";
29274       description = "Best Web Framework Deserves the Best CMS";
29275       license = with lib.licenses; [ artistic1 gpl1Plus ];
29276     };
29277   };
29279   WebMachine = buildPerlPackage {
29280     pname = "Web-Machine";
29281     version = "0.17";
29282     src = fetchurl {
29283       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Web-Machine-0.17.tar.gz";
29284       hash = "sha256-8TnSsxFMVJ6RhH2qq4t1y2meV9r1u/Db0TKT8z/l4io=";
29285     };
29286     buildInputs = [ NetHTTP TestFailWarnings TestFatal ];
29287     propagatedBuildInputs = [ HTTPHeadersActionPack HTTPMessage HashMultiValue IOHandleUtil ModuleRuntime Plack SubExporter TryTiny ];
29288     meta = {
29289       description = "Perl port of Webmachine";
29290       homepage = "https://metacpan.org/release/Web-Machine";
29291       license = with lib.licenses; [ artistic1 gpl1Plus ];
29292     };
29293   };
29295   WebScraper = buildPerlModule {
29296     pname = "Web-Scraper";
29297     version = "0.38";
29298     src = fetchurl {
29299       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Web-Scraper-0.38.tar.gz";
29300       hash = "sha256-+VtuX41/7r4RbQW/WaK3zxpR7Z0wvKgBI0MOxFZ1Q78=";
29301     };
29302     buildInputs = [ ModuleBuildTiny TestBase TestRequires ];
29303     propagatedBuildInputs = [ HTMLParser HTMLSelectorXPath HTMLTagset HTMLTree HTMLTreeBuilderXPath UNIVERSALrequire URI XMLXPathEngine YAML libwwwperl ];
29304     meta = {
29305       homepage = "https://github.com/miyagawa/web-scraper";
29306       description = "Web Scraping Toolkit using HTML and CSS Selectors or XPath expressions";
29307       license = with lib.licenses; [ artistic1 gpl1Plus ];
29308     };
29309   };
29311   WebServiceLinode = buildPerlModule {
29312     pname = "WebService-Linode";
29313     version = "0.29";
29314     src = fetchurl {
29315       url = "mirror://cpan/authors/id/M/MI/MIKEGRB/WebService-Linode-0.29.tar.gz";
29316       hash = "sha256-EDqrJFME8I6eh6x7yITdtEpjDea6wHfckh9xbXEVSSI=";
29317     };
29318     buildInputs = [ ModuleBuildTiny ];
29319     propagatedBuildInputs = [ JSON LWPProtocolHttps ];
29320     meta = {
29321       description = "Perl Interface to the Linode.com API";
29322       homepage = "https://github.com/mikegrb/WebService-Linode";
29323       license = with lib.licenses; [ artistic1 gpl1Plus ];
29324     };
29325   };
29327   WebServiceValidatorHTMLW3C = buildPerlModule {
29328     pname = "WebService-Validator-HTML-W3C";
29329     version = "0.28";
29330     src = fetchurl {
29331       url = "mirror://cpan/authors/id/S/ST/STRUAN/WebService-Validator-HTML-W3C-0.28.tar.gz";
29332       hash = "sha256-zLB60zegOuyBob6gqJzSlUaR/1uzZ9+aMrnZEw8XURA=";
29333     };
29334     buildInputs = [ ClassAccessor LWP ];
29335     meta = {
29336       description = "Access the W3Cs online HTML validator";
29337       license = with lib.licenses; [ artistic1 gpl1Plus ];
29338     };
29339   };
29341   ZonemasterCLI = buildPerlPackage {
29342     pname = "Zonemaster-CLI";
29343     version = "6.000003";
29344     src = fetchurl {
29345       url = "mirror://cpan/authors/id/Z/ZN/ZNMSTR/Zonemaster-CLI-v6.0.3.tar.gz";
29346       hash = "sha256-oYDBYVygvPUZ9vrGX/y5A0MAQ6zgSsrf6AtUdFcZG4Q=";
29347     };
29348     propagatedBuildInputs = [
29349       JSONXS
29350       MooseXGetopt
29351       TextReflow
29352       ZonemasterEngine
29353       ZonemasterLDNS
29354       libintl-perl
29355     ];
29357     preConfigure = ''
29358       patchShebangs script/
29359     '';
29361     meta = {
29362       description = "Run Zonemaster tests from the command line";
29363       license = with lib.licenses; [ bsd3 ];
29364       maintainers = with lib.maintainers; [ qbit ];
29365     };
29366   };
29368   ZonemasterEngine = buildPerlPackage {
29369     pname = "Zonemaster-Engine";
29370     version = "4.6.1";
29371     src = fetchurl {
29372       url = "mirror://cpan/authors/id/Z/ZN/ZNMSTR/Zonemaster-Engine-v4.6.1.tar.gz";
29373       hash = "sha256-4AXo3bZTOLnnPjjX5KNb/2O7MRqcAtlqpz5sPwNN9b0=";
29374     };
29375     buildInputs = [ PodCoverage TestDifferences TestException TestFatal TestNoWarnings TestPod ];
29376     propagatedBuildInputs = [ ClassAccessor Clone EmailValid FileShareDir FileSlurp IOSocketINET6 ListMoreUtils ModuleFind Moose MooseXSingleton NetIP NetIPXS Readonly TextCSV ZonemasterLDNS libintl-perl ];
29378     meta = {
29379       description = "Tool to check the quality of a DNS zone";
29380       license = with lib.licenses; [ bsd3 ];
29381     };
29382   };
29384   ZonemasterLDNS = buildPerlPackage {
29385     pname = "Zonemaster-LDNS";
29386     version = "3.2.0";
29387     src = fetchurl {
29388       url = "mirror://cpan/authors/id/Z/ZN/ZNMSTR/Zonemaster-LDNS-3.2.0.tar.gz";
29389       hash = "sha256-BpsWQRcpX6gtJSlAocqLMIrYsfPocjvk6CaqqX9wbWw=";
29390     };
29391     env.NIX_CFLAGS_COMPILE = "-I${pkgs.openssl.dev}/include -I${pkgs.libidn2}.dev}/include";
29392     NIX_CFLAGS_LINK = "-L${lib.getLib pkgs.openssl}/lib -L${lib.getLib pkgs.libidn2}/lib -lcrypto -lidn2";
29394     makeMakerFlags = [ "--prefix-openssl=${pkgs.openssl.dev}" ];
29396     nativeBuildInputs = [ pkgs.pkg-config ];
29397     buildInputs = [ DevelChecklib ModuleInstall ModuleInstallXSUtil TestFatal TestDifferences pkgs.ldns pkgs.libidn2 pkgs.openssl ];
29398     meta = {
29399       description = "Perl wrapper for the ldns DNS library";
29400       license = with lib.licenses; [ bsd3 ];
29401     };
29402   };
29404 } // lib.optionalAttrs config.allowAliases {
29405   autodie = null; # part of Perl
29406   AutoLoader = null; # part of Perl 5.22
29407   constant = null; # part of Perl 5.22
29408   DevelSelfStubber = null; # part of Perl 5.22
29409   Digest = null; # part of Perl 5.22
29410   Exporter = null; # part of Perl 5.22
29411   I18NCollate = null; # part of Perl 5.22
29412   lib_ = null; # part of Perl 5.22
29413   LocaleMaketextSimple = null; # part of Perl 5.22
29414   MathComplex = null; # part of Perl 5.22
29415   MIMEBase64 = null; # part of Perl 5.22
29416   PerlIOviaQuotedPrint = null; # part of Perl 5.22
29417   PodEscapes = null; # part of Perl 5.22
29418   Safe = null; # part of Perl 5.22
29419   SearchDict = null; # part of Perl 5.22
29420   Test = null; # part of Perl 5.22
29421   TextAbbrev = null; # part of Perl 5.22
29422   TextTabsWrap = null; # part of Perl 5.22
29423   DigestSHA = null;
29424   "if" = null;
29425   TestSimple = null;
29426   AttributeHandlers = null; # part of Perl 5.26
29427   base = null; # part of Perl 5.26
29428   CPANMeta = null; # part of Perl 5.26
29429   CPANMetaRequirements = null; # part of Perl 5.26
29430   CPANMetaYAML = null; # part of Perl 5.26
29431   DigestMD5 = null; # part of Perl 5.26
29432   LocaleMaketext = null; # part of Perl 5.26
29433   ModuleLoadConditional = null; # part of Perl 5.26
29434   ModuleMetadata = null; # part of Perl 5.26
29435   PerlOSType = null; # part of Perl 5.26
29436   PodUsage = null; # part of Perl 5.26
29437   TermANSIColor = null; # part of Perl 5.26
29438   TermCap = null; # part of Perl 5.26
29439   ThreadSemaphore = null; # part of Perl 5.26
29440   UnicodeNormalize = null; # part of Perl 5.26
29441   XSLoader = null; # part of Perl 5.26
29443   Carp = null; # part of Perl 5.28
29444   ExtUtilsCBuilder = null; # part of Perl 5.28
29445   ExtUtilsParseXS = null; # part of Perl 5.28
29446   FilterSimple = null; # part of Perl 5.28
29447   IOSocketIP = null; # part of Perl 5.28
29448   SelfLoader = null; # part of Perl 5.28
29449   Socket = null; # part of Perl 5.28
29450   TestHarness = null; # part of Perl 5.28
29451   threads = null; # part of Perl 5.28
29452   TimeHiRes = null; # part of Perl 5.28
29453   UnicodeCollate = null; # part of Perl 5.28
29454   ModuleCoreList = null; # part of Perl 5.28.2
29456   bignum = null; # part of Perl 5.30.3
29457   DataDumper = null; # part of Perl 5.30.3
29458   ExtUtilsManifest = null; # part of Perl 5.30.3
29459   FileTemp = null; # part of Perl 5.30.3
29460   MathBigRat = null; # part of Perl 5.30.3
29461   Storable = null; # part of Perl 5.30.3
29462   threadsshared = null; # part of Perl 5.30.3
29463   ThreadQueue = null; # part of Perl 5.30.3
29465   ArchiveZip_1_53 = self.ArchiveZip;
29466   Autobox = self.autobox;
29467   CommonSense = self.commonsense; # For backwards compatibility.
29468   if_ = self."if"; # For backwards compatibility.
29469   Log4Perl = self.LogLog4perl; # For backwards compatibility.
29470   MouseXGetOpt = self.MouseXGetopt;
29471   NamespaceAutoclean = self.namespaceautoclean; # Deprecated.
29472   NamespaceClean = self.namespaceclean; # Deprecated.
29473   CatalystPluginUnicodeEncoding = self.CatalystRuntime;
29474   ClassAccessorFast = self.ClassAccessor;
29475   ClassMOP = self.Moose;
29476   CompressZlib = self.IOCompress;
29477   constantdefer = self.constant-defer;
29478   DigestHMAC_SHA1 = self.DigestHMAC;
29479   DistZillaPluginNoTabsTests = self.DistZillaPluginTestNoTabs;
29480   EmailMIMEModifier = self.EmailMIME;
29481   ExtUtilsCommand = self.ExtUtilsMakeMaker;
29482   IOSocketInet6 = self.IOSocketINET6;
29483   IOstringy = self.IOStringy;
29484   libintl_perl = self.libintl-perl;
29485   libintlperl = self.libintl-perl;
29486   LWPProtocolconnect = self.LWPProtocolConnect;
29487   LWPProtocolhttps = self.LWPProtocolHttps;
29488   LWPUserAgent = self.LWP;
29489   MIMEtools = self.MIMETools;
29490   NetLDAP = self.perlldap;
29491   NetSMTP = self.libnet;
29492   OLEStorageLight = self.OLEStorage_Lite; # For backwards compatibility. Please use OLEStorage_Lite instead.
29493   ParseCPANMeta = self.CPANMeta;
29494   TestMoose = self.Moose;
29495   TestMore = self.TestSimple;
29496   TestTester = self.TestSimple;
29497   Testuseok = self.TestSimple;
29498   SubExporterUtil = self.SubExporter;
29499   version = self.Version;
29501   Gtk2GladeXML = throw "Gtk2GladeXML has been removed"; # 2022-01-15
29502   pcscperl = throw "'pcscperl' has been renamed to 'ChipcardPCSC'"; # Added 2023-12-07