biome: 1.9.2 -> 1.9.3 (#349335)
[NixPkgs.git] / pkgs / top-level / perl-packages.nix
blobf1d40ccc835b96f13ea773f2332852d55ceb8382
1 /* This file defines the composition for CPAN (Perl) packages.  It has
2    been factored out of all-packages.nix because there are so many of
3    them.  Also, because most Nix expressions for CPAN packages are
4    trivial, most are actually defined here.  I.e. there's no function
5    for each package in a separate file: the call to the function would
6    be almost as much code as the function itself. */
8 { config
9 , stdenv, lib, buildPackages, pkgs, darwin
10 , fetchurl, fetchpatch, fetchFromGitHub, fetchFromGitLab
11 , perl, shortenPerlShebang
12 , nixosTests
15 self:
17 # cpan2nix assumes that perl-packages.nix will be used only with perl 5.30.3 or above
18 assert lib.versionAtLeast perl.version "5.30.3";
19 let
20   inherit (lib) maintainers teams;
23 with self; {
25   inherit perl;
26   perlPackages = self // { 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 = "0.98";
963     src = fetchurl {
964       url = "mirror://cpan/authors/id/G/GU/GUGOD/App-perlbrew-0.98.tar.gz";
965       hash = "sha256-oWD3ESJYjdU12pTbsLgwHkjlONJaRCobE/cZCWKIWTI=";
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.0";
996     pname = "App-Sqitch";
997     src = fetchurl {
998       url = "mirror://cpan/authors/id/D/DW/DWHEELER/App-Sqitch-v1.4.0.tar.gz";
999       hash = "sha256-sNs4cDH3dWJmLgA7xV16EComOAtK1/25qKO61XaeUBw=";
1000     };
1001     buildInputs = [ CaptureTiny 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 ];
1003     doCheck = false;  # Can't find home directory.
1004     meta = {
1005       description = "Sensible database change management";
1006       homepage = "https://sqitch.org";
1007       license = with lib.licenses; [ mit ];
1008       mainProgram = "sqitch";
1009     };
1010   };
1012   AppSt = buildPerlPackage {
1013     pname = "App-St";
1014     version = "1.1.4";
1015     src = fetchurl {
1016       url = "https://github.com/nferraz/st/archive/v1.1.4.tar.gz";
1017       hash = "sha256-wCoW9n5MNXaQpUODGYQxSf1wDCIxKPn/6+yrKEnFi7g=";
1018     };
1019     postInstall =
1020       ''
1021         ($out/bin/st --help || true) | grep Usage
1022       '';
1023     meta = {
1024       description = "Simple Statistics";
1025       homepage = "https://github.com/nferraz/st";
1026       license = with lib.licenses; [ mit ];
1027       maintainers = [ ];
1028       mainProgram = "st";
1029     };
1030   };
1032   AttributeParamsValidate = buildPerlPackage {
1033     pname = "Attribute-Params-Validate";
1034     version = "1.21";
1035     src = fetchurl {
1036       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Attribute-Params-Validate-1.21.tar.gz";
1037       hash = "sha256-WGuTnO/9s3GIt8Rh3RqPnzVpUYTIcDsFw19tUIyAkPU=";
1038     };
1039     buildInputs = [ TestFatal ];
1040     propagatedBuildInputs = [ ParamsValidate ];
1041     doCheck = false;
1042     meta = {
1043       description = "Validate method/function parameters";
1044       homepage = "https://metacpan.org/release/Params-Validate";
1045       license = with lib.licenses; [ artistic2 ];
1046     };
1047   };
1049   ArchiveLibarchive = buildPerlPackage {
1050     pname = "Archive-Libarchive";
1051     version = "0.09";
1052     src = fetchurl {
1053       url = "mirror://cpan/authors/id/P/PL/PLICEASE/Archive-Libarchive-0.09.tar.gz";
1054       hash = "sha256-avdG7P9/GjUwzmtaWNCtR0MaaZjUWduw8VYqEiPn3v8=";
1055     };
1056     patches = [ ../development/perl-modules/ArchiveLibarchive-set-findlib-path.patch ];
1057     postPatch = ''
1058       substituteInPlace lib/Archive/Libarchive/Lib.pm --replace-fail "@@libarchive@@" "${lib.getLib pkgs.libarchive}/lib"
1059     '';
1060     buildInputs = [ FFIC Filechdir PathTiny SubIdentify Test2ToolsMemoryCycle TestArchiveLibarchive TestScript ];
1061     propagatedBuildInputs = [ FFICStat FFICheckLib FFIPlatypus FFIPlatypusTypeEnum FFIPlatypusTypePtrObject RefUtil ];
1062     meta = {
1063       homepage = "https://metacpan.org/pod/Archive::Libarchive";
1064       description = "Modern Perl bindings to libarchive";
1065       license = with lib.licenses; [ artistic1 gpl1Plus ];
1066       maintainers = with maintainers; [ tomasajt ];
1067     };
1068   };
1070   ArchiveLibarchiveExtract = buildPerlPackage {
1071     pname = "Archive-Libarchive-Extract";
1072     version = "0.03";
1073     src = fetchurl {
1074       url = "mirror://cpan/authors/id/P/PL/PLICEASE/Archive-Libarchive-Extract-0.03.tar.gz";
1075       hash = "sha256-yXfAR0hnIX6zJvte5pA04e9spBQUkWHjEpAblf0SwIE=";
1076     };
1077     buildInputs = [ Test2Suite TestScript ];
1078     propagatedBuildInputs = [ ArchiveLibarchive Filechdir PathTiny RefUtil ];
1079     meta = {
1080       homepage = "https://metacpan.org/pod/Archive::Libarchive::Extract";
1081       description = "Archive extracting mechanism (using libarchive)";
1082       license = with lib.licenses; [ artistic1 gpl1Plus ];
1083       maintainers = with maintainers; [ tomasajt ];
1084     };
1085   };
1087   ArchiveLibarchivePeek = buildPerlPackage {
1088     pname = "Archive-Libarchive-Peek";
1089     version = "0.04";
1090     src = fetchurl {
1091       url = "mirror://cpan/authors/id/P/PL/PLICEASE/Archive-Libarchive-Peek-0.04.tar.gz";
1092       hash = "sha256-DYhJ4xG2RsozWz6gGodTtAIkK5XOgAo7zNXHCC4nJPo=";
1093     };
1094     buildInputs = [ Filechdir Test2Suite TestScript ];
1095     propagatedBuildInputs = [ ArchiveLibarchive PathTiny RefUtil ];
1096     meta = {
1097       homepage = "https://metacpan.org/pod/Archive::Libarchive::Peek";
1098       description = "Peek into archives without extracting them";
1099       license = with lib.licenses; [ artistic1 gpl1Plus ];
1100       maintainers = with maintainers; [ tomasajt ];
1101     };
1102   };
1104   ArrayCompare = buildPerlModule {
1105     pname = "Array-Compare";
1106     version = "3.0.8";
1107     src = fetchurl {
1108       url = "mirror://cpan/authors/id/D/DA/DAVECROSS/Array-Compare-v3.0.8.tar.gz";
1109       hash = "sha256-MEc7XpEBU4QNJDHqlGO55W5SPN56PFBhadaaK5dC2DQ=";
1110     };
1112     buildInputs = [ TestNoWarnings ];
1113     propagatedBuildInputs = [ Moo TypeTiny ];
1114     meta = {
1115       description = "Perl extension for comparing arrays";
1116       license = with lib.licenses; [ artistic1 gpl1Plus ];
1117     };
1118   };
1120   ArrayDiff = buildPerlPackage {
1121     pname = "Array-Diff";
1122     version = "0.09";
1123     src = fetchurl {
1124       url = "mirror://cpan/authors/id/N/NE/NEILB/Array-Diff-0.09.tar.gz";
1125       hash = "sha256-gAY5Lphh50FTfCu8kRbI5CuWLy4H6NZBov9qEcZEUHc=";
1126     };
1127     propagatedBuildInputs = [ AlgorithmDiff ClassAccessor ];
1128     meta = {
1129       description = "Find the differences between two arrays";
1130       homepage = "https://github.com/neilb/array-diff-perl";
1131       license = with lib.licenses; [ artistic1 gpl1Plus ];
1132     };
1133   };
1135   ArrayFIFO = buildPerlPackage {
1136     pname = "Array-FIFO";
1137     version = "0.13";
1138     src = fetchurl {
1139       url = "mirror://cpan/authors/id/D/DB/DBURKE/Array-FIFO-0.13.tar.gz";
1140       hash = "sha256-virrX1qa8alvADNQilacqTrRmtFdx8a5mObXvHQMZvc=";
1141     };
1142     buildInputs = [ TestDeep TestSpec TestTrap ];
1143     propagatedBuildInputs = [ Moose namespaceautoclean ];
1144     meta = {
1145       description = "Simple limitable FIFO array, with sum and average methods";
1146       homepage = "https://github.com/dwburke/perl-Array-FIFO";
1147       license = with lib.licenses; [ artistic2 ];
1148     };
1149   };
1151   ArrayRefElem = buildPerlPackage {
1152     pname = "Array-RefElem";
1153     version = "1.00";
1154     src = fetchurl {
1155       url = "mirror://cpan/authors/id//G/GA/GAAS/Array-RefElem-1.00.tar.gz";
1156       hash = "sha256-U7iAo67AQ+TjcM4SaCtHVt5F3XQtq1cpT+IaFUU87+M=";
1157     };
1158     meta = {
1159       description = "Set up array elements as aliases";
1160       license = with lib.licenses; [ artistic1 gpl1Plus ];
1161     };
1162   };
1164   ArrayUtils = buildPerlPackage {
1165     pname = "ArrayUtils";
1166     version = "0.5";
1167     src = fetchurl {
1168       url = "mirror://cpan/authors/id/Z/ZM/ZMIJ/Array/Array-Utils-0.5.tar.gz";
1169       hash = "sha256-id0bf82bQ3lJKjp3SW45/mzTebdz/QOmsWDdJu3mN3A=";
1170     };
1171     meta = {
1172       description = "Small utils for array manipulation";
1173       homepage = "https://metacpan.org/pod/Array::Utils";
1174       license = with lib.licenses; [ artistic1 gpl1Plus ];
1175     };
1176   };
1178   AsyncPing = buildPerlPackage {
1179     pname = "AsyncPing";
1180     version = "2016.1207";
1181     src = fetchurl {
1182       url = "mirror://cpan/authors/id/X/XI/XINFWANG/AsyncPing-2016.1207.tar.gz";
1183       hash = "sha256-b76a/sF6d3B2+K2JksjSMAr2WpUDRD0dT/nD+NKZyVo=";
1184     };
1185     meta = {
1186       description = "Ping a huge number of servers in several seconds";
1187       license = with lib.licenses; [ artistic2 ];
1188     };
1189   };
1191   AsyncUtil = buildPerlPackage {
1192     pname = "Async-Util";
1193     version = "0.01";
1194     src = fetchurl {
1195       url = "mirror://cpan/authors/id/W/WH/WHITNEY/Async-Util-0.01.tar.gz";
1196       hash = "sha256-jzKxHKvFD2Xjh79W8mWBV6IsNah5Nmbhtfis/hMQkQY=";
1197     };
1198     buildInputs = [ AnyEvent ListMoreUtils ];
1199     meta = {
1200       description = "Utilities for doing common async operations";
1201       license = with lib.licenses; [ artistic1 gpl1Plus ];
1202     };
1203   };
1205   ArchiveCpio = buildPerlPackage {
1206     pname = "Archive-Cpio";
1207     version = "0.10";
1208     src = fetchurl {
1209       url = "mirror://cpan/authors/id/P/PI/PIXEL/Archive-Cpio-0.10.tar.gz";
1210       hash = "sha256-JG+zFml2TngzayGRE0Ei4HxE8tgtxPN9VSqyj4ZovtM=";
1211     };
1212     meta = {
1213       description = "Module for manipulations of cpio archives";
1214       license = with lib.licenses; [ artistic1 gpl1Plus ]; # See https://rt.cpan.org/Public/Bug/Display.html?id=43597#txn-569710
1215       mainProgram = "cpio-filter";
1216     };
1217   };
1219   ArchiveExtract = buildPerlPackage {
1220     pname = "Archive-Extract";
1221     version = "0.88";
1222     src = fetchurl {
1223       url = "mirror://cpan/authors/id/B/BI/BINGOS/Archive-Extract-0.88.tar.gz";
1224       hash = "sha256-z/zxNc0GIih9OwIVT31nFklUSfyu0DlmYhlI4l6l90I=";
1225     };
1226     meta = {
1227       description = "Generic archive extracting mechanism";
1228       license = with lib.licenses; [ artistic1 gpl1Plus ];
1229     };
1230   };
1232   ArchiveTar = buildPerlPackage {
1233     pname = "Archive-Tar";
1234     version = "3.02";
1235     src = fetchurl {
1236       url = "mirror://cpan/authors/id/B/BI/BINGOS/Archive-Tar-3.02.tar.gz";
1237       hash = "sha256-gWM8h/c3hGGD01wPTJ1ALalHqEa0iBswzObZ6+PInRk=";
1238     };
1239     meta = {
1240       description = "Manipulates TAR archives";
1241       license = with lib.licenses; [ artistic1 gpl1Plus ];
1242       mainProgram = "ptar";
1243     };
1244   };
1246   ArchiveTarWrapper = buildPerlPackage {
1247     pname = "Archive-Tar-Wrapper";
1248     version = "0.38";
1249     src = fetchurl {
1250       url = "mirror://cpan/authors/id/A/AR/ARFREITAS/Archive-Tar-Wrapper-0.38.tar.gz";
1251       hash = "sha256-GfPQ2qi5XP+2jHBDUN0GdKI+HS8U0DKQO36WCe23s3o=";
1252     };
1253     propagatedBuildInputs = [ FileWhich IPCRun LogLog4perl ];
1254     meta = {
1255       description = "API wrapper around the 'tar' utility";
1256       license = with lib.licenses; [ gpl3Plus ];
1257     };
1258   };
1260   ArchiveZip = buildPerlPackage {
1261     pname = "Archive-Zip";
1262     version = "1.68";
1263     src = fetchurl {
1264       url = "mirror://cpan/authors/id/P/PH/PHRED/Archive-Zip-1.68.tar.gz";
1265       hash = "sha256-mE4YXXhbr2EpxudfjrREEXRawAv2Ei+xyOgio4YexlA=";
1266     };
1267     buildInputs = [ TestMockModule ];
1268     meta = {
1269       description = "Provide an interface to ZIP archive files";
1270       license = with lib.licenses; [ artistic1 gpl1Plus ];
1271       mainProgram = "crc32";
1272     };
1273   };
1275   AstroFITSHeader = buildPerlModule {
1276     pname = "Astro-FITS-Header";
1277     version = "3.09";
1278     src = fetchurl {
1279       url = "mirror://cpan/authors/id/G/GS/GSB/Astro-FITS-Header-3.09.tar.gz";
1280       hash = "sha256-cq1oveWku+zv8VFtZ3A/4tACFDlwQpo81pplFlLVaYY=";
1281     };
1282     meta = {
1283       description = "Object-oriented interface to FITS HDUs";
1284       homepage = "https://github.com/timj/perl-Astro-FITS-Header";
1285       license = with lib.licenses; [ gpl3Plus ];
1286     };
1287   };
1289   AudioCuefileParser = buildPerlPackage {
1290     pname = "Audio-Cuefile-Parser";
1291     version = "0.02";
1292     src = fetchurl {
1293       url = "mirror://cpan/authors/id/M/MA/MATTK/Audio-Cuefile-Parser-0.02.tar.gz";
1294       hash = "sha256-ulbQcMhz2WxoatmoH99P6JuETkPrSd/gAL+c70PFtmk=";
1295     };
1296     meta = {
1297       license = with lib.licenses; [ artistic1 gpl1Plus ];
1298     };
1299   };
1301   AudioFLACHeader = buildPerlPackage {
1302     pname = "Audio-FLAC-Header";
1303     version = "2.4";
1304     src = fetchurl {
1305       url = "mirror://cpan/authors/id/D/DA/DANIEL/Audio-FLAC-Header-2.4.tar.gz";
1306       hash = "sha256-+6WRHWwi2BUGVlzZoUOOhgVCD/eYbPA9GhLQBqQHBUM=";
1307     };
1308     meta = {
1309       description = "Interface to FLAC header metadata";
1310       license = with lib.licenses; [ artistic1 gpl1Plus ];
1311     };
1312   };
1314   AudioScan = buildPerlPackage {
1315     pname = "Audio-Scan";
1316     version = "1.05";
1317     src = fetchurl {
1318         url = "https://github.com/Logitech/slimserver-vendor/raw/public/8.3/CPAN/Audio-Scan-1.05.tar.gz";
1319         hash = "sha256-9YXC8GHPRWKlV8emmTke7RB0HhiCbALmZQqtQFLcBi4=";
1320     };
1321     buildInputs = [ pkgs.zlib TestWarn ];
1322     env.NIX_CFLAGS_COMPILE = "-I${pkgs.zlib.dev}/include";
1323     NIX_CFLAGS_LINK = "-L${pkgs.zlib.out}/lib -lz";
1324     meta = {
1325       description = "Fast C metadata and tag reader for all common audio file formats, slimserver fork";
1326       homepage = "https://github.com/Logitech/slimserver-vendor";
1327       license = with lib.licenses; [ gpl2Plus ];
1328     };
1329   };
1331   AuthenDecHpwd = buildPerlModule {
1332     pname = "Authen-DecHpwd";
1333     version = "2.007";
1334     src = fetchurl {
1335       url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Authen-DecHpwd-2.007.tar.gz";
1336       hash = "sha256-9DqTuwK0H3Mn2S+eljtpUF9nNQpS6PUHlvmK/E+z8Xc=";
1337     };
1338     perlPreHook = lib.optionalString stdenv.hostPlatform.isi686 "export LD=$CC"; # fix undefined reference to `__stack_chk_fail_local'
1339     propagatedBuildInputs = [ DataInteger DigestCRC ScalarString ];
1340     meta = {
1341       description = "DEC VMS password hashing";
1342       license = with lib.licenses; [ gpl1Plus ];
1343     };
1344   };
1346   AuthenHtpasswd = buildPerlPackage {
1347     pname = "Authen-Htpasswd";
1348     version = "0.171";
1349     src = fetchurl {
1350       url = "mirror://cpan/authors/id/M/MS/MSTROUT/Authen-Htpasswd-0.171.tar.gz";
1351       hash = "sha256-tfr0fj+UikUoEGzLiMxxBIz+WY5bAmpEQ2i8fjk0gGc=";
1352     };
1353     propagatedBuildInputs = [ ClassAccessor CryptPasswdMD5 DigestSHA1 IOLockedFile ];
1354     # Remove test files that fail after DES support was removed from crypt()
1355     postPatch = ''
1356       rm t/04core.t t/05edit.t
1357     '';
1358     meta = {
1359       description = "Interface to read and modify Apache .htpasswd files";
1360       license = with lib.licenses; [ artistic1 gpl1Plus ];
1361     };
1362   };
1364   AuthenKrb5 = buildPerlModule {
1365     pname = "Authen-Krb5";
1366     version = "1.905";
1367     src = fetchurl {
1368       url = "mirror://cpan/authors/id/I/IO/IOANR/Authen-Krb5-1.905.tar.gz";
1369       hash = "sha256-13sAuxUBpW9xGOkarAx+Qi2888QY+c6YuAF3HDqg900=";
1370     };
1371     perlPreHook = "export LD=$CC";
1372     propagatedBuildInputs = [ pkgs.libkrb5 ];
1373     buildInputs = [ DevelChecklib FileWhich PkgConfig ];
1374     meta = {
1375       description = "XS bindings for Kerberos 5";
1376       license = with lib.licenses; [ artistic1 gpl1Plus ];
1377     };
1378   };
1380   AuthenKrb5Admin = buildPerlPackage {
1381     pname = "Authen-Krb5-Admin";
1382     version = "0.17";
1383     src = fetchurl {
1384       url = "mirror://cpan/authors/id/S/SJ/SJQUINNEY/Authen-Krb5-Admin-0.17.tar.gz";
1385       hash = "sha256-XdScrNmD79YajD8aVlcbtzeF6xVZCLXXvsl+7XjfDFQ=";
1386     };
1387     propagatedBuildInputs = [ pkgs.krb5.dev AuthenKrb5 ];
1388     # The following ENV variables are required by Makefile.PL to find
1389     # programs in krb5.dev. It is not enough to just specify the
1390     # path to krb5-config as this tool returns the prefix of krb5,
1391     # which implies a working value for KRB5_LIBDIR, but not the others.
1392     perlPreHook = ''
1393       export KRB5_CONFTOOL=${pkgs.krb5.dev}/bin/krb5-config
1394       export KRB5_BINDIR=${pkgs.krb5.dev}/bin
1395       export KRB5_INCDIR=${pkgs.krb5.dev}/include
1396     '';
1397     # Tests require working Kerberos infrastructure so replace with a
1398     # simple attempt to exercise the module.
1399     checkPhase = ''
1400       perl -I blib/lib -I blib/arch -MAuthen::Krb5::Admin -e 'print "1..1\nok 1\n"'
1401     '';
1402     meta = {
1403       description = "Perl extension for MIT Kerberos 5 admin interface";
1404       license = with lib.licenses; [ bsd3 ];
1405     };
1406   };
1408   AuthenModAuthPubTkt = buildPerlPackage {
1409     pname = "Authen-ModAuthPubTkt";
1410     version = "0.1.1";
1411     src = fetchurl {
1412       url = "mirror://cpan/authors/id/A/AG/AGORDON/Authen-ModAuthPubTkt-0.1.1.tar.gz";
1413       hash = "sha256-eZbhpCxRIWADzPA8S1JQKGtMVWhCV5cYUfXs6RYdx90=";
1414     };
1415     propagatedBuildInputs = [ pkgs.openssl IPCRun3 ];
1416     patchPhase = ''
1417       sed -i 's|my $openssl_bin = "openssl";|my $openssl_bin = "${pkgs.openssl}/bin/openssl";|' lib/Authen/ModAuthPubTkt.pm
1418       # -dss1 doesn't exist for dgst in openssl 1.1, -sha1 can also handle DSA keys now
1419       sed -i 's|-dss1|-sha1|' lib/Authen/ModAuthPubTkt.pm
1420     '';
1421     preCheck = "rm t/04-verify-dsa.t"; # remove unstable test: https://rt.cpan.org/Ticket/Display.html?id=110752
1422     meta = {
1423       description = "Generate Tickets (Signed HTTP Cookies) for mod_auth_pubtkt protected websites";
1424       license = with lib.licenses; [ artistic1 gpl1Plus ];
1425       mainProgram = "mod_auth_pubtkt.pl";
1426     };
1427   };
1429   AuthenOATH = buildPerlPackage {
1430     pname = "Authen-OATH";
1431     version = "2.0.1";
1432     src = fetchurl {
1433       url = "mirror://cpan/authors/id/O/OA/OALDERS/Authen-OATH-2.0.1.tar.gz";
1434       hash = "sha256-GoE9vcBcP72d0528/YXiz7C6PQ9lLPaybsg6uBRt3Hc=";
1435     };
1436     buildInputs = [ TestNeeds ];
1437     propagatedBuildInputs = [ DigestHMAC Moo TypeTiny ];
1438     meta = {
1439       description = "OATH One Time Passwords";
1440       homepage = "https://github.com/oalders/authen-oath";
1441       license = with lib.licenses; [ artistic1 gpl1Plus ];
1442       maintainers = [ maintainers.sgo ];
1443     };
1444   };
1446   AuthenPassphrase = buildPerlModule {
1447     pname = "Authen-Passphrase";
1448     version = "0.008";
1449     src = fetchurl {
1450       url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Authen-Passphrase-0.008.tar.gz";
1451       hash = "sha256-VdtFIGF9hZ2IwO5Ull2oFbcibXkrjNyN6/kgc1WeBGM=";
1452     };
1453     propagatedBuildInputs = [ AuthenDecHpwd CryptDES CryptEksblowfish CryptMySQL CryptPasswdMD5 CryptUnixCryptXS DataEntropy DigestMD4 ModuleRuntime ];
1454     meta = {
1455       description = "Hashed passwords/passphrases as objects";
1456       license = with lib.licenses; [ artistic1 gpl1Plus ];
1457     };
1458   };
1460   AuthenRadius = buildPerlPackage {
1461     pname = "Authen-Radius";
1462     version = "0.32";
1463     src = fetchurl {
1464       url = "mirror://cpan/authors/id/P/PO/PORTAONE/Authen-Radius-0.32.tar.gz";
1465       hash = "sha256-eyCPmDfIOhhCZyVIklNlh+7Qvd5J577euj1ypmUjF0A=";
1466     };
1467     buildInputs = [ TestNoWarnings ];
1468     propagatedBuildInputs = [ DataHexDump NetIP ];
1469     meta = {
1470       description = "Provide simple Radius client facilities";
1471       license = with lib.licenses; [ artistic2 ];
1472     };
1473   };
1475   AuthenSASL = buildPerlPackage {
1476     pname = "Authen-SASL";
1477     version = "2.1700";
1478     src = fetchurl {
1479       url = "mirror://cpan/authors/id/E/EH/EHUELS/Authen-SASL-2.1700.tar.gz";
1480       hash = "sha256-uG1aV2uNOHruJPOfR6VK/RS7ZrCQA9tQZQAfHeA6js4=";
1481     };
1482     propagatedBuildInputs = [ DigestHMAC ];
1483     meta = {
1484       description = "SASL Authentication framework";
1485       license = with lib.licenses; [ artistic1 gpl1Plus ];
1486     };
1487   };
1489   AuthenSASLSASLprep = buildPerlModule {
1490     pname = "Authen-SASL-SASLprep";
1491     version = "1.100";
1492     src = fetchurl {
1493       url = "mirror://cpan/authors/id/C/CF/CFAERBER/Authen-SASL-SASLprep-1.100.tar.gz";
1494       hash = "sha256-pMzMNLs/U6zwunjJ/GGvjRVtEJ0cEEh7pZiKVQd9H3A=";
1495     };
1496     buildInputs = [ TestNoWarnings ];
1497     propagatedBuildInputs = [ UnicodeStringprep ];
1498     meta = {
1499       description = "Stringprep Profile for User Names and Passwords (RFC 4013)";
1500       license = with lib.licenses; [ artistic1 gpl1Plus ];
1501       maintainers = [ maintainers.sgo ];
1502     };
1503   };
1505   AuthenSCRAM = buildPerlPackage {
1506     pname = "Authen-SCRAM";
1507     version = "0.011";
1508     src = fetchurl {
1509       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Authen-SCRAM-0.011.tar.gz";
1510       hash = "sha256-RRCMI5pzc9AJQdzw0XGs0D58FqY85vfZVo/wUrF89ag=";
1511     };
1512     buildInputs = [ TestFailWarnings TestFatal ];
1513     propagatedBuildInputs = [ AuthenSASLSASLprep CryptURandom Moo PBKDF2Tiny TypeTiny namespaceclean ];
1514     meta = {
1515       description = "Salted Challenge Response Authentication Mechanism (RFC 5802)";
1516       homepage = "https://github.com/dagolden/Authen-SCRAM";
1517       license = with lib.licenses; [ asl20 ];
1518       maintainers = [ maintainers.sgo ];
1519     };
1520   };
1522   AuthenSimple = buildPerlPackage {
1523     pname = "Authen-Simple";
1524     version = "0.5";
1525     src = fetchurl {
1526       url = "mirror://cpan/authors/id/C/CH/CHANSEN/Authen-Simple-0.5.tar.gz";
1527       hash = "sha256-As3atH+L8aHL1Mm/jSWPbQURFJnDP4MV5yRIEvcmE6o=";
1528     };
1529     # Our C crypt() doesn't support this weak "crypt" algorithm anymore.
1530     postPatch = ''
1531       patch -p1 <<-EOF
1532         --- a/t/09password.t
1533         +++ b/t/09password.t
1534         @@ -10 +10 @@
1535         -use Test::More tests => 16;
1536         +use Test::More tests => 14;
1537         @@ -14 +13,0 @@
1538         -    [ 'crypt',     'lk9Mh5KHGjAaM',                          'crypt'        ],
1539         @@ -18 +16,0 @@
1540         -    [ 'crypt',     '{CRYPT}lk9Mh5KHGjAaM',                   '{CRYPT}'      ],
1541       EOF
1542     '';
1543     propagatedBuildInputs = [ ClassAccessor ClassDataInheritable CryptPasswdMD5 ParamsValidate ];
1544     meta = {
1545       description = "Simple Authentication";
1546       license = with lib.licenses; [ artistic1 gpl1Plus ];
1547     };
1548   };
1550   AuthenSimplePasswd = buildPerlModule {
1551     pname = "Authen-Simple-Passwd";
1552     version = "0.6";
1553     src = fetchurl {
1554       url = "mirror://cpan/authors/id/C/CH/CHANSEN/Authen-Simple-Passwd-0.6.tar.gz";
1555       hash = "sha256-z1W8NiWe3w/Wr5rSusgbMdxbVqFixmBZDsuWnHwWdLI=";
1556     };
1557     # Our C crypt() doesn't support this weak "crypt" algorithm anymore.
1558     postPatch = ''
1559       sed -e 's/tests => 8/tests => 7/' -e "/'crypt'/d" -i t/04basic.t
1560     '';
1561     propagatedBuildInputs = [ AuthenSimple ];
1562     meta = {
1563       description = "Simple Passwd authentication";
1564       license = with lib.licenses; [ artistic1 gpl1Plus ];
1565     };
1566   };
1568   autobox = buildPerlPackage {
1569     pname = "autobox";
1570     version = "3.0.1";
1571     src = fetchurl {
1572       url = "mirror://cpan/authors/id/C/CH/CHOCOLATE/autobox-v3.0.1.tar.gz";
1573       hash = "sha256-wwO3/M+qH/TUxCmrPxXlyip3VU74yfw7jGK6hZ6HTJg=";
1574     };
1575     propagatedBuildInputs = [ ScopeGuard ];
1576     buildInputs = [ IPCSystemSimple TestFatal ];
1577     meta = {
1578       description = "Call methods on native types";
1579       license = with lib.licenses; [ artistic2 ];
1580     };
1581   };
1583   Autodia = buildPerlPackage {
1584     pname = "Autodia";
1585     version = "2.14";
1586     src = fetchurl {
1587       url = "mirror://cpan/authors/id/T/TE/TEEJAY/Autodia-2.14.tar.gz";
1588       hash = "sha256-rIElyIq+Odn+Aco6zBOgCinzM2pLt+9gRH5ri4Iv9CI=";
1589     };
1590     propagatedBuildInputs = [ TemplateToolkit XMLSimple ];
1591     buildInputs = [ DBI ];
1593     meta = {
1594       description = "AutoDia, create UML diagrams from source code";
1595       longDescription = ''
1596         AutoDia is a modular application that parses source code, XML or data
1597         and produces an XML document in Dia format (or images via graphviz
1598         and vcg).  Its goal is to be a UML / DB Schema diagram autocreation
1599         package.  The diagrams its creates are standard UML diagrams showing
1600         dependencies, superclasses, packages, classes and inheritances, as
1601         well as the methods, etc of each class.
1603         AutoDia supports any language that a Handler has been written for,
1604         which includes C, C++, Java, Perl, Python, and more.
1605       '';
1606       homepage = "http://www.aarontrevena.co.uk/opensource/autodia/";
1607       license = with lib.licenses; [ gpl2Plus ];
1608       mainProgram = "autodia.pl";
1609     };
1610   };
1612   AWSSignature4 = buildPerlModule {
1613     pname = "AWS-Signature4";
1614     version = "1.02";
1615     src = fetchurl {
1616       url = "mirror://cpan/authors/id/L/LD/LDS/AWS-Signature4-1.02.tar.gz";
1617       hash = "sha256-ILvBbLNFT+XozzT+YfGpH+JsPxfkSf9mX8u7kqtEPr0=";
1618     };
1619     propagatedBuildInputs = [ LWP TimeDate URI ];
1620     meta = {
1621       description = "Create a version4 signature for Amazon Web Services";
1622       license = with lib.licenses; [ artistic1 gpl1Plus ];
1623     };
1624   };
1626   autovivification = buildPerlPackage {
1627     pname = "autovivification";
1628     version = "0.18";
1629     src = fetchurl {
1630       url = "mirror://cpan/authors/id/V/VP/VPIT/autovivification-0.18.tar.gz";
1631       hash = "sha256-LZmXVoUkKYDQqZBPY5FEwFnW7OFYme/eSst0LTJT8QU=";
1632     };
1633     meta = {
1634       description = "Lexically disable autovivification";
1635       homepage = "https://search.cpan.org/dist/autovivification";
1636       license = with lib.licenses; [ artistic1 gpl1Plus ];
1637     };
1638   };
1640   BarcodeZBar = buildPerlPackage {
1641     pname = "Barcode-ZBar";
1642     version = "0.04pre";
1643     # The meta::cpan version of this module has been unmaintained from 2009
1644     # This uses an updated version from the ZBar repo that works with the current ZBar library
1645     src = "${pkgs.zbar.src}/perl";
1646     postPatch = ''
1647       substituteInPlace Makefile.PL --replace "-lzbar" "-L${pkgs.zbar.lib}/lib -lzbar"
1648       rm t/Processor.t
1649     '';
1650     buildInputs =[ ExtUtilsMakeMaker ];
1651     propagatedBuildInputs = [ pkgs.zbar PerlMagick ];
1652     perlPreHook = lib.optionalString stdenv.hostPlatform.isDarwin "export LD=$CC";
1653     meta = {
1654       description = "Perl interface to the ZBar Barcode Reader";
1655       homepage = "https://metacpan.org/pod/Barcode::ZBar";
1656       license = with lib.licenses; [ lgpl21Plus ];
1657     };
1658   };
1660   BC = buildPerlPackage {
1661     pname = "B-C";
1662     version = "1.57";
1663     src = fetchurl {
1664       url = "mirror://cpan/authors/id/R/RU/RURBAN/B-C-1.57.tar.gz";
1665       hash = "sha256-BFKmEdNDrfnZX86ra6a2YXbjrX/MzlKAkiwOQx9RSf8=";
1666     };
1667     propagatedBuildInputs = [ BFlags IPCRun Opcodes ];
1668     env = lib.optionalAttrs stdenv.cc.isGNU {
1669       NIX_CFLAGS_COMPILE = "-Wno-error=incompatible-pointer-types";
1670     };
1671     doCheck = false; /* test fails */
1672     meta = {
1673       description = "Perl compiler";
1674       homepage = "https://github.com/rurban/perl-compiler";
1675       license = with lib.licenses; [ artistic1 gpl1Plus ];
1676       mainProgram = "perlcc";
1677     };
1678   };
1680   BCOW = buildPerlPackage {
1681     pname = "B-COW";
1682     version = "0.007";
1683     src = fetchurl {
1684       url = "mirror://cpan/authors/id/A/AT/ATOOMIC/B-COW-0.007.tar.gz";
1685       hash = "sha256-EpDa8ifosJiJoxzxguKRBvHPnxpOm/d1L53pLtEVi0Q=";
1686     };
1687     meta = {
1688       description = "B::COW additional B helpers to check COW status";
1689       license = with lib.licenses; [ artistic1 gpl1Plus ];
1690     };
1691   };
1693   BFlags = buildPerlPackage {
1694     pname = "B-Flags";
1695     version = "0.17";
1696     src = fetchurl {
1697       url = "mirror://cpan/authors/id/R/RU/RURBAN/B-Flags-0.17.tar.gz";
1698       hash = "sha256-wduX0BMVvtEJtMSJWM0yGVz8nvXTt3B+tHhAwdV8ELI=";
1699     };
1700     meta = {
1701       description = "Friendlier flags for B";
1702       license = with lib.licenses; [ artistic1 gpl1Only ];
1703     };
1704   };
1706   BeanstalkClient = buildPerlPackage {
1707     pname = "Beanstalk-Client";
1708     version = "1.07";
1709     src = fetchurl {
1710       url = "mirror://cpan/authors/id/G/GB/GBARR/Beanstalk-Client-1.07.tar.gz";
1711       hash = "sha256-MYirESfyyrqX32XIT2nbDscMZOXXDylvmiZ0+nnBEsw=";
1712     };
1713     propagatedBuildInputs = [ ClassAccessor YAMLSyck ];
1714     meta = {
1715       description = "Client to communicate with beanstalkd server";
1716       license = with lib.licenses; [ artistic1 gpl1Plus ];
1717     };
1718   };
1720   BerkeleyDB = buildPerlPackage {
1721     pname = "BerkeleyDB";
1722     version = "0.65";
1724     src = fetchurl {
1725       url = "mirror://cpan/authors/id/P/PM/PMQS/BerkeleyDB-0.65.tar.gz";
1726       hash = "sha256-QQqonnIylB1JEGyeBI1jN0dVQ+wdIz6nzbcly1uWNQQ=";
1727     };
1729     preConfigure = ''
1730       echo "LIB = ${pkgs.db.out}/lib" > config.in
1731       echo "INCLUDE = ${pkgs.db.dev}/include" >> config.in
1732     '';
1733     meta = {
1734       description = "Perl extension for Berkeley DB version 2, 3, 4, 5 or 6";
1735       license = with lib.licenses; [ artistic1 gpl1Plus ];
1736     };
1737   };
1739   BDB = buildPerlPackage rec {
1740     pname = "BDB";
1741     version = "1.92";
1742     src = fetchurl {
1743       url = "mirror://cpan/authors/id/M/ML/MLEHMANN/${pname}-${version}.tar.gz";
1744       hash = "sha256-o/LKnSuu/BqqQJCLL5y5KS/aPn15fji7146rudna62s=";
1745     };
1746     env.NIX_CFLAGS_COMPILE = "-I${pkgs.db4.dev}/include";
1747     NIX_CFLAGS_LINK = "-L${pkgs.db4.out}/lib -ldb";
1748     buildInputs = [ pkgs.db4 ];
1749     propagatedBuildInputs = [ commonsense ];
1750     meta = {
1751       description = "Asynchronous Berkeley DB access";
1752       license = with lib.licenses; [ artistic1 gpl1Plus ];
1753     };
1754   };
1756   BHooksEndOfScope = buildPerlPackage {
1757     pname = "B-Hooks-EndOfScope";
1758     version = "0.26";
1759     src = fetchurl {
1760       url = "mirror://cpan/authors/id/E/ET/ETHER/B-Hooks-EndOfScope-0.26.tar.gz";
1761       hash = "sha256-Od8vjAB6dUZyB1+VuQeXuuvpetptlEsZemNScJyzBnE=";
1762     };
1763     propagatedBuildInputs = [ ModuleImplementation SubExporterProgressive ];
1764     meta = {
1765       description = "Execute code after a scope finished compilation";
1766       homepage = "https://github.com/karenetheridge/B-Hooks-EndOfScope";
1767       license = with lib.licenses; [ artistic1 gpl1Plus ];
1768     };
1769   };
1771   BHooksOPAnnotation = buildPerlPackage {
1772     pname = "B-Hooks-OP-Annotation";
1773     version = "0.44";
1774     src = fetchurl {
1775       url = "mirror://cpan/authors/id/C/CH/CHOCOLATE/B-Hooks-OP-Annotation-0.44.tar.gz";
1776       hash = "sha256-bib5k2f06pRBac9uBc9NBngyCCQkyo7O/Mt7WmMhexY=";
1777     };
1778     propagatedBuildInputs = [ ExtUtilsDepends ];
1779     meta = {
1780       description = "Annotate and delegate hooked OPs";
1781       license = with lib.licenses; [ artistic1 gpl1Plus ];
1782     };
1783   };
1785   BHooksOPCheck = buildPerlPackage {
1786     pname = "B-Hooks-OP-Check";
1787     version = "0.22";
1788     src = fetchurl {
1789       url = "mirror://cpan/authors/id/E/ET/ETHER/B-Hooks-OP-Check-0.22.tar.gz";
1790       hash = "sha256-x7XRvvWe+Qh/9n6zFo0mJL6UrlRkRp4lmtEb+4rYzc0=";
1791     };
1792     buildInputs = [ ExtUtilsDepends ];
1793     meta = {
1794       description = "Wrap OP check callbacks";
1795       homepage = "https://github.com/karenetheridge/B-Hooks-OP-Check";
1796       license = with lib.licenses; [ artistic1 gpl1Plus ];
1797     };
1798   };
1800   BioExtAlign = callPackage ../development/perl-modules/Bio-Ext-Align { };
1802   BioDBHTS = buildPerlModule {
1803     pname = "Bio-DB-HTS";
1804     version = "3.01";
1805     src = fetchurl {
1806       url = "mirror://cpan/authors/id/A/AV/AVULLO/Bio-DB-HTS-3.01.tar.gz";
1807       sha256 = "12a6bc1f579513cac8b9167cce4e363655cc8eba26b7d9fe1170dfe95e044f42";
1808     };
1810     buildInputs = [ pkgs.htslib pkgs.zlib ];
1812     propagatedBuildInputs = [ BioPerl ];
1813     htslibStore = toString pkgs.htslib;
1815     postPatch = ''
1816       # -Wl,-rpath not recognized : replaced by -rpath=
1817       sed -i 's/Wl,-rpath,/rpath=/' Build.PL
1818     '';
1820     preBuild = ''
1821       export HTSLIB_DIR=${pkgs.htslib}
1822     '';
1824     meta = {
1825       description = "Perl interface to HTS library for DNA sequencing";
1826       license = lib.licenses.asl20;
1827     };
1828   };
1830   BioBigFile = callPackage ../development/perl-modules/Bio-BigFile { };
1832   BioPerl = buildPerlPackage {
1833     pname = "BioPerl";
1834     version = "1.7.8";
1835     src = fetchurl {
1836       url = "mirror://cpan/authors/id/C/CJ/CJFIELDS/BioPerl-1.7.8.tar.gz";
1837       hash = "sha256-xJCjvncV6m5DBe/ZcQ5e2rgtq8Vf14a2UFtVCjDXFzg=";
1838     };
1839     buildInputs = [ ModuleBuild TestMemoryCycle TestWeaken TestDeep TestWarn TestException TestDifferences ];
1840     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 ];
1841     meta = {
1842       description = "Perl modules for biology";
1843       homepage = "https://metacpan.org/release/BioPerl";
1844       license = with lib.licenses; [ artistic1 gpl1Plus ];
1845     };
1846   };
1848   BitVector = buildPerlPackage {
1849     pname = "Bit-Vector";
1850     version = "7.4";
1851     src = fetchurl {
1852       url = "mirror://cpan/authors/id/S/ST/STBEY/Bit-Vector-7.4.tar.gz";
1853       hash = "sha256-PG2qZx/s+8Nfkqk4W1Y9ZfUN/Gvci0gF+e9GwNA1qSY=";
1854     };
1855     propagatedBuildInputs = [ CarpClan ];
1856     meta = {
1857       description = "Efficient bit vector, set of integers and 'big int' math library";
1858       license = with lib.licenses; [ artistic1 gpl1Plus lgpl2Only ];
1859     };
1860   };
1862   BKeywords = buildPerlPackage {
1863     pname = "B-Keywords";
1864     version = "1.27";
1865     src = fetchurl {
1866       url = "mirror://cpan/authors/id/R/RU/RURBAN/B-Keywords-1.27.tar.gz";
1867       hash = "sha256-7xC5CF5nTqpBfMt9aS+2zZj3u2feKhJ+ujRX2K5YfP8=";
1868     };
1869     meta = {
1870       description = "Lists of reserved barewords and symbol names";
1871       license = with lib.licenses; [ artistic1 gpl2Only ];
1872     };
1873   };
1875   boolean = buildPerlPackage {
1876     pname = "boolean";
1877     version = "0.46";
1878     src = fetchurl {
1879       url = "mirror://cpan/authors/id/I/IN/INGY/boolean-0.46.tar.gz";
1880       hash = "sha256-lcCICFw+g79oD+bOFtgmTsJjEEkPfRaA5BbqehGPFWo=";
1881     };
1882     meta = {
1883       description = "Boolean support for Perl";
1884       homepage = "https://github.com/ingydotnet/boolean-pm";
1885       license = with lib.licenses; [ artistic1 gpl1Plus ];
1886     };
1887   };
1889   BoostGeometryUtils = buildPerlModule {
1890     pname = "Boost-Geometry-Utils";
1891     version = "0.15";
1892     src = fetchurl {
1893       url = "mirror://cpan/authors/id/A/AA/AAR/Boost-Geometry-Utils-0.15.tar.gz";
1894       hash = "sha256-AFTdP1c70/b0e3PugdHoRYQvugSq21KICqUnAcaH0co=";
1895     };
1896     patches = [
1897       # Fix out of memory error on Perl 5.19.4 and later.
1898       ../development/perl-modules/boost-geometry-utils-fix-oom.patch
1899     ];
1900     perlPreHook = "export LD=$CC";
1901     buildInputs = [ ExtUtilsCppGuess ExtUtilsTypemapsDefault ExtUtilsXSpp ModuleBuildWithXSpp ];
1902     meta = {
1903       description = "Bindings for the Boost Geometry library";
1904       license = with lib.licenses; [ artistic1 gpl1Plus ];
1905     };
1906   };
1908   BotTraining = buildPerlPackage {
1909     pname = "Bot-Training";
1910     version = "0.07";
1911     src = fetchurl {
1912       url = "mirror://cpan/authors/id/A/AV/AVAR/Bot-Training-0.07.tar.gz";
1913       hash = "sha256-7ma7+BTw3D0egGgOBQ+tELHgGP7Xkp9lPtQOCIsqopU=";
1914     };
1915     buildInputs = [ FileSlurp ];
1916     propagatedBuildInputs = [ ClassLoad DirSelf FileShareDir ModulePluggable MooseXGetopt namespaceclean  ];
1917     meta = {
1918       description = "Plain text training material for bots like Hailo and AI::MegaHAL";
1919       homepage = "https://metacpan.org/release/Bot-Training";
1920       license = with lib.licenses; [ artistic1 gpl1Plus ];
1921       mainProgram = "bot-training";
1922     };
1923   };
1925   BotTrainingMegaHAL = buildPerlPackage {
1926     pname = "Bot-Training-MegaHAL";
1927     version = "0.03";
1928     src = fetchurl {
1929       url = "mirror://cpan/authors/id/A/AV/AVAR/Bot-Training-MegaHAL-0.03.tar.gz";
1930       hash = "sha256-lWByr/BPIW5cO4GWlltdgNTUdpXXfsqr1W5Z1l8iv2A=";
1931     };
1932     buildInputs = [ FileShareDirInstall ];
1933     propagatedBuildInputs = [ BotTraining ];
1934     meta = {
1935       description = "Provide megahal.trn via Bot::Training";
1936       homepage = "https://metacpan.org/release/Bot-Training-MegaHAL";
1937       license = with lib.licenses; [ artistic1 gpl1Plus ];
1938     };
1939   };
1941   BotTrainingStarCraft = buildPerlPackage {
1942     pname = "Bot-Training-StarCraft";
1943     version = "0.03";
1944     src = fetchurl {
1945       url = "mirror://cpan/authors/id/A/AV/AVAR/Bot-Training-StarCraft-0.03.tar.gz";
1946       hash = "sha256-58640Bxi5zLdib/l9Ng+eBwc2RJULRd8Iudht8hhTV4=";
1947     };
1948     buildInputs = [ FileShareDirInstall ];
1949     propagatedBuildInputs = [ BotTraining ];
1950     meta = {
1951       description = "Provide starcraft.trn via Bot::Training";
1952       homepage = "https://metacpan.org/release/Bot-Training-StarCraft";
1953       license = with lib.licenses; [ artistic1 gpl1Plus ];
1954     };
1955   };
1957   BSDResource = buildPerlPackage {
1958     pname = "BSD-Resource";
1959     version = "1.2911";
1960     src = fetchurl {
1961       url = "mirror://cpan/authors/id/J/JH/JHI/BSD-Resource-1.2911.tar.gz";
1962       hash = "sha256-nRz7oGPMGPckJ6IkUfeQiDa3MxrIeF2+B1U8WwQ6DD0=";
1963     };
1964     meta = {
1965       description = "BSD process resource limit and priority functions";
1966       license = with lib.licenses; [ artistic2 ];
1967       maintainers = teams.deshaw.members;
1968     };
1969   };
1971   BSON = buildPerlPackage {
1972     pname = "BSON";
1973     version = "1.12.2";
1974     src = fetchurl {
1975       url = "mirror://cpan/authors/id/M/MO/MONGODB/BSON-v1.12.2.tar.gz";
1976       hash = "sha256-9GEsDDVDEHQbmattJkUSJoIxUMonEJsbORIy1c/dpts=";
1977     };
1978     buildInputs = [ JSONMaybeXS PathTiny TestDeep TestFatal ];
1979     propagatedBuildInputs = [ CryptURandom Moo TieIxHash boolean namespaceclean ];
1980     meta = {
1981       description = "BSON serialization and deserialization (EOL)";
1982       homepage = "https://github.com/mongodb-labs/mongo-perl-bson";
1983       license = with lib.licenses; [ asl20 ];
1984     };
1985   };
1987   BSONXS = buildPerlPackage {
1988     pname = "BSON-XS";
1989     version = "0.8.4";
1990     src = fetchurl {
1991       url = "mirror://cpan/authors/id/M/MO/MONGODB/BSON-XS-v0.8.4.tar.gz";
1992       hash = "sha256-KPfTOP14tvnJpggL6d4/XLI9iIuW6/b8v6zp8pZq6/k=";
1993     };
1994     buildInputs = [ ConfigAutoConf JSONMaybeXS PathTiny TestDeep TestFatal TieIxHash ];
1995     propagatedBuildInputs = [ BSON boolean JSONXS JSONPP CpanelJSONXS ];
1996     meta = {
1997       description = "XS implementation of MongoDB's BSON serialization (EOL)";
1998       homepage = "https://github.com/mongodb-labs/mongo-perl-bson-xs";
1999       license = with lib.licenses; [ asl20 ];
2000       platforms = lib.platforms.linux; # configure phase fails with "ld: unknown option: -mmacosx-version-min=10.12"
2001     };
2002   };
2004   BUtils = buildPerlPackage {
2005     pname = "B-Utils";
2006     version = "0.27";
2007     src = fetchurl {
2008       url = "mirror://cpan/authors/id/E/ET/ETHER/B-Utils-0.27.tar.gz";
2009       hash = "sha256-+X9T9qMFAQmqQU/usYTK0QGBLUF2DpUrXYSZP2aF/+o=";
2010     };
2011     propagatedBuildInputs = [ TaskWeaken ];
2012     buildInputs = [ ExtUtilsDepends ];
2013     meta = {
2014       description = "Helper functions for op tree manipulation";
2015       homepage = "https://search.cpan.org/dist/B-Utils";
2016       license = with lib.licenses; [ artistic1 gpl1Plus ];
2017     };
2018   };
2020   BusinessHours = buildPerlPackage {
2021     pname = "Business-Hours";
2022     version = "0.13";
2023     src = fetchurl {
2024       url = "mirror://cpan/authors/id/B/BP/BPS/Business-Hours-0.13.tar.gz";
2025       hash = "sha256-qAf+P/u4T/pTlnEazOdXZPOknyQjZGc1DHHIp3pcPsI=";
2026     };
2027     propagatedBuildInputs = [ SetIntSpan ];
2028     meta = {
2029       description = "Calculate business hours in a time period";
2030       license = with lib.licenses; [ artistic1 gpl1Plus ];
2031     };
2032   };
2034   BusinessISBN = buildPerlPackage {
2035     pname = "Business-ISBN";
2036     version = "3.008";
2037     src = fetchurl {
2038       url = "mirror://cpan/authors/id/B/BD/BDFOY/Business-ISBN-3.008.tar.gz";
2039       hash = "sha256-GcSh1NmaDddpWpAZKxNASg4+7r7fy+l6AgLjayOMDmk=";
2040     };
2041     propagatedBuildInputs = [ BusinessISBNData ];
2042     meta = {
2043       description = "Work with International Standard Book Numbers";
2044       homepage = "https://github.com/briandfoy/business-isbn";
2045       license = with lib.licenses; [ artistic2 ];
2046     };
2047   };
2049   BusinessISBNData = buildPerlPackage {
2050     pname = "Business-ISBN-Data";
2051     version = "20231006.001";
2052     src = fetchurl {
2053       url = "mirror://cpan/authors/id/B/BD/BDFOY/Business-ISBN-Data-20231006.001.tar.gz";
2054       hash = "sha256-KhazbjIzXOjI337m8ig2LzSuc8T8wSNQCVCiyMd/F0g=";
2055     };
2056     meta = {
2057       description = "Data pack for Business::ISBN";
2058       homepage = "https://github.com/briandfoy/business-isbn-data";
2059       license = with lib.licenses; [ artistic2 ];
2060     };
2061   };
2063   BusinessISMN = buildPerlPackage {
2064     pname = "Business-ISMN";
2065     version = "1.203";
2066     src = fetchurl {
2067       url = "mirror://cpan/authors/id/B/BD/BDFOY/Business-ISMN-1.203.tar.gz";
2068       hash = "sha256-T1Ou2rLmh9Th9yhW6vwiFZOQYhEj2q955FBqiX4pPog=";
2069     };
2070     propagatedBuildInputs = [ TieCycle ];
2071     meta = {
2072       description = "Work with International Standard Music Numbers";
2073       homepage = "https://github.com/briandfoy/business-ismn";
2074       license = with lib.licenses; [ artistic2 ];
2075     };
2076   };
2078   BusinessISSN = buildPerlPackage {
2079     pname = "Business-ISSN";
2080     version = "1.005";
2081     src = fetchurl {
2082       url = "mirror://cpan/authors/id/B/BD/BDFOY/Business-ISSN-1.005.tar.gz";
2083       hash = "sha256-OwmwJn8KZmD7krb1DEx3lu9qJjtirTu+qgcYmgx8ObM=";
2084     };
2085     meta = {
2086       description = "Perl extension for International Standard Serial Numbers";
2087       homepage = "https://github.com/briandfoy/business-issn";
2088       license = with lib.licenses; [ artistic2 ];
2089     };
2090   };
2092   BytesRandomSecure = buildPerlPackage {
2093     pname = "Bytes-Random-Secure";
2094     version = "0.29";
2095     src = fetchurl {
2096       url = "mirror://cpan/authors/id/D/DA/DAVIDO/Bytes-Random-Secure-0.29.tar.gz";
2097       hash = "sha256-U7vTOeahHvygfGGaYVx8GIpouyvoSaHLfvw91Nmuha4=";
2098     };
2099     propagatedBuildInputs = [ CryptRandomSeed MathRandomISAAC ];
2100     meta = {
2101       description = "Perl extension to generate cryptographically-secure random bytes";
2102       license = with lib.licenses; [ artistic1 gpl1Plus ];
2103       maintainers = [ maintainers.sgo ];
2104     };
2105   };
2107   BytesRandomSecureTiny = buildPerlPackage {
2108     pname = "Bytes-Random-Secure-Tiny";
2109     version = "1.011";
2110     src = fetchurl {
2111       url = "mirror://cpan/authors/id/D/DA/DAVIDO/Bytes-Random-Secure-Tiny-1.011.tar.gz";
2112       hash = "sha256-A9lntfgoRpCRN9WrmYSsVwrBCkQB4MYC89IgjEZayYI=";
2113     };
2114     meta = {
2115       description = "Tiny Perl extension to generate cryptographically-secure random bytes";
2116       license = with lib.licenses; [ artistic1 gpl1Plus ];
2117       maintainers = [ maintainers.sgo ];
2118     };
2119   };
2121   CacheCache = buildPerlPackage {
2122     pname = "Cache-Cache";
2123     version = "1.08";
2124     src = fetchurl {
2125       url = "mirror://cpan/authors/id/R/RJ/RJBS/Cache-Cache-1.08.tar.gz";
2126       hash = "sha256-0sf9Xbpd0BC32JI1FokLtsz2tfGIzLafNcsP1sAx0eg=";
2127     };
2128     propagatedBuildInputs = [ DigestSHA1 Error IPCShareLite ];
2129     doCheck = false; # randomly fails
2130     meta = {
2131       description = "Cache Interface";
2132       license = with lib.licenses; [ artistic1 gpl1Plus ];
2133     };
2134   };
2136   CacheFastMmap = buildPerlPackage {
2137     pname = "Cache-FastMmap";
2138     version = "1.57";
2139     src = fetchurl {
2140       url = "mirror://cpan/authors/id/R/RO/ROBM/Cache-FastMmap-1.57.tar.gz";
2141       hash = "sha256-4Es6KNmJ7bj7lur6zcK4f57MuE8EfrLifLJqp9CMx7g=";
2142     };
2143     buildInputs = [ TestDeep ];
2144     meta = {
2145       description = "Uses an mmap'ed file to act as a shared memory interprocess cache";
2146       license = with lib.licenses; [ artistic1 gpl1Plus ];
2147     };
2148   };
2150   CacheKyotoTycoon = buildPerlModule {
2151     pname = "Cache-KyotoTycoon";
2152     version = "0.16";
2153     src = fetchurl {
2154       url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/Cache-KyotoTycoon-0.16.tar.gz";
2155       hash = "sha256-zLBII1iUxItpegDleMtFC05evBQYpVSnz6hjJwezlHw=";
2156     };
2157     propagatedBuildInputs = [ Furl URI ];
2158     buildInputs = [ FileWhich TestRequires TestSharedFork TestTCP ];
2159     meta = {
2160       description = "KyotoTycoon client library";
2161       homepage = "https://github.com/tokuhirom/Cache-KyotoTycoon";
2162       license = with lib.licenses; [ artistic1 gpl1Plus ];
2163     };
2164   };
2166   CacheMemcached = buildPerlPackage {
2167     pname = "Cache-Memcached";
2168     version = "1.30";
2169     src = fetchurl {
2170       url =
2171       "mirror://cpan/authors/id/D/DO/DORMANDO/Cache-Memcached-1.30.tar.gz";
2172       hash = "sha256-MbPFHsDqrwMALizI49fVy+YZGc/a2mHACOuYU6ysQqk=";
2173     };
2174     propagatedBuildInputs = [ StringCRC32 ];
2175     meta = {
2176       description = "Client library for memcached (memory cache daemon)";
2177       license = with lib.licenses; [ artistic1 gpl1Plus ];
2178     };
2179   };
2181   CacheMemcachedFast = buildPerlPackage {
2182     pname = "Cache-Memcached-Fast";
2183     version = "0.28";
2184     src = fetchurl {
2185       url = "mirror://cpan/authors/id/R/RA/RAZ/Cache-Memcached-Fast-0.28.tar.gz";
2186       hash = "sha256-fEJMJTtl/2LPFXe7QYgCGSoYgF6jH6/Ap65YnkRsidI=";
2187     };
2188     buildInputs = [ Test2Suite ];
2189     meta = {
2190       description = "Perl client for memcached, in C language";
2191       license = with lib.licenses; [ artistic1 gpl1Plus ];
2192     };
2193   };
2195   CacheMemory = buildPerlModule {
2196     pname = "Cache";
2197     version = "2.11";
2198     src = fetchurl {
2199       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Cache-2.11.tar.gz";
2200       hash = "sha256-4dLYlneYEWarxbtuXsxkcfAB8T61bVvpVE2AR9wIpZI=";
2201     };
2202     propagatedBuildInputs = [ DBFile FileNFSLock HeapFibonacci IOString TimeDate ];
2203     doCheck = false; # can time out
2204     meta = {
2205       description = "Memory based implementation of the Cache interface";
2206       license = with lib.licenses; [ artistic1 gpl1Plus ];
2207     };
2208   };
2210   CacheSimpleTimedExpiry = buildPerlPackage {
2211     pname = "Cache-Simple-TimedExpiry";
2212     version = "0.27";
2213     src = fetchurl {
2214       url = "mirror://cpan/authors/id/J/JE/JESSE/Cache-Simple-TimedExpiry-0.27.tar.gz";
2215       hash = "sha256-Tni35N0jG1VxpIzQ7htjlT9eNHkMnQIOFZWnx9Crvkk=";
2216     };
2217     meta = {
2218       description = "Lightweight cache with timed expiration";
2219       license = with lib.licenses; [ artistic1 gpl1Plus ];
2220     };
2221   };
2223   Cairo = buildPerlPackage {
2224     pname = "Cairo";
2225     version = "1.109";
2226     src = fetchurl {
2227       url = "mirror://cpan/authors/id/X/XA/XAOC/Cairo-1.109.tar.gz";
2228       hash = "sha256-ghlzbkAcIxHaX1FXdd5D/YfmOEtQTaNqGS8rIXZDB38=";
2229     };
2230     buildInputs = [ pkgs.cairo ];
2231     propagatedBuildInputs = [ ExtUtilsDepends ExtUtilsPkgConfig ];
2232     meta = {
2233       description = "Perl interface to the cairo 2d vector graphics library";
2234       homepage = "https://gtk2-perl.sourceforge.net";
2235       license = with lib.licenses; [ lgpl21Only ];
2236     };
2237   };
2239   CairoGObject = buildPerlPackage {
2240     pname = "Cairo-GObject";
2241     version = "1.005";
2242     src = fetchurl {
2243       url = "mirror://cpan/authors/id/X/XA/XAOC/Cairo-GObject-1.005.tar.gz";
2244       hash = "sha256-jYlkRNceHQvKPSTjHl2CvQ2VQqrtkdH7fqs2e85nXFA=";
2245     };
2246     buildInputs = [ pkgs.cairo ];
2247     propagatedBuildInputs = [ Cairo Glib ];
2248     meta = {
2249       description = "Integrate Cairo into the Glib type system";
2250       homepage = "https://gtk2-perl.sourceforge.net";
2251       license = with lib.licenses; [ lgpl21Only ];
2252     };
2253   };
2255   CallContext = buildPerlPackage {
2256     pname = "Call-Context";
2257     version = "0.03";
2258     src = fetchurl {
2259       url = "mirror://cpan/authors/id/F/FE/FELIPE/Call-Context-0.03.tar.gz";
2260       hash = "sha256-Dua/RrxydVrbemsI550S4gfeX3gJcHs8NTtYyy8LWiY=";
2261     };
2262     meta = {
2263       description = "Sanity-check calling context";
2264       license = with lib.licenses; [ artistic1 gpl1Plus ];
2265       maintainers = [ maintainers.sgo ];
2266     };
2267   };
2269   cam_pdf = buildPerlModule {
2270     pname = "CAM-PDF";
2271     version = "1.60";
2272     src = fetchurl {
2273       url = "mirror://cpan/authors/id/C/CD/CDOLAN/CAM-PDF-1.60.tar.gz";
2274       hash = "sha256-52r8fzimJJJKd8XJiMNsnjiL+ncW51zTl/744bQuu4k=";
2275     };
2276     propagatedBuildInputs = [ CryptRC4 TextPDF ];
2277     meta = {
2278       description = "PDF manipulation library";
2279       license = with lib.licenses; [ artistic1 gpl1Plus ];
2280     };
2281   };
2283   capitalization = buildPerlPackage {
2284     pname = "capitalization";
2285     version = "0.03";
2286     src = fetchurl {
2287       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/capitalization-0.03.tar.gz";
2288       hash = "sha256-8TUW1XKUH2ihwj8uDkn1vwmyL5B+uSkrcrr/5ie77jw=";
2289     };
2290     propagatedBuildInputs = [ DevelSymdump ];
2291     meta = {
2292       description = "No capitalization on method names";
2293       license = with lib.licenses; [ artistic1 gpl1Plus ];
2294     };
2295   };
2297   CanaryStability = buildPerlPackage {
2298     pname = "Canary-Stability";
2299     version = "2013";
2300     src = fetchurl {
2301       url = "mirror://cpan/authors/id/M/ML/MLEHMANN/Canary-Stability-2013.tar.gz";
2302       hash = "sha256-pckcYs+V/Lho9g6rXIMpCPaQUiEBP+orzj/1cEbXtuo=";
2303     };
2304     meta = {
2305       description = "Canary to check perl compatibility for schmorp's modules";
2306       license = with lib.licenses; [ gpl1Plus ];
2307     };
2308   };
2310   CaptchaReCAPTCHA = buildPerlPackage {
2311     pname = "Captcha-reCaptcha";
2312     version = "0.99";
2313     src = fetchurl {
2314       url = "mirror://cpan/authors/id/S/SU/SUNNYP/Captcha-reCaptcha-0.99.tar.gz";
2315       hash = "sha256-uJI1dmARZu3j9/Ly/1X/bjw7znDmnzZaUe076MykQ5I=";
2316     };
2317     propagatedBuildInputs = [ HTMLTiny LWP ];
2318     meta = {
2319       description = "Perl implementation of the reCAPTCHA API";
2320       license = with lib.licenses; [ artistic1 gpl1Plus ];
2321     };
2322   };
2324   CaptureTiny = buildPerlPackage {
2325     pname = "Capture-Tiny";
2326     version = "0.48";
2327     src = fetchurl {
2328       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Capture-Tiny-0.48.tar.gz";
2329       hash = "sha256-bCMRPoe605MwjJCiBwE+UF9lknRzZjjYx5usnGfMPhk=";
2330     };
2331     meta = {
2332       description = "Capture STDOUT and STDERR from Perl, XS or external programs";
2333       homepage = "https://github.com/dagolden/Capture-Tiny";
2334       license = with lib.licenses; [ asl20 ];
2335     };
2336   };
2338   CarpAlways = buildPerlPackage {
2339     pname = "Carp-Always";
2340     version = "0.16";
2341     src = fetchurl {
2342       url = "mirror://cpan/authors/id/F/FE/FERREIRA/Carp-Always-0.16.tar.gz";
2343       hash = "sha256-mKoRSSFxwBb7CCdYGrH6XtAbHpnGNXSJ3fOoJzFYZvE=";
2344     };
2345     buildInputs = [ TestBase ];
2346     meta = {
2347       description = "Warns and dies noisily with stack backtraces";
2348       license = with lib.licenses; [ artistic1 gpl1Plus ];
2349     };
2350   };
2352   CarpAssert = buildPerlPackage {
2353     pname = "Carp-Assert";
2354     version = "0.22";
2355     src = fetchurl {
2356       url = "mirror://cpan/authors/id/Y/YV/YVES/Carp-Assert-0.22.tar.gz";
2357       hash = "sha256-gH6pfGvtdqwuSWnvun2uSP7+ufKHl/ESZxs6yKSTVfc=";
2358     };
2359     meta = {
2360       description = "Executable comments";
2361       license = with lib.licenses; [ artistic1 gpl1Plus ];
2362     };
2363   };
2365   CarpAssertMore = buildPerlPackage {
2366     pname = "Carp-Assert-More";
2367     version = "2.3.0";
2368     src = fetchurl {
2369       url = "mirror://cpan/authors/id/P/PE/PETDANCE/Carp-Assert-More-2.3.0.tar.gz";
2370       hash = "sha256-/2nqCb2maiAPygiK3ZHFww5lcqt7ujF6f58zxRKzzqc=";
2371     };
2372     propagatedBuildInputs = [ CarpAssert ];
2373     buildInputs = [ TestException ];
2374     meta = {
2375       description = "Convenience assertions for common situations";
2376       license = with lib.licenses; [ artistic2 ];
2377     };
2378   };
2380   CarpClan = buildPerlPackage {
2381     pname = "Carp-Clan";
2382     version = "6.08";
2383     src = fetchurl {
2384       url = "mirror://cpan/authors/id/E/ET/ETHER/Carp-Clan-6.08.tar.gz";
2385       hash = "sha256-x1+S40QizFplqwXRVYQrcBRSQ06a77ZJ1uIonEfvZwg=";
2386     };
2387     meta = {
2388       description = "Report errors from perspective of caller of a \"clan\" of modules";
2389       homepage = "https://github.com/karenetheridge/Carp-Clan";
2390       license = with lib.licenses; [ artistic1 gpl1Plus ];
2391     };
2392   };
2394   Carton = buildPerlPackage {
2395     pname = "Carton";
2396     version = "1.0.35";
2397     src = fetchurl {
2398       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Carton-v1.0.35.tar.gz";
2399       hash = "sha256-nEVYypfNCLaf37UrKMPdwgQ+9S8GJ7kOU9BaQIc0QXU=";
2400     };
2401     propagatedBuildInputs = [ MenloLegacy PathTiny TryTiny ];
2402     meta = {
2403       description = "Perl module dependency manager (aka Bundler for Perl)";
2404       homepage = "https://github.com/perl-carton/carton";
2405       license = with lib.licenses; [ artistic1 gpl1Plus ];
2406       mainProgram = "carton";
2407     };
2408   };
2410   CatalystActionRenderView = buildPerlPackage {
2411     pname = "Catalyst-Action-RenderView";
2412     version = "0.16";
2413     src = fetchurl {
2414       url = "mirror://cpan/authors/id/B/BO/BOBTFISH/Catalyst-Action-RenderView-0.16.tar.gz";
2415       hash = "sha256-hWUgOVCgV9Q+zWTpWTcV1WXC+9iwLJH0PFOyERrNOUg=";
2416     };
2417     propagatedBuildInputs = [ CatalystRuntime DataVisitor ];
2418     buildInputs = [ HTTPRequestAsCGI ];
2419     meta = {
2420       description = "Sensible default end action";
2421       license = with lib.licenses; [ artistic1 gpl1Plus ];
2422     };
2423   };
2425   CatalystActionREST = buildPerlPackage {
2426     pname = "Catalyst-Action-REST";
2427     version = "1.21";
2428     src = fetchurl {
2429       url = "mirror://cpan/authors/id/J/JJ/JJNAPIORK/Catalyst-Action-REST-1.21.tar.gz";
2430       hash = "sha256-zPgbulIA06CtaQH5I68XOj1EFmGK6gimk4uq/970yyA=";
2431     };
2432     buildInputs = [ TestRequires ];
2433     propagatedBuildInputs = [ CatalystRuntime URIFind ];
2434     meta = {
2435       description = "Automated REST Method Dispatching";
2436       license = with lib.licenses; [ artistic1 gpl1Plus ];
2437     };
2438   };
2440   CatalystAuthenticationCredentialHTTP = buildPerlModule {
2441     pname = "Catalyst-Authentication-Credential-HTTP";
2442     version = "1.018";
2443     src = fetchurl {
2444       url = "mirror://cpan/authors/id/E/ET/ETHER/Catalyst-Authentication-Credential-HTTP-1.018.tar.gz";
2445       hash = "sha256-b6GBbe5kSw216gzBXF5xHcLO0gg2JavOcJZSHx1lpSk=";
2446     };
2447     buildInputs = [ ModuleBuildTiny TestException TestMockObject TestNeeds ];
2448     propagatedBuildInputs = [ CatalystPluginAuthentication ClassAccessor DataUUID StringEscape ];
2449     meta = {
2450       description = "HTTP Basic and Digest authentication for Catalyst";
2451       homepage = "https://github.com/perl-catalyst/Catalyst-Authentication-Credential-HTTP";
2452       license = with lib.licenses; [ artistic1 gpl1Plus ];
2453     };
2454   };
2456   CatalystAuthenticationStoreHtpasswd = buildPerlModule {
2457     pname = "Catalyst-Authentication-Store-Htpasswd";
2458     version = "1.006";
2459     src = fetchurl {
2460       url = "mirror://cpan/authors/id/E/ET/ETHER/Catalyst-Authentication-Store-Htpasswd-1.006.tar.gz";
2461       hash = "sha256-x/2FYnXo3hjAAWHXNJTsZr0N3QoZ27dMQtVXHJ7ggE8=";
2462     };
2463     buildInputs = [ ModuleBuildTiny TestLongString TestSimple13 TestWWWMechanize TestWWWMechanizeCatalyst ];
2464     propagatedBuildInputs = [ AuthenHtpasswd CatalystPluginAuthentication ];
2465     patches = [
2466       ../development/perl-modules/CatalystAuthenticationStoreHtpasswd-test-replace-DES-hash-with-bcrypt.patch
2467     ];
2468     meta = {
2469       description = "Authen::Htpasswd based user storage/authentication";
2470       license = with lib.licenses; [ artistic1 gpl1Plus ];
2471     };
2472   };
2474   CatalystAuthenticationStoreDBIxClass = buildPerlPackage {
2475     pname = "Catalyst-Authentication-Store-DBIx-Class";
2476     version = "0.1506";
2477     src = fetchurl {
2478       url = "mirror://cpan/authors/id/I/IL/ILMARI/Catalyst-Authentication-Store-DBIx-Class-0.1506.tar.gz";
2479       hash = "sha256-fFefJZUoXmTD3LVUAzSqmgAkQ+HUyMg6tEk7kMxRskQ=";
2480     };
2481     propagatedBuildInputs = [ CatalystModelDBICSchema CatalystPluginAuthentication ];
2482     buildInputs = [ TestWarn ];
2483     meta = {
2484       description = "Extensible and flexible object <-> relational mapper";
2485       license = with lib.licenses; [ artistic1 gpl1Plus ];
2486     };
2487   };
2489   CatalystAuthenticationStoreLDAP = buildPerlPackage {
2490     pname = "Catalyst-Authentication-Store-LDAP";
2491     version = "1.017";
2492     src = fetchurl {
2493       url = "mirror://cpan/authors/id/I/IL/ILMARI/Catalyst-Authentication-Store-LDAP-1.017.tar.gz";
2494       hash = "sha256-keW4vd/XOGYqNh6/6nPYQrO6Me1wne2xqE7DRB3O7sU=";
2495     };
2496     propagatedBuildInputs = [ perlldap CatalystPluginAuthentication ClassAccessor ];
2497     buildInputs = [ TestMockObject TestException NetLDAPServerTest ];
2498     doCheck = !stdenv.hostPlatform.isDarwin; # t/02-realms_api.t and t/50.auth.case.sensitivity.t
2499     meta = {
2500       description = "Authenticate Users against LDAP Directories";
2501       license = with lib.licenses; [ artistic1 gpl1Plus ];
2502     };
2503   };
2505   CatalystComponentInstancePerContext = buildPerlPackage {
2506     pname = "Catalyst-Component-InstancePerContext";
2507     version = "0.001001";
2508     src = fetchurl {
2509       url = "mirror://cpan/authors/id/G/GR/GRODITI/Catalyst-Component-InstancePerContext-0.001001.tar.gz";
2510       hash = "sha256-f2P5MOHmE/FZVcnm1zhzZ1xQwKO8KmGgNHMzYe0m0nE=";
2511     };
2512     propagatedBuildInputs = [ CatalystRuntime ];
2513     meta = {
2514       description = "Moose role to create only one instance of component per context";
2515       license = with lib.licenses; [ artistic1 gpl1Plus ];
2516     };
2517   };
2519   CatalystControllerHTMLFormFu = buildPerlPackage {
2520     pname = "Catalyst-Controller-HTML-FormFu";
2521     version = "2.04";
2522     src = fetchurl {
2523       url = "mirror://cpan/authors/id/N/NI/NIGELM/Catalyst-Controller-HTML-FormFu-2.04.tar.gz";
2524       hash = "sha256-8T+5s7OwCzXwarwxYURhyNc0b74H+1accejVhuXrXdw=";
2525     };
2526     buildInputs = [ CatalystActionRenderView CatalystPluginSession CatalystPluginSessionStateCookie CatalystPluginSessionStoreFile CatalystViewTT CodeTidyAllPluginPerlAlignMooseAttributes PodCoverageTrustPod PodTidy TemplateToolkit TestCPANMeta TestDifferences TestEOL TestKwalitee TestLongString TestMemoryCycle TestNoTabs TestPAUSEPermissions TestPod TestPodCoverage TestWWWMechanize TestWWWMechanizeCatalyst ];
2527     propagatedBuildInputs = [ CatalystComponentInstancePerContext HTMLFormFuMultiForm RegexpAssemble ];
2528     doCheck = false; /* fails with 'open3: exec of .. perl .. failed: Argument list too long at .../TAP/Parser/Iterator/Process.pm line 165.' */
2529     meta = {
2530       description = "HTML Form Creation, Rendering and Validation Framework";
2531       homepage = "https://github.com/FormFu/HTML-FormFu";
2532       license = with lib.licenses; [ artistic1 gpl1Plus ];
2533     };
2534   };
2536   CatalystControllerPOD = buildPerlModule {
2537     pname = "Catalyst-Controller-POD";
2538     version = "1.0.0";
2539     src = fetchurl {
2540       url = "mirror://cpan/authors/id/P/PE/PERLER/Catalyst-Controller-POD-1.0.0.tar.gz";
2541       hash = "sha256-7ipLs+14uqFGQzVAjyhDRba6DvZXate/vXtlbHiKOfk=";
2542     };
2543     buildInputs = [ ModuleInstall TestLongString TestWWWMechanize TestWWWMechanizeCatalyst ];
2544     propagatedBuildInputs = [ CatalystPluginStaticSimple ClassAccessor FileSlurp JSONXS ListMoreUtils PodPOMViewTOC XMLSimple ];
2545     meta = {
2546       description = "Serves PODs right from your Catalyst application";
2547       homepage = "https://search.cpan.org/dist/Catalyst-Controller-POD";
2548       license = with lib.licenses; [ bsd3 ];
2549     };
2550   };
2552   CatalystDevel = buildPerlPackage {
2553     pname = "Catalyst-Devel";
2554     version = "1.42";
2555     src = fetchurl {
2556       url = "mirror://cpan/authors/id/H/HA/HAARG/Catalyst-Devel-1.42.tar.gz";
2557       hash = "sha256-fsbwtsq1uMCX5Hdp/HOk1MAVpYxB/bQPwk3z7nfEir0=";
2558     };
2559     buildInputs = [ FileShareDirInstall TestFatal ];
2560     propagatedBuildInputs = [ CatalystActionRenderView CatalystPluginConfigLoader CatalystPluginStaticSimple ConfigGeneral FileChangeNotify FileCopyRecursive ModuleInstall TemplateToolkit ];
2561     meta = {
2562       description = "Catalyst Development Tools";
2563       homepage = "http://dev.catalyst.perl.org";
2564       license = with lib.licenses; [ artistic1 gpl1Plus ];
2565     };
2566   };
2568   CatalystDispatchTypeRegex = buildPerlModule {
2569     pname = "Catalyst-DispatchType-Regex";
2570     version = "5.90035";
2571     src = fetchurl {
2572       url = "mirror://cpan/authors/id/M/MG/MGRIMES/Catalyst-DispatchType-Regex-5.90035.tar.gz";
2573       hash = "sha256-AC3Pnv7HxYiSoYP5CAFTnQzxPsOvzPjTrRkhfCsNWBo=";
2574     };
2575     propagatedBuildInputs = [ CatalystRuntime ];
2576     meta = {
2577       description = "Regex DispatchType";
2578       license = with lib.licenses; [ artistic1 gpl1Plus ];
2579     };
2580   };
2582   CatalystManual = buildPerlPackage {
2583     pname = "Catalyst-Manual";
2584     version = "5.9011";
2585     src = fetchurl {
2586       url = "mirror://cpan/authors/id/H/HA/HAARG/Catalyst-Manual-5.9011.tar.gz";
2587       hash = "sha256-s54zllkDwAWD4BgOPdUopUkg9SB83wUmBcoTgoz6wTw=";
2588     };
2589     meta = {
2590       description = "Catalyst developer's manual";
2591       license = with lib.licenses; [ artistic1 gpl1Plus ];
2592     };
2593   };
2595   CatalystModelDBICSchema = buildPerlPackage {
2596     pname = "Catalyst-Model-DBIC-Schema";
2597     version = "0.66";
2598     src = fetchurl {
2599       url = "mirror://cpan/authors/id/H/HA/HAARG/Catalyst-Model-DBIC-Schema-0.66.tar.gz";
2600       hash = "sha256-GST0wA6PD/HF0a+hbv5PhW8cXnT+VW7Cxfj1v2OtA0g=";
2601     };
2602     buildInputs = [ DBDSQLite TestException TestRequires ];
2603     propagatedBuildInputs = [ CatalystComponentInstancePerContext CatalystXComponentTraits DBIxClassSchemaLoader MooseXMarkAsMethods MooseXNonMoose MooseXTypesLoadableClass TieIxHash ];
2604     meta = {
2605       description = "DBIx::Class::Schema Model Class";
2606       license = with lib.licenses; [ artistic1 gpl1Plus ];
2607     };
2608   };
2610   CatalystRuntime = buildPerlPackage {
2611     pname = "Catalyst-Runtime";
2612     version = "5.90131";
2613     src = fetchurl {
2614       url = "mirror://cpan/authors/id/J/JJ/JJNAPIORK/Catalyst-Runtime-5.90131.tar.gz";
2615       hash = "sha256-nWQe+s8PmTXm7LmPWjtHbJYbH4Gb0vjyOmR9HYZ+GEk=";
2616     };
2617     buildInputs = [ TestFatal TypeTiny ];
2618     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 ];
2619     meta = {
2620       description = "Catalyst Framework Runtime";
2621       homepage = "http://dev.catalyst.perl.org";
2622       license = with lib.licenses; [ artistic1 gpl1Plus ];
2623       mainProgram = "catalyst.pl";
2624     };
2625   };
2627   CatalystPluginAccessLog = buildPerlPackage {
2628     pname = "Catalyst-Plugin-AccessLog";
2629     version = "1.10";
2630     src = fetchurl {
2631       url = "mirror://cpan/authors/id/A/AR/ARODLAND/Catalyst-Plugin-AccessLog-1.10.tar.gz";
2632       hash = "sha256-hz245OcqmU4+F661PSuDfm1SS0uLDzU58mITXIjMISA=";
2633     };
2634     propagatedBuildInputs = [ CatalystRuntime DateTime ];
2635     meta = {
2636       description = "Request logging from within Catalyst";
2637       homepage = "https://metacpan.org/release/Catalyst-Plugin-AccessLog";
2638       license = with lib.licenses; [ artistic1 gpl1Plus ];
2639     };
2640   };
2642   CatalystPluginAuthentication = buildPerlPackage {
2643     pname = "Catalyst-Plugin-Authentication";
2644     version = "0.10023";
2645     src = fetchurl {
2646       url = "mirror://cpan/authors/id/B/BO/BOBTFISH/Catalyst-Plugin-Authentication-0.10023.tar.gz";
2647       hash = "sha256-NgOaq9rLB+Zoek16i/rHj+nQ+7BM2o1tlm1sHjJZ0Gw=";
2648     };
2649     buildInputs = [ TestException ];
2650     propagatedBuildInputs = [ CatalystPluginSession ];
2651     meta = {
2652       description = "Infrastructure plugin for the Catalyst authentication framework";
2653       license = with lib.licenses; [ artistic1 gpl1Plus ];
2654     };
2655   };
2657   CatalystPluginAuthorizationACL = buildPerlPackage {
2658     pname = "Catalyst-Plugin-Authorization-ACL";
2659     version = "0.16";
2660     src = fetchurl {
2661       url = "mirror://cpan/authors/id/R/RK/RKITOVER/Catalyst-Plugin-Authorization-ACL-0.16.tar.gz";
2662       hash = "sha256-KjfmU0gu/SyTuGxqg4lB4FbF+U3YbA8LiT1RkzMSg3w=";
2663     };
2664     propagatedBuildInputs = [ CatalystRuntime ClassThrowable ];
2665     buildInputs = [ CatalystPluginAuthentication CatalystPluginAuthorizationRoles CatalystPluginSession CatalystPluginSessionStateCookie TestWWWMechanizeCatalyst ];
2666     meta = {
2667       description = "ACL support for Catalyst applications";
2668       license = with lib.licenses; [ artistic1 gpl1Plus ];
2669     };
2670   };
2672   CatalystPluginAuthorizationRoles = buildPerlPackage {
2673     pname = "Catalyst-Plugin-Authorization-Roles";
2674     version = "0.09";
2675     src = fetchurl {
2676       url = "mirror://cpan/authors/id/B/BO/BOBTFISH/Catalyst-Plugin-Authorization-Roles-0.09.tar.gz";
2677       hash = "sha256-7kBE5eKg2UxOxRL61V7gyN4UTh47h4Ugf5YCXPmkA1E=";
2678     };
2679     buildInputs = [ TestException ];
2680     propagatedBuildInputs = [ CatalystPluginAuthentication SetObject UNIVERSALisa ];
2681     meta = {
2682       description = "Role based authorization for Catalyst based on Catalyst::Plugin::Authentication";
2683       license = with lib.licenses; [ artistic1 gpl1Plus ];
2684     };
2685   };
2687   CatalystPluginCache = buildPerlPackage {
2688     pname = "Catalyst-Plugin-Cache";
2689     version = "0.12";
2690     src = fetchurl {
2691       url = "mirror://cpan/authors/id/B/BO/BOBTFISH/Catalyst-Plugin-Cache-0.12.tar.gz";
2692       hash = "sha256-KV/tRJyTJLBleP1GjjOR4E+/ZK0kN2oARAjRvG9UQ+A=";
2693     };
2694     buildInputs = [ ClassAccessor TestDeep TestException ];
2695     propagatedBuildInputs = [ CatalystRuntime ];
2696     meta = {
2697       description = "Flexible caching support for Catalyst";
2698       license = with lib.licenses; [ artistic1 gpl1Plus ];
2699     };
2700   };
2702   CatalystPluginCacheHTTP = buildPerlPackage {
2703     pname = "Catalyst-Plugin-Cache-HTTP";
2704     version = "0.001000";
2705     src = fetchurl {
2706       url = "mirror://cpan/authors/id/G/GR/GRAF/Catalyst-Plugin-Cache-HTTP-0.001000.tar.gz";
2707       hash = "sha256-aq2nDrKfYd90xTj5KaEHD92TIMW278lNJkwzghe8sWw=";
2708     };
2709     buildInputs = [ CatalystRuntime TestLongString TestSimple13 TestWWWMechanize TestWWWMechanizeCatalyst ];
2710     propagatedBuildInputs = [ ClassAccessor HTTPMessage MROCompat ];
2711     meta = {
2712       description = "HTTP/1.1 cache validators for Catalyst";
2713       license = with lib.licenses; [ artistic1 gpl1Plus ];
2714     };
2715   };
2717   CatalystPluginCaptcha = buildPerlPackage {
2718     pname = "Catalyst-Plugin-Captcha";
2719     version = "0.04";
2720     src = fetchurl {
2721       url = "mirror://cpan/authors/id/D/DI/DIEGOK/Catalyst-Plugin-Captcha-0.04.tar.gz";
2722       hash = "sha256-Sj1ccgBiTT567ULQWnBnSSdGg+t7rSYN6Sx1W/aQnlI=";
2723     };
2724     propagatedBuildInputs = [ CatalystPluginSession GDSecurityImage ];
2725     meta = {
2726       description = "Create and validate Captcha for Catalyst";
2727       license = with lib.licenses; [ artistic1 gpl1Plus ];
2728     };
2729   };
2731   CatalystPluginConfigLoader = buildPerlPackage {
2732     pname = "Catalyst-Plugin-ConfigLoader";
2733     version = "0.35";
2734     src = fetchurl {
2735       url = "mirror://cpan/authors/id/H/HA/HAARG/Catalyst-Plugin-ConfigLoader-0.35.tar.gz";
2736       hash = "sha256-nippim8tBG4NxeV1EpKc1CPIB9Sja6Pynp5a3NcaGXE=";
2737     };
2738     propagatedBuildInputs = [ CatalystRuntime ConfigAny DataVisitor ];
2739     meta = {
2740       description = "Load config files of various types";
2741       license = with lib.licenses; [ artistic1 gpl1Plus ];
2742     };
2743   };
2745   CatalystPluginFormValidator = buildPerlPackage {
2746     pname = "Catalyst-Plugin-FormValidator";
2747     version = "0.094";
2748     src = fetchurl {
2749       url = "mirror://cpan/authors/id/D/DH/DHOSS/Catalyst-Plugin-FormValidator-0.094.tar.gz";
2750       hash = "sha256-WDTxG/XJ9LXTNtZcfOZjm3bOe/56KHXrBI1+ocgs4Fo=";
2751     };
2752     propagatedBuildInputs = [ CatalystRuntime DataFormValidator ];
2753     meta = {
2754       description = "Data::FormValidator";
2755       license = with lib.licenses; [ artistic1 gpl1Plus ];
2756     };
2757   };
2759   CatalystPluginFormValidatorSimple = buildPerlPackage {
2760     pname = "Catalyst-Plugin-FormValidator-Simple";
2761     version = "0.15";
2762     src = fetchurl {
2763       url = "mirror://cpan/authors/id/D/DH/DHOSS/Catalyst-Plugin-FormValidator-Simple-0.15.tar.gz";
2764       hash = "sha256-SGxqDo9BD9AXJ59IBKueNbpGMh0zoKlyH+Hgijkd56A=";
2765     };
2766     propagatedBuildInputs = [ CatalystPluginFormValidator FormValidatorSimple ];
2767     meta = {
2768       description = "Validation with simple chains of constraints ";
2769       license = with lib.licenses; [ artistic1 gpl1Plus ];
2770     };
2771   };
2773   CatalystPluginLogHandler = buildPerlModule {
2774     pname = "Catalyst-Plugin-Log-Handler";
2775     version = "0.08";
2776     src = fetchurl {
2777       url = "mirror://cpan/authors/id/P/PE/PEPE/Catalyst-Plugin-Log-Handler-0.08.tar.gz";
2778       hash = "sha256-DbPDpXtO49eJulEpiQ4oWJE/7wDYGFvcnF1/3jHgQ+8=";
2779     };
2780     propagatedBuildInputs = [ ClassAccessor LogHandler MROCompat ];
2781     meta = {
2782       description = "Log messages to several outputs";
2783       license = with lib.licenses; [ artistic1 gpl1Plus ];
2784     };
2785   };
2787   CatalystPluginPrometheusTiny = buildPerlPackage {
2788     pname = "Catalyst-Plugin-PrometheusTiny";
2789     version = "0.006";
2790     src = fetchurl {
2791       url = "mirror://cpan/authors/id/S/SY/SYSPETE/Catalyst-Plugin-PrometheusTiny-0.006.tar.gz";
2792       hash = "sha256-Kzm5l7q/+rNTquMsol8smbdljlBEew23H7gKFsS2osE=";
2793     };
2794     buildInputs = [ HTTPMessage Plack SubOverride TestDeep ];
2795     propagatedBuildInputs = [ CatalystRuntime Moose PrometheusTiny PrometheusTinyShared ];
2796     meta = {
2797       description = "Tiny Prometheus client";
2798       homepage = "https://github.com/robn/Prometheus-Tiny";
2799       license = with lib.licenses; [ artistic1 gpl1Plus ];
2800     };
2801   };
2803   CatalystPluginSession = buildPerlPackage {
2804     pname = "Catalyst-Plugin-Session";
2805     version = "0.43";
2806     src = fetchurl {
2807       url = "mirror://cpan/authors/id/H/HA/HAARG/Catalyst-Plugin-Session-0.43.tar.gz";
2808       hash = "sha256-Xn180rlbH8IkS8buuPRPg11gPqB/WjkRCIHbYJKLFMQ=";
2809     };
2810     buildInputs = [ TestDeep TestException TestNeeds ];
2811     propagatedBuildInputs = [ CatalystRuntime ObjectSignature ];
2812     meta = {
2813       description = "Generic Session plugin - ties together server side storage and client side state required to maintain session data";
2814       license = with lib.licenses; [ artistic1 gpl1Plus ];
2815     };
2816   };
2818   CatalystPluginSessionDynamicExpiry = buildPerlPackage {
2819     pname = "Catalyst-Plugin-Session-DynamicExpiry";
2820     version = "0.04";
2821     src = fetchurl {
2822       url = "mirror://cpan/authors/id/B/BO/BOBTFISH/Catalyst-Plugin-Session-DynamicExpiry-0.04.tar.gz";
2823       hash = "sha256-dwfFZzTNsVEvcz3EAPrfb0xTyyF7WCB4V4JNrWeAoHk=";
2824     };
2825     propagatedBuildInputs = [ CatalystPluginSession ];
2826     meta = {
2827       description = "Per-session custom expiry times";
2828       license = with lib.licenses; [ artistic1 gpl1Plus ];
2829     };
2830   };
2832   CatalystPluginSessionStateCookie = buildPerlPackage {
2833     pname = "Catalyst-Plugin-Session-State-Cookie";
2834     version = "0.18";
2835     src = fetchurl {
2836       url = "mirror://cpan/authors/id/H/HA/HAARG/Catalyst-Plugin-Session-State-Cookie-0.18.tar.gz";
2837       hash = "sha256-6bHHsrlsGU+Hpfd+FElxcHfHD/xnpL/CnwJsnuLge+o=";
2838     };
2839     propagatedBuildInputs = [ CatalystPluginSession ];
2840     meta = {
2841       description = "Maintain session IDs using cookies";
2842       license = with lib.licenses; [ artistic1 gpl1Plus ];
2843     };
2844   };
2846   CatalystPluginSessionStoreFastMmap = buildPerlPackage {
2847     pname = "Catalyst-Plugin-Session-Store-FastMmap";
2848     version = "0.16";
2849     src = fetchurl {
2850       url = "mirror://cpan/authors/id/B/BO/BOBTFISH/Catalyst-Plugin-Session-Store-FastMmap-0.16.tar.gz";
2851       hash = "sha256-uut/17+QW+dGMciHYP2KKYDO6pVieZM5lYFkPvY3cnQ=";
2852     };
2853     propagatedBuildInputs = [ CacheFastMmap CatalystPluginSession ];
2854     meta = {
2855       description = "FastMmap session storage backend";
2856       license = with lib.licenses; [ artistic1 gpl1Plus ];
2857     };
2858   };
2860   CatalystPluginSessionStoreFile = buildPerlPackage {
2861     pname = "Catalyst-Plugin-Session-Store-File";
2862     version = "0.18";
2863     src = fetchurl {
2864       url = "mirror://cpan/authors/id/F/FL/FLORA/Catalyst-Plugin-Session-Store-File-0.18.tar.gz";
2865       hash = "sha256-VHOOPOdvi+i2aUcJLSiXPHPXnR7hm12SsFdVL4/wm08=";
2866     };
2867     propagatedBuildInputs = [ CacheCache CatalystPluginSession ClassDataInheritable ];
2868     meta = {
2869       description = "File storage backend for session data";
2870       license = with lib.licenses; [ artistic1 gpl1Plus ];
2871     };
2872   };
2874   CatalystPluginSmartURI = buildPerlPackage {
2875     pname = "Catalyst-Plugin-SmartURI";
2876     version = "0.041";
2877     src = fetchurl {
2878       url = "mirror://cpan/authors/id/R/RK/RKITOVER/Catalyst-Plugin-SmartURI-0.041.tar.gz";
2879       hash = "sha256-y4ghhphUUSA9kj19+QIKoELajcGUltgj4WU1twUfX1c=";
2880     };
2881     propagatedBuildInputs = [ CatalystRuntime ClassC3Componentised ];
2882     buildInputs = [ CatalystActionREST TestWarnings TimeOut URISmartURI ];
2883     meta = {
2884       description = "Configurable URIs for Catalyst";
2885       license = with lib.licenses; [ artistic1 gpl1Plus ];
2886     };
2887   };
2889   CatalystPluginStackTrace = buildPerlPackage {
2890     pname = "Catalyst-Plugin-StackTrace";
2891     version = "0.12";
2892     src = fetchurl {
2893       url = "mirror://cpan/authors/id/B/BO/BOBTFISH/Catalyst-Plugin-StackTrace-0.12.tar.gz";
2894       hash = "sha256-Mp2s0LoJ0Qp2CHqxdvldtro9smotD+M+7i9eRs7XU6w=";
2895     };
2896     propagatedBuildInputs = [ CatalystRuntime ];
2897     meta = {
2898       description = "Display a stack trace on the debug screen";
2899       license = with lib.licenses; [ artistic1 gpl1Plus ];
2900     };
2901   };
2903   CatalystPluginStaticSimple = buildPerlPackage {
2904     pname = "Catalyst-Plugin-Static-Simple";
2905     version = "0.37";
2906     src = fetchurl {
2907       url = "mirror://cpan/authors/id/I/IL/ILMARI/Catalyst-Plugin-Static-Simple-0.37.tar.gz";
2908       hash = "sha256-Wk2Fo1iM1Og/GwAlgUEufXG31X9mBW5dh6Nvk9icnnw=";
2909     };
2910     patches = [ ../development/perl-modules/catalyst-plugin-static-simple-etag.patch ];
2911     propagatedBuildInputs = [ CatalystRuntime MIMETypes MooseXTypes ];
2912     meta = {
2913       description = "Make serving static pages painless";
2914       license = with lib.licenses; [ artistic1 gpl1Plus ];
2915     };
2916   };
2918   CatalystPluginStatusMessage = buildPerlPackage {
2919     pname = "Catalyst-Plugin-StatusMessage";
2920     version = "1.002000";
2921     src = fetchurl {
2922       url = "mirror://cpan/authors/id/H/HK/HKCLARK/Catalyst-Plugin-StatusMessage-1.002000.tar.gz";
2923       hash = "sha256-ZJyJSrFvn0itqPnMWZp+y7iJGrN2H/b9UQUgxt5AfB8=";
2924     };
2925     propagatedBuildInputs = [ CatalystRuntime strictures ];
2926     meta = {
2927       description = "Handle passing of status (success and error) messages between screens of a web application";
2928       license = with lib.licenses; [ artistic1 gpl1Plus ];
2929     };
2930   };
2932   CatalystViewCSV = buildPerlPackage {
2933     pname = "Catalyst-View-CSV";
2934     version = "1.8";
2935     src = fetchurl {
2936       url = "mirror://cpan/authors/id/J/JM/JMREIN/Catalyst-View-CSV-1.8.tar.gz";
2937       hash = "sha256-vKcEaDzDXEevuJrDjHFRAu2+gIF57gcz0qDrMRojbN8=";
2938     };
2939     buildInputs = [ CatalystActionRenderView CatalystModelDBICSchema CatalystPluginConfigLoader CatalystXComponentTraits ConfigGeneral DBDSQLite DBIxClass TestException ];
2940     propagatedBuildInputs = [ CatalystRuntime TextCSV ];
2941     meta = {
2942       description = "CSV view class";
2943       license = with lib.licenses; [ artistic1 gpl1Plus ];
2944     };
2945   };
2947   CatalystViewDownload = buildPerlPackage {
2948     pname = "Catalyst-View-Download";
2949     version = "0.09";
2950     src = fetchurl {
2951       url = "mirror://cpan/authors/id/G/GA/GAUDEON/Catalyst-View-Download-0.09.tar.gz";
2952       hash = "sha256-es+PXyRex/bzU/SHKdE3sSrxrPos8fvWXHA5HpM3+OE=";
2953     };
2954     buildInputs = [ CatalystRuntime TestLongString TestSimple13 TestWWWMechanize TestWWWMechanizeCatalyst TextCSV XMLSimple ];
2955     meta = {
2956       description = "View module to help in the convenience of downloading data into many supportable formats";
2957       license = with lib.licenses; [ artistic1 gpl1Plus ];
2958     };
2959   };
2961   CatalystViewJSON = buildPerlPackage {
2962     pname = "Catalyst-View-JSON";
2963     version = "0.37";
2964     src = fetchurl {
2965       url = "mirror://cpan/authors/id/H/HA/HAARG/Catalyst-View-JSON-0.37.tar.gz";
2966       hash = "sha256-xdo/bop3scmYVd431YgCwLGU4pp9hsYO04Mc/dWfnew=";
2967     };
2968     propagatedBuildInputs = [ CatalystRuntime ];
2969     meta = {
2970       description = "JSON (JavaScript Object Notation) encoder/decoder";
2971       license = with lib.licenses; [ artistic1 gpl1Plus ];
2972     };
2973   };
2975   CatalystViewTT = buildPerlPackage {
2976     pname = "Catalyst-View-TT";
2977     version = "0.46";
2978     src = fetchurl {
2979       url = "mirror://cpan/authors/id/J/JJ/JJNAPIORK/Catalyst-View-TT-0.46.tar.gz";
2980       hash = "sha256-7aRFfbv4GkJBtzWl1GnZcn2KMJHSSvGuPJog8CTeUcw=";
2981     };
2982     propagatedBuildInputs = [ CatalystRuntime ClassAccessor TemplateTimer ];
2983     meta = {
2984       description = "Template View Class";
2985       license = with lib.licenses; [ artistic1 gpl1Plus ];
2986     };
2987   };
2989   CatalystXComponentTraits = buildPerlPackage {
2990     pname = "CatalystX-Component-Traits";
2991     version = "0.19";
2992     src = fetchurl {
2993       url = "mirror://cpan/authors/id/R/RK/RKITOVER/CatalystX-Component-Traits-0.19.tar.gz";
2994       hash = "sha256-CElE6cnQ37ENSrNFPhwSX97jkSm0bRfAI0w8U1FkBEc=";
2995     };
2996     propagatedBuildInputs = [ CatalystRuntime MooseXTraitsPluggable ];
2997     meta = {
2998       description = "Automatic Trait Loading and Resolution for Catalyst Components";
2999       license = with lib.licenses; [ artistic1 gpl1Plus ];
3000     };
3001   };
3003   CatalystXRoleApplicator = buildPerlPackage {
3004     pname = "CatalystX-RoleApplicator";
3005     version = "0.005";
3006     src = fetchurl {
3007       url = "mirror://cpan/authors/id/H/HD/HDP/CatalystX-RoleApplicator-0.005.tar.gz";
3008       hash = "sha256-4o5HZ3aJva31VE4cQaKsV1WZNm+EDXO70LA8ZPtVim8=";
3009     };
3010     propagatedBuildInputs = [ CatalystRuntime MooseXRelatedClassRoles ];
3011     meta = {
3012       description = "Apply roles to your Catalyst application-related classes";
3013       license = with lib.licenses; [ artistic1 gpl1Plus ];
3014     };
3015   };
3017   CatalystTraitForRequestProxyBase = buildPerlPackage {
3018     pname = "Catalyst-TraitFor-Request-ProxyBase";
3019     version = "0.000005";
3020     src = fetchurl {
3021       url = "mirror://cpan/authors/id/B/BO/BOBTFISH/Catalyst-TraitFor-Request-ProxyBase-0.000005.tar.gz";
3022       hash = "sha256-p78Pqn4Syl32Jdn1/HEPEb/Ra6U4WDfkjUKz0obJcQo=";
3023     };
3024     buildInputs = [ CatalystRuntime CatalystXRoleApplicator HTTPMessage ];
3025     propagatedBuildInputs = [ Moose URI namespaceautoclean ];
3026     meta = {
3027       description = "Replace request base with value passed by HTTP proxy";
3028       license = with lib.licenses; [ artistic1 gpl1Plus ];
3029     };
3030   };
3032   CatalystXScriptServerStarman = buildPerlPackage {
3033     pname = "CatalystX-Script-Server-Starman";
3034     version = "0.03";
3035     src = fetchurl {
3036       url = "mirror://cpan/authors/id/A/AB/ABRAXXA/CatalystX-Script-Server-Starman-0.03.tar.gz";
3037       hash = "sha256-5jpH80y0P3+87GdYyaVCiAGOOIAjZTYYkLKjTfCKWyI=";
3038     };
3039     patches = [
3040       # See Nixpkgs issues #16074 and #17624
3041       ../development/perl-modules/CatalystXScriptServerStarman-fork-arg.patch
3042     ];
3043     buildInputs = [ TestWWWMechanizeCatalyst ];
3044     propagatedBuildInputs = [ CatalystRuntime MooseXTypes PodParser Starman ];
3045     meta = {
3046       description = "Replace the development server with Starman";
3047       license = with lib.licenses; [ artistic1 gpl1Plus ];
3048     };
3049   };
3051   CDB_File = buildPerlPackage {
3052     pname = "CDB_File";
3053     version = "1.05";
3054     src = fetchurl {
3055       url = "mirror://cpan/authors/id/T/TO/TODDR/CDB_File-1.05.tar.gz";
3056       hash = "sha256-hWSEnVY5AV3iNiTlc8riU265CUMrZNkAmKHgtFKp60s=";
3057     };
3058     buildInputs = [ TestFatal TestWarnings ];
3059     propagatedBuildInputs = [ BCOW ];
3060     meta = {
3061       description = "Perl extension for access to cdb databases";
3062       homepage = "https://github.com/toddr/CDB_File";
3063       license = with lib.licenses; [ artistic1 gpl1Plus ];
3064     };
3065   };
3067   Catmandu = buildPerlModule {
3068     pname = "Catmandu";
3069     version = "1.2020";
3070     src = fetchurl {
3071       url = "mirror://cpan/authors/id/H/HO/HOCHSTEN/Catmandu-1.2020.tar.gz";
3072       hash = "sha256-1jIbR+NkGvkb7vZjNhWZVk88wzwAc5isa7opuO5A4cU=";
3073     };
3074     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 ];
3075     buildInputs = [ LogAnyAdapterLog4perl LogLog4perl TestDeep TestException TestLWPUserAgent TestPod ];
3076     meta = {
3077       description = "Data toolkit";
3078       homepage = "https://github.com/LibreCat/Catmandu";
3079       license = with lib.licenses; [ artistic1 gpl1Plus ];
3080       mainProgram = "catmandu";
3081     };
3082   };
3084   CDDB_get = buildPerlPackage {
3085     pname = "CDDB_get";
3086     version = "2.28";
3087     src = fetchurl {
3088       url = "mirror://cpan/authors/id/F/FO/FONKIE/CDDB_get-2.28.tar.gz";
3089       hash = "sha256-vcy6H6jkwc8xicXlo1KaZpOmSKpSgrWXU4x6rdzm2ck=";
3090     };
3091     meta = {
3092       description = "Get the CDDB info for an audio cd";
3093       license = with lib.licenses; [ artistic1 ];
3094       maintainers = [ maintainers.endgame ];
3095       mainProgram = "cddb.pl";
3096     };
3097   };
3099   CDDBFile = buildPerlPackage {
3100     pname = "CDDB-File";
3101     version = "1.05";
3102     src = fetchurl {
3103       url = "mirror://cpan/authors/id/T/TM/TMTM/CDDB-File-1.05.tar.gz";
3104       hash = "sha256-6+ZCnEFcFOc8bK/g1OLc3o4WnYFScfHhUjwmThrsx8k=";
3105     };
3106     meta = {
3107       description = "Parse a CDDB/freedb data file";
3108       license = with lib.licenses; [ artistic1 ];
3109     };
3110   };
3113   CGI = buildPerlPackage {
3114     pname = "CGI";
3115     version = "4.59";
3116     src = fetchurl {
3117       url = "mirror://cpan/authors/id/L/LE/LEEJO/CGI-4.59.tar.gz";
3118       hash = "sha256-be5LibiLEOd8lvPAjRm1hq74M7F6Ql1hiq19KMJi+Rw=";
3119     };
3120     buildInputs = [ TestDeep TestNoWarnings TestWarn ];
3121     propagatedBuildInputs = [ HTMLParser ];
3122     meta = {
3123       description = "Handle Common Gateway Interface requests and responses";
3124       homepage = "https://metacpan.org/module/CGI";
3125       license = with lib.licenses; [ artistic2 ];
3126     };
3127   };
3129   CGICompile = buildPerlModule {
3130     pname = "CGI-Compile";
3131     version = "0.26";
3132     src = fetchurl {
3133       url = "mirror://cpan/authors/id/R/RK/RKITOVER/CGI-Compile-0.26.tar.gz";
3134       hash = "sha256-TzhcEMLJd+tgPzjNFT4OA2jfA3H9vSP1qm7nL0/GXcg=";
3135     };
3136     propagatedBuildInputs = [ Filepushd SubName ];
3137     buildInputs = [ CGI CaptureTiny ModuleBuildTiny SubIdentify Switch TestNoWarnings TestRequires TryTiny ];
3138     preCheck = "rm t/race-conditions.t"; # this test is unstable
3139     meta = {
3140       description = "Compile .cgi scripts to a code reference like ModPerl::Registry";
3141       homepage = "https://github.com/miyagawa/CGI-Compile";
3142       license = with lib.licenses; [ artistic1 gpl1Plus ];
3143     };
3144   };
3146   CGICookieXS = buildPerlPackage {
3147     pname = "CGI-Cookie-XS";
3148     version = "0.18";
3149     src = fetchurl {
3150       url = "mirror://cpan/authors/id/A/AG/AGENT/CGI-Cookie-XS-0.18.tar.gz";
3151       hash = "sha256-RpnLSr2XIBSvO+ubCmlbQluH2ibLK0vbJgIHCqrdPcY=";
3152     };
3153     meta = {
3154       description = "HTTP Cookie parser in pure C";
3155       license = with lib.licenses; [ artistic1 gpl1Plus ];
3156     };
3157   };
3159   CGIEmulatePSGI = buildPerlPackage {
3160     pname = "CGI-Emulate-PSGI";
3161     version = "0.23";
3162     src = fetchurl {
3163       url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/CGI-Emulate-PSGI-0.23.tar.gz";
3164       hash = "sha256-3VtsNT8I+6EA2uCZBChPf3P4Mo0x9qZ7LBNvrXKNFYs=";
3165     };
3166     buildInputs = [ TestRequires ];
3167     propagatedBuildInputs = [ CGI ];
3168     meta = {
3169       description = "PSGI adapter for CGI";
3170       homepage = "https://github.com/tokuhirom/p5-cgi-emulate-psgi";
3171       license = with lib.licenses; [ artistic1 gpl1Plus ];
3172     };
3173   };
3175   CGIExpand = buildPerlPackage {
3176     pname = "CGI-Expand";
3177     version = "2.05";
3178     src = fetchurl {
3179       url = "mirror://cpan/authors/id/B/BO/BOWMANBS/CGI-Expand-2.05.tar.gz";
3180       hash = "sha256-boLRGOPEwMLa/NpYde3l6N2//+C336pkjkUeA5pFpKk=";
3181     };
3182     buildInputs = [ TestException ];
3183     meta = {
3184       description = "Convert flat hash to nested data using TT2's dot convention";
3185       license = with lib.licenses; [ artistic1 gpl1Plus ];
3186     };
3187   };
3189   CGIFast = buildPerlPackage {
3190     pname = "CGI-Fast";
3191     version = "2.16";
3192     src = fetchurl {
3193       url = "mirror://cpan/authors/id/L/LE/LEEJO/CGI-Fast-2.16.tar.gz";
3194       hash = "sha256-AiPX+RuAA3ud/183NgZAtx9dyNvZiaBZPV0i8/c8s9Q=";
3195     };
3196     propagatedBuildInputs = [ CGI FCGI ];
3197     doCheck = false;
3198     meta = {
3199       description = "CGI Interface for Fast CGI";
3200       homepage = "https://metacpan.org/module/CGI::Fast";
3201       license = with lib.licenses; [ artistic1 gpl1Plus ];
3202     };
3203   };
3205   CGIFormBuilder = buildPerlPackage {
3206     pname = "CGI-FormBuilder";
3207     version = "3.10";
3208     src = fetchurl {
3209       url = "mirror://cpan/authors/id/B/BI/BIGPRESH/CGI-FormBuilder-3.10.tar.gz";
3210       hash = "sha256-rsmb4MDwZ6fnJpxTeOWubI1905s2i08SwNhGOxPucZg=";
3211     };
3213     propagatedBuildInputs = [ CGI ];
3214     meta = {
3215       description = "Easily generate and process stateful forms";
3216       license = with lib.licenses; [ artistic1 gpl1Plus ];
3217     };
3218   };
3220   CGIMinimal = buildPerlModule {
3221     pname = "CGI-Minimal";
3222     version = "1.30";
3223     src = fetchurl {
3224       url = "mirror://cpan/authors/id/S/SN/SNOWHARE/CGI-Minimal-1.30.tar.gz";
3225       hash = "sha256-uU1QghsCYR2m7lQjGTFFB4xNuygvKxYqSw1YCUmXvEc=";
3226     };
3227     meta = {
3228       description = "Lightweight CGI form processing package";
3229       homepage = "https://github.com/JerilynFranz/perl-CGI-Minimal";
3230       license = with lib.licenses; [ mit ];
3231     };
3232   };
3234   CGIPSGI = buildPerlPackage {
3235     pname = "CGI-PSGI";
3236     version = "0.15";
3237     src = fetchurl {
3238       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/CGI-PSGI-0.15.tar.gz";
3239       hash = "sha256-xQ3LEL+EhqmEO67QMq2J2Hn/L0HJkzQt6tYvlHpZjZE=";
3240     };
3241     propagatedBuildInputs = [ CGI ];
3242     meta = {
3243       description = "Adapt CGI.pm to the PSGI protocol";
3244       license = with lib.licenses; [ artistic1 gpl1Plus ];
3245     };
3246   };
3248   CGISession = buildPerlModule {
3249     pname = "CGI-Session";
3250     version = "4.48";
3251     src = fetchurl {
3252       url = "mirror://cpan/authors/id/M/MA/MARKSTOS/CGI-Session-4.48.tar.gz";
3253       hash = "sha256-RnVkYcJM52ZrgQjduW26thJpnfMBLIDvEQFmGf4VVPc=";
3254     };
3255     propagatedBuildInputs = [ CGI ];
3256     meta = {
3257       description = "Persistent session data in CGI applications";
3258       license = with lib.licenses; [ artistic1 ];
3259     };
3260   };
3262   CGISimple = buildPerlPackage {
3263     pname = "CGI-Simple";
3264     version = "1.280";
3265     src = fetchurl {
3266       url = "mirror://cpan/authors/id/M/MA/MANWAR/CGI-Simple-1.280.tar.gz";
3267       hash = "sha256-GOAen/uBTl5O6neshImyBp/oNlGFUPN/bCIT61Wcar8=";
3268     };
3269     buildInputs = [ TestException TestNoWarnings ];
3270     meta = {
3271       description = "Simple totally OO CGI interface that is CGI.pm compliant";
3272       license = with lib.licenses; [ artistic1 gpl1Plus ];
3273     };
3274   };
3276   CGIStruct = buildPerlPackage {
3277     pname = "CGI-Struct";
3278     version = "1.21";
3279     src = fetchurl {
3280       url = "mirror://cpan/authors/id/F/FU/FULLERMD/CGI-Struct-1.21.tar.gz";
3281       hash = "sha256-0T2Np/3NbZBgVOR2D8KKcYrskb088GeliSf7fLHAnWw=";
3282     };
3283     buildInputs = [ TestDeep ];
3284     meta = {
3285       description = "Build structures from CGI data";
3286       license = with lib.licenses; [ bsd2 ];
3287     };
3288   };
3290   CHI = buildPerlPackage {
3291     pname = "CHI";
3292     version = "0.61";
3293     src = fetchurl {
3294       url = "mirror://cpan/authors/id/A/AS/ASB/CHI-0.61.tar.gz";
3295       hash = "sha256-WDVFyeUxK7QZOrFt6fVf+PS0p97RKM7o3SywIdRni1s=";
3296     };
3297     preConfigure = ''
3298       # fix error 'Unescaped left brace in regex is illegal here in regex'
3299       substituteInPlace lib/CHI/t/Driver/Subcache/l1_cache.pm --replace 'qr/CHI stats: {' 'qr/CHI stats: \{'
3300     '';
3301     buildInputs = [ TestClass TestDeep TestException TestWarn TimeDate ];
3302     propagatedBuildInputs = [ CarpAssert ClassLoad DataUUID DigestJHash HashMoreUtils JSONMaybeXS ListMoreUtils LogAny Moo MooXTypesMooseLikeNumeric StringRewritePrefix TaskWeaken TimeDuration TimeDurationParse ];
3303     meta = {
3304       description = "Unified cache handling interface";
3305       license = with lib.licenses; [ artistic1 gpl1Plus ];
3306     };
3307   };
3309   Chart = buildPerlPackage {
3310     pname = "Chart";
3311     version = "2.403.9";
3312     src = fetchurl {
3313       url = "mirror://cpan/authors/id/L/LI/LICHTKIND/Chart-v2.403.9.tar.gz";
3314       hash = "sha256-V8aCi7TIpyFw/rZ9wfFIq/Gcqzgnd54wh3tGEe1n86s=";
3315     };
3316     buildInputs = [ TestWarn ];
3317     propagatedBuildInputs = [ GD GraphicsToolkitColor ];
3318     meta = {
3319       description = "Series of charting modules";
3320       license = with lib.licenses; [ artistic1 gpl1Plus ];
3321     };
3322   };
3324   ChipcardPCSC = buildPerlPackage {
3325     pname = "Chipcard-PCSC";
3326     version = "1.4.16";
3327     src = fetchurl {
3328       url = "mirror://cpan/authors/id/W/WH/WHOM/Chipcard-PCSC-v1.4.16.tar.gz";
3329       hash = "sha256-O14p1jRDXxQm7Nzfebo1G04mWPNsPCK+N7HTHjbKj6k=";
3330     };
3331     buildInputs = [ pkgs.pcsclite ];
3332     nativeBuildInputs = [ pkgs.pkg-config ];
3333     env.NIX_CFLAGS_COMPILE = toString ([
3334       "-I${pkgs.pcsclite.dev}/include/PCSC"
3335     ] ++ lib.optionals stdenv.cc.isClang [
3336       "-Wno-error=implicit-int"
3337       "-Wno-error=int-conversion"
3338     ]);
3339     postPatch = ''
3340       substituteInPlace Makefile.PL --replace pkg-config $PKG_CONFIG
3341     '';
3342     NIX_CFLAGS_LINK = "-L${lib.getLib pkgs.pcsclite}/lib -lpcsclite";
3343     # tests fail; look unfinished
3344     doCheck = false;
3345     meta = {
3346       description = "Communicate with a smart card using PC/SC";
3347       homepage = "https://pcsc-perl.apdu.fr/";
3348       license = with lib.licenses; [ gpl2Plus ];
3349       maintainers = with maintainers; [ abbradar anthonyroussel ];
3350     };
3351   };
3353   CiscoIPPhone = buildPerlPackage {
3354     pname = "Cisco-IPPhone";
3355     version = "0.05";
3356     src = fetchurl {
3357       url = "mirror://cpan/authors/id/M/MR/MRPALMER/Cisco-IPPhone-0.05.tar.gz";
3358       hash = "sha256-sDyiY/j0Gm7FRcU5MhOjFG02vUUzWt6Zr1HdQqtu4W0=";
3359     };
3360     meta = {
3361       description = "Package for creating Cisco IPPhone XML objects";
3362       license = with lib.licenses; [ artistic1 ];
3363     };
3364   };
3366   CLASS = buildPerlPackage {
3367     pname = "CLASS";
3368     version = "1.1.8";
3369     src = fetchurl {
3370       url = "mirror://cpan/authors/id/J/JD/JDEGUEST/CLASS-v1.1.8.tar.gz";
3371       hash = "sha256-IZAaUmXL29iRJ36X/Gs0X3nby/B3RFePX/iGaltddgM=";
3372     };
3373     meta = {
3374       description = "Alias for __PACKAGE__";
3375       homepage = "https://metacpan.org/pod/CLASS";
3376       license = with lib.licenses; [ artistic1 gpl1Plus ];
3377       maintainers = [ maintainers.sgo ];
3378     };
3379   };
3381   ClassAccessor = buildPerlPackage {
3382     pname = "Class-Accessor";
3383     version = "0.51";
3384     src = fetchurl {
3385       url = "mirror://cpan/authors/id/K/KA/KASEI/Class-Accessor-0.51.tar.gz";
3386       hash = "sha256-vxKj5d5aLG6KRHs2T09aBQv3RiTFbjFQIq55kv8vQRw=";
3387     };
3388     meta = {
3389       description = "Automated accessor generation";
3390       license = with lib.licenses; [ artistic1 gpl1Plus ];
3391     };
3392   };
3394   ClassAccessorChained = buildPerlModule {
3395     pname = "Class-Accessor-Chained";
3396     version = "0.01";
3397     src = fetchurl {
3398       url = "mirror://cpan/authors/id/R/RC/RCLAMP/Class-Accessor-Chained-0.01.tar.gz";
3399       hash = "sha256-pb9J04BPg60lobFvMn0U1MvuInATIQSyhwUDHbzMNNI=";
3400     };
3401     propagatedBuildInputs = [ ClassAccessor ];
3402     meta = {
3403       description = "Make chained accessors";
3404       license = with lib.licenses; [ artistic1 gpl1Plus ];
3405     };
3406   };
3408   ClassAccessorGrouped = buildPerlPackage {
3409     pname = "Class-Accessor-Grouped";
3410     version = "0.10014";
3411     src = fetchurl {
3412       url = "mirror://cpan/authors/id/H/HA/HAARG/Class-Accessor-Grouped-0.10014.tar.gz";
3413       hash = "sha256-NdWwPvwJ9n86MVXJYkEmw+FiyOPKmP+CbbNYUzpExLs=";
3414     };
3415     buildInputs = [ TestException ];
3416     propagatedBuildInputs = [ ModuleRuntime ];
3417     meta = {
3418       description = "Lets you build groups of accessors";
3419       homepage = "https://metacpan.org/release/Class-Accessor-Grouped";
3420       license = with lib.licenses; [ artistic1 gpl1Plus ];
3421     };
3422   };
3424   ClassAccessorLite = buildPerlPackage {
3425     pname = "Class-Accessor-Lite";
3426     version = "0.08";
3427     src = fetchurl {
3428       url = "mirror://cpan/authors/id/K/KA/KAZUHO/Class-Accessor-Lite-0.08.tar.gz";
3429       hash = "sha256-dbO47I7+aHZ3tj8KEO75ZuAfYHNcVmVs51y7RMq6M1o=";
3430     };
3431     meta = {
3432       description = "Minimalistic variant of Class::Accessor";
3433       license = with lib.licenses; [ artistic1 gpl1Plus ];
3434     };
3435   };
3437   ClassAutouse = buildPerlPackage {
3438     pname = "Class-Autouse";
3439     version = "2.01";
3440     src = fetchurl {
3441       url = "mirror://cpan/authors/id/A/AD/ADAMK/Class-Autouse-2.01.tar.gz";
3442       hash = "sha256-wFsyNsBXGdgZwg2w/ettCVR0fkPXpzgpTu1/vPNuzxs=";
3443     };
3444     meta = {
3445       description = "Run-time load a class the first time you call a method in it";
3446       license = with lib.licenses; [ artistic1 gpl1Plus ];
3447     };
3448   };
3450   ClassBase = buildPerlPackage {
3451     pname = "Class-Base";
3452     version = "0.09";
3453     src = fetchurl {
3454       url = "mirror://cpan/authors/id/Y/YA/YANICK/Class-Base-0.09.tar.gz";
3455       hash = "sha256-4aW93lJQWAJmSpEIpRXJ6OUCy3IppJ3pT0CBsbKu7YQ=";
3456     };
3457     propagatedBuildInputs = [ Clone ];
3458     meta = {
3459       description = "Useful base class for deriving other modules";
3460       license = with lib.licenses; [ artistic1 gpl1Plus ];
3461     };
3462   };
3464   ClassC3 = buildPerlPackage {
3465     pname = "Class-C3";
3466     version = "0.35";
3467     src = fetchurl {
3468       url = "mirror://cpan/authors/id/H/HA/HAARG/Class-C3-0.35.tar.gz";
3469       hash = "sha256-hAU88aaPzIwSBWwvEgrfBPf2jjvjT0QI6V0Cb+5n4z4=";
3470     };
3471     propagatedBuildInputs = [ AlgorithmC3 ];
3472     meta = {
3473       description = "Pragma to use the C3 method resolution order algorithm";
3474       homepage = "https://metacpan.org/release/Class-C3";
3475       license = with lib.licenses; [ artistic1 gpl1Plus ];
3476     };
3477   };
3479   ClassC3AdoptNEXT = buildPerlModule {
3480     pname = "Class-C3-Adopt-NEXT";
3481     version = "0.14";
3482     src = fetchurl {
3483       url = "mirror://cpan/authors/id/E/ET/ETHER/Class-C3-Adopt-NEXT-0.14.tar.gz";
3484       hash = "sha256-hWdiJarbduhmamq+LgZZ1A60WBrWOFsXDupOHWvzS/c=";
3485     };
3486     buildInputs = [ ModuleBuildTiny TestException ];
3487     propagatedBuildInputs = [ MROCompat ];
3488     meta = {
3489       description = "Make NEXT suck less";
3490       homepage = "https://github.com/karenetheridge/Class-C3-Adopt-NEXT";
3491       license = with lib.licenses; [ artistic1 gpl1Plus ];
3492     };
3493   };
3495   ClassC3Componentised = buildPerlPackage {
3496     pname = "Class-C3-Componentised";
3497     version = "1.001002";
3498     src = fetchurl {
3499       url = "mirror://cpan/authors/id/H/HA/HAARG/Class-C3-Componentised-1.001002.tar.gz";
3500       hash = "sha256-MFGxRtwe/q6hqaLp5rF3MICZW4mKtYPxVWWNX8gLlpM=";
3501     };
3502     buildInputs = [ TestException ];
3503     propagatedBuildInputs = [ ClassC3 ClassInspector MROCompat ];
3504     meta = {
3505       description = "Load mix-ins or components to your C3-based class";
3506       license = with lib.licenses; [ artistic1 gpl1Plus ];
3507     };
3508   };
3510   ClassClassgenclassgen = buildPerlPackage {
3511     pname = "Class-Classgen-classgen";
3512     version = "3.03";
3513     src = fetchurl {
3514       url = "mirror://cpan/authors/id/M/MS/MSCHLUE/Class-Classgen-classgen-3.03.tar.gz";
3515       hash = "sha256-m2XUG5kVOJkugWsyzE+ptKSguz6cEOfuvv+CZY27yPY=";
3516     };
3517     meta = {
3518       description = "Simplifies creation, manipulation and usage of complex objects";
3519       license = with lib.licenses; [ artistic1 gpl1Plus ];
3520       mainProgram = "classgen";
3521     };
3522   };
3524   ClassContainer = buildPerlModule {
3525     pname = "Class-Container";
3526     version = "0.13";
3527     src = fetchurl {
3528       url = "mirror://cpan/authors/id/K/KW/KWILLIAMS/Class-Container-0.13.tar.gz";
3529       hash = "sha256-9dSVsd+4JtXAxF0DtNDmtgR8uwbNv2vhX9TckCrutws=";
3530     };
3531     propagatedBuildInputs = [ ParamsValidate ];
3532     meta = {
3533       description = "Glues object frameworks together transparently";
3534       license = with lib.licenses; [ artistic1 gpl1Plus ];
3535     };
3536   };
3538   ClassDataAccessor = buildPerlPackage {
3539     pname = "Class-Data-Accessor";
3540     version = "0.04004";
3541     src = fetchurl {
3542       url = "mirror://cpan/authors/id/C/CL/CLACO/Class-Data-Accessor-0.04004.tar.gz";
3543       hash = "sha256-wSLW4t9hNs6b6h5tK3dsueaeAAhezplTAYFMevOo6BQ=";
3544     };
3545     meta = {
3546       description = "Inheritable, overridable class and instance data accessor creation";
3547       license = with lib.licenses; [ artistic1 gpl1Plus ];
3548     };
3549   };
3551   ClassDataInheritable = buildPerlPackage {
3552     pname = "Class-Data-Inheritable";
3553     version = "0.09";
3554     src = fetchurl {
3555       url = "mirror://cpan/authors/id/R/RS/RSHERER/Class-Data-Inheritable-0.09.tar.gz";
3556       hash = "sha256-RAiNbpBxLhh7ilsFDKWxxw7+K6oyrhI+m9j1nynwbk0=";
3557     };
3558     meta = {
3559       description = "Inheritable, overridable class data";
3560       license = with lib.licenses; [ artistic1 gpl1Plus ];
3561     };
3562   };
3564   ClassEHierarchy = buildPerlPackage {
3565     pname = "Class-EHierarchy";
3566     version = "2.01";
3567     src = fetchurl {
3568       url = "mirror://cpan/authors/id/C/CO/CORLISS/Class-EHierarchy/Class-EHierarchy-2.01.tar.gz";
3569       hash = "sha256-Y3q3a+s4MqmwcbmZobFb8F0pffamYsyxqABPKYcwg4I=";
3570     };
3571     meta = {
3572       description = "Base class for hierarchally ordered objects";
3573       license = with lib.licenses; [ artistic1 gpl1Plus ];
3574       maintainers = teams.deshaw.members;
3575     };
3576   };
3578   ClassFactory = buildPerlPackage {
3579     pname = "Class-Factory";
3580     version = "1.06";
3581     src = fetchurl {
3582       url = "mirror://cpan/authors/id/P/PH/PHRED/Class-Factory-1.06.tar.gz";
3583       hash = "sha256-w3otJp65NfNqI+ETSArglG+nwSoSeBOWoSJsjkNfMPU=";
3584     };
3585     meta = {
3586       description = "Base class for dynamic factory classes";
3587       license = with lib.licenses; [ artistic1 gpl1Plus ];
3588     };
3589   };
3591   ClassFactoryUtil = buildPerlModule {
3592     pname = "Class-Factory-Util";
3593     version = "1.7";
3594     src = fetchurl {
3595       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Class-Factory-Util-1.7.tar.gz";
3596       hash = "sha256-bFFrRFtE+HNj+zoUhDHTHp7LXm8h+2SByJskBrZpLiY=";
3597     };
3598     meta = {
3599       description = "Provide utility methods for factory classes";
3600       license = with lib.licenses; [ artistic1 gpl1Plus ];
3601     };
3602   };
3604   ClassGomor = buildPerlModule {
3605     pname = "Class-Gomor";
3606     version = "1.03";
3607     src = fetchurl {
3608       url = "mirror://cpan/authors/id/G/GO/GOMOR/Class-Gomor-1.03.tar.gz";
3609       hash = "sha256-R9s86pzp/6mL+cdFV/0yz3AHkatTcCDJWKwwtKn/IAs=";
3610     };
3611     meta = {
3612       description = "Another class and object builder";
3613       license = with lib.licenses; [ artistic1 ];
3614     };
3615   };
3617   ClassInspector = buildPerlPackage {
3618     pname = "Class-Inspector";
3619     version = "1.36";
3620     src = fetchurl {
3621       url = "mirror://cpan/authors/id/P/PL/PLICEASE/Class-Inspector-1.36.tar.gz";
3622       hash = "sha256-zCldI6RyaHwkSJ1YIm6tI7n9wliOUi8LXwdHdBcAaU4=";
3623     };
3624     meta = {
3625       description = "Get information about a class and its structure";
3626       homepage = "https://metacpan.org/pod/Class::Inspector";
3627       license = with lib.licenses; [ artistic1 gpl1Plus ];
3628     };
3629   };
3631   ClassISA = buildPerlPackage {
3632     pname = "Class-ISA";
3633     version = "0.36";
3634     src = fetchurl {
3635       url = "mirror://cpan/authors/id/S/SM/SMUELLER/Class-ISA-0.36.tar.gz";
3636       hash = "sha256-iBbzTpo46EmhDfdWAw3M+f4GGhlsEaw/qv1xE8kpuWQ=";
3637     };
3638     meta = {
3639       description = "Report the search path for a class's ISA tree";
3640       license = with lib.licenses; [ artistic1 gpl1Plus ];
3641     };
3642   };
3644   ClassIterator = buildPerlPackage {
3645     pname = "Class-Iterator";
3646     version = "0.3";
3647     src = fetchurl {
3648       url = "mirror://cpan/authors/id/T/TE/TEXMEC/Class-Iterator-0.3.tar.gz";
3649       hash = "sha256-2xuofKkQfxYf6cHp5+JnwAJt78Jv4+c7ytirj/wY750=";
3650     };
3651     meta = {
3652       description = "Iterator class";
3653       license = with lib.licenses; [ artistic1 gpl1Plus ];
3654     };
3655   };
3657   ClassLoader = buildPerlPackage {
3658     pname = "Class-Loader";
3659     version = "2.03";
3660     src = fetchurl {
3661       url = "mirror://cpan/authors/id/V/VI/VIPUL/Class-Loader-2.03.tar.gz";
3662       hash = "sha256-T+8gdurWBCNFT/H06ChZqam5lCtfuO7gyYucY8nyuOc=";
3663     };
3664     meta = {
3665       description = "Load modules and create objects on demand";
3666       license = with lib.licenses; [ artistic1 gpl1Plus ];
3667     };
3668   };
3670   ClassMakeMethods = buildPerlPackage {
3671     pname = "Class-MakeMethods";
3672     version = "1.01";
3673     src = fetchurl {
3674       url = "mirror://cpan/authors/id/E/EV/EVO/Class-MakeMethods-1.01.tar.gz";
3675       hash = "sha256-rKx0LnnQ7Ip75Nj7gTqF6kTUfRnAFwzdswZEYCtYLGY=";
3676     };
3677     preConfigure = ''
3678       # fix error 'Unescaped left brace in regex is illegal here in regex'
3679       substituteInPlace tests/xemulator/class_methodmaker/Test.pm --replace 's/(TEST\s{)/$1/g' 's/(TEST\s\{)/$1/g'
3680     '';
3681     meta = {
3682       description = "Generate common types of methods";
3683       license = with lib.licenses; [ artistic1 gpl1Plus ];
3684     };
3685   };
3687   ClassMember = buildPerlPackage {
3688     pname = "Class-Member";
3689     version = "1.6";
3690     src = fetchurl {
3691       url = "mirror://cpan/authors/id/O/OP/OPI/Class-Member-1.6.tar.gz";
3692       hash = "sha256-p1KK8in6OhIF3NJakd59dKxvp9lSgbmTtV6Lb0+HuZE=";
3693     };
3694     meta = {
3695       description = "Set of modules to make the module developement easier";
3696       license = with lib.licenses; [ artistic1 gpl1Plus ];
3697     };
3698   };
3700   ClassMethodMaker = buildPerlPackage {
3701     pname = "Class-MethodMaker";
3702     version = "2.24";
3703     src = fetchurl {
3704       url = "mirror://cpan/authors/id/S/SC/SCHWIGON/class-methodmaker/Class-MethodMaker-2.24.tar.gz";
3705       hash = "sha256-Xu9YzLJ+vQG83lsUvMVTtTR6Bpnlw+khx3gMNSaJAyg=";
3706     };
3707     # Remove unnecessary, non-autoconf, configure script.
3708     prePatch = "rm configure";
3709     meta = {
3710       description = "Module for creating generic methods";
3711       license = with lib.licenses; [ artistic1 gpl1Plus ];
3712     };
3713   };
3715   ClassMethodModifiers = buildPerlPackage {
3716     pname = "Class-Method-Modifiers";
3717     version = "2.15";
3718     src = fetchurl {
3719       url = "mirror://cpan/authors/id/E/ET/ETHER/Class-Method-Modifiers-2.15.tar.gz";
3720       hash = "sha256-Zc2Fv+R10GbpGG96jMY2BwmFswsOuxzehoHPBiwuFfw=";
3721     };
3722     buildInputs = [ TestFatal TestNeeds ];
3723     meta = {
3724       description = "Provides Moose-like method modifiers";
3725       homepage = "https://github.com/moose/Class-Method-Modifiers";
3726       license = with lib.licenses; [ artistic1 gpl1Plus ];
3727     };
3728   };
3730   ClassMix = buildPerlModule {
3731     pname = "Class-Mix";
3732     version = "0.006";
3733     src = fetchurl {
3734       url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Class-Mix-0.006.tar.gz";
3735       hash = "sha256-h0f2Q4k5FPjESXnxcW0MHsikE5R5ZVVEeUToYPH/fAs=";
3736     };
3737     propagatedBuildInputs = [ ParamsClassify ];
3738     meta = {
3739       description = "Dynamic class mixing";
3740       license = with lib.licenses; [ artistic1 gpl1Plus ];
3741     };
3742   };
3744   ClassRefresh = buildPerlPackage {
3745     pname = "Class-Refresh";
3746     version = "0.07";
3747     src = fetchurl {
3748       url = "mirror://cpan/authors/id/D/DO/DOY/Class-Refresh-0.07.tar.gz";
3749       hash = "sha256-47ADU1XLs1oq7j8iNojVeJRqenxXCs05iyjN2x/UvrM=";
3750     };
3751     buildInputs = [ TestFatal TestRequires ];
3752     propagatedBuildInputs = [ ClassLoad ClassUnload DevelOverrideGlobalRequire TryTiny ];
3753     meta = {
3754       homepage = "http://metacpan.org/release/Class-Refresh";
3755       description = "Refresh your classes during runtime";
3756       license = with lib.licenses; [ artistic1 gpl1Plus ];
3757     };
3758   };
3760   ClassReturnValue = buildPerlPackage {
3761     pname = "Class-ReturnValue";
3762     version = "0.55";
3763     src = fetchurl {
3764       url = "mirror://cpan/authors/id/J/JE/JESSE/Class-ReturnValue-0.55.tar.gz";
3765       hash = "sha256-7Tg2iF149zTM16mFUOxCKmFt98MTEMG3sfZFn1+w5L0=";
3766     };
3767     propagatedBuildInputs = [ DevelStackTrace ];
3768     meta = {
3769       description = "(deprecated) polymorphic return values";
3770       homepage = "https://github.com/rjbs/Return-Value";
3771       license = with lib.licenses; [ artistic1 gpl1Plus ];
3772     };
3773   };
3775   ClassSingleton = buildPerlPackage {
3776     pname = "Class-Singleton";
3777     version = "1.6";
3778     src = fetchurl {
3779       url = "mirror://cpan/authors/id/S/SH/SHAY/Class-Singleton-1.6.tar.gz";
3780       hash = "sha256-J7oT8NlRKSkWa72MnvldkNYw/IDwyaG3RYiRBV6SgqQ=";
3781     };
3782     meta = {
3783       description = "Implementation of a 'Singleton' class";
3784       license = with lib.licenses; [ artistic1 gpl1Plus ];
3785     };
3786   };
3788   ClassThrowable = buildPerlPackage {
3789     pname = "Class-Throwable";
3790     version = "0.13";
3791     src = fetchurl {
3792       url = "mirror://cpan/authors/id/K/KM/KMX/Class-Throwable-0.13.tar.gz";
3793       hash = "sha256-3JoR4Nq1bcIg3qjJT+PEfbXn3Xwe0E3IF4qlu3v7vM4=";
3794     };
3795     meta = {
3796       description = "Minimal lightweight exception class";
3797       license = with lib.licenses; [ artistic1 gpl1Plus ];
3798     };
3799   };
3801   ClassTiny = buildPerlPackage {
3802     pname = "Class-Tiny";
3803     version = "1.008";
3804     src = fetchurl {
3805       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Class-Tiny-1.008.tar.gz";
3806       hash = "sha256-7gWKY5Evofy5pySY9WykIaIFbcf59LZ4N0RtZCGBVhU=";
3807     };
3808     meta = {
3809       description = "Minimalist class construction";
3810       homepage = "https://github.com/dagolden/Class-Tiny";
3811       license = with lib.licenses; [ asl20 ];
3812     };
3813   };
3815   ClassLoad = buildPerlPackage {
3816     pname = "Class-Load";
3817     version = "0.25";
3818     src = fetchurl {
3819       url = "mirror://cpan/authors/id/E/ET/ETHER/Class-Load-0.25.tar.gz";
3820       hash = "sha256-Kkj6d5tSl+VhVjgOizJjfGxY3stPSn88c1BSPhEnX48=";
3821     };
3822     buildInputs = [ TestFatal TestNeeds ];
3823     propagatedBuildInputs = [ DataOptList PackageStash ];
3824     meta = {
3825       description = "Working (require \"Class::Name\") and more";
3826       homepage = "https://github.com/moose/Class-Load";
3827       license = with lib.licenses; [ artistic1 gpl1Plus ];
3828     };
3829   };
3831   ClassLoadXS = buildPerlPackage {
3832     pname = "Class-Load-XS";
3833     version = "0.10";
3834     src = fetchurl {
3835       url = "mirror://cpan/authors/id/E/ET/ETHER/Class-Load-XS-0.10.tar.gz";
3836       hash = "sha256-W8Is9Tbr/SVkxb2vQvDYpM7j0ZMPyLRLfUpCA4YirdE=";
3837     };
3838     buildInputs = [ TestFatal TestNeeds ];
3839     propagatedBuildInputs = [ ClassLoad ];
3840     meta = {
3841       description = "XS implementation of parts of Class::Load";
3842       homepage = "https://github.com/moose/Class-Load-XS";
3843       license = with lib.licenses; [ artistic2 ];
3844     };
3845   };
3847   ClassObservable = buildPerlPackage {
3848     pname = "Class-Observable";
3849     version = "2.004";
3850     src = fetchurl {
3851       url = "mirror://cpan/authors/id/A/AR/ARISTOTLE/Class-Observable-2.004.tar.gz";
3852       hash = "sha256-bfMun+XwCIkfxO+k5PReqhQE0wIgRZyPyKUB8KfPLmk=";
3853     };
3854     propagatedBuildInputs = [ ClassISA ];
3855     meta = {
3856       description = "Allow other classes and objects to respond to events in yours";
3857       license = with lib.licenses; [ artistic1 gpl1Plus ];
3858     };
3859   };
3861   ClassStd = buildPerlModule {
3862     pname = "Class-Std";
3863     version = "0.013";
3864     src = fetchurl {
3865       url = "mirror://cpan/authors/id/C/CH/CHORNY/Class-Std-0.013.tar.gz";
3866       hash = "sha256-vNbYL2yK8P4Gn87X3RZaR5WwtukjUcfU5aGrmhT8NcY=";
3867     };
3868     meta = {
3869       description = "Support for creating standard 'inside-out' classes";
3870       license = with lib.licenses; [ artistic1 gpl1Plus ];
3871     };
3872   };
3874   ClassStdFast = buildPerlModule {
3875     pname = "Class-Std-Fast";
3876     version = "0.0.8";
3877     src = fetchurl {
3878       url = "mirror://cpan/authors/id/A/AC/ACID/Class-Std-Fast-v0.0.8.tar.gz";
3879       hash = "sha256-G9Q3Y8ajcxgwl6MOeH9dZxOw2ydRHFLVMyZrWdLPp4A=";
3880     };
3881     propagatedBuildInputs = [ ClassStd ];
3882     nativeCheckInputs = [ TestPod TestPodCoverage ];
3883     meta = {
3884       description = "Faster but less secure than Class::Std";
3885       license = with lib.licenses; [ artistic1 gpl1Plus ];
3886     };
3887   };
3889   ClassUnload = buildPerlPackage {
3890     pname = "Class-Unload";
3891     version = "0.11";
3892     src = fetchurl {
3893       url = "mirror://cpan/authors/id/I/IL/ILMARI/Class-Unload-0.11.tar.gz";
3894       hash = "sha256-UuKXR6fk0uGiicDh3oEHY08QyEJs18nTHsrIOD5KCl8=";
3895     };
3896     propagatedBuildInputs = [ ClassInspector ];
3897     buildInputs = [ TestRequires ];
3898     meta = {
3899       description = "Unload a class";
3900       license = with lib.licenses; [ artistic1 gpl1Plus ];
3901     };
3902   };
3904   ClassVirtual = buildPerlPackage {
3905     pname = "Class-Virtual";
3906     version = "0.08";
3907     src = fetchurl {
3908       url = "mirror://cpan/authors/id/M/MS/MSCHWERN/Class-Virtual-0.08.tar.gz";
3909       hash = "sha256-xkmbQtO05cZIil6C+8KGmObJhgFlBy3d+mdJNVqc+7I=";
3910     };
3911     propagatedBuildInputs = [ CarpAssert ClassDataInheritable ClassISA ];
3912     meta = {
3913       description = "Base class for virtual base classes";
3914       homepage = "https://metacpan.org/release/Class-Virtual";
3915       license = with lib.licenses; [ artistic1 gpl1Plus ];
3916     };
3917   };
3919   ClassXSAccessor = buildPerlPackage {
3920     pname = "Class-XSAccessor";
3921     version = "1.19";
3922     src = fetchurl {
3923       url = "mirror://cpan/authors/id/S/SM/SMUELLER/Class-XSAccessor-1.19.tar.gz";
3924       hash = "sha256-mcVrOV8SOa8ZkB8v7rEl2ey041Gg2A2qlSkhGkcApvI=";
3925     };
3926     meta = {
3927       description = "Generate fast XS accessors without runtime compilation";
3928       license = with lib.licenses; [ artistic1 gpl1Plus ];
3929     };
3930   };
3932   CLDRNumber = buildPerlModule {
3933     pname = "CLDR-Number";
3934     version = "0.19";
3935     src = fetchurl {
3936       url = "mirror://cpan/authors/id/P/PA/PATCH/CLDR-Number-0.19.tar.gz";
3937       hash = "sha256-xnFkiOZf53n/eag/DyA2rZRGPv49DzSca5kRKXW9hfw=";
3938     };
3939     buildInputs = [ SoftwareLicense TestDifferences TestException TestWarn ];
3940     propagatedBuildInputs =
3941       [ ClassMethodModifiers MathRound Moo namespaceclean ];
3942     meta = {
3943       description = "Localized number formatters using the Unicode CLDR";
3944       homepage = "https://github.com/patch/cldr-number-pm5";
3945       license = with lib.licenses; [ artistic1 gpl1Plus ];
3946     };
3947   };
3949   CLIHelpers = buildPerlPackage {
3950     pname = "CLI-Helpers";
3951     version = "2.0";
3952     src = fetchurl {
3953       url = "mirror://cpan/authors/id/B/BL/BLHOTSKY/CLI-Helpers-2.0.tar.gz";
3954       hash = "sha256-yhpPFnTzsfMmjyekfJiAszgmrenxI34sEUXnAqfIePY=";
3955     };
3956     buildInputs = [ PodCoverageTrustPod TestPerlCritic ];
3957     propagatedBuildInputs = [ CaptureTiny IOInteractive RefUtil TermReadKey YAML ];
3958     meta = {
3959       description = "Subroutines for making simple command line scripts";
3960       homepage = "https://github.com/reyjrar/CLI-Helpers";
3961       license = with lib.licenses; [ bsd3 ];
3962     };
3963   };
3965   Clipboard = buildPerlModule {
3966     pname = "Clipboard";
3967     version = "0.28";
3968     src = fetchurl {
3969       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Clipboard-0.28.tar.gz";
3970       hash = "sha256-no15AVGUJjNXwloPXQlIAP/0O9v5+GAew7DtXrCWbSY=";
3971     };
3972     propagatedBuildInputs = [ CGI ];
3973     # Disable test on darwin because MacPasteboard fails when not logged in interactively.
3974     # Mac OS error -4960 (coreFoundationUnknownErr): The unknown error at lib/Clipboard/MacPasteboard.pm line 3.
3975     # Mac-Pasteboard-0.009.readme: 'NOTE that Mac OS X appears to restrict pasteboard access to processes that are logged in interactively.
3976     #     Ssh sessions and cron jobs can not create the requisite pasteboard handles, giving coreFoundationUnknownErr (-4960)'
3977     doCheck = !stdenv.hostPlatform.isDarwin;
3978     meta = {
3979       description = "Copy and paste with any OS";
3980       homepage = "https://metacpan.org/release/Clipboard";
3981       license = with lib.licenses; [ artistic1 gpl1Plus ];
3982     };
3983   };
3986   Clone = buildPerlPackage {
3987     pname = "Clone";
3988     version = "0.46";
3989     src = fetchurl {
3990       url = "mirror://cpan/authors/id/G/GA/GARU/Clone-0.46.tar.gz";
3991       hash = "sha256-qt7tXkyL1rvfaMDdAGbLUT4Wq55bQ4LcSgqv1ViQaXs=";
3992     };
3993     buildInputs = [ BCOW ];
3994     meta = {
3995       description = "Recursively copy Perl datatypes";
3996       license = with lib.licenses; [ artistic1 gpl1Plus ];
3997     };
3998   };
4000   CloneChoose = buildPerlPackage {
4001     pname = "Clone-Choose";
4002     version = "0.010";
4003     src = fetchurl {
4004       url = "mirror://cpan/authors/id/H/HE/HERMES/Clone-Choose-0.010.tar.gz";
4005       hash = "sha256-ViNIH1jO6O25bNICqtDfViLUJ+X3SLJThR39YuUSNjI=";
4006     };
4007     buildInputs = [ Clone ClonePP TestWithoutModule ];
4008     meta = {
4009       description = "Choose appropriate clone utility";
4010       homepage = "https://metacpan.org/release/Clone-Choose";
4011       license = with lib.licenses; [ artistic1 gpl1Plus ];
4012     };
4013   };
4015   ClonePP = buildPerlPackage {
4016     pname = "Clone-PP";
4017     version = "1.08";
4018     src = fetchurl {
4019       url = "mirror://cpan/authors/id/N/NE/NEILB/Clone-PP-1.08.tar.gz";
4020       hash = "sha256-VyAwlKXYV0tqAJUejyOZtmb050+VEdnJ+1tFPV0R9Xg=";
4021     };
4022     meta = {
4023       description = "Recursively copy Perl datatypes";
4024       license = with lib.licenses; [ artistic1 gpl1Plus ];
4025     };
4026   };
4028   CodeTidyAll = buildPerlPackage {
4029     pname = "Code-TidyAll";
4030     version = "0.84";
4031     src = fetchurl {
4032       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Code-TidyAll-0.84.tar.gz";
4033       hash = "sha256-s8AU4e3X9EBHkJjkHkeHNhBy9QE6ZqX4j5a05Tyisfc=";
4034     };
4035     propagatedBuildInputs = [ CaptureTiny ConfigINI FileWhich Filepushd IPCRun3 IPCSystemSimple ListCompare ListSomeUtils LogAny Moo ScopeGuard SpecioLibraryPathTiny TextDiff TimeDate TimeDurationParse ];
4036     buildInputs = [ TestClass TestClassMost TestDeep TestDifferences TestException TestFatal TestMost TestWarn TestWarnings librelative ];
4037     meta = {
4038       description = "Engine for tidyall, your all-in-one code tidier and validator";
4039       homepage = "https://metacpan.org/release/Code-TidyAll";
4040       license = with lib.licenses; [ artistic1 gpl1Plus ];
4041       mainProgram = "tidyall";
4042     };
4043   };
4045   CodeTidyAllPluginPerlAlignMooseAttributes = buildPerlPackage {
4046     pname = "Code-TidyAll-Plugin-Perl-AlignMooseAttributes";
4047     version = "0.01";
4048     src = fetchurl {
4049       url = "mirror://cpan/authors/id/J/JS/JSWARTZ/Code-TidyAll-Plugin-Perl-AlignMooseAttributes-0.01.tar.gz";
4050       hash = "sha256-jR3inlbwczFoXqONGDr87f8hCOccSp2zb0GeUN0sHOU=";
4051     };
4052     propagatedBuildInputs = [ CodeTidyAll TextAligner ];
4053     meta = {
4054       description = "TidyAll plugin to sort and align Moose-style attributes";
4055       license = with lib.licenses; [ artistic1 gpl1Plus ];
4056     };
4057   };
4059   ColorLibrary = buildPerlPackage {
4060     pname = "Color-Library";
4061     version = "0.021";
4062     src = fetchurl {
4063       url = "mirror://cpan/authors/id/R/RO/ROKR/Color-Library-0.021.tar.gz";
4064       hash = "sha256-WMv34zPTpKQCl6vENBKzIdpEnGgWAg5PpmJasHn8kKU=";
4065     };
4066     buildInputs = [ TestMost TestWarn TestException TestDeep TestDifferences ModulePluggable ];
4067     propagatedBuildInputs = [ ClassAccessor ClassDataInheritable ];
4068     meta = {
4069       description = "Easy-to-use and comprehensive named-color library";
4070       license = with lib.licenses; [ artistic1 gpl1Plus ];
4071     };
4072   };
4074   CommandRunner = buildPerlModule {
4075     pname = "Command-Runner";
4076     version = "0.200";
4077     src = fetchurl {
4078       url = "mirror://cpan/authors/id/S/SK/SKAJI/Command-Runner-0.200.tar.gz";
4079       hash = "sha256-WtJtBhEb/s1TyPW7XeqUvyAl9seOlfbYAS5M+oninyY=";
4080     };
4081     buildInputs = [ ModuleBuildTiny ];
4082     propagatedBuildInputs = [ CaptureTiny Filepushd StringShellQuote Win32ShellQuote ];
4083     meta = {
4084       description = "Run external commands and Perl code refs";
4085       homepage = "https://github.com/skaji/Command-Runner";
4086       license = with lib.licenses; [ artistic1 gpl1Plus ];
4087       maintainers = [ maintainers.zakame ];
4088     };
4089   };
4091   commonsense = buildPerlPackage {
4092     pname = "common-sense";
4093     version = "3.75";
4094     src = fetchurl {
4095       url = "mirror://cpan/authors/id/M/ML/MLEHMANN/common-sense-3.75.tar.gz";
4096       hash = "sha256-qGocTKTzAG10eQZEJaCfpbZonlcmH8uZT+Z9Bhy6Dn4=";
4097     };
4098     meta = {
4099       description = "Implements some sane defaults for Perl programs";
4100       license = with lib.licenses; [ artistic1 gpl1Plus ];
4101     };
4102   };
4104   CompilerLexer = buildPerlModule {
4105     pname = "Compiler-Lexer";
4106     version = "0.23";
4107     src = fetchurl {
4108       url = "mirror://cpan/authors/id/G/GO/GOCCY/Compiler-Lexer-0.23.tar.gz";
4109       hash = "sha256-YDHOSv67+k9JKidJSb57gjIxTpECOCjEOOR5gf8Kmds=";
4110     };
4111     nativeBuildInputs = [ pkgs.ld-is-cc-hook ];
4112     buildInputs = [ ModuleBuildXSUtil ];
4113     meta = {
4114       homepage = "https://github.com/goccy/p5-Compiler-Lexer";
4115       description = "Lexical Analyzer for Perl5";
4116       license = with lib.licenses; [ artistic1 gpl1Plus ];
4117     };
4118   };
4120   CompressBzip2 = buildPerlPackage {
4121     pname = "Compress-Bzip2";
4122     version = "2.28";
4123     src = fetchurl {
4124       url = "mirror://cpan/authors/id/R/RU/RURBAN/Compress-Bzip2-2.28.tar.gz";
4125       hash = "sha256-hZ+DXD9cmYgQ2LKm+eKC/5nWy2bM+lXK5+Ztr7A1EW4=";
4126     };
4127     meta = {
4128       description = "Interface to Bzip2 compression library";
4129       license = with lib.licenses; [ artistic1 gpl1Plus ];
4130     };
4131   };
4133   CompressLZF = buildPerlPackage rec {
4134     pname = "Compress-LZF";
4135     version = "3.8";
4136     src = fetchurl {
4137       url = "mirror://cpan/authors/id/M/ML/MLEHMANN/${pname}-${version}.tar.gz";
4138       hash = "sha256-XR9d9IzhO03uHMnyeOzb+Bd4d7C5iBWk6zyRw0ZnFvI=";
4139     };
4140     meta = {
4141       description = "Extremely light-weight Lempel-Ziv-Free compression";
4142       license = with lib.licenses; [ artistic1 gpl1Plus ];
4143     };
4144   };
4146   CompressRawBzip2 = buildPerlPackage {
4147     pname = "Compress-Raw-Bzip2";
4148     version = "2.206";
4149     src = fetchurl {
4150       url = "mirror://cpan/authors/id/P/PM/PMQS/Compress-Raw-Bzip2-2.206.tar.gz";
4151       hash = "sha256-ISuB2xwK6CLRmShhmmA70QjLXVxHAPxn3HyxaeDMZSU=";
4152     };
4154     # Don't build a private copy of bzip2.
4155     BUILD_BZIP2 = false;
4156     BZIP2_LIB = "${pkgs.bzip2.out}/lib";
4157     BZIP2_INCLUDE = "${pkgs.bzip2.dev}/include";
4159     meta = {
4160       description = "Low-Level Interface to bzip2 compression library";
4161       homepage = "https://github.com/pmqs/Compress-Raw-Bzip2";
4162       license = with lib.licenses; [ artistic1 gpl1Plus ];
4163     };
4164   };
4166   CompressRawLzma = buildPerlPackage {
4167     pname = "Compress-Raw-Lzma";
4168     version = "2.206";
4169     src = fetchurl {
4170       url = "mirror://cpan/authors/id/P/PM/PMQS/Compress-Raw-Lzma-2.206.tar.gz";
4171       hash = "sha256-4BpwQLhL3GdZLRPuwMeIWQ4faW0dTwfHCXvXKk+IbrQ=";
4172     };
4173     preConfigure = ''
4174       cat > config.in <<EOF
4175         INCLUDE      = ${pkgs.xz.dev}/include
4176         LIB          = ${pkgs.xz.out}/lib
4177       EOF
4178     '';
4179     meta = {
4180       description = "Low-Level Interface to lzma compression library";
4181       homepage = "https://github.com/pmqs/Compress-Raw-Lzma";
4182       license = with lib.licenses; [ artistic1 gpl1Plus ];
4183     };
4184   };
4186   CompressRawZlib = buildPerlPackage {
4187     pname = "Compress-Raw-Zlib";
4188     version = "2.206";
4190     src = fetchurl {
4191       url = "mirror://cpan/authors/id/P/PM/PMQS/Compress-Raw-Zlib-2.206.tar.gz";
4192       hash = "sha256-Rnhaajg6HIQ4lbf58l1ddZ58MFFZ+dHgSjYE63THc3Q=";
4193     };
4195     preConfigure = ''
4196       cat > config.in <<EOF
4197         BUILD_ZLIB   = False
4198         INCLUDE      = ${pkgs.zlib.dev}/include
4199         LIB          = ${pkgs.zlib.out}/lib
4200         OLD_ZLIB     = False
4201         GZIP_OS_CODE = AUTO_DETECT
4202         USE_ZLIB_NG  = False
4203       EOF
4204     '';
4206     doCheck = !stdenv.hostPlatform.isDarwin;
4208     meta = {
4209       description = "Low-Level Interface to zlib or zlib-ng compression library";
4210       homepage = "https://github.com/pmqs/Compress-Raw-Zlib";
4211       license = with lib.licenses; [ artistic1 gpl1Plus ];
4212     };
4213   };
4215   CompressUnLZMA = buildPerlPackage {
4216     pname = "Compress-unLZMA";
4217     version = "0.05";
4218     src = fetchurl {
4219       url = "mirror://cpan/authors/id/F/FE/FERREIRA/Compress-unLZMA-0.05.tar.gz";
4220       hash = "sha256-TegBoo2S1ekJR0Zc60jU45/WQJOF6cIw5MBIKdllF7g=";
4221     };
4222     meta = {
4223       description = "Interface to LZMA decompression library";
4224       license = with lib.licenses; [ artistic1 gpl1Plus lgpl21Plus ];
4225     };
4226   };
4228   ConfigAny = buildPerlPackage {
4229     pname = "Config-Any";
4230     version = "0.33";
4231     src = fetchurl {
4232       url = "mirror://cpan/authors/id/H/HA/HAARG/Config-Any-0.33.tar.gz";
4233       hash = "sha256-wGaOtfLNNVvyBVfwTcGKJUdLegvPp5Vi4xZdmjx4kzM=";
4234     };
4235     propagatedBuildInputs = [ ModulePluggable ];
4236     meta = {
4237       description = "Load configuration from different file formats, transparently";
4238       license = with lib.licenses; [ artistic1 gpl1Plus ];
4239     };
4240   };
4242   ConfigAutoConf = buildPerlPackage {
4243     pname = "Config-AutoConf";
4244     version = "0.320";
4245     src = fetchurl {
4246       url = "mirror://cpan/authors/id/A/AM/AMBS/Config-AutoConf-0.320.tar.gz";
4247       hash = "sha256-u1epWO9J0/cWInba4Up71a9D/R2FEyMa811mVFlFQCM=";
4248     };
4249     propagatedBuildInputs = [ CaptureTiny ];
4250     meta = {
4251       description = "Module to implement some of AutoConf macros in pure perl";
4252       homepage = "https://metacpan.org/release/Config-AutoConf";
4253       license = with lib.licenses; [ artistic1 gpl1Plus ];
4254     };
4255   };
4257   ConfigGeneral = buildPerlPackage {
4258     pname = "Config-General";
4259     version = "2.65";
4260     src = fetchurl {
4261       url = "mirror://cpan/authors/id/T/TL/TLINDEN/Config-General-2.65.tar.gz";
4262       hash = "sha256-TW1XVL46nzCQaDbwzBDlVMiDLhTnoTQe+xWwXXBvxY8=";
4263     };
4264     meta = {
4265       description = "Generic Config Module";
4266       license = with lib.licenses; [ artistic2 ];
4267     };
4268   };
4270   ConfigGitLike = buildPerlPackage {
4271     pname = "Config-GitLike";
4272     version = "1.18";
4273     src = fetchurl {
4274       url = "mirror://cpan/authors/id/A/AL/ALEXMV/Config-GitLike-1.18.tar.gz";
4275       hash = "sha256-9650QPOtq1uf+apXIW2E/UpoEAm5WE4y2kL4u3HjMsU=";
4276     };
4277     buildInputs = [ TestException ];
4278     propagatedBuildInputs = [ Moo MooXTypesMooseLike ];
4279     meta = {
4280       description = "Git-compatible config file parsing";
4281       license = with lib.licenses; [ artistic1 gpl1Plus ];
4282     };
4283   };
4285   ConfigGrammar = buildPerlPackage {
4286     pname = "Config-Grammar";
4287     version = "1.13";
4288     src = fetchurl {
4289       url = "mirror://cpan/authors/id/D/DS/DSCHWEI/Config-Grammar-1.13.tar.gz";
4290       hash = "sha256-qLOjosnIxDuS3EAb8nCdZRTxW0Z/1PcsSNNWM1dx1uM=";
4291     };
4292     meta = {
4293       description = "Grammar-based, user-friendly config parser";
4294       homepage = "https://github.com/schweikert/Config-Grammar";
4295       license = with lib.licenses; [ artistic1 gpl1Plus ];
4296     };
4297   };
4299   ConfigINI = buildPerlPackage {
4300     pname = "Config-INI";
4301     version = "0.029";
4302     src = fetchurl {
4303       url = "mirror://cpan/authors/id/R/RJ/RJBS/Config-INI-0.029.tar.gz";
4304       hash = "sha256-C755enMCEGRKkH2QzUqisjrVgMsnvTk5O/xqfvn9/eo=";
4305     };
4306     propagatedBuildInputs = [ MixinLinewise ];
4307     meta = {
4308       description = "Simple .ini-file format";
4309       homepage = "https://github.com/rjbs/Config-INI";
4310       license = with lib.licenses; [ artistic1 gpl1Plus ];
4311     };
4312   };
4314   ConfigIdentity = buildPerlPackage {
4315     pname = "Config-Identity";
4316     version = "0.0019";
4317     src = fetchurl {
4318       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Config-Identity-0.0019.tar.gz";
4319       hash = "sha256-KVIL2zdlnmQUkbDGlmFCmhqJtqLkdcL5tOvyfkXoEqg=";
4320     };
4321     propagatedBuildInputs = [ FileHomeDir IPCRun ];
4322     buildInputs = [ TestDeep ];
4323     meta = {
4324       description = "Load (and optionally decrypt via GnuPG) user/pass identity information ";
4325       homepage = "https://github.com/dagolden/Config-Identity";
4326       license = with lib.licenses; [ artistic1 gpl1Plus ];
4327     };
4328   };
4330   ConfigIniFiles = buildPerlPackage {
4331     pname = "Config-IniFiles";
4332     version = "3.000003";
4333     src = fetchurl {
4334       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Config-IniFiles-3.000003.tar.gz";
4335       hash = "sha256-PEV7ZdmOX/QL25z4FLDVmD6wxT+4aWvaO6A1rSrNaAI=";
4336     };
4337     propagatedBuildInputs = [ IOStringy ];
4338     meta = {
4339       description = "Module for reading .ini-style configuration files";
4340       homepage = "https://metacpan.org/release/Config-IniFiles";
4341       license = with lib.licenses; [ artistic1 gpl1Plus ];
4342       maintainers = teams.deshaw.members;
4343     };
4344   };
4346   ConfigMerge = buildPerlPackage {
4347     pname = "Config-Merge";
4348     version = "1.04";
4349     src = fetchurl {
4350       url = "mirror://cpan/authors/id/D/DR/DRTECH/Config-Merge-1.04.tar.gz";
4351       hash = "sha256-qTJHe0OuX7BKFvBxqJHae9IIbBDGgFkvKIj6nZlyzM8=";
4352     };
4353     buildInputs = [ YAML ];
4354     propagatedBuildInputs = [ ConfigAny ];
4355     meta = {
4356       description = "Load a configuration directory tree containing YAML, JSON, XML, Perl, INI or Config::General files";
4357       license = with lib.licenses; [ artistic1 gpl1Plus ];
4358     };
4359   };
4361   ConfigOnion = buildPerlPackage {
4362     pname = "Config-Onion";
4363     version = "1.007";
4364     src = fetchurl {
4365       url = "mirror://cpan/authors/id/D/DS/DSHEROH/Config-Onion-1.007.tar.gz";
4366       hash = "sha256-Mn/d9o4TiyRp5aK643xzP4fKhMr2Hhz6qUm+PZUNqK8=";
4367     };
4368     propagatedBuildInputs = [ ConfigAny HashMergeSimple Moo ];
4369     buildInputs = [ TestException YAML ];
4370     meta = {
4371       description = "Layered configuration, because configs are like ogres";
4372       license = with lib.licenses; [ artistic1 gpl1Plus ];
4373     };
4374   };
4376   ConfigMVP = buildPerlPackage {
4377     pname = "Config-MVP";
4378     version = "2.200013";
4379     src = fetchurl {
4380       url = "mirror://cpan/authors/id/R/RJ/RJBS/Config-MVP-2.200013.tar.gz";
4381       hash = "sha256-AY0WFiPuOmf4YNnmgOIuYbeermAY8OfDtSX8k09bfUU=";
4382     };
4383     buildInputs = [ TestFatal ];
4384     propagatedBuildInputs = [ ModulePluggable MooseXOneArgNew RoleHasMessage RoleIdentifiable Throwable TieIxHash ];
4385     meta = {
4386       description = "Multivalue-property package-oriented configuration";
4387       homepage = "https://github.com/rjbs/Config-MVP";
4388       license = with lib.licenses; [ artistic1 gpl1Plus ];
4389     };
4390   };
4392   ConfigMVPReaderINI = buildPerlPackage {
4393     pname = "Config-MVP-Reader-INI";
4394     version = "2.101465";
4395     src = fetchurl {
4396       url = "mirror://cpan/authors/id/R/RJ/RJBS/Config-MVP-Reader-INI-2.101465.tar.gz";
4397       hash = "sha256-E8eqJ8HfmM0zraOZ5Z/zj6v6nWVRPkKvAvcsLT9jYkc=";
4398     };
4399     propagatedBuildInputs = [ ConfigINI ConfigMVP ];
4400     meta = {
4401       description = "MVP config reader for .ini files";
4402       homepage = "https://github.com/rjbs/Config-MVP-Reader-INI";
4403       license = with lib.licenses; [ artistic1 gpl1Plus ];
4404     };
4405   };
4407   ConfigProperties = buildPerlPackage {
4408     pname = "Config-Properties";
4409     version = "1.80";
4410     src = fetchurl {
4411       url = "mirror://cpan/authors/id/S/SA/SALVA/Config-Properties-1.80.tar.gz";
4412       hash = "sha256-XQQ5W+fhTpcKA+qVL7dimuME2XwDH5DMHCm9Cmpi/EA=";
4413     };
4414     meta = {
4415       description = "Read and write property files";
4416       license = with lib.licenses; [ artistic1 gpl1Plus ];
4417     };
4418   };
4420   ConfigSimple = buildPerlPackage {
4421     pname = "Config-Simple";
4422     version = "4.58";
4423     src = fetchurl {
4424       url = "mirror://cpan/authors/id/S/SH/SHERZODR/Config-Simple-4.58.tar.gz";
4425       hash = "sha256-3ZmVcG8Pk4ShXM/+EWw7biL0K6LljY8k7QPEoOOG7bQ=";
4426     };
4427     meta = {
4428       description = "Simple configuration file class";
4429       license = with lib.licenses; [ artistic1 gpl1Plus ];
4430     };
4431   };
4433   ConfigStd = buildPerlModule {
4434     pname = "Config-Std";
4435     version = "0.903";
4436     src = fetchurl {
4437       url = "mirror://cpan/authors/id/B/BR/BRICKER/Config-Std-0.903.tar.gz";
4438       hash = "sha256-t3Cf9mO9J50mSrnC9R6elYhHmjNnqMTPwYZZwqEUgP4=";
4439     };
4440     propagatedBuildInputs = [ ClassStd ];
4441     meta = {
4442       description = "Load and save configuration files in a standard format";
4443       license = with lib.licenses; [ artistic1 gpl1Plus ];
4444     };
4445   };
4447   ConfigTiny = buildPerlPackage {
4448     pname = "Config-Tiny";
4449     version = "2.29";
4450     src = fetchurl {
4451       url = "mirror://cpan/authors/id/R/RS/RSAVAGE/Config-Tiny-2.29.tgz";
4452       hash = "sha256-PeebDqA6jWqT6dkSj+hF+1ViIrFGmaT28NXKBXrjMzs=";
4453     };
4454     buildInputs = [ TestPod ];
4455     meta = {
4456       description = "Read/Write .ini style files with as little code as possible";
4457       license = with lib.licenses; [ artistic1 gpl1Plus ];
4458     };
4459   };
4461   ConfigVersioned = buildPerlPackage {
4462     pname = "Config-Versioned";
4463     version = "1.01";
4464     src = fetchurl {
4465       url = "mirror://cpan/authors/id/M/MR/MRSCOTTY/Config-Versioned-1.01.tar.gz";
4466       hash = "sha256-vJpK43OL2J+GoHvKZzYnyjySupaXN81tvHq3rRfNI0g=";
4467     };
4468     propagatedBuildInputs = [ ConfigStd GitPurePerl ];
4469     doCheck = false;
4470     meta = {
4471       description = "Simple, versioned access to configuration data";
4472       license = with lib.licenses; [ artistic1 gpl1Plus ];
4473       mainProgram = "cfgver";
4474     };
4475   };
4477   Connector = buildPerlModule {
4478     pname = "Connector";
4479     version = "1.53";
4480     src = fetchurl {
4481       url = "mirror://cpan/authors/id/M/MR/MRSCOTTY/Connector-1.53.tar.gz";
4482       hash = "sha256-1D50VEcZ/7lKDgZFhqetRXVbKTZPGJHZ4ncEFqsSTPo=";
4483     };
4484     buildInputs = [ ModuleBuildTiny ConfigMerge ConfigStd ConfigVersioned DBDSQLite DBI IOSocketSSL JSON LWP LWPProtocolHttps ProcSafeExec TemplateToolkit YAML ];
4485     propagatedBuildInputs = [ LogLog4perl Moose ];
4486     prePatch = ''
4487       # Attempts to use network.
4488       rm t/01-proxy-http.t
4489       rm t/01-proxy-proc-safeexec.t
4491       # crypt() tests that use DES
4492       rm t/01-builtin-password.t
4493       rm t/01-builtin-password-scheme.t
4494     '';
4495     meta = {
4496       description = "Generic connection to a hierarchical-structured data set";
4497       homepage = "https://github.com/whiterabbitsecurity/connector";
4498       license = with lib.licenses; [ artistic1 gpl1Plus ];
4499     };
4500   };
4502   ConstFast = buildPerlModule {
4503     pname = "Const-Fast";
4504     version = "0.014";
4505     src = fetchurl {
4506       url = "mirror://cpan/authors/id/L/LE/LEONT/Const-Fast-0.014.tar.gz";
4507       hash = "sha256-+AWVOgjFeEahak2F17dmOYr698NsFGX8sd6gnl+jlNs=";
4508     };
4509     propagatedBuildInputs = [ SubExporterProgressive ];
4510     buildInputs = [ ModuleBuildTiny TestFatal ];
4511     meta = {
4512       description = "Facility for creating read-only scalars, arrays, and hashes";
4513       license = with lib.licenses; [ artistic1 gpl1Plus ];
4514     };
4515   };
4517   ConvertASCIIArmour = buildPerlPackage {
4518     pname = "Convert-ASCII-Armour";
4519     version = "1.4";
4520     src = fetchurl {
4521       url = "mirror://cpan/authors/id/V/VI/VIPUL/Convert-ASCII-Armour-1.4.tar.gz";
4522       hash = "sha256-l+istusqKpGvfWzw0t/2+kKq+Tn8fW0cYFek8N9SyQQ=";
4523     };
4524     meta = {
4525       description = "Convert binary octets into ASCII armoured messages";
4526       license = with lib.licenses; [ artistic1 gpl1Plus ];
4527       maintainers = [ maintainers.sgo ];
4528     };
4529   };
4531   ConvertASN1 = buildPerlPackage {
4532     pname = "Convert-ASN1";
4533     version = "0.34";
4534     src = fetchurl {
4535       url = "mirror://cpan/authors/id/T/TI/TIMLEGGE/Convert-ASN1-0.34.tar.gz";
4536       hash = "sha256-pijXydOQVo+3Y1mXX6A/YmzlfxDcF5gOjjWH13E+Tuc=";
4537     };
4538     meta = {
4539       description = "ASN.1 Encode/Decode library";
4540       license = with lib.licenses; [ artistic1 gpl1Plus ];
4541     };
4542   };
4544   ConvertBase32 = buildPerlPackage {
4545     pname = "Convert-Base32";
4546     version = "0.06";
4547     src = fetchurl {
4548       url = "mirror://cpan/authors/id/I/IK/IKEGAMI/Convert-Base32-0.06.tar.gz";
4549       hash = "sha256-S6gsFnxB9FWqgoRzhyfkyUouvLHEznl/b9oHJFpkIRU=";
4550     };
4551     buildInputs = [ TestException ];
4552     meta = {
4553       description = "Encoding and decoding of base32 strings";
4554       license = with lib.licenses; [ artistic1 gpl1Plus ];
4555       maintainers = [ maintainers.sgo ];
4556     };
4557   };
4559   ConvertBencode = buildPerlPackage {
4560     pname = "Convert-Bencode";
4561     version = "1.03";
4562     src = fetchurl {
4563       url = "mirror://cpan/authors/id/O/OR/ORCLEV/Convert-Bencode-1.03.tar.gz";
4564       hash = "sha256-Jp89+GVpJZbeIU/kK5Lc+H1qa8It237Sq8f0i4LkXmw=";
4565     };
4566     meta = {
4567       description = "Functions for converting to/from bencoded strings";
4568       license = with lib.licenses; [ artistic1 gpl1Plus ];
4569     };
4570   };
4572   ConvertColor = buildPerlModule {
4573     pname = "Convert-Color";
4574     version = "0.17";
4575     src = fetchurl {
4576       url = "mirror://cpan/authors/id/P/PE/PEVANS/Convert-Color-0.17.tar.gz";
4577       hash = "sha256-5/jDN8VSXqoDd3xXaD6hGvm5j/HQURojSvH4CkMiTsc=";
4578     };
4579     buildInputs = [ Test2Suite ];
4580     propagatedBuildInputs = [ ListUtilsBy ModulePluggable ];
4581     meta = {
4582       description = "Color space conversions and named lookups";
4583       license = with lib.licenses; [ artistic1 gpl1Plus ];
4584     };
4585   };
4587   ConvertUU = buildPerlPackage {
4588     pname = "Convert-UU";
4589     version = "0.5201";
4590     src = fetchurl {
4591       url = "mirror://cpan/authors/id/A/AN/ANDK/Convert-UU-0.5201.tar.gz";
4592       hash = "sha256-kjKc4cMrWVLEjhIj2wGMjFjOr+8Dv6D9SBfNicNVo70=";
4593     };
4594     meta = {
4595       description = "Perl module for uuencode and uudecode";
4596       license = with lib.licenses; [ artistic1 gpl1Plus ];
4597     };
4598   };
4600   constantboolean = buildPerlModule {
4601     pname = "constant-boolean";
4602     version = "0.02";
4603     src = fetchurl {
4604       url = "mirror://cpan/authors/id/D/DE/DEXTER/constant-boolean-0.02.tar.gz";
4605       hash = "sha256-zSxZ1YBhzhpJdaMTFg33GG9i7qJlW4XVIOXiTp7rD+k=";
4606     };
4607     propagatedBuildInputs = [ SymbolUtil ];
4608     meta = {
4609       description = "Define TRUE and FALSE constants";
4610       license = with lib.licenses; [ artistic1 gpl1Plus ];
4611     };
4612   };
4614   curry = buildPerlPackage {
4615     pname = "curry";
4616     version = "2.000001";
4617     src = fetchurl {
4618       url = "mirror://cpan/authors/id/M/MS/MSTROUT/curry-2.000001.tar.gz";
4619       hash = "sha256-yY/iBQ+t7KOYGdboDVROkSGE/oRsvnNTnGhpT7G1HAg=";
4620     };
4621     meta = {
4622       description = "Create automatic curried method call closures for any class or object";
4623       license = with lib.licenses; [ artistic1 gpl1Plus ];
4624     };
4625   };
4627   constant-defer = buildPerlPackage {
4628     pname = "constant-defer";
4629     version = "6";
4630     src = fetchurl {
4631       url = "mirror://cpan/authors/id/K/KR/KRYDE/constant-defer-6.tar.gz";
4632       hash = "sha256-eyEmMZjKImhu//OumHokC+Qj3SFgr96yn+cW0DKYb/o=";
4633     };
4634     meta = {
4635       description = "Constant subs with deferred value calculation";
4636       license = with lib.licenses; [ gpl3Plus ];
4637     };
4638   };
4640   ContextPreserve = buildPerlPackage {
4641     pname = "Context-Preserve";
4642     version = "0.03";
4643     src = fetchurl {
4644       url = "mirror://cpan/authors/id/E/ET/ETHER/Context-Preserve-0.03.tar.gz";
4645       hash = "sha256-CZFKTCx725nKtoDBg8v0kuyY1uI/vMSH/MSuEFZ9/R8=";
4646     };
4647     buildInputs = [ TestException TestSimple13 ];
4648     meta = {
4649       description = "Run code after a subroutine call, preserving the context the subroutine would have seen if it were the last statement in the caller";
4650       license = with lib.licenses; [ artistic1 gpl1Plus ];
4651     };
4652   };
4654   CookieBaker = buildPerlModule {
4655     pname = "Cookie-Baker";
4656     version = "0.11";
4657     src = fetchurl {
4658       url = "mirror://cpan/authors/id/K/KA/KAZEBURO/Cookie-Baker-0.11.tar.gz";
4659       hash = "sha256-WSdfR04HwKo2EePmhLiU59uRMzPYIUQgvmPxLsGM16s=";
4660     };
4661     buildInputs = [ ModuleBuildTiny TestTime ];
4662     propagatedBuildInputs = [ URI ];
4663     meta = {
4664       description = "Cookie string generator / parser";
4665       homepage = "https://github.com/kazeburo/Cookie-Baker";
4666       license = with lib.licenses; [ artistic1 gpl1Plus ];
4667     };
4668   };
4670   CookieXS = buildPerlPackage {
4671     pname = "Cookie-XS";
4672     version = "0.11";
4673     src = fetchurl {
4674       url = "mirror://cpan/authors/id/A/AG/AGENT/Cookie-XS-0.11.tar.gz";
4675       hash = "sha256-o7lxB4CiJC5w750G5R+Rt/PqCq5o9Tx25CxYLCzLJpg=";
4676     };
4677     propagatedBuildInputs = [ CGICookieXS ];
4678     meta = {
4679       description = "HTTP Cookie parser in C (Please use CGI::Cookie::XS instead)";
4680       license = with lib.licenses; [ artistic1 gpl1Plus ];
4681     };
4682   };
4684   Coro = buildPerlPackage {
4685     pname = "Coro";
4686     version = "6.57";
4687     src = fetchurl {
4688       url = "mirror://cpan/authors/id/M/ML/MLEHMANN/Coro-6.57.tar.gz";
4689       hash = "sha256-GSjkgDNUDhHr9VBpht0QGveNJCHSEPllmSI7FdUXFMY=";
4690     };
4691     propagatedBuildInputs = [ AnyEvent Guard commonsense ];
4692     buildInputs = [ CanaryStability ];
4693     meta = {
4694       description = "Only real threads in perl";
4695       license = with lib.licenses; [ artistic1 gpl1Plus ];
4696     };
4697   };
4699   CoroEV = buildPerlPackage rec {
4700     pname = "CoroEV";
4701     version = "6.55";
4702     src = fetchurl {
4703       url = "mirror://cpan/authors/id/M/ML/MLEHMANN/Coro-${version}.tar.gz";
4704       hash = "sha256-Q9ecAnFw/NpMoO6Sc0YFvJXhImhvUHG5TZB2TIGuijA=";
4705     };
4706     buildInputs = [ CanaryStability ];
4707     propagatedBuildInputs = [ AnyEvent Coro EV Guard commonsense ];
4708     preConfigure = ''
4709       cd EV
4710     '';
4711     meta = {
4712       description = "Do events the coro-way, with EV";
4713       license = with lib.licenses; [ artistic1 gpl1Plus ];
4714     };
4715   };
4717   Corona = buildPerlPackage {
4718     pname = "Corona";
4719     version = "0.1004";
4720     src = fetchurl {
4721       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Corona-0.1004.tar.gz";
4722       hash = "sha256-//XRnoPeem0mWfNGgpgmsWUrtmZlS4eDsRmlNFS9rzw=";
4723     };
4724     propagatedBuildInputs = [ NetServerCoro Plack ];
4725     buildInputs = [ TestSharedFork TestTCP ];
4726     meta = {
4727       description = "Coro based PSGI web server";
4728       license = with lib.licenses; [ artistic1 gpl1Plus ];
4729       mainProgram = "corona";
4730     };
4731   };
4733   CPAN = buildPerlPackage {
4734     pname = "CPAN";
4735     version = "2.36";
4736     src = fetchurl {
4737       url = "mirror://cpan/authors/id/A/AN/ANDK/CPAN-2.36.tar.gz";
4738       hash = "sha256-HXKl60DliOPBDx88hckC6HGxaDdH1ncjOvd3yCv8kJ4=";
4739     };
4740     propagatedBuildInputs = [ ArchiveZip CPANChecksums CPANPerlReleases CompressBzip2 Expect FileHomeDir FileWhich LWP LogLog4perl ModuleSignature TermReadKey TextGlob YAML YAMLLibYAML YAMLSyck IOSocketSSL ];
4741     meta = {
4742       description = "Query, download and build perl modules from CPAN sites";
4743       license = with lib.licenses; [ artistic1 gpl1Plus ];
4744       mainProgram = "cpan";
4745     };
4746   };
4748   CPANAudit = buildPerlPackage {
4749     pname = "CPAN-Audit";
4750     version = "20230826.001";
4751     src = fetchurl {
4752       url = "mirror://cpan/authors/id/B/BD/BDFOY/CPAN-Audit-20230826.001.tar.gz";
4753       hash = "sha256-DXU7O9fdpXweIKycWScKcKTNkfttfN4mJEPoVUy2Geo=";
4754     };
4755     buildInputs = [ CaptureTiny YAMLTiny ];
4756     propagatedBuildInputs = [ CPANDistnameInfo IOInteractive JSON ModuleCPANfile ModuleExtractVERSION PerlIOgzip Mojolicious ];
4757     meta = {
4758       homepage = "https://github.com/briandfoy/cpan-audit";
4759       description = "Audit CPAN distributions for known vulnerabilities";
4760       license = with lib.licenses; [ artistic1 gpl1Plus ];
4761     };
4762   };
4764   CPANMini = buildPerlPackage {
4765     pname = "CPAN-Mini";
4766     version = "1.111017";
4767     src = fetchurl {
4768       url = "mirror://cpan/authors/id/R/RJ/RJBS/CPAN-Mini-1.111017.tar.gz";
4769       hash = "sha256-8gQpO+JqyEGsyHBEoYjbD1kegIgTFseiiK7A7s4wYVU=";
4770     };
4771     nativeBuildInputs = lib.optional stdenv.hostPlatform.isDarwin shortenPerlShebang;
4772     propagatedBuildInputs = [ FileHomeDir LWPProtocolHttps ];
4773     postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
4774       shortenPerlShebang $out/bin/minicpan
4775     '';
4777     meta = {
4778       description = "Create a minimal mirror of CPAN";
4779       homepage = "https://github.com/rjbs/CPAN-Mini";
4780       license = with lib.licenses; [ artistic1 gpl1Plus ];
4781       maintainers = [ maintainers.sgo ];
4782       mainProgram = "minicpan";
4783     };
4784   };
4786   CpanelJSONXS = buildPerlPackage {
4787     pname = "Cpanel-JSON-XS";
4788     version = "4.37";
4789     src = fetchurl {
4790       url = "mirror://cpan/authors/id/R/RU/RURBAN/Cpanel-JSON-XS-4.37.tar.gz";
4791       hash = "sha256-wkFhWg4X/3Raqoa79Gam4pzSQFFeZfBqegUBe2GebUs=";
4792     };
4793     meta = {
4794       description = "CPanel fork of JSON::XS, fast and correct serializing";
4795       license = with lib.licenses; [ artistic1 gpl1Plus ];
4796       mainProgram = "cpanel_json_xs";
4797     };
4798   };
4800   CPAN02PackagesSearch = buildPerlModule {
4801     pname = "CPAN-02Packages-Search";
4802     version = "0.100";
4803     src = fetchurl {
4804       url = "mirror://cpan/authors/id/S/SK/SKAJI/CPAN-02Packages-Search-0.100.tar.gz";
4805       hash = "sha256-prabrHmiUwA0RrKD76bzrv+mCdDBxStCCYeCEtpw+as=";
4806     };
4807     buildInputs = [ ModuleBuildTiny ];
4808     propagatedBuildInputs = [ TieHandleOffset ];
4809     meta = {
4810       description = "Search packages in 02packages.details.txt";
4811       homepage = "https://github.com/skaji/CPAN-02Packages-Search";
4812       license = with lib.licenses; [ artistic1 gpl1Plus ];
4813       maintainers = [ maintainers.zakame ];
4814     };
4815   };
4817   CPANChanges = buildPerlPackage {
4818     pname = "CPAN-Changes";
4819     version = "0.400002";
4820     src = fetchurl {
4821       url = "mirror://cpan/authors/id/H/HA/HAARG/CPAN-Changes-0.400002.tar.gz";
4822       hash = "sha256-Ae7eqQ0HRoy1jkpQv6O7HU7tqQc1lq3REY/DWRU6vo0=";
4823     };
4824     meta = {
4825       description = "Read and write Changes files";
4826       license = with lib.licenses; [ artistic1 gpl1Plus ];
4827       mainProgram = "tidy_changelog";
4828     };
4829   };
4831   CPANChecksums = buildPerlPackage {
4832     pname = "CPAN-Checksums";
4833     version = "2.14";
4834     src = fetchurl {
4835       url = "mirror://cpan/authors/id/A/AN/ANDK/CPAN-Checksums-2.14.tar.gz";
4836       hash = "sha256-QIBxbF2n4DtQTjzA6h/V757WkV9vtzdWTp4T01Wonjk=";
4837     };
4838     propagatedBuildInputs = [ CompressBzip2 DataCompare ModuleSignature ];
4839     meta = {
4840       description = "Write a CHECKSUMS file for a directory as on CPAN";
4841       license = with lib.licenses; [ artistic1 gpl1Plus ];
4842     };
4843   };
4845   CPANCommonIndex = buildPerlPackage {
4846     pname = "CPAN-Common-Index";
4847     version = "0.010";
4848     src = fetchurl {
4849       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/CPAN-Common-Index-0.010.tar.gz";
4850       hash = "sha256-xD3bsi/UKwYRj+Y1f1NwD7139TG6PEJ/qvvzA8v06vA=";
4851     };
4852     buildInputs = [ TestDeep TestFailWarnings TestFatal ];
4853     propagatedBuildInputs = [ CPANDistnameInfo ClassTiny TieHandleOffset URI ];
4854     meta = {
4855       description = "Common library for searching CPAN modules, authors and distributions";
4856       homepage = "https://github.com/Perl-Toolchain-Gang/CPAN-Common-Index";
4857       license = with lib.licenses; [ asl20 ];
4858     };
4859   };
4861   CPANDistnameInfo = buildPerlPackage {
4862     pname = "CPAN-DistnameInfo";
4863     version = "0.12";
4864     src = fetchurl {
4865       url = "mirror://cpan/authors/id/G/GB/GBARR/CPAN-DistnameInfo-0.12.tar.gz";
4866       hash = "sha256-LyT76ffurLwmnTX8YWGDIvwXvkme4M2QGPNwk0qfJDU=";
4867     };
4868     meta = {
4869       description = "Extract distribution name and version from a distribution filename";
4870       license = with lib.licenses; [ artistic1 gpl1Plus ];
4871     };
4872   };
4874   CPANMetaCheck = buildPerlPackage {
4875     pname = "CPAN-Meta-Check";
4876     version = "0.018";
4877     src = fetchurl {
4878       url = "mirror://cpan/authors/id/L/LE/LEONT/CPAN-Meta-Check-0.018.tar.gz";
4879       hash = "sha256-9hnS316g/ZHIz4PrVKzMteQ9nm7Bo/cns9CsFdDPN4o=";
4880     };
4881     buildInputs = [ TestDeep ];
4882     meta = {
4883       description = "Verify requirements in a CPAN::Meta object";
4884       license = with lib.licenses; [ artistic1 gpl1Plus ];
4885     };
4886   };
4888   CPANPerlReleases = buildPerlPackage {
4889     pname = "CPAN-Perl-Releases";
4890     version = "5.20230920";
4891     src = fetchurl {
4892       url = "mirror://cpan/authors/id/B/BI/BINGOS/CPAN-Perl-Releases-5.20230920.tar.gz";
4893       hash = "sha256-MbyTiJR2uOx1iRjdmSSmKYPgh7BsjN6Sb7mnp+h60cA=";
4894     };
4895     meta = {
4896       description = "Mapping Perl releases on CPAN to the location of the tarballs";
4897       homepage = "https://github.com/bingos/cpan-perl-releases";
4898       license = with lib.licenses; [ artistic1 gpl1Plus ];
4899     };
4900   };
4902   CPANPLUS = buildPerlPackage {
4903     pname = "CPANPLUS";
4904     version = "0.9914";
4905     src = fetchurl {
4906       url = "mirror://cpan/authors/id/B/BI/BINGOS/CPANPLUS-0.9914.tar.gz";
4907       hash = "sha256-dsPl2mI6SvYP5krexEj7H44Mrp9nmKNraIZZdAROm2c=";
4908     };
4909     propagatedBuildInputs = [ ArchiveExtract ModulePluggable ObjectAccessor PackageConstants TermUI ];
4910     meta = {
4911       description = "Ameliorated interface to the CPAN";
4912       homepage = "https://github.com/jib/cpanplus-devel";
4913       license = with lib.licenses; [ artistic1 gpl1Plus ];
4914       mainProgram = "cpanp";
4915     };
4916   };
4918   CPANUploader = buildPerlPackage {
4919     pname = "CPAN-Uploader";
4920     version = "0.103018";
4921     src = fetchurl {
4922       url = "mirror://cpan/authors/id/R/RJ/RJBS/CPAN-Uploader-0.103018.tar.gz";
4923       hash = "sha256-xP/k7enbebOW47/F583w4umCHh8eCH9SO8+nTJ/J4kg=";
4924     };
4925     propagatedBuildInputs = [ FileHomeDir GetoptLongDescriptive LWPProtocolHttps TermReadKey ];
4926     meta = {
4927       description = "Upload things to the CPAN";
4928       homepage = "https://github.com/rjbs/CPAN-Uploader";
4929       license = with lib.licenses; [ artistic1 gpl1Plus ];
4930       mainProgram = "cpan-upload";
4931     };
4932   };
4934   CryptArgon2 = buildPerlModule {
4935     pname = "Crypt-Argon2";
4936     version = "0.019";
4937     src = fetchurl {
4938       url = "mirror://cpan/authors/id/L/LE/LEONT/Crypt-Argon2-0.019.tar.gz";
4939       hash = "sha256-+Fm+6NL2tAf11EZFwiOu4hL+AFkd/YLlBlrhvnio5Dg=";
4940     };
4941     nativeBuildInputs = [ pkgs.ld-is-cc-hook ];
4942     meta = {
4943       description = "Perl interface to the Argon2 key derivation functions";
4944       license = with lib.licenses; [ cc0 ];
4945     };
4946   };
4948   CryptBcrypt = buildPerlPackage {
4949     pname = "Crypt-Bcrypt";
4950     version = "0.011";
4951     src = fetchurl {
4952       url = "mirror://cpan/authors/id/L/LE/LEONT/Crypt-Bcrypt-0.011.tar.gz";
4953       hash = "sha256-Z/ymiwUm5zTi2VvGsyutAcMZ5Yer9j5M80Itpmu+o6A=";
4954     };
4955     meta = {
4956       description = "modern bcrypt implementation";
4957       license = with lib.licenses; [ artistic1 gpl1Plus ];
4958     };
4959   };
4961   CryptBlowfish = buildPerlPackage {
4962     pname = "Crypt-Blowfish";
4963     version = "2.14";
4964     src = fetchurl {
4965       url = "mirror://cpan/authors/id/D/DP/DPARIS/Crypt-Blowfish-2.14.tar.gz";
4966       hash = "sha256-RrNDH/tr9bnLNZ95Vl1IQH5lKtKwT99cpipp5xl6Z7E=";
4967     };
4968     meta = {
4969       description = "Perl Blowfish encryption module";
4970       license = with lib.licenses; [ bsdOriginalShortened ];
4971     };
4972   };
4974   CryptCAST5_PP = buildPerlPackage {
4975     pname = "Crypt-CAST5_PP";
4976     version = "1.04";
4977     src = fetchurl {
4978       url = "mirror://cpan/authors/id/B/BO/BOBMATH/Crypt-CAST5_PP-1.04.tar.gz";
4979       hash = "sha256-y6mKgEA/uJihTJKPI39EgWtISGQYQM4lFzY8LAcbUyc=";
4980     };
4981     meta = {
4982       description = "CAST5 block cipher in pure Perl";
4983       license = with lib.licenses; [ artistic1 gpl1Plus ];
4984       maintainers = [ maintainers.sgo ];
4985     };
4986   };
4988   CryptCBC = buildPerlPackage {
4989     pname = "Crypt-CBC";
4990     version = "2.33";
4991     src = fetchurl {
4992       url = "mirror://cpan/authors/id/L/LD/LDS/Crypt-CBC-2.33.tar.gz";
4993       hash = "sha256-anDeIbbMfysQAGfo4Yjblm6agAG122+pdufLWylK5kU=";
4994     };
4995     meta = {
4996       description = "Encrypt Data with Cipher Block Chaining Mode";
4997       license = with lib.licenses; [ artistic1 gpl1Plus ];
4998     };
4999   };
5001   CryptCurve25519 = buildPerlPackage {
5002     pname = "Crypt-Curve25519";
5003     version = "0.07";
5004     src = fetchurl {
5005       url = "mirror://cpan/authors/id/K/KA/KARASIK/Crypt-Curve25519-0.07.tar.gz";
5006       hash = "sha256-Z6mIcTclIdb34R/dYnyq21wdVAFCag6c9CFnpDxbSx0=";
5007     };
5008     meta = {
5009       description = "Generate shared secret using elliptic-curve Diffie-Hellman function";
5010       homepage = "https://metacpan.org/release/Crypt-Curve25519";
5011       license = with lib.licenses; [ artistic1 gpl1Plus ];
5012     };
5013   };
5015   CryptDES = buildPerlPackage {
5016     pname = "Crypt-DES";
5017     version = "2.07";
5018     src = fetchurl {
5019       url = "mirror://cpan/authors/id/D/DP/DPARIS/Crypt-DES-2.07.tar.gz";
5020       hash = "sha256-LbHrtYN7TLIAUcDuW3M7RFPjE33wqSMGA0yGdiHt1+c=";
5021     };
5022     meta = {
5023       description = "Perl DES encryption module";
5024       license = with lib.licenses; [ bsdOriginalShortened ];
5025     };
5026   };
5028   CryptDES_EDE3 = buildPerlPackage {
5029     pname = "Crypt-DES_EDE3";
5030     version = "0.01";
5031     src = fetchurl {
5032       url = "mirror://cpan/authors/id/B/BT/BTROTT/Crypt-DES_EDE3-0.01.tar.gz";
5033       hash = "sha256-nLLgS2JenMCDPNSZ92/RJVZYPs7KeCqXWKVeP5aXSNY=";
5034     };
5035     propagatedBuildInputs = [ CryptDES ];
5036     meta = {
5037       description = "Triple-DES EDE encryption/decryption";
5038       license = with lib.licenses; [ artistic1 gpl1Plus ];
5039       maintainers = [ maintainers.sgo ];
5040     };
5041   };
5043   CryptDH = buildPerlPackage {
5044     pname = "Crypt-DH";
5045     version = "0.07";
5046     src = fetchurl {
5047       url = "mirror://cpan/authors/id/M/MI/MITHALDU/Crypt-DH-0.07.tar.gz";
5048       hash = "sha256-yIzzQjsB5nguiYbX/lMEQ2q4SwklxEmMb9+hfvmjf18=";
5049     };
5050     propagatedBuildInputs = [ MathBigIntGMP ];
5051     meta = {
5052       description = "Diffie-Hellman key exchange system";
5053       license = with lib.licenses; [ artistic1 gpl1Plus ];
5054     };
5055   };
5057   CryptDHGMP = buildPerlPackage {
5058     pname = "Crypt-DH-GMP";
5059     version = "0.00012";
5060     src = fetchurl {
5061       url = "mirror://cpan/authors/id/D/DM/DMAKI/Crypt-DH-GMP-0.00012.tar.gz";
5062       hash = "sha256-UeekeuWUz1X2bAdi9mkhVIbn2LNGC9rf55NQzPJtrzg=";
5063     };
5064     buildInputs = [ pkgs.gmp DevelChecklib TestRequires ];
5065     env.NIX_CFLAGS_COMPILE = "-I${pkgs.gmp.dev}/include";
5066     NIX_CFLAGS_LINK = "-L${pkgs.gmp.out}/lib -lgmp";
5067     meta = {
5068       description = "Crypt::DH Using GMP Directly";
5069       license = with lib.licenses; [ artistic1 gpl1Plus ];
5070     };
5071   };
5073   CryptDSA = buildPerlPackage {
5074     pname = "Crypt-DSA";
5075     version = "1.17";
5076     src = fetchurl {
5077       url = "mirror://cpan/authors/id/A/AD/ADAMK/Crypt-DSA-1.17.tar.gz";
5078       hash = "sha256-0bhYX2v3RvduXcXaNkHTJe1la8Ll80S1RRS1XDEAmgM=";
5079     };
5080     propagatedBuildInputs = [ DataBuffer DigestSHA1 FileWhich ];
5081     meta = {
5082       description = "DSA Signatures and Key Generation";
5083       license = with lib.licenses; [ artistic1 gpl1Plus ];
5084       maintainers = [ maintainers.sgo ];
5085     };
5086   };
5088   CryptECB = buildPerlPackage {
5089     pname = "Crypt-ECB";
5090     version = "2.22";
5091     src = fetchurl {
5092       url = "mirror://cpan/authors/id/A/AP/APPEL/Crypt-ECB-2.22.tar.gz";
5093       hash = "sha256-9a9i6QjNMaNLK4ExNaBxgBb9AD/6ACH/vdhMUBWCZ6o=";
5094     };
5095     meta = {
5096       description = "Use block ciphers using ECB mode";
5097       license = with lib.licenses; [ artistic1 gpl1Plus ];
5098     };
5099   };
5101   CryptEksblowfish = buildPerlModule {
5102     pname = "Crypt-Eksblowfish";
5103     version = "0.009";
5104     src = fetchurl {
5105       url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Crypt-Eksblowfish-0.009.tar.gz";
5106       hash = "sha256-PMcSbVhBEHI3qb4txcf7wWfPPEtM40Z4qESLhQdXAUw=";
5107     };
5108     propagatedBuildInputs = [ ClassMix ];
5109     perlPreHook = lib.optionalString (stdenv.hostPlatform.isi686 || stdenv.hostPlatform.isDarwin) "export LD=$CC";
5110     meta = {
5111       description = "Eksblowfish block cipher";
5112       license = with lib.licenses; [ artistic1 gpl1Plus ];
5113     };
5114   };
5116   CryptFormat = buildPerlPackage {
5117     pname = "Crypt-Format";
5118     version = "0.12";
5119     src = fetchurl {
5120       url = "mirror://cpan/authors/id/F/FE/FELIPE/Crypt-Format-0.12.tar.gz";
5121       hash = "sha256-p1cdS+9XeOGln0O2XPLVaAtJ+nu78z89IfRSL0Pmp9o=";
5122     };
5123     buildInputs = [ TestException TestFailWarnings ];
5124     meta = {
5125       description = "Conversion utilities for encryption applications";
5126       license = with lib.licenses; [ artistic1 gpl1Plus ];
5127       maintainers = [ maintainers.sgo ];
5128     };
5129   };
5131   CryptHSXKPasswd = buildPerlPackage {
5132     pname = "Crypt-HSXKPasswd";
5133     version = "3.6";
5134     src = fetchurl {
5135       url = "mirror://cpan/authors/id/B/BA/BARTB/Crypt-HSXKPasswd-v3.6.tar.gz";
5136       hash = "sha256-lZ3MX58BG/ALha0i31ZrerK/XqHTYrDeD7WuKfvEWLM=";
5137     };
5138     nativeBuildInputs = lib.optional stdenv.hostPlatform.isDarwin shortenPerlShebang;
5139     propagatedBuildInputs = [ Clone DateTime FileHomeDir FileShare FileShareDir GetoptLong JSON ListMoreUtils MathRound Readonly TextUnidecode TypeTiny ];
5140     postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
5141       shortenPerlShebang $out/bin/hsxkpasswd
5142     '';
5144     meta = {
5145       description = "Secure memorable password generator";
5146       homepage = "http://www.bartb.ie/hsxkpasswd";
5147       license = with lib.licenses; [ bsd2 ];
5148       maintainers = [ maintainers.dannixon ];
5149       mainProgram = "hsxkpasswd";
5150     };
5151     # Two tests fail as a result of https://github.com/bbusschots/hsxkpasswd/issues/42
5152     # (also see https://github.com/bbusschots/hsxkpasswd/issues/43)
5153     doCheck = false;
5154   };
5156   CryptIDEA = buildPerlPackage {
5157     pname = "Crypt-IDEA";
5158     version = "1.10";
5159     src = fetchurl {
5160       url = "mirror://cpan/authors/id/D/DP/DPARIS/Crypt-IDEA-1.10.tar.gz";
5161       hash = "sha256-M714wRkkoPwf8+7d6UB4y79rbKnt4EbSsvVh6emnIBk=";
5162     };
5163     meta = {
5164       description = "Perl interface to IDEA block cipher";
5165       license = with lib.licenses; [ bsdOriginalShortened ];
5166     };
5167   };
5169   CryptJWT = buildPerlPackage {
5170     pname = "Crypt-JWT";
5171     version = "0.035";
5172     src = fetchurl {
5173       url = "mirror://cpan/authors/id/M/MI/MIK/Crypt-JWT-0.035.tar.gz";
5174       hash = "sha256-XPvVX63DrtNtZ0/AU6zoZ7XT4aTOiiDPu3wmef3wlkE=";
5175     };
5176     propagatedBuildInputs = [ CryptX JSON ];
5177     meta = {
5178       description = "JSON Web Token";
5179       license = with lib.licenses; [ artistic1 gpl1Plus ];
5180     };
5181   };
5183   CryptPassphrase = buildPerlPackage {
5184     pname = "Crypt-Passphrase";
5185     version = "0.016";
5186     src = fetchurl {
5187       url = "mirror://cpan/authors/id/L/LE/LEONT/Crypt-Passphrase-0.016.tar.gz";
5188       hash = "sha256-TOtPi1SsM/PYHJq0euTPoejDbzhJ76ghcDycMH46T8c=";
5189     };
5190     propagatedBuildInputs = [ CryptURandom ];
5191     meta = {
5192       description = "Module for managing passwords in a cryptographically agile manner";
5193       license = with lib.licenses; [ artistic1 gpl1Plus ];
5194     };
5195   };
5197   CryptPassphraseArgon2 = buildPerlPackage {
5198     pname = "Crypt-Passphrase-Argon2";
5199     version = "0.009";
5200     src = fetchurl {
5201       url = "mirror://cpan/authors/id/L/LE/LEONT/Crypt-Passphrase-Argon2-0.009.tar.gz";
5202       hash = "sha256-M39AVZY6EG2bt7tcJvwPSHCGYJ2XKHVgucpEwEPCF1I=";
5203     };
5204     propagatedBuildInputs = with perlPackages; [ CryptArgon2 CryptPassphrase ];
5205     meta = {
5206       description = "Argon2 encoder for Crypt::Passphrase";
5207       license = with lib.licenses; [ artistic1 gpl1Plus ];
5208     };
5209   };
5211   CryptPassphraseBcrypt = buildPerlPackage {
5212     pname = "Crypt-Passphrase-Bcrypt";
5213     version = "0.007";
5214     src = fetchurl {
5215       url = "mirror://cpan/authors/id/L/LE/LEONT/Crypt-Passphrase-Bcrypt-0.007.tar.gz";
5216       hash = "sha256-/k1NHTm9TxODQaJZUFzhE3EnCnZ8nndH90H7dGH9sA8=";
5217     };
5218     propagatedBuildInputs = [ CryptBcrypt CryptPassphrase ];
5219     meta = {
5220       description = "Bcrypt encoder for Crypt::Passphrase";
5221       homepage = "https://github.com/Leont/crypt-passphrase-bcrypt";
5222       license = with lib.licenses; [ artistic1 gpl1Plus ];
5223     };
5224   };
5226   CryptPasswdMD5 = buildPerlPackage {
5227     pname = "Crypt-PasswdMD5";
5228     version = "1.42";
5229     src = fetchurl {
5230       url = "mirror://cpan/authors/id/R/RS/RSAVAGE/Crypt-PasswdMD5-1.42.tgz";
5231       hash = "sha256-/Tlubn9E7rkj6TyZOUC49nqa7Vb8dKrK8Dj8QFPvO1k=";
5232     };
5233     meta = {
5234       description = "Provide interoperable MD5-based crypt() functions";
5235       license = with lib.licenses; [ artistic1 gpl1Plus ];
5236     };
5237   };
5239   CryptPKCS10 = buildPerlModule {
5240     pname = "Crypt-PKCS10";
5241     version = "2.005";
5242     src = fetchurl {
5243       url = "mirror://cpan/authors/id/M/MR/MRSCOTTY/Crypt-PKCS10-2.005.tar.gz";
5244       hash = "sha256-LdEv0JHCPjp8NKZqw1rDq/kHQCOUtVV0mO3kj8QUU6c=";
5245     };
5246     buildInputs = [ CryptX ModuleBuildTiny pkgs.unzip ];
5247     propagatedBuildInputs = [ ConvertASN1 ];
5248     meta = {
5249       description = "Parse PKCS #10 certificate requests";
5250       homepage = "https://github.com/openxpki/Crypt-PKCS10";
5251       license = with lib.licenses; [ gpl1Only ];
5252     };
5253   };
5255   CryptRandomSeed = buildPerlPackage {
5256     pname = "Crypt-Random-Seed";
5257     version = "0.03";
5258     src = fetchurl {
5259       url = "mirror://cpan/authors/id/D/DA/DANAJ/Crypt-Random-Seed-0.03.tar.gz";
5260       hash = "sha256-WT2lS1IsCcwmu8wOTknByOaIpv0zsHJq+AHXIqXI0PE=";
5261     };
5262     propagatedBuildInputs = [ CryptRandomTESHA2 ];
5263     meta = {
5264       description = "Provide strong randomness for seeding";
5265       homepage = "https://github.com/danaj/Crypt-Random-Seed";
5266       license = with lib.licenses; [ artistic1 gpl1Plus ];
5267       maintainers = [ maintainers.sgo ];
5268     };
5269   };
5271   CryptRandom = buildPerlPackage {
5272     pname = "Crypt-Random";
5273     version = "1.54";
5274     src = fetchurl {
5275       url = "mirror://cpan/authors/id/V/VI/VIPUL/Crypt-Random-1.54.tar.gz";
5276       hash = "sha256-1m+OF+3Dh3zHl/3VneU045kGNvjxpecmBiFZr35n2sw=";
5277     };
5278     propagatedBuildInputs = [ ClassLoader MathPari StatisticsChiSquare ];
5279     meta = {
5280       description = "Interface to /dev/random and /dev/urandom";
5281       license = with lib.licenses; [ artistic1 gpl1Plus ];
5282       mainProgram = "makerandom";
5283     };
5284   };
5286   CryptRandomSource = buildPerlModule {
5287     pname = "Crypt-Random-Source";
5288     version = "0.14";
5289     src = fetchurl {
5290       url = "mirror://cpan/authors/id/E/ET/ETHER/Crypt-Random-Source-0.14.tar.gz";
5291       hash = "sha256-7E7OJp+a0ZWMbimOzuLlpDReNX86T/ssdIEWr4du7eY=";
5292     };
5293     buildInputs = [ ModuleBuildTiny TestFatal TestSimple13 ];
5294     propagatedBuildInputs = [ CaptureTiny ModuleFind Moo SubExporter TypeTiny namespaceclean ];
5295     meta = {
5296       description = "Get weak or strong random data from pluggable sources";
5297       homepage = "https://github.com/karenetheridge/Crypt-Random-Source";
5298       license = with lib.licenses; [ artistic1 gpl1Plus ];
5299     };
5300   };
5302   CryptRandomTESHA2 = buildPerlPackage {
5303     pname = "Crypt-Random-TESHA2";
5304     version = "0.01";
5305     src = fetchurl {
5306       url = "mirror://cpan/authors/id/D/DA/DANAJ/Crypt-Random-TESHA2-0.01.tar.gz";
5307       hash = "sha256-oJErQsUr4XPaUo1VJ+QNlnMkvASseNn8LdyR/xb+ljM=";
5308     };
5309     meta = {
5310       description = "Random numbers using timer/schedule entropy, aka userspace voodoo entropy";
5311       homepage = "https://github.com/danaj/Crypt-Random-TESHA2";
5312       license = with lib.licenses; [ artistic1 gpl1Plus ];
5313     };
5314   };
5316   CryptRC4 = buildPerlPackage {
5317     pname = "Crypt-RC4";
5318     version = "2.02";
5319     src = fetchurl {
5320       url = "mirror://cpan/authors/id/S/SI/SIFUKURT/Crypt-RC4-2.02.tar.gz";
5321       hash = "sha256-XsRCXGvCIgeIljC+c1DZlobmKkTGE2lgEQIDzVlK4Oo=";
5322     };
5323     meta = {
5324       description = "Perl implementation of the RC4 encryption algorithm";
5325       license = with lib.licenses; [ artistic1 gpl1Plus ];
5326     };
5327   };
5329   CryptRandPasswd = buildPerlPackage {
5330     pname = "Crypt-RandPasswd";
5331     version = "0.07";
5332     src = fetchurl {
5333       url = "mirror://cpan/authors/id/J/JA/JANITOR/Crypt-RandPasswd-0.07.tar.gz";
5334       hash = "sha256-bd26Sdx+DwBRr6oKvhbxN4OiRM0eu1+B2qEay2KKSWE=";
5335     };
5336     meta = {
5337       description = "Random password generator based on FIPS-181";
5338       license = with lib.licenses; [ artistic1 gpl1Plus ];
5339     };
5340   };
5342   CryptRIPEMD160 = buildPerlPackage {
5343     pname = "Crypt-RIPEMD160";
5344     version = "0.08";
5345     src = fetchurl {
5346       url = "mirror://cpan/authors/id/T/TO/TODDR/Crypt-RIPEMD160-0.08.tar.gz";
5347       hash = "sha256-NNHIdgf2yd76s3QbdtMbzPu21NIBr4Dg9gg8N4EwsjI=";
5348     };
5349     meta = {
5350       description = "Perl extension for the RIPEMD-160 Hash function";
5351       homepage = "https://wiki.github.com/toddr/Crypt-RIPEMD160";
5352       license = with lib.licenses; [ artistic1 gpl1Plus ];
5353       maintainers = [ maintainers.sgo ];
5354     };
5355   };
5357   CryptMySQL = buildPerlModule {
5358     pname = "Crypt-MySQL";
5359     version = "0.04";
5360     src = fetchurl {
5361       url = "mirror://cpan/authors/id/I/IK/IKEBE/Crypt-MySQL-0.04.tar.gz";
5362       hash = "sha256-k+vfqu/P6atoPwEhyF8kR12Bl/C87EYBghnkERQ03eM=";
5363     };
5364     propagatedBuildInputs = [ DigestSHA1 ];
5365     perlPreHook = lib.optionalString (stdenv.hostPlatform.isi686 || stdenv.hostPlatform.isDarwin) "export LD=$CC";
5366     meta = {
5367       description = "Emulate MySQL PASSWORD() function";
5368       license = with lib.licenses; [ artistic1 gpl1Plus ];
5369     };
5370   };
5372   CryptRijndael = buildPerlPackage {
5373     pname = "Crypt-Rijndael";
5374     version = "1.16";
5375     src = fetchurl {
5376       url = "mirror://cpan/authors/id/L/LE/LEONT/Crypt-Rijndael-1.16.tar.gz";
5377       hash = "sha256-ZUAIXjgEuCpvB1LBEiz3jK3SIZkBNt1v1MCX0FbITUA=";
5378     };
5379     meta = {
5380       description = "Crypt::CBC compliant Rijndael encryption module";
5381       license = with lib.licenses; [ gpl3Only ];
5382     };
5383   };
5385   CryptUnixCryptXS = buildPerlPackage {
5386     pname = "Crypt-UnixCrypt_XS";
5387     version = "0.11";
5388     src = fetchurl {
5389       url = "mirror://cpan/authors/id/B/BO/BORISZ/Crypt-UnixCrypt_XS-0.11.tar.gz";
5390       hash = "sha256-Yus0EsLJG9TcK4pNnuJtW94usRkycDtu6sR3Pk0fT6o=";
5391     };
5392     meta = {
5393       description = "Perl xs interface for a portable traditional crypt function";
5394       license = with lib.licenses; [ artistic1 gpl1Plus ];
5395     };
5396   };
5398   CryptURandom = buildPerlPackage {
5399     pname = "Crypt-URandom";
5400     version = "0.39";
5401     src = fetchurl {
5402       url = "mirror://cpan/authors/id/D/DD/DDICK/Crypt-URandom-0.39.tar.gz";
5403       hash = "sha256-Jol7PPualWAJFRLWCHMaPVv08pn20Pj3LIXzmQEkQSI=";
5404     };
5405     meta = {
5406       description = "Provide non blocking randomness";
5407       license = with lib.licenses; [ artistic1 gpl1Plus ];
5408       maintainers = [ maintainers.sgo ];
5409     };
5410   };
5412   CryptScryptKDF = buildPerlModule {
5413     pname = "Crypt-ScryptKDF";
5414     version = "0.010";
5415     src = fetchurl {
5416       url = "mirror://cpan/authors/id/M/MI/MIK/Crypt-ScryptKDF-0.010.tar.gz";
5417       hash = "sha256-fRbulczj61TBdGc6cpn0wIb7o6yF+EfQ4TT+7V93YBc=";
5418     };
5419     propagatedBuildInputs = [ CryptOpenSSLRandom ];
5420     perlPreHook = "export LD=$CC";
5421     meta = {
5422       description = "Scrypt password based key derivation function";
5423       homepage = "https://github.com/DCIT/perl-Crypt-ScryptKDF";
5424       license = with lib.licenses; [ artistic1 gpl1Plus ];
5425       maintainers = [ maintainers.sgo ];
5426     };
5427   };
5429   CryptSmbHash = buildPerlPackage {
5430     pname = "Crypt-SmbHash";
5431     version = "0.12";
5432     src = fetchurl {
5433       url = "mirror://cpan/authors/id/B/BJ/BJKUIT/Crypt-SmbHash-0.12.tar.gz";
5434       hash = "sha256-aMSsfqv6lX3PiUwsI7zsCW+H6M8G3t/Lv3AuVTHbsTc=";
5435     };
5436     meta = {
5437       description = "Perl-only implementation of lanman and nt md4 hash functions, for use in Samba style smbpasswd entries";
5438       license = with lib.licenses; [ gpl2Plus ];
5439     };
5440   };
5442   CryptSodium = buildPerlPackage {
5443     pname = "Crypt-Sodium";
5444     version = "0.11";
5445     src = fetchurl {
5446       url = "mirror://cpan/authors/id/M/MG/MGREGORO/Crypt-Sodium-0.11.tar.gz";
5447       hash = "sha256-kHxzoQVs6gV9qYGa6kipKreG5qqq858c3ZZHsj8RbHg=";
5448     };
5449     env.NIX_CFLAGS_COMPILE = "-I${pkgs.libsodium.dev}/include";
5450     NIX_CFLAGS_LINK = "-L${pkgs.libsodium.out}/lib -lsodium";
5451     meta = {
5452       description = "Perl bindings for libsodium (NaCL)";
5453       homepage = "https://metacpan.org/release/Crypt-Sodium";
5454       license = with lib.licenses; [ artistic1 gpl1Plus ];
5455       maintainers = [ maintainers.sgo ];
5456     };
5457   };
5459   CryptTwofish = buildPerlPackage {
5460     pname = "Crypt-Twofish";
5461     version = "2.18";
5462     src = fetchurl {
5463       url = "mirror://cpan/authors/id/A/AM/AMS/Crypt-Twofish-2.18.tar.gz";
5464       hash = "sha256-WIFVXWGHlyojgqoNTbLXTJcLBndMYhtspSNzkjbS1QE=";
5465     };
5466     meta = {
5467       description = "Twofish Encryption Algorithm";
5468       license = with lib.licenses; [ artistic1 gpl1Plus ];
5469       maintainers = [ maintainers.sgo ];
5470     };
5471   };
5473   CryptOpenPGP = buildPerlPackage {
5474     pname = "Crypt-OpenPGP";
5475     version = "1.12";
5476     src = fetchurl {
5477       url = "mirror://cpan/authors/id/S/SR/SROMANOV/Crypt-OpenPGP-1.12.tar.gz";
5478       hash = "sha256-6Kf/Kpk7dqaa1t/9vlV1W+Vni4Tm7ElNzZq5Zvdm9Q4=";
5479     };
5480     patches = [
5481       # See https://github.com/NixOS/nixpkgs/pull/93599
5482       ../development/perl-modules/crypt-openpgp-remove-impure-keygen-tests.patch
5483     ];
5484     buildInputs = [ TestException ];
5485     propagatedBuildInputs = [ AltCryptRSABigInt CryptCAST5_PP CryptDES_EDE3 CryptDSA CryptIDEA CryptRIPEMD160 CryptRijndael CryptTwofish FileHomeDir LWP ];
5487     nativeBuildInputs = lib.optional stdenv.hostPlatform.isDarwin shortenPerlShebang;
5488     postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
5489       shortenPerlShebang $out/bin/pgplet
5490     '';
5491     doCheck = false; /* test fails with 'No random source available!' */
5493     meta = {
5494       description = "Pure-Perl OpenPGP implementation";
5495       homepage = "https://github.com/btrott/Crypt-OpenPGP";
5496       license = with lib.licenses; [ artistic1 gpl1Plus ];
5497       maintainers = [ maintainers.sgo ];
5498       mainProgram = "pgplet";
5499     };
5500   };
5502   CryptOpenSSLAES = buildPerlPackage {
5503     pname = "Crypt-OpenSSL-AES";
5504     version = "0.17";
5505     src = fetchurl {
5506       url = "mirror://cpan/authors/id/T/TI/TIMLEGGE/Crypt-OpenSSL-AES-0.17.tar.gz";
5507       hash = "sha256-7+GBsYxtIqc/LlNWOQ6Fdyes5UY2JeIhHdhgIyvtO7c=";
5508     };
5509     buildInputs = [ CryptOpenSSLGuess FileWhich pkgs.openssl ];
5510     env.NIX_CFLAGS_COMPILE = "-I${pkgs.openssl.dev}/include";
5511     NIX_CFLAGS_LINK = "-L${lib.getLib pkgs.openssl}/lib -lcrypto";
5512     meta = {
5513       description = "Perl wrapper around OpenSSL's AES library";
5514       license = with lib.licenses; [ artistic1 gpl1Plus ];
5515     };
5516   };
5518   CryptOpenSSLBignum = buildPerlPackage {
5519     pname = "Crypt-OpenSSL-Bignum";
5520     version = "0.09";
5521     src = fetchurl {
5522       url = "mirror://cpan/authors/id/K/KM/KMX/Crypt-OpenSSL-Bignum-0.09.tar.gz";
5523       hash = "sha256-I05y+4OW1FUn5v1F5DdZxcPzogjPjynmoiFhqZb9Qtw=";
5524     };
5525     env.NIX_CFLAGS_COMPILE = "-I${pkgs.openssl.dev}/include";
5526     NIX_CFLAGS_LINK = "-L${lib.getLib pkgs.openssl}/lib -lcrypto";
5527     meta = {
5528       description = "OpenSSL's multiprecision integer arithmetic";
5529       license = with lib.licenses; [ artistic1 gpl1Plus ];
5530     };
5531   };
5533   CryptOpenSSLGuess = buildPerlPackage {
5534     pname = "Crypt-OpenSSL-Guess";
5535     version = "0.15";
5536     src = fetchurl {
5537       url = "mirror://cpan/authors/id/A/AK/AKIYM/Crypt-OpenSSL-Guess-0.15.tar.gz";
5538       hash = "sha256-HFAzOBgZ/bTJCH3SkbkOxw54ENMdV+remziOzP1wOG0=";
5539     };
5540     meta = {
5541       description = "Guess OpenSSL include path";
5542       homepage = "https://github.com/akiym/Crypt-OpenSSL-Guess";
5543       license = with lib.licenses; [ artistic1 gpl1Plus ];
5544     };
5545   };
5547   CryptOpenSSLRandom = buildPerlPackage {
5548     pname = "Crypt-OpenSSL-Random";
5549     version = "0.15";
5550     src = fetchurl {
5551       url = "mirror://cpan/authors/id/R/RU/RURBAN/Crypt-OpenSSL-Random-0.15.tar.gz";
5552       hash = "sha256-8IdvqhujER45uGqnMMYDIR7/KQXkYMcqV7YejPR1zvQ=";
5553     };
5554     env.NIX_CFLAGS_COMPILE = "-I${pkgs.openssl.dev}/include";
5555     NIX_CFLAGS_LINK = "-L${lib.getLib pkgs.openssl}/lib -lcrypto";
5556     OPENSSL_PREFIX = pkgs.openssl;
5557     buildInputs = [ CryptOpenSSLGuess ];
5558     meta = {
5559       description = "OpenSSL/LibreSSL pseudo-random number generator access";
5560       license = with lib.licenses; [ artistic1 gpl1Plus ];
5561     };
5562   };
5564   CryptOpenSSLRSA = buildPerlPackage {
5565     pname = "Crypt-OpenSSL-RSA";
5566     version = "0.33";
5567     src = fetchurl {
5568       url = "mirror://cpan/authors/id/T/TO/TODDR/Crypt-OpenSSL-RSA-0.33.tar.gz";
5569       hash = "sha256-vb5jD21vVAMldGrZmXcnKshmT/gb0Z8K2rptb0Xv2GQ=";
5570     };
5571     propagatedBuildInputs = [ CryptOpenSSLRandom ];
5572     env.NIX_CFLAGS_COMPILE = "-I${pkgs.openssl.dev}/include";
5573     NIX_CFLAGS_LINK = "-L${lib.getLib pkgs.openssl}/lib -lcrypto";
5574     OPENSSL_PREFIX = pkgs.openssl;
5575     buildInputs = [ CryptOpenSSLGuess ];
5576     meta = {
5577       description = "RSA encoding and decoding, using the openSSL libraries";
5578       license = with lib.licenses; [ artistic1 gpl1Plus ];
5579     };
5580   };
5582   CryptOpenSSLX509 = buildPerlPackage {
5583     pname = "Crypt-OpenSSL-X509";
5584     version = "1.915";
5585     src = fetchurl {
5586       url = "mirror://cpan/authors/id/J/JO/JONASBN/Crypt-OpenSSL-X509-1.915.tar.gz";
5587       hash = "sha256-xNvBbE/CloV4I3v8MkWH/9eSSacQFQJlLbnjjUSJUX8=";
5588     };
5589     env.NIX_CFLAGS_COMPILE = "-I${pkgs.openssl.dev}/include";
5590     NIX_CFLAGS_LINK = "-L${lib.getLib pkgs.openssl}/lib -lcrypto";
5591     OPENSSL_PREFIX = pkgs.openssl;
5592     buildInputs = [ CryptOpenSSLGuess ];
5593     propagatedBuildInputs = [ ConvertASN1 ];
5594     meta = {
5595       description = "Perl extension to OpenSSL's X509 API";
5596       homepage = "https://github.com/dsully/perl-crypt-openssl-x509";
5597       license = with lib.licenses; [ artistic1 gpl1Plus ];
5598       maintainers = [ maintainers.sgo ];
5599     };
5600   };
5602   CryptPBKDF2 = buildPerlPackage {
5603     pname = "Crypt-PBKDF2";
5604     version = "0.161520";
5605     src = fetchurl {
5606       url = "mirror://cpan/authors/id/A/AR/ARODLAND/Crypt-PBKDF2-0.161520.tar.gz";
5607       hash = "sha256-l9+nmjCaCG4YSk5hBH+KEP+z2wUQJefSIqJfGRMLpBc=";
5608     };
5609     buildInputs = [ TestFatal ];
5610     propagatedBuildInputs = [ DigestHMAC DigestSHA3 Moo TypeTiny namespaceautoclean strictures ];
5611     meta = {
5612       description = "PBKDF2 password hash algorithm";
5613       homepage = "https://metacpan.org/release/Crypt-PBKDF2";
5614       license = with lib.licenses; [ artistic1 gpl1Plus ];
5615       maintainers = [ maintainers.sgo ];
5616     };
5617   };
5619   CryptPerl = buildPerlPackage {
5620     pname = "Crypt-Perl";
5621     version = "0.38";
5622     src = fetchurl {
5623       url = "mirror://cpan/authors/id/F/FE/FELIPE/Crypt-Perl-0.38.tar.gz";
5624       hash = "sha256-eJdUj7AeFqIK5JDt3UZX+Br3sZKEFLkvbbQsY10ax+A=";
5625     };
5626     nativeCheckInputs = [ pkgs.openssl MathBigIntGMP ];
5627     buildInputs = [ CallContext ExtUtilsMakeMakerCPANfile FileSlurp FileWhich TestClass TestDeep TestException TestFailWarnings TestNoWarnings ];
5628     propagatedBuildInputs = [ BytesRandomSecureTiny ClassAccessor ConvertASN1 CryptFormat MathProvablePrime SymbolGet TryTiny ];
5629     meta = {
5630       description = "Cryptography in pure Perl";
5631       license = with lib.licenses; [ artistic1 gpl1Plus ];
5632       maintainers = [ maintainers.sgo ];
5633     };
5634   };
5636   CryptEd25519 = buildPerlPackage {
5637     pname = "Crypt-Ed25519";
5638     version = "1.05";
5639     src = fetchurl {
5640       url = "mirror://cpan/authors/id/M/ML/MLEHMANN/Crypt-Ed25519-1.05.tar.gz";
5641       hash = "sha256-sdEaWU/rUeQG2BsUfcDRClV8z0yrgcDbP4mBAmd9JKg=";
5642     };
5644     nativeBuildInputs = [ CanaryStability ];
5645     buildInputs = [ CanaryStability ];
5647     meta = {
5648       description = "Minimal Ed25519 bindings";
5649       license = with lib.licenses; [ artistic2 ];
5650       maintainers = [ maintainers.thoughtpolice ];
5651     };
5652   };
5654   CryptSSLeay = buildPerlPackage {
5655     pname = "Crypt-SSLeay";
5656     version = "0.73_06";
5657     src = fetchurl {
5658       url = "mirror://cpan/authors/id/N/NA/NANIS/Crypt-SSLeay-0.73_06.tar.gz";
5659       hash = "sha256-+OzKRch+uRMlmSsT8FlPgI5vG8TDuafxQbmoODhNJSw=";
5660     };
5662     makeMakerFlags = [ "--libpath=${lib.getLib pkgs.openssl}/lib" "--incpath=${pkgs.openssl.dev}/include" ];
5663     buildInputs = [ PathClass ];
5664     propagatedBuildInputs = [ BytesRandomSecure LWPProtocolHttps ];
5665     meta = {
5666       description = "OpenSSL support for LWP";
5667       license = with lib.licenses; [ artistic2 ];
5668     };
5669   };
5671   CSSDOM = buildPerlPackage {
5672     pname = "CSS-DOM";
5673     version = "0.17";
5674     src = fetchurl {
5675       url = "mirror://cpan/authors/id/S/SP/SPROUT/CSS-DOM-0.17.tar.gz";
5676       hash = "sha256-Zbl46/PDmF5V7jK7baHp+upJSoXTAFxjuux+lphZ8CY=";
5677     };
5679     patches = [
5680       # Replace apostrophe as package separator
5681       # https://rt.cpan.org/Public/Bug/Display.html?id=146661
5682       ../development/perl-modules/CSSDOM-replace-apostrophe.patch
5683     ];
5685     propagatedBuildInputs = [ Clone ];
5686     meta = {
5687       description = "Document Object Model for Cascading Style Sheets";
5688       license = with lib.licenses; [ artistic1 gpl1Plus ];
5689     };
5690   };
5692   CSSMinifier = buildPerlPackage {
5693     pname = "CSS-Minifier";
5694     version = "0.01";
5695     src = fetchurl {
5696       url = "mirror://cpan/authors/id/P/PM/PMICHAUX/CSS-Minifier-0.01.tar.gz";
5697       hash = "sha256-0Kk0m46LfoOrcM+IVM+7Qv8pwfbHyCmPIlfdIaoMf+8=";
5698     };
5699     meta = {
5700       description = "Perl extension for minifying CSS";
5701       license = with lib.licenses; [ artistic1 ];
5702     };
5703   };
5705   CSSMinifierXS = buildPerlPackage {
5706     pname = "CSS-Minifier-XS";
5707     version = "0.13";
5708     src = fetchurl {
5709       url = "mirror://cpan/authors/id/G/GT/GTERMARS/CSS-Minifier-XS-0.13.tar.gz";
5710       hash = "sha256-xBnjCM3IKvHCXWuNB7L/JjR6Yit6Y+wghWq+jbQFH4I=";
5711     };
5712     perlPreHook = lib.optionalString (stdenv.hostPlatform.isi686 || stdenv.hostPlatform.isDarwin) "export LD=$CC";
5713     buildInputs = [ TestDiagINC ];
5714     meta = {
5715       description = "XS based CSS minifier";
5716       homepage = "https://metacpan.org/release/CSS-Minifier-XS";
5717       license = with lib.licenses; [ artistic1 gpl1Plus ];
5718     };
5719   };
5721   CSSSquish = buildPerlPackage {
5722     pname = "CSS-Squish";
5723     version = "0.10";
5724     src = fetchurl {
5725       url = "mirror://cpan/authors/id/T/TS/TSIBLEY/CSS-Squish-0.10.tar.gz";
5726       hash = "sha256-ZfwNaazR+jPZpMOwnM4PvXN9dHsfzE6dh+vZEFDLy04=";
5727     };
5728     buildInputs = [ TestLongString ];
5729     propagatedBuildInputs = [ URI ];
5730     meta = {
5731       description = "Compact many CSS files into one big file";
5732       license = with lib.licenses; [ artistic1 gpl1Plus ];
5733     };
5734   };
5736   Curses = buildPerlPackage {
5737     pname = "Curses";
5738     version = "1.44";
5739     src = fetchurl {
5740       url = "mirror://cpan/authors/id/G/GI/GIRAFFED/Curses-1.44.tar.gz";
5741       hash = "sha256-ou+4x8iG1pL/xNshNhx2gJoGXliOQ/rQ1n5E751CvTA=";
5742     };
5743     preConfigure = ''
5744       substituteInPlace makeConfig \
5745         --replace '#! /usr/bin/perl' '#!${perl}/bin/perl'
5746     '';
5747     propagatedBuildInputs = [ pkgs.ncurses ];
5748     NIX_CFLAGS_LINK = "-L${pkgs.ncurses.out}/lib -lncurses";
5749     meta = {
5750       description = "Perl bindings to ncurses";
5751       license = with lib.licenses; [ artistic1 ];
5752     };
5753   };
5755   CursesUI = buildPerlPackage {
5756     pname = "Curses-UI";
5757     version = "0.9609";
5758     src = fetchurl {
5759       url = "mirror://cpan/authors/id/M/MD/MDXI/Curses-UI-0.9609.tar.gz";
5760       hash = "sha256-CrgnpRO24UQDGE+wZajqHS69oSLSF4y/RceB8xEkDq8=";
5761     };
5762     propagatedBuildInputs = [ Curses TermReadKey ];
5763     meta = {
5764       description = "Curses based OO user interface framework";
5765       license = with lib.licenses; [ artistic1 gpl1Plus ];
5766     };
5767   };
5769   CursesUIGrid = buildPerlPackage {
5770     pname = "Curses-UI-Grid";
5771     version = "0.15";
5772     src = fetchurl {
5773       url = "mirror://cpan/authors/id/A/AD/ADRIANWIT/Curses-UI-Grid-0.15.tar.gz";
5774       hash = "sha256-CCDKSp+5SbqPr5evV0AYuu/7aU6YDFCHu2UiqnC52+w=";
5775     };
5776     propagatedBuildInputs = [ CursesUI TestPod TestPodCoverage ];
5777     meta = {
5778       description = "Create and manipulate data in grid model";
5779       license = with lib.licenses; [ artistic1 gpl1Plus ];
5780     };
5781   };
5783   CryptX = buildPerlPackage {
5784     pname = "CryptX";
5785     version = "0.080";
5786     src = fetchurl {
5787       url = "mirror://cpan/authors/id/M/MI/MIK/CryptX-0.080.tar.gz";
5788       hash = "sha256-tFe3khlKbJwT8G/goLXqFYllwygvOFypPh8AorM+fok=";
5789     };
5790     meta = {
5791       description = "Cryptographic toolkit";
5792       license = with lib.licenses; [ artistic1 gpl1Plus ];
5793     };
5794   };
5796   CryptX509 = buildPerlPackage {
5797     pname = "Crypt-X509";
5798     version = "0.55";
5799     src = fetchurl {
5800       url = "mirror://cpan/authors/id/M/MR/MRSCOTTY/Crypt-X509-0.55.tar.gz";
5801       hash = "sha256-FHlrEdFfdq10ROeKYZtw/92RMIaN0LANhYV5yTA4Icc=";
5802     };
5803     propagatedBuildInputs = [ ConvertASN1 ];
5804     meta = {
5805       description = "Parse a X.509 certificate";
5806       license = with lib.licenses; [ artistic1 gpl1Plus ];
5807     };
5808   };
5810   CwdGuard = buildPerlModule {
5811     pname = "Cwd-Guard";
5812     version = "0.05";
5813     src = fetchurl {
5814       url = "mirror://cpan/authors/id/K/KA/KAZEBURO/Cwd-Guard-0.05.tar.gz";
5815       hash = "sha256-evx8orlQLkQCQZOK2Xo+fr1VAYDr1hQuHbOUGGsmjnc=";
5816     };
5817     buildInputs = [ TestRequires ];
5818     meta = {
5819       description = "Temporary changing working directory (chdir)";
5820       license = with lib.licenses; [ artistic1 gpl1Plus ];
5821     };
5822   };
5824   DataClone = buildPerlPackage {
5825     pname = "Data-Clone";
5826     version = "0.004";
5827     src = fetchurl {
5828       url = "mirror://cpan/authors/id/G/GF/GFUJI/Data-Clone-0.004.tar.gz";
5829       hash = "sha256-L+XheYgqa5Jt/vChCLSiyHof+waJK88vuI5Mj0uEODw=";
5830     };
5831     buildInputs = [ TestRequires ];
5832     patches = [
5833       ../development/perl-modules/Data-Clone-fix-apostrophe-package-separator.patch
5834     ];
5835     meta = {
5836       description = "Polymorphic data cloning";
5837       license = with lib.licenses; [ artistic1 gpl1Plus ];
5838     };
5839   };
5841   DataCompactReadonly = buildPerlPackage {
5842     pname = "Data-CompactReadonly";
5843     version = "0.1.0";
5844     src = fetchurl {
5845       url = "mirror://cpan/authors/id/D/DC/DCANTRELL/Data-CompactReadonly-0.1.0.tar.gz";
5846       hash = "sha256-fVYJCEz1E7p6d4u1lSNHDoNXdn1ZHL1CxYTgPfO+xug=";
5847     };
5848     propagatedBuildInputs = [ DataIEEE754 DevelStackTrace ScalarType StringBinaryInterpolation TestDifferences TestException ];
5849     meta = {
5850       description = "Compact Read Only Database that consumes very little memory";
5851       license = with lib.licenses; [ artistic1 gpl2Only ];
5852     };
5853   };
5855   DataCompare = buildPerlPackage {
5856     pname = "Data-Compare";
5857     version = "1.29";
5858     src = fetchurl {
5859       url = "mirror://cpan/authors/id/D/DC/DCANTRELL/Data-Compare-1.29.tar.gz";
5860       hash = "sha256-U8nbO5MmPIiqo8QHLYGere0CTXo2s4wMN3N9KI1a+ow=";
5861     };
5862     propagatedBuildInputs = [ Clone FileFindRule ];
5863     meta = {
5864       description = "Compare perl data structures";
5865       license = with lib.licenses; [ artistic1 gpl1Plus ];
5866     };
5867   };
5869   DataDump = buildPerlPackage {
5870     pname = "Data-Dump";
5871     version = "1.25";
5872     src = fetchurl {
5873       url = "mirror://cpan/authors/id/G/GA/GARU/Data-Dump-1.25.tar.gz";
5874       hash = "sha256-pKpuDdvznVrUm93+D4nZ2oZOO8APYnEl0bxYBHL1P70=";
5875     };
5876     meta = {
5877       description = "Pretty printing of data structures";
5878       license = with lib.licenses; [ artistic1 gpl1Plus ];
5879     };
5880   };
5882   DataDumperAutoEncode = buildPerlModule {
5883     pname = "Data-Dumper-AutoEncode";
5884     version = "1.00";
5885     src = fetchurl {
5886       url = "mirror://cpan/authors/id/B/BA/BAYASHI/Data-Dumper-AutoEncode-1.00.tar.gz";
5887       hash = "sha256-LZoCYq1EPTIdxInvbfp7Pu0RonCKddOX03G7JYXl7KE=";
5888     };
5889     buildInputs = [ ModuleBuildPluggable ModuleBuildPluggableCPANfile ];
5890     propagatedBuildInputs = [ IOInteractiveTiny ];
5891     meta = {
5892       description = "Dump with recursive encoding";
5893       license = with lib.licenses; [ artistic2 ];
5894       mainProgram = "edumper";
5895     };
5896   };
5898   DataDumperConcise = buildPerlPackage {
5899     pname = "Data-Dumper-Concise";
5900     version = "2.023";
5901     src = fetchurl {
5902       url = "mirror://cpan/authors/id/E/ET/ETHER/Data-Dumper-Concise-2.023.tar.gz";
5903       hash = "sha256-psIvETyvMRN1kN7xtwKKfnGO+s4yKCctBnLCXgNdWFM=";
5904     };
5905     meta = {
5906       description = "Less indentation and newlines plus sub deparsing";
5907       license = with lib.licenses; [ artistic1 gpl1Plus ];
5908     };
5909   };
5911   DataEntropy = buildPerlModule {
5912     pname = "Data-Entropy";
5913     version = "0.007";
5914     src = fetchurl {
5915       url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Data-Entropy-0.007.tar.gz";
5916       hash = "sha256-JhHEoaMDhZTXnqTtFNnhWpr493EF9RZneV/k+KU0J+Q=";
5917     };
5918     propagatedBuildInputs = [ CryptRijndael DataFloat HTTPLite ParamsClassify ];
5919     meta = {
5920       description = "Entropy (randomness) management";
5921       license = with lib.licenses; [ artistic1 gpl1Plus ];
5922     };
5923   };
5925   DataFloat = buildPerlModule {
5926     pname = "Data-Float";
5927     version = "0.013";
5928     src = fetchurl {
5929       url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Data-Float-0.013.tar.gz";
5930       hash = "sha256-4rFSPYWJMLi729GW8II19eZ4uEkZuodxLiYxO5wnUYo=";
5931     };
5932     meta = {
5933       description = "Details of the floating point data type";
5934       license = with lib.licenses; [ artistic1 gpl1Plus ];
5935     };
5936   };
5938   DataFormValidator = buildPerlPackage {
5939     pname = "Data-FormValidator";
5940     version = "4.88";
5941     src = fetchurl {
5942       url = "mirror://cpan/authors/id/D/DF/DFARRELL/Data-FormValidator-4.88.tar.gz";
5943       hash = "sha256-waU5+RySy82KjYNZfsmnZD/NjM9alOFTgsN2UokXAGY=";
5944     };
5945     propagatedBuildInputs = [ DateCalc EmailValid FileMMagic ImageSize MIMETypes RegexpCommon ];
5946     buildInputs = [ CGI ];
5947     meta = {
5948       description = "Validates user input (usually from an HTML form) based on input profile";
5949       license = with lib.licenses; [ artistic1 gpl1Plus ];
5950     };
5951   };
5953   DataGUID = buildPerlPackage {
5954     pname = "Data-GUID";
5955     version = "0.051";
5956     src = fetchurl {
5957       url = "mirror://cpan/authors/id/R/RJ/RJBS/Data-GUID-0.051.tar.gz";
5958       hash = "sha256-aOp3xz/KiROC8gbhJEkJRQG2+/Llf1SQLVBkInz9ji4=";
5959     };
5960     propagatedBuildInputs = [ DataUUID SubExporter ];
5961     meta = {
5962       description = "Globally unique identifiers";
5963       homepage = "https://github.com/rjbs/Data-GUID";
5964       license = with lib.licenses; [ artistic1 gpl1Plus ];
5965     };
5966   };
5968   DataHexDump = buildPerlPackage {
5969     pname = "Data-HexDump";
5970     version = "0.04";
5971     src = fetchurl {
5972       url = "mirror://cpan/authors/id/N/NE/NEILB/Data-HexDump-0.04.tar.gz";
5973       hash = "sha256-vDb0BEOKw2rSuSlVOSJ9Nvmc0WI/HjR693xZTEDMvPg=";
5974     };
5975     meta = {
5976       description = "Hexadecial Dumper";
5977       homepage = "https://github.com/neilb/Data-HexDump";
5978       license = with lib.licenses; [ artistic1 gpl1Plus ];
5979       maintainers = with maintainers; [ AndersonTorres ];
5980       mainProgram = "hexdump";
5981     };
5982   };
5984   DataHexdumper = buildPerlPackage {
5985     pname = "Data-Hexdumper";
5986     version = "3.0001";
5987     src = fetchurl {
5988       url = "mirror://cpan/authors/id/D/DC/DCANTRELL/Data-Hexdumper-3.0001.tar.gz";
5989       hash = "sha256-+SQ8vor/7VBF/k31BXJqenKJRx4wxRrAZbPtbODRpgQ=";
5990     };
5991     meta = {
5992       description = "Make binary data human-readable";
5993       license = with lib.licenses; [ artistic1 gpl2Only ];
5994     };
5995   };
5997   DataHierarchy = buildPerlPackage {
5998     pname = "Data-Hierarchy";
5999     version = "0.34";
6000     src = fetchurl {
6001       url = "mirror://cpan/authors/id/C/CL/CLKAO/Data-Hierarchy-0.34.tar.gz";
6002       hash = "sha256-s6jmK1Pin3HdWYmu75n7+vH0tuJyoGgAOBNg1Z6f2e0=";
6003     };
6004     buildInputs = [ TestException ];
6005     meta = {
6006       description = "Handle data in a hierarchical structure";
6007       license = with lib.licenses; [ artistic1 gpl1Plus ];
6008     };
6009   };
6011   DataICal = buildPerlPackage {
6012     pname = "Data-ICal";
6013     version = "0.24";
6014     src = fetchurl {
6015       url = "mirror://cpan/authors/id/B/BP/BPS/Data-ICal-0.24.tar.gz";
6016       hash = "sha256-czHHyEiGxTM3wNuCNhXg5xNKjxPv0oTlwgcm1bzVLf8=";
6017     };
6018     buildInputs = [ TestLongString TestNoWarnings TestWarn ];
6019     propagatedBuildInputs = [ ClassReturnValue TextvFileasData ];
6020     meta = {
6021       description = "Generates iCalendar (RFC 2445) calendar files";
6022       license = with lib.licenses; [ artistic1 gpl1Plus ];
6023     };
6024   };
6026   DataIEEE754 = buildPerlPackage {
6027     pname = "Data-IEEE754";
6028     version = "0.02";
6029     src = fetchurl {
6030       url = "mirror://cpan/authors/id/M/MA/MAXMIND/Data-IEEE754-0.02.tar.gz";
6031       hash = "sha256-xvSrE0ZygjQTtQ8HR5saGwUfTO5C3Tzn6xWD1mkbZx0=";
6032     };
6033     buildInputs = [ TestBits ];
6034     meta = {
6035       description = "Pack and unpack big-endian IEEE754 floats and doubles";
6036       homepage = "https://metacpan.org/release/Data-IEEE754";
6037       license = with lib.licenses; [ artistic2 ];
6038     };
6039   };
6041   DataInteger = buildPerlModule {
6042     pname = "Data-Integer";
6043     version = "0.006";
6044     src = fetchurl {
6045       url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Data-Integer-0.006.tar.gz";
6046       hash = "sha256-Y7d+3jtjnONRUlA0hjYpr5iavL/0qwOxT8Tq1GH/o1Q=";
6047     };
6048     meta = {
6049       description = "Details of the native integer data type";
6050       license = with lib.licenses; [ artistic1 gpl1Plus ];
6051     };
6052   };
6054   DataMessagePack = buildPerlModule {
6055     pname = "Data-MessagePack";
6056     version = "1.02";
6057     src = fetchurl {
6058       url = "mirror://cpan/authors/id/S/SY/SYOHEX/Data-MessagePack-1.02.tar.gz";
6059       hash = "sha256-wz20R5CqjSVBR4guI3jf/pcK1gMxNQveBi0XlTSCsbc=";
6060     };
6061     buildInputs = [ ModuleBuildXSUtil TestRequires ];
6062     meta = {
6063       description = "Grep-like program for searching source code";
6064       homepage = "https://github.com/msgpack/msgpack-perl";
6065       license = with lib.licenses; [ artistic1 gpl1Plus ];
6066       maintainers = [ maintainers.sgo ];
6067       broken = stdenv.hostPlatform.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.DataMessagePack.x86_64-darwin
6068     };
6069   };
6071   DataOptList = buildPerlPackage {
6072     pname = "Data-OptList";
6073     version = "0.114";
6074     src = fetchurl {
6075       url = "mirror://cpan/authors/id/R/RJ/RJBS/Data-OptList-0.114.tar.gz";
6076       hash = "sha256-n9EJO5F6Ift5rhYH21PRE7TgrY/grndssHen5QBE/fM=";
6077     };
6078     propagatedBuildInputs = [ ParamsUtil SubInstall ];
6079     meta = {
6080       description = "Parse and validate simple name/value option pairs";
6081       homepage = "https://github.com/rjbs/Data-OptList";
6082       license = with lib.licenses; [ artistic1 gpl1Plus ];
6083     };
6084   };
6086   DataPage = buildPerlPackage {
6087     pname = "Data-Page";
6088     version = "2.03";
6089     src = fetchurl {
6090       url = "mirror://cpan/authors/id/E/ET/ETHER/Data-Page-2.03.tar.gz";
6091       hash = "sha256-LvpSFn0ferNZAs8yrgJ3amI3BdeRnUEYmBKHsETOPYs=";
6092     };
6093     propagatedBuildInputs = [ ClassAccessorChained ];
6094     buildInputs = [ TestException ];
6095     meta = {
6096       description = "Help when paging through sets of results";
6097       license = with lib.licenses; [ artistic1 gpl1Plus ];
6098     };
6099   };
6101   DataPagePageset = buildPerlModule {
6102     pname = "Data-Page-Pageset";
6103     version = "1.02";
6104     src = fetchurl {
6105       url = "mirror://cpan/authors/id/C/CH/CHUNZI/Data-Page-Pageset-1.02.tar.gz";
6106       hash = "sha256-zqwbtVQ+I9qyUZUTxibj/+ZaF3uOHtnlagMNRVHUUZA=";
6107     };
6108     buildInputs = [ ClassAccessor DataPage TestException ];
6109     meta = {
6110       description = "Change long page list to be shorter and well navigate";
6111       license = with lib.licenses; [ artistic1 gpl1Plus ];
6112     };
6113   };
6115   DataPassword = buildPerlPackage {
6116     pname = "Data-Password";
6117     version = "1.12";
6118     src = fetchurl {
6119       url = "mirror://cpan/authors/id/R/RA/RAZINF/Data-Password-1.12.tar.gz";
6120       hash = "sha256-gwzegXQf84Q4VBLhb6ulV0WlSnzAGd0j1+1PBdVRqWE=";
6121     };
6122     meta = {
6123       description = "Perl extension for assessing password quality";
6124       license = with lib.licenses; [ artistic1 gpl1Plus ];
6125     };
6126   };
6128   DataPerl = buildPerlPackage {
6129     pname = "Data-Perl";
6130     version = "0.002011";
6131     src = fetchurl {
6132       url = "mirror://cpan/authors/id/T/TO/TOBYINK/Data-Perl-0.002011.tar.gz";
6133       hash = "sha256-jTTb4xTPotmb2arlRrvelMOLsFt0sHyJveFnOm9sVfQ=";
6134     };
6135     buildInputs = [ TestDeep TestFatal TestOutput ];
6136     propagatedBuildInputs = [ ClassMethodModifiers ListMoreUtils ModuleRuntime RoleTiny strictures ];
6137     meta = {
6138       description = "Base classes wrapping fundamental Perl data types";
6139       homepage = "https://github.com/tobyink/Data-Perl";
6140       license = with lib.licenses; [ artistic1 gpl1Plus ];
6141     };
6142   };
6144   DataPrinter = buildPerlPackage {
6145     pname = "Data-Printer";
6146     version = "1.001001";
6147     src = fetchurl {
6148       url = "mirror://cpan/authors/id/G/GA/GARU/Data-Printer-1.001001.tar.gz";
6149       hash = "sha256-q64DMVUU0rcxxkYrjwZ2SN2ZChA1SyFgbHeM/ZHUe4A=";
6150     };
6151     propagatedBuildInputs = [ ClonePP FileHomeDir PackageStash SortNaturally ];
6152     meta = {
6153       description = "Colored & full-featured pretty print of Perl data structures and objects";
6154       license = with lib.licenses; [ artistic1 gpl1Plus ];
6155     };
6156   };
6158   DataRandom = buildPerlPackage {
6159     pname = "Data-Random";
6160     version = "0.13";
6161     src = fetchurl {
6162       url = "mirror://cpan/authors/id/B/BA/BAREFOOT/Data-Random-0.13.tar.gz";
6163       hash = "sha256-61kBhKjbKKfknqsJ4l+GUMM/H2aLakcoKd50pTJWv8A=";
6164     };
6165     buildInputs = [ FileShareDirInstall TestMockTime ];
6166     meta = {
6167       description = "Perl module to generate random data";
6168       license = with lib.licenses; [ artistic1 gpl1Plus ];
6169     };
6170   };
6172   DataSection = buildPerlPackage {
6173     pname = "Data-Section";
6174     version = "0.200008";
6175     src = fetchurl {
6176       url = "mirror://cpan/authors/id/R/RJ/RJBS/Data-Section-0.200008.tar.gz";
6177       hash = "sha256-g6zHpV091+026deNNQrzE4xpz6F4pEdlgicS/0M7mQ4=";
6178     };
6179     propagatedBuildInputs = [ MROCompat SubExporter ];
6180     buildInputs = [ TestFailWarnings ];
6181     meta = {
6182       description = "Read multiple hunks of data out of your DATA section";
6183       homepage = "https://github.com/rjbs/Data-Section";
6184       license = with lib.licenses; [ artistic1 gpl1Plus ];
6185     };
6186   };
6188   DataSectionSimple = buildPerlPackage {
6189     pname = "Data-Section-Simple";
6190     version = "0.07";
6191     src = fetchurl {
6192       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Data-Section-Simple-0.07.tar.gz";
6193       hash = "sha256-CzA1/9uQmqH33ta2CPqdiUQhyCwJfVHnFxFw1nV5qcs=";
6194     };
6195     buildInputs = [ TestRequires ];
6196     meta = {
6197       description = "Read data from __DATA__";
6198       homepage = "https://github.com/miyagawa/Data-Section-Simple";
6199       license = with lib.licenses; [ artistic1 gpl1Plus ];
6200     };
6201   };
6203   DataSerializer = buildPerlModule {
6204     pname = "Data-Serializer";
6205     version = "0.65";
6206     src = fetchurl {
6207       url = "mirror://cpan/authors/id/N/NE/NEELY/Data-Serializer-0.65.tar.gz";
6208       hash = "sha256-EhVaUgADPYCl8HVzd19JPxcAcs97KK48otFStZGXHxE=";
6209     };
6210     meta = {
6211       description = "Modules that serialize data structures";
6212       homepage = "https://metacpan.org/release/Data-Serializer";
6213       license = with lib.licenses; [ artistic1 gpl1Plus ];
6214     };
6215   };
6217   DataSExpression = buildPerlPackage {
6218     pname = "Data-SExpression";
6219     version = "0.41";
6220     src = fetchurl {
6221       url = "mirror://cpan/authors/id/N/NE/NELHAGE/Data-SExpression-0.41.tar.gz";
6222       hash = "sha256-gWJCakKFoJQ4X9+vbQnO0QbVr1dVP5U6yx1Whn3QFJs=";
6223     };
6224     buildInputs = [ TestDeep ];
6225     propagatedBuildInputs = [ ClassAccessor ];
6226     meta = {
6227       description = "Parse Lisp S-Expressions into perl data structures";
6228       license = with lib.licenses; [ artistic1 gpl1Plus ];
6229     };
6230   };
6232   DataSpreadPagination = buildPerlPackage {
6233     pname = "Data-SpreadPagination";
6234     version = "0.1.2";
6235     src = fetchurl {
6236       url = "mirror://cpan/authors/id/K/KN/KNEW/Data-SpreadPagination-0.1.2.tar.gz";
6237       hash = "sha256-dOv9hHEyw4zJ6DXhToLEPxgJqVy8mLuE0ffOLk70h+M=";
6238     };
6239     propagatedBuildInputs = [ DataPage MathRound ];
6240     meta = {
6241       description = "Page numbering and spread pagination";
6242       license = with lib.licenses; [ artistic1 gpl1Plus ];
6243     };
6244   };
6246   DataStag = buildPerlPackage {
6247     pname = "Data-Stag";
6248     version = "0.14";
6249     src = fetchurl {
6250       url = "mirror://cpan/authors/id/C/CM/CMUNGALL/Data-Stag-0.14.tar.gz";
6251       hash = "sha256-SrEiUI0vuG0XGhX0AG5c+JbV+s+mUhnAskOomQYljlk=";
6252     };
6253     propagatedBuildInputs = [ IOString ];
6254     meta = {
6255       description = "Structured Tags";
6256       license = with lib.licenses; [ artistic1 gpl1Plus ];
6257     };
6258   };
6260   DataStreamBulk = buildPerlPackage {
6261     pname = "Data-Stream-Bulk";
6262     version = "0.11";
6263     src = fetchurl {
6264       url = "mirror://cpan/authors/id/D/DO/DOY/Data-Stream-Bulk-0.11.tar.gz";
6265       hash = "sha256-BuCEMqa5dwVgbJJXCbmRKa2SZRbkd9WORGHks9nzCRc=";
6266     };
6267     buildInputs = [ TestRequires ];
6268     propagatedBuildInputs = [ Moose PathClass namespaceclean ];
6269     meta = {
6270       description = "N at a time iteration API";
6271       homepage = "https://metacpan.org/release/Data-Stream-Bulk";
6272       license = with lib.licenses; [ artistic1 gpl1Plus ];
6273     };
6274   };
6276   DataStructureUtil = buildPerlPackage {
6277     pname = "Data-Structure-Util";
6278     version = "0.16";
6279     src = fetchurl {
6280       url = "mirror://cpan/authors/id/A/AN/ANDYA/Data-Structure-Util-0.16.tar.gz";
6281       hash = "sha256-nNQqE+ZcsV86diluuaE02iIBaOx0fFaNMxpQrnot28Y=";
6282     };
6283     buildInputs = [ TestPod ];
6284     meta = {
6285       description = "Change nature of data within a structure";
6286       license = with lib.licenses; [ artistic1 gpl1Plus ];
6287     };
6288   };
6290   DataTaxi = buildPerlPackage {
6291     pname = "Data-Taxi";
6292     version = "0.96";
6293     src = fetchurl {
6294       url = "mirror://cpan/authors/id/M/MI/MIKO/Data-Taxi-0.96.tar.gz";
6295       hash = "sha256-q8s2EPygbZodmRaraYB0OmHYWvVfn9N2vqZxKommnHg=";
6296     };
6297     buildInputs = [ DebugShowStuff ];
6298     meta = {
6299       description = "Taint-aware, XML-ish data serialization";
6300       license = with lib.licenses; [ artistic1 gpl1Plus ];
6301     };
6302   };
6304   DataULID = buildPerlPackage {
6305     pname = "Data-ULID";
6306     version = "1.2.1";
6307     src = fetchurl {
6308       url = "mirror://cpan/authors/id/B/BA/BALDUR/Data-ULID-1.2.1.tar.gz";
6309       hash = "sha256-SbThGyY0inXfNONGF0UuMZ/XpygasJQgYvFieeqKHSc=";
6310     };
6311     propagatedBuildInputs = [ CryptX ];
6312     meta = {
6313       description = "Universally Unique Lexicographically Sortable Identifier";
6314       homepage = "https://metacpan.org/release/Data-ULID";
6315       license = with lib.licenses; [ artistic1 gpl1Plus ];
6316       maintainers = with maintainers; [ sgo ];
6317     };
6318   };
6320   DataUniqid = buildPerlPackage {
6321     pname = "Data-Uniqid";
6322     version = "0.12";
6323     src = fetchurl {
6324       url = "mirror://cpan/authors/id/M/MW/MWX/Data-Uniqid-0.12.tar.gz";
6325       hash = "sha256-tpGbpJuf6Yv98+isyue5t/eNyeceu9C3/vekXZkyTMs=";
6326     };
6327     meta = {
6328       description = "Perl extension for simple genrating of unique id's";
6329       license = with lib.licenses; [ artistic1 gpl1Plus ];
6330     };
6331   };
6333   DataUtil = buildPerlModule {
6334     pname = "Data-Util";
6335     version = "0.67";
6336     src = fetchurl {
6337       url = "mirror://cpan/authors/id/S/SY/SYOHEX/Data-Util-0.67.tar.gz";
6338       hash = "sha256-tVypHHafgTN8xrCrIMMmg4eOWyZj8cwljFEamZpd/dM=";
6339     };
6340     buildInputs = [ HashUtilFieldHashCompat ModuleBuildXSUtil ScopeGuard TestException ];
6341     perlPreHook = lib.optionalString stdenv.hostPlatform.isi686 "export LD=$CC"; # fix undefined reference to `__stack_chk_fail_local'
6342     meta = {
6343       description = "Selection of utilities for data and data types";
6344       homepage = "https://github.com/gfx/Perl-Data-Util";
6345       license = with lib.licenses; [ artistic1 gpl1Plus ];
6346       broken = stdenv.hostPlatform.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.DataUtil.x86_64-darwin
6347     };
6348   };
6350   DataURIEncode = buildPerlPackage {
6351     pname = "Data-URIEncode";
6352     version = "0.11";
6353     src = fetchurl {
6354       url = "mirror://cpan/authors/id/R/RH/RHANDOM/Data-URIEncode-0.11.tar.gz";
6355       hash = "sha256-Ucnvv4QjhTYW6qJIQeTRmWstsANpAGF/sdvHbHWh82A=";
6356     };
6357     meta = {
6358       description = "Allow complex data structures to be encoded using flat URIs";
6359       license = with lib.licenses; [ artistic1 gpl1Plus ];
6360     };
6361   };
6363   DataUUID = buildPerlPackage {
6364     pname = "Data-UUID";
6365     version = "1.226";
6366     src = fetchurl {
6367       url = "mirror://cpan/authors/id/R/RJ/RJBS/Data-UUID-1.226.tar.gz";
6368       hash = "sha256-CT1X/6DUEalLr6+uSVaX2yb1ydAncZj+P3zyviKZZFM=";
6369     };
6370     patches = [
6371       ../development/perl-modules/Data-UUID-CVE-2013-4184.patch
6372     ];
6373     meta = {
6374       description = "Globally/Universally Unique Identifiers (GUIDs/UUIDs)";
6375       license = with lib.licenses; [ bsd0 ];
6376     };
6377   };
6379   DataUUIDMT = buildPerlPackage {
6380     pname = "Data-UUID-MT";
6381     version = "1.001";
6382     src = fetchurl {
6383       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Data-UUID-MT-1.001.tar.gz";
6384       hash = "sha256-MExLmBKDEfhLf1KccBi6hJx102Q6qA6jgrSwgFfEZy0=";
6385     };
6386     buildInputs = [ ListAllUtils ];
6387     propagatedBuildInputs = [ MathRandomMTAuto ];
6388     meta = {
6389       description = "Fast random UUID generator using the Mersenne Twister algorithm";
6390       homepage = "https://metacpan.org/release/Data-UUID-MT";
6391       license = with lib.licenses; [ asl20 ];
6392     };
6393   };
6395   DataValidateDomain = buildPerlPackage {
6396     pname = "Data-Validate-Domain";
6397     version = "0.15";
6398     src = fetchurl {
6399       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Data-Validate-Domain-0.15.tar.gz";
6400       hash = "sha256-PJ95GHsNPHGt0fj1WbgN8VmTAKbSA+CxYcvhjhdqqzY=";
6401     };
6402     buildInputs = [ Test2Suite ];
6403     propagatedBuildInputs = [ NetDomainTLD ];
6404     meta = {
6405       description = "Domain and host name validation";
6406       homepage = "https://metacpan.org/release/Data-Validate-Domain";
6407       license = with lib.licenses; [ artistic1 gpl1Plus ];
6408     };
6409   };
6411   DataValidateIP = buildPerlPackage {
6412     pname = "Data-Validate-IP";
6413     version = "0.31";
6414     src = fetchurl {
6415       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Data-Validate-IP-0.31.tar.gz";
6416       hash = "sha256-c0r/hrb5ytQOHE2oHyj68Y4IAsdqVm2V5WE9QxgYL8E=";
6417     };
6418     buildInputs = [ TestRequires ];
6419     propagatedBuildInputs = [ NetAddrIP ];
6420     meta = {
6421       description = "IPv4 and IPv6 validation methods";
6422       homepage = "https://metacpan.org/release/Data-Validate-IP";
6423       license = with lib.licenses; [ artistic1 gpl1Plus ];
6424     };
6425   };
6427   DataValidateURI = buildPerlPackage {
6428     pname = "Data-Validate-URI";
6429     version = "0.07";
6430     src = fetchurl {
6431       url = "mirror://cpan/authors/id/S/SO/SONNEN/Data-Validate-URI-0.07.tar.gz";
6432       hash = "sha256-8GQY0qRgORPRts5SsWfdE+eH4TvyvjJaBl331Aj3nGA=";
6433     };
6434     propagatedBuildInputs = [ DataValidateDomain DataValidateIP ];
6435     meta = {
6436       description = "Common URL validation methods";
6437       license = with lib.licenses; [ artistic1 gpl1Plus ];
6438     };
6439   };
6441   DataVisitor = buildPerlPackage {
6442     pname = "Data-Visitor";
6443     version = "0.32";
6444     src = fetchurl {
6445       url = "mirror://cpan/authors/id/E/ET/ETHER/Data-Visitor-0.32.tar.gz";
6446       hash = "sha256-sZQpDyV8xidaA5N0ERVUxmahZQ5MAa15nB4KJ39HkX0=";
6447     };
6448     buildInputs = [ TestNeeds ];
6449     propagatedBuildInputs = [ Moose TieToObject namespaceclean ];
6450     meta = {
6451       description = "Visitor style traversal of Perl data structures";
6452       license = with lib.licenses; [ artistic1 gpl1Plus ];
6453     };
6454   };
6456   DateCalc = buildPerlPackage {
6457     pname = "Date-Calc";
6458     version = "6.4";
6459     src = fetchurl {
6460       url = "mirror://cpan/authors/id/S/ST/STBEY/Date-Calc-6.4.tar.gz";
6461       hash = "sha256-fOE3sueXt8CQHzrfGgWhk0M1bNHwRnaqHFap9iT4Wa0=";
6462     };
6463     propagatedBuildInputs = [ BitVector ];
6464     doCheck = false; # some of the checks rely on the year being <2015
6465     meta = {
6466       description = "Gregorian calendar date calculations";
6467       license = with lib.licenses; [ artistic1 gpl1Plus ];
6468     };
6469   };
6471   DateExtract = buildPerlPackage {
6472     pname = "Date-Extract";
6473     version = "0.07";
6474     src = fetchurl {
6475       url = "mirror://cpan/authors/id/E/ET/ETHER/Date-Extract-0.07.tar.gz";
6476       hash = "sha256-+geIBK3k7uwd4UcuDguwR65i5MjU1QIHAbnlBXfFuPQ=";
6477     };
6478     buildInputs = [ TestMockTimeHiRes ];
6479     propagatedBuildInputs = [ ClassDataInheritable DateTimeFormatNatural ];
6480     meta = {
6481       description = "Extract probable dates from strings";
6482       license = with lib.licenses; [ artistic1 gpl1Plus ];
6483     };
6484   };
6486   DateManip = buildPerlPackage {
6487     pname = "Date-Manip";
6488     version = "6.92";
6489     src = fetchurl {
6490       url = "mirror://cpan/authors/id/S/SB/SBECK/Date-Manip-6.92.tar.gz";
6491       hash = "sha256-q5Yr05ygnsb8/n5aaRKvcbDB9vA+TtK+9uRHHJ02ehM=";
6492     };
6493     # for some reason, parsing /etc/localtime does not work anymore - make sure that the fallback "/bin/date +%Z" will work
6494     patchPhase = ''
6495       sed -i "s#/bin/date#${pkgs.coreutils}/bin/date#" lib/Date/Manip/TZ.pm
6496     '';
6497     doCheck = !stdenv.hostPlatform.isi686; # build freezes during tests on i686
6498     buildInputs = [ TestInter ];
6499     meta = {
6500       description = "Date manipulation routines";
6501       homepage = "https://github.com/SBECK-github/Date-Manip";
6502       license = with lib.licenses; [ artistic1 gpl1Plus ];
6503     };
6504   };
6506   DateRange = buildPerlPackage {
6507     pname = "Date-Range";
6508     version = "1.41";
6509     src = fetchurl {
6510       url = "mirror://cpan/authors/id/T/TM/TMTM/Date-Range-1.41.tar.gz";
6511       hash = "sha256-v5iXSSsQHAUDh50Up+fr6QJUQ4NgGufGmpXedcvZSLk=";
6512     };
6513     propagatedBuildInputs = [ DateSimple ];
6514     meta = {
6515       description = "work with a range of dates";
6516       license = with lib.licenses; [ gpl2Plus ];
6517     };
6518   };
6520   DateSimple = buildPerlPackage {
6521     pname = "Date-Simple";
6522     version = "3.03";
6523     src = fetchurl {
6524       url = "mirror://cpan/authors/id/I/IZ/IZUT/Date-Simple-3.03.tar.gz";
6525       hash = "sha256-KaGSYxTOFoGjEtYVXClZDHcd2s+Rt0hYc85EnvIJ3QQ=";
6526     };
6527     meta = {
6528       description = "Simple date object";
6529       license = with lib.licenses; [ artistic1 gpl2Plus ];
6530     };
6531   };
6533   DateTime = buildPerlPackage {
6534     pname = "DateTime";
6535     version = "1.59";
6536     src = fetchurl {
6537       url = "mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-1.59.tar.gz";
6538       hash = "sha256-3j6aY84VRwtNtK2tS6asjsKX2IwMbGs1SwgYg7CmdpU=";
6539     };
6540     buildInputs = [ CPANMetaCheck TestFatal TestWarnings TestWithoutModule ];
6541     propagatedBuildInputs = [ DateTimeLocale DateTimeTimeZone ];
6542     meta = {
6543       description = "Date and time object for Perl";
6544       homepage = "https://metacpan.org/release/DateTime";
6545       license = with lib.licenses; [ artistic2 ];
6546     };
6547   };
6549   DateTimeCalendarJulian = buildPerlPackage {
6550     pname = "DateTime-Calendar-Julian";
6551     version = "0.107";
6552     src = fetchurl {
6553       url = "mirror://cpan/authors/id/W/WY/WYANT/DateTime-Calendar-Julian-0.107.tar.gz";
6554       hash = "sha256-/LK0JIRLsTvK1GsceqI5taCbqyVW9TvR8n+tkMJg0z0=";
6555     };
6556     propagatedBuildInputs = [ DateTime ];
6557     meta = {
6558       description = "DateTime object in the Julian calendar";
6559       license = with lib.licenses; [ artistic1 gpl1Plus ];
6560     };
6561   };
6563   DateTimeEventICal = buildPerlPackage {
6564     pname = "DateTime-Event-ICal";
6565     version = "0.13";
6566     src = fetchurl {
6567       url = "mirror://cpan/authors/id/F/FG/FGLOCK/DateTime-Event-ICal-0.13.tar.gz";
6568       hash = "sha256-U9pDhO9c8w7ofcATH0tu7iEhzA66NHFioyi5vPr0deo=";
6569     };
6570     propagatedBuildInputs = [ DateTimeEventRecurrence ];
6571     meta = {
6572       description = "DateTime rfc2445 recurrences";
6573       license = with lib.licenses; [ artistic1 gpl1Plus ];
6574     };
6575   };
6577   DateTimeEventRecurrence = buildPerlPackage {
6578     pname = "DateTime-Event-Recurrence";
6579     version = "0.19";
6580     src = fetchurl {
6581       url = "mirror://cpan/authors/id/F/FG/FGLOCK/DateTime-Event-Recurrence-0.19.tar.gz";
6582       hash = "sha256-+UCHiaRhEHdmyhojK7PsHnAu7HyoFnQB6m7D9LbQtaU=";
6583     };
6584     propagatedBuildInputs = [ DateTimeSet ];
6585     meta = {
6586       description = "DateTime::Set extension for create basic recurrence sets";
6587       license = with lib.licenses; [ artistic1 gpl1Plus ];
6588     };
6589   };
6591   DateTimeFormatBuilder = buildPerlPackage {
6592     pname = "DateTime-Format-Builder";
6593     version = "0.83";
6594     src = fetchurl {
6595       url = "mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-Format-Builder-0.83.tar.gz";
6596       hash = "sha256-Yf+yPYWzyheGstoyiembV+BiX+DknbAqbcDLYsaJ4vI=";
6597     };
6598     propagatedBuildInputs = [ DateTimeFormatStrptime ParamsValidate ];
6599     meta = {
6600       description = "Create DateTime parser classes and objects";
6601       homepage = "https://metacpan.org/release/DateTime-Format-Builder";
6602       license = with lib.licenses; [ artistic2 ];
6603     };
6604   };
6606   DateTimeFormatDateParse = buildPerlModule {
6607     pname = "DateTime-Format-DateParse";
6608     version = "0.05";
6609     src = fetchurl {
6610       url = "mirror://cpan/authors/id/J/JH/JHOBLITT/DateTime-Format-DateParse-0.05.tar.gz";
6611       hash = "sha256-9uykyL5mzpmS7hUJMvj88HgJ/T0WZMryALil/Tp+Xrw=";
6612     };
6613     propagatedBuildInputs = [ DateTime TimeDate ];
6614     meta = {
6615       description = "Parses Date::Parse compatible formats";
6616       license = with lib.licenses; [ artistic1 gpl1Plus ];
6617     };
6618   };
6620   DateTimeFormatFlexible = buildPerlPackage {
6621     pname = "DateTime-Format-Flexible";
6622     version = "0.34";
6623     src = fetchurl {
6624       url = "mirror://cpan/authors/id/T/TH/THINC/DateTime-Format-Flexible-0.34.tar.gz";
6625       hash = "sha256-g2rvXSXm/4gnMIpDv/dBkeXSAiDao9ISAFC8w0FI/PE=";
6626     };
6627     propagatedBuildInputs = [ DateTimeFormatBuilder ListMoreUtils ModulePluggable ];
6628     buildInputs = [ TestException TestMockTime TestNoWarnings ];
6629     meta = {
6630       description = "Flexibly parse strings and turn them into DateTime objects";
6631       license = with lib.licenses; [ artistic1 gpl1Plus ];
6632     };
6633   };
6635   DateTimeFormatHTTP = buildPerlModule {
6636     pname = "DateTime-Format-HTTP";
6637     version = "0.42";
6638     src = fetchurl {
6639       url = "mirror://cpan/authors/id/C/CK/CKRAS/DateTime-Format-HTTP-0.42.tar.gz";
6640       hash = "sha256-0E52nfRZaN/S0b3GR6Mlxod2FAaXYnhubxN/H17D2EA=";
6641     };
6642     propagatedBuildInputs = [ DateTime HTTPDate ];
6643     meta = {
6644       description = "Date conversion routines";
6645       license = with lib.licenses; [ artistic1 gpl1Plus ];
6646     };
6647   };
6649   DateTimeFormatICal = buildPerlModule {
6650     pname = "DateTime-Format-ICal";
6651     version = "0.09";
6652     src = fetchurl {
6653       url = "mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-Format-ICal-0.09.tar.gz";
6654       hash = "sha256-iwn2U59enA3w5hNQMWme1O+e74Fl/ICu/uzIF++ZfDM=";
6655     };
6656     propagatedBuildInputs = [ DateTimeEventICal ];
6657     meta = {
6658       description = "Parse and format iCal datetime and duration strings";
6659       license = with lib.licenses; [ artistic1 gpl1Plus ];
6660     };
6661   };
6663   DateTimeFormatISO8601 = buildPerlPackage {
6664     pname = "DateTime-Format-ISO8601";
6665     version = "0.16";
6666     src = fetchurl {
6667       url = "mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-Format-ISO8601-0.16.tar.gz";
6668       hash = "sha256-WChH9uApBlM0oAVk8gzXwo9OXNTsIVE9D2klMe07VuE=";
6669     };
6670     propagatedBuildInputs = [ DateTimeFormatBuilder ];
6671     buildInputs = [ Test2Suite ];
6672     meta = {
6673       description = "Parses ISO8601 formats";
6674       homepage = "https://metacpan.org/release/DateTime-HiRes";
6675       license = with lib.licenses; [ artistic1 gpl1Plus ];
6676     };
6677   };
6679   DateTimeFormatMail = buildPerlPackage {
6680     pname = "DateTime-Format-Mail";
6681     version = "0.403";
6682     src = fetchurl {
6683       url = "mirror://cpan/authors/id/B/BO/BOOK/DateTime-Format-Mail-0.403.tar.gz";
6684       hash = "sha256-jfjjXER3OI/1x86LPotq5O0wIJx6UFHUFze9FNdV/LA=";
6685     };
6686     propagatedBuildInputs = [ DateTime ParamsValidate ];
6687     meta = {
6688       description = "Convert between DateTime and RFC2822/822 formats";
6689       license = with lib.licenses; [ artistic1 gpl1Plus ];
6690     };
6691   };
6693   DateTimeFormatNatural = buildPerlModule {
6694     pname = "DateTime-Format-Natural";
6695     version = "1.18";
6696     src = fetchurl {
6697       url = "mirror://cpan/authors/id/S/SC/SCHUBIGER/DateTime-Format-Natural-1.18.tar.gz";
6698       hash = "sha256-2TRqRhUDVFnYvO4PrD1OuuoDj09DsoT2nt9z9u1XUf4=";
6699     };
6700     buildInputs = [ ModuleUtil TestMockTimeHiRes ];
6701     propagatedBuildInputs = [ Clone DateTime DateTimeHiRes DateTimeTimeZone ListMoreUtils ParamsValidate boolean ];
6702     meta = {
6703       description = "Parse informal natural language date/time strings";
6704       license = with lib.licenses; [ artistic1 gpl1Plus ];
6705       mainProgram = "dateparse";
6706     };
6707   };
6709   DateTimeFormatMySQL = buildPerlModule {
6710     pname = "DateTime-Format-MySQL";
6711     version = "0.08";
6712     src = fetchurl {
6713       url = "mirror://cpan/authors/id/X/XM/XMIKEW/DateTime-Format-MySQL-0.08.tar.gz";
6714       hash = "sha256-Gctw6YWEZV41TS1qjnHMXKkC3dw6xEQWcS+RY9Eiueg=";
6715     };
6716     propagatedBuildInputs = [ DateTimeFormatBuilder ];
6717     meta = {
6718       description = "Parse and format MySQL dates and times";
6719       license = with lib.licenses; [ artistic1 gpl1Plus ];
6720     };
6721   };
6723   DateTimeFormatPg = buildPerlModule {
6724     pname = "DateTime-Format-Pg";
6725     version = "0.16014";
6726     src = fetchurl {
6727       url = "mirror://cpan/authors/id/D/DM/DMAKI/DateTime-Format-Pg-0.16014.tar.gz";
6728       hash = "sha256-OLuWZlJNw4TDNm9jQsuWVsULrA+XFqPUTxz1Usy+Drk=";
6729     };
6730     propagatedBuildInputs = [ DateTimeFormatBuilder ];
6731     buildInputs = [ ModuleBuildTiny ];
6732     meta = {
6733       description = "Parse and format PostgreSQL dates and times";
6734       homepage = "https://github.com/lestrrat-p5/DateTime-Format-Pg";
6735       license = with lib.licenses; [ artistic1 gpl1Plus ];
6736     };
6737   };
6739   DateTimeFormatStrptime = buildPerlPackage {
6740     pname = "DateTime-Format-Strptime";
6741     version = "1.79";
6742     src = fetchurl {
6743       url = "mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-Format-Strptime-1.79.tar.gz";
6744       hash = "sha256-cB5GgCyG7U2IaVwabay76QszkL7reU84fnx5IwADdXk=";
6745     };
6746     buildInputs = [ TestFatal TestWarnings ];
6747     propagatedBuildInputs = [ DateTime ];
6748     meta = {
6749       description = "Parse and format strp and strf time patterns";
6750       homepage = "https://metacpan.org/release/DateTime-Format-Strptime";
6751       license = with lib.licenses; [ artistic2 ];
6752     };
6753   };
6755   DateTimeFormatSQLite = buildPerlPackage {
6756     pname = "DateTime-Format-SQLite";
6757     version = "0.11";
6758     src = fetchurl {
6759       url = "mirror://cpan/authors/id/C/CF/CFAERBER/DateTime-Format-SQLite-0.11.tar.gz";
6760       hash = "sha256-zB9OCuHTmw1MPd3M/XQjx3xnpwlQxLXsq/jKVTqylLQ=";
6761     };
6762     propagatedBuildInputs = [ DateTimeFormatBuilder ];
6763     meta = {
6764       description = "Parse and format SQLite dates and times";
6765       license = with lib.licenses; [ artistic1 gpl1Plus ];
6766     };
6767   };
6769   DateTimeFormatW3CDTF = buildPerlPackage {
6770     pname = "DateTime-Format-W3CDTF";
6771     version = "0.08";
6772     src = fetchurl {
6773       url = "mirror://cpan/authors/id/G/GW/GWILLIAMS/DateTime-Format-W3CDTF-0.08.tar.gz";
6774       hash = "sha256-3MIAoHOiHLpIEipdrgtqh135PT+MiunURtzdm++qQTo=";
6775     };
6776     propagatedBuildInputs = [ DateTime ];
6777     meta = {
6778       description = "Parse and format W3CDTF datetime strings";
6779       homepage = "https://metacpan.org/release/DateTime-Format-W3CDTF";
6780       license = with lib.licenses; [ artistic1 gpl1Plus ];
6781     };
6782   };
6784   DateTimeHiRes = buildPerlPackage {
6785     pname = "DateTime-HiRes";
6786     version = "0.04";
6787     src = fetchurl {
6788       url = "mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-HiRes-0.04.tar.gz";
6789       hash = "sha256-HCMVkzLDD566VLdeZpK+TeqAUiQ+r/MCbJyQuLZLw5U=";
6790     };
6791     propagatedBuildInputs = [ DateTime ];
6792     meta = {
6793       homepage = "https://metacpan.org/release/DateTime-HiRes";
6794       description = "Create DateTime objects with sub-second current time resolution";
6795       license = with lib.licenses; [ artistic1 gpl1Plus ];
6796     };
6797   };
6799   DateTimeLocale = buildPerlPackage {
6800     pname = "DateTime-Locale";
6801     version = "1.39";
6802     src = fetchurl {
6803       url = "mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-Locale-1.39.tar.gz";
6804       hash = "sha256-EMFFpsfa9xGIZOl0grSun5T5O5QUIS7uiqMLFqgTUQA=";
6805     };
6806     buildInputs = [ CPANMetaCheck FileShareDirInstall IPCSystemSimple PathTiny Test2PluginNoWarnings Test2Suite TestFileShareDir ];
6807     propagatedBuildInputs = [ FileShareDir ParamsValidationCompiler Specio namespaceautoclean ];
6808     meta = {
6809       description = "Localization support for DateTime.pm";
6810       homepage = "https://metacpan.org/release/DateTime-Locale";
6811       license = with lib.licenses; [ artistic1 gpl1Plus ];
6812     };
6813   };
6815   DateTimeFormatRFC3339 = buildPerlPackage rec {
6816     pname = "DateTime-Format-RFC3339";
6817     version = "1.2.0";
6818     src = fetchurl {
6819       url = "mirror://cpan/authors/id/I/IK/IKEGAMI/DateTime-Format-RFC3339-v${version}.tar.gz";
6820       hash = "sha256-E27hIkwxxuAXaSqfXlb9tPcKlfRq7DrYVdN4PeNaDfc=";
6821     };
6822     propagatedBuildInputs = [ DateTime ];
6823     meta = {
6824       description = "Parse and format RFC3339 datetime strings";
6825       homepage = "https://search.cpan.org/dist/DateTime-Format-RFC3339";
6826       license = with lib.licenses; [ cc0 ];
6827     };
6828   };
6830   DateTimeSet = buildPerlModule {
6831     pname = "DateTime-Set";
6832     version = "0.3900";
6833     src = fetchurl {
6834       url = "mirror://cpan/authors/id/F/FG/FGLOCK/DateTime-Set-0.3900.tar.gz";
6835       hash = "sha256-lPQcOSSq/eTvf6a1jgWV1AONisX/1iuhEbE8X028CUY=";
6836     };
6837     propagatedBuildInputs = [ DateTime ParamsValidate SetInfinite ];
6838     meta = {
6839       description = "DateTime set objects";
6840       license = with lib.licenses; [ artistic1 gpl1Plus ];
6841     };
6842   };
6844   DateTimeTimeZone = buildPerlPackage {
6845     pname = "DateTime-TimeZone";
6846     version = "2.60";
6847     src = fetchurl {
6848       url = "mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-TimeZone-2.60.tar.gz";
6849       hash = "sha256-8EYNN5MjkFtXm+1E4UEjejN9wl3Sa2qwxgrCuAYpMj0=";
6850     };
6851     buildInputs = [ TestFatal TestRequires ];
6852     propagatedBuildInputs = [ ClassSingleton ParamsValidationCompiler Specio namespaceautoclean ];
6853     meta = {
6854       description = "Time zone object base class and factory";
6855       homepage = "https://metacpan.org/release/DateTime-TimeZone";
6856       license = with lib.licenses; [ artistic1 gpl1Plus ];
6857     };
6858   };
6860   DateTimeXEasy = buildPerlPackage {
6861     pname = "DateTimeX-Easy";
6862     version = "0.091";
6863     src = fetchurl {
6864       url = "mirror://cpan/authors/id/J/JJ/JJNAPIORK/DateTimeX-Easy-0.091.tar.gz";
6865       hash = "sha256-pfjbvntpZdUD4VJYIBXaKk+B46WGA9/t1Oc9H92s/II=";
6866     };
6867     buildInputs = [ TestMost ];
6868     propagatedBuildInputs = [ DateTimeFormatFlexible DateTimeFormatICal DateTimeFormatNatural TimeDate ];
6869     doCheck = false;
6870     meta = {
6871       description = "Parse a date/time string using the best method available";
6872       license = with lib.licenses; [ artistic1 gpl1Plus ];
6873     };
6874   };
6876   DebugShowStuff = buildPerlModule {
6877     pname = "Debug-ShowStuff";
6878     version = "1.16";
6879     src = fetchurl {
6880       url = "mirror://cpan/authors/id/M/MI/MIKO/Debug-ShowStuff-1.16.tar.gz";
6881       hash = "sha256-pN1dLNfbjqbkhhsZPgJLQYeisO0rmdWHBi37EaXNLLc=";
6882     };
6883     propagatedBuildInputs = [ ClassISA DevelStackTrace StringUtil TermReadKey TextTabularDisplay TieIxHash ];
6884     meta = {
6885       description = "Collection of handy debugging routines for displaying the values of variables with a minimum of coding";
6886       license = with lib.licenses; [ artistic1 gpl1Plus ];
6887     };
6888   };
6890   Deliantra = buildPerlPackage rec {
6891     pname = "Deliantra";
6892     version = "2.01";
6893     src = fetchurl {
6894       url = "mirror://cpan/authors/id/M/ML/MLEHMANN/${pname}-${version}.tar.gz";
6895       hash = "sha256-JxbZsfBWJ9YJQs4GNLnBolEJsWSBgoXUW2Ca6FluKxc=";
6896     };
6897     propagatedBuildInputs = [ AnyEvent CompressLZF JSONXS commonsense ];
6898     meta = {
6899       description = "Deliantra suppport module to read/write archetypes, maps etc";
6900       license = with lib.licenses; [ artistic1 gpl1Plus ];
6901     };
6902   };
6904   DevelCaller = buildPerlPackage {
6905     pname = "Devel-Caller";
6906     version = "2.07";
6907     src = fetchurl {
6908       url = "mirror://cpan/authors/id/R/RC/RCLAMP/Devel-Caller-2.07.tar.gz";
6909       hash = "sha256-tnmisYA0sLcg3oLDcIckw2SxCmyhZMvGfNw68oPzUD8=";
6910     };
6911     propagatedBuildInputs = [ PadWalker ];
6912     meta = {
6913       description = "Meatier versions of caller";
6914       license = with lib.licenses; [ artistic1 gpl1Plus ];
6915     };
6916   };
6918   DevelCheckBin = buildPerlPackage {
6919     pname = "Devel-CheckBin";
6920     version = "0.04";
6921     src = fetchurl {
6922       url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/Devel-CheckBin-0.04.tar.gz";
6923       hash = "sha256-FX89tZwp7R1JEzpGnO53LIha1O5k6GkqkbPr/b4v4+Q=";
6924     };
6925     meta = {
6926       description = "Check that a command is available";
6927       homepage = "https://github.com/tokuhirom/Devel-CheckBin";
6928       license = with lib.licenses; [ artistic1 gpl1Plus ];
6929     };
6930   };
6932   DevelCheckCompiler = buildPerlModule {
6933     pname = "Devel-CheckCompiler";
6934     version = "0.07";
6935     src = fetchurl {
6936       url = "mirror://cpan/authors/id/S/SY/SYOHEX/Devel-CheckCompiler-0.07.tar.gz";
6937       hash = "sha256-dot2l7S41NNyx1B7ZendJqpCI/cQAYO7tNOvRtQ4abU=";
6938     };
6939     buildInputs = [ ModuleBuildTiny ];
6940     meta = {
6941       description = "Check the compiler's availability";
6942       homepage = "https://github.com/tokuhirom/Devel-CheckCompiler";
6943       license = with lib.licenses; [ artistic1 gpl1Plus ];
6944     };
6945   };
6947   DevelChecklib = buildPerlPackage {
6948     pname = "Devel-CheckLib";
6949     version = "1.16";
6950     src = fetchurl {
6951       url = "mirror://cpan/authors/id/M/MA/MATTN/Devel-CheckLib-1.16.tar.gz";
6952       hash = "sha256-hp04wljmRtzvZ2YJ8N18qQ8IX1bPb9cAGwGaXVuDH8o=";
6953     };
6954     buildInputs = [ CaptureTiny MockConfig ];
6955     meta = {
6956       description = "Check that a library is available";
6957       license = with lib.licenses; [ artistic1 gpl1Plus ];
6958     };
6959   };
6961   DevelCheckOS = buildPerlPackage {
6962     pname = "Devel-CheckOS";
6963     version = "1.96";
6964     src = fetchurl {
6965       url = "mirror://cpan/authors/id/D/DC/DCANTRELL/Devel-CheckOS-1.96.tar.gz";
6966       hash = "sha256-+GB5BfT1reSI9+9Et8HnyFI/ure5HS3IMLMa6cqBPfU=";
6967     };
6968     buildInputs = [ TestWarnings ];
6969     propagatedBuildInputs = [ FileFindRule ];
6970     meta = {
6971       description = "Check what OS we're running on";
6972       license = with lib.licenses; [ gpl2Only artistic1 ];
6973     };
6974   };
6976   DevelCover = buildPerlPackage {
6977     pname = "Devel-Cover";
6978     version = "1.44";
6979     src = fetchurl {
6980       url = "mirror://cpan/authors/id/P/PJ/PJCJ/Devel-Cover-1.44.tar.gz";
6981       hash = "sha256-9AwVQ5kuXWWm94AD1GLVms15rm0w04BHscadmZ0rH9g=";
6982     };
6983     propagatedBuildInputs = [ HTMLParser ];
6984     doCheck = false;
6985     meta = {
6986       description = "Code coverage metrics for Perl";
6987       homepage = "http://www.pjcj.net/perl.html";
6988       license = with lib.licenses; [ artistic1 gpl1Plus ];
6989     };
6990   };
6992   DevelDeprecationsEnvironmental = buildPerlPackage {
6993     pname = "Devel-Deprecations-Environmental";
6994     version = "1.101";
6995     src = fetchurl {
6996       url = "mirror://cpan/authors/id/D/DC/DCANTRELL/Devel-Deprecations-Environmental-1.101.tar.gz";
6997       hash = "sha256-S+SC08PcOtHvR0P6s4DOuQG3QVZQeVOoNITfadolpqY=";
6998     };
6999     propagatedBuildInputs = [ DevelCheckOS DevelHide TestException TestTime ];
7000     meta = {
7001       description = "Framework for managing deprecations";
7002       homepage = "https://github.com/DrHyde/perl-modules-Devel-Deprecations-Environmental";
7003       license = with lib.licenses; [ gpl2Only artistic1 ];
7004     };
7005   };
7007   DevelLeak = buildPerlPackage {
7008     pname = "Devel-Leak";
7009     version = "0.03";
7010     src = fetchurl {
7011       url = "mirror://cpan/authors/id/N/NI/NI-S/Devel-Leak-0.03.tar.gz";
7012       hash = "sha256-b0LDTxHitOPqLg5rlBaoimha3UR5EMr02R3SwXgXclI=";
7013     };
7014     meta = {
7015       description = "Utility for looking for perl objects that are not reclaimed";
7016       homepage = "https://metacpan.org/release/Devel-Leak";
7017       license = with lib.licenses; [ artistic1 gpl1Plus ]; # According to Debian
7018     };
7019   };
7021   DevelPatchPerl = buildPerlPackage {
7022     pname = "Devel-PatchPerl";
7023     version = "2.08";
7024     src = fetchurl {
7025       url = "mirror://cpan/authors/id/B/BI/BINGOS/Devel-PatchPerl-2.08.tar.gz";
7026       hash = "sha256-acbpcBYmD0COnX5Ej5QrNqbUnfWvBzQPHWXX4jAWdBk=";
7027     };
7028     propagatedBuildInputs = [ Filepushd ModulePluggable ];
7029     meta = {
7030       description = "Patch perl source a la Devel::PPPort's buildperl.pl";
7031       homepage = "https://github.com/bingos/devel-patchperl";
7032       license = with lib.licenses; [ artistic1 gpl1Plus ];
7033       mainProgram = "patchperl";
7034     };
7035   };
7037   DevelRefcount = buildPerlModule {
7038     pname = "Devel-Refcount";
7039     version = "0.10";
7040     src = fetchurl {
7041       url = "mirror://cpan/authors/id/P/PE/PEVANS/Devel-Refcount-0.10.tar.gz";
7042       hash = "sha256-tlTUaWPRqIFCa6FZlPKPUuuDmw0TW/I5tNG/OLHKyko=";
7043     };
7044     buildInputs = [ TestFatal ];
7045     meta = {
7046       description = "Obtain the REFCNT value of a referent";
7047       license = with lib.licenses; [ artistic1 gpl1Plus ];
7048     };
7049   };
7051   DevelPPPort = buildPerlPackage {
7052     pname = "Devel-PPPort";
7053     version = "3.68";
7054     src = fetchurl {
7055       url = "mirror://cpan/authors/id/A/AT/ATOOMIC/Devel-PPPort-3.68.tar.gz";
7056       hash = "sha256-UpDVu4TN6enmEROiDGe11HJn645loRmookjMlqrAuts=";
7057     };
7058     meta = {
7059       description = "Perl/Pollution/Portability";
7060       license = with lib.licenses; [ artistic1 gpl1Plus ];
7061     };
7062   };
7064   DevelTrace = buildPerlPackage {
7065     pname = "Devel-Trace";
7066     version = "0.12";
7067     src = fetchurl {
7068       url = "mirror://cpan/authors/id/M/MJ/MJD/Devel-Trace-0.12.tar.gz";
7069       hash = "sha256-9QHK93b/fphvduAlRNbOI0yJdwFzKD8x333MV4AKOGg=";
7070     };
7071     meta = {
7072       description = "Print out each line before it is executed (like sh -x)";
7073       license = with lib.licenses; [ publicDomain ];
7074     };
7075   };
7077   DeviceMAC = buildPerlPackage {
7078     pname = "Device-MAC";
7079     version = "1.00";
7080     src = fetchurl {
7081       url = "mirror://cpan/authors/id/J/JA/JASONK/Device-MAC-1.00.tar.gz";
7082       hash = "sha256-xCGCqahImjFMv+bhyEUvMrO2Jqpsif7h2JJebftk+tU=";
7083     };
7084     buildInputs = [ TestDeep TestDifferences TestException TestMost TestWarn ];
7085     propagatedBuildInputs = [ DeviceOUI Moose ];
7086     meta = {
7087       description = "Handle hardware MAC Addresses (EUI-48 and EUI-64)";
7088       license = with lib.licenses; [ artistic1 gpl1Plus ];
7089       maintainers = [ maintainers.sgo ];
7090     };
7091   };
7093   DeviceOUI = buildPerlPackage {
7094     pname = "Device-OUI";
7095     version = "1.04";
7096     src = fetchurl {
7097       url = "mirror://cpan/authors/id/J/JA/JASONK/Device-OUI-1.04.tar.gz";
7098       hash = "sha256-SzZ+YbH63ed/tvtynzzVrNHUbnEhjZb0Bry6ONQ7S+8=";
7099     };
7100     buildInputs = [ TestException ];
7101     patches = [ ../development/perl-modules/Device-OUI-1.04-hash.patch ];
7102     propagatedBuildInputs = [ ClassAccessorGrouped LWP SubExporter ];
7103     meta = {
7104       description = "Resolve an Organizationally Unique Identifier";
7105       license = with lib.licenses; [ artistic1 gpl1Plus ];
7106       maintainers = [ maintainers.sgo ];
7107     };
7108   };
7110   DBDCSV = buildPerlPackage {
7111     pname = "DBD-CSV";
7112     version = "0.60";
7113     src = fetchurl {
7114       url = "mirror://cpan/authors/id/H/HM/HMBRAND/DBD-CSV-0.60.tgz";
7115       hash = "sha256-AYuDow95mXm8jDwwRMixyAAc32C9w+dGhIgYGVJUtOc=";
7116     };
7117     propagatedBuildInputs = [ DBI SQLStatement TextCSV_XS ];
7118     meta = {
7119       description = "DBI driver for CSV files";
7120       license = with lib.licenses; [ artistic1 gpl1Plus ];
7121     };
7122   };
7124   DBDMock = buildPerlModule {
7125     pname = "DBD-Mock";
7126     version = "1.59";
7127     src = fetchurl {
7128       url = "mirror://cpan/authors/id/J/JL/JLCOOPER/DBD-Mock-1.59.tar.gz";
7129       hash = "sha256-ClqllTq2XPeQaB5sBFLjGK1X2ArCf1dfhJGMYDqkdAY=";
7130     };
7131     propagatedBuildInputs = [ DBI ];
7132     buildInputs = [ ModuleBuildTiny TestException ];
7133     meta = {
7134       description = "Mock database driver for testing";
7135       license = with lib.licenses; [ artistic1 gpl1Plus ];
7136     };
7137   };
7139   DBDSQLite = buildPerlPackage {
7140     pname = "DBD-SQLite";
7141     version = "1.74";
7143     src = fetchurl {
7144       url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/DBD-SQLite-1.74.tar.gz";
7145       hash = "sha256-iZSZfYS5/rRUd5X3h0bGYfty48tqJdvdeJtzH1aIpN0=";
7146     };
7148     propagatedBuildInputs = [ DBI ];
7149     buildInputs = [ pkgs.sqlite ];
7151     patches = [
7152       # Support building against our own sqlite.
7153       ../development/perl-modules/DBD-SQLite/external-sqlite.patch
7155       # Pull upstream fix for test failures against sqlite-3.37.
7156       (fetchpatch {
7157         name = "sqlite-3.37-compat.patch";
7158         url = "https://github.com/DBD-SQLite/DBD-SQLite/commit/ba4f472e7372dbf453444c7764d1c342e7af12b8.patch";
7159         hash = "sha256-nn4JvaIGlr2lUnUC+0ABe9AFrRrC5bfdTQiefo0Pjwo=";
7160       })
7161     ];
7163     makeMakerFlags = [ "SQLITE_INC=${pkgs.sqlite.dev}/include" "SQLITE_LIB=${pkgs.sqlite.out}/lib" ];
7165     postInstall = ''
7166       # Get rid of a pointless copy of the SQLite sources.
7167       rm -rf $out/${perl.libPrefix}/*/*/auto/share
7168     '';
7170     preCheck = "rm t/65_db_config.t"; # do not run failing tests
7172     meta = {
7173       description = "Self Contained SQLite RDBMS in a DBI Driver";
7174       license = with lib.licenses; [ artistic1 gpl1Plus ];
7175       platforms = lib.platforms.unix;
7176     };
7177   };
7179   DBDMariaDB = buildPerlPackage {
7180     pname = "DBD-MariaDB";
7181     version = "1.23";
7182     src = fetchurl {
7183       url = "mirror://cpan/authors/id/P/PA/PALI/DBD-MariaDB-1.23.tar.gz";
7184       hash = "sha256-DQx2xmDd1VVw5I8+L96o9iGmmsDtSBkOjPyvy16bhZ0=";
7185     };
7186     buildInputs = [ pkgs.mariadb-connector-c DevelChecklib TestDeep TestDistManifest TestPod ];
7187     propagatedBuildInputs = [ DBI ];
7188     meta = {
7189       description = "MariaDB and MySQL driver for the Perl5 Database Interface (DBI)";
7190       homepage = "https://github.com/gooddata/DBD-MariaDB";
7191       license = with lib.licenses; [ artistic1 gpl1Plus ];
7192       maintainers = [ maintainers.sgo ];
7193     };
7194   };
7196   DBDmysql = buildPerlPackage {
7197     pname = "DBD-mysql";
7198     version = "4.050";
7200     src = fetchurl {
7201       url = "mirror://cpan/authors/id/D/DV/DVEEDEN/DBD-mysql-4.050.tar.gz";
7202       hash = "sha256-T0hUH/FaCnQF92rcEPgWJ8M5lvv1bJXCbAlERMCSjXg=";
7203     };
7205     buildInputs = [ pkgs.libmysqlclient DevelChecklib TestDeep TestDistManifest TestPod ];
7206     propagatedBuildInputs = [ DBI ];
7208     doCheck = false;
7210   #  makeMakerFlags = "MYSQL_HOME=${mysql}";
7211     meta = {
7212       description = "MySQL driver for the Perl5 Database Interface (DBI)";
7213       license = with lib.licenses; [ artistic1 gpl1Plus ];
7214     };
7215   };
7217   DBDOracle = buildPerlPackage {
7218     pname = "DBD-Oracle";
7219     version = "1.83";
7221     src = fetchurl {
7222       url = "mirror://cpan/authors/id/Z/ZA/ZARQUON/DBD-Oracle-1.83.tar.gz";
7223       hash = "sha256-Uf6cFYlV/aDKkXqAaGPwvFEGi1M/u8dCOzzErVle0VM=";
7224     };
7226     ORACLE_HOME = "${pkgs.oracle-instantclient.lib}/lib";
7228     buildInputs = [ pkgs.oracle-instantclient TestNoWarnings ];
7229     propagatedBuildInputs = [ DBI ];
7231     postBuild = lib.optionalString stdenv.hostPlatform.isDarwin ''
7232       install_name_tool -add_rpath "${pkgs.oracle-instantclient.lib}/lib" blib/arch/auto/DBD/Oracle/Oracle.bundle
7233     '';
7234     meta = {
7235       description = "Oracle database driver for the DBI module";
7236       license = with lib.licenses; [ artistic1 gpl1Plus ];
7237     };
7238   };
7240   DBDPg = buildPerlPackage {
7241     pname = "DBD-Pg";
7242     version = "3.17.0";
7244     src = fetchurl {
7245       url = "mirror://cpan/authors/id/T/TU/TURNSTEP/DBD-Pg-3.17.0.tar.gz";
7246       hash = "sha256-jZANTA50nzchh1KmZh+w01V6sfzMjeo4TLWHw4LeIZs=";
7247     };
7249     buildInputs = [ pkgs.postgresql ];
7250     propagatedBuildInputs = [ DBI ];
7252     makeMakerFlags = [ "POSTGRES_HOME=${pkgs.postgresql}" ];
7254     # tests freeze in a sandbox
7255     doCheck = false;
7257     meta = {
7258       description = "DBI PostgreSQL interface";
7259       homepage = "https://search.cpan.org/dist/DBD-Pg";
7260       license = with lib.licenses; [ artistic1 gpl1Plus ];
7261       platforms = lib.platforms.unix;
7262     };
7263   };
7265   DBDsybase = buildPerlPackage {
7266     pname = "DBD-Sybase";
7267     version = "1.23";
7269     src = fetchurl {
7270       url = "mirror://cpan/authors/id/M/ME/MEWP/DBD-Sybase-1.23.tar.gz";
7271       hash = "sha256-B1e6aqyaKaLcOFmV1myPQSqIlo/SNsDYu0ZZAo5OmWU=";
7272     };
7274     SYBASE = pkgs.freetds;
7276     buildInputs = [ pkgs.freetds ];
7277     propagatedBuildInputs = [ DBI ];
7279     doCheck = false;
7281     meta = {
7282       description = "DBI driver for Sybase datasources";
7283       license = with lib.licenses; [ artistic1 gpl1Only ];
7284       broken = stdenv.hostPlatform.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.DBDsybase.x86_64-darwin
7285     };
7286   };
7288   DBFile = buildPerlPackage {
7289     pname = "DB_File";
7290     version = "1.859";
7292     src = fetchurl {
7293       url = "mirror://cpan/authors/id/P/PM/PMQS/DB_File-1.859.tar.gz";
7294       hash = "sha256-VnTg0s0LBgxNElNnDqAixk2EKlUlf5647bGcD1PiVlw=";
7295     };
7297     preConfigure = ''
7298       cat > config.in <<EOF
7299       PREFIX = size_t
7300       HASH = u_int32_t
7301       LIB = ${pkgs.db.out}/lib
7302       INCLUDE = ${pkgs.db.dev}/include
7303       EOF
7304     '';
7305     meta = {
7306       description = "Perl5 access to Berkeley DB version 1.x";
7307       license = with lib.licenses; [ artistic1 gpl1Plus ];
7308     };
7309   };
7311   DBI = buildPerlPackage {
7312     pname = "DBI";
7313     version = "1.644";
7315     src = fetchurl {
7316       url = "mirror://cpan/authors/id/H/HM/HMBRAND/DBI-1.644.tar.gz";
7317       hash = "sha256-Ipe5neCeZwhmQLWQaZ4OmC+0adpjqT/ijcFHgtt6U8g=";
7318     };
7320     env = lib.optionalAttrs stdenv.cc.isGNU {
7321       NIX_CFLAGS_COMPILE = "-Wno-error=incompatible-pointer-types";
7322     };
7324     postInstall = lib.optionalString (perl ? crossVersion) ''
7325       mkdir -p $out/${perl.libPrefix}/cross_perl/${perl.version}/DBI
7326       cat > $out/${perl.libPrefix}/cross_perl/${perl.version}/DBI.pm <<EOF
7327       package DBI;
7328       BEGIN {
7329       our \$VERSION = "$version";
7330       }
7331       1;
7332       EOF
7334       autodir=$(echo $out/${perl.libPrefix}/${perl.version}/*/auto/DBI)
7335       cat > $out/${perl.libPrefix}/cross_perl/${perl.version}/DBI/DBD.pm <<EOF
7336       package DBI::DBD;
7337       use Exporter ();
7338       use vars qw (@ISA @EXPORT);
7339       @ISA = qw(Exporter);
7340       @EXPORT = qw(dbd_postamble);
7341       sub dbd_postamble {
7342           return '
7343       # --- This section was generated by DBI::DBD::dbd_postamble()
7344       DBI_INSTARCH_DIR=$autodir
7345       DBI_DRIVER_XST=$autodir/Driver.xst
7347       # The main dependency (technically correct but probably not used)
7348       \$(BASEEXT).c: \$(BASEEXT).xsi
7350       # This dependency is needed since MakeMaker uses the .xs.o rule
7351       \$(BASEEXT)\$(OBJ_EXT): \$(BASEEXT).xsi
7353       \$(BASEEXT).xsi: \$(DBI_DRIVER_XST) $autodir/Driver_xst.h
7354       ''\t\$(PERL) -p -e "s/~DRIVER~/\$(BASEEXT)/g" \$(DBI_DRIVER_XST) > \$(BASEEXT).xsi
7356       # ---
7357       ';
7358       }
7359       1;
7360       EOF
7361     '';
7363     meta = {
7364       description = "Database independent interface for Perl";
7365       homepage = "https://dbi.perl.org";
7366       license = with lib.licenses; [ artistic1 gpl1Plus ];
7367     };
7368   };
7370   DBICxTestDatabase = buildPerlPackage {
7371     pname = "DBICx-TestDatabase";
7372     version = "0.05";
7373     src = fetchurl {
7374       url = "mirror://cpan/authors/id/J/JR/JROCKWAY/DBICx-TestDatabase-0.05.tar.gz";
7375       hash = "sha256-jjvCUwsBIWGIw6plrNvS9ZxOYx864IXfxDmr2J+PCs8=";
7376     };
7377     buildInputs = [ DBIxClass TestSimple13 ];
7378     propagatedBuildInputs = [ DBDSQLite SQLTranslator ];
7379     meta = {
7380       description = "Create a temporary database from a DBIx::Class::Schema";
7381       homepage = "https://metacpan.org/pod/DBICx::TestDatabase";
7382       license = with lib.licenses; [ artistic1 gpl1Plus ];
7383       maintainers = [ maintainers.sgo ];
7384     };
7385   };
7387   DBIxClass = buildPerlPackage {
7388     pname = "DBIx-Class";
7389     version = "0.082843";
7390     src = fetchurl {
7391       url = "mirror://cpan/authors/id/R/RI/RIBASUSHI/DBIx-Class-0.082843.tar.gz";
7392       hash = "sha256-NB4Lbssp2MSRdKbAnXxtvzhym6QBXuf9cDYKT/7h8lE=";
7393     };
7394     buildInputs = [ DBDSQLite TestDeep TestException TestWarn ];
7395     propagatedBuildInputs = [ ClassAccessorGrouped ClassC3Componentised ConfigAny ContextPreserve DBI DataDumperConcise DataPage DevelGlobalDestruction ModuleFind PathClass SQLAbstractClassic ScopeGuard SubName namespaceclean ];
7396     meta = {
7397       description = "Extensible and flexible object <-> relational mapper";
7398       homepage = "https://metacpan.org/pod/DBIx::Class";
7399       license = with lib.licenses; [ artistic1 gpl1Plus ];
7400       mainProgram = "dbicadmin";
7401     };
7402   };
7404   DBIxClassCandy = buildPerlPackage {
7405     pname = "DBIx-Class-Candy";
7406     version = "0.005003";
7407     src = fetchurl {
7408       url = "mirror://cpan/authors/id/F/FR/FREW/DBIx-Class-Candy-0.005003.tar.gz";
7409       hash = "sha256-uKIpp7FfVZCV1FYc+CIEYBKFQbp/w1Re01hpkj1GVlw=";
7410     };
7411     buildInputs = [ TestDeep TestFatal ];
7412     propagatedBuildInputs = [ DBIxClass LinguaENInflect SubExporter ];
7413     meta = {
7414       description = "Sugar for your favorite ORM, DBIx::Class";
7415       homepage = "https://github.com/frioux/DBIx-Class-Candy";
7416       license = with lib.licenses; [ artistic1 gpl1Plus ];
7417     };
7418   };
7420   DBIxClassCursorCached = buildPerlPackage {
7421     pname = "DBIx-Class-Cursor-Cached";
7422     version = "1.001004";
7423     src = fetchurl {
7424       url = "mirror://cpan/authors/id/A/AR/ARCANEZ/DBIx-Class-Cursor-Cached-1.001004.tar.gz";
7425       hash = "sha256-NwhSMqEjClqodUOZ+1mw+PzV9Zeh4uNIxSJ0YaGSYiU=";
7426     };
7427     buildInputs = [ CacheCache DBDSQLite ];
7428     propagatedBuildInputs = [ CarpClan DBIxClass ];
7429     meta = {
7430       description = "Cursor class with built-in caching support";
7431       license = with lib.licenses; [ artistic1 gpl1Plus ];
7432     };
7433   };
7435   DBIxClassDynamicDefault = buildPerlPackage {
7436     pname = "DBIx-Class-DynamicDefault";
7437     version = "0.04";
7438     src = fetchurl {
7439       url = "mirror://cpan/authors/id/M/MS/MSTROUT/DBIx-Class-DynamicDefault-0.04.tar.gz";
7440       hash = "sha256-Io9RqyJGQlhLTcY9tt4mZ8W/riqJSpN2shChBIBqWvs=";
7441     };
7442     buildInputs = [ DBICxTestDatabase ];
7443     propagatedBuildInputs = [ DBIxClass ];
7444     meta = {
7445       description = "Automatically set and update fields";
7446       homepage = "https://metacpan.org/pod/DBIx::Class::DynamicDefault";
7447       license = with lib.licenses; [ artistic1 gpl1Plus ];
7448       maintainers = [ maintainers.sgo ];
7449     };
7450   };
7452   DBIxClassHTMLWidget = buildPerlPackage {
7453     pname = "DBIx-Class-HTMLWidget";
7454     version = "0.16";
7455     src = fetchurl {
7456       url = "mirror://cpan/authors/id/A/AN/ANDREMAR/DBIx-Class-HTMLWidget-0.16.tar.gz";
7457       hash = "sha256-QUJ1YyFu31qTllCQrg4chaldN6gdcg8CwTYM+n208Bc=";
7458     };
7459     propagatedBuildInputs = [ DBIxClass HTMLWidget ];
7460     meta = {
7461       description = "Like FromForm but with DBIx::Class and HTML::Widget";
7462       license = with lib.licenses; [ artistic1 gpl1Plus ];
7463     };
7464   };
7466   DBIxClassHelpers = buildPerlPackage {
7467     pname = "DBIx-Class-Helpers";
7468     version = "2.036000";
7469     src = fetchurl {
7470       url = "mirror://cpan/authors/id/F/FR/FREW/DBIx-Class-Helpers-2.036000.tar.gz";
7471       hash = "sha256-t7i0iRqYPANO8LRfQRJASgpAVQxOIX2ut6IsoWhh79s=";
7472     };
7473     buildInputs = [ DBDSQLite DateTimeFormatSQLite TestDeep TestFatal TestRoo aliased ];
7474     propagatedBuildInputs = [ CarpClan DBIxClassCandy DBIxIntrospector SafeIsa TextBrew ];
7475     meta = {
7476       description = "Simplify the common case stuff for DBIx::Class";
7477       homepage = "https://github.com/frioux/DBIx-Class-Helpers";
7478       license = with lib.licenses; [ artistic1 gpl1Plus ];
7479     };
7480   };
7482   DBIxClassInflateColumnSerializer = buildPerlPackage {
7483     pname = "DBIx-Class-InflateColumn-Serializer";
7484     version = "0.09";
7485     src = fetchurl {
7486       url = "mirror://cpan/authors/id/M/MR/MRUIZ/DBIx-Class-InflateColumn-Serializer-0.09.tar.gz";
7487       hash = "sha256-YmK0hx22psRaDL583o8biQsiwpGt1OzEDKruq1o6b1A=";
7488     };
7489     buildInputs = [ DBDSQLite TestException ];
7490     propagatedBuildInputs = [ DBIxClass JSONMaybeXS YAML ];
7491     meta = {
7492       description = "Inflators to serialize data structures for DBIx::Class";
7493       homepage = "https://metacpan.org/release/DBIx-Class-InflateColumn-Serializer";
7494       license = with lib.licenses; [ artistic1 gpl1Plus ];
7495       maintainers = [ maintainers.sgo ];
7496     };
7497   };
7499   DBIxClassIntrospectableM2M = buildPerlPackage {
7500     pname = "DBIx-Class-IntrospectableM2M";
7501     version = "0.001002";
7502     src = fetchurl {
7503       url = "mirror://cpan/authors/id/I/IL/ILMARI/DBIx-Class-IntrospectableM2M-0.001002.tar.gz";
7504       hash = "sha256-xrqvtCQWk/2zSynr2QaZOt02S/Mar6RGLz4GIgTMh/A=";
7505     };
7506     propagatedBuildInputs = [ DBIxClass ];
7507     meta = {
7508       description = "Introspect many-to-many relationships";
7509       license = with lib.licenses; [ artistic1 gpl1Plus ];
7510     };
7511   };
7513   DBIxClassSchemaLoader = buildPerlPackage {
7514     pname = "DBIx-Class-Schema-Loader";
7515     version = "0.07051";
7516     src = fetchurl {
7517       url = "mirror://cpan/authors/id/V/VE/VEESH/DBIx-Class-Schema-Loader-0.07051.tar.gz";
7518       hash = "sha256-GgieUISlJ2j0J0vCGB3LrhTcxXnk2YD89WnGeBsGCSw=";
7519     };
7520     buildInputs = [ DBDSQLite TestDeep TestDifferences TestException TestWarn ];
7521     propagatedBuildInputs = [ CarpClan ClassUnload DBIxClass DataDump StringCamelCase StringToIdentifierEN curry ];
7522     meta = {
7523       description = "Create a DBIx::Class::Schema based on a database";
7524       license = with lib.licenses; [ artistic1 gpl1Plus ];
7525       mainProgram = "dbicdump";
7526     };
7527   };
7529   DBIxConnector = buildPerlPackage {
7530     pname = "DBIx-Connector";
7531     version = "0.59";
7532     src = fetchurl {
7533       url = "mirror://cpan/authors/id/A/AR/ARISTOTLE/DBIx-Connector-0.59.tar.gz";
7534       hash = "sha256-eCmU8T9JVVhAU4SU+EBrC/JVj1M8zahsjSuV4jAQh/Q=";
7535     };
7536     buildInputs = [ TestMockModule ];
7537     propagatedBuildInputs = [ DBI ];
7538     meta = {
7539       description = "Fast, safe DBI connection and transaction management";
7540       license = with lib.licenses; [ artistic1 gpl1Plus ];
7541     };
7542   };
7544   DBIxDBSchema = buildPerlPackage {
7545     pname = "DBIx-DBSchema";
7546     version = "0.47";
7547     src = fetchurl {
7548       url = "mirror://cpan/authors/id/I/IV/IVAN/DBIx-DBSchema-0.47.tar.gz";
7549       hash = "sha256-7u4hDcFKjWPrAawtZsZ6HcJ5+Sib6WphckyJUXkcUhI=";
7550     };
7551     propagatedBuildInputs = [ DBI ];
7552     meta = {
7553       description = "Database-independent schema objects";
7554       license = with lib.licenses; [ artistic1 gpl1Plus ];
7555     };
7556   };
7558   DBIxSearchBuilder = buildPerlPackage {
7559     pname = "DBIx-SearchBuilder";
7560     version = "1.77";
7561     src = fetchurl {
7562       url = "mirror://cpan/authors/id/B/BP/BPS/DBIx-SearchBuilder-1.77.tar.gz";
7563       hash = "sha256-O/il1cjF/cYK0vY/Y/c90fZJP/TYJYcoOj4iM36P4HA=";
7564     };
7565     buildInputs = [ DBDSQLite ];
7566     propagatedBuildInputs = [ CacheSimpleTimedExpiry ClassAccessor ClassReturnValue Clone DBIxDBSchema Want capitalization ];
7567     meta = {
7568       description = "Encapsulate SQL queries and rows in simple perl objects";
7569       license = with lib.licenses; [ artistic1 gpl1Plus ];
7570     };
7571   };
7573   DBIxSimple = buildPerlPackage {
7574     pname = "DBIx-Simple";
7575     version = "1.37";
7576     src = fetchurl {
7577       url = "mirror://cpan/authors/id/J/JU/JUERD/DBIx-Simple-1.37.tar.gz";
7578       hash = "sha256-RtMRqizgiQdAHFYRllhCbbsETFpA3nPZp7eb9QOQyuM=";
7579     };
7580     propagatedBuildInputs = [ DBI ];
7581     meta = {
7582       description = "Very complete easy-to-use OO interface to DBI";
7583       license = with lib.licenses; [ artistic1 gpl1Plus ];
7584     };
7585   };
7587   DBMDeep = buildPerlPackage {
7588     pname = "DBM-Deep";
7589     version = "2.0017";
7590     src = fetchurl {
7591       url = "mirror://cpan/authors/id/D/DC/DCANTRELL/DBM-Deep-2.0017.tar.gz";
7592       hash = "sha256-1yNFIFdVO72UXWMhXr/gqnepLsbg+jOw2spXrhuKTSQ=";
7593     };
7594     buildInputs = [ TestDeep TestException TestPod TestPodCoverage TestWarn ];
7595     meta = {
7596       description = "Pure perl multi-level hash/array DBM that supports transactions";
7597       homepage = "https://github.com/robkinyon/dbm-deep";
7598       license = with lib.licenses; [ artistic1 gpl1Plus ];
7599     };
7600   };
7602   DataBinary = buildPerlPackage {
7603     pname = "Data-Binary";
7604     version = "0.01";
7605     src = fetchurl {
7606       url = "mirror://cpan/authors/id/S/SN/SNKWATT/Data-Binary-0.01.tar.gz";
7607       hash = "sha256-SCGi3hCscQj03LKEpxuHaYGwyx6mxe1q+xd78ufLjXM=";
7608     };
7609     meta = {
7610       description = "Simple detection of binary versus text in strings";
7611       license = with lib.licenses; [ artistic2 ];
7612     };
7613   };
7615   DataBuffer = buildPerlPackage {
7616     pname = "Data-Buffer";
7617     version = "0.04";
7618     src = fetchurl {
7619       url = "mirror://cpan/authors/id/B/BT/BTROTT/Data-Buffer-0.04.tar.gz";
7620       hash = "sha256-Kz0Jt7zzifwRYgeyg77iUONI1EycY0YL7mfvq03SG7Q=";
7621     };
7622     meta = {
7623       description = "Read/write buffer class";
7624       license = with lib.licenses; [ artistic1 gpl1Plus ];
7625       maintainers = [ maintainers.sgo ];
7626     };
7627   };
7629   DBIxIntrospector = buildPerlPackage {
7630     pname = "DBIx-Introspector";
7631     version = "0.001005";
7632     src = fetchurl {
7633       url = "mirror://cpan/authors/id/F/FR/FREW/DBIx-Introspector-0.001005.tar.gz";
7634       hash = "sha256-lqlNLMaQwfqP00ET47CEvypGmjI6l4AoWu+S3cOB5jo=";
7635     };
7637     propagatedBuildInputs = [ DBI Moo ];
7638     buildInputs = [ DBDSQLite TestFatal TestRoo ];
7639     meta = {
7640       description = "Detect what database you are connected to";
7641       license = with lib.licenses; [ artistic1 gpl1Plus ];
7642     };
7643   };
7645   DevelCamelcadedb = buildPerlPackage {
7646     pname = "Devel-Camelcadedb";
7647     version = "2023.1";
7648     src = fetchurl {
7649       url = "mirror://cpan/authors/id/H/HU/HURRICUP/Devel-Camelcadedb-v2023.1.tar.gz";
7650       hash = "sha256-z/jSTllF45RN6/ITmVprFVuR5YE0aRVrE9Ws819qXZ8=";
7651     };
7652     propagatedBuildInputs = [ HashStoredIterator JSONXS PadWalker ];
7653     perlPreHook = lib.optionalString stdenv.hostPlatform.isDarwin "export LD=$CC";
7654     meta = {
7655       description = "Perl side of the Perl debugger for IntelliJ IDEA and other JetBrains IDEs";
7656       license = with lib.licenses; [ mit ];
7657     };
7658   };
7660   DevelCycle = buildPerlPackage {
7661     pname = "Devel-Cycle";
7662     version = "1.12";
7663     src = fetchurl {
7664       url = "mirror://cpan/authors/id/L/LD/LDS/Devel-Cycle-1.12.tar.gz";
7665       hash = "sha256-/TNlxNiYsrK927eKRtUHoYzKhJCikBmVR9q38ec5C8I=";
7666     };
7667     meta = {
7668       description = "Find memory cycles in objects";
7669       license = with lib.licenses; [ artistic1 gpl1Plus ];
7670     };
7671   };
7673   DevelDeclare = buildPerlPackage {
7674     pname = "Devel-Declare";
7675     version = "0.006022";
7676     src = fetchurl {
7677       url = "mirror://cpan/authors/id/E/ET/ETHER/Devel-Declare-0.006022.tar.gz";
7678       hash = "sha256-cvKco1ZGpZO+mDEf/dtyAzrh6KnYJUxiqiSL1iYOWW4=";
7679     };
7680     buildInputs = [ ExtUtilsDepends TestRequires ];
7681     propagatedBuildInputs = [ BHooksEndOfScope BHooksOPCheck SubName ];
7682     meta = {
7683       description = "(DEPRECATED) Adding keywords to perl, in perl";
7684       license = with lib.licenses; [ artistic1 gpl1Plus ];
7685     };
7686   };
7688   DevelFindPerl = buildPerlPackage {
7689     pname = "Devel-FindPerl";
7690     version = "0.016";
7691     src = fetchurl {
7692       url = "mirror://cpan/authors/id/L/LE/LEONT/Devel-FindPerl-0.016.tar.gz";
7693       hash = "sha256-Q6K/L3h6PxuIEXkGMWKyqj58sET25eduxkZq6QqGETg=";
7694     };
7695     meta = {
7696       description = "Find the path to your perl";
7697       license = with lib.licenses; [ artistic1 gpl1Plus ];
7698     };
7699   };
7701   DevelGlobalDestruction = buildPerlPackage {
7702     pname = "Devel-GlobalDestruction";
7703     version = "0.14";
7704     src = fetchurl {
7705       url = "mirror://cpan/authors/id/H/HA/HAARG/Devel-GlobalDestruction-0.14.tar.gz";
7706       hash = "sha256-NLil8pmRMRRo/mkTytq6df1dKws+47tB/ltT76uRVKs=";
7707     };
7708     propagatedBuildInputs = [ SubExporterProgressive ];
7709     meta = {
7710       description = "Provides function returning the equivalent of \${^GLOBAL_PHASE} eq 'DESTRUCT' for older perls";
7711       homepage = "https://metacpan.org/release/Devel-GlobalDestruction";
7712       license = with lib.licenses; [ artistic1 gpl1Plus ];
7713     };
7714   };
7716   DevelGlobalPhase = buildPerlPackage {
7717     pname = "Devel-GlobalPhase";
7718     version = "0.003003";
7719     src = fetchurl {
7720       url = "mirror://cpan/authors/id/H/HA/HAARG/Devel-GlobalPhase-0.003003.tar.gz";
7721       hash = "sha256-jaMCL3ynHf2/SqYGmJRNcgCsMUn0c32KnJG/Q4f/MvU=";
7722     };
7723     meta = {
7724       description = "Detect perl's global phase on older perls";
7725       license = with lib.licenses; [ artistic1 gpl1Plus ];
7726     };
7727   };
7729   DevelHide = buildPerlPackage {
7730     pname = "Devel-Hide";
7731     version = "0.0015";
7732     src = fetchurl {
7733       url = "mirror://cpan/authors/id/D/DC/DCANTRELL/Devel-Hide-0.0015.tar.gz";
7734       hash = "sha256-/I2+t/fXWnjtSWseDgXPyZxorKs6LpLP8VXKXw+l31g=";
7735     };
7736     meta = {
7737       description = "Forces the unavailability of specified Perl modules (for testing)";
7738       license = with lib.licenses; [ artistic1 gpl1Plus ];
7739     };
7740   };
7742   DevelNYTProf = buildPerlPackage {
7743     pname = "Devel-NYTProf";
7744     version = "6.12";
7745     src = fetchurl {
7746       url = "mirror://cpan/authors/id/J/JK/JKEENAN/Devel-NYTProf-6.12.tar.gz";
7747       hash = "sha256-qDtZheTalr24X1McFqtvPUkHGnM80JSqMPqF+2pLAsQ=";
7748     };
7749     propagatedBuildInputs = [ FileWhich JSONMaybeXS ];
7750     buildInputs = [ CaptureTiny TestDifferences ];
7751     nativeBuildInputs = lib.optional stdenv.hostPlatform.isDarwin shortenPerlShebang;
7752     postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
7753       shortenPerlShebang $out/bin/*
7754     '';
7755     meta = {
7756       description = "Powerful fast feature-rich Perl source code profiler";
7757       homepage = "https://code.google.com/p/perl-devel-nytprof";
7758       license = with lib.licenses; [ artistic1 gpl1Plus ];
7759     };
7760   };
7762   DevelOverloadInfo = buildPerlPackage {
7763     pname = "Devel-OverloadInfo";
7764     version = "0.007";
7765     src = fetchurl {
7766       url = "mirror://cpan/authors/id/I/IL/ILMARI/Devel-OverloadInfo-0.007.tar.gz";
7767       hash = "sha256-IaGEFjuQ+R8G/8f13guWg1ZUaum0AKnXXFc8lYwkYiI=";
7768     };
7769     propagatedBuildInputs = [ MROCompat PackageStash SubIdentify ];
7770     buildInputs = [ TestFatal ];
7771     meta = {
7772       description = "Introspect overloaded operators";
7773       license = with lib.licenses; [ artistic1 gpl1Plus ];
7774     };
7775   };
7777   DevelOverrideGlobalRequire = buildPerlPackage {
7778     pname = "Devel-OverrideGlobalRequire";
7779     version = "0.001";
7780     src = fetchurl {
7781       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Devel-OverrideGlobalRequire-0.001.tar.gz";
7782       hash = "sha256-B5GJLeOuKSr0qU44LyHbHuiCEIdQMYUebqgsNBB4Xvk=";
7783     };
7784     meta = {
7785       homepage = "https://metacpan.org/release/Devel-OverrideGlobalRequire";
7786       description = "Override CORE::GLOBAL::require safely";
7787       license = with lib.licenses; [ artistic1 gpl1Plus ];
7788     };
7789   };
7791   DevelPartialDump = buildPerlPackage {
7792     pname = "Devel-PartialDump";
7793     version = "0.20";
7794     src = fetchurl {
7795       url = "mirror://cpan/authors/id/E/ET/ETHER/Devel-PartialDump-0.20.tar.gz";
7796       hash = "sha256-rvD/PqWalpGWfCiFEY/2ZxVghJVwicQ4j0nbZG/T2Qc=";
7797     };
7798     propagatedBuildInputs = [ ClassTiny SubExporter namespaceclean ];
7799     buildInputs = [ TestSimple13 TestWarnings ];
7800     meta = {
7801       description = "Partial dumping of data structures, optimized for argument printing";
7802       license = with lib.licenses; [ artistic1 gpl1Plus ];
7803     };
7804   };
7806   DevelStackTrace = buildPerlPackage {
7807     pname = "Devel-StackTrace";
7808     version = "2.04";
7809     src = fetchurl {
7810       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Devel-StackTrace-2.04.tar.gz";
7811       hash = "sha256-zTwD7VR9PULGH6WBTJgpYTk5LnlxwJLgmkMfLJ9daFU=";
7812     };
7813     meta = {
7814       description = "Object representing a stack trace";
7815       homepage = "https://metacpan.org/release/Devel-StackTrace";
7816       license = with lib.licenses; [ artistic2 ];
7817     };
7818   };
7820   DevelSize = buildPerlPackage {
7821     pname = "Devel-Size";
7822     version = "0.84";
7823     src = fetchurl {
7824       url = "mirror://cpan/authors/id/N/NW/NWCLARK/Devel-Size-0.84.tar.gz";
7825       hash = "sha256-2y5NZfaI2/WSc7XoIQGsPxpm9mWvsFlNzhaLhlCk0OQ=";
7826     };
7827     meta = {
7828       description = "Perl extension for finding the memory usage of Perl variables";
7829       license = with lib.licenses; [ artistic1 gpl1Plus ];
7830     };
7831   };
7833   DevelStackTraceAsHTML = buildPerlPackage {
7834     pname = "Devel-StackTrace-AsHTML";
7835     version = "0.15";
7836     src = fetchurl {
7837       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Devel-StackTrace-AsHTML-0.15.tar.gz";
7838       hash = "sha256-YoPb4hl+LyAAnMS0SZl3Qhac3ZUb/ETLxuYsKpYtMUc=";
7839     };
7840     propagatedBuildInputs = [ DevelStackTrace ];
7841     meta = {
7842       description = "Displays stack trace in HTML";
7843       homepage = "https://github.com/miyagawa/Devel-StackTrace-AsHTML";
7844       license = with lib.licenses; [ artistic1 gpl1Plus ];
7845     };
7846   };
7848   DevelSymdump = buildPerlPackage {
7849     pname = "Devel-Symdump";
7850     version = "2.18";
7851     src = fetchurl {
7852       url = "mirror://cpan/authors/id/A/AN/ANDK/Devel-Symdump-2.18.tar.gz";
7853       hash = "sha256-gm+BoQf1WSolFnZu1DvrR+EMyD7cnqSAkLAqNgQHdsA=";
7854     };
7855     meta = {
7856       description = "Dump symbol names or the symbol table";
7857       license = with lib.licenses; [ artistic1 gpl1Plus ];
7858     };
7859   };
7861   DigestCRC = buildPerlPackage {
7862     pname = "Digest-CRC";
7863     version = "0.24";
7864     src = fetchurl {
7865       url = "mirror://cpan/authors/id/O/OL/OLIMAUL/Digest-CRC-0.24.tar.gz";
7866       hash = "sha256-ugIqBbGtvsc3EsRvIz2Eif4Tobn8QKH8zu2bUvkN78E=";
7867     };
7868     meta = {
7869       description = "Module that calculates CRC sums of all sorts";
7870       license = with lib.licenses; [ publicDomain ];
7871     };
7872   };
7874   DigestHMAC = buildPerlPackage {
7875     pname = "Digest-HMAC";
7876     version = "1.04";
7877     src = fetchurl {
7878       url = "mirror://cpan/authors/id/A/AR/ARODLAND/Digest-HMAC-1.04.tar.gz";
7879       hash = "sha256-1ryBVqonXETXlLfBj0TNrEpYFAJFyVnmsZssODiwjtQ=";
7880     };
7881     meta = {
7882       description = "Keyed-Hashing for Message Authentication";
7883       homepage = "https://metacpan.org/release/Digest-HMAC";
7884       license = with lib.licenses; [ artistic1 gpl1Plus ];
7885     };
7886   };
7888   DigestJHash = buildPerlPackage {
7889     pname = "Digest-JHash";
7890     version = "0.10";
7891     src = fetchurl {
7892       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Digest-JHash-0.10.tar.gz";
7893       hash = "sha256-x0bPCoYaAECQJjzVTXco0MdZWgz5DLv9hAmzlu47AGM=";
7894     };
7895     meta = {
7896       description = "Perl extension for 32 bit Jenkins Hashing Algorithm";
7897       license = with lib.licenses; [ artistic2 ];
7898     };
7899   };
7901   DigestMD2 = buildPerlPackage {
7902     pname = "Digest-MD2";
7903     version = "2.04";
7904     src = fetchurl {
7905       url = "mirror://cpan/authors/id/G/GA/GAAS/Digest-MD2-2.04.tar.gz";
7906       hash = "sha256-0Kq/SDTCCsQRvqQnxKMItZpfyqMnZ571KUwdaKtx7tM=";
7907     };
7908     meta = {
7909       description = "Perl interface to the MD2 Algorithm";
7910       license = with lib.licenses; [ artistic1 gpl1Plus ];
7911       maintainers = [ maintainers.sgo ];
7912     };
7913   };
7915   DigestMD4 = buildPerlPackage {
7916     pname = "Digest-MD4";
7917     version = "1.9";
7918     src = fetchurl {
7919       url = "mirror://cpan/authors/id/M/MI/MIKEM/DigestMD4/Digest-MD4-1.9.tar.gz";
7920       hash = "sha256-ZlEQu6MkcPOY8xHNZGL9iXXXyDZ1/2dLwvbHtysMqqY=";
7921     };
7922     meta = {
7923       description = "Perl interface to the MD4 Algorithm";
7924       license = with lib.licenses; [ artistic1 gpl1Plus ];
7925     };
7926   };
7928   DigestMD5File = buildPerlPackage {
7929     pname = "Digest-MD5-File";
7930     version = "0.08";
7931     src = fetchurl {
7932       url = "mirror://cpan/authors/id/D/DM/DMUEY/Digest-MD5-File-0.08.tar.gz";
7933       hash = "sha256-rbQ6VOMmJ7T35XyWQObrBtC7edjqVM0L157TVoj7Ehg=";
7934     };
7935     propagatedBuildInputs = [ LWP ];
7936     meta = {
7937       description = "Perl extension for getting MD5 sums for files and urls";
7938       license = with lib.licenses; [ artistic1 gpl1Plus ];
7939     };
7940   };
7942   DigestPerlMD5 = buildPerlPackage {
7943     pname = "Digest-Perl-MD5";
7944     version = "1.9";
7945     src = fetchurl {
7946       url = "mirror://cpan/authors/id/D/DE/DELTA/Digest-Perl-MD5-1.9.tar.gz";
7947       hash = "sha256-cQDLoXEPRfsOkH2LGnvYyu81xkrNMdfyJa/1r/7s2bE=";
7948     };
7949     meta = {
7950       description = "Perl Implementation of Rivest's MD5 algorithm";
7951       license = with lib.licenses; [ artistic1 gpl1Plus ];
7952     };
7953   };
7955   DigestSHA1 = buildPerlPackage {
7956     pname = "Digest-SHA1";
7957     version = "2.13";
7958     src = fetchurl {
7959       url = "mirror://cpan/authors/id/G/GA/GAAS/Digest-SHA1-2.13.tar.gz";
7960       hash = "sha256-aMHawhh0IfDrer9xRSoG8ZAYG4/Eso7e31uQKW+5Q8w=";
7961     };
7962     meta = {
7963       description = "Perl interface to the SHA-1 algorithm";
7964       license = with lib.licenses; [ artistic1 gpl1Plus ];
7965     };
7966   };
7968   DigestSHA3 = buildPerlPackage {
7969     pname = "Digest-SHA3";
7970     version = "1.05";
7971     src = fetchurl {
7972       url = "mirror://cpan/authors/id/M/MS/MSHELOR/Digest-SHA3-1.05.tar.gz";
7973       hash = "sha256-rfG5B5sreBdV5XBId6FDCl8SmX6oIgX9KWbJzEZahSI=";
7974     };
7975     meta = {
7976       description = "Perl extension for SHA-3";
7977       homepage = "https://metacpan.org/release/Digest-SHA3";
7978       license = with lib.licenses; [ artistic1 gpl1Plus ];
7979       maintainers = [ maintainers.sgo ];
7980       mainProgram = "sha3sum";
7981     };
7982   };
7984   DigestSRI = buildPerlPackage {
7985     pname = "Digest-SRI";
7986     version = "0.02";
7987     src = fetchurl {
7988       url = "mirror://cpan/authors/id/H/HA/HAUKEX/Digest-SRI-0.02.tar.gz";
7989       hash = "sha256-VITN/m68OYwkZfeBx3w++1OKOULNSyDWiBjG//kHT8c=";
7990     };
7991     meta = {
7992       description = "Calculate and verify Subresource Integrity hashes (SRI)";
7993       homepage = "https://github.com/haukex/Digest-SRI";
7994       license = with lib.licenses; [ gpl3Plus ];
7995     };
7996   };
7998   DirManifest = buildPerlModule {
7999     pname = "Dir-Manifest";
8000     version = "0.6.1";
8001     src = fetchurl {
8002       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Dir-Manifest-0.6.1.tar.gz";
8003       hash = "sha256-hP9yJoc9XoZW7Hc0TAg4wVOp8BW0a2Dh/oeYuykn5QU=";
8004     };
8005     propagatedBuildInputs = [ Moo PathTiny ];
8006     meta = {
8007       description = "Treat a directory and a manifest file as a hash/dictionary of keys to texts or blobs";
8008       homepage = "https://metacpan.org/release/Dir-Manifest";
8009       license = with lib.licenses; [ mit ];
8010     };
8011   };
8013   DirSelf = buildPerlPackage {
8014     pname = "Dir-Self";
8015     version = "0.11";
8016     src = fetchurl {
8017       url = "mirror://cpan/authors/id/M/MA/MAUKE/Dir-Self-0.11.tar.gz";
8018       hash = "sha256-4lGlGrx9m6PnCPc8KqII4J1HoMUo1iVHEPp4zI1ohbU=";
8019     };
8020     meta = {
8021       description = "__DIR__ constant for the directory your source file is in";
8022       homepage = "https://github.com/mauke/Dir-Self";
8023       license = with lib.licenses; [ artistic1 gpl1Plus ];
8024     };
8025   };
8027   DispatchClass = buildPerlPackage {
8028     pname = "Dispatch-Class";
8029     version = "0.02";
8030     src = fetchurl {
8031       url = "mirror://cpan/authors/id/M/MA/MAUKE/Dispatch-Class-0.02.tar.gz";
8032       hash = "sha256-1020Oxr56L1G/8Fb/k3x5dgQxCzoWC6TdRDcKiyhZYI=";
8033     };
8034     propagatedBuildInputs = [ ExporterTiny ];
8035     meta = {
8036       description = "Dispatch on the type (class) of an argument";
8037       license = with lib.licenses; [ artistic1 gpl1Plus ];
8038     };
8039   };
8041   DistCheckConflicts = buildPerlPackage {
8042     pname = "Dist-CheckConflicts";
8043     version = "0.11";
8044     src = fetchurl {
8045       url = "mirror://cpan/authors/id/D/DO/DOY/Dist-CheckConflicts-0.11.tar.gz";
8046       hash = "sha256-6oRLlobJTWZtnURDIddkSQss3i+YXEFltMLHdmXK7cQ=";
8047     };
8048     buildInputs = [ TestFatal ];
8049     propagatedBuildInputs = [ ModuleRuntime ];
8050     meta = {
8051       description = "Declare version conflicts for your dist";
8052       homepage = "https://metacpan.org/release/Dist-CheckConflicts";
8053       license = with lib.licenses; [ artistic1 gpl1Plus ];
8054     };
8055   };
8057   DistZilla = buildPerlPackage {
8058     pname = "Dist-Zilla";
8059     version = "6.030";
8060     src = fetchurl {
8061       url = "mirror://cpan/authors/id/R/RJ/RJBS/Dist-Zilla-6.030.tar.gz";
8062       hash = "sha256-xAa75oCelO23DKlDJMMBQz1sij375wsC3xLh3/LzsTA=";
8063     };
8064     buildInputs = [ CPANMetaCheck TestDeep TestFailWarnings TestFatal TestFileShareDir ];
8065     propagatedBuildInputs = [ AppCmd CPANUploader ConfigMVPReaderINI DateTime FileCopyRecursive FileFindRule FileShareDirInstall Filepushd LogDispatchouli MooseXLazyRequire MooseXSetOnce MooseXTypesPerl PathTiny PerlPrereqScanner SoftwareLicense TermEncoding TermUI YAMLTiny ];
8066     nativeBuildInputs = lib.optional stdenv.hostPlatform.isDarwin shortenPerlShebang;
8067     postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
8068       shortenPerlShebang $out/bin/dzil
8069     '';
8070     doCheck = false;
8071     meta = {
8072       description = "Distribution builder; installer not included!";
8073       homepage = "https://dzil.org";
8074       license = with lib.licenses; [ artistic1 gpl1Plus ];
8075       mainProgram = "dzil";
8076     };
8077   };
8079   DistZillaPluginBundleTestingMania = buildPerlModule {
8080     pname = "Dist-Zilla-PluginBundle-TestingMania";
8081     version = "0.25";
8082     src = fetchurl {
8083       url = "mirror://cpan/authors/id/D/DO/DOHERTY/Dist-Zilla-PluginBundle-TestingMania-0.25.tar.gz";
8084       hash = "sha256-XguywA8UD9ZNy9EvpdPJ4kS5NWgor0ZRmLYjBGnUWRw=";
8085     };
8086     buildInputs = [ MooseAutobox TestCPANMeta TestPerlCritic TestVersion ];
8087     propagatedBuildInputs = [ DistZillaPluginMojibakeTests DistZillaPluginTestCPANChanges DistZillaPluginTestCPANMetaJSON DistZillaPluginTestCompile DistZillaPluginTestDistManifest DistZillaPluginTestEOL DistZillaPluginTestKwalitee DistZillaPluginTestMinimumVersion DistZillaPluginTestNoTabs DistZillaPluginTestPerlCritic DistZillaPluginTestPodLinkCheck DistZillaPluginTestPortability DistZillaPluginTestSynopsis DistZillaPluginTestUnusedVars DistZillaPluginTestVersion PodCoverageTrustPod ];
8088     doCheck = false; /* fails with 'open3: exec of .. perl .. failed: Argument list too long at .../TAP/Parser/Iterator/Process.pm line 165.' */
8089     meta = {
8090       description = "Test your dist with every testing plugin conceivable";
8091       homepage = "https://metacpan.org/release/Dist-Zilla-PluginBundle-TestingMania";
8092       license = with lib.licenses; [ artistic1 gpl1Plus ];
8093     };
8094   };
8096   DistZillaPluginCheckChangeLog = buildPerlPackage {
8097     pname = "Dist-Zilla-Plugin-CheckChangeLog";
8098     version = "0.05";
8099     src = fetchurl {
8100       url = "mirror://cpan/authors/id/F/FA/FAYLAND/Dist-Zilla-Plugin-CheckChangeLog-0.05.tar.gz";
8101       hash = "sha256-sLNNbXC1bxlE0DxfDcO49vJEdMgW0HtlehFsaSwuBSo=";
8102     };
8103     propagatedBuildInputs = [ DistZilla ];
8104     buildInputs = [ PathClass PodCoverage PodCoverageTrustPod PodMarkdown TestDeep TestException TestPod TestPodCoverage ];
8105     meta = {
8106       description = "Dist::Zilla with Changes check";
8107       license = with lib.licenses; [ artistic1 gpl1Plus ];
8108     };
8109   };
8111   DistZillaPluginMojibakeTests = buildPerlPackage {
8112     pname = "Dist-Zilla-Plugin-MojibakeTests";
8113     version = "0.8";
8114     src = fetchurl {
8115       url = "mirror://cpan/authors/id/S/SY/SYP/Dist-Zilla-Plugin-MojibakeTests-0.8.tar.gz";
8116       hash = "sha256-8f/1R+okqPekg0Bqcu1sQFjXRtna6WNyVQLdugJas4A=";
8117     };
8118     propagatedBuildInputs = [ DistZilla ];
8119     buildInputs = [ TestMojibake ];
8120     meta = {
8121       description = "Author tests for source encoding";
8122       homepage = "https://github.com/creaktive/Dist-Zilla-Plugin-MojibakeTests";
8123       license = with lib.licenses; [ artistic1 gpl1Plus ];
8124     };
8125   };
8127   DistZillaPluginPodWeaver = buildPerlPackage {
8128     pname = "Dist-Zilla-Plugin-PodWeaver";
8129     version = "4.010";
8130     src = fetchurl {
8131       url = "mirror://cpan/authors/id/R/RJ/RJBS/Dist-Zilla-Plugin-PodWeaver-4.010.tar.gz";
8132       hash = "sha256-Zm1S1UXUjSpn8VN63HTPOMdkofmVHQtiNiP2IGDLYj4=";
8133     };
8134     propagatedBuildInputs = [ DistZilla PodElementalPerlMunger PodWeaver ];
8135     meta = {
8136       description = "Weave your Pod together from configuration and Dist::Zilla";
8137       homepage = "https://github.com/rjbs/Dist-Zilla-Plugin-PodWeaver";
8138       license = with lib.licenses; [ artistic1 gpl1Plus ];
8139     };
8140   };
8142   DistZillaPluginReadmeAnyFromPod = buildPerlPackage {
8143     pname = "Dist-Zilla-Plugin-ReadmeAnyFromPod";
8144     version = "0.163250";
8145     src = fetchurl {
8146       url = "mirror://cpan/authors/id/R/RT/RTHOMPSON/Dist-Zilla-Plugin-ReadmeAnyFromPod-0.163250.tar.gz";
8147       hash = "sha256-1E8nmZIveLKnlh7YkSPhG913q/6FuiBA2CuArXLtE7w=";
8148     };
8149     buildInputs = [ TestDeep TestDifferences TestException TestFatal TestMost TestRequires TestSharedFork TestWarn ];
8150     propagatedBuildInputs = [ DistZillaRoleFileWatcher MooseXHasSugar PodMarkdownGithub ];
8151     meta = {
8152       description = "Automatically convert POD to a README in any format for Dist::Zilla";
8153       homepage = "https://github.com/DarwinAwardWinner/Dist-Zilla-Plugin-ReadmeAnyFromPod";
8154       license = with lib.licenses; [ artistic1 gpl1Plus ];
8155     };
8156   };
8158   DistZillaPluginReadmeMarkdownFromPod = buildPerlPackage {
8159     pname = "Dist-Zilla-Plugin-ReadmeMarkdownFromPod";
8160     version = "0.141140";
8161     src = fetchurl {
8162       url = "mirror://cpan/authors/id/R/RT/RTHOMPSON/Dist-Zilla-Plugin-ReadmeMarkdownFromPod-0.141140.tar.gz";
8163       hash = "sha256-nKrXs2bqWRGa1zzdmdzdU/h3pRW9AWT8KLM5wBc5qAE=";
8164     };
8165     buildInputs = [ TestDeep TestDifferences TestException TestMost TestWarn ];
8166     propagatedBuildInputs = [ DistZillaPluginReadmeAnyFromPod ];
8167     meta = {
8168       description = "Automatically convert POD to a README.mkdn for Dist::Zilla";
8169       homepage = "https://github.com/DarwinAwardWinner/Dist-Zilla-Plugin-ReadmeMarkdownFromPod";
8170       license = with lib.licenses; [ artistic1 gpl1Plus ];
8171     };
8172   };
8174   DistZillaPluginTestCPANChanges = buildPerlPackage {
8175     pname = "Dist-Zilla-Plugin-Test-CPAN-Changes";
8176     version = "0.012";
8177     src = fetchurl {
8178       url = "mirror://cpan/authors/id/D/DO/DOHERTY/Dist-Zilla-Plugin-Test-CPAN-Changes-0.012.tar.gz";
8179       hash = "sha256-IVs6XDxYyLqw6icTBEG72uxzfuzADwZwk39gi9v2SAY=";
8180     };
8181     buildInputs = [ CPANChanges TestDeep ];
8182     propagatedBuildInputs = [ DistZilla ];
8183     meta = {
8184       description = "Release tests for your changelog";
8185       homepage = "https://metacpan.org/release/Dist-Zilla-Plugin-Test-CPAN-Changes";
8186       license = with lib.licenses; [ artistic1 gpl1Plus ];
8187     };
8188   };
8190   DistZillaPluginTestCPANMetaJSON = buildPerlModule {
8191     pname = "Dist-Zilla-Plugin-Test-CPAN-Meta-JSON";
8192     version = "0.004";
8193     src = fetchurl {
8194       url = "mirror://cpan/authors/id/D/DO/DOHERTY/Dist-Zilla-Plugin-Test-CPAN-Meta-JSON-0.004.tar.gz";
8195       hash = "sha256-Clc+HVZAN05u5NVtT7lKPGfU511Ss93q5wz6ZFDhryI=";
8196     };
8197     buildInputs = [ MooseAutobox TestCPANMetaJSON TestDeep ];
8198     propagatedBuildInputs = [ DistZilla ];
8199     meta = {
8200       description = "Validate your CPAN META.json files";
8201       homepage = "https://p3rl.org/Dist::Zilla::Plugin::Test::CPAN::Meta::JSON";
8202       license = with lib.licenses; [ artistic2 ];
8203     };
8204   };
8206   DistZillaPluginTestCompile = buildPerlModule {
8207     pname = "Dist-Zilla-Plugin-Test-Compile";
8208     version = "2.058";
8209     src = fetchurl {
8210       url = "mirror://cpan/authors/id/E/ET/ETHER/Dist-Zilla-Plugin-Test-Compile-2.058.tar.gz";
8211       hash = "sha256-0M+T5SXxAuyg9/OWcSTS5Z0KIS9zjOVMHd2R3aJo2Io=";
8212     };
8213     buildInputs = [ CPANMetaCheck ModuleBuildTiny TestDeep TestMinimumVersion TestWarnings ];
8214     propagatedBuildInputs = [ DistZilla ];
8215     meta = {
8216       description = "Assert that your Perl files compile OK";
8217       homepage = "https://github.com/karenetheridge/Dist-Zilla-Plugin-Test-Compile";
8218       license = with lib.licenses; [ artistic1 gpl1Plus ];
8219     };
8220   };
8222   DistZillaPluginTestDistManifest = buildPerlModule {
8223     pname = "Dist-Zilla-Plugin-Test-DistManifest";
8224     version = "2.000006";
8225     src = fetchurl {
8226       url = "mirror://cpan/authors/id/E/ET/ETHER/Dist-Zilla-Plugin-Test-DistManifest-2.000006.tar.gz";
8227       hash = "sha256-Wj2kW/yYzjhf7X3BZTp4kGEfC57xVsABOueFdPiWYH0=";
8228     };
8229     buildInputs = [ ModuleBuildTiny TestDeep TestDistManifest TestOutput ];
8230     propagatedBuildInputs = [ DistZilla ];
8231     meta = {
8232       description = "Author test that validates a package MANIFEST";
8233       homepage = "https://github.com/jawnsy/Test-DistManifest";
8234       license = with lib.licenses; [ artistic1 gpl1Plus ];
8235     };
8236   };
8238   DistZillaPluginTestEOL = buildPerlModule {
8239     pname = "Dist-Zilla-Plugin-Test-EOL";
8240     version = "0.19";
8241     src = fetchurl {
8242       url = "mirror://cpan/authors/id/E/ET/ETHER/Dist-Zilla-Plugin-Test-EOL-0.19.tar.gz";
8243       hash = "sha256-orlZx6AszDLt1D7lhgmHVhPv1Ty8u9YDmeF/FUZ6Qzg=";
8244     };
8245     buildInputs = [ ModuleBuildTiny TestDeep TestEOL TestWarnings ];
8246     propagatedBuildInputs = [ DistZilla ];
8247     meta = {
8248       description = "Check the correct line endings in your project";
8249       homepage = "https://github.com/karenetheridge/Test-EOL";
8250       license = with lib.licenses; [ artistic1 gpl1Plus ];
8251     };
8252   };
8254   DistZillaPluginTestKwalitee = buildPerlModule {
8255     pname = "Dist-Zilla-Plugin-Test-Kwalitee";
8256     version = "2.12";
8257     src = fetchurl {
8258       url = "mirror://cpan/authors/id/E/ET/ETHER/Dist-Zilla-Plugin-Test-Kwalitee-2.12.tar.gz";
8259       hash = "sha256-vdvPzHXo6y0tnIYRVS8AzcGwUfDwB5hiO4aS/1Awry8=";
8260     };
8261     buildInputs = [ ModuleBuildTiny TestDeep TestFatal TestKwalitee ];
8262     propagatedBuildInputs = [ DistZilla ];
8263     meta = {
8264       description = "Test the Kwalitee of a distribution before you release it";
8265       license = with lib.licenses; [ artistic1 gpl1Plus ];
8266     };
8267   };
8269   DistZillaPluginTestMinimumVersion = buildPerlModule {
8270     pname = "Dist-Zilla-Plugin-Test-MinimumVersion";
8271     version = "2.000010";
8272     src = fetchurl {
8273       url = "mirror://cpan/authors/id/E/ET/ETHER/Dist-Zilla-Plugin-Test-MinimumVersion-2.000010.tar.gz";
8274       hash = "sha256-uLcfS2S2ifS2R6OofWqqrkWmiJLTXja6qXb2BXNjcPs=";
8275     };
8276     buildInputs = [ ModuleBuildTiny TestDeep TestMinimumVersion TestOutput ];
8277     propagatedBuildInputs = [ DistZilla ];
8278     meta = {
8279       description = "Release tests for minimum required versions";
8280       license = with lib.licenses; [ artistic1 gpl1Plus ];
8281     };
8282   };
8284   DistZillaPluginTestNoTabs = buildPerlModule {
8285     pname = "Dist-Zilla-Plugin-Test-NoTabs";
8286     version = "0.15";
8287     src = fetchurl {
8288       url = "mirror://cpan/authors/id/E/ET/ETHER/Dist-Zilla-Plugin-Test-NoTabs-0.15.tar.gz";
8289       hash = "sha256-G2EMQpFpKbtwFDw2t55XF1JbDp3njj1GCal4ZCtk0KQ=";
8290     };
8291     propagatedBuildInputs = [ DistZilla ];
8292     buildInputs = [ ModuleBuildTiny TestDeep TestNoTabs TestRequires ];
8293     meta = {
8294       description = "Check the presence of tabs in your project";
8295       homepage = "https://github.com/karenetheridge/Dist-Zilla-Plugin-Test-NoTabs";
8296       license = with lib.licenses; [ artistic1 gpl1Plus ];
8297     };
8298   };
8300   DistZillaPluginTestPerlCritic = buildPerlModule {
8301     pname = "Dist-Zilla-Plugin-Test-Perl-Critic";
8302     version = "3.001";
8303     src = fetchurl {
8304       url = "mirror://cpan/authors/id/E/ET/ETHER/Dist-Zilla-Plugin-Test-Perl-Critic-3.001.tar.gz";
8305       hash = "sha256-klC1nV3Brkxok7p4O9PwUTGxT/npGvtFVTFPVSaKOCU=";
8306     };
8307     buildInputs = [ ModuleBuildTiny TestDeep TestPerlCritic ];
8308     propagatedBuildInputs = [ DistZilla ];
8309     meta = {
8310       description = "Tests to check your code against best practices";
8311       license = with lib.licenses; [ artistic1 gpl1Plus ];
8312     };
8313   };
8315   DistZillaPluginTestPodLinkCheck = buildPerlPackage {
8316     pname = "Dist-Zilla-Plugin-Test-Pod-LinkCheck";
8317     version = "1.004";
8318     src = fetchurl {
8319       url = "mirror://cpan/authors/id/R/RW/RWSTAUNER/Dist-Zilla-Plugin-Test-Pod-LinkCheck-1.004.tar.gz";
8320       hash = "sha256-Ml0jbaCUA4jSqobsXBMmUWtK1Fre+Oek+Du5HV7hVJA=";
8321     };
8322     # buildInputs = [ TestPodLinkCheck ];
8323     propagatedBuildInputs = [ DistZilla ];
8324     buildInputs = [ TestPodLinkCheck ];
8325     meta = {
8326       description = "Add release tests for POD links";
8327       homepage = "https://github.com/rwstauner/Dist-Zilla-Plugin-Test-Pod-LinkCheck";
8328       license = with lib.licenses; [ artistic1 gpl1Plus ];
8329     };
8330   };
8332   DistZillaPluginTestPortability = buildPerlModule {
8333     pname = "Dist-Zilla-Plugin-Test-Portability";
8334     version = "2.001001";
8335     src = fetchurl {
8336       url = "mirror://cpan/authors/id/E/ET/ETHER/Dist-Zilla-Plugin-Test-Portability-2.001001.tar.gz";
8337       hash = "sha256-07kxVx4VoidI6BJwmq/aclEKdMAA/AaiyrWHVYEACyA=";
8338     };
8339     buildInputs = [ ModuleBuildTiny TestDeep TestPortabilityFiles TestWarnings ];
8340     propagatedBuildInputs = [ DistZilla ];
8341     meta = {
8342       description = "Author tests for portability";
8343       homepage = "https://github.com/karenetheridge/Dist-Zilla-Plugin-Test-Portability";
8344       license = with lib.licenses; [ artistic1 gpl1Plus ];
8345     };
8346   };
8348   DistZillaPluginTestSynopsis = buildPerlPackage {
8349     pname = "Dist-Zilla-Plugin-Test-Synopsis";
8350     version = "2.000007";
8351     src = fetchurl {
8352       url = "mirror://cpan/authors/id/D/DO/DOHERTY/Dist-Zilla-Plugin-Test-Synopsis-2.000007.tar.gz";
8353       hash = "sha256-59XiUwzYpbtarfPhZpplOqqW4yyte9a5yrprQlzqtWM=";
8354     };
8355     buildInputs = [ TestDeep TestOutput TestSynopsis ];
8356     propagatedBuildInputs = [ DistZilla ];
8357     meta = {
8358       description = "Release tests for synopses";
8359       license = with lib.licenses; [ artistic1 gpl1Plus ];
8360     };
8361   };
8363   DistZillaPluginTestUnusedVars = buildPerlModule {
8364     pname = "Dist-Zilla-Plugin-Test-UnusedVars";
8365     version = "2.001001";
8366     src = fetchurl {
8367       url = "mirror://cpan/authors/id/E/ET/ETHER/Dist-Zilla-Plugin-Test-UnusedVars-2.001001.tar.gz";
8368       hash = "sha256-df7W0NzCv0B/8nrJ4W7yFTRnFEuYbPovmPhpuqWNdkc=";
8369     };
8370     buildInputs = [ ModuleBuildTiny TestDeep TestOutput TestVars ];
8371     propagatedBuildInputs = [ DistZilla ];
8372     meta = {
8373       description = "Release tests for unused variables";
8374       homepage = "https://metacpan.org/release/Dist-Zilla-Plugin-Test-UnusedVars";
8375       license = with lib.licenses; [ artistic1 gpl1Plus ];
8376     };
8377   };
8379   DistZillaPluginTestVersion = buildPerlPackage {
8380     pname = "Dist-Zilla-Plugin-Test-Version";
8381     version = "1.09";
8382     src = fetchurl {
8383       url = "mirror://cpan/authors/id/P/PL/PLICEASE/Dist-Zilla-Plugin-Test-Version-1.09.tar.gz";
8384       hash = "sha256-ckBQhzG8G/bfrXcB7GVFChjvkkWlIasm69ass5qevhc=";
8385     };
8386     buildInputs = [ Filechdir TestDeep TestEOL TestNoTabs TestScript TestVersion ];
8387     propagatedBuildInputs = [ DistZilla ];
8388     meta = {
8389       description = "Release Test::Version tests";
8390       license = with lib.licenses; [ artistic2 ];
8391     };
8392   };
8394   DistZillaRoleFileWatcher = buildPerlModule {
8395     pname = "Dist-Zilla-Role-FileWatcher";
8396     version = "0.006";
8397     src = fetchurl {
8398       url = "mirror://cpan/authors/id/E/ET/ETHER/Dist-Zilla-Role-FileWatcher-0.006.tar.gz";
8399       hash = "sha256-/jpEuVhtrxJ3/Lu69yFrAs4j77vWlPDfEbf3U0S+TpY=";
8400     };
8401     propagatedBuildInputs = [ DistZilla SafeIsa ];
8402     buildInputs = [ ModuleBuildTiny TestDeep TestFatal ];
8403     meta = {
8404       description = "Receive notification when something changes a file's contents";
8405       homepage = "https://github.com/karenetheridge/Dist-Zilla-Role-FileWatcher";
8406       license = with lib.licenses; [ artistic1 gpl1Plus ];
8407     };
8408   };
8410   Dotenv = buildPerlPackage {
8411     pname = "Dotenv";
8412     version = "0.002";
8413     src = fetchurl {
8414       url = "mirror://cpan/authors/id/B/BO/BOOK/Dotenv-0.002.tar.gz";
8415       hash = "sha256-BMenzEURYX16cMTKQQ0QcH3EliSM2tICQK4kIiMhJFQ=";
8416     };
8417     buildInputs = [ TestCPANMeta TestPod TestPodCoverage ];
8418     propagatedBuildInputs = [ PathTiny ];
8419     meta = {
8420       description = "Support for dotenv in Perl";
8421       license = with lib.licenses; [ artistic1 gpl1Plus ];
8422     };
8423   };
8425   Dumbbench = buildPerlPackage {
8426     pname = "Dumbbench";
8427     version = "0.503";
8428     src = fetchurl {
8429       url = "mirror://cpan/authors/id/B/BD/BDFOY/Dumbbench-0.503.tar.gz";
8430       hash = "sha256-0BYBmoGDE+cERk8oDPZB72Dodx0HeRtZuZ4XoeyAH6k=";
8431     };
8432     propagatedBuildInputs = [ CaptureTiny ClassXSAccessor DevelCheckOS NumberWithError StatisticsCaseResampling ];
8433     meta = {
8434       description = "More reliable benchmarking with the least amount of thinking";
8435       homepage = "https://github.com/briandfoy/dumbbench";
8436       license = with lib.licenses; [ artistic1 gpl1Plus ];
8437       mainProgram = "dumbbench";
8438     };
8439   };
8441   EmailAbstract = buildPerlPackage {
8442     pname = "Email-Abstract";
8443     version = "3.010";
8444     src = fetchurl {
8445       url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-Abstract-3.010.tar.gz";
8446       hash = "sha256-jBL2i1l0yvyZ10lCq+/IWXGTA1qv0nYxKOaqr8pLftY=";
8447     };
8448     propagatedBuildInputs = [ EmailSimple MROCompat ModulePluggable ];
8449     meta = {
8450       description = "Unified interface to mail representations";
8451       homepage = "https://github.com/rjbs/Email-Abstract";
8452       license = with lib.licenses; [ artistic1 gpl1Plus ];
8453     };
8454   };
8456   EmailAddress = buildPerlPackage {
8457     pname = "Email-Address";
8458     version = "1.913";
8459     src = fetchurl {
8460       url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-Address-1.913.tar.gz";
8461       hash = "sha256-avtUH232tTXM92QtNhrhjXqVo/k6zhvFNz9kwkEMpa8=";
8462     };
8463     meta = {
8464       description = "RFC 2822 Address Parsing and Creation";
8465       homepage = "https://github.com/rjbs/Email-Address";
8466       license = with lib.licenses; [ artistic1 gpl1Plus ];
8467     };
8468   };
8470   EmailAddressList = buildPerlPackage {
8471     pname = "Email-Address-List";
8472     version = "0.06";
8473     src = fetchurl {
8474       url = "mirror://cpan/authors/id/B/BP/BPS/Email-Address-List-0.06.tar.gz";
8475       hash = "sha256-MFuUx3gBHO5w2fIVFNkumF+p3Mu4TGR5jwwfCyTrhw4=";
8476     };
8477     buildInputs = [ JSON ];
8478     propagatedBuildInputs = [ EmailAddress ];
8479     meta = {
8480       description = "RFC close address list parsing";
8481       license = with lib.licenses; [ artistic1 gpl1Plus ];
8482     };
8483   };
8485   EmailAddressXS = buildPerlPackage {
8486     pname = "Email-Address-XS";
8487     version = "1.05";
8488     src = fetchurl {
8489       url = "mirror://cpan/authors/id/P/PA/PALI/Email-Address-XS-1.05.tar.gz";
8490       hash = "sha256-FRC38Q1nIBA3zVDSLJ1rJu7KVe3tpM20a7yiflmk6hY=";
8491     };
8492     meta = {
8493       description = "Parse and format RFC 5322 email addresses and groups";
8494       license = with lib.licenses; [ artistic1 gpl1Plus ];
8495     };
8496   };
8498   EmailDateFormat = buildPerlPackage {
8499     pname = "Email-Date-Format";
8500     version = "1.008";
8501     src = fetchurl {
8502       url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-Date-Format-1.008.tar.gz";
8503       hash = "sha256-Qyt8g/+IdJrxKAA/UlfFc67BpGNBjbkO0ihDy7wli08=";
8504     };
8505     meta = {
8506       description = "Produce RFC 2822 date strings";
8507       homepage = "https://github.com/rjbs/Email-Date-Format";
8508       license = with lib.licenses; [ artistic1 gpl1Plus ];
8509     };
8510   };
8512   EmailReply = buildPerlPackage {
8513     pname = "Email-Reply";
8514     version = "1.204";
8515     src = fetchurl {
8516       url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-Reply-1.204.tar.gz";
8517       hash = "sha256-uk/YCsUBfW0TLgNYx4aw7NHHrcvu5cGfs9opZHkaVvA=";
8518     };
8519     propagatedBuildInputs = [ EmailAbstract EmailAddress EmailMIME ];
8520     meta = {
8521       description = "Reply to an email message";
8522       homepage = "https://github.com/Perl-Email-Project/Email-Reply";
8523       license = with lib.licenses; [ artistic1 gpl1Plus ];
8524     };
8525   };
8527   EmailMessageID = buildPerlPackage {
8528     pname = "Email-MessageID";
8529     version = "1.408";
8530     src = fetchurl {
8531       url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-MessageID-1.408.tar.gz";
8532       hash = "sha256-Hz1bT/Cxx7OemsfDGPs3rc0LrJVWA2VGSU0U8G3FZDw=";
8533     };
8534     meta = {
8535       description = "Generate world unique message-ids";
8536       homepage = "https://github.com/rjbs/Email-MessageID";
8537       license = with lib.licenses; [ artistic1 gpl1Plus ];
8538     };
8539   };
8541   EmailMIME = buildPerlPackage {
8542     pname = "Email-MIME";
8543     version = "1.953";
8544     src = fetchurl {
8545       url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-MIME-1.953.tar.gz";
8546       hash = "sha256-mPsGeFBpmiJLq8NI8c7+MNdExg2okC56XOnYt+c99zU=";
8547     };
8548     propagatedBuildInputs = [ EmailAddressXS EmailMIMEContentType EmailMIMEEncodings EmailMessageID EmailSimple MIMETypes ModuleRuntime ];
8549     meta = {
8550       description = "Easy MIME message handling";
8551       homepage = "https://github.com/rjbs/Email-MIME";
8552       license = with lib.licenses; [ artistic1 gpl1Plus ];
8553     };
8554   };
8556   EmailMIMEAttachmentStripper = buildPerlPackage {
8557     pname = "Email-MIME-Attachment-Stripper";
8558     version = "1.317";
8559     buildInputs = [ CaptureTiny ];
8560     propagatedBuildInputs = [ EmailAbstract EmailMIME ];
8562     src = fetchurl {
8563       url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-MIME-Attachment-Stripper-1.317.tar.gz";
8564       hash = "sha256-3LmLCdw+j3V+w4gqQjRUgQi7LRLjz635WibO84Gp54k=";
8565     };
8566     meta = {
8567       description = "Strip the attachments from an email";
8568       homepage = "https://github.com/rjbs/Email-MIME-Attachment-Stripper";
8569       license = with lib.licenses; [ artistic1 gpl1Plus ];
8570     };
8571   };
8573   EmailMIMEContentType = buildPerlPackage {
8574     pname = "Email-MIME-ContentType";
8575     version = "1.028";
8576     src = fetchurl {
8577       url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-MIME-ContentType-1.028.tar.gz";
8578       hash = "sha256-55UCRkM/ftbD5P1N8iJ+DyNBE3w8qxmJAY/DcPWBRcQ=";
8579     };
8580     propagatedBuildInputs = [ TextUnidecode ];
8581     meta = {
8582       description = "Parse and build a MIME Content-Type or Content-Disposition Header";
8583       homepage = "https://github.com/rjbs/Email-MIME-ContentType";
8584       license = with lib.licenses; [ artistic1 gpl1Plus ];
8585     };
8586   };
8588   EmailMIMEEncodings = buildPerlPackage {
8589     pname = "Email-MIME-Encodings";
8590     version = "1.317";
8591     src = fetchurl {
8592       url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-MIME-Encodings-1.317.tar.gz";
8593       hash = "sha256-SppBZxqdFQTE2iQb5BmpUD+jSGJiUm7bgeyp4uvqC68=";
8594     };
8595     buildInputs = [ CaptureTiny ];
8596     meta = {
8597       description = "Unified interface to MIME encoding and decoding";
8598       homepage = "https://github.com/rjbs/Email-MIME-Encodings";
8599       license = with lib.licenses; [ artistic1 gpl1Plus ];
8600     };
8601   };
8603   EmailSend = buildPerlPackage {
8604     pname = "Email-Send";
8605     version = "2.201";
8606     src = fetchurl {
8607       url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-Send-2.201.tar.gz";
8608       hash = "sha256-S77JM1WNfMm4FSutht0xPeJ3ohqJtOqD2E5hWH6V28Y=";
8609     };
8610     propagatedBuildInputs = [ EmailAbstract EmailAddress ReturnValue ];
8611     buildInputs = [ MIMETools MailTools ];
8612     meta = {
8613       description = "Simply Sending Email";
8614       homepage = "https://github.com/rjbs/Email-Send";
8615       license = with lib.licenses; [ artistic1 gpl1Plus ];
8616     };
8617   };
8619   EmailOutlookMessage = buildPerlModule {
8620     pname = "Email-Outlook-Message";
8621     version = "0.921";
8622     src = fetchurl {
8623       url = "mirror://cpan/authors/id/M/MV/MVZ/Email-Outlook-Message-0.921.tar.gz";
8624       hash = "sha256-+0q+6hTNpRweYLwhHPlSG7uq50uEEYym1Y8KciNoA4g=";
8625     };
8626     propagatedBuildInputs = [ EmailMIME EmailSender IOAll IOString OLEStorage_Lite ];
8627     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)
8628     meta = {
8629       homepage = "https://www.matijs.net/software/msgconv/";
8630       description = ".MSG to mbox converter";
8631       license = with lib.licenses; [ artistic1 gpl1Plus ];
8632       maintainers = with maintainers; [ peterhoeg ];
8633       mainProgram = "msgconvert";
8634     };
8635   };
8637   EmailSender = buildPerlPackage {
8638     pname = "Email-Sender";
8639     version = "2.600";
8640     src = fetchurl {
8641       url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-Sender-2.600.tar.gz";
8642       hash = "sha256-7MZ10DDXnZpPsGRWfqiFxmsXw4Yjea0w+CBaKBzY7ik=";
8643     };
8644     buildInputs = [ CaptureTiny ];
8645     propagatedBuildInputs = [ EmailAbstract EmailAddressXS EmailSimple ModuleRuntime Moo MooXTypesMooseLike SubExporter Throwable TryTiny ];
8646     nativeBuildInputs = lib.optional stdenv.hostPlatform.isDarwin shortenPerlShebang;
8647     postPatch = ''
8648       patchShebangs --build util
8649     '';
8650     preCheck = lib.optionalString stdenv.hostPlatform.isDarwin ''
8651       shortenPerlShebang util/sendmail
8652     '';
8653     meta = {
8654       description = "Library for sending email";
8655       homepage = "https://github.com/rjbs/Email-Sender";
8656       license = with lib.licenses; [ artistic1 gpl1Plus ];
8657     };
8658   };
8660   EmailSimple = buildPerlPackage {
8661     pname = "Email-Simple";
8662     version = "2.218";
8663     src = fetchurl {
8664       url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-Simple-2.218.tar.gz";
8665       hash = "sha256-Lc4daP3pnVPbnKQ+IRtpsWm6Lvrs+HpVyzOpM2BHyW0=";
8666     };
8667     propagatedBuildInputs = [ EmailDateFormat ];
8668     meta = {
8669       description = "Simple parsing of RFC2822 message format and headers";
8670       homepage = "https://github.com/rjbs/Email-Simple";
8671       license = with lib.licenses; [ artistic1 gpl1Plus ];
8672     };
8673   };
8675   EmailStuffer = buildPerlPackage {
8676     pname = "Email-Stuffer";
8677     version = "0.020";
8678     src = fetchurl {
8679       url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-Stuffer-0.020.tar.gz";
8680       hash = "sha256-Ch77fy3t05BSsSb3GMotO1hFpBI6OTkv2d+gx25gV8c=";
8681     };
8682     buildInputs = [ Moo TestFatal ];
8683     propagatedBuildInputs = [ EmailMIME EmailSender ModuleRuntime ParamsUtil ];
8684     meta = {
8685       description = "More casual approach to creating and sending Email:: emails";
8686       homepage = "https://github.com/rjbs/Email-Stuffer";
8687       license = with lib.licenses; [ artistic1 gpl1Plus ];
8688       maintainers = with maintainers; [ sgo ];
8689     };
8690   };
8692   EmailValid = buildPerlPackage {
8693     pname = "Email-Valid";
8694     version = "1.203";
8695     src = fetchurl {
8696       url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-Valid-1.203.tar.gz";
8697       hash = "sha256-ICG/ux4sJ55evYRoDllvlzRNQphQsjIme3b0kDdSK5M=";
8698     };
8699     propagatedBuildInputs = [ IOCaptureOutput MailTools NetDNS NetDomainTLD ];
8700     doCheck = false;
8701     meta = {
8702       description = "Check validity of Internet email addresses";
8703       license = with lib.licenses; [ artistic1 gpl1Plus ];
8704     };
8705   };
8707   EmailValidLoose = buildPerlPackage {
8708     pname = "Email-Valid-Loose";
8709     version = "0.05";
8710     src = fetchurl {
8711       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Email-Valid-Loose-0.05.tar.gz";
8712       hash = "sha256-5xjnbt3uJAJRyZnhOcjL5vLMgBktpa+HXL0S+oq5Olk=";
8713     };
8714     propagatedBuildInputs = [ EmailValid ];
8715     meta = {
8716       description = "Email::Valid which allows dot before at mark";
8717       license = with lib.licenses; [ artistic1 gpl1Plus ];
8718     };
8719   };
8721   Encode = buildPerlPackage {
8722     pname = "Encode";
8723     version = "3.19";
8724     src = fetchurl {
8725       url = "mirror://cpan/authors/id/D/DA/DANKOGAI/Encode-3.19.tar.gz";
8726       hash = "sha256-kWP4SO72nk1MyIODl/CGH9nqft4AERfb2WlPjZUFLvU=";
8727     };
8728     meta = {
8729       description = "Character encodings in Perl";
8730       license = with lib.licenses; [ artistic1 gpl1Plus ];
8731       mainProgram = "piconv";
8732     };
8733   };
8735   EncodeBase32GMP = buildPerlPackage {
8736     pname = "Encode-Base32-GMP";
8737     version = "0.02";
8738     src = fetchurl {
8739       url = "mirror://cpan/authors/id/J/JW/JWANG/Encode-Base32-GMP-0.02.tar.gz";
8740       hash = "sha256-RUIG+n2C5V4DJ0aYcyNBtgcVDwDo4q7FjzUyagMIMtw=";
8741     };
8742     buildInputs = [ TestBase ];
8743     propagatedBuildInputs = [ MathGMPz ];
8744     meta = {
8745       description = "High speed Base32 encoding using GMP with BigInt and MD5 support";
8746       homepage = "https://metacpan.org/release/Encode-Base32-GMP";
8747       license = with lib.licenses; [ mit ];
8748       maintainers = with maintainers; [ sgo ];
8749     };
8750   };
8752   EncodeDetect = buildPerlModule {
8753     pname = "Encode-Detect";
8754     version = "1.01";
8755     src = fetchurl {
8756       url = "mirror://cpan/authors/id/J/JG/JGMYERS/Encode-Detect-1.01.tar.gz";
8757       hash = "sha256-g02JOqfbbOPxWK+9DkMtbtFaJ24JQNsKdL4T/ZxLu/E=";
8758     };
8759     nativeBuildInputs = [ pkgs.ld-is-cc-hook ];
8760     meta = {
8761       description = "Encode::Encoding subclass that detects the encoding of data";
8762       license = with lib.licenses; [ mpl11 gpl2Plus lgpl2Plus ]; # taken from fedora
8763     };
8764   };
8767   EncodeEUCJPASCII = buildPerlPackage {
8768     pname = "Encode-EUCJPASCII";
8769     version = "0.03";
8770     src = fetchurl {
8771       url = "mirror://cpan/authors/id/N/NE/NEZUMI/Encode-EUCJPASCII-0.03.tar.gz";
8772       hash = "sha256-+ZjTTVX9nILPkQeGoESNHt+mC/aOLCMGckymfGKd6GE=";
8773     };
8774     outputs = [ "out" ];
8775     meta = {
8776       description = "EucJP-ascii - An eucJP-open mapping";
8777       license = with lib.licenses; [ artistic1 gpl1Plus ];
8778     };
8779   };
8781   EncodeHanExtra = buildPerlPackage {
8782     pname = "Encode-HanExtra";
8783     version = "0.23";
8784     src = fetchurl {
8785       url = "mirror://cpan/authors/id/A/AU/AUDREYT/Encode-HanExtra-0.23.tar.gz";
8786       hash = "sha256-H9SwbK2nCFgAOvFT+UyGOzuV8uPQO6GNBFGoHVHbRDo=";
8787     };
8788     meta = {
8789       description = "Extra sets of Chinese encodings";
8790       license = with lib.licenses; [ mit ];
8791     };
8792   };
8794   EncodeIMAPUTF7 = buildPerlPackage {
8795     pname = "Encode-IMAPUTF7";
8796     version = "1.05";
8797     src = fetchurl {
8798       url = "mirror://cpan/authors/id/P/PM/PMAKHOLM/Encode-IMAPUTF7-1.05.tar.gz";
8799       hash = "sha256-RwMF3cN0g8/o08FtE3cKKAEfYAv1V6y4w+B3OZl8N+E=";
8800     };
8801     nativeCheckInputs = [ TestNoWarnings ];
8802     meta = {
8803       description = "IMAP modified UTF-7 encoding";
8804       license = with lib.licenses; [ artistic1 gpl1Plus ];
8805     };
8806     patches = [
8807       ../development/perl-modules/encode-imaputf7.patch
8808     ];
8809   };
8811   EncodeJIS2K = buildPerlPackage {
8812     pname = "Encode-JIS2K";
8813     version = "0.03";
8814     src = fetchurl {
8815       url = "mirror://cpan/authors/id/D/DA/DANKOGAI/Encode-JIS2K-0.03.tar.gz";
8816       hash = "sha256-HshNcts53rTa1vypWs/MIQM/RaJNNHwg+aGmlolsNcw=";
8817     };
8818     outputs = [ "out" ];
8819     meta = {
8820       description = "JIS X 0212 (aka JIS 2000) Encodings";
8821       license = with lib.licenses; [ artistic1 gpl1Plus ];
8822     };
8823   };
8825   EncodeLocale = buildPerlPackage {
8826     pname = "Encode-Locale";
8827     version = "1.05";
8828     src = fetchurl {
8829       url = "mirror://cpan/authors/id/G/GA/GAAS/Encode-Locale-1.05.tar.gz";
8830       hash = "sha256-F2+gJ3H1QqTvsdvCpMko6PQ5G/QHhHO9YEDY8RrbDsE=";
8831     };
8832     preCheck = if stdenv.hostPlatform.isCygwin then ''
8833       sed -i"" -e "s@plan tests => 13@plan tests => 10@" t/env.t
8834       sed -i"" -e "s@ok(env(\"\\\x@#ok(env(\"\\\x@" t/env.t
8835       sed -i"" -e "s@ok(\$ENV{\"\\\x@#ok(\$ENV{\"\\\x@" t/env.t
8836     '' else null;
8837     meta = {
8838       description = "Determine the locale encoding";
8839       license = with lib.licenses; [ artistic1 gpl1Plus ];
8840     };
8841   };
8843   EncodeNewlines = buildPerlPackage {
8844     pname = "Encode-Newlines";
8845     version = "0.05";
8846     src = fetchurl {
8847       url = "mirror://cpan/authors/id/N/NE/NEILB/Encode-Newlines-0.05.tar.gz";
8848       hash = "sha256-NLMfysjI/cghubNDSoLXEzIT73TM/yVf4UioavloN74=";
8849     };
8850     meta = {
8851       description = "Normalize line ending sequences";
8852       homepage = "https://github.com/neilb/Encode-Newlines";
8853       license = with lib.licenses; [ artistic1 gpl1Plus ];
8854     };
8855   };
8857   EncodePunycode = buildPerlPackage {
8858     pname = "Encode-Punycode";
8859     version = "1.002";
8860     src = fetchurl {
8861       url = "mirror://cpan/authors/id/C/CF/CFAERBER/Encode-Punycode-1.002.tar.gz";
8862       hash = "sha256-yjrO7NuAtdRaoQ4c3o/sTpC0+MkYnHUE3YZY8HH3cZQ=";
8863     };
8864     buildInputs = [ TestNoWarnings ];
8865     propagatedBuildInputs = [ NetIDNEncode ];
8866     meta = {
8867       description = "Encode plugin for Punycode (RFC 3492)";
8868       homepage = "https://search.cpan.org/dist/Encode-Punycode";
8869       license = with lib.licenses; [ artistic1 gpl1Plus ];
8870     };
8871   };
8873   enum = buildPerlPackage {
8874     pname = "enum";
8875     version = "1.12";
8876     src = fetchurl {
8877       url = "mirror://cpan/authors/id/N/NE/NEILB/enum-1.12.tar.gz";
8878       hash = "sha256-aaeokc04iO2LAsXpmh9In5KmLsNRwLx4lP1719FEfqk=";
8879     };
8880     meta = {
8881       description = "C style enumerated types and bitmask flags in Perl";
8882       homepage = "https://github.com/neilb/enum";
8883       license = with lib.licenses; [ artistic1 gpl1Plus ];
8884     };
8885   };
8887   Env = buildPerlPackage {
8888     pname = "Env";
8889     version = "1.04";
8890     src = fetchurl {
8891       url = "mirror://cpan/authors/id/F/FL/FLORA/Env-1.04.tar.gz";
8892       hash = "sha256-2Uo9QS3yRq/cMaIZnL2K6RUWej9GhPe3AUzhIAJR67A=";
8893     };
8894     meta = {
8895       description = "Perl module that imports environment variables as scalars or arrays";
8896       homepage = "https://search.cpan.org/dist/Env";
8897       license = with lib.licenses; [ artistic1 gpl1Plus ];
8898     };
8899   };
8901   EnvPath = buildPerlPackage {
8902     pname = "Env-Path";
8903     version = "0.19";
8904     src = fetchurl {
8905       url = "mirror://cpan/authors/id/D/DS/DSB/Env-Path-0.19.tar.gz";
8906       hash = "sha256-JEvwk3mIMqfYQdnuW0sOa0iZlu72NUHlBQkao0qQFeI=";
8907     };
8908     meta = {
8909       description = "Advanced operations on path variables";
8910       license = with lib.licenses; [ artistic1 gpl1Plus ];
8911       mainProgram = "envpath";
8912     };
8913   };
8915   EnvSanctify = buildPerlPackage {
8916     pname = "Env-Sanctify";
8917     version = "1.12";
8918     src = fetchurl {
8919       url = "mirror://cpan/authors/id/B/BI/BINGOS/Env-Sanctify-1.12.tar.gz";
8920       hash = "sha256-IOO1ZhwmVHSmnyiZR46ye5RkklWGu2tvtmYSnlgoMl8=";
8921     };
8922     meta = {
8923       description = "Lexically scoped sanctification of %ENV";
8924       homepage = "https://github.com/bingos/env-sanctify";
8925       license = with lib.licenses; [ artistic1 gpl1Plus ];
8926     };
8927   };
8929   ENVUtil = buildPerlPackage {
8930     pname = "ENV-Util";
8931     version = "0.03";
8932     src = fetchurl {
8933       url = "mirror://cpan/authors/id/G/GA/GARU/ENV-Util-0.03.tar.gz";
8934       hash = "sha256-B1574ehSxD6wiGYvr978FS9O9WyEPB4F2QDaGQb3P60=";
8935     };
8936     meta = {
8937       description = "Parse prefixed environment variables and dotnev (.env) files into Perl";
8938       license = with lib.licenses; [ artistic1 gpl1Plus ];
8939     };
8940   };
8942   Error = buildPerlModule {
8943     pname = "Error";
8944     version = "0.17029";
8945     src = fetchurl {
8946       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Error-0.17029.tar.gz";
8947       hash = "sha256-GiP3kTAyrtbUtoMhNzo4mcpmWQ9HJzkaCR7BnJW/etw=";
8948     };
8949     meta = {
8950       description = "Error/exception handling in an OO-ish way";
8951       license = with lib.licenses; [ artistic1 gpl1Plus ];
8952     };
8953   };
8955   EV = buildPerlPackage {
8956     pname = "EV";
8957     version = "4.34";
8958     src = fetchurl {
8959       url = "mirror://cpan/authors/id/M/ML/MLEHMANN/EV-4.34.tar.gz";
8960       hash = "sha256-EhFoPc57Z3H0q3EMwVNxK913umFXoTKU0LtzSR/QZWA=";
8961     };
8962     buildInputs = [ CanaryStability ];
8963     propagatedBuildInputs = [ commonsense ];
8964     meta = {
8965       description = "Perl interface to libev, a high performance full-featured event loop";
8966       license = with lib.licenses; [ gpl1Plus ];
8967     };
8968   };
8970   EvalClosure = buildPerlPackage {
8971     pname = "Eval-Closure";
8972     version = "0.14";
8973     src = fetchurl {
8974       url = "mirror://cpan/authors/id/D/DO/DOY/Eval-Closure-0.14.tar.gz";
8975       hash = "sha256-6glE8vXsmNiVvvbVA+bko3b+pjg6a8ZMdnDUb/IhjK0=";
8976     };
8977     buildInputs = [ TestFatal TestRequires ];
8978     meta = {
8979       description = "Safely and cleanly create closures via string eval";
8980       homepage = "https://metacpan.org/release/Eval-Closure";
8981       license = with lib.licenses; [ artistic1 gpl1Plus ];
8982     };
8983   };
8985   EvalSafe = buildPerlPackage rec {
8986     pname = "Eval-Safe";
8987     version = "0.02";
8988     src = fetchurl {
8989       url = "mirror://cpan/authors/id/M/MA/MATHIAS/Eval-Safe/Eval-Safe-${version}.tar.gz";
8990       hash = "sha256-VaUsIz4troYRP58Zs09hftz8hBb5vs5nEme9GBGxIRE=";
8991     };
8992     outputs = [ "out" ];
8993     meta = with lib; {
8994       description = "Simplified safe evaluation of Perl code";
8995       homepage = "https://github.com/mkende/perl-eval-safe";
8996       license = licenses.mit;
8997       maintainers = with maintainers; [ figsoda ];
8998     };
8999   };
9001   ExcelWriterXLSX = buildPerlPackage {
9002     pname = "Excel-Writer-XLSX";
9003     version = "1.11";
9004     src = fetchurl {
9005       url = "mirror://cpan/authors/id/J/JM/JMCNAMARA/Excel-Writer-XLSX-1.11.tar.gz";
9006       hash = "sha256-yzMA0jEZxpiGTvC3PBmnLLpxi/wG7QBzWaUxP5YcwqA=";
9007     };
9008     propagatedBuildInputs = [ ArchiveZip ];
9009     meta = {
9010       description = "Create a new file in the Excel 2007+ XLSX format";
9011       homepage = "https://jmcnamara.github.com/excel-writer-xlsx";
9012       license = with lib.licenses; [ artistic1 gpl1Plus ];
9013       mainProgram = "extract_vba";
9014     };
9015   };
9017   ExceptionBase = buildPerlModule {
9018     pname = "Exception-Base";
9019     version = "0.2501";
9020     src = fetchurl {
9021       url = "mirror://cpan/authors/id/D/DE/DEXTER/Exception-Base-0.2501.tar.gz";
9022       hash = "sha256-VyPdePSsC00mKgXqRq9mPqANgJay6cCkNRXCEHYOHnU=";
9023     };
9024     buildInputs = [ TestUnitLite ];
9025     patches = [
9026       ../development/perl-modules/Exception-Base-remove-smartmatch-when-5.38.0.patch
9027     ];
9028     meta = {
9029       description = "Lightweight exceptions";
9030       license = with lib.licenses; [ artistic1 gpl1Plus ];
9031     };
9032   };
9034   ExceptionClass = buildPerlPackage {
9035     pname = "Exception-Class";
9036     version = "1.45";
9037     src = fetchurl {
9038       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Exception-Class-1.45.tar.gz";
9039       hash = "sha256-VIKnfvAnyh+fOeH0jFWDVulUk2/I+73ubIEcUScBskk=";
9040     };
9041     propagatedBuildInputs = [ ClassDataInheritable DevelStackTrace ];
9042     meta = {
9043       description = "Exception Object Class";
9044       license = with lib.licenses; [ artistic1 gpl1Plus ];
9045     };
9046   };
9048   ExceptionDied = buildPerlModule {
9049     pname = "Exception-Died";
9050     version = "0.06";
9051     src = fetchurl {
9052       url = "mirror://cpan/authors/id/D/DE/DEXTER/Exception-Died-0.06.tar.gz";
9053       hash = "sha256-NcRAvCr9TVfiQaDbG05o2dUpXfLbjXidObX0UQWXirU=";
9054     };
9055     buildInputs = [ TestAssert TestUnitLite ];
9056     propagatedBuildInputs = [ ExceptionBase constantboolean ];
9057     meta = {
9058       description = "Convert simple die into real exception object";
9059       license = with lib.licenses; [ artistic1 gpl1Plus ];
9060     };
9061   };
9063   ExceptionWarning = buildPerlModule {
9064     pname = "Exception-Warning";
9065     version = "0.0401";
9066     src = fetchurl {
9067       url = "mirror://cpan/authors/id/D/DE/DEXTER/Exception-Warning-0.0401.tar.gz";
9068       hash = "sha256-ezacps61se3ytdX4cOl0x8k+kwNnw5o5AL/2CZce06g=";
9069     };
9070     buildInputs = [ TestAssert TestUnitLite ];
9071     propagatedBuildInputs = [ ExceptionBase ];
9072     meta = {
9073       description = "Convert simple warn into real exception object";
9074       license = with lib.licenses; [ artistic1 gpl1Plus ];
9075     };
9076   };
9078   ExporterDeclare = buildPerlModule {
9079     pname = "Exporter-Declare";
9080     version = "0.114";
9081     src = fetchurl {
9082       url = "mirror://cpan/authors/id/E/EX/EXODIST/Exporter-Declare-0.114.tar.gz";
9083       hash = "sha256-S9cNbKdvb2un5MYY1KyTuFk6WPEjPMvhixD18gTx1OQ=";
9084     };
9085     buildInputs = [ FennecLite TestException ];
9086     propagatedBuildInputs = [ MetaBuilder aliased ];
9087     meta = {
9088       description = "Exporting done right";
9089       homepage = "http://open-exodus.net/projects/Exporter-Declare";
9090       license = with lib.licenses; [ artistic1 gpl1Plus ];
9091     };
9092   };
9094   ExporterLite = buildPerlPackage {
9095     pname = "Exporter-Lite";
9096     version = "0.09";
9097     src = fetchurl {
9098       url = "mirror://cpan/authors/id/N/NE/NEILB/Exporter-Lite-0.09.tar.gz";
9099       hash = "sha256-edixT9UBOSLGPoUPFb9RBZ8lAkBFNetmkO8jYSwqGY0=";
9100     };
9101     meta = {
9102       description = "Lightweight exporting of functions and variables";
9103       license = with lib.licenses; [ artistic1 gpl1Plus ];
9104     };
9105   };
9107   ExporterTiny = buildPerlPackage {
9108     pname = "Exporter-Tiny";
9109     version = "1.006002";
9110     src = fetchurl {
9111       url = "mirror://cpan/authors/id/T/TO/TOBYINK/Exporter-Tiny-1.006002.tar.gz";
9112       hash = "sha256-byleLL/7HbwVvbna3DQWccHgzSvfLTErF1Jic8MiY40=";
9113     };
9114     meta = {
9115       description = "Exporter with the features of Sub::Exporter but only core dependencies";
9116       homepage = "https://metacpan.org/release/Exporter-Tiny";
9117       license = with lib.licenses; [ artistic1 gpl1Plus ];
9118     };
9119   };
9121   Expect = buildPerlPackage {
9122     pname = "Expect";
9123     version = "1.35";
9124     src = fetchurl {
9125       url = "mirror://cpan/authors/id/J/JA/JACOBY/Expect-1.35.tar.gz";
9126       hash = "sha256-CdknYUId7NSVhTEDN5FlqZ779FLHIPMCd2As8jZ5/QY=";
9127     };
9128     propagatedBuildInputs = [ IOTty ];
9129     meta = {
9130       description = "Automate interactions with command line programs that expose a text terminal interface";
9131       license = with lib.licenses; [ artistic1 gpl1Plus ];
9132     };
9133   };
9135   ExpectSimple = buildPerlPackage {
9136     pname = "Expect-Simple";
9137     version = "0.04";
9138     src = fetchurl {
9139       url = "mirror://cpan/authors/id/D/DJ/DJERIUS/Expect-Simple-0.04.tar.gz";
9140       hash = "sha256-r4O5IYXmQmlZE/8Tjv6Bl1LoCFd1mZber8qrJwCtXbU=";
9141     };
9142     propagatedBuildInputs = [ Expect ];
9143     meta = {
9144       description = "Wrapper around the Expect module";
9145       license = with lib.licenses; [ artistic1 gpl1Plus ];
9146     };
9147   };
9149   ExtUtilsCChecker = buildPerlModule {
9150     pname = "ExtUtils-CChecker";
9151     version = "0.11";
9152     src = fetchurl {
9153       url = "mirror://cpan/authors/id/P/PE/PEVANS/ExtUtils-CChecker-0.11.tar.gz";
9154       hash = "sha256-EXc2Z343/GEfW3Y3TX+VLhlw64Dh9q1RUNUW565TG/U=";
9155     };
9156     buildInputs = [ TestFatal ];
9157     meta = {
9158       description = "Configure-time utilities for using C headers,";
9159       license = with lib.licenses; [ artistic1 gpl1Plus ];
9160     };
9161   };
9163   ExtUtilsConfig = buildPerlPackage {
9164     pname = "ExtUtils-Config";
9165     version = "0.008";
9166     src = fetchurl {
9167       url = "mirror://cpan/authors/id/L/LE/LEONT/ExtUtils-Config-0.008.tar.gz";
9168       hash = "sha256-rlEE9jRlDc6KebftE/tZ1no5whOmd2z9qj7nSeYvGow=";
9169     };
9170     meta = {
9171       description = "Wrapper for perl's configuration";
9172       license = with lib.licenses; [ artistic1 gpl1Plus ];
9173     };
9174   };
9176   ExtUtilsConstant = buildPerlPackage {
9177     pname = "ExtUtils-Constant";
9178     version = "0.25";
9179     src = fetchurl {
9180       url = "mirror://cpan/authors/id/N/NW/NWCLARK/ExtUtils-Constant-0.25.tar.gz";
9181       hash = "sha256-aTPQ6WO2IoHvdWEGjmrsrIxKwrR2srugmrC5D7rJ11c=";
9182     };
9183     patches = [
9184       ../development/perl-modules/ExtUtils-Constant-fix-indirect-method-call-in-test.patch
9185     ];
9186     meta = {
9187       description = "Generate XS code to import C header constants";
9188       license = with lib.licenses; [ artistic1 gpl1Plus ];
9189     };
9190   };
9192   ExtUtilsCppGuess = buildPerlPackage {
9193     pname = "ExtUtils-CppGuess";
9194     version = "0.26";
9195     src = fetchurl {
9196       url = "mirror://cpan/authors/id/E/ET/ETJ/ExtUtils-CppGuess-0.26.tar.gz";
9197       hash = "sha256-yLNiuGAXKkB2rO4AQ49SuGRk8sUAcCz891J4Ef+aaD4=";
9198     };
9199     doCheck = !stdenv.hostPlatform.isDarwin;
9200     nativeBuildInputs = [ pkgs.ld-is-cc-hook ];
9201     propagatedBuildInputs = [ CaptureTiny ];
9202     buildInputs = [ ModuleBuild ];
9203     meta = {
9204       description = "Guess C++ compiler and flags";
9205       license = with lib.licenses; [ artistic1 gpl1Plus ];
9206     };
9207   };
9209   ExtUtilsDepends = buildPerlPackage {
9210     pname = "ExtUtils-Depends";
9211     version = "0.8001";
9212     src = fetchurl {
9213       url = "mirror://cpan/authors/id/X/XA/XAOC/ExtUtils-Depends-0.8001.tar.gz";
9214       hash = "sha256-ZzxDh+eJbBohYJnB+7P6qndj1/X5WhpWpgoqKQbBMcU=";
9215     };
9216     meta = {
9217       description = "Easily build XS extensions that depend on XS extensions";
9218       license = with lib.licenses; [ artistic1 gpl1Plus artistic1 gpl1Plus ];
9219     };
9220   };
9222   ExtUtilsF77 = buildPerlPackage {
9223     pname = "ExtUtils-F77";
9224     version = "1.26";
9225     src = fetchurl {
9226       url = "mirror://cpan/authors/id/E/ET/ETJ/ExtUtils-F77-1.26.tar.gz";
9227       hash = "sha256-q90dPuxMpPyuXxUrQLyqhi48gG4H5KqRI3V/aqSLndY=";
9228     };
9229     buildInputs = [ pkgs.gfortran ];
9230     propagatedBuildInputs = [ FileWhich ];
9231     meta = {
9232       description = "Simple interface to F77 libs";
9233       license = with lib.licenses; [ artistic1 gpl1Plus ];
9234     };
9235   };
9237   ExtUtilsHelpers = buildPerlPackage {
9238     pname = "ExtUtils-Helpers";
9239     version = "0.026";
9240     src = fetchurl {
9241       url = "mirror://cpan/authors/id/L/LE/LEONT/ExtUtils-Helpers-0.026.tar.gz";
9242       hash = "sha256-3pAbZ5CkVXz07JCBSeA1eDsSW/EV65ZA/rG8HCTDNBY=";
9243     };
9244     meta = {
9245       description = "Various portability utilities for module builders";
9246       license = with lib.licenses; [ artistic1 gpl1Plus ];
9247     };
9248   };
9250   ExtUtilsInstall = buildPerlPackage {
9251     pname = "ExtUtils-Install";
9252     version = "2.22";
9253     src = fetchurl {
9254       url = "mirror://cpan/authors/id/B/BI/BINGOS/ExtUtils-Install-2.22.tar.gz";
9255       hash = "sha256-M3Jbr77Tgp1hPkxlHC4a0SBnDH0qxc8F+DdX/Jddb/I=";
9256     };
9257     meta = {
9258       description = "Install files from here to there";
9259       homepage = "https://metacpan.org/release/ExtUtils-Install";
9260       license = with lib.licenses; [ artistic1 gpl1Plus ];
9261     };
9262   };
9264   ExtUtilsInstallPaths = buildPerlPackage {
9265     pname = "ExtUtils-InstallPaths";
9266     version = "0.012";
9267     src = fetchurl {
9268       url = "mirror://cpan/authors/id/L/LE/LEONT/ExtUtils-InstallPaths-0.012.tar.gz";
9269       hash = "sha256-hHNeMDe6sf3/o8JQhWetQSp4XJFZnbPBJZOlCh3UNO0=";
9270     };
9271     propagatedBuildInputs = [ ExtUtilsConfig ];
9272     meta = {
9273       description = "Build.PL install path logic made easy";
9274       license = with lib.licenses; [ artistic1 gpl1Plus ];
9275     };
9276   };
9278   ExtUtilsLibBuilder = buildPerlModule {
9279     pname = "ExtUtils-LibBuilder";
9280     version = "0.08";
9281     src = fetchurl {
9282       url = "mirror://cpan/authors/id/A/AM/AMBS/ExtUtils-LibBuilder-0.08.tar.gz";
9283       hash = "sha256-xRFx4G3lMDnwvKHZemRx7DeUH/Weij0csXDr3SVztdI=";
9284     };
9285     perlPreHook = "export LD=$CC";
9286     meta = {
9287       description = "Tool to build C libraries";
9288       license = with lib.licenses; [ artistic1 gpl1Plus ];
9289     };
9290   };
9292   ExtUtilsMakeMaker = buildPerlPackage {
9293     pname = "ExtUtils-MakeMaker";
9294     version = "7.70";
9295     src = fetchurl {
9296       url = "mirror://cpan/authors/id/B/BI/BINGOS/ExtUtils-MakeMaker-7.70.tar.gz";
9297       hash = "sha256-8Qi9RkINLwDSQoJfhlsPaIUQhJJJJPkiYdaExJ4+enQ=";
9298     };
9299     meta = {
9300       description = "Create a module Makefile";
9301       homepage = "https://metacpan.org/release/ExtUtils-MakeMaker";
9302       license = with lib.licenses; [ artistic1 gpl1Plus ];
9303       mainProgram = "instmodsh";
9304     };
9305   };
9307   ExtUtilsMakeMakerCPANfile = buildPerlPackage {
9308     pname = "ExtUtils-MakeMaker-CPANfile";
9309     version = "0.09";
9310     src = fetchurl {
9311       url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/ExtUtils-MakeMaker-CPANfile-0.09.tar.gz";
9312       hash = "sha256-LAd2B9SwoQhWkHTf926BaGWQYq2jpq94swzKDUD44nU=";
9313     };
9314     propagatedBuildInputs = [ ModuleCPANfile ];
9315     meta = {
9316       description = "Cpanfile support for EUMM";
9317       license = with lib.licenses; [ artistic1 gpl1Plus ];
9318     };
9319   };
9321   ExtUtilsPkgConfig = buildPerlPackage {
9322     pname = "ExtUtils-PkgConfig";
9323     version = "1.16";
9324     src = fetchurl {
9325       url = "mirror://cpan/authors/id/X/XA/XAOC/ExtUtils-PkgConfig-1.16.tar.gz";
9326       hash = "sha256-u+rO2ZXX2NEM/FGjpaZtpBzrK8BP7cq1DhDmMA6AHG4=";
9327     };
9328     nativeBuildInputs = [ buildPackages.pkg-config ];
9329     propagatedBuildInputs = [ pkgs.pkg-config ];
9330     postPatch = ''
9331       # no pkg-config binary when cross-compiling so the check fails
9332       substituteInPlace Makefile.PL \
9333         --replace "pkg-config" "$PKG_CONFIG"
9334     '';
9335     doCheck = false; # expects test_glib-2.0.pc in PKG_CONFIG_PATH
9336     meta = {
9337       description = "Simplistic interface to pkg-config";
9338       license = with lib.licenses; [ lgpl21Plus ];
9339     };
9340   };
9342   # From CPAN[1]:
9343   #   This module exists merely as a compatibility wrapper around
9344   #   ExtUtils::Typemaps. In a nutshell, ExtUtils::Typemap was renamed to
9345   #   ExtUtils::Typemaps because the Typemap directory in lib/ could collide with
9346   #   the typemap file on case-insensitive file systems.
9347   #
9348   #   The ExtUtils::Typemaps module is part of the ExtUtils::ParseXS distribution
9349   #   and ships with the standard library of perl starting with perl version
9350   #   5.16.
9351   #
9352   # [1] https://metacpan.org/pod/release/SMUELLER/ExtUtils-Typemap-1.00/lib/ExtUtils/Typemap.pm:
9353   ExtUtilsTypemap = buildPerlPackage {
9354     pname = "ExtUtils-Typemap";
9355     version = "1.00";
9356     src = fetchurl {
9357       url = "mirror://cpan/authors/id/S/SM/SMUELLER/ExtUtils-Typemap-1.00.tar.gz";
9358       hash = "sha256-sbAVdy27BouToPb/oC9dlIIjZeYBisXtK8U8pmkHH8c=";
9359     };
9360     meta = {
9361       description = "Read/Write/Modify Perl/XS typemap files";
9362       license = with lib.licenses; [ artistic1 gpl1Plus ];
9363     };
9364   };
9366   ExtUtilsTypemapsDefault = buildPerlModule {
9367     pname = "ExtUtils-Typemaps-Default";
9368     version = "1.05";
9369     src = fetchurl {
9370       url = "mirror://cpan/authors/id/S/SM/SMUELLER/ExtUtils-Typemaps-Default-1.05.tar.gz";
9371       hash = "sha256-Pfr1g36/3AB4lb/KhMPC521Ymn0zZADo37MkPYGCFd4=";
9372     };
9373     meta = {
9374       description = "Set of useful typemaps";
9375       license = with lib.licenses; [ artistic1 gpl1Plus ];
9376     };
9377   };
9379   ExtUtilsXSBuilder = buildPerlPackage {
9380     pname = "ExtUtils-XSBuilder";
9381     version = "0.28";
9382     src = fetchurl {
9383       url = "mirror://cpan/authors/id/G/GR/GRICHTER/ExtUtils-XSBuilder-0.28.tar.gz";
9384       hash = "sha256-jM7ThuPVRMXsLes67QVbcuvPwuqabIB9qHxCRScv6Ao=";
9385     };
9386     propagatedBuildInputs = [ ParseRecDescent TieIxHash ];
9387     meta = {
9388       description = "Automatic Perl XS glue code generation";
9389       license = with lib.licenses; [ artistic1 gpl1Plus ];
9390     };
9391   };
9393   ExtUtilsXSpp = buildPerlModule {
9394     pname = "ExtUtils-XSpp";
9395     version = "0.18";
9396     src = fetchurl {
9397       url = "mirror://cpan/authors/id/S/SM/SMUELLER/ExtUtils-XSpp-0.18.tar.gz";
9398       hash = "sha256-kXatZGcp470nz3q/EUvt00JL/xumEYXPx9VPOpIjqP8=";
9399     };
9400     buildInputs = [ TestBase TestDifferences ];
9401     meta = {
9402       description = "XS for C++";
9403       license = with lib.licenses; [ artistic1 gpl1Plus ];
9404       mainProgram = "xspp";
9405     };
9406   };
9408   FatalException = buildPerlModule {
9409     pname = "Fatal-Exception";
9410     version = "0.05";
9411     src = fetchurl {
9412       url = "mirror://cpan/authors/id/D/DE/DEXTER/Fatal-Exception-0.05.tar.gz";
9413       hash = "sha256-KAldIT+zKknJwjKmhEg375Rdua1unmHkULTfTQjj7k8=";
9414     };
9415     buildInputs = [ ExceptionWarning TestAssert TestUnitLite ];
9416     propagatedBuildInputs = [ ExceptionDied ];
9417     meta = {
9418       description = "Thrown when core function has a fatal error";
9419       license = with lib.licenses; [ artistic1 gpl1Plus ];
9420     };
9421   };
9423   FCGI = buildPerlPackage {
9424     pname = "FCGI";
9425     version = "0.82";
9426     src = fetchurl {
9427       url = "mirror://cpan/authors/id/E/ET/ETHER/FCGI-0.82.tar.gz";
9428       hash = "sha256-TH1g4m2iwH8Fik40UCHpJQUnOzPJVCIVl34IRhHwns8=";
9429     };
9430     buildInputs = [ FCGIClient ];
9431     postPatch = lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
9432       sed -i '/use IO::File/d' Makefile.PL
9433     '';
9434     meta = {
9435       description = "Fast CGI module";
9436       license = with lib.licenses; [ oml ];
9437     };
9438   };
9440   FCGIClient = buildPerlModule {
9441     pname = "FCGI-Client";
9442     version = "0.09";
9443     src = fetchurl {
9444       url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/FCGI-Client-0.09.tar.gz";
9445       hash = "sha256-1TfLCc5aqz9Eemu0QV5GzAbv4BYRzVYom1WCvbRiIeg=";
9446     };
9447     propagatedBuildInputs = [ Moo TypeTiny ];
9448     buildInputs = [ ModuleBuildTiny ];
9449     meta = {
9450       description = "Client library for fastcgi protocol";
9451       homepage = "https://github.com/tokuhirom/p5-fcgi-client";
9452       license = with lib.licenses; [ artistic1 gpl1Plus ];
9453     };
9454   };
9456   FCGIProcManager = buildPerlPackage {
9457     pname = "FCGI-ProcManager";
9458     version = "0.28";
9459     src = fetchurl {
9460       url = "mirror://cpan/authors/id/A/AR/ARODLAND/FCGI-ProcManager-0.28.tar.gz";
9461       hash = "sha256-4clYwEJCehdeBR4ACPICXo7IBhPTx3UFl7+OUpsEQg4=";
9462     };
9463     meta = {
9464       description = "Perl-based FastCGI process manager";
9465       license = with lib.licenses; [ gpl2Plus ];
9466     };
9467   };
9469   FFIC = buildPerlPackage {
9470     pname = "FFI-C";
9471     version = "0.15";
9472     src = fetchurl {
9473       url = "mirror://cpan/authors/id/P/PL/PLICEASE/FFI-C-0.15.tar.gz";
9474       hash = "sha256-63BgfmZzvMsY3yf0zuRZ+23EGODak+aSzcNVX+QNL04=";
9475     };
9476     buildInputs = [ CaptureTiny PathTiny Test2Suite ];
9477     propagatedBuildInputs = [ ClassInspector FFIPlatypus FFIPlatypusTypeEnum RefUtil SubIdentify SubInstall ];
9478     meta = {
9479       homepage = "https://metacpan.org/pod/FFI::C";
9480       description = "C data types for FFI";
9481       license = with lib.licenses; [ artistic1 gpl1Plus ];
9482       maintainers = with maintainers; [ tomasajt ];
9483     };
9484   };
9486   FFICheckLib = buildPerlPackage {
9487     pname = "FFI-CheckLib";
9488     version = "0.31";
9489     src = fetchurl {
9490       url = "mirror://cpan/authors/id/P/PL/PLICEASE/FFI-CheckLib-0.31.tar.gz";
9491       hash = "sha256-BNiF/Dd9RIluXqHE7DEPl5uwTy8YZYp+ek1Qn36Au4A=";
9492     };
9493     buildInputs = [ Test2Suite ];
9494     propagatedBuildInputs = [ FileWhich ];
9495     meta = {
9496       description = "Check that a library is available for FFI";
9497       homepage = "https://metacpan.org/pod/FFI::CheckLib";
9498       license = with lib.licenses; [ artistic1 gpl1Plus ];
9499     };
9500   };
9502   FeatureCompatTry = buildPerlModule {
9503     pname = "Feature-Compat-Try";
9504     version = "0.05";
9505     src = fetchurl {
9506       url = "mirror://cpan/authors/id/P/PE/PEVANS/Feature-Compat-Try-0.05.tar.gz";
9507       hash = "sha256-WaHHFzysMNsTHF8T+jhA9xhYju+bV5NS/+FWtVBxbXw=";
9508     };
9509     buildInputs = [ Test2Suite ];
9510     propagatedBuildInputs = [ SyntaxKeywordTry ];
9511     meta = {
9512       description = "Make C<try/catch> syntax available";
9513       license = with lib.licenses; [ artistic1 gpl1Plus ];
9514     };
9515   };
9517   FFICStat = buildPerlPackage {
9518     pname = "FFI-C-Stat";
9519     version = "0.03";
9520     src = fetchurl {
9521       url = "mirror://cpan/authors/id/P/PL/PLICEASE/FFI-C-Stat-0.03.tar.gz";
9522       hash = "sha256-YOjveCyLs0cFXJ49ov1BTzX2EP5P77eNBzncyiQoQx4=";
9523     };
9524     buildInputs = [ Filechdir PathTiny Test2Suite TestScript ];
9525     propagatedBuildInputs = [ FFIPlatypus RefUtil ];
9526     meta = {
9527       homepage = "https://metacpan.org/pod/FFI::C::Stat";
9528       description = "Object-oriented FFI interface to native stat and lstat";
9529       license = with lib.licenses; [ artistic1 gpl1Plus ];
9530       maintainers = with maintainers; [ tomasajt ];
9531     };
9532   };
9534   FFIPlatypus = buildPerlPackage {
9535     pname = "FFI-Platypus";
9536     version = "2.09";
9537     src = fetchurl {
9538       url = "mirror://cpan/authors/id/P/PL/PLICEASE/FFI-Platypus-2.09.tar.gz";
9539       hash = "sha256-nTEjEiieeHNbRcMRt6wWqejaCT93m/aUaccK+sTdW2M=";
9540     };
9541     buildInputs = [ AlienFFI Test2Suite ];
9542     propagatedBuildInputs = [ CaptureTiny FFICheckLib ];
9543     meta = {
9544       homepage = "https://pl.atypus.org";
9545       description = "Write Perl bindings to non-Perl libraries with FFI. No XS required";
9546       license = with lib.licenses; [ artistic1 gpl1Plus ];
9547       maintainers = with maintainers; [ tomasajt ];
9548     };
9549   };
9551   FFIPlatypusTypePtrObject = buildPerlPackage {
9552     pname = "FFI-Platypus-Type-PtrObject";
9553     version = "0.03";
9554     src = fetchurl {
9555       url = "mirror://cpan/authors/id/P/PL/PLICEASE/FFI-Platypus-Type-PtrObject-0.03.tar.gz";
9556       hash = "sha256-4elJB++QtANgqabAPSlaEwR9T2ybVqyvHfK1TRcwf3Q=";
9557     };
9558     buildInputs = [ Test2Suite Test2ToolsFFI ];
9559     propagatedBuildInputs = [ FFIPlatypus RefUtil ];
9560     meta = {
9561       homepage = "https://metacpan.org/pod/FFI::Platypus::Type::PtrObject";
9562       description = "Platypus custom type for an object wrapped around an opaque pointer";
9563       license = with lib.licenses; [ artistic1 gpl1Plus ];
9564       maintainers = with maintainers; [ tomasajt ];
9565     };
9566   };
9568   FFIPlatypusTypeEnum = buildPerlPackage {
9569     pname = "FFI-Platypus-Type-Enum";
9570     version = "0.06";
9571     src = fetchurl {
9572       url = "mirror://cpan/authors/id/P/PL/PLICEASE/FFI-Platypus-Type-Enum-0.06.tar.gz";
9573       hash = "sha256-yVSmBPfWkpYk+pQT2NDh2DtL2XfQVifKznPtU6lcd98=";
9574     };
9575     buildInputs = [ FFIPlatypus Test2Suite ];
9576     propagatedBuildInputs = [ RefUtil ];
9577     meta = {
9578       homepage = "https://metacpan.org/pod/FFI::Platypus::Type::Enum";
9579       description = "Custom platypus type for dealing with C enumerated types";
9580       license = with lib.licenses; [ artistic1 gpl1Plus ];
9581       maintainers = with maintainers; [ tomasajt ];
9582     };
9583   };
9585   FennecLite = buildPerlModule {
9586     pname = "Fennec-Lite";
9587     version = "0.004";
9588     src = fetchurl {
9589       url = "mirror://cpan/authors/id/E/EX/EXODIST/Fennec-Lite-0.004.tar.gz";
9590       hash = "sha256-3OKOOTJ2LC/5KqUtkEBcBuiY6By3sWTMrolmrnfx3Ks=";
9591     };
9592     meta = {
9593       description = "Minimalist Fennec, the commonly used bits";
9594       homepage = "http://open-exodus.net/projects/Fennec-Lite";
9595       license = with lib.licenses; [ artistic1 gpl1Plus ];
9596     };
9597   };
9599   FileChangeNotify = buildPerlPackage {
9600     pname = "File-ChangeNotify";
9601     version = "0.31";
9602     src = fetchurl {
9603       url = "mirror://cpan/authors/id/D/DR/DROLSKY/File-ChangeNotify-0.31.tar.gz";
9604       hash = "sha256-GSvbHOdiZsamlKjpYtA5463uuCm2rB4j9QV/K1Bjkr0=";
9605     };
9606     buildInputs = [ Test2Suite TestRequires TestWithoutModule ];
9607     propagatedBuildInputs = [ ModulePluggable Moo TypeTiny namespaceautoclean ];
9608     meta = {
9609       description = "Watch for changes to files, cross-platform style";
9610       license = with lib.licenses; [ artistic2 ];
9611     };
9612   };
9614   Filechdir = buildPerlPackage {
9615     pname = "File-chdir";
9616     version = "0.1011";
9617     src = fetchurl {
9618       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/File-chdir-0.1011.tar.gz";
9619       hash = "sha256-Mev5Et9I1daB3vdLmIDXix86ykNRoO0f41cLjgOvbHk=";
9620     };
9621     meta = {
9622       description = "More sensible way to change directories";
9623       license = with lib.licenses; [ artistic1 gpl1Plus ];
9624     };
9625   };
9627   FileBaseDir = buildPerlPackage {
9628     version = "0.09";
9629     pname = "File-BaseDir";
9630     src = fetchurl {
9631       url = "mirror://cpan/authors/id/P/PL/PLICEASE/File-BaseDir-0.09.tar.gz";
9632       hash = "sha256-bab3KBVirI8R7xo69q7bUcQRgrYPHxIs7QB579kpZ9k=";
9633     };
9634     propagatedBuildInputs = [ IPCSystemSimple ];
9635     nativeCheckInputs = [ FileWhich ];
9636     meta = {
9637       description = "Use the Freedesktop.org base directory specification";
9638       license = with lib.licenses; [ artistic1 gpl1Plus ];
9639     };
9640   };
9642   FileBOM = buildPerlModule {
9643     pname = "File-BOM";
9644     version = "0.18";
9645     src = fetchurl {
9646       url = "mirror://cpan/authors/id/M/MA/MATTLAW/File-BOM-0.18.tar.gz";
9647       hash = "sha256-KO3EP8sRjhG8RYya6InVbTiMHZvCmZewCx3/2Fc4I6M=";
9648     };
9649     buildInputs = [ TestException ];
9650     propagatedBuildInputs = [ Readonly ];
9651     meta = {
9652       description = "Utilities for handling Byte Order Marks";
9653       license = with lib.licenses; [ artistic1 gpl1Plus ];
9654     };
9655   };
9657   FileCheckTree = buildPerlPackage {
9658     pname = "File-CheckTree";
9659     version = "4.42";
9660     src = fetchurl {
9661       url = "mirror://cpan/authors/id/R/RJ/RJBS/File-CheckTree-4.42.tar.gz";
9662       hash = "sha256-ZvtBf4/4peW36iVgYVbnDiBIYcWfqMODGSW03T8VX4o=";
9663     };
9664     meta = {
9665       description = "Run many filetest checks on a tree";
9666       homepage = "https://search.cpan.org/dist/File-CheckTree";
9667       license = with lib.licenses; [ artistic1 gpl1Plus ];
9668     };
9669   };
9671   Filechmod = buildPerlPackage {
9672     pname = "File-chmod";
9673     version = "0.42";
9674     src = fetchurl {
9675       url = "mirror://cpan/authors/id/X/XE/XENO/File-chmod-0.42.tar.gz";
9676       hash = "sha256-bK+v/2i8hCFRaLVe3g0ZHctX+aMgG1HWHtsoWKJAd5U=";
9677     };
9678     meta = {
9679       description = "Implements symbolic and ls chmod modes";
9680       homepage = "https://metacpan.org/dist/File-chmod";
9681       license = with lib.licenses; [ artistic1 gpl1Plus ];
9682     };
9683   };
9685   FilechmodRecursive = buildPerlPackage {
9686     pname = "File-chmod-Recursive";
9687     version = "1.0.3";
9688     src = fetchurl {
9689       url = "mirror://cpan/authors/id/M/MI/MITHUN/File-chmod-Recursive-v1.0.3.tar.gz";
9690       hash = "sha256-k0jKXFuI3q3MSDuTme98Lg/CUE+QWNtl88PFPEETmqc=";
9691     };
9692     propagatedBuildInputs = [ Filechmod ];
9693     meta = {
9694       description = "Run chmod recursively against directories";
9695       homepage = "https://github.com/mithun/perl-file-chmod-recursive";
9696       license = with lib.licenses; [ artistic1 gpl1Plus ];
9697     };
9698   };
9700   FileCopyRecursive = buildPerlPackage {
9701     pname = "File-Copy-Recursive";
9702     version = "0.45";
9703     src = fetchurl {
9704       url = "mirror://cpan/authors/id/D/DM/DMUEY/File-Copy-Recursive-0.45.tar.gz";
9705       hash = "sha256-05cc94qDReOAQrIIu3s5y2lQgDhq9in0oE/9ZUnfEVc=";
9706     };
9707     buildInputs = [ PathTiny TestDeep TestFatal TestFile TestWarnings ];
9708     meta = {
9709       description = "Perl extension for recursively copying files and directories";
9710       license = with lib.licenses; [ artistic1 gpl1Plus ];
9711     };
9712   };
9714   FileCopyRecursiveReduced = buildPerlPackage {
9715     pname = "File-Copy-Recursive-Reduced";
9716     version = "0.007";
9717     src = fetchurl {
9718       url = "mirror://cpan/authors/id/J/JK/JKEENAN/File-Copy-Recursive-Reduced-0.007.tar.gz";
9719       hash = "sha256-07WFIuaYA6kUN+KcCZ63Bug3Px7vBRik3DZp3T383Cc=";
9720     };
9721     buildInputs = [ CaptureTiny PathTiny ];
9722     meta = {
9723       description = "Recursive copying of files and directories within Perl 5 toolchain";
9724       homepage = "http://thenceforward.net/perl/modules/File-Copy-Recursive-Reduced";
9725       license = with lib.licenses; [ artistic1 gpl1Plus ];
9726     };
9727   };
9729   FileCountLines = buildPerlPackage {
9730     pname = "File-CountLines";
9731     version = "0.0.3";
9732     src = fetchurl {
9733       url = "mirror://cpan/authors/id/M/MO/MORITZ/File-CountLines-v0.0.3.tar.gz";
9734       hash = "sha256-z9l8znyWE+TladR4dKK1cE8b6eztLwc5yHByVpQ4KmI=";
9735     };
9736     meta = {
9737       description = "Efficiently count the number of line breaks in a file";
9738       license = with lib.licenses; [ artistic1 gpl1Plus ];
9739     };
9740   };
9742   FileDesktopEntry = buildPerlPackage {
9743     version = "0.22";
9744     pname = "File-DesktopEntry";
9745     src = fetchurl {
9746       url = "mirror://cpan/authors/id/M/MI/MICHIELB/File-DesktopEntry-0.22.tar.gz";
9747       hash = "sha256-FpwB49ri9il2e+wanxzb1uxtcT0VAeCyeG5N0SNWNbg=";
9748     };
9749     propagatedBuildInputs = [ FileBaseDir URI ];
9750     meta = {
9751       description = "Object to handle .desktop files";
9752       license = with lib.licenses; [ artistic1 gpl1Plus ];
9753     };
9754   };
9756   FileDirList = buildPerlPackage {
9757     version = "0.05";
9758     pname = "File-DirList";
9759     src = fetchurl {
9760       url = "mirror://cpan/authors/id/T/TP/TPABA/File-DirList/File-DirList-0.05.tar.gz";
9761       sha256 = "sha256-mTt9dmLlV5hEih7azLmr0oHSvSO+fquZ9Wm44pYtO8M=";
9762     };
9763     preCheck = ''
9764       export HOME="$TMPDIR"
9765     '';
9766     meta = {
9767       description = "Provide a sorted list of directory content";
9768       license = with lib.licenses; [ artistic1 gpl1Plus ];
9769     };
9770   };
9772   FileFindIterator = buildPerlPackage {
9773     pname = "File-Find-Iterator";
9774     version = "0.4";
9775     src = fetchurl {
9776       url = "mirror://cpan/authors/id/T/TE/TEXMEC/File-Find-Iterator-0.4.tar.gz";
9777       hash = "sha256-orh6uXVqLlu2dK29OZN2Y+0gwoxxa/WhCVo8pE1Uqyw=";
9778     };
9779     propagatedBuildInputs = [ ClassIterator ];
9780     meta = {
9781       description = "Iterator interface for search files";
9782       license = with lib.licenses; [ artistic1 gpl1Plus ];
9783     };
9784   };
9786   FileFindObject = buildPerlModule {
9787     pname = "File-Find-Object";
9788     version = "0.3.8";
9789     src = fetchurl {
9790       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/File-Find-Object-0.3.8.tar.gz";
9791       hash = "sha256-TlJRRt6GTt+8kJsIRGKe7O0AY7YdQYuXLu8D+ES7NRQ=";
9792     };
9793     buildInputs = [ FileTreeCreate TestFile ];
9794     propagatedBuildInputs = [ ClassXSAccessor ];
9795     meta = {
9796       description = "Object oriented File::Find replacement";
9797       homepage = "https://metacpan.org/release/File-Find-Object";
9798       license = with lib.licenses; [ artistic2 ];
9799     };
9800   };
9802   FileFindObjectRule = buildPerlModule {
9803     pname = "File-Find-Object-Rule";
9804     version = "0.0313";
9805     src = fetchurl {
9806       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/File-Find-Object-Rule-0.0313.tar.gz";
9807       hash = "sha256-gZQPKZ1khySPvzDY8ft99sajSz35RApWIbE1yONPz/I=";
9808     };
9809     buildInputs = [ FileTreeCreate ];
9810     propagatedBuildInputs = [ ClassXSAccessor FileFindObject NumberCompare TextGlob ];
9811     # restore t/sample-data which is corrupted by patching shebangs
9812     preCheck = ''
9813       tar xf $src */t/sample-data --strip-components=1
9814     '';
9815     meta = {
9816       description = "Alternative interface to File::Find::Object";
9817       homepage = "https://www.shlomifish.org/open-source/projects/File-Find-Object";
9818       license = with lib.licenses; [ artistic1 gpl1Plus ];
9819       mainProgram = "findorule";
9820     };
9821   };
9823   FileFindRule = buildPerlPackage {
9824     pname = "File-Find-Rule";
9825     version = "0.34";
9826     src = fetchurl {
9827       url = "mirror://cpan/authors/id/R/RC/RCLAMP/File-Find-Rule-0.34.tar.gz";
9828       hash = "sha256-fm8WzDPrHyn/Jb7lHVE/S4qElHu/oY7bLTzECi1kyv4=";
9829     };
9830     propagatedBuildInputs = [ NumberCompare TextGlob ];
9831     meta = {
9832       description = "File::Find::Rule is a friendlier interface to File::Find";
9833       license = with lib.licenses; [ artistic1 gpl1Plus ];
9834       mainProgram = "findrule";
9835     };
9836   };
9838   FileFindRulePerl = buildPerlPackage {
9839     pname = "File-Find-Rule-Perl";
9840     version = "1.16";
9841     src = fetchurl {
9842       url = "mirror://cpan/authors/id/E/ET/ETHER/File-Find-Rule-Perl-1.16.tar.gz";
9843       hash = "sha256-rhiGBQ2cohIjwHPihwq9yA3DDj9VKJoRw32jggqDIf8=";
9844     };
9845     propagatedBuildInputs = [ FileFindRule ParamsUtil ];
9846     meta = {
9847       description = "Common rules for searching for Perl things";
9848       homepage = "https://github.com/karenetheridge/File-Find-Rule-Perl";
9849       license = with lib.licenses; [ artistic1 gpl1Plus ];
9850     };
9851   };
9853   FileFinder = buildPerlPackage {
9854     pname = "File-Finder";
9855     version = "0.53";
9856     src = fetchurl {
9857       url = "mirror://cpan/authors/id/M/ME/MERLYN/File-Finder-0.53.tar.gz";
9858       hash = "sha256-LsvBmsZ6nmNchyqAeo0+qv9bq8BU8VoZHUfN/F8XanQ=";
9859     };
9860     propagatedBuildInputs = [ TextGlob ];
9861     meta = {
9862       description = "Nice wrapper for File::Find ala find(1)";
9863       license = with lib.licenses; [ artistic1 gpl1Plus ];
9864     };
9865   };
9867   FileFnMatch = buildPerlPackage {
9868     pname = "File-FnMatch";
9869     version = "0.02";
9870     src = fetchurl {
9871       url = "mirror://cpan/authors/id/M/MJ/MJP/File-FnMatch-0.02.tar.gz";
9872       hash = "sha256-liRUuOhr6osTK/ivNXV9DGqPXVmQFb1qXWjLeuep6RY=";
9873     };
9874     meta = {
9875       description = "Simple filename and pathname matching";
9876       license = with lib.licenses; [ artistic1 gpl1Plus ];
9877       maintainers = teams.deshaw.members;
9878     };
9879   };
9881   FileFcntlLock = buildPerlPackage {
9882     pname = "File-FcntlLock";
9883     version = "0.22";
9884     src = fetchurl {
9885       url = "mirror://cpan/authors/id/J/JT/JTT/File-FcntlLock-0.22.tar.gz";
9886       hash = "sha256-mpq7Lv/5Orc3QaEo0/cA5SUnNUbBXQTnxRxwSrCdvN8=";
9887     };
9888     meta = {
9889       description = "File locking with fcntl(2)";
9890       license = with lib.licenses; [ artistic1 ];
9891       maintainers = with maintainers; [ das_j ];
9892     };
9893   };
9895   FileGrep = buildPerlPackage {
9896     pname = "File-Grep";
9897     version = "0.02";
9898     src = fetchurl {
9899       url = "mirror://cpan/authors/id/M/MN/MNEYLON/File-Grep-0.02.tar.gz";
9900       hash = "sha256-Ri4VJ062J4UhQH6jAtnupyUs1EyrI4KHH33oM9X4VjI=";
9901     };
9902     meta = {
9903       description = "Find matches to a pattern in a series of files and related functions";
9904       license = with lib.licenses; [ artistic1 gpl1Plus ];
9905       maintainers = teams.deshaw.members;
9906     };
9907   };
9909   FileHandleUnget = buildPerlPackage {
9910     pname = "FileHandle-Unget";
9911     version = "0.1634";
9912     src = fetchurl {
9913       url = "mirror://cpan/authors/id/D/DC/DCOPPIT/FileHandle-Unget-0.1634.tar.gz";
9914       hash = "sha256-OA80rTzl6exmHUxGi7M5IjHBYjF9QXLfN4FGtCqrF4U=";
9915     };
9916     buildInputs = [ FileSlurper TestCompile UNIVERSALrequire URI ];
9917     meta = {
9918       description = "FileHandle which supports multi-byte unget";
9919       homepage = "https://github.com/coppit/filehandle-unget";
9920       license = with lib.licenses; [ gpl2Only ];
9921       maintainers = with maintainers; [ romildo ];
9922     };
9923   };
9925   FileHomeDir = buildPerlPackage {
9926     pname = "File-HomeDir";
9927     version = "1.006";
9928     src = fetchurl {
9929       url = "mirror://cpan/authors/id/R/RE/REHSACK/File-HomeDir-1.006.tar.gz";
9930       hash = "sha256-WTc3xi3w9tq11BIuC0R2QXlFu2Jiwz7twAlmXvFUiFI=";
9931     };
9932     propagatedBuildInputs = [ FileWhich ];
9933     preCheck = "export HOME=$TMPDIR";
9934     doCheck = !stdenv.hostPlatform.isDarwin;
9935     meta = {
9936       description = "Find your home and other directories on any platform";
9937       homepage = "https://metacpan.org/release/File-HomeDir";
9938       license = with lib.licenses; [ artistic1 gpl1Plus ];
9939     };
9940   };
9942   FileKeePass = buildPerlPackage {
9943     pname = "File-KeePass";
9944     version = "2.03";
9945     src = fetchurl {
9946       url = "mirror://cpan/authors/id/R/RH/RHANDOM/File-KeePass-2.03.tar.gz";
9947       hash = "sha256-wwxogCelL/T1jNadbY7zVHKnzxBtTOlOtzp5a6fH/6c=";
9948     };
9949     propagatedBuildInputs = [ CryptRijndael ];
9950     meta = {
9951       description = "Interface to KeePass V1 and V2 database files";
9952       license = with lib.licenses; [ gpl2Only gpl3Only ];
9953     };
9954   };
9956   Filelchown = buildPerlModule {
9957     pname = "File-lchown";
9958     version = "0.02";
9959     src = fetchurl {
9960       url = "mirror://cpan/authors/id/P/PE/PEVANS/File-lchown-0.02.tar.gz";
9961       hash = "sha256-oC+/KFQGqKTZOZKE8DLy1VxWl1FUwuFnS9EJg3uAluw=";
9962     };
9963     buildInputs = [ ExtUtilsCChecker ];
9964     perlPreHook = lib.optionalString (stdenv.hostPlatform.isi686 || stdenv.hostPlatform.isDarwin) "export LD=$CC"; # fix undefined reference to `__stack_chk_fail_local'
9965     meta = {
9966       description = "Modify attributes of symlinks without dereferencing them";
9967       license = with lib.licenses; [ artistic1 gpl1Plus ];
9968     };
9969   };
9971   FileLibMagic = buildPerlPackage {
9972     pname = "File-LibMagic";
9973     version = "1.23";
9974     src = fetchurl {
9975       url = "mirror://cpan/authors/id/D/DR/DROLSKY/File-LibMagic-1.23.tar.gz";
9976       hash = "sha256-Uuax3Hyy2HpM30OboUXguejPKMwmpIo8+Zd8g0Y5Z+4=";
9977     };
9978     buildInputs = [ pkgs.file ConfigAutoConf TestFatal ];
9979     makeMakerFlags = [ "--lib=${pkgs.file}/lib" ];
9980     preCheck = ''
9981       substituteInPlace t/oo-api.t \
9982         --replace "/usr/share/file/magic.mgc" "${pkgs.file}/share/misc/magic.mgc"
9983     '';
9984     meta = {
9985       description = "Determine MIME types of data or files using libmagic";
9986       homepage = "https://metacpan.org/release/File::LibMagic";
9987       license = with lib.licenses; [ artistic1 gpl1Plus ];
9988       broken = stdenv.hostPlatform.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.FileLibMagic.x86_64-darwin
9989     };
9990   };
9992   FileListing = buildPerlPackage {
9993     pname = "File-Listing";
9994     version = "6.16";
9995     src = fetchurl {
9996       url = "mirror://cpan/authors/id/P/PL/PLICEASE/File-Listing-6.16.tar.gz";
9997       hash = "sha256-GJs6E/wKG6QSudnsWQHp5eREzHRrnwFW1DmTcNM2VcY=";
9998     };
9999     propagatedBuildInputs = [ HTTPDate ];
10000     meta = {
10001       description = "Parse directory listing";
10002       license = with lib.licenses; [ artistic1 gpl1Plus ];
10003     };
10004   };
10006   FileLoadLines = buildPerlPackage {
10007     pname = "File-LoadLines";
10008     version = "1.046";
10009     src = fetchurl {
10010       url = "mirror://cpan/authors/id/J/JV/JV/File-LoadLines-1.046.tar.gz";
10011       hash = "sha256-ebmx0HqFLHJaR/YEa3V9HXDKOvrWP6J6CHCHQ23XK8I=";
10012     };
10013     buildInputs = [ TestException ];
10014     meta = {
10015       description = "Load lines from file";
10016       license = with lib.licenses; [ artistic1 gpl1Plus ];
10017     };
10018   };
10020   FileMimeInfo = buildPerlPackage {
10021     pname = "File-MimeInfo";
10022     version = "0.33";
10023     src = fetchurl {
10024       url = "mirror://cpan/authors/id/M/MI/MICHIELB/File-MimeInfo-0.33.tar.gz";
10025       hash = "sha256-9r6ms4kGITJeycJ5KvruiOlIoK4dEIcvpyxxELPhscQ=";
10026     };
10027     doCheck = false; # Failed test 'desktop file is the right one'
10028     buildInputs = [ FileBaseDir FileDesktopEntry EncodeLocale ];
10029     meta = {
10030       description = "Determine file type from the file name";
10031       license = with lib.licenses; [ artistic1 gpl1Plus ];
10032     };
10033   };
10035   FileMMagic = buildPerlPackage {
10036     pname = "File-MMagic";
10037     version = "1.30";
10038     src = fetchurl {
10039       url = "mirror://cpan/authors/id/K/KN/KNOK/File-MMagic-1.30.tar.gz";
10040       hash = "sha256-zwwbHrKXBcAtl8KRNkgAnAvkLOk+wks2xpa/LU9evX4=";
10041     };
10042     meta = {
10043       description = "Guess file type from contents";
10044       license = with lib.licenses; [ asl20 ];
10045     };
10046   };
10048   FileMap = buildPerlModule {
10049     pname = "File-Map";
10050     version = "0.71";
10051     src = fetchurl {
10052       url = "mirror://cpan/authors/id/L/LE/LEONT/File-Map-0.71.tar.gz";
10053       hash = "sha256-yOJpM4BOhw1KupJiO3iGrIs8dgyY+/zTvcSyMFxGR1k=";
10054     };
10055     perlPreHook = "export LD=$CC";
10056     propagatedBuildInputs = [ PerlIOLayers SubExporterProgressive ];
10057     buildInputs = [ TestFatal TestWarnings ];
10058     meta = {
10059       description = "Memory mapping made simple and safe";
10060       license = with lib.licenses; [ artistic1 gpl1Plus ];
10061     };
10062   };
10064   FileModified = buildPerlPackage {
10065     pname = "File-Modified";
10066     version = "0.10";
10067     src = fetchurl {
10068       url = "mirror://cpan/authors/id/N/NE/NEILB/File-Modified-0.10.tar.gz";
10069       hash = "sha256-a1CxqrbsaZigF/ZAPCc1s7weHPRhh70TTX623z/EUUQ=";
10070     };
10071     meta = {
10072       description = "Checks intelligently if files have changed";
10073       homepage = "https://github.com/neilbowers/File-Modified";
10074       license = with lib.licenses; [ artistic1 gpl1Plus ];
10075     };
10076   };
10078   FileNext = buildPerlPackage {
10079     pname = "File-Next";
10080     version = "1.18";
10081     src = fetchurl {
10082       url = "mirror://cpan/authors/id/P/PE/PETDANCE/File-Next-1.18.tar.gz";
10083       hash = "sha256-+QDLOVBetuFoqcpRoQtz8bveGRS5I6CezXLZwC5uwu8=";
10084     };
10085     meta = {
10086       description = "File-finding iterator";
10087       license = with lib.licenses; [ artistic2 ];
10088     };
10089   };
10091   FileNFSLock = buildPerlPackage {
10092     pname = "File-NFSLock";
10093     version = "1.29";
10094     src = fetchurl {
10095       url = "mirror://cpan/authors/id/B/BB/BBB/File-NFSLock-1.29.tar.gz";
10096       hash = "sha256-YdQVmbSBFk7fm4vsq77y0j9iKpcn9sGDZekrV4LU+jc=";
10097     };
10098     meta = {
10099       description = "Perl module to do NFS (or not) locking";
10100       license = with lib.licenses; [ artistic1 gpl1Only ];
10101     };
10102   };
10104   FilePath = buildPerlPackage {
10105     pname = "File-Path";
10106     version = "2.18";
10107     src = fetchurl {
10108       url = "mirror://cpan/authors/id/J/JK/JKEENAN/File-Path-2.18.tar.gz";
10109       hash = "sha256-mA8KF+2zU99G6c17NX+fWSnN4PgMRf16Bs9+DovWrd0=";
10110     };
10111     meta = {
10112       description = "Create or remove directory trees";
10113       license = with lib.licenses; [ artistic1 gpl1Plus ];
10114     };
10115   };
10117   FilePid = buildPerlPackage {
10118     pname = "File-Pid";
10119     version = "1.01";
10120     src = fetchurl {
10121       url = "mirror://cpan/authors/id/C/CW/CWEST/File-Pid-1.01.tar.gz";
10122       hash = "sha256-uv7uj9yW6wYwagxYu9tyCbbeRfhQ51/caxbbV24F5CI=";
10123     };
10124     patches = [(fetchpatch {
10125       name = "missing-pidfile.patch";
10126       url = "https://sources.debian.org/data/main/libf/libfile-pid-perl/1.01-2/debian/patches/missing-pidfile.patch";
10127       hash = "sha256-VBsIYyCnjcZLYQ2Uq2MKPK3kF2wiMKvnq0m727DoavM=";
10128     })];
10129     propagatedBuildInputs = [ ClassAccessor ];
10130     meta = {
10131       description = "Pid File Manipulation";
10132       license = with lib.licenses; [ artistic1 gpl1Plus ];
10133       maintainers = teams.deshaw.members;
10134     };
10135   };
10137   Filepushd = buildPerlPackage {
10138     pname = "File-pushd";
10139     version = "1.016";
10140     src = fetchurl {
10141       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/File-pushd-1.016.tar.gz";
10142       hash = "sha256-1zp/CUQpg7CYJg3z33qDKl9mB3OjE8onP6i1ZmX5fNw=";
10143     };
10144     meta = {
10145       description = "Change directory temporarily for a limited scope";
10146       homepage = "https://github.com/dagolden/File-pushd";
10147       license = with lib.licenses; [ asl20 ];
10148     };
10149   };
10151   FileReadBackwards = buildPerlPackage {
10152     pname = "File-ReadBackwards";
10153     version = "1.06";
10154     src = fetchurl {
10155       url = "mirror://cpan/authors/id/P/PL/PLICEASE/File-ReadBackwards-1.06.tar.gz";
10156       hash = "sha256-MrKgVJOJqviIde8D1+u//y1ZeeyoW3yBL2tLsQ0QL2I=";
10157     };
10158     meta = {
10159       description = "Read a file backwards by lines";
10160       homepage = "https://metacpan.org/pod/File::ReadBackwards";
10161       license = with lib.licenses; [ artistic1 gpl1Plus ];
10162     };
10163   };
10165   FileRemove = buildPerlModule {
10166     pname = "File-Remove";
10167     version = "1.61";
10168     src = fetchurl {
10169       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/File-Remove-1.61.tar.gz";
10170       hash = "sha256-/YV/WFkI/FA0YbnkizyFlOZTV2a8FL6xfJC6WNXcSXU=";
10171     };
10172     meta = {
10173       description = "Remove files and directories";
10174       license = with lib.licenses; [ artistic1 gpl1Plus ];
10175     };
10176   };
10178   FileShare = buildPerlPackage {
10179     pname = "File-Share";
10180     version = "0.27";
10181     src = fetchurl {
10182       url = "mirror://cpan/authors/id/I/IN/INGY/File-Share-0.27.tar.gz";
10183       hash = "sha256-1uj0tV69OOC7ReRDkuP6J9wf3harxdH/U+FX4ZpXVb4=";
10184     };
10185     propagatedBuildInputs = [ FileShareDir Readonly ];
10186     meta = {
10187       description = "Extend File::ShareDir to Local Libraries";
10188       homepage = "https://github.com/ingydotnet/file-share-pm";
10189       license = with lib.licenses; [ artistic1 gpl1Plus ];
10190     };
10191   };
10193   FileShareDir = buildPerlPackage {
10194     pname = "File-ShareDir";
10195     version = "1.118";
10196     src = fetchurl {
10197       url = "mirror://cpan/authors/id/R/RE/REHSACK/File-ShareDir-1.118.tar.gz";
10198       hash = "sha256-O7KiC6Nd+VjcCk8jBvwF2QPYuMTePIvu/OF3OdKByVg=";
10199     };
10200     propagatedBuildInputs = [ ClassInspector ];
10201     buildInputs = [ FileShareDirInstall ];
10202     meta = {
10203       description = "Locate per-dist and per-module shared files";
10204       homepage = "https://metacpan.org/release/File-ShareDir";
10205       license = with lib.licenses; [ artistic1 gpl1Plus ];
10206     };
10207   };
10209   FileShareDirDist = buildPerlPackage {
10210     pname = "File-ShareDir-Dist";
10211     version = "0.07";
10212     src = fetchurl {
10213       url = "mirror://cpan/authors/id/P/PL/PLICEASE/File-ShareDir-Dist-0.07.tar.gz";
10214       hash = "sha256-jX/l0O4iNR9B75Wtwi29VsMf+iqbLBmEMA6S/36f6G0=";
10215     };
10216     meta = {
10217       homepage = "https://metacpan.org/pod/File::ShareDir::Dist";
10218       description = "Locate per-dist shared files";
10219       license = with lib.licenses; [ artistic1 gpl1Plus ];
10220       maintainers = with maintainers; [ tomasajt ];
10221     };
10222   };
10224   FileShareDirInstall = buildPerlPackage {
10225     pname = "File-ShareDir-Install";
10226     version = "0.14";
10227     src = fetchurl {
10228       url = "mirror://cpan/authors/id/E/ET/ETHER/File-ShareDir-Install-0.14.tar.gz";
10229       hash = "sha256-j5UzsZjy1KmlKIy8fSJPdnmtBaeoVzdFWZeJQovFrqA=";
10230     };
10231     meta = {
10232       description = "Install shared files";
10233       homepage = "https://github.com/Perl-Toolchain-Gang/File-ShareDir-Install";
10234       license = with lib.licenses; [ artistic1 gpl1Plus ];
10235     };
10236   };
10238   FilesysDf = buildPerlPackage {
10239     pname = "Filesys-Df";
10240     version = "0.92";
10241     src = fetchurl {
10242       url = "mirror://cpan/authors/id/I/IG/IGUTHRIE/Filesys-Df-0.92.tar.gz";
10243       hash = "sha256-/onLtCfg4F8c2Xwt1tOGasayG8eoVzTt4Vm9w1R5VSo=";
10244     };
10245     meta = {
10246       description = "Perl extension for filesystem disk space information";
10247       license = with lib.licenses; [ artistic1 gpl1Plus ];
10248     };
10249   };
10251   FilesysNotifySimple = buildPerlPackage {
10252     pname = "Filesys-Notify-Simple";
10253     version = "0.14";
10254     src = fetchurl {
10255       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Filesys-Notify-Simple-0.14.tar.gz";
10256       hash = "sha256-H9pxLUul4YaBWe019vjvv66dQ11jdvVgbVM7ywgFVaQ=";
10257     };
10258     buildInputs = [ TestSharedFork ];
10259     meta = {
10260       description = "Simple and dumb file system watcher";
10261       homepage = "https://github.com/miyagawa/Filesys-Notify-Simple";
10262       license = with lib.licenses; [ artistic1 gpl1Plus ];
10263     };
10264   };
10266   FilesysDiskUsage = buildPerlPackage {
10267     pname = "Filesys-DiskUsage";
10268     version = "0.13";
10269     src = fetchurl {
10270       url = "mirror://cpan/authors/id/M/MA/MANWAR/Filesys-DiskUsage-0.13.tar.gz";
10271       hash = "sha256-/T5SxvYkEnGigTSNHUPEQVTC9hoyVD20aqnhVpLRtxM=";
10272     };
10273     buildInputs = [ TestWarn ];
10274     meta = {
10275       description = "Estimate file space usage (similar to `du`)";
10276       license = with lib.licenses; [ artistic1 gpl1Plus ];
10277       mainProgram = "fdu";
10278     };
10279   };
10281   FileSlurp = buildPerlPackage {
10282     pname = "File-Slurp";
10283     version = "9999.32";
10284     src = fetchurl {
10285       url = "mirror://cpan/authors/id/C/CA/CAPOEIRAB/File-Slurp-9999.32.tar.gz";
10286       hash = "sha256-TDwhmSqdQr46ed10o8g9J9OAVyadZVCaL1VeoPsrxbA=";
10287     };
10288     meta = {
10289       description = "Simple and Efficient Reading/Writing/Modifying of Complete Files";
10290       license = with lib.licenses; [ artistic1 gpl1Plus ];
10291     };
10292   };
10294   FileSlurper = buildPerlPackage {
10295     pname = "File-Slurper";
10296     version = "0.014";
10297     src = fetchurl {
10298       url = "mirror://cpan/authors/id/L/LE/LEONT/File-Slurper-0.014.tar.gz";
10299       hash = "sha256-1aNkhzOYiMPNdY5kgWDuHXDrQVPKy6/1eEbbzvs0Sww=";
10300     };
10301     buildInputs = [ TestWarnings ];
10302     meta = {
10303       description = "Simple, sane and efficient module to slurp a file";
10304       license = with lib.licenses; [ artistic1 gpl1Plus ];
10305     };
10306   };
10308   FileSlurpTiny = buildPerlPackage {
10309     pname = "File-Slurp-Tiny";
10310     version = "0.004";
10311     src = fetchurl {
10312       url = "mirror://cpan/authors/id/L/LE/LEONT/File-Slurp-Tiny-0.004.tar.gz";
10313       hash = "sha256-RSmVvuq/DpI+Zf3GJ6cl27EsnhDADYAYwW0QumJ1fx4=";
10314     };
10315     meta = {
10316       description = "Simple, sane and efficient file slurper [DISCOURAGED]";
10317       license = with lib.licenses; [ artistic1 gpl1Plus ];
10318     };
10319   };
10321   FileTail = buildPerlPackage {
10322     pname = "File-Tail";
10323     version = "1.3";
10324     src = fetchurl {
10325       url = "mirror://cpan/authors/id/M/MG/MGRABNAR/File-Tail-1.3.tar.gz";
10326       hash = "sha256-JtCfgYNuQ+rkACjVKD/lYg/m/mJ4vz6462AMSOw0r8c=";
10327     };
10328     meta = {
10329       description = "Perl extension for reading from continously updated files";
10330       license = with lib.licenses; [ artistic1 gpl1Plus ];
10331       maintainers = teams.deshaw.members;
10332     };
10333   };
10335   FileTouch = buildPerlPackage {
10336     pname = "File-Touch";
10337     version = "0.12";
10338     src = fetchurl {
10339       url = "mirror://cpan/authors/id/N/NE/NEILB/File-Touch-0.12.tar.gz";
10340       hash = "sha256-KgTcQk30jpjFRVbGBFyrAmpJ43N6qUohz0l3YbDy5Zw=";
10341     };
10342     meta = {
10343       description = "Update file access and modification times, optionally creating files if needed";
10344       homepage = "https://github.com/neilb/File-Touch";
10345       license = with lib.licenses; [ artistic1 gpl1Plus ];
10346       maintainers = teams.deshaw.members;
10347     };
10348   };
10350   FileTreeCreate = buildPerlModule {
10351     pname = "File-TreeCreate";
10352     version = "0.0.1";
10353     src = fetchurl {
10354       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/File-TreeCreate-0.0.1.tar.gz";
10355       hash = "sha256-V2hvEIQ76Br/rRha5BMXkLoMSvNtIQTW+2kSZSgFUmc=";
10356     };
10357     meta = {
10358       homepage = "http://metacpan.org/release/File-TreeCreate";
10359       description = "Recursively create a directory tree";
10360       license = lib.licenses.mit;
10361     };
10362   };
10364   FileType = buildPerlModule {
10365     pname = "File-Type";
10366     version = "0.22";
10367     src = fetchurl {
10368       url = "mirror://cpan/authors/id/P/PM/PMISON/File-Type-0.22.tar.gz";
10369       hash = "sha256-01zZX+9X/U39iDH2LDTilNfEuGH8kJ4Ct2Bxc51S00E=";
10370     };
10371     meta = {
10372       description = "Uses magic numbers (typically at the start of a file) to determine the MIME type of that file";
10373       license = with lib.licenses; [ artistic1 gpl1Plus ];
10374     };
10375   };
10377   FileUtil = buildPerlModule {
10378     pname = "File-Util";
10379     version = "4.201720";
10380     src = fetchurl {
10381       url = "mirror://cpan/authors/id/T/TO/TOMMY/File-Util-4.201720.tar.gz";
10382       hash = "sha256-1EkQIYUNXFy9cCx+R0SFgHmEHS+pPxwtCd3Jp4Y2CN8=";
10383     };
10384     buildInputs = [ TestNoWarnings ];
10385     meta = {
10386       description = "Easy, versatile, portable file handling";
10387       homepage = "https://github.com/tommybutler/file-util/wiki";
10388       license = with lib.licenses; [ artistic1 gpl1Plus ];
10389     };
10390   };
10392   FileUtilTempdir = buildPerlPackage {
10393     pname = "File-Util-Tempdir";
10394     version = "0.034";
10395     src = fetchurl {
10396       url = "mirror://cpan/authors/id/P/PE/PERLANCAR/File-Util-Tempdir-0.034.tar.gz";
10397       hash = "sha256-0R3izl5vrT8GFLymR0ykScNa7TUSXVsyJ+ZpvBdv3Bw=";
10398     };
10399     buildInputs = [ Perlosnames TestException ];
10400     meta = {
10401       description = "Cross-platform way to get system-wide & user private temporary directory";
10402       homepage = "https://metacpan.org/release/File-Util-Tempdir";
10403       license = with lib.licenses; [ artistic1 gpl1Plus ];
10404       maintainers = [ maintainers.sgo ];
10405     };
10406   };
10408   FileWhich = buildPerlPackage {
10409     pname = "File-Which";
10410     version = "1.27";
10411     src = fetchurl {
10412       url = "mirror://cpan/authors/id/P/PL/PLICEASE/File-Which-1.27.tar.gz";
10413       hash = "sha256-MgHxpg4/FkhAguYEXIloQiYfw0Xen7LmIP0qLHrzqTo=";
10414     };
10415     meta = {
10416       description = "Perl implementation of the which utility as an API";
10417       homepage = "https://metacpan.org/pod/File::Which";
10418       license = with lib.licenses; [ artistic1 gpl1Plus ];
10419     };
10420   };
10422   FileXDG = buildPerlPackage {
10423     pname = "File-XDG";
10424     version = "1.03";
10425     src = fetchurl {
10426       url = "mirror://cpan/authors/id/P/PL/PLICEASE/File-XDG-1.03.tar.gz";
10427       hash = "sha256-iL18FFjLdjvs7W570MEZcqFWseOSMphPinqL5CBr984=";
10428     };
10429     preCheck = "rm t/file_xdg.t"; # Tries to write to $HOME
10430     propagatedBuildInputs = [ PathClass PathTiny RefUtil ];
10431     meta = {
10432       homepage = "https://metacpan.org/pod/File::XDG";
10433       description = "Basic implementation of the XDG base directory specification";
10434       license = with lib.licenses; [ artistic1 gpl1Plus ];
10435     };
10436   };
10438   FileZglob = buildPerlPackage {
10439     pname = "File-Zglob";
10440     version = "0.11";
10441     src = fetchurl {
10442       url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/File-Zglob-0.11.tar.gz";
10443       hash = "sha256-HLHt3iCsCU7wA3lLr+8sdiQWnPhALHNn2bdGD2wOZps=";
10444     };
10445     meta = {
10446       description = "Extended globs";
10447       license = with lib.licenses; [ artistic1 gpl1Plus ];
10448     };
10449   };
10451   Filter = buildPerlPackage {
10452     pname = "Filter";
10453     version = "1.64";
10454     src = fetchurl {
10455       url = "mirror://cpan/authors/id/R/RU/RURBAN/Filter-1.64.tar.gz";
10456       hash = "sha256-E+f7fh0yZZjjZgEDzxl0vun2kKxbQ7M58sAi8rX87yw=";
10457     };
10458     meta = {
10459       description = "Source Filters";
10460       license = with lib.licenses; [ artistic1 gpl1Plus ];
10461     };
10462   };
10464   FinanceQuote = buildPerlPackage rec {
10465     pname = "Finance-Quote";
10466     version = "1.63";
10467     src = fetchurl {
10468       url = "mirror://cpan/authors/id/B/BP/BPSCHUCK/Finance-Quote-${version}.tar.gz";
10469       hash = "sha256-Y0dqDIJ60aHf7KjePopkKiToeMH0p6neb1FNaoV3so0=";
10470     };
10471     buildInputs = [ DateManip DateRange DateSimple DateTime DateTimeFormatISO8601 StringUtil TestKwalitee TestPerlCritic TestPod TestPodCoverage ];
10472     propagatedBuildInputs = [ DateManip DateTimeFormatStrptime Encode HTMLTableExtract HTMLTokeParserSimple HTMLTree HTMLTreeBuilderXPath HTTPCookies HTTPCookieJar JSON IOCompress IOString LWPProtocolHttps Readonly StringUtil SpreadsheetXLSX TextTemplate TryTiny WebScraper XMLLibXML libwwwperl ];
10473     meta = {
10474       homepage = "https://finance-quote.sourceforge.net/";
10475       changelog = "https://github.com/finance-quote/finance-quote/releases/tag/v${version}";
10476       description = "Get stock and mutual fund quotes from various exchanges";
10477       license = with lib.licenses; [ gpl2Plus ];
10478       maintainers = with lib.maintainers; [ nevivurn ];
10479     };
10480   };
10482   FindLib = buildPerlPackage {
10483     pname = "Find-Lib";
10484     version = "1.04";
10485     src = fetchurl {
10486       url = "mirror://cpan/authors/id/Y/YA/YANNK/Find-Lib-1.04.tar.gz";
10487       hash = "sha256-HXOSHjBh4bBG/kJo4tBf/VpMV2Jmbi5HI/g6rMFG6FE=";
10488     };
10489     meta = {
10490       description = "Helper to smartly find libs to use in the filesystem tree";
10491       license = with lib.licenses; [ artistic1 gpl1Plus ];
10492     };
10493   };
10495   FontAFM = buildPerlPackage {
10496     pname = "Font-AFM";
10497     version = "1.20";
10498     src = fetchurl {
10499       url = "mirror://cpan/authors/id/G/GA/GAAS/Font-AFM-1.20.tar.gz";
10500       hash = "sha256-MmcRZtoyWWoPa6rNDBIzglpgrK8lgF15yBo/GNYIi8E=";
10501     };
10502     meta = {
10503       description = "Interface to Adobe Font Metrics files";
10504       license = with lib.licenses; [ artistic1 gpl1Plus ];
10505     };
10506   };
10508   FontTTF = buildPerlPackage {
10509     pname = "Font-TTF";
10510     version = "1.06";
10511     src = fetchurl {
10512       url = "mirror://cpan/authors/id/B/BH/BHALLISSY/Font-TTF-1.06.tar.gz";
10513       hash = "sha256-S2l9REJZdZ6gLSxELJv/5f/hTJIUCEoB90NpOpRMwpM=";
10514     };
10515     buildInputs = [ IOString ];
10516     meta = {
10517       description = "TTF font support for Perl";
10518       license = with lib.licenses; [ artistic2 ];
10519     };
10520   };
10522   ForksSuper = buildPerlPackage {
10523     pname = "Forks-Super";
10524     version = "0.97";
10525     src = fetchurl {
10526       url = "mirror://cpan/authors/id/M/MO/MOB/Forks-Super-0.97.tar.gz";
10527       hash = "sha256-M9tDV+Es1vQPKlijq5b+tP/9JedC29SL75B9skLQKk4=";
10528     };
10529     doCheck = false;
10530     propagatedBuildInputs = [ URI ];
10531     meta = {
10532       description = "Extensions and convenience methods to manage background processes";
10533       license = with lib.licenses; [ artistic1 gpl1Plus ];
10534     };
10535   };
10537   FormValidatorSimple = buildPerlPackage {
10538     pname = "FormValidator-Simple";
10539     version = "0.29";
10540     src = fetchurl {
10541       url = "mirror://cpan/authors/id/L/LY/LYOKATO/FormValidator-Simple-0.29.tar.gz";
10542       hash = "sha256-/Dpj3FS5YtdFhgcBdq2vW+hp8JtWG7MPX9Mu9TF5JmY=";
10543     };
10544     propagatedBuildInputs = [ ClassAccessor ClassDataAccessor DateCalc DateTimeFormatStrptime EmailValidLoose ListMoreUtils TieIxHash UNIVERSALrequire YAML ];
10545     buildInputs = [ CGI ];
10546     meta = {
10547       description = "Validation with simple chains of constraints";
10548       license = with lib.licenses; [ artistic1 gpl1Plus ];
10549     };
10550   };
10552   FreezeThaw = buildPerlPackage {
10553     pname = "FreezeThaw";
10554     version = "0.5001";
10555     src = fetchurl {
10556       url = "mirror://cpan/authors/id/I/IL/ILYAZ/modules/FreezeThaw-0.5001.tar.gz";
10557       hash = "sha256-PF4IMpEG+c7jq0RLgTMcWTX4MIShUdiFBeekZdpUD0E=";
10558     };
10559     doCheck = false;
10560     meta = {
10561       description = "Converting Perl structures to strings and back";
10562       license = with lib.licenses; [ artistic1 gpl1Plus ];
10563     };
10564   };
10566   FunctionParameters = buildPerlPackage {
10567     pname = "Function-Parameters";
10568     version = "2.002004";
10569     src = fetchurl {
10570       url = "mirror://cpan/authors/id/M/MA/MAUKE/Function-Parameters-2.002004.tar.gz";
10571       hash = "sha256-KKvqWODAnOMnmaCMvXr3DaHimXd8KZEZQpygaacYg+g=";
10572     };
10573     buildInputs = [ DirSelf TestFatal ];
10574     meta = {
10575       description = "Define functions and methods with parameter lists (\"subroutine signatures\")";
10576       license = with lib.licenses; [ artistic1 gpl1Plus ];
10577     };
10578   };
10580   Furl = buildPerlModule {
10581     pname = "Furl";
10582     version = "3.14";
10583     src = fetchurl {
10584       url = "mirror://cpan/authors/id/S/SY/SYOHEX/Furl-3.14.tar.gz";
10585       hash = "sha256-Nd29iIDXHxniAkM+F2H9EXc4XmML9QaFvEi2t6y4V7k=";
10586     };
10587     propagatedBuildInputs = [ ClassAccessorLite HTTPParserXS MozillaCA ];
10588     buildInputs = [ HTTPCookieJar HTTPProxy ModuleBuildTiny Plack Starlet TestFakeHTTPD TestRequires TestSharedFork TestTCP TestValgrind URI ];
10589     meta = {
10590       description = "Lightning-fast URL fetcher";
10591       homepage = "https://github.com/tokuhirom/Furl";
10592       license = with lib.licenses; [ artistic1 gpl1Plus ];
10593     };
10594   };
10596   Future = buildPerlModule {
10597     pname = "Future";
10598     version = "0.50";
10599     src = fetchurl {
10600       url = "mirror://cpan/authors/id/P/PE/PEVANS/Future-0.50.tar.gz";
10601       hash = "sha256-wDXj2eaaOvFEszrINN7p5lrTYPKlHbnxWNw0Ls3dX0Q=";
10602     };
10603     buildInputs = [ Test2Suite ];
10604     meta = {
10605       description = "Represent an operation awaiting completion";
10606       license = with lib.licenses; [ artistic1 gpl1Plus ];
10607     };
10608   };
10610   FutureAsyncAwait = buildPerlModule {
10611     pname = "Future-AsyncAwait";
10612     version = "0.66";
10613     src = fetchurl {
10614       url = "mirror://cpan/authors/id/P/PE/PEVANS/Future-AsyncAwait-0.66.tar.gz";
10615       hash = "sha256-xqD03kYr8yS1usoXddGZ7DJGo1jBPbm2Ssv82+bl7CE=";
10616     };
10617     buildInputs = [ Test2Suite ];
10618     propagatedBuildInputs = [ Future XSParseKeyword XSParseSublike ];
10619     perlPreHook = lib.optionalString stdenv.hostPlatform.isDarwin "export LD=$CC";
10620     meta = {
10621       description = "Deferred subroutine syntax for futures";
10622       license = with lib.licenses; [ artistic1 gpl1Plus ];
10623       maintainers = [ maintainers.zakame ];
10624     };
10625   };
10627   FutureIO = buildPerlModule {
10628     pname = "Future-IO";
10629     version = "0.14";
10630     src = fetchurl {
10631       url = "mirror://cpan/authors/id/P/PE/PEVANS/Future-IO-0.14.tar.gz";
10632       hash = "sha256-a1j++vwwlMJwHwp7mMsUCwmItRaKfV3069Hu6OhyBgo=";
10633     };
10634     buildInputs = [ TestFutureIOImpl ];
10635     propagatedBuildInputs = [ Future StructDumb ];
10636     preCheck = "rm t/06connect.t"; # this test fails in sandbox
10637     meta = {
10638       description = "Future-returning IO methods";
10639       license = with lib.licenses; [ artistic1 gpl1Plus ];
10640       maintainers = [ maintainers.zakame ];
10641     };
10642   };
10644   FutureQueue = buildPerlModule {
10645     pname = "Future-Queue";
10646     version = "0.51";
10647     src = fetchurl {
10648       url = "mirror://cpan/authors/id/P/PE/PEVANS/Future-Queue-0.51.tar.gz";
10649       hash = "sha256-HVAcOpot3/x8YPlvpmlp1AyykuCSBM9t7NHCuLUAPNY=";
10650     };
10651     buildInputs = [ Test2Suite ];
10652     propagatedBuildInputs = [ Future ];
10653     meta = {
10654       description = "FIFO queue of values that uses L<Future>s";
10655       license = with lib.licenses; [ artistic1 gpl1Plus ];
10656     };
10657   };
10659   GamesSolitaireVerify = buildPerlModule {
10660     pname = "Games-Solitaire-Verify";
10661     version = "0.2403";
10662     src = fetchurl {
10663       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Games-Solitaire-Verify-0.2403.tar.gz";
10664       hash = "sha256-5atHXIK6HLCIrSj0I8pRTUaUTWrjw+tV6WNunn8dyJM=";
10665     };
10666     buildInputs = [ DirManifest TestDifferences ];
10667     propagatedBuildInputs = [ ClassXSAccessor ExceptionClass PathTiny ];
10668     meta = {
10669       description = "Verify solutions for solitaire games";
10670       homepage = "https://metacpan.org/release/Games-Solitaire-Verify";
10671       license = with lib.licenses; [ mit ];
10672       mainProgram = "verify-solitaire-solution";
10673     };
10674   };
10676   GD = buildPerlPackage {
10677     pname = "GD";
10678     version = "2.78";
10679     src = fetchurl {
10680       url = "mirror://cpan/authors/id/R/RU/RURBAN/GD-2.78.tar.gz";
10681       hash = "sha256-aDEFS/VCS09cI9NifT0UhEgPb5wsZmMiIpFfKFG+buQ=";
10682     };
10684     buildInputs = [ pkgs.gd pkgs.libjpeg pkgs.zlib pkgs.freetype pkgs.libpng pkgs.fontconfig pkgs.xorg.libXpm ExtUtilsPkgConfig TestFork TestNoWarnings ];
10686     # otherwise "cc1: error: -Wformat-security ignored without -Wformat [-Werror=format-security]"
10687     hardeningDisable = [ "format" ];
10689     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}" ];
10691     meta = {
10692       description = "Perl interface to the gd2 graphics library";
10693       license = with lib.licenses; [ artistic1 gpl1Plus ];
10694       mainProgram = "bdf2gdfont.pl";
10695     };
10696   };
10698   GDGraph = buildPerlPackage {
10699     pname = "GDGraph";
10700     version = "1.56";
10701     src = fetchurl {
10702       url = "mirror://cpan/authors/id/B/BP/BPS/GDGraph-1.56.tar.gz";
10703       hash = "sha256-b0nMTlkBVIDbnJtrGK/YxQvjCIZoe2lBFRPQbziXERM=";
10704     };
10705     propagatedBuildInputs = [ GDText ];
10706     buildInputs = [ CaptureTiny TestException ];
10707     meta = {
10708       description = "Graph Plotting Module for Perl 5";
10709       license = with lib.licenses; [ artistic1 gpl1Plus ];
10710     };
10711   };
10713   GDSecurityImage = buildPerlPackage {
10714     pname = "GD-SecurityImage";
10715     version = "1.75";
10716     src = fetchurl {
10717       url = "mirror://cpan/authors/id/B/BU/BURAK/GD-SecurityImage-1.75.tar.gz";
10718       hash = "sha256-Pd4k2ay6lRzd5bVp0eQsrZRs/bUSgORGnzNv1f4MjqY=";
10719     };
10720     propagatedBuildInputs = [ GD ];
10721     meta = {
10722       description = "Security image (captcha) generator";
10723       license = with lib.licenses; [ artistic1 gpl1Plus ];
10724     };
10725   };
10727   GDText = buildPerlPackage {
10728     pname = "GDTextUtil";
10729     version = "0.86";
10730     src = fetchurl {
10731       url = "mirror://cpan/authors/id/M/MV/MVERB/GDTextUtil-0.86.tar.gz";
10732       hash = "sha256-iG7L+Fz+lPQTXuVonEhHqa54PsuZ5nWeEsc08t1hFrw=";
10733     };
10734     propagatedBuildInputs = [ GD ];
10735     meta = {
10736       description = "Text utilities for use with GD";
10737       license = with lib.licenses; [ artistic1 gpl1Plus ];
10738     };
10739   };
10741   GeoIP = buildPerlPackage {
10742     pname = "Geo-IP";
10743     version = "1.51";
10744     src = fetchurl {
10745       url = "mirror://cpan/authors/id/M/MA/MAXMIND/Geo-IP-1.51.tar.gz";
10746       hash = "sha256-FjAgMV1cVEGDaseeCKd7Qo8nf9CQvqT6gNpwd7JDaro=";
10747     };
10748     makeMakerFlags = [ "LIBS=-L${pkgs.geoip}/lib" "INC=-I${pkgs.geoip}/include" ];
10749     doCheck = false; # seems to access the network
10750     meta = {
10751       description = "Look up location and network information by IP Address";
10752       license = with lib.licenses; [ artistic1 gpl1Plus ];
10753     };
10754   };
10756   GeoIP2 = buildPerlPackage {
10757     pname = "GeoIP2";
10758     version = "2.006002";
10759     src = fetchurl {
10760       url = "mirror://cpan/authors/id/M/MA/MAXMIND/GeoIP2-2.006002.tar.gz";
10761       hash = "sha256-CQVCqO7pvTwS5ZxLZWJMidAf/ZQgTx8Hah20CybAmDQ=";
10762     };
10763     propagatedBuildInputs = [ JSONMaybeXS LWPProtocolHttps MaxMindDBReader ParamsValidate Throwable ];
10764     buildInputs = [ PathClass TestFatal TestNumberDelta ];
10765     meta = {
10766       description = "Perl API for MaxMind's GeoIP2 web services and databases";
10767       homepage = "https://metacpan.org/release/GeoIP2";
10768       license = with lib.licenses; [ artistic1 gpl1Plus ];
10769       mainProgram = "web-service-request";
10770     };
10771   };
10773   GetoptArgvFile = buildPerlPackage {
10774     pname = "Getopt-ArgvFile";
10775     version = "1.11";
10776     src = fetchurl {
10777       url = "mirror://cpan/authors/id/J/JS/JSTENZEL/Getopt-ArgvFile-1.11.tar.gz";
10778       hash = "sha256-NwmqUTzm/XHRpVoC400vCQAX1TUKm9RHAFZTybCDWyI=";
10779     };
10780     meta = {
10781       description = "Interpolates script options from files into @ARGV or another array";
10782       license = with lib.licenses; [ artistic1 ];
10783       maintainers = [ maintainers.pSub ];
10784     };
10785   };
10787   GetoptLong = buildPerlPackage {
10788     pname = "Getopt-Long";
10789     version = "2.58";
10790     src = fetchurl {
10791       url = "mirror://cpan/authors/id/J/JV/JV/Getopt-Long-2.58.tar.gz";
10792       hash = "sha256-EwXtRuoh95QwTpeqPc06OFGQWXhenbdBXa8sIYUGxWk=";
10793     };
10794     meta = {
10795       description = "Extended processing of command line options";
10796       license = with lib.licenses; [ artistic1 gpl2Plus ];
10797     };
10798   };
10800   GetoptLongDescriptive = buildPerlPackage {
10801     pname = "Getopt-Long-Descriptive";
10802     version = "0.114";
10803     src = fetchurl {
10804       url = "mirror://cpan/authors/id/R/RJ/RJBS/Getopt-Long-Descriptive-0.114.tar.gz";
10805       hash = "sha256-QQ6EIRSpy/0/06X9JIqWcDwHxdh5sqpfnbAzPyMnYBY=";
10806     };
10807     buildInputs = [ CPANMetaCheck TestFatal TestWarnings ];
10808     propagatedBuildInputs = [ ParamsValidate SubExporter GetoptLong ];
10809     meta = {
10810       description = "Getopt::Long, but simpler and more powerful";
10811       homepage = "https://github.com/rjbs/Getopt-Long-Descriptive";
10812       license = with lib.licenses; [ artistic1 gpl1Plus ];
10813     };
10814   };
10816   GetoptTabular = buildPerlPackage {
10817     pname = "Getopt-Tabular";
10818     version = "0.3";
10819     src = fetchurl {
10820       url = "mirror://cpan/authors/id/G/GW/GWARD/Getopt-Tabular-0.3.tar.gz";
10821       hash = "sha256-m98GdjO1kTEngg9OgDXtxT0INy+qzla6a/oAyWiiU3c=";
10822     };
10823     meta = {
10824       description = "Table-driven argument parsing for Perl 5";
10825       license = with lib.licenses; [ artistic1 gpl1Plus ];
10826     };
10827   };
10829   Git = buildPerlPackage {
10830     pname = "Git";
10831     version = "0.42";
10832     src = fetchurl {
10833       url = "mirror://cpan/authors/id/M/MS/MSOUTH/Git-0.42.tar.gz";
10834       hash = "sha256-lGmp85jzor8rBQBWbuQdP/b65GBBKhNxhXZ6HMR4Om0=";
10835     };
10836     propagatedBuildInputs = [ Error ];
10837     meta = {
10838       description = "This is the Git.pm, plus the other files in the perl/Git directory, from github's git/git";
10839       license = with lib.licenses; [ gpl2Plus ];
10840       maintainers = teams.deshaw.members;
10841     };
10842   };
10844   GitAutofixup = buildPerlPackage {
10845     pname = "App-Git-Autofixup";
10846     version = "0.004001";
10847     src = fetchurl {
10848       url = "mirror://cpan/authors/id/T/TO/TORBIAK/App-Git-Autofixup-0.004001.tar.gz";
10849       hash = "sha256-WroBPI3hOZD1iRoOKjnJcHTQcnvjZTIMLGrxnTbF3aw=";
10850     };
10851     nativeBuildInputs = lib.optional stdenv.hostPlatform.isDarwin shortenPerlShebang;
10852     postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
10853       shortenPerlShebang $out/bin/git-autofixup
10854     '';
10855     meta = {
10856       description = "Create fixup commits for topic branches";
10857       license = with lib.licenses; [ artistic2 ];
10858       maintainers = [ maintainers.DamienCassou ];
10859       mainProgram = "git-autofixup";
10860     };
10861   };
10863   GitPurePerl = buildPerlPackage {
10864     pname = "Git-PurePerl";
10865     version = "0.53";
10866     src = fetchurl {
10867       url = "mirror://cpan/authors/id/B/BR/BROQ/Git-PurePerl-0.53.tar.gz";
10868       hash = "sha256-mHx0NmzEw37ghAUPmF+iVDWcicElB/W4v8ZgfeU41ag=";
10869     };
10870     buildInputs = [ Testutf8 ];
10871     propagatedBuildInputs = [ ArchiveExtract ConfigGitLike DataStreamBulk DateTime FileFindRule IODigest MooseXStrictConstructor MooseXTypesPathClass ];
10872     doCheck = false;
10873     meta = {
10874       description = "Pure Perl interface to Git repositories";
10875       license = with lib.licenses; [ artistic1 gpl1Plus ];
10876     };
10877   };
10879   GitRepository = buildPerlPackage {
10880     pname = "Git-Repository";
10881     version = "1.325";
10882     src = fetchurl {
10883       url = "mirror://cpan/authors/id/B/BO/BOOK/Git-Repository-1.325.tar.gz";
10884       hash = "sha256-mypPoZT0oOtFI1XQyAhyfl6cFsFFrH0kw+qW0Kvv7UM=";
10885     };
10886     buildInputs = [ TestRequiresGit ];
10887     propagatedBuildInputs = [ GitVersionCompare SystemCommand namespaceclean ];
10888     meta = {
10889       description = "Perl interface to Git repositories";
10890       license = with lib.licenses; [ artistic1 gpl1Plus ];
10891     };
10892   };
10894   GitVersionCompare = buildPerlPackage {
10895     pname = "Git-Version-Compare";
10896     version = "1.005";
10897     src = fetchurl {
10898       url = "mirror://cpan/authors/id/B/BO/BOOK/Git-Version-Compare-1.005.tar.gz";
10899       hash = "sha256-NX/e2eVflesvUWoY9dwbRyCp3u+eLA52vNX+SuubPLs=";
10900     };
10901     buildInputs = [ TestNoWarnings ];
10902     meta = {
10903       description = "Functions to compare Git versions";
10904       license = with lib.licenses; [ artistic1 gpl1Plus ];
10905     };
10906   };
10908   Glib = buildPerlPackage {
10909     pname = "Glib";
10910     version = "1.3294";
10911     src = fetchurl {
10912       url = "mirror://cpan/authors/id/X/XA/XAOC/Glib-1.3294.tar.gz";
10913       hash = "sha256-1xX1qGvMGHB13oXnrlvAewcU1u3BlqktpDmG76ROXLs=";
10914     };
10915     buildInputs = [ pkgs.glib ];
10916     propagatedBuildInputs = [ ExtUtilsDepends ExtUtilsPkgConfig ];
10917     meta = {
10918       description = "Perl wrappers for the GLib utility and Object libraries";
10919       homepage = "https://gtk2-perl.sourceforge.net";
10920       license = with lib.licenses; [ lgpl21Only ];
10921     };
10922   };
10924   GlibObjectIntrospection = buildPerlPackage {
10925     pname = "Glib-Object-Introspection";
10926     version = "0.051";
10927     src = fetchurl {
10928       url = "mirror://cpan/authors/id/X/XA/XAOC/Glib-Object-Introspection-0.051.tar.gz";
10929       hash = "sha256-ZWlhHcyArBSCx8IiZLGujJw1HUmDUR65psX0ehAVAIk=";
10930     };
10931     nativeCheckInputs = [ pkgs.cairo CairoGObject ];
10932     propagatedBuildInputs = [ pkgs.gobject-introspection Glib ];
10933     preCheck = ''
10934       # Our gobject-introspection patches make the shared library paths absolute
10935       # in the GIR files. When running tests, the library is not yet installed,
10936       # though, so we need to replace the absolute path with a local one during build.
10937       # We are using a symlink that we will delete after the execution of the tests.
10938       mkdir -p $out/lib
10939       ln -s $PWD/build/*.so $out/lib/
10940     '';
10941     postCheck = ''
10942       rm -r $out/lib
10943     '';
10944     doCheck = !stdenv.hostPlatform.isDarwin;
10945     meta = {
10946       description = "Dynamically create Perl language bindings";
10947       homepage = "https://gtk2-perl.sourceforge.net";
10948       license = with lib.licenses; [ lgpl21Only ];
10949     };
10950   };
10952   GnuPG = buildPerlPackage {
10953     pname = "GnuPG";
10954     version = "0.19";
10955     src = fetchurl {
10956       url = "mirror://cpan/authors/id/Y/YA/YANICK/GnuPG-0.19.tar.gz";
10957       hash = "sha256-r1Py0/Yyl+BGZ26uFKdilq/dKRDglyO2sRNwhiK3mJs=";
10958     };
10959     buildInputs = [ pkgs.gnupg1orig ];
10960     doCheck = false;
10961     meta = {
10962       description = "Perl interface to the GNU Privacy Guard";
10963       license = with lib.licenses; [ gpl2Plus ];
10964       mainProgram = "gpgmailtunl";
10965     };
10966   };
10968   GnuPGInterface = buildPerlPackage {
10969     pname = "GnuPG-Interface";
10970     version = "1.03";
10971     src = fetchurl {
10972       url = "mirror://cpan/authors/id/B/BP/BPS/GnuPG-Interface-1.03.tar.gz";
10973       hash = "sha256-WvVmMPD6wpDXJCGD9kSaoOAoKfRhHcYrxunps4CPGHo=";
10974     };
10975     buildInputs = [ pkgs.which pkgs.gnupg1compat ];
10976     propagatedBuildInputs = [ MooXHandlesVia MooXlate ];
10977     doCheck = false;
10978     meta = {
10979       description = "Supply object methods for interacting with GnuPG";
10980       license = with lib.licenses; [ artistic1 gpl1Plus ];
10981     };
10982   };
10984   GoferTransporthttp = buildPerlPackage {
10985     pname = "GoferTransport-http";
10986     version = "1.017";
10987     src = fetchurl {
10988       url = "mirror://cpan/authors/id/T/TI/TIMB/GoferTransport-http-1.017.tar.gz";
10989       hash = "sha256-9z7/4+p6+hkHzol3yHOHq7DUQE+FpySuJjeymnMVSps=";
10990     };
10991     propagatedBuildInputs = [ DBI LWP mod_perl2 ];
10992     doCheck = false; # no make target 'test'
10993     meta = {
10994       description = "HTTP transport for DBI stateless proxy driver DBD::Gofer";
10995       license = with lib.licenses; [ artistic1 gpl1Plus ];
10996     };
10997   };
10999   GooCanvas = buildPerlPackage {
11000     pname = "Goo-Canvas";
11001     version = "0.06";
11002     src = fetchurl {
11003       url = "mirror://cpan/authors/id/Y/YE/YEWENBIN/Goo-Canvas-0.06.tar.gz";
11004       hash = "sha256-DFiMUH7tXmLRLtHMHkkcb/Oh9ZxPs9Q14UIUs3qzklE=";
11005     };
11006     propagatedBuildInputs = [ pkgs.goocanvas pkgs.gtk2 Gtk2 ];
11007     meta = {
11008       description = "Perl interface to the GooCanvas";
11009       license = with lib.licenses; [ artistic1 gpl1Plus ];
11010     };
11011   };
11013   GooCanvas2 = buildPerlPackage {
11014     pname = "GooCanvas2";
11015     version = "0.06";
11016     src = fetchurl {
11017       url = "mirror://cpan/authors/id/P/PE/PERLMAX/GooCanvas2-0.06.tar.gz";
11018       hash = "sha256-4kyHhz4ZBj3U1eLHCcqs+MCuiIEEQ5W7hl3CtP3WO1A=";
11019     };
11020     buildInputs = [ pkgs.gtk3 ];
11021     propagatedBuildInputs = [ pkgs.goocanvas2 Gtk3 ];
11022     meta = {
11023       description = "Perl binding for GooCanvas2 widget using Glib::Object::Introspection";
11024       license = with lib.licenses; [ artistic1 gpl1Plus ];
11025     };
11026   };
11028   GooCanvas2CairoTypes = buildPerlPackage rec {
11029     pname = "GooCanvas2-CairoTypes";
11030     version = "0.001";
11031     src = fetchurl {
11032       url = "mirror://cpan/authors/id/A/AS/ASOKOLOV/GooCanvas2-CairoTypes-${version}.tar.gz";
11033       hash = "sha256-uoBnNuvMnePYFBp2Omgr3quxy4cCveKZrf1XSs6HUFI=";
11034     };
11035     propagatedBuildInputs = [ pkgs.goocanvas2 Gtk3 ];
11036     meta = {
11037       description = "Bridge between GooCanvas2 and Cairo types";
11038       license = with lib.licenses; [ artistic1 gpl1Plus ];
11039     };
11040   };
11042   GoogleProtocolBuffers = buildPerlPackage {
11043     pname = "Google-ProtocolBuffers";
11044     version = "0.12";
11045     src = fetchurl {
11046       url = "mirror://cpan/authors/id/S/SA/SAXJAZMAN/protobuf/Google-ProtocolBuffers-0.12.tar.gz";
11047       hash = "sha256-s4RJxguaJxLd5IFIXMerA7KgrBw/1ICzhT5BEawpTXE=";
11048     };
11049     propagatedBuildInputs = [ ClassAccessor ParseRecDescent ];
11050     patches =
11051       [ ../development/perl-modules/Google-ProtocolBuffers-multiline-comments.patch ];
11052     meta = {
11053       description = "Simple interface to Google Protocol Buffers";
11054       homepage = "https://github.com/csirtgadgets/google-protocolbuffers-perl";
11055       license = with lib.licenses; [ artistic1 gpl1Plus ];
11056       mainProgram = "protoc-perl";
11057     };
11058   };
11060   gotofile = buildPerlPackage {
11061     pname = "goto-file";
11062     version = "0.005";
11063     src = fetchurl {
11064       url = "mirror://cpan/authors/id/E/EX/EXODIST/goto-file-0.005.tar.gz";
11065       hash = "sha256-xs3V7kps3L2/MU2SpPmYXbzfnkJYBIyudhJcBSqjH3c=";
11066     };
11067     buildInputs = [ Test2Suite ];
11068     meta = {
11069       description = "Stop parsing the current file and move on to a different one";
11070       license = with lib.licenses; [ artistic1 gpl1Plus ];
11071     };
11072   };
11074   Graph = buildPerlPackage {
11075     pname = "Graph";
11076     version = "0.9727";
11077     src = fetchurl {
11078       url = "mirror://cpan/authors/id/E/ET/ETJ/Graph-0.9727.tar.gz";
11079       hash = "sha256-OSqJFtyVExq+jJE9/Kx2mEhL9IZrQq9fcEPABi50Iik=";
11080     };
11081     propagatedBuildInputs = [ HeapFibonacci SetObject ];
11082     meta = {
11083       description = "GRaph data structures and algorithms";
11084       license = with lib.licenses; [ artistic1 gpl1Plus ];
11085     };
11086   };
11088   GraphicsColor = buildPerlPackage {
11089     pname = "Graphics-Color";
11090     version = "0.31";
11091     src = fetchurl {
11092       url = "mirror://cpan/authors/id/G/GP/GPHAT/Graphics-Color-0.31.tar.gz";
11093       hash = "sha256-+qj+1bLYDlFgr5duXbIkLAs1VVQs4QQldf9raUWHoz0=";
11094     };
11095     buildInputs = [ TestNumberDelta ModulePluggable ];
11096     propagatedBuildInputs = [ ColorLibrary Moose MooseXAliases MooseXClone MooseXStorage MooseXTypes ];
11097     meta = {
11098       description = "Device and library agnostic color spaces";
11099       homepage = "https://github.com/gphat/graphics-color";
11100       license = with lib.licenses; [ artistic1 gpl1Plus ];
11101     };
11102   };
11104   GraphicsTIFF = buildPerlPackage {
11105     pname = "Graphics-TIFF";
11106     version = "20";
11107     src = fetchurl {
11108       url = "mirror://cpan/authors/id/R/RA/RATCLIFFE/Graphics-TIFF-20.tar.gz";
11109       hash = "sha256-PlXMIJRl4GQBmiFaUvBf9RBAKX0CA5P+n7PeJ60CDjU=";
11110     };
11111     buildInputs = [ pkgs.libtiff ExtUtilsDepends ExtUtilsPkgConfig ];
11112     propagatedBuildInputs = [ Readonly ];
11113     nativeCheckInputs = [ TestRequires TestDeep pkgs.hexdump ];
11114     meta = {
11115       description = "Perl extension for the libtiff library";
11116       license = with lib.licenses; [ artistic1 gpl1Plus ];
11117     };
11118   };
11120   GraphicsToolkitColor = buildPerlPackage {
11121     pname = "Graphics-Toolkit-Color";
11122     version = "1.71";
11123     src = fetchurl {
11124       url = "mirror://cpan/authors/id/L/LI/LICHTKIND/Graphics-Toolkit-Color-1.71.tar.gz";
11125       hash = "sha256-NOiLb2hY9H2ZYQHxWC8esA23+G4Snl8dYb9/m922LvI=";
11126     };
11127     buildInputs = [ TestWarn ];
11128     meta = {
11129       description = "Color palette constructor";
11130       license = with lib.licenses; [ artistic1 gpl1Plus ];
11131     };
11132   };
11134   GraphViz = buildPerlPackage {
11135     pname = "GraphViz";
11136     version = "2.26";
11137     src = fetchurl {
11138       url = "mirror://cpan/authors/id/E/ET/ETJ/GraphViz-2.26.tar.gz";
11139       hash = "sha256-ml0lILMmK/MEdSct12SkRfjn+TG++Ivg49O/9EXacyg=";
11140     };
11142     # XXX: It'd be nicer it `GraphViz.pm' could record the path to graphviz.
11143     buildInputs = [ pkgs.graphviz TestPod ];
11144     propagatedBuildInputs = [ FileWhich IPCRun ParseRecDescent XMLTwig XMLXPath ];
11146     meta = {
11147       description = "Perl interface to the GraphViz graphing tool";
11148       license = with lib.licenses; [ artistic2 ];
11149     };
11150   };
11152   GraphViz2 = buildPerlPackage {
11153     pname = "GraphViz2";
11154     version = "2.67";
11155     src = fetchurl {
11156       url = "mirror://cpan/authors/id/E/ET/ETJ/GraphViz2-2.67.tar.gz";
11157       hash = "sha256-h8hcbt/86k+W5rSAD2+VEq6rGeuNOzSDAachMxvLhYA=";
11158     };
11160     # XXX: It'd be nicer if `GraphViz.pm' could record the path to graphviz.
11161     buildInputs = [ pkgs.graphviz TestPod Moo IPCRun3 TypeTiny TestSnapshot Graph ];
11162     propagatedBuildInputs = [ FileWhich IPCRun ParseRecDescent XMLTwig XMLXPath DataSectionSimple ];
11164     # needed for fontconfig tests
11165     HOME = "/build";
11166     FONTCONFIG_PATH = "${lib.getOutput "out" pkgs.fontconfig}/etc/fonts";
11168     meta = {
11169       description = "Perl interface to the GraphViz graphing tool";
11170       license = with lib.licenses; [ artistic2 ];
11171     };
11172   };
11174   grepmail = buildPerlPackage {
11175     pname = "grepmail";
11176     version = "5.3111";
11177     src = fetchurl {
11178       url = "mirror://cpan/authors/id/D/DC/DCOPPIT/grepmail-5.3111.tar.gz";
11179       hash = "sha256-0JhOP3ob4XrgFFdfcMFngVGlvMliIYXcWgUstjJxp2E=";
11180     };
11181     buildInputs = [ FileHomeDir FileSlurper TestCompile UNIVERSALrequire URI ];
11182     propagatedBuildInputs = [ MailMboxMessageParser TimeDate ];
11183     outputs = [ "out" ];
11184     meta = {
11185       description = "Search mailboxes for mail matching a regular expression";
11186       homepage = "https://github.com/coppit/grepmail";
11187       license = with lib.licenses; [ gpl2Only ];
11188       maintainers = with maintainers; [ romildo ];
11189     };
11190   };
11192   GrowlGNTP = buildPerlModule {
11193     pname = "Growl-GNTP";
11194     version = "0.21";
11195     src = fetchurl {
11196       url = "mirror://cpan/authors/id/M/MA/MATTN/Growl-GNTP-0.21.tar.gz";
11197       hash = "sha256-KHl/jkJ0BnIFhMr9EOeAp47CtWnFVaGHQ9dFU9X1CD8=";
11198     };
11199     buildInputs = [ ModuleBuildTiny ];
11200     propagatedBuildInputs = [ CryptCBC DataUUID ];
11201     meta = {
11202       description = "Perl implementation of GNTP Protocol (Client Part)";
11203       license = with lib.licenses; [ artistic1 gpl1Plus ];
11204     };
11205   };
11207   GSSAPI = buildPerlPackage {
11208     pname = "GSSAPI";
11209     version = "0.28";
11210     src = fetchurl {
11211       url = "mirror://cpan/authors/id/A/AG/AGROLMS/GSSAPI-0.28.tar.gz";
11212       hash = "sha256-fY8se2F2L7TsctLsKBKQ8vh/nH0pgnPaRSVDKmXncNY=";
11213     };
11214     propagatedBuildInputs = [ pkgs.krb5.dev ];
11215     makeMakerFlags = [ "--gssapiimpl" "${pkgs.krb5.dev}" ];
11216     meta = {
11217       description = "Perl extension providing access to the GSSAPIv2 library";
11218       license = with lib.licenses; [ artistic1 gpl1Plus ];
11219       maintainers = teams.deshaw.members;
11220     };
11221   };
11223   Gtk2 = buildPerlPackage {
11224     pname = "Gtk2";
11225     version = "1.24993";
11226     src = fetchurl {
11227       url = "mirror://cpan/authors/id/X/XA/XAOC/Gtk2-1.24993.tar.gz";
11228       hash = "sha256-ScRDdDsu7+EadoACck9/akxI78lP8806VZ+357aTyWc=";
11229     };
11230     patches = [
11231       # Fix incompatible function pointer conversion (assigning `GdkNativeWindow` to `guint32`).
11232       ../development/perl-modules/Gtk2-fix-incompatible-pointer-conversion.patch
11233     ];
11234     buildInputs = [ pkgs.gtk2 ];
11235     # https://rt.cpan.org/Public/Bug/Display.html?id=130742
11236     # doCheck = !stdenv.hostPlatform.isDarwin;
11237     doCheck = false;
11238     propagatedBuildInputs = [ Pango ];
11239     meta = {
11240       description = "Perl interface to the 2.x series of the Gimp Toolkit library";
11241       homepage = "https://gtk2-perl.sourceforge.net";
11242       license = with lib.licenses; [ lgpl21Plus ];
11243     };
11244   };
11246   Gtk2TrayIcon = buildPerlPackage {
11247     pname = "Gtk2-TrayIcon";
11248     version = "0.07";
11249     src = fetchurl {
11250       url = "mirror://cpan/authors/id/X/XA/XAOC/Gtk2-TrayIcon-0.07.tar.gz";
11251       hash = "sha256-OfwrmabmE9qeqXfYy1MD+l4H5poVJIk03hIXqXuWRVQ=";
11252     };
11253     propagatedBuildInputs = [ pkgs.gtk2 Gtk2 ];
11254     meta = {
11255       description = "(DEPRECATED) Perl interface to the EggTrayIcon library";
11256       license = with lib.licenses; [ gpl2Plus ];
11257       broken = stdenv.hostPlatform.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.Gtk2TrayIcon.x86_64-darwin
11258     };
11259   };
11261   Gtk2AppIndicator = buildPerlPackage {
11262     pname = "Gtk2-AppIndicator";
11263     version = "0.15";
11264     src = fetchurl {
11265       url = "mirror://cpan/authors/id/O/OE/OESTERHOL/Gtk2-AppIndicator-0.15.tar.gz";
11266       hash = "sha256-olywceIU+4m0RQqkYFAx6uibeWHhSbDW6PSRwZwUqQo=";
11267     };
11268     propagatedBuildInputs = [ pkgs.libappindicator-gtk2 pkgs.libdbusmenu-gtk2 pkgs.gtk2 pkgs.pkg-config Gtk2 ];
11269     # Tests fail due to no display:
11270     #   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.
11271     doCheck = false;
11272     meta = {
11273       description = "Perl extension for libappindicator";
11274       license = with lib.licenses; [ artistic1 ];
11275     };
11276   };
11278   Gtk2ImageView = buildPerlPackage {
11279     pname = "Gtk2-ImageView";
11280     version = "0.05";
11281     src = fetchurl {
11282       url = "mirror://cpan/authors/id/R/RA/RATCLIFFE/Gtk2-ImageView-0.05.tar.gz";
11283       hash = "sha256-CHGGw2k6zxlkUc9ZzIt/XPmnsFq+INMty8uggilT+4A=";
11284     };
11285     buildInputs = [ pkgs.gtkimageview pkgs.gtk2 ];
11286     propagatedBuildInputs = [ Gtk2 ];
11287     # Tests fail due to no display server:
11288     #   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.
11289     #   t/animview.t ...........
11290     doCheck = false;
11291     meta = {
11292       description = "Perl bindings for the GtkImageView widget";
11293       license = with lib.licenses; [ lgpl3Plus ];
11294     };
11295   };
11297   Gtk2Unique = buildPerlPackage {
11298     pname = "Gtk2-Unique";
11299     version = "0.07";
11300     src = fetchurl {
11301       url = "mirror://cpan/authors/id/X/XA/XAOC/Gtk2-Unique-0.07.tar.gz";
11302       hash = "sha256-nOX2ikFgC8z31u/eMMBwqxFOk57XqKx8O3rZE5mJGGc=";
11303     };
11304     propagatedBuildInputs = [ pkgs.libunique pkgs.gtk2 Gtk2 ];
11305     meta = {
11306       description = "(DEPRECATED) Use single instance applications";
11307       license = with lib.licenses; [ artistic1 gpl1Plus ];
11308       broken = stdenv.hostPlatform.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.Gtk2Unique.x86_64-darwin
11309     };
11310   };
11312   Gtk3 = buildPerlPackage rec {
11313     pname = "Gtk3";
11314     version = "0.038";
11315     src = fetchurl {
11316       url = "mirror://cpan/authors/id/X/XA/XAOC/Gtk3-${version}.tar.gz";
11317       hash = "sha256-cNxL8qp0mBx54V/SmNmY4FqS66SBHxrVyfH03jdzesw=";
11318     };
11319     propagatedBuildInputs = [ pkgs.gtk3 CairoGObject GlibObjectIntrospection ];
11320     preCheck = lib.optionalString stdenv.hostPlatform.isDarwin ''
11321       # Currently failing on macOS
11322       rm t/overrides.t
11323       rm t/signals.t
11324       rm t/zz-GdkEvent.t
11325       rm t/zz-GtkContainer.t
11326       rm t/zz-GtkDialog.t
11327     '';
11328     meta = {
11329       description = "Perl interface to the 3.x series of the gtk+ toolkit";
11330       license = with lib.licenses; [ lgpl21Plus ];
11331     };
11332   };
11334   Gtk3ImageView = buildPerlPackage rec {
11335     pname = "Gtk3-ImageView";
11336     version = "10";
11337     src = fetchurl {
11338       url = "mirror://cpan/authors/id/A/AS/ASOKOLOV/Gtk3-ImageView-${version}.tar.gz";
11339       hash = "sha256-vHfnBgaeZPK7hBgZcP1KjepG+IvsDE3XwrH9U4xoN+Y=";
11340     };
11341     buildInputs = [ pkgs.gtk3 ];
11342     propagatedBuildInputs = [ Readonly Gtk3 ];
11343     nativeCheckInputs = [ TestDifferences TestDeep ImageMagick TryTiny TestMockObject CarpAlways pkgs.librsvg ];
11344     checkPhase = ''
11345       ${pkgs.xvfb-run}/bin/xvfb-run -s '-screen 0 800x600x24' \
11346         make test
11347     '';
11348     meta = {
11349       description = "Image viewer widget for Gtk3";
11350       homepage = "https://github.com/carygravel/gtk3-imageview";
11351       license = with lib.licenses; [ artistic1 gpl1Plus ];
11352     };
11353   };
11355   Gtk3SimpleList = buildPerlPackage {
11356     pname = "Gtk3-SimpleList";
11357     version = "0.21";
11358     src = fetchurl {
11359       url = "mirror://cpan/authors/id/T/TV/TVIGNAUD/Gtk3-SimpleList-0.21.tar.gz";
11360       hash = "sha256-HURlEAvzvAR0opRppAb9AzVituNzYYgSEAA3KrKtqIQ=";
11361     };
11362     propagatedBuildInputs = [ Gtk3 ];
11363     meta = {
11364       description = "Simple interface to Gtk3's complex MVC list widget";
11365       homepage = "https://github.com/soig/Gtk3-SimpleList";
11366       license = with lib.licenses; [ lgpl21Plus ];
11367     };
11368   };
11370   Guard = buildPerlPackage {
11371     pname = "Guard";
11372     version = "1.023";
11373     src = fetchurl {
11374       url = "mirror://cpan/authors/id/M/ML/MLEHMANN/Guard-1.023.tar.gz";
11375       hash = "sha256-NMTd+R/JPRCQ2G2hTfcG0XWxYQxnNywB4SzpVV1N0dw=";
11376     };
11377     meta = {
11378       description = "Safe cleanup blocks";
11379       license = with lib.licenses; [ artistic1 gpl1Plus ];
11380     };
11381   };
11383   HamAPRSFAP = buildPerlPackage {
11384     pname = "Ham-APRS-FAP";
11385     version = "1.21";
11386     src = fetchurl {
11387       url = "mirror://cpan/authors/id/H/HE/HESSU/Ham-APRS-FAP-1.21.tar.gz";
11388       hash = "sha256-4BtFXUb0RxDbzyG2+oQ/CTWM5g7uHEFBvHTgogTToCA=";
11389     };
11390     propagatedBuildInputs = [ DateCalc ];
11391     meta = {
11392       description = "Finnish APRS Parser (Fabulous APRS Parser)";
11393       maintainers = [ ];
11394       license = with lib.licenses; [ artistic1 gpl1Plus ];
11395     };
11396   };
11398   Hailo = buildPerlPackage {
11399     pname = "Hailo";
11400     version = "0.75";
11401     src = fetchurl {
11402       url = "mirror://cpan/authors/id/A/AV/AVAR/Hailo-0.75.tar.gz";
11403       hash = "sha256-u6mcsM+j7oYy3YmQbG5voF/muzZ/IoLoiQnO/Y+RdMI=";
11404     };
11405     buildInputs = [ BotTrainingMegaHAL BotTrainingStarCraft DataSection FileSlurp PodSection TestException TestExpect TestOutput TestScript TestScriptRun ];
11406     propagatedBuildInputs = [ ClassLoad DBDSQLite DataDump DirSelf FileCountLines GetoptLongDescriptive IOInteractive IPCSystemSimple ListMoreUtils Moose MooseXGetopt MooseXStrictConstructor MooseXTypes RegexpCommon TermSk namespaceclean ];
11407     nativeBuildInputs = lib.optional stdenv.hostPlatform.isDarwin shortenPerlShebang;
11408     patches = [
11409       ../development/perl-modules/Hailo-fix-test-gld.patch
11410     ];
11411     postPatch = ''
11412       patchShebangs bin
11413     '';
11414     postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
11415       shortenPerlShebang $out/bin/hailo
11416     '';
11417     meta = {
11418       description = "Pluggable Markov engine analogous to MegaHAL";
11419       homepage = "https://hailo.org";
11420       license = with lib.licenses; [ artistic1 gpl1Plus ];
11421       mainProgram = "hailo";
11422     };
11423   };
11425   HashDiff = buildPerlPackage {
11426     pname = "Hash-Diff";
11427     version = "0.010";
11428     src = fetchurl {
11429       url = "mirror://cpan/authors/id/B/BO/BOLAV/Hash-Diff-0.010.tar.gz";
11430       hash = "sha256-vJpKo47JjwqYKJ41q/mhfC8qMjmiIJoymADglwqi4MU=";
11431     };
11432     propagatedBuildInputs = [ HashMerge ];
11433     buildInputs = [ TestSimple13 ];
11435     meta = {
11436       description = "Return difference between two hashes as a hash";
11437       homepage = "https://github.com/bolav/hash-diff";
11438       license = with lib.licenses; [ artistic1 gpl1Plus ];
11439     };
11440   };
11442   ham = callPackage ../development/perl-modules/ham { };
11444   HashFlatten = buildPerlPackage {
11445     pname = "Hash-Flatten";
11446     version = "1.19";
11447     src = fetchurl {
11448       url = "mirror://cpan/authors/id/B/BB/BBC/Hash-Flatten-1.19.tar.gz";
11449       hash = "sha256-cMbEnYtsRgdGQXpQmO3SoP0x/YuGxUv4SS6FPB9OS5g=";
11450     };
11451     buildInputs = [ TestAssertions ];
11452     propagatedBuildInputs = [ LogTrace ];
11453     meta = {
11454       description = "Flatten/unflatten complex data hashes";
11455       license = with lib.licenses; [ gpl2Only ];
11456     };
11457   };
11459   HashMerge = buildPerlPackage {
11460     pname = "Hash-Merge";
11461     version = "0.302";
11462     src = fetchurl {
11463       url = "mirror://cpan/authors/id/H/HE/HERMES/Hash-Merge-0.302.tar.gz";
11464       hash = "sha256-rgUi92U5YIth3eFGcOeWd+DzkQNoMvcKIfMa3eJThkQ=";
11465     };
11466     propagatedBuildInputs = [ CloneChoose ];
11467     buildInputs = [ Clone ClonePP ];
11468     meta = {
11469       description = "Merges arbitrarily deep hashes into a single hash";
11470       homepage = "https://metacpan.org/release/Hash-Merge";
11471       license = with lib.licenses; [ artistic1 gpl1Plus ];
11472     };
11473   };
11475   HashMergeSimple = buildPerlPackage {
11476     pname = "Hash-Merge-Simple";
11477     version = "0.051";
11478     src = fetchurl {
11479       url = "mirror://cpan/authors/id/R/RO/ROKR/Hash-Merge-Simple-0.051.tar.gz";
11480       hash = "sha256-HFYyeHPS8E1XInd/BEhj2WiRBGaZd0DVWnVAccYoe3M=";
11481     };
11482     buildInputs = [ TestDeep TestDifferences TestException TestMost TestWarn ];
11483     propagatedBuildInputs = [ Clone ];
11484     meta = {
11485       description = "Recursively merge two or more hashes, simply";
11486       license = with lib.licenses; [ artistic1 gpl1Plus ];
11487     };
11488   };
11490   HashMoreUtils = buildPerlPackage {
11491     pname = "Hash-MoreUtils";
11492     version = "0.06";
11493     src = fetchurl {
11494       url = "mirror://cpan/authors/id/R/RE/REHSACK/Hash-MoreUtils-0.06.tar.gz";
11495       hash = "sha256-25qPuGfVB1PDgIiaXlQHVlG14IybO3IctyIMCINUfeg=";
11496     };
11497     meta = {
11498       description = "Provide the stuff missing in Hash::Util";
11499       homepage = "https://metacpan.org/release/Hash-MoreUtils";
11500       license = with lib.licenses; [ artistic1 gpl1Plus ];
11501     };
11502   };
11504   HashMultiValue = buildPerlPackage {
11505     pname = "Hash-MultiValue";
11506     version = "0.16";
11507     src = fetchurl {
11508       url = "mirror://cpan/authors/id/A/AR/ARISTOTLE/Hash-MultiValue-0.16.tar.gz";
11509       hash = "sha256-Zhgd96po4nhvr2iVyIsYuVyACo5Ob7TAf9F2QQo8c/Q=";
11510     };
11511     meta = {
11512       description = "Store multiple values per key";
11513       homepage = "https://github.com/miyagawa/Hash-MultiValue";
11514       license = with lib.licenses; [ artistic1 gpl1Plus ];
11515     };
11516   };
11518   HashOrdered = buildPerlPackage {
11519     pname = "Hash-Ordered";
11520     version = "0.014";
11521     src = fetchurl {
11522       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Hash-Ordered-0.014.tar.gz";
11523       hash = "sha256-jcNs15FVrjerij3l/ZEg/7qaMeQJJYwoUp7FJRxZdHs=";
11524     };
11525     buildInputs = [ TestDeep TestFailWarnings TestFatal ];
11526     meta = {
11527       homepage = "https://github.com/dagolden/Hash-Ordered";
11528       description = "Fast, pure-Perl ordered hash class";
11529       license = lib.licenses.asl20;
11530     };
11531   };
11533   HashSafeKeys = buildPerlPackage {
11534     pname = "Hash-SafeKeys";
11535     version = "0.04";
11536     src = fetchurl {
11537       url = "mirror://cpan/authors/id/M/MO/MOB/Hash-SafeKeys-0.04.tar.gz";
11538       hash = "sha256-pSStO/naZ3wfi+bhWXG3ZXVAj3RJI9onZHro8dPDfMw=";
11539     };
11540     meta = {
11541       description = "Get hash contents without resetting each iterator";
11542       license = with lib.licenses; [ artistic1 gpl1Plus ];
11543     };
11544   };
11546   HashSharedMem = buildPerlModule {
11547     pname = "Hash-SharedMem";
11548     version = "0.005";
11549     src = fetchurl {
11550       url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Hash-SharedMem-0.005.tar.gz";
11551       hash = "sha256-Mkd2gIYC973EStqpN4lTZUVAKakm+mEfMhyb9rlAu14=";
11552     };
11553     env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.hostPlatform.isAarch64 "-mno-outline-atomics";
11554     buildInputs = [ ScalarString ];
11555     meta = {
11556       description = "Efficient shared mutable hash";
11557       license = with lib.licenses; [ artistic1 gpl1Plus ];
11558       broken = stdenv.hostPlatform.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.HashSharedMem.x86_64-darwin
11559     };
11560   };
11562   HashStoredIterator = buildPerlModule {
11563     pname = "Hash-StoredIterator";
11564     version = "0.008";
11565     src = fetchurl {
11566       url = "mirror://cpan/authors/id/M/MS/MSCHWERN/Hash-StoredIterator-0.008.tar.gz";
11567       hash = "sha256-ucvE3NgjPo0dfxSB3beaSl+dtxgMs+8CtLy+4F5l6gw=";
11568     };
11569     buildInputs = [ Test2Suite ];
11570     perlPreHook = lib.optionalString stdenv.hostPlatform.isDarwin "export LD=$CC";
11571     meta = {
11572       description = "Functions for accessing a hashes internal iterator";
11573       license = with lib.licenses; [ artistic1 gpl1Plus ];
11574     };
11575   };
11577   HashUtilFieldHashCompat = buildPerlPackage {
11578     pname = "Hash-Util-FieldHash-Compat";
11579     version = "0.11";
11580     src = fetchurl {
11581       url = "mirror://cpan/authors/id/E/ET/ETHER/Hash-Util-FieldHash-Compat-0.11.tar.gz";
11582       hash = "sha256-ZC5Gp1tTe6EUILMPiwNAPJCgahVFjNgAnzOf6eXzdBs=";
11583     };
11584     meta = {
11585       description = "Use Hash::Util::FieldHash or ties, depending on availability";
11586       license = with lib.licenses; [ artistic1 gpl1Plus ];
11587     };
11588   };
11590   HeapFibonacci = buildPerlPackage {
11591     pname = "Heap";
11592     version = "0.80";
11593     src = fetchurl {
11594       url = "mirror://cpan/authors/id/J/JM/JMM/Heap-0.80.tar.gz";
11595       hash = "sha256-zNop88kxdq0P3/9N1vXkrJCzcMuksCg4a3NDv2QTm94=";
11596     };
11597     meta = {
11598       description = "Perl extensions for keeping data partially sorted";
11599       license = with lib.licenses; [ artistic1 gpl1Plus ];
11600     };
11601   };
11603   HookLexWrap = buildPerlPackage {
11604     pname = "Hook-LexWrap";
11605     version = "0.26";
11606     src = fetchurl {
11607       url = "mirror://cpan/authors/id/E/ET/ETHER/Hook-LexWrap-0.26.tar.gz";
11608       hash = "sha256-tgvcX5j5T5KUsGre+CsdmW2hktXxg/n0NLYQ/RE37C0=";
11609     };
11610     buildInputs = [ pkgs.unzip ];
11611     meta = {
11612       description = "Lexically scoped subroutine wrappers";
11613       homepage = "https://github.com/karenetheridge/Hook-LexWrap";
11614       license = with lib.licenses; [ artistic1 gpl1Plus ];
11615     };
11616   };
11618   HTMLClean = buildPerlPackage {
11619     pname = "HTML-Clean";
11620     version = "1.4";
11621     src = fetchurl {
11622       url = "mirror://cpan/authors/id/A/AZ/AZJADFTRE/HTML-Clean-1.4.tar.gz";
11623       hash = "sha256-pn1KvadR/DxrSjUYU3eoi8pbZRxgszN5gEtOkKF4hwY=";
11624     };
11625     meta = {
11626       description = "Cleans up HTML code for web browsers, not humans";
11627       license = with lib.licenses; [ artistic1 gpl1Plus ];
11628       mainProgram = "htmlclean";
11629     };
11630   };
11632   HTMLElementExtended = buildPerlPackage {
11633     pname = "HTML-Element-Extended";
11634     version = "1.18";
11635     src = fetchurl {
11636       url = "mirror://cpan/authors/id/M/MS/MSISK/HTML-Element-Extended-1.18.tar.gz";
11637       hash = "sha256-8+8a8Qjyf+8V6+xmR58lHOCKpJvQCwRiycgMhrS2sys=";
11638     };
11639     propagatedBuildInputs = [ HTMLTree ];
11640     meta = {
11641       description = "Perl extension for HTML::Element(3)";
11642       license = with lib.licenses; [ artistic1 gpl1Plus ];
11643     };
11644   };
11646   HTMLEscape = buildPerlModule {
11647     pname = "HTML-Escape";
11648     version = "1.11";
11649     src = fetchurl {
11650       url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/HTML-Escape-1.11.tar.gz";
11651       hash = "sha256-Wl7viWUA0epsJKkIXs++mkOr7mjPxmwD+InSostoml0=";
11652     };
11653     buildInputs = [ ModuleBuildPluggablePPPort TestRequires ];
11654     perlPreHook = lib.optionalString stdenv.hostPlatform.isi686 "export LD=$CC"; # fix undefined reference to `__stack_chk_fail_local'
11655     meta = {
11656       description = "Extremely fast HTML escaping";
11657       homepage = "https://github.com/tokuhirom/HTML-Escape";
11658       license = with lib.licenses; [ artistic1 gpl1Plus ];
11659       broken = stdenv.hostPlatform.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.HTMLEscape.x86_64-darwin
11660     };
11661   };
11663   HTMLFromANSI = buildPerlPackage {
11664     pname = "HTML-FromANSI";
11665     version = "2.03";
11666     src = fetchurl {
11667       url = "mirror://cpan/authors/id/N/NU/NUFFIN/HTML-FromANSI-2.03.tar.gz";
11668       hash = "sha256-IXdjRe1wGywEx7CTgK+UP5mEzH+ZYkCHrqRdtfwJw1k=";
11669     };
11670     propagatedBuildInputs = [ HTMLParser TermVT102Boundless ];
11671     meta = {
11672       description = "Mark up ANSI sequences as HTML";
11673       license = with lib.licenses; [ artistic1 gpl1Plus ];
11674       mainProgram = "ansi2html";
11675     };
11676   };
11678   HTMLForm = buildPerlPackage {
11679     pname = "HTML-Form";
11680     version = "6.11";
11681     src = fetchurl {
11682       url = "mirror://cpan/authors/id/S/SI/SIMBABQUE/HTML-Form-6.11.tar.gz";
11683       hash = "sha256-Q7+qcIc5NIfS1RJhoap/b4Gpex2P73pI/PbvMrFtZFQ=";
11684     };
11685     buildInputs = [ TestWarnings ];
11686     propagatedBuildInputs = [ HTMLParser URI ];
11687     meta = {
11688       description = "Class that represents an HTML form element";
11689       homepage = "https://github.com/libwww-perl/HTML-Form";
11690       license = with lib.licenses; [ artistic1 gpl1Plus ];
11691     };
11692   };
11694   HTMLFormatter = buildPerlPackage {
11695     pname = "HTML-Formatter";
11696     version = "2.16";
11697     src = fetchurl {
11698       url = "mirror://cpan/authors/id/N/NI/NIGELM/HTML-Formatter-2.16.tar.gz";
11699       hash = "sha256-ywoN2Kpei6nKIUzkUb9N8zqgnBPpB+jTCC3a/rMBUcw=";
11700     };
11701     buildInputs = [ FileSlurper TestWarnings ];
11702     propagatedBuildInputs = [ FontAFM HTMLTree ];
11703     meta = {
11704       description = "Base class for HTML formatters";
11705       homepage = "https://metacpan.org/release/HTML-Formatter";
11706       license = with lib.licenses; [ artistic1 gpl1Plus ];
11707     };
11708   };
11710   HTMLFormatExternal = buildPerlPackage {
11711     pname = "HTML-FormatExternal";
11712     version = "26";
11713     src = fetchurl {
11714       url = "mirror://cpan/authors/id/K/KR/KRYDE/HTML-FormatExternal-26.tar.gz";
11715       hash = "sha256-PFnyM9CxBoaoWu0MmUARzsaGJtoBKN6pC1xP3BdGz8M=";
11716     };
11717     propagatedBuildInputs = [ IPCRun URI constant-defer ];
11718     meta = {
11719       description = "HTML to text formatting using external programs";
11720       homepage = "https://user42.tuxfamily.org/html-formatexternal/index.html";
11721       license = with lib.licenses; [ gpl3Plus ];
11722     };
11723   };
11725   HTMLFormatTextWithLinks = buildPerlModule {
11726     pname = "HTML-FormatText-WithLinks";
11727     version = "0.15";
11728     src = fetchurl {
11729       url = "mirror://cpan/authors/id/S/ST/STRUAN/HTML-FormatText-WithLinks-0.15.tar.gz";
11730       hash = "sha256-f8wat561j7l9Q+W90U4heRolCiBJmJGMYtahcRMYM7E=";
11731     };
11732     propagatedBuildInputs = [ HTMLFormatter ];
11733     meta = {
11734       description = "HTML to text conversion with links as footnotes";
11735       license = with lib.licenses; [ artistic1 gpl1Plus ];
11736     };
11737   };
11739   HTMLFormatTextWithLinksAndTables = buildPerlPackage {
11740     pname = "HTML-FormatText-WithLinks-AndTables";
11741     version = "0.07";
11742     src = fetchurl {
11743       url = "mirror://cpan/authors/id/D/DA/DALEEVANS/HTML-FormatText-WithLinks-AndTables-0.07.tar.gz";
11744       hash = "sha256-gJ7i8RcFcGszxUMStce+5nSDjyvqrtr4y5RecCquObY=";
11745     };
11746     propagatedBuildInputs = [ HTMLFormatTextWithLinks ];
11747     meta = {
11748       description = "Converts HTML to Text with tables intact";
11749       license = with lib.licenses; [ artistic1 gpl1Plus ];
11750     };
11751   };
11753   HTMLFormFu = buildPerlPackage {
11754     pname = "HTML-FormFu";
11755     version = "2.07";
11756     src = fetchurl {
11757       url = "mirror://cpan/authors/id/C/CF/CFRANKS/HTML-FormFu-2.07.tar.gz";
11758       hash = "sha256-Ty8Bf3qHVPu26RIGyI7RPHVqFOO+oXgYjDuXdGNm6zI=";
11759     };
11760     buildInputs = [ CGI FileShareDirInstall RegexpAssemble TestException TestMemoryCycle TestRequiresInternet ];
11761     propagatedBuildInputs = [ ConfigAny DataVisitor DateTimeFormatBuilder DateTimeFormatNatural EmailValid HTMLScrubber HTMLTokeParserSimple HashFlatten JSONMaybeXS MooseXAliases MooseXAttributeChained NumberFormat PathClass Readonly RegexpCommon TaskWeaken YAMLLibYAML ];
11762     meta = {
11763       description = "HTML Form Creation, Rendering and Validation Framework";
11764       homepage = "https://github.com/FormFu/HTML-FormFu";
11765       license = with lib.licenses; [ artistic1 gpl1Plus ];
11766     };
11767   };
11769   HTMLFormFuMultiForm = buildPerlPackage {
11770     pname = "HTML-FormFu-MultiForm";
11771     version = "1.03";
11772     src = fetchurl {
11773       url = "mirror://cpan/authors/id/N/NI/NIGELM/HTML-FormFu-MultiForm-1.03.tar.gz";
11774       hash = "sha256-NvAM12u4luTaCd0rsOXYkGZ/cMePVCUa9NJYyCFJFZ8=";
11775     };
11776     propagatedBuildInputs = [ CryptCBC CryptDES HTMLFormFu ];
11777     meta = {
11778       description = "Handle multi-page/stage forms with FormFu";
11779       homepage = "https://github.com/FormFu/HTML-FormFu-MultiForm";
11780       license = with lib.licenses; [ artistic1 gpl1Plus ];
11781     };
11782   };
11784   HTMLFormHandler = buildPerlPackage {
11785     pname = "HTML-FormHandler";
11786     version = "0.40068";
11787     src = fetchurl {
11788       url = "mirror://cpan/authors/id/G/GS/GSHANK/HTML-FormHandler-0.40068.tar.gz";
11789       hash = "sha256-63t43aMSV1LMi8wDltOXf70o2jPS1ExQQq1tNdbN6Cc=";
11790     };
11791     # a single test is failing on perl 5.20
11792     doCheck = false;
11793     buildInputs = [ FileShareDirInstall PadWalker TestDifferences TestException TestMemoryCycle TestWarn ];
11794     propagatedBuildInputs = [ CryptBlowfish CryptCBC DataClone DateTimeFormatStrptime EmailValid HTMLTree JSONMaybeXS MooseXGetopt MooseXTypesCommon MooseXTypesLoadableClass aliased ];
11795     meta = {
11796       description = "HTML forms using Moose";
11797       license = with lib.licenses; [ artistic1 gpl1Plus ];
11798     };
11799   };
11801   HTMLGumbo = buildPerlModule {
11802     pname = "HTML-Gumbo";
11803     version = "0.18";
11804     src = fetchurl {
11805       url = "mirror://cpan/authors/id/R/RU/RUZ/HTML-Gumbo-0.18.tar.gz";
11806       hash = "sha256-v1C2HCRlbMP8lYYC2AqcfQFyR6842Nv6Dp3sW3VCXV8=";
11807     };
11808     propagatedBuildInputs = [ AlienLibGumbo ];
11809     meta = {
11810       description = "HTML5 parser based on gumbo C library";
11811       license = with lib.licenses; [ artistic1 gpl1Plus ];
11812     };
11813   };
11815   HTMLMason = buildPerlPackage {
11816     pname = "HTML-Mason";
11817     version = "1.60";
11818     src = fetchurl {
11819       url = "mirror://cpan/authors/id/D/DR/DROLSKY/HTML-Mason-1.60.tar.gz";
11820       hash = "sha256-qgu9WmtjxiyJVfjFXsCF43DXktZSZrbDtcXweIu8d+Y=";
11821     };
11822     buildInputs = [ TestDeep ];
11823     propagatedBuildInputs = [ CGI CacheCache ClassContainer ExceptionClass LogAny ];
11824     meta = {
11825       description = "High-performance, dynamic web site authoring system";
11826       homepage = "https://metacpan.org/release/HTML-Mason";
11827       license = with lib.licenses; [ artistic1 gpl1Plus ];
11828     };
11829   };
11831   HTMLMasonPSGIHandler = buildPerlPackage {
11832     pname = "HTML-Mason-PSGIHandler";
11833     version = "0.53";
11834     src = fetchurl {
11835       url = "mirror://cpan/authors/id/R/RU/RUZ/HTML-Mason-PSGIHandler-0.53.tar.gz";
11836       hash = "sha256-6v18dlXfqCYd80RrkxooPTAwaHe4OsRnHEnP906n8As=";
11837     };
11838     buildInputs = [ Plack ];
11839     propagatedBuildInputs = [ CGIPSGI HTMLMason ];
11840     meta = {
11841       description = "PSGI handler for HTML::Mason";
11842       homepage = "https://search.cpan.org/dist/HTML-Mason-PSGIHandler";
11843       license = with lib.licenses; [ artistic1 gpl1Plus ];
11844     };
11845   };
11847   HTMLParser = buildPerlPackage {
11848     pname = "HTML-Parser";
11849     version = "3.81";
11850     src = fetchurl {
11851       url = "mirror://cpan/authors/id/O/OA/OALDERS/HTML-Parser-3.81.tar.gz";
11852       hash = "sha256-wJEKXI+S+IF+3QbM/SJLocLr6MEPVR8DJYeh/IPWL/I=";
11853     };
11854     propagatedBuildInputs = [ HTMLTagset HTTPMessage ];
11855     meta = {
11856       description = "HTML parser class";
11857       homepage = "https://github.com/libwww-perl/HTML-Parser";
11858       license = with lib.licenses; [ artistic1 gpl1Plus ];
11859     };
11860   };
11862   HTMLTagCloud = buildPerlModule {
11863     pname = "HTML-TagCloud";
11864     version = "0.38";
11865     src = fetchurl {
11866       url = "mirror://cpan/authors/id/R/RO/ROBERTSD/HTML-TagCloud-0.38.tar.gz";
11867       hash = "sha256-SYCZRy3vhmtEi/YvQYLfrfWUcuE/JMuGZKZxynm2cBU=";
11868     };
11869     meta = {
11870       description = "Generate An HTML Tag Cloud";
11871       license = with lib.licenses; [ artistic1 gpl1Plus ];
11872     };
11873   };
11875   HTMLQuoted = buildPerlPackage {
11876     pname = "HTML-Quoted";
11877     version = "0.04";
11878     src = fetchurl {
11879       url = "mirror://cpan/authors/id/T/TS/TSIBLEY/HTML-Quoted-0.04.tar.gz";
11880       hash = "sha256-i0HzE/3BgS8C9vbDfVjyEshP3PeCf3/UsDCQfzncZQw=";
11881     };
11882     propagatedBuildInputs = [ HTMLParser ];
11883     meta = {
11884       description = "Extract structure of quoted HTML mail message";
11885       license = with lib.licenses; [ artistic1 gpl1Plus ];
11886     };
11887   };
11889   HTMLRewriteAttributes = buildPerlPackage {
11890     pname = "HTML-RewriteAttributes";
11891     version = "0.05";
11892     src = fetchurl {
11893       url = "mirror://cpan/authors/id/T/TS/TSIBLEY/HTML-RewriteAttributes-0.05.tar.gz";
11894       hash = "sha256-GAjsfN9A0nCFdf5hVaiPEDsX/sd5c6WDHC8kwlDnpYw=";
11895     };
11896     propagatedBuildInputs = [ HTMLParser ];
11897     meta = {
11898       description = "Concise attribute rewriting";
11899       license = with lib.licenses; [ artistic1 gpl1Plus ];
11900     };
11901   };
11903   HTMLSelectorXPath = buildPerlPackage {
11904     pname = "HTML-Selector-XPath";
11905     version = "0.28";
11906     src = fetchurl {
11907       url = "mirror://cpan/authors/id/C/CO/CORION/HTML-Selector-XPath-0.28.tar.gz";
11908       hash = "sha256-QycX8D7Szz1kETDP09ShU/Ca1PhW2gB4E3kv4LLljQ8=";
11909     };
11910     buildInputs = [ TestBase ];
11911     meta = {
11912       description = "CSS Selector to XPath compiler";
11913       license = with lib.licenses; [ artistic1 gpl1Plus ];
11914     };
11915   };
11917   HTMLScrubber = buildPerlPackage {
11918     pname = "HTML-Scrubber";
11919     version = "0.19";
11920     src = fetchurl {
11921       url = "mirror://cpan/authors/id/N/NI/NIGELM/HTML-Scrubber-0.19.tar.gz";
11922       hash = "sha256-rihVePhWX5FUxj5CNHBLV7aDX3ei+C/+ckiZ1FMmK7E=";
11923     };
11924     propagatedBuildInputs = [ HTMLParser ];
11925     buildInputs = [ TestDifferences TestMemoryCycle ];
11926     meta = {
11927       description = "Perl extension for scrubbing/sanitizing HTML";
11928       license = with lib.licenses; [ artistic1 gpl1Plus ];
11929     };
11930   };
11932   HTMLStripScripts = buildPerlPackage {
11933     pname = "HTML-StripScripts";
11934     version = "1.06";
11935     src = fetchurl {
11936       url = "mirror://cpan/authors/id/D/DR/DRTECH/HTML-StripScripts-1.06.tar.gz";
11937       hash = "sha256-Iiv7fsH9+kZeMto9xKvtLtxzZLvhno48UTx9WFsBCa0=";
11938     };
11939     meta = {
11940       description = "Strip scripting constructs out of HTML";
11941       license = with lib.licenses; [ artistic1 gpl1Plus ];
11942     };
11943   };
11945   HTMLStripScriptsParser = buildPerlPackage {
11946     pname = "HTML-StripScripts-Parser";
11947     version = "1.03";
11948     src = fetchurl {
11949       url = "mirror://cpan/authors/id/D/DR/DRTECH/HTML-StripScripts-Parser-1.03.tar.gz";
11950       hash = "sha256-R4waTkbrd/p7zpa6KIFo8LmMJ/JQ4A3GMSNlCBrtNAc=";
11951     };
11952     propagatedBuildInputs = [ HTMLParser HTMLStripScripts ];
11953     meta = {
11954       description = "XSS filter using HTML::Parser";
11955       license = with lib.licenses; [ artistic1 gpl1Plus ];
11956     };
11957   };
11959   HTMLTableExtract = buildPerlPackage {
11960     pname = "HTML-TableExtract";
11961     version = "2.15";
11962     src = fetchurl {
11963       url = "mirror://cpan/authors/id/M/MS/MSISK/HTML-TableExtract-2.15.tar.gz";
11964       hash = "sha256-hsWcnVjaPKF02l5i9aD7AvTaArGx4B355dFLtl5MPs8=";
11965     };
11966     preCheck = ''
11967       # https://rt.cpan.org/Public/Bug/Display.html?id=121920
11968       rm t/30_tree.t
11969     '';
11970     propagatedBuildInputs = [ HTMLElementExtended ];
11971     meta = {
11972       description = "Perl module for extracting the content contained in tables within an HTML document, either as text or encoded element trees";
11973       license = with lib.licenses; [ artistic1 gpl1Plus ];
11974     };
11975   };
11977   HTMLTagset = buildPerlPackage {
11978     pname = "HTML-Tagset";
11979     version = "3.20";
11980     src = fetchurl {
11981       url = "mirror://cpan/authors/id/P/PE/PETDANCE/HTML-Tagset-3.20.tar.gz";
11982       hash = "sha256-rbF9rJ42zQEfUkOIHJc5QX/RAvznYPjeTpvkxxMRCOI=";
11983     };
11984     meta = {
11985       description = "Data tables useful in parsing HTML";
11986       license = with lib.licenses; [ artistic1 gpl1Plus ];
11987     };
11988   };
11990   HTMLTemplate = buildPerlPackage {
11991     pname = "HTML-Template";
11992     version = "2.97";
11993     src = fetchurl {
11994       url = "mirror://cpan/authors/id/S/SA/SAMTREGAR/HTML-Template-2.97.tar.gz";
11995       hash = "sha256-ZUevYfOqhXk/hhYZCTjWd9eZX7O3IMFiWAQLyTXiEp8=";
11996     };
11997     propagatedBuildInputs = [ CGI ];
11998     buildInputs = [ TestPod ];
11999     meta = {
12000       description = "Perl module to use HTML-like templating language";
12001       license = with lib.licenses; [ artistic1 gpl1Plus ];
12002     };
12003   };
12005   HTMLTidy = buildPerlPackage {
12006     pname = "HTML-Tidy";
12007     version = "1.60";
12008     src = fetchurl {
12009       url = "mirror://cpan/authors/id/P/PE/PETDANCE/HTML-Tidy-1.60.tar.gz";
12010       hash = "sha256-vPv2XWh/jmcs9gyYIbzWXV6McqeCcrZ7sKwcaZoT18c=";
12011     };
12013     patchPhase = ''
12014       sed -i "s#/usr/include/tidyp#${pkgs.tidyp}/include/tidyp#" Makefile.PL
12015       sed -i "s#/usr/lib#${pkgs.tidyp}/lib#" Makefile.PL
12016     '';
12017     buildInputs = [ TestException ];
12018     meta = {
12019       description = "(X)HTML validation in a Perl object";
12020       homepage = "https://github.com/petdance/html-tidy";
12021       license = with lib.licenses; [ artistic2 ];
12022       mainProgram = "webtidy";
12023     };
12024   };
12026   HTMLTiny = buildPerlPackage {
12027     pname = "HTML-Tiny";
12028     version = "1.08";
12029     src = fetchurl {
12030       url = "mirror://cpan/authors/id/A/AR/ARISTOTLE/HTML-Tiny-1.08.tar.gz";
12031       hash = "sha256-DwHfDJ/ICz2dooi6q/jApTdHRE964euWAOevxKPc/rU=";
12032     };
12033     meta = {
12034       description = "Lightweight, dependency free HTML/XML generation";
12035       license = with lib.licenses; [ artistic1 gpl1Plus ];
12036     };
12037   };
12039   HTMLTokeParserSimple = buildPerlModule {
12040     pname = "HTML-TokeParser-Simple";
12041     version = "3.16";
12042     src = fetchurl {
12043       url = "mirror://cpan/authors/id/O/OV/OVID/HTML-TokeParser-Simple-3.16.tar.gz";
12044       hash = "sha256-7RETXGg55uDq+WlS5qw1Oi8i67QKchZZZx5dLcwOSp0=";
12045     };
12046     propagatedBuildInputs = [ HTMLParser SubOverride ];
12047     meta = {
12048       description = "Easy to use HTML::TokeParser interface";
12049       license = with lib.licenses; [ artistic1 gpl1Plus ];
12050     };
12051   };
12053   HTMLTree = buildPerlModule {
12054     pname = "HTML-Tree";
12055     version = "5.07";
12056     src = fetchurl {
12057       url = "mirror://cpan/authors/id/K/KE/KENTNL/HTML-Tree-5.07.tar.gz";
12058       hash = "sha256-8DdNuEcxwgS4bB1bkJdf7w0wqGvZ3vkZND5VTjGp278=";
12059     };
12060     buildInputs = [ TestFatal ];
12061     propagatedBuildInputs = [ HTMLParser ];
12062     meta = {
12063       description = "Work with HTML in a DOM-like tree structure";
12064       license = with lib.licenses; [ artistic1 gpl1Plus ];
12065       mainProgram = "htmltree";
12066     };
12067   };
12069   HTMLTreeBuilderXPath = buildPerlPackage {
12070     pname = "HTML-TreeBuilder-XPath";
12071     version = "0.14";
12072     src = fetchurl {
12073       url = "mirror://cpan/authors/id/M/MI/MIROD/HTML-TreeBuilder-XPath-0.14.tar.gz";
12074       hash = "sha256-Jeu9skRKClma5eekV9deCe/N8yZqXFcAsUA8y3SIpPM=";
12075     };
12076     propagatedBuildInputs = [ HTMLTree XMLXPathEngine ];
12077     meta = {
12078       description = "Add XPath support to HTML::TreeBuilder";
12079       license = with lib.licenses; [ artistic1 gpl1Plus ];
12080     };
12081   };
12083   HTMLWidget = buildPerlPackage {
12084     pname = "HTML-Widget";
12085     version = "1.11";
12086     src = fetchurl {
12087       url = "mirror://cpan/authors/id/C/CF/CFRANKS/HTML-Widget-1.11.tar.gz";
12088       hash = "sha256-vkLfQFWSXOalob818eB60SvEP2VJ91JJAuozMFoOggs=";
12089     };
12090     doCheck = false;
12091     propagatedBuildInputs = [ ClassAccessorChained ClassDataAccessor DateCalc EmailValid HTMLScrubber HTMLTree ModulePluggableFast ];
12092     buildInputs = [ TestNoWarnings ];
12093     meta = {
12094       description = "HTML Widget And Validation Framework";
12095       license = with lib.licenses; [ artistic1 gpl1Plus ];
12096     };
12097   };
12099   HTTPAcceptLanguage = buildPerlModule {
12100     pname = "HTTP-AcceptLanguage";
12101     version = "0.02";
12102     src = fetchurl {
12103       url = "mirror://cpan/authors/id/Y/YA/YAPPO/HTTP-AcceptLanguage-0.02.tar.gz";
12104       hash = "sha256-LmBfVk7J66tlVI/17sk/nF3qvv7XBzpyneCuKE5OQq8=";
12105     };
12106     buildInputs = [ ModuleBuildTiny ];
12107     meta = {
12108       description = "Accept-Language header parser and find available language";
12109       homepage = "https://github.com/yappo/p5-HTTP-AcceptLanguage";
12110       license = with lib.licenses; [ artistic1 gpl1Plus ];
12111     };
12112   };
12114   HTTPBody = buildPerlPackage {
12115     pname = "HTTP-Body";
12116     version = "1.23";
12117     src = fetchurl {
12118       url = "mirror://cpan/authors/id/G/GE/GETTY/HTTP-Body-1.23.tar.gz";
12119       hash = "sha256-7OmB9BYWNaL7piFdAlcZXlOMTyNDhFMFAd/bahvY1jY=";
12120     };
12121     buildInputs = [ TestDeep ];
12122     propagatedBuildInputs = [ HTTPMessage ];
12123     meta = {
12124       description = "HTTP Body Parser";
12125       license = with lib.licenses; [ artistic1 gpl1Plus ];
12126     };
12127   };
12129   HTTPCookieJar = buildPerlPackage {
12130     pname = "HTTP-CookieJar";
12131     version = "0.014";
12132     src = fetchurl {
12133       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/HTTP-CookieJar-0.014.tar.gz";
12134       hash = "sha256-cJTqXJH1NtJjuF6Dq06alj4RxECM4I7K5VP6nAzEfnM=";
12135     };
12136     propagatedBuildInputs = [ HTTPDate ];
12137     buildInputs = [ TestDeep TestRequires URI ];
12138     # Broken on Hydra since 2021-06-17: https://hydra.nixos.org/build/146507373
12139     doCheck = false;
12140     meta = {
12141       description = "Minimalist HTTP user agent cookie jar";
12142       homepage = "https://github.com/dagolden/HTTP-CookieJar";
12143       license = with lib.licenses; [ asl20 ];
12144     };
12145   };
12147   HTTPCookies = buildPerlPackage {
12148     pname = "HTTP-Cookies";
12149     version = "6.10";
12150     src = fetchurl {
12151       url = "mirror://cpan/authors/id/O/OA/OALDERS/HTTP-Cookies-6.10.tar.gz";
12152       hash = "sha256-4282Yzxc5rXkuHb/z3R4fMXv4HNt1/SHvdc8FPC9cAc=";
12153     };
12154     propagatedBuildInputs = [ HTTPMessage ];
12155     meta = {
12156       description = "HTTP cookie jars";
12157       homepage = "https://github.com/libwww-perl/HTTP-Cookies";
12158       license = with lib.licenses; [ artistic1 gpl1Plus ];
12159     };
12160   };
12162   HTTPDaemon = buildPerlPackage {
12163     pname = "HTTP-Daemon";
12164     version = "6.16";
12165     src = fetchurl {
12166       url = "mirror://cpan/authors/id/O/OA/OALDERS/HTTP-Daemon-6.16.tar.gz";
12167       hash = "sha256-s40JJyXm+k4MTcKkfhVwcEkbr6Db4Wx4o1joBqp+Fz0=";
12168     };
12169     buildInputs = [ ModuleBuildTiny TestNeeds ];
12170     propagatedBuildInputs = [ HTTPMessage ];
12171     __darwinAllowLocalNetworking = true;
12172     meta = {
12173       description = "Simple http server class";
12174       homepage = "https://github.com/libwww-perl/HTTP-Daemon";
12175       license = with lib.licenses; [ artistic1 gpl1Plus ];
12176     };
12177   };
12179   HTTPDate = buildPerlPackage {
12180     pname = "HTTP-Date";
12181     version = "6.06";
12182     src = fetchurl {
12183       url = "mirror://cpan/authors/id/O/OA/OALDERS/HTTP-Date-6.06.tar.gz";
12184       hash = "sha256-e2hRkcasw+dz0fwCyV7h+frpT3d4MXX154wYHMktK1I=";
12185     };
12186     propagatedBuildInputs = [ TimeDate ];
12187     meta = {
12188       description = "Date conversion routines";
12189       homepage = "https://github.com/libwww-perl/HTTP-Date";
12190       license = with lib.licenses; [ artistic1 gpl1Plus ];
12191     };
12192   };
12194   HTTPEntityParser = buildPerlModule {
12195     pname = "HTTP-Entity-Parser";
12196     version = "0.25";
12197     src = fetchurl {
12198       url = "mirror://cpan/authors/id/K/KA/KAZEBURO/HTTP-Entity-Parser-0.25.tar.gz";
12199       hash = "sha256-OozQ2Muj0XzYwE7oLXNB36okfb3ZSknrlLU/aeSD7Do=";
12200     };
12201     propagatedBuildInputs = [ HTTPMultiPartParser HashMultiValue JSONMaybeXS StreamBuffered WWWFormUrlEncoded ];
12202     buildInputs = [ HTTPMessage ModuleBuildTiny ];
12203     meta = {
12204       description = "PSGI compliant HTTP Entity Parser";
12205       homepage = "https://github.com/kazeburo/HTTP-Entity-Parser";
12206       license = with lib.licenses; [ artistic1 gpl1Plus ];
12207     };
12208   };
12210   HTTPDAV = buildPerlPackage {
12211     pname = "HTTP-DAV";
12212     version = "0.49";
12213     src = fetchurl {
12214       url = "mirror://cpan/authors/id/C/CO/COSIMO/HTTP-DAV-0.49.tar.gz";
12215       hash = "sha256-MzOd+ewQbeN9hgnP0NPAg8z7sGwWxlG1s4UaVtF6lXw=";
12216     };
12217     propagatedBuildInputs = [ XMLDOM ];
12218     meta = {
12219       description = "WebDAV client library";
12220       license = with lib.licenses; [ artistic1 gpl1Plus ];
12221       mainProgram = "dave";
12222     };
12223   };
12225   HTTPHeadersActionPack = buildPerlPackage {
12226     pname = "HTTP-Headers-ActionPack";
12227     version = "0.09";
12228     src = fetchurl {
12229       url = "mirror://cpan/authors/id/D/DR/DROLSKY/HTTP-Headers-ActionPack-0.09.tar.gz";
12230       hash = "sha256-x4ERq4V+SMaYJJA9S2zoKT/v/GtdZw21UKdn+FOsx9o=";
12231     };
12232     buildInputs = [ TestFatal TestWarnings ];
12233     propagatedBuildInputs = [ HTTPDate HTTPMessage ModuleRuntime SubExporter URI ];
12234     meta = {
12235       description = "HTTP Action, Adventure and Excitement";
12236       license = with lib.licenses; [ artistic1 gpl1Plus ];
12237     };
12238   };
12240   HTTPHeaderParserXS = buildPerlPackage {
12241     pname = "HTTP-HeaderParser-XS";
12242     version = "0.20";
12243     src = fetchurl {
12244       url = "mirror://cpan/authors/id/M/MA/MARKSMITH/HTTP-HeaderParser-XS-0.20.tar.gz";
12245       hash = "sha256-qeAP/7PYmRoUqq/dxh1tFoxP8U4xSuPbstTaMAjXRu8=";
12246     };
12247     meta = {
12248       description = "XS extension for processing HTTP headers";
12249       license = with lib.licenses; [ artistic1 gpl1Plus ];
12250       broken =
12251         stdenv.hostPlatform.isi686 # loadable library and perl binaries are mismatched (got handshake key 0x7d40080, needed 0x7dc0080)
12252         || stdenv.hostPlatform.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.HTTPHeaderParserXS.x86_64-darwin
12253     };
12254   };
12256   HTTPHeadersFast = buildPerlModule {
12257     pname = "HTTP-Headers-Fast";
12258     version = "0.22";
12259     src = fetchurl {
12260       url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/HTTP-Headers-Fast-0.22.tar.gz";
12261       hash = "sha256-zEMdtoSW3YhNtLwMC3ESwfSk8dxoxPWjyqdXoedIG0g=";
12262     };
12263     buildInputs = [ ModuleBuildTiny TestRequires ];
12264     propagatedBuildInputs = [ HTTPDate ];
12265     meta = {
12266       description = "Faster implementation of HTTP::Headers";
12267       homepage = "https://github.com/tokuhirom/HTTP-Headers-Fast";
12268       license = with lib.licenses; [ artistic1 gpl1Plus ];
12269     };
12270   };
12272   HTTPLite = buildPerlPackage {
12273     pname = "HTTP-Lite";
12274     version = "2.44";
12275     src = fetchurl {
12276       url = "mirror://cpan/authors/id/N/NE/NEILB/HTTP-Lite-2.44.tar.gz";
12277       hash = "sha256-OOQ9eRHPwU46OPA4K2zHptVZMH0jsQnOc6x9JKmz53w=";
12278     };
12279     buildInputs = [ CGI ];
12280     meta = {
12281       description = "Lightweight HTTP implementation";
12282       license = with lib.licenses; [ artistic1 gpl1Plus ];
12283     };
12284   };
12286   HTTPMessage = buildPerlPackage {
12287     pname = "HTTP-Message";
12288     version = "6.45";
12289     src = fetchurl {
12290       url = "mirror://cpan/authors/id/O/OA/OALDERS/HTTP-Message-6.45.tar.gz";
12291       hash = "sha256-AcuEBmEqP3OIQtHpcxOuTYdIcNG41tZjMfFgAJQ9TL4=";
12292     };
12293     buildInputs = [ TestNeeds TryTiny ];
12294     propagatedBuildInputs = [ Clone EncodeLocale HTTPDate IOHTML LWPMediaTypes URI ];
12295     meta = {
12296       description = "HTTP style message (base class)";
12297       homepage = "https://github.com/libwww-perl/HTTP-Message";
12298       license = with lib.licenses; [ artistic1 gpl1Plus ];
12299     };
12300   };
12302   HTTPMultiPartParser = buildPerlPackage {
12303     pname = "HTTP-MultiPartParser";
12304     version = "0.02";
12305     src = fetchurl {
12306       url = "mirror://cpan/authors/id/C/CH/CHANSEN/HTTP-MultiPartParser-0.02.tar.gz";
12307       hash = "sha256-Xt3aFZ9U0W+GjgMkQKwrAk5VqsSJMYcbYmJ/GhbQCxI=";
12308     };
12309     buildInputs = [ TestDeep ];
12310     meta = {
12311       description = "HTTP MultiPart Parser";
12312       license = with lib.licenses; [ artistic1 gpl1Plus ];
12313     };
12314   };
12316   HTTPNegotiate = buildPerlPackage {
12317     pname = "HTTP-Negotiate";
12318     version = "6.01";
12319     src = fetchurl {
12320       url = "mirror://cpan/authors/id/G/GA/GAAS/HTTP-Negotiate-6.01.tar.gz";
12321       hash = "sha256-HHKcHqYxAOh4QFzafWb5rf0+1PHWysrKDukVLfco4BY=";
12322     };
12323     propagatedBuildInputs = [ HTTPMessage ];
12324     meta = {
12325       description = "Choose a variant to serve";
12326       license = with lib.licenses; [ artistic1 gpl1Plus ];
12327     };
12328   };
12330   HTTPParserXS = buildPerlPackage {
12331     pname = "HTTP-Parser-XS";
12332     version = "0.17";
12333     src = fetchurl {
12334       url = "mirror://cpan/authors/id/K/KA/KAZUHO/HTTP-Parser-XS-0.17.tar.gz";
12335       hash = "sha256-eU5oM+MmsQ0kNp+c2/wWZxBe9lkej0HlYaPUGnAnqAk=";
12336     };
12337     meta = {
12338       description = "Fast, primitive HTTP request parser";
12339       license = with lib.licenses; [ artistic1 gpl1Plus ];
12340     };
12341   };
12343   HTTPProxy = buildPerlPackage {
12344     pname = "HTTP-Proxy";
12345     version = "0.304";
12346     src = fetchurl {
12347       url = "mirror://cpan/authors/id/B/BO/BOOK/HTTP-Proxy-0.304.tar.gz";
12348       hash = "sha256-sFKQU07HNiXCGgVl/DUXCJDasWOEPZUzHCksI/UExp0=";
12349     };
12350     propagatedBuildInputs = [ LWP ];
12351     # tests fail because they require network access
12352     doCheck = false;
12353     meta = {
12354       description = "Pure Perl HTTP proxy";
12355       license = with lib.licenses; [ artistic1 gpl1Plus ];
12356     };
12357   };
12359   HTTPRequestAsCGI = buildPerlPackage {
12360     pname = "HTTP-Request-AsCGI";
12361     version = "1.2";
12362     src = fetchurl {
12363       url = "mirror://cpan/authors/id/F/FL/FLORA/HTTP-Request-AsCGI-1.2.tar.gz";
12364       hash = "sha256-lFv7B8bRr1J3P7eEW6YuOnQRGzXL0tXkPvgxnlWsvOo=";
12365     };
12366     propagatedBuildInputs = [ ClassAccessor HTTPMessage ];
12367     meta = {
12368       description = "Set up a CGI environment from an HTTP::Request";
12369       license = with lib.licenses; [ artistic1 gpl1Plus ];
12370     };
12371   };
12373   HTTPResponseEncoding = buildPerlPackage {
12374     pname = "HTTP-Response-Encoding";
12375     version = "0.06";
12376     src = fetchurl {
12377       url = "mirror://cpan/authors/id/D/DA/DANKOGAI/HTTP-Response-Encoding-0.06.tar.gz";
12378       hash = "sha256-EBZ7jiOKaCAEqw16zL6dduri21evB8WuLfqAgHSkqKo=";
12379     };
12380     propagatedBuildInputs = [ HTTPMessage ];
12381     buildInputs = [ LWP ];
12382     meta = {
12383       description = "Adds encoding() to HTTP::Response";
12384       license = with lib.licenses; [ artistic1 gpl1Plus ];
12385     };
12386   };
12388   HTTPServerSimple = buildPerlPackage {
12389     pname = "HTTP-Server-Simple";
12390     version = "0.52";
12391     src = fetchurl {
12392       url = "mirror://cpan/authors/id/B/BP/BPS/HTTP-Server-Simple-0.52.tar.gz";
12393       hash = "sha256-2JOfpPEr1rjAQ1N/0L+WsFWsNoa5zdn6dz3KauZ5y0w=";
12394     };
12395     doCheck = false;
12396     propagatedBuildInputs = [ CGI ];
12397     meta = {
12398       description = "Lightweight HTTP server";
12399       license = with lib.licenses; [ artistic1 gpl1Plus ];
12400     };
12401   };
12403   HTTPServerSimpleAuthen = buildPerlPackage {
12404     pname = "HTTP-Server-Simple-Authen";
12405     version = "0.04";
12406     src = fetchurl {
12407       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/HTTP-Server-Simple-Authen-0.04.tar.gz";
12408       hash = "sha256-Ld3Iq53ImGmAFR5LqDamu/CR9Fzxlb4XaOvbSpk+1Zs=";
12409     };
12410     propagatedBuildInputs = [ AuthenSimple HTTPServerSimple ];
12411     meta = {
12412       description = "Authentication plugin for HTTP::Server::Simple";
12413       license = with lib.licenses; [ artistic1 gpl1Plus ];
12414     };
12415   };
12417   HTTPServerSimpleMason = buildPerlPackage {
12418     pname = "HTTP-Server-Simple-Mason";
12419     version = "0.14";
12420     src = fetchurl {
12421       url = "mirror://cpan/authors/id/J/JE/JESSE/HTTP-Server-Simple-Mason-0.14.tar.gz";
12422       hash = "sha256-t6Sdjm5Vv/Cx8CeNlRaFRmsUMkO2+eWeBx9UcsoqAlo=";
12423     };
12424     propagatedBuildInputs = [ HTMLMason HTTPServerSimple HookLexWrap ];
12425     meta = {
12426       description = "Simple mason server";
12427       license = with lib.licenses; [ artistic1 gpl1Plus ];
12428     };
12429   };
12431   HTTPServerSimplePSGI = buildPerlPackage {
12432     pname = "HTTP-Server-Simple-PSGI";
12433     version = "0.16";
12434     src = fetchurl {
12435       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/HTTP-Server-Simple-PSGI-0.16.tar.gz";
12436       hash = "sha256-X3zLhFMEO5cnhJKnVzKBFuEeA1LyhUooqcY05ukTHbo=";
12437     };
12438     propagatedBuildInputs = [ HTTPServerSimple ];
12439     meta = {
12440       description = "Perl Web Server Gateway Interface Specification";
12441       homepage = "https://github.com/miyagawa/HTTP-Server-Simple-PSGI";
12442       license = with lib.licenses; [ artistic1 gpl1Plus ];
12443     };
12444   };
12446   HTTPTinyCache = buildPerlPackage {
12447     pname = "HTTP-Tiny-Cache";
12448     version = "0.002";
12449     src = fetchurl {
12450       url = "mirror://cpan/authors/id/P/PE/PERLANCAR/HTTP-Tiny-Cache-0.002.tar.gz";
12451       hash = "sha256-c323zxncN4By2Rysdnh/sorNg8DRB85OTrS708kRhiE=";
12452     };
12453     propagatedBuildInputs = [ FileUtilTempdir Logger ];
12454     meta = {
12455       description = "Cache HTTP::Tiny responses";
12456       homepage = "https://metacpan.org/release/HTTP-Tiny-Cache";
12457       license = with lib.licenses; [ artistic1 gpl1Plus ];
12458       maintainers = [ maintainers.sgo ];
12459     };
12460   };
12462   HTTPTinyish = buildPerlPackage {
12463     pname = "HTTP-Tinyish";
12464     version = "0.18";
12465     src = fetchurl {
12466       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/HTTP-Tinyish-0.18.tar.gz";
12467       hash = "sha256-gDgLjTPGv6lrsBBPpqQcJ9zE6cg6SN8frTkJf1/c/eU=";
12468     };
12469     propagatedBuildInputs = [ FileWhich IPCRun3 ];
12470     meta = {
12471       description = "HTTP::Tiny compatible HTTP client wrappers";
12472       homepage = "https://github.com/miyagawa/HTTP-Tinyish";
12473       license = with lib.licenses; [ artistic1 gpl1Plus ];
12474     };
12475   };
12477   iCalParser = buildPerlPackage {
12478     pname = "iCal-Parser";
12479     version = "1.21";
12480     src = fetchurl {
12481       url = "mirror://cpan/authors/id/R/RI/RIXED/iCal-Parser-1.21.tar.gz";
12482       hash = "sha256-DXk5pkSo5nAX7HI509lgTzmGu5pP+Avmj+cpnr/SJww=";
12483     };
12484     propagatedBuildInputs = [ DateTimeFormatICal FreezeThaw IOString TextvFileasData ];
12485     meta = {
12486       description = "Parse iCalendar files into a data structure";
12487       license = with lib.licenses; [ artistic1 gpl1Plus ];
12488     };
12489   };
12491   ImagePNGLibpng = buildPerlPackage {
12492     pname = "Image-PNG-Libpng";
12493     version = "0.57";
12494     src = fetchurl {
12495       url = "mirror://cpan/authors/id/B/BK/BKB/Image-PNG-Libpng-0.56.tar.gz";
12496       hash = "sha256-+vu/6/9CP3u4XvJ6MEH7YpG1AzbHpYIiSlysQzHDx9k=";
12497     };
12498     buildInputs = [ pkgs.libpng ];
12499     meta = {
12500       description = "Perl interface to libpng";
12501       license = with lib.licenses; [ artistic1 gpl1Plus ];
12502       mainProgram = "pnginspect";
12503       broken = stdenv.hostPlatform.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.ImagePNGLibpng.x86_64-darwin
12504     };
12505   };
12507   Imager = buildPerlPackage {
12508     pname = "Imager";
12509     version = "1.019";
12510     src = fetchurl {
12511       url = "mirror://cpan/authors/id/T/TO/TONYC/Imager-1.019.tar.gz";
12512       hash = "sha256-dNRNcBwfFPxLmE+toelVcmtQTC2LBtJl56hh+llDy0g=";
12513     };
12514     buildInputs = [ pkgs.freetype pkgs.fontconfig pkgs.libjpeg pkgs.libpng ];
12515     makeMakerFlags = [ "--incpath ${pkgs.libjpeg.dev}/include" "--libpath ${pkgs.libjpeg.out}/lib" "--incpath" "${pkgs.libpng.dev}/include" "--libpath" "${pkgs.libpng.out}/lib" ];
12516     meta = {
12517       description = "Perl extension for Generating 24 bit Images";
12518       homepage = "http://imager.perl.org";
12519       license = with lib.licenses; [ artistic1 gpl1Plus ];
12520     };
12521   };
12523   ImagerQRCode = buildPerlPackage {
12524     pname = "Imager-QRCode";
12525     version = "0.035";
12526     src = fetchurl {
12527       url = "mirror://cpan/authors/id/K/KU/KURIHARA/Imager-QRCode-0.035.tar.gz";
12528       hash = "sha256-KoSN66Kes5QsRHCaaFPjGKyrDEaMv+27m6rlR2ADJRM=";
12529     };
12530     propagatedBuildInputs = [ Imager ];
12531     meta = {
12532       description = "Generate QR Code with Imager using libqrencode";
12533       license = with lib.licenses; [ artistic1 gpl1Plus ];
12534       maintainers = with maintainers; [ sgo ];
12535     };
12536   };
12538   ImageInfo = buildPerlPackage {
12539     pname = "Image-Info";
12540     version = "1.44";
12541     src = fetchurl {
12542       url = "mirror://cpan/authors/id/S/SR/SREZIC/Image-Info-1.44.tar.gz";
12543       hash = "sha256-y3/GXdHv/gHrR8HHmlLdFlT0KOOpfbHvI7EmzgFjbw0=";
12544     };
12545     propagatedBuildInputs = [ IOStringy ];
12546     meta = {
12547       description = "Extract meta information from image files";
12548       license = with lib.licenses; [ artistic1 gpl1Plus ];
12549     };
12550   };
12552   ImageSane = buildPerlPackage {
12553     pname = "Image-Sane";
12554     version = "5";
12555     src = fetchurl {
12556       url = "mirror://cpan/authors/id/R/RA/RATCLIFFE/Image-Sane-5.tar.gz";
12557       hash = "sha256-Ipqg6fBJ76dg88L25h2dU5r0PY92S1Cm4DBktHKaNf8=";
12558     };
12559     buildInputs = [ pkgs.sane-backends ExtUtilsDepends ExtUtilsPkgConfig TestRequires TryTiny ];
12560     propagatedBuildInputs = [ ExceptionClass Readonly ];
12561     meta = {
12562       description = "Perl extension for the SANE (Scanner Access Now Easy) Project";
12563       license = with lib.licenses; [ artistic1 gpl1Plus ];
12564     };
12565   };
12567   ImageScale = buildPerlPackage {
12568     pname = "Image-Scale";
12569     version = "0.14";
12570     src = fetchurl {
12571       url = "mirror://cpan/authors/id/A/AG/AGRUNDMA/Image-Scale-0.14.tar.gz";
12572       hash = "sha256-8JxfBmO4dzg2WsKBnhhrkJq+ue2F2DvBXudocslHzfg=";
12573     };
12574     buildInputs = [ pkgs.libpng pkgs.libjpeg TestNoWarnings ];
12575     propagatedBuildInputs = [ pkgs.zlib ];
12576     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" ];
12577     meta = {
12578       description = "Fast, high-quality fixed-point image resizing";
12579       license = with lib.licenses; [ gpl2Plus ];
12580     };
12581   };
12583   ImageSize = buildPerlPackage {
12584     pname = "Image-Size";
12585     version = "3.300";
12586     src = fetchurl {
12587       url = "mirror://cpan/authors/id/R/RJ/RJRAY/Image-Size-3.300.tar.gz";
12588       hash = "sha256-U8mx+GUxzeBg7mNwnR/ac8q8DPLVgdKbIrAUeBufAms=";
12589     };
12590     buildInputs = [ ModuleBuild ];
12591     meta = {
12592       description = "Library to extract height/width from images";
12593       homepage = "https://search.cpan.org/dist/Image-Size";
12594       license = with lib.licenses; [ artistic1 gpl1Plus ];
12595       mainProgram = "imgsize";
12596     };
12597   };
12599   ImageOCRTesseract = buildPerlPackage {
12600     pname = "Image-OCR-Tesseract";
12601     version = "1.26";
12602     src = fetchurl {
12603       url = "mirror://cpan/authors/id/L/LE/LEOCHARRE/Image-OCR-Tesseract-1.26.tar.gz";
12604       hash = "sha256-mNkEJmpwYvCcm0b3fE6UUp4f6ZM54/g/2h+SAT8AfOo=";
12605     };
12606     nativeBuildInputs = [ pkgs.which pkgs.makeWrapper pkgs.tesseract pkgs.imagemagick ];
12607     propagatedBuildInputs = [ FileFindRule FileWhich LEOCHARRECLI StringShellQuote ];
12608     postPatch = ''
12609       substituteInPlace lib/Image/OCR/Tesseract.pm \
12610         --replace "which('tesseract')" "\"${pkgs.tesseract}/bin/tesseract\"" \
12611         --replace "which('convert')" "\"${pkgs.imagemagick}/bin/convert"\"
12612     '';
12613     postInstall = ''
12614       wrapProgram $out/bin/ocr --prefix PATH : ${lib.makeBinPath [ pkgs.tesseract pkgs.imagemagick ]}
12615     '';
12616     meta = {
12617       description = "Read an image with tesseract ocr and get output";
12618       license = with lib.licenses; [ artistic1 gpl1Plus ];
12619       mainProgram = "ocr";
12620     };
12621   };
12623   IMAPClient = buildPerlPackage {
12624     pname = "IMAP-Client";
12625     version = "0.13";
12626     src = fetchurl {
12627       url = "mirror://cpan/authors/id/C/CO/CONTEB/IMAP-Client-0.13.tar.gz";
12628       hash = "sha256-inovpVt1qFPEgBQXeDk62sKUts0gfN9UFA9nwS8kypU=";
12629     };
12630     doCheck = false; # nondeterministic
12631     meta = {
12632       description = "Advanced manipulation of IMAP services w/ referral support";
12633       license = with lib.licenses; [ artistic1 gpl1Plus ];
12634     };
12635   };
12637   Importer = buildPerlPackage {
12638     pname = "Importer";
12639     version = "0.026";
12640     src = fetchurl {
12641       url = "mirror://cpan/authors/id/E/EX/EXODIST/Importer-0.026.tar.gz";
12642       hash = "sha256-4I+oThPLmYt6iX/I7Jw0WfzBcWr/Jcw0Pjbvh1iRsO8=";
12643     };
12644     meta = {
12645       description = "Alternative but compatible interface to modules that export symbols";
12646       license = with lib.licenses; [ artistic1 gpl1Plus ];
12647     };
12648   };
12650   ImportInto = buildPerlPackage {
12651     pname = "Import-Into";
12652     version = "1.002005";
12653     src = fetchurl {
12654       url = "mirror://cpan/authors/id/H/HA/HAARG/Import-Into-1.002005.tar.gz";
12655       hash = "sha256-vZ53o/tmK0C0OxjTKAzTUu35+tjZQoPlGBgcwc6fBWc=";
12656     };
12657     propagatedBuildInputs = [ ModuleRuntime ];
12658     meta = {
12659       description = "Import packages into other packages";
12660       license = with lib.licenses; [ artistic1 gpl1Plus ];
12661     };
12662   };
12664   IO = buildPerlPackage {
12665     pname = "IO";
12666     version = "1.51";
12667     src = fetchurl {
12668       url = "mirror://cpan/authors/id/T/TO/TODDR/IO-1.51.tar.gz";
12669       hash = "sha256-VJPqVZmHKM0rfsuCNMWPtdXfJwmNDwet3KIkRNdhbOA=";
12670     };
12671     doCheck = false;
12672     meta = {
12673       description = "Perl core IO modules";
12674       license = with lib.licenses; [ artistic1 gpl1Plus ];
12675     };
12676   };
12678   IOAIO = buildPerlPackage {
12679     pname = "IO-AIO";
12680     version = "4.73";
12681     src = fetchurl {
12682       url = "mirror://cpan/authors/id/M/ML/MLEHMANN/IO-AIO-4.73.tar.gz";
12683       hash = "sha256-mltHx4Ak+rdmPR5a90ob6rRQ19Y7poV+MbP9gobkrFo=";
12684     };
12685     buildInputs = [ CanaryStability ];
12686     propagatedBuildInputs = [ commonsense ];
12687     nativeBuildInputs = lib.optional stdenv.hostPlatform.isDarwin shortenPerlShebang;
12688     postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
12689       shortenPerlShebang $out/bin/treescan
12690     '';
12691     meta = {
12692       description = "Asynchronous/Advanced Input/Output";
12693       license = with lib.licenses; [ artistic1 gpl1Plus ];
12694       mainProgram = "treescan";
12695     };
12696   };
12698   IOAll = buildPerlPackage {
12699     pname = "IO-All";
12700     version = "0.87";
12701     src = fetchurl {
12702       url = "mirror://cpan/authors/id/F/FR/FREW/IO-All-0.87.tar.gz";
12703       hash = "sha256-VOIdJQwCKRJ+MLd6NGHhAHeFTsJE8m+2cPG0Re1MTVs=";
12704     };
12705     meta = {
12706       description = "IO::All of it to Graham and Damian!";
12707       homepage = "https://github.com/ingydotnet/io-all-pm";
12708       license = with lib.licenses; [ artistic1 gpl1Plus ];
12709     };
12710   };
12712   IOAsync = buildPerlModule {
12713     pname = "IO-Async";
12714     version = "0.802";
12715     src = fetchurl {
12716       url = "mirror://cpan/authors/id/P/PE/PEVANS/IO-Async-0.802.tar.gz";
12717       hash = "sha256-5YJzFXd2fEfqxDXvKQRmPUp1Cw5oAqSmGJo38Mswhzg";
12718     };
12719     preCheck = "rm t/50resolver.t"; # this test fails with "Temporary failure in name resolution" in sandbox
12720     propagatedBuildInputs = [ Future StructDumb ];
12721     buildInputs = [ TestFatal TestFutureIOImpl TestIdentity TestMetricsAny TestRefcount ];
12722     meta = {
12723       description = "Asynchronous event-driven programming";
12724       license = with lib.licenses; [ artistic1 gpl1Plus ];
12725     };
12726   };
12728   IOAsyncSSL = buildPerlModule {
12729     pname = "IO-Async-SSL";
12730     version = "0.25";
12731     src = fetchurl {
12732       url = "mirror://cpan/authors/id/P/PE/PEVANS/IO-Async-SSL-0.25.tar.gz";
12733       hash = "sha256-Te9IXbHv9OE5tLWRIgLA/WHDrtLOw1vVq4v3u9g/WnU=";
12734     };
12735     buildInputs = [ TestIdentity ];
12736     propagatedBuildInputs = [ Future IOAsync IOSocketSSL ];
12737     meta = {
12738       description = "Use SSL/TLS with IO::Async";
12739       license = with lib.licenses; [ artistic1 gpl1Plus ];
12740       maintainers = [ maintainers.zakame ];
12741     };
12742   };
12744   IOCapture = buildPerlPackage {
12745     pname = "IO-Capture";
12746     version = "0.05";
12747     src = fetchurl {
12748       url = "mirror://cpan/authors/id/R/RE/REYNOLDS/IO-Capture-0.05.tar.gz";
12749       hash = "sha256-wsFaJUynT7jFfSXXtsvK/3ejtPtWlUI/H4C7Qjq//qk=";
12750     };
12751     meta = {
12752       description = "Abstract Base Class to build modules to capture output";
12753       license = with lib.licenses; [ artistic1 gpl1Plus ];
12754     };
12755   };
12757   IOCaptureOutput = buildPerlPackage {
12758     pname = "IO-CaptureOutput";
12759     version = "1.1105";
12760     src = fetchurl {
12761       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/IO-CaptureOutput-1.1105.tar.gz";
12762       hash = "sha256-rpkAn8oSc4APFp7LgvTtHMbHZ5XxVr7lwAkwBdVy9Ic=";
12763     };
12764     meta = {
12765       description = "(DEPRECATED) capture STDOUT and STDERR from Perl code, subprocesses or XS";
12766       homepage = "https://github.com/dagolden/IO-CaptureOutput";
12767       license = with lib.licenses; [ artistic1 gpl1Plus ];
12768     };
12769   };
12771   IOCompress = buildPerlPackage {
12772     pname = "IO-Compress";
12773     version = "2.206";
12774     src = fetchurl {
12775       url = "mirror://cpan/authors/id/P/PM/PMQS/IO-Compress-2.206.tar.gz";
12776       hash = "sha256-fTBiuaSU91fo0GFPIg2D8icxu9oa6198/w5yqD9DPTU=";
12777     };
12778     propagatedBuildInputs = [ CompressRawBzip2 CompressRawZlib ];
12779     # Same as CompressRawZlib
12780     doCheck = false && !stdenv.hostPlatform.isDarwin;
12781     meta = {
12782       description = "IO Interface to compressed data files/buffers";
12783       homepage = "https://github.com/pmqs/IO-Compress";
12784       license = with lib.licenses; [ artistic1 gpl1Plus ];
12785       mainProgram = "streamzip";
12786     };
12787   };
12789   IODigest = buildPerlPackage {
12790     pname = "IO-Digest";
12791     version = "0.11";
12792     src = fetchurl {
12793       url = "mirror://cpan/authors/id/C/CL/CLKAO/IO-Digest-0.11.tar.gz";
12794       hash = "sha256-j/z4Wn9iE+XpQUCtzCsXntAkmOrchDCUV+kE3sk/f5I=";
12795     };
12796     propagatedBuildInputs = [ PerlIOviadynamic ];
12797     meta = {
12798       description = "Calculate digests while reading or writing";
12799       license = with lib.licenses; [ artistic1 gpl1Plus ];
12800     };
12801   };
12803   IOHTML = buildPerlPackage {
12804     pname = "IO-HTML";
12805     version = "1.004";
12806     src = fetchurl {
12807       url = "mirror://cpan/authors/id/C/CJ/CJM/IO-HTML-1.004.tar.gz";
12808       hash = "sha256-yHst9ZRju/LDlZZ3PftcA73g9+EFGvM5+WP1jBy9i/U=";
12809     };
12810     meta = {
12811       description = "Open an HTML file with automatic charset detection";
12812       license = with lib.licenses; [ artistic1 gpl1Plus ];
12813     };
12814   };
12816   IOHandleUtil = buildPerlModule {
12817     pname = "IO-Handle-Util";
12818     version = "0.02";
12819     src = fetchurl {
12820       url = "mirror://cpan/authors/id/E/ET/ETHER/IO-Handle-Util-0.02.tar.gz";
12821       hash = "sha256-jblmqRPaxORkIwcCqiIr84r+ISGT5ja8DzzGUbrezO4=";
12822     };
12823     propagatedBuildInputs = [ IOString SubExporter asa ];
12824     buildInputs = [ ModuleBuildTiny TestSimple13 ];
12825     meta = {
12826       description = "Functions for working with IO::Handle like objects";
12827       homepage = "https://github.com/karenetheridge/IO-Handle-Util";
12828       license = with lib.licenses; [ artistic1 gpl1Plus ];
12829     };
12830   };
12832   IOInterface = buildPerlModule {
12833     pname = "IO-Interface";
12834     version = "1.09";
12835     src = fetchurl {
12836       url = "mirror://cpan/authors/id/L/LD/LDS/IO-Interface-1.09.tar.gz";
12837       hash = "sha256-5j6BxS6x4OYOwtmD9VUtJJPhFxeZJclnV/I8S9n6cTo=";
12838     };
12839     nativeBuildInputs = lib.optionals stdenv.hostPlatform.isDarwin [ pkgs.ld-is-cc-hook ];
12840     meta = {
12841       description = "Access and modify network interface card configuration";
12842       license = with lib.licenses; [ artistic1 gpl1Plus ];
12843     };
12844   };
12846   IOInteractive = buildPerlPackage {
12847     pname = "IO-Interactive";
12848     version = "1.025";
12849     src = fetchurl {
12850       url = "mirror://cpan/authors/id/B/BD/BDFOY/IO-Interactive-1.025.tar.gz";
12851       hash = "sha256-yh7G+6t6AnXdLpz2e3yw4ARYY/MVMyEMfcVEYxtqqqc=";
12852     };
12853     meta = {
12854       description = "Utilities for interactive I/O";
12855       homepage = "https://github.com/briandfoy/io-interactive";
12856       license = with lib.licenses; [ artistic2 ];
12857     };
12858   };
12860   IOInteractiveTiny = buildPerlPackage {
12861     pname = "IO-Interactive-Tiny";
12862     version = "0.2";
12863     src = fetchurl {
12864       url = "mirror://cpan/authors/id/D/DM/DMUEY/IO-Interactive-Tiny-0.2.tar.gz";
12865       hash = "sha256-RcBpZQXH5DR4RfXNJRK3sbx4+85MvtK1gAgoP8lepfk=";
12866     };
12867     meta = {
12868       description = "Is_interactive() without large deps";
12869       license = with lib.licenses; [ artistic2 ];
12870     };
12871   };
12873   IOLockedFile = buildPerlPackage {
12874     pname = "IO-LockedFile";
12875     version = "0.23";
12876     src = fetchurl {
12877       url = "mirror://cpan/authors/id/R/RA/RANI/IO-LockedFile-0.23.tar.gz";
12878       hash = "sha256-sdt+amvxvh4GFabstc6+eLAOKHsSfVhW0/FrNd1H+LU=";
12879     };
12880     meta = {
12881       description = "Supply object methods for locking files";
12882       license = with lib.licenses; [ artistic1 gpl1Plus ];
12883     };
12884   };
12886   IOMultiplex = buildPerlPackage {
12887     pname = "IO-Multiplex";
12888     version = "1.16";
12889     src = fetchurl {
12890       url = "mirror://cpan/authors/id/B/BB/BBB/IO-Multiplex-1.16.tar.gz";
12891       hash = "sha256-dNIsRLWtLnGQ4nhuihfXS79M74m00RV7ozWYtaJyDa0=";
12892     };
12893     meta = {
12894       description = "Supply object methods for locking files";
12895       license = with lib.licenses; [ artistic1 gpl1Plus ];
12896     };
12897   };
12899   IOPager = buildPerlPackage {
12900     version = "2.10";
12901     pname = "IO-Pager";
12902     src = fetchurl {
12903       url = "mirror://cpan/authors/id/J/JP/JPIERCE/IO-Pager-2.10.tgz";
12904       hash = "sha256-vLTYwtKAyANLglkcwLnrZ6AE+QzpqgWXn8YHEwessZU=";
12905     };
12906     propagatedBuildInputs = [ pkgs.more FileWhich TermReadKey ]; # `more` used in tests
12907     meta = {
12908       description = "Select a pager (possibly perl-based) & pipe it text if a TTY";
12909       license = with lib.licenses; [ artistic1 gpl1Plus ];
12910       mainProgram = "tp";
12911     };
12912   };
12914   IOPty = buildPerlModule {
12915     pname = "IO-Pty";
12916     version = "1.16";
12917     src = fetchurl {
12918       url = "mirror://cpan/authors/id/T/TO/TODDR/IO-Tty-1.16.tar.gz";
12919       hash = "sha256-jxoJwHBzitxpXfkD8uf3QwjdjZkbkUwLw5Cg5gISlN0=";
12920     };
12921     buildPhase = "make";
12922     checkPhase = "make test";
12923     installPhase = "make install";
12924     meta = {
12925       homepage = "https://github.com/toddr/IO-Tty";
12926       description = "Pseudo TTY object class";
12927       license = with lib.licenses; [ artistic1 gpl1Plus ];
12928     };
12929   };
12931   IOPrompt = buildPerlModule {
12932     pname = "IO-Prompt";
12933     version = "0.997004";
12934     src = fetchurl {
12935       url = "mirror://cpan/authors/id/D/DC/DCONWAY/IO-Prompt-0.997004.tar.gz";
12936       hash = "sha256-8XuzBe5qyLWyA+bYJuuUDE8/bW9L/nGcOzoiX0b1hhU=";
12937     };
12938     propagatedBuildInputs = [ TermReadKey Want ];
12939     doCheck = false; # needs access to /dev/tty
12940     meta = {
12941       description = "Interactively prompt for user input";
12942       license = with lib.licenses; [ artistic1 gpl1Plus ];
12943     };
12944   };
12946   IOSessionData = buildPerlPackage {
12947     pname = "IO-SessionData";
12948     version = "1.03";
12949     src = fetchurl {
12950       url = "mirror://cpan/authors/id/P/PH/PHRED/IO-SessionData-1.03.tar.gz";
12951       hash = "sha256-ZKRxKj7bs/0QIw2ylsKcjGbwZq37wMPfakglj+85Ld0=";
12952     };
12953     outputs = [ "out" "dev" ]; # no "devdoc"
12954     meta = {
12955       description = "Supporting module for SOAP::Lite";
12956       license = with lib.licenses; [ artistic1 gpl1Plus ];
12957     };
12958   };
12960   IOSocketINET6 = buildPerlModule {
12961     pname = "IO-Socket-INET6";
12962     version = "2.73";
12963     src = fetchurl {
12964       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/IO-Socket-INET6-2.73.tar.gz";
12965       hash = "sha256-ttp0aFMlPVtKxDGRtPaaRxlZXuE6fKZ2qAVM825tFrs=";
12966     };
12967     propagatedBuildInputs = [ Socket6 ];
12968     doCheck = false;
12969     meta = {
12970       description = "[DEPRECATED] Object interface for AF_INET/AF_INET6 domain sockets";
12971       license = with lib.licenses; [ artistic1 gpl1Plus ];
12972     };
12973   };
12975   IOSocketSSL = buildPerlPackage {
12976     pname = "IO-Socket-SSL";
12977     version = "2.083";
12978     src = fetchurl {
12979       url = "mirror://cpan/authors/id/S/SU/SULLR/IO-Socket-SSL-2.083.tar.gz";
12980       hash = "sha256-kE7yh2VECpfYqaDfWX+MPX88sKBT0bCCwQvtA7yAIGk=";
12981     };
12982     propagatedBuildInputs = [ MozillaCA NetSSLeay ];
12983     # Fix path to default certificate store.
12984     postPatch = ''
12985       substituteInPlace lib/IO/Socket/SSL.pm \
12986         --replace "\$openssldir/cert.pem" "/etc/ssl/certs/ca-certificates.crt"
12987     '';
12988     doCheck = false; # tries to connect to facebook.com etc.
12989     meta = {
12990       description = "Nearly transparent SSL encapsulation for IO::Socket::INET";
12991       homepage = "https://github.com/noxxi/p5-io-socket-ssl";
12992       license = with lib.licenses; [ artistic1 gpl1Plus ];
12993     };
12994   };
12996   IOSocketSocks = buildPerlPackage {
12997     pname = "IO-Socket-Socks";
12998     version = "0.74";
12999     src = fetchurl {
13000       url = "mirror://cpan/authors/id/O/OL/OLEG/IO-Socket-Socks-0.74.tar.gz";
13001       hash = "sha256-N/Bxos9LqPCQoil8ZIK3osUJ61Lc1s5dgDXU7ixoJLE=";
13002     };
13003     meta = {
13004       description = "Provides a way to create socks client or server both 4 and 5 version";
13005       license = lib.licenses.free;
13006     };
13007   };
13009   IOSocketTimeout = buildPerlModule {
13010     pname = "IO-Socket-Timeout";
13011     version = "0.32";
13012     src = fetchurl {
13013       url = "mirror://cpan/authors/id/D/DA/DAMS/IO-Socket-Timeout-0.32.tar.gz";
13014       hash = "sha256-7fkV1sxmvuQ1A6ptwrNzNm846v9wFYIYPa0Qy4rfKXI=";
13015     };
13016     buildInputs = [ ModuleBuildTiny TestSharedFork TestTCP ];
13017     propagatedBuildInputs = [ PerlIOviaTimeout ];
13018     meta = {
13019       description = "IO::Socket with read/write timeout";
13020       license = with lib.licenses; [ artistic1 gpl1Plus ];
13021     };
13022   };
13024   IOString = buildPerlPackage {
13025     pname = "IO-String";
13026     version = "1.08";
13027     src = fetchurl {
13028       url = "mirror://cpan/authors/id/G/GA/GAAS/IO-String-1.08.tar.gz";
13029       hash = "sha256-Kj9K2EQtkHB4DljvQ3ItGdHuIagDv3yCBod6EEgt5aA=";
13030     };
13031     meta = {
13032       description = "Emulate file interface for in-core strings";
13033       license = with lib.licenses; [ artistic1 gpl1Plus ];
13034     };
13035   };
13037   IOStringy = buildPerlPackage {
13038     pname = "IO-Stringy";
13039     version = "2.113";
13040     src = fetchurl {
13041       url = "mirror://cpan/authors/id/C/CA/CAPOEIRAB/IO-Stringy-2.113.tar.gz";
13042       hash = "sha256-USIPyvn2amObadJR17B1e/QgL0+d69Rb3TQaaspi/k4=";
13043     };
13044     meta = {
13045       description = "I/O on in-core objects like strings and arrays";
13046       license = with lib.licenses; [ artistic1 gpl1Plus ];
13047     };
13048   };
13050   IOStty = buildPerlModule {
13051     pname = "IO-Stty";
13052     version = "0.04";
13053     src = fetchurl {
13054       url = "mirror://cpan/authors/id/T/TO/TODDR/IO-Stty-0.04.tar.gz";
13055       hash = "sha256-XJUJ8ahpPYKH+gE97wv4eqZM2ScThGHvjetVUDxmUcI=";
13056     };
13057     buildPhase = "make";
13058     checkPhase = "make test";
13059     installPhase = "make install";
13060     meta = {
13061       description = "Change and print terminal line settings";
13062       homepage = "https://wiki.github.com/toddr/IO-Stty";
13063       license = with lib.licenses; [ artistic1 gpl1Plus ];
13064     };
13065   };
13067   IOTee = buildPerlPackage {
13068     pname = "IO-Tee";
13069     version = "0.66";
13070     src = fetchurl {
13071       url = "mirror://cpan/authors/id/N/NE/NEILB/IO-Tee-0.66.tar.gz";
13072       hash = "sha256-LZznIGUW+cMIY6NnqhwrmzVwLjabCrqhX5n7LMCFUuA=";
13073     };
13074     meta = {
13075       description = "Multiplex output to multiple output handles";
13076       license = with lib.licenses; [ artistic1 gpl1Plus ];
13077     };
13078   };
13080   IOTieCombine = buildPerlPackage {
13081     pname = "IO-TieCombine";
13082     version = "1.005";
13083     src = fetchurl {
13084       url = "mirror://cpan/authors/id/R/RJ/RJBS/IO-TieCombine-1.005.tar.gz";
13085       hash = "sha256-QC1NuDALPScWMvSZXgreMp2JKAp+R/K634s4r25Vaa8=";
13086     };
13087     meta = {
13088       description = "Produce tied (and other) separate but combined variables";
13089       homepage = "https://github.com/rjbs/IO-TieCombine";
13090       license = with lib.licenses; [ artistic1 gpl1Plus ];
13091     };
13092   };
13094   IOTty = buildPerlPackage {
13095     pname = "IO-Tty";
13096     version = "1.17";
13097     src = fetchurl {
13098       url = "mirror://cpan/authors/id/T/TO/TODDR/IO-Tty-1.17.tar.gz";
13099       hash = "sha256-pfGoMCC8W13WwbVw9Ix1RuCo9/rBCgaHQLA5Ja2eFOg=";
13100     };
13101     patches = [ ../development/perl-modules/IO-Tty-fix-makefile.patch ];
13102     doCheck = !stdenv.hostPlatform.isDarwin;  # openpty fails in the sandbox
13103     meta = {
13104       description = "Low-level allocate a pseudo-Tty, import constants";
13105       license = with lib.licenses; [ artistic1 gpl1Plus ];
13106     };
13107   };
13109   IPCConcurrencyLimit = buildPerlPackage {
13110     pname = "IPC-ConcurrencyLimit";
13111     version = "0.17";
13112     src = fetchurl {
13113       url = "mirror://cpan/authors/id/M/MA/MATTK/IPC-ConcurrencyLimit-0.17.tar.gz";
13114       hash = "sha256-Lk11vlLpD8YFg31ajp+yacCofdPTYfMBLA/5Sl+9z+8=";
13115     };
13116     buildInputs = [ ExtUtilsMakeMaker ];
13117     propagatedBuildInputs = [ FilePath IO ];
13118     meta = {
13119       description = "Lock-based limits on cooperative multi-processing";
13120       license = with lib.licenses; [ artistic1 gpl1Plus ];
13121     };
13122   };
13124   IPCountry = buildPerlPackage {
13125     pname = "IP-Country";
13126     version = "2.28";
13127     src = fetchurl {
13128       url = "mirror://cpan/authors/id/N/NW/NWETTERS/IP-Country-2.28.tar.gz";
13129       hash = "sha256-iNuDOlqyLtBstT1vIFcl47U3GyVFlgU3OIhekfoQX3U=";
13130     };
13131     propagatedBuildInputs = [ GeographyCountries ];
13132     meta = {
13133       description = "Fast lookup of country codes from IP addresses";
13134       license = with lib.licenses; [ mit ];
13135       mainProgram = "ip2cc";
13136     };
13137   };
13139   GeographyCountries = buildPerlPackage {
13140     pname = "Geography-Countries";
13141     version = "2009041301";
13142     src = fetchurl {
13143       url = "mirror://cpan/authors/id/A/AB/ABIGAIL/Geography-Countries-2009041301.tar.gz";
13144       hash = "sha256-SMQuQOgoG6fJgXQ6hUxI5t7y1R6wkl6myW4lx0SX8g8=";
13145     };
13146     meta = {
13147       description = "2-letter, 3-letter, and numerical codes for countries";
13148       license = with lib.licenses; [ mit ];
13149     };
13150   };
13153   IPCRun = buildPerlPackage {
13154     pname = "IPC-Run";
13155     version = "20231003.0";
13156     src = fetchurl {
13157       url = "mirror://cpan/authors/id/T/TO/TODDR/IPC-Run-20231003.0.tar.gz";
13158       hash = "sha256-6yW731kT0pF5fvG/6ZjxUTC0VdPtAqrN5oVvCyXk/lc=";
13159     };
13160     doCheck = false; /* attempts a network connection to localhost */
13161     propagatedBuildInputs = [ IOTty ];
13162     buildInputs = [ Readonly ];
13163     meta = {
13164       description = "System() and background procs w/ piping, redirs, ptys (Unix, Win32)";
13165       license = with lib.licenses; [ artistic1 gpl1Plus ];
13166     };
13167   };
13169   IPCRun3 = buildPerlPackage {
13170     pname = "IPC-Run3";
13171     version = "0.048";
13172     src = fetchurl {
13173       url = "mirror://cpan/authors/id/R/RJ/RJBS/IPC-Run3-0.048.tar.gz";
13174       hash = "sha256-PYHDzBtc/2nMqTYeLG443wNSJRrntB4v8/68hQ5GNWU=";
13175     };
13176     meta = {
13177       description = "Run a subprocess with input/output redirection";
13178       license = with lib.licenses; [ artistic1 gpl1Plus bsd3 ];
13179     };
13180   };
13182   IPCShareLite = buildPerlPackage {
13183     pname = "IPC-ShareLite";
13184     version = "0.17";
13185     src = fetchurl {
13186       url = "mirror://cpan/authors/id/A/AN/ANDYA/IPC-ShareLite-0.17.tar.gz";
13187       hash = "sha256-FNQGuR2pbWUh0NGoLSKjBidHZSJrhrClbn/93Plq578=";
13188     };
13189     meta = {
13190       description = "Lightweight interface to shared memory";
13191       license = with lib.licenses; [ artistic1 gpl1Plus ];
13192     };
13193   };
13195   IPCSystemSimple = buildPerlPackage {
13196     pname = "IPC-System-Simple";
13197     version = "1.30";
13198     src = fetchurl {
13199       url = "mirror://cpan/authors/id/J/JK/JKEENAN/IPC-System-Simple-1.30.tar.gz";
13200       hash = "sha256-Iub1IitQXuUTBY/co1q3oeq4BTm5jlykqSOnCorpup4=";
13201     };
13202     meta = {
13203       description = "Run commands simply, with detailed diagnostics";
13204       homepage = "http://thenceforward.net/perl/modules/IPC-System-Simple";
13205       license = with lib.licenses; [ artistic1 gpl1Plus ];
13206     };
13207   };
13209   IPCSysV = buildPerlPackage {
13210     pname = "IPC-SysV";
13211     version = "2.09";
13212     src = fetchurl {
13213       url = "mirror://cpan/authors/id/M/MH/MHX/IPC-SysV-2.09.tar.gz";
13214       hash = "sha256-GJdUHHTVSP0QB+tsB/NBnTx1ddgFamK1ulJwohZtLb0=";
13215     };
13216     meta = {
13217       description = "System V IPC constants and system calls";
13218       license = with lib.licenses; [ artistic1 gpl1Plus ];
13219     };
13220   };
13222   IRCUtils = buildPerlPackage {
13223     pname = "IRC-Utils";
13224     version = "0.12";
13225     src = fetchurl {
13226       url = "mirror://cpan/authors/id/H/HI/HINRIK/IRC-Utils-0.12.tar.gz";
13227       hash = "sha256-x9YxHrbHnpg4M8nmtOjUJtB6mHTSD0vGQbMTuZybyKA=";
13228     };
13229     meta = {
13230       description = "Common utilities for IRC-related tasks";
13231       homepage = "https://metacpan.org/release/IRC-Utils";
13232       license = with lib.licenses; [ artistic1 gpl1Plus ];
13233       maintainers = with maintainers; [ sgo ];
13234     };
13235   };
13237   ImageExifTool = callPackage ../development/perl-modules/ImageExifTool { };
13239   Inline = buildPerlPackage {
13240     pname = "Inline";
13241     version = "0.86";
13242     src = fetchurl {
13243       url = "mirror://cpan/authors/id/I/IN/INGY/Inline-0.86.tar.gz";
13244       hash = "sha256-UQp94tARsNuAsIdOjA9zkAEJkQAK4TXP90dN8ebVHjo=";
13245     };
13246     buildInputs = [ TestWarn ];
13247     meta = {
13248       description = "Write Perl Subroutines in Other Programming Languages";
13249       longDescription = ''
13250         The Inline module allows you to put source code from other
13251         programming languages directly "inline" in a Perl script or
13252         module. The code is automatically compiled as needed, and then loaded
13253         for immediate access from Perl.
13254       '';
13255       homepage = "https://github.com/ingydotnet/inline-pm";
13256       license = with lib.licenses; [ artistic1 gpl1Plus ];
13257     };
13258   };
13260   InlineC = buildPerlPackage {
13261     pname = "Inline-C";
13262     version = "0.82";
13263     src = fetchurl {
13264       url = "mirror://cpan/authors/id/E/ET/ETJ/Inline-C-0.82.tar.gz";
13265       hash = "sha256-EPvPHhWNHI134d2TTjeRZbEmpFwTZFrQvp3AfRUd0Mw=";
13266     };
13267     buildInputs = [ FileCopyRecursive TestWarn YAMLLibYAML ];
13268     propagatedBuildInputs = [ Inline ParseRecDescent Pegex ];
13269     postPatch = ''
13270       # this test will fail with chroot builds
13271       rm -f t/08taint.t
13272       rm -f t/28autowrap.t
13273     '';
13274     meta = {
13275       description = "C Language Support for Inline";
13276       homepage = "https://github.com/ingydotnet/inline-c-pm";
13277       license = with lib.licenses; [ artistic1 gpl1Plus ];
13278     };
13279   };
13281   InlineJava = buildPerlPackage {
13282     pname = "Inline-Java";
13283     version = "0.67";
13285     src = fetchurl {
13286       url = "mirror://cpan/authors/id/E/ET/ETJ/Inline-Java-0.67.tar.gz";
13287       hash = "sha256-9YVLMcvOFjwz4mJN0jFODA2X4JRDcbcYjlkBuj9vpMk=";
13288     };
13290     buildInputs = [ FileWhich ];
13291     propagatedBuildInputs = [ Inline ];
13293     # TODO: upgrade https://github.com/NixOS/nixpkgs/pull/89731
13294     makeMakerFlags = [ "J2SDK=${pkgs.jdk8}" ];
13296     # FIXME: Apparently tests want to access the network.
13297     doCheck = false;
13299     meta = {
13300       description = "Write Perl classes in Java";
13301       longDescription = ''
13302         The Inline::Java module allows you to put Java source code directly
13303         "inline" in a Perl script or module.  A Java compiler is launched and
13304         the Java code is compiled.  Then Perl asks the Java classes what
13305         public methods have been defined.  These classes and methods are
13306         available to the Perl program as if they had been written in Perl.
13307       '';
13308       license = with lib.licenses; [ artistic2 ];
13309       broken = stdenv.hostPlatform.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.InlineJava.x86_64-darwin
13310     };
13311   };
13313   IPCSignal = buildPerlPackage {
13314     pname = "IPC-Signal";
13315     version = "1.00";
13316     src = fetchurl {
13317       url = "mirror://cpan/authors/id/R/RO/ROSCH/IPC-Signal-1.00.tar.gz";
13318       hash = "sha256-fCH5yMLQwPDw9G533nw9h53VYmaN3wUlh1w4zvIHb9A=";
13319     };
13320     meta = {
13321       description = "Utility functions dealing with signals";
13322       license = with lib.licenses; [ artistic1 gpl1Plus ];
13323     };
13324   };
13326   JavaScriptMinifierXS = buildPerlPackage {
13327     pname = "JavaScript-Minifier-XS";
13328     version = "0.15";
13329     src = fetchurl {
13330       url = "mirror://cpan/authors/id/G/GT/GTERMARS/JavaScript-Minifier-XS-0.15.tar.gz";
13331       hash = "sha256-XZsDT1jwtv9bZGR708WpzgWypw7e4zn7wxc67nR8wFA=";
13332     };
13333     buildInputs = [ TestDiagINC ];
13334     perlPreHook = lib.optionalString (stdenv.hostPlatform.isi686 || stdenv.hostPlatform.isDarwin) "export LD=$CC";
13335     meta = {
13336       description = "XS based JavaScript minifier";
13337       homepage = "https://metacpan.org/release/JavaScript-Minifier-XS";
13338       license = with lib.licenses; [ artistic1 gpl1Plus ];
13339     };
13340   };
13342   JavaScriptValueEscape = buildPerlModule {
13343     pname = "JavaScript-Value-Escape";
13344     version = "0.07";
13345     src = fetchurl {
13346       url = "mirror://cpan/authors/id/K/KA/KAZEBURO/JavaScript-Value-Escape-0.07.tar.gz";
13347       hash = "sha256-msvaNwjt4R9r6uXxEvGIw6kCOk0myOzYmqgru2kxo9w=";
13348     };
13349     meta = {
13350       description = "Avoid XSS with JavaScript value interpolation";
13351       homepage = "https://github.com/kazeburo/JavaScript-Value-Escape";
13352       license = with lib.licenses; [ artistic1 gpl1Plus ];
13353     };
13354   };
13356   JSON = buildPerlPackage {
13357     pname = "JSON";
13358     version = "4.10";
13359     src = fetchurl {
13360       url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/JSON-4.10.tar.gz";
13361       hash = "sha256-34tRQ9mn3pnEe1XxoXC9H2n3EZNcGGptwKtW3QV1jjU=";
13362     };
13363     # Do not abort cross-compilation on failure to load native JSON module into host perl
13364     preConfigure = lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
13365       substituteInPlace Makefile.PL --replace "exit 0;" ""
13366     '';
13367     buildInputs = [ TestPod ];
13368     meta = {
13369       description = "JSON (JavaScript Object Notation) encoder/decoder";
13370       license = with lib.licenses; [ artistic1 gpl1Plus ];
13371     };
13372   };
13374   JSONAny = buildPerlPackage {
13375     pname = "JSON-Any";
13376     version = "1.40";
13377     src = fetchurl {
13378       url = "mirror://cpan/authors/id/E/ET/ETHER/JSON-Any-1.40.tar.gz";
13379       hash = "sha256-CDJWJVpICU/ZrBI54P6ooQojg6nNHvSxxyZO3htEAKs=";
13380     };
13381     buildInputs = [ TestFatal TestNeeds TestWarnings TestWithoutModule ];
13382     meta = {
13383       description = "(DEPRECATED) Wrapper Class for the various JSON classes";
13384       homepage = "https://github.com/karenetheridge/JSON-Any";
13385       license = with lib.licenses; [ artistic1 gpl1Plus ];
13386     };
13387   };
13389   JSONCreate = buildPerlPackage {
13390     pname = "JSON-Create";
13391     version = "0.35";
13392     src = fetchurl {
13393       url = "mirror://cpan/authors/id/B/BK/BKB/JSON-Create-0.35.tar.gz";
13394       hash = "sha256-X67+DYM7gTJWiGUwjzI5082qG4oezJtWJNzx774QaD4=";
13395     };
13396     propagatedBuildInputs = [ JSONParse UnicodeUTF8 ];
13397     meta = {
13398       description = "Create JSON";
13399       license = with lib.licenses; [ artistic1 gpl1Plus ];
13400     };
13401   };
13403   JSONMaybeXS = buildPerlPackage {
13404     pname = "JSON-MaybeXS";
13405     version = "1.004005";
13406     src = fetchurl {
13407       url = "mirror://cpan/authors/id/E/ET/ETHER/JSON-MaybeXS-1.004005.tar.gz";
13408       hash = "sha256-9ba8GfV55mtymfh0i4rD4XGTbcTn/LcqiiV6m9SCozE=";
13409     };
13410     buildInputs = [ TestNeeds ];
13411     meta = {
13412       description = "Use Cpanel::JSON::XS with a fallback to JSON::XS and JSON::PP";
13413       license = with lib.licenses; [ artistic1 gpl1Plus ];
13414     };
13415   };
13417   JSONPP = buildPerlPackage {
13418     pname = "JSON-PP";
13419     version = "4.16";
13420     src = fetchurl {
13421       url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/JSON-PP-4.16.tar.gz";
13422       hash = "sha256-i8LxYrr8QmRcSJkFrXJUDw08KEs2DJYpkJUYPDDMl4k=";
13423     };
13424     meta = {
13425       description = "JSON::XS compatible pure-Perl module";
13426       license = with lib.licenses; [ artistic1 gpl1Plus ];
13427       mainProgram = "json_pp";
13428     };
13429   };
13431   JSONPPCompat5006 = buildPerlPackage {
13432     pname = "JSON-PP-Compat5006";
13433     version = "1.09";
13434     src = fetchurl {
13435       url = "mirror://cpan/authors/id/M/MA/MAKAMAKA/JSON-PP-Compat5006-1.09.tar.gz";
13436       hash = "sha256-GXAw31JjX5u+Ja8QdC7qW9dJcUcxGMETEfyry2LjcWo=";
13437     };
13438     meta = {
13439       description = "Helper module in using JSON::PP in Perl 5.6";
13440       license = with lib.licenses; [ artistic1 gpl1Plus ];
13441     };
13442   };
13444   JSONParse = buildPerlPackage {
13445     pname = "JSON-Parse";
13446     version = "0.62";
13447     src = fetchurl {
13448       url = "mirror://cpan/authors/id/B/BK/BKB/JSON-Parse-0.62.tar.gz";
13449       hash = "sha256-YnMYD5OSSXQB3dbYIHBvWqhsG+iIkd1qq02Qa1z/Ztk=";
13450     };
13451     meta = {
13452       description = "Parse JSON";
13453       license = with lib.licenses; [ artistic1 gpl1Plus ];
13454       mainProgram = "validjson";
13455     };
13456   };
13458   JSONValidator = buildPerlPackage {
13459     pname = "JSON-Validator";
13460     version = "5.14";
13461     src = fetchurl {
13462       url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/JSON-Validator-5.14.tar.gz";
13463       hash = "sha256-YISl1AdeQhqTj/su6XuFBPqjXoZtD3tbWBETr17ijhs=";
13464     };
13465     buildInputs = [ TestDeep ];
13466     propagatedBuildInputs = [ Mojolicious YAMLLibYAML ];
13467     meta = {
13468       description = "Validate data against a JSON schema";
13469       homepage = "https://github.com/mojolicious/json-validator";
13470       license = with lib.licenses; [ artistic2 ];
13471       maintainers = [ maintainers.sgo ];
13472     };
13473   };
13475   JSONWebToken = buildPerlModule {
13476     pname = "JSON-WebToken";
13477     version = "0.10";
13478     src = fetchurl {
13479       url = "mirror://cpan/authors/id/X/XA/XAICRON/JSON-WebToken-0.10.tar.gz";
13480       hash = "sha256-d8GCqYUo8XFNgq/FSNWztNyT5nBpEou5uUE/JM8HJIs=";
13481     };
13482     buildInputs = [ TestMockGuard TestRequires ];
13483     propagatedBuildInputs = [ JSON ModuleRuntime ];
13484     meta = {
13485       description = "JSON Web Token (JWT) implementation";
13486       homepage = "https://github.com/xaicron/p5-JSON-WebToken";
13487       license = with lib.licenses; [ artistic1 gpl1Plus ];
13488     };
13489   };
13491   JSONXS = buildPerlPackage {
13492     pname = "JSON-XS";
13493     version = "4.03";
13494     src = fetchurl {
13495       url = "mirror://cpan/authors/id/M/ML/MLEHMANN/JSON-XS-4.03.tar.gz";
13496       hash = "sha256-UVU29F8voafojIgkUzdY0BIdJnq5y0U6G1iHyKVrkGg=";
13497     };
13498     propagatedBuildInputs = [ TypesSerialiser ];
13499     buildInputs = [ CanaryStability ];
13500     meta = {
13501       description = "JSON serialising/deserialising, done correctly and fast";
13502       license = with lib.licenses; [ artistic1 gpl1Plus ];
13503       mainProgram = "json_xs";
13504     };
13505   };
13507   JSONXSVersionOneAndTwo = buildPerlPackage {
13508     pname = "JSON-XS-VersionOneAndTwo";
13509     version = "0.31";
13510     src = fetchurl {
13511       url = "mirror://cpan/authors/id/L/LB/LBROCARD/JSON-XS-VersionOneAndTwo-0.31.tar.gz";
13512       hash = "sha256-5gksTZYfrnd6z3/pn7PNbltxD+yFdlprkEF0gOTJSjQ=";
13513     };
13514     propagatedBuildInputs = [ JSONXS ];
13515     meta = {
13516       description = "Support versions 1 and 2 of JSON::XS";
13517       license = with lib.licenses; [ artistic1 gpl1Plus ];
13518     };
13519   };
13521   Later = buildPerlPackage {
13522     version = "0.21";
13523     pname = "Object-Realize-Later";
13524     src = fetchurl {
13525       url = "mirror://cpan/authors/id/M/MA/MARKOV/Object-Realize-Later-0.21.tar.gz";
13526       hash = "sha256-j3uWQMyONOqSvPbAEEmgPBReDrRuViJ14o3d06jW2Nk=";
13527     };
13528     meta = {
13529       description = "Delayed creation of objects";
13530       license = with lib.licenses; [ artistic1 gpl1Plus ];
13531     };
13532   };
13534   LatexIndent = buildPerlPackage rec {
13535     pname = "latexindent.pl";
13536     version = "3.21";
13538     src = fetchFromGitHub {
13539       owner = "cmhughes";
13540       repo = pname;
13541       rev = "V${version}";
13542       hash = "sha256-STXHOzsshyN7rc2VtJxxt6La4UPGpRYlMO8TX1Jd7pM=";
13543     };
13545     outputs = [ "out" ];
13547     propagatedBuildInputs = [ FileHomeDir YAMLTiny ];
13549     preBuild = ''
13550       patchShebangs ./latexindent.pl
13551     '';
13553     meta = {
13554       description = "Perl script to add indentation to LaTeX files";
13555       homepage = "https://github.com/cmhughes/latexindent.pl";
13556       license = lib.licenses.gpl3Plus;
13557     };
13558   };
13560   LaTeXML = buildPerlPackage rec {
13561     pname = "LaTeXML";
13562     version = "0.8.8";
13563     src = fetchurl {
13564       url = "mirror://cpan/authors/id/B/BR/BRMILLER/${pname}-${version}.tar.gz";
13565       hash = "sha256-fSu+LOJSuvhro/OIzQ3sOqSDj0nWErnsfMT/iBBbrcw=";
13566     };
13567     outputs = [ "out" "tex" ];
13568     propagatedBuildInputs = [ ArchiveZip DBFile FileWhich IOString ImageMagick ImageSize JSONXS LWP ParseRecDescent PodParser TextUnidecode XMLLibXSLT ];
13569     nativeBuildInputs = [ pkgs.makeWrapper ] ++ lib.optional stdenv.hostPlatform.isDarwin shortenPerlShebang;
13570     makeMakerFlags = [ "TEXMF=\${tex}" "NOMKTEXLSR" ];
13571     # shebangs need to be patched before executables are copied to $out
13572     preBuild = ''
13573       patchShebangs bin/
13574     '' + lib.optionalString stdenv.hostPlatform.isDarwin ''
13575       for file in bin/*; do
13576         shortenPerlShebang "$file"
13577       done
13578     '';
13579     postInstall = ''
13580       for file in latexmlc latexmlmath latexmlpost ; do
13581         # add runtime dependencies that cause silent failures when missing
13582         wrapProgram $out/bin/$file --prefix PATH : ${lib.makeBinPath [ pkgs.ghostscript pkgs.potrace ]}
13583       done
13584     '';
13585     passthru = {
13586       tlType = "run";
13587       pkgs = [ LaTeXML.tex ];
13588     };
13589     meta = {
13590       description = "Transforms TeX and LaTeX into XML/HTML/MathML";
13591       homepage = "https://dlmf.nist.gov/LaTeXML/";
13592       license = with lib.licenses; [ publicDomain ];
13593       maintainers = with maintainers; [ xworld21 ];
13594       mainProgram = "latexmlc";
13595     };
13596   };
13598   LEOCHARRECLI = buildPerlPackage {
13599     pname = "LEOCHARRE-CLI";
13600     version = "1.19";
13601     src = fetchurl {
13602       url = "mirror://cpan/authors/id/L/LE/LEOCHARRE/LEOCHARRE-CLI-1.19.tar.gz";
13603       hash = "sha256-N4NfEe41MmJBtNMDaK4bwZWlBBSzZi2z4TuGW9Uvzek=";
13604     };
13605     propagatedBuildInputs = [ FileWhich Filechmod LEOCHARREDebug Linuxusermod YAML ];
13606     meta = {
13607       description = "Useful subs for coding cli scripts";
13608       license = with lib.licenses; [ artistic1 gpl1Plus ];
13609     };
13610   };
13612   LEOCHARREDebug = buildPerlPackage {
13613     pname = "LEOCHARRE-Debug";
13614     version = "1.03";
13615     src = fetchurl {
13616       url = "mirror://cpan/authors/id/L/LE/LEOCHARRE/LEOCHARRE-Debug-1.03.tar.gz";
13617       hash = "sha256-wWZao6vUV8yGJLjEGMb4vfWPs6aG+O7VFc9+k1FN8ZI=";
13618     };
13619     meta = {
13620       description = "Debug sub";
13621       license = with lib.licenses; [ artistic1 gpl1Plus ];
13622     };
13623   };
13625   LexicalSealRequireHints = buildPerlModule {
13626     pname = "Lexical-SealRequireHints";
13627     version = "0.012";
13628     src = fetchurl {
13629       url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Lexical-SealRequireHints-0.012.tar.gz";
13630       hash = "sha256-wyvcOOBvjWyQdlu74xaMNYJH2n2uhbgLqEotoXY3V90=";
13631     };
13632     meta = {
13633       description = "Prevent leakage of lexical hints";
13634       license = with lib.licenses; [ artistic1 gpl1Plus ];
13635     };
13636   };
13638   libapreq2 = buildPerlPackage rec {
13639     pname = "libapreq2";
13640     version = "2.17";
13641     src = fetchurl {
13642       url = "mirror://apache/httpd/libapreq/${pname}-${version}.tar.gz";
13643       hash = "sha256-BGSH8ITBL6HIIq/8X33lbv7ZtIkFpCbmMaa5ScEU2Gw=";
13644     };
13645     outputs = [ "out" ];
13646     buildInputs = [ pkgs.apacheHttpd pkgs.apr pkgs.aprutil ApacheTest ExtUtilsXSBuilder ];
13647     propagatedBuildInputs = [ (pkgs.apacheHttpdPackages.mod_perl.override { inherit perl; }) ];
13648     makeMakerFlags = [
13649       "--with-apache2-src=${pkgs.apacheHttpd.dev}"
13650       "--with-apache2-apxs=${pkgs.apacheHttpd.dev}/bin/apxs"
13651       "--with-apache2-httpd=${pkgs.apacheHttpd.out}/bin/httpd"
13652       "--with-apr-config=${pkgs.apr.dev}/bin/apr-1-config"
13653       "--with-apu-config=${pkgs.aprutil.dev}/bin/apu-1-config"
13654     ];
13655     preConfigure = ''
13656       # override broken prereq check
13657       substituteInPlace configure --replace "prereq_check=\"\$PERL \$PERL_OPTS build/version_check.pl\"" "prereq_check=\"echo\""
13658       '';
13659     preBuild = ''
13660       substituteInPlace apreq2-config --replace "dirname" "${pkgs.coreutils}/bin/dirname"
13661       '';
13662     installPhase = ''
13663       mkdir $out
13665       # install the library
13666       make install DESTDIR=$out
13667       cp -r $out/${pkgs.apacheHttpd.dev}/. $out/.
13668       cp -r $out/$out/. $out/.
13670       # install the perl module
13671       pushd glue/perl
13672       perl Makefile.PL
13673       make install DESTDIR=$out
13674       cp -r $out/${perl}/lib/perl5 $out/lib/
13675       popd
13677       # install the apache module
13678       # https://computergod.typepad.com/home/2007/06/webgui_and_suse.html
13679       # NOTE: if using the apache module you must use "apreq" as the module name, not "apreq2"
13680       # services.httpd.extraModules = [ { name = "apreq"; path = "''${pkgs.perlPackages.libapreq2}/modules/mod_apreq2.so"; } ];
13681       pushd module
13682       make install DESTDIR=$out
13683       cp -r $out/${pkgs.apacheHttpd.out}/modules $out/
13684       popd
13686       rm -r $out/nix
13687     '';
13688     doCheck = false; # test would need to start apache httpd
13689     meta = {
13690       description = "Wrapper for libapreq2's module/handle API";
13691       license = with lib.licenses; [ asl20 ];
13692     };
13693   };
13695   libintl-perl = buildPerlPackage {
13696     pname = "libintl-perl";
13697     version = "1.33";
13698     src = fetchurl {
13699       url = "mirror://cpan/authors/id/G/GU/GUIDO/libintl-perl-1.33.tar.gz";
13700       hash = "sha256-USbtqczQ7rENuC3e9jy8r329dx54zA+xEMw7WmuGeec=";
13701     };
13702     meta = {
13703       description = "Portable l10n and i10n functions";
13704       license = with lib.licenses; [ gpl3Only ];
13705     };
13706   };
13708   libnet = buildPerlPackage {
13709     pname = "libnet";
13710     version = "3.15";
13711     src = fetchurl {
13712       url = "mirror://cpan/authors/id/S/SH/SHAY/libnet-3.15.tar.gz";
13713       hash = "sha256-px9NtYDhp2fWk2+qW6848fpheCQ0LaB4tWEoPob49KI=";
13714     };
13715     meta = {
13716       description = "Collection of network protocol modules";
13717       license = with lib.licenses; [ artistic1 gpl1Plus ];
13718     };
13719   };
13721   librelative = buildPerlPackage {
13722     pname = "lib-relative";
13723     version = "1.002";
13724     src = fetchurl {
13725       url = "mirror://cpan/authors/id/D/DB/DBOOK/lib-relative-1.002.tar.gz";
13726       hash = "sha256-5EcCFRZ8QGkXYD54vk2TESz2kTzTQq64ALQS4BHIp4s=";
13727     };
13728     meta = {
13729       description = "Add paths relative to the current file to @INC";
13730       homepage = "https://github.com/Grinnz/lib-relative";
13731       license = with lib.licenses; [ artistic2 ];
13732     };
13733   };
13735   libwwwperl = buildPerlPackage {
13736     pname = "libwww-perl";
13737     version = "6.72";
13738     src = fetchurl {
13739       url = "mirror://cpan/authors/id/O/OA/OALDERS/libwww-perl-6.72.tar.gz";
13740       hash = "sha256-6bg1T9XiC+IHr+I93VhPzVm/gpmNwHfez2hLodrloF0=";
13741     };
13742     buildInputs = [ HTTPDaemon TestFatal TestNeeds TestRequiresInternet ];
13743     propagatedBuildInputs = [ EncodeLocale FileListing HTMLParser HTTPCookieJar HTTPCookies HTTPDate HTTPMessage HTTPNegotiate LWPMediaTypes NetHTTP TryTiny URI WWWRobotRules ];
13744     meta = {
13745       homepage = "https://github.com/libwww-perl/libwww-perl";
13746       description = "World-Wide Web library for Perl";
13747       license = with lib.licenses; [ artistic1 gpl1Plus ];
13748     };
13749   };
13751   libxml_perl = buildPerlPackage {
13752     pname = "libxml-perl";
13753     version = "0.08";
13754     src = fetchurl {
13755       url = "mirror://cpan/authors/id/K/KM/KMACLEOD/libxml-perl-0.08.tar.gz";
13756       hash = "sha256-RXEFm3tdSLfOUrATieldeYv1zyAgUjwVP/J7SYFTycs=";
13757     };
13758     propagatedBuildInputs = [ XMLParser ];
13759     meta = {
13760       description = "Collection of Perl modules for working with XML";
13761       license = with lib.licenses; [ artistic1 gpl1Plus ];
13762     };
13763   };
13765   LinguaENFindNumber = buildPerlPackage {
13766     pname = "Lingua-EN-FindNumber";
13767     version = "1.32";
13768     src = fetchurl {
13769       url = "mirror://cpan/authors/id/N/NE/NEILB/Lingua-EN-FindNumber-1.32.tar.gz";
13770       hash = "sha256-HRdtHIY/uYRL0Z0sKk5ooO1z2hWPckqJQFuQ236NvQQ=";
13771     };
13772     propagatedBuildInputs = [ LinguaENWords2Nums ];
13773     meta = {
13774       description = "Locate (written) numbers in English text ";
13775       homepage = "https://github.com/neilb/Lingua-EN-FindNumber";
13776       license = with lib.licenses; [ artistic1 gpl1Plus ];
13777     };
13778   };
13780   LinguaENInflect = buildPerlPackage {
13781     pname = "Lingua-EN-Inflect";
13782     version = "1.905";
13783     src = fetchurl {
13784       url = "mirror://cpan/authors/id/D/DC/DCONWAY/Lingua-EN-Inflect-1.905.tar.gz";
13785       hash = "sha256-BcKew0guVyMTpg2iGBsLMMXbfPAfiudhatZ+G2YmMpY=";
13786     };
13787     meta = {
13788       description = "Convert singular to plural. Select 'a' or 'an'";
13789       license = with lib.licenses; [ artistic1 gpl1Plus ];
13790     };
13791   };
13793   LinguaENInflectNumber = buildPerlPackage {
13794     pname = "Lingua-EN-Inflect-Number";
13795     version = "1.12";
13796     src = fetchurl {
13797       url = "mirror://cpan/authors/id/N/NE/NEILB/Lingua-EN-Inflect-Number-1.12.tar.gz";
13798       hash = "sha256-Zvszg4USdG9cWX6AJk/qZmQ/fyZXDsL5IFthNa1nrL8=";
13799     };
13800     propagatedBuildInputs = [ LinguaENInflect ];
13801     meta = {
13802       description = "Force number of words to singular or plural";
13803       homepage = "https://github.com/neilbowers/Lingua-EN-Inflect-Number";
13804       license = with lib.licenses; [ artistic1 gpl1Plus ];
13805     };
13806   };
13808   LinguaENInflectPhrase = buildPerlPackage {
13809     pname = "Lingua-EN-Inflect-Phrase";
13810     version = "0.20";
13811     src = fetchurl {
13812       url = "mirror://cpan/authors/id/R/RK/RKITOVER/Lingua-EN-Inflect-Phrase-0.20.tar.gz";
13813       hash = "sha256-VQWJEamfF1XePrRJqZ/765LYjAH/XcYFEaJGeQUN3qg=";
13814     };
13815     buildInputs = [ TestNoWarnings ];
13816     propagatedBuildInputs = [ LinguaENInflectNumber LinguaENNumberIsOrdinal LinguaENTagger ];
13817     meta = {
13818       description = "Inflect short English Phrases";
13819       homepage = "https://metacpan.org/release/Lingua-EN-Inflect-Phrase";
13820       license = with lib.licenses; [ artistic1 gpl1Plus ];
13821     };
13822   };
13824   LinguaENNumberIsOrdinal = buildPerlPackage {
13825     pname = "Lingua-EN-Number-IsOrdinal";
13826     version = "0.05";
13827     src = fetchurl {
13828       url = "mirror://cpan/authors/id/R/RK/RKITOVER/Lingua-EN-Number-IsOrdinal-0.05.tar.gz";
13829       hash = "sha256-KNVpVADA9OK9IJeTy3T22iuSVzVqrLKUfGA0JeCWGNY=";
13830     };
13831     buildInputs = [ TestFatal TryTiny ];
13832     propagatedBuildInputs = [ LinguaENFindNumber ];
13833     meta = {
13834       description = "Detect if English number is ordinal or cardinal";
13835       homepage = "https://metacpan.org/release/Lingua-EN-Number-IsOrdinal";
13836       license = with lib.licenses; [ artistic1 gpl1Plus ];
13837     };
13838   };
13840   LinguaENTagger = buildPerlPackage {
13841     pname = "Lingua-EN-Tagger";
13842     version = "0.31";
13843     src = fetchurl {
13844       url = "mirror://cpan/authors/id/A/AC/ACOBURN/Lingua-EN-Tagger-0.31.tar.gz";
13845       hash = "sha256-lJ6Mh+SAj3uglrl5Ig/wgbvgO21XiQ0u7NS4Ouhy6ZM=";
13846     };
13847     propagatedBuildInputs = [ HTMLParser LinguaStem MemoizeExpireLRU ];
13848     meta = {
13849       description = "Part-of-speech tagger for English natural language processing";
13850       license = with lib.licenses; [ gpl3Only ];
13851     };
13852   };
13854   LinguaENWords2Nums = buildPerlPackage {
13855     pname = "Lingua-EN-Words2Nums";
13856     version = "0.18";
13857     src = fetchurl {
13858       url = "mirror://cpan/authors/id/J/JO/JOEY/Lingua-EN-Words2Nums-0.18.tar.gz";
13859       hash = "sha256-aGVWeXzSpOqgZvGbvwOrJcBieCksnq0vGH39kDHqHYU=";
13860     };
13861     meta = {
13862       description = "Convert English text to numbers";
13863       license = with lib.licenses; [ artistic1 gpl1Plus ];
13864     };
13865   };
13867   LinguaPTStemmer = buildPerlPackage {
13868     pname = "Lingua-PT-Stemmer";
13869     version = "0.02";
13870     src = fetchurl {
13871       url = "mirror://cpan/authors/id/N/NE/NEILB/Lingua-PT-Stemmer-0.02.tar.gz";
13872       hash = "sha256-WW3wH4q3n//9RQ6Ug2pUQ3HYpMk6FffojqLxt5xGhJ0=";
13873     };
13874     meta = {
13875       description = "Portuguese language stemming";
13876       homepage = "https://github.com/neilb/Lingua-PT-Stemmer";
13877       license = with lib.licenses; [ artistic1 gpl1Plus ];
13878     };
13879   };
13881   LinguaStem = buildPerlModule {
13882     pname = "Lingua-Stem";
13883     version = "2.31";
13884     src = fetchurl {
13885       url = "mirror://cpan/authors/id/S/SN/SNOWHARE/Lingua-Stem-2.31.tar.gz";
13886       hash = "sha256-qhqZMrZCflmCU+YajM0NBMxVn66dWNh3TCAncItjAmQ=";
13887     };
13888     doCheck = false;
13889     propagatedBuildInputs = [ LinguaPTStemmer LinguaStemFr LinguaStemIt LinguaStemRu LinguaStemSnowballDa SnowballNorwegian SnowballSwedish TextGerman ];
13890     meta = {
13891       description = "Stemming of words";
13892       license = with lib.licenses; [ artistic1 gpl1Plus ];
13893     };
13894   };
13896   LinguaStemFr = buildPerlPackage {
13897     pname = "Lingua-Stem-Fr";
13898     version = "0.02";
13899     src = fetchurl {
13900       url = "mirror://cpan/authors/id/S/SD/SDP/Lingua-Stem-Fr-0.02.tar.gz";
13901       hash = "sha256-nU9ks6iJihhTQyGFJtWsaKSh+ObEQY1rqV1i9fnV2W8=";
13902     };
13903     meta = {
13904       description = "Perl French Stemming";
13905       license = with lib.licenses; [ artistic1 gpl1Plus ];
13906     };
13907   };
13909   LinguaStemIt = buildPerlPackage {
13910     pname = "Lingua-Stem-It";
13911     version = "0.02";
13912     src = fetchurl {
13913       url = "mirror://cpan/authors/id/A/AC/ACALPINI/Lingua-Stem-It-0.02.tar.gz";
13914       hash = "sha256-OOZz+3T+ARWILlrbJnTesIH6tyHXKO4qgRQWPVDIB4g=";
13915     };
13916     meta = {
13917       description = "Porter's stemming algorithm for Italian";
13918       license = with lib.licenses; [ artistic1 gpl1Plus ];
13919     };
13920   };
13922   LinguaStemRu = buildPerlPackage {
13923     pname = "Lingua-Stem-Ru";
13924     version = "0.04";
13925     src = fetchurl {
13926       url = "mirror://cpan/authors/id/N/NE/NEILB/Lingua-Stem-Ru-0.04.tar.gz";
13927       hash = "sha256-EnDOt0dk/blYNwqAiDSvl26H9pqFRw+LxGJYeX6rUig=";
13928     };
13929     meta = {
13930       description = "Porter's stemming algorithm for Russian (KOI8-R only)";
13931       homepage = "https://github.com/neilb/Lingua-Stem-Ru";
13932       license = with lib.licenses; [ artistic1 gpl1Plus ];
13933     };
13934   };
13936   LinguaStemSnowballDa = buildPerlPackage {
13937     pname = "Lingua-Stem-Snowball-Da";
13938     version = "1.01";
13939     src = fetchurl {
13940       url = "mirror://cpan/authors/id/C/CI/CINE/Lingua-Stem-Snowball-Da-1.01.tar.gz";
13941       hash = "sha256-Ljm+TuAVx+xHwrBnhYAYp0BuONUSHWVcikaHSt+poFY=";
13942     };
13943     meta = {
13944       description = "Porters stemming algorithm for Denmark";
13945       license = with lib.licenses; [ gpl2Only ];
13946     };
13947   };
13949   LinguaTranslit = buildPerlPackage {
13950     pname = "Lingua-Translit";
13951     version = "0.29";
13952     src = fetchurl {
13953       url = "mirror://cpan/authors/id/A/AL/ALINKE/Lingua-Translit-0.29.tar.gz";
13954       hash = "sha256-GtL6vAB52tcIt9nVVDfJ67GS5hC/lgryWUWFi5JZd1I=";
13955     };
13956     doCheck = false;
13957     meta = {
13958       description = "Transliterates text between writing systems";
13959       license = with lib.licenses; [ artistic1 gpl1Plus ];
13960       mainProgram = "translit";
13961     };
13962   };
13964   LinkEmbedder = buildPerlPackage {
13965     pname = "LinkEmbedder";
13966     version = "1.20";
13967     src = fetchurl {
13968       url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/LinkEmbedder-1.20.tar.gz";
13969       hash = "sha256-sd6LTiXHIplEOeesA0vorjeiCUijG/SF8iu0hvzI3KU=";
13970     };
13971     buildInputs = [ TestDeep ];
13972     propagatedBuildInputs = [ Mojolicious ];
13973     meta = {
13974       description = "Embed / expand oEmbed resources and other URL / links";
13975       homepage = "https://github.com/jhthorsen/linkembedder";
13976       license = with lib.licenses; [ artistic2 ];
13977       maintainers = with maintainers; [ sgo ];
13978     };
13979   };
13981   LinuxACL = buildPerlPackage {
13982     pname = "Linux-ACL";
13983     version = "0.05";
13984     src = fetchurl {
13985       url = "mirror://cpan/authors/id/N/NA/NAZAROV/Linux-ACL-0.05.tar.gz";
13986       hash = "sha256-MSlAwfYPR8T8k/oKnSpiZCX6qDcEDIwvGtWO4J9i83E=";
13987     };
13988     buildInputs = [ pkgs.acl ];
13989     NIX_CFLAGS_LINK = "-L${pkgs.acl.out}/lib -lacl";
13990     meta = {
13991       description = "Perl extension for reading and setting Access Control Lists for files by libacl linux library";
13992       license = with lib.licenses; [ artistic1 gpl1Plus ];
13993       maintainers = teams.deshaw.members;
13994     };
13995   };
13997   LinuxDesktopFiles = buildPerlModule {
13998     pname = "Linux-DesktopFiles";
13999     version = "0.25";
14000     src = fetchurl {
14001       url = "mirror://cpan/authors/id/T/TR/TRIZEN/Linux-DesktopFiles-0.25.tar.gz";
14002       hash = "sha256-YDd6dPupD6RlIA7hx0MNvd5p1FTYX57hAcA5gDoH5fU=";
14003     };
14004     meta = {
14005       description = "Fast parsing of the Linux desktop files";
14006       homepage = "https://github.com/trizen/Linux-DesktopFiles";
14007       license = with lib.licenses; [ artistic2 ];
14008     };
14009   };
14011   LinuxDistribution = buildPerlModule {
14012     pname = "Linux-Distribution";
14013     version = "0.23";
14014     src = fetchurl {
14015       url = "mirror://cpan/authors/id/C/CH/CHORNY/Linux-Distribution-0.23.tar.gz";
14016       hash = "sha256-YD4n2mB7PocqZp16ZtdZgvCWkVPqstSyDDQTR7Tr2l8=";
14017     };
14018     # The tests fail if the distro it's built on isn't in the supported list.
14019     # This includes NixOS.
14020     doCheck = false;
14021     meta = {
14022       description = "Perl extension to detect on which Linux distribution we are running";
14023       license = with lib.licenses; [ artistic1 gpl1Plus ];
14024       platforms = lib.platforms.linux;
14025     };
14026   };
14028   LinuxFD = buildPerlModule {
14029     pname = "Linux-FD";
14030     version = "0.014";
14031     src = fetchurl {
14032       url = "mirror://cpan/authors/id/L/LE/LEONT/Linux-FD-0.014.tar.gz";
14033       hash = "sha256-eDHcJkxG2bh/dkNhdNdmFBRSQ2Mwg+CQqrTZo1LwQ60=";
14034     };
14035     buildInputs = [ TestException ];
14036     propagatedBuildInputs = [ SubExporter ];
14037     perlPreHook = lib.optionalString stdenv.hostPlatform.isi686 "export LD=$CC"; # fix undefined reference to `__stack_chk_fail_local'
14038     meta = {
14039       description = "Linux specific special filehandles";
14040       license = with lib.licenses; [ artistic1 gpl1Plus ];
14041       platforms = lib.platforms.linux;
14042     };
14043   };
14045   LinuxInotify2 = buildPerlPackage {
14046     pname = "Linux-Inotify2";
14047     version = "2.3";
14048     src = fetchurl {
14049       url = "mirror://cpan/authors/id/M/ML/MLEHMANN/Linux-Inotify2-2.3.tar.gz";
14050       hash = "sha256-y5kVD5/6UdvDvl7pjY6RyYzf6uIuuI5xjyzzZ78nDRc=";
14051     };
14052     propagatedBuildInputs = [ commonsense ];
14054     meta = {
14055       description = "Scalable directory/file change notification for Perl on Linux";
14056       license = with lib.licenses; [ artistic1 gpl1Plus ];
14057       platforms = lib.platforms.linux;
14058     };
14059   };
14061   Linuxusermod = buildPerlPackage {
14062     pname = "Linux-usermod";
14063     version = "0.69";
14064     src = fetchurl {
14065       url = "mirror://cpan/authors/id/V/VI/VIDUL/Linux-usermod-0.69.tar.gz";
14066       hash = "sha256-l8oYajxBa/ae1i2gRvGmDYjYm45u0lAIsvlueH3unWA=";
14067     };
14068     meta = {
14069       description = "This module adds, removes and modify user and group accounts according to the passwd and shadow files syntax";
14070       license = with lib.licenses; [ artistic1 gpl1Plus ];
14071       platforms = lib.platforms.linux;
14072     };
14073   };
14075   ListAllUtils = buildPerlPackage {
14076     pname = "List-AllUtils";
14077     version = "0.19";
14078     src = fetchurl {
14079       url = "mirror://cpan/authors/id/D/DR/DROLSKY/List-AllUtils-0.19.tar.gz";
14080       hash = "sha256-MKgUarIad4e4xW1YKc+afysVJ207P8oHM2rDjTAC/7w=";
14081     };
14082     propagatedBuildInputs = [ ListSomeUtils ListUtilsBy ];
14083     meta = {
14084       description = "Combines List::Util, List::SomeUtils and List::UtilsBy in one bite-sized package";
14085       homepage = "https://metacpan.org/release/List-AllUtils";
14086       license = with lib.licenses; [ artistic2 ];
14087     };
14088   };
14090   ListBinarySearch = buildPerlPackage {
14091     pname = "List-BinarySearch";
14092     version = "0.25";
14093     src = fetchurl {
14094       url = "mirror://cpan/authors/id/D/DA/DAVIDO/List-BinarySearch-0.25.tar.gz";
14095       hash = "sha256-yBEwcb1gQANe6KsBzxtyqRBXQZLx0XkQKud1qXPy6Co=";
14096     };
14097     meta = {
14098       description = "Binary Search within a sorted array";
14099       license = with lib.licenses; [ artistic1 gpl1Plus ];
14100     };
14101   };
14103   ListCompare = buildPerlPackage {
14104     pname = "List-Compare";
14105     version = "0.55";
14106     src = fetchurl {
14107       url = "mirror://cpan/authors/id/J/JK/JKEENAN/List-Compare-0.55.tar.gz";
14108       hash = "sha256-zHGUeYNledUrArwyjtgKmPZ53wQ6mbVxCrLBkWaeuDc=";
14109     };
14110     buildInputs = [ CaptureTiny ];
14111     meta = {
14112       description = "Compare elements of two or more lists";
14113       homepage = "http://thenceforward.net/perl/modules/List-Compare";
14114       license = with lib.licenses; [ artistic1 gpl1Plus ];
14115     };
14116   };
14118   ListMoreUtils = buildPerlPackage {
14119     pname = "List-MoreUtils";
14120     version = "0.430";
14121     src = fetchurl {
14122       url = "mirror://cpan/authors/id/R/RE/REHSACK/List-MoreUtils-0.430.tar.gz";
14123       hash = "sha256-Y7H3hCzULZtTjR404DMN5f8VWeTCc3NCUGQYJ29kZSc=";
14124     };
14125     propagatedBuildInputs = [ ExporterTiny ListMoreUtilsXS ];
14126     buildInputs = [ TestLeakTrace ];
14127     meta = {
14128       description = "Provide the stuff missing in List::Util";
14129       license = with lib.licenses; [ artistic1 gpl1Plus ];
14130     };
14131   };
14133   ListMoreUtilsXS = buildPerlPackage {
14134     pname = "List-MoreUtils-XS";
14135     version = "0.430";
14136     src = fetchurl {
14137       url = "mirror://cpan/authors/id/R/RE/REHSACK/List-MoreUtils-XS-0.430.tar.gz";
14138       hash = "sha256-6M5G1XwXnuzYdYKT6UAP8wCq8g/v4KnRW5/iMCucskI=";
14139     };
14140     preConfigure = ''
14141       export LD=$CC
14142     '';
14143     meta = {
14144       description = "Provide the stuff missing in List::Util in XS";
14145       homepage = "https://metacpan.org/release/List-MoreUtils-XS";
14146       license = with lib.licenses; [ asl20 ];
14147     };
14148   };
14150   ListSomeUtils = buildPerlPackage {
14151     pname = "List-SomeUtils";
14152     version = "0.59";
14153     src = fetchurl {
14154       url = "mirror://cpan/authors/id/D/DR/DROLSKY/List-SomeUtils-0.59.tar.gz";
14155       hash = "sha256-+rMDcuTGe/WkYGLaONHQyHVief6tqGbrQ5+ilXGi3Hs=";
14156     };
14157     buildInputs = [ TestLeakTrace ];
14158     propagatedBuildInputs = [ ModuleImplementation ];
14159     meta = {
14160       description = "Provide the stuff missing in List::Util";
14161       homepage = "https://metacpan.org/release/List-SomeUtils";
14162       license = with lib.licenses; [ artistic1 gpl1Plus ];
14163     };
14164   };
14166   ListUtilsBy = buildPerlModule {
14167     pname = "List-UtilsBy";
14168     version = "0.12";
14169     src = fetchurl {
14170       url = "mirror://cpan/authors/id/P/PE/PEVANS/List-UtilsBy-0.12.tar.gz";
14171       hash = "sha256-//EoH9Rp/pgrGlgES+z9lw8xO/86JuHHsrP0wKXtceA=";
14172     };
14173     meta = {
14174       description = "Higher-order list utility functions";
14175       license = with lib.licenses; [ artistic1 gpl1Plus ];
14176     };
14177   };
14179   LocaleCodes = buildPerlPackage {
14180     pname = "Locale-Codes";
14181     version = "3.76";
14182     src = fetchurl {
14183       url = "mirror://cpan/authors/id/S/SB/SBECK/Locale-Codes-3.76.tar.gz";
14184       hash = "sha256-Qo00GFUJ7fbaYoYoAJcohrsCwySTRU/L4Y+Zmk9DXzk=";
14185     };
14186     buildInputs = [ TestInter ];
14187     meta = {
14188       description = "Distribution of modules to handle locale codes";
14189       homepage = "https://github.com/SBECK-github/Locale-Codes";
14190       license = with lib.licenses; [ artistic1 gpl1Plus ];
14191     };
14192   };
14194   LocaleGettext = buildPerlPackage {
14195     pname = "gettext";
14196     version = "1.07";
14197     strictDeps = true;
14198     buildInputs = [ pkgs.gettext ];
14199     src = fetchurl {
14200       url = "mirror://cpan/authors/id/P/PV/PVANDRY/gettext-1.07.tar.gz";
14201       hash = "sha256-kJ1HlUaX58BCGPlykVt4e9EkTXXjvQFiC8Fn1bvEnBU=";
14202     };
14203     LANG="C";
14204     meta = {
14205       description = "Perl extension for emulating gettext-related API";
14206       license = with lib.licenses; [ artistic1 gpl1Plus ];
14207     };
14208   };
14210   LocaleMaketextLexiconGetcontext = buildPerlPackage {
14211     pname = "Locale-Maketext-Lexicon-Getcontext";
14212     version = "0.05";
14213     src = fetchurl {
14214       url = "mirror://cpan/authors/id/S/SA/SAPER/Locale-Maketext-Lexicon-Getcontext-0.05.tar.gz";
14215       hash = "sha256-dcsz35RypZYt5UCC9CxqdrJg/EBboQylMkb7H4LAkgg=";
14216     };
14217     propagatedBuildInputs = [ LocaleMaketextLexicon ];
14218     meta = {
14219       description = "PO file parser for Maketext";
14220       license = with lib.licenses; [ mit ];
14221     };
14222   };
14224   LocaleMOFile = buildPerlPackage {
14225     pname = "Locale-MO-File";
14226     version = "0.09";
14227     src = fetchurl {
14228       url = "mirror://cpan/authors/id/S/ST/STEFFENW/Locale-MO-File-0.09.tar.gz";
14229       hash = "sha256-lwNtw/Cds3BSrp2aUUSH6IS1bZDHbKEtbKtAXSNWSj8=";
14230     };
14231     propagatedBuildInputs = [ ConstFast MooXStrictConstructor MooXTypesMooseLike ParamsValidate namespaceautoclean ];
14232     buildInputs = [ TestDifferences TestException TestHexDifferences TestNoWarnings ];
14233     meta = {
14234       description = "Write or read gettext MO files";
14235       license = with lib.licenses; [ artistic1 gpl1Plus ];
14236     };
14237   };
14239   LocaleMaketextFuzzy = buildPerlPackage {
14240     pname = "Locale-Maketext-Fuzzy";
14241     version = "0.11";
14242     src = fetchurl {
14243       url = "mirror://cpan/authors/id/A/AU/AUDREYT/Locale-Maketext-Fuzzy-0.11.tar.gz";
14244       hash = "sha256-N4UXHOt4zHZxMZo6bYztmxkOCX382bKp68gEzRooL5Y=";
14245     };
14246     meta = {
14247       description = "Maketext from already interpolated strings";
14248       license = with lib.licenses; [ cc0 ];
14249     };
14250   };
14252   LocaleMaketextLexicon = buildPerlPackage {
14253     pname = "Locale-Maketext-Lexicon";
14254     version = "1.00";
14255     src = fetchurl {
14256       url = "mirror://cpan/authors/id/D/DR/DRTECH/Locale-Maketext-Lexicon-1.00.tar.gz";
14257       hash = "sha256-tz9rBKWNPw446/IRWkwVMvGk7vb6xcaipEnk4Uwd3Hw=";
14258     };
14259     meta = {
14260       description = "Use other catalog formats in Maketext";
14261       homepage = "https://search.cpan.org/dist/Locale-Maketext-Lexicon";
14262       license = with lib.licenses; [ mit ];
14263       mainProgram = "xgettext.pl";
14264     };
14265   };
14267   LocaleMsgfmt = buildPerlPackage {
14268     pname = "Locale-Msgfmt";
14269     version = "0.15";
14270     src = fetchurl {
14271       url = "mirror://cpan/authors/id/A/AZ/AZAWAWI/Locale-Msgfmt-0.15.tar.gz";
14272       hash = "sha256-wydoMcvuz1i+AggbzBgL00jao12iGnc3t7A4pZ9kOrQ=";
14273     };
14274     meta = {
14275       description = "Compile .po files to .mo files";
14276       license = with lib.licenses; [ artistic1 gpl1Plus ];
14277     };
14278   };
14280   LocalePO = buildPerlPackage {
14281     pname = "Locale-PO";
14282     version = "0.27";
14283     src = fetchurl {
14284       url = "mirror://cpan/authors/id/C/CO/COSIMO/Locale-PO-0.27.tar.gz";
14285       hash = "sha256-PJlKS2Pm5Og2xveak/UZIcq3fJDJdT/g+LVCkiDVFrk=";
14286     };
14287     propagatedBuildInputs = [ FileSlurp ];
14288     meta = {
14289       description = "Perl module for manipulating .po entries from GNU gettext";
14290       license = with lib.licenses; [ artistic1 gpl1Plus ];
14291     };
14292   };
14294   LocaleTextDomainOO = buildPerlPackage {
14295     pname = "Locale-TextDomain-OO";
14296     version = "1.036";
14297     src = fetchurl {
14298       url = "mirror://cpan/authors/id/S/ST/STEFFENW/Locale-TextDomain-OO-1.036.tar.gz";
14299       hash = "sha256-tReD4aiWICE+oqg+RbrsOqhunL4en6W590+HSbBUDjg=";
14300     };
14301     propagatedBuildInputs = [ ClassLoad Clone JSON LocaleMOFile LocalePO LocaleTextDomainOOUtil LocaleUtilsPlaceholderBabelFish LocaleUtilsPlaceholderMaketext LocaleUtilsPlaceholderNamed MooXSingleton PathTiny TieSub ];
14302     buildInputs = [ TestDifferences TestException TestNoWarnings ];
14303     meta = {
14304       description = "Locale::TextDomain::OO - Perl OO Interface to Uniforum Message Translation";
14305       license = with lib.licenses; [ artistic1 gpl1Plus ];
14306     };
14307   };
14309   LocaleTextDomainOOUtil = buildPerlPackage {
14310     pname = "Locale-TextDomain-OO-Util";
14311     version = "4.002";
14312     src = fetchurl {
14313       url = "mirror://cpan/authors/id/S/ST/STEFFENW/Locale-TextDomain-OO-Util-4.002.tar.gz";
14314       hash = "sha256-PF+gf2Xtd8Ap4g0kahBAQRSPGptH4332PzflHQK9RqA=";
14315     };
14316     propagatedBuildInputs = [ namespaceautoclean ];
14317     buildInputs = [ TestDifferences TestException TestNoWarnings ];
14318     meta = {
14319       description = "Locale::TextDomain::OO::Util - Lexicon utils";
14320       license = with lib.licenses; [ artistic1 gpl1Plus ];
14321     };
14322   };
14324   LocaleUtilsPlaceholderBabelFish = buildPerlPackage {
14325     pname = "Locale-Utils-PlaceholderBabelFish";
14326     version = "0.006";
14327     src = fetchurl {
14328       url = "mirror://cpan/authors/id/S/ST/STEFFENW/Locale-Utils-PlaceholderBabelFish-0.006.tar.gz";
14329       hash = "sha256-LhwAU5ljqeyr0se5te+QpWBna7A0giUXYin8jqS0pMw=";
14330     };
14331     propagatedBuildInputs = [ HTMLParser MooXStrictConstructor MooXTypesMooseLike namespaceautoclean ];
14332     buildInputs = [ TestDifferences TestException TestNoWarnings ];
14333     meta = {
14334       description = "Locale::Utils::PlaceholderBabelFish - Utils to expand BabelFish palaceholders";
14335       license = with lib.licenses; [ artistic1 gpl1Plus ];
14336     };
14337   };
14339   LocaleUtilsPlaceholderMaketext = buildPerlPackage {
14340     pname = "Locale-Utils-PlaceholderMaketext";
14341     version = "1.005";
14342     src = fetchurl {
14343       url = "mirror://cpan/authors/id/S/ST/STEFFENW/Locale-Utils-PlaceholderMaketext-1.005.tar.gz";
14344       hash = "sha256-UChgS9jzPY0yymkp+9DagP9L30KN6ARfs/Bbp9FdNOs=";
14345     };
14346     propagatedBuildInputs = [ MooXStrictConstructor MooXTypesMooseLike namespaceautoclean ];
14347     buildInputs = [ TestDifferences TestException TestNoWarnings ];
14348     meta = {
14349       description = "Locale::Utils::PlaceholderMaketext - Utils to expand maketext placeholders";
14350       license = with lib.licenses; [ artistic1 gpl1Plus ];
14351     };
14352   };
14354   LocaleUtilsPlaceholderNamed = buildPerlPackage {
14355     pname = "Locale-Utils-PlaceholderNamed";
14356     version = "1.004";
14357     src = fetchurl {
14358       url = "mirror://cpan/authors/id/S/ST/STEFFENW/Locale-Utils-PlaceholderNamed-1.004.tar.gz";
14359       hash = "sha256-b9eOojm1w1m6lCJ1N2b2OO5PkM0hdRpZs4YVXipFpr0=";
14360     };
14361     propagatedBuildInputs = [ MooXStrictConstructor MooXTypesMooseLike namespaceautoclean ];
14362     buildInputs = [ TestDifferences TestException TestNoWarnings ];
14363     meta = {
14364       description = "Locale::Utils::PlaceholderNamed - Utils to expand named placeholders";
14365       license = with lib.licenses; [ artistic1 gpl1Plus ];
14366     };
14367   };
14369   locallib = buildPerlPackage {
14370     pname = "local-lib";
14371     version = "2.000029";
14372     src = fetchurl {
14373       url = "mirror://cpan/authors/id/H/HA/HAARG/local-lib-2.000029.tar.gz";
14374       hash = "sha256-jfh6EMFMjpCcW0fFcB5LgYfVGeUlHofIBwmwK7M+/dc=";
14375     };
14376     propagatedBuildInputs = [ ModuleBuild ];
14377     meta = {
14378       description = "Create and use a local lib/ for perl modules with PERL5LIB";
14379       license = with lib.licenses; [ artistic1 gpl1Plus ];
14380     };
14381   };
14383   LockFileSimple = buildPerlPackage {
14384     pname = "LockFile-Simple";
14385     version = "0.208";
14386     src = fetchurl {
14387       url = "mirror://cpan/authors/id/S/SC/SCHWIGON/lockfile-simple/LockFile-Simple-0.208.tar.gz";
14388       hash = "sha256-Rcd4lrKloKRfYgKm+BP0N/+LKD+EocYNDE83MIAq86I=";
14389     };
14390     meta = {
14391       description = "Simple file locking scheme";
14392       license = with lib.licenses; [ artistic1 gpl2Plus ];
14393     };
14394   };
14396   LogAny = buildPerlPackage {
14397     pname = "Log-Any";
14398     version = "1.717";
14399     src = fetchurl {
14400       url = "mirror://cpan/authors/id/P/PR/PREACTION/Log-Any-1.717.tar.gz";
14401       hash = "sha256-VmSdoPOQAjDJ49KSUssKdIBvst3r0igFrNc2iVmmW8o=";
14402     };
14403     # Syslog test fails.
14404     preCheck = "rm t/syslog.t";
14405     meta = {
14406       description = "Bringing loggers and listeners together";
14407       homepage = "https://github.com/preaction/Log-Any";
14408       license = with lib.licenses; [ artistic1 gpl1Plus ];
14409     };
14410   };
14412   LogAnyAdapterLog4perl = buildPerlPackage {
14413     pname = "Log-Any-Adapter-Log4perl";
14414     version = "0.09";
14415     src = fetchurl {
14416       url = "mirror://cpan/authors/id/P/PR/PREACTION/Log-Any-Adapter-Log4perl-0.09.tar.gz";
14417       hash = "sha256-EZfT5BIhS+IIgAz3v1BXsf6hVCRTmip5J8/kb3FuwaU=";
14418     };
14419     propagatedBuildInputs = [ LogAny LogLog4perl ];
14420     meta = {
14421       description = "Log::Any adapter for Log::Log4perl";
14422       homepage = "https://github.com/preaction/Log-Any-Adapter-Log4perl";
14423       license = with lib.licenses; [ artistic1 gpl1Plus ];
14424     };
14425   };
14427   LogAnyAdapterTAP = buildPerlPackage {
14428     pname = "Log-Any-Adapter-TAP";
14429     version = "0.003003";
14430     src = fetchurl {
14431       url = "mirror://cpan/authors/id/N/NE/NERDVANA/Log-Any-Adapter-TAP-0.003003.tar.gz";
14432       hash = "sha256-Ex8GibK0KxsxRJcUxu2o+BHdlqfIZ0jx4DsjnP0BIcA=";
14433     };
14434     propagatedBuildInputs = [ LogAny TryTiny ];
14435     meta = {
14436       description = "Logger suitable for use with TAP test files";
14437       homepage = "https://github.com/silverdirk/perl-Log-Any-Adapter-TAP";
14438       license = with lib.licenses; [ artistic1 gpl1Plus ];
14439     };
14440   };
14442   LogContextual = buildPerlPackage {
14443     pname = "Log-Contextual";
14444     version = "0.008001";
14445     src = fetchurl {
14446       url = "mirror://cpan/authors/id/F/FR/FREW/Log-Contextual-0.008001.tar.gz";
14447       hash = "sha256-uTy8+7h5bVHINuOwAkPNpWMICMFSwU7uXyDKCclFGZM=";
14448     };
14449     buildInputs = [ TestFatal ];
14450     propagatedBuildInputs = [ DataDumperConcise ExporterDeclare Moo ];
14451     meta = {
14452       description = "Simple logging interface with a contextual log";
14453       homepage = "https://github.com/frioux/Log-Contextual";
14454       license = with lib.licenses; [ artistic1 gpl1Plus ];
14455     };
14456   };
14458   LogDispatch = buildPerlPackage {
14459     pname = "Log-Dispatch";
14460     version = "2.71";
14461     src = fetchurl {
14462       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Log-Dispatch-2.71.tar.gz";
14463       hash = "sha256-nWDZZIw1zidUcx603rfwWAns4b1jO3TXR5Wu2exzJXA=";
14464     };
14465     propagatedBuildInputs = [ DevelGlobalDestruction ParamsValidationCompiler Specio namespaceautoclean ];
14466     buildInputs = [ IPCRun3 TestFatal TestNeeds ];
14467     meta = {
14468       description = "Dispatches messages to one or more outputs";
14469       homepage = "https://metacpan.org/release/Log-Dispatch";
14470       license = with lib.licenses; [ artistic2 ];
14471     };
14472   };
14474   LogDispatchFileRotate = buildPerlPackage {
14475     pname = "Log-Dispatch-FileRotate";
14476     version = "1.38";
14477     src = fetchurl {
14478       url = "mirror://cpan/authors/id/M/MS/MSCHOUT/Log-Dispatch-FileRotate-1.38.tar.gz";
14479       hash = "sha256-tV1s7ePwoGQmSI+/pVT0VhMgsBTBAjiTztKVCOW85Ow=";
14480     };
14481     propagatedBuildInputs = [ DateManip LogDispatch ];
14482     buildInputs = [ PathTiny TestWarn ];
14483     meta = {
14484       description = "Log to Files that Archive/Rotate Themselves";
14485       homepage = "https://github.com/mschout/perl-log-dispatch-filerotate";
14486       license = with lib.licenses; [ artistic1 gpl1Plus ];
14487     };
14488   };
14490   LogfileRotate = buildPerlPackage {
14491     pname = "Logfile-Rotate";
14492     version = "1.04";
14493     src = fetchurl {
14494       url = "mirror://cpan/authors/id/P/PA/PAULG/Logfile-Rotate-1.04.tar.gz";
14495       hash = "sha256-gQ+LfM2GV9Ox71PNR1glR4Rc67WCArBVObNAhjjK2j4=";
14496     };
14497     meta = {
14498       description = "Perl module to rotate logfiles";
14499       homepage = "https://metacpan.org/dist/Logfile-Rotate";
14500       license = with lib.licenses; [ artistic1 gpl1Plus ];
14501       maintainers = with maintainers; [ tomasajt ];
14502     };
14503   };
14505   Logger = buildPerlPackage {
14506     pname = "Log-ger";
14507     version = "0.040";
14508     src = fetchurl {
14509       url = "mirror://cpan/authors/id/P/PE/PERLANCAR/Log-ger-0.040.tar.gz";
14510       hash = "sha256-6JEdM4ePoWmeQ+jQpU7V1WEEA4Z/9cM5+TQQPRfsZLA=";
14511     };
14512     meta = {
14513       description = "Lightweight, flexible logging framework";
14514       homepage = "https://metacpan.org/release/Log-ger";
14515       license = with lib.licenses; [ artistic1 gpl1Plus ];
14516       maintainers = [ maintainers.sgo ];
14517     };
14518   };
14520   LogHandler = buildPerlModule {
14521     pname = "Log-Handler";
14522     version = "0.90";
14523     src = fetchurl {
14524       url = "mirror://cpan/authors/id/B/BL/BLOONIX/Log-Handler-0.90.tar.gz";
14525       hash = "sha256-OlyA5xKEVHcPg6yrjL0+cOXsPVmmHcMnkqF48LMb900=";
14526     };
14527     propagatedBuildInputs = [ ParamsValidate ];
14528     meta = {
14529       description = "Log messages to several outputs";
14530       license = with lib.licenses; [ artistic1 gpl1Plus ];
14531     };
14532   };
14534   LogMessage = buildPerlPackage {
14535     pname = "Log-Message";
14536     version = "0.08";
14537     src = fetchurl {
14538       url = "mirror://cpan/authors/id/B/BI/BINGOS/Log-Message-0.08.tar.gz";
14539       hash = "sha256-vWl91iqvJtEY6fCggTQp3rHFRORQFVmHm2H8vf6Z/kY=";
14540     };
14541     meta = {
14542       description = "Powerful and flexible message logging mechanism";
14543       license = with lib.licenses; [ artistic1 gpl1Plus ];
14544     };
14545   };
14547   LogMessageSimple = buildPerlPackage {
14548     pname = "Log-Message-Simple";
14549     version = "0.10";
14550     src = fetchurl {
14551       url = "mirror://cpan/authors/id/B/BI/BINGOS/Log-Message-Simple-0.10.tar.gz";
14552       hash = "sha256-qhLRpMCsJguU1Ej6Af66JCqKhctsv9xmQy47W0aK3ZY=";
14553     };
14554     propagatedBuildInputs = [ LogMessage ];
14555     meta = {
14556       description = "Simplified interface to Log::Message";
14557       license = with lib.licenses; [ artistic1 gpl1Plus ];
14558     };
14559   };
14561   LogTrace = buildPerlPackage {
14562     pname = "Log-Trace";
14563     version = "1.070";
14564     src = fetchurl {
14565       url = "mirror://cpan/authors/id/B/BB/BBC/Log-Trace-1.070.tar.gz";
14566       hash = "sha256-nsuCWO8wwvJN7/SRckDQ/nMkLaWyGSQC95gVsJLtNuM=";
14567     };
14568     meta = {
14569       description = "Provides a unified approach to tracing";
14570       license = with lib.licenses; [ gpl1Only ];
14571     };
14572   };
14574   MCE = buildPerlPackage {
14575     pname = "MCE";
14576     version = "1.889";
14577     src = fetchurl {
14578       url = "mirror://cpan/authors/id/M/MA/MARIOROY/MCE-1.889.tar.gz";
14579       hash = "sha256-22FT5HTQRvwlMFC/U8VAAthM1Mp30hwrnfVv7rgJu+0=";
14580     };
14581     meta = {
14582       description = "Many-Core Engine for Perl providing parallel processing capabilities";
14583       homepage = "https://github.com/marioroy/mce-perl";
14584       license = with lib.licenses; [ artistic1 gpl1Plus ];
14585     };
14586   };
14588   LogLog4perl = buildPerlPackage {
14589     pname = "Log-Log4perl";
14590     version = "1.57";
14591     src = fetchurl {
14592       url = "mirror://cpan/authors/id/E/ET/ETJ/Log-Log4perl-1.57.tar.gz";
14593       hash = "sha256-D4/Ldjio89tMeX35T9vFYBN0kULy+Uy8lbQ8n8oJahM=";
14594     };
14595     meta = {
14596       description = "Log4j implementation for Perl";
14597       homepage = "https://mschilli.github.io/log4perl/";
14598       license = with lib.licenses; [ artistic1 gpl1Plus ];
14599       mainProgram = "l4p-tmpl";
14600     };
14601   };
14603   LogDispatchArray = buildPerlPackage {
14604     pname = "Log-Dispatch-Array";
14605     version = "1.005";
14606     src = fetchurl {
14607       url = "mirror://cpan/authors/id/R/RJ/RJBS/Log-Dispatch-Array-1.005.tar.gz";
14608       hash = "sha256-MRZAt6ln+N18m7QaInBzVlY21w30/MHUT+2KgiOzR8o=";
14609     };
14610     buildInputs = [ TestDeep ];
14611     propagatedBuildInputs = [ LogDispatch ];
14612     meta = {
14613       description = "Log events to an array (reference)";
14614       homepage = "https://github.com/rjbs/Log-Dispatch-Array";
14615       license = with lib.licenses; [ artistic1 gpl1Plus ];
14616     };
14617   };
14619   LogDispatchouli = buildPerlPackage {
14620     pname = "Log-Dispatchouli";
14621     version = "3.007";
14622     src = fetchurl {
14623       url = "mirror://cpan/authors/id/R/RJ/RJBS/Log-Dispatchouli-3.007.tar.gz";
14624       hash = "sha256-mIEYlllSukmo+nkaZTaIDIkBf0651ywXRe1n0VwNJyw=";
14625     };
14626     buildInputs = [ TestDeep TestFatal ];
14627     propagatedBuildInputs = [ LogDispatchArray StringFlogger SubExporterGlobExporter ];
14628     meta = {
14629       description = "Simple wrapper around Log::Dispatch";
14630       homepage = "https://github.com/rjbs/Log-Dispatchouli";
14631       license = with lib.licenses; [ artistic1 gpl1Plus ];
14632     };
14633   };
14635   LogJournald = buildPerlModule {
14636     pname = "Log-Journald";
14637     version = "0.30";
14638     src = fetchurl {
14639       url = "mirror://cpan/authors/id/L/LK/LKUNDRAK/Log-Journald-0.30.tar.gz";
14640       hash = "sha256-VZks+aHh+4M/QoMAUlv6fPftRrg+xBT4KgkXibN9CKM=";
14641     };
14642     nativeBuildInputs = [ pkgs.pkg-config ];
14643     buildInputs = [ pkgs.systemd ];
14644     postPatch = ''
14645       substituteInPlace Build.PL \
14646         --replace "libsystemd-journal" "libsystemd"
14647     '';
14648     meta = {
14649       description = "Send messages to a systemd journal";
14650       license = with lib.licenses; [ artistic1 gpl1Plus ];
14651     };
14652   };
14654   LogLogLite = buildPerlPackage {
14655     pname = "Log-LogLite";
14656     version = "0.82";
14657     src = fetchurl {
14658       url = "mirror://cpan/authors/id/R/RA/RANI/Log-LogLite-0.82.tar.gz";
14659       hash = "sha256-BQn7i8VDrJZ1pI6xplpjUoYIxsP99ioZ4XBzUA5RGms=";
14660     };
14661     propagatedBuildInputs = [ IOLockedFile ];
14662     meta = {
14663       description = "Helps us create simple logs for our application";
14664       license = with lib.licenses; [ artistic1 gpl1Plus ];
14665     };
14666   };
14668   LongJump = buildPerlPackage {
14669     pname = "Long-Jump";
14670     version = "0.000001";
14671     src = fetchurl {
14672       url = "mirror://cpan/authors/id/E/EX/EXODIST/Long-Jump-0.000001.tar.gz";
14673       hash = "sha256-1dZFbYaZK1Wdj2b8kJYPkZKSzTgDwTQD+qxXV2LHevQ=";
14674     };
14675     buildInputs = [ Test2Suite ];
14676     meta = {
14677       description = "Mechanism for returning to a specific point from a deeply nested stack";
14678       license = with lib.licenses; [ artistic1 gpl1Plus ];
14679     };
14680   };
14682   LWP = buildPerlPackage {
14683     pname = "libwww-perl";
14684     version = "6.72";
14685     src = fetchurl {
14686       url = "mirror://cpan/authors/id/O/OA/OALDERS/libwww-perl-6.72.tar.gz";
14687       hash = "sha256-6bg1T9XiC+IHr+I93VhPzVm/gpmNwHfez2hLodrloF0=";
14688     };
14689     propagatedBuildInputs = [ FileListing HTMLParser HTTPCookies HTTPCookieJar HTTPNegotiate NetHTTP TryTiny WWWRobotRules ];
14690     preCheck = ''
14691       export NO_NETWORK_TESTING=1
14692     '';
14693     # support cross-compilation by avoiding using `has_module` which does not work in miniperl (it requires B native module)
14694     postPatch = lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
14695       substituteInPlace Makefile.PL --replace 'if has_module' 'if 0; #'
14696     '';
14697     doCheck = !stdenv.hostPlatform.isDarwin;
14698     nativeCheckInputs = [ HTTPDaemon TestFatal TestNeeds TestRequiresInternet ];
14699     meta = {
14700       description = "World-Wide Web library for Perl";
14701       license = with lib.licenses; [ artistic1 gpl1Plus ];
14702     };
14703   };
14705   LWPAuthenOAuth = buildPerlPackage {
14706     pname = "LWP-Authen-OAuth";
14707     version = "1.02";
14708     src = fetchurl {
14709       url = "mirror://cpan/authors/id/T/TI/TIMBRODY/LWP-Authen-OAuth-1.02.tar.gz";
14710       hash = "sha256-544L196AAs+0dgBzJY1VXvVbLCfAepSz2KIWahf9lrw=";
14711     };
14712     propagatedBuildInputs = [ LWP ];
14713     meta = {
14714       description = "Generate signed OAuth requests";
14715       license = with lib.licenses; [ artistic1 gpl1Plus ];
14716     };
14717   };
14719   LWPMediaTypes = buildPerlPackage {
14720     pname = "LWP-MediaTypes";
14721     version = "6.04";
14722     src = fetchurl {
14723       url = "mirror://cpan/authors/id/O/OA/OALDERS/LWP-MediaTypes-6.04.tar.gz";
14724       hash = "sha256-jxvKEtqxahwqfAOknF5YzOQab+yVGfCq37qNrZl5Gdk=";
14725     };
14726     buildInputs = [ TestFatal ];
14727     meta = {
14728       description = "Guess media type for a file or a URL";
14729       homepage = "https://github.com/libwww-perl/lwp-mediatypes";
14730       license = with lib.licenses; [ artistic1 gpl1Plus ];
14731     };
14732   };
14734   LWPProtocolConnect = buildPerlPackage {
14735     pname = "LWP-Protocol-connect";
14736     version = "6.09";
14737     src = fetchurl {
14738       url = "mirror://cpan/authors/id/B/BE/BENNING/LWP-Protocol-connect-6.09.tar.gz";
14739       hash = "sha256-nyUjlHdeI6pCwxdmEeWTBjirUo1RkBELRzGqWwvzWhU=";
14740     };
14741     buildInputs = [ TestException ];
14742     propagatedBuildInputs = [ LWPProtocolHttps ];
14743     meta = {
14744       description = "Provides HTTP/CONNECT proxy support for LWP::UserAgent";
14745       license = with lib.licenses; [ artistic1 gpl1Plus ];
14746     };
14747   };
14749   LWPProtocolHttps = buildPerlPackage {
14750     pname = "LWP-Protocol-https";
14751     version = "6.11";
14752     src = fetchurl {
14753       url = "mirror://cpan/authors/id/O/OA/OALDERS/LWP-Protocol-https-6.11.tar.gz";
14754       hash = "sha256-ATLdvwNmFWXKhQUPKlCU+5Jjy7w8yxpNnEGsm7CDuRc=";
14755     };
14756     patches = [ ../development/perl-modules/lwp-protocol-https-cert-file.patch ];
14757     propagatedBuildInputs = [ IOSocketSSL LWP ];
14758     preCheck = ''
14759       export NO_NETWORK_TESTING=1
14760     '';
14761     buildInputs = [ TestRequiresInternet TestNeeds ];
14762     meta = {
14763       description = "Provide https support for LWP::UserAgent";
14764       homepage = "https://github.com/libwww-perl/LWP-Protocol-https";
14765       license = with lib.licenses; [ artistic1 gpl1Plus ];
14766     };
14767   };
14769   LWPProtocolhttp10 = buildPerlPackage {
14770     pname = "LWP-Protocol-http10";
14771     version = "6.03";
14772     src = fetchurl {
14773       url = "mirror://cpan/authors/id/G/GA/GAAS/LWP-Protocol-http10-6.03.tar.gz";
14774       hash = "sha256-8/+pEfnVkYHxcXkQ6iZiCQXCmLdNww99TlE57jAguNM=";
14775     };
14776     propagatedBuildInputs = [ LWP ];
14777     meta = {
14778       description = "Legacy HTTP/1.0 support for LWP";
14779       license = with lib.licenses; [ artistic1 gpl1Plus ];
14780     };
14781   };
14783   LWPUserAgentCached = buildPerlPackage {
14784     pname = "LWP-UserAgent-Cached";
14785     version = "0.08";
14786     src = fetchurl {
14787       url = "mirror://cpan/authors/id/O/OL/OLEG/LWP-UserAgent-Cached-0.08.tar.gz";
14788       hash = "sha256-Pc5atMeAQWVs54Vk92Az5b0ew4b1TS57MHQK5I7nh8M=";
14789     };
14790     propagatedBuildInputs = [ LWP ];
14791     meta = {
14792       description = "LWP::UserAgent with simple caching mechanism";
14793       license = with lib.licenses; [ artistic1 gpl1Plus ];
14794     };
14795   };
14797   LWPUserAgentDNSHosts = buildPerlModule {
14798     pname = "LWP-UserAgent-DNS-Hosts";
14799     version = "0.14";
14800     src = fetchurl {
14801       url = "mirror://cpan/authors/id/M/MA/MASAKI/LWP-UserAgent-DNS-Hosts-0.14.tar.gz";
14802       hash = "sha256-mWl5RD8Ib/yLNmvbukSGWR2T+SF7wgSz5dZrlHIghx8=";
14803     };
14804     propagatedBuildInputs = [ LWP ScopeGuard ];
14805     buildInputs = [ ModuleBuildTiny TestFakeHTTPD TestSharedFork TestTCP TestUseAllModules ];
14806     meta = {
14807       description = "Override LWP HTTP/HTTPS request's host like /etc/hosts";
14808       homepage = "https://github.com/masaki/p5-LWP-UserAgent-DNS-Hosts";
14809       license = with lib.licenses; [ artistic1 gpl1Plus ];
14810     };
14811   };
14813   LWPUserAgentDetermined = buildPerlPackage {
14814     pname = "LWP-UserAgent-Determined";
14815     version = "1.07";
14816     src = fetchurl {
14817       url = "mirror://cpan/authors/id/A/AL/ALEXMV/LWP-UserAgent-Determined-1.07.tar.gz";
14818       hash = "sha256-BtjVDozTaSoRy0+0Si+E5UdqmPDi5qSg386fZ+Vd21M=";
14819     };
14820     propagatedBuildInputs = [ LWP ];
14821     meta = {
14822       description = "Virtual browser that retries errors";
14823       license = with lib.licenses; [ artistic1 gpl1Plus ];
14824     };
14825   };
14827   LWPUserAgentMockable = buildPerlModule {
14828     pname = "LWP-UserAgent-Mockable";
14829     version = "1.18";
14830     src = fetchurl {
14831       url = "mirror://cpan/authors/id/M/MJ/MJEMMESON/LWP-UserAgent-Mockable-1.18.tar.gz";
14832       hash = "sha256-JYZPUOOlIZ+J00oYQlmFSUWussXtSBjzbw8wIShUQyQ=";
14833     };
14834     propagatedBuildInputs = [ HookLexWrap LWP SafeIsa ];
14835     # Tests require network connectivity
14836     # https://rt.cpan.org/Public/Bug/Display.html?id=63966 is the bug upstream,
14837     # which doesn't look like it will get fixed anytime soon.
14838     doCheck = false;
14839     buildInputs = [ ModuleBuildTiny TestRequiresInternet ];
14840     meta = {
14841       description = "Permits recording, and later playing back of LWP requests";
14842       license = with lib.licenses; [ artistic1 gpl1Plus ];
14843     };
14844   };
14846   LWPxParanoidAgent = buildPerlPackage {
14847     pname = "LWPx-ParanoidAgent";
14848     version = "1.12";
14849     src = fetchurl {
14850       url = "mirror://cpan/authors/id/S/SA/SAXJAZMAN/lwp/LWPx-ParanoidAgent-1.12.tar.gz";
14851       hash = "sha256-zAQa7bdOGDzfkcvryhx71tdk/e5o+9yE8r4IveTg0D0=";
14852     };
14853     doCheck = false; # 3 tests fail, probably because they try to connect to the network
14854     propagatedBuildInputs = [ LWP NetDNS ];
14855     meta = {
14856       description = "Subclass of LWP::UserAgent that protects you from harm";
14857       license = with lib.licenses; [ artistic1 gpl1Plus ];
14858     };
14859   };
14861   maatkit = callPackage ../development/perl-modules/maatkit { };
14863   MacPasteboard = buildPerlPackage {
14864     pname = "Mac-Pasteboard";
14865     version = "0.103";
14866     src = fetchurl {
14867       url = "mirror://cpan/authors/id/W/WY/WYANT/Mac-Pasteboard-0.103.tar.gz";
14868       hash = "sha256-L16N0tsNZEVVhITKbULYOcWpfuiqGyUOaU1n1bf2Y0w=";
14869     };
14870     buildInputs = [ pkgs.darwin.apple_sdk.frameworks.ApplicationServices ];
14871     meta = {
14872       description = "Manipulate Mac OS X pasteboards";
14873       license = with lib.licenses; [ artistic1 gpl1Plus ];
14874       platforms = lib.platforms.darwin;
14875       mainProgram = "pbtool";
14876     };
14877   };
14879   MacPropertyList = buildPerlPackage {
14880     pname = "Mac-PropertyList";
14881     version = "1.504";
14882     src = fetchurl {
14883       url = "mirror://cpan/authors/id/B/BD/BDFOY/Mac-PropertyList-1.504.tar.gz";
14884       hash = "sha256-aIl96Yw2j76c22iF1H3qADxG7Ho3MmNSPvZkVwc7eq4=";
14885     };
14886     propagatedBuildInputs = [ XMLEntities ];
14887     meta = {
14888       description = "Work with Mac plists at a low level";
14889       homepage = "https://github.com/briandfoy/mac-propertylist";
14890       license = lib.licenses.artistic2;
14891     };
14892   };
14894   MacSysProfile = buildPerlPackage {
14895     pname = "Mac-SysProfile";
14896     version = "0.05";
14897     src = fetchurl {
14898       url = "mirror://cpan/authors/id/D/DM/DMUEY/Mac-SysProfile-0.05.tar.gz";
14899       hash = "sha256-QDOXa3dbOcwqaTtyoC1l71p7oDveTU2w3/RuEmx9n2w=";
14900     };
14901     propagatedBuildInputs = [ MacPropertyList ];
14902     meta = {
14903       description = "Perl extension for OS X system_profiler";
14904       license = with lib.licenses; [ artistic1 gpl1Plus ];
14905       platforms = lib.platforms.darwin;
14906     };
14907   };
14909   MailAuthenticationResults = buildPerlPackage {
14910     pname = "Mail-AuthenticationResults";
14911     version = "2.20230112";
14912     src = fetchurl {
14913       url = "mirror://cpan/authors/id/M/MB/MBRADSHAW/Mail-AuthenticationResults-2.20230112.tar.gz";
14914       hash = "sha256-wtFEyuAiX4vJ0PX60cPxOdJ89TT85+rHB2T79m/SI0E=";
14915     };
14916     buildInputs = [ TestException ];
14917     propagatedBuildInputs = [ Clone JSON ];
14918     meta = {
14919       description = "Object Oriented Authentication-Results Headers";
14920       license = with lib.licenses; [ artistic1 gpl1Plus ];
14921     };
14922   };
14924   MailDMARC = buildPerlPackage {
14925     pname = "Mail-DMARC";
14926     version = "1.20230215";
14927     src = fetchurl {
14928       url = "mirror://cpan/authors/id/M/MB/MBRADSHAW/Mail-DMARC-1.20230215.tar.gz";
14929       hash = "sha256-V9z1R1nLkkSOVukUE0D2E0QnTFjZ3WWqkKqczw5+uQM=";
14930     };
14931     buildInputs = [ ExtUtilsMakeMaker FileShareDirInstall ];
14932     doCheck = false;  # uses actual DNS at runtime
14933     checkInputs = [ XMLSAX XMLValidatorSchema TestException TestFileShareDir TestMore TestOutput ];
14934     propagatedBuildInputs = [
14935       ConfigTiny DBDSQLite DBIxSimple EmailMIME EmailSender Encode FileShareDir GetoptLong
14936       IOCompress IO IOSocketSSL NetDNS NetIDNEncode NetIP NetSSLeay RegexpCommon Socket6
14937       SysSyslog URI XMLLibXML
14938     ];
14939     meta = {
14940       description = "Perl implementation of DMARC";
14941       homepage = "https://github.com/msimerson/mail-dmarc";
14942       license = with lib.licenses; [ artistic1 gpl1Plus ];
14943     };
14944   };
14946   MailMaildir = buildPerlPackage {
14947     version = "1.0.0";
14948     pname = "Mail-Maildir";
14949     src = fetchurl {
14950       url = "mirror://cpan/authors/id/Z/ZE/ZEROALTI/Mail-Maildir-100/Mail-Maildir-1.0.0.tar.bz2";
14951       hash = "sha256-RF6s2ixmN5ApbXGbypzHKYVUX6GgkBRhdnFgo6/DM88=";
14952     };
14953     meta = {
14954       description = "Handle Maildir folders";
14955       license = with lib.licenses; [ artistic1 gpl1Plus ];
14956     };
14957   };
14959   MailBox = buildPerlPackage {
14960     version = "3.010";
14961     pname = "Mail-Box";
14962     src = fetchurl {
14963       url = "mirror://cpan/authors/id/M/MA/MARKOV/Mail-Box-3.010.tar.gz";
14964       hash = "sha256-rhlPolDFRcm5FT4/tRA8qyn3nPKs1On9dc7FMiAalWQ=";
14965     };
14967     doCheck = false;
14969     propagatedBuildInputs = [ DevelGlobalDestruction FileRemove Later MailTransport ];
14970     meta = {
14971       description = "Manage a mailbox, a folder with messages";
14972       license = with lib.licenses; [ artistic1 gpl1Plus ];
14973     };
14974   };
14976   MailMboxMessageParser = buildPerlPackage {
14977     pname = "Mail-Mbox-MessageParser";
14978     version = "1.5111";
14979     src = fetchurl {
14980       url = "mirror://cpan/authors/id/D/DC/DCOPPIT/Mail-Mbox-MessageParser-1.5111.tar.gz";
14981       hash = "sha256-VyPAqpzBC6ue0eO/2dXJX3FZ5xwaR1QU6xrx3uOkYjc=";
14982     };
14983     buildInputs = [ FileSlurper TestCompile TestPod TestPodCoverage TextDiff UNIVERSALrequire URI ];
14984     propagatedBuildInputs = [ FileHandleUnget ];
14985     meta = {
14986       description = "Fast and simple mbox folder reader";
14987       homepage = "https://github.com/coppit/mail-mbox-messageparser";
14988       license = with lib.licenses; [ gpl2Only ];
14989       maintainers = with maintainers; [ romildo ];
14990     };
14991   };
14993   MailMessage = buildPerlPackage {
14994     pname = "Mail-Message";
14995     version = "3.013";
14996     src = fetchurl {
14997       url = "mirror://cpan/authors/id/M/MA/MARKOV/Mail-Message-3.013.tar.gz";
14998       hash = "sha256-yK1YiNsBWkUOti7Cqj6mbcLdwRtwpdtsjKGn+fgg6B8=";
14999     };
15000     propagatedBuildInputs = [ IOStringy MIMETypes MailTools URI UserIdentity ];
15001     meta = {
15002       description = "Processing MIME messages";
15003       homepage = "http://perl.overmeer.net/CPAN";
15004       license = with lib.licenses; [ artistic1 gpl1Plus ];
15005     };
15006   };
15008   MailDKIM = buildPerlPackage {
15009     pname = "Mail-DKIM";
15010     version = "1.20230911";
15011     src = fetchurl {
15012       url = "mirror://cpan/authors/id/M/MB/MBRADSHAW/Mail-DKIM-1.20230911.tar.gz";
15013       hash = "sha256-kecxcoK3JM+9LJtuZjDvFDKISLb8UgPv1w3sL7hyaMo=";
15014     };
15015     propagatedBuildInputs = [ CryptOpenSSLRSA MailAuthenticationResults MailTools NetDNS ];
15016     doCheck = false; # tries to access the domain name system
15017     buildInputs = [ NetDNSResolverMock TestRequiresInternet YAMLLibYAML ];
15018     meta = {
15019       description = "Signs/verifies Internet mail with DKIM/DomainKey signatures";
15020       license = with lib.licenses; [ artistic1 gpl1Plus ];
15021     };
15022   };
15024   MailIMAPClient = buildPerlPackage {
15025     pname = "Mail-IMAPClient";
15026     version = "3.43";
15027     src = fetchurl {
15028       url = "mirror://cpan/authors/id/P/PL/PLOBBES/Mail-IMAPClient-3.43.tar.gz";
15029       hash = "sha256-CTyX+sFbR6j+TSk27y3zd6v3fMirdAktISi7lF0ftG8=";
15030     };
15031     propagatedBuildInputs = [ ParseRecDescent ];
15032     meta = {
15033       description = "IMAP Client API";
15034       license = with lib.licenses; [ artistic1 gpl1Plus ];
15035     };
15036   };
15038   MailPOP3Client = buildPerlPackage {
15039     pname = "Mail-POP3Client";
15040     version = "2.21";
15041     src = fetchurl {
15042       url = "mirror://cpan/authors/id/S/SD/SDOWD/Mail-POP3Client-2.21.tar.gz";
15043       hash = "sha256-sW7yFJtuNXOHPx5ZDk1RNmxZlLi1MV3xaSXRe4niSQE=";
15044     };
15045     meta = {
15046       description = "Perl 5 module to talk to a POP3 (RFC1939) server";
15047       license = with lib.licenses; [ artistic1 gpl1Plus ];
15048     };
15049   };
15051   MailRFC822Address = buildPerlPackage {
15052     pname = "Mail-RFC822-Address";
15053     version = "0.3";
15054     src = fetchurl {
15055       url = "mirror://cpan/authors/id/P/PD/PDWARREN/Mail-RFC822-Address-0.3.tar.gz";
15056       hash = "sha256-NR70EE7LZ17K5pAIJD+ugkPRp+U8aB7rdZ57eBaEyKc=";
15057     };
15058     meta = {
15059       description = "Perl extension for validating email addresses according to RFC822";
15060       license = with lib.licenses; [ mit ];
15061     };
15062   };
15064   MailSender = buildPerlPackage {
15065     pname = "Mail-Sender";
15066     version = "0.903";
15067     src = fetchurl {
15068       url = "mirror://cpan/authors/id/C/CA/CAPOEIRAB/Mail-Sender-0.903.tar.gz";
15069       hash = "sha256-RBPrSfUgqDGBUYEcywWo1UKXOq2iCqUDrTL5/8mKOb8=";
15070     };
15071     meta = {
15072       description = "(DEPRECATED) module for sending mails with attachments through an SMTP server";
15073       homepage = "https://github.com/Perl-Email-Project/Mail-Sender";
15074       license = with lib.licenses; [ artistic1 gpl1Plus ];
15075     };
15076   };
15078   MailSendmail = buildPerlPackage {
15079     pname = "Mail-Sendmail";
15080     version = "0.80";
15081     src = fetchurl {
15082       url = "mirror://cpan/authors/id/N/NE/NEILB/Mail-Sendmail-0.80.tar.gz";
15083       hash = "sha256-W4qYy1zDnYBEGjiqsBCIXd+A5vzY5uAxQ5LLI+fCaOQ=";
15084     };
15085     # The test suite simply loads the module and attempts to send an email to
15086     # the module's author, the latter of which is a) more of an integration
15087     # test, b) impossible to verify, and c) won't work from a sandbox. Replace
15088     # it in its entirety with the following simple smoke test.
15089     checkPhase = ''
15090       perl -I blib/lib -MMail::Sendmail -e 'print "1..1\nok 1\n"'
15091     '';
15092     meta = {
15093       description = "Simple platform independent mailer";
15094       homepage = "https://github.com/neilb/Mail-Sendmail";
15095       license = with lib.licenses; [ artistic1 gpl1Plus ];
15096       maintainers = teams.deshaw.members;
15097     };
15098   };
15100   MailSPF = buildPerlPackage {
15101     pname = "Mail-SPF";
15102     version = "2.9.0";
15103     src = fetchurl {
15104       url = "mirror://cpan/authors/id/J/JM/JMEHNLE/mail-spf/Mail-SPF-v2.9.0.tar.gz";
15105       hash = "sha256-YctZFfHHrMepMf/Bv8EpG9+sVV4qRusjkbmV6p7LYWI=";
15106     };
15107     # remove this patch patches = [ ../development/perl-modules/Mail-SPF.patch ];
15109     buildInputs = [ ModuleBuild NetDNSResolverProgrammable ];
15110     propagatedBuildInputs = [ Error NetAddrIP NetDNS URI ];
15112     buildPhase = "perl Build.PL --install_base=$out --install_path=\"sbin=$out/bin\" --install_path=\"lib=$out/${perl.libPrefix}\"; ./Build build ";
15114     doCheck = false; # The main test performs network access
15115     meta = {
15116       description = "Object-oriented implementation of Sender Policy Framework";
15117       license = with lib.licenses; [ bsd3 ];
15118       mainProgram = "spfquery";
15119     };
15120   };
15123   MailTools = buildPerlPackage {
15124     pname = "MailTools";
15125     version = "2.21";
15126     src = fetchurl {
15127       url = "mirror://cpan/authors/id/M/MA/MARKOV/MailTools-2.21.tar.gz";
15128       hash = "sha256-Stm9aCa28DonJzMkZrG30piQyNmaMrSzsKjZJu4aRMs=";
15129     };
15130     propagatedBuildInputs = [ TimeDate ];
15131     meta = {
15132       description = "Various ancient e-mail related modules";
15133       homepage = "http://perl.overmeer.net/CPAN";
15134       license = with lib.licenses; [ artistic1 gpl1Plus ];
15135     };
15136   };
15138   MailTransport = buildPerlPackage {
15139     pname = "Mail-Transport";
15140     version = "3.005";
15141     src = fetchurl {
15142       url = "mirror://cpan/authors/id/M/MA/MARKOV/Mail-Transport-3.005.tar.gz";
15143       hash = "sha256-0Ny5P3BcEoXYCONN59htvijR7WaqKn3oMPZlH8NRlqM=";
15144     };
15145     propagatedBuildInputs = [ MailMessage ];
15146     meta = {
15147       description = "Email message exchange";
15148       homepage = "http://perl.overmeer.net/CPAN";
15149       license = with lib.licenses; [ artistic1 gpl1Plus ];
15150     };
15151   };
15153   MathBase85 = buildPerlPackage {
15154     pname = "Math-Base85";
15155     version = "0.5";
15156     src = fetchurl {
15157       url = "mirror://cpan/authors/id/P/PT/PTC/Math-Base85-0.5.tar.gz";
15158       hash = "sha256-CwX3+2UKh5ezktjqkPLnK/uNCFBcmi4LlV39RacqNOU=";
15159     };
15160     meta = {
15161       description = "Perl extension for base 85 numbers, as referenced by RFC 1924";
15162       license = with lib.licenses; [ artistic1 gpl1Plus ];
15163     };
15164   };
15166   MathBaseConvert = buildPerlPackage {
15167     pname = "Math-Base-Convert";
15168     version = "0.11";
15169     src = fetchurl {
15170       url = "mirror://cpan/authors/id/M/MI/MIKER/Math-Base-Convert-0.11.tar.gz";
15171       hash = "sha256-jAlxNV8kyTt553rVSkVwCQoaWY/Lm4b1wX66QvOLQOA=";
15172     };
15173     meta = {
15174       description = "Very fast base to base conversion";
15175       license = with lib.licenses; [ artistic1 gpl1Plus ];
15176     };
15177   };
15179   MathLibm = buildPerlPackage {
15180     pname = "Math-Libm";
15181     version = "1.00";
15182     src = fetchurl {
15183       url = "mirror://cpan/authors/id/D/DS/DSLEWART/Math-Libm-1.00.tar.gz";
15184       hash = "sha256-v9MJ8oOsjLm/AK+MfDoQvyWr/WQoYcICLvr/CkpSwnY=";
15185     };
15186     meta = {
15187       description = "Perl extension for the C math library, libm";
15188       license = with lib.licenses; [ artistic1 gpl1Plus ];
15189     };
15190   };
15192   MathCalcParser = buildPerlPackage {
15193     pname = "Math-Calc-Parser";
15194     version = "1.005";
15195     src = fetchurl {
15196       url = "mirror://cpan/authors/id/D/DB/DBOOK/Math-Calc-Parser-1.005.tar.gz";
15197       hash = "sha256-r8PrSWqzo6MBs0N68H4ZfrdDwGCQ8BAdrPggMC8rf3U=";
15198     };
15199     buildInputs = [ TestNeeds ];
15200     meta = {
15201       description = "Parse and evaluate mathematical expressions";
15202       homepage = "https://github.com/Grinnz/Math-Calc-Parser";
15203       broken = true;
15204       license = with lib.licenses; [ artistic2 ];
15205       maintainers = with maintainers; [ sgo ];
15206     };
15207   };
15209   MathCalcUnits = buildPerlPackage {
15210     pname = "Math-Calc-Units";
15211     version = "1.07";
15212     src = fetchurl {
15213       url = "mirror://cpan/authors/id/S/SF/SFINK/Math-Calc-Units-1.07.tar.gz";
15214       hash = "sha256-YePP2ye7O+4nvrlxJN2TB2DhA57cHreBbC9WJ3Zfj48=";
15215     };
15216     meta = {
15217       description = "Human-readable unit-aware calculator";
15218       license = with lib.licenses; [ artistic1 gpl2Only ];
15219       mainProgram = "ucalc";
15220     };
15221   };
15223   MathBigInt = buildPerlPackage {
15224     pname = "Math-BigInt";
15225     version = "1.999842";
15226     src = fetchurl {
15227       url = "mirror://cpan/authors/id/P/PJ/PJACKLAM/Math-BigInt-1.999842.tar.gz";
15228       hash = "sha256-VGAcUMaZPn7hPYw6wzRs8VpNgGMUnNu+husB5WEORnU=";
15229     };
15230     meta = {
15231       description = "Arbitrary size integer/float math package";
15232       license = with lib.licenses; [ artistic1 gpl1Plus ];
15233     };
15234   };
15236   MathBigIntGMP = buildPerlPackage {
15237     pname = "Math-BigInt-GMP";
15238     version = "1.6013";
15239     src = fetchurl {
15240       url = "mirror://cpan/authors/id/P/PJ/PJACKLAM/Math-BigInt-GMP-1.6013.tar.gz";
15241       hash = "sha256-yxqS4CJn1AUV+OA6TiEvZv0wfJdMu9MT4j3jL98Q9rU=";
15242     };
15243     buildInputs = [ pkgs.gmp ];
15244     doCheck = false;
15245     env.NIX_CFLAGS_COMPILE = "-I${pkgs.gmp.dev}/include";
15246     NIX_CFLAGS_LINK = "-L${pkgs.gmp.out}/lib -lgmp";
15247     propagatedBuildInputs = [ MathBigInt ];
15248     meta = {
15249       description = "Backend library for Math::BigInt etc. based on GMP";
15250       license = with lib.licenses; [ artistic1 gpl1Plus ];
15251     };
15252   };
15254   MathBigIntLite = buildPerlPackage {
15255     pname = "Math-BigInt-Lite";
15256     version = "0.29";
15257     src = fetchurl {
15258       url = "mirror://cpan/authors/id/P/PJ/PJACKLAM/Math-BigInt-Lite-0.29.tar.gz";
15259       hash = "sha256-R4YN/KYxl4txxKqZkaGynk7LrzYbW7nrOVl1t//Nd/U=";
15260     };
15261     propagatedBuildInputs = [ MathBigInt ];
15262     meta = {
15263       description = "What Math::BigInts are before they become big";
15264       license = with lib.licenses; [ artistic1 gpl1Plus ];
15265     };
15266   };
15268   MathClipper = buildPerlModule {
15269     pname = "Math-Clipper";
15270     version = "1.29";
15271     src = fetchurl {
15272       url = "mirror://cpan/authors/id/S/SH/SHELDRAKE/Math-Clipper-1.29.tar.gz";
15273       hash = "sha256-UyfE8TOGbenXmzGGV/Zp7LSZhgVQs5aGmNRyiHr4dZM=";
15274     };
15275     nativeBuildInputs = [ pkgs.ld-is-cc-hook ];
15276     buildInputs = [ ExtUtilsCppGuess ExtUtilsTypemapsDefault ExtUtilsXSpp ModuleBuildWithXSpp TestDeep ];
15277     meta = {
15278       description = "Polygon clipping in 2D";
15279       license = with lib.licenses; [ artistic1 gpl1Plus ];
15280     };
15281   };
15283   MathConvexHullMonotoneChain = buildPerlPackage {
15284     pname = "Math-ConvexHull-MonotoneChain";
15285     version = "0.01";
15286     src = fetchurl {
15287       url = "mirror://cpan/authors/id/S/SM/SMUELLER/Math-ConvexHull-MonotoneChain-0.01.tar.gz";
15288       hash = "sha256-KIvEWQgmMkVUj5FIKrEkiGjdne5Ef5yibK15YT47lPU=";
15289     };
15290     meta = {
15291       description = "Andrew's monotone chain algorithm for finding a convex hull in 2D";
15292       license = with lib.licenses; [ artistic1 gpl1Plus ];
15293     };
15294   };
15296   MathFibonacci = buildPerlPackage {
15297     pname = "Math-Fibonacci";
15298     version = "1.5";
15299     src = fetchurl {
15300       url = "mirror://cpan/authors/id/V/VI/VIPUL/Math-Fibonacci-1.5.tar.gz";
15301       hash = "sha256-cKgobpRVjfmdyS9S2D4eIKe494UrzDod59njOCYLmbo=";
15302     };
15303     meta = {
15304       description = "This module provides a few functions related to Fibonacci numbers";
15305       license = with lib.licenses; [ artistic2 ];
15306     };
15307   };
15309   MathGMP = buildPerlPackage {
15310     pname = "Math-GMP";
15311     version = "2.25";
15312     src = fetchurl {
15313       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Math-GMP-2.25.tar.gz";
15314       hash = "sha256-OCtx5Udi9jnppCqbBpNBUZh7pX0Ru3DTXjvsiNUEUM4=";
15315     };
15316     buildInputs = [ pkgs.gmp AlienGMP ];
15317     env.NIX_CFLAGS_COMPILE = "-I${pkgs.gmp.dev}/include";
15318     NIX_CFLAGS_LINK = "-L${pkgs.gmp.out}/lib -lgmp";
15319     meta = {
15320       description = "High speed arbitrary size integer math";
15321       license = with lib.licenses; [ lgpl21Plus ];
15322     };
15323   };
15325   MathGMPz = buildPerlPackage {
15326     pname = "Math-GMPz";
15327     version = "0.59";
15328     src = fetchurl {
15329       url = "mirror://cpan/authors/id/S/SI/SISYPHUS/Math-GMPz-0.59.tar.gz";
15330       hash = "sha256-mmrN45G0Ff5f7HwUyCTVUf/j+W81rycYRWuJ3jpkEaQ=";
15331     };
15332     buildInputs = [ TestWarn pkgs.gmp ];
15333     NIX_CFLAGS_LINK = "-L${pkgs.gmp.out}/lib -lgmp";
15334     meta = {
15335       description = "Perl interface to the GMP integer functions";
15336       homepage = "https://github.com/sisyphus/math-gmpz";
15337       license = with lib.licenses; [ artistic1 gpl1Plus ];
15338       maintainers = with maintainers; [ sgo ];
15339     };
15340   };
15342   MathGeometryVoronoi = buildPerlPackage {
15343     pname = "Math-Geometry-Voronoi";
15344     version = "1.3";
15345     src = fetchurl {
15346       url = "mirror://cpan/authors/id/S/SA/SAMTREGAR/Math-Geometry-Voronoi-1.3.tar.gz";
15347       hash = "sha256-cgdeTpiDzuUURrqVESZMjDKgFagPSlZIo/azgsU0QCw=";
15348     };
15349     propagatedBuildInputs = [ ClassAccessor ParamsValidate ];
15350     meta = {
15351       description = "Compute Voronoi diagrams from sets of points";
15352       license = with lib.licenses; [ artistic1 gpl1Plus ];
15353     };
15354   };
15356   MathInt128 = buildPerlPackage {
15357     pname = "Math-Int128";
15358     version = "0.22";
15359     src = fetchurl {
15360       url = "mirror://cpan/authors/id/S/SA/SALVA/Math-Int128-0.22.tar.gz";
15361       hash = "sha256-pjDKQBdThmlV8Rc4SKtbSsStXKatkIfxHN+R3ehRGbw=";
15362     };
15363     propagatedBuildInputs = [ MathInt64 ];
15364     meta = {
15365       description = "Manipulate 128 bits integers in Perl";
15366       homepage = "https://metacpan.org/release/Math-Int128";
15367       license = with lib.licenses; [ artistic1 gpl1Plus ];
15368       broken = stdenv.hostPlatform.is32bit; # compiler doesn't support a 128-bit integer type
15369     };
15370   };
15372   MathInt64 = buildPerlPackage {
15373     pname = "Math-Int64";
15374     version = "0.54";
15375     src = fetchurl {
15376       url = "mirror://cpan/authors/id/S/SA/SALVA/Math-Int64-0.54.tar.gz";
15377       hash = "sha256-3PxR5phDfqa5zv4CdiFcVs22p/hePiSitrQYnxlg01E=";
15378     };
15379     meta = {
15380       description = "Manipulate 64 bits integers in Perl";
15381       homepage = "https://metacpan.org/release/Math-Int64";
15382       license = with lib.licenses; [ artistic1 gpl1Plus ];
15383     };
15384   };
15386   MathPari = buildPerlPackage rec {
15387     pname = "Math-Pari";
15388     version = "2.030523";
15389     nativeBuildInputs = [ pkgs.unzip ];
15390     pariversion = "2.1.7";
15391     pari_tgz = fetchurl {
15392       url = "https://pari.math.u-bordeaux.fr/pub/pari/OLD/2.1/pari-${pariversion}.tgz";
15393       hash = "sha256-kULyza8wg8iWLxpcK7Dp/okV99lJDAMxKsI2HH6hVfo=";
15394     };
15395     # Workaround build failure on -fno-common toolchains:
15396     #   ld: libPARI/libPARI.a(compat.o):(.bss+0x8): multiple definition of
15397     #   `overflow'; Pari.o:(.bss+0x80): first defined here
15398     env.NIX_CFLAGS_COMPILE = "-fcommon";
15399     preConfigure = "cp ${pari_tgz} pari-${pariversion}.tgz";
15400     makeMakerFlags = [ "pari_tgz=pari-${pariversion}.tgz" ];
15401     src = fetchurl {
15402       url = "mirror://cpan/authors/id/I/IL/ILYAZ/modules/Math-Pari-2.030518.zip";
15403       hash = "sha256-3DiVWpaQvmuvqN4lJiEjd8Psn+jaXsAiY6nK+UtYu5E=";
15404     };
15405     meta = {
15406       description = "Perl interface to PARI";
15407       license = with lib.licenses; [ artistic1 gpl1Plus gpl2Only ];
15408     };
15409   };
15411   MathPlanePath = buildPerlPackage {
15412     pname = "Math-PlanePath";
15413     version = "129";
15414     src = fetchurl {
15415       url = "mirror://cpan/authors/id/K/KR/KRYDE/Math-PlanePath-129.tar.gz";
15416       hash = "sha256-jaFdDk1Qd7bF0gN2WyiFv3KOUJ4y3pJkYFwIYhN+OX4=";
15417     };
15418     propagatedBuildInputs = [ MathLibm constant-defer ];
15419     buildInputs = [ DataFloat MathBigIntLite NumberFraction ];
15420     meta = {
15421       description = "Points on a path through the 2-D plane";
15422       license = with lib.licenses; [ gpl3Plus ];
15423     };
15424   };
15426   MathPrimeUtil = buildPerlPackage {
15427     pname = "Math-Prime-Util";
15428     version = "0.73";
15429     src = fetchurl {
15430       url = "mirror://cpan/authors/id/D/DA/DANAJ/Math-Prime-Util-0.73.tar.gz";
15431       hash = "sha256-Svpt2M25dJm9TsppJYYYEsKdn1oPGsJ62dLZybVgKJQ=";
15432     };
15433     propagatedBuildInputs = [ MathPrimeUtilGMP ];
15434     buildInputs = [ TestWarn ];
15435     meta = {
15436       description = "Utilities related to prime numbers, including fast sieves and factoring";
15437       homepage = "https://github.com/danaj/Math-Prime-Util";
15438       license = with lib.licenses; [ artistic1 gpl1Plus ];
15439       maintainers = [ maintainers.sgo ];
15440     };
15441   };
15443   MathPrimeUtilGMP = buildPerlPackage {
15444     pname = "Math-Prime-Util-GMP";
15445     version = "0.52";
15446     src = fetchurl {
15447       url = "mirror://cpan/authors/id/D/DA/DANAJ/Math-Prime-Util-GMP-0.52.tar.gz";
15448       hash = "sha256-JpfH/Vx+Nf3sf1DtVqZ76Aei8iZXWJ5jfa01knRAA74=";
15449     };
15450     buildInputs = [ pkgs.gmp ];
15451     env.NIX_CFLAGS_COMPILE = "-I${pkgs.gmp.dev}/include";
15452     NIX_CFLAGS_LINK = "-L${pkgs.gmp.out}/lib -lgmp";
15453     meta = {
15454       description = "Utilities related to prime numbers, using GMP";
15455       homepage = "https://github.com/danaj/Math-Prime-Util-GMP";
15456       license = with lib.licenses; [ artistic1 gpl1Plus ];
15457       maintainers = [ maintainers.sgo ];
15458     };
15459   };
15461   MathProvablePrime = buildPerlPackage {
15462     pname = "Math-ProvablePrime";
15463     version = "0.51";
15464     src = fetchurl {
15465       url = "mirror://cpan/authors/id/F/FE/FELIPE/Math-ProvablePrime-0.51.tar.gz";
15466       hash = "sha256-D7YWRJ+weorR6KgJxwghthjlPcD/3ayWVnYY3jPEbBE=";
15467     };
15468     buildInputs = [ FileWhich TestClass TestDeep TestException TestFailWarnings ];
15469     propagatedBuildInputs = [ BytesRandomSecureTiny ];
15470     meta = {
15471       description = "Generate a provable prime number, in pure Perl";
15472       license = with lib.licenses; [ artistic1 gpl1Plus ];
15473       maintainers = [ maintainers.sgo ];
15474     };
15475   };
15477   MathRandom = buildPerlPackage {
15478     pname = "Math-Random";
15479     version = "0.72";
15480     src = fetchurl {
15481       url = "mirror://cpan/authors/id/G/GR/GROMMEL/Math-Random-0.72.tar.gz";
15482       hash = "sha256-vgUiMogR2W3lBdnrrD0JY1kCb6jVw497uZmnjsW8JUw=";
15483     };
15484     meta = {
15485       description = "Random Number Generators";
15486       license = with lib.licenses; [ artistic1 gpl1Plus publicDomain ];
15487     };
15488   };
15490   MathRandomISAAC = buildPerlPackage {
15491     pname = "Math-Random-ISAAC";
15492     version = "1.004";
15493     src = fetchurl {
15494       url = "mirror://cpan/authors/id/J/JA/JAWNSY/Math-Random-ISAAC-1.004.tar.gz";
15495       hash = "sha256-J3PwL78gfpdF52oDffCL9ajMmH7SPFcEDOf3sVYfK3w=";
15496     };
15497     buildInputs = [ TestNoWarnings ];
15498     meta = {
15499       description = "Perl interface to the ISAAC PRNG algorithm";
15500       homepage = "https://search.cpan.org/dist/Math-Random-ISAAC";
15501       license = with lib.licenses; [ publicDomain mit artistic2 gpl1Plus ];
15502     };
15503   };
15505   MathRandomMTAuto = buildPerlPackage {
15506     pname = "Math-Random-MT-Auto";
15507     version = "6.23";
15508     src = fetchurl {
15509       url = "mirror://cpan/authors/id/J/JD/JDHEDDEN/Math-Random-MT-Auto-6.23.tar.gz";
15510       hash = "sha256-WLy1rTFilk/1oMTS3LqgICwshdnEcElvO3qZh1d3YxM=";
15511     };
15512     propagatedBuildInputs = [ ObjectInsideOut ];
15513     meta = {
15514       description = "Auto-seeded Mersenne Twister PRNGs";
15515       license = with lib.licenses; [ bsd3 ];
15516     };
15517   };
15519   MathRandomSecure = buildPerlPackage {
15520     pname = "Math-Random-Secure";
15521     version = "0.080001";
15522     src = fetchurl {
15523       url = "mirror://cpan/authors/id/F/FR/FREW/Math-Random-Secure-0.080001.tar.gz";
15524       hash = "sha256-v6Sk6BfspyIGfB/z2hKrWrgNbFfapeXnq5NQyixx6zU=";
15525     };
15526     buildInputs = [ ListMoreUtils TestSharedFork TestWarn ];
15527     propagatedBuildInputs = [ CryptRandomSource MathRandomISAAC ];
15528     meta = {
15529       description = "Cryptographically-secure, cross-platform replacement for rand()";
15530       homepage = "https://github.com/frioux/Math-Random-Secure";
15531       license = with lib.licenses; [ artistic2 ];
15532     };
15533   };
15535   MathRound = buildPerlPackage {
15536     pname = "Math-Round";
15537     version = "0.07";
15538     src = fetchurl {
15539       url = "mirror://cpan/authors/id/G/GR/GROMMEL/Math-Round-0.07.tar.gz";
15540       hash = "sha256-c6cymoblSlwppEA4LlgDCVtY8zEp5hod8Ak7SCTekyc=";
15541     };
15542     meta = {
15543       description = "Perl extension for rounding numbers";
15544       license = with lib.licenses; [ artistic1 gpl1Plus ];
15545     };
15546   };
15548   MathVecStat = buildPerlPackage {
15549     pname = "Math-VecStat";
15550     version = "0.08";
15551     src = fetchurl {
15552       url = "mirror://cpan/authors/id/A/AS/ASPINELLI/Math-VecStat-0.08.tar.gz";
15553       hash = "sha256-QJqODksQJcjoD2KPZal3iqd6soUWFAbKSmwJexNlbQ0=";
15554     };
15555     meta = {
15556       description = "Some basic numeric stats on vectors";
15557       license = with lib.licenses; [ artistic1 gpl1Plus ];
15558     };
15559   };
15561   MaxMindDBCommon = buildPerlPackage {
15562     pname = "MaxMind-DB-Common";
15563     version = "0.040001";
15564     src = fetchurl {
15565       url = "mirror://cpan/authors/id/M/MA/MAXMIND/MaxMind-DB-Common-0.040001.tar.gz";
15566       hash = "sha256-a8bfS9NjANB6pKX4GYrmaUyn4xPAOBCciNvDqZeyG9c=";
15567     };
15568     propagatedBuildInputs = [ DataDumperConcise DateTime ListAllUtils MooXStrictConstructor ];
15569     meta = {
15570       description = "Code shared by the MaxMind DB reader and writer modules";
15571       homepage = "https://metacpan.org/release/MaxMind-DB-Common";
15572       license = with lib.licenses; [ artistic2 ];
15573     };
15574   };
15576   MaxMindDBReader = buildPerlPackage {
15577     pname = "MaxMind-DB-Reader";
15578     version = "1.000014";
15579     src = fetchurl {
15580       url = "mirror://cpan/authors/id/M/MA/MAXMIND/MaxMind-DB-Reader-1.000014.tar.gz";
15581       hash = "sha256-OCAHj5yWf5qIch6kDKBeSZnBxTAb68HRGQYPntXOOak=";
15582     };
15583     propagatedBuildInputs = [ DataIEEE754 DataPrinter DataValidateIP MaxMindDBCommon ];
15584     buildInputs = [ PathClass TestBits TestFatal TestNumberDelta TestRequires ];
15585     meta = {
15586       description = "Read MaxMind DB files and look up IP addresses";
15587       homepage = "https://metacpan.org/release/MaxMind-DB-Reader";
15588       license = with lib.licenses; [ artistic2 ];
15589     };
15590   };
15592   MaxMindDBReaderXS = buildPerlModule {
15593     pname = "MaxMind-DB-Reader-XS";
15594     version = "1.000009";
15595     src = fetchurl {
15596       url = "mirror://cpan/authors/id/M/MA/MAXMIND/MaxMind-DB-Reader-XS-1.000009.tar.gz";
15597       hash = "sha256-qm+4f+0Z1UnymxNd55l+6SsSJ9Ymyw6JBgCpHK3DBTo=";
15598     };
15599     propagatedBuildInputs = [ pkgs.libmaxminddb MathInt128 MaxMindDBReader ];
15600     buildInputs = [ NetWorks PathClass TestFatal TestNumberDelta TestRequires ];
15601     meta = {
15602       description = "Fast XS implementation of MaxMind DB reader";
15603       homepage = "https://metacpan.org/release/MaxMind-DB-Reader-XS";
15604       license = with lib.licenses; [ artistic2 ];
15605       broken = stdenv.hostPlatform.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.MaxMindDBReaderXS.x86_64-darwin
15606     };
15607   };
15609   MaxMindDBWriter = buildPerlModule {
15610     pname = "MaxMind-DB-Writer";
15611     version = "0.300003";
15612     src = fetchurl {
15613       url = "mirror://cpan/authors/id/M/MA/MAXMIND/MaxMind-DB-Writer-0.300003.tar.gz";
15614       hash = "sha256-ulP1upZfekd/ZxZNl7R1oMESCIcv7fI4mIVQ2SvN6z4=";
15615     };
15616     propagatedBuildInputs = [ DigestSHA1 MaxMindDBReader MooseXParamsValidate MooseXStrictConstructor NetWorks SerealDecoder SerealEncoder ];
15617     buildInputs = [ DevelRefcount JSON TestBits TestDeep TestFatal TestHexDifferences TestRequires TestWarnings ];
15618     hardeningDisable = [ "format" ];
15619     meta = {
15620       description = "Create MaxMind DB database files";
15621       homepage = "https://metacpan.org/release/MaxMind-DB-Writer";
15622       license = with lib.licenses; [ artistic1 gpl1Plus ];
15623       broken = stdenv.hostPlatform.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.MaxMindDBWriter.x86_64-darwin
15624     };
15625   };
15627   Memoize = buildPerlPackage {
15628     pname = "Memoize";
15629     version = "1.16";
15630     src = fetchurl {
15631       url = "mirror://cpan/authors/id/A/AR/ARISTOTLE/Memoize-1.16.tar.gz";
15632       hash = "sha256-CRlSvPSS7O41ueW41ykgxYAjRB15IIwduHg3xcV4B74=";
15633     };
15634     meta = {
15635       description = "Make functions faster by trading space for time";
15636       license = with lib.licenses; [ artistic1 gpl1Plus ];
15637     };
15638   };
15640   MemoizeExpireLRU = buildPerlPackage {
15641     pname = "Memoize-ExpireLRU";
15642     version = "0.56";
15643     src = fetchurl {
15644       url = "mirror://cpan/authors/id/N/NE/NEILB/Memoize-ExpireLRU-0.56.tar.gz";
15645       hash = "sha256-7oNjAcu6uaJLBfxlft+pS3/YV42YNuVmoZHQpbAc1/Y=";
15646     };
15647     meta = {
15648       description = "Expiry plug-in for Memoize that adds LRU cache expiration";
15649       homepage = "https://github.com/neilb/Memoize-ExpireLRU";
15650       license = with lib.licenses; [ artistic1 gpl1Plus ];
15651     };
15652   };
15654   MemoryProcess = buildPerlPackage {
15655     pname = "Memory-Process";
15656     version = "0.06";
15657     src = fetchurl {
15658       url = "mirror://cpan/authors/id/S/SK/SKIM/Memory-Process-0.06.tar.gz";
15659       hash = "sha256-NYFEiP/SnJdiFiXqOz1wCvv6YO0FW9dZ1OWNnI/UTk4=";
15660     };
15661     buildInputs = [ CaptureTiny TestNoWarnings ];
15662     propagatedBuildInputs = [ MemoryUsage Readonly ];
15663     meta = {
15664       description = "Memory process reporting";
15665       homepage = "https://github.com/michal-josef-spacek/Memory-Process";
15666       license = lib.licenses.bsd3;
15667       platforms = lib.platforms.linux;
15668     };
15669   };
15671   MemoryUsage = buildPerlPackage {
15672     pname = "Memory-Usage";
15673     version = "0.201";
15674     src = fetchurl {
15675       url = "mirror://cpan/authors/id/D/DO/DONEILL/Memory-Usage-0.201.tar.gz";
15676       hash = "sha256-jyr60h5Ap0joHIwPPkDKcYwU3bn7LYgL+9KK6RPOU0k=";
15677     };
15678     meta = {
15679       description = "Tools to determine actual memory usage";
15680       license = with lib.licenses; [ artistic1 gpl1Plus ];
15681     };
15682   };
15684   Menlo = buildPerlPackage {
15685     pname = "Menlo";
15686     version = "1.9019";
15687     src = fetchurl {
15688       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Menlo-1.9019.tar.gz";
15689       hash = "sha256-O1c/aOezo2qHyGC+JYWZMw+sJItRiFTftWV6xIPcpWU=";
15690     };
15691     propagatedBuildInputs = [ CPANCommonIndex CPANMetaCheck CaptureTiny ExtUtilsHelpers ExtUtilsInstallPaths Filepushd HTTPTinyish ModuleCPANfile ParsePMFile StringShellQuote Win32ShellQuote locallib ];
15692     meta = {
15693       description = "CPAN client";
15694       homepage = "https://github.com/miyagawa/cpanminus";
15695       license = with lib.licenses; [ artistic1 gpl1Plus ];
15696     };
15697   };
15699   MenloLegacy = buildPerlPackage {
15700     pname = "Menlo-Legacy";
15701     version = "1.9022";
15702     src = fetchurl {
15703       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Menlo-Legacy-1.9022.tar.gz";
15704       hash = "sha256-pqysP+4xioBLQ53lSsvHwn8LRM/a2FUbvJzUWYarwgE=";
15705     };
15706     propagatedBuildInputs = [ Menlo ];
15707     meta = {
15708       description = "Legacy internal and client support for Menlo";
15709       homepage = "https://github.com/miyagawa/cpanminus";
15710       license = with lib.licenses; [ artistic1 gpl1Plus ];
15711     };
15712   };
15714   MetaBuilder = buildPerlModule {
15715     pname = "Meta-Builder";
15716     version = "0.004";
15717     src = fetchurl {
15718       url = "mirror://cpan/authors/id/E/EX/EXODIST/Meta-Builder-0.004.tar.gz";
15719       hash = "sha256-rLSZqnIG652yHrhTV6dFIb/jva5KZBbVCnx1uTnPVv4=";
15720     };
15721     buildInputs = [ FennecLite TestException ];
15722     meta = {
15723       description = "Tools for creating Meta objects to track custom metrics";
15724       license = with lib.licenses; [ artistic1 gpl1Plus ];
15725     };
15726   };
15728   MetaCPANClient = buildPerlPackage {
15729     pname = "MetaCPAN-Client";
15730     version = "2.030000";
15731     src = fetchurl {
15732       url = "mirror://cpan/authors/id/M/MI/MICKEY/MetaCPAN-Client-2.030000.tar.gz";
15733       hash = "sha256-2bdlxSN3VPFyYmljgqc4XZCy0BmGl5gXhisWZLBt068=";
15734     };
15736     # Most tests are online, so we only include offline tests
15737     postPatch = ''
15738       substituteInPlace Makefile.PL \
15739         --replace '"t/*.t t/api/*.t"' \
15740         '"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"'
15741     '';
15743     buildInputs = [ LWPProtocolHttps TestFatal TestNeeds ];
15744     propagatedBuildInputs = [ IOSocketSSL JSONMaybeXS Moo RefUtil SafeIsa TypeTiny URI ];
15745     meta = {
15746       description = "Comprehensive, DWIM-featured client to the MetaCPAN API";
15747       homepage = "https://github.com/metacpan/metacpan-client";
15748       license = with lib.licenses; [ artistic1 gpl1Plus ];
15749       maintainers = with maintainers; [ sgo ];
15750     };
15751   };
15753   MethodSignaturesSimple = buildPerlPackage {
15754     pname = "Method-Signatures-Simple";
15755     version = "1.07";
15756     src = fetchurl {
15757       url = "mirror://cpan/authors/id/R/RH/RHESA/Method-Signatures-Simple-1.07.tar.gz";
15758       hash = "sha256-yM19Rxl3zIh2BEGSq9mKga/d/yomu5oQu+NY76Nx2tw=";
15759     };
15760     propagatedBuildInputs = [ DevelDeclare ];
15761     meta = {
15762       description = "Basic method declarations with signatures, without source filters";
15763       license = with lib.licenses; [ artistic1 gpl1Plus ];
15764     };
15765   };
15767   MetricsAny = buildPerlModule {
15768     pname = "Metrics-Any";
15769     version = "0.10";
15770     src = fetchurl {
15771       url = "mirror://cpan/authors/id/P/PE/PEVANS/Metrics-Any-0.10.tar.gz";
15772       hash = "sha256-qQ6t+civJKUWu5obZwYfZBhT+QuP7p/8JNK7lyDouZs=";
15773     };
15774     buildInputs = [ Test2Suite ];
15775     meta = {
15776       description = "Abstract collection of monitoring metrics";
15777       license = with lib.licenses; [ artistic1 gpl1Plus ];
15778     };
15779   };
15781   # TODO: use CPAN version
15782   MHonArc = buildPerlPackage {
15783     pname = "MHonArc";
15784     version = "2.6.24";
15786     src = fetchurl {
15787       url = "mirror://cpan/authors/id/L/LD/LDIDRY/MHonArc-2.6.24.tar.gz";
15788       hash = "sha256-RX3HN07lnLdaBynlHO8vLFK0gYD3Odj9lW6hmIKBXzM=";
15789     };
15791     outputs = [ "out" "dev" ]; # no "devdoc"
15793     installTargets = [ "install" ];
15795     meta = {
15796       homepage = "https://www.mhonarc.org/";
15797       description = "Mail-to-HTML converter";
15798       mainProgram = "mhonarc";
15799       license = with lib.licenses; [ gpl2Only ];
15800     };
15801   };
15803   MIMECharset = buildPerlPackage {
15804     pname = "MIME-Charset";
15805     version = "1.013.1";
15806     src = fetchurl {
15807       url = "mirror://cpan/authors/id/N/NE/NEZUMI/MIME-Charset-1.013.1.tar.gz";
15808       hash = "sha256-G7em4MDSUfI9bmC/hMmt78W3TuxYR1v+5NORB+YIcPA=";
15809     };
15810     meta = {
15811       description = "Charset Information for MIME";
15812       license = with lib.licenses; [ artistic1 gpl1Plus ];
15813     };
15814   };
15816   mimeConstruct = buildPerlPackage {
15817     pname = "mime-construct";
15818     version = "1.11";
15819     src = fetchurl {
15820       url = "mirror://cpan/authors/id/R/RO/ROSCH/mime-construct-1.11.tar.gz";
15821       hash = "sha256-TNe7YbUdQRktFJjBBRqmpMzXWusJtx0uxwanCEpKkwM=";
15822     };
15823     outputs = [ "out" ];
15824     buildInputs = [ ProcWaitStat ];
15825     meta = {
15826       description = "Construct and optionally mail MIME messages";
15827       license = with lib.licenses; [ gpl2Plus ];
15828     };
15829   };
15831   MIMEEncWords = buildPerlPackage {
15832     pname = "MIME-EncWords";
15833     version = "1.014.3";
15834     src = fetchurl {
15835       url = "mirror://cpan/authors/id/N/NE/NEZUMI/MIME-EncWords-1.014.3.tar.gz";
15836       hash = "sha256-6a+1SGEdTn5sULfwa70rG7KAjjeoEN7vtTfGevVIUjg=";
15837     };
15838     propagatedBuildInputs = [ MIMECharset ];
15839     meta = {
15840       description = "Deal with RFC 2047 encoded words (improved)";
15841       homepage = "https://metacpan.org/pod/MIME::EncWords";
15842       license = with lib.licenses; [ artistic1 gpl1Plus ];
15843       maintainers = [ maintainers.sgo ];
15844     };
15845   };
15847   MIMELite = buildPerlPackage {
15848     pname = "MIME-Lite";
15849     version = "3.033";
15850     src = fetchurl {
15851       url = "mirror://cpan/authors/id/R/RJ/RJBS/MIME-Lite-3.033.tar.gz";
15852       hash = "sha256-eKJ58dLiQlUcNH75ehP8Z1dmYCy4TCqAxWlAD082i6s=";
15853     };
15854     propagatedBuildInputs = [ EmailDateFormat ];
15855     meta = {
15856       description = "Low-calorie MIME generator (DEPRECATED)";
15857       license = with lib.licenses; [ artistic1 gpl1Plus ];
15858     };
15859   };
15861   MIMELiteHTML = buildPerlPackage {
15862     pname = "MIME-Lite-HTML";
15863     version = "1.24";
15864     src = fetchurl {
15865       url = "mirror://cpan/authors/id/A/AL/ALIAN/MIME-Lite-HTML-1.24.tar.gz";
15866       hash = "sha256-22A8y/ZlO80oz6gk1y5RHq0Bn8ivufGFTshy2y082No=";
15867     };
15868     doCheck = false;
15869     propagatedBuildInputs = [ LWP MIMELite ];
15870     meta = {
15871       description = "Provide routine to transform a HTML page in a MIME-Lite mail";
15872       license = with lib.licenses; [ artistic1 gpl1Plus ];
15873     };
15874   };
15876   MIMETools = buildPerlPackage {
15877     pname = "MIME-tools";
15878     version = "5.509";
15879     src = fetchurl {
15880       url = "mirror://cpan/authors/id/D/DS/DSKOLL/MIME-tools-5.509.tar.gz";
15881       hash = "sha256-ZFefDJI9gdmiGUWG5Hw0dVGeJkbktcECqJIHWfrPaXM=";
15882     };
15883     propagatedBuildInputs = [ MailTools ];
15884     buildInputs = [ TestDeep ];
15885     meta = {
15886       description = "Tools to manipulate MIME messages";
15887       license = with lib.licenses; [ artistic1 gpl1Plus ];
15888     };
15889   };
15891   MIMETypes = buildPerlPackage {
15892     pname = "MIME-Types";
15893     version = "2.24";
15894     src = fetchurl {
15895       url = "mirror://cpan/authors/id/M/MA/MARKOV/MIME-Types-2.24.tar.gz";
15896       hash = "sha256-Yp42HyKyIL5QwtpzVOI8BFF1dwmgPCWiLzFg7blMtl8=";
15897     };
15898     meta = {
15899       description = "Definition of MIME types";
15900       homepage = "http://perl.overmeer.net/CPAN";
15901       license = with lib.licenses; [ artistic1 gpl1Plus ];
15902     };
15903   };
15905   Minion = buildPerlPackage {
15906     pname = "Minion";
15907     version = "10.30";
15908     src = fetchurl {
15909       url = "mirror://cpan/authors/id/S/SR/SRI/Minion-10.30.tar.gz";
15910       hash = "sha256-twS9ZuxK8cAzlGifAsCsBIDr0GzpzKFykVAbkgLG7Rw=";
15911     };
15912     propagatedBuildInputs = [ Mojolicious YAMLLibYAML ];
15913     meta = {
15914       description = "High performance job queue for Perl";
15915       homepage = "https://github.com/mojolicious/minion";
15916       license = with lib.licenses; [ artistic2 ];
15917       maintainers = [ maintainers.sgo ];
15918     };
15919   };
15921   MinionBackendRedis = buildPerlModule {
15922     pname = "Minion-Backend-Redis";
15923     version = "0.003";
15924     src = fetchurl {
15925       url = "mirror://cpan/authors/id/D/DF/DFUG/Minion-Backend-Redis-0.003.tar.gz";
15926       hash = "sha256-zXZRIQbfHKmQF75fObSmXgSCawzZQxe3GsAWGzXzI6A=";
15927     };
15928     buildInputs = [ ModuleBuildTiny ];
15929     propagatedBuildInputs = [ Minion MojoRedis Mojolicious SortVersions ];
15930     meta = {
15931       homepage = "https://github.com/Difegue/Minion-Backend-Redis";
15932       description = "Redis backend for Minion job queue";
15933       license = with lib.licenses; [ artistic2 ];
15934       maintainers = with maintainers; [ tomasajt ];
15935     };
15936   };
15938   MinionBackendSQLite = buildPerlModule {
15939     pname = "Minion-Backend-SQLite";
15940     version = "5.0.7";
15941     src = fetchurl {
15942       url = "mirror://cpan/authors/id/D/DB/DBOOK/Minion-Backend-SQLite-v5.0.7.tar.gz";
15943       hash = "sha256-zd49IrGv+n32seErKlLp88G2gci1k6G+TeO+aOTaXHI=";
15944     };
15945     buildInputs = [ ModuleBuildTiny ];
15946     propagatedBuildInputs = [ Minion MojoSQLite ];
15947     meta = {
15948       description = "SQLite backend for Minion job queue";
15949       homepage = "https://github.com/Grinnz/Minion-Backend-SQLite";
15950       license = with lib.licenses; [ artistic2 ];
15951       maintainers = [ maintainers.sgo ];
15952     };
15953   };
15955   MinionBackendmysql = buildPerlPackage {
15956     pname = "Minion-Backend-mysql";
15957     version = "1.003";
15958     src = fetchurl {
15959       url = "mirror://cpan/authors/id/P/PR/PREACTION/Minion-Backend-mysql-1.003.tar.gz";
15960       hash = "sha256-aaJcJAyw5NTvTxqjKgTt+Nolt+jTqCDP1kVhWZ7aRUI=";
15961     };
15962     buildInputs = [ Testmysqld ];
15963     propagatedBuildInputs = [ Minion Mojomysql ];
15964     meta = {
15965       description = "MySQL backend for the Minion job queue";
15966       homepage = "https://github.com/preaction/Minion-Backend-mysql";
15967       license = with lib.licenses; [ artistic1 gpl1Plus ];
15968       maintainers = [ maintainers.sgo ];
15969     };
15970   };
15972   MixinLinewise = buildPerlPackage {
15973     pname = "Mixin-Linewise";
15974     version = "0.111";
15975     src = fetchurl {
15976       url = "mirror://cpan/authors/id/R/RJ/RJBS/Mixin-Linewise-0.111.tar.gz";
15977       hash = "sha256-0o6IUWzptSlcMWMdzM3A/I8qt9ilzIdrsbIBMQh7Ads=";
15978     };
15979     propagatedBuildInputs = [ PerlIOutf8_strict SubExporter ];
15980     meta = {
15981       description = "Write your linewise code for handles; this does the rest";
15982       homepage = "https://github.com/rjbs/Mixin-Linewise";
15983       license = with lib.licenses; [ artistic1 gpl1Plus ];
15984     };
15985   };
15987   MLDBM = buildPerlModule {
15988     pname = "MLDBM";
15989     version = "2.05";
15990     src = fetchurl {
15991       url = "mirror://cpan/authors/id/C/CH/CHORNY/MLDBM-2.05.tar.gz";
15992       hash = "sha256-WGiA7QwggBq79nNHR+E+AgPt7+zm68TyDdtQWfAqF6I=";
15993     };
15994     meta = {
15995       description = "Store multi-level Perl hash structure in single level tied hash";
15996       license = with lib.licenses; [ artistic1 gpl1Plus ];
15997     };
15998   };
16000   MNI-Perllib = callPackage ../development/perl-modules/MNI {};
16002   Mo = buildPerlPackage {
16003     pname = "Mo";
16004     version = "0.40";
16005     src = fetchurl {
16006       url = "mirror://cpan/authors/id/T/TI/TINITA/Mo-0.40.tar.gz";
16007       hash = "sha256-kdJBUjkfjCeX7jUDkTja6m3j7gO98+G4ck+lx1VAzrk=";
16008     };
16009     meta = {
16010       description = "Micro Objects. Mo is less";
16011       homepage = "https://github.com/ingydotnet/mo-pm";
16012       license = with lib.licenses; [ artistic1 gpl1Plus ];
16013       mainProgram = "mo-inline";
16014     };
16015   };
16017   MockConfig = buildPerlPackage {
16018     pname = "Mock-Config";
16019     version = "0.03";
16020     src = fetchurl {
16021       url = "mirror://cpan/authors/id/R/RU/RURBAN/Mock-Config-0.03.tar.gz";
16022       hash = "sha256-pbg0V1fKTyuTNfW+FOk+u7UChlIzp1W/U7xxVt7sABs=";
16023     };
16024     meta = {
16025       description = "Temporarily set Config or XSConfig values";
16026       license = with lib.licenses; [ artistic1 gpl1Plus ];
16027     };
16028   };
16030   ModernPerl = buildPerlPackage {
16031     pname = "Modern-Perl";
16032     version = "1.20230106";
16034     src = fetchurl {
16035       url = "mirror://cpan/authors/id/C/CH/CHROMATIC/Modern-Perl-1.20230106.tar.gz";
16036       hash = "sha256-BFncq4DOgrY0Yf2B7pTgbpplFdmPP7wxmDjdHmAoUfc=";
16037     };
16038     meta = {
16039       description = "Enable all of the features of Modern Perl with one import";
16040       homepage = "https://github.com/chromatic/Modern-Perl";
16041       license = with lib.licenses; [ artistic1 gpl1Plus ];
16042     };
16043   };
16045   Modulecpmfile = buildPerlModule {
16046     pname = "Module-cpmfile";
16047     version = "0.006";
16048     src = fetchurl {
16049       url = "mirror://cpan/authors/id/S/SK/SKAJI/Module-cpmfile-0.006.tar.gz";
16050       hash = "sha256-G8l24pN3JIlsn26unl3KmB4n+YQwuS3icO41FP0ArA8=";
16051     };
16052     buildInputs = [ ModuleBuildTiny ModuleCPANfile Test2Suite ];
16053     propagatedBuildInputs = [ YAMLPP ];
16054     meta = {
16055       description = "Parse cpmfile";
16056       homepage = "https://github.com/skaji/cpmfile";
16057       license = with lib.licenses; [ artistic1 gpl1Plus ];
16058       maintainers = [ maintainers.zakame ];
16059     };
16060   };
16062   ModuleBuild = buildPerlPackage {
16063     pname = "Module-Build";
16064     version = "0.4234";
16065     src = fetchurl {
16066       url = "mirror://cpan/authors/id/L/LE/LEONT/Module-Build-0.4234.tar.gz";
16067       hash = "sha256-Zq6sYSdBi+XkcerTdEZIx2a9AUgoJcW2ZlJnXyvIao8=";
16068     };
16069     postConfigure = lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
16070       # for unknown reason, the first run of Build fails
16071       ./Build || true
16072     '';
16073     postPatch = lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
16074       # remove version check since miniperl uses a stub of File::Temp, which do not provide a version:
16075       # https://github.com/arsv/perl-cross/blob/master/cnf/stub/File/Temp.pm
16076       sed -i '/File::Temp/d' \
16077         Build.PL
16079       # fix discover perl function, it can not handle a wrapped perl
16080       sed -i "s,\$self->_discover_perl_interpreter,'$(type -p perl)',g" \
16081         lib/Module/Build/Base.pm
16082     '';
16083     meta = {
16084       description = "Build and install Perl modules";
16085       license = with lib.licenses; [ artistic1 gpl1Plus ];
16086       mainProgram = "config_data";
16087     };
16088   };
16090   ModuleBuildDeprecated = buildPerlModule {
16091     pname = "Module-Build-Deprecated";
16092     version = "0.4210";
16093     src = fetchurl {
16094       url = "mirror://cpan/authors/id/L/LE/LEONT/Module-Build-Deprecated-0.4210.tar.gz";
16095       hash = "sha256-vgiTE/wjjuIYNHOsqMhrVfs89EeXMSy+m4ktY2JiFwM=";
16096     };
16097     doCheck = false;
16098     meta = {
16099       description = "Collection of modules removed from Module-Build";
16100       license = with lib.licenses; [ artistic1 gpl1Plus ];
16101     };
16102   };
16104   ModuleBuildPluggable = buildPerlModule {
16105     pname = "Module-Build-Pluggable";
16106     version = "0.10";
16107     src = fetchurl {
16108       url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/Module-Build-Pluggable-0.10.tar.gz";
16109       hash = "sha256-5bsqyxF3ksmEYogSrLD+w3bLlwyu6O3ldTXgTXYrDkA=";
16110     };
16111     propagatedBuildInputs = [ ClassAccessorLite ClassMethodModifiers DataOptList ];
16112     buildInputs = [ TestSharedFork ];
16113     meta = {
16114       description = "Module::Build meets plugins";
16115       homepage = "https://github.com/tokuhirom/Module-Build-Pluggable";
16116       license = with lib.licenses; [ artistic1 gpl1Plus ];
16117     };
16118   };
16120   ModuleBuildPluggableCPANfile = buildPerlModule {
16121     pname = "Module-Build-Pluggable-CPANfile";
16122     version = "0.05";
16123     src = fetchurl {
16124       url = "mirror://cpan/authors/id/K/KA/KAZEBURO/Module-Build-Pluggable-CPANfile-0.05.tar.gz";
16125       hash = "sha256-SuxsuiQMtueAFkBrajqHVjTMKuwI/8XxVy2hzcQOHnw=";
16126     };
16127     buildInputs = [ CaptureTiny TestRequires TestSharedFork ];
16128     propagatedBuildInputs = [ ModuleBuildPluggable ModuleCPANfile ];
16129     meta = {
16130       description = "Include cpanfile";
16131       homepage = "https://github.com/kazeburo/Module-Build-Pluggable-CPANfile";
16132       license = with lib.licenses; [ artistic1 gpl1Plus ];
16133     };
16134   };
16136   ModuleBuildPluggablePPPort = buildPerlModule {
16137     pname = "Module-Build-Pluggable-PPPort";
16138     version = "0.04";
16139     src = fetchurl {
16140       url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/Module-Build-Pluggable-PPPort-0.04.tar.gz";
16141       hash = "sha256-RAhLo9iBXzQ705FYWsXYM5pIB85cDdhMmNuPMQtkwOo=";
16142     };
16143     buildInputs = [ TestRequires TestSharedFork ];
16144     propagatedBuildInputs = [ ModuleBuildPluggable ];
16145     meta = {
16146       description = "Generate ppport.h";
16147       license = with lib.licenses; [ artistic1 gpl1Plus ];
16148     };
16149   };
16151   ModuleBuildTiny = buildPerlModule {
16152     pname = "Module-Build-Tiny";
16153     version = "0.047";
16154     src = fetchurl {
16155       url = "mirror://cpan/authors/id/L/LE/LEONT/Module-Build-Tiny-0.047.tar.gz";
16156       hash = "sha256-cSYOlCG5PDPdGz59DPFfdZwMp8dT+oQCeew75w+PjJ0=";
16157     };
16158     buildInputs = [ FileShareDir ];
16159     propagatedBuildInputs = [ ExtUtilsHelpers ExtUtilsInstallPaths ];
16160     meta = {
16161       description = "Tiny replacement for Module::Build";
16162       license = with lib.licenses; [ artistic1 gpl1Plus ];
16163     };
16164   };
16166   ModuleBuildWithXSpp = buildPerlModule {
16167     pname = "Module-Build-WithXSpp";
16168     version = "0.14";
16169     src = fetchurl {
16170       url = "mirror://cpan/authors/id/S/SM/SMUELLER/Module-Build-WithXSpp-0.14.tar.gz";
16171       hash = "sha256-U7PIyP29UPw9rT0Z2iDxtkFO9wZluTEXEMgClp50aTQ=";
16172     };
16173     propagatedBuildInputs = [ ExtUtilsCppGuess ExtUtilsXSpp ];
16174     meta = {
16175       description = "XS++ enhanced flavour of Module::Build";
16176       license = with lib.licenses; [ artistic1 gpl1Plus ];
16177     };
16178   };
16180   ModuleBuildXSUtil = buildPerlModule {
16181     pname = "Module-Build-XSUtil";
16182     version = "0.19";
16183     src = fetchurl {
16184       url = "mirror://cpan/authors/id/H/HI/HIDEAKIO/Module-Build-XSUtil-0.19.tar.gz";
16185       hash = "sha256-kGOzw0bt60IoB//kn/sjA4xPkA1Kd7hFzktT2XvylAA=";
16186     };
16187     buildInputs = [ CaptureTiny CwdGuard FileCopyRecursiveReduced ];
16188     propagatedBuildInputs = [ DevelCheckCompiler ];
16189     perlPreHook = "export LD=$CC";
16190     meta = {
16191       description = "Module::Build class for building XS modules";
16192       homepage = "https://github.com/hideo55/Module-Build-XSUtil";
16193       license = with lib.licenses; [ artistic1 gpl1Plus ];
16194     };
16195   };
16197   ModuleCompile = buildPerlPackage {
16198     pname = "Module-Compile";
16199     version = "0.38";
16200     src = fetchurl {
16201       url = "mirror://cpan/authors/id/I/IN/INGY/Module-Compile-0.38.tar.gz";
16202       hash = "sha256-gJDPu2ESNDfu/sPjvthgBdH3xaUp+2/aLr68ZWS5qhA=";
16203     };
16204     propagatedBuildInputs = [ CaptureTiny DigestSHA1 ];
16205     meta = {
16206       description = "Perl Module Compilation";
16207       homepage = "https://github.com/ingydotnet/module-compile-pm";
16208       license = with lib.licenses; [ artistic1 gpl1Plus ];
16209     };
16210   };
16212   ModuleCPANTSAnalyse = buildPerlPackage {
16213     pname = "Module-CPANTS-Analyse";
16214     version = "1.02";
16215     src = fetchurl {
16216       url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/Module-CPANTS-Analyse-1.02.tar.gz";
16217       hash = "sha256-nhFzm5zQi6LXWllzfx+yl/RYA/KJBjxcdZv8eP1Rbns=";
16218     };
16219     propagatedBuildInputs = [ ArchiveAnyLite ArrayDiff ClassAccessor DataBinary FileFindObject ModuleFind ParseDistname PerlPrereqScannerNotQuiteLite SoftwareLicense ];
16220     buildInputs = [ ExtUtilsMakeMakerCPANfile TestFailWarnings ];
16221     meta = {
16222       description = "Generate Kwalitee ratings for a distribution";
16223       homepage = "https://cpants.cpanauthors.org";
16224       license = with lib.licenses; [ artistic1 gpl1Plus ];
16225     };
16226   };
16228   ModuleCPANfile = buildPerlPackage {
16229     pname = "Module-CPANfile";
16230     version = "1.1004";
16231     src = fetchurl {
16232       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Module-CPANfile-1.1004.tar.gz";
16233       hash = "sha256-iO++LppkLc6qGGQw/t/PmZqvDgb2zO0opxS45WtRSSE=";
16234     };
16235     buildInputs = [ Filepushd ];
16236     meta = {
16237       description = "Parse cpanfile";
16238       homepage = "https://github.com/miyagawa/cpanfile";
16239       license = with lib.licenses; [ artistic1 gpl1Plus ];
16240     };
16241   };
16243   ModuleExtractUse = buildPerlModule {
16244     pname = "Module-ExtractUse";
16245     version = "0.345";
16246     src = fetchurl {
16247       url = "mirror://cpan/authors/id/D/DO/DOMM/Module-ExtractUse-0.345.tar.gz";
16248       hash = "sha256-juJOh0KrnaeSKL4Yfdoxm01fUKkaHs+H1JQhO1uzDdE=";
16249     };
16250     propagatedBuildInputs = [ ParseRecDescent PodStrip ];
16251     buildInputs = [ TestDeep TestNoWarnings ];
16252     meta = {
16253       description = "Find out what modules are used";
16254       license = with lib.licenses; [ artistic1 gpl1Plus ];
16255     };
16256   };
16258   ModuleExtractVERSION = buildPerlPackage {
16259     pname = "Module-Extract-VERSION";
16260     version = "1.116";
16261     src = fetchurl {
16262       url = "mirror://cpan/authors/id/B/BD/BDFOY/Module-Extract-VERSION-1.116.tar.gz";
16263       hash = "sha256-QZA6BoUXgoU0X12oVdkluUVO5xCpeV48TDJ7ri9Vdpg=";
16264     };
16265     meta = {
16266       homepage = "https://github.com/briandfoy/module-extract-version";
16267       description = "Extract a module version safely";
16268       license = lib.licenses.artistic2;
16269     };
16270   };
16272   ModuleFind = buildPerlPackage {
16273     pname = "Module-Find";
16274     version = "0.16";
16275     src = fetchurl {
16276       url = "mirror://cpan/authors/id/C/CR/CRENZ/Module-Find-0.16.tar.gz";
16277       hash = "sha256-S8qqN2kVAUco1PUzqYxbWdZlBRzTzbr8lg5aZv0TEJI=";
16278     };
16279     meta = {
16280       description = "Find and use installed modules in a (sub)category";
16281       license = with lib.licenses; [ artistic1 gpl1Plus ];
16282     };
16283   };
16285   ModuleImplementation = buildPerlPackage {
16286     pname = "Module-Implementation";
16287     version = "0.09";
16288     src = fetchurl {
16289       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Module-Implementation-0.09.tar.gz";
16290       hash = "sha256-wV8aEvDCEwye//PC4a/liHsIzNAzvRMhhtHn1Qh/1m0=";
16291     };
16292     buildInputs = [ TestFatal TestRequires ];
16293     propagatedBuildInputs = [ ModuleRuntime TryTiny ];
16294     meta = {
16295       description = "Loads one of several alternate underlying implementations for a module";
16296       homepage = "https://metacpan.org/release/Module-Implementation";
16297       license = with lib.licenses; [ artistic2 ];
16298     };
16299   };
16301   ModuleInfo = buildPerlPackage {
16302     pname = "Module-Info";
16303     version = "0.37";
16304     src = fetchurl {
16305       url = "mirror://cpan/authors/id/N/NE/NEILB/Module-Info-0.37.tar.gz";
16306       hash = "sha256-jqgCUpeQsZwfNzoeR9g4FmT5xMH3ao2LvG221zEcJEg=";
16307     };
16308     buildInputs = [ TestPod TestPodCoverage ];
16309     propagatedBuildInputs = [ BUtils ];
16310     meta = {
16311       description = "Information about Perl modules";
16312       license = with lib.licenses; [ artistic1 gpl1Plus ];
16313       mainProgram = "module_info";
16314     };
16315   };
16317   ModuleInstall = buildPerlPackage {
16318     pname = "Module-Install";
16319     version = "1.21";
16320     src = fetchurl {
16321       url = "mirror://cpan/authors/id/E/ET/ETHER/Module-Install-1.21.tar.gz";
16322       hash = "sha256-+/kQB/MFZfOSDhBgVf0NQoeYHV59rYs1MjzktzPxWns=";
16323     };
16324     propagatedBuildInputs = [ FileRemove ModuleBuild ModuleScanDeps YAMLTiny ];
16325     meta = {
16326       description = "Standalone, extensible Perl module installer";
16327       license = with lib.licenses; [ artistic1 gpl1Plus ];
16328     };
16329   };
16331   ModuleInstallAuthorRequires = buildPerlPackage {
16332     pname = "Module-Install-AuthorRequires";
16333     version = "0.02";
16334     src = fetchurl {
16335       url = "mirror://cpan/authors/id/F/FL/FLORA/Module-Install-AuthorRequires-0.02.tar.gz";
16336       hash = "sha256-zGMhU310XSqDqChvhe8zRnRZOcw7NBAgRb7IVg6PTOw=";
16337     };
16338     propagatedBuildInputs = [ ModuleInstall ];
16339     meta = {
16340       description = "Declare author-only dependencies";
16341       license = with lib.licenses; [ artistic1 gpl1Plus ];
16342     };
16343   };
16345   ModuleInstallAuthorTests = buildPerlPackage {
16346     pname = "Module-Install-AuthorTests";
16347     version = "0.002";
16348     src = fetchurl {
16349       url = "mirror://cpan/authors/id/R/RJ/RJBS/Module-Install-AuthorTests-0.002.tar.gz";
16350       hash = "sha256-QCVyLeY1ft9TwoUBsA59qSzS+fxhG6B1N2Gg4d/zLYg=";
16351     };
16352     propagatedBuildInputs = [ ModuleInstall ];
16353     meta = {
16354       description = "Designate tests only run by module authors";
16355       license = with lib.licenses; [ artistic1 gpl1Plus ];
16356     };
16357   };
16359   ModuleInstallGithubMeta = buildPerlPackage {
16360     pname = "Module-Install-GithubMeta";
16361     version = "0.30";
16362     src = fetchurl {
16363       url = "mirror://cpan/authors/id/B/BI/BINGOS/Module-Install-GithubMeta-0.30.tar.gz";
16364       hash = "sha256-Lq1EyXPHSNctnxmeQcRNwYAf6a4GsPrcWUR2k6PJgoE=";
16365     };
16366     buildInputs = [ CaptureTiny ];
16367     propagatedBuildInputs = [ ModuleInstall ];
16368     meta = {
16369       description = "Module::Install extension to include GitHub meta information in META.yml";
16370       homepage = "https://github.com/bingos/module-install-githubmeta";
16371       license = with lib.licenses; [ artistic1 gpl1Plus ];
16372       maintainers = [ maintainers.sgo ];
16373     };
16374   };
16376   ModuleInstallReadmeFromPod = buildPerlPackage {
16377     pname = "Module-Install-ReadmeFromPod";
16378     version = "0.30";
16379     src = fetchurl {
16380       url = "mirror://cpan/authors/id/B/BI/BINGOS/Module-Install-ReadmeFromPod-0.30.tar.gz";
16381       hash = "sha256-efbfVTZhn6/72mlr3SXMrRfEab8y5RzT5hM2bUlAAWk=";
16382     };
16383     buildInputs = [ TestInDistDir ];
16384     propagatedBuildInputs = [ CaptureTiny IOAll ModuleInstall PodMarkdown ];
16385     meta = {
16386       description = "Module::Install extension to automatically convert POD to a README";
16387       homepage = "https://github.com/bingos/module-install-readmefrompod";
16388       license = with lib.licenses; [ artistic1 gpl1Plus ];
16389       maintainers = [ maintainers.sgo ];
16390     };
16391   };
16393   ModuleInstallReadmeMarkdownFromPod = buildPerlPackage {
16394     pname = "Module-Install-ReadmeMarkdownFromPod";
16395     version = "0.04";
16396     src = fetchurl {
16397       url = "mirror://cpan/authors/id/M/MA/MATTN/Module-Install-ReadmeMarkdownFromPod-0.04.tar.gz";
16398       hash = "sha256-MAsuJE+DuaVKlfhATBzTrwY1tPrpdMplOQ7kKOxmhZE=";
16399     };
16400     buildInputs = [ URI ];
16401     propagatedBuildInputs = [ ModuleInstall PodMarkdown ];
16402     meta = {
16403       description = "Create README.mkdn from POD";
16404       homepage = "https://search.cpan.org/dist/Module-Install-ReadmeMarkdownFromPod";
16405       license = with lib.licenses; [ artistic1 gpl1Plus ];
16406       maintainers = [ maintainers.sgo ];
16407     };
16408   };
16410   ModuleInstallRepository = buildPerlPackage {
16411     pname = "Module-Install-Repository";
16412     version = "0.06";
16413     src = fetchurl {
16414       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Module-Install-Repository-0.06.tar.gz";
16415       hash = "sha256-AOJZDQkznMzL2qMo0SrY7HfoMaOMmtZjcF5Z7LsYcis=";
16416     };
16417     buildInputs = [ PathClass ];
16418     meta = {
16419       description = "Automatically sets repository URL from svn/svk/Git checkout";
16420       license = with lib.licenses; [ artistic1 gpl1Plus ];
16421       maintainers = [ maintainers.sgo ];
16422     };
16423   };
16425   ModuleInstallXSUtil = buildPerlPackage {
16426     pname = "Module-Install-XSUtil";
16427     version = "0.45";
16428     src = fetchurl {
16429       url = "mirror://cpan/authors/id/G/GF/GFUJI/Module-Install-XSUtil-0.45.tar.gz";
16430       hash = "sha256-/nHlMyC+4TGXdJoLF2CaomP3H/RuXiwTDpR0Lqar31Y=";
16431     };
16432     buildInputs = [ BHooksOPAnnotation ];
16433     propagatedBuildInputs = [ ModuleInstall ];
16434     meta = {
16435       description = "Utility functions for XS modules";
16436       license = with lib.licenses; [ artistic1 gpl1Plus ];
16437     };
16438   };
16440   ModuleManifest = buildPerlPackage {
16441     pname = "Module-Manifest";
16442     version = "1.09";
16443     src = fetchurl {
16444       url = "mirror://cpan/authors/id/E/ET/ETHER/Module-Manifest-1.09.tar.gz";
16445       hash = "sha256-o5X4D/FeoOZv1sRThEtnh+1Kh1o82N+ffikoAlC9U5s=";
16446     };
16447     buildInputs = [ TestException TestWarn ];
16448     propagatedBuildInputs = [ ParamsUtil ];
16449     meta = {
16450       description = "Parse and examine a Perl distribution MANIFEST file";
16451       homepage = "https://github.com/karenetheridge/Module-Manifest";
16452       license = with lib.licenses; [ artistic1 gpl1Plus ];
16453     };
16454   };
16456   ModulePath = buildPerlPackage {
16457     pname = "Module-Path";
16458     version = "0.19";
16459     src = fetchurl {
16460       url = "mirror://cpan/authors/id/N/NE/NEILB/Module-Path-0.19.tar.gz";
16461       hash = "sha256-szF5zk3XPfzefUaAiAS5/7sR2wJF/kVafQAXR1Yv6so=";
16462     };
16463     buildInputs = [ DevelFindPerl ];
16464     meta = {
16465       description = "Get the full path to a locally installed module";
16466       homepage = "https://github.com/neilbowers/Module-Path";
16467       license = with lib.licenses; [ artistic1 gpl1Plus ];
16468       mainProgram = "mpath";
16469     };
16470   };
16472   ModulePluggable = buildPerlPackage {
16473     pname = "Module-Pluggable";
16474     version = "5.2";
16475     src = fetchurl {
16476       url = "mirror://cpan/authors/id/S/SI/SIMONW/Module-Pluggable-5.2.tar.gz";
16477       hash = "sha256-s/KtReT9ELP7kNkS142LeVqylUgNtW3GToa5+nXFpt8=";
16478     };
16479     patches = [
16480       # !!! merge this patch into Perl itself (which contains Module::Pluggable as well)
16481       ../development/perl-modules/module-pluggable.patch
16482     ];
16483     buildInputs = [ AppFatPacker ];
16484     meta = {
16485       description = "Automatically give your module the ability to have plugins";
16486       license = with lib.licenses; [ artistic1 gpl1Plus ];
16487     };
16488   };
16490   ModulePluggableFast = buildPerlPackage {
16491     pname = "Module-Pluggable-Fast";
16492     version = "0.19";
16493     src = fetchurl {
16494       url = "mirror://cpan/authors/id/M/MR/MRAMBERG/Module-Pluggable-Fast-0.19.tar.gz";
16495       hash = "sha256-CMhXcFjxmTLKG2Zre5EmoYtVajmwi+b7ObBqRTkqB18=";
16496     };
16497     propagatedBuildInputs = [ UNIVERSALrequire ];
16498     meta = {
16499       description = "Fast plugins with instantiation";
16500       license = with lib.licenses; [ artistic1 gpl1Plus ];
16501     };
16502   };
16504   ModuleRefresh = buildPerlPackage {
16505     pname = "Module-Refresh";
16506     version = "0.18";
16507     src = fetchurl {
16508       url = "mirror://cpan/authors/id/B/BP/BPS/Module-Refresh-0.18.tar.gz";
16509       hash = "sha256-4JTaqQmv32SJqeKzJzP2haLBy1zIh2BhB1SGEJsN71k=";
16510     };
16511     buildInputs = [ PathClass ];
16512     meta = {
16513       description = "Refresh %INC files when updated on disk";
16514       license = with lib.licenses; [ artistic1 gpl1Plus ];
16515     };
16516   };
16518   ModuleRuntime = buildPerlModule {
16519     pname = "Module-Runtime";
16520     version = "0.016";
16521     src = fetchurl {
16522       url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Module-Runtime-0.016.tar.gz";
16523       hash = "sha256-aDAuxkaDNUfUEL4o4JZ223UAb0qlihHzvbRP/pnw8CQ=";
16524     };
16525     meta = {
16526       description = "Runtime module handling";
16527       license = with lib.licenses; [ artistic1 gpl1Plus ];
16528     };
16529   };
16531   ModuleRuntimeConflicts = buildPerlPackage {
16532     pname = "Module-Runtime-Conflicts";
16533     version = "0.003";
16534     src = fetchurl {
16535       url = "mirror://cpan/authors/id/E/ET/ETHER/Module-Runtime-Conflicts-0.003.tar.gz";
16536       hash = "sha256-cHzcdQOMcP6Rd5uIisBQ8ShWXTlnupZoDhscfMlzOHU=";
16537     };
16538     propagatedBuildInputs = [ DistCheckConflicts ];
16539     meta = {
16540       description = "Provide information on conflicts for Module::Runtime";
16541       homepage = "https://github.com/karenetheridge/Module-Runtime-Conflicts";
16542       license = with lib.licenses; [ artistic1 gpl1Plus ];
16543     };
16544   };
16546   ModuleScanDeps = buildPerlPackage {
16547     pname = "Module-ScanDeps";
16548     version = "1.34";
16549     src = fetchurl {
16550       url = "mirror://cpan/authors/id/R/RS/RSCHUPP/Module-ScanDeps-1.34.tar.gz";
16551       hash = "sha256-ysUw5c/EE+BneXx9I3xsXNMpFcPZ+u5dlANcjzqFUOs=";
16552     };
16553     buildInputs = [ TestRequires IPCRun3 ];
16554     propagatedBuildInputs = [ TextParsewords ];
16555     meta = {
16556       description = "Recursively scan Perl code for dependencies";
16557       license = with lib.licenses; [ artistic1 gpl1Plus ];
16558       mainProgram = "scandeps.pl";
16559     };
16560   };
16562   ModuleSignature = buildPerlPackage {
16563     pname = "Module-Signature";
16564     version = "0.87";
16565     src = fetchurl {
16566       url = "mirror://cpan/authors/id/A/AU/AUDREYT/Module-Signature-0.87.tar.gz";
16567       hash = "sha256-IU6AVcUP7DcalXQ1IP4mlAAE52FpBjsrROyQoNRdaYI=";
16568     };
16569     buildInputs = [ IPCRun ];
16570     meta = {
16571       description = "Module signature file manipulation";
16572       license = with lib.licenses; [ cc0 ];
16573       mainProgram = "cpansign";
16574     };
16575   };
16577   ModuleUtil = buildPerlModule {
16578     pname = "Module-Util";
16579     version = "1.09";
16580     src = fetchurl {
16581       url = "mirror://cpan/authors/id/M/MA/MATTLAW/Module-Util-1.09.tar.gz";
16582       hash = "sha256-bPvLakUGREbsiqDuGn3dxCC1RGkwM0QYeu+E0sfz4sY=";
16583     };
16584     meta = {
16585       description = "Module name tools and transformations";
16586       license = with lib.licenses; [ artistic1 gpl1Plus ];
16587       mainProgram = "pm_which";
16588     };
16589   };
16591   ModuleVersions = buildPerlPackage {
16592     pname = "Module-Versions";
16593     version = "0.02";
16594     src = fetchurl {
16595       url = "mirror://cpan/authors/id/T/TH/THW/Module-Versions-0.02.zip";
16596       hash = "sha256-DTimWxenrFGI1zh8/+f6oSY4Rw3JNxYevz2kh7fR+Dw=";
16597     };
16598     buildInputs = [ pkgs.unzip ];
16599     meta = {
16600       description = "Handle versions of loaded modules with flexible result interface";
16601       license = with lib.licenses; [ artistic1 gpl1Plus ];
16602     };
16603   };
16605   ModuleVersionsReport = buildPerlPackage {
16606     pname = "Module-Versions-Report";
16607     version = "1.06";
16608     src = fetchurl {
16609       url = "mirror://cpan/authors/id/J/JE/JESSE/Module-Versions-Report-1.06.tar.gz";
16610       hash = "sha256-oyYdDYSxdnjYxP1V6w+JL1FE2BylPqmjjXXRoArZeWo=";
16611     };
16612     meta = {
16613       description = "Report versions of all modules in memory";
16614       license = with lib.licenses; [ artistic1 gpl1Plus ];
16615     };
16616   };
16618   MojoDOM58 = buildPerlPackage {
16619     pname = "Mojo-DOM58";
16620     version = "3.001";
16621     src = fetchurl {
16622       url = "mirror://cpan/authors/id/D/DB/DBOOK/Mojo-DOM58-3.001.tar.gz";
16623       hash = "sha256-GLJtVB5TFEFa3d8xQ2nZQMi6BrESNMpQb9vmzyJPV5Y=";
16624     };
16625     meta = {
16626       description = "Minimalistic HTML/XML DOM parser with CSS selectors";
16627       homepage = "https://github.com/Grinnz/Mojo-DOM58";
16628       license = with lib.licenses; [ artistic2 ];
16629     };
16630   };
16632   mod_perl2 = buildPerlPackage {
16633     pname = "mod_perl";
16634     version = "2.0.12";
16635     src = fetchurl {
16636       url = "mirror://cpan/authors/id/S/SH/SHAY/mod_perl-2.0.12.tar.gz";
16637       hash = "sha256-9bghtZsP3JZw5G7Q/PMtiRHyUSYYmotowWUvkiHu4mk=";
16638     };
16640     makeMakerFlags = [ "MP_AP_DESTDIR=$out" ];
16641     buildInputs = [ pkgs.apacheHttpd ];
16642     doCheck = false; # would try to start Apache HTTP server
16643     passthru.tests = nixosTests.mod_perl;
16644     meta = {
16645       description = "Embed a Perl interpreter in the Apache/2.x HTTP server";
16646       license = with lib.licenses; [ asl20 ];
16647       mainProgram = "mp2bug";
16648     };
16649   };
16651   Mojolicious = buildPerlPackage {
16652     pname = "Mojolicious";
16653     version = "9.36";
16654     src = fetchurl {
16655       url = "mirror://cpan/authors/id/S/SR/SRI/Mojolicious-9.36.tar.gz";
16656       hash = "sha256-UX7Pb9hqC3xhadVRAiOL+YUWGNt2L7ANTPDZTGJSAV8=";
16657     };
16658     meta = {
16659       description = "Real-time web framework";
16660       homepage = "https://mojolicious.org";
16661       license = with lib.licenses; [ artistic2 ];
16662       maintainers = with maintainers; [ marcusramberg sgo thoughtpolice ];
16663       mainProgram = "mojo";
16664     };
16665   };
16667   MojoliciousPluginAssetPack = buildPerlPackage {
16668     pname = "Mojolicious-Plugin-AssetPack";
16669     version = "2.14";
16670     src = fetchurl {
16671       url = "mirror://cpan/authors/id/S/SR/SRI/Mojolicious-Plugin-AssetPack-2.14.tar.gz";
16672       hash = "sha256-jwWMyIw1mb6/ZjeK7GS91uvNkMljGL3m1ov6551j6qM=";
16673     };
16674     propagatedBuildInputs = [ FileWhich IPCRun3 Mojolicious ];
16675     meta = {
16676       description = "Compress and convert css, less, sass, javascript and coffeescript files";
16677       homepage = "https://github.com/jhthorsen/mojolicious-plugin-assetpack";
16678       license = with lib.licenses; [ artistic2 ];
16679       maintainers = with maintainers; [ sgo ];
16680     };
16681   };
16683   MojoliciousPluginGravatar = buildPerlPackage {
16684     pname = "Mojolicious-Plugin-Gravatar";
16685     version = "0.04";
16686     src = fetchurl {
16687       url = "mirror://cpan/authors/id/K/KO/KOORCHIK/Mojolicious-Plugin-Gravatar-0.04.tar.gz";
16688       hash = "sha256-pJ+XDGxw+ZMLMEp1IWPLlfHZmHEvecsTZAgy5Le2dd0=";
16689     };
16690     propagatedBuildInputs = [ Mojolicious ];
16691     meta = {
16692       description = "Globally Recognized Avatars for Mojolicious";
16693       license = with lib.licenses; [ artistic1 gpl1Plus ];
16694       maintainers = with maintainers; [ sgo ];
16695     };
16696   };
16698   MojoliciousPluginI18N = buildPerlModule {
16699     pname = "Mojolicious-Plugin-I18N";
16700     version = "1.6";
16701     src = fetchurl {
16702       url = "mirror://cpan/authors/id/S/SH/SHARIFULN/Mojolicious-Plugin-I18N-1.6.tar.gz";
16703       hash = "sha256-Mvte+AN9lUt+zr71wbKyS0IKvYKXAjEvStQnlPUrUU0=";
16704     };
16705     propagatedBuildInputs = [ Mojolicious ];
16706     meta = {
16707       homepage = "https://github.com/sharifulin/Mojolicious-Plugin-I18N";
16708       description = "Internationalization Plugin for Mojolicious";
16709       license = with lib.licenses; [ artistic1 gpl1Plus ];
16710     };
16711   };
16713   MojoliciousPluginMail = buildPerlModule {
16714     pname = "Mojolicious-Plugin-Mail";
16715     version = "1.5";
16716     src = fetchurl {
16717       url = "mirror://cpan/authors/id/S/SH/SHARIFULN/Mojolicious-Plugin-Mail-1.5.tar.gz";
16718       hash = "sha256-VvDTQevDp6zzkZ9a3UPpghbqEoWqDYfn+wDAK7Dv8UY=";
16719     };
16720     propagatedBuildInputs = [ MIMEEncWords MIMELite Mojolicious ];
16721     meta = {
16722       description = "Mojolicious Plugin for send mail";
16723       homepage = "https://github.com/sharifulin/Mojolicious-Plugin-Mail";
16724       license = with lib.licenses; [ artistic1 gpl1Plus ];
16725       maintainers = [ maintainers.sgo ];
16726     };
16727   };
16729   MojoliciousPluginOpenAPI = buildPerlPackage {
16730     pname = "Mojolicious-Plugin-OpenAPI";
16731     version = "5.09";
16732     src = fetchurl {
16733       url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/Mojolicious-Plugin-OpenAPI-5.09.tar.gz";
16734       hash = "sha256-BIJdfOIe20G80Ujrz6Gu+Ek258QOhKOdvyeGcdSaMQY=";
16735     };
16736     propagatedBuildInputs = [ JSONValidator Mojolicious ];
16737     meta = {
16738       description = "OpenAPI / Swagger plugin for Mojolicious";
16739       homepage = "https://github.com/jhthorsen/mojolicious-plugin-openapi";
16740       license = with lib.licenses; [ artistic2 ];
16741       maintainers = [ maintainers.sgo ];
16742     };
16743   };
16745   MojoliciousPluginRenderFile = buildPerlPackage {
16746     pname = "Mojolicious-Plugin-RenderFile";
16747     version = "0.12";
16748     src = fetchurl {
16749       url = "mirror://cpan/authors/id/K/KO/KOORCHIK/Mojolicious-Plugin-RenderFile-0.12.tar.gz";
16750       hash = "sha256-AT5CoswGvHBBuxPJ3ziK8kAQ5peTqN8PCrHSQKphFz8=";
16751     };
16752     propagatedBuildInputs = [ Mojolicious ];
16753     meta = {
16754       description = "\"render_file\" helper for Mojolicious";
16755       homepage = "https://github.com/koorchik/Mojolicious-Plugin-RenderFile";
16756       license = with lib.licenses; [ artistic1 gpl1Plus ];
16757       maintainers = with maintainers; [ tomasajt ];
16758     };
16759   };
16761   MojoliciousPluginStatus = buildPerlPackage {
16762     pname = "Mojolicious-Plugin-Status";
16763     version = "1.17";
16764     src = fetchurl {
16765       url = "mirror://cpan/authors/id/S/SR/SRI/Mojolicious-Plugin-Status-1.17.tar.gz";
16766       hash = "sha256-TCsfr+PhkSYby0TiDo75rz+YjR25akrgsG7tQSArh7Q=";
16767     };
16768     propagatedBuildInputs = [ BSDResource CpanelJSONXS FileMap Mojolicious Sereal ];
16769     meta = {
16770       description = "Mojolicious server status";
16771       homepage = "https://mojolicious.org";
16772       license = with lib.licenses; [ artistic2 ];
16773       maintainers = [ maintainers.thoughtpolice ];
16774     };
16775   };
16777   MojoliciousPluginSyslog = buildPerlPackage {
16778     pname = "Mojolicious-Plugin-Syslog";
16779     version = "0.06";
16780     src = fetchurl {
16781       url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/Mojolicious-Plugin-Syslog-0.06.tar.gz";
16782       hash = "sha256-IuxL9TYwDseyAYuoV3C9g2ZFDBAwVDZ9srFp9Mh3QRM=";
16783     };
16784     propagatedBuildInputs = [ Mojolicious ];
16785     meta = {
16786       description = "Plugin for enabling a Mojolicious app to log to syslog";
16787       homepage = "https://github.com/jhthorsen/mojolicious-plugin-syslog";
16788       license = with lib.licenses; [ artistic2 ];
16789       maintainers = [ maintainers.sgo ];
16790     };
16791   };
16793   MojoliciousPluginTemplateToolkit = buildPerlModule {
16794     pname = "Mojolicious-Plugin-TemplateToolkit";
16795     version = "0.006";
16796     src = fetchurl {
16797       url = "mirror://cpan/authors/id/D/DB/DBOOK/Mojolicious-Plugin-TemplateToolkit-0.006.tar.gz";
16798       hash = "sha256-dBoFAmtTArtrKc+I3KICC3rv0iNHgWELpZNaqPCXNKY=";
16799     };
16800     buildInputs = [ ModuleBuildTiny ];
16801     propagatedBuildInputs = [ ClassMethodModifiers Mojolicious TemplateToolkit ];
16802     meta = {
16803       homepage = "https://github.com/Grinnz/Mojolicious-Plugin-TemplateToolkit";
16804       description = "Template Toolkit renderer plugin for Mojolicious";
16805       license = with lib.licenses; [ artistic2 ];
16806       maintainers = with maintainers; [ tomasajt ];
16807     };
16808   };
16810   MojoliciousPluginTextExceptions = buildPerlPackage {
16811     pname = "Mojolicious-Plugin-TextExceptions";
16812     version = "0.02";
16813     src = fetchurl {
16814       url = "mirror://cpan/authors/id/M/MR/MRAMBERG/Mojolicious-Plugin-TextExceptions-0.02.tar.gz";
16815       hash = "sha256-Oht0BcV4TO5mHP8bARpzlRBN1IS7kbnnWT+ralOb+HQ=";
16816     };
16817     propagatedBuildInputs = [ Mojolicious ];
16818     meta = {
16819       description = "Render exceptions as text in command line user agents";
16820       homepage = "https://github.com/marcusramberg/mojolicious-plugin-textexceptions";
16821       license = with lib.licenses; [ artistic2 ];
16822       maintainers = [ maintainers.sgo ];
16823     };
16824   };
16826   MojoliciousPluginWebpack = buildPerlPackage {
16827     pname = "Mojolicious-Plugin-Webpack";
16828     version = "1.02";
16829     src = fetchurl {
16830       url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/Mojolicious-Plugin-Webpack-1.02.tar.gz";
16831       hash = "sha256-REzqioOZquelrWt8iQ/yFgk8WM6uaxyKBl77cBC3zn0=";
16832     };
16833     propagatedBuildInputs = [ Mojolicious Filechdir ];
16834     meta = {
16835       description = "Mojolicious <3 Webpack";
16836       homepage = "https://github.com/jhthorsen/mojolicious-plugin-webpack";
16837       license = with lib.licenses; [ artistic2 ];
16838       maintainers = [ maintainers.sgo ];
16839     };
16840   };
16842   MojoRedis = buildPerlPackage {
16843     pname = "Mojo-Redis";
16844     version = "3.29";
16845     src = fetchurl {
16846       url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/Mojo-Redis-3.29.tar.gz";
16847       hash = "sha256-oDMZpF0uYTpsfS1ZrAD9SwtHiGVi5ish3pG0r4llgII=";
16848     };
16849     propagatedBuildInputs = [ Mojolicious ProtocolRedisFaster ];
16850     meta = {
16851       description = "Redis driver based on Mojo::IOLoop";
16852       homepage = "https://github.com/jhthorsen/mojo-redis";
16853       license = with lib.licenses; [ artistic2 ];
16854       maintainers = [ maintainers.sgo ];
16855     };
16856   };
16858   MojoSAML = buildPerlModule {
16859     pname = "Mojo-SAML";
16860     version = "0.07";
16861     src = fetchurl {
16862       url = "mirror://cpan/authors/id/J/JB/JBERGER/Mojo-SAML-0.07.tar.gz";
16863       hash = "sha256-csJMrNtvHXp14uqgBDfHFKv1eafSENSqTT8g8e/0cQ0=";
16864     };
16865     buildInputs = [ ModuleBuildTiny ];
16866     propagatedBuildInputs = [ CryptOpenSSLRSA CryptOpenSSLX509 DataGUID Mojolicious XMLCanonicalizeXML ];
16867     meta = {
16868       description = "SAML2 toolkit using the Mojo toolkit";
16869       license = with lib.licenses; [ artistic1 gpl1Plus ];
16870       maintainers = [ maintainers.sgo ];
16871     };
16872   };
16874   MojoSQLite = buildPerlModule {
16875     pname = "Mojo-SQLite";
16876     version = "3.009";
16877     src = fetchurl {
16878       url = "mirror://cpan/authors/id/D/DB/DBOOK/Mojo-SQLite-3.009.tar.gz";
16879       hash = "sha256-Vzmprz/A/BYrOAMt9hCgcANSY7++C+wWrsUvDd3Xtkc=";
16880     };
16881     buildInputs = [ ModuleBuildTiny ];
16882     propagatedBuildInputs = [ DBDSQLite Mojolicious SQLAbstractPg URIdb URI ];
16883     meta = {
16884       description = "Tiny Mojolicious wrapper for SQLite";
16885       homepage = "https://github.com/Grinnz/Mojo-SQLite";
16886       license = with lib.licenses; [ artistic2 ];
16887       maintainers = [ maintainers.sgo ];
16888     };
16889   };
16891   Mojomysql = buildPerlPackage {
16892     pname = "Mojo-mysql";
16893     version = "1.26";
16894     src = fetchurl {
16895       url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/Mojo-mysql-1.26.tar.gz";
16896       hash = "sha256-H9LjBlr4Je9N2x2W9g9MVc9NCCD77L0wrHGdTeJx5rw=";
16897     };
16898     propagatedBuildInputs = [ DBDmysql Mojolicious SQLAbstract ];
16899     buildInputs = [ TestDeep ];
16900     meta = {
16901       description = "Mojolicious and Async MySQL/MariaDB";
16902       homepage = "https://github.com/jhthorsen/mojo-mysql";
16903       license = with lib.licenses; [ artistic2 ];
16904       maintainers = [ maintainers.sgo ];
16905     };
16906   };
16908   MojoIOLoopDelay = buildPerlModule {
16909     pname = "Mojo-IOLoop-Delay";
16910     version = "8.76";
16911     src = fetchurl {
16912       url = "mirror://cpan/authors/id/J/JB/JBERGER/Mojo-IOLoop-Delay-8.76.tar.gz";
16913       hash = "sha256-jsvAYUg3IdkgRZQya+zpXM2/vbbRihc8gt1xgXLQqe0=";
16914     };
16915     buildInputs = [ ModuleBuildTiny ];
16916     propagatedBuildInputs = [ Mojolicious ];
16917     meta = {
16918       description = "(DISCOURAGED) Promises/A+ and flow-control helpers";
16919       homepage = "https://github.com/jberger/Mojo-IOLoop-Delay";
16920       license = with lib.licenses; [ artistic2 ];
16921       maintainers = [ maintainers.zakame ];
16922     };
16923   };
16925   MojoIOLoopForkCall = buildPerlModule {
16926     pname = "Mojo-IOLoop-ForkCall";
16927     version = "0.21";
16928     src = fetchurl {
16929       url = "mirror://cpan/authors/id/J/JB/JBERGER/Mojo-IOLoop-ForkCall-0.21.tar.gz";
16930       hash = "sha256-8dpdh4RxvdhvAcQjhQgAgE9ttCtUU8IW8Jslt5RYS3g=";
16931     };
16932     propagatedBuildInputs = [ IOPipely Mojolicious MojoIOLoopDelay ];
16933     preBuild = ''
16934       # This module needs the deprecated Mojo::IOLoop::Delay
16935       substituteInPlace lib/Mojo/IOLoop/ForkCall.pm \
16936         --replace "use Mojo::IOLoop;" "use Mojo::IOLoop; use Mojo::IOLoop::Delay;"
16937     '';
16938     meta = {
16939       description = "(DEPRECATED) run blocking functions asynchronously by forking";
16940       homepage = "https://github.com/jberger/Mojo-IOLoop-ForkCall";
16941       license = with lib.licenses; [ artistic1 gpl1Plus ];
16942       maintainers = [ maintainers.zakame ];
16943     };
16944   };
16946   MojoJWT = buildPerlModule {
16947     pname = "Mojo-JWT";
16948     version = "0.09";
16949     src = fetchurl {
16950       url = "mirror://cpan/authors/id/J/JB/JBERGER/Mojo-JWT-0.09.tar.gz";
16951       hash = "sha256-wE4DmD4MbyvORdCOoucph5yWee+mNLDmjLa4t7SoWIY=";
16952     };
16953     buildInputs = [ ModuleBuildTiny ];
16954     propagatedBuildInputs = [ Mojolicious ];
16955     meta = {
16956       description = "JSON Web Token the Mojo way";
16957       homepage = "https://github.com/jberger/Mojo-JWT";
16958       license = with lib.licenses; [ artistic1 gpl1Plus ];
16959       maintainers = [ maintainers.sgo ];
16960     };
16961   };
16963   MojoPg = buildPerlPackage {
16964     pname = "Mojo-Pg";
16965     version = "4.27";
16966     src = fetchurl {
16967       url = "mirror://cpan/authors/id/S/SR/SRI/Mojo-Pg-4.27.tar.gz";
16968       hash = "sha256-oyLI3wDj5WVf300LernXmSiTIOKfZP6ZrHrxJEhO+dg=";
16969     };
16970     propagatedBuildInputs = [ DBDPg Mojolicious SQLAbstractPg ];
16971     buildInputs = [ TestDeep ];
16972     meta = {
16973       description = "Mojolicious â™¥ PostgreSQL";
16974       homepage = "https://mojolicious.org";
16975       license = with lib.licenses; [ artistic2 ];
16976       maintainers = [ maintainers.sgo ];
16977     };
16978   };
16980   MojoUserAgentCached = buildPerlPackage {
16981     pname = "Mojo-UserAgent-Cached";
16982     version = "1.25";
16983     src = fetchurl {
16984       url = "mirror://cpan/authors/id/N/NI/NICOMEN/Mojo-UserAgent-Cached-1.25.tar.gz";
16985       hash = "sha256-lZmikTjq/ZKPWF7jDvFm0j/x3FKkBn50hyxR4W3shko=";
16986     };
16987     buildInputs = [ ModuleInstall ];
16988     propagatedBuildInputs = [ AlgorithmLCSS CHI DataSerializer DevelStackTrace Mojolicious Readonly StringTruncate ];
16989     doCheck = !stdenv.hostPlatform.isDarwin;
16990     meta = {
16991       description = "Caching, Non-blocking I/O HTTP, Local file and WebSocket user agent";
16992       homepage = "https://github.com/nicomen/mojo-useragent-cached";
16993       license = with lib.licenses; [ artistic1 gpl1Plus ];
16994       maintainers = [ maintainers.sgo ];
16995     };
16996   };
16998   MongoDB = buildPerlPackage {
16999     pname = "MongoDB";
17000     version = "2.2.2";
17001     src = fetchurl {
17002       url = "mirror://cpan/authors/id/M/MO/MONGODB/MongoDB-v2.2.2.tar.gz";
17003       hash = "sha256-IBk1+S2slPOcNd5zZh6LJSQ55JbyKGV9uF/5MlfDJo8=";
17004     };
17005     buildInputs = [ JSONMaybeXS PathTiny TestDeep TestFatal TimeMoment ];
17006     propagatedBuildInputs = [ AuthenSASLSASLprep AuthenSCRAM BSON IOSocketSSL NetSSLeay ClassXSAccessor BSONXS TypeTinyXS MozillaCA Moo NetDNS SafeIsa SubQuote TieIxHash TypeTiny UUIDURandom boolean namespaceclean ];
17007     meta = {
17008       description = "Official MongoDB Driver for Perl (EOL)";
17009       homepage = "https://github.com/mongodb-labs/mongo-perl-driver";
17010       license = with lib.licenses; [ asl20 ];
17011     };
17012   };
17014   MonitoringPlugin = buildPerlPackage {
17015     pname = "Monitoring-Plugin";
17016     version = "0.40";
17017     src = fetchurl {
17018       url = "mirror://cpan/authors/id/N/NI/NIERLEIN/Monitoring-Plugin-0.40.tar.gz";
17019       hash = "sha256-+LprfifSuwpPmjKVWiRC1OQo0cSLgMixIUL/YRvnI28=";
17020     };
17021     propagatedBuildInputs = [ ClassAccessor ConfigTiny MathCalcUnits ParamsValidate ];
17022     meta = {
17023       description = ''
17024         A family of perl modules to streamline writing Naemon,
17025         Nagios, Icinga or Shinken (and compatible) plugins
17026       '';
17027       license = with lib.licenses; [ artistic1 gpl1Plus ];
17028     };
17029   };
17031   IOPipely = buildPerlPackage {
17032     pname = "IO-Pipely";
17033     version = "0.006";
17034     src = fetchurl {
17035       url = "mirror://cpan/authors/id/R/RC/RCAPUTO/IO-Pipely-0.006.tar.gz";
17036       hash = "sha256-Dj/NhBoyfvtUn6AbIIPcNpXnLqDGMwPlbtUWG/gQQTs=";
17037     };
17038     meta = {
17039       description = "Portably create pipe() or pipe-like handles, one way or another";
17040       homepage = "https://search.cpan.org/dist/IO-Pipely";
17041       license = with lib.licenses; [ artistic1 gpl1Plus ];
17042     };
17043   };
17045   Moo = buildPerlPackage {
17046     pname = "Moo";
17047     version = "2.005005";
17048     src = fetchurl {
17049       url = "mirror://cpan/authors/id/H/HA/HAARG/Moo-2.005005.tar.gz";
17050       hash = "sha256-+1opUmSfrtBzc/Igt4AEqcaro4dzkTN0DBdw6bH0sQg=";
17051     };
17052     buildInputs = [ TestFatal ];
17053     propagatedBuildInputs = [ ClassMethodModifiers ModuleRuntime RoleTiny SubQuote ];
17054     meta = {
17055       description = "Minimalist Object Orientation (with Moose compatibility)";
17056       license = with lib.licenses; [ artistic1 gpl1Plus ];
17057     };
17058   };
17060   Moose = buildPerlPackage {
17061     pname = "Moose";
17062     version = "2.2206";
17063     src = fetchurl {
17064       url = "mirror://cpan/authors/id/E/ET/ETHER/Moose-2.2206.tar.gz";
17065       hash = "sha256-Z5csTivDn72jhRgXevDme7vrVIVi5OxLdZoaelg+UFs=";
17066     };
17067     buildInputs = [ DistCheckConflicts CPANMetaCheck TestCleanNamespaces TestFatal TestNeeds TestRequires ];
17068     propagatedBuildInputs = [ ClassLoadXS DataOptList DevelGlobalDestruction DevelOverloadInfo DevelStackTrace EvalClosure MROCompat ModuleRuntimeConflicts PackageDeprecationManager PackageStashXS ParamsUtil SubExporter TryTiny ];
17069     preConfigure = ''
17070       export LD=$CC
17071     '';
17072     meta = {
17073       description = "Postmodern object system for Perl 5";
17074       homepage = "http://moose.perl.org";
17075       license = with lib.licenses; [ artistic1 gpl1Plus ];
17076       maintainers = [ ];
17077       mainProgram = "moose-outdated";
17078     };
17079   };
17081   MooXHandlesVia = buildPerlPackage {
17082     pname = "MooX-HandlesVia";
17083     version = "0.001009";
17084     src = fetchurl {
17085       url = "mirror://cpan/authors/id/T/TO/TOBYINK/MooX-HandlesVia-0.001009.tar.gz";
17086       hash = "sha256-cWNT44iU7Lfo5MF7yVSD219ZACsDVBtUpywn8qjzbBI=";
17087     };
17088     buildInputs = [ MooXTypesMooseLike TestException TestFatal ];
17089     propagatedBuildInputs = [ DataPerl Moo ];
17090     meta = {
17091       description = "NativeTrait-like behavior for Moo";
17092       license = with lib.licenses; [ artistic1 gpl1Plus ];
17093     };
17094   };
17096   MooXLocalePassthrough = buildPerlPackage {
17097     pname = "MooX-Locale-Passthrough";
17098     version = "0.001";
17099     src = fetchurl {
17100       url = "mirror://cpan/authors/id/R/RE/REHSACK/MooX-Locale-Passthrough-0.001.tar.gz";
17101       hash = "sha256-egWCflKrWh3eLqXHEpJ7HljI0lFmTZZmJ6353TDsBRI=";
17102     };
17103     propagatedBuildInputs = [ Moo ];
17104     meta = {
17105       description = "Provide API used in translator modules without translating";
17106       homepage = "https://metacpan.org/release/MooX-Locale-Passthrough";
17107       license = with lib.licenses; [ artistic1 gpl1Plus ];
17108     };
17109   };
17111   MooXLocaleTextDomainOO = buildPerlPackage {
17112     pname = "MooX-Locale-TextDomain-OO";
17113     version = "0.001";
17114     src = fetchurl {
17115       url = "mirror://cpan/authors/id/R/RE/REHSACK/MooX-Locale-TextDomain-OO-0.001.tar.gz";
17116       hash = "sha256-W45Sz/3YSpXTaMoQuUNUG5lqk+DQY5b0/hkzVojkFz0=";
17117     };
17118     propagatedBuildInputs = [ LocaleTextDomainOO MooXLocalePassthrough ];
17119     meta = {
17120       description = "Provide API used in translator modules without translating";
17121       homepage = "https://metacpan.org/release/MooX-Locale-TextDomain-OO";
17122       license = with lib.licenses; [ artistic1 gpl1Plus ];
17123     };
17124   };
17126   MooXOptions = buildPerlPackage {
17127     pname = "MooX-Options";
17128     version = "4.103";
17129     src = fetchurl {
17130       url = "mirror://cpan/authors/id/R/RE/REHSACK/MooX-Options-4.103.tar.gz";
17131       hash = "sha256-TfnVdPjybbAivwbBvaRwgolFEJjC4VYzNd840jsHMm0=";
17132     };
17133     propagatedBuildInputs = [ GetoptLongDescriptive MROCompat MooXLocalePassthrough PathClass UnicodeLineBreak strictures ];
17134     buildInputs = [ Mo MooXCmd MooXLocaleTextDomainOO Moose TestTrap ];
17135     preCheck = "rm t/16-namespace_clean.t"; # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=942275
17136     meta = {
17137       description = "Explicit Options eXtension for Object Class";
17138       homepage = "https://metacpan.org/celogeek/MooX-Options";
17139       license = with lib.licenses; [ artistic1 gpl1Plus ];
17140     };
17141   };
17143   MooXSingleton = buildPerlModule {
17144     pname = "MooX-Singleton";
17145     version = "1.20";
17146     src = fetchurl {
17147       url = "mirror://cpan/authors/id/A/AJ/AJGB/MooX-Singleton-1.20.tar.gz";
17148       hash = "sha256-99dib//emPhewSwe4msB8Tmk3d0vRT6lbDQd8ZTjIQ4=";
17149     };
17150     propagatedBuildInputs = [ RoleTiny ];
17151     buildInputs = [ Moo ];
17152     meta = {
17153       description = "Turn your Moo class into singleton";
17154       homepage = "https://search.cpan.org/dist/MooX-Singleton";
17155       license = with lib.licenses; [ artistic1 gpl1Plus ];
17156     };
17157   };
17159   MooXStrictConstructor = buildPerlPackage {
17160     pname = "MooX-StrictConstructor";
17161     version = "0.011";
17162     src = fetchurl {
17163       url = "mirror://cpan/authors/id/H/HA/HARTZELL/MooX-StrictConstructor-0.011.tar.gz";
17164       hash = "sha256-2jgvgi/8TiKgOqQZpCVydJmdNtiaThI27PT892vGU+I=";
17165     };
17166     propagatedBuildInputs = [ Moo strictures ];
17167     buildInputs = [ TestFatal ];
17168     meta = {
17169       description = "Make your Moo-based object constructors blow up on unknown attributes";
17170       homepage = "https://metacpan.org/release/MooX-StrictConstructor";
17171       license = with lib.licenses; [ artistic1 gpl1Plus ];
17172     };
17173   };
17175   MooXTypesMooseLike = buildPerlPackage {
17176     pname = "MooX-Types-MooseLike";
17177     version = "0.29";
17178     src = fetchurl {
17179       url = "mirror://cpan/authors/id/M/MA/MATEU/MooX-Types-MooseLike-0.29.tar.gz";
17180       hash = "sha256-HTeAqpvqQwr75lqox25xjxBFzniKrdpBFvWdO3p60rQ=";
17181     };
17182     propagatedBuildInputs = [ ModuleRuntime ];
17183     buildInputs = [ Moo TestFatal ];
17184     meta = {
17185       description = "Some Moosish types and a type builder";
17186       license = with lib.licenses; [ artistic1 gpl1Plus ];
17187     };
17188   };
17190   MooXTypesMooseLikeNumeric = buildPerlPackage {
17191     pname = "MooX-Types-MooseLike-Numeric";
17192     version = "1.03";
17193     src = fetchurl {
17194       url = "mirror://cpan/authors/id/M/MA/MATEU/MooX-Types-MooseLike-Numeric-1.03.tar.gz";
17195       hash = "sha256-Fq3rYXuWPQEBeZIsLk6HYt93x1Iy4XMgtFmGjElwxEs=";
17196     };
17197     buildInputs = [ Moo TestFatal ];
17198     propagatedBuildInputs = [ MooXTypesMooseLike ];
17199     meta = {
17200       description = "Moo types for numbers";
17201       license = with lib.licenses; [ artistic1 gpl1Plus ];
17202     };
17203   };
17205   MooXTypeTiny = buildPerlPackage {
17206     pname = "MooX-TypeTiny";
17207     version = "0.002003";
17208     src = fetchurl {
17209       url = "mirror://cpan/authors/id/H/HA/HAARG/MooX-TypeTiny-0.002003.tar.gz";
17210       hash = "sha256-2B4m/2+NsQJh8Ah/ltxUNn3LSanz3o1TI4+DTs4ZYks=";
17211     };
17212     buildInputs = [ TestFatal ];
17213     propagatedBuildInputs = [ Moo TypeTiny ];
17214     meta = {
17215       description = "Tiny, yet Moo(se)-compatible type constraint";
17216       homepage = "https://typetiny.toby.ink";
17217       license = with lib.licenses; [ artistic1 gpl1Plus ];
17218     };
17219   };
17221   MooseAutobox = buildPerlModule {
17222     pname = "Moose-Autobox";
17223     version = "0.16";
17224     src = fetchurl {
17225       url = "mirror://cpan/authors/id/E/ET/ETHER/Moose-Autobox-0.16.tar.gz";
17226       hash = "sha256-kkAdpM9ITrcYjsGWtoGG76eCoQK0UeoVbNi4dy5ocFU=";
17227     };
17228     buildInputs = [ ModuleBuildTiny TestException ];
17229     propagatedBuildInputs = [ ListMoreUtils Moose SyntaxKeywordJunction autobox namespaceautoclean ];
17230     meta = {
17231       description = "Autoboxed wrappers for Native Perl datatypes";
17232       homepage = "https://github.com/moose/Moose-Autobox";
17233       license = with lib.licenses; [ artistic1 gpl1Plus ];
17234     };
17235   };
17237   MooseXABC = buildPerlPackage {
17238     pname = "MooseX-ABC";
17239     version = "0.06";
17240     src = fetchurl {
17241       url = "mirror://cpan/authors/id/D/DO/DOY/MooseX-ABC-0.06.tar.gz";
17242       hash = "sha256-Tr7suUbkVSssRyH1u/I+9huTJlELVzlr9ZkLEW8Dfuo=";
17243     };
17244     buildInputs = [ TestFatal ];
17245     propagatedBuildInputs = [ Moose ];
17246     meta = {
17247       description = "Abstract base classes for Moose";
17248       homepage = "https://metacpan.org/release/MooseX-ABC";
17249       license = with lib.licenses; [ artistic1 gpl1Plus ];
17250     };
17251   };
17253   MooseXAliases = buildPerlPackage {
17254     pname = "MooseX-Aliases";
17255     version = "0.11";
17256     src = fetchurl {
17257       url = "mirror://cpan/authors/id/D/DO/DOY/MooseX-Aliases-0.11.tar.gz";
17258       hash = "sha256-xIUPlyQmw0R6ru2Ny0Az6ERgylFwWtPqeLY6+Rn+B0g=";
17259     };
17260     buildInputs = [ TestFatal ];
17261     propagatedBuildInputs = [ Moose ];
17262     meta = {
17263       description = "Easy aliasing of methods and attributes in Moose";
17264       license = with lib.licenses; [ artistic1 gpl1Plus ];
17265     };
17266   };
17268   MooseXAppCmd = buildPerlModule {
17269     pname = "MooseX-App-Cmd";
17270     version = "0.34";
17271     src = fetchurl {
17272       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-App-Cmd-0.34.tar.gz";
17273       hash = "sha256-9eLy7xKcOI8qPjb1PeWYBErxtyLofXEFKdBcwl0jesI=";
17274     };
17275     buildInputs = [ ModuleBuildTiny MooseXConfigFromFile TestOutput YAML ];
17276     propagatedBuildInputs = [ AppCmd MooseXGetopt MooseXNonMoose ];
17277     meta = {
17278       description = "Mashes up MooseX::Getopt and App::Cmd";
17279       homepage = "https://github.com/moose/MooseX-App-Cmd";
17280       license = with lib.licenses; [ artistic1 gpl1Plus ];
17281     };
17282   };
17284   MooseXStorageFormatJSONpm = buildPerlPackage {
17285     pname = "MooseX-Storage-Format-JSONpm";
17286     version = "0.093094";
17287     src = fetchurl {
17288       url = "mirror://cpan/authors/id/R/RJ/RJBS/MooseX-Storage-Format-JSONpm-0.093094.tar.gz";
17289       hash = "sha256-9sgItyC99HI4VaZ4sblQLHSSABXFq8YL2uasYNFGxYQ=";
17290     };
17291     buildInputs = [ Moose TestDeepJSON TestWithoutModule DigestHMAC MooseXTypes ];
17292     propagatedBuildInputs = [ JSON MooseXRoleParameterized MooseXStorage namespaceautoclean ];
17293     meta = {
17294       description = "Format role for MooseX::Storage using JSON.pm";
17295       homepage = "https://github.com/rjbs/MooseX-Storage-Format-JSONpm";
17296       license = with lib.licenses; [ artistic1 gpl1Plus ];
17297     };
17298   };
17300   MooX = buildPerlPackage {
17301     pname = "MooX";
17302     version = "0.101";
17303     src = fetchurl {
17304       url = "mirror://cpan/authors/id/G/GE/GETTY/MooX-0.101.tar.gz";
17305       hash = "sha256-L/kaZW54quCspCKTgp16flrLm/IrBAFjWyq2yHDeMtU=";
17306     };
17307     propagatedBuildInputs = [ DataOptList ImportInto Moo ];
17308     meta = {
17309       description = "Using Moo and MooX:: packages the most lazy way";
17310       homepage = "https://github.com/Getty/p5-moox";
17311       license = with lib.licenses; [ artistic1 gpl1Plus ];
17312     };
17313   };
17315   MooXAliases = buildPerlPackage {
17316     pname = "MooX-Aliases";
17317     version = "0.001006";
17318     src = fetchurl {
17319       url = "mirror://cpan/authors/id/H/HA/HAARG/MooX-Aliases-0.001006.tar.gz";
17320       hash = "sha256-AWAxJ4ysYSY9AZUt/lv7XztGtLhCsv/6nyybiKrGOGc=";
17321     };
17322     propagatedBuildInputs = [ Moo strictures ];
17323     buildInputs = [ TestFatal ];
17324     meta = {
17325       description = "Easy aliasing of methods and attributes in Moo";
17326       license = with lib.licenses; [ artistic1 gpl1Plus ];
17327     };
17328   };
17330   MooXCmd = buildPerlPackage {
17331     pname = "MooX-Cmd";
17332     version = "0.017";
17333     src = fetchurl {
17334       url = "mirror://cpan/authors/id/R/RE/REHSACK/MooX-Cmd-0.017.tar.gz";
17335       hash = "sha256-lD/yjaqAiXMnx8X+xacQDPqsktrw+fl8OOOnfQCucPU=";
17336     };
17337     propagatedBuildInputs = [ ListMoreUtils ModulePluggable Moo PackageStash ParamsUtil RegexpCommon ];
17338     buildInputs = [ CaptureTiny ];
17339     meta = {
17340       description = "Giving an easy Moo style way to make command organized CLI apps";
17341       homepage = "https://metacpan.org/release/MooX-Cmd";
17342       license = with lib.licenses; [ artistic1 gpl1Plus ];
17343     };
17344   };
17346   MooXlate = buildPerlPackage {
17347     pname = "MooX-late";
17348     version = "0.100";
17349     src = fetchurl {
17350       url = "mirror://cpan/authors/id/T/TO/TOBYINK/MooX-late-0.100.tar.gz";
17351       hash = "sha256-KuWx49pavA5ABieOy8+o+nwiTqVSmmpoisuyKcCeal8=";
17352     };
17353     buildInputs = [ TestFatal TestRequires ];
17354     propagatedBuildInputs = [ Moo SubHandlesVia ];
17355     meta = {
17356       description = "Easily translate Moose code to Moo";
17357       homepage = "https://metacpan.org/release/MooX-late";
17358       license = with lib.licenses; [ artistic1 gpl1Plus ];
17359     };
17360   };
17362   MouseXSimpleConfig = buildPerlPackage {
17363     pname = "MouseX-SimpleConfig";
17364     version = "0.11";
17365     src = fetchurl {
17366       url = "mirror://cpan/authors/id/M/MJ/MJGARDNER/MouseX-SimpleConfig-0.11.tar.gz";
17367       hash = "sha256-JX84QJHTPTQDc6YVOUcDnGmNxEnR75iTNWRPw9LaAGk=";
17368     };
17369     propagatedBuildInputs = [ ConfigAny MouseXConfigFromFile ];
17370     meta = {
17371       description = "Mouse role for setting attributes from a simple configfile";
17372       license = with lib.licenses; [ artistic1 gpl1Plus ];
17373     };
17374   };
17376   TestArchiveLibarchive = buildPerlPackage {
17377     pname = "Test-Archive-Libarchive";
17378     version = "0.02";
17379     src = fetchurl {
17380       url = "mirror://cpan/authors/id/P/PL/PLICEASE/Test-Archive-Libarchive-0.02.tar.gz";
17381       hash = "sha256-KxkYZx4F2i2dIiwQx9kXWFpiQYb+r7j4SQhZnDRwJ1E=";
17382     };
17383     propagatedBuildInputs = [ RefUtil Test2Suite ];
17384     meta = {
17385       homepage = "https://metacpan.org/pod/Test::Archive::Libarchive";
17386       description = "Testing tools for Archive::Libarchive";
17387       license = with lib.licenses; [ artistic1 gpl1Plus ];
17388       maintainers = with maintainers; [ tomasajt ];
17389     };
17390   };
17392   TestPostgreSQL = buildPerlModule {
17393     pname = "Test-PostgreSQL";
17394     version = "1.29";
17395     src = fetchurl {
17396       url = "mirror://cpan/authors/id/T/TJ/TJC/Test-PostgreSQL-1.29.tar.gz";
17397       hash = "sha256-GKz35YnKTMqc3kdgm1NsnYI8hWLRqlIQwWjl6xuOT54=";
17398     };
17399     buildInputs = [ ModuleBuildTiny TestSharedFork pkgs.postgresql ];
17400     propagatedBuildInputs = [ DBDPg DBI FileWhich FunctionParameters Moo TieHashMethod TryTiny TypeTiny ];
17402     makeMakerFlags = [ "POSTGRES_HOME=${pkgs.postgresql}" ];
17404     meta = {
17405       description = "PostgreSQL runner for tests";
17406       homepage = "https://github.com/TJC/Test-postgresql";
17407       license = with lib.licenses; [ artistic2 ];
17408     };
17409   };
17411   TestUseAllModules = buildPerlPackage {
17412     pname = "Test-UseAllModules";
17413     version = "0.17";
17414     src = fetchurl {
17415       url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/Test-UseAllModules-0.17.tar.gz";
17416       hash = "sha256-px8v6LlquL/Cdgqh0xNeoEmlsg3LEFRXt2mhGVx6JQk=";
17417     };
17418     meta = {
17419       description = "Do use_ok() for all the MANIFESTed modules";
17420       license = with lib.licenses; [ artistic1 gpl1Plus ];
17421     };
17422   };
17424   TestValgrind = buildPerlPackage {
17425     pname = "Test-Valgrind";
17426     version = "1.19";
17427     src = fetchurl {
17428       url = "mirror://cpan/authors/id/V/VP/VPIT/Test-Valgrind-1.19.tar.gz";
17429       hash = "sha256-GDinoV/ueo8Gnk5rRhxeFpBYthW437Q3hLPV2hpggRs=";
17430     };
17431     propagatedBuildInputs = [ EnvSanctify FileHomeDir PerlDestructLevel XMLTwig ];
17432     meta = {
17433       description = "Generate suppressions, analyse and test any command with valgrind";
17434       homepage = "https://search.cpan.org/dist/Test-Valgrind";
17435       license = with lib.licenses; [ artistic1 gpl1Plus ];
17436     };
17437   };
17439   MouseXTypesPathClass = buildPerlPackage {
17440     pname = "MouseX-Types-Path-Class";
17441     version = "0.07";
17442     src = fetchurl {
17443       url = "mirror://cpan/authors/id/M/MA/MASAKI/MouseX-Types-Path-Class-0.07.tar.gz";
17444       hash = "sha256-Io1LTz8O2VRyeGkdC3xf5T2Qh0pp33CaSXA8avh8Cd4=";
17445     };
17446     buildInputs = [ TestUseAllModules ];
17447     propagatedBuildInputs = [ MouseXTypes PathClass ];
17448     meta = {
17449       description = "Cross-platform path specification manipulation";
17450       license = with lib.licenses; [ artistic1 gpl1Plus ];
17451     };
17452   };
17454   MouseXTypes = buildPerlPackage {
17455     pname = "MouseX-Types";
17456     version = "0.06";
17457     src = fetchurl {
17458       url = "mirror://cpan/authors/id/G/GF/GFUJI/MouseX-Types-0.06.tar.gz";
17459       hash = "sha256-dyiEQf2t0Vvu7JoIE+zorsFULx2M6q7BR1Wz8xb7z4s=";
17460     };
17461     buildInputs = [ TestException ];
17462     propagatedBuildInputs = [ AnyMoose ];
17463     meta = {
17464       description = "Organize your Mouse types in libraries";
17465       license = with lib.licenses; [ artistic1 gpl1Plus ];
17466     };
17467   };
17469   MouseXConfigFromFile = buildPerlPackage {
17470     pname = "MouseX-ConfigFromFile";
17471     version = "0.05";
17472     src = fetchurl {
17473       url = "mirror://cpan/authors/id/M/MA/MASAKI/MouseX-ConfigFromFile-0.05.tar.gz";
17474       hash = "sha256-khsxyxP8H5gqYC+OI4Fbet0joiQlfkN5Dih1BM6HlTQ=";
17475     };
17476     buildInputs = [ TestUseAllModules ];
17477     propagatedBuildInputs = [ MouseXTypesPathClass ];
17478     meta = {
17479       description = "Abstract Mouse role for setting attributes from a configfile";
17480       license = with lib.licenses; [ artistic1 gpl1Plus ];
17481     };
17482   };
17484   MouseXGetopt = buildPerlModule {
17485     pname = "MouseX-Getopt";
17486     version = "0.38";
17487     src = fetchurl {
17488       url = "mirror://cpan/authors/id/G/GF/GFUJI/MouseX-Getopt-0.38.tar.gz";
17489       hash = "sha256-3j6o70Ut2VAeqMTtqHRLciRgJgKwRpJgft19YrefA48=";
17490     };
17491     buildInputs = [ ModuleBuildTiny MouseXConfigFromFile MouseXSimpleConfig TestException TestWarn ];
17492     propagatedBuildInputs = [ GetoptLongDescriptive Mouse ];
17493     preCheck = ''
17494       # Remove tests that fail due to updated Getopt::Long::Descriptive
17495       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
17496     '';
17497     meta = {
17498       description = "Mouse role for processing command line options";
17499       homepage = "https://github.com/gfx/mousex-getopt";
17500       license = with lib.licenses; [ artistic1 gpl1Plus ];
17501     };
17502   };
17504   MooseXAttributeChained = buildPerlModule {
17505     pname = "MooseX-Attribute-Chained";
17506     version = "1.0.3";
17507     src = fetchurl {
17508       url = "mirror://cpan/authors/id/T/TO/TOMHUKINS/MooseX-Attribute-Chained-1.0.3.tar.gz";
17509       hash = "sha256-5+OKp8O3i1c06dQ892gy/OAHZ+alPV3Xmhci2GdtXk4=";
17510     };
17511     propagatedBuildInputs = [ Moose ];
17512     meta = {
17513       description = "Attribute that returns the instance to allow for chaining";
17514       license = with lib.licenses; [ artistic1 gpl1Plus ];
17515     };
17516   };
17518   MooseXAttributeHelpers = buildPerlModule {
17519     pname = "MooseX-AttributeHelpers";
17520     version = "0.25";
17521     src = fetchurl {
17522       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-AttributeHelpers-0.25.tar.gz";
17523       hash = "sha256-sMgZ7IOZmyWLJI+CBZ+ll1oM7jZUI6u+4O+spUAcXsY=";
17524     };
17525     buildInputs = [ ModuleBuildTiny TestException ];
17526     propagatedBuildInputs = [ Moose ];
17527     meta = {
17528       description = "(DEPRECATED) Extend your attribute interfaces";
17529       homepage = "https://github.com/moose/MooseX-AttributeHelpers";
17530       license = with lib.licenses; [ artistic1 gpl1Plus ];
17531     };
17532   };
17534   MooseXClone = buildPerlModule {
17535     pname = "MooseX-Clone";
17536     version = "0.06";
17537     src = fetchurl {
17538       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Clone-0.06.tar.gz";
17539       hash = "sha256-y9eCXbnnSwU/UkVEoBTwZv3OKQMW67Vo+HZ5GBs5jac=";
17540     };
17541     propagatedBuildInputs = [ DataVisitor HashUtilFieldHashCompat namespaceautoclean ];
17542     buildInputs = [ ModuleBuildTiny ];
17543     meta = {
17544       description = "Fine-grained cloning support for Moose objects";
17545       license = with lib.licenses; [ artistic1 gpl1Plus ];
17546     };
17547   };
17549   MooseXConfigFromFile = buildPerlModule {
17550     pname = "MooseX-ConfigFromFile";
17551     version = "0.14";
17552     src = fetchurl {
17553       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-ConfigFromFile-0.14.tar.gz";
17554       hash = "sha256-mtNDzZ+G1xS+m1S5xopEPYrMZQG2rWsV6coBMLLpbwg=";
17555     };
17556     buildInputs = [ ModuleBuildTiny TestDeep TestFatal TestRequires TestWithoutModule ];
17557     propagatedBuildInputs = [ MooseXTypesPathTiny ];
17558     meta = {
17559       description = "Abstract Moose role for setting attributes from a configfile";
17560       homepage = "https://github.com/moose/MooseX-ConfigFromFile";
17561       license = with lib.licenses; [ artistic1 gpl1Plus ];
17562     };
17563   };
17565   MooseXDaemonize = buildPerlModule {
17566     pname = "MooseX-Daemonize";
17567     version = "0.22";
17568     src = fetchurl {
17569       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Daemonize-0.22.tar.gz";
17570       hash = "sha256-in+5mdypuAKoUTahAUGy0zeKPs3gUnwd9z1V7bKOWbM=";
17571     };
17572     buildInputs = [ DevelCheckOS ModuleBuildTiny TestFatal ];
17573     propagatedBuildInputs = [ MooseXGetopt MooseXTypesPathClass ];
17574     meta = {
17575       description = "Role for daemonizing your Moose based application";
17576       homepage = "https://github.com/moose/MooseX-Daemonize";
17577       license = with lib.licenses; [ artistic1 gpl1Plus ];
17578     };
17579   };
17581   MooseXEmulateClassAccessorFast = buildPerlPackage {
17582     pname = "MooseX-Emulate-Class-Accessor-Fast";
17583     version = "0.009032";
17584     src = fetchurl {
17585       url = "mirror://cpan/authors/id/H/HA/HAARG/MooseX-Emulate-Class-Accessor-Fast-0.009032.tar.gz";
17586       hash = "sha256-gu637x8NJUGK5AbqJpErJBQo1LKrlRDV6d6z9ywYeZQ=";
17587     };
17588     buildInputs = [ TestException ];
17589     propagatedBuildInputs = [ Moose namespaceclean ];
17590     meta = {
17591       description = "Emulate Class::Accessor::Fast behavior using Moose attributes";
17592       license = with lib.licenses; [ artistic1 gpl1Plus ];
17593     };
17594   };
17596   MooseXGetopt = buildPerlModule {
17597     pname = "MooseX-Getopt";
17598     version = "0.76";
17599     src = fetchurl {
17600       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Getopt-0.76.tar.gz";
17601       hash = "sha256-/4cxvSsd+DNH37av6coVwE0uzYsojleT0JXq+Va2sCg=";
17602     };
17603     buildInputs = [ ModuleBuildTiny MooseXStrictConstructor PathTiny TestDeep TestFatal TestNeeds TestTrap TestWarnings ];
17604     propagatedBuildInputs = [ GetoptLongDescriptive MooseXRoleParameterized ];
17605     meta = {
17606       description = "Moose role for processing command line options";
17607       homepage = "https://github.com/moose/MooseX-Getopt";
17608       license = with lib.licenses; [ artistic1 gpl1Plus ];
17609     };
17610   };
17612   MooseXHasOptions = buildPerlPackage {
17613     pname = "MooseX-Has-Options";
17614     version = "0.003";
17615     src = fetchurl {
17616       url = "mirror://cpan/authors/id/P/PS/PSHANGOV/MooseX-Has-Options-0.003.tar.gz";
17617       hash = "sha256-B8Ic+O1QCycgIP+NoZ8ZRyi7QU4AEqLwzFTvLvYiKmg=";
17618     };
17619     buildInputs = [ Moose TestDeep TestDifferences TestException TestMost TestWarn namespaceautoclean ];
17620     propagatedBuildInputs = [ ClassLoad ListMoreUtils StringRewritePrefix ];
17621     meta = {
17622       description = "Succinct options for Moose";
17623       homepage = "https://github.com/pshangov/moosex-has-options";
17624       license = with lib.licenses; [ artistic1 gpl1Plus ];
17625     };
17626   };
17628   MooseXHasSugar = buildPerlPackage {
17629     pname = "MooseX-Has-Sugar";
17630     version = "1.000006";
17631     src = fetchurl {
17632       url = "mirror://cpan/authors/id/K/KE/KENTNL/MooseX-Has-Sugar-1.000006.tar.gz";
17633       hash = "sha256-7+7T3bOo6hj0FtSF88KwQnFF0mfmM2jGUdSI6qjCjQk=";
17634     };
17635     buildInputs = [ TestFatal namespaceclean ];
17636     propagatedBuildInputs = [ SubExporterProgressive ];
17637     meta = {
17638       description = "Sugar Syntax for moose 'has' fields";
17639       homepage = "https://github.com/kentnl/MooseX-Has-Sugar";
17640       license = with lib.licenses; [ artistic1 gpl1Plus ];
17641     };
17642   };
17644   MooseXLazyRequire = buildPerlModule {
17645     pname = "MooseX-LazyRequire";
17646     version = "0.11";
17647     src = fetchurl {
17648       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-LazyRequire-0.11.tar.gz";
17649       hash = "sha256-72IMHgGdr5zz8jqUPSWpTJHpOrMSvNY74ul0DsC5Qog=";
17650     };
17651     buildInputs = [ ModuleBuildTiny TestFatal ];
17652     propagatedBuildInputs = [ Moose aliased namespaceautoclean ];
17653     meta = {
17654       description = "Required attributes which fail only when trying to use them";
17655       homepage = "https://github.com/moose/MooseX-LazyRequire";
17656       license = with lib.licenses; [ artistic1 gpl1Plus ];
17657     };
17658   };
17660   MooseXMarkAsMethods = buildPerlPackage {
17661     pname = "MooseX-MarkAsMethods";
17662     version = "0.15";
17663     src = fetchurl {
17664       url = "mirror://cpan/authors/id/R/RS/RSRCHBOY/MooseX-MarkAsMethods-0.15.tar.gz";
17665       hash = "sha256-yezBM3bQ/326SBl3M3wz6nTl0makKLavMVUqKRnvfvg=";
17666     };
17667     propagatedBuildInputs = [ Moose namespaceautoclean ];
17668     meta = {
17669       description = "Mark overload code symbols as methods";
17670       homepage = "https://metacpan.org/release/MooseX-MarkAsMethods";
17671       license = with lib.licenses; [ lgpl21Only ];
17672     };
17673   };
17675   MooseXMethodAttributes = buildPerlPackage {
17676     pname = "MooseX-MethodAttributes";
17677     version = "0.32";
17678     src = fetchurl {
17679       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-MethodAttributes-0.32.tar.gz";
17680       hash = "sha256-yzOIZXS30t05xCwNzccHrNsK7H273pohwEImYDaMGXs=";
17681     };
17682     buildInputs = [ MooseXRoleParameterized TestFatal TestNeeds ];
17683     propagatedBuildInputs = [ Moose namespaceautoclean ];
17684     meta = {
17685       description = "Code attribute introspection";
17686       homepage = "https://github.com/moose/MooseX-MethodAttributes";
17687       license = with lib.licenses; [ artistic1 gpl1Plus ];
17688     };
17689   };
17691   MooseXNonMoose = buildPerlPackage {
17692     pname = "MooseX-NonMoose";
17693     version = "0.26";
17694     src = fetchurl {
17695       url = "mirror://cpan/authors/id/D/DO/DOY/MooseX-NonMoose-0.26.tar.gz";
17696       hash = "sha256-y75S7PFgOCMfvX8sxrzhZqNWnIyzlq6A7EUXwuCNqn0=";
17697     };
17698     buildInputs = [ TestFatal ];
17699     propagatedBuildInputs = [ ListMoreUtils Moose ];
17700     meta = {
17701       description = "Easy subclassing of non-Moose classes";
17702       homepage = "https://metacpan.org/release/MooseX-NonMoose";
17703       license = with lib.licenses; [ artistic1 gpl1Plus ];
17704     };
17705   };
17707   MooseXOneArgNew = buildPerlPackage {
17708     pname = "MooseX-OneArgNew";
17709     version = "0.007";
17710     src = fetchurl {
17711       url = "mirror://cpan/authors/id/R/RJ/RJBS/MooseX-OneArgNew-0.007.tar.gz";
17712       hash = "sha256-hCgkNfEWnPCddRP6k4fiCReRY1zzWgeLUAuCmu6gYTg=";
17713     };
17714     propagatedBuildInputs = [ MooseXRoleParameterized ];
17715     meta = {
17716       description = "Teach ->new to accept single, non-hashref arguments";
17717       homepage = "https://github.com/rjbs/MooseX-OneArgNew";
17718       license = with lib.licenses; [ artistic1 gpl1Plus ];
17719     };
17720   };
17722   MooseXRelatedClassRoles = buildPerlPackage {
17723     pname = "MooseX-RelatedClassRoles";
17724     version = "0.004";
17725     src = fetchurl {
17726       url = "mirror://cpan/authors/id/H/HD/HDP/MooseX-RelatedClassRoles-0.004.tar.gz";
17727       hash = "sha256-MNt6I33SYCIhb/+5cLmFKFNHEws2kjxxGqCVaty0fp8=";
17728     };
17729     propagatedBuildInputs = [ MooseXRoleParameterized ];
17730     meta = { description = "Apply roles to a class related to yours";
17731       license = with lib.licenses; [ artistic1 gpl1Plus ];
17732     };
17733   };
17735   MooseXParamsValidate = buildPerlPackage {
17736     pname = "MooseX-Params-Validate";
17737     version = "0.21";
17738     src = fetchurl {
17739       url = "mirror://cpan/authors/id/D/DR/DROLSKY/MooseX-Params-Validate-0.21.tar.gz";
17740       hash = "sha256-iClURqupmcu4+ZjX+5onAdZhc5SlHW1yTHdObZ/xOdk=";
17741     };
17742     buildInputs = [ TestFatal ];
17743     propagatedBuildInputs = [ DevelCaller Moose ParamsValidate ];
17744     meta = {
17745       description = "Extension of Params::Validate using Moose's types";
17746       license = with lib.licenses; [ artistic1 gpl1Plus ];
17747     };
17748   };
17750   MooseXRoleParameterized = buildPerlModule {
17751     pname = "MooseX-Role-Parameterized";
17752     version = "1.11";
17753     src = fetchurl {
17754       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Role-Parameterized-1.11.tar.gz";
17755       hash = "sha256-HP52bF1/Dsq1f3M9zKQwoqKs1rmVdXFBuUCt42kr7J4=";
17756     };
17757     buildInputs = [ CPANMetaCheck ModuleBuildTiny TestFatal TestNeeds ];
17758     propagatedBuildInputs = [ Moose namespaceautoclean ];
17759     meta = {
17760       description = "Moose roles with composition parameters";
17761       homepage = "https://github.com/moose/MooseX-Role-Parameterized";
17762       license = with lib.licenses; [ artistic1 gpl1Plus ];
17763     };
17764   };
17766   MooseXRoleWithOverloading = buildPerlPackage {
17767     pname = "MooseX-Role-WithOverloading";
17768     version = "0.17";
17769     src = fetchurl {
17770       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Role-WithOverloading-0.17.tar.gz";
17771       hash = "sha256-krCV1z8SIPnC7S06qlugcutaot4gm3xFXaWocBuYaGU=";
17772     };
17773     propagatedBuildInputs = [ Moose aliased namespaceautoclean ];
17774     meta = {
17775       description = "(DEPRECATED) Roles which support overloading";
17776       homepage = "https://github.com/moose/MooseX-Role-WithOverloading";
17777       license = with lib.licenses; [ artistic1 gpl1Plus ];
17778     };
17779   };
17781   MooseXRunnable = buildPerlModule {
17782     pname = "MooseX-Runnable";
17783     version = "0.10";
17784     src = fetchurl {
17785       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Runnable-0.10.tar.gz";
17786       hash = "sha256-QNj9G1UkrpZZZaHxRNegoMhQWUxSRAKyMZsk1cSvEZk=";
17787     };
17788     buildInputs = [ ModuleBuildTiny TestFatal TestSimple13 TestTableDriven ];
17789     propagatedBuildInputs = [ ListSomeUtils MooseXTypesPathTiny ];
17790     meta = {
17791       description = "Tag a class as a runnable application";
17792       homepage = "https://github.com/moose/MooseX-Runnable";
17793       license = with lib.licenses; [ artistic1 gpl1Plus ];
17794       mainProgram = "mx-run";
17795     };
17796   };
17798   MooseXSemiAffordanceAccessor = buildPerlPackage {
17799     pname = "MooseX-SemiAffordanceAccessor";
17800     version = "0.10";
17801     src = fetchurl {
17802       url = "mirror://cpan/authors/id/D/DR/DROLSKY/MooseX-SemiAffordanceAccessor-0.10.tar.gz";
17803       hash = "sha256-pbhXdrzd7RaAJ6H/ZktBxfZYhnIc3VQ+OvnVN1misdU=";
17804     };
17805     propagatedBuildInputs = [ Moose ];
17806     meta = {
17807       description = "Name your accessors foo() and set_foo()";
17808       license = with lib.licenses; [ artistic2 ];
17809     };
17810   };
17812   MooseXSetOnce = buildPerlPackage {
17813     pname = "MooseX-SetOnce";
17814     version = "0.200002";
17815     src = fetchurl {
17816       url = "mirror://cpan/authors/id/R/RJ/RJBS/MooseX-SetOnce-0.200002.tar.gz";
17817       hash = "sha256-y+0Gt/zTU/DZm/gKh8HAtYEWBpcjGzrZpgjaIxuitlk=";
17818     };
17819     buildInputs = [ TestFatal ];
17820     propagatedBuildInputs = [ Moose ];
17821     meta = {
17822       description = "Write-once, read-many attributes for Moose";
17823       license = with lib.licenses; [ artistic1 gpl1Plus ];
17824     };
17825   };
17827   MooseXSingleton = buildPerlModule {
17828     pname = "MooseX-Singleton";
17829     version = "0.30";
17830     src = fetchurl {
17831       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Singleton-0.30.tar.gz";
17832       hash = "sha256-ZYSy8xsdPrbdfiMShzjnP2wBWxUhOLCoFX09DVnQZUE=";
17833     };
17834     buildInputs = [ ModuleBuildTiny TestFatal TestRequires TestWarnings ];
17835     propagatedBuildInputs = [ Moose ];
17836     meta = {
17837       description = "Turn your Moose class into a singleton";
17838       license = with lib.licenses; [ artistic1 gpl1Plus ];
17839     };
17840   };
17842   MooseXStorage = buildPerlPackage {
17843     pname = "MooseX-Storage";
17844     version = "0.53";
17845     src = fetchurl {
17846       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Storage-0.53.tar.gz";
17847       hash = "sha256-hwS/5QX2azQPYuhcn/MZwZ6WcLJtSwEskfThA7HarOA=";
17848     };
17849     buildInputs = [ TestDeep TestDeepType TestFatal TestNeeds TestDeepJSON TestWithoutModule DigestHMAC MooseXTypes ];
17850     propagatedBuildInputs = [ ModuleRuntime Moose MooseXRoleParameterized PodCoverage StringRewritePrefix namespaceautoclean IOStringy JSON JSONXS JSONMaybeXS CpanelJSONXS YAML YAMLOld YAMLTiny YAMLLibYAML YAMLSyck ];
17851     meta = {
17852       description = "Serialization framework for Moose classes";
17853       homepage = "https://github.com/moose/MooseX-Storage";
17854       license = with lib.licenses; [ artistic1 gpl1Plus ];
17855     };
17856   };
17858   MooseXStrictConstructor = buildPerlPackage {
17859     pname = "MooseX-StrictConstructor";
17860     version = "0.21";
17861     src = fetchurl {
17862       url = "mirror://cpan/authors/id/D/DR/DROLSKY/MooseX-StrictConstructor-0.21.tar.gz";
17863       hash = "sha256-xypa6Vg3Bszexx1AHcswVAE6dTa3UN8UNmE9hY6ikg0=";
17864     };
17865     buildInputs = [ Moo TestFatal TestNeeds ];
17866     propagatedBuildInputs = [ Moose namespaceautoclean ];
17867     meta = {
17868       description = "Make your object constructors blow up on unknown attributes";
17869       homepage = "https://metacpan.org/release/MooseX-StrictConstructor";
17870       license = with lib.licenses; [ artistic2 ];
17871     };
17872   };
17874   MooseXTraits = buildPerlModule {
17875     pname = "MooseX-Traits";
17876     version = "0.13";
17877     src = fetchurl {
17878       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Traits-0.13.tar.gz";
17879       hash = "sha256-dK/gxPr047l8V/KJQ3yqYL7Mo0zVgh9IndTMnaT74po=";
17880     };
17881     buildInputs = [ ModuleBuildTiny MooseXRoleParameterized TestFatal TestRequires TestSimple13 ];
17882     propagatedBuildInputs = [ Moose namespaceautoclean ];
17883     meta = {
17884       description = "Automatically apply roles at object creation time";
17885       homepage = "https://github.com/moose/MooseX-Traits";
17886       license = with lib.licenses; [ artistic1 gpl1Plus ];
17887     };
17888   };
17890   MooseXTraitsPluggable = buildPerlPackage {
17891     pname = "MooseX-Traits-Pluggable";
17892     version = "0.12";
17893     src = fetchurl {
17894       url = "mirror://cpan/authors/id/R/RK/RKITOVER/MooseX-Traits-Pluggable-0.12.tar.gz";
17895       hash = "sha256-q5a3lQ7L8puDb9/uu+Cqwiylc+cYO+fLfW0S3yKrWMo=";
17896     };
17897     buildInputs = [ TestException ];
17898     propagatedBuildInputs = [ ListMoreUtils Moose namespaceautoclean ];
17899     meta = {
17900       description = "Trait loading and resolution for Moose";
17901       license = with lib.licenses; [ artistic1 gpl1Plus ];
17902     };
17903   };
17905   MooseXTypes = buildPerlModule {
17906     pname = "MooseX-Types";
17907     version = "0.50";
17908     src = fetchurl {
17909       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Types-0.50.tar.gz";
17910       hash = "sha256-nNh7NJLL8L6dLfkxeyrfn8MGY3cOaZBmVL6j9BsXywg=";
17911     };
17912     buildInputs = [ ModuleBuildTiny TestFatal TestRequires ];
17913     propagatedBuildInputs = [ CarpClan Moose SubExporterForMethods namespaceautoclean ];
17914     meta = {
17915       description = "Organise your Moose types in libraries";
17916       homepage = "https://github.com/moose/MooseX-Types";
17917       license = with lib.licenses; [ artistic1 gpl1Plus ];
17918     };
17919   };
17921   MooseXTypesCommon = buildPerlModule {
17922     pname = "MooseX-Types-Common";
17923     version = "0.001014";
17924     src = fetchurl {
17925       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Types-Common-0.001014.tar.gz";
17926       hash = "sha256-75Nxi20vJA1QtcOssadLTCoZGGllFHAAGoK+HzXQ7w8=";
17927     };
17928     buildInputs = [ ModuleBuildTiny TestDeep TestWarnings ];
17929     propagatedBuildInputs = [ MooseXTypes ];
17930     meta = {
17931       description = "Library of commonly used type constraints";
17932       homepage = "https://github.com/moose/MooseX-Types-Common";
17933       license = with lib.licenses; [ artistic1 gpl1Plus ];
17934     };
17935   };
17937   MooseXTypesDateTime = buildPerlModule {
17938     pname = "MooseX-Types-DateTime";
17939     version = "0.13";
17940     src = fetchurl {
17941       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Types-DateTime-0.13.tar.gz";
17942       hash = "sha256-uJ+iZjb2oX6qOGi0UUNARytou9whYaHXmiKhv1sdOcY=";
17943     };
17944     buildInputs = [ ModuleBuildTiny TestFatal TestSimple13 ];
17945     propagatedBuildInputs = [ DateTime MooseXTypes ];
17946     meta = {
17947       description = "DateTime related constraints and coercions for Moose";
17948       homepage = "https://github.com/moose/MooseX-Types-DateTime";
17949       license = with lib.licenses; [ artistic1 gpl1Plus ];
17950     };
17951   };
17953   MooseXTypesDateTimeMoreCoercions = buildPerlModule {
17954     pname = "MooseX-Types-DateTime-MoreCoercions";
17955     version = "0.15";
17956     src = fetchurl {
17957       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Types-DateTime-MoreCoercions-0.15.tar.gz";
17958       hash = "sha256-Ibs6WXcZiI7bbOqhMkGNXPkuy5KlDM43uUJZpV4ON5Y=";
17959     };
17960     buildInputs = [ ModuleBuildTiny TestFatal TestSimple13 ];
17961     propagatedBuildInputs = [ DateTimeXEasy MooseXTypesDateTime TimeDurationParse ];
17962     meta = {
17963       description = "Extensions to MooseX::Types::DateTime";
17964       homepage = "https://github.com/moose/MooseX-Types-DateTime-MoreCoercions";
17965       license = with lib.licenses; [ artistic1 gpl1Plus ];
17966     };
17967   };
17969   MooseXTypesLoadableClass = buildPerlModule {
17970     pname = "MooseX-Types-LoadableClass";
17971     version = "0.015";
17972     src = fetchurl {
17973       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Types-LoadableClass-0.015.tar.gz";
17974       hash = "sha256-4DfTd4JT3PkpRkNXFbraDmRJwKKAj6P/MqllBk1aO/Q=";
17975     };
17976     buildInputs = [ ModuleBuildTiny TestFatal ];
17977     propagatedBuildInputs = [ MooseXTypes ];
17978     meta = {
17979       description = "ClassName type constraint with coercion to load the class";
17980       homepage = "https://github.com/moose/MooseX-Types-LoadableClass";
17981       license = with lib.licenses; [ artistic1 gpl1Plus ];
17982     };
17983   };
17985   MooseXTypesPathClass = buildPerlModule {
17986     pname = "MooseX-Types-Path-Class";
17987     version = "0.09";
17988     src = fetchurl {
17989       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Types-Path-Class-0.09.tar.gz";
17990       hash = "sha256-54S6tTaYrpWnCahmMwYUX/7FVmjfbPMWFTM1I/vn734=";
17991     };
17992     propagatedBuildInputs = [ MooseXTypes PathClass ];
17993     buildInputs = [ ModuleBuildTiny TestNeeds ];
17994     meta = {
17995       description = "Path::Class type library for Moose";
17996       license = with lib.licenses; [ artistic1 gpl1Plus ];
17997     };
17998   };
18000   MooseXTypesPathTiny = buildPerlModule {
18001     pname = "MooseX-Types-Path-Tiny";
18002     version = "0.012";
18003     src = fetchurl {
18004       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Types-Path-Tiny-0.012.tar.gz";
18005       hash = "sha256-Ge7eAt1lTnD3PjTNevAGN2UXO8rv7v8b2+ITGOz9kVg=";
18006     };
18007     buildInputs = [ Filepushd ModuleBuildTiny TestFatal ];
18008     propagatedBuildInputs = [ MooseXGetopt MooseXTypesStringlike PathTiny ];
18009     meta = {
18010       description = "Path::Tiny types and coercions for Moose";
18011       homepage = "https://github.com/karenetheridge/moosex-types-path-tiny";
18012       license = with lib.licenses; [ asl20 ];
18013     };
18014   };
18016   MooseXTypesPerl = buildPerlPackage {
18017     pname = "MooseX-Types-Perl";
18018     version = "0.101344";
18019     src = fetchurl {
18020       url = "mirror://cpan/authors/id/R/RJ/RJBS/MooseX-Types-Perl-0.101344.tar.gz";
18021       hash = "sha256-h2RDVPdPplI1yyv8pEJ3kwp+q+UazF+B+2MVMKg1XiQ=";
18022     };
18023     propagatedBuildInputs = [ MooseXTypes ];
18024     meta = {
18025       description = "Moose types that check against Perl syntax";
18026       homepage = "https://github.com/rjbs/MooseX-Types-Perl";
18027       license = with lib.licenses; [ artistic1 gpl1Plus ];
18028     };
18029   };
18031   MooseXTypesStringlike = buildPerlPackage {
18032     pname = "MooseX-Types-Stringlike";
18033     version = "0.003";
18034     src = fetchurl {
18035       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/MooseX-Types-Stringlike-0.003.tar.gz";
18036       hash = "sha256-LuNJ7FxSmm80f0L/ZA5HskVWS5PMowXfY8eCH1tVzxk=";
18037     };
18038     propagatedBuildInputs = [ MooseXTypes ];
18039     meta = {
18040       description = "Moose type constraints for strings or string-like objects";
18041       homepage = "https://github.com/dagolden/MooseX-Types-Stringlike";
18042       license = with lib.licenses; [ asl20 ];
18043     };
18044   };
18046   MooseXTypesStructured = buildPerlModule {
18047     pname = "MooseX-Types-Structured";
18048     version = "0.36";
18049     src = fetchurl {
18050       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Types-Structured-0.36.tar.gz";
18051       hash = "sha256-Q822UvljhyPjV3yw+LVGhiAkTJY252WYEeW0qAFgPVc=";
18052     };
18053     buildInputs = [ DateTime ModuleBuildTiny MooseXTypesDateTime TestFatal TestNeeds ];
18054     propagatedBuildInputs = [ DevelPartialDump MooseXTypes ];
18055     meta = {
18056       description = "Structured Type Constraints for Moose";
18057       homepage = "https://github.com/moose/MooseX-Types-Structured";
18058       license = with lib.licenses; [ artistic1 gpl1Plus ];
18059     };
18060   };
18062   MooseXTypesURI = buildPerlModule {
18063     pname = "MooseX-Types-URI";
18064     version = "0.09";
18065     src = fetchurl {
18066       url = "mirror://cpan/authors/id/E/ET/ETHER/MooseX-Types-URI-0.09.tar.gz";
18067       hash = "sha256-Jxd1Ta25EIbhHSH+oGy6qaEuYBtB0VRDFQ7dfZUI7+g=";
18068     };
18069     buildInputs = [ ModuleBuildTiny TestNeeds TestWithoutModule ];
18070     propagatedBuildInputs = [ MooseXTypes URI URIFromHash namespaceautoclean ];
18071     meta = {
18072       description = "URI related types and coercions for Moose";
18073       homepage = "https://github.com/moose/MooseX-Types-URI";
18074       license = with lib.licenses; [ artistic1 gpl1Plus ];
18075     };
18076   };
18078   MP3CutGapless = buildPerlPackage {
18079     pname = "MP3-Cut-Gapless";
18080     version = "0.03";
18081     src = fetchurl {
18082       url = "mirror://cpan/authors/id/A/AG/AGRUNDMA/MP3-Cut-Gapless-0.03.tar.gz";
18083       hash = "sha256-PoS3OdHx4902FvhR3GV14WXTKEZ/AySGB5UOWVH+pPM=";
18084     };
18085     propagatedBuildInputs = [ AudioCuefileParser ];
18086     meta = {
18087       description = "Split an MP3 file without gaps (based on pcutmp3)";
18088       license = with lib.licenses; [ artistic1 ];
18089     };
18090   };
18092   MP3Info = buildPerlPackage {
18093     pname = "MP3-Info";
18094     version = "1.26";
18095     src = fetchurl {
18096       url = "mirror://cpan/authors/id/J/JM/JMERELO/MP3-Info-1.26.tar.gz";
18097       hash = "sha256-V2I0BzJCHyUCp3DWoSblhPLNljNR0rwle9J4w5vOi+c=";
18098     };
18099     meta = {
18100       description = "Manipulate / fetch info from MP3 audio files";
18101       license = with lib.licenses; [ artistic1 gpl1Plus ];
18102     };
18103   };
18105   MP3Tag = buildPerlPackage {
18106     pname = "MP3-Tag";
18107     version = "1.16";
18108     src = fetchurl {
18109       url = "mirror://cpan/authors/id/I/IL/ILYAZ/modules/MP3-Tag-1.16.zip";
18110       hash = "sha256-UDhQk6owAFa8Jiu2pACpbiGVl3wcXh6/FaXgdak3e4Y=";
18111     };
18112     buildInputs = [ pkgs.unzip ];
18114     postPatch = ''
18115       substituteInPlace Makefile.PL --replace "'PL_FILES'" "#'PL_FILES'"
18116     '';
18117     postFixup = ''
18118       perl data_pod.PL PERL5LIB:$PERL5LIB
18119     '';
18120     outputs = [ "out" ];
18121     meta = {
18122       description = "Module for reading tags of MP3 audio files";
18123       license = with lib.licenses; [ artistic1 ];
18124     };
18125   };
18127   MockMonkeyPatch = buildPerlModule {
18128     pname = "Mock-MonkeyPatch";
18129     version = "1.02";
18130     src = fetchurl {
18131       url = "mirror://cpan/authors/id/J/JB/JBERGER/Mock-MonkeyPatch-1.02.tar.gz";
18132       hash = "sha256-xbaUTKVP6DVXN2cwYO1OnvhyNyZXfXluHK5eVr8bAYE=";
18133     };
18134     buildInputs = [ ModuleBuildTiny ];
18135     meta = {
18136       description = "Monkey patching with test mocking in mind";
18137       license = with lib.licenses; [ artistic1 gpl1Plus ];
18138     };
18139   };
18141   Mouse = buildPerlModule {
18142     pname = "Mouse";
18143     version = "2.5.10";
18144     src = fetchurl {
18145       url = "mirror://cpan/authors/id/S/SK/SKAJI/Mouse-v2.5.10.tar.gz";
18146       hash = "sha256-zo3COUYVOkZ/8JdlFn7iWQ9cUCEg9IotlEFzPzmqMu4=";
18147     };
18148     buildInputs = [ ModuleBuildXSUtil TestException TestFatal TestLeakTrace TestOutput TestRequires TryTiny ];
18149     perlPreHook = "export LD=$CC";
18150     env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.hostPlatform.isi686 "-fno-stack-protector";
18151     hardeningDisable = lib.optional stdenv.hostPlatform.isi686 "stackprotector";
18152     meta = {
18153       description = "Moose minus the antlers";
18154       license = with lib.licenses; [ artistic1 gpl1Plus ];
18155     };
18156   };
18158   MouseXNativeTraits = buildPerlPackage {
18159     pname = "MouseX-NativeTraits";
18160     version = "1.09";
18161     src = fetchurl {
18162       url = "mirror://cpan/authors/id/G/GF/GFUJI/MouseX-NativeTraits-1.09.tar.gz";
18163       hash = "sha256-+KW/WihwLfsTyAk75cQcq5xfwcXSR6uR4i591ydky14=";
18164     };
18165     buildInputs = [ AnyMoose TestFatal ];
18166     propagatedBuildInputs = [ Mouse ];
18167     meta = {
18168       description = "Extend your attribute interfaces for Mouse";
18169       license = with lib.licenses; [ artistic1 gpl1Plus ];
18170     };
18171   };
18173   MozillaCA = buildPerlPackage {
18174     pname = "Mozilla-CA";
18175     version = "20230821";
18176     src = fetchurl {
18177       url = "mirror://cpan/authors/id/L/LW/LWP/Mozilla-CA-20230821.tar.gz";
18178       hash = "sha256-MuHQBFKZAEBFucTRbC2q5FOiFiCIc97qJED3EmCnzaE=";
18179     };
18181     postPatch = ''
18182       ln -s --force ${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt lib/Mozilla/CA/cacert.pem
18183     '';
18185     meta = {
18186       description = "Mozilla's CA cert bundle in PEM format";
18187       homepage = "https://github.com/gisle/mozilla-ca";
18188       license = with lib.licenses; [ mpl20 ];
18189     };
18190   };
18192   MozillaLdap = callPackage ../development/perl-modules/Mozilla-LDAP { };
18194   MROCompat = buildPerlPackage {
18195     pname = "MRO-Compat";
18196     version = "0.15";
18197     src = fetchurl {
18198       url = "mirror://cpan/authors/id/H/HA/HAARG/MRO-Compat-0.15.tar.gz";
18199       hash = "sha256-DUU1+I5Dur2Eq2BIZiFfxNBDmL1Nt7IYUtSjGxwV72E=";
18200     };
18201     meta = {
18202       description = "Mro::* interface compatibility for Perls < 5.9.5";
18203       homepage = "https://metacpan.org/release/MRO-Compat";
18204       license = with lib.licenses; [ artistic1 gpl1Plus ];
18205     };
18206   };
18208   MsgPackRaw = buildPerlPackage rec {
18209     pname = "MsgPack-Raw";
18210     version = "0.05";
18211     src = fetchurl {
18212       url = "mirror://cpan/authors/id/J/JA/JACQUESG/MsgPack-Raw-${version}.tar.gz";
18213       hash = "sha256-hVnitkzZjZmrxmbt8qTIckyVNGEmFq8R9OsLvQ1CLaw=";
18214     };
18215     checkInputs = [ TestPod TestPodCoverage ];
18216     meta = with lib; {
18217       description = "Perl bindings to the msgpack C library";
18218       homepage = "https://github.com/jacquesg/p5-MsgPack-Raw";
18219       license = with licenses; [ gpl1Plus /* or */ artistic1 ];
18220       maintainers = with maintainers; [ figsoda ];
18221     };
18222   };
18224   MusicBrainzDiscID = buildPerlPackage {
18225     pname = "MusicBrainz-DiscID";
18226     version = "0.06";
18227     src = fetchurl {
18228       url = "mirror://cpan/authors/id/N/NJ/NJH/MusicBrainz-DiscID-0.06.tar.gz";
18229       hash = "sha256-ugtu0JiX/1Y7pZhy7pNxW+83FXUVsZt8bW8obmVI7Ks=";
18230     };
18231     # Makefile.PL in this package uses which to find pkg-config -- make it use envvar instead
18232     postPatch = ''
18233       substituteInPlace Makefile.PL \
18234         --replace-fail '`which pkg-config`' "'$PKG_CONFIG'"
18235     '';
18236     doCheck = false; # The main test performs network access
18237     nativeBuildInputs = [ pkgs.pkg-config ];
18238     propagatedBuildInputs = [ pkgs.libdiscid ];
18239     meta = {
18240       description = "- Perl interface for the MusicBrainz libdiscid library";
18241       license = with lib.licenses; [ mit ];
18242     };
18243   };
18245   MusicBrainz = buildPerlModule {
18246     pname = "WebService-MusicBrainz";
18247     version = "1.0.6";
18248     src = fetchurl {
18249       url = "mirror://cpan/authors/id/B/BF/BFAIST/WebService-MusicBrainz-1.0.6.tar.gz";
18250       hash = "sha256-XpH1ZZZ3w5CJv28lO0Eoe7zTVh9qJaB5Zc6DsmKIUuE=";
18251     };
18252     propagatedBuildInputs = [ Mojolicious ];
18253     doCheck = false; # Test performs network access.
18254     meta = {
18255       description = "API to search the musicbrainz.org database";
18256       license = with lib.licenses; [ artistic1 gpl1Plus ];
18257     };
18258   };
18260   MustacheSimple = buildPerlPackage {
18261     pname = "Mustache-Simple";
18262     version = "1.3.6";
18263     src = fetchurl {
18264       url = "mirror://cpan/authors/id/C/CM/CMS/Mustache-Simple-v1.3.6.tar.gz";
18265       hash = "sha256-UdtdUf9LJaZw2L+r45ArbUVDTs94spvB//Ga9uc4MAM=";
18266     };
18267     propagatedBuildInputs = [ YAMLLibYAML ];
18268     meta = {
18269       description = "Simple Mustache Renderer";
18270       license = with lib.licenses; [ artistic1 gpl1Plus ];
18271     };
18272   };
18274   MySQLDiff = buildPerlPackage {
18275     pname = "MySQL-Diff";
18276     version = "0.60";
18277     src = fetchurl {
18278       url = "mirror://cpan/authors/id/E/ES/ESTRABD/MySQL-Diff-0.60.tar.gz";
18279       hash = "sha256-XXCApL1XFP+e9Taqd0p62zxvDnYCFcpsOdijVFNE+VY=";
18280     };
18281     propagatedBuildInputs = [ pkgs.mariadb.client FileSlurp StringShellQuote ];
18282     meta = {
18283       description = "Generates a database upgrade instruction set";
18284       homepage = "https://github.com/estrabd/mysqldiff";
18285       license = with lib.licenses; [ artistic1 gpl1Plus ];
18286       maintainers = [ maintainers.sgo ];
18287       mainProgram = "mysqldiff";
18288     };
18289   };
18291   namespaceautoclean = buildPerlPackage {
18292     pname = "namespace-autoclean";
18293     version = "0.29";
18294     src = fetchurl {
18295       url = "mirror://cpan/authors/id/E/ET/ETHER/namespace-autoclean-0.29.tar.gz";
18296       hash = "sha256-RevY5kpUqG+I2OAa5VISlnyKqP7VfoFAhd73YIrGWAQ=";
18297     };
18298     buildInputs = [ TestNeeds ];
18299     propagatedBuildInputs = [ SubIdentify namespaceclean ];
18300     meta = {
18301       description = "Keep imports out of your namespace";
18302       homepage = "https://github.com/moose/namespace-autoclean";
18303       license = with lib.licenses; [ artistic1 gpl1Plus ];
18304     };
18305   };
18307   namespaceclean = buildPerlPackage {
18308     pname = "namespace-clean";
18309     version = "0.27";
18310     src = fetchurl {
18311       url = "mirror://cpan/authors/id/R/RI/RIBASUSHI/namespace-clean-0.27.tar.gz";
18312       hash = "sha256-ihCoPD4YPcePnnt6pNCbR8EftOfTozuaEpEv0i4xr50=";
18313     };
18314     propagatedBuildInputs = [ BHooksEndOfScope PackageStash ];
18315     meta = {
18316       description = "Keep imports and functions out of your namespace";
18317       homepage = "https://search.cpan.org/dist/namespace-clean";
18318       license = with lib.licenses; [ artistic1 gpl1Plus ];
18319     };
18320   };
18322   NeovimExt = buildPerlPackage rec {
18323     pname = "Neovim-Ext";
18324     version = "0.06";
18325     src = fetchurl {
18326       url = "mirror://cpan/authors/id/J/JA/JACQUESG/Neovim-Ext-${version}.tar.gz";
18327       hash = "sha256-bSzrMGLJZzfbpVbLIEYxMPxABocbJbfE9mzTgZ1FBLg=";
18328     };
18329     propagatedBuildInputs = [
18330       ClassAccessor
18331       EvalSafe
18332       IOAsync
18333       MsgPackRaw
18334     ];
18335     checkInputs = [
18336       ArchiveZip
18337       FileSlurper
18338       FileWhich
18339       ProcBackground
18340       TestPod
18341       TestPodCoverage
18342     ];
18343     # TODO: fix tests
18344     doCheck = false;
18345     meta = with lib; {
18346       description = "Perl bindings for Neovim";
18347       homepage = "https://github.com/jacquesg/p5-Neovim-Ext";
18348       license = with licenses; [ gpl1Plus /* or */ artistic1 ];
18349       maintainers = with maintainers; [ figsoda ];
18350     };
18351   };
18353   NetDNSNative = buildPerlPackage {
18354     pname = "Net-DNS-Native";
18355     version = "0.22";
18356     src = fetchurl {
18357       url = "mirror://cpan/authors/id/O/OL/OLEG/Net-DNS-Native-0.22.tar.gz";
18358       hash = "sha256-EI2d7bq5/69qDQFSVSbeGJSITpUL/YM3F+XNOJBcMNU=";
18359     };
18360     meta = {
18361       description = "Non-blocking system DNS resolver";
18362       license = with lib.licenses; [ artistic1 gpl1Plus ];
18363       maintainers = with maintainers; [ tomasajt ];
18364     };
18365   };
18367   NetIdent = buildPerlPackage {
18368     pname = "Net-Ident";
18369     version = "1.25";
18370     src = fetchurl {
18371       url = "mirror://cpan/authors/id/T/TO/TODDR/Net-Ident-1.25.tar.gz";
18372       hash = "sha256-LlvViwHCpm6ASaL42ck+G19tzlPg7jpIHOam9BHyyPg=";
18373     };
18374     meta = {
18375       description = "Lookup the username on the remote end of a TCP/IP connection";
18376       homepage = "https://github.com/toddr/Net-Ident";
18377       license = with lib.licenses; [ mit ];
18378     };
18379   };
18381   NetINET6Glue = buildPerlPackage {
18382     pname = "Net-INET6Glue";
18383     version = "0.604";
18384     src = fetchurl {
18385       url = "mirror://cpan/authors/id/S/SU/SULLR/Net-INET6Glue-0.604.tar.gz";
18386       hash = "sha256-kMNjmPlQFBTMzaiynyOn908vK09VLhLevxYhjHNbuxc=";
18387     };
18388     meta = {
18389       description = "Make common modules IPv6 ready by hotpatching";
18390       homepage = "https://github.com/noxxi/p5-net-inet6glue";
18391       license = with lib.licenses; [ artistic1 gpl1Plus ];
18392     };
18393   };
18395   NetAddrIP = buildPerlPackage {
18396     pname = "NetAddr-IP";
18397     version = "4.079";
18398     src = fetchurl {
18399       url = "mirror://cpan/authors/id/M/MI/MIKER/NetAddr-IP-4.079.tar.gz";
18400       hash = "sha256-7FqC37cCi80ouz1Wn5XYfdQWbMGYZ/IYTtOln21soOc=";
18401     };
18402     meta = {
18403       description = "Manages IPv4 and IPv6 addresses and subnets";
18404       license = with lib.licenses; [ artistic1 gpl1Plus ];
18405     };
18406   };
18408   NetAmazonAWSSign = buildPerlPackage {
18409     pname = "Net-Amazon-AWSSign";
18410     version = "0.12";
18411     src = fetchurl {
18412       url = "mirror://cpan/authors/id/N/NA/NATON/Net-Amazon-AWSSign-0.12.tar.gz";
18413       hash = "sha256-HQQMazseorVlkFefnBjgUAtsaiF7WdiDHw2WBMqX7T4=";
18414     };
18415     propagatedBuildInputs = [ URI ];
18416     meta = {
18417       description = "Perl extension to create signatures for AWS requests";
18418       license = with lib.licenses; [ artistic1 gpl1Plus ];
18419     };
18420   };
18422   NetAmazonEC2 = buildPerlPackage {
18423     pname = "Net-Amazon-EC2";
18424     version = "0.36";
18425     src = fetchurl {
18426       url = "mirror://cpan/authors/id/M/MA/MALLEN/Net-Amazon-EC2-0.36.tar.gz";
18427       hash = "sha256-Tig2kufwZsJBjtrpIz47YkAPk1X01SH5lRXlL3t9cvE=";
18428     };
18429     propagatedBuildInputs = [ LWPProtocolHttps Moose ParamsValidate XMLSimple ];
18430     buildInputs = [ TestException ];
18431     meta = {
18432       description = "Perl interface to the Amazon Elastic Compute Cloud (EC2) environment";
18433       homepage = "https://metacpan.org/dist/Net-Amazon-EC2";
18434       license = with lib.licenses; [ artistic1 gpl1Plus ];
18435     };
18436   };
18438   NetAmazonMechanicalTurk = buildPerlModule {
18439     pname = "Net-Amazon-MechanicalTurk";
18440     version = "1.02";
18441     src = fetchurl {
18442       url = "mirror://cpan/authors/id/M/MT/MTURK/Net-Amazon-MechanicalTurk-1.02.tar.gz";
18443       hash = "sha256-jQlewUjglLJ/TMzHnhyvnDHzzA5t2CzoqORCyNx7D44=";
18444     };
18445     patches =
18446       [ ../development/perl-modules/net-amazon-mechanicalturk.patch ];
18447     propagatedBuildInputs = [ DigestHMAC LWPProtocolHttps XMLParser ];
18448     doCheck = false; /* wants network */
18449     meta = {
18450       description = "Amazon Mechanical Turk SDK for Perl";
18451       license = with lib.licenses; [ asl20 ];
18452     };
18453   };
18455   NetAmazonS3 = buildPerlPackage {
18456     pname = "Net-Amazon-S3";
18457     version = "0.991";
18458     src = fetchurl {
18459       url = "mirror://cpan/authors/id/B/BA/BARNEY/Net-Amazon-S3-0.991.tar.gz";
18460       hash = "sha256-+3r4umSUjRo/MdgJ13EFImiA8GmYrH8Rn4JITmijI9M=";
18461     };
18462     buildInputs = [ TestDeep TestException TestLWPUserAgent TestMockTime TestWarnings ];
18463     propagatedBuildInputs = [ DataStreamBulk DateTimeFormatHTTP DigestHMAC DigestMD5File FileFindRule LWPUserAgentDetermined MIMETypes MooseXRoleParameterized MooseXStrictConstructor MooseXTypesDateTimeMoreCoercions RefUtil RegexpCommon SafeIsa SubOverride TermEncoding TermProgressBarSimple XMLLibXML ];
18464     meta = {
18465       description = "Use the Amazon S3 - Simple Storage Service";
18466       license = with lib.licenses; [ artistic1 gpl1Plus ];
18467       mainProgram = "s3cl";
18468     };
18469   };
18471   NetAmazonS3Policy = buildPerlModule {
18472     pname = "Net-Amazon-S3-Policy";
18473     version = "0.1.6";
18474     src = fetchurl {
18475       url = "mirror://cpan/authors/id/P/PO/POLETTIX/Net-Amazon-S3-Policy-0.1.6.tar.gz";
18476       hash = "sha256-0rFukwhnSHQ0tHdHhooAP0scyECy15WfiPw2vQ2G2RQ=";
18477     };
18478     propagatedBuildInputs = [ JSON ];
18479     meta = {
18480       description = "Manage Amazon S3 policies for HTTP POST forms";
18481       license = with lib.licenses; [ artistic1 gpl1Plus ];
18482     };
18483   };
18485   NetAsyncHTTP = buildPerlModule {
18486     pname = "Net-Async-HTTP";
18487     version = "0.49";
18488     src = fetchurl {
18489       url = "mirror://cpan/authors/id/P/PE/PEVANS/Net-Async-HTTP-0.49.tar.gz";
18490       hash = "sha256-OSBtBpSV0bhq7jeqitPJM0025ZzObPec04asDPN5jNs=";
18491     };
18492     buildInputs = [ HTTPCookies Test2Suite TestMetricsAny ];
18493     propagatedBuildInputs = [ Future HTTPMessage IOAsync MetricsAny StructDumb URI ];
18494     preCheck = lib.optionalString stdenv.hostPlatform.isDarwin ''
18495       # network tests fail on Darwin/sandbox, so disable these
18496       rm -f t/20local-connect.t t/22local-connect-pipeline.t t/23local-connect-redir.t
18497       rm -f t/90rt75615.t t/90rt75616.t t/90rt93232.t
18498     '';
18499     meta = {
18500       description = "Use HTTP with IO::Async";
18501       license = with lib.licenses; [ artistic1 gpl1Plus ];
18502       maintainers = [ maintainers.zakame ];
18503     };
18504   };
18506   NetAsyncHTTPServer = buildPerlModule {
18507     pname = "Net-Async-HTTP-Server";
18508     version = "0.14";
18509     src = fetchurl {
18510       url = "mirror://cpan/authors/id/P/PE/PEVANS/Net-Async-HTTP-Server-0.14.tar.gz";
18511       hash = "sha256-6nG3kcEtD6X3JubMA/Zuo20bRhNxj2xb84EzvRinsrY=";
18512     };
18513     buildInputs = [ Test2Suite TestMetricsAny TestRefcount ];
18514     propagatedBuildInputs = [ HTTPMessage IOAsync MetricsAny ];
18515     meta = {
18516       description = "Serve HTTP with IO::Async";
18517       license = with lib.licenses; [ artistic1 gpl1Plus ];
18518       maintainers = [ maintainers.anoa ];
18519     };
18520   };
18522   NetAsyncPing = buildPerlPackage {
18523     pname = "Net-Async-Ping";
18524     version = "0.004001";
18525     src = fetchurl {
18526       url = "mirror://cpan/authors/id/A/AB/ABRAXXA/Net-Async-Ping-0.004001.tar.gz";
18527       hash = "sha256-kFfoUHYMcT2rB6DBycj4isEfbnTop0gcEObyc12K6Vs=";
18528     };
18529     propagatedBuildInputs = [ IOAsync Moo NetFrameLayerIPv6 namespaceclean ];
18530     buildInputs = [ TestFatal ];
18531     preCheck = "rm t/icmp_ps.t t/icmpv6_ps.t"; # ping socket tests fail
18532     meta = {
18533       description = "Asyncronously check remote host for reachability";
18534       homepage = "https://github.com/frioux/Net-Async-Ping";
18535       license = with lib.licenses; [ artistic1 gpl1Plus ];
18536     };
18537   };
18539   NetAsyncWebSocket = buildPerlModule {
18540     pname = "Net-Async-WebSocket";
18541     version = "0.13";
18542     src = fetchurl {
18543       url = "mirror://cpan/authors/id/P/PE/PEVANS/Net-Async-WebSocket-0.13.tar.gz";
18544       hash = "sha256-DayDQtPHii/syr1GZxRd1a3U+4zRjRVtKXoead/hFgA=";
18545     };
18546     propagatedBuildInputs = [ IOAsync ProtocolWebSocket URI ];
18547     preCheck = lib.optionalString stdenv.hostPlatform.isDarwin ''
18548       # network tests fail on Darwin/sandbox, so disable these
18549       rm -f t/02server.t t/03cross.t
18550     '';
18551     meta = {
18552       description = "Use WebSockets with IO::Async";
18553       license = with lib.licenses; [ artistic1 gpl1Plus ];
18554       maintainers = [ maintainers.zakame ];
18555     };
18556   };
18558   NetAMQP = buildPerlModule {
18559     pname = "Net-AMQP";
18560     version = "0.06";
18561     src = fetchurl {
18562       url = "mirror://cpan/authors/id/C/CH/CHIPS/Net-AMQP-0.06.tar.gz";
18563       hash = "sha256-Cyun3izX3dX+ECouKueuuiHqqxB4vzv9PFpyKTclY4A=";
18564     };
18565     doCheck = false; # failures on 32bit
18566     buildInputs = [ TestDeep ];
18567     propagatedBuildInputs = [ ClassAccessor ClassDataInheritable XMLLibXML ];
18568     meta = {
18569       description = "Advanced Message Queue Protocol (de)serialization and representation";
18570       license = with lib.licenses; [ artistic1 gpl1Plus ];
18571     };
18572   };
18574   NetCIDR = buildPerlPackage {
18575     pname = "Net-CIDR";
18576     version = "0.21";
18577     src = fetchurl {
18578       url = "mirror://cpan/authors/id/M/MR/MRSAM/Net-CIDR-0.21.tar.gz";
18579       hash = "sha256-MPMDwHNZSNozNw3sx+h8+mi8QwqkS4HRj42CO20av78=";
18580     };
18581     meta = {
18582       description = "Manipulate IPv4/IPv6 netblocks in CIDR notation";
18583       license = with lib.licenses; [ artistic1 gpl1Plus ];
18584       maintainers = [ maintainers.bjornfor ];
18585     };
18586   };
18588   NetCIDRLite = buildPerlPackage {
18589     pname = "Net-CIDR-Lite";
18590     version = "0.22";
18591     src = fetchurl {
18592       url = "mirror://cpan/authors/id/S/ST/STIGTSP/Net-CIDR-Lite-0.22.tar.gz";
18593       hash = "sha256-QxfYyzQaYXueCIjaQ8Cc3//8sMnt97jJko10KlY7hRc=";
18594     };
18595     meta = {
18596       description = "Perl extension for merging IPv4 or IPv6 CIDR addresses";
18597       license = with lib.licenses; [ artistic1 gpl1Plus ];
18598       maintainers = [ maintainers.sgo ];
18599     };
18600   };
18602   NetCoverArtArchive = buildPerlPackage {
18603     pname = "Net-CoverArtArchive";
18604     version = "1.02";
18605     src = fetchurl {
18606       url = "mirror://cpan/authors/id/C/CY/CYCLES/Net-CoverArtArchive-1.02.tar.gz";
18607       hash = "sha256-VyXiCCZDVq1rP6++uXVqz8Kny5WDiMpcCHqsJzNF3dE=";
18608     };
18609     buildInputs = [ FileFindRule ];
18610     propagatedBuildInputs = [ JSONAny LWP Moose namespaceautoclean ];
18611     meta = {
18612       description = "Query the coverartarchive.org";
18613       homepage = "https://github.com/metabrainz/CoverArtArchive";
18614       license = with lib.licenses; [ artistic1 gpl1Plus ];
18615     };
18616   };
18618   NetCUPS = buildPerlPackage {
18619     pname = "Net-CUPS";
18620     version = "0.64";
18621     src = fetchurl {
18622       url = "mirror://cpan/authors/id/N/NI/NINE/Net-CUPS-0.64.tar.gz";
18623       hash = "sha256-17x3/w9iv4dMhDxZDrEqgLvUR0mi+3Tb7URcNdDoWoU=";
18624     };
18625     buildInputs = [ pkgs.cups pkgs.cups-filters ];
18626     NIX_CFLAGS_LINK = "-L${lib.getLib pkgs.cups}/lib -lcups";
18627     meta = {
18628       description = "Common Unix Printing System Interface";
18629       homepage = "https://github.com/niner/perl-Net-CUPS";
18630       license = with lib.licenses; [ artistic1 gpl1Plus ];
18631     };
18632   };
18634   NetDBus = buildPerlPackage {
18635     pname = "Net-DBus";
18636     version = "1.2.0";
18637     src = fetchurl {
18638       url = "mirror://cpan/authors/id/D/DA/DANBERR/Net-DBus-1.2.0.tar.gz";
18639       hash = "sha256-56GsnvShI1s/29WIj4bDRxgjBkZ715q8mwdWpktEHLw=";
18640     };
18641     nativeBuildInputs = [ buildPackages.pkg-config ];
18642     buildInputs = [ pkgs.dbus TestPod TestPodCoverage ];
18643     propagatedBuildInputs = [ XMLTwig ];
18645     # https://gitlab.com/berrange/perl-net-dbus/-/merge_requests/19
18646     patches = fetchpatch {
18647       url = "https://gitlab.com/berrange/perl-net-dbus/-/commit/6bac8f188fb06e5e5edd27aee672d66b7c28caa4.patch";
18648       hash = "sha256-68kyUxM3E7w99rM2AZWZQMpGcaQxfSWaBs3DnmwnzqY=";
18649     };
18651     postPatch = ''
18652       substituteInPlace Makefile.PL --replace pkg-config $PKG_CONFIG
18653     '';
18655     meta = {
18656       description = "Extension for the DBus bindings";
18657       homepage = "https://www.freedesktop.org/wiki/Software/dbus";
18658       license = with lib.licenses; [ artistic1 gpl1Plus ];
18659     };
18660   };
18662   NetDNS = buildPerlPackage {
18663     pname = "Net-DNS";
18664     version = "1.44";
18665     src = fetchurl {
18666       url = "mirror://cpan/authors/id/N/NL/NLNETLABS/Net-DNS-1.44.tar.gz";
18667       hash = "sha256-E9ftxLjOoBMhR/qsNXH2s8cdHQz9hExTDFoET0o+wx4=";
18668     };
18669     propagatedBuildInputs = [ DigestHMAC ];
18670     makeMakerFlags = [ "--noonline-tests" ];
18671     meta = {
18672       description = "Perl Interface to the Domain Name System";
18673       license = with lib.licenses; [ mit ];
18674     };
18675   };
18677   NetDNSResolverMock = buildPerlPackage {
18678     pname = "Net-DNS-Resolver-Mock";
18679     version = "1.20230216";
18680     src = fetchurl {
18681       url = "mirror://cpan/authors/id/M/MB/MBRADSHAW/Net-DNS-Resolver-Mock-1.20230216.tar.gz";
18682       hash = "sha256-7UkwV3/Rop1kNbWHVTPTso9cElijWDP+bKLLaiaFpJs=";
18683     };
18684     propagatedBuildInputs = [ NetDNS ];
18685     buildInputs = [ TestException ];
18686     meta = {
18687       description = "Mock a DNS Resolver object for testing";
18688       license = with lib.licenses; [ artistic1 gpl1Plus ];
18689     };
18690   };
18692   NetDomainTLD = buildPerlPackage {
18693     pname = "Net-Domain-TLD";
18694     version = "1.75";
18695     src = fetchurl {
18696       url = "mirror://cpan/authors/id/A/AL/ALEXP/Net-Domain-TLD-1.75.tar.gz";
18697       hash = "sha256-TDf4ERhNaKxBedSMEOoxki3V/KLBv/zc2VxaKjtAAu4=";
18698     };
18699     meta = {
18700       description = "Work with TLD names";
18701       license = with lib.licenses; [ artistic1 gpl1Plus ];
18702     };
18703   };
18705   NetFastCGI = buildPerlPackage {
18706     pname = "Net-FastCGI";
18707     version = "0.14";
18708     src = fetchurl {
18709       url = "mirror://cpan/authors/id/C/CH/CHANSEN/Net-FastCGI-0.14.tar.gz";
18710       hash = "sha256-EZOQCk/V6eupzNBuE4+RCSG3Ugf/i1JLZDqIyD61WWo=";
18711     };
18712     buildInputs = [ TestException TestHexString ];
18713     meta = {
18714       description = "FastCGI Toolkit";
18715       license = with lib.licenses; [ artistic1 gpl1Plus ];
18716     };
18717   };
18719   NetFrame = buildPerlModule {
18720     pname = "Net-Frame";
18721     version = "1.21";
18722     src = fetchurl {
18723       url = "mirror://cpan/authors/id/G/GO/GOMOR/Net-Frame-1.21.tar.gz";
18724       hash = "sha256-vLNXootjnwyvfWLTPS5g/wv8z4lNAHzmAfY1UTiD1zk=";
18725     };
18726     propagatedBuildInputs = [ BitVector ClassGomor NetIPv6Addr ];
18727     preCheck = "rm t/13-gethostsubs.t"; # it performs DNS queries
18728     meta = {
18729       description = "Base framework for frame crafting";
18730       license = with lib.licenses; [ artistic1 ];
18731     };
18732   };
18734   NetFrameLayerIPv6 = buildPerlModule {
18735     pname = "Net-Frame-Layer-IPv6";
18736     version = "1.08";
18737     src = fetchurl {
18738       url = "mirror://cpan/authors/id/G/GO/GOMOR/Net-Frame-Layer-IPv6-1.08.tar.gz";
18739       hash = "sha256-ui2FK+jzf1iE4wfagriqPNeU4YoVyAdSGsLKKtE599c=";
18740     };
18741     propagatedBuildInputs = [ NetFrame ];
18742     meta = {
18743       description = "Internet Protocol v6 layer object";
18744       license = with lib.licenses; [ artistic1 ];
18745     };
18746   };
18748   NetFreeDB = buildPerlPackage {
18749     pname = "Net-FreeDB";
18750     version = "0.10";
18751     src = fetchurl {
18752       url = "mirror://cpan/authors/id/D/DS/DSHULTZ/Net-FreeDB-0.10.tar.gz";
18753       hash = "sha256-90PhIjjrFslIBK+0sxCwJUj3C8rxeRZOrlZ/i0mIroU=";
18754     };
18755     buildInputs = [ TestDeep TestDifferences TestException TestMost TestWarn ];
18756     propagatedBuildInputs = [ CDDBFile Moo ];
18757     meta = {
18758       description = "OOP Interface to FreeDB Server(s)";
18759       license = with lib.licenses; [ artistic1 ];
18760       broken = stdenv.hostPlatform.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.NetFreeDB.x86_64-darwin
18761     };
18762   };
18764   NetHTTP = buildPerlPackage {
18765     pname = "Net-HTTP";
18766     version = "6.23";
18767     src = fetchurl {
18768       url = "mirror://cpan/authors/id/O/OA/OALDERS/Net-HTTP-6.23.tar.gz";
18769       hash = "sha256-DWXAndbIWJsq4RGBdNPBphcDtuz8FKNEKox0r2XgyU4=";
18770     };
18771     propagatedBuildInputs = [ URI ];
18772     __darwinAllowLocalNetworking = true;
18773     doCheck = false; /* wants network */
18774     meta = {
18775       description = "Low-level HTTP connection (client)";
18776       homepage = "https://github.com/libwww-perl/Net-HTTP";
18777       license = with lib.licenses; [ artistic1 gpl1Plus ];
18778     };
18779   };
18781   NetHTTPSNB = buildPerlPackage {
18782     pname = "Net-HTTPS-NB";
18783     version = "0.15";
18784     src = fetchurl {
18785       url = "mirror://cpan/authors/id/O/OL/OLEG/Net-HTTPS-NB-0.15.tar.gz";
18786       hash = "sha256-amnPT6Vfuju70iYu4UKC7YMQc22PWslNGmxZfNEnjE8=";
18787     };
18788     propagatedBuildInputs = [ IOSocketSSL NetHTTP ];
18789     meta = {
18790       description = "Non-blocking HTTPS client";
18791       homepage = "https://github.com/olegwtf/p5-Net-HTTPS-NB";
18792       license = with lib.licenses; [ artistic1 gpl1Plus ];
18793     };
18794   };
18796   NetIDNEncode = buildPerlModule {
18797     pname = "Net-IDN-Encode";
18798     version = "2.500";
18799     src = fetchurl {
18800       url = "mirror://cpan/authors/id/C/CF/CFAERBER/Net-IDN-Encode-2.500.tar.gz";
18801       hash = "sha256-VUU2M+P/JM4yWzS8LIFXuYWZYqMatc8ov3zMHJs6Pqo=";
18802     };
18803     buildInputs = [ TestNoWarnings ];
18804     perlPreHook = "export LD=$CC";
18805     meta = {
18806       description = "Internationalizing Domain Names in Applications (UTS #46)";
18807       homepage = "https://metacpan.org/release/Net-IDN-Encode";
18808       license = with lib.licenses; [ artistic1 gpl1Plus ];
18809     };
18810   };
18812   NetIMAPClient = buildPerlPackage {
18813     pname = "Net-IMAP-Client";
18814     version = "0.9507";
18815     src = fetchurl {
18816       url = "mirror://cpan/authors/id/G/GA/GANGLION/Net-IMAP-Client-0.9507.tar.gz";
18817       hash = "sha256-QE5vW7xQjPFnxAUqXhRwXv7sb7eTvPm1xCniX0cYNUk=";
18818     };
18819     propagatedBuildInputs = [ IOSocketSSL ListMoreUtils ];
18820     meta = {
18821       description = "Not so simple IMAP client library";
18822       license = with lib.licenses; [ artistic1 gpl1Plus ];
18823     };
18824   };
18826   NetIP = buildPerlPackage {
18827     pname = "Net-IP";
18828     version = "1.26";
18829     src = fetchurl {
18830       url = "mirror://cpan/authors/id/M/MA/MANU/Net-IP-1.26.tar.gz";
18831       hash = "sha256-BA8W8wZmR9dhtySjtwdU0oy9Hm/l6gHGPtHNhXEX1jk=";
18832     };
18833     meta = {
18834       description = "Perl extension for manipulating IPv4/IPv6 addresses";
18835       license = with lib.licenses; [ artistic1 gpl1Plus ];
18836     };
18837   };
18839   NetIPLite = buildPerlPackage {
18840     pname = "Net-IP-Lite";
18841     version = "0.03";
18842     src = fetchurl {
18843       url = "mirror://cpan/authors/id/A/AL/ALEXKOM/Net-IP-Lite-0.03.tar.gz";
18844       hash = "sha256-yZFubPqlO+J1N5zksqVQrhdt36tQ2tQ7Q+1D6CZ4Aqk=";
18845     };
18846     buildInputs = [ TestException ];
18847     meta = {
18848       description = "Perl extension for manipulating IPv4/IPv6 addresses";
18849       homepage = "https://metacpan.org/pod/Net::IP::Lite";
18850       license = with lib.licenses; [ artistic1 gpl1Plus ];
18851       maintainers = [ maintainers.sgo ];
18852     };
18853   };
18855   NetIPv4Addr = buildPerlPackage {
18856     pname = "Net-IPv4Addr";
18857     version = "0.10";
18858     src = fetchurl {
18859       url = "mirror://cpan/authors/id/F/FR/FRAJULAC/Net-IPv4Addr-0.10.tar.gz";
18860       hash = "sha256-OEXeTzCxfIQrGSys6Iedu2IU3paSz6cPCq8JgUIqY/4=";
18861     };
18862     meta = {
18863       description = "Perl extension for manipulating IPv4 addresses";
18864       license = with lib.licenses; [ artistic1 gpl1Plus ];
18865       mainProgram = "ipv4calc";
18866     };
18867   };
18869   NetIPv6Addr = buildPerlPackage {
18870     pname = "Net-IPv6Addr";
18871     version = "1.02";
18872     src = fetchurl {
18873       url = "mirror://cpan/authors/id/B/BK/BKB/Net-IPv6Addr-1.02.tar.gz";
18874       hash = "sha256-sjQBwSJv7o3+Yn9a4OkMVaxUcBDso5gRDcFjH0HJ7H0=";
18875     };
18876     propagatedBuildInputs = [ MathBase85 NetIPv4Addr ];
18877     meta = {
18878       description = "Check and manipulate IPv6 addresses";
18879       license = with lib.licenses; [ artistic1 gpl1Plus ];
18880     };
18881   };
18883   NetIPXS = buildPerlPackage {
18884     pname = "Net-IP-XS";
18885     version = "0.22";
18886     src = fetchurl {
18887       url = "mirror://cpan/authors/id/T/TO/TOMHRR/Net-IP-XS-0.22.tar.gz";
18888       hash = "sha256-JZe0aDizgur3S6XJnD9gpqC1poHsNqFBchJL9E9LGSA=";
18889     };
18890     propagatedBuildInputs = [ IOCapture TieSimple ];
18891     meta = {
18892       homepage = "https://github.com/tomhrr/p5-Net-IP-XS";
18893       description = "IPv4/IPv6 address library";
18894       license = with lib.licenses; [ gpl2Plus ];
18895     };
18896   };
18898   NetLDAPServer = buildPerlPackage {
18899     pname = "Net-LDAP-Server";
18900     version = "0.43";
18901     src = fetchurl {
18902       url = "mirror://cpan/authors/id/A/AA/AAR/Net-LDAP-Server-0.43.tar.gz";
18903       hash = "sha256-3WxMtNMLwyEUsHh/qioeK0/t0bkcLvN5Zey6ETMbsGI=";
18904     };
18905     propagatedBuildInputs = [ perlldap ConvertASN1 ];
18906     meta = {
18907       description = "LDAP server side protocol handling";
18908       license = with lib.licenses; [ artistic1 gpl1Plus ];
18909     };
18910   };
18912   NetLDAPSID = buildPerlPackage {
18913     pname = "Net-LDAP-SID";
18914     version = "0.001";
18915     src = fetchurl {
18916       url = "mirror://cpan/authors/id/K/KA/KARMAN/Net-LDAP-SID-0.001.tar.gz";
18917       hash = "sha256-qMLNQGeQl/w7hCV24bU+w1/UNIGoalA4PutOJOu81tY=";
18918     };
18919     meta = {
18920       description = "Active Directory Security Identifier manipulation";
18921       homepage = "https://github.com/karpet/net-ldap-sid";
18922       license = with lib.licenses; [ artistic1 gpl1Plus ];
18923     };
18924   };
18926   NetLDAPServerTest = buildPerlPackage {
18927     pname = "Net-LDAP-Server-Test";
18928     version = "0.22";
18929     src = fetchurl {
18930       url = "mirror://cpan/authors/id/K/KA/KARMAN/Net-LDAP-Server-Test-0.22.tar.gz";
18931       hash = "sha256-sSBxe18fb2sTsxQ3/dIY7g/GnrASGN4U2SL5Kc+NLY4=";
18932     };
18933     propagatedBuildInputs = [ perlldap NetLDAPServer DataDump NetLDAPSID ];
18934     meta = {
18935       description = "Test Net::LDAP code";
18936       homepage = "https://github.com/karpet/net-ldap-server-test";
18937       license = with lib.licenses; [ artistic1 gpl1Plus ];
18938     };
18939   };
18941   NetLibIDN2 = buildPerlModule {
18942     pname = "Net-LibIDN2";
18943     version = "1.02";
18944     src = fetchurl {
18945       url = "mirror://cpan/authors/id/T/TH/THOR/Net-LibIDN2-1.02.tar.gz";
18946       hash = "sha256-0fMK/GrPplQbAMCafkx059jkuknjJ3wLvEGuNcE5DQc=";
18947     };
18948     propagatedBuildInputs = [ pkgs.libidn2 ];
18949     meta = {
18950       description = "Perl bindings for GNU Libidn2";
18951       homepage = "https://github.com/gnuthor/Net--LibIDN2";
18952       license = with lib.licenses; [ artistic1 gpl1Plus ];
18953     };
18954   };
18956   NetNetmask = buildPerlPackage {
18957     pname = "Net-Netmask";
18958     version = "2.0002";
18959     src = fetchurl {
18960       url = "mirror://cpan/authors/id/J/JM/JMASLAK/Net-Netmask-2.0002.tar.gz";
18961       hash = "sha256-JKmy58a8wTAteXROukwCG/PeR/FJqvrM2U+bBC/dv5Q=";
18962     };
18963     buildInputs = [ Test2Suite TestUseAllModules ];
18964     meta = {
18965       description = "Understand and manipulate IP netmasks";
18966       homepage = "https://search.cpan.org/~jmaslak/Net-Netmask";
18967       license = with lib.licenses; [ artistic1 gpl1Plus ];
18968     };
18969   };
18971   NetMPD = buildPerlModule {
18972     pname = "Net-MPD";
18973     version = "0.07";
18974     buildInputs = [ ModuleBuildTiny ];
18975     src = fetchurl {
18976       url = "mirror://cpan/authors/id/A/AB/ABERNDT/Net-MPD-0.07.tar.gz";
18977       hash = "sha256-M4L7nG9cJd4mKPVhRCn6igB5FSFnjELaBoyZ57KU6VM=";
18978     };
18979     meta = {
18980       description = "Communicate with an MPD server";
18981       homepage = "https://metacpan.org/pod/Net::MPD";
18982       license = with lib.licenses; [ mit ];
18983     };
18984   };
18986   NetMQTTSimple = buildPerlPackage {
18987     pname = "Net-MQTT-Simple";
18988     version = "1.28";
18989     src = fetchurl {
18990       url = "mirror://cpan/authors/id/J/JU/JUERD/Net-MQTT-Simple-1.28.tar.gz";
18991       hash = "sha256-Sp6hB+a8IuJrUzZ4oKPMbEI7N4TsP8ROjjM5t8Vr7gM=";
18992     };
18993     meta = {
18994       description = "Minimal MQTT version 3 interface";
18995       license = with lib.licenses; [ artistic1 gpl1Plus ];
18996     };
18997   };
18999   NetNVD = buildPerlPackage {
19000     pname = "Net-NVD";
19001     version = "0.0.3";
19002     src = fetchurl {
19003       url = "mirror://cpan/authors/id/G/GA/GARU/Net-NVD-0.0.3.tar.gz";
19004       hash = "sha256-uKZXEg+UsO7R2OvbA4i8M2DSj6Xw+CNrnNjNrovv5Bg=";
19005     };
19006     propagatedBuildInputs = [ IOSocketSSL JSON ];
19007     meta = {
19008       description = "Query CVE data from NIST's NVD (National Vulnerability Database)";
19009       license = with lib.licenses; [ artistic1 gpl1Plus ];
19010     };
19011   };
19013   NetOAuth = buildPerlModule {
19014     pname = "Net-OAuth";
19015     version = "0.28";
19016     src = fetchurl {
19017       url = "mirror://cpan/authors/id/K/KG/KGRENNAN/Net-OAuth-0.28.tar.gz";
19018       hash = "sha256-e/wxnaCsV44Ali81o1DPUREKOjEwFtH9wwciAooikEw=";
19019     };
19020     buildInputs = [ TestWarn ];
19021     propagatedBuildInputs = [ ClassAccessor ClassDataInheritable DigestHMAC DigestSHA1 LWP ];
19022     meta = {
19023       description = "Implementation of the OAuth protocol";
19024       license = with lib.licenses; [ artistic1 gpl1Plus ];
19025     };
19026   };
19028   NetPatricia = buildPerlPackage {
19029     pname = "Net-Patricia";
19030     version = "1.22";
19031     src = fetchurl {
19032       url = "mirror://cpan/authors/id/G/GR/GRUBER/Net-Patricia-1.22.tar.gz";
19033       hash = "sha256-cINakm4cWo0DJMcv/+6C7rfsbBQd7gT9RGggtk9xxVI=";
19034     };
19035     propagatedBuildInputs = [ NetCIDRLite Socket6 ];
19036     meta = {
19037       description = "Patricia Trie perl module for fast IP address lookups";
19038       license = with lib.licenses; [ gpl2Plus ];
19039     };
19040   };
19042   NetPing = buildPerlPackage {
19043     pname = "Net-Ping";
19044     version = "2.75";
19045     src = fetchurl {
19046       url = "mirror://cpan/authors/id/R/RU/RURBAN/Net-Ping-2.75.tar.gz";
19047       hash = "sha256-tH3zz9lpLM0Aca05/nRxjrwy9ZcBVWpgT9FaCfCeDXQ=";
19048     };
19049     meta = {
19050       description = "Check a remote host for reachability";
19051       license = with lib.licenses; [ artistic1 gpl1Plus ];
19052     };
19053   };
19055   NetDNSResolverProgrammable = buildPerlPackage {
19056     pname = "Net-DNS-Resolver-Programmable";
19057     version = "0.009";
19058     src = fetchurl {
19059       url = "mirror://cpan/authors/id/B/BI/BIGPRESH/Net-DNS-Resolver-Programmable-0.009.tar.gz";
19060       hash = "sha256-gICiq3dmKVhZEa8Reb23xNwr6/1LXv13sR0drGJFS/g=";
19061     };
19062     propagatedBuildInputs = [ NetDNS ];
19063     meta = {
19064       description = "Programmable DNS resolver class for offline emulation of DNS";
19065       homepage = "https://github.com/bigpresh/Net-DNS-Resolver-Programmable";
19066       license = with lib.licenses; [ artistic1 gpl1Plus ];
19067     };
19068   };
19070   NetPrometheus = buildPerlModule {
19071     pname = "Net-Prometheus";
19072     version = "0.12";
19073     src = fetchurl {
19074       url = "mirror://cpan/authors/id/P/PE/PEVANS/Net-Prometheus-0.12.tar.gz";
19075       hash = "sha256-rs73NJygSW/yNahKkQ+KBDZtB/WqQfrieixKxbip6SM=";
19076     };
19077     propagatedBuildInputs = [ RefUtil StructDumb URI ];
19078     buildInputs = [ HTTPMessage TestFatal ];
19079     meta = {
19080       description = "Export monitoring metrics for prometheus";
19081       license = with lib.licenses; [ artistic1 gpl1Plus ];
19082     };
19083   };
19085   NetSCP = buildPerlPackage {
19086     pname = "Net-SCP";
19087     version = "0.08.reprise";
19088     src = fetchurl {
19089       url = "mirror://cpan/authors/id/I/IV/IVAN/Net-SCP-0.08.reprise.tar.gz";
19090       hash = "sha256-iKmy32nnaeWFWkCLGfYZFbguj+Bwq1z01SXdO4u+McE=";
19091     };
19092     propagatedBuildInputs = [ pkgs.openssl ];
19093     patchPhase = ''
19094       sed -i 's|$scp = "scp";|$scp = "${pkgs.openssh}/bin/scp";|' SCP.pm
19095     '';
19096     buildInputs = [ NetSSH StringShellQuote ];
19097     meta = {
19098       description = "Simple wrappers around ssh and scp commands";
19099       license = with lib.licenses; [ artistic1 gpl1Plus ];
19100     };
19101   };
19103   NetServer = buildPerlPackage {
19104     pname = "Net-Server";
19105     version = "2.014";
19106     src = fetchurl {
19107       url = "mirror://cpan/authors/id/R/RH/RHANDOM/Net-Server-2.014.tar.gz";
19108       hash = "sha256-NAa5ylpmKgB17tR/t43hMWtgHJT2Kg7jSlVE25uqNyA=";
19109     };
19110     doCheck = false; # seems to hang waiting for connections
19111     meta = {
19112       description = "Extensible Perl internet server";
19113       license = with lib.licenses; [ artistic1 gpl1Plus ];
19114       mainProgram = "net-server";
19115     };
19116   };
19118   NetSFTPForeign = buildPerlPackage {
19119     pname = "Net-SFTP-Foreign";
19120     version = "1.93";
19121     src = fetchurl {
19122       url = "mirror://cpan/authors/id/S/SA/SALVA/Net-SFTP-Foreign-1.93.tar.gz";
19123       hash = "sha256-bH1kJQh2hz2kNIAOUGCovvekZFHYH4F+N+Q8/aUaD3o=";
19124     };
19125     propagatedBuildInputs = [ pkgs.openssl ];
19126     patchPhase = ''
19127       sed -i "s|$ssh_cmd = 'ssh'|$ssh_cmd = '${pkgs.openssh}/bin/ssh'|" lib/Net/SFTP/Foreign/Backend/Unix.pm
19128     '';
19129     meta = {
19130       description = "Secure File Transfer Protocol client";
19131       license = with lib.licenses; [ artistic1 gpl1Plus ];
19132     };
19133   };
19135   NetServerCoro = buildPerlPackage {
19136     pname = "Net-Server-Coro";
19137     version = "1.3";
19138     src = fetchurl {
19139       url = "mirror://cpan/authors/id/A/AL/ALEXMV/Net-Server-Coro-1.3.tar.gz";
19140       hash = "sha256-HhpwKw3TkMPmKfip6EzKY7eU0eInlX9Cm2dgEHV3+4Y=";
19141     };
19142     propagatedBuildInputs = [ Coro NetServer ];
19143     meta = {
19144       description = "Co-operative multithreaded server using Coro";
19145       license = with lib.licenses; [ mit ];
19146     };
19147   };
19149   NetServerSSPrefork = buildPerlPackage {
19150     pname = "Net-Server-SS-PreFork";
19151     version = "0.06pre";
19152     src = fetchFromGitHub {
19153       owner = "kazuho";
19154       repo = "p5-Net-Server-SS-PreFork";
19155       rev = "5fccc0c270e25c65ef634304630af74b48807d21";
19156       hash = "sha256-pveVyFdEe/TQCEI83RrQTWr7aoYrgOGaNqc1wJeiAnw=";
19157     };
19158     nativeCheckInputs = [ HTTPMessage LWP TestSharedFork HTTPServerSimple TestTCP TestUNIXSock ];
19159     buildInputs = [ ModuleInstall ];
19160     propagatedBuildInputs = [ NetServer ServerStarter ];
19161     meta = {
19162       description = "Hot-deployable variant of Net::Server::PreFork";
19163       license = with lib.licenses; [ artistic1 gpl1Plus ];
19164     };
19165   };
19167   NetSMTPSSL = buildPerlPackage {
19168     pname = "Net-SMTP-SSL";
19169     version = "1.04";
19170     src = fetchurl {
19171       url = "mirror://cpan/authors/id/R/RJ/RJBS/Net-SMTP-SSL-1.04.tar.gz";
19172       hash = "sha256-eynEWt0Z09UIS3Ufe6iajkBHmkRs4hz9nMdB5VgzKgA=";
19173     };
19174     propagatedBuildInputs = [ IOSocketSSL ];
19175     meta = {
19176       description = "SSL support for Net::SMTP";
19177       license = with lib.licenses; [ artistic1 gpl1Plus ];
19178     };
19179   };
19181   NetSMTPTLS = buildPerlPackage {
19182     pname = "Net-SMTP-TLS";
19183     version = "0.12";
19184     src = fetchurl {
19185       url = "mirror://cpan/authors/id/A/AW/AWESTHOLM/Net-SMTP-TLS-0.12.tar.gz";
19186       hash = "sha256-7+dyZnrDdwK5a221KXzIJ0J6Ozo4GbekMVsIudRE5KU=";
19187     };
19188     propagatedBuildInputs = [ DigestHMAC IOSocketSSL ];
19189     meta = {
19190       description = "SMTP client supporting TLS and AUTH";
19191       license = with lib.licenses; [ artistic1 gpl1Plus ];
19192     };
19193   };
19195   NetSMTPTLSButMaintained = buildPerlPackage {
19196     pname = "Net-SMTP-TLS-ButMaintained";
19197     version = "0.24";
19198     src = fetchurl {
19199       url = "mirror://cpan/authors/id/F/FA/FAYLAND/Net-SMTP-TLS-ButMaintained-0.24.tar.gz";
19200       hash = "sha256-a5XAj3FXnYUcAYP1AqcAyGof7O9XDjzugybF5M5mJW4=";
19201     };
19202     propagatedBuildInputs = [ DigestHMAC IOSocketSSL ];
19203     meta = {
19204       description = "SMTP client supporting TLS and AUTH (DEPRECATED, use Net::SMTPS instead)";
19205       license = with lib.licenses; [ artistic1 gpl1Plus ];
19206     };
19207   };
19209   NetSNMP = buildPerlModule {
19210     pname = "Net-SNMP";
19211     version = "6.0.1";
19212     src = fetchurl {
19213       url = "mirror://cpan/authors/id/D/DT/DTOWN/Net-SNMP-v6.0.1.tar.gz";
19214       hash = "sha256-FMN7wcuz883H1sE+DyeoWfFM3P1epUoEZ6iLwlmwt0E=";
19215     };
19216     doCheck = false; # The test suite fails, see https://rt.cpan.org/Public/Bug/Display.html?id=85799
19217     meta = {
19218       description = "Object oriented interface to SNMP";
19219       license = with lib.licenses; [ artistic1 gpl1Plus ];
19220       mainProgram = "snmpkey";
19221     };
19222   };
19224   NetSNPP = buildPerlPackage {
19225     pname = "Net-SNPP";
19226     version = "1.17";
19227     src = fetchurl {
19228       url = "mirror://cpan/authors/id/T/TO/TOBEYA/Net-SNPP-1.17.tar.gz";
19229       hash = "sha256-BrhR1kWWYl6GY1n7AX3Q0Ilz4OvFDDI/Sh1Q7N2GjnY=";
19230     };
19232     doCheck = false;
19233     meta = {
19234       description = "Simple Network Pager Protocol Client";
19235       license = with lib.licenses; [ artistic1 gpl1Plus ];
19236     };
19237   };
19239   NetSSH = buildPerlPackage {
19240     pname = "Net-SSH";
19241     version = "0.09";
19242     src = fetchurl {
19243       url = "mirror://cpan/authors/id/I/IV/IVAN/Net-SSH-0.09.tar.gz";
19244       hash = "sha256-fHHHw8vpUyNN/iW8wa1+2w4fWgV4YB9VI7xgcCYqOBc=";
19245     };
19246     propagatedBuildInputs = [ pkgs.openssl ];
19247     patchPhase = ''
19248       sed -i 's|$ssh = "ssh";|$ssh = "${pkgs.openssh}/bin/ssh";|' SSH.pm
19249     '';
19250     meta = {
19251       description = "Simple wrappers around ssh commands";
19252       license = with lib.licenses; [ artistic1 gpl1Plus ];
19253     };
19254   };
19256   NetSSHPerl = buildPerlPackage {
19257     pname = "Net-SSH-Perl";
19258     version = "2.142";
19259     src = fetchurl {
19260       url = "mirror://cpan/authors/id/B/BD/BDFOY/Net-SSH-Perl-2.142.tar.gz";
19261       hash = "sha256-UAHbPllS/BjYXDF5Uhr2kT0VQ+tP30/ZfcYDpHSMLJY=";
19262     };
19263     propagatedBuildInputs = [ CryptCurve25519 CryptIDEA CryptX FileHomeDir MathGMP StringCRC32 ];
19264     preCheck = "export HOME=$TMPDIR";
19265     meta = {
19266       description = "Perl client interface to SSH";
19267       homepage = "https://search.cpan.org/dist/Net-SSH-Perl";
19268       license = with lib.licenses; [ artistic1 gpl1Plus ];
19269     };
19270   };
19272   NetSSLeay = buildPerlPackage {
19273     pname = "Net-SSLeay";
19274     version = "1.92";
19275     src = fetchurl {
19276       url = "mirror://cpan/authors/id/C/CH/CHRISN/Net-SSLeay-1.92.tar.gz";
19277       hash = "sha256-R8LyswDy5xYtcdaZ9jPdajWwYloAy9qMUKwBFEqTlqk=";
19278     };
19279     buildInputs = [ pkgs.openssl pkgs.zlib ];
19280     doCheck = false; # Test performs network access.
19281     preConfigure = ''
19282       mkdir openssl
19283       ln -s ${lib.getLib pkgs.openssl}/lib openssl
19284       ln -s ${pkgs.openssl.bin}/bin openssl
19285       ln -s ${pkgs.openssl.dev}/include openssl
19286       export OPENSSL_PREFIX=$(realpath openssl)
19287     '';
19288     meta = {
19289       description = "Perl bindings for OpenSSL and LibreSSL";
19290       license = with lib.licenses; [ artistic2 ];
19291     };
19292   };
19294   NetStatsd = buildPerlPackage {
19295     pname = "Net-Statsd";
19296     version = "0.12";
19297     src = fetchurl {
19298       url = "mirror://cpan/authors/id/C/CO/COSIMO/Net-Statsd-0.12.tar.gz";
19299       hash = "sha256-Y+RTYD2hZbxtHEygtV7aPSIE8EDFkwSkd4LFqniGVlw=";
19300     };
19301     meta = {
19302       description = "Perl client for Etsy's statsd daemon";
19303       license = with lib.licenses; [ artistic1 gpl1Plus ];
19304       mainProgram = "benchmark.pl";
19305     };
19306   };
19308   NetTelnet = buildPerlPackage {
19309     pname = "Net-Telnet";
19310     version = "3.05";
19311     src = fetchurl {
19312       url = "mirror://cpan/authors/id/J/JR/JROGERS/Net-Telnet-3.05.tar.gz";
19313       hash = "sha256-Z39ouizSqCT64yP6guGDv349A8PEmckdkjvWKDeWp0M=";
19314     };
19315     meta = {
19316       description = "Interact with TELNET port or other TCP ports";
19317       license = with lib.licenses; [ artistic1 gpl1Plus ];
19318     };
19319   };
19321   NetTwitterLite = buildPerlModule {
19322     pname = "Net-Twitter-Lite";
19323     version = "0.12008";
19324     src = fetchurl {
19325       url = "mirror://cpan/authors/id/M/MM/MMIMS/Net-Twitter-Lite-0.12008.tar.gz";
19326       hash = "sha256-suq+Hyo/LGTezWDye8O0buZSVgsCTExWgRVhbI1KRo4=";
19327     };
19328     buildInputs = [ ModuleBuildTiny TestFatal ];
19329     propagatedBuildInputs = [ JSON LWPProtocolHttps ];
19330     doCheck = false;
19331     meta = {
19332       description = "Perl API library for the Twitter API";
19333       homepage = "https://github.com/semifor/net-twitter-lite";
19334       license = with lib.licenses; [ artistic1 gpl1Plus ];
19335     };
19336   };
19338   NetWhoisIP = buildPerlPackage {
19339     pname = "Net-Whois-IP";
19340     version = "1.19";
19341     src = fetchurl {
19342       url = "mirror://cpan/authors/id/B/BS/BSCHMITZ/Net-Whois-IP-1.19.tar.gz";
19343       hash = "sha256-8JvfoPHSZltTSCa186hmI0mTDu0pmO/k2Nv5iBMUciI=";
19344     };
19345     doCheck = false;
19347     # https://rt.cpan.org/Public/Bug/Display.html?id=99377
19348     postPatch = ''
19349       substituteInPlace IP.pm --replace " AutoLoader" ""
19350     '';
19351     buildInputs = [ RegexpIPv6 ];
19352     meta = {
19353       description = "Perl extension for looking up the whois information for ip addresses";
19354       license = with lib.licenses; [ artistic1 gpl1Plus ];
19355     };
19356   };
19358   NetWorks = buildPerlPackage {
19359     pname = "Net-Works";
19360     version = "0.22";
19361     src = fetchurl {
19362       url = "mirror://cpan/authors/id/M/MA/MAXMIND/Net-Works-0.22.tar.gz";
19363       hash = "sha256-CsmyPfvKGE4ocpskU5S8ZpOq22/EUcqplbS3GewO6f8=";
19364     };
19365     propagatedBuildInputs = [ ListAllUtils MathInt128 Moo namespaceautoclean ];
19366     buildInputs = [ TestFatal ];
19367     meta = {
19368       description = "Sane APIs for IP addresses and networks";
19369       license = with lib.licenses; [ artistic1 gpl1Plus ];
19370     };
19371   };
19373   NumberBytesHuman = buildPerlPackage {
19374     pname = "Number-Bytes-Human";
19375     version = "0.11";
19376     src = fetchurl {
19377       url = "mirror://cpan/authors/id/F/FE/FERREIRA/Number-Bytes-Human-0.11.tar.gz";
19378       hash = "sha256-X8ecSbC0DfeAR5xDaWOBND4ratH+UoWfYLxltm6+byw=";
19379     };
19380     meta = {
19381       description = "Convert byte count to human readable format";
19382       license = with lib.licenses; [ artistic1 gpl1Plus ];
19383     };
19384   };
19386   NumberCompare = buildPerlPackage {
19387     pname = "Number-Compare";
19388     version = "0.03";
19389     src = fetchurl {
19390       url = "mirror://cpan/authors/id/R/RC/RCLAMP/Number-Compare-0.03.tar.gz";
19391       hash = "sha256-gyk3N+gDtDESgwRD+1II7FIIoubqUS7VTvjk3SuICCc=";
19392     };
19393     meta = {
19394       description = "Numeric comparisons";
19395       license = with lib.licenses; [ artistic1 gpl1Plus ];
19396     };
19397   };
19399   NumberFormat = buildPerlPackage {
19400     pname = "Number-Format";
19401     version = "1.76";
19402     src = fetchurl {
19403       url = "mirror://cpan/authors/id/R/RJ/RJBS/Number-Format-1.76.tar.gz";
19404       hash = "sha256-DgBg6zY2NaiFcGxqJvX8qv6udZ97Ksrkndpw4ZXdRNY=";
19405     };
19406     meta = {
19407       description = "Perl extension for formatting numbers";
19408       license = with lib.licenses; [ artistic1 gpl1Plus ];
19409     };
19410   };
19412   NumberFraction = buildPerlModule {
19413     pname = "Number-Fraction";
19414     version = "3.0.4";
19415     src = fetchurl {
19416       url = "mirror://cpan/authors/id/D/DA/DAVECROSS/Number-Fraction-v3.0.4.tar.gz";
19417       hash = "sha256-xkGcird4/XKbENfmp487ewf8CJV8H3nlZm3Ny01iwIU=";
19418     };
19419     propagatedBuildInputs = [ Moo MooXTypesMooseLike ];
19420     meta = {
19421       description = "Perl extension to model fractions";
19422       license = with lib.licenses; [ artistic1 gpl1Plus ];
19423     };
19424   };
19426   NumberMisc = buildPerlModule {
19427     pname = "Number-Misc";
19428     version = "1.2";
19429     src = fetchurl {
19430       url = "mirror://cpan/authors/id/M/MI/MIKO/Number-Misc-1.2.tar.gz";
19431       hash = "sha256-d7m2jGAKBpzxb02BJuyzIVHmvNNLDtsXt4re5onckdg=";
19432     };
19433     meta = {
19434       description = "Number::Misc - handy utilities for numbers";
19435       license = with lib.licenses; [ artistic1 gpl1Plus ];
19436     };
19437   };
19439   NumberPhone = buildPerlPackage {
19440     pname = "Number-Phone";
19441     version = "4.0000";
19442     src = fetchurl {
19443       url = "mirror://cpan/authors/id/D/DC/DCANTRELL/Number-Phone-4.0000.tar.gz";
19444       hash = "sha256-H0mX/oMJSrDNgUDwvn/cHz+JGQKareajOYH4fLBIZjQ=";
19445     };
19446     buildInputs = [ DevelHide FileShareDirInstall ParallelForkManager TestDifferences TestWarnings ];
19447     propagatedBuildInputs = [ DataDumperConcise DataCompactReadonly DevelCheckOS DevelDeprecationsEnvironmental FileFindRule FileShareDir ];
19448     preCheck = ''
19449       # Remove slow memory hungry tests
19450       rm t/fork.t
19451       rm t/uk_slurp.t
19452     '';
19453     meta = {
19454       description = "Large suite of perl modules for parsing and dealing with phone numbers";
19455       homepage = "https://github.com/DrHyde/perl-modules-Number-Phone";
19456       license = with lib.licenses; [ artistic1 gpl2Only asl20 ];
19457     };
19458   };
19460   NumberWithError = buildPerlPackage {
19461     pname = "Number-WithError";
19462     version = "1.01";
19463     src = fetchurl {
19464       url = "mirror://cpan/authors/id/S/SM/SMUELLER/Number-WithError-1.01.tar.gz";
19465       hash = "sha256-3/agcn54ROpng3vfrdVSuG9rIW0Y7o7kaEKyLM7w9VQ=";
19466     };
19467     propagatedBuildInputs = [ ParamsUtil prefork ];
19468     buildInputs = [ TestLectroTest ];
19469     meta = {
19470       description = "Numbers with error propagation and scientific rounding";
19471       license = with lib.licenses; [ artistic1 gpl1Plus ];
19472     };
19473   };
19475   NTLM = buildPerlPackage {
19476     pname = "NTLM";
19477     version = "1.09";
19478     src = fetchurl {
19479       url = "mirror://cpan/authors/id/N/NB/NBEBOUT/NTLM-1.09.tar.gz";
19480       hash = "sha256-yCPjDNp2vBVjblhDAslg4rXu75UXwkSPdFRJiJMVH4U=";
19481     };
19482     propagatedBuildInputs = [ DigestHMAC ];
19483     meta = {
19484       description = "NTLM authentication module";
19485       license = with lib.licenses; [ artistic1 gpl1Plus ];
19486       maintainers = [ maintainers.pSub ];
19487     };
19488   };
19490   ObjectAccessor = buildPerlPackage {
19491     pname = "Object-Accessor";
19492     version = "0.48";
19493     src = fetchurl {
19494       url = "mirror://cpan/authors/id/B/BI/BINGOS/Object-Accessor-0.48.tar.gz";
19495       hash = "sha256-dsuCSie2tOVgQJ/Pb9Wzv7vTi3Lx89N+0LVL2cC66t4=";
19496     };
19497     meta = {
19498       description = "Per object accessors";
19499       license = with lib.licenses; [ artistic1 gpl1Plus ];
19500     };
19501   };
19503   ObjectEvent = buildPerlPackage rec {
19504     pname = "Object-Event";
19505     version = "1.23";
19506     src = fetchurl {
19507       url = "mirror://cpan/authors/id/E/EL/ELMEX/${pname}-${version}.tar.gz";
19508       hash = "sha256-q2u4BQj0/dry1RsgyodqqwOFgqhrUijmQ1QRNIr1PII=";
19509     };
19510     propagatedBuildInputs = [ AnyEvent commonsense ];
19511     meta = {
19512       description = "Class that provides an event callback interface";
19513       license = with lib.licenses; [ artistic1 gpl1Plus ];
19514     };
19515   };
19517   ObjectInsideOut = buildPerlModule {
19518     pname = "Object-InsideOut";
19519     version = "4.05";
19520     src = fetchurl {
19521       url = "mirror://cpan/authors/id/J/JD/JDHEDDEN/Object-InsideOut-4.05.tar.gz";
19522       hash = "sha256-nf1sooInJDR+DrZ1nQBwlCWBRwOtXGa9tiFFeYaLysQ=";
19523     };
19524     propagatedBuildInputs = [ ExceptionClass ];
19525     meta = {
19526       description = "Comprehensive inside-out object support module";
19527       license = with lib.licenses; [ artistic1 gpl1Plus ];
19528     };
19529   };
19531   ObjectPad = buildPerlModule {
19532     pname = "Object-Pad";
19533     version = "0.809";
19534     src = fetchurl {
19535       url = "mirror://cpan/authors/id/P/PE/PEVANS/Object-Pad-0.809.tar.gz";
19536       hash = "sha256-EpUKZkwGB+o/ynSA82XfVNF0YpH0XrsO2AkXt0+xXvU=";
19537     };
19538     buildInputs = [ Test2Suite TestFatal TestRefcount ];
19539     perlPreHook = lib.optionalString stdenv.hostPlatform.isDarwin "export LD=$CC";
19540     propagatedBuildInputs = [ XSParseKeyword XSParseSublike ];
19541     meta = {
19542       description = "Simple syntax for lexical field-based objects";
19543       license = with lib.licenses; [ artistic1 gpl1Plus ];
19544       maintainers = [ maintainers.zakame ];
19545     };
19546   };
19548   ObjectSignature = buildPerlPackage {
19549     pname = "Object-Signature";
19550     version = "1.08";
19551     src = fetchurl {
19552       url = "mirror://cpan/authors/id/E/ET/ETHER/Object-Signature-1.08.tar.gz";
19553       hash = "sha256-hCFTyU2pPiucs7VN7lcrUGS79JmjanPDiiN5mgIDaYo=";
19554     };
19555     meta = {
19556       description = "Generate cryptographic signatures for objects";
19557       homepage = "https://github.com/karenetheridge/Object-Signature";
19558       license = with lib.licenses; [ artistic1 gpl1Plus ];
19559     };
19560   };
19562   OggVorbisHeaderPurePerl = buildPerlPackage {
19563     pname = "Ogg-Vorbis-Header-PurePerl";
19564     version = "1.05";
19565     src = fetchurl {
19566       url = "mirror://cpan/authors/id/D/DA/DAVECROSS/Ogg-Vorbis-Header-PurePerl-1.05.tar.gz";
19567       hash = "sha256-Uh04CPQtcSKmsGwzpurm18OZR6q1fEyMyvzE9gP9pT4=";
19568     };
19570     # The testing mechanism is erorrneous upstream. See http://matrix.cpantesters.org/?dist=Ogg-Vorbis-Header-PurePerl+1.0
19571     doCheck = false;
19572     meta = {
19573       description = "Access Ogg Vorbis info and comment fields";
19574       license = with lib.licenses; [ artistic1 ];
19575     };
19576   };
19578   OLEStorage_Lite = buildPerlPackage {
19579     pname = "OLE-Storage_Lite";
19580     version = "0.22";
19581     src = fetchurl {
19582       url = "mirror://cpan/authors/id/J/JM/JMCNAMARA/OLE-Storage_Lite-0.22.tar.gz";
19583       hash = "sha256-0FZtbCnTl+pzY3ncUVw2hJ9rlxB89wC6glBQXJhM+WU=";
19584     };
19585     meta = {
19586       description = "Read and write OLE storage files";
19587       license = with lib.licenses; [ artistic1 gpl1Plus ];
19588     };
19589   };
19591   Opcodes = buildPerlPackage {
19592     pname = "Opcodes";
19593     version = "0.14";
19594     src = fetchurl {
19595       url = "mirror://cpan/authors/id/R/RU/RURBAN/Opcodes-0.14.tar.gz";
19596       hash = "sha256-f3NlRH5NHFuHtDCRRI8EiOZ8nwNrJsAipUCc1z00OJM=";
19597     };
19598     meta = {
19599       description = "More Opcodes information from opnames.h and opcode.h";
19600       license = with lib.licenses; [ artistic1 gpl1Plus ];
19601     };
19602   };
19604   OpenAPIClient = buildPerlPackage {
19605     pname = "OpenAPI-Client";
19606     version = "1.07";
19607     src = fetchurl {
19608       url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/OpenAPI-Client-1.07.tar.gz";
19609       hash = "sha256-Ue1kHSg7j0u7wG0BwVZzm9K5qItO+Et7hPlQ+g7hTbM=";
19610     };
19611     propagatedBuildInputs = [ MojoliciousPluginOpenAPI ];
19612     meta = {
19613       description = "Client for talking to an Open API powered server";
19614       homepage = "https://github.com/jhthorsen/openapi-client";
19615       license = with lib.licenses; [ artistic2 ];
19616       maintainers = [ maintainers.sgo ];
19617     };
19618   };
19620   OpenGL = buildPerlPackage rec {
19621     pname = "OpenGL";
19622     version = "0.70";
19623     src = fetchurl {
19624       url = "mirror://cpan/authors/id/C/CH/CHM/OpenGL-0.70.tar.gz";
19625       hash = "sha256-sg4q9EBLSQGrNbumrV46iqYL/3JBPJkojwEBjEz4dOA=";
19626     };
19628     # FIXME: try with libGL + libGLU instead of libGLU libGL
19629     buildInputs = [ pkgs.libGLU pkgs.libGL pkgs.libGLU pkgs.libglut pkgs.xorg.libX11 pkgs.xorg.libXi pkgs.xorg.libXmu pkgs.xorg.libXext pkgs.xdummy ];
19631     patches = [ ../development/perl-modules/perl-opengl.patch ];
19633     configurePhase = ''
19634       substituteInPlace Makefile.PL \
19635         --replace "@@libpaths@@" '${lib.concatStringsSep "\n" (map (f: "-L${f}/lib") buildInputs)}'
19637       cp -v ${../development/perl-modules/perl-opengl-gl-extensions.txt} utils/glversion.txt
19639       perl Makefile.PL PREFIX=$out INSTALLDIRS=site $makeMakerFlags
19640     '';
19642     doCheck = false;
19643     meta = {
19644       description = "Perl OpenGL bindings";
19645       license = with lib.licenses; [ artistic1 gpl1Plus ]; # taken from EPEL
19646     };
19647   };
19649   OpenOfficeOODoc = buildPerlPackage {
19650     pname = "OpenOffice-OODoc";
19651     version = "2.125";
19652     src = fetchurl {
19653       url = "mirror://cpan/authors/id/J/JM/JMGDOC/OpenOffice-OODoc-2.125.tar.gz";
19654       hash = "sha256-wRRIlwaTxCqLnpPaSMrJE1Fs4zqdRKZGhAD3rYeR2rY=";
19655     };
19656     propagatedBuildInputs = [ ArchiveZip XMLTwig ];
19657     meta = {
19658       description = "Perl Open OpenDocument Connector";
19659       license = with lib.licenses; [ lgpl21Only ];
19660       maintainers = [ maintainers.wentasah ];
19661     };
19662   };
19664   NetOpenIDCommon = buildPerlPackage {
19665     pname = "Net-OpenID-Common";
19666     version = "1.20";
19667     src = fetchurl {
19668       url = "mirror://cpan/authors/id/W/WR/WROG/Net-OpenID-Common-1.20.tar.gz";
19669       hash = "sha256-q06X10pHcQ4NtKwMgi9/32Iq+GpgpSunIlWoicKdq8k=";
19670     };
19671     propagatedBuildInputs = [ CryptDHGMP XMLSimple ];
19672     meta = {
19673       description = "Libraries shared between Net::OpenID::Consumer and Net::OpenID::Server";
19674       license = with lib.licenses; [ artistic1 gpl1Plus ];
19675     };
19676   };
19678   NetOpenIDConsumer = buildPerlPackage {
19679     pname = "Net-OpenID-Consumer";
19680     version = "1.18";
19681     src = fetchurl {
19682       url = "mirror://cpan/authors/id/W/WR/WROG/Net-OpenID-Consumer-1.18.tar.gz";
19683       hash = "sha256-Dhw4b+fBhDBx3Zlr3KymEJEGZK5LXRJ8lf6u/Zk2Tzg=";
19684     };
19685     propagatedBuildInputs = [ JSON NetOpenIDCommon ];
19686     buildInputs = [ CGI ];
19687     meta = {
19688       description = "Library for consumers of OpenID identities";
19689       license = with lib.licenses; [ artistic1 gpl1Plus ];
19690     };
19691   };
19693   NetOpenSSH = buildPerlPackage {
19694     pname = "Net-OpenSSH";
19695     version = "0.84";
19696     src = fetchurl {
19697       url = "mirror://cpan/authors/id/S/SA/SALVA/Net-OpenSSH-0.84.tar.gz";
19698       hash = "sha256-h4DmLwGxzw20PJy3BclP9JSbAyIzvkvpH8kavHkVOfg=";
19699     };
19700     meta = {
19701       description = "Perl SSH client package implemented on top of OpenSSH";
19702       license = with lib.licenses; [ artistic1 gpl1Plus ];
19703     };
19704   };
19706   NetZooKeeper = buildPerlPackage {
19707     pname = "Net-ZooKeeper";
19708     version = "0.42pre";
19709     src = fetchFromGitHub {
19710       owner = "mark-5";
19711       repo = "p5-net-zookeeper";
19712       rev = "66e1a360aff9c39af728c36092b540a4b6045f70";
19713       hash = "sha256-NyY97EWtqWFtKJnwX2HDkKcyviKq57yRtWC7lzajiHY=";
19714     };
19715     buildInputs = [ pkgs.zookeeper_mt ];
19716     # fix "error: format not a string literal and no format arguments [-Werror=format-security]"
19717     hardeningDisable = [ "format" ];
19718     # Make the async API accessible
19719     env.NIX_CFLAGS_COMPILE = "-DTHREADED";
19720     NIX_CFLAGS_LINK = "-L${pkgs.zookeeper_mt.out}/lib -lzookeeper_mt";
19721     # Most tests are skipped as no server is available in the sandbox.
19722     # `t/35_log.t` seems to suffer from a race condition; remove it.  See
19723     # https://github.com/NixOS/nixpkgs/pull/104889#issuecomment-737144513
19724     preCheck = ''
19725       rm t/35_log.t
19726     '' + lib.optionalString stdenv.hostPlatform.isDarwin ''
19727       rm t/30_connect.t
19728       rm t/45_class.t
19729     '';
19730     meta = {
19731       description = "Perl extension for Apache ZooKeeper";
19732       homepage = "https://github.com/mark-5/p5-net-zookeeper";
19733       license = with lib.licenses; [ asl20 ];
19734       maintainers = teams.deshaw.members ++ [ maintainers.ztzg ];
19735     };
19736   };
19738   PackageConstants = buildPerlPackage {
19739     pname = "Package-Constants";
19740     version = "0.06";
19741     src = fetchurl {
19742       url = "mirror://cpan/authors/id/B/BI/BINGOS/Package-Constants-0.06.tar.gz";
19743       hash = "sha256-C1i+eHBszE5L2butQXZ0cEJ/17LPrXSUid4QH4W8XfU=";
19744     };
19745     meta = {
19746       description = "List constants defined in a package";
19747       license = with lib.licenses; [ artistic1 gpl1Plus ];
19748     };
19749   };
19751   PackageDeprecationManager = buildPerlPackage {
19752     pname = "Package-DeprecationManager";
19753     version = "0.18";
19754     src = fetchurl {
19755       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Package-DeprecationManager-0.18.tar.gz";
19756       hash = "sha256-to0/DO1Vt2Ff3btgKbifkqNP4N2Mb9a87/wVfVaDT+g=";
19757     };
19758     buildInputs = [ TestFatal TestWarnings ];
19759     propagatedBuildInputs = [ PackageStash ParamsUtil SubInstall SubName ];
19760     meta = {
19761       description = "Manage deprecation warnings for your distribution";
19762       homepage = "https://metacpan.org/release/Package-DeprecationManager";
19763       license = with lib.licenses; [ artistic2 ];
19764     };
19765   };
19767   PatchReader = buildPerlPackage {
19768     pname = "PatchReader";
19769     version = "0.9.6";
19770     src = fetchurl {
19771       url = "mirror://cpan/authors/id/T/TM/TMANNERM/PatchReader-0.9.6.tar.gz";
19772       hash = "sha256-uN43RgNHu1R03AGRbMsx3S/gzZIkLEoy1zDo6wh8Mjw=";
19773     };
19774     meta = {
19775       description = "Utilities to read and manipulate patches and CVS";
19776       license = with lib.licenses; [ artistic1 ];
19777     };
19778   };
19780   PackageStash = buildPerlPackage {
19781     pname = "Package-Stash";
19782     version = "0.40";
19783     src = fetchurl {
19784       url = "mirror://cpan/authors/id/E/ET/ETHER/Package-Stash-0.40.tar.gz";
19785       hash = "sha256-WpcixtnLKe4TPl97CKU2J2KgtWM/9RcGQqWwaG6V4GY=";
19786     };
19787     buildInputs = [ CPANMetaCheck TestFatal TestNeeds TestRequires ];
19788     propagatedBuildInputs = [ DistCheckConflicts ModuleImplementation ];
19789     meta = {
19790       description = "Routines for manipulating stashes";
19791       homepage = "https://github.com/moose/Package-Stash";
19792       license = with lib.licenses; [ artistic1 gpl1Plus ];
19793       mainProgram = "package-stash-conflicts";
19794     };
19795   };
19797   PackageStashXS = buildPerlPackage {
19798     pname = "Package-Stash-XS";
19799     version = "0.30";
19800     src = fetchurl {
19801       url = "mirror://cpan/authors/id/E/ET/ETHER/Package-Stash-XS-0.30.tar.gz";
19802       hash = "sha256-JrrWXBlZxXN5s+E53HdvvsX3ApBmF+8nzcKT3fEjkjE=";
19803     };
19804     buildInputs = [ TestFatal TestNeeds ];
19805     meta = {
19806       description = "Faster and more correct implementation of the Package::Stash API";
19807       homepage = "https://github.com/moose/Package-Stash-XS";
19808       license = with lib.licenses; [ artistic1 gpl1Plus ];
19809     };
19810   };
19812   Pango = buildPerlPackage {
19813     pname = "Pango";
19814     version = "1.227";
19815     src = fetchurl {
19816       url = "mirror://cpan/authors/id/X/XA/XAOC/Pango-1.227.tar.gz";
19817       hash = "sha256-NLCkIt8/7NdZdYcEhVJFfUiudkxDu+/SqdYs62yLrHE=";
19818     };
19819     buildInputs = [ pkgs.pango ];
19820     propagatedBuildInputs = [ Cairo Glib ];
19821     meta = {
19822       description = "Layout and render international text";
19823       homepage = "https://gtk2-perl.sourceforge.net";
19824       license = with lib.licenses; [ lgpl21Plus ];
19825     };
19826   };
19828   ParallelForkManager = buildPerlPackage {
19829     pname = "Parallel-ForkManager";
19830     version = "2.02";
19831     src = fetchurl {
19832       url = "mirror://cpan/authors/id/Y/YA/YANICK/Parallel-ForkManager-2.02.tar.gz";
19833       hash = "sha256-wbKXCou2ZsPefKrEqPTbzAQ6uBm7wzdpLse/J62uRAQ=";
19834     };
19835     buildInputs = [ TestWarn ];
19836     propagatedBuildInputs = [ Moo ];
19837     meta = {
19838       description = "Simple parallel processing fork manager";
19839       homepage = "https://github.com/dluxhu/perl-parallel-forkmanager";
19840       license = with lib.licenses; [ artistic1 gpl1Plus ];
19841     };
19842   };
19844   ParallelLoops = buildPerlPackage {
19845     pname = "Parallel-Loops";
19846     version = "0.12";
19847     src = fetchurl {
19848       url = "mirror://cpan/authors/id/P/PM/PMORCH/Parallel-Loops-0.12.tar.gz";
19849       hash = "sha256-tmyP4v1RmHPIp7atHRoE3yAmkSJZteKKQeUdnJsVQVA=";
19850     };
19851     propagatedBuildInputs = [ ParallelForkManager ];
19852     meta = {
19853       description = "Execute loops using parallel forked subprocesses";
19854       homepage = "https://github.com/pmorch/perl-Parallel-Loops";
19855       license = with lib.licenses; [ artistic1 gpl1Plus ];
19856       maintainers = with maintainers; [ tomasajt ];
19857     };
19858   };
19860   ParallelPipes = buildPerlModule {
19861     pname = "Parallel-Pipes";
19862     version = "0.200";
19863     src = fetchurl {
19864       url = "mirror://cpan/authors/id/S/SK/SKAJI/Parallel-Pipes-0.200.tar.gz";
19865       hash = "sha256-iLmFDqzJ1hjz6RpRyqOGxKZOgswYc1AzUkTjSbgREQY=";
19866     };
19867     buildInputs = [ ModuleBuildTiny ];
19868     meta = {
19869       description = "Parallel processing using pipe(2) for communication and synchronization";
19870       homepage = "https://github.com/skaji/Parallel-Pipes";
19871       license = with lib.licenses; [ artistic1 gpl1Plus ];
19872       maintainers = [ maintainers.zakame ];
19873     };
19874   };
19876   ParallelPrefork = buildPerlPackage {
19877     pname = "Parallel-Prefork";
19878     version = "0.18";
19879     src = fetchurl {
19880       url = "mirror://cpan/authors/id/K/KA/KAZUHO/Parallel-Prefork-0.18.tar.gz";
19881       hash = "sha256-8cH0jxrhR6WLyI+csvVw1rsV6kwNWJq9TDCE3clhWW4=";
19882     };
19883     buildInputs = [ TestRequires TestSharedFork ];
19884     propagatedBuildInputs = [ ClassAccessorLite ListMoreUtils ProcWait3 ScopeGuard SignalMask ];
19885     meta = {
19886       description = "Simple prefork server framework";
19887       license = with lib.licenses; [ artistic1 gpl1Plus ];
19888     };
19889   };
19891   ParamsClassify = buildPerlModule {
19892     pname = "Params-Classify";
19893     version = "0.015";
19894     src = fetchurl {
19895       url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Params-Classify-0.015.tar.gz";
19896       hash = "sha256-OY7BXNiZ/Ni+89ueoXSL9jHxX2wyviA+R1tn31EKWRQ=";
19897     };
19898     perlPreHook = lib.optionalString stdenv.hostPlatform.isi686 "export LD=$CC"; # fix undefined reference to `__stack_chk_fail_local'
19899     meta = {
19900       description = "Argument type classification";
19901       license = with lib.licenses; [ artistic1 gpl1Plus ];
19902     };
19903   };
19905   ParamsUtil = buildPerlPackage {
19906     pname = "Params-Util";
19907     version = "1.102";
19908     src = fetchurl {
19909       url = "mirror://cpan/authors/id/R/RE/REHSACK/Params-Util-1.102.tar.gz";
19910       hash = "sha256-SZuxtILbJP2id6UVJVlq0JLCvVHdUI+o/sLp+EkJdAI=";
19911     };
19912     meta = {
19913       description = "Simple, compact and correct param-checking functions";
19914       homepage = "https://metacpan.org/release/Params-Util";
19915       license = with lib.licenses; [ artistic1 gpl1Plus ];
19916     };
19917   };
19919   ParamsValidate = buildPerlModule {
19920     pname = "Params-Validate";
19921     version = "1.31";
19922     src = fetchurl {
19923       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Params-Validate-1.31.tar.gz";
19924       hash = "sha256-G/JRjvLEhp+RWQ4hn1RcjvEu1TzzE+DrVwSt9/Gylh4=";
19925     };
19926     buildInputs = [ TestFatal TestRequires ];
19927     propagatedBuildInputs = [ ModuleImplementation ];
19928     perlPreHook = "export LD=$CC";
19929     meta = {
19930       description = "Validate method/function parameters";
19931       homepage = "https://metacpan.org/release/Params-Validate";
19932       license = with lib.licenses; [ artistic2 ];
19933     };
19934   };
19936   ParamsValidationCompiler = buildPerlPackage {
19937     pname = "Params-ValidationCompiler";
19938     version = "0.31";
19939     src = fetchurl {
19940       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Params-ValidationCompiler-0.31.tar.gz";
19941       hash = "sha256-e2SXFz8batsp9dUdjPnsNtLxIZQStLJBDp13qQHoSm0=";
19942     };
19943     propagatedBuildInputs = [ EvalClosure ExceptionClass ];
19944     buildInputs = [ Specio Test2PluginNoWarnings Test2Suite TestWithoutModule ];
19945     meta = {
19946       description = "Build an optimized subroutine parameter validator once, use it forever";
19947       homepage = "https://metacpan.org/release/Params-ValidationCompiler";
19948       license = with lib.licenses; [ artistic2 ];
19949     };
19950   };
19952   Paranoid = buildPerlPackage {
19953     pname = "Paranoid";
19954     version = "2.10";
19955     src = fetchurl {
19956       url = "mirror://cpan/authors/id/C/CO/CORLISS/Paranoid/Paranoid-2.10.tar.gz";
19957       hash = "sha256-vvS25l1cmk72C8qjF0hvOg0jm/2rRQqnEgLCl5i4dSk=";
19958     };
19959     patches = [ ../development/perl-modules/Paranoid-blessed-path.patch ];
19960     preConfigure = ''
19961       # Capture the path used when compiling this module as the "blessed"
19962       # system path, analogous to the module's own use of '/bin:/sbin'.
19963       sed -i "s#__BLESSED_PATH__#${pkgs.coreutils}/bin#" lib/Paranoid.pm t/01_init_core.t
19964     '';
19965     meta = {
19966       description = "General function library for safer, more secure programming";
19967       license = with lib.licenses; [ artistic1 gpl1Plus ];
19968       maintainers = teams.deshaw.members;
19969     };
19970   };
19972   PARDist = buildPerlPackage {
19973     pname = "PAR-Dist";
19974     version = "0.52";
19975     src = fetchurl {
19976       url = "mirror://cpan/authors/id/R/RS/RSCHUPP/PAR-Dist-0.52.tar.gz";
19977       hash = "sha256-y+ljAJ6nnSRUqF/heU9CW33cHoa3F0nIhNsp1gHqj4g=";
19978     };
19979     meta = {
19980       description = "Create and manipulate PAR distributions";
19981       license = with lib.licenses; [ artistic1 gpl1Plus ];
19982     };
19983   };
19985   PAUSEPermissions = buildPerlPackage {
19986     pname = "PAUSE-Permissions";
19987     version = "0.17";
19988     src = fetchurl {
19989       url = "mirror://cpan/authors/id/N/NE/NEILB/PAUSE-Permissions-0.17.tar.gz";
19990       hash = "sha256-ek6SDeODL5CfJV1aMj942M0hXGCMlJbNbJVwEsi0MQg=";
19991     };
19992     propagatedBuildInputs = [ FileHomeDir HTTPDate MooXOptions TimeDurationParse ];
19993     buildInputs = [ PathTiny ];
19994     meta = {
19995       description = "Interface to PAUSE's module permissions file (06perms.txt)";
19996       homepage = "https://github.com/neilb/PAUSE-Permissions";
19997       license = with lib.licenses; [ artistic1 gpl1Plus ];
19998       mainProgram = "pause-permissions";
19999     };
20000   };
20002   Parent = buildPerlPackage {
20003     pname = "parent";
20004     version = "0.241";
20005     src = fetchurl {
20006       url = "mirror://cpan/authors/id/C/CO/CORION/parent-0.241.tar.gz";
20007       hash = "sha256-sQs5YKs5l9q3Vx/+l1ukYtl50IZFB0Ch4Is5WedRKP4=";
20008     };
20009     meta = {
20010       description = "Establish an ISA relationship with base classes at compile time";
20011       license = with lib.licenses; [ artistic1 gpl1Plus ];
20012     };
20013   };
20015   ParseWin32Registry = buildPerlPackage {
20016     pname = "ParseWin32Registry";
20017     version = "1.1";
20018     src = fetchurl {
20019       url = "mirror://cpan/authors/id/J/JM/JMACFARLA/Parse-Win32Registry-1.1.tar.gz";
20020       hash = "sha256-wWOyAr5q17WPSEZJT/crjJqXloPKmU5DgOmsZWTcBbo=";
20021     };
20022     meta = with lib; {
20023       description = "Module for parsing Windows Registry files";
20024       license = with licenses; [ artistic1 gpl1Only ];
20025     };
20026   };
20028   ParseEDID = buildPerlPackage {
20029     pname = "Parse-Edid";
20030     version = "1.0.7";
20031     src = fetchurl {
20032       url = "mirror://cpan/authors/id/G/GR/GROUSSE/Parse-EDID-1.0.7.tar.gz";
20033       hash = "sha256-GtwPEFoyGYoqK02lsOD5hfBe/tmc42YZCnkOFl1nW/E=";
20034     };
20035     buildInputs = [ TestWarn ];
20036     meta = {
20037       description = "Extended display identification data (EDID) parser";
20038       license = lib.licenses.gpl3Plus;
20039     };
20040   };
20042   ParseDebControl = buildPerlPackage {
20043     pname = "Parse-DebControl";
20044     version = "2.005";
20045     src = fetchurl {
20046       url = "mirror://cpan/authors/id/J/JA/JAYBONCI/Parse-DebControl-2.005.tar.gz";
20047       hash = "sha256-tkvOH/IS1+PvnUNo57YnSc8ndR+oNgzfU+lpEjNGpyk=";
20048     };
20049     propagatedBuildInputs = [ IOStringy LWP ];
20050     meta = {
20051       description = "Easy OO parsing of debian control-like files";
20052       license = with lib.licenses; [ artistic1 gpl1Plus ];
20053     };
20054   };
20056   ParseDistname = buildPerlPackage {
20057     pname = "Parse-Distname";
20058     version = "0.05";
20059     src = fetchurl {
20060       url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/Parse-Distname-0.05.tar.gz";
20061       hash = "sha256-pfqTvsLat22IPaEtTzRLc7+L6wzEtmwkN28+Dzh67wc=";
20062     };
20063     buildInputs = [ ExtUtilsMakeMakerCPANfile TestDifferences TestUseAllModules ];
20064     meta = {
20065       description = "Parse a distribution name";
20066       license = with lib.licenses; [ artistic1 gpl1Plus ];
20067     };
20068   };
20070   ParseIRC = buildPerlPackage {
20071     pname = "Parse-IRC";
20072     version = "1.22";
20073     src = fetchurl {
20074       url = "mirror://cpan/authors/id/B/BI/BINGOS/Parse-IRC-1.22.tar.gz";
20075       hash = "sha256-RXsJiX8304pwVPlWMkc2VCf+JBAWIu1MfwVHI6RbWNU=";
20076     };
20077     meta = {
20078       description = "Parser for the IRC protocol";
20079       homepage = "https://github.com/bingos/parse-irc";
20080       license = with lib.licenses; [ artistic1 gpl1Plus ];
20081       maintainers = with maintainers; [ sgo ];
20082     };
20083   };
20085   ParseLocalDistribution = buildPerlPackage {
20086     pname = "Parse-LocalDistribution";
20087     version = "0.19";
20088     src = fetchurl {
20089       url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/Parse-LocalDistribution-0.19.tar.gz";
20090       hash = "sha256-awvDLE6NnoHz8qzB0qdMKi+IepHBUisxzkyNSaQV6Z4=";
20091     };
20092     propagatedBuildInputs = [ ParsePMFile ];
20093     buildInputs = [ ExtUtilsMakeMakerCPANfile TestUseAllModules ];
20094     meta = {
20095       description = "Parses local .pm files as PAUSE does";
20096       license = with lib.licenses; [ artistic1 gpl1Plus ];
20097     };
20098   };
20100   ParsePlainConfig = buildPerlPackage {
20101     pname = "Parse-PlainConfig";
20102     version = "3.06";
20103     src = fetchurl {
20104       url = "mirror://cpan/authors/id/C/CO/CORLISS/Parse-PlainConfig/Parse-PlainConfig-3.06.tar.gz";
20105       hash = "sha256-8ffT5OWawrbPbJjaDKpBxdTl2GVcIQdRSBlplS/+G4c=";
20106     };
20107     propagatedBuildInputs = [ ClassEHierarchy Paranoid ];
20108     meta = {
20109       description = "Parser/Generator of human-readable conf files";
20110       license = with lib.licenses; [ artistic1 gpl1Plus ];
20111       maintainers = teams.deshaw.members;
20112     };
20113   };
20115   ParsePMFile = buildPerlPackage {
20116     pname = "Parse-PMFile";
20117     version = "0.44";
20118     src = fetchurl {
20119       url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/Parse-PMFile-0.44.tar.gz";
20120       hash = "sha256-4I8PVkVbOsEtzNjHEWUGErfTzRUPim+K5rQ7LaR9+ZQ=";
20121     };
20122     buildInputs = [ ExtUtilsMakeMakerCPANfile ];
20123     meta = {
20124       description = "Parses .pm file as PAUSE does";
20125       license = with lib.licenses; [ artistic1 gpl1Plus ];
20126     };
20127   };
20129   ParseRecDescent = buildPerlModule {
20130     pname = "Parse-RecDescent";
20131     version = "1.967015";
20132     src = fetchurl {
20133       url = "mirror://cpan/authors/id/J/JT/JTBRAUN/Parse-RecDescent-1.967015.tar.gz";
20134       hash = "sha256-GUMzaky1TxeIpzPwgnwMVdtDENXq4V5UJjnJ3YVlbjc=";
20135     };
20136     meta = {
20137       description = "Generate Recursive-Descent Parsers";
20138       license = with lib.licenses; [ artistic1 gpl1Plus ];
20139     };
20140   };
20142   ParseSyslog = buildPerlPackage {
20143     pname = "Parse-Syslog";
20144     version = "1.10";
20145     src = fetchurl {
20146       url = "mirror://cpan/authors/id/D/DS/DSCHWEI/Parse-Syslog-1.10.tar.gz";
20147       hash = "sha256-ZZohRUQe822YNd7K+D2jCPzQP0kTjLPZCSjov8nxOdk=";
20148     };
20149     meta = {
20150       description = "Parse Unix syslog files";
20151       license = with lib.licenses; [ artistic1 gpl1Plus ];
20152     };
20153   };
20155   ParserMGC = buildPerlModule {
20156     pname = "Parser-MGC";
20157     version = "0.21";
20158     src = fetchurl {
20159       url = "mirror://cpan/authors/id/P/PE/PEVANS/Parser-MGC-0.21.tar.gz";
20160       hash = "sha256-DmGIpydqn5B1fGIEc98W08mGGRO6viWvIJz0RhWgKk8=";
20161     };
20162     buildInputs = [ TestFatal ];
20163     propagatedBuildInputs = [ FeatureCompatTry ];
20164     meta = {
20165       description = "Build simple recursive-descent parsers";
20166       license = with lib.licenses; [ artistic1 gpl1Plus ];
20167     };
20168   };
20170   ParseYapp = buildPerlPackage {
20171     pname = "Parse-Yapp";
20172     version = "1.21";
20173     src = fetchurl {
20174       url = "mirror://cpan/authors/id/W/WB/WBRASWELL/Parse-Yapp-1.21.tar.gz";
20175       hash = "sha256-OBDpmDCPui4PTyYEMDUDKwJ85RzlyKUqi440DKZfE+U=";
20176     };
20177     meta = {
20178       description = "Perl extension for generating and using LALR parsers";
20179       license = with lib.licenses; [ artistic1 gpl1Plus ];
20180       mainProgram = "yapp";
20181     };
20182   };
20184   PathClass = buildPerlModule {
20185     pname = "Path-Class";
20186     version = "0.37";
20187     src = fetchurl {
20188       url = "mirror://cpan/authors/id/K/KW/KWILLIAMS/Path-Class-0.37.tar.gz";
20189       hash = "sha256-ZUeBlIYCOG8ssuRHOnOfF9xpU9kqq8JJikyiVhvCSM4=";
20190     };
20191     meta = {
20192       description = "Cross-platform path specification manipulation";
20193       license = with lib.licenses; [ artistic1 gpl1Plus ];
20194     };
20195   };
20197   PathDispatcher = buildPerlPackage {
20198     pname = "Path-Dispatcher";
20199     version = "1.08";
20200     src = fetchurl {
20201       url = "mirror://cpan/authors/id/E/ET/ETHER/Path-Dispatcher-1.08.tar.gz";
20202       hash = "sha256-ean2HCdAi0/R7SNNrCRpdN3q+n/mNaGP5B7HeDEwrio=";
20203     };
20204     buildInputs = [ ModuleBuildTiny TestFatal ];
20205     propagatedBuildInputs = [ Moo MooXTypeTiny TryTiny TypeTiny ];
20206     meta = {
20207       description = "Flexible and extensible dispatch";
20208       homepage = "https://github.com/karenetheridge/Path-Dispatcher";
20209       license = with lib.licenses; [ artistic1 gpl1Plus ];
20210     };
20211   };
20213   PathIteratorRule = buildPerlPackage {
20214     pname = "Path-Iterator-Rule";
20215     version = "1.015";
20216     src = fetchurl {
20217       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Path-Iterator-Rule-1.015.tar.gz";
20218       hash = "sha256-87Bixo4Hx29o3lvDOHfP6eB4tjUaYboWUOM+CfUeyyk=";
20219     };
20220     propagatedBuildInputs = [ NumberCompare TextGlob TryTiny ];
20221     buildInputs = [ Filepushd PathTiny TestDeep TestFilename ];
20222     meta = {
20223       description = "Iterative, recursive file finder";
20224       homepage = "https://github.com/dagolden/Path-Iterator-Rule";
20225       license = with lib.licenses; [ asl20 ];
20226     };
20227   };
20229   PathTiny = buildPerlPackage {
20230     pname = "Path-Tiny";
20231     version = "0.144";
20232     src = fetchurl {
20233       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Path-Tiny-0.144.tar.gz";
20234       hash = "sha256-9uoJTs6EXJUqAsJ4kzJXk1TejUEKcH+bcEW9JBIGSH0=";
20235     };
20236     preConfigure =
20237       ''
20238         substituteInPlace lib/Path/Tiny.pm --replace 'use File::Spec 3.40' \
20239           'use File::Spec 3.39'
20240       '';
20241     # This appears to be currently failing tests, though I don't know why.
20242     # -- ocharles
20243     doCheck = false;
20244     meta = {
20245       description = "File path utility";
20246       homepage = "https://github.com/dagolden/Path-Tiny";
20247       license = with lib.licenses; [ asl20 ];
20248     };
20249   };
20251   PathTools = buildPerlPackage {
20252     pname = "PathTools";
20253     version = "3.75";
20254     preConfigure = ''
20255       substituteInPlace Cwd.pm --replace '/usr/bin/pwd' '${pkgs.coreutils}/bin/pwd'
20256     '';
20257     src = fetchurl {
20258       url = "mirror://cpan/authors/id/X/XS/XSAWYERX/PathTools-3.75.tar.gz";
20259       hash = "sha256-pVhQOqax+McnwAczOQgad4iGBqpwGtoa1i3Z2MP5RaI=";
20260     };
20261     # cwd() and fastgetcwd() does not work with taint due to PATH in nixpkgs
20262     preCheck = "rm t/taint.t";
20263     meta = {
20264       description = "Get pathname of current working directory";
20265       license = with lib.licenses; [ artistic1 gpl1Plus ];
20266     };
20267   };
20269   PBKDF2Tiny = buildPerlPackage {
20270     pname = "PBKDF2-Tiny";
20271     version = "0.005";
20272     src = fetchurl {
20273       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/PBKDF2-Tiny-0.005.tar.gz";
20274       hash = "sha256-tOIdxZswJl6qpBtwUIfsA0R9nGVaFKxA/0bk3inqv44=";
20275     };
20276     meta = {
20277       description = "Minimalist PBKDF2 (RFC 2898) with HMAC-SHA1 or HMAC-SHA2";
20278       homepage = "https://github.com/dagolden/PBKDF2-Tiny";
20279       license = with lib.licenses; [ asl20 ];
20280       maintainers = [ maintainers.sgo ];
20281     };
20282   };
20284   PDFAPI2 = buildPerlPackage {
20285     pname = "PDF-API2";
20286     version = "2.045";
20287     src = fetchurl {
20288       url = "mirror://cpan/authors/id/S/SS/SSIMMS/PDF-API2-2.045.tar.gz";
20289       hash = "sha256-tr204NDNZSYQP91YwXHgVgw2uEO3/jyk3cm7HkyDJAY=";
20290     };
20291     buildInputs = [ TestException TestMemoryCycle ];
20292     propagatedBuildInputs = [ FontTTF ];
20293     meta = {
20294       description = "Create, modify, and examine PDF files";
20295       license = with lib.licenses; [ lgpl21Plus ];
20296     };
20297   };
20299   PDFBuilder = buildPerlPackage {
20300     pname = "PDF-Builder";
20301     version = "3.025";
20302     src = fetchurl {
20303       url = "mirror://cpan/authors/id/P/PM/PMPERRY/PDF-Builder-3.025.tar.gz";
20304       hash = "sha256-qb6076DsKXWpFFzvBSEYsgmPRtnBUQ3WV4agPQ2j49U=";
20305     };
20306     nativeCheckInputs = [ TestException TestMemoryCycle ];
20307     propagatedBuildInputs = [ FontTTF ];
20308     meta = {
20309       description = "Facilitates the creation and modification of PDF files";
20310       homepage = "https://metacpan.org/pod/PDF::Builder";
20311       license = with lib.licenses; [ lgpl21Plus ];
20312     };
20313   };
20315   PDL = buildPerlPackage {
20316     pname = "PDL";
20317     version = "2.025";
20318     src = fetchurl {
20319       url = "mirror://cpan/authors/id/E/ET/ETJ/PDL-2.025.tar.gz";
20320       hash = "sha256-G1oWfq0ndy2V2tJ/jrfQlRnSkVbu1TxvwUQVGUtaitY=";
20321     };
20322     patchPhase = ''
20323       substituteInPlace perldl.conf \
20324         --replace 'POSIX_THREADS_LIBS => undef' 'POSIX_THREADS_LIBS => "-L${pkgs.glibc.dev}/lib"' \
20325         --replace 'POSIX_THREADS_INC  => undef' 'POSIX_THREADS_INC  => "-I${pkgs.glibc.dev}/include"' \
20326         --replace 'WITH_MINUIT => undef' 'WITH_MINUIT => 0' \
20327         --replace 'WITH_SLATEC => undef' 'WITH_SLATEC => 0' \
20328         --replace 'WITH_HDF => undef' 'WITH_HDF => 0' \
20329         --replace 'WITH_GD => undef' 'WITH_GD => 0' \
20330         --replace 'WITH_PROJ => undef' 'WITH_PROJ => 0'
20331     '';
20333     # FIXME: Why are these libraries in `nativeBuildInputs`?
20334     nativeBuildInputs = with pkgs; [ autoPatchelfHook (lib.getDev libGL) (lib.getDev glibc) (lib.getDev mesa_glu) ];
20336     buildInputs = [ DevelChecklib TestDeep TestException TestWarn ] ++
20337                   (with pkgs; [ gsl libglut xorg.libXmu xorg.libXi ]);
20339     propagatedBuildInputs = [
20340       AstroFITSHeader
20341       ConvertUU
20342       ExtUtilsF77
20343       FileMap
20344       Inline
20345       InlineC
20346       ListMoreUtils
20347       ModuleCompile
20348       OpenGL
20349       PodParser
20350       TermReadKey
20351     ];
20353     meta = {
20354       description = "Perl Data Language";
20355       homepage = "https://pdl.perl.org";
20356       license = with lib.licenses; [ artistic1 gpl1Plus ];
20357       mainProgram = "pdl2";
20358       platforms = lib.platforms.unix;
20359     };
20360   };
20362   Pegex = buildPerlPackage {
20363     pname = "Pegex";
20364     version = "0.75";
20365     src = fetchurl {
20366       url = "mirror://cpan/authors/id/I/IN/INGY/Pegex-0.75.tar.gz";
20367       hash = "sha256-TcjTNd6AslJHzbP5RvDRDZugs8NLDtfQAxb9Bo/QXtw=";
20368     };
20369     buildInputs = [ TestPod TieIxHash ];
20370     propagatedBuildInputs = [ FileShareDirInstall XXX ];
20371     meta = {
20372       description = "Acmeist PEG Parser Framework";
20373       homepage = "https://github.com/ingydotnet/pegex-pm";
20374       license = with lib.licenses; [ artistic1 gpl1Plus ];
20375     };
20376   };
20378   PerconaToolkit = callPackage ../development/perl-modules/Percona-Toolkit { };
20380   Perl5lib = buildPerlPackage {
20381     pname = "perl5lib";
20382     version = "1.02";
20383     src = fetchurl {
20384       url = "mirror://cpan/authors/id/N/NO/NOBULL/perl5lib-1.02.tar.gz";
20385       hash = "sha256-JLlpJYQBU8REJBOYs2/Il24IX9sNh5yRc0cJz5F+zqw=";
20386     };
20387     meta = {
20388       description = "Honour PERL5LIB even in taint mode";
20389       license = with lib.licenses; [ artistic1 gpl1Plus ];
20390     };
20391   };
20393   Perlosnames = buildPerlPackage {
20394     pname = "Perl-osnames";
20395     version = "0.122";
20396     src = fetchurl {
20397       url = "mirror://cpan/authors/id/P/PE/PERLANCAR/Perl-osnames-0.122.tar.gz";
20398       hash = "sha256-cHWTnXR+N1F40ANI0AxS/52yzrsYuudHPcsJ34JRGKA=";
20399     };
20400     meta = {
20401       description = "List possible $^O ($OSNAME) values, with description";
20402       homepage = "https://metacpan.org/release/Perl-osnames";
20403       license = with lib.licenses; [ artistic1 gpl1Plus ];
20404     };
20405   };
20407   PerlCritic = buildPerlModule {
20408     pname = "Perl-Critic";
20409     version = "1.150";
20410     src = fetchurl {
20411       url = "mirror://cpan/authors/id/P/PE/PETDANCE/Perl-Critic-1.150.tar.gz";
20412       hash = "sha256-5c2V3j5DvOcHdRdidLqkBfMm/IdA3wBUu4FpdcyNNJs=";
20413     };
20414     buildInputs = [ TestDeep ];
20415     nativeBuildInputs = lib.optional stdenv.hostPlatform.isDarwin shortenPerlShebang;
20416     propagatedBuildInputs = [ BKeywords ConfigTiny ExceptionClass FileWhich ListSomeUtils ModulePluggable PPI PPIxQuoteLike PPIxRegexp PPIxUtilities PPIxUtils PerlTidy PodSpell Readonly StringFormat ];
20417     postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
20418       shortenPerlShebang $out/bin/perlcritic
20419     '';
20420     meta = {
20421       description = "Critique Perl source code for best-practices";
20422       homepage = "http://perlcritic.com";
20423       license = with lib.licenses; [ artistic1 gpl1Plus ];
20424       mainProgram = "perlcritic";
20425     };
20426   };
20428   PerlCriticCommunity = buildPerlModule {
20429     pname = "Perl-Critic-Community";
20430     version = "1.0.3";
20431     src = fetchurl {
20432       url = "mirror://cpan/authors/id/D/DB/DBOOK/Perl-Critic-Community-v1.0.3.tar.gz";
20433       hash = "sha256-Ed3bt5F5/mIp8zPKOS+U/firXNmJzJfZk1IaidXEetU=";
20434     };
20435     buildInputs = [ ModuleBuildTiny ];
20436     propagatedBuildInputs = [ PPI PathTiny PerlCritic PerlCriticPolicyVariablesProhibitLoopOnHash PerlCriticPulp ];
20437     meta = {
20438       description = "Community-inspired Perl::Critic policies";
20439       homepage = "https://github.com/Grinnz/Perl-Critic-Community";
20440       license = with lib.licenses; [ artistic2 ];
20441     };
20442   };
20444   PerlCriticMoose = buildPerlPackage rec {
20445     pname = "Perl-Critic-Moose";
20446     version = "1.05";
20447     src = fetchurl {
20448       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Perl-Critic-Moose-${version}.tar.gz";
20449       hash = "sha256-UuuOIsQmQ/F/4peiFxQBfv254phsJOMzfgMPNlD5IgE=";
20450     };
20451     propagatedBuildInputs = [ PerlCritic Readonly namespaceautoclean ];
20452     meta = {
20453       description = "Policies for Perl::Critic concerned with using Moose";
20454       homepage = "https://metacpan.org/release/Perl-Critic-Moose";
20455       license = with lib.licenses; [ artistic1 ];
20456     };
20457   };
20459   PerlCriticPolicyVariablesProhibitLoopOnHash = buildPerlPackage {
20460     pname = "Perl-Critic-Policy-Variables-ProhibitLoopOnHash";
20461     version = "0.008";
20462     src = fetchurl {
20463       url = "mirror://cpan/authors/id/X/XS/XSAWYERX/Perl-Critic-Policy-Variables-ProhibitLoopOnHash-0.008.tar.gz";
20464       hash = "sha256-EvXwvpbqG9x4KAWFd70cXGPKI8F/rJw3CUUrPf9bhOA=";
20465     };
20466     propagatedBuildInputs = [ PerlCritic ];
20467     meta = {
20468       description = "Don't write loops on hashes, only on keys and values of hashes";
20469       license = with lib.licenses; [ artistic1 gpl1Plus ];
20470     };
20471   };
20473   PerlCriticPulp = buildPerlPackage {
20474     pname = "Perl-Critic-Pulp";
20475     version = "99";
20476     src = fetchurl {
20477       url = "mirror://cpan/authors/id/K/KR/KRYDE/Perl-Critic-Pulp-99.tar.gz";
20478       hash = "sha256-uP2oQvy+100hAlfAooS23HsdBVSkej3l2X59VC4j5/4=";
20479     };
20480     propagatedBuildInputs = [ IOString ListMoreUtils PPI PerlCritic PodMinimumVersion ];
20481     meta = {
20482       description = "Some add-on policies for Perl::Critic";
20483       homepage = "https://user42.tuxfamily.org/perl-critic-pulp/index.html";
20484       license = with lib.licenses; [ gpl3Plus ];
20485     };
20486   };
20488   PerlDestructLevel = buildPerlPackage {
20489     pname = "Perl-Destruct-Level";
20490     version = "0.02";
20491     src = fetchurl {
20492       url = "mirror://cpan/authors/id/R/RG/RGARCIA/Perl-Destruct-Level-0.02.tar.gz";
20493       hash = "sha256-QLSsCykrYM47h956o5vC+yWhnRDlyfaYZpYchLP20Ts=";
20494     };
20495     meta = {
20496       description = "Allow to change perl's destruction level";
20497       license = with lib.licenses; [ artistic1 gpl1Plus ];
20498     };
20499   };
20501   PerlIOLayers = buildPerlModule {
20502     pname = "PerlIO-Layers";
20503     version = "0.012";
20504     src = fetchurl {
20505       url = "mirror://cpan/authors/id/L/LE/LEONT/PerlIO-Layers-0.012.tar.gz";
20506       hash = "sha256-VC2lQvo2uz/de4d24jDTzMAqpnRM6bd7Tu9MyufASt8=";
20507     };
20508     perlPreHook = "export LD=$CC";
20509     meta = {
20510       description = "Querying your filehandle's capabilities";
20511       license = with lib.licenses; [ artistic1 gpl1Plus ];
20512     };
20513   };
20515   PerlIOeol = buildPerlPackage {
20516     pname = "PerlIO-eol";
20517     version = "0.19";
20518     src = fetchurl {
20519       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/PerlIO-eol-0.19.tar.gz";
20520       hash = "sha256-/3O+xgRP2EepbEGZZPNw5Qn9Nv1XH3o7fDUXX1iviFk=";
20521     };
20522     meta = {
20523       description = "PerlIO layer for normalizing line endings";
20524       license = with lib.licenses; [ artistic1 gpl1Plus ];
20525     };
20526   };
20528   PerlIOgzip = buildPerlPackage {
20529     pname = "PerlIO-gzip";
20530     version = "0.20";
20531     src = fetchurl {
20532       url = "mirror://cpan/authors/id/N/NW/NWCLARK/PerlIO-gzip-0.20.tar.gz";
20533       hash = "sha256-SEhnmj8gHj87DF9vlSbmAq9Skj/6RxoqNlfbeGvTvcU=";
20534     };
20535     buildInputs = [ pkgs.zlib ];
20536     NIX_CFLAGS_LINK = "-L${pkgs.zlib.out}/lib -lz";
20537     meta = {
20538       description = "Perl extension to provide a PerlIO layer to gzip/gunzip";
20539       license = with lib.licenses; [ artistic1 gpl1Plus ];
20540     };
20541   };
20543   PerlIOutf8_strict = buildPerlPackage {
20544     pname = "PerlIO-utf8_strict";
20545     version = "0.010";
20546     src = fetchurl {
20547       url = "mirror://cpan/authors/id/L/LE/LEONT/PerlIO-utf8_strict-0.010.tar.gz";
20548       hash = "sha256-vNKEi3LfKQtemE+uixpsqW9tByADzyIjiajJ6OHFcM0=";
20549     };
20550     buildInputs = [ TestException ];
20551     meta = {
20552       description = "Fast and correct UTF-8 IO";
20553       license = with lib.licenses; [ artistic1 gpl1Plus ];
20554     };
20555   };
20557   PerlIOviadynamic = buildPerlPackage {
20558     pname = "PerlIO-via-dynamic";
20559     version = "0.14";
20560     src = fetchurl {
20561       url = "mirror://cpan/authors/id/A/AL/ALEXMV/PerlIO-via-dynamic-0.14.tar.gz";
20562       hash = "sha256-is169NivIdKLnBWuE3/nbNBk2tfSbrqKMLl+vG4fa0k=";
20563     };
20564     meta = {
20565       description = "Dynamic PerlIO layers";
20566       license = with lib.licenses; [ artistic1 gpl1Plus ];
20567     };
20568   };
20570   PerlIOviasymlink = buildPerlPackage {
20571     pname = "PerlIO-via-symlink";
20572     version = "0.05";
20573     src = fetchurl {
20574       url = "mirror://cpan/authors/id/C/CL/CLKAO/PerlIO-via-symlink-0.05.tar.gz";
20575       hash = "sha256-QQfUw0pqNilFNEjCVpXZL4JSKv9k4ptxa1alr1hrLVI=";
20576     };
20578     buildInputs = [ ModuleInstall ];
20580     postPatch = ''
20581       # remove outdated inc::Module::Install included with module
20582       # causes build failure for perl5.18+
20583       rm -r  inc
20584     '';
20585     meta = {
20586       description = "PerlIO layers for create symlinks";
20587       license = with lib.licenses; [ artistic1 gpl1Plus ];
20588     };
20589   };
20591   PerlIOviaTimeout = buildPerlModule {
20592     pname = "PerlIO-via-Timeout";
20593     version = "0.32";
20594     src = fetchurl {
20595       url = "mirror://cpan/authors/id/D/DA/DAMS/PerlIO-via-Timeout-0.32.tar.gz";
20596       hash = "sha256-knj572aIUNkT2Y+kwNfn1mfP81AzkfSk6uc6JG8ueRY=";
20597     };
20598     buildInputs = [ ModuleBuildTiny TestSharedFork TestTCP ];
20599     meta = {
20600       description = "PerlIO layer that adds read & write timeout to a handle";
20601       license = with lib.licenses; [ artistic1 gpl1Plus ];
20602     };
20603   };
20605   PerlLanguageServer = buildPerlPackage {
20606     pname = "Perl-LanguageServer";
20607     version = "2.6.1";
20608     src = fetchurl {
20609       url = "mirror://cpan/authors/id/G/GR/GRICHTER/Perl-LanguageServer-2.6.1.tar.gz";
20610       hash = "sha256-IDM0uwsEXMeHAu9DA0CdCB87aN3XRoNEdGOIJ8NMsZg=";
20611     };
20612     propagatedBuildInputs = [ AnyEvent AnyEventAIO ClassRefresh CompilerLexer Coro DataDump HashSafeKeys IOAIO JSON Moose PadWalker ];
20613     meta = {
20614       description = "Language Server and Debug Protocol Adapter for Perl";
20615       license = lib.licenses.artistic2;
20616     };
20617   };
20619   perlldap = buildPerlPackage {
20620     pname = "perl-ldap";
20621     version = "0.68";
20622     src = fetchurl {
20623       url = "mirror://cpan/authors/id/M/MA/MARSCHAP/perl-ldap-0.68.tar.gz";
20624       hash = "sha256-4vOJ/j56nkthSIaSkZrXI7mPO0ebUoj2ENqownmVs1E=";
20625     };
20626     # ldapi socket location should match the one compiled into the openldap package
20627     postPatch = ''
20628       for f in lib/Net/LDAPI.pm lib/Net/LDAP/Util.pm lib/Net/LDAP.pod lib/Net/LDAP.pm; do
20629         sed -i 's:/var/run/ldapi:/run/openldap/ldapi:g' "$f"
20630       done
20631     '';
20632     buildInputs = [ TextSoundex ];
20633     propagatedBuildInputs = [ ConvertASN1 ];
20634     meta = {
20635       description = "LDAP client library";
20636       homepage = "https://ldap.perl.org";
20637       license = with lib.licenses; [ artistic1 gpl1Plus ];
20638       maintainers = teams.deshaw.members;
20639     };
20640   };
20642   PerlMagick = ImageMagick; # added 2021-08-02
20643   ImageMagick = buildPerlPackage rec {
20644     pname = "Image-Magick";
20645     version = "7.1.1-20";
20646     src = fetchurl {
20647       url = "mirror://cpan/authors/id/J/JC/JCRISTY/Image-Magick-${version}.tar.gz";
20648       hash = "sha256-oMAwXQBxuV2FgPHBhUi+toNFPVnRLNjZqdP2q+ki6jg=";
20649     };
20650     buildInputs = [ pkgs.imagemagick ];
20651     preConfigure =
20652       ''
20653         sed -i -e 's|my \$INC_magick = .*|my $INC_magick = "-I${pkgs.imagemagick.dev}/include/ImageMagick";|' Makefile.PL
20654       '';
20655     meta = {
20656       description = "Objected-oriented Perl interface to ImageMagick. Use it to read, manipulate, or write an image or image sequence from within a Perl script";
20657       license = with lib.licenses; [ imagemagick ];
20658     };
20659   };
20661   PerlTidy = buildPerlPackage {
20662     pname = "Perl-Tidy";
20663     version = "20230912";
20664     src = fetchurl {
20665       url = "mirror://cpan/authors/id/S/SH/SHANCOCK/Perl-Tidy-20230912.tar.gz";
20666       hash = "sha256-DFeIjyBvmHd34WZA5yV0qgp3eEZxn44+0EE8NTJfVUA=";
20667     };
20668     meta = {
20669       description = "Indent and reformat perl scripts";
20670       license = with lib.licenses; [ gpl2Plus ];
20671       mainProgram = "perltidy";
20672     };
20673   };
20675   PHPSerialization = buildPerlPackage {
20676     pname = "PHP-Serialization";
20677     version = "0.34";
20678     src = fetchurl {
20679       url = "mirror://cpan/authors/id/B/BO/BOBTFISH/PHP-Serialization-0.34.tar.gz";
20680       hash = "sha256-uRLUJumuulSRpeUC58XAOcXapXVCism9yCr/857G8Ho=";
20681     };
20682     meta = {
20683       description = "Simple flexible means of converting the output of PHP's serialize() into the equivalent Perl memory structure, and vice versa";
20684       license = with lib.licenses; [ artistic1 gpl1Plus ];
20685     };
20686   };
20688   PkgConfig = buildPerlPackage rec {
20689     pname = "PkgConfig";
20690     version = "0.25026";
20691     src = fetchurl {
20692       url = "mirror://cpan/authors/id/P/PL/PLICEASE/PkgConfig-0.25026.tar.gz";
20693       hash = "sha256-Tbpe08LWpoG5XF6/FLammVzmmRrkcZutfxqvOOmHwqA=";
20694     };
20695     # support cross-compilation by simplifying the way we get version during build
20696     postPatch = ''
20697       substituteInPlace Makefile.PL --replace \
20698         'do { require "./lib/PkgConfig.pm"; $PkgConfig::VERSION; }' \
20699         '"${version}"'
20700     '';
20701     meta = {
20702       description = "Pure-Perl Core-Only replacement for pkg-config";
20703       homepage = "https://metacpan.org/pod/PkgConfig";
20704       license = with lib.licenses; [ artistic1 gpl1Plus ];
20705       maintainers = teams.deshaw.members;
20706       mainProgram = "ppkg-config";
20707     };
20708   };
20710   Plack = buildPerlPackage {
20711     pname = "Plack";
20712     version = "1.0050";
20713     src = fetchurl {
20714       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Plack-1.0050.tar.gz";
20715       hash = "sha256-0mUa3oLrv/er4KOhifyTLa3Ed5GGzolGjlbQGJ6qbtQ=";
20716     };
20717     buildInputs = [ AuthenSimplePasswd CGIEmulatePSGI FileShareDirInstall HTTPRequestAsCGI HTTPServerSimplePSGI IOHandleUtil LWP LWPProtocolhttp10 LogDispatchArray MIMETypes TestMockTimeHiRes TestRequires TestSharedFork TestTCP ];
20718     propagatedBuildInputs = [ ApacheLogFormatCompiler CookieBaker DevelStackTraceAsHTML FileShareDir FilesysNotifySimple HTTPEntityParser HTTPHeadersFast HTTPMessage TryTiny ];
20719     patches = [
20720       ../development/perl-modules/Plack-test-replace-DES-hash-with-bcrypt.patch
20721     ];
20722     meta = {
20723       description = "Perl Superglue for Web frameworks and Web Servers (PSGI toolkit)";
20724       homepage = "https://github.com/plack/Plack";
20725       license = with lib.licenses; [ artistic1 gpl1Plus ];
20726       mainProgram = "plackup";
20727     };
20728   };
20730   PlackAppProxy = buildPerlPackage {
20731     pname = "Plack-App-Proxy";
20732     version = "0.29";
20733     src = fetchurl {
20734       url = "mirror://cpan/authors/id/L/LE/LEEDO/Plack-App-Proxy-0.29.tar.gz";
20735       hash = "sha256-BKqanbVKmpAn/nBLyjU/jl6fAr5AhytB0jX86c3ypg8=";
20736     };
20737     propagatedBuildInputs = [ AnyEventHTTP LWP Plack ];
20738     buildInputs = [ TestRequires TestSharedFork TestTCP ];
20739     meta = {
20740       description = "Proxy requests";
20741       license = with lib.licenses; [ artistic1 gpl1Plus ];
20742     };
20743   };
20745   PlackMiddlewareAuthDigest = buildPerlModule {
20746     pname = "Plack-Middleware-Auth-Digest";
20747     version = "0.05";
20748     src = fetchurl {
20749       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Plack-Middleware-Auth-Digest-0.05.tar.gz";
20750       hash = "sha256-mr0/kpQ2zV7N+28/DX/foRuUB6OMfWAAYWpQ7eYQFes=";
20751     };
20752     propagatedBuildInputs = [ DigestHMAC Plack ];
20753     buildInputs = [ LWP ModuleBuildTiny TestSharedFork TestTCP ];
20754     meta = {
20755       description = "Digest authentication";
20756       homepage = "https://github.com/miyagawa/Plack-Middleware-Auth-Digest";
20757       license = with lib.licenses; [ artistic1 gpl1Plus ];
20758     };
20759   };
20761   PlackMiddlewareConsoleLogger = buildPerlModule {
20762     pname = "Plack-Middleware-ConsoleLogger";
20763     version = "0.05";
20764     src = fetchurl {
20765       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Plack-Middleware-ConsoleLogger-0.05.tar.gz";
20766       hash = "sha256-VWc6ylBN4sw0AWpF8yyPft2k7k0oArctZ4TSxBuH+9k=";
20767     };
20768     propagatedBuildInputs = [ JavaScriptValueEscape Plack ];
20769     buildInputs = [ ModuleBuildTiny TestRequires ];
20770     meta = {
20771       description = "Write logs to Firebug or Webkit Inspector";
20772       homepage = "https://github.com/miyagawa/Plack-Middleware-ConsoleLogger";
20773       license = with lib.licenses; [ artistic1 gpl1Plus ];
20774     };
20775   };
20777   PlackMiddlewareDebug = buildPerlModule {
20778     pname = "Plack-Middleware-Debug";
20779     version = "0.18";
20780     src = fetchurl {
20781       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Plack-Middleware-Debug-0.18.tar.gz";
20782       hash = "sha256-GS73nlIckMbv9vQUmtLkv8kR0sld94k1hV6Q1lnprJo=";
20783     };
20784     buildInputs = [ ModuleBuildTiny TestRequires ];
20785     propagatedBuildInputs = [ ClassMethodModifiers DataDump DataDumperConcise Plack TextMicroTemplate ];
20786     meta = {
20787       description = "Display information about the current request/response";
20788       homepage = "https://github.com/miyagawa/Plack-Middleware-Debug";
20789       license = with lib.licenses; [ artistic1 gpl1Plus ];
20790     };
20791   };
20793   PlackMiddlewareDeflater = buildPerlPackage {
20794     pname = "Plack-Middleware-Deflater";
20795     version = "0.12";
20796     src = fetchurl {
20797       url = "mirror://cpan/authors/id/K/KA/KAZEBURO/Plack-Middleware-Deflater-0.12.tar.gz";
20798       hash = "sha256-KNqV59pMi1WRrEVFCckhds0IQpYM4HT94w+aEHXcwnU=";
20799     };
20800     propagatedBuildInputs = [ Plack ];
20801     buildInputs = [ TestRequires TestSharedFork TestTCP ];
20802     meta = {
20803       description = "Compress response body with Gzip or Deflate";
20804       license = with lib.licenses; [ artistic1 gpl1Plus ];
20805     };
20806   };
20808   PlackMiddlewareFixMissingBodyInRedirect = buildPerlPackage {
20809     pname = "Plack-Middleware-FixMissingBodyInRedirect";
20810     version = "0.12";
20811     src = fetchurl {
20812       url = "mirror://cpan/authors/id/S/SW/SWEETKID/Plack-Middleware-FixMissingBodyInRedirect-0.12.tar.gz";
20813       hash = "sha256-bCLQafWlesIG1GWbKLiGm7knBkC7lV793UUdzFjNs5E=";
20814     };
20815     propagatedBuildInputs = [ HTMLParser Plack ];
20816     meta = {
20817       description = "Plack::Middleware which sets body for redirect response, if it's not already set";
20818       homepage = "https://github.com/Sweet-kid/Plack-Middleware-FixMissingBodyInRedirect";
20819       license = with lib.licenses; [ artistic1 gpl1Plus ];
20820     };
20821   };
20823   PlackMiddlewareHeader = buildPerlPackage {
20824     pname = "Plack-Middleware-Header";
20825     version = "0.04";
20826     src = fetchurl {
20827       url = "mirror://cpan/authors/id/C/CH/CHIBA/Plack-Middleware-Header-0.04.tar.gz";
20828       hash = "sha256-Xra5/3Ly09VpUOI+K8AnFQqcXnVg1zo0GhZeGu3qXV4=";
20829     };
20830     propagatedBuildInputs = [ Plack ];
20831     meta = {
20832       description = "Modify HTTP response headers";
20833       license = with lib.licenses; [ artistic1 gpl1Plus ];
20834     };
20835   };
20837   PlackMiddlewareMethodOverride = buildPerlPackage {
20838     pname = "Plack-Middleware-MethodOverride";
20839     version = "0.20";
20840     src = fetchurl {
20841       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Plack-Middleware-MethodOverride-0.20.tar.gz";
20842       hash = "sha256-2/taLvtIv+sByzrh4cZ34VXce/4hDH5/IhuuPLaqtfE=";
20843     };
20844     propagatedBuildInputs = [ Plack ];
20845     meta = {
20846       description = "Override REST methods to Plack apps via POST";
20847       license = with lib.licenses; [ artistic1 gpl1Plus ];
20848     };
20849   };
20851   PlackMiddlewareRemoveRedundantBody = buildPerlPackage {
20852     pname = "Plack-Middleware-RemoveRedundantBody";
20853     version = "0.09";
20854     src = fetchurl {
20855       url = "mirror://cpan/authors/id/S/SW/SWEETKID/Plack-Middleware-RemoveRedundantBody-0.09.tar.gz";
20856       hash = "sha256-gNRfk9a3KQsL2LPO3YSjf8UBRWzD3sAux6rYHAAYCH4=";
20857     };
20858     propagatedBuildInputs = [ Plack ];
20859     meta = {
20860       description = "Plack::Middleware which removes body for HTTP response if it's not required";
20861       homepage = "https://github.com/upasana-me/Plack-Middleware-RemoveRedundantBody";
20862       license = with lib.licenses; [ artistic1 gpl1Plus ];
20863     };
20864   };
20866   PlackMiddlewareReverseProxy = buildPerlPackage {
20867     pname = "Plack-Middleware-ReverseProxy";
20868     version = "0.16";
20869     src = fetchurl {
20870       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Plack-Middleware-ReverseProxy-0.16.tar.gz";
20871       hash = "sha256-h0kx030HZnug0PN5A7lFEQcfQZH+tz+kV2XaK4wVoSg=";
20872     };
20873     propagatedBuildInputs = [ Plack ];
20874     meta = {
20875       description = "Supports app to run as a reverse proxy backend";
20876       homepage = "https://github.com/lopnor/Plack-Middleware-ReverseProxy";
20877       license = with lib.licenses; [ artistic1 gpl1Plus ];
20878     };
20879   };
20881   PlackMiddlewareSession = buildPerlModule {
20882     pname = "Plack-Middleware-Session";
20883     version = "0.33";
20884     src = fetchurl {
20885       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Plack-Middleware-Session-0.33.tar.gz";
20886       hash = "sha256-T/miydGK2ASbRd/ze5vdQSIeLC8eFrr7gb/tyIxRpO4=";
20887     };
20888     propagatedBuildInputs = [ DigestHMAC Plack ];
20889     buildInputs = [ HTTPCookies LWP ModuleBuildTiny TestFatal TestRequires TestSharedFork TestTCP ];
20890     meta = {
20891       description = "Middleware for session management";
20892       homepage = "https://github.com/plack/Plack-Middleware-Session";
20893       license = with lib.licenses; [ artistic1 gpl1Plus ];
20894     };
20895   };
20897   PlackTestExternalServer = buildPerlPackage {
20898     pname = "Plack-Test-ExternalServer";
20899     version = "0.02";
20900     src = fetchurl {
20901       url = "mirror://cpan/authors/id/E/ET/ETHER/Plack-Test-ExternalServer-0.02.tar.gz";
20902       hash = "sha256-W69cV/4MBkEt7snFq+eVKrigT4xHtLvY6emYImiQPtA=";
20903     };
20904     buildInputs = [ Plack TestSharedFork TestTCP ];
20905     propagatedBuildInputs = [ LWP ];
20906     meta = {
20907       description = "Run HTTP tests on external live servers";
20908       homepage = "https://github.com/perl-catalyst/Plack-Test-ExternalServer";
20909       license = with lib.licenses; [ artistic1 gpl1Plus ];
20910     };
20911   };
20913   PLS = buildPerlPackage {
20914     pname = "PLS";
20915     version = "0.905";
20916     src = fetchurl {
20917       url = "mirror://cpan/authors/id/M/MR/MREISNER/PLS-0.905.tar.gz";
20918       hash = "sha256-RVW1J5nBZBXDy/5eMB6gLKDrvDQhTH/lLx19ykUwLik=";
20919     };
20920     propagatedBuildInputs = [ Future FutureQueue IOAsync PPI PPR PathTiny PerlCritic PerlTidy PodMarkdown URI ];
20921     nativeBuildInputs = lib.optional stdenv.hostPlatform.isDarwin shortenPerlShebang;
20922     postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
20923       shortenPerlShebang $out/bin/pls
20924     '';
20925     meta = {
20926       description = "Perl Language Server";
20927       homepage = "https://github.com/FractalBoy/perl-language-server";
20928       license = with lib.licenses; [ artistic1 gpl1Plus ];
20929       maintainers = [ maintainers.artturin ];
20930       mainProgram = "pls";
20931     };
20932   };
20934   Po4a = callPackage ../development/perl-modules/Po4a { };
20936   PodMinimumVersion = buildPerlPackage {
20937     pname = "Pod-MinimumVersion";
20938     version = "50";
20939     src = fetchurl {
20940       url = "mirror://cpan/authors/id/K/KR/KRYDE/Pod-MinimumVersion-50.tar.gz";
20941       hash = "sha256-C9KBLZqsvZm7cfoQOkuxKelVwTi6dZhzQgfcn7Z7Wm8=";
20942     };
20943     propagatedBuildInputs = [ IOString PodParser ];
20944     meta = {
20945       description = "Determine minimum Perl version of POD directives";
20946       homepage = "https://user42.tuxfamily.org/pod-minimumversion/index.html";
20947       license = with lib.licenses; [ gpl3Plus ];
20948       mainProgram = "pod-minimumversion";
20949     };
20950   };
20952   POE = buildPerlPackage {
20953     pname = "POE";
20954     version = "1.370";
20955     src = fetchurl {
20956       url = "mirror://cpan/authors/id/B/BI/BINGOS/POE-1.370.tar.gz";
20957       hash = "sha256-V94rY1sV+joxqeVd1REiFJ5UFOEVjugiNQYmNO4YppM=";
20958     };
20959     # N.B. removing TestPodLinkCheck from buildInputs because tests requiring
20960     # this module don't disable themselves when "run_network_tests" is
20961     # not present (see below).
20962     propagatedBuildInputs = [ pkgs.cacert IOPipely IOTty POETestLoops ];
20963     preCheck = ''
20964       set -x
20966       : Makefile.PL touches the following file as a "marker" to indicate
20967       : it should perform tests which use the network. Delete this file
20968       : for sandbox builds.
20969       rm -f run_network_tests
20971       : Certs are required if not running in a sandbox.
20972       export SSL_CERT_FILE=${pkgs.cacert.out}/etc/ssl/certs/ca-bundle.crt
20974       : The following flag enables extra tests not normally performed.
20975       export RELEASE_TESTING=1
20977       set +x
20978     '';
20979     meta = {
20980       description = "Portable, event-loop agnostic eventy networking and multitasking";
20981       homepage = "http://poe.perl.org";
20982       license = with lib.licenses; [ artistic1 gpl1Plus ];
20983       maintainers = teams.deshaw.members;
20984     };
20985   };
20987   POETestLoops = buildPerlPackage {
20988     pname = "POE-Test-Loops";
20989     version = "1.360";
20990     src = fetchurl {
20991       url = "mirror://cpan/authors/id/R/RC/RCAPUTO/POE-Test-Loops-1.360.tar.gz";
20992       hash = "sha256-vtDJb+kcmP035utZqASqrJzEqekoRQt21L9VJ6nmpHs=";
20993     };
20994     meta = {
20995       description = "Reusable tests for POE::Loop authors";
20996       homepage = "https://search.cpan.org/dist/POE-Test-Loops";
20997       license = with lib.licenses; [ artistic1 gpl1Plus ];
20998       maintainers = teams.deshaw.members;
20999       mainProgram = "poe-gen-tests";
21000     };
21001   };
21003   PPI = buildPerlPackage {
21004     pname = "PPI";
21005     version = "1.277";
21006     src = fetchurl {
21007       url = "mirror://cpan/authors/id/M/MI/MITHALDU/PPI-1.277.tar.gz";
21008       hash = "sha256-h8efg7aHbiBgUZZdUBnSUHxVH4GahnUAgOx+xDsuCvg=";
21009     };
21010     buildInputs = [ ClassInspector TestDeep TestNoWarnings TestObject TestSubCalls ];
21011     propagatedBuildInputs = [ Clone IOString ParamsUtil TaskWeaken ];
21013     # Remove test that fails due to unexpected shebang after
21014     # patchShebang.
21015     preCheck = "rm t/03_document.t";
21017     meta = {
21018       description = "Parse, Analyze and Manipulate Perl (without perl)";
21019       homepage = "https://github.com/Perl-Critic/PPI";
21020       license = with lib.licenses; [ artistic1 gpl1Plus ];
21021     };
21022   };
21024   PPIxQuoteLike = buildPerlModule {
21025     pname = "PPIx-QuoteLike";
21026     version = "0.023";
21027     src = fetchurl {
21028       url = "mirror://cpan/authors/id/W/WY/WYANT/PPIx-QuoteLike-0.023.tar.gz";
21029       hash = "sha256-NXajFJ0sU+B+lze3iSvlz7hKSZpu8d8JC3E7BUQjTSE=";
21030     };
21031     propagatedBuildInputs = [ PPI Readonly ];
21032     meta = {
21033       description = "Parse Perl string literals and string-literal-like things";
21034       license = with lib.licenses; [ artistic1 gpl1Plus ];
21035     };
21036   };
21038   PPIxRegexp = buildPerlModule {
21039     pname = "PPIx-Regexp";
21040     version = "0.088";
21041     src = fetchurl {
21042       url = "mirror://cpan/authors/id/W/WY/WYANT/PPIx-Regexp-0.088.tar.gz";
21043       hash = "sha256-iFQz+bEC+tT9NrIccyC7A2A2ERyvmYExv0FvfNXul2Q=";
21044     };
21045     propagatedBuildInputs = [ PPI ];
21046     meta = {
21047       description = "Parse regular expressions";
21048       license = with lib.licenses; [ artistic1 gpl1Plus ];
21049     };
21050   };
21052   PPIxUtilities = buildPerlModule {
21053     pname = "PPIx-Utilities";
21054     version = "1.001000";
21055     src = fetchurl {
21056       url = "mirror://cpan/authors/id/E/EL/ELLIOTJS/PPIx-Utilities-1.001000.tar.gz";
21057       hash = "sha256-A6SDOG/WosgI8Jd41E2wawLDFA+yS6S/EvhR9G07y5s=";
21058     };
21059     buildInputs = [ TestDeep ];
21060     propagatedBuildInputs = [ ExceptionClass PPI Readonly ];
21061     meta = {
21062       description = "Extensions to PPI|PPI";
21063       license = with lib.licenses; [ artistic1 gpl1Plus ];
21064     };
21065   };
21067   PPIxUtils = buildPerlPackage {
21068     pname = "PPIx-Utils";
21069     version = "0.003";
21070     src = fetchurl {
21071       url = "mirror://cpan/authors/id/D/DB/DBOOK/PPIx-Utils-0.003.tar.gz";
21072       hash = "sha256-KpvM/I6tA74BtnJI/o4VJSIED3mChvpO9EMrfy79uhE=";
21073     };
21074     propagatedBuildInputs = [ BKeywords PPI ];
21075     meta = {
21076       homepage = "https://github.com/Grinnz/PPIx-Utils";
21077       description = "Utility functions for PPI";
21078       license = with lib.licenses; [ artistic1 gpl1Plus ];
21079     };
21080   };
21082   PPR = buildPerlPackage {
21083     pname = "PPR";
21084     version = "0.001008";
21085     src = fetchurl {
21086       url = "mirror://cpan/authors/id/D/DC/DCONWAY/PPR-0.001008.tar.gz";
21087       hash = "sha256-EQ5xwF8uLJDrAfCgaU5VqdvpHIV+SBJeF0LRflzbHkk=";
21088     };
21089     meta = {
21090       description = "Pattern-based Perl Recognizer";
21091       license = with lib.licenses; [ artistic2 ];
21092       maintainers = [ maintainers.artturin ];
21093     };
21094   };
21096   ProcBackground = buildPerlPackage {
21097     pname = "Proc-Background";
21098     version = "1.32";
21099     src = fetchurl {
21100       url = "mirror://cpan/authors/id/N/NE/NERDVANA/Proc-Background-1.32.tar.gz";
21101       hash = "sha256-Wxp4DduSnKQnJeuQtRgyFCX/d4tKE3+G+sldn7nNKWc=";
21102     };
21103     meta = {
21104       description = "Run asynchronous child processes under Unix or Windows";
21105       license = with lib.licenses; [ artistic1 gpl1Plus ];
21106       mainProgram = "timed-process";
21107     };
21108   };
21110   ProcProcessTable = buildPerlPackage {
21111     pname = "Proc-ProcessTable";
21112     version = "0.636";
21113     src = fetchurl {
21114       url = "mirror://cpan/authors/id/J/JW/JWB/Proc-ProcessTable-0.636.tar.gz";
21115       hash = "sha256-lEIk/7APwe81BpYzdwoK/ahiO1x1MtHkq0ip3zlIkP0=";
21116     };
21117     meta = {
21118       description = "Perl extension to access the unix process table";
21119       license = with lib.licenses; [ artistic2 ];
21120     };
21121   };
21123   ProcDaemon = buildPerlPackage {
21124     pname = "Proc-Daemon";
21125     version = "0.23";
21126     src = fetchurl {
21127       url = "mirror://cpan/authors/id/A/AK/AKREAL/Proc-Daemon-0.23.tar.gz";
21128       hash = "sha256-NMC4W3lItDHLq8l87lgINeUVzPQ7rb2DOesQlHQIm2k=";
21129     };
21130     buildInputs = [ ProcProcessTable ];
21131     meta = {
21132       description = "Run Perl program(s) as a daemon process";
21133       homepage = "https://github.com/akreal/Proc-Daemon";
21134       license = with lib.licenses; [ artistic1 gpl1Plus ];
21135     };
21136   };
21138   ProcPIDFile = buildPerlPackage {
21139     pname = "Proc-PID-File";
21140     version = "1.29";
21141     src = fetchurl {
21142       url = "mirror://cpan/authors/id/D/DM/DMITRI/Proc-PID-File-1.29.tar.gz";
21143       hash = "sha256-O87aSd8YLT2BaLcMKlGyBW8v1FlQptBCipmS/TVc1KQ=";
21144     };
21145     meta = {
21146       description = "Manage process id files";
21147       homepage = "https://github.com/dtikhonov/Proc-PID-File";
21148       license = with lib.licenses; [ artistic1 gpl1Plus ];
21149     };
21150   };
21152   ProcFind = buildPerlPackage {
21153     pname = "Proc-Find";
21154     version = "0.051";
21155     src = fetchurl {
21156       url = "mirror://cpan/authors/id/P/PE/PERLANCAR/Proc-Find-0.051.tar.gz";
21157       hash = "sha256-ZNOQceyU17ZqfKtalQJG8P/wE7WiAKY9EXZDKYfloTU=";
21158     };
21159     propagatedBuildInputs = [ ProcProcessTable ];
21160     meta = {
21161       description = "Find processes by name, PID, or some other attributes";
21162       homepage = "https://metacpan.org/release/Proc-Find";
21163       license = with lib.licenses; [ artistic1 gpl1Plus ];
21164     };
21165   };
21167   ProcSafeExec = buildPerlPackage {
21168     pname = "Proc-SafeExec";
21169     version = "1.5";
21170     src = fetchurl {
21171       url = "mirror://cpan/authors/id/B/BI/BILBO/Proc-SafeExec-1.5.tar.gz";
21172       hash = "sha256-G00JCLysVj00p+W+YcXaPu6Y5KbH+mjCZwzFhEtaLXg=";
21173     };
21174     meta = {
21175       description = "Convenient utility for executing external commands in various ways";
21176       license = with lib.licenses; [ gpl1Only bsd2 ];
21177     };
21178   };
21180   ProcSimple = buildPerlPackage {
21181     pname = "Proc-Simple";
21182     version = "1.32";
21183     src = fetchurl {
21184       url = "mirror://cpan/authors/id/M/MS/MSCHILLI/Proc-Simple-1.32.tar.gz";
21185       hash = "sha256-TI8KkksZrXihPac/4PswbTKnudEKMyxSMIf8g6IJqMQ=";
21186     };
21187     meta = {
21188       description = "Launch and control background processes";
21189       license = with lib.licenses; [ artistic1 gpl1Plus ];
21190     };
21191   };
21193   ProcWait3 = buildPerlPackage {
21194     pname = "Proc-Wait3";
21195     version = "0.05";
21196     src = fetchurl {
21197       url = "mirror://cpan/authors/id/C/CT/CTILMES/Proc-Wait3-0.05.tar.gz";
21198       hash = "sha256-GpB/XbaTPcKTm7/v/hnurn7TnvG5eivJtyPy8l+ByvM=";
21199     };
21200     meta = {
21201       description = "Perl extension for wait3 system call";
21202       license = with lib.licenses; [ artistic1 gpl1Plus ];
21203     };
21204   };
21206   ProcWaitStat = buildPerlPackage {
21207     pname = "Proc-WaitStat";
21208     version = "1.00";
21209     src = fetchurl {
21210       url = "mirror://cpan/authors/id/R/RO/ROSCH/Proc-WaitStat-1.00.tar.gz";
21211       hash = "sha256-0HVj9eeHkJ0W5zkCQeh39Jq3ObHenQ4uoaQb0L9EdLw=";
21212     };
21213     propagatedBuildInputs = [ IPCSignal ];
21214     meta = {
21215       description = "Interpret and act on wait() status values";
21216       license = with lib.licenses; [ artistic1 gpl1Plus ];
21217     };
21218   };
21220   PrometheusTiny = buildPerlPackage {
21221     pname = "Prometheus-Tiny";
21222     version = "0.011";
21223     src = fetchurl {
21224       url = "mirror://cpan/authors/id/R/RO/ROBN/Prometheus-Tiny-0.011.tar.gz";
21225       hash = "sha256-jbFIDzyJ64bUFM9fR/7tjfMRKzjEY8uPZbTAZOILHhM=";
21226     };
21227     buildInputs = [ HTTPMessage Plack TestException TestWarn ];
21228     meta = {
21229       description = "Tiny Prometheus client";
21230       homepage = "https://github.com/robn/Prometheus-Tiny";
21231       license = with lib.licenses; [ artistic1 gpl1Plus ];
21232     };
21233   };
21235   PrometheusTinyShared = buildPerlPackage {
21236     pname = "Prometheus-Tiny-Shared";
21237     version = "0.027";
21238     src = fetchurl {
21239       url = "mirror://cpan/authors/id/R/RO/ROBN/Prometheus-Tiny-Shared-0.027.tar.gz";
21240       hash = "sha256-egULqhjKfA0gsoih1L0nJ3E6lFg/Qmskn5XcjUDty9E=";
21241     };
21242     buildInputs = [ DataRandom HTTPMessage Plack TestDifferences TestException TestWarn ];
21243     propagatedBuildInputs = [ HashSharedMem JSONXS PrometheusTiny ];
21244     meta = {
21245       description = "Tiny Prometheus client with a shared database behind it";
21246       homepage = "https://github.com/robn/Prometheus-Tiny-Shared";
21247       license = with lib.licenses; [ artistic1 gpl1Plus ];
21248     };
21249   };
21251   ProtocolRedis = buildPerlPackage {
21252     pname = "Protocol-Redis";
21253     version = "1.0011";
21254     src = fetchurl {
21255       url = "mirror://cpan/authors/id/U/UN/UNDEF/Protocol-Redis-1.0011.tar.gz";
21256       hash = "sha256-fOtr2ABnyQRGXU/R8XFXJDiMm9w3xsLAA6IM5Wm39Og=";
21257     };
21258     meta = {
21259       description = "Redis protocol parser/encoder with asynchronous capabilities";
21260       homepage = "https://github.com/und3f/protocol-redis";
21261       license = with lib.licenses; [ artistic1 gpl1Plus ];
21262       maintainers = [ maintainers.sgo ];
21263     };
21264   };
21266   ProtocolRedisFaster = buildPerlPackage {
21267     pname = "Protocol-Redis-Faster";
21268     version = "0.003";
21269     src = fetchurl {
21270       url = "mirror://cpan/authors/id/D/DB/DBOOK/Protocol-Redis-Faster-0.003.tar.gz";
21271       hash = "sha256-a5r7PelOwczX20+eai6rolSld5AwHBe8sTuz7f4YULc=";
21272     };
21273     propagatedBuildInputs = [ ProtocolRedis ];
21274     meta = {
21275       description = "Optimized pure-perl Redis protocol parser/encoder";
21276       homepage = "https://github.com/Grinnz/Protocol-Redis-Faster";
21277       license = with lib.licenses; [ artistic2 ];
21278       maintainers = [ maintainers.sgo ];
21279     };
21280   };
21282   ProtocolWebSocket = buildPerlModule {
21283     pname = "Protocol-WebSocket";
21284     version = "0.26";
21285     src = fetchurl {
21286       url = "mirror://cpan/authors/id/V/VT/VTI/Protocol-WebSocket-0.26.tar.gz";
21287       hash = "sha256-WDfQNxGnoyVPCv7LfkCeiwk3YGDDiluClejumvdXVSI=";
21288     };
21289     buildInputs = [ ModuleBuildTiny ];
21290     meta = {
21291       description = "WebSocket protocol";
21292       license = with lib.licenses; [ artistic1 gpl1Plus ];
21293     };
21294   };
21296   ProtocolHTTP2 = buildPerlModule {
21297     pname = "Protocol-HTTP2";
21298     version = "1.10";
21300     src = fetchurl {
21301       url = "mirror://cpan/authors/id/C/CR/CRUX/Protocol-HTTP2-1.10.tar.gz";
21302       hash = "sha256-wmoAWPtK+ul+S/DbxkGJ9nEURRXERH89y1l+zQOWpko=";
21303     };
21304     buildInputs = [ AnyEvent ModuleBuildTiny NetSSLeay TestLeakTrace TestSharedFork TestTCP ];
21305     meta = {
21306       description = "HTTP/2 protocol implementation (RFC 7540)";
21307       license = with lib.licenses; [ artistic1 gpl1Plus ];
21308     };
21309   };
21311   PSGI = buildPerlPackage {
21312     pname = "PSGI";
21313     version = "1.102";
21314     src = fetchurl {
21315       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/PSGI-1.102.tar.gz";
21316       hash = "sha256-pWxEZ0CRfahpJcKfxmM7nfg5shz5j2onCGWY7ZDuH0c=";
21317     };
21318     meta = {
21319       description = "Perl Web Server Gateway Interface Specification";
21320       license = with lib.licenses; [ cc-by-sa-25 ];
21321     };
21322   };
21324   PadWalker = buildPerlPackage {
21325     pname = "PadWalker";
21326     version = "2.5";
21327     src = fetchurl {
21328       url = "mirror://cpan/authors/id/R/RO/ROBIN/PadWalker-2.5.tar.gz";
21329       hash = "sha256-B7Jqu4QRRq8yByqNaMuQF2/7F2/ZJo5vL30Qb4F6DNA=";
21330     };
21331     meta = {
21332       description = "Play with other peoples' lexical variables";
21333       license = with lib.licenses; [ artistic1 gpl1Plus ];
21334     };
21335   };
21337   Perl6Junction = buildPerlPackage {
21338     pname = "Perl6-Junction";
21339     version = "1.60000";
21340     src = fetchurl {
21341       url = "mirror://cpan/authors/id/C/CF/CFRANKS/Perl6-Junction-1.60000.tar.gz";
21342       hash = "sha256-0CN16FGX6PkbTLLTM0rpqJ9gAi949c1gdtzU7G+ycWQ=";
21343     };
21344     meta = {
21345       description = "Perl6 style Junction operators in Perl5";
21346       license = with lib.licenses; [ artistic1 gpl1Plus ];
21347     };
21348   };
21350   PerlMinimumVersion = buildPerlPackage {
21351     pname = "Perl-MinimumVersion";
21352     version = "1.40";
21353     src = fetchurl {
21354       url = "mirror://cpan/authors/id/D/DB/DBOOK/Perl-MinimumVersion-1.40.tar.gz";
21355       hash = "sha256-dYmleMtg1wykdVw5WzWStECgzWobB05OzqyTsDGhvpA=";
21356     };
21357     buildInputs = [ TestScript ];
21358     propagatedBuildInputs = [ FileFindRulePerl PerlCritic ];
21359     meta = {
21360       description = "Find a minimum required version of perl for Perl code";
21361       homepage = "https://github.com/neilbowers/Perl-MinimumVersion";
21362       license = with lib.licenses; [ artistic1 gpl1Plus ];
21363       mainProgram = "perlver";
21364     };
21365   };
21367   PerlPrereqScanner = buildPerlPackage {
21368     pname = "Perl-PrereqScanner";
21369     version = "1.100";
21370     src = fetchurl {
21371       url = "mirror://cpan/authors/id/R/RJ/RJBS/Perl-PrereqScanner-1.100.tar.gz";
21372       hash = "sha256-ARgdOKLnr/g40mISJWPFBja6SzZS7l0dT471uj9bGGs=";
21373     };
21374     buildInputs = [ TryTiny ];
21375     propagatedBuildInputs = [ GetoptLongDescriptive ModulePath Moo ParamsUtil PPI StringRewritePrefix TypeTiny namespaceautoclean ];
21376     meta = {
21377       description = "Tool to scan your Perl code for its prerequisites";
21378       homepage = "https://github.com/rjbs/Perl-PrereqScanner";
21379       license = with lib.licenses; [ artistic1 gpl1Plus ];
21380       mainProgram = "scan-perl-prereqs";
21381     };
21382   };
21384   PerlPrereqScannerNotQuiteLite = buildPerlPackage {
21385     pname = "Perl-PrereqScanner-NotQuiteLite";
21386     version = "0.9917";
21387     src = fetchurl {
21388       url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/Perl-PrereqScanner-NotQuiteLite-0.9917.tar.gz";
21389       hash = "sha256-O6fuF9lfDJqNkqLkwYVLZKcH0cAihGIm3Q36Qvfeud0=";
21390     };
21391     propagatedBuildInputs = [ DataDump ModuleCPANfile ModuleFind RegexpTrie URIcpan ];
21392     buildInputs = [ ExtUtilsMakeMakerCPANfile ParseDistname TestFailWarnings TestUseAllModules ];
21393     meta = {
21394       description = "Tool to scan your Perl code for its prerequisites";
21395       license = with lib.licenses; [ artistic1 gpl1Plus ];
21396       mainProgram = "scan-perl-prereqs-nqlite";
21397     };
21398   };
21400   PerlVersion = buildPerlPackage {
21401     pname = "Perl-Version";
21402     version = "1.013";
21403     src = fetchurl {
21404       url = "mirror://cpan/authors/id/B/BD/BDFOY/Perl-Version-1.013.tar.gz";
21405       hash = "sha256-GIdBTRyGidhkyEARQQHgQ+mdfdW5zKaTaaYOgh460Pc=";
21406     };
21407     propagatedBuildInputs = [ FileSlurpTiny ];
21408     meta = {
21409       description = "Parse and manipulate Perl version strings";
21410       license = with lib.licenses; [ artistic1 gpl1Plus ];
21411       mainProgram = "perl-reversion";
21412     };
21413   };
21415   PodAbstract = buildPerlPackage {
21416     pname = "Pod-Abstract";
21417     version = "0.20";
21418     src = fetchurl {
21419       url = "mirror://cpan/authors/id/B/BL/BLILBURNE/Pod-Abstract-0.20.tar.gz";
21420       hash = "sha256-lW73u4hMVUVuL7bn8in5qH3VCmHXAFAMc4248ronf4c=";
21421     };
21422     propagatedBuildInputs = [ IOString TaskWeaken PodParser ];
21423     meta = {
21424       description = "Abstract, tree-based interface to perl POD documents";
21425       license = with lib.licenses; [ artistic1 gpl1Plus ];
21426       mainProgram = "paf";
21427     };
21428   };
21430   PodChecker = buildPerlPackage {
21431     pname = "Pod-Checker";
21432     version = "1.75";
21433     src = fetchurl {
21434       url = "mirror://cpan/authors/id/M/MA/MAREKR/Pod-Checker-1.75.tar.gz";
21435       hash = "sha256-82O1dOxmCvbtvT5dTJ/8UVodRsvxx8ytmkbO0oh5wiE=";
21436     };
21437     meta = {
21438       description = "Verifies POD documentation contents for compliance with the POD format specifications";
21439       license = with lib.licenses; [ artistic1 gpl1Plus ];
21440       mainProgram = "podchecker";
21441     };
21442   };
21444   PodCoverage = buildPerlPackage {
21445     pname = "Pod-Coverage";
21446     version = "0.23";
21447     src = fetchurl {
21448       url = "mirror://cpan/authors/id/R/RC/RCLAMP/Pod-Coverage-0.23.tar.gz";
21449       hash = "sha256-MLegsMlC9Ep1UsDTTpsfLgugtnlVxh47FYnsNpB0sQc=";
21450     };
21451     propagatedBuildInputs = [ DevelSymdump PodParser ];
21452     meta = {
21453       description = "Checks if the documentation of a module is comprehensive";
21454       license = with lib.licenses; [ artistic1 gpl1Plus ];
21455       mainProgram = "pod_cover";
21456     };
21457   };
21459   PodCoverageTrustPod = buildPerlPackage {
21460     pname = "Pod-Coverage-TrustPod";
21461     version = "0.100006";
21462     src = fetchurl {
21463       url = "mirror://cpan/authors/id/R/RJ/RJBS/Pod-Coverage-TrustPod-0.100006.tar.gz";
21464       hash = "sha256-NYrcJQTwOetpCYqpm93mrp3JNTZKjhRPZAXoKTs6fKM=";
21465     };
21466     propagatedBuildInputs = [ PodCoverage PodEventual ];
21467     meta = {
21468       description = "Allow a module's pod to contain Pod::Coverage hints";
21469       homepage = "https://github.com/rjbs/Pod-Coverage-TrustPod";
21470       license = with lib.licenses; [ artistic1 gpl1Plus ];
21471     };
21472   };
21474   PodElemental = buildPerlPackage {
21475     pname = "Pod-Elemental";
21476     version = "0.103006";
21477     src = fetchurl {
21478       url = "mirror://cpan/authors/id/R/RJ/RJBS/Pod-Elemental-0.103006.tar.gz";
21479       hash = "sha256-dQw6edjhgkdYpu99LdB33N3KUDVCuMNOzNWsu3edxCM=";
21480     };
21481     buildInputs = [ TestDeep TestDifferences ];
21482     propagatedBuildInputs = [ MooseXTypes PodEventual StringRewritePrefix StringTruncate ];
21483     meta = {
21484       description = "Work with nestable Pod elements";
21485       homepage = "https://github.com/rjbs/Pod-Elemental";
21486       license = with lib.licenses; [ artistic1 gpl1Plus ];
21487     };
21488   };
21490   PodElementalPerlMunger = buildPerlPackage {
21491     pname = "Pod-Elemental-PerlMunger";
21492     version = "0.200007";
21493     src = fetchurl {
21494       url = "mirror://cpan/authors/id/R/RJ/RJBS/Pod-Elemental-PerlMunger-0.200007.tar.gz";
21495       hash = "sha256-UYleTEGgeere+fJPXcSOMkWlwG40BO15yF+lzv63lak=";
21496     };
21497     buildInputs = [ TestDifferences ];
21498     propagatedBuildInputs = [ PPI PodElemental ];
21499     meta = {
21500       description = "Thing that takes a string of Perl and rewrites its documentation";
21501       homepage = "https://github.com/rjbs/Pod-Elemental-PerlMunger";
21502       license = with lib.licenses; [ artistic1 gpl1Plus ];
21503     };
21504   };
21506   PodEventual = buildPerlPackage {
21507     pname = "Pod-Eventual";
21508     version = "0.094003";
21509     src = fetchurl {
21510       url = "mirror://cpan/authors/id/R/RJ/RJBS/Pod-Eventual-0.094003.tar.gz";
21511       hash = "sha256-fwYMw00RZWzgadsGHj1g7cDKvI+JpKLcfqrpXayFbS0=";
21512     };
21513     propagatedBuildInputs = [ MixinLinewise ];
21514     buildInputs = [ TestDeep ];
21515     meta = {
21516       description = "Read a POD document as a series of trivial events";
21517       homepage = "https://github.com/rjbs/Pod-Eventual";
21518       license = with lib.licenses; [ artistic1 gpl1Plus ];
21519     };
21520   };
21522   PodParser = buildPerlPackage {
21523     pname = "Pod-Parser";
21524     version = "1.66";
21525     src = fetchurl {
21526       url = "mirror://cpan/authors/id/M/MA/MAREKR/Pod-Parser-1.66.tar.gz";
21527       hash = "sha256-IpKKe//mG0UsBbu7j1IW1LnPn+KoSbd2wlUA0k0g33w=";
21528     };
21529     meta = {
21530       description = "Modules for parsing/translating POD format documents";
21531       license = with lib.licenses; [ artistic1 ];
21532       mainProgram = "podselect";
21533     };
21534   };
21536   PodPOM = buildPerlPackage {
21537     pname = "Pod-POM";
21538     version = "2.01";
21539     src = fetchurl {
21540       url = "mirror://cpan/authors/id/N/NE/NEILB/Pod-POM-2.01.tar.gz";
21541       hash = "sha256-G1D7qbvd4+rRkr7roOrd0MYU46+xdD+m//gF9XxW9/Q=";
21542     };
21543     buildInputs = [ FileSlurper TestDifferences TextDiff ];
21544     meta = {
21545       description = "POD Object Model";
21546       homepage = "https://github.com/neilb/Pod-POM";
21547       license = with lib.licenses; [ artistic1 gpl1Plus ];
21548       mainProgram = "pom2";
21549     };
21550   };
21552   PodPOMViewTOC = buildPerlPackage {
21553     pname = "Pod-POM-View-TOC";
21554     version = "0.02";
21555     src = fetchurl {
21556       url = "mirror://cpan/authors/id/P/PE/PERLER/Pod-POM-View-TOC-0.02.tar.gz";
21557       hash = "sha256-zLQicsdQM3nLETE5RiDuUCdtcoRODoDrSwB6nVj4diM=";
21558     };
21559     propagatedBuildInputs = [ PodPOM ];
21560     meta = {
21561       description = "Generate the TOC of a POD with Pod::POM";
21562       license = with lib.licenses; [ artistic1 gpl1Plus ];
21563     };
21564   };
21566   PodSection = buildPerlModule {
21567     pname = "Pod-Section";
21568     version = "0.02";
21569     src = fetchurl {
21570       url = "mirror://cpan/authors/id/K/KT/KTAT/Pod-Section-0.02.tar.gz";
21571       hash = "sha256-ydHXUpLzIYgRhOxWmDwW9Aj9LTEtWnIPj7DSyvpykjg=";
21572     };
21573     propagatedBuildInputs = [ PodAbstract ];
21574     meta = {
21575       description = "Select specified section from Module's POD";
21576       homepage = "https://github.com/ktat/Pod-Section";
21577       license = with lib.licenses; [ artistic1 gpl1Plus ];
21578       mainProgram = "podsection";
21579     };
21580   };
21582   PodLaTeX = buildPerlModule {
21583     pname = "Pod-LaTeX";
21584     version = "0.61";
21585     src = fetchurl {
21586       url = "mirror://cpan/authors/id/T/TJ/TJENNESS/Pod-LaTeX-0.61.tar.gz";
21587       hash = "sha256-FahA6hyKds08hl+78v7DOwNhXA2qUPnIAMVODPBlnUY=";
21588     };
21589     propagatedBuildInputs = [ PodParser ];
21590     meta = {
21591       description = "Convert Pod data to formatted Latex";
21592       homepage = "https://github.com/timj/perl-Pod-LaTeX/tree/master";
21593       license = with lib.licenses; [ artistic1 gpl1Plus ];
21594       mainProgram = "pod2latex";
21595     };
21596   };
21598   podlators = buildPerlPackage {
21599     pname = "podlators";
21600     version = "5.01";
21601     src = fetchurl {
21602       url = "mirror://cpan/authors/id/R/RR/RRA/podlators-5.01.tar.gz";
21603       hash = "sha256-zP0d+fGkfwlbzm1xj61a9A94ziSR8scjlibhW3AgvHE=";
21604     };
21605     preCheck = ''
21606       # remove failing spdx check
21607       rm t/docs/spdx-license.t
21608     '';
21609     meta = {
21610       description = "Convert POD data to various other formats";
21611       homepage = "https://www.eyrie.org/~eagle/software/podlators";
21612       license = with lib.licenses; [ artistic1 gpl1Plus ];
21613     };
21614   };
21616   podlinkcheck = buildPerlPackage {
21617     pname = "podlinkcheck";
21618     version = "15";
21619     src = fetchurl {
21620       url = "mirror://cpan/authors/id/K/KR/KRYDE/podlinkcheck-15.tar.gz";
21621       hash = "sha256-Tjvr7Bv4Lb+FCpSuJqJTZEz1gG7EGvx05D4XEKNzIds=";
21622     };
21623     propagatedBuildInputs = [ FileFindIterator FileHomeDir IPCRun PodParser constant-defer libintl-perl ];
21624     meta = {
21625       description = "Check POD L<> link references";
21626       homepage = "https://user42.tuxfamily.org/podlinkcheck/index.html";
21627       license = with lib.licenses; [ gpl3Plus ];
21628     };
21629   };
21631   prefork = buildPerlPackage {
21632     pname = "prefork";
21633     version = "1.05";
21634     src = fetchurl {
21635       url = "mirror://cpan/authors/id/E/ET/ETHER/prefork-1.05.tar.gz";
21636       hash = "sha256-bYe836Y7KM78+ocIA6UZtlkOPqGcMA+YzssOGQuxkwU=";
21637     };
21638     meta = {
21639       description = "Optimized module loading for forking or non-forking processes";
21640       homepage = "https://github.com/karenetheridge/prefork";
21641       license = with lib.licenses; [ artistic1 gpl1Plus ];
21642     };
21643   };
21645   PodPerldoc = buildPerlPackage {
21646     pname = "Pod-Perldoc";
21647     version = "3.28";
21648     src = fetchurl {
21649       url = "mirror://cpan/authors/id/M/MA/MALLEN/Pod-Perldoc-3.28.tar.gz";
21650       hash = "sha256-zEHmBbjhPECo7mUE/0Y0e1un+9kiA7O7BVQiBRvvxk0=";
21651     };
21652     meta = {
21653       description = "Look up Perl documentation in Pod format";
21654       license = with lib.licenses; [ artistic1 gpl1Plus ];
21655       mainProgram = "perldoc";
21656     };
21657   };
21659   PodPlainer = buildPerlPackage {
21660     pname = "Pod-Plainer";
21661     version = "1.04";
21662     src = fetchurl {
21663       url = "mirror://cpan/authors/id/R/RM/RMBARKER/Pod-Plainer-1.04.tar.gz";
21664       hash = "sha256-G7+/fR1IceWoO6shN+ItCJB4IGgVGQ6x1cEmCjSZRW8=";
21665     };
21666     propagatedBuildInputs = [ PodParser ];
21667     meta = {
21668       description = "Perl extension for converting Pod to old-style Pod";
21669       license = with lib.licenses; [ artistic1 gpl1Plus ];
21670     };
21671   };
21673   PodMarkdown = buildPerlPackage {
21674     pname = "Pod-Markdown";
21675     version = "3.300";
21676     src = fetchurl {
21677       url = "mirror://cpan/authors/id/R/RW/RWSTAUNER/Pod-Markdown-3.300.tar.gz";
21678       hash = "sha256-7HnpkIo2BXScT+tQVHY+toEt0ztUzoWlEzmqfPmZG3k=";
21679     };
21680     buildInputs = [ TestDifferences ];
21681     propagatedBuildInputs = [ URI ];
21682     meta = {
21683       description = "Convert POD to Markdown";
21684       homepage = "https://github.com/rwstauner/Pod-Markdown";
21685       license = with lib.licenses; [ artistic1 gpl1Plus ];
21686       mainProgram = "pod2markdown";
21687     };
21688   };
21690   PodMarkdownGithub = buildPerlPackage {
21691     pname = "Pod-Markdown-Github";
21692     version = "0.04";
21693     src = fetchurl {
21694       url = "mirror://cpan/authors/id/M/MI/MINIMAL/Pod-Markdown-Github-0.04.tar.gz";
21695       hash = "sha256-s34vAJxMzkkk+yPuQxRuUGcilxvqa87S2sFdCAo7xhM=";
21696     };
21697     propagatedBuildInputs = [ PodMarkdown ];
21698     buildInputs = [ TestDifferences ];
21699     meta = {
21700       description = "Convert POD to Github's specific markdown";
21701       license = with lib.licenses; [ artistic1 gpl1Plus ];
21702       mainProgram = "pod2github";
21703     };
21704   };
21706   PodSimple = buildPerlPackage {
21707     pname = "Pod-Simple";
21708     version = "3.45";
21709     src = fetchurl {
21710       url = "mirror://cpan/authors/id/K/KH/KHW/Pod-Simple-3.45.tar.gz";
21711       hash = "sha256-hIO7lc0+QwfWbe8JKjd5+EOvdySCv9wCTj4A0MTbDPo=";
21712     };
21713     meta = {
21714       description = "Framework for parsing Pod";
21715       license = with lib.licenses; [ artistic1 gpl1Plus ];
21716     };
21717   };
21719   PodSpell = buildPerlPackage {
21720     pname = "Pod-Spell";
21721     version = "1.26";
21722     src = fetchurl {
21723       url = "mirror://cpan/authors/id/H/HA/HAARG/Pod-Spell-1.26.tar.gz";
21724       hash = "sha256-LwW/yc+wS5b8v6LIVE0eaukIWW02lsRuDiZVa3UK+78=";
21725     };
21726     propagatedBuildInputs = [ ClassTiny FileShareDir LinguaENInflect PathTiny PodParser ];
21727     buildInputs = [ FileShareDirInstall TestDeep ];
21728     meta = {
21729       description = "Formatter for spellchecking Pod";
21730       homepage = "https://github.com/perl-pod/Pod-Spell";
21731       license = with lib.licenses; [ artistic2 ];
21732       mainProgram = "podspell";
21733     };
21734   };
21736   PodStrip = buildPerlModule {
21737     pname = "Pod-Strip";
21738     version = "1.100";
21739     src = fetchurl {
21740       url = "mirror://cpan/authors/id/D/DO/DOMM/Pod-Strip-1.100.tar.gz";
21741       hash = "sha256-Z1BqZh+pyuzv57pPQvC8FbCm8JZ8eWB3QPbLaXSu1M0=";
21742     };
21743     meta = {
21744       description = "Remove POD from Perl code";
21745       homepage = "https://github.com/domm/Pod-Strip";
21746       license = with lib.licenses; [ artistic1 gpl1Plus ];
21747     };
21748   };
21750   PodTidy = buildPerlModule {
21751     pname = "Pod-Tidy";
21752     version = "0.10";
21753     src = fetchurl {
21754       url = "mirror://cpan/authors/id/J/JH/JHOBLITT/Pod-Tidy-0.10.tar.gz";
21755       hash = "sha256-iG7hQ+p81Tm0O+16KHmJ0Wc211y/ofheLMzq+eiVnb0=";
21756     };
21757     propagatedBuildInputs = [ EncodeNewlines IOString PodWrap TextGlob ];
21758     buildInputs = [ TestCmd ];
21759     meta = {
21760       description = "Reformatting Pod Processor";
21761       license = with lib.licenses; [ artistic1 gpl1Plus ];
21762       mainProgram = "podtidy";
21763     };
21764   };
21766   PodWeaver = buildPerlPackage {
21767     pname = "Pod-Weaver";
21768     version = "4.019";
21769     src = fetchurl {
21770       url = "mirror://cpan/authors/id/R/RJ/RJBS/Pod-Weaver-4.019.tar.gz";
21771       hash = "sha256-aUatHwTq+aoR8kzFRJTh1Xli9Y4FkS82S3T5WT595/c=";
21772     };
21773     buildInputs = [ PPI SoftwareLicense TestDifferences ];
21774     propagatedBuildInputs = [ ConfigMVPReaderINI DateTime ListMoreUtils LogDispatchouli PodElemental ];
21775     meta = {
21776       description = "Weave together a Pod document from an outline";
21777       homepage = "https://github.com/rjbs/Pod-Weaver";
21778       license = with lib.licenses; [ artistic1 gpl1Plus ];
21779     };
21780   };
21782   PodWrap = buildPerlModule {
21783     pname = "Pod-Wrap";
21784     version = "0.01";
21785     src = fetchurl {
21786       url = "mirror://cpan/authors/id/N/NU/NUFFIN/Pod-Wrap-0.01.tar.gz";
21787       hash = "sha256-UMrL4v/7tccNG6XpQn1cit7mGENuxz+W7QU5Iy4si2M=";
21788     };
21789     propagatedBuildInputs = [ PodParser ];
21790     meta = {
21791       description = "Wrap pod paragraphs, leaving verbatim text and code alone";
21792       license = with lib.licenses; [ artistic1 gpl1Plus ];
21793       mainProgram = "podwrap";
21794     };
21795   };
21797   ProbePerl = buildPerlPackage {
21798     pname = "Probe-Perl";
21799     version = "0.03";
21800     src = fetchurl {
21801       url = "mirror://cpan/authors/id/K/KW/KWILLIAMS/Probe-Perl-0.03.tar.gz";
21802       hash = "sha256-2eTSHi53Y4VZBF+gkEaxtv/2xAO5SZKdshPjCr6KPDE=";
21803     };
21804     meta = {
21805       description = "Information about the currently running perl";
21806       license = with lib.licenses; [ artistic1 gpl1Plus ];
21807     };
21808   };
21810   POSIXAtFork = buildPerlPackage {
21811     pname = "POSIX-AtFork";
21812     version = "0.04";
21813     src = fetchurl {
21814       url = "mirror://cpan/authors//id/N/NI/NIKOLAS/POSIX-AtFork-0.04.tar.gz";
21815       hash = "sha256-wuIpOobUhxRLyPe6COfEt2sRsOTf3EGAmEXTDvoH5g4=";
21816     };
21817     buildInputs = [ TestSharedFork ];
21818     meta = {
21819       description = "Hook registrations at fork(2)";
21820       license = with lib.licenses; [ artistic1 gpl1Plus ];
21821     };
21822   };
21824   POSIXstrftimeCompiler = buildPerlModule {
21825     pname = "POSIX-strftime-Compiler";
21826     version = "0.44";
21827     src = fetchurl {
21828       url = "mirror://cpan/authors/id/K/KA/KAZEBURO/POSIX-strftime-Compiler-0.44.tar.gz";
21829       hash = "sha256-39PJc5jc/lHII2uF49woA1Znt2Ux96oKZTXzqlQFs1o=";
21830     };
21831     # We cannot change timezones on the fly.
21832     prePatch = "rm t/04_tzset.t";
21833     buildInputs = [ ModuleBuildTiny ];
21834     meta = {
21835       description = "GNU C library compatible strftime for loggers and servers";
21836       homepage = "https://github.com/kazeburo/POSIX-strftime-Compiler";
21837       license = with lib.licenses; [ artistic1 gpl1Plus ];
21838       broken = stdenv.hostPlatform.isMusl; # Broken for Musl at 2023-01-14, reports:
21839                # Nixpkgs: https://github.com/NixOS/nixpkgs/issues/210749
21840                # Upstream: https://github.com/kazeburo/POSIX-strftime-Compiler/issues/8
21841     };
21842   };
21844   Apprainbarf = buildPerlModule {
21845     pname = "App-rainbarf";
21846     version = "1.4";
21847     src = fetchurl {
21848       url = "mirror://cpan/authors/id/S/SY/SYP/App-rainbarf-1.4.tar.gz";
21849       hash = "sha256-TxOa01+q8t4GI9wLsd2J+lpDHlSL/sh97hlM8OJcyX0=";
21850     };
21851     nativeBuildInputs = lib.optional stdenv.hostPlatform.isDarwin shortenPerlShebang;
21852     postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
21853       shortenPerlShebang $out/bin/rainbarf
21854     '';
21855     meta = {
21856       description = "CPU/RAM/battery stats chart bar for tmux (and GNU screen)";
21857       homepage = "https://github.com/creaktive/rainbarf";
21858       license = with lib.licenses; [ artistic1 gpl1Plus ];
21859       mainProgram = "rainbarf";
21860     };
21861   };
21863   Razor2ClientAgent = buildPerlPackage {
21864     pname = "Razor2-Client-Agent";
21865     version = "2.86";
21866     src = fetchurl {
21867       url = "mirror://cpan/authors/id/T/TO/TODDR/Razor2-Client-Agent-2.86.tar.gz";
21868       hash = "sha256-XgYuAuu2XiS3COfu+lMAxD1vZXvyDQj+xMqKCjuUhF8=";
21869     };
21870     propagatedBuildInputs = [ DigestSHA1 URI ];
21871     meta = {
21872       description = "Collaborative, content-based spam filtering network agent";
21873       homepage = "https://razor.sourceforge.net/";
21874       license = with lib.licenses; [ artistic1 gpl1Plus ];
21875     };
21876   };
21879   Readonly = buildPerlModule {
21880     pname = "Readonly";
21881     version = "2.05";
21882     src = fetchurl {
21883       url = "mirror://cpan/authors/id/S/SA/SANKO/Readonly-2.05.tar.gz";
21884       hash = "sha256-SyNUJJGvAQ1EpcfIYSRHOKzHSrq65riDjTVN+xlGK14=";
21885     };
21886     buildInputs = [ ModuleBuildTiny ];
21887     meta = {
21888       description = "Facility for creating read-only scalars, arrays, hashes";
21889       homepage = "https://github.com/sanko/readonly";
21890       license = with lib.licenses; [ artistic2 ];
21891     };
21892   };
21894   ReadonlyX = buildPerlModule {
21895     pname = "ReadonlyX";
21896     version = "1.04";
21897     src = fetchurl {
21898       url = "mirror://cpan/authors/id/S/SA/SANKO/ReadonlyX-1.04.tar.gz";
21899       hash = "sha256-gbuX26k6xrXMvOBKQsNZDrBFV9dQGHc+4Y1aMPz0gYg=";
21900     };
21901     buildInputs = [ ModuleBuildTiny TestFatal ];
21902     meta = {
21903       description = "Faster facility for creating read-only scalars, arrays, hashes";
21904       homepage = "https://github.com/sanko/readonly";
21905       license = with lib.licenses; [ artistic2 ];
21906     };
21907   };
21909   ReadonlyXS = buildPerlPackage {
21910     pname = "Readonly-XS";
21911     version = "1.05";
21912     src = fetchurl {
21913       url = "mirror://cpan/authors/id/R/RO/ROODE/Readonly-XS-1.05.tar.gz";
21914       hash = "sha256-iuXE6FKZ5ci93RsZby7qOPAHCeDcDLYEVNyRFK4//w0=";
21915     };
21916     propagatedBuildInputs = [ Readonly ];
21917     meta = {
21918       description = "Companion module for Readonly.pm, to speed up read-only scalar variables";
21919       license = with lib.licenses; [ artistic1 gpl1Plus ];
21920     };
21921   };
21923   Redis = buildPerlModule {
21924     pname = "Redis";
21925     version = "2.000";
21926     src = fetchurl {
21927       url = "mirror://cpan/authors/id/D/DA/DAMS/Redis-2.000.tar.gz";
21928       hash = "sha256-FMuJl5chJhW06T+Rbcva+0jQHF6qsgOP5ssXm/lcb+s=";
21929     };
21930     buildInputs = [ IOString ModuleBuildTiny TestDeep TestFatal TestSharedFork TestTCP ];
21931     propagatedBuildInputs = [ IOSocketTimeout TryTiny ];
21932     meta = {
21933       description = "Perl binding for Redis database";
21934       homepage = "https://github.com/PerlRedis/perl-redis";
21935       license = with lib.licenses; [ artistic2 ];
21936     };
21937   };
21939   RefUtil = buildPerlPackage {
21940     pname = "Ref-Util";
21941     version = "0.204";
21942     src = fetchurl {
21943       url = "mirror://cpan/authors/id/A/AR/ARC/Ref-Util-0.204.tar.gz";
21944       hash = "sha256-QV+nPbrPRPPV15wUiIzJlFYnIKtGjm9x+RzR92nxBeE=";
21945     };
21946     meta = {
21947       description = "Utility functions for checking references";
21948       license = with lib.licenses; [ mit ];
21949     };
21950   };
21952   RegexpAssemble = buildPerlPackage {
21953     pname = "Regexp-Assemble";
21954     version = "0.38";
21955     src = fetchurl {
21956       url = "mirror://cpan/authors/id/R/RS/RSAVAGE/Regexp-Assemble-0.38.tgz";
21957       hash = "sha256-oGvn+a4bc8m/1bZmKxQcDXBGnpwZu0QTpu5W+Cra5EI=";
21958     };
21959     meta = {
21960       description = "Assemble multiple Regular Expressions into a single RE";
21961       license = with lib.licenses; [ artistic1 gpl1Plus ];
21962     };
21963   };
21965   RegexpCommon = buildPerlPackage {
21966     pname = "Regexp-Common";
21967     version = "2017060201";
21968     src = fetchurl {
21969       url = "mirror://cpan/authors/id/A/AB/ABIGAIL/Regexp-Common-2017060201.tar.gz";
21970       hash = "sha256-7geFOu4G8xDgQLa/GgGZoY2BiW0yGbmzXJYw0OtpCJs=";
21971     };
21972     meta = {
21973       description = "Provide commonly requested regular expressions";
21974       license = with lib.licenses; [ mit ];
21975     };
21976   };
21978   RegexpCommonnetCIDR = buildPerlPackage {
21979     pname = "Regexp-Common-net-CIDR";
21980     version = "0.03";
21981     src = fetchurl {
21982       url = "mirror://cpan/authors/id/B/BP/BPS/Regexp-Common-net-CIDR-0.03.tar.gz";
21983       hash = "sha256-OWBqV6qyDU9EaDAPLsP6KrVX/MnLeIDsfG4H2AFi2jM=";
21984     };
21985     propagatedBuildInputs = [ RegexpCommon ];
21986     meta = {
21987       description = "Provide patterns for CIDR blocks";
21988       license = with lib.licenses; [ artistic1 gpl1Plus ];
21989     };
21990   };
21992   RegexpCommontime = buildPerlPackage {
21993     pname = "Regexp-Common-time";
21994     version = "0.16";
21995     src = fetchurl {
21996       url = "mirror://cpan/authors/id/M/MA/MANWAR/Regexp-Common-time-0.16.tar.gz";
21997       hash = "sha256-HIEHpQq1XHK/ePsRbJGIxM3xYsGGwVhsH5qu5V/xSso=";
21998     };
21999     propagatedBuildInputs = [ RegexpCommon ];
22000     meta = {
22001       description = "Date and time regexps";
22002       homepage = "https://github.com/manwar/Regexp-Common-time";
22003       license = with lib.licenses; [ artistic2 mit bsd3 ];
22004       maintainers = [ maintainers.artturin ];
22005     };
22006   };
22008   RegexpGrammars = buildPerlModule {
22009     pname = "Regexp-Grammars";
22010     version = "1.058";
22011     src = fetchurl {
22012       url = "mirror://cpan/authors/id/D/DC/DCONWAY/Regexp-Grammars-1.058.tar.gz";
22013       hash = "sha256-6ojVjiUWdPrjm0n007U0LqzLj8tVhWzTBKoaX/PUHJI=";
22014     };
22015     meta = {
22016       description = "Add grammatical parsing features to Perl 5.10 regexes";
22017       license = with lib.licenses; [ artistic1 gpl1Plus ];
22018     };
22019   };
22021   RegexpIPv6 = buildPerlPackage {
22022     pname = "Regexp-IPv6";
22023     version = "0.03";
22024     src = fetchurl {
22025       url = "mirror://cpan/authors/id/S/SA/SALVA/Regexp-IPv6-0.03.tar.gz";
22026       hash = "sha256-1ULRfXXOk2Md6LohVtoOC1inVcQJzUoNJ6OHOiZxLOI=";
22027     };
22028     meta = {
22029       description = "Regular expression for IPv6 addresses";
22030       license = with lib.licenses; [ artistic1 gpl1Plus ];
22031     };
22032   };
22034   RegexpParser = buildPerlPackage {
22035     pname = "Regexp-Parser";
22036     version = "0.23";
22037     src = fetchurl {
22038       url = "mirror://cpan/authors/id/T/TO/TODDR/Regexp-Parser-0.23.tar.gz";
22039       hash = "sha256-9znauN8rBqrlxI+ZcSUbc3BEZKMtB9jQJfPA+GlUTok=";
22040     };
22041     meta = {
22042       description = "Base class for parsing regexes";
22043       homepage = "https://wiki.github.com/toddr/Regexp-Parser";
22044       license = with lib.licenses; [ artistic1 gpl1Plus ];
22045     };
22046   };
22048   RegexpTrie = buildPerlPackage {
22049     pname = "Regexp-Trie";
22050     version = "0.02";
22051     src = fetchurl {
22052       url = "mirror://cpan/authors/id/D/DA/DANKOGAI/Regexp-Trie-0.02.tar.gz";
22053       hash = "sha256-+yv5TtjbwfSpXZ/I9xDLZ7P3lsbvycS7TCz6Prqhxfo=";
22054     };
22055     meta = {
22056       description = "Builds trie-ized regexp";
22057       license = with lib.licenses; [ artistic1 gpl1Plus ];
22058     };
22059   };
22061   RESTClient = buildPerlPackage {
22062     pname = "REST-Client";
22063     version = "281";
22064     src = fetchurl {
22065       url = "mirror://cpan/authors/id/A/AK/AKHUETTEL/REST-Client-281.tar.gz";
22066       hash = "sha256-+hDSGgA35oJgHv5mc4p1j/dSEJSqASKek8iIpnmyyPY=";
22067     };
22068     propagatedBuildInputs = [ LWPProtocolHttps ];
22069     meta = {
22070       description = "Simple client for interacting with RESTful http/https resources";
22071       homepage = "https://github.com/milescrawford/cpan-rest-client";
22072       license = with lib.licenses; [ artistic1 gpl1Plus ];
22073     };
22074   };
22076   RESTUtils = buildPerlModule {
22077     pname = "REST-Utils";
22078     version = "0.6";
22079     src = fetchurl {
22080       url = "mirror://cpan/authors/id/J/JA/JALDHAR/REST-Utils-0.6.tar.gz";
22081       hash = "sha256-1OlK3YetMf71h8RxFceIx88+EiyS85YyWuLmEsZwuf0=";
22082     };
22083     buildInputs = [ TestLongString TestWWWMechanize TestWWWMechanizeCGI ];
22084     meta = {
22085       description = "Utility functions for REST applications";
22086       homepage = "https://jaldhar.github.com/REST-Utils";
22087       license = with lib.licenses; [ artistic1 gpl1Plus ];
22088     };
22089   };
22091   RpcXML = buildPerlPackage {
22092     pname = "RPC-XML";
22093     version = "0.82";
22094     src = fetchurl {
22095       url = "mirror://cpan/authors/id/R/RJ/RJRAY/RPC-XML-0.82.tar.gz";
22096       hash = "sha256-UnnrDRNsUz/4l/aTTDqtbyBQS5l/smBuUsXbvZJ1jnM=";
22097     };
22098     propagatedBuildInputs = [ XMLParser ];
22099     doCheck = false;
22100     meta = {
22101       description = "Data, client and server classes for XML-RPC";
22102       homepage = "https://github.com/rjray/rpc-xml";
22103       license = with lib.licenses; [ artistic1 gpl1Plus ];
22104       mainProgram = "make_method";
22105     };
22106   };
22108   ReturnValue = buildPerlPackage {
22109     pname = "Return-Value";
22110     version = "1.666005";
22111     src = fetchurl {
22112       url = "mirror://cpan/authors/id/R/RJ/RJBS/Return-Value-1.666005.tar.gz";
22113       hash = "sha256-jiJgqWUx6TaGIAuciFDr4AXYjONp/2vHD/GnQFt1UKw=";
22114     };
22115     meta = {
22116       description = "Create context-sensitive return values";
22117       license = with lib.licenses; [ artistic1 gpl1Plus ];
22118     };
22119   };
22121   RoleBasic = buildPerlModule {
22122     pname = "Role-Basic";
22123     version = "0.13";
22124     src = fetchurl {
22125       url = "mirror://cpan/authors/id/O/OV/OVID/Role-Basic-0.13.tar.gz";
22126       hash = "sha256-OKCVnvnxk/925ywyWp6SEbxIaGib0OKwBXePU/i282o=";
22127     };
22128     meta = {
22129       description = "Just roles. Nothing else";
22130       license = with lib.licenses; [ artistic1 gpl1Plus ];
22131     };
22132   };
22134   RoleHasMessage = buildPerlPackage {
22135     pname = "Role-HasMessage";
22136     version = "0.007";
22137     src = fetchurl {
22138       url = "mirror://cpan/authors/id/R/RJ/RJBS/Role-HasMessage-0.007.tar.gz";
22139       hash = "sha256-XiZ6TXYgs2hIEgTIjqIES4sqWP+LBVd/JxeydUwEFM4=";
22140     };
22141     propagatedBuildInputs = [ MooseXRoleParameterized StringErrf ];
22142     meta = {
22143       description = "Thing with a message method";
22144       homepage = "https://github.com/rjbs/Role-HasMessage";
22145       license = with lib.licenses; [ artistic1 gpl1Plus ];
22146     };
22147   };
22149   RoleHooks = buildPerlPackage {
22150     pname = "Role-Hooks";
22151     version = "0.008";
22152     src = fetchurl {
22153       url = "mirror://cpan/authors/id/T/TO/TOBYINK/Role-Hooks-0.008.tar.gz";
22154       hash = "sha256-KNZuoKjcMGt22oP/CHlJPYCPcxhbz5xO03LzlG+1Q+w=";
22155     };
22156     buildInputs = [ TestRequires ];
22157     propagatedBuildInputs = [ ClassMethodModifiers ];
22158     meta = {
22159       homepage = "https://metacpan.org/release/Role-Hooks";
22160       description = "Role callbacks";
22161       license = with lib.licenses; [ artistic1 gpl1Plus ];
22162     };
22163   };
22165   RoleIdentifiable = buildPerlPackage {
22166     pname = "Role-Identifiable";
22167     version = "0.009";
22168     src = fetchurl {
22169       url = "mirror://cpan/authors/id/R/RJ/RJBS/Role-Identifiable-0.009.tar.gz";
22170       hash = "sha256-WnNen3F3+euuBH63uuKbfsKewCCuN2N66lNQ0wwIe3Y=";
22171     };
22172     propagatedBuildInputs = [ Moose ];
22173     meta = {
22174       description = "Thing you can identify somehow";
22175       homepage = "https://github.com/rjbs/Role-Identifiable";
22176       license = with lib.licenses; [ artistic1 gpl1Plus ];
22177     };
22178   };
22180   RoleTiny = buildPerlPackage {
22181     pname = "Role-Tiny";
22182     version = "2.002004";
22183     src = fetchurl {
22184       url = "mirror://cpan/authors/id/H/HA/HAARG/Role-Tiny-2.002004.tar.gz";
22185       hash = "sha256-173unhOKT4OqUtCpgWJWRL2of/FmQt+oRdy0TZokK0U=";
22186     };
22187     meta = {
22188       description = "Roles: a nouvelle cuisine portion size slice of Moose";
22189       license = with lib.licenses; [ artistic1 gpl1Plus ];
22190     };
22191   };
22193   RPCEPCService = buildPerlModule {
22194     pname = "RPC-EPC-Service";
22195     version = "0.0.11";
22196     src = fetchurl {
22197       url = "mirror://cpan/authors/id/K/KI/KIWANAMI/RPC-EPC-Service-v0.0.11.tar.gz";
22198       hash = "sha256-l19BNDZSWPtH+pIZGQU1E625EB8r1CD87+NF8gkSi+M=";
22199     };
22200     propagatedBuildInputs = [ AnyEvent DataSExpression ];
22201     meta = {
22202       description = "Asynchronous Remote Procedure Stack";
22203       license = with lib.licenses; [ artistic1 gpl1Plus ];
22204     };
22205   };
22207     RPM2 = buildPerlModule {
22208     pname = "RPM2";
22209     version = "1.4";
22210     src = fetchurl {
22211       url = "mirror://cpan/authors/id/L/LK/LKUNDRAK/RPM2-1.4.tar.gz";
22212       hash = "sha256-XstCqmkyTm9AiKv64HMTkG5aq/L0bxIE8/HeWRVbtjY=";
22213     };
22214     nativeBuildInputs = [ pkgs.pkg-config ];
22215     buildInputs = [ pkgs.rpm ];
22216     doCheck = false; # Tries to open /var/lib/rpm
22217     meta = {
22218       description = "Perl bindings for the RPM Package Manager API";
22219       license = with lib.licenses; [ artistic1 gpl1Plus ];
22220       platforms = lib.platforms.linux;
22221     };
22222   };
22224   RSSParserLite = buildPerlPackage {
22225     pname = "RSS-Parser-Lite";
22226     version = "0.12";
22227     src = fetchurl {
22228       url = "mirror://cpan/authors/id/T/TF/TFPBL/RSS-Parser-Lite-0.12.tar.gz";
22229       hash = "sha256-idw0vKixqp/uC8QK7d5eLBYCL8eYssOryH3gczG5lbk=";
22230     };
22231     propagatedBuildInputs = [ locallib ];
22232     doCheck = false; /* creates files in HOME */
22233     meta = {
22234       description = "Simple pure perl RSS parser";
22235       license = with lib.licenses; [ artistic1 gpl1Plus ];
22236     };
22237   };
22239   RTClientREST = buildPerlModule {
22240     pname = "RT-Client-REST";
22241     version = "0.72";
22242     src = fetchurl {
22243       url = "mirror://cpan/authors/id/D/DJ/DJZORT/RT-Client-REST-0.72.tar.gz";
22244       hash = "sha256-KPIBWKD3sfNLdM423lvdVimeuUAUBHLISXyVNYIm/bM=";
22245     };
22246     buildInputs = [ CGI HTTPServerSimple TestException ];
22247     propagatedBuildInputs = [ DateTimeFormatDateParse Error LWP ParamsValidate ];
22248     meta = {
22249       description = "Client for RT using REST API";
22250       homepage = "https://github.com/RT-Client-REST/RT-Client-REST";
22251       license = with lib.licenses; [ artistic1 gpl1Plus ];
22252     };
22253   };
22255   SafeIsa = buildPerlPackage {
22256     pname = "Safe-Isa";
22257     version = "1.000010";
22258     src = fetchurl {
22259       url = "mirror://cpan/authors/id/E/ET/ETHER/Safe-Isa-1.000010.tar.gz";
22260       hash = "sha256-h/QUiqD/HV5lJyMyLqt9r6OAHJZ9b5GskUejxGe4pmo=";
22261     };
22262     meta = {
22263       description = "Call isa, can, does and DOES safely on things that may not be objects";
22264       license = with lib.licenses; [ artistic1 gpl1Plus ];
22265     };
22266   };
22268   ScalarListUtils = buildPerlPackage {
22269     pname = "Scalar-List-Utils";
22270     version = "1.63";
22271     src = fetchurl {
22272       url = "mirror://cpan/authors/id/P/PE/PEVANS/Scalar-List-Utils-1.63.tar.gz";
22273       hash = "sha256-yvvfIS9oJ9yaDdO1e27lDoYFhtcZgiijMmLVXFWesqk=";
22274     };
22275     meta = {
22276       description = "Common Scalar and List utility subroutines";
22277       license = with lib.licenses; [ artistic1 gpl1Plus ];
22278     };
22279   };
22281   ScalarString = buildPerlModule {
22282     pname = "Scalar-String";
22283     version = "0.003";
22284     src = fetchurl {
22285       url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Scalar-String-0.003.tar.gz";
22286       hash = "sha256-9UoXybeHE7AsxDrfrfYLSUZ+djTTExfouenpfCbWi1I=";
22287     };
22288     meta = {
22289       description = "String aspects of scalars";
22290       license = with lib.licenses; [ artistic1 gpl1Plus ];
22291     };
22292   };
22294   ScalarType = buildPerlPackage {
22295     pname = "Scalar-Type";
22296     version = "0.3.2";
22297     src = fetchurl {
22298       url = "mirror://cpan/authors/id/D/DC/DCANTRELL/Scalar-Type-0.3.2.tar.gz";
22299       hash = "sha256-WQyv6gz1RZmSoEiFYsDb1vnfdYtfAH8OQ6uhMLRe7oY=";
22300     };
22301     propagatedBuildInputs = [ CaptureTiny TestException ];
22302     meta = {
22303       description = "Figure out what type a scalar is";
22304       license = with lib.licenses; [ artistic1 gpl2Only ];
22305     };
22306   };
22308   SCGI = buildPerlModule {
22309     pname = "SCGI";
22310     version = "0.6";
22311     src = fetchurl {
22312       url = "mirror://cpan/authors/id/V/VI/VIPERCODE/SCGI-0.6.tar.gz";
22313       hash = "sha256-WLeMWvTuReQ38Hro87DZRckf0sAlFW7pFtgRWA+R2aQ=";
22314     };
22315     preConfigure = "export HOME=$(mktemp -d)";
22316     meta = {
22317       description = "This module is for implementing an SCGI interface for an application server";
22318       license = with lib.licenses; [ artistic1 gpl1Plus ];
22319     };
22320   };
22322   ScopeGuard = buildPerlPackage {
22323     pname = "Scope-Guard";
22324     version = "0.21";
22325     src = fetchurl {
22326       url = "mirror://cpan/authors/id/C/CH/CHOCOLATE/Scope-Guard-0.21.tar.gz";
22327       hash = "sha256-jJsb6lxWRI4sP63GXQW+nkaQo4I6gPOdLxD92Pd30ng=";
22328     };
22329     meta = {
22330       description = "Lexically-scoped resource management";
22331       license = with lib.licenses; [ artistic1 gpl1Plus ];
22332     };
22333   };
22335   ScopeUpper = buildPerlPackage {
22336     pname = "Scope-Upper";
22337     version = "0.34";
22338     src = fetchurl {
22339       url = "mirror://cpan/authors/id/V/VP/VPIT/Scope-Upper-0.34.tar.gz";
22340       hash = "sha256-WB2LxRDevQxFal/HlSy3E4rmZ78486d+ltdz3DGWpB4=";
22341     };
22342     meta = {
22343       description = "Act on upper scopes";
22344       homepage = "https://search.cpan.org/dist/Scope-Upper";
22345       license = with lib.licenses; [ artistic1 gpl1Plus ];
22346     };
22347   };
22349   SDL = buildPerlModule {
22350     pname = "SDL";
22351     version = "2.548";
22352     src = fetchurl {
22353       url = "mirror://cpan/authors/id/F/FR/FROGGS/SDL-2.548.tar.gz";
22354       hash = "sha256-JSoZK/qcIHCkiDcH0TnDpF2cRRjM1moeaZtbeVm9T7U=";
22355     };
22356     patches = [
22357       # https://github.com/PerlGameDev/SDL/pull/304
22358       ../development/perl-modules/sdl-modern-perl.patch
22359     ];
22360     perlPreHook = "export LD=$CC";
22361     preCheck = "rm t/core_audiospec.t";
22362     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 ];
22363     propagatedBuildInputs = [ FileShareDir TieSimple ];
22364     meta = {
22365       description = "SDL bindings to Perl";
22366       license = with lib.licenses; [ lgpl21Plus ];
22367     };
22368   };
22370   SearchXapian = buildPerlPackage {
22371     pname = "Search-Xapian";
22372     version = "1.2.25.5";
22373     src = fetchurl {
22374       url = "mirror://cpan/authors/id/O/OL/OLLY/Search-Xapian-1.2.25.5.tar.gz";
22375       hash = "sha256-IE+9xxLWcR/6tmjB9M/AB7Y5qftkrX4ZyyD8EKkQuos=";
22376     };
22377     buildInputs = [ pkgs.xapian DevelLeak ];
22378     meta = {
22379       description = "Perl XS frontend to the Xapian C++ search library";
22380       homepage = "https://xapian.org";
22381       license = with lib.licenses; [ artistic1 gpl1Plus ];
22382     };
22383   };
22385   SeleniumRemoteDriver = buildPerlPackage {
22386     pname = "Selenium-Remote-Driver";
22387     version = "1.49";
22388     src = fetchurl {
22389       url = "mirror://cpan/authors/id/T/TE/TEODESIAN/Selenium-Remote-Driver-1.49.tar.gz";
22390       hash = "sha256-yg7/7s6kK72vOVqI5j5EkoWKAAZAfJTRz8QY1BOX+mI=";
22391     };
22392     buildInputs = [ TestDeep TestFatal TestLWPUserAgent TestMockModule ];
22393     propagatedBuildInputs = [ ArchiveZip Clone FileWhich HTTPMessage IOString JSON LWP Moo SubInstall TestLongString TryTiny XMLSimple namespaceclean ];
22394     meta = {
22395       homepage = "https://github.com/teodesian/Selenium-Remote-Driver";
22396       description = "Perl Client for Selenium Remote Driver";
22397       license = lib.licenses.asl20;
22398     };
22399   };
22401   SerealDecoder = buildPerlPackage {
22402     pname = "Sereal-Decoder";
22403     version = "5.004";
22404     src = fetchurl {
22405       url = "mirror://cpan/authors/id/Y/YV/YVES/Sereal-Decoder-5.004.tar.gz";
22406       hash = "sha256-aO8DFNh9Gm5guw9m/PQ+ssrN6xdUQy9eJeeE450+Z4Q=";
22407     };
22408     buildInputs = [ TestDeep TestDifferences TestLongString TestWarn ];
22409     preBuild = "ls";
22410     meta = {
22411       description = "Fast, compact, powerful binary deserialization";
22412       homepage = "https://github.com/Sereal/Sereal";
22413       license = with lib.licenses; [ artistic1 gpl1Plus ];
22414       maintainers = [ maintainers.thoughtpolice ];
22415     };
22416   };
22418   SerealEncoder = buildPerlPackage {
22419     pname = "Sereal-Encoder";
22420     version = "5.004";
22421     src = fetchurl {
22422       url = "mirror://cpan/authors/id/Y/YV/YVES/Sereal-Encoder-5.004.tar.gz";
22423       hash = "sha256-XlqGzNMtrjTtgJMuy+XGjil1K13g6bCnk6t+sspVyxs=";
22424     };
22425     buildInputs = [ SerealDecoder TestDeep TestDifferences TestLongString TestWarn ];
22426     meta = {
22427       description = "Fast, compact, powerful binary serialization";
22428       homepage = "https://github.com/Sereal/Sereal";
22429       license = with lib.licenses; [ artistic1 gpl1Plus ];
22430       maintainers = [ maintainers.thoughtpolice ];
22431     };
22432   };
22434   Sereal = buildPerlPackage {
22435     pname = "Sereal";
22436     version = "5.004";
22437     src = fetchurl {
22438       url = "mirror://cpan/authors/id/Y/YV/YVES/Sereal-5.004.tar.gz";
22439       hash = "sha256-nCW7euS9c20ksa0dk9dzlbDGXKh0HiZr/Ay+VCJh128=";
22440     };
22441     buildInputs = [ TestDeep TestLongString TestWarn ];
22442     propagatedBuildInputs = [ SerealDecoder SerealEncoder ];
22443     meta = {
22444       description = "Fast, compact, powerful binary (de-)serialization";
22445       license = with lib.licenses; [ artistic1 gpl1Plus ];
22446       maintainers = [ maintainers.thoughtpolice ];
22447     };
22448   };
22450   DeviceSerialPort = buildPerlPackage {
22451     pname = "Device-SerialPort";
22452     version = "1.04";
22453     src = fetchurl {
22454       url = "mirror://cpan/authors/id/C/CO/COOK/Device-SerialPort-1.04.tar.gz";
22455       hash = "sha256-05JWfLObTqYGwOCsr9jtcjIDEbmVM27OX878+bFQ6dc=";
22456     };
22457     meta = {
22458       description = "Linux/POSIX emulation of Win32::SerialPort functions";
22459       license = with lib.licenses; [ artistic1 gpl1Plus ];
22460       mainProgram = "modemtest";
22461     };
22462   };
22464   ServerStarter = buildPerlModule {
22465     pname = "Server-Starter";
22466     version = "0.35";
22467     src = fetchurl {
22468       url = "mirror://cpan/authors/id/K/KA/KAZUHO/Server-Starter-0.35.tar.gz";
22469       hash = "sha256-Z23A1s/0ZIU4Myxjwy+4itCe2GghPqnmLj8Z+tQbnEA=";
22470     };
22471     buildInputs = [ TestRequires TestSharedFork TestTCP ];
22472     doCheck = false; # Tests are slow and unstable
22473     meta = {
22474       description = "Superdaemon for hot-deploying server programs";
22475       homepage = "https://github.com/kazuho/p5-Server-Starter";
22476       license = with lib.licenses; [ artistic1 gpl1Plus ];
22477       mainProgram = "start_server";
22478     };
22479   };
22481   SessionToken = buildPerlPackage {
22482     pname = "Session-Token";
22483     version = "1.503";
22484     src = fetchurl {
22485       url = "mirror://cpan/authors/id/F/FR/FRACTAL/Session-Token-1.503.tar.gz";
22486       hash = "sha256-MsPflu9FXHGHA2Os2VDdxPvISMWU9LxVshtEz5efeaE=";
22487     };
22488     patches = [
22489       # Add final null-byte to tokens. https://github.com/hoytech/Session-Token/pull/3
22490       (fetchpatch {
22491         url = "https://github.com/hoytech/Session-Token/commit/cd64e7b69986054bb715755290811308159b7959.patch";
22492         hash = "sha256-nMQmdvVQW8cQYO0+bLJcdVfSOLVIsongk+71fQ7fQdU=";
22493       })
22494     ];
22495     meta = {
22496       description = "Secure, efficient, simple random session token generation";
22497       homepage = "https://github.com/hoytech/Session-Token";
22498       license = with lib.licenses; [ artistic1 gpl1Plus ];
22499       maintainers = [ maintainers.sgo ];
22500     };
22501   };
22503   SetInfinite = buildPerlPackage {
22504     pname = "Set-Infinite";
22505     version = "0.65";
22506     src = fetchurl {
22507       url = "mirror://cpan/authors/id/F/FG/FGLOCK/Set-Infinite-0.65.tar.gz";
22508       hash = "sha256-B7yIBzRJLeQLSjqLWjMXYvZOabRikCn9mp01eyW4fh8=";
22509     };
22510     meta = {
22511       description = "Infinite Sets math";
22512       license = with lib.licenses; [ artistic1 gpl1Plus ];
22513     };
22514   };
22516   SetIntSpan = buildPerlPackage {
22517     pname = "Set-IntSpan";
22518     version = "1.19";
22519     src = fetchurl {
22520       url = "mirror://cpan/authors/id/S/SW/SWMCD/Set-IntSpan-1.19.tar.gz";
22521       hash = "sha256-EbdUmxPsXYfMaV3Ux3fNApg91f6YZgEod/tTD0iz39A=";
22522     };
22524     meta = {
22525       description = "Manages sets of integers, newsrc style";
22526       license = with lib.licenses; [ artistic1 gpl1Plus ];
22527     };
22528   };
22530   SetObject = buildPerlPackage {
22531     pname = "Set-Object";
22532     version = "1.42";
22533     src = fetchurl {
22534       url = "mirror://cpan/authors/id/R/RU/RURBAN/Set-Object-1.42.tar.gz";
22535       hash = "sha256-0YxaiiM+q70CBs89pbAPzdezf+vxKpPcw9HAJub97EU=";
22536     };
22537     meta = {
22538       description = "Unordered collections (sets) of Perl Objects";
22539       license = with lib.licenses; [ artistic2 ];
22540     };
22541   };
22543   SetScalar = buildPerlPackage {
22544     pname = "Set-Scalar";
22545     version = "1.29";
22546     src = fetchurl {
22547       url = "mirror://cpan/authors/id/D/DA/DAVIDO/Set-Scalar-1.29.tar.gz";
22548       hash = "sha256-o9wVJvPd5y08ZOoAAHuGzmCM3Nk1Z89ubkLcEP3EUR0=";
22549     };
22550     meta = {
22551       description = "Basic set operations";
22552       license = with lib.licenses; [ artistic1 gpl1Plus ];
22553     };
22554   };
22556   SmartComments = buildPerlPackage {
22557     pname = "Smart-Comments";
22558     version = "1.06";
22559     src = fetchurl {
22560       url = "mirror://cpan/authors/id/N/NE/NEILB/Smart-Comments-1.06.tar.gz";
22561       hash = "sha256-3PijEhNKfGuCkmoBFdk7aSRypmLSjNw6m98omEranuM=";
22562     };
22563     meta = {
22564       description = "Comments that do more than just sit there";
22565       homepage = "https://github.com/neilb/Smart-Comments";
22566       license = with lib.licenses; [ artistic1 gpl1Plus ];
22567       maintainers = [ maintainers.sgo ];
22568     };
22569   };
22571   SGMLSpm = buildPerlModule {
22572     pname = "SGMLSpm";
22573     version = "1.1";
22574     src = fetchurl {
22575       url = "mirror://cpan/authors/id/R/RA/RAAB/SGMLSpm-1.1.tar.gz";
22576       hash = "sha256-VQySRSkcjfIkL36I95IaD2NsfuySxkRBjn2Jz+pwsr0=";
22577     };
22578     meta = {
22579       description = "Library for parsing the output from SGMLS and NSGMLS parsers";
22580       license = with lib.licenses; [ gpl2Plus ];
22581       mainProgram = "sgmlspl.pl";
22582     };
22583   };
22585   SignalMask = buildPerlPackage {
22586     pname = "Signal-Mask";
22587     version = "0.008";
22588     src = fetchurl {
22589       url = "mirror://cpan/authors/id/L/LE/LEONT/Signal-Mask-0.008.tar.gz";
22590       hash = "sha256-BD2ZW2sknZ68BMRn2zG7fdwuVfqgjohb2wULHyM2tz8=";
22591     };
22592     propagatedBuildInputs = [ IPCSignal ];
22593     meta = {
22594       description = "Signal masks made easy";
22595       license = with lib.licenses; [ artistic1 gpl1Plus ];
22596     };
22597   };
22599   SnowballNorwegian = buildPerlModule {
22600     pname = "Snowball-Norwegian";
22601     version = "1.2";
22602     src = fetchurl {
22603       url = "mirror://cpan/authors/id/A/AS/ASKSH/Snowball-Norwegian-1.2.tar.gz";
22604       hash = "sha256-Hc+NfyazdSCgENzVGXAU4KWDhe5muDtP3gfqtQrZ5Rg=";
22605     };
22606     meta = {
22607       description = "Porters stemming algorithm for norwegian";
22608       license = with lib.licenses; [ artistic1 gpl1Plus ];
22609       mainProgram = "stemmer-no.pl";
22610     };
22611   };
22613   SnowballSwedish = buildPerlModule {
22614     pname = "Snowball-Swedish";
22615     version = "1.2";
22616     src = fetchurl {
22617       url = "mirror://cpan/authors/id/A/AS/ASKSH/Snowball-Swedish-1.2.tar.gz";
22618       hash = "sha256-76qSNVhZj06IjZelEtYPvMRIHB+cXn3tUnWWKUVg/Ck=";
22619     };
22620     meta = {
22621       description = "Porters stemming algorithm for swedish";
22622       license = with lib.licenses; [ artistic1 gpl1Plus ];
22623       mainProgram = "stemmer-se.pl";
22624     };
22625   };
22627   SOAPLite = buildPerlPackage {
22628     pname = "SOAP-Lite";
22629     version = "1.27";
22630     src = fetchurl {
22631       url = "mirror://cpan/authors/id/P/PH/PHRED/SOAP-Lite-1.27.tar.gz";
22632       hash = "sha256-41kQa6saRaFgRKTC+ASfrQNOXe0VF5kLybX42G3d0wE=";
22633     };
22634     propagatedBuildInputs = [ ClassInspector IOSessionData LWPProtocolHttps TaskWeaken XMLParser ];
22635     buildInputs = [ TestWarn XMLParserLite ];
22636     nativeCheckInputs = [ HTTPDaemon ];
22637     meta = {
22638       description = "Perl's Web Services Toolkit";
22639       license = with lib.licenses; [ artistic1 gpl1Plus ];
22640     };
22641   };
22643   Socket6 = buildPerlPackage {
22644     pname = "Socket6";
22645     version = "0.29";
22646     src = fetchurl {
22647       url = "mirror://cpan/authors/id/U/UM/UMEMOTO/Socket6-0.29.tar.gz";
22648       hash = "sha256-RokV+joE3PZXT8lX7/SVkV4kVpQ0lwyR7o5OFFn8kRQ=";
22649     };
22650     setOutputFlags = false;
22651     buildInputs = [ pkgs.which ];
22652     patches = [ ../development/perl-modules/Socket6-sv_undef.patch ];
22653     meta = {
22654       description = "IPv6 related part of the C socket.h defines and structure manipulators";
22655       license = with lib.licenses; [ bsd3 ];
22656     };
22657   };
22659   SoftwareLicense = buildPerlPackage {
22660     pname = "Software-License";
22661     version = "0.104004";
22662     src = fetchurl {
22663       url = "mirror://cpan/authors/id/L/LE/LEONT/Software-License-0.104004.tar.gz";
22664       hash = "sha256-of2iTsh3UhmAlzgPuTAMFLV0gmJwzFgNr3UONYX8Jww=";
22665     };
22666     buildInputs = [ TryTiny ];
22667     propagatedBuildInputs = [ DataSection TextTemplate ];
22668     meta = {
22669       description = "Packages that provide templated software licenses";
22670       homepage = "https://github.com/Perl-Toolchain-Gang/Software-License";
22671       license = with lib.licenses; [ artistic1 gpl1Plus ];
22672     };
22673   };
22675   SoftwareLicenseCCpack = buildPerlPackage {
22676     pname = "Software-License-CCpack";
22677     version = "1.11";
22678     src = fetchurl {
22679       url = "mirror://cpan/authors/id/B/BB/BBYRD/Software-License-CCpack-1.11.tar.gz";
22680       hash = "sha256-WU9carwhbJXNRYd8Qd7FbSvDDh0DFq04VbCiqo5dU7E=";
22681     };
22682     propagatedBuildInputs = [ SoftwareLicense ];
22683     buildInputs = [ TestCheckDeps ];
22684     meta = {
22685       description = "Software::License pack for Creative Commons' licenses";
22686       homepage = "https://github.com/SineSwiper/Software-License-CCpack";
22687       license = with lib.licenses; [ lgpl3Plus ];
22688     };
22689   };
22691   SortKey = buildPerlPackage {
22692     pname = "Sort-Key";
22693     version = "1.33";
22694     src = fetchurl {
22695       url = "mirror://cpan/authors/id/S/SA/SALVA/Sort-Key-1.33.tar.gz";
22696       hash = "sha256-7WpMz6sJTJzRZPVkAk6YvSHZT0MSzKxNYkbSKzQIGs8=";
22697     };
22698     meta = {
22699       description = "Fastest way to sort anything in Perl";
22700       license = with lib.licenses; [ artistic1 gpl1Plus ];
22701     };
22702   };
22704   SortVersions = buildPerlPackage {
22705     pname = "Sort-Versions";
22706     version = "1.62";
22707     src = fetchurl {
22708       url = "mirror://cpan/authors/id/N/NE/NEILB/Sort-Versions-1.62.tar.gz";
22709       hash = "sha256-v18zB0BuviWBI38CWYLoyE9vZiXdd05FfAP4mU79Lqo=";
22710     };
22711     meta = {
22712       description = "Perl 5 module for sorting of revision-like numbers";
22713       license = with lib.licenses; [ artistic1 gpl1Plus ];
22714     };
22715   };
22717   Specio = buildPerlPackage {
22718     pname = "Specio";
22719     version = "0.48";
22720     src = fetchurl {
22721       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Specio-0.48.tar.gz";
22722       hash = "sha256-DIV5NYDxJ07wgXMHkTHRAfd7IqzOp6+oJVIC8IEWgrI=";
22723     };
22724     propagatedBuildInputs = [ DevelStackTrace EvalClosure MROCompat ModuleRuntime RoleTiny SubQuote TryTiny ];
22725     buildInputs = [ TestFatal TestNeeds ];
22726     meta = {
22727       description = "Type constraints and coercions for Perl";
22728       homepage = "https://metacpan.org/release/Specio";
22729       license = with lib.licenses; [ artistic2 ];
22730     };
22731   };
22733   SpecioLibraryPathTiny = buildPerlPackage {
22734     pname = "Specio-Library-Path-Tiny";
22735     version = "0.05";
22736     src = fetchurl {
22737       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Specio-Library-Path-Tiny-0.05.tar.gz";
22738       hash = "sha256-YN8Lubza6yxmoHi/bfmVTqT5Qz1stoCImULlQsfCelE=";
22739     };
22740     propagatedBuildInputs = [ PathTiny Specio ];
22741     buildInputs = [ Filepushd TestFatal ];
22742     meta = {
22743       description = "Path::Tiny types and coercions for Specio";
22744       homepage = "https://metacpan.org/release/Specio-Library-Path-Tiny";
22745       license = with lib.licenses; [ asl20 ];
22746     };
22747   };
22749   Spiffy = buildPerlPackage {
22750     pname = "Spiffy";
22751     version = "0.46";
22752     src = fetchurl {
22753       url = "mirror://cpan/authors/id/I/IN/INGY/Spiffy-0.46.tar.gz";
22754       hash = "sha256-j1hiCoQgJVxJtsQ8X/WAK9JeTwkkDFHlvysCKDPUHaM=";
22755     };
22756     meta = {
22757       description = "Spiffy Perl Interface Framework For You";
22758       license = with lib.licenses; [ artistic1 gpl1Plus ];
22759     };
22760   };
22762   SpreadsheetCSV = buildPerlPackage {
22763     pname = "Spreadsheet-CSV";
22764     version = "0.20";
22765     src = fetchurl {
22766       url = "mirror://cpan/authors/id/D/DD/DDICK/Spreadsheet-CSV-0.20.tar.gz";
22767       hash = "sha256-BwuyUqj+i5OKHOT8kFJfgz1OYZttRnOwrgojQI1RSrY=";
22768     };
22769     nativeBuildInputs = [ CGI ];
22770     propagatedBuildInputs = [ ArchiveZip SpreadsheetParseExcel TextCSV_XS XMLParser ];
22771     meta = {
22772       description = "Drop-in replacement for Text::CSV_XS with spreadsheet support";
22773       license = with lib.licenses; [ artistic1 gpl1Plus ];
22774     };
22775   };
22777   SpreadsheetParseExcel = buildPerlPackage {
22778     pname = "Spreadsheet-ParseExcel";
22779     version = "0.66";
22780     src = fetchurl {
22781       url = "mirror://cpan/authors/id/J/JM/JMCNAMARA/Spreadsheet-ParseExcel-0.66.tar.gz";
22782       hash = "sha256-v9dqz7qYhgHcBRvac7S7JfaDmgBt2WC2p0AcJJJF9ls=";
22783     };
22784     propagatedBuildInputs = [ CryptRC4 DigestPerlMD5 IOStringy OLEStorage_Lite ];
22785     meta = {
22786       description = "Read information from an Excel file";
22787       homepage = "https://github.com/runrig/spreadsheet-parseexcel";
22788       license = with lib.licenses; [ artistic1 gpl1Plus ];
22789     };
22790   };
22792   SpreadsheetWriteExcel = buildPerlPackage {
22793     pname = "Spreadsheet-WriteExcel";
22794     version = "2.40";
22795     src = fetchurl {
22796       url = "mirror://cpan/authors/id/J/JM/JMCNAMARA/Spreadsheet-WriteExcel-2.40.tar.gz";
22797       hash = "sha256-41aq1oZs8TVzEmjuDpeaGXRDwVoEh46c8+gNAirWwH4=";
22798     };
22799     propagatedBuildInputs = [ OLEStorage_Lite ParseRecDescent ];
22800     meta = {
22801       description = "Write to a cross platform Excel binary file";
22802       license = with lib.licenses; [ artistic1 gpl1Plus ];
22803       mainProgram = "chartex";
22804     };
22805   };
22807   SpreadsheetXLSX = buildPerlPackage {
22808     pname = "Spreadsheet-XLSX";
22809     version = "0.17";
22810     src = fetchurl {
22811       url = "mirror://cpan/authors/id/A/AS/ASB/Spreadsheet-XLSX-0.17.tar.gz";
22812       hash = "sha256-M7d4knz/FjCQZbdOuMRpawNxZg0szf5FvkYFCSrO6XY=";
22813     };
22814     buildInputs = [ TestNoWarnings TestWarnings ];
22815     propagatedBuildInputs = [ ArchiveZip SpreadsheetParseExcel ];
22816     meta = {
22817       homepage = "https://github.com/asb-capfan/Spreadsheet-XLSX";
22818       description = "Perl extension for reading MS Excel 2007 files;";
22819       license = with lib.licenses; [ artistic1 gpl1Plus ];
22820     };
22821   };
22823   SQLAbstract = buildPerlPackage {
22824     pname = "SQL-Abstract";
22825     version = "2.000001";
22826     src = fetchurl {
22827       url = "mirror://cpan/authors/id/M/MS/MSTROUT/SQL-Abstract-2.000001.tar.gz";
22828       hash = "sha256-NaZCZiw0lCDUS+bg732HZep0PrEq0UOZqjojK7lObpo=";
22829     };
22830     buildInputs = [ DataDumperConcise TestDeep TestException TestWarn ];
22831     propagatedBuildInputs = [ HashMerge MROCompat Moo ];
22832     meta = {
22833       description = "Generate SQL from Perl data structures";
22834       license = with lib.licenses; [ artistic1 gpl1Plus ];
22835     };
22836   };
22838   SQLAbstractClassic = buildPerlPackage {
22839     pname = "SQL-Abstract-Classic";
22840     version = "1.91";
22841     src = fetchurl {
22842       url = "mirror://cpan/authors/id/R/RI/RIBASUSHI/SQL-Abstract-Classic-1.91.tar.gz";
22843       hash = "sha256-Tj0d/QlbISMmhYa7BrhpKepXE4jU6UGszL3NoeEI7yg=";
22844     };
22845     buildInputs = [ TestDeep TestException TestWarn ];
22846     propagatedBuildInputs = [ SQLAbstract ];
22847     meta = {
22848       description = "Generate SQL from Perl data structures";
22849       license = with lib.licenses; [ artistic1 gpl1Plus ];
22850     };
22851   };
22853   SQLAbstractLimit = buildPerlPackage {
22854     pname = "SQL-Abstract-Limit";
22855     version = "0.143";
22856     src = fetchurl {
22857       url = "mirror://cpan/authors/id/A/AS/ASB/SQL-Abstract-Limit-0.143.tar.gz";
22858       hash = "sha256-0Yr9eIk72DC6JGXArmozQlRgFZADhk3tO1rc9RGJyuk=";
22859     };
22860     propagatedBuildInputs = [ DBI SQLAbstract ];
22861     buildInputs = [ TestDeep TestException ];
22862     meta = {
22863       description = "Portable LIMIT emulation";
22864       license = with lib.licenses; [ artistic1 gpl1Plus ];
22865     };
22866   };
22868   SQLAbstractPg = buildPerlPackage {
22869     pname = "SQL-Abstract-Pg";
22870     version = "1.0";
22871     src = fetchurl {
22872       url = "mirror://cpan/authors/id/S/SR/SRI/SQL-Abstract-Pg-1.0.tar.gz";
22873       hash = "sha256-Pic2DfN7jYjzxS2smwNJP5vT7v9sjYj5sIbScRVT9Uc=";
22874     };
22875     buildInputs = [ TestDeep ];
22876     propagatedBuildInputs = [ SQLAbstract ];
22877     meta = {
22878       description = "PostgreSQL features for SQL::Abstract";
22879       homepage = "https://mojolicious.org";
22880       license = with lib.licenses; [ artistic2 ];
22881     };
22882   };
22884   SQLSplitStatement = buildPerlPackage {
22885     pname = "SQL-SplitStatement";
22886     version = "1.00023";
22887     src = fetchurl {
22888       url = "mirror://cpan/authors/id/V/VE/VEESH/SQL-SplitStatement-1.00023.tar.gz";
22889       hash = "sha256-GnSEIM0q00HCUk7xGFt273Fylp8XqeS6tvQ3bw3p814=";
22890     };
22891     buildInputs = [ TestDifferences TestException ];
22892     propagatedBuildInputs = [ ClassAccessor ListMoreUtils RegexpCommon ];
22893     meta = {
22894       description = "Split any SQL code into atomic statements";
22895       license = with lib.licenses; [ artistic1 gpl1Plus ];
22896       mainProgram = "sql-split";
22897     };
22898   };
22900   SQLStatement = buildPerlPackage {
22901     pname = "SQL-Statement";
22902     version = "1.414";
22903     src = fetchurl {
22904       url = "mirror://cpan/authors/id/R/RE/REHSACK/SQL-Statement-1.414.tar.gz";
22905       hash = "sha256-3ei9z6ahNu7doGUZug8++uwIXDnbDfnEctwOxs14Gkk=";
22906     };
22907     buildInputs = [ MathBaseConvert TestDeep TextSoundex ];
22908     propagatedBuildInputs = [ Clone ModuleRuntime ParamsUtil ];
22909     meta = {
22910       description = "SQL parsing and processing engine";
22911       license = with lib.licenses; [ artistic1 gpl1Plus ];
22912     };
22913   };
22915   SQLTokenizer = buildPerlPackage {
22916     pname = "SQL-Tokenizer";
22917     version = "0.24";
22918     src = fetchurl {
22919       url = "mirror://cpan/authors/id/I/IZ/IZUT/SQL-Tokenizer-0.24.tar.gz";
22920       hash = "sha256-+qhpvEJlc2QVNqCfU1AuVA1ePjrWp6oaxiXT9pdrQuE=";
22921     };
22922     meta = {
22923       description = "Simple SQL tokenizer";
22924       license = with lib.licenses; [ artistic1 gpl1Plus ];
22925     };
22926   };
22928   SQLTranslator = buildPerlPackage {
22929     pname = "SQL-Translator";
22930     version = "1.63";
22931     src = fetchurl {
22932       url = "mirror://cpan/authors/id/V/VE/VEESH/SQL-Translator-1.63.tar.gz";
22933       hash = "sha256-WIWwTJNJi+MqGX3JcjlHUdXeYJNBiTqWZW3oikJgMTM=";
22934     };
22935     buildInputs = [ FileShareDirInstall JSONMaybeXS TestDifferences TestException XMLWriter YAML ];
22936     propagatedBuildInputs = [ CarpClan DBI FileShareDir Moo PackageVariant ParseRecDescent TryTiny GraphViz GD ];
22938     postPatch = ''
22939       patchShebangs script
22940     '';
22942     nativeBuildInputs = lib.optional stdenv.hostPlatform.isDarwin shortenPerlShebang;
22943     postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
22944       for file in $out/bin/*; do
22945         shortenPerlShebang $file
22946       done
22947     '';
22949     meta = {
22950       description = "SQL DDL transformations and more";
22951       license = with lib.licenses; [ artistic1 gpl1Plus ];
22952       mainProgram = "sqlt";
22953     };
22954   };
22956   PackageVariant = buildPerlPackage {
22957     pname = "Package-Variant";
22958     version = "1.003002";
22959     src = fetchurl {
22960       url = "mirror://cpan/authors/id/M/MS/MSTROUT/Package-Variant-1.003002.tar.gz";
22961       hash = "sha256-su2EnS9M3WZGdRLao/FDJm1t+BDF+ukXWyUsV7wVNtw=";
22962     };
22963     buildInputs = [ TestFatal ];
22964     propagatedBuildInputs = [ ImportInto strictures ];
22965     meta = {
22966       description = "Parameterizable packages";
22967       license = with lib.licenses; [ artistic1 gpl1Plus ];
22968     };
22969   };
22971   SortNaturally = buildPerlPackage {
22972     pname = "Sort-Naturally";
22973     version = "1.03";
22974     src = fetchurl {
22975       url = "mirror://cpan/authors/id/B/BI/BINGOS/Sort-Naturally-1.03.tar.gz";
22976       hash = "sha256-6qscXIdXWngmCJMEqx+P+n8Y5s2LOTdiPpmOhl7B50Y=";
22977     };
22978     meta = {
22979       description = "Sort lexically, but sort numeral parts numerically";
22980       license = with lib.licenses; [ artistic1 gpl1Plus ];
22981     };
22982   };
22984   Starlet = buildPerlPackage {
22985     pname = "Starlet";
22986     version = "0.31";
22987     src = fetchurl {
22988       url = "mirror://cpan/authors/id/K/KA/KAZUHO/Starlet-0.31.tar.gz";
22989       hash = "sha256-uWA7jmKIDLRYL2p5Oer+xl5u/T2QDyx900Ll9MaNYtg=";
22990     };
22991     buildInputs = [ LWP TestSharedFork TestTCP ];
22992     propagatedBuildInputs = [ ParallelPrefork Plack ServerStarter ];
22993     doCheck = !stdenv.hostPlatform.isDarwin;
22994     meta = {
22995       description = "Simple, high-performance PSGI/Plack HTTP server";
22996       license = with lib.licenses; [ artistic1 gpl1Plus ];
22997     };
22998   };
23000   Starman = buildPerlModule {
23001     pname = "Starman";
23002     version = "0.4017";
23003     src = fetchurl {
23004       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Starman-0.4017.tar.gz";
23005       hash = "sha256-b/q5FfMj9gCJ4+v4Urm5cH1pFyZt+K/XNw+sBL/f7k4=";
23006     };
23007     buildInputs = [ LWP ModuleBuildTiny TestRequires TestTCP ];
23008     nativeBuildInputs = lib.optional stdenv.hostPlatform.isDarwin shortenPerlShebang;
23009     propagatedBuildInputs = [ DataDump HTTPParserXS NetServer Plack NetServerSSPrefork IOSocketINET6 ];
23010     postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
23011       shortenPerlShebang $out/bin/starman
23012     '';
23014     doCheck = false; # binds to various TCP ports
23015     meta = {
23016       description = "High-performance preforking PSGI/Plack web server";
23017       homepage = "https://github.com/miyagawa/Starman";
23018       license = with lib.licenses; [ artistic1 gpl1Plus ];
23019       mainProgram = "starman";
23020     };
23021   };
23023   StatisticsBasic = buildPerlPackage {
23024     pname = "Statistics-Basic";
23025     version = "1.6611";
23026     src = fetchurl {
23027       url = "mirror://cpan/authors/id/J/JE/JETTERO/Statistics-Basic-1.6611.tar.gz";
23028       hash = "sha256-aFXOVhX9Phr0z8RRqb9E/ymjFAtOcTADTx8K8lEalPs=";
23029     };
23030     propagatedBuildInputs = [ NumberFormat ];
23031     meta = {
23032       description = "Collection of very basic statistics modules";
23033       license = with lib.licenses; [ lgpl2Only ];
23034     };
23035   };
23037   StatisticsCaseResampling = buildPerlPackage {
23038     pname = "Statistics-CaseResampling";
23039     version = "0.15";
23040     src = fetchurl {
23041       url = "mirror://cpan/authors/id/S/SM/SMUELLER/Statistics-CaseResampling-0.15.tar.gz";
23042       hash = "sha256-hRxDvW8Q0yKJUipQxqIJw7JGz9PrVmdz5oYe2gSkkIc=";
23043     };
23044     meta = {
23045       description = "Efficient resampling and calculation of medians with confidence intervals";
23046       license = with lib.licenses; [ artistic1 gpl1Plus ];
23047     };
23048   };
23050   StatisticsChiSquare = buildPerlPackage {
23051     pname = "Statistics-ChiSquare";
23052     version = "1.0000";
23053     src = fetchurl {
23054       url = "mirror://cpan/authors/id/D/DC/DCANTRELL/Statistics-ChiSquare-1.0000.tar.gz";
23055       hash = "sha256-JVpaODNtBI3bkHciJpHgAJhOkHquCaTqaVqc/Umh3dA=";
23056     };
23057     meta = {
23058       description = "Implements the Chi Squared test, using pre-computed tables";
23059       license = with lib.licenses; [ artistic1 gpl1Plus ];
23060     };
23061   };
23063   StatisticsDescriptive = buildPerlModule {
23064     pname = "Statistics-Descriptive";
23065     version = "3.0801";
23066     src = fetchurl {
23067       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Statistics-Descriptive-3.0801.tar.gz";
23068       hash = "sha256-BHtwpj/cqpFhaOD/LVjhVeDrvGjtTMvXOnIT3KMCj2U=";
23069     };
23070     propagatedBuildInputs = [ ListMoreUtils ];
23071     meta = {
23072       description = "Module of basic descriptive statistical functions";
23073       homepage = "https://metacpan.org/release/Statistics-Descriptive";
23074       license = with lib.licenses; [ artistic1 gpl1Plus ];
23075     };
23076   };
23078   StatisticsDistributions = buildPerlPackage {
23079     pname = "Statistics-Distributions";
23080     version = "1.02";
23081     src = fetchurl {
23082       url = "mirror://cpan/authors/id/M/MI/MIKEK/Statistics-Distributions-1.02.tar.gz";
23083       hash = "sha256-+Z85ar+EyjeqLOoxrUXXOq7kh1LJmRNsS5E4lCjXM8g=";
23084     };
23085     meta = {
23086       description = "Perl module for calculating critical values and upper probabilities of common statistical distributions";
23087       license = with lib.licenses; [ artistic1 gpl1Plus ];
23088     };
23089   };
23091   StatisticsTTest = buildPerlPackage {
23092     pname = "Statistics-TTest";
23093     version = "1.1.0";
23094     src = fetchurl {
23095       url = "mirror://cpan/authors/id/Y/YU/YUNFANG/Statistics-TTest-1.1.0.tar.gz";
23096       hash = "sha256-stlZ0ljHKEebfYYu4BRuWtjuqYm+JWN8vFdlUv9zcWY=";
23097     };
23098     propagatedBuildInputs = [ StatisticsDescriptive StatisticsDistributions ];
23099     meta = {
23100       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";
23101       license = with lib.licenses; [ artistic1 gpl1Plus ];
23102     };
23103   };
23105   StreamBuffered = buildPerlPackage {
23106     pname = "Stream-Buffered";
23107     version = "0.03";
23108     src = fetchurl {
23109       url = "mirror://cpan/authors/id/D/DO/DOY/Stream-Buffered-0.03.tar.gz";
23110       hash = "sha256-my1DkLXeawz0VY5K0EMXpzxeE90ZrykUnE5Hw3+yQjs=";
23111     };
23112     meta = {
23113       description = "Temporary buffer to save bytes";
23114       homepage = "https://github.com/plack/Stream-Buffered";
23115       license = with lib.licenses; [ artistic1 gpl1Plus ];
23116     };
23117   };
23119   strictures = buildPerlPackage {
23120     pname = "strictures";
23121     version = "2.000006";
23122     src = fetchurl {
23123       url = "mirror://cpan/authors/id/H/HA/HAARG/strictures-2.000006.tar.gz";
23124       hash = "sha256-CdV5dKbRsjgMgChw/tRxEI9RFw2oFFjidRhZ8nFPjVc=";
23125     };
23126     meta = {
23127       description = "Turn on strict and make most warnings fatal";
23128       homepage = "http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=p5sagit/strictures.git";
23129       license = with lib.licenses; [ artistic1 gpl1Plus ];
23130     };
23131   };
23133   StringApprox = buildPerlPackage {
23134     pname = "String-Approx";
23135     version = "3.28";
23136     src = fetchurl {
23137       url = "mirror://cpan/authors/id/J/JH/JHI/String-Approx-3.28.tar.gz";
23138       hash = "sha256-QyAedi2GmcsKwsB2SlRUvcIwbAdxAU1sj7qCFIBjE0I=";
23139     };
23140     meta = {
23141       description = "Perl extension for approximate matching (fuzzy matching)";
23142       license = with lib.licenses; [ artistic2 gpl2Only ];
23143     };
23144   };
23146   StringBinaryInterpolation = buildPerlPackage {
23147     pname = "String-Binary-Interpolation";
23148     version = "1.0.0";
23149     src = fetchurl {
23150       url = "mirror://cpan/authors/id/D/DC/DCANTRELL/String-Binary-Interpolation-1.0.0.tar.gz";
23151       hash = "sha256-2lXYmCTBrdniqpWP8OpILyaCLkJI7TOo1rT7vXdYivE=";
23152     };
23153     meta = {
23154       description = "Make it easier to interpolate binary bytes into a string";
23155       license = with lib.licenses; [ artistic2 gpl2Only ];
23156     };
23157   };
23159   StringCamelCase = buildPerlPackage {
23160     pname = "String-CamelCase";
23161     version = "0.04";
23162     src = fetchurl {
23163       url = "mirror://cpan/authors/id/H/HI/HIO/String-CamelCase-0.04.tar.gz";
23164       hash = "sha256-icPevO7Orodk9F10Aj+Pvu4tiDma9nVB29qgsr8nEak=";
23165     };
23166     meta = {
23167       description = "Camelcase, de-camelcase";
23168       license = with lib.licenses; [ artistic1 gpl1Plus ];
23169     };
23170   };
23172   StringCompareConstantTime = buildPerlPackage {
23173     pname = "String-Compare-ConstantTime";
23174     version = "0.321";
23175     src = fetchurl {
23176       url = "mirror://cpan/authors/id/F/FR/FRACTAL/String-Compare-ConstantTime-0.321.tar.gz";
23177       hash = "sha256-Cya6KxIdgARCXUSF0dRvWQAcg3Y6omYk3/YiDXc11/c=";
23178     };
23179     meta = {
23180       description = "Timing side-channel protected string compare";
23181       license = with lib.licenses; [ artistic1 gpl1Plus ];
23182     };
23183   };
23185   StringCRC32 = buildPerlPackage {
23186     pname = "String-CRC32";
23187     version = "2.100";
23188     src = fetchurl {
23189       url = "mirror://cpan/authors/id/L/LE/LEEJO/String-CRC32-2.100.tar.gz";
23190       hash = "sha256-lwYJOy0Gi2cV01tMWPUVWON5YAgyAhKfuwClfhmnRxM=";
23191     };
23192     meta = {
23193       description = "Perl interface for cyclic redundancy check generation";
23194       license = with lib.licenses; [ publicDomain ];
23195     };
23196   };
23198   StringDiff = buildPerlModule {
23199     pname = "String-Diff";
23200     version = "0.07";
23201     src = fetchurl {
23202       url = "mirror://cpan/authors/id/Y/YA/YAPPO/String-Diff-0.07.tar.gz";
23203       hash = "sha256-chW2fLwyJuLQ4Ys47FjJO+C/YJAnhpi++VU0iCbNCvM=";
23204     };
23205     patches = [
23206       (fetchpatch {
23207         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";
23208         hash = "sha256-RcYsn0jVa9sSF8iYPuaFTWx00LrF3m7hH9e6fC7j72U=";
23209       })
23210     ];
23211     buildInputs = [ TestBase ModuleBuildTiny ModuleInstallGithubMeta ModuleInstallRepository ModuleInstallReadmeFromPod ModuleInstallReadmeMarkdownFromPod YAML ];
23212     propagatedBuildInputs = [ AlgorithmDiff ];
23213     meta = {
23214       description = "Simple diff to String";
23215       homepage = "https://github.com/yappo/p5-String-Diff";
23216       license = with lib.licenses; [ artistic1 gpl1Plus ];
23217       maintainers = [ maintainers.sgo ];
23218     };
23219   };
23221   StringErrf = buildPerlPackage {
23222     pname = "String-Errf";
23223     version = "0.009";
23224     src = fetchurl {
23225       url = "mirror://cpan/authors/id/R/RJ/RJBS/String-Errf-0.009.tar.gz";
23226       hash = "sha256-4f7b+bT9ZLZOqBA43bdqTGzYX12xW8IfEGVqKYNJ3B8=";
23227     };
23228     buildInputs = [ JSONMaybeXS TimeDate ];
23229     propagatedBuildInputs = [ StringFormatter ];
23230     meta = {
23231       description = "Simple sprintf-like dialect";
23232       homepage = "https://github.com/rjbs/String-Errf";
23233       license = with lib.licenses; [ artistic1 gpl1Plus ];
23234     };
23235   };
23237   StringEscape = buildPerlPackage {
23238     pname = "String-Escape";
23239     version = "2010.002";
23240     src = fetchurl {
23241       url = "mirror://cpan/authors/id/E/EV/EVO/String-Escape-2010.002.tar.gz";
23242       hash = "sha256-/WRfizNiJNIKha5/saOEV26sMp963DkjwyQego47moo=";
23243     };
23244     meta = {
23245       description = "Backslash escapes, quoted phrase, word elision, etc";
23246       license = with lib.licenses; [ artistic1 gpl1Plus ];
23247     };
23248   };
23250   StringFlogger = buildPerlPackage {
23251     pname = "String-Flogger";
23252     version = "1.101246";
23253     src = fetchurl {
23254       url = "mirror://cpan/authors/id/R/RJ/RJBS/String-Flogger-1.101246.tar.gz";
23255       hash = "sha256-FfhJHgeBi7PPqfa9Oqv2QwuptOMJ8YEUNYvj2Bv/Og8=";
23256     };
23257     propagatedBuildInputs = [ JSONMaybeXS SubExporter ];
23258     meta = {
23259       description = "String munging for loggers";
23260       homepage = "https://github.com/rjbs/String-Flogger";
23261       license = with lib.licenses; [ artistic1 gpl1Plus ];
23262     };
23263   };
23265   StringFormat = buildPerlPackage {
23266     pname = "String-Format";
23267     version = "1.18";
23268     src = fetchurl {
23269       url = "mirror://cpan/authors/id/S/SR/SREZIC/String-Format-1.18.tar.gz";
23270       hash = "sha256-nkF6j42epiO+6i0TpHwNWmlvyGAsBQm4Js1F+Xt253g=";
23271     };
23272     meta = {
23273       description = "sprintf-like string formatting capabilities with arbitrary format definitions";
23274       license = with lib.licenses; [ gpl2Only ];
23275     };
23276   };
23278   StringFormatter = buildPerlPackage {
23279     pname = "String-Formatter";
23280     version = "1.235";
23281     src = fetchurl {
23282       url = "mirror://cpan/authors/id/R/RJ/RJBS/String-Formatter-1.235.tar.gz";
23283       hash = "sha256-CCNqkTuRHOZSzwhZjnwH0t8/Np/Ee/QBpIWlBKFmB4M=";
23284     };
23285     propagatedBuildInputs = [ SubExporter ];
23286     meta = {
23287       description = "Build sprintf-like functions of your own";
23288       license = with lib.licenses; [ gpl2Only ];
23289     };
23290   };
23292   StringInterpolate = buildPerlPackage {
23293     pname = "String-Interpolate";
23294     version = "0.33";
23295     src = fetchurl {
23296       url = "mirror://cpan/authors/id/N/NE/NEILB/String-Interpolate-0.33.tar.gz";
23297       hash = "sha256-qH7Qk4kH0xr32qltc6BjL1xko40d4N6HxLRCWDEpxBM=";
23298     };
23299     meta = {
23300       # https://metacpan.org/pod/String::Interpolate
23301       description = "String::Interpolate - Wrapper for builtin the Perl interpolation engine";
23302       license = with lib.licenses; [ gpl1Plus ];
23303     };
23304     propagatedBuildInputs = [ PadWalker SafeHole ];
23305   };
23307   StringInterpolateNamed = buildPerlPackage {
23308     pname = "String-Interpolate-Named";
23309     version = "1.03";
23310     src = fetchurl {
23311       url = "mirror://cpan/authors/id/J/JV/JV/String-Interpolate-Named-1.03.tar.gz";
23312       hash = "sha256-on13VgcnX2jtkqQT85SsAJLn3hzZPWJHnUf7pwF6Jtw=";
23313     };
23314     meta = {
23315       description = "Interpolated named arguments in string";
23316       license = with lib.licenses; [ artistic1 gpl1Plus ];
23317     };
23318   };
23320   StringMkPasswd = buildPerlPackage {
23321     pname = "String-MkPasswd";
23322     version = "0.05";
23323     src = fetchurl {
23324       url = "mirror://cpan/authors/id/C/CG/CGRAU/String-MkPasswd-0.05.tar.gz";
23325       hash = "sha256-UxD4NGAEVHUHFma1Qj2y8KqC1mhcgC7Hq+bCxBBjm5Y=";
23326     };
23327     meta = {
23328       description = "Random password generator";
23329       homepage = "https://github.com/sirhc/string-mkpasswd";
23330       license = with lib.licenses; [ artistic1 gpl1Plus ];
23331       mainProgram = "mkpasswd.pl";
23332     };
23333   };
23335   StringRandom = buildPerlModule {
23336     pname = "String-Random";
23337     version = "0.32";
23338     src = fetchurl {
23339       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/String-Random-0.32.tar.gz";
23340       hash = "sha256-nZPGeaNP+ibTtPoIN8rtHNLmfXZXKBi5HpfepzRwUkY=";
23341     };
23342     meta = {
23343       description = "Perl module to generate random strings based on a pattern";
23344       license = with lib.licenses; [ artistic1 gpl1Plus ];
23345     };
23346   };
23348   StringRewritePrefix = buildPerlPackage {
23349     pname = "String-RewritePrefix";
23350     version = "0.009";
23351     src = fetchurl {
23352       url = "mirror://cpan/authors/id/R/RJ/RJBS/String-RewritePrefix-0.009.tar.gz";
23353       hash = "sha256-RJGL7JalSvjKN8qJfkNnCewoSgeyhRbvPM5GZoaWRtU=";
23354     };
23355     propagatedBuildInputs = [ SubExporter ];
23356     meta = {
23357       description = "Rewrite strings based on a set of known prefixes";
23358       homepage = "https://github.com/rjbs/String-RewritePrefix";
23359       license = with lib.licenses; [ artistic1 gpl1Plus ];
23360     };
23361   };
23363   StringShellQuote = buildPerlPackage {
23364     pname = "String-ShellQuote";
23365     version = "1.04";
23366     src = fetchurl {
23367       url = "mirror://cpan/authors/id/R/RO/ROSCH/String-ShellQuote-1.04.tar.gz";
23368       hash = "sha256-5gY2UDjOINZG0lXIBe/90y+GR18Y1DynVFWwDk2G3TU=";
23369     };
23370     doCheck = !stdenv.hostPlatform.isDarwin;
23371     meta = {
23372       description = "Quote strings for passing through the shell";
23373       license = with lib.licenses; [ artistic1 gpl1Plus ];
23374       mainProgram = "shell-quote";
23375     };
23376   };
23378   StringSimilarity = buildPerlPackage {
23379     pname = "String-Similarity";
23380     version = "1.04";
23381     src = fetchurl {
23382       url = "mirror://cpan/authors/id/M/ML/MLEHMANN/String-Similarity-1.04.tar.gz";
23383       hash = "sha256-H47aIpC7y3Ia7wzhsL/hOwEgHdPaphijN/LwLikcMkU=";
23384     };
23385     doCheck = true;
23386     meta = {
23387       description = "Calculate the similarity of two strings";
23388       license = with lib.licenses; [ gpl2Only ];
23389     };
23390   };
23392   ShellCommand = buildPerlPackage {
23393     pname = "Shell-Command";
23394     version = "0.06";
23395     src = fetchurl {
23396       url = "mirror://cpan/authors/id/F/FL/FLORA/Shell-Command-0.06.tar.gz";
23397       hash = "sha256-8+Te71d5RL5G+nr1rBGKwoKJEXiLAbx2p0SVNVYW7NE=";
23398     };
23399     meta = {
23400       description = "Cross-platform functions emulating common shell commands";
23401       license = with lib.licenses; [ artistic1 gpl1Plus ];
23402     };
23403   };
23405   ShellConfigGenerate = buildPerlPackage {
23406     pname = "Shell-Config-Generate";
23407     version = "0.34";
23408     src = fetchurl {
23409       url = "mirror://cpan/authors/id/P/PL/PLICEASE/Shell-Config-Generate-0.34.tar.gz";
23410       hash = "sha256-hPRR8iIV3WjpwYqj992wOoIAfRZs+toAPQ8Wb1ceBWI=";
23411     };
23412     buildInputs = [ Test2Suite ];
23413     propagatedBuildInputs = [ ShellGuess ];
23414     meta = {
23415       description = "Portably generate config for any shell";
23416       homepage = "https://metacpan.org/pod/Shell::Config::Generate";
23417       license = with lib.licenses; [ artistic1 gpl1Plus ];
23418     };
23419   };
23421   ShellGuess = buildPerlPackage {
23422     pname = "Shell-Guess";
23423     version = "0.09";
23424     src = fetchurl {
23425       url = "mirror://cpan/authors/id/P/PL/PLICEASE/Shell-Guess-0.09.tar.gz";
23426       hash = "sha256-QGn6JjfkQxGO2VbXECMdFmgj0jsqZOuHuKRocuhloSs=";
23427     };
23428     meta = {
23429       description = "Make an educated guess about the shell in use";
23430       homepage = "https://metacpan.org/pod/Shell::Guess";
23431       license = with lib.licenses; [ artistic1 gpl1Plus ];
23432     };
23433   };
23435   StringToIdentifierEN = buildPerlPackage {
23436     pname = "String-ToIdentifier-EN";
23437     version = "0.12";
23438     src = fetchurl {
23439       url = "mirror://cpan/authors/id/R/RK/RKITOVER/String-ToIdentifier-EN-0.12.tar.gz";
23440       hash = "sha256-OvuEIykwuaxbGto4PI3VkHrk4jrsWrsBb3D56AU83Io=";
23441     };
23442     propagatedBuildInputs = [ LinguaENInflectPhrase TextUnidecode namespaceclean ];
23443     meta = {
23444       description = "Convert Strings to English Program Identifiers";
23445       license = with lib.licenses; [ artistic1 gpl1Plus ];
23446     };
23447   };
23449   StringTruncate = buildPerlPackage {
23450     pname = "String-Truncate";
23451     version = "1.100603";
23452     src = fetchurl {
23453       url = "mirror://cpan/authors/id/R/RJ/RJBS/String-Truncate-1.100603.tar.gz";
23454       hash = "sha256-q0VgLM4t2VFe37sublzeGc3VSY1hojr9jEbB8R+O7GI=";
23455     };
23456     propagatedBuildInputs = [ SubExporter ];
23457     meta = {
23458       description = "Module for when strings are too long to be displayed in...";
23459       homepage = "https://github.com/rjbs/String-Truncate";
23460       license = with lib.licenses; [ artistic1 gpl1Plus ];
23461     };
23462   };
23464   StringTT = buildPerlPackage {
23465     pname = "String-TT";
23466     version = "0.03";
23467     src = fetchurl {
23468       url = "mirror://cpan/authors/id/B/BO/BOBTFISH/String-TT-0.03.tar.gz";
23469       hash = "sha256-92BfCgT5+hI9Ot9PNFeaFMkLfai5O2XS5IkyzNPJUqs=";
23470     };
23471     buildInputs = [ TestException TestSimple13 TestTableDriven ];
23472     propagatedBuildInputs = [ PadWalker SubExporter TemplateToolkit ];
23473     meta = {
23474       description = "Use TT to interpolate lexical variables";
23475       license = with lib.licenses; [ artistic1 gpl1Plus ];
23476     };
23477   };
23479   StringUtil = buildPerlModule {
23480     pname = "String-Util";
23481     version = "1.34";
23482     src = fetchurl {
23483       url = "mirror://cpan/authors/id/B/BA/BAKERSCOT/String-Util-1.34.tar.gz";
23484       hash = "sha256-MZzozWZTQeVlIfoVXZYqGTKOkNn3A2dlklzN4mclxGk=";
23485     };
23486     buildInputs = [ ModuleBuildTiny ];
23487     meta = {
23488       description = "String processing utility functions";
23489       homepage = "https://github.com/scottchiefbaker/String-Util";
23490       license = with lib.licenses; [ artistic1 gpl1Plus ];
23491     };
23492   };
23494   strip-nondeterminism = callPackage ../development/perl-modules/strip-nondeterminism { };
23496   StructDumb = buildPerlModule {
23497     pname = "Struct-Dumb";
23498     version = "0.14";
23499     src = fetchurl {
23500       url = "mirror://cpan/authors/id/P/PE/PEVANS/Struct-Dumb-0.14.tar.gz";
23501       hash = "sha256-E8FIU2sQ4oxuC04TLynkym5ptXSQWcRBV6J+hKVFlDY=";
23502     };
23503     buildInputs = [ Test2Suite ];
23504     meta = {
23505       description = "Make simple lightweight record-like structures";
23506       license = with lib.licenses; [ artistic1 gpl1Plus ];
23507     };
23508   };
23510   SubExporter = buildPerlPackage {
23511     pname = "Sub-Exporter";
23512     version = "0.990";
23513     src = fetchurl {
23514       url = "mirror://cpan/authors/id/R/RJ/RJBS/Sub-Exporter-0.990.tar.gz";
23515       hash = "sha256-vGTsWgaGX5zGdiFcBqlEizoMizl0/7I6JPjirQkFRPw=";
23516     };
23517     propagatedBuildInputs = [ DataOptList ];
23518     meta = {
23519       description = "Sophisticated exporter for custom-built routines";
23520       homepage = "https://github.com/rjbs/Sub-Exporter";
23521       license = with lib.licenses; [ artistic1 gpl1Plus ];
23522     };
23523   };
23525   SubExporterForMethods = buildPerlPackage {
23526     pname = "Sub-Exporter-ForMethods";
23527     version = "0.100055";
23528     src = fetchurl {
23529       url = "mirror://cpan/authors/id/R/RJ/RJBS/Sub-Exporter-ForMethods-0.100055.tar.gz";
23530       hash = "sha256-eR9CA7p8D32DgLwBvsICFffIvHDX7QPlUu7kRUGr6U4=";
23531     };
23532     buildInputs = [ namespaceautoclean ];
23533     propagatedBuildInputs = [ SubExporter SubName ];
23534     meta = {
23535       description = "Helper routines for using Sub::Exporter to build methods";
23536       homepage = "https://github.com/rjbs/Sub-Exporter-ForMethods";
23537       license = with lib.licenses; [ artistic1 gpl1Plus ];
23538     };
23539   };
23541   SubExporterGlobExporter = buildPerlPackage {
23542     pname = "Sub-Exporter-GlobExporter";
23543     version = "0.006";
23544     src = fetchurl {
23545       url = "mirror://cpan/authors/id/R/RJ/RJBS/Sub-Exporter-GlobExporter-0.006.tar.gz";
23546       hash = "sha256-3nQ/CAJnAcKmoiKotBxM3CVLGkr+fvmJh806ukzlJpY=";
23547     };
23548     propagatedBuildInputs = [ SubExporter ];
23549     meta = {
23550       description = "Export shared globs with Sub::Exporter collectors";
23551       homepage = "https://github.com/rjbs/Sub-Exporter-GlobExporter";
23552       license = with lib.licenses; [ artistic1 gpl1Plus ];
23553     };
23554   };
23556   SubExporterProgressive = buildPerlPackage {
23557     pname = "Sub-Exporter-Progressive";
23558     version = "0.001013";
23559     src = fetchurl {
23560       url = "mirror://cpan/authors/id/F/FR/FREW/Sub-Exporter-Progressive-0.001013.tar.gz";
23561       hash = "sha256-1TW3lU1k2hrBMFsfrfmCAnaeNZk3aFSyztkMOCvqwFY=";
23562     };
23563     meta = {
23564       description = "Only use Sub::Exporter if you need it";
23565       homepage = "https://github.com/frioux/Sub-Exporter-Progressive";
23566       license = with lib.licenses; [ artistic1 gpl1Plus ];
23567     };
23568   };
23570   SubHandlesVia = buildPerlPackage {
23571     pname = "Sub-HandlesVia";
23572     version = "0.050000";
23573     src = fetchurl {
23574       url = "mirror://cpan/authors/id/T/TO/TOBYINK/Sub-HandlesVia-0.050000.tar.gz";
23575       hash = "sha256-Lfk0k+L56VvleblQtuGf9ST5TIBhOq3AOohhHf91eU8=";
23576     };
23577     propagatedBuildInputs = [ ClassMethodModifiers RoleHooks RoleTiny TypeTiny ];
23578     buildInputs = [ TestFatal TestRequires TryTiny ];
23579     meta = {
23580       description = "Alternative handles_via implementation";
23581       homepage = "https://metacpan.org/release/Sub-HandlesVia";
23582       license = with lib.licenses; [ artistic1 gpl1Plus ];
23583     };
23584   };
23586   SubIdentify = buildPerlPackage {
23587     pname = "Sub-Identify";
23588     version = "0.14";
23589     src = fetchurl {
23590       url = "mirror://cpan/authors/id/R/RG/RGARCIA/Sub-Identify-0.14.tar.gz";
23591       hash = "sha256-Bo0nIIZRTdHoQrakCxvtuv7mOQDlsIiQ72cAA53vrW8=";
23592     };
23593     meta = {
23594       description = "Retrieve names of code references";
23595       license = with lib.licenses; [ artistic1 gpl1Plus ];
23596     };
23597   };
23599   SubInfo = buildPerlPackage {
23600     pname = "Sub-Info";
23601     version = "0.002";
23602     src = fetchurl {
23603       url = "mirror://cpan/authors/id/E/EX/EXODIST/Sub-Info-0.002.tar.gz";
23604       hash = "sha256-6jBW1pa97/IamdNA1VcIh9OajMR7/yOt/ILfZ1jN0Oo=";
23605     };
23606     propagatedBuildInputs = [ Importer ];
23607     meta = {
23608       description = "Tool for inspecting subroutines";
23609       license = with lib.licenses; [ artistic1 gpl1Plus ];
23610     };
23611   };
23613   SubInstall = buildPerlPackage {
23614     pname = "Sub-Install";
23615     version = "0.929";
23616     src = fetchurl {
23617       url = "mirror://cpan/authors/id/R/RJ/RJBS/Sub-Install-0.929.tar.gz";
23618       hash = "sha256-gLHigdjNOysx2scR9cihZXqHzYC75przkkvL605dsHc=";
23619     };
23620     meta = {
23621       description = "Install subroutines into packages easily";
23622       homepage = "https://github.com/rjbs/Sub-Install";
23623       license = with lib.licenses; [ artistic1 gpl1Plus ];
23624     };
23625   };
23627   SubName = buildPerlPackage {
23628     pname = "Sub-Name";
23629     version = "0.27";
23630     src = fetchurl {
23631       url = "mirror://cpan/authors/id/E/ET/ETHER/Sub-Name-0.27.tar.gz";
23632       hash = "sha256-7PNvuhxHypPh2qOUlo7TnEGGhnRZ2c0XPEIeK5cgQ+g=";
23633     };
23634     buildInputs = [ BC DevelCheckBin ];
23635     meta = {
23636       description = "(Re)name a sub";
23637       homepage = "https://github.com/p5sagit/Sub-Name";
23638       license = with lib.licenses; [ artistic1 gpl1Plus ];
23639     };
23640   };
23642   SubOverride = buildPerlPackage {
23643     pname = "Sub-Override";
23644     version = "0.09";
23645     src = fetchurl {
23646       url = "mirror://cpan/authors/id/O/OV/OVID/Sub-Override-0.09.tar.gz";
23647       hash = "sha256-k5pnwfcplo4MyBt0lY23UOG9t8AgvuGiYzMvQiwuJbU=";
23648     };
23649     buildInputs = [ TestFatal ];
23650     meta = {
23651       description = "Perl extension for easily overriding subroutines";
23652       license = with lib.licenses; [ artistic1 gpl1Plus ];
23653     };
23654   };
23656   SubQuote = buildPerlPackage {
23657     pname = "Sub-Quote";
23658     version = "2.006008";
23659     src = fetchurl {
23660       url = "mirror://cpan/authors/id/H/HA/HAARG/Sub-Quote-2.006008.tar.gz";
23661       hash = "sha256-lL69UAr1V2LoPqLyvFlNh6+CgHI3DHEQxgwjioANFbI=";
23662     };
23663     buildInputs = [ TestFatal ];
23664     meta = {
23665       description = "Efficient generation of subroutines via string eval";
23666       license = with lib.licenses; [ artistic1 gpl1Plus ];
23667     };
23668   };
23670   SubStrictDecl = buildPerlModule {
23671     pname = "Sub-StrictDecl";
23672     version = "0.005";
23673     src = fetchurl {
23674       url = "mirror://cpan/authors/id/Z/ZE/ZEFRAM/Sub-StrictDecl-0.005.tar.gz";
23675       hash = "sha256-oSfa52RcGpVwzZopcMbcST1SL/BzGKNKOeQJCY9pESU=";
23676     };
23677     propagatedBuildInputs = [ LexicalSealRequireHints ];
23678     perlPreHook = lib.optionalString stdenv.hostPlatform.isDarwin "export LD=$CC";
23679     meta = {
23680       description = "Detect undeclared subroutines in compilation";
23681       license = with lib.licenses; [ artistic1 gpl1Plus ];
23682     };
23683   };
23685   SubUplevel = buildPerlPackage {
23686     pname = "Sub-Uplevel";
23687     version = "0.2800";
23688     src = fetchurl {
23689       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Sub-Uplevel-0.2800.tar.gz";
23690       hash = "sha256-tPP2O4D2gKQhMy2IUd2+Wo5y/Kp01dHZjzyMxKPs4pM=";
23691     };
23692     meta = {
23693       description = "Apparently run a function in a higher stack frame";
23694       homepage = "https://github.com/Perl-Toolchain-Gang/Sub-Uplevel";
23695       license = with lib.licenses; [ artistic1 gpl1Plus ];
23696     };
23697   };
23699   SVNSimple = buildPerlPackage {
23700     pname = "SVN-Simple";
23701     version = "0.28";
23702     src = fetchurl {
23703       url = "mirror://cpan/authors/id/C/CL/CLKAO/SVN-Simple-0.28.tar.gz";
23704       hash = "sha256-1jzBaeQ2m+mKU5q+nMFhG/zCs2lmplF+Z2aI/tGIT/s=";
23705     };
23706     propagatedBuildInputs = [ (pkgs.subversionClient.override { inherit perl; }) ];
23707     meta = {
23708       description = "Simple interface to subversion's editor interface";
23709       license = with lib.licenses; [ artistic1 gpl1Plus ];
23710     };
23711   };
23713   SafeHole = buildPerlModule {
23714     pname = "Safe-Hole";
23715     version = "0.14";
23716     src = fetchurl {
23717       url = "mirror://cpan/authors/id/T/TO/TODDR/Safe-Hole-0.14.tar.gz";
23718       hash = "sha256-9PVui70GxP5K4G2xIYbeyt+6wep3XqGMbAKJSB0V7AU=";
23719     };
23720     perlPreHook = lib.optionalString stdenv.hostPlatform.isDarwin "export LD=$CC";
23721     meta = {
23722       description = "Lib/Safe/Hole.pm";
23723       homepage = "https://github.com/toddr/Safe-Hole";
23724       license = with lib.licenses; [ artistic1 gpl1Plus ];
23725     };
23726   };
23728   Swim = buildPerlPackage {
23729     pname = "Swim";
23730     version = "0.1.48";
23731     src = fetchurl {
23732       url = "mirror://cpan/authors/id/I/IN/INGY/Swim-0.1.48.tar.gz";
23733       hash = "sha256-pfcv0vIpF/orSsuy7iw9MpA9l+5bDkSbDzhwGMd/Tww=";
23734     };
23735     propagatedBuildInputs = [ HTMLEscape HashMerge IPCRun Pegex TextAutoformat YAMLLibYAML ];
23736     meta = {
23737       description = "See What I Mean?!";
23738       homepage = "https://github.com/ingydotnet/swim-pm";
23739       license = with lib.licenses; [ artistic1 gpl1Plus ];
23740       mainProgram = "swin";
23741     };
23742   };
23744   Switch = buildPerlPackage {
23745     pname = "Switch";
23746     version = "2.17";
23747     src = fetchurl {
23748       url = "mirror://cpan/authors/id/C/CH/CHORNY/Switch-2.17.tar.gz";
23749       hash = "sha256-MTVJdRQP5iNawTChCUlkka0z3UL5xiGJ4j9J91+TbXU=";
23750     };
23751     doCheck = false;                             # FIXME: 2/293 test failures
23752     meta = {
23753       description = "Switch statement for Perl, do not use if you can use given/when";
23754       license = with lib.licenses; [ artistic1 gpl1Plus ];
23755     };
23756   };
23758   SymbolGet = buildPerlPackage {
23759     pname = "Symbol-Get";
23760     version = "0.10";
23761     src = fetchurl {
23762       url = "mirror://cpan/authors/id/F/FE/FELIPE/Symbol-Get-0.10.tar.gz";
23763       hash = "sha256-DuVWjFrjVzyodOCeTQUkRmz8Gtmiwk0LyR1MewbyHZw=";
23764     };
23765     buildInputs = [ TestDeep TestException ];
23766     propagatedBuildInputs = [ CallContext ];
23767     meta = {
23768       description = "Read Perl's symbol table programmatically";
23769       license = with lib.licenses; [ artistic1 gpl1Plus ];
23770       maintainers = [ maintainers.sgo ];
23771     };
23772   };
23774   SymbolGlobalName = buildPerlPackage {
23775     pname = "Symbol-Global-Name";
23776     version = "0.05";
23777     src = fetchurl {
23778       url = "mirror://cpan/authors/id/A/AL/ALEXMV/Symbol-Global-Name-0.05.tar.gz";
23779       hash = "sha256-D3Yj6dckdgqmQEAiLaHYLxGIWGeRMpJhzGDa0dYNapI=";
23780     };
23781     meta = {
23782       description = "Finds name and type of a global variable";
23783       license = with lib.licenses; [ artistic1 gpl1Plus ];
23784     };
23785   };
23787   SymbolUtil = buildPerlModule {
23788     pname = "Symbol-Util";
23789     version = "0.0203";
23790     src = fetchurl {
23791       url = "mirror://cpan/authors/id/D/DE/DEXTER/Symbol-Util-0.0203.tar.gz";
23792       hash = "sha256-VbZh3SL5zpub5afgo/UomsAM0lTCHj2GAyiaVlrm3DI=";
23793     };
23794     meta = {
23795       description = "Additional utils for Perl symbols manipulation";
23796       license = with lib.licenses; [ artistic1 gpl1Plus ];
23797     };
23798   };
23800   syntax = buildPerlPackage {
23801     pname = "syntax";
23802     version = "0.004";
23803     src = fetchurl {
23804       url = "mirror://cpan/authors/id/P/PH/PHAYLON/syntax-0.004.tar.gz";
23805       hash = "sha256-/hm22oqPQ6WqLuVxRBvA4zn7FW0AgcFXoaJOmBLH02U=";
23806     };
23807     propagatedBuildInputs = [ DataOptList namespaceclean ];
23808     meta = {
23809       description = "Activate syntax extensions";
23810       homepage = "https://github.com/phaylon/syntax/wiki";
23811       license = with lib.licenses; [ artistic1 gpl1Plus ];
23812     };
23813   };
23815   SyntaxKeywordJunction = buildPerlPackage {
23816     pname = "Syntax-Keyword-Junction";
23817     version = "0.003008";
23818     src = fetchurl {
23819       url = "mirror://cpan/authors/id/F/FR/FREW/Syntax-Keyword-Junction-0.003008.tar.gz";
23820       hash = "sha256-i0l18hsZkqfmwt9dzJKyVMYZJVle3c368LFJhxeqle8=";
23821     };
23822     buildInputs = [ TestRequires ];
23823     propagatedBuildInputs = [ syntax ];
23824     meta = {
23825       description = "Perl6 style Junction operators in Perl5";
23826       homepage = "https://github.com/frioux/Syntax-Keyword-Junction";
23827       license = with lib.licenses; [ artistic1 gpl1Plus ];
23828     };
23829   };
23831   SyntaxKeywordTry = buildPerlModule {
23832     pname = "Syntax-Keyword-Try";
23833     version = "0.29";
23834     src = fetchurl {
23835       url = "mirror://cpan/authors/id/P/PE/PEVANS/Syntax-Keyword-Try-0.29.tar.gz";
23836       hash = "sha256-zDIHGdNgjaqVFHQ6Q9rCvpnLjM2Ymx/vooUpDLHVnY8=";
23837     };
23838     buildInputs = [ Test2Suite ];
23839     propagatedBuildInputs = [ XSParseKeyword ];
23840     perlPreHook = lib.optionalString (stdenv.hostPlatform.isi686 || stdenv.hostPlatform.isDarwin) "export LD=$CC";
23841     meta = {
23842       description = "Try/catch/finally syntax for perl";
23843       license = with lib.licenses; [ artistic1 gpl1Plus ];
23844       maintainers = [ maintainers.zakame ];
23845     };
23846   };
23848   SysMmap = buildPerlPackage {
23849     pname = "Sys-Mmap";
23850     version = "0.20";
23851     src = fetchurl {
23852       url = "mirror://cpan/authors/id/T/TO/TODDR/Sys-Mmap-0.20.tar.gz";
23853       hash = "sha256-GCDOLInxq3NXZE+NsPSfFC9UUmJQ+x4jXbEKqA8V4s8=";
23854     };
23855     meta = {
23856       description = "Use mmap to map in a file as a Perl variable";
23857       maintainers = with maintainers; [ peterhoeg ];
23858       license = with lib.licenses; [ gpl2Plus ];
23859     };
23860   };
23862   SysMemInfo = buildPerlPackage {
23863     pname = "Sys-MemInfo";
23864     version = "0.99";
23865     src = fetchurl {
23866       url = "mirror://cpan/authors/id/S/SC/SCRESTO/Sys-MemInfo-0.99.tar.gz";
23867       hash = "sha256-B4YxnTo6i65dcnk5JEvxfhQLcU9Sc01en2JyA+TPPjs=";
23868     };
23869     meta = {
23870       description = "Memory information";
23871       license = with lib.licenses; [ gpl2Plus ];
23872       maintainers = [ maintainers.pSub ];
23873     };
23874   };
23876   SysCPU = buildPerlPackage {
23877     pname = "Sys-CPU";
23878     version = "0.61";
23879     src = fetchurl {
23880       url = "mirror://cpan/authors/id/M/MZ/MZSANFORD/Sys-CPU-0.61.tar.gz";
23881       hash = "sha256-JQqGt5wjEAHErnHS9mQoCSpPuyBwlxrK/UcapJc5yeQ=";
23882     };
23883     patches = [
23884       # Bug #95400 for Sys-CPU: Tests fail on ARM and AArch64 Linux
23885       # https://rt.cpan.org/Public/Bug/Display.html?id=95400
23886       (fetchpatch {
23887         url = "https://rt.cpan.org/Ticket/Attachment/1359669/721669/0001-Add-support-for-cpu_type-on-ARM-and-AArch64-Linux-pl.patch";
23888         hash = "sha256-oIJQX+Fz/CPmJNPuJyHVpJxJB2K5IQibnvaT4dv/qmY=";
23889       })
23890       (fetchpatch {
23891         url = "https://rt.cpan.org/Ticket/Attachment/1388036/737125/0002-cpu_clock-can-be-undefined-on-an-ARM.patch";
23892         hash = "sha256-nCypGyi6bZDEXqdb7wlGGzk9cFzmYkWGP1slBpXDfHw=";
23893       })
23894     ];
23895     buildInputs = lib.optional stdenv.hostPlatform.isDarwin pkgs.darwin.apple_sdk.frameworks.Carbon;
23896     doCheck = !stdenv.hostPlatform.isAarch64;
23897     meta = {
23898       description = "Perl extension for getting CPU information. Currently only number of CPU's supported";
23899       license = with lib.licenses; [ artistic1 gpl1Plus ];
23900     };
23901   };
23903   SysCpuAffinity = buildPerlModule {
23904     pname = "Sys-CpuAffinity";
23905     version = "1.12";
23906     src = fetchurl {
23907       url = "mirror://cpan/authors/id/M/MO/MOB/Sys-CpuAffinity-1.12.tar.gz";
23908       hash = "sha256-/jLAXz6wWXCMZH8ruFslBFhZHyupBR2Nhm9Uajh+6Eg=";
23909     };
23910     doCheck = false; # Would run checks for all supported systems
23911     meta = {
23912       description = "Set CPU affinity for processes";
23913       license = with lib.licenses; [ artistic1 gpl1Plus ];
23914       maintainers = with maintainers; [ tomasajt ];
23915     };
23916   };
23918   SysHostnameLong = buildPerlPackage {
23919     pname = "Sys-Hostname-Long";
23920     version = "1.5";
23921     src = fetchurl {
23922       url = "mirror://cpan/authors/id/S/SC/SCOTT/Sys-Hostname-Long-1.5.tar.gz";
23923       hash = "sha256-6Rht83Bqh379YUnyxxHWz4fdbPcvark1uoEhsiWyZcs=";
23924     };
23925     doCheck = false; # no `hostname' in stdenv
23926     meta = {
23927       description = "Try every conceivable way to get full hostname";
23928       license = with lib.licenses; [ artistic1 gpl1Plus ];
23929     };
23930   };
23932   SysSigAction = buildPerlPackage {
23933     pname = "Sys-SigAction";
23934     version = "0.23";
23935     src = fetchurl {
23936       url = "mirror://cpan/authors/id/L/LB/LBAXTER/Sys-SigAction-0.23.tar.gz";
23937       hash = "sha256-xO9sk0VTQDH8u+Ktw0f8cZTUevyUXnpE+sfpVjCV01M=";
23938     };
23939     doCheck = !stdenv.hostPlatform.isAarch64; # it hangs on Aarch64
23940     meta = {
23941       description = "Perl extension for Consistent Signal Handling";
23942       license = with lib.licenses; [ artistic1 gpl1Plus ];
23943     };
23944   };
23946   SysSyslog = buildPerlPackage {
23947     pname = "Sys-Syslog";
23948     version = "0.36";
23949     src = fetchurl {
23950       url = "mirror://cpan/authors/id/S/SA/SAPER/Sys-Syslog-0.36.tar.gz";
23951       hash = "sha256-7UKp5boErUhWzAy1040onDxdN2RUPsBO+vxK9+M3jfg=";
23952     };
23953     meta = {
23954       description = "Perl interface to the UNIX syslog(3) calls";
23955       license = with lib.licenses; [ artistic1 gpl1Plus ];
23956     };
23957   };
23959   SystemCommand = buildPerlPackage {
23960     pname = "System-Command";
23961     version = "1.122";
23962     src = fetchurl {
23963       url = "mirror://cpan/authors/id/B/BO/BOOK/System-Command-1.122.tar.gz";
23964       hash = "sha256-2bgjsmYZqmn3oGFmUKeBDolajfBi3p0iQNZdvlz+dHo=";
23965     };
23966     propagatedBuildInputs = [ IPCRun ];
23967     buildInputs = [ PodCoverageTrustPod TestCPANMeta TestPod TestPodCoverage ];
23968     meta = {
23969       description = "Object for running system commands";
23970       license = with lib.licenses; [ artistic1 gpl1Plus ];
23971     };
23972   };
23974   SysVirt = buildPerlModule rec {
23975     pname = "Sys-Virt";
23976     version = "10.2.0";
23977     src = fetchFromGitLab {
23978       owner = "libvirt";
23979       repo = "libvirt-perl";
23980       rev = "v${version}";
23981       hash = "sha256-xpgZeXk9QefqbBMsvcMh/Cg/XFGEiVi3FbU/jBbSIr0=";
23982     };
23983     nativeBuildInputs = [ pkgs.pkg-config ];
23984     buildInputs = [ pkgs.libvirt CPANChanges TestPod TestPodCoverage XMLXPath ];
23985     perlPreHook = lib.optionalString stdenv.hostPlatform.isi686 "export LD=$CC"; # fix undefined reference to `__stack_chk_fail_local'
23986     meta = {
23987       description = "Libvirt Perl API";
23988       homepage = "https://libvirt.org";
23989       license = with lib.licenses; [ gpl2Plus artistic1 ];
23990       broken = stdenv.hostPlatform.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.SysVirt.x86_64-darwin
23991     };
23992   };
23994   TAPParserSourceHandlerpgTAP = buildPerlModule {
23995     pname = "TAP-Parser-SourceHandler-pgTAP";
23996     version = "3.36";
23997     src = fetchurl {
23998       url = "mirror://cpan/authors/id/D/DW/DWHEELER/TAP-Parser-SourceHandler-pgTAP-3.36.tar.gz";
23999       hash = "sha256-B75RUy4GPqxu2OWBUFRw7ryB1VBkQa8tzzK8Dr7pjGc=";
24000     };
24001     doCheck = !stdenv.hostPlatform.isDarwin;
24002     meta = {
24003       description = "Stream TAP from pgTAP test scripts";
24004       homepage = "https://search.cpan.org/dist/Tap-Parser-Sourcehandler-pgTAP";
24005       license = with lib.licenses; [ artistic1 gpl1Plus ];
24006     };
24007   };
24009   TaskCatalystTutorial = buildPerlPackage {
24010     pname = "Task-Catalyst-Tutorial";
24011     version = "0.06";
24012     src = fetchurl {
24013       url = "mirror://cpan/authors/id/M/MR/MRAMBERG/Task-Catalyst-Tutorial-0.06.tar.gz";
24014       hash = "sha256-dbGy2WFVZHhCWHFGzv0N4wlDuFGV6OPspR4PC4ZC1h4=";
24015     };
24016     propagatedBuildInputs = [ CatalystAuthenticationStoreDBIxClass CatalystControllerHTMLFormFu CatalystDevel CatalystManual CatalystPluginAuthorizationACL CatalystPluginAuthorizationRoles CatalystPluginSessionStateCookie CatalystPluginSessionStoreFastMmap CatalystPluginStackTrace CatalystViewTT ];
24017     doCheck = false; /* fails with 'open3: exec of .. perl .. failed: Argument list too long at .../TAP/Parser/Iterator/Process.pm line 165.' */
24018     meta = {
24019       description = "Everything you need to follow the Catalyst Tutorial";
24020       license = with lib.licenses; [ artistic1 gpl1Plus ];
24021     };
24022   };
24024   TaskFreecellSolverTesting = buildPerlModule {
24025     pname = "Task-FreecellSolver-Testing";
24026     version = "0.0.12";
24027     src = fetchurl {
24028       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Task-FreecellSolver-Testing-0.0.12.tar.gz";
24029       hash = "sha256-PRkQt64SVBfG4HeUeOtK8/yc+J4iGVhfiiBBFGP5k6c=";
24030     };
24031     buildInputs = [ CodeTidyAll TestDataSplit TestDifferences TestPerlTidy TestRunPluginTrimDisplayedFilenames TestRunValgrind TestTrailingSpace TestTrap ];
24032     propagatedBuildInputs = [ EnvPath FileWhich GamesSolitaireVerify InlineC ListMoreUtils MooX StringShellQuote TaskTestRunAllPlugins TemplateToolkit YAMLLibYAML ];
24033     meta = {
24034       description = "Install the CPAN dependencies of the Freecell Solver test suite";
24035       homepage = "https://metacpan.org/release/Task-FreecellSolver-Testing";
24036       license = with lib.licenses; [ mit ];
24037     };
24038   };
24040   TaskPlack = buildPerlModule {
24041     pname = "Task-Plack";
24042     version = "0.28";
24043     src = fetchurl {
24044       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Task-Plack-0.28.tar.gz";
24045       hash = "sha256-edUriAZUjz+Vro1qyRW6Q524SJ/mOxOdCsFym7KfXCo=";
24046     };
24047     propagatedBuildInputs = [ CGICompile CGIEmulatePSGI CGIPSGI Corona FCGI FCGIClient FCGIProcManager HTTPServerSimplePSGI IOHandleUtil NetFastCGI PSGI PlackAppProxy PlackMiddlewareAuthDigest PlackMiddlewareConsoleLogger PlackMiddlewareDebug PlackMiddlewareDeflater PlackMiddlewareHeader PlackMiddlewareReverseProxy PlackMiddlewareSession Starlet Starman Twiggy ];
24048     buildInputs = [ ModuleBuildTiny TestSharedFork ];
24049     meta = {
24050       description = "Plack bundle";
24051       license = with lib.licenses; [ artistic1 gpl1Plus ];
24052     };
24053   };
24055   TaskTestRunAllPlugins = buildPerlModule {
24056     pname = "Task-Test-Run-AllPlugins";
24057     version = "0.0106";
24058     src = fetchurl {
24059       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Task-Test-Run-AllPlugins-0.0106.tar.gz";
24060       hash = "sha256-G40L8IhYBmWbwpiBDw1VCq/2gEWtwjepSaymshp9zng=";
24061     };
24062     buildInputs = [ TestRun TestRunCmdLine TestRunPluginAlternateInterpreters TestRunPluginBreakOnFailure TestRunPluginColorFileVerdicts TestRunPluginColorSummary TestRunPluginTrimDisplayedFilenames ];
24063     meta = {
24064       description = "Specifications for installing all the Test::Run";
24065       homepage = "https://web-cpan.shlomifish.org/modules/Test-Run";
24066       license = with lib.licenses; [ mit ];
24067     };
24068   };
24070   TaskWeaken = buildPerlPackage {
24071     pname = "Task-Weaken";
24072     version = "1.06";
24073     src = fetchurl {
24074       url = "mirror://cpan/authors/id/E/ET/ETHER/Task-Weaken-1.06.tar.gz";
24075       hash = "sha256-I4P+252672RkaOqCSvv3yAEHZyDPug3yp6B0cm3NZr4=";
24076     };
24077     meta = {
24078       description = "Ensure that a platform has weaken support";
24079       homepage = "https://github.com/karenetheridge/Task-Weaken";
24080       license = with lib.licenses; [ artistic1 gpl1Plus ];
24081     };
24082   };
24084   Tcl = buildPerlPackage {
24085     pname = "Tcl";
24086     version = "1.27";
24087     src = fetchurl {
24088       url = "mirror://cpan/authors/id/V/VK/VKON/Tcl-1.27.tar.gz";
24089       hash = "sha256-+DhYd6Sp7Z89OQPS0PfNcPrDzmgyxg9gCmghzuP7WHI=";
24090     };
24091     propagatedBuildInputs = [
24092       pkgs.bwidget
24093       pkgs.tcl
24094       pkgs.tix
24095       pkgs.tk
24096     ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
24097       darwin.apple_sdk.frameworks.CoreServices ];
24098     makeMakerFlags = lib.optionals stdenv.hostPlatform.isLinux
24099       [ "--tclsh=${pkgs.tcl}/bin/tclsh" "--nousestubs" ];
24100     meta = {
24101       description = "Tcl extension module for Perl";
24102       license = with lib.licenses; [ artistic1 gpl1Plus ];
24103     };
24104   };
24106   TclpTk = buildPerlPackage {
24107     pname = "Tcl-pTk";
24108     version = "1.11";
24109     src = fetchurl {
24110       url = "mirror://cpan/authors/id/C/CA/CAC/Tcl-pTk-1.11.tar.gz";
24111       hash = "sha256-05PxKxzN7I8ZbN27WJHZSEx5qpQQWmN22f+cRg2CDN0=";
24112     };
24113     propagatedBuildInputs = [
24114       ClassISA
24115       SubName
24116       Tcl
24117       TestDeep
24118     ];
24119     buildPhase = ''
24120       perl Makefile.PL --tclsh "${pkgs.tk.tcl}/bin/tclsh" INSTALL_BASE=$out --no-test-for-tk
24121     '';
24122     postInstall = ''
24123       mkdir -p $out/lib/perl5/site_perl
24124       mv $out/lib/perl5/Tcl $out/lib/perl5/site_perl/
24125       mv $out/lib/perl5/auto $out/lib/perl5/site_perl/
24126     '' + lib.optionalString stdenv.hostPlatform.isDarwin ''
24127       mv $out/lib/perl5/darwin-thread-multi-2level $out/lib/perl5/site_perl/
24128     '';
24129     meta = {
24130       description = "Interface to Tcl/Tk with Perl/Tk compatible syntax";
24131       license = with lib.licenses; [ artistic1 gpl1Plus ];
24132     };
24133   };
24135   TemplatePluginAutoformat = buildPerlPackage {
24136     pname = "Template-Plugin-Autoformat";
24137     version = "2.77";
24138     src = fetchurl {
24139       url = "mirror://cpan/authors/id/K/KA/KARMAN/Template-Plugin-Autoformat-2.77.tar.gz";
24140       hash = "sha256-vd+0kZ8Kuyor56lmUzPg1OCYAy8OOD268ExNiWx0hu0=";
24141     };
24142     propagatedBuildInputs = [ TemplateToolkit TextAutoformat ];
24143     meta = {
24144       description = "TT plugin for Text::Autoformat";
24145       homepage = "https://github.com/karpet/template-plugin-autoformat";
24146       license = with lib.licenses; [ artistic1 gpl1Plus ];
24147     };
24148   };
24150   TemplatePluginClass = buildPerlPackage {
24151     pname = "Template-Plugin-Class";
24152     version = "0.14";
24153     src = fetchurl {
24154       url = "mirror://cpan/authors/id/R/RC/RCLAMP/Template-Plugin-Class-0.14.tar.gz";
24155       hash = "sha256-BgT+iue/OtlnnmTZsa1MnpAUwXeqgOg11SqG942XB8M=";
24156     };
24157     propagatedBuildInputs = [ TemplateToolkit ];
24158     meta = {
24159       description = "Allow calling of class methods on arbitrary classes";
24160       license = with lib.licenses; [ artistic1 gpl1Plus ];
24161     };
24162   };
24164   TemplatePluginIOAll = buildPerlPackage {
24165     pname = "Template-Plugin-IO-All";
24166     version = "0.01";
24167     src = fetchurl {
24168       url = "mirror://cpan/authors/id/X/XE/XERN/Template-Plugin-IO-All-0.01.tar.gz";
24169       hash = "sha256-H3RFQiohky4Ju++TV2bgr2t8zrCI6djgMM16hLzcXuQ=";
24170     };
24171     propagatedBuildInputs = [ IOAll TemplateToolkit ];
24172     meta = {
24173       description = "Perl Template Toolkit Plugin for IO::All";
24174       license = with lib.licenses; [ artistic1 gpl1Plus ];
24175       maintainers = [ ];
24176     };
24177   };
24179   TemplatePluginJavaScript = buildPerlPackage {
24180     pname = "Template-Plugin-JavaScript";
24181     version = "0.02";
24182     src = fetchurl {
24183       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Template-Plugin-JavaScript-0.02.tar.gz";
24184       hash = "sha256-6iDYBq1lIoLQNTSY4oYN+BJcgLZJFjDCXSY72IDGGNc=";
24185     };
24186     propagatedBuildInputs = [ TemplateToolkit ];
24187     meta = {
24188       description = "Encodes text to be safe in JavaScript";
24189       license = with lib.licenses; [ artistic1 gpl1Plus ];
24190     };
24191   };
24193   TemplatePluginJSONEscape = buildPerlPackage {
24194     pname = "Template-Plugin-JSON-Escape";
24195     version = "0.02";
24196     src = fetchurl {
24197       url = "mirror://cpan/authors/id/N/NA/NANTO/Template-Plugin-JSON-Escape-0.02.tar.gz";
24198       hash = "sha256-BRqLHTvGAdWPxR4kYGfTZFDP6XAnigRW6KthlA8TzYY=";
24199     };
24200     propagatedBuildInputs = [ JSON TemplateToolkit ];
24201     meta = {
24202       description = "Adds a .json vmethod and a json filter";
24203       license = with lib.licenses; [ bsd0 ];
24204     };
24205   };
24207   TemplateTimer = buildPerlPackage {
24208     pname = "Template-Timer";
24209     version = "1.00";
24210     src = fetchurl {
24211       url = "mirror://cpan/authors/id/P/PE/PETDANCE/Template-Timer-1.00.tar.gz";
24212       hash = "sha256-tzFMs2UgnZNVe4BU4DEa6MPLXRydIo0es+P8GTpbd7Q=";
24213     };
24214     propagatedBuildInputs = [ TemplateToolkit ];
24215     meta = {
24216       description = "Rudimentary profiling for Template Toolkit";
24217       license = with lib.licenses; [ artistic2 gpl3Only ];
24218     };
24219   };
24221   TemplateTiny = buildPerlPackage {
24222     pname = "Template-Tiny";
24223     version = "1.14";
24224     src = fetchurl {
24225       url = "mirror://cpan/authors/id/E/ET/ETHER/Template-Tiny-1.14.tar.gz";
24226       hash = "sha256-gZz6tgREg8/ijOsof938MXaiAlsbbw6YCy3MJtImm0w=";
24227     };
24228     meta = {
24229       description = "Template Toolkit reimplemented in as little code as possible";
24230       homepage = "https://github.com/karenetheridge/Template-Tiny";
24231       license = with lib.licenses; [ artistic1 gpl1Plus ];
24232     };
24233   };
24235   TemplateToolkit = buildPerlPackage {
24236     pname = "Template-Toolkit";
24237     version = "3.101";
24238     src = fetchurl {
24239       url = "mirror://cpan/authors/id/A/AB/ABW/Template-Toolkit-3.101.tar.gz";
24240       hash = "sha256-0qMt1sIeSzfGqT34CHyp6IDPrmE6Pl766jB7C9yu21g=";
24241     };
24242     doCheck = !stdenv.hostPlatform.isDarwin;
24243     propagatedBuildInputs = [ AppConfig ];
24244     buildInputs = [ CGI TestLeakTrace ];
24245     meta = {
24246       description = "Comprehensive template processing system";
24247       homepage = "http://www.template-toolkit.org";
24248       license = with lib.licenses; [ artistic1 gpl1Plus ];
24249     };
24250   };
24252   TemplateGD = buildPerlPackage {
24253     pname = "Template-GD";
24254     version = "2.66";
24255     src = fetchurl {
24256       url = "mirror://cpan/authors/id/A/AB/ABW/Template-GD-2.66.tar.gz";
24257       hash = "sha256-mFI8gZLy6BhAQuWi4XK9dnrCid0uSA819oDc4yFgkFs=";
24258     };
24259     propagatedBuildInputs = [ GD TemplateToolkit ];
24260     meta = {
24261       description = "GD plugin(s) for the Template Toolkit";
24262       license = with lib.licenses; [ artistic1 gpl1Plus ];
24263     };
24264   };
24266   TermEncoding = buildPerlPackage {
24267     pname = "Term-Encoding";
24268     version = "0.03";
24269     src = fetchurl {
24270       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Term-Encoding-0.03.tar.gz";
24271       hash = "sha256-lbqWh9c10lo8vmRQjXiU8AnH+ioXJsPnhuniHaIlHQs=";
24272     };
24273     meta = {
24274       description = "Detect encoding of the current terminal";
24275       homepage = "https://github.com/miyagawa/Term-Encoding";
24276       license = with lib.licenses; [ artistic1 gpl1Plus ];
24277     };
24278   };
24280   TermProgressBar = buildPerlPackage {
24281     pname = "Term-ProgressBar";
24282     version = "2.23";
24283     src = fetchurl {
24284       url = "mirror://cpan/authors/id/M/MA/MANWAR/Term-ProgressBar-2.23.tar.gz";
24285       hash = "sha256-3vwD+59KwcnfE1nTEr/zwIZd3vvzq6ZM1CppqGIV1J0=";
24286     };
24287     buildInputs = [ CaptureTiny TestException TestWarnings ];
24288     propagatedBuildInputs = [ ClassMethodMaker TermReadKey ];
24289     meta = {
24290       description = "Provide a progress meter on a standard terminal";
24291       license = with lib.licenses; [ artistic1 gpl1Plus ];
24292     };
24293   };
24295   TermProgressBarQuiet = buildPerlPackage {
24296     pname = "Term-ProgressBar-Quiet";
24297     version = "0.31";
24298     src = fetchurl {
24299       url = "mirror://cpan/authors/id/L/LB/LBROCARD/Term-ProgressBar-Quiet-0.31.tar.gz";
24300       hash = "sha256-JWdSkvWIvCnTLnEM82Z9qaKhdR4TmAF3Cp/bGM0hhKY=";
24301     };
24302     propagatedBuildInputs = [ IOInteractive TermProgressBar ];
24303     buildInputs = [ TestMockObject ];
24304     meta = {
24305       description = "Provide a progress meter if run interactively";
24306       license = with lib.licenses; [ artistic1 gpl1Plus ];
24307     };
24308   };
24310   TermProgressBarSimple = buildPerlPackage {
24311     pname = "Term-ProgressBar-Simple";
24312     version = "0.03";
24313     src = fetchurl {
24314       url = "mirror://cpan/authors/id/E/EV/EVDB/Term-ProgressBar-Simple-0.03.tar.gz";
24315       hash = "sha256-og2zxn1b39DB+rOSxtHCaICn7oQ69gKvT5tTpwQ1eaY=";
24316     };
24317     propagatedBuildInputs = [ TermProgressBarQuiet ];
24318     buildInputs = [ TestMockObject ];
24319     meta = {
24320       description = "Simpler progress bars";
24321       license = with lib.licenses; [ artistic1 gpl1Plus ];
24322     };
24323   };
24325   TermReadKey = let
24326     cross = stdenv.hostPlatform != stdenv.buildPlatform;
24327   in buildPerlPackage {
24328     pname = "TermReadKey";
24329     version = "2.38";
24330     src = fetchurl {
24331       url = "mirror://cpan/authors/id/J/JS/JSTOWE/TermReadKey-2.38.tar.gz";
24332       hash = "sha256-WmRYeNxXCsM2YVgfuwkP8k684X1D6lP9IuEFqFakcpA=";
24333     };
24335     # use native libraries from the host when running build commands
24336     postConfigure = lib.optionalString cross (let
24337       host_perl = perl.perlOnBuild;
24338       host_self = perl.perlOnBuild.pkgs.TermReadKey;
24339       perl_lib = "${host_perl}/lib/perl5/${host_perl.version}";
24340       self_lib = "${host_self}/lib/perl5/site_perl/${host_perl.version}";
24341     in ''
24342       sed -ie 's|"-I$(INST_ARCHLIB)"|"-I${perl_lib}" "-I${self_lib}"|g' Makefile
24343     '');
24345     # TermReadKey uses itself in the build process
24346     nativeBuildInputs = lib.optionals cross [
24347       perl.perlOnBuild.pkgs.TermReadKey
24348     ];
24349     meta = {
24350       description = "Perl module for simple terminal control";
24351       license = with lib.licenses; [ artistic1 gpl1Plus ];
24352     };
24353   };
24355   TermReadLineGnu = buildPerlPackage {
24356     pname = "Term-ReadLine-Gnu";
24357     version = "1.46";
24358     src = fetchurl {
24359       url = "mirror://cpan/authors/id/H/HA/HAYASHI/Term-ReadLine-Gnu-1.46.tar.gz";
24360       hash = "sha256-sTgyEy5QNmw0/qwSzoKDfAqds0ylMK5dJ9uXz5yWTHs=";
24361     };
24362     buildInputs = [ pkgs.readline pkgs.ncurses ];
24363     NIX_CFLAGS_LINK = "-lreadline -lncursesw";
24365     # For some crazy reason Makefile.PL doesn't generate a Makefile if
24366     # AUTOMATED_TESTING is set.
24367     env.AUTOMATED_TESTING = false;
24369     # Makefile.PL looks for ncurses in Glibc's prefix.
24370     preConfigure =
24371       ''
24372         substituteInPlace Makefile.PL --replace '$Config{libpth}' \
24373           "'${pkgs.ncurses.out}/lib'"
24374       '';
24376     # Tests don't work because they require /dev/tty.
24377     doCheck = false;
24379     meta = {
24380       description = "Perl extension for the GNU Readline/History Library";
24381       homepage = "https://github.com/hirooih/perl-trg";
24382       license = with lib.licenses; [ artistic1 gpl1Plus ];
24383       mainProgram = "perlsh";
24384     };
24385   };
24387   TermReadLineTTYtter = buildPerlPackage {
24388     pname = "Term-ReadLine-TTYtter";
24389     version = "1.4";
24390     src = fetchurl {
24391       url = "mirror://cpan/authors/id/C/CK/CKAISER/Term-ReadLine-TTYtter-1.4.tar.gz";
24392       hash = "sha256-rDcxM87hshIqgnP+e0JEYT0O7O/oi2aL2Y/nHR7ErJM=";
24393     };
24395     outputs = [ "out" ];
24397     meta = {
24398       description = "Term::ReadLine driver based on Term::ReadLine::Perl, with special features for microblogging and the TTYtter client (q.v)";
24399       homepage = "https://www.floodgap.com/software/ttytter";
24400       license = with lib.licenses; [ artistic1 gpl1Plus ];
24401     };
24402   };
24404   TermReadPassword = buildPerlPackage rec {
24405     pname = "Term-ReadPassword";
24406     version = "0.11";
24407     src = fetchurl {
24408       url = "mirror://cpan/authors/id/P/PH/PHOENIX/${pname}-${version}.tar.gz";
24409       hash = "sha256-4ahmNFs1+f/vfQA34T1tTLKAMQCJ+YwgcTiAvHD7QyM=";
24410     };
24412     outputs = [ "out" ];
24414     meta = {
24415       description = "This module lets you ask the user for a password in the traditional way, from the keyboard, without echoing";
24416       license = with lib.licenses; [ artistic1 gpl1Plus ];
24417     };
24418   };
24420   TermShell = buildPerlModule {
24421     pname = "Term-Shell";
24422     version = "0.13";
24423     src = fetchurl {
24424       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Term-Shell-0.13.tar.gz";
24425       hash = "sha256-U6C9smVokcUIpHDZPLfhz+qzjuqeWClWCn2LX2APa/I=";
24426     };
24427     propagatedBuildInputs = [ TermReadKey TextAutoformat ];
24428     meta = {
24429       homepage = "https://metacpan.org/release/Term-Shell";
24430       description = "Simple command-line shell framework";
24431       license = with lib.licenses; [ artistic1 gpl1Plus ];
24432     };
24433   };
24435   TermShellUI = buildPerlPackage {
24436     pname = "Term-ShellUI";
24437     version = "0.92";
24438     src = fetchurl {
24439       url = "mirror://cpan/authors/id/B/BR/BRONSON/Term-ShellUI-0.92.tar.gz";
24440       hash = "sha256-MnnAHHYiczXu/wkDKkD0sCsoUVGzV2wEys0VvgWUK9s=";
24441     };
24442     meta = {
24443       description = "Fully-featured shell-like command line environment";
24444       license = with lib.licenses; [ mit ];
24445     };
24446   };
24448   TermSizeAny = buildPerlPackage {
24449     pname = "Term-Size-Any";
24450     version = "0.002";
24451     src = fetchurl {
24452       url = "mirror://cpan/authors/id/F/FE/FERREIRA/Term-Size-Any-0.002.tar.gz";
24453       hash = "sha256-ZPpf2xrjqCMTSqqVrsdTVLwXvdnKEroKeuNKflGz3tI=";
24454     };
24455     propagatedBuildInputs = [ DevelHide TermSizePerl ];
24456     meta = {
24457       description = "Retrieve terminal size";
24458       license = with lib.licenses; [ artistic1 gpl1Plus ];
24459     };
24460   };
24462   TermSizePerl = buildPerlPackage {
24463     pname = "Term-Size-Perl";
24464     version = "0.031";
24465     src = fetchurl {
24466       url = "mirror://cpan/authors/id/F/FE/FERREIRA/Term-Size-Perl-0.031.tar.gz";
24467       hash = "sha256-rppnRssbMF3cj42MpGh4VSucESNiiXHhOidRg4IvIJ4=";
24468     };
24469     meta = {
24470       description = "Perl extension for retrieving terminal size (Perl version)";
24471       license = with lib.licenses; [ artistic1 gpl1Plus ];
24472     };
24473   };
24475   TermTable = buildPerlPackage {
24476     pname = "Term-Table";
24477     version = "0.017";
24478     src = fetchurl {
24479       url = "mirror://cpan/authors/id/E/EX/EXODIST/Term-Table-0.017.tar.gz";
24480       hash = "sha256-8R20JorYBE9uGhrJU0ygzTrXecQAb/83+uUA25j6yRo=";
24481     };
24482     propagatedBuildInputs = [ Importer ];
24483     meta = {
24484       description = "Format a header and rows into a table";
24485       license = with lib.licenses; [ artistic1 gpl1Plus ];
24486     };
24487   };
24489   TermSk = buildPerlPackage {
24490     pname = "Term-Sk";
24491     version = "0.18";
24492     src = fetchurl {
24493       url = "mirror://cpan/authors/id/K/KE/KEICHNER/Term-Sk-0.18.tar.gz";
24494       hash = "sha256-8uSReWBhIFsIaIgCsod5LX2AOwiXIzn7EHC6BWEq+IU=";
24495     };
24496     meta = {
24497       description = "Perl extension for displaying a progress indicator on a terminal";
24498       license = with lib.licenses; [ artistic1 gpl1Plus ];
24499     };
24500   };
24502   TermUI = buildPerlPackage {
24503     pname = "Term-UI";
24504     version = "0.50";
24505     src = fetchurl {
24506       url = "mirror://cpan/authors/id/B/BI/BINGOS/Term-UI-0.50.tar.gz";
24507       hash = "sha256-YL/dbUwVi4jTcBM/xlsgSFo2pFsS2QYAC4HHjKUkFj0=";
24508     };
24509     propagatedBuildInputs = [ LogMessageSimple ];
24510     meta = {
24511       description = "User interfaces via Term::ReadLine made easy";
24512       license = with lib.licenses; [ artistic1 gpl1Plus ];
24513     };
24514   };
24516   TermVT102 = buildPerlPackage {
24517     pname = "Term-VT102";
24518     version = "0.91";
24519     src = fetchurl {
24520       url = "mirror://cpan/authors/id/A/AJ/AJWOOD/Term-VT102-0.91.tar.gz";
24521       hash = "sha256-+VTgMQlB1FwPw+tKQPXToA1oEZ4nfTA6HmrxHe1vvZQ=";
24522     };
24523     meta = {
24524       description = "Class to emulate a DEC VT102 terminal";
24525       license = with lib.licenses; [ artistic2 ];
24526     };
24527   };
24529   TermVT102Boundless = buildPerlPackage {
24530     pname = "Term-VT102-Boundless";
24531     version = "0.05";
24532     src = fetchurl {
24533       url = "mirror://cpan/authors/id/F/FB/FBARRIOS/Term-VT102-Boundless-0.05.tar.gz";
24534       hash = "sha256-4d7YWuPXa1nAO4aX9KbLAa4xvWKpNU9bt9GPnpJ7SF8=";
24535     };
24536     propagatedBuildInputs = [ TermVT102 ];
24537     meta = {
24538       description = "Term::VT102 that grows automatically to accommodate whatever you print to it";
24539       license = with lib.licenses; [ artistic1 gpl1Plus ];
24540     };
24541   };
24543   TermAnimation = buildPerlPackage {
24544     pname = "Term-Animation";
24545     version = "2.6";
24546     src = fetchurl {
24547       url = "mirror://cpan/authors/id/K/KB/KBAUCOM/Term-Animation-2.6.tar.gz";
24548       hash = "sha256-fVw8LU+bZXqLHc5/Xiy74CraLpfHLzoDBL88mdCEsEU=";
24549     };
24550     propagatedBuildInputs = [ Curses ];
24551     meta = {
24552       description = "ASCII sprite animation framework";
24553       license = with lib.licenses; [ artistic1 gpl1Plus ];
24554     };
24555   };
24557   Test2Harness = buildPerlPackage {
24558     pname = "Test2-Harness";
24559     version = "1.000155";
24560     src = fetchurl {
24561       url = "mirror://cpan/authors/id/E/EX/EXODIST/Test2-Harness-1.000155.tar.gz";
24562       hash = "sha256-Hvi/euDKALaHu24RXzq4yVBI5ICsmuUylzabxpSkc4s=";
24563     };
24565     checkPhase = ''
24566       patchShebangs ./t ./scripts/yath
24567       export AUTOMATED_TESTING=1
24568       ./scripts/yath test -j $NIX_BUILD_CORES
24569     '';
24571     propagatedBuildInputs = [ DataUUID Importer LongJump ScopeGuard TermTable Test2PluginMemUsage Test2PluginUUID Test2Suite YAMLTiny gotofile ];
24572     meta = {
24573       description = "New and improved test harness with better Test2 integration";
24574       license = with lib.licenses; [ artistic1 gpl1Plus ];
24575       mainProgram = "yath";
24576       broken = stdenv.hostPlatform.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.Test2Harness.x86_64-darwin
24577     };
24578   };
24580   Test2PluginMemUsage = buildPerlPackage {
24581     pname = "Test2-Plugin-MemUsage";
24582     version = "0.002003";
24583     src = fetchurl {
24584       url = "mirror://cpan/authors/id/E/EX/EXODIST/Test2-Plugin-MemUsage-0.002003.tar.gz";
24585       hash = "sha256-XgZi1agjrggWQfXOgoQxEe7BgxzTH4g6bG3lSv34fCU=";
24586     };
24587     buildInputs = [ Test2Suite ];
24588     meta = {
24589       description = "Collect and display memory usage information";
24590       license = with lib.licenses; [ artistic1 gpl1Plus ];
24591     };
24592   };
24594   Test2PluginUUID = buildPerlPackage {
24595     pname = "Test2-Plugin-UUID";
24596     version = "0.002001";
24597     src = fetchurl {
24598       url = "mirror://cpan/authors/id/E/EX/EXODIST/Test2-Plugin-UUID-0.002001.tar.gz";
24599       hash = "sha256-TGyNSE1xU9h3ncFVqZKyAwlbXFqhz7Hui87c0GAYeMk=";
24600     };
24601     buildInputs = [ Test2Suite ];
24602     propagatedBuildInputs = [ DataUUID ];
24603     meta = {
24604       description = "Use REAL UUIDs in Test2";
24605       license = with lib.licenses; [ artistic1 gpl1Plus ];
24606     };
24607   };
24609   Test2PluginNoWarnings = buildPerlPackage {
24610     pname = "Test2-Plugin-NoWarnings";
24611     version = "0.09";
24612     src = fetchurl {
24613       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Test2-Plugin-NoWarnings-0.09.tar.gz";
24614       hash = "sha256-vj3YAAQu7zYr8X0gVs+ek03ukczOmOTxeLj7V3Ly+3Q=";
24615     };
24616     buildInputs = [ IPCRun3 Test2Suite ];
24617     propagatedBuildInputs = [ TestSimple13 ];
24618     meta = {
24619       description = "Fail if tests warn";
24620       homepage = "https://metacpan.org/release/Test2-Plugin-NoWarnings";
24621       license = with lib.licenses; [ artistic2 ];
24622     };
24623   };
24625   Test2Suite = buildPerlPackage {
24626     pname = "Test2-Suite";
24627     version = "0.000156";
24628     src = fetchurl {
24629       url = "mirror://cpan/authors/id/E/EX/EXODIST/Test2-Suite-0.000156.tar.gz";
24630       hash = "sha256-vzgq5y86k79+02iFEY+uL/qw/xF3Q/WQON8lTv7yyU4=";
24631     };
24632     propagatedBuildInputs = [ ModulePluggable ScopeGuard SubInfo TermTable TestSimple13 ];
24633     meta = {
24634       description = "Distribution with a rich set of tools built upon the Test2 framework";
24635       license = with lib.licenses; [ artistic1 gpl1Plus ];
24636     };
24637   };
24639   Test2ToolsFFI = buildPerlPackage {
24640     pname = "Test2-Tools-FFI";
24641     version = "0.06";
24642     src = fetchurl {
24643       url = "mirror://cpan/authors/id/P/PL/PLICEASE/Test2-Tools-FFI-0.06.tar.gz";
24644       hash = "sha256-MA28QKEubG+7y7lv05uQK+bZZXJtrx5qtzuKCv0lLy8=";
24645     };
24646     buildInputs = [ FileShareDirInstall Test2Suite ];
24647     propagatedBuildInputs = [ CaptureTiny FFICheckLib FFIPlatypus FileShareDirDist ];
24648     meta = {
24649       homepage = "https://metacpan.org/pod/Test2::Tools::FFI";
24650       description = "Tools for testing FFI";
24651       license = with lib.licenses; [ artistic1 gpl1Plus ];
24652       maintainers = with maintainers; [ tomasajt ];
24653     };
24654   };
24656   Test2ToolsMemoryCycle = buildPerlPackage {
24657     pname = "Test2-Tools-MemoryCycle";
24658     version = "0.01";
24659     src = fetchurl {
24660       url = "mirror://cpan/authors/id/P/PL/PLICEASE/Test2-Tools-MemoryCycle-0.01.tar.gz";
24661       hash = "sha256-U1s9ylQqMyUVEq3ktafb6+PESNg/iA0ZjkPcEnl5aYs=";
24662     };
24663     buildInputs = [ Test2Suite ];
24664     propagatedBuildInputs = [ DevelCycle PadWalker ];
24665     meta = {
24666       homepage = "https://metacpan.org/pod/Test2::Tools::MemoryCycle";
24667       description = "Check for memory leaks and circular memory references";
24668       license = with lib.licenses; [ artistic1 gpl1Plus ];
24669       maintainers = with maintainers; [ tomasajt ];
24670     };
24671   };
24673   TestAbortable = buildPerlPackage {
24674     pname = "Test-Abortable";
24675     version = "0.003";
24676     src = fetchurl {
24677       url = "mirror://cpan/authors/id/R/RJ/RJBS/Test-Abortable-0.003.tar.gz";
24678       hash = "sha256-TVPDXvPLf5wXUrqfEdOpeiETt9hMJg6rj5p8G4Aba40=";
24679     };
24680     propagatedBuildInputs = [ SubExporter ];
24681     buildInputs = [ TestNeeds ];
24682     meta = {
24683       description = "Subtests that you can die your way out of ... but survive";
24684       homepage = "https://github.com/rjbs/Test-Abortable";
24685       license = with lib.licenses; [ artistic1 gpl1Plus ];
24686     };
24687   };
24689   TestAssert = buildPerlModule {
24690     pname = "Test-Assert";
24691     version = "0.0504";
24692     src = fetchurl {
24693       url = "mirror://cpan/authors/id/D/DE/DEXTER/Test-Assert-0.0504.tar.gz";
24694       hash = "sha256-z6NtqWxQQzH/ICZ0e6R9R37+g1z2zyNO4QywX6n7i6Q=";
24695     };
24696     buildInputs = [ ClassInspector TestUnitLite ];
24697     propagatedBuildInputs = [ ExceptionBase constantboolean ];
24698     meta = {
24699       description = "Assertion methods for those who like JUnit";
24700       license = with lib.licenses; [ artistic1 gpl1Plus ];
24701     };
24702   };
24704   TestAssertions = buildPerlPackage {
24705     pname = "Test-Assertions";
24706     version = "1.054";
24707     src = fetchurl {
24708       url = "mirror://cpan/authors/id/B/BB/BBC/Test-Assertions-1.054.tar.gz";
24709       hash = "sha256-/NzkHVcnOIFYGt9oCiCmrfUaTDt+McP2mGb7kQk3AoA=";
24710     };
24711     propagatedBuildInputs = [ LogTrace ];
24712     meta = {
24713       description = "Simple set of building blocks for both unit and runtime testing";
24714       license = with lib.licenses; [ gpl2Only ];
24715     };
24716   };
24718   TestAggregate = buildPerlModule {
24719     pname = "Test-Aggregate";
24720     version = "0.375";
24721     src = fetchurl {
24722       url = "mirror://cpan/authors/id/R/RW/RWSTAUNER/Test-Aggregate-0.375.tar.gz";
24723       hash = "sha256-xswKv9DU/OhTcazKk+wkU4GEHTK0yqLWR15LyBMEJ9E=";
24724     };
24725     buildInputs = [ TestMost TestNoWarnings TestTrap ];
24726     meta = {
24727       description = "Aggregate *.t tests to make them run faster";
24728       license = with lib.licenses; [ artistic1 gpl1Plus ];
24729       broken = true; # This module only works with Test::More version < 1.3, but you have 1.302133
24730     };
24731   };
24734   TestBase = buildPerlPackage {
24735     pname = "Test-Base";
24736     version = "0.89";
24737     src = fetchurl {
24738       url = "mirror://cpan/authors/id/I/IN/INGY/Test-Base-0.89.tar.gz";
24739       hash = "sha256-J5Shqq6x06KH3SxyhiWGY3llYvfbnMxrQkvE8d6K0BQ=";
24740     };
24741     propagatedBuildInputs = [ Spiffy ];
24742     buildInputs = [ AlgorithmDiff TextDiff ];
24743     meta = {
24744       description = "Data Driven Testing Framework";
24745       license = with lib.licenses; [ artistic1 gpl1Plus ];
24746     };
24747   };
24749   TestBits = buildPerlPackage {
24750     pname = "Test-Bits";
24751     version = "0.02";
24752     src = fetchurl {
24753       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Test-Bits-0.02.tar.gz";
24754       hash = "sha256-qYJvVkg6J+LGMVZZDzKKNjPjA3XBDfyJ9mkOOSneC8M=";
24755     };
24756     propagatedBuildInputs = [ ListAllUtils ];
24757     buildInputs = [ TestFatal ];
24758     meta = {
24759       description = "Provides a bits_is() subroutine for testing binary data";
24760       homepage = "https://metacpan.org/release/Test-Bits";
24761       license = with lib.licenses; [ artistic2 ];
24762     };
24763   };
24765   TestCheckDeps = buildPerlPackage {
24766     pname = "Test-CheckDeps";
24767     version = "0.010";
24768     src = fetchurl {
24769       url = "mirror://cpan/authors/id/L/LE/LEONT/Test-CheckDeps-0.010.tar.gz";
24770       hash = "sha256-ZvzMpsbzMOfsyJi9alGEbiFFs+AteMSZe6a33iO1Ue4=";
24771     };
24772     propagatedBuildInputs = [ CPANMetaCheck ];
24773     meta = {
24774       description = "Check for presence of dependencies";
24775       license = with lib.licenses; [ artistic1 gpl1Plus ];
24776     };
24777   };
24779   TestClass = buildPerlPackage {
24780     pname = "Test-Class";
24781     version = "0.52";
24782     src = fetchurl {
24783       url = "mirror://cpan/authors/id/S/SZ/SZABGAB/Test-Class-0.52.tar.gz";
24784       hash = "sha256-QMGx04jwqGdHacJ1KfDMNjTKD9nY9ysZbAUxYRk0vII=";
24785     };
24786     buildInputs = [ TestException ];
24787     propagatedBuildInputs = [ MROCompat ModuleRuntime TryTiny ];
24788     meta = {
24789       description = "Easily create test classes in an xUnit/JUnit style";
24790       license = with lib.licenses; [ artistic1 gpl1Plus ];
24791     };
24792   };
24794   TestClassMost = buildPerlModule {
24795     pname = "Test-Class-Most";
24796     version = "0.08";
24797     src = fetchurl {
24798       url = "mirror://cpan/authors/id/O/OV/OVID/Test-Class-Most-0.08.tar.gz";
24799       hash = "sha256-Y0ze2Gu6Xd4Hztcv+4pGcF/5OqhEuY6WveBVQCNMff8=";
24800     };
24801     buildInputs = [ TestClass TestDeep TestDifferences TestException TestMost TestWarn ];
24802     meta = {
24803       description = "Test Classes the easy way";
24804       license = with lib.licenses; [ artistic1 gpl1Plus ];
24805     };
24806   };
24808   TestCleanNamespaces = buildPerlPackage {
24809     pname = "Test-CleanNamespaces";
24810     version = "0.24";
24811     src = fetchurl {
24812       url = "mirror://cpan/authors/id/E/ET/ETHER/Test-CleanNamespaces-0.24.tar.gz";
24813       hash = "sha256-M41VaejommVJNfhD7AvISqpIb+jdGJj7nKs+zOzVMno=";
24814     };
24815     buildInputs = [ Filepushd Moo Mouse RoleTiny SubExporter TestDeep TestNeeds TestWarnings namespaceclean ];
24816     propagatedBuildInputs = [ PackageStash SubIdentify ];
24817     meta = {
24818       description = "Check for uncleaned imports";
24819       homepage = "https://github.com/karenetheridge/Test-CleanNamespaces";
24820       license = with lib.licenses; [ artistic1 gpl1Plus ];
24821     };
24822   };
24824   TestCmd = buildPerlPackage {
24825     pname = "Test-Cmd";
24826     version = "1.09";
24827     src = fetchurl {
24828       url = "mirror://cpan/authors/id/N/NE/NEILB/Test-Cmd-1.09.tar.gz";
24829       hash = "sha256-zzMg7N3nkeC4lFogwfbyZdkPHj2rGPHiPLZ3x51yloQ=";
24830     };
24831       doCheck = false; /* test fails */
24832     meta = {
24833       description = "Perl module for portable testing of commands and scripts";
24834       homepage = "https://github.com/neilb/Test-Cmd";
24835       license = with lib.licenses; [ artistic1 gpl1Plus ];
24836     };
24837   };
24839   TestCommand = buildPerlModule {
24840     pname = "Test-Command";
24841     version = "0.11";
24842     src = fetchurl {
24843       url = "mirror://cpan/authors/id/D/DA/DANBOO/Test-Command-0.11.tar.gz";
24844       hash = "sha256-KKP8b+pzoZ9WPxG9DygYZ1bUx0IHvm3qyq0m0ggblTM=";
24845     };
24846     meta = {
24847       description = "Test routines for external commands";
24848       homepage = "https://metacpan.org/release/Test-Command";
24849       license = with lib.licenses; [ artistic1 gpl1Plus ];
24850     };
24851   };
24853   TestCompile = buildPerlModule {
24854     pname = "Test-Compile";
24855     version = "3.3.1";
24856     src = fetchurl {
24857       url = "mirror://cpan/authors/id/E/EG/EGILES/Test-Compile-v3.3.1.tar.gz";
24858       hash = "sha256-gIRQ89Ref0GapNZo4pgodonp6jY4hpO/8YDXhwzj5iE=";
24859     };
24860     propagatedBuildInputs = [ UNIVERSALrequire ];
24861     meta = {
24862       description = "Assert that your Perl files compile OK";
24863       license = with lib.licenses; [ artistic1 gpl1Plus ];
24864     };
24865   };
24867   TestCPANMeta = buildPerlPackage {
24868     pname = "Test-CPAN-Meta";
24869     version = "0.25";
24870     src = fetchurl {
24871       url = "mirror://cpan/authors/id/B/BA/BARBIE/Test-CPAN-Meta-0.25.tar.gz";
24872       hash = "sha256-9VtPnPa8OW0P6AJyZ2hcsqxK/86JfQlnoxf6xttajbU=";
24873     };
24874     meta = {
24875       description = "Validate your CPAN META.json files";
24876       license = with lib.licenses; [ artistic2 ];
24877     };
24878   };
24880   TestCPANMetaJSON = buildPerlPackage {
24881     pname = "Test-CPAN-Meta-JSON";
24882     version = "0.16";
24883     src = fetchurl {
24884       url = "mirror://cpan/authors/id/B/BA/BARBIE/Test-CPAN-Meta-JSON-0.16.tar.gz";
24885       hash = "sha256-Z6xQmt/7HSslao+MBSPgB2HZYBZhksYHApj3CIqa6ck=";
24886     };
24887     propagatedBuildInputs = [ JSON ];
24888     meta = {
24889       description = "Validate your CPAN META.json files";
24890       license = with lib.licenses; [ artistic2 ];
24891     };
24892   };
24894   TestDataSplit = buildPerlModule {
24895     pname = "Test-Data-Split";
24896     version = "0.2.2";
24897     src = fetchurl {
24898       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-Data-Split-0.2.2.tar.gz";
24899       hash = "sha256-5Qg4kK2tMNfeUHA1adX1zvF0oZhZNSLqe0bOOHuCgCI=";
24900     };
24901     buildInputs = [ TestDifferences ];
24902     propagatedBuildInputs = [ IOAll ListMoreUtils MooX MooXlate ];
24903     meta = {
24904       description = "Split data-driven tests into several test scripts";
24905       homepage = "https://metacpan.org/release/Test-Data-Split";
24906       license = with lib.licenses; [ mit ];
24907     };
24908   };
24910   TestDeep = buildPerlPackage {
24911     pname = "Test-Deep";
24912     version = "1.204";
24913     src = fetchurl {
24914       url = "mirror://cpan/authors/id/R/RJ/RJBS/Test-Deep-1.204.tar.gz";
24915       hash = "sha256-tlkfbM3YU8fvyf88V1Y3BAMhHP/kYEfwgrHNFhGoTl8=";
24916     };
24917     meta = {
24918       description = "Extremely flexible deep comparison";
24919       homepage = "https://github.com/rjbs/Test-Deep";
24920       license = with lib.licenses; [ artistic1 gpl1Plus ];
24921     };
24922   };
24924   TestDeepJSON = buildPerlModule {
24925     pname = "Test-Deep-JSON";
24926     version = "0.05";
24927     src = fetchurl {
24928       url = "mirror://cpan/authors/id/M/MO/MOTEMEN/Test-Deep-JSON-0.05.tar.gz";
24929       hash = "sha256-rshXG54xtzAeJhMsEyxoAJUtwInGRddpVKOtGms1CFg=";
24930     };
24931     buildInputs = [ ModuleBuildTiny ];
24932     propagatedBuildInputs = [ ExporterLite JSONMaybeXS TestDeep ];
24933     meta = {
24934       description = "Compare JSON with Test::Deep";
24935       homepage = "https://github.com/motemen/perl5-Test-Deep-JSON";
24936       license = with lib.licenses; [ artistic1 gpl1Plus ];
24937     };
24938   };
24940   TestDeepType = buildPerlPackage {
24941     pname = "Test-Deep-Type";
24942     version = "0.008";
24943     src = fetchurl {
24944       url = "mirror://cpan/authors/id/E/ET/ETHER/Test-Deep-Type-0.008.tar.gz";
24945       hash = "sha256-bnvqGi8edTGaItHFGZbrrFDKXjZj0bwiMTCIfmLpWfE=";
24946     };
24947     buildInputs = [ TestFatal TestNeeds ];
24948     propagatedBuildInputs = [ TestDeep TryTiny ];
24949     meta = {
24950       description = "Test::Deep plugin for validating type constraints";
24951       homepage = "https://github.com/karenetheridge/Test-Deep-Type";
24952       license = with lib.licenses; [ artistic1 gpl1Plus ];
24953     };
24954   };
24956   TestDiagINC = buildPerlPackage {
24957     pname = "Test-DiagINC";
24958     version = "0.010";
24959     src = fetchurl {
24960       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Test-DiagINC-0.010.tar.gz";
24961       hash = "sha256-W8uNNWxQnjWdU9hpwH79qo/uXWz5mJcBi5qRTOshIi4=";
24962     };
24963     buildInputs = [ CaptureTiny ];
24964     meta = {
24965       homepage = "https://github.com/dagolden/Test-DiagINC";
24966       description = "List modules and versions loaded if tests fail";
24967       license = lib.licenses.asl20;
24968     };
24969   };
24971   TestDir = buildPerlPackage {
24972     pname = "Test-Dir";
24973     version = "1.16";
24974     src = fetchurl {
24975       url = "mirror://cpan/authors/id/M/MT/MTHURN/Test-Dir-1.16.tar.gz";
24976       hash = "sha256-czKzI5E+tqJoTQlHVRljBLL4YG9w6quRNlTKkfJz6sI=";
24977     };
24978     meta = {
24979       description = "Test directory attributes";
24980       license = with lib.licenses; [ artistic1 gpl1Plus ];
24981     };
24982   };
24984   TestDifferences = buildPerlPackage {
24985     pname = "Test-Differences";
24986     version = "0.70";
24987     src = fetchurl {
24988       url = "mirror://cpan/authors/id/D/DC/DCANTRELL/Test-Differences-0.70.tar.gz";
24989       hash = "sha256-vuG1GGqpuif+0r8bBnRSDQvQzQUdkTOH+QhsH5SlaFQ=";
24990     };
24991     propagatedBuildInputs = [ CaptureTiny TextDiff ];
24992     meta = {
24993       description = "Test strings and data structures and show differences if not ok";
24994       license = with lib.licenses; [ artistic1 gpl1Plus ];
24995     };
24996   };
24998   TestDistManifest = buildPerlModule {
24999     pname = "Test-DistManifest";
25000     version = "1.014";
25001     src = fetchurl {
25002       url = "mirror://cpan/authors/id/E/ET/ETHER/Test-DistManifest-1.014.tar.gz";
25003       hash = "sha256-PSbCDfQmKJgcv8+lscoCjGzq2zRMHc+XolrWqItz18U=";
25004     };
25005     buildInputs = [ ModuleBuildTiny ];
25006     propagatedBuildInputs = [ ModuleManifest ];
25007     meta = {
25008       description = "Author test that validates a package MANIFEST";
25009       homepage = "https://github.com/jawnsy/Test-DistManifest";
25010       license = with lib.licenses; [ artistic1 gpl1Plus ];
25011     };
25012   };
25014   TestEOL = buildPerlPackage {
25015     pname = "Test-EOL";
25016     version = "2.02";
25017     src = fetchurl {
25018       url = "mirror://cpan/authors/id/E/ET/ETHER/Test-EOL-2.02.tar.gz";
25019       hash = "sha256-KDGZ1/sngH/iImr3sSVxxtwlCNjlwP61BdCJ0xcgr8Q=";
25020     };
25021     meta = {
25022       description = "Check the correct line endings in your project";
25023       homepage = "https://github.com/karenetheridge/Test-EOL";
25024       license = with lib.licenses; [ artistic1 gpl1Plus ];
25025     };
25026   };
25028   TestException = buildPerlPackage {
25029     pname = "Test-Exception";
25030     version = "0.43";
25031     src = fetchurl {
25032       url = "mirror://cpan/authors/id/E/EX/EXODIST/Test-Exception-0.43.tar.gz";
25033       hash = "sha256-FWsT8Hdk92bYtFpDco8kOa+Bo1EmJUON6reDt4g+tTM=";
25034     };
25035     propagatedBuildInputs = [ SubUplevel ];
25036     meta = {
25037       description = "Test exception-based code";
25038       license = with lib.licenses; [ artistic1 gpl1Plus ];
25039     };
25040   };
25042   TestExpect = buildPerlPackage {
25043     pname = "Test-Expect";
25044     version = "0.34";
25045     src = fetchurl {
25046       url = "mirror://cpan/authors/id/B/BP/BPS/Test-Expect-0.34.tar.gz";
25047       hash = "sha256-Jij87N2l9km9JTI/ZGuWoaB+RVfK3LMnybrU3EG7uZk=";
25048     };
25049     propagatedBuildInputs = [ ClassAccessorChained ExpectSimple ];
25050     meta = {
25051       description = "Automated driving and testing of terminal-based programs";
25052       license = with lib.licenses; [ artistic1 gpl1Plus ];
25053     };
25054   };
25056   TestFailWarnings = buildPerlPackage {
25057     pname = "Test-FailWarnings";
25058     version = "0.008";
25059     src = fetchurl {
25060       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Test-FailWarnings-0.008.tar.gz";
25061       hash = "sha256-2jTvkCn2hJ1gJiAdSRJ9BU7mrEuXnIIhAxX1chlkqW8=";
25062     };
25063     buildInputs = [ CaptureTiny ];
25064     meta = {
25065       description = "Add test failures if warnings are caught";
25066       homepage = "https://github.com/dagolden/Test-FailWarnings";
25067       license = with lib.licenses; [ asl20 ];
25068     };
25069   };
25071   TestFakeHTTPD = buildPerlModule {
25072     pname = "Test-Fake-HTTPD";
25073     version = "0.09";
25074     src = fetchurl {
25075       url = "mirror://cpan/authors/id/M/MA/MASAKI/Test-Fake-HTTPD-0.09.tar.gz";
25076       hash = "sha256-FPecsGepCSLpvlVPjks509aXeK5Mj/9E9WD2N/tvLR4=";
25077     };
25078     propagatedBuildInputs = [ HTTPDaemon Plack ];
25079     buildInputs = [ LWP ModuleBuildTiny TestException TestSharedFork TestTCP TestUseAllModules ];
25080     meta = {
25081       description = "Fake HTTP server";
25082       homepage = "https://github.com/masaki/Test-Fake-HTTPD";
25083       license = with lib.licenses; [ artistic1 gpl1Plus ];
25084     };
25085   };
25087   TestFatal = buildPerlPackage {
25088     pname = "Test-Fatal";
25089     version = "0.017";
25090     src = fetchurl {
25091       url = "mirror://cpan/authors/id/R/RJ/RJBS/Test-Fatal-0.017.tar.gz";
25092       hash = "sha256-N9//2vuEt2Lv6WsC+yqkHzcCbHPmuDWQ23YilpfzxKY=";
25093     };
25094     propagatedBuildInputs = [ TryTiny ];
25095     meta = {
25096       description = "Incredibly simple helpers for testing code with exceptions";
25097       homepage = "https://github.com/rjbs/Test-Fatal";
25098       license = with lib.licenses; [ artistic1 gpl1Plus ];
25099     };
25100   };
25102   TestFile = buildPerlPackage {
25103     pname = "Test-File";
25104     version = "1.993";
25105     src = fetchurl {
25106       url = "mirror://cpan/authors/id/B/BD/BDFOY/Test-File-1.993.tar.gz";
25107       hash = "sha256-7y/+Gq7HtC2HStQR7GR1R7m5vC9fuT5J4zmUiEVq/Ho=";
25108     };
25109     meta = {
25110       description = "Test file attributes";
25111       homepage = "https://github.com/briandfoy/test-file";
25112       license = with lib.licenses; [ artistic2 ];
25113     };
25114   };
25116   TestFileContents = buildPerlPackage {
25117     pname = "Test-File-Contents";
25118     version = "0.242";
25119     src = fetchurl {
25120       url = "mirror://cpan/authors/id/A/AR/ARISTOTLE/Test-File-Contents-0.242.tar.gz";
25121       hash = "sha256-qDisC29uEOiWE7UMphdzzbqbpHh7qC57tl2q9whKpQs=";
25122     };
25123     propagatedBuildInputs = [ TextDiff ];
25124     meta = {
25125       description = "Test routines for examining the contents of files";
25126       license = with lib.licenses; [ artistic1 gpl1Plus ];
25127     };
25128   };
25130   TestFileShareDir = buildPerlPackage {
25131     pname = "Test-File-ShareDir";
25132     version = "1.001002";
25133     src = fetchurl {
25134       url = "mirror://cpan/authors/id/K/KE/KENTNL/Test-File-ShareDir-1.001002.tar.gz";
25135       hash = "sha256-szZHy7Sy8vz73k+LtDg9CslcL4nExXcOtpHxZDozeq0=";
25136     };
25137     buildInputs = [ TestFatal ];
25138     propagatedBuildInputs = [ ClassTiny FileCopyRecursive FileShareDir PathTiny ScopeGuard ];
25139     meta = {
25140       description = "Create a Fake ShareDir for your modules for testing";
25141       homepage = "https://github.com/kentnl/Test-File-ShareDir";
25142       license = with lib.licenses; [ artistic1 gpl1Plus ];
25143     };
25144   };
25146   TestFilename = buildPerlPackage {
25147     pname = "Test-Filename";
25148     version = "0.03";
25149     src = fetchurl {
25150       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Test-Filename-0.03.tar.gz";
25151       hash = "sha256-akUMxMYoHtESnzKhwHQfIoln/touMqKRX/Yhw2Ul/L4=";
25152     };
25153     propagatedBuildInputs = [ PathTiny ];
25154     meta = {
25155       description = "Portable filename comparison";
25156       homepage = "https://metacpan.org/release/Test-Filename";
25157       license = with lib.licenses; [ asl20 ];
25158     };
25159   };
25161   TestFork = buildPerlModule {
25162     pname = "Test-Fork";
25163     version = "0.02";
25164     src = fetchurl {
25165       url = "mirror://cpan/authors/id/M/MS/MSCHWERN/Test-Fork-0.02.tar.gz";
25166       hash = "sha256-/P77+yT4havoJ8KtB6w9Th/s8hOhRxf8rzw3F1BF0D4=";
25167     };
25168     meta = {
25169       description = "Test code which forks";
25170       license = with lib.licenses; [ artistic1 gpl1Plus ];
25171     };
25172   };
25174   TestFutureIOImpl = buildPerlModule {
25175     pname = "Test-Future-IO-Impl";
25176     version = "0.14";
25177     src = fetchurl {
25178       url = "mirror://cpan/authors/id/P/PE/PEVANS/Test-Future-IO-Impl-0.14.tar.gz";
25179       hash = "sha256-AH22GdPUljQyXFbvvKDh5Vdt0z95RV8t6llb5u344jU=";
25180     };
25181     propagatedBuildInputs = [ Test2Suite ];
25182     meta = {
25183       description = "Acceptance tests for C<Future::IO> implementations";
25184       license = with lib.licenses; [ artistic1 gpl1Plus ];
25185     };
25186   };
25188   TestHarnessStraps = buildPerlModule {
25189     pname = "Test-Harness-Straps";
25190     version = "0.30";
25191     src = fetchurl {
25192       url = "mirror://cpan/authors/id/M/MS/MSCHWERN/Test-Harness-Straps-0.30.tar.gz";
25193       hash = "sha256-iwDvqjVyPBo1yMj1+kapnkvFKN+lIDUrVKxBjvbRz6g=";
25194     };
25195     meta = {
25196       description = "Detailed analysis of test results";
25197       license = with lib.licenses; [ artistic1 gpl1Plus ];
25198     };
25199   };
25201   TestHexDifferences = buildPerlPackage {
25202     pname = "Test-HexDifferences";
25203     version = "1.001";
25204     src = fetchurl {
25205       url = "mirror://cpan/authors/id/S/ST/STEFFENW/Test-HexDifferences-1.001.tar.gz";
25206       hash = "sha256-pjlF7N1CCvwxEJT5OiIM+zXfIyQt5hnlO6Z0d6E2kKI=";
25207     };
25208     propagatedBuildInputs = [ SubExporter TextDiff ];
25209     buildInputs = [ TestDifferences TestNoWarnings ];
25210     meta = {
25211       description = "Test binary as hexadecimal string";
25212       license = with lib.licenses; [ artistic1 gpl1Plus ];
25213     };
25214   };
25216   TestHexString = buildPerlModule {
25217     pname = "Test-HexString";
25218     version = "0.03";
25219     src = fetchurl {
25220       url = "mirror://cpan/authors/id/P/PE/PEVANS/Test-HexString-0.03.tar.gz";
25221       hash = "sha256-fUxM3BkvJZTceP916yz00FYfeUs27g6s7oxKGqigP0A=";
25222     };
25223     meta = {
25224       description = "Test binary strings with hex dump diagnostics";
25225       license = with lib.licenses; [ artistic1 gpl1Plus ];
25226     };
25227   };
25229   TestIdentity = buildPerlModule {
25230     pname = "Test-Identity";
25231     version = "0.01";
25232     src = fetchurl {
25233       url = "mirror://cpan/authors/id/P/PE/PEVANS/Test-Identity-0.01.tar.gz";
25234       hash = "sha256-LwIFAJrtFSZoGCqvoWNXqx9HtMvAAeiYcbZzh++OXyM=";
25235     };
25236     meta = {
25237       description = "Assert the referential identity of a reference";
25238       license = with lib.licenses; [ artistic1 gpl1Plus ];
25239     };
25240   };
25242   TestHTTPServerSimple = buildPerlPackage {
25243     pname = "Test-HTTP-Server-Simple";
25244     version = "0.11";
25245     src = fetchurl {
25246       url = "mirror://cpan/authors/id/A/AL/ALEXMV/Test-HTTP-Server-Simple-0.11.tar.gz";
25247       hash = "sha256-hcl+vU3rgFKRsXJ3Ay2kiAcijyT4mxzi+zwJ96iWu3g=";
25248     };
25249     propagatedBuildInputs = [ HTTPServerSimple ];
25250     meta = {
25251       description = "Test::More functions for HTTP::Server::Simple";
25252       license = with lib.licenses; [ artistic1 gpl1Plus ];
25253     };
25254   };
25256   TestJSON = buildPerlModule {
25257     pname = "Test-JSON";
25258     version = "0.11";
25259     src = fetchurl {
25260       url = "mirror://cpan/authors/id/O/OV/OVID/Test-JSON-0.11.tar.gz";
25261       hash = "sha256-B8CKsvzBKFDRrVT89q/prRoloJgxDD5xQq8dPLgh17M=";
25262     };
25263     propagatedBuildInputs = [ JSONAny ];
25264     buildInputs = [ TestDifferences ];
25265     meta = {
25266       description = "Test JSON data";
25267       license = with lib.licenses; [ artistic1 gpl1Plus ];
25268     };
25269   };
25271   TestKwalitee = buildPerlPackage {
25272     pname = "Test-Kwalitee";
25273     version = "1.28";
25274     src = fetchurl {
25275       url = "mirror://cpan/authors/id/E/ET/ETHER/Test-Kwalitee-1.28.tar.gz";
25276       hash = "sha256-tFNs3XVbWXciMtQyXae9T7f1vlC0WF27r3WO7DBiQ6M=";
25277     };
25278     propagatedBuildInputs = [ ModuleCPANTSAnalyse ];
25279     buildInputs = [ CPANMetaCheck TestDeep TestWarnings ];
25280     meta = {
25281       description = "Test the Kwalitee of a distribution before you release it";
25282       homepage = "https://github.com/karenetheridge/Test-Kwalitee";
25283       license = with lib.licenses; [ artistic1 gpl1Plus ];
25284       mainProgram = "kwalitee-metrics";
25285     };
25286   };
25288   TestLWPUserAgent = buildPerlPackage {
25289     pname = "Test-LWP-UserAgent";
25290     version = "0.036";
25291     src = fetchurl {
25292       url = "mirror://cpan/authors/id/E/ET/ETHER/Test-LWP-UserAgent-0.036.tar.gz";
25293       hash = "sha256-BTJ1MNNGuAphpulD+9dJmGvcqJIRpOswHAjC0XkxThE=";
25294     };
25295     propagatedBuildInputs = [ LWP SafeIsa namespaceclean ];
25296     buildInputs = [ PathTiny Plack TestDeep TestFatal TestNeeds TestRequiresInternet TestWarnings ];
25297     meta = {
25298       description = "LWP::UserAgent suitable for simulating and testing network calls";
25299       homepage = "https://github.com/karenetheridge/Test-LWP-UserAgent";
25300       license = with lib.licenses; [ artistic1 gpl1Plus ];
25301     };
25302   };
25304   TestLeakTrace = buildPerlPackage {
25305     pname = "Test-LeakTrace";
25306     version = "0.17";
25307     src = fetchurl {
25308       url = "mirror://cpan/authors/id/L/LE/LEEJO/Test-LeakTrace-0.17.tar.gz";
25309       hash = "sha256-d31k0pOPXqWGMA7vl+8D6stD1MGFPJw7EJHrMxFGeXA=";
25310     };
25311     meta = {
25312       description = "Traces memory leaks";
25313       homepage = "https://metacpan.org/release/Test-LeakTrace";
25314       license = with lib.licenses; [ artistic1 gpl1Plus ];
25315     };
25316   };
25318   TestLectroTest = buildPerlPackage {
25319     pname = "Test-LectroTest";
25320     version = "0.5001";
25321     src = fetchurl {
25322       url = "mirror://cpan/authors/id/T/TM/TMOERTEL/Test-LectroTest-0.5001.tar.gz";
25323       hash = "sha256-rCtPDZWJmvGhoex4TLdAsrkCVqvuEcg+eykRA+ye1zU=";
25324     };
25325     meta = {
25326       description = "Easy, automatic, specification-based tests";
25327       license = with lib.licenses; [ artistic1 gpl1Plus ];
25328     };
25329   };
25331   TestLoadAllModules = buildPerlPackage {
25332     pname = "Test-LoadAllModules";
25333     version = "0.022";
25334     src = fetchurl {
25335       url = "mirror://cpan/authors/id/K/KI/KITANO/Test-LoadAllModules-0.022.tar.gz";
25336       hash = "sha256-G4YfVVAgZIp0gdStKBqJ5iQYf4lDepizRjVpGyZeXP4=";
25337     };
25338     propagatedBuildInputs = [ ListMoreUtils ModulePluggable ];
25339     meta = {
25340       description = "Do use_ok for modules in search path";
25341       license = with lib.licenses; [ artistic1 gpl1Plus ];
25342     };
25343   };
25345   TestLongString = buildPerlPackage {
25346     pname = "Test-LongString";
25347     version = "0.17";
25348     src = fetchurl {
25349       url = "mirror://cpan/authors/id/R/RG/RGARCIA/Test-LongString-0.17.tar.gz";
25350       hash = "sha256-q8Q0nq8E0b7B5GQWajAYWR6oRtjzxcnIr0rEkF0+l08=";
25351     };
25352     meta = {
25353       description = "Tests strings for equality, with more helpful failures";
25354       license = with lib.licenses; [ artistic1 gpl1Plus ];
25355     };
25356   };
25358   TestMemoryCycle = buildPerlPackage {
25359     pname = "Test-Memory-Cycle";
25360     version = "1.06";
25361     src = fetchurl {
25362       url = "mirror://cpan/authors/id/P/PE/PETDANCE/Test-Memory-Cycle-1.06.tar.gz";
25363       hash = "sha256-nVPd/clkzYRUyw2kxpW2o65HtFg5KRw0y52NHPqrMgI=";
25364     };
25365     propagatedBuildInputs = [ DevelCycle PadWalker ];
25366     meta = {
25367       description = "Verifies code hasn't left circular references";
25368       license = with lib.licenses; [ artistic2 ];
25369     };
25370   };
25372   TestMemoryGrowth = buildPerlModule {
25373     pname = "Test-MemoryGrowth";
25374     version = "0.04";
25375     src = fetchurl {
25376       url = "mirror://cpan/authors/id/P/PE/PEVANS/Test-MemoryGrowth-0.04.tar.gz";
25377       hash = "sha256-oGWFJ1Kr1J5BFbmPbbRsdSy71ePkjtAUXO45L3k9LtA=";
25378     };
25379     meta = {
25380       description = "Assert that code does not cause growth in memory usage";
25381       license = with lib.licenses; [ artistic1 gpl1Plus ];
25382       broken = stdenv.hostPlatform.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.TestMemoryGrowth.x86_64-darwin
25383     };
25384   };
25386   TestMetricsAny = buildPerlModule {
25387     pname = "Test-Metrics-Any";
25388     version = "0.01";
25389     src = fetchurl {
25390       url = "mirror://cpan/authors/id/P/PE/PEVANS/Test-Metrics-Any-0.01.tar.gz";
25391       hash = "sha256-JQbIjU6yGydLEIX4BskY3Ml//2nhbRJJ5uGdlDYl5Gg=";
25392     };
25393     propagatedBuildInputs = [ MetricsAny ];
25394     meta = {
25395       description = "Assert that code produces metrics via Metrics::Any";
25396       license = with lib.licenses; [ artistic1 gpl1Plus ];
25397     };
25398   };
25400   TestMockClass = buildPerlModule {
25401     pname = "Test-Mock-Class";
25402     version = "0.0303";
25403     src = fetchurl {
25404       url = "mirror://cpan/authors/id/D/DE/DEXTER/Test-Mock-Class-0.0303.tar.gz";
25405       hash = "sha256-zS5S/inKCrtsLmGvvDP7Qui+tCGzhL5rwGSs8xl28wI=";
25406     };
25407     buildInputs = [ ClassInspector TestAssert TestUnitLite ];
25408     propagatedBuildInputs = [ FatalException Moose namespaceclean ];
25409     meta = {
25410       description = "Simulating other classes";
25411       license = with lib.licenses; [ lgpl2Plus ];
25412     };
25413   };
25415   TestMockGuard = buildPerlModule {
25416     pname = "Test-Mock-Guard";
25417     version = "0.10";
25418     src = fetchurl {
25419       url = "mirror://cpan/authors/id/X/XA/XAICRON/Test-Mock-Guard-0.10.tar.gz";
25420       hash = "sha256-fyKKY/jWzrkqp4QIChPoUHMSGyg17KBteU+XCZUNvT0=";
25421     };
25422     propagatedBuildInputs = [ ClassLoad ];
25423     meta = {
25424       description = "Simple mock test library using RAII";
25425       homepage = "https://github.com/zigorou/p5-test-mock-guard";
25426       license = with lib.licenses; [ artistic1 gpl1Plus ];
25427     };
25428   };
25430   TestMockHTTPTiny = buildPerlPackage {
25431     pname = "Test-Mock-HTTP-Tiny";
25432     version = "0.002";
25433     src = fetchurl {
25434       url = "mirror://cpan/authors/id/O/OD/ODYNIEC/Test-Mock-HTTP-Tiny-0.002.tar.gz";
25435       hash = "sha256-+c+tfYUEZQvtNJO8bSyoLXuRvDcTyGxDXnXriKxb5eY=";
25436     };
25437     propagatedBuildInputs = [ TestDeep URI ];
25438     meta = {
25439       description = "Record and replay HTTP requests/responses with HTTP::Tiny";
25440       homepage = "https://github.com/odyniec/p5-Test-Mock-HTTP-Tiny";
25441       license = with lib.licenses; [ artistic1 gpl1Plus ];
25442     };
25443   };
25445   TestMockModule = buildPerlModule {
25446     pname = "Test-MockModule";
25447     version = "0.177.0";
25448     src = fetchurl {
25449       url = "mirror://cpan/authors/id/G/GF/GFRANKS/Test-MockModule-v0.177.0.tar.gz";
25450       hash = "sha256-G9p6SdzqdgdtQKe2psPz4V5rGchLYXHfRFNNkROPEEU=";
25451     };
25452     propagatedBuildInputs = [ SUPER ];
25453     buildInputs = [ TestWarnings ];
25454     meta = {
25455       description = "Override subroutines in a module for unit testing";
25456       license = with lib.licenses; [ artistic1 gpl1Plus ];
25457     };
25458   };
25460   SUPER = buildPerlModule {
25461     pname = "SUPER";
25462     version = "1.20190531";
25463     src = fetchurl {
25464       url = "mirror://cpan/authors/id/C/CH/CHROMATIC/SUPER-1.20190531.tar.gz";
25465       hash = "sha256-aF0e525/DpAGlCkjv334sRwQcTKZKRdZPc9zl9QX05o=";
25466     };
25467     propagatedBuildInputs = [ SubIdentify ];
25468     meta = {
25469       description = "Control superclass method dispatch";
25470       license = with lib.licenses; [ artistic1 gpl1Plus ];
25471     };
25472   };
25475   TestMockObject = buildPerlPackage {
25476     pname = "Test-MockObject";
25477     version = "1.20200122";
25478     src = fetchurl {
25479       url = "mirror://cpan/authors/id/C/CH/CHROMATIC/Test-MockObject-1.20200122.tar.gz";
25480       hash = "sha256-K3+A2of1pv4DYNnuUhBRBTAXRCw6Juhdto36yfgwdiM=";
25481     };
25482     buildInputs = [ TestException TestWarn ];
25483     propagatedBuildInputs = [ UNIVERSALcan UNIVERSALisa ];
25484     meta = {
25485       description = "Perl extension for emulating troublesome interfaces";
25486       license = with lib.licenses; [ artistic1 gpl1Plus ];
25487     };
25488   };
25490   TestMockTime = buildPerlPackage {
25491     pname = "Test-MockTime";
25492     version = "0.17";
25493     src = fetchurl {
25494       url = "mirror://cpan/authors/id/D/DD/DDICK/Test-MockTime-0.17.tar.gz";
25495       hash = "sha256-M2PhGLJgbx1qvJVvIrDQkQl3K3CGFV+1ycf5gzUGAvk=";
25496     };
25497     meta = {
25498       description = "Replaces actual time with simulated time";
25499       license = with lib.licenses; [ artistic1 gpl1Plus ];
25500     };
25501   };
25503   TestMockTimeHiRes = buildPerlModule {
25504     pname = "Test-MockTime-HiRes";
25505     version = "0.08";
25506     src = fetchurl {
25507       url = "mirror://cpan/authors/id/T/TA/TARAO/Test-MockTime-HiRes-0.08.tar.gz";
25508       hash = "sha256-X0n3rviV0yfa/fJ0TznBdsirDkuCJ9LW495omiWb3sE=";
25509     };
25510     buildInputs = [ AnyEvent ModuleBuildTiny TestClass TestRequires ];
25511     propagatedBuildInputs = [ TestMockTime ];
25512     meta = {
25513       description = "Replaces actual time with simulated high resolution time";
25514       homepage = "https://github.com/tarao/perl5-Test-MockTime-HiRes";
25515       license = with lib.licenses; [ artistic1 gpl1Plus ];
25516     };
25517   };
25519   TestMojibake = buildPerlPackage {
25520     pname = "Test-Mojibake";
25521     version = "1.3";
25522     src = fetchurl {
25523       url = "mirror://cpan/authors/id/S/SY/SYP/Test-Mojibake-1.3.tar.gz";
25524       hash = "sha256-j/51/5tpNSSIcn3Kc9uR+KoUtZ8voQTrdxfA1xpfGzM=";
25525     };
25526     meta = {
25527       description = "Check your source for encoding misbehavior";
25528       homepage = "https://github.com/creaktive/Test-Mojibake";
25529       license = with lib.licenses; [ artistic1 gpl1Plus ];
25530       mainProgram = "scan_mojibake";
25531     };
25532   };
25534   TestMoreUTF8 = buildPerlPackage {
25535     pname = "Test-More-UTF8";
25536     version = "0.05";
25537     src = fetchurl {
25538       url = "mirror://cpan/authors/id/M/MO/MONS/Test-More-UTF8-0.05.tar.gz";
25539       hash = "sha256-ufHEs2qXzf76pT7REV3Tj0tIMDd3X2VZ7h3xSs/RzgQ=";
25540     };
25541     meta = {
25542       description = "Enhancing Test::More for UTF8-based projects";
25543       license = with lib.licenses; [ artistic1 gpl1Plus ];
25544     };
25545   };
25547   TestMost = buildPerlPackage {
25548     pname = "Test-Most";
25549     version = "0.38";
25550     src = fetchurl {
25551       url = "mirror://cpan/authors/id/O/OV/OVID/Test-Most-0.38.tar.gz";
25552       hash = "sha256-CJ64lPe6zkw3xjNODikOsgM47hAiOvDILL5ygceDgt8=";
25553     };
25554     propagatedBuildInputs = [ ExceptionClass ];
25555     buildInputs = [ TestDeep TestDifferences TestException TestWarn ];
25556     meta = {
25557       description = "Most commonly needed test functions and features";
25558       license = with lib.licenses; [ artistic1 gpl1Plus ];
25559     };
25560   };
25562   Testmysqld = buildPerlModule {
25563     pname = "Test-mysqld";
25564     version = "1.0013";
25565     src = fetchurl {
25566       url = "mirror://cpan/authors/id/S/SO/SONGMU/Test-mysqld-1.0013.tar.gz";
25567       hash = "sha256-V61BoJBXyWO1gsgaB276UPpW664hd9gwd33oOGBePu8=";
25568     };
25569     buildInputs = [ pkgs.which ModuleBuildTiny TestSharedFork ];
25570     propagatedBuildInputs = [ ClassAccessorLite DBDmysql FileCopyRecursive ];
25571     meta = {
25572       description = "Mysqld runner for tests";
25573       homepage = "https://github.com/kazuho/p5-test-mysqld";
25574       license = with lib.licenses; [ artistic1 gpl1Plus ];
25575       maintainers = [ maintainers.sgo ];
25576     };
25577   };
25579   TestNeeds = buildPerlPackage {
25580     pname = "Test-Needs";
25581     version = "0.002010";
25582     src = fetchurl {
25583       url = "mirror://cpan/authors/id/H/HA/HAARG/Test-Needs-0.002010.tar.gz";
25584       hash = "sha256-kj/9x4/LqWYJdT5LriawugGGiT3kpjzVI24BLHyQ4gg=";
25585     };
25586     meta = {
25587       description = "Skip tests when modules not available";
25588       license = with lib.licenses; [ artistic1 gpl1Plus ];
25589     };
25590   };
25592   TestNoTabs = buildPerlPackage {
25593     pname = "Test-NoTabs";
25594     version = "2.02";
25595     src = fetchurl {
25596       url = "mirror://cpan/authors/id/E/ET/ETHER/Test-NoTabs-2.02.tar.gz";
25597       hash = "sha256-+3XGo4ch8BaeEcHn2+UyntchaIWgsBEj80LdhtM1YDA=";
25598     };
25599     meta = {
25600       description = "Check the presence of tabs in your project";
25601       homepage = "https://github.com/karenetheridge/Test-NoTabs";
25602       license = with lib.licenses; [ artistic1 gpl1Plus ];
25603     };
25604   };
25606   TestNoWarnings = buildPerlPackage {
25607     pname = "Test-NoWarnings";
25608     version = "1.06";
25609     src = fetchurl {
25610       url = "mirror://cpan/authors/id/H/HA/HAARG/Test-NoWarnings-1.06.tar.gz";
25611       hash = "sha256-wtxRFDt+tjIxIQ4n3yDSyDk3cuCjM1R+yLeiBe1i9zc=";
25612     };
25613     meta = {
25614       description = "Make sure you didn't emit any warnings while testing";
25615       license = with lib.licenses; [ lgpl21Only ];
25616     };
25617   };
25619   TestObject = buildPerlPackage {
25620     pname = "Test-Object";
25621     version = "0.08";
25622     src = fetchurl {
25623       url = "mirror://cpan/authors/id/E/ET/ETHER/Test-Object-0.08.tar.gz";
25624       hash = "sha256-ZSeJZBR4NzE/QQjlW1lnboo2TW7fAbPcGYruiUqx0Ls=";
25625     };
25626     meta = {
25627       description = "Thoroughly testing objects via registered handlers";
25628       license = with lib.licenses; [ artistic1 gpl1Plus ];
25629     };
25630   };
25632   TestOutput = buildPerlPackage {
25633     pname = "Test-Output";
25634     version = "1.034";
25635     src = fetchurl {
25636       url = "mirror://cpan/authors/id/B/BD/BDFOY/Test-Output-1.034.tar.gz";
25637       hash = "sha256-zULigBwNK0gtGMn7SwbHVwVIGLy7KCTl378zrXo9aaA=";
25638     };
25639     propagatedBuildInputs = [ CaptureTiny ];
25640     meta = {
25641       description = "Utilities to test STDOUT and STDERR messages";
25642       license = with lib.licenses; [ artistic2 ];
25643     };
25644   };
25646   TestPAUSEPermissions = buildPerlPackage {
25647     pname = "Test-PAUSE-Permissions";
25648     version = "0.07";
25649     src = fetchurl {
25650       url = "mirror://cpan/authors/id/S/SK/SKAJI/Test-PAUSE-Permissions-0.07.tar.gz";
25651       hash = "sha256-VXDBu/KbxjeoRWcIuaJ0bPT8usE3SF7f82D48I5xBz4=";
25652     };
25653     propagatedBuildInputs = [ ConfigIdentity PAUSEPermissions ParseLocalDistribution ];
25654     buildInputs = [ ExtUtilsMakeMakerCPANfile TestUseAllModules ];
25655     meta = {
25656       description = "Tests module permissions in your distribution";
25657       license = with lib.licenses; [ artistic1 gpl1Plus ];
25658     };
25659   };
25661   TestPerlCritic = buildPerlModule {
25662     pname = "Test-Perl-Critic";
25663     version = "1.04";
25664     src = fetchurl {
25665       url = "mirror://cpan/authors/id/P/PE/PETDANCE/Test-Perl-Critic-1.04.tar.gz";
25666       hash = "sha256-KPgGtUEseQi1bPFnMIS4tEzhy1TJQX14TZFCjhoECW4=";
25667     };
25668     propagatedBuildInputs = [ MCE PerlCritic ];
25669     meta = {
25670       description = "Use Perl::Critic in test programs";
25671       license = with lib.licenses; [ artistic1 gpl1Plus ];
25672     };
25673   };
25675   TestPerlTidy = buildPerlModule {
25676     pname = "Test-PerlTidy";
25677     version = "20230226";
25678     src = fetchurl {
25679       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-PerlTidy-20230226.tar.gz";
25680       hash = "sha256-wOJCEQeVeV1Nu2xEFmzlV09cftuninidG8rnZoXYA8E=";
25681     };
25682     propagatedBuildInputs = [ PathTiny PerlTidy TextDiff ];
25683     buildInputs = [ TestPerlCritic ];
25684     meta = {
25685       description = "Check that all your files are tidy";
25686       homepage = "https://metacpan.org/release/Test-PerlTidy";
25687       license = with lib.licenses; [ artistic1 gpl1Plus ];
25688     };
25689   };
25691   TestPod = buildPerlPackage {
25692     pname = "Test-Pod";
25693     version = "1.52";
25694     src = fetchurl {
25695       url = "mirror://cpan/authors/id/E/ET/ETHER/Test-Pod-1.52.tar.gz";
25696       hash = "sha256-YKjbzGAWi/HapcwjUCNt+TQ+mHj0q5gwlwpd3m/o5fw=";
25697     };
25698     meta = {
25699       description = "Check for POD errors in files";
25700       homepage = "https://search.cpan.org/dist/Test-Pod";
25701       license = with lib.licenses; [ artistic1 gpl1Plus ];
25702     };
25703   };
25705   TestPodCoverage = buildPerlPackage {
25706     pname = "Test-Pod-Coverage";
25707     version = "1.10";
25708     src = fetchurl {
25709       url = "mirror://cpan/authors/id/N/NE/NEILB/Test-Pod-Coverage-1.10.tar.gz";
25710       hash = "sha256-SMnMqffZnu50EXZEW0Ma3wnAKeGqV8RwPJ9G92AdQNQ=";
25711     };
25712     propagatedBuildInputs = [ PodCoverage ];
25713     meta = {
25714       description = "Check for pod coverage in your distribution";
25715       license = with lib.licenses; [ artistic2 ];
25716     };
25717   };
25719   TestPodLinkCheck = buildPerlModule {
25720     pname = "Test-Pod-LinkCheck";
25721     version = "0.008";
25722     src = fetchurl {
25723       url = "mirror://cpan/authors/id/A/AP/APOCAL/Test-Pod-LinkCheck-0.008.tar.gz";
25724       hash = "sha256-K/53EXPDi2nusIlQTj92URuOReap5trD5hbkAOpnvPA=";
25725     };
25726     buildInputs = [ ModuleBuildTiny TestPod ];
25727     propagatedBuildInputs = [ CaptureTiny Moose podlinkcheck ];
25728     meta = {
25729       description = "Tests POD for invalid links";
25730       homepage = "https://search.cpan.org/dist/Test-Pod-LinkCheck";
25731       license = with lib.licenses; [ artistic1 gpl1Plus ];
25732     };
25733   };
25735   TestPodNo404s = buildPerlModule {
25736     pname = "Test-Pod-No404s";
25737     version = "0.02";
25738     src = fetchurl {
25739       url = "mirror://cpan/authors/id/A/AP/APOCAL/Test-Pod-No404s-0.02.tar.gz";
25740       hash = "sha256-EcYGBW/WK9ROB5977wbEWapYnuhc3tv6DMMl6jV8jnk=";
25741     };
25742     propagatedBuildInputs = [ LWP URIFind ];
25743     buildInputs = [ ModuleBuildTiny TestPod ];
25744     meta = {
25745       description = "Using this test module will check your POD for any http 404 links";
25746       homepage = "https://search.cpan.org/dist/Test-Pod-No404s";
25747       license = with lib.licenses; [ artistic1 gpl1Plus ];
25748     };
25749   };
25751   TestPortabilityFiles = buildPerlPackage {
25752     pname = "Test-Portability-Files";
25753     version = "0.10";
25754     src = fetchurl {
25755       url = "mirror://cpan/authors/id/A/AB/ABRAXXA/Test-Portability-Files-0.10.tar.gz";
25756       hash = "sha256-COS0MkktwbRLVdXbV5Uut2N5x/Q07o8WrKZNSR9AGhY=";
25757     };
25758     meta = {
25759       description = "Check file names portability";
25760       license = with lib.licenses; [ artistic1 gpl1Plus ];
25761     };
25762   };
25764   TestRefcount = buildPerlModule {
25765     pname = "Test-Refcount";
25766     version = "0.10";
25767     src = fetchurl {
25768       url = "mirror://cpan/authors/id/P/PE/PEVANS/Test-Refcount-0.10.tar.gz";
25769       hash = "sha256-BFfCCklWRz0VfE+q/4gUFUvJP24rVDwoEqGf+OM3DrI=";
25770     };
25771     meta = {
25772       description = "Assert reference counts on objects";
25773       license = with lib.licenses; [ artistic1 gpl1Plus ];
25774     };
25775   };
25777   TestRequires = buildPerlPackage {
25778     pname = "Test-Requires";
25779     version = "0.11";
25780     src = fetchurl {
25781       url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/Test-Requires-0.11.tar.gz";
25782       hash = "sha256-S4jeVJWX7s3ffDw4pNAgShb1mtgEV3tnGJasBOJOBA8=";
25783     };
25784     meta = {
25785       description = "Checks to see if the module can be loaded";
25786       homepage = "https://github.com/tokuhirom/Test-Requires";
25787       license = with lib.licenses; [ artistic1 gpl1Plus ];
25788     };
25789   };
25791   TestRequiresGit = buildPerlPackage {
25792     pname = "Test-Requires-Git";
25793     version = "1.008";
25794     src = fetchurl {
25795       url = "mirror://cpan/authors/id/B/BO/BOOK/Test-Requires-Git-1.008.tar.gz";
25796       hash = "sha256-cJFiEJcNhNdJFFEVmri2fhUlHIwNrnw99sjYhULqQqY=";
25797     };
25798     propagatedBuildInputs = [ GitVersionCompare ];
25799     meta = {
25800       description = "Check your test requirements against the available version of Git";
25801       license = with lib.licenses; [ artistic1 gpl1Plus ];
25802     };
25803   };
25805   TestRequiresInternet = buildPerlPackage {
25806     pname = "Test-RequiresInternet";
25807     version = "0.05";
25808     src = fetchurl {
25809       url = "mirror://cpan/authors/id/M/MA/MALLEN/Test-RequiresInternet-0.05.tar.gz";
25810       hash = "sha256-u6ezKhzA1Yzi7CCyAKc0fGljFkHoyuj/RWetJO8egz4=";
25811     };
25812     meta = {
25813       description = "Easily test network connectivity";
25814       homepage = "https://metacpan.org/dist/Test-RequiresInternet";
25815       license = with lib.licenses; [ artistic1 gpl1Plus ];
25816     };
25817   };
25819   TestRoo = buildPerlPackage {
25820     pname = "Test-Roo";
25821     version = "1.004";
25822     src = fetchurl {
25823       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Test-Roo-1.004.tar.gz";
25824       hash = "sha256-IRKaPOy1B7AJSOFs8V/N5dxNsjWrqEr9f0fSIBOp3tY=";
25825     };
25827     propagatedBuildInputs = [ Moo MooXTypesMooseLike SubInstall strictures ];
25828     buildInputs = [ CaptureTiny ];
25829     meta = {
25830       description = "Composable, reusable tests with roles and Moo";
25831       license = with lib.licenses; [ asl20 ];
25832     };
25833   };
25835   TestRoutine = buildPerlPackage {
25836     pname = "Test-Routine";
25837     version = "0.031";
25838     src = fetchurl {
25839       url = "mirror://cpan/authors/id/R/RJ/RJBS/Test-Routine-0.031.tar.gz";
25840       hash = "sha256-f9kp7TPyVMoJkCJQGSYInHeU71d7uoYHbn2YFlYPXAc=";
25841     };
25842     buildInputs = [ TestAbortable TestFatal ];
25843     propagatedBuildInputs = [ Moose namespaceautoclean ];
25844     meta = {
25845       description = "Composable units of assertion";
25846       homepage = "https://github.com/rjbs/Test-Routine";
25847       license = with lib.licenses; [ artistic1 gpl1Plus ];
25848     };
25849   };
25851   TestRun = buildPerlModule {
25852     pname = "Test-Run";
25853     version = "0.0305";
25854     src = fetchurl {
25855       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-Run-0.0305.tar.gz";
25856       hash = "sha256-+Jpx3WD44qd26OYBd8ntXlkJbUAF1QvSmJuSeeCHwkg=";
25857     };
25858     buildInputs = [ TestTrap ];
25859     propagatedBuildInputs = [ IPCSystemSimple ListMoreUtils MooseXStrictConstructor TextSprintfNamed UNIVERSALrequire ];
25860     meta = {
25861       description = "Base class to run standard TAP scripts";
25862       homepage = "https://web-cpan.shlomifish.org/modules/Test-Run";
25863       license = with lib.licenses; [ mit ];
25864     };
25865   };
25867   TestRunCmdLine = buildPerlModule {
25868     pname = "Test-Run-CmdLine";
25869     version = "0.0132";
25870     src = fetchurl {
25871       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-Run-CmdLine-0.0132.tar.gz";
25872       hash = "sha256-ssORzVRjV378dti/so6tKz1OOm+pLbDvNMANyfTPpwc=";
25873     };
25874     buildInputs = [ TestRun TestTrap ];
25875     propagatedBuildInputs = [ MooseXGetopt UNIVERSALrequire YAMLLibYAML ];
25876     doCheck = !stdenv.hostPlatform.isDarwin;
25877     meta = {
25878       description = "Analyze tests from the command line using Test::Run";
25879       homepage = "http://web-cpan.berlios.de/modules/Test-Run";
25880       license = with lib.licenses; [ mit ];
25881       mainProgram = "runprove";
25882     };
25883   };
25885   TestRunPluginAlternateInterpreters = buildPerlModule {
25886     pname = "Test-Run-Plugin-AlternateInterpreters";
25887     version = "0.0125";
25888     src = fetchurl {
25889       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-Run-Plugin-AlternateInterpreters-0.0125.tar.gz";
25890       hash = "sha256-UsNomxRdgh8XCj8uXPM6DCkoKE3d6W1sN88VAA8ymbs=";
25891     };
25892     buildInputs = [ TestRun TestRunCmdLine TestTrap YAMLLibYAML ];
25893     propagatedBuildInputs = [ Moose ];
25894     meta = {
25895       description = "Define different interpreters for different test scripts with Test::Run";
25896       homepage = "https://web-cpan.shlomifish.org/modules/Test-Run";
25897       license = with lib.licenses; [ mit ];
25898     };
25899   };
25901   TestRunPluginBreakOnFailure = buildPerlModule {
25902     pname = "Test-Run-Plugin-BreakOnFailure";
25903     version = "0.0.6";
25904     src = fetchurl {
25905       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-Run-Plugin-BreakOnFailure-v0.0.6.tar.gz";
25906       hash = "sha256-oBgO4+LwwUQSkFXaBeKTFRC59QcXTQ+6yjwMndBNE6k=";
25907     };
25908     buildInputs = [ TestRun TestRunCmdLine TestTrap YAMLLibYAML ];
25909     propagatedBuildInputs = [ Moose ];
25910     meta = {
25911       description = "Stop processing the entire test suite";
25912       homepage = "https://web-cpan.shlomifish.org/modules/Test-Run";
25913       license = with lib.licenses; [ mit ];
25914     };
25915   };
25917   TestRunPluginColorFileVerdicts = buildPerlModule {
25918     pname = "Test-Run-Plugin-ColorFileVerdicts";
25919     version = "0.0125";
25920     src = fetchurl {
25921       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-Run-Plugin-ColorFileVerdicts-0.0125.tar.gz";
25922       hash = "sha256-HCQaLBSm/WZLRy5Lb2iP1gyHlzsxjITgFIccBn8uHkY=";
25923     };
25924     buildInputs = [ TestRun TestRunCmdLine TestTrap ];
25925     propagatedBuildInputs = [ Moose ];
25926     moreInputs = [ TestTrap ]; # Added because tests were failing without it
25927     doCheck=true;
25928     meta = {
25929       description = "Make the file verdict ('ok', 'NOT OK')";
25930       homepage = "https://web-cpan.shlomifish.org/modules/Test-Run";
25931       license = with lib.licenses; [ mit ];
25932     };
25933   };
25935   TestRunPluginColorSummary = buildPerlModule {
25936     pname = "Test-Run-Plugin-ColorSummary";
25937     version = "0.0203";
25938     src = fetchurl {
25939       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-Run-Plugin-ColorSummary-0.0203.tar.gz";
25940       hash = "sha256-e9l5N5spa1EPxVuxwAuKEM00hQ5OIZf1cBtUYAY/iv0=";
25941     };
25942     buildInputs = [ TestRun TestRunCmdLine TestTrap ];
25943     moreInputs = [ TestTrap ]; # Added because tests were failing without it
25944     doCheck=true;
25945     meta = {
25946       description = "Test::Run plugin that";
25947       homepage = "https://web-cpan.shlomifish.org/modules/Test-Run";
25948       license = with lib.licenses; [ mit ];
25949     };
25950   };
25952   TestRunPluginTrimDisplayedFilenames = buildPerlModule {
25953     pname = "Test-Run-Plugin-TrimDisplayedFilenames";
25954     version = "0.0126";
25955     src = fetchurl {
25956       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-Run-Plugin-TrimDisplayedFilenames-0.0126.tar.gz";
25957       hash = "sha256-ioZJw8anmIp3N65KcW1g4MazIXMBtAFT6tNquPTqkCg=";
25958     };
25959     buildInputs = [ TestRun TestRunCmdLine TestTrap YAMLLibYAML ];
25960     propagatedBuildInputs = [ Moose ];
25961     meta = {
25962       description = "Trim the first components";
25963       homepage = "https://web-cpan.shlomifish.org/modules/Test-Run";
25964       license = with lib.licenses; [ mit ];
25965     };
25966   };
25968   TestRunValgrind = buildPerlModule {
25969     pname = "Test-RunValgrind";
25970     version = "0.2.2";
25971     src = fetchurl {
25972       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-RunValgrind-0.2.2.tar.gz";
25973       hash = "sha256-aRPRTK3CUbI8W3I1+NSsPeKHE41xK3W9lLACrwuPpe4=";
25974     };
25975     buildInputs = [ TestTrap ];
25976     propagatedBuildInputs = [ PathTiny ];
25977     meta = {
25978       description = "Tests that an external program is valgrind-clean";
25979       homepage = "https://metacpan.org/release/Test-RunValgrind";
25980       license = with lib.licenses; [ mit ];
25981     };
25982   };
25984   TestScript = buildPerlPackage {
25985     pname = "Test-Script";
25986     version = "1.29";
25987     src = fetchurl {
25988       url = "mirror://cpan/authors/id/P/PL/PLICEASE/Test-Script-1.29.tar.gz";
25989       hash = "sha256-iS5+bB6nsWcQkJlCz1wL2rcO7i79SqnBbqlS4rkPiVA=";
25990     };
25992     buildInputs = [ Test2Suite ];
25994     propagatedBuildInputs = [ CaptureTiny ProbePerl ];
25995     meta = {
25996       description = "Basic cross-platform tests for scripts";
25997       license = with lib.licenses; [ artistic1 gpl1Plus ];
25998     };
25999   };
26001   TestScriptRun = buildPerlPackage {
26002     pname = "Test-Script-Run";
26003     version = "0.08";
26004     src = fetchurl {
26005       url = "mirror://cpan/authors/id/S/SU/SUNNAVY/Test-Script-Run-0.08.tar.gz";
26006       hash = "sha256-H+8hbnC8QlrOPixDcN/N3bXnmLCZ77omeSRKTVvBqwo=";
26007     };
26008     propagatedBuildInputs = [ IPCRun3 TestException ];
26009     meta = {
26010       description = "Test scripts with run";
26011       license = with lib.licenses; [ artistic1 gpl1Plus ];
26012     };
26013   };
26015   TestSharedFork = buildPerlPackage {
26016     pname = "Test-SharedFork";
26017     version = "0.35";
26018     src = fetchurl {
26019       url = "mirror://cpan/authors/id/E/EX/EXODIST/Test-SharedFork-0.35.tar.gz";
26020       hash = "sha256-KTLoZWEOgHWPdkxYZ1fvjhHbEoTZWOJeS3qFCYQUxZ8=";
26021     };
26022     buildInputs = [ TestRequires ];
26023     meta = {
26024       description = "Fork test";
26025       homepage = "https://github.com/tokuhirom/Test-SharedFork";
26026       license = with lib.licenses; [ artistic1 gpl1Plus ];
26027     };
26028   };
26030   TestSimple13 = buildPerlPackage {
26031     pname = "Test-Simple";
26032     version = "1.302195";
26033     src = fetchurl {
26034       url = "mirror://cpan/authors/id/E/EX/EXODIST/Test-Simple-1.302195.tar.gz";
26035       hash = "sha256-s5C7I1kuC5Rsla27PDCxG8Y0ooayhHvmEa2SnFfjmmw=";
26036     };
26037     meta = {
26038       description = "Basic utilities for writing tests";
26039       license = with lib.licenses; [ artistic1 gpl1Plus ];
26040     };
26041   };
26043   TestSnapshot = buildPerlPackage {
26044     pname = "Test-Snapshot";
26045     version = "0.06";
26046     src = fetchurl {
26047       url = "mirror://cpan/authors/id/E/ET/ETJ/Test-Snapshot-0.06.tar.gz";
26048       hash = "sha256-9N16mlW6oiR1QK40IQzQWgT50QYb7+yXockO2pW/rkU=";
26049     };
26050     buildInputs = [ CaptureTiny ];
26051     propagatedBuildInputs = [ TextDiff ];
26052     meta = {
26053       description = "Test against data stored in automatically-named file";
26054       license = with lib.licenses; [ artistic2 ];
26055     };
26056   };
26058   TestSpec = buildPerlPackage {
26059     pname = "Test-Spec";
26060     version = "0.54";
26061     src = fetchurl {
26062       url = "mirror://cpan/authors/id/A/AK/AKZHAN/Test-Spec-0.54.tar.gz";
26063       hash = "sha256-CjHPEmXc7pC7xCRWrWC7Njr8f6xml//7D9SbupKhZdI=";
26064     };
26065     propagatedBuildInputs = [ DevelGlobalPhase PackageStash TieIxHash ];
26066     buildInputs = [ TestDeep TestTrap ];
26067     meta = {
26068       description = "Write tests in a declarative specification style";
26069       license = with lib.licenses; [ artistic1 gpl1Plus ];
26070     };
26071   };
26073   TestSubCalls = buildPerlPackage {
26074     pname = "Test-SubCalls";
26075     version = "1.10";
26076     src = fetchurl {
26077       url = "mirror://cpan/authors/id/E/ET/ETHER/Test-SubCalls-1.10.tar.gz";
26078       hash = "sha256-y8Hps1oF5x/rwT5e9UejHIJJiZu2AR29ydn/Nm3atsI=";
26079     };
26080     propagatedBuildInputs = [ HookLexWrap ];
26081     meta = {
26082       description = "Track the number of times subs are called";
26083       license = with lib.licenses; [ artistic1 gpl1Plus ];
26084     };
26085   };
26087   TestSynopsis = buildPerlPackage {
26088     pname = "Test-Synopsis";
26089     version = "0.17";
26090     src = fetchurl {
26091       url = "mirror://cpan/authors/id/Z/ZO/ZOFFIX/Test-Synopsis-0.17.tar.gz";
26092       hash = "sha256-0mjJizPS+hTbsisg1lYbq0ie6CWH374ZrSd2IMe4tt4=";
26093     };
26094     meta = {
26095       description = "Test your SYNOPSIS code";
26096       homepage = "https://metacpan.org/release/Test-Synopsis";
26097       license = with lib.licenses; [ artistic1 gpl1Plus ];
26098     };
26099   };
26101   TestTableDriven = buildPerlPackage {
26102     pname = "Test-TableDriven";
26103     version = "0.02";
26104     src = fetchurl {
26105       url = "mirror://cpan/authors/id/J/JR/JROCKWAY/Test-TableDriven-0.02.tar.gz";
26106       hash = "sha256-Qlh4r88qFOBHyviRsZFen1/7A2lBYJxDjg370bWxhZo=";
26107     };
26108     meta = {
26109       description = "Write tests, not scripts that run them";
26110       license = with lib.licenses; [ artistic1 gpl1Plus ];
26111     };
26112   };
26114   TestTempDirTiny = buildPerlPackage {
26115     pname = "Test-TempDir-Tiny";
26116     version = "0.018";
26117     src = fetchurl {
26118       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Test-TempDir-Tiny-0.018.tar.gz";
26119       hash = "sha256-17eh/X/M4BaNRPuIdpGP6KmvSa4OuLCWJbZ7GNcfXoE=";
26120     };
26121     meta = {
26122       description = "Temporary directories that stick around when tests fail";
26123       homepage = "https://github.com/dagolden/Test-TempDir-Tiny";
26124       license = with lib.licenses; [ asl20 ];
26125     };
26126   };
26128   TestTCP = buildPerlPackage {
26129     pname = "Test-TCP";
26130     version = "2.22";
26131     src = fetchurl {
26132       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Test-TCP-2.22.tar.gz";
26133       hash = "sha256-PlPDwG1tCYCiv+uRVgK3FOaC7iEa6IwRdIzyzHFOe1c=";
26134     };
26135     buildInputs = [ TestSharedFork ];
26136     meta = {
26137       description = "Testing TCP program";
26138       homepage = "https://github.com/tokuhirom/Test-TCP";
26139       license = with lib.licenses; [ artistic1 gpl1Plus ];
26140     };
26141   };
26143   TestUNIXSock = buildPerlModule rec {
26144     pname = "Test-UNIXSock";
26145     version = "0.4";
26146     src = fetchurl {
26147       url = "mirror://cpan/authors/id/F/FU/FUJIWARA/${pname}-${version}.tar.gz";
26148       hash = "sha256-NzC0zBA0Es+/b+JHvbwwC+l94wnMmxxcvVc3E7hojz8=";
26149     };
26150     buildInputs = [ ModuleBuildTiny ];
26151     propagatedBuildInputs = [ TestSharedFork TestTCP ];
26152     meta = {
26153       description = "Testing UNIX domain socket program";
26154       homepage = "https://github.com/fujiwara/Test-UNIXSock";
26155       license = with lib.licenses; [ artistic1 gpl1Plus ];
26156     };
26157   };
26159   TestTime = buildPerlPackage {
26160     pname = "Test-Time";
26161     version = "0.092";
26162     src = fetchurl {
26163       url = "mirror://cpan/authors/id/A/AN/ANATOFUZ/Test-Time-0.092.tar.gz";
26164       hash = "sha256-MNkPVM6ECJPHuiysKk0e7NTJzfgFkQxZXjronf1kRzg=";
26165     };
26166     meta = {
26167       description = "Overrides the time() and sleep() core functions for testing";
26168       homepage = "https://github.com/cho45/Test-Time";
26169       license = with lib.licenses; [ artistic1 gpl1Plus ];
26170     };
26171   };
26173   TestToolbox = buildPerlModule {
26174     pname = "Test-Toolbox";
26175     version = "0.4";
26176     src = fetchurl {
26177       url = "mirror://cpan/authors/id/M/MI/MIKO/Test-Toolbox-0.4.tar.gz";
26178       hash = "sha256-QCC1x/OhWsmxh9Bd/ZgWuAMOwNSkf/g3P3Yzu2FOvcM=";
26179     };
26180     meta = {
26181       description = "Test::Toolbox - tools for testing";
26182       license = with lib.licenses; [ artistic1 gpl1Plus ];
26183     };
26184   };
26186   TestTrailingSpace = buildPerlModule {
26187     pname = "Test-TrailingSpace";
26188     version = "0.0601";
26189     src = fetchurl {
26190       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-TrailingSpace-0.0601.tar.gz";
26191       hash = "sha256-q7jOdEg6Y9c/4e9gO3zgptR8mO3nMZVdc1eE+tHcT8w=";
26192     };
26193     buildInputs = [ FileTreeCreate ];
26194     propagatedBuildInputs = [ FileFindObjectRule ];
26195     meta = {
26196       description = "Test for trailing space in source files";
26197       homepage = "https://metacpan.org/release/Test-TrailingSpace";
26198       license = with lib.licenses; [ mit ];
26199     };
26200   };
26202   TestUnitLite = buildPerlModule {
26203     pname = "Test-Unit-Lite";
26204     version = "0.1202";
26205     src = fetchurl {
26206       url = "mirror://cpan/authors/id/D/DE/DEXTER/Test-Unit-Lite-0.1202.tar.gz";
26207       hash = "sha256-NR0l7nExYoqvfjmV/h//uJOuf+bvWM8zcO0yCVP1sqg=";
26208     };
26209     meta = {
26210       description = "Unit testing without external dependencies";
26211       license = with lib.licenses; [ artistic1 gpl1Plus ];
26212     };
26213   };
26215   TestWarn = buildPerlPackage {
26216     pname = "Test-Warn";
26217     version = "0.37";
26218     src = fetchurl {
26219       url = "mirror://cpan/authors/id/B/BI/BIGJ/Test-Warn-0.37.tar.gz";
26220       hash = "sha256-mMoy5/L16om4v7mgYJl389FT4kLi5RcFEmy5VPGga1c=";
26221     };
26222     propagatedBuildInputs = [ SubUplevel ];
26223     meta = {
26224       description = "Perl extension to test methods for warnings";
26225       license = with lib.licenses; [ artistic1 gpl1Plus ];
26226     };
26227   };
26229   TestWarnings = buildPerlPackage {
26230     pname = "Test-Warnings";
26231     version = "0.032";
26232     src = fetchurl {
26233       url = "mirror://cpan/authors/id/E/ET/ETHER/Test-Warnings-0.032.tar.gz";
26234       hash = "sha256-Ryfa4kFunwfkHi3DqRQ7pq/8HsV2UhF8mdUAOOMT6dk=";
26235     };
26236     buildInputs = [ CPANMetaCheck PadWalker ];
26237     meta = {
26238       description = "Test for warnings and the lack of them";
26239       homepage = "https://github.com/karenetheridge/Test-Warnings";
26240       license = with lib.licenses; [ artistic1 gpl1Plus ];
26241     };
26242   };
26244   TestWeaken = buildPerlPackage {
26245     pname = "Test-Weaken";
26246     version = "3.022000";
26247     src = fetchurl {
26248       url = "mirror://cpan/authors/id/K/KR/KRYDE/Test-Weaken-3.022000.tar.gz";
26249       hash = "sha256-JjGocSExAmLg6WEHpvoO1pSHt3AVIHc77l+prMwpX1s=";
26250     };
26251     propagatedBuildInputs = [ ScalarListUtils ];
26252     meta = {
26253       description = "Test that freed memory objects were, indeed, freed";
26254       license = with lib.licenses; [ artistic1 gpl1Plus ];
26255     };
26256   };
26258   TestWithoutModule = buildPerlPackage {
26259     pname = "Test-Without-Module";
26260     version = "0.21";
26261     src = fetchurl {
26262       url = "mirror://cpan/authors/id/C/CO/CORION/Test-Without-Module-0.21.tar.gz";
26263       hash = "sha256-PN6vraxIU+vq/miTRtVV2l36PPqdTITj5ee/7lC+7EY=";
26264     };
26265     meta = {
26266       description = "Test fallback behaviour in absence of modules";
26267       license = with lib.licenses; [ artistic1 gpl1Plus ];
26268     };
26269   };
26271   TestWWWMechanize = buildPerlPackage {
26272     pname = "Test-WWW-Mechanize";
26273     version = "1.60";
26274     src = fetchurl {
26275       url = "mirror://cpan/authors/id/P/PE/PETDANCE/Test-WWW-Mechanize-1.60.tar.gz";
26276       hash = "sha256-I/1y5+0b553h0CotFfDfCTQV4Oq2/GFf9rtoh0Emhnc=";
26277     };
26278     buildInputs = [ TestLongString ];
26279     propagatedBuildInputs = [ CarpAssertMore HTTPServerSimple WWWMechanize ];
26280     meta = {
26281       description = "Testing-specific WWW::Mechanize subclass";
26282       homepage = "https://github.com/libwww-perl/WWW-Mechanize";
26283       license = with lib.licenses; [ artistic2 ];
26284     };
26285   };
26287   TestWWWMechanizeCatalyst = buildPerlPackage {
26288     pname = "Test-WWW-Mechanize-Catalyst";
26289     version = "0.62";
26290     src = fetchurl {
26291       url = "mirror://cpan/authors/id/M/MS/MSTROUT/Test-WWW-Mechanize-Catalyst-0.62.tar.gz";
26292       hash = "sha256-GDveGuerpw3LPtd3xVSCN/QsPtVR/VvGWM7obQIWrLE=";
26293     };
26294     doCheck = false; # listens on an external port
26295     propagatedBuildInputs = [ CatalystRuntime WWWMechanize ];
26296     buildInputs = [ CatalystPluginSession CatalystPluginSessionStateCookie TestException TestWWWMechanize Testutf8 ];
26297     meta = {
26298       description = "Test::WWW::Mechanize for Catalyst";
26299       license = with lib.licenses; [ artistic1 gpl1Plus ];
26300     };
26301   };
26303   TestWWWMechanizeCGI = buildPerlPackage {
26304     pname = "Test-WWW-Mechanize-CGI";
26305     version = "0.1";
26306     src = fetchurl {
26307       url = "mirror://cpan/authors/id/M/MR/MRAMBERG/Test-WWW-Mechanize-CGI-0.1.tar.gz";
26308       hash = "sha256-pXagsi470a/JJ0/FY7A3ru53cThJyev2pq1EFcFsnC8=";
26309     };
26310     propagatedBuildInputs = [ WWWMechanizeCGI ];
26311     buildInputs = [ TestLongString TestWWWMechanize ];
26312     meta = {
26313       description = "Test CGI applications with Test::WWW::Mechanize";
26314       license = with lib.licenses; [ artistic1 gpl1Plus ];
26315     };
26316   };
26318   TestWWWMechanizePSGI = buildPerlPackage {
26319     pname = "Test-WWW-Mechanize-PSGI";
26320     version = "0.39";
26321     src = fetchurl {
26322       url = "mirror://cpan/authors/id/O/OA/OALDERS/Test-WWW-Mechanize-PSGI-0.39.tar.gz";
26323       hash = "sha256-R2s6s7R9U05Nag9JkAIdXTTGnsk3rAcW5mzop7yHmVg=";
26324     };
26325     buildInputs = [ CGI TestLongString TestWWWMechanize ];
26326     propagatedBuildInputs = [ Plack ];
26327     meta = {
26328       description = "Test PSGI programs using WWW::Mechanize";
26329       homepage = "https://github.com/acme/test-www-mechanize-psgi";
26330       license = with lib.licenses; [ artistic1 gpl1Plus ];
26331     };
26332   };
26334   TestXPath = buildPerlPackage {
26335     pname = "Test-XPath";
26336     version = "0.20";
26337     src = fetchurl {
26338       url = "mirror://cpan/authors/id/M/MA/MANWAR/Test-XPath-0.20.tar.gz";
26339       hash = "sha256-36phHnFGrZyXabW89oiUmXa4Ny3354ekC5M6FI2JIDk=";
26340     };
26341     propagatedBuildInputs = [ XMLLibXML ];
26342     meta = {
26343       description = "Test XML and HTML content and structure with XPath expressions";
26344       license = with lib.licenses; [ artistic1 gpl1Plus ];
26345     };
26346   };
26348   TestYAML = buildPerlPackage {
26349     pname = "Test-YAML";
26350     version = "1.07";
26351     src = fetchurl {
26352       url = "mirror://cpan/authors/id/T/TI/TINITA/Test-YAML-1.07.tar.gz";
26353       hash = "sha256-HzANA09GKYy5KWCRLMBLrDP7J/BbiFLY8FHhELnNmV8=";
26354     };
26355     buildInputs = [ TestBase ];
26356     meta = {
26357       description = "Testing Module for YAML Implementations";
26358       license = with lib.licenses; [ artistic1 gpl1Plus ];
26359       mainProgram = "test-yaml";
26360     };
26361   };
26363   TextAligner = buildPerlModule {
26364     pname = "Text-Aligner";
26365     version = "0.16";
26366     src = fetchurl {
26367       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Text-Aligner-0.16.tar.gz";
26368       hash = "sha256-XIV9vOWG9X+j18Tr0yACOrOyljsgSUKK4BvTvE8hVyU=";
26369     };
26370     meta = {
26371       description = "Module to align text";
26372       homepage = "https://metacpan.org/release/Text-Aligner";
26373       license = with lib.licenses; [ isc ];
26374     };
26375   };
26377   TextAspell = buildPerlPackage {
26378     pname = "Text-Aspell";
26379     version = "0.09";
26380     src = fetchurl {
26381       url = "mirror://cpan/authors/id/H/HA/HANK/Text-Aspell-0.09.tar.gz";
26382       hash = "sha256-K+oyCfGOJzsZPjF1pC0mk5GRnkmrEGtuJSOV0nIYL2U=";
26383     };
26384     propagatedBuildInputs = [ pkgs.aspell ];
26385     ASPELL_CONF = "dict-dir ${pkgs.aspellDicts.en}/lib/aspell";
26386     env.NIX_CFLAGS_COMPILE = "-I${pkgs.aspell}/include";
26387     NIX_CFLAGS_LINK = "-L${pkgs.aspell}/lib -laspell";
26388     meta = {
26389       description = "Perl interface to the GNU Aspell library";
26390       license = with lib.licenses; [ artistic1 gpl1Plus ];
26391     };
26392   };
26394   TextAutoformat = buildPerlPackage {
26395     pname = "Text-Autoformat";
26396     version = "1.75";
26397     src = fetchurl {
26398       url = "mirror://cpan/authors/id/N/NE/NEILB/Text-Autoformat-1.75.tar.gz";
26399       hash = "sha256-ndT0zj2uxLTb9bWdrEVoqJRq7RLCi05ZiMjoxgLGt3E=";
26400     };
26401     propagatedBuildInputs = [ TextReform ];
26402     meta = {
26403       description = "Automatic text wrapping and reformatting";
26404       homepage = "https://github.com/neilb/Text-Autoformat";
26405       license = with lib.licenses; [ artistic1 gpl1Plus ];
26406     };
26407   };
26409   TextBalanced = buildPerlPackage {
26410     pname = "Text-Balanced";
26411     version = "2.06";
26412     src = fetchurl {
26413       url = "mirror://cpan/authors/id/S/SH/SHAY/Text-Balanced-2.06.tar.gz";
26414       hash = "sha256-dz4PDyHAyyz2ZM7muij/cCWbq8yJL5tlD5y9oAvgkq0=";
26415     };
26416     meta = {
26417       description = "Extract delimited text sequences from strings";
26418       license = with lib.licenses; [ artistic1 gpl1Plus ];
26419     };
26420   };
26422   TextBibTeX = buildPerlModule {
26423     pname = "Text-BibTeX";
26424     version = "0.89";
26425     buildInputs = [ CaptureTiny ConfigAutoConf ExtUtilsLibBuilder ];
26426     src = fetchurl {
26427       url = "mirror://cpan/authors/id/A/AM/AMBS/Text-BibTeX-0.89.tar.gz";
26428       hash = "sha256-iKeOvwiOx1AvQBxaKxOMhiz1RYU0t3MiO786r0EiQZY=";
26429     };
26430     # libbtparse.so: cannot open shared object file
26431     patches = [ ../development/perl-modules/TextBibTeX-use-lib.patch ];
26432     perlPreHook = "export LD=$CC";
26433     perlPostHook = lib.optionalString stdenv.hostPlatform.isDarwin ''
26434       oldPath="$(pwd)/btparse/src/libbtparse.dylib"
26435       newPath="$out/lib/libbtparse.dylib"
26437       install_name_tool -id "$newPath" "$newPath"
26438       install_name_tool -change "$oldPath" "$newPath" "$out/bin/biblex"
26439       install_name_tool -change "$oldPath" "$newPath" "$out/bin/bibparse"
26440       install_name_tool -change "$oldPath" "$newPath" "$out/bin/dumpnames"
26441       install_name_tool -change "$oldPath" "$newPath" "$out/${perl.libPrefix}/${perl.version}/darwin"*"-2level/auto/Text/BibTeX/BibTeX.bundle"
26442     '';
26443     meta = {
26444       description = "Interface to read and parse BibTeX files";
26445       license = with lib.licenses; [ artistic1 gpl1Plus ];
26446     };
26447   };
26449   TextBrew = buildPerlPackage {
26450     pname = "Text-Brew";
26451     version = "0.02";
26452     src = fetchurl {
26453       url = "mirror://cpan/authors/id/K/KC/KCIVEY/Text-Brew-0.02.tar.gz";
26454       hash = "sha256-qhuFhBz5/G/jODZrvIcKTpMEonZB5j+Sof2Wvujr9kw=";
26455     };
26456     meta = {
26457       description = "Implementation of the Brew edit distance";
26458       license = with lib.licenses; [ artistic1 gpl1Plus ];
26459     };
26460   };
26462   TextCharWidth = buildPerlPackage {
26463     pname = "Text-CharWidth";
26464     version = "0.04";
26465     src = fetchurl {
26466       url = "mirror://cpan/authors/id/K/KU/KUBOTA/Text-CharWidth-0.04.tar.gz";
26467       hash = "sha256-q97V9P3ZM46J/S8dgnHESYna5b9Qrs5BthedjiMHBPg=";
26468     };
26469     meta = {
26470       description = "Get number of occupied columns of a string on terminal";
26471       license = with lib.licenses; [ artistic1 gpl1Plus ];
26472     };
26473   };
26475   TextCSV = buildPerlPackage {
26476     pname = "Text-CSV";
26477     version = "2.03";
26478     src = fetchurl {
26479       url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/Text-CSV-2.03.tar.gz";
26480       hash = "sha256-SLvOnyNJNaiFlWGOBN0UFigkbWUPKnJgJN8cE34LZfs=";
26481     };
26482     meta = {
26483       description = "Comma-separated values manipulator (using XS or PurePerl)";
26484       license = with lib.licenses; [ artistic1 gpl1Plus ];
26485     };
26486   };
26488   TextCSVEncoded = buildPerlPackage {
26489     pname = "Text-CSV-Encoded";
26490     version = "0.25";
26491     src = fetchurl {
26492       url = "mirror://cpan/authors/id/Z/ZA/ZARQUON/Text-CSV-Encoded-0.25.tar.gz";
26493       hash = "sha256-JIpZg6IN1XeGY56I2v3WVPO5OSVJASDW1xLaayvludA=";
26494     };
26495     propagatedBuildInputs = [ TextCSV ];
26496     meta = {
26497       description = "Encoding aware Text::CSV";
26498       homepage = "https://github.com/singingfish/Text-CSV-Encoded";
26499       license = with lib.licenses; [ artistic1 gpl1Plus ];
26500     };
26501   };
26503   TextCSV_XS = buildPerlPackage {
26504     pname = "Text-CSV_XS";
26505     version = "1.52";
26506     src = fetchurl {
26507       url = "mirror://cpan/authors/id/H/HM/HMBRAND/Text-CSV_XS-1.52.tgz";
26508       hash = "sha256-5BWqcFut+Es1ncTA8MmC8b9whIHaoUdW8xNufInA5B0=";
26509     };
26510     meta = {
26511       description = "Comma-Separated Values manipulation routines";
26512       homepage = "https://metacpan.org/pod/Text::CSV_XS";
26513       license = with lib.licenses; [ artistic1 gpl1Plus ];
26514     };
26515   };
26517   TextDiff = buildPerlPackage {
26518     pname = "Text-Diff";
26519     version = "1.45";
26520     src = fetchurl {
26521       url = "mirror://cpan/authors/id/N/NE/NEILB/Text-Diff-1.45.tar.gz";
26522       hash = "sha256-6Lqgexs/U+AK82NomLv3OuyaD/OPlFNu3h2+lu8IbwQ=";
26523     };
26524     propagatedBuildInputs = [ AlgorithmDiff ];
26525     meta = {
26526       description = "Perform diffs on files and record sets";
26527       license = with lib.licenses; [ artistic1 gpl1Plus ];
26528     };
26529   };
26531   TextFormat = buildPerlModule {
26532     pname = "Text-Format";
26533     version = "0.62";
26534     src = fetchurl {
26535       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Text-Format-0.62.tar.gz";
26536       hash = "sha256-fUKQVzGeEjxZC6B2UzTwreSl656o23wOxNOQLeX5BAQ=";
26537     };
26538     meta = {
26539       description = "Various subroutines to format text";
26540       homepage = "https://github.com/shlomif/perl-Module-Format";
26541       license = with lib.licenses; [ artistic1 gpl1Plus ];
26542       maintainers = with maintainers; [ bcdarwin ];
26543     };
26544   };
26546   TextDiffFormattedHTML = buildPerlPackage {
26547     pname = "Text-Diff-FormattedHTML";
26548     version = "0.08";
26549     src = fetchurl {
26550       url = "mirror://cpan/authors/id/A/AM/AMBS/Text-Diff-FormattedHTML-0.08.tar.gz";
26551       hash = "sha256-Oat3WlwFZ0Xyq9jMfBy8VJbf735SqfS9itpqpsnHtw0=";
26552     };
26553     propagatedBuildInputs = [ FileSlurp StringDiff ];
26554     meta = {
26555       description = "Generate a colorful HTML diff of strings/files";
26556       license = with lib.licenses; [ artistic1 gpl1Plus ];
26557       maintainers = [ maintainers.sgo ];
26558     };
26559   };
26561   TextFuzzy = buildPerlPackage {
26562     pname = "Text-Fuzzy";
26563     version = "0.29";
26564     src = fetchurl {
26565       url = "mirror://cpan/authors/id/B/BK/BKB/Text-Fuzzy-0.29.tar.gz";
26566       hash = "sha256-PfXP0soaTFyn/3urPMjVOtIGThNMvxEATzz4xLkFW/8=";
26567     };
26568     meta = {
26569       description = "Partial string matching using edit distances";
26570       license = with lib.licenses; [ artistic1 gpl1Plus ];
26571     };
26572   };
26574   TextGerman = buildPerlPackage {
26575     pname = "Text-German";
26576     version = "0.06";
26577     src = fetchurl {
26578       url = "mirror://cpan/authors/id/U/UL/ULPFR/Text-German-0.06.tar.gz";
26579       hash = "sha256-ki1PGQEtl3OxH0pvZCEF6fkT9YZvRGG2BZymdNW7B90=";
26580     };
26581     meta = {
26582       description = "German grundform reduction";
26583       license = with lib.licenses; [ artistic1 gpl1Plus ];
26584     };
26585   };
26587   TextGlob = buildPerlPackage {
26588     pname = "Text-Glob";
26589     version = "0.11";
26590     src = fetchurl {
26591       url = "mirror://cpan/authors/id/R/RC/RCLAMP/Text-Glob-0.11.tar.gz";
26592       hash = "sha256-BpzNSdPwot7bEV9L3J+6wHqDWShAlT0fzfw5650wUoc=";
26593     };
26594     meta = {
26595       description = "Match globbing patterns against text";
26596       license = with lib.licenses; [ artistic1 gpl1Plus ];
26597     };
26598   };
26600   TextHogan = buildPerlPackage {
26601     pname = "Text-Hogan";
26602     version = "2.03";
26603     src = fetchurl {
26604       url = "mirror://cpan/authors/id/K/KA/KAORU/Text-Hogan-2.03.tar.gz";
26605       hash = "sha256-WNkj7eTFmEiI75u7JW2IVMxdIqRwikd0sxPLU4jFYXo=";
26606     };
26607     propagatedBuildInputs = [ Clone RefUtil TextTrim ];
26608     buildInputs = [ DataVisitor PathTiny TryTiny YAML ];
26609     meta = {
26610       description = "Text::Hogan - A mustache templating engine statement-for-statement cloned from hogan.js";
26611       license = with lib.licenses; [ artistic1 gpl1Plus ];
26612     };
26613   };
26615   TextIconv = buildPerlPackage {
26616     pname = "Text-Iconv";
26617     version = "1.7";
26618     src = fetchurl {
26619       url = "mirror://cpan/authors/id/M/MP/MPIOTR/Text-Iconv-1.7.tar.gz";
26620       hash = "sha256-W4C31ecJ00OTvLqIlxhkoXtEpb8PnkvO44PQKefS1cM=";
26621     };
26622     meta = {
26623       description = "Perl interface to iconv() codeset conversion function";
26624       license = with lib.licenses; [ artistic1 gpl1Plus ]; # taken from el6
26625       broken = stdenv.hostPlatform.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.TextIconv.x86_64-darwin
26626     };
26627   };
26629   TestInDistDir = buildPerlPackage {
26630     pname = "Test-InDistDir";
26631     version = "1.112071";
26632     src = fetchurl {
26633       url = "mirror://cpan/authors/id/M/MI/MITHALDU/Test-InDistDir-1.112071.tar.gz";
26634       hash = "sha256-kixcYzFPQG9MuzXsQjrCFU0sK3GmWt23cyydJAqD/vs=";
26635     };
26636     meta = {
26637       description = "Test environment setup for development with IDE";
26638       homepage = "https://github.com/wchristian/Test-InDistDir";
26639       license = with lib.licenses; [ wtfpl ];
26640       maintainers = [ maintainers.sgo ];
26641     };
26642   };
26644   TestInter = buildPerlPackage {
26645     pname = "Test-Inter";
26646     version = "1.10";
26647     src = fetchurl {
26648       url = "mirror://cpan/authors/id/S/SB/SBECK/Test-Inter-1.10.tar.gz";
26649       hash = "sha256-cewRXqwm+2aJGb1mQLQcNzInUuvUjBx222a3O679O10=";
26650     };
26651     buildInputs = [ FileFindRule TestPod TestPodCoverage ];
26652     meta = {
26653       description = "Framework for more readable interactive test scripts";
26654       license = with lib.licenses; [ artistic1 gpl1Plus ];
26655     };
26656   };
26658   TextLayout = buildPerlPackage {
26659     pname = "Text-Layout";
26660     version = "0.037";
26661     src = fetchurl {
26662       url = "mirror://cpan/authors/id/J/JV/JV/Text-Layout-0.037.tar.gz";
26663       hash = "sha256-WCeTQSR8SBh0BIdkAPBq19qm/nFilVgYXfNnPfCbnOo=";
26664     };
26665     buildInputs = [ IOString ObjectPad PDFAPI2 ];
26666     meta = {
26667       description = "Pango style markup formatting";
26668       license = with lib.licenses; [ artistic1 gpl1Plus ];
26669     };
26670   };
26672   TextLevenshteinXS = buildPerlPackage {
26673     pname = "Text-LevenshteinXS";
26674     version = "0.03";
26675     src = fetchurl {
26676       url = "mirror://cpan/authors/id/J/JG/JGOLDBERG/Text-LevenshteinXS-0.03.tar.gz";
26677       hash = "sha256-43T/eyN5Gc5eqSRfNW0ctSzIf9JrOlo4s/Pl/4KgFJE=";
26678     };
26679     meta = {
26680       description = "Levenshtein edit distance in a XS way";
26681       license = with lib.licenses; [ artistic1 gpl1Plus ];
26682     };
26683   };
26685   TextLorem = buildPerlPackage {
26686     pname = "Text-Lorem";
26687     version = "0.34";
26688     src = fetchurl {
26689       url = "mirror://cpan/authors/id/A/AD/ADEOLA/Text-Lorem-0.34.tar.gz";
26690       hash = "sha256-DOajwZkXsjI0JKGqdC2YiwY8OUQEJ6MQGkzsbb2EcVc=";
26691     };
26692     meta = {
26693       description = "Generate random Latin looking text";
26694       license = with lib.licenses; [ artistic1 gpl1Plus ];
26695       maintainers = [ maintainers.sgo ];
26696       mainProgram = "lorem";
26697     };
26698   };
26700   TestManifest = buildPerlPackage {
26701     pname = "Test-Manifest";
26702     version = "2.023";
26703     src = fetchurl {
26704       url = "mirror://cpan/authors/id/B/BD/BDFOY/Test-Manifest-2.023.tar.gz";
26705       hash = "sha256-0k5SVT58uc2oH5L/6MkrPkNGcY5HEIAaWzW38lGnceI=";
26706     };
26707     meta = {
26708       description = "Interact with a t/test_manifest file";
26709       homepage = "https://github.com/briandfoy/test-manifest";
26710       license = with lib.licenses; [ artistic2 ];
26711     };
26712   };
26714   TextMarkdown = buildPerlPackage {
26715     pname = "Text-Markdown";
26716     version = "1.000031";
26717     src = fetchurl {
26718       url = "mirror://cpan/authors/id/B/BO/BOBTFISH/Text-Markdown-1.000031.tar.gz";
26719       hash = "sha256-wZHG1ezrjLdcBWUZI2BmLSAtcWutB6IzxLMppChNxxs=";
26720     };
26721     nativeBuildInputs = [ shortenPerlShebang ];
26722     nativeCheckInputs = [ ListMoreUtils TestDifferences TestException ];
26723     postInstall = ''
26724       shortenPerlShebang $out/bin/Markdown.pl
26725     '';
26726     meta = {
26727       description = "Convert Markdown syntax to (X)HTML";
26728       license = with lib.licenses; [ bsd3 ];
26729       mainProgram = "Markdown.pl";
26730     };
26731   };
26733   TextMarkdownHoedown = buildPerlModule {
26734     pname = "Text-Markdown-Hoedown";
26735     version = "1.03";
26736     src = fetchurl {
26737       url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/Text-Markdown-Hoedown-1.03.tar.gz";
26738       hash = "sha256-U6cw/29IgrmavYVW8mqRH1gvZ1tZ8OFnJe0ey8CE7lA=";
26739     };
26740     buildInputs = [ Filepushd ];
26741     perlPreHook = lib.optionalString stdenv.hostPlatform.isDarwin "export LD=$CC";
26742     meta = {
26743       description = "Hoedown for Perl5";
26744       homepage = "https://github.com/tokuhirom/Text-Markdown-Hoedown";
26745       license = with lib.licenses; [ artistic1 gpl1Plus ];
26746     };
26747   };
26749   TestMinimumVersion = buildPerlPackage {
26750     pname = "Test-MinimumVersion";
26751     version = "0.101083";
26752     src = fetchurl {
26753       url = "mirror://cpan/authors/id/R/RJ/RJBS/Test-MinimumVersion-0.101083.tar.gz";
26754       hash = "sha256-MqHrzYA/oQ7vylU7w87dQ1lqdZ3Dl1revSJoiCPDauo=";
26755     };
26756     propagatedBuildInputs = [ PerlMinimumVersion ];
26757     meta = {
26758       description = "Does your code require newer perl than you think?";
26759       homepage = "https://github.com/rjbs/Test-MinimumVersion";
26760       license = with lib.licenses; [ artistic1 gpl1Plus ];
26761     };
26762   };
26764   TextMicroTemplate = buildPerlPackage {
26765     pname = "Text-MicroTemplate";
26766     version = "0.24";
26767     src = fetchurl {
26768       url = "mirror://cpan/authors/id/K/KA/KAZUHO/Text-MicroTemplate-0.24.tar.gz";
26769       hash = "sha256-MoAecfNe6Kqg1XbOwSXO5Gs9SRWuZCvGSWISDU+XtMg=";
26770     };
26771     meta = {
26772       description = "Micro template engine with Perl5 language";
26773       license = with lib.licenses; [ artistic1 gpl1Plus ];
26774     };
26775   };
26777   TextMultiMarkdown = buildPerlPackage {
26778     pname = "Text-MultiMarkdown";
26779     version = "1.001";
26780     src = fetchurl {
26781       url = "mirror://cpan/authors/id/B/BD/BDFOY/Text-MultiMarkdown-1.001.tar.gz";
26782       hash = "sha256-UB1ErH2lSUSZzqhR6bL7UlOAgLDB6TYjDIwm1n4EhDM=";
26783     };
26784     buildInputs = [ ListMoreUtils TestException ];
26785     propagatedBuildInputs = [ HTMLParser TextMarkdown ];
26786     meta = {
26787       description = "Convert MultiMarkdown syntax to (X)HTML";
26788       license = with lib.licenses; [ bsd3 ];
26789       mainProgram = "MultiMarkdown.pl";
26790     };
26791   };
26793   TestNumberDelta = buildPerlPackage {
26794     pname = "Test-Number-Delta";
26795     version = "1.06";
26796     src = fetchurl {
26797       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Test-Number-Delta-1.06.tar.gz";
26798       hash = "sha256-U1QwkZ5v32zlX/dumJKvzLo7fUFg20XzrEOw+S/80Ek=";
26799     };
26800     meta = {
26801       description = "Compare the difference between numbers against a given tolerance";
26802       homepage = "https://github.com/dagolden/Test-Number-Delta";
26803       license = with lib.licenses; [ asl20 ];
26804     };
26805   };
26807   TextParsewords = buildPerlPackage {
26808     pname = "Text-ParseWords";
26809     version = "3.31";
26810     src = fetchurl {
26811       url = "mirror://cpan/authors/id/N/NE/NEILB/Text-ParseWords-3.31.tar.gz";
26812       hash = "sha256-KuVVughNdbK4/u640aAJESdoFa2oa8yxRSI2lk1aL8c=";
26813     };
26814     meta = {
26815       description = "Parse text into an array of tokens or array of arrays";
26816       license = with lib.licenses; [ artistic1 gpl1Plus ];
26817     };
26818   };
26820   TextPasswordPronounceable = buildPerlPackage {
26821     pname = "Text-Password-Pronounceable";
26822     version = "0.30";
26823     src = fetchurl {
26824       url = "mirror://cpan/authors/id/T/TS/TSIBLEY/Text-Password-Pronounceable-0.30.tar.gz";
26825       hash = "sha256-wYalAlbgvt+vsX584VfnxS8ZUDu3nhjr8GJVkR9urRo=";
26826     };
26827     meta = {
26828       description = "Generate pronounceable passwords";
26829       license = with lib.licenses; [ artistic1 gpl1Plus ];
26830     };
26831   };
26833   TextPatch = buildPerlPackage {
26834     pname = "Text-Patch";
26835     version = "1.8";
26836     src = fetchurl {
26837       url = "mirror://cpan/authors/id/C/CA/CADE/Text-Patch-1.8.tar.gz";
26838       hash = "sha256-6vGOYbpqPhQ4RqfMZvCM5YoMT72pKssxrt4lyztcPcw=";
26839     };
26840     propagatedBuildInputs = [ TextDiff ];
26841     meta = {
26842       description = "Patches text with given patch";
26843       license = with lib.licenses; [ gpl2Only ];
26844     };
26845   };
26847   TextPDF = buildPerlPackage {
26848     pname = "Text-PDF";
26849     version = "0.31";
26850     src = fetchurl {
26851       url = "mirror://cpan/authors/id/B/BH/BHALLISSY/Text-PDF-0.31.tar.gz";
26852       hash = "sha256-359RXuFZgEsNWnXVrbk8RYTH7EAdjFnCfp9zkl2NrGg=";
26853     };
26854     meta = {
26855       description = "Module for manipulating PDF files";
26856       license = with lib.licenses; [ artistic1 gpl1Plus ];
26857     };
26858   };
26860   TextQuoted = buildPerlPackage {
26861     pname = "Text-Quoted";
26862     version = "2.10";
26863     src = fetchurl {
26864       url = "mirror://cpan/authors/id/B/BP/BPS/Text-Quoted-2.10.tar.gz";
26865       hash = "sha256-CBv5XskiCvJs7IkWHmG/c/n7y/7uHZrxUTnl17cI9EU=";
26866     };
26867     propagatedBuildInputs = [ TextAutoformat ];
26868     meta = {
26869       description = "Extract the structure of a quoted mail message";
26870       license = with lib.licenses; [ artistic1 gpl1Plus ];
26871     };
26872   };
26874   TextRecordParser = buildPerlPackage {
26875     pname = "Text-RecordParser";
26876     version = "1.6.5";
26877     src = fetchurl {
26878       url = "mirror://cpan/authors/id/K/KC/KCLARK/Text-RecordParser-1.6.5.tar.gz";
26879       hash = "sha256-2juBQUxj+NkhjRFnRaiLlIxGyYsYdjT2KYkuVAAbw1o=";
26880     };
26882     # In a NixOS chroot build, the tests fail because the font configuration
26883     # at /etc/fonts/font.conf is not available.
26884     doCheck = false;
26886     propagatedBuildInputs = [ ClassAccessor IOStringy ListMoreUtils Readonly TextAutoformat ];
26887     buildInputs = [ TestException ];
26888     meta = {
26889       description = "Read record-oriented files";
26890       license = with lib.licenses; [ gpl2Only ];
26891     };
26892   };
26894   TextReflow = buildPerlPackage {
26895     pname = "Text-Reflow";
26896     version = "1.17";
26897     src = fetchurl {
26898       url = "mirror://cpan/authors/id/M/MW/MWARD/Text-Reflow-1.17.tar.gz";
26899       hash = "sha256-S/ITn/YX1uWcwOWc3s18tyPs/SjVrDh6+1U//cBxuGA=";
26900     };
26901     meta = {
26902       description = "Reflow text files using Knuth's paragraphing algorithm";
26903       license = with lib.licenses; [ artistic1 gpl1Plus ];
26904     };
26905   };
26907   TextReform = buildPerlModule {
26908     pname = "Text-Reform";
26909     version = "1.20";
26910     src = fetchurl {
26911       url = "mirror://cpan/authors/id/C/CH/CHORNY/Text-Reform-1.20.tar.gz";
26912       hash = "sha256-qHkt2MGqyXABAyM3s2o1a+luLXTE8DnvmjY7ZB20rmE=";
26913     };
26914     meta = {
26915       description = "Manual text wrapping and reformatting";
26916       license = with lib.licenses; [ artistic1 gpl1Plus ];
26917     };
26918   };
26920   TextRoman = buildPerlPackage {
26921     pname = "Text-Roman";
26922     version = "3.5";
26923     src = fetchurl {
26924       url = "mirror://cpan/authors/id/S/SY/SYP/Text-Roman-3.5.tar.gz";
26925       hash = "sha256-y0oIo7FRgC/7L84yWKQWVCq4HbD3Oe5HSpWD/7c+BGo=";
26926     };
26927     meta = {
26928       description = "Allows conversion between Roman and Arabic algarisms";
26929       homepage = "https://github.com/creaktive/Text-Roman";
26930       license = with lib.licenses; [ artistic1 gpl1Plus ];
26931     };
26932   };
26934   TextSimpleTable = buildPerlPackage {
26935     pname = "Text-SimpleTable";
26936     version = "2.07";
26937     src = fetchurl {
26938       url = "mirror://cpan/authors/id/M/MR/MRAMBERG/Text-SimpleTable-2.07.tar.gz";
26939       hash = "sha256-JW0/OHZOljMxWLFKsYJXuS8xVcYNZYyvuAOJ9y9GGe0=";
26940     };
26941     propagatedBuildInputs = [ UnicodeLineBreak ];
26942     meta = {
26943       description = "Simple eyecandy ASCII tables";
26944       license = with lib.licenses; [ artistic2 ];
26945     };
26946   };
26948   TextSoundex = buildPerlPackage {
26949     pname = "Text-Soundex";
26950     version = "3.05";
26951     src = fetchurl {
26952       url = "mirror://cpan/authors/id/R/RJ/RJBS/Text-Soundex-3.05.tar.gz";
26953       hash = "sha256-9t1VtCgLJd6peCIYOYZDglYAdOHWkzOV+u4lEMLbYO0=";
26954     };
26955     meta = {
26956       description = "Implementation of the soundex algorithm";
26957       license = with lib.licenses; [ artistic1 gpl1Plus ];
26958     };
26959   };
26961   TextSprintfNamed = buildPerlModule {
26962     pname = "Text-Sprintf-Named";
26963     version = "0.0405";
26964     src = fetchurl {
26965       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Text-Sprintf-Named-0.0405.tar.gz";
26966       hash = "sha256-m0cNeP/PxAqz+ZgjGzNrnTQXIw+3zlW0fNewVXOnD/w=";
26967     };
26968     buildInputs = [ TestWarn ];
26969     meta = {
26970       description = "Sprintf-like function with named conversions";
26971       homepage = "https://metacpan.org/release/Text-Sprintf-Named";
26972       license = with lib.licenses; [ mit ];
26973     };
26974   };
26976   TextTable = buildPerlModule {
26977     pname = "Text-Table";
26978     version = "1.135";
26979     src = fetchurl {
26980       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Text-Table-1.135.tar.gz";
26981       hash = "sha256-/KPBboMSf3xE3ePT9+PHPqUNEJoQVERd6Agv6nlMpdI=";
26982     };
26983     propagatedBuildInputs = [ TextAligner ];
26984     meta = {
26985       description = "Organize Data in Tables";
26986       homepage = "https://metacpan.org/release/Text-Table";
26987       license = with lib.licenses; [ isc ];
26988     };
26989   };
26991   TextTabularDisplay = buildPerlPackage {
26992     pname = "Text-TabularDisplay";
26993     version = "1.38";
26994     src = fetchurl {
26995       url = "mirror://cpan/authors/id/D/DA/DARREN/Text-TabularDisplay-1.38.tar.gz";
26996       hash = "sha256-6wmQ+vpWtmfyPbdkvdpaTcX0sd3EsTg6pe7W8i7Rhug=";
26997     };
26998     meta = {
26999       description = "Display text in formatted table output";
27000       license = with lib.licenses; [ gpl2Plus ];
27001     };
27002   };
27004   TextTemplate = buildPerlPackage {
27005     pname = "Text-Template";
27006     version = "1.61";
27007     src = fetchurl {
27008       url = "mirror://cpan/authors/id/M/MS/MSCHOUT/Text-Template-1.61.tar.gz";
27009       hash = "sha256-opXqfR7yQa4mQMH3hktij45vmewU+x2ngbL18haNzwk=";
27010     };
27011     buildInputs = [ TestMoreUTF8 TestWarnings ];
27012     meta = {
27013       description = "Expand template text with embedded Perl";
27014       license = with lib.licenses; [ artistic1 gpl1Plus ];
27015     };
27016   };
27018   TestTrap = buildPerlModule {
27019     pname = "Test-Trap";
27020     version = "0.3.5";
27021     src = fetchurl {
27022       url = "mirror://cpan/authors/id/E/EB/EBHANSSEN/Test-Trap-v0.3.5.tar.gz";
27023       hash = "sha256-VPmQFlYrWx1yEQEA8fK+Q3F4zfhDdvSV/9A3bx1+y5o=";
27024     };
27025     propagatedBuildInputs = [ DataDump ];
27026     meta = {
27027       description = "Trap exit codes, exceptions, output, etc";
27028       license = with lib.licenses; [ artistic1 gpl1Plus ];
27029     };
27030   };
27032   TestVars = buildPerlModule {
27033     pname = "Test-Vars";
27034     version = "0.015";
27035     src = fetchurl {
27036       url = "mirror://cpan/authors/id/G/GF/GFUJI/Test-Vars-0.015.tar.gz";
27037       hash = "sha256-4Y3RWCcuTsmTnh37M8dDGrTnXGtAsoDDi16AT9pHGlQ=";
27038     };
27040     buildInputs = [ ModuleBuildTiny ];
27042     meta = {
27043       description = "Detects unused variables in perl modules";
27044       homepage = "https://github.com/houseabsolute/p5-Test-Vars";
27045       license = with lib.licenses; [ artistic1 gpl1Plus ];
27046     };
27047   };
27049   TestVersion = buildPerlPackage {
27050     pname = "Test-Version";
27051     version = "2.09";
27052     src = fetchurl {
27053       url = "mirror://cpan/authors/id/P/PL/PLICEASE/Test-Version-2.09.tar.gz";
27054       hash = "sha256-nOHdKJel8w4bf4lm7Gb1fY2PKA9gXyjHyiIfp5rKOOA=";
27055     };
27056     buildInputs = [ TestException ];
27057     propagatedBuildInputs = [ FileFindRulePerl ];
27058     meta = {
27059       description = "Check to see that version's in modules are sane";
27060       license = with lib.licenses; [ artistic2 ];
27061     };
27062   };
27064   TextTrim = buildPerlPackage {
27065     pname = "Text-Trim";
27066     version = "1.04";
27067     src = fetchurl {
27068       url = "mirror://cpan/authors/id/R/RJ/RJT/Text-Trim-1.04.tar.gz";
27069       hash = "sha256-1YeKkHnTPNF2bParxEzWJb0AoCE9LOjjFD/mlEq6qhE=";
27070     };
27071     meta = {
27072       description = "Remove leading and/or trailing whitespace from strings";
27073       license = with lib.licenses; [ artistic1 gpl1Plus ];
27074     };
27075   };
27077   TextUnaccent = buildPerlPackage {
27078     pname = "Text-Unaccent";
27079     version = "1.08";
27080     src = fetchurl {
27081       url = "mirror://cpan/authors/id/L/LD/LDACHARY/Text-Unaccent-1.08.tar.gz";
27082       hash = "sha256-J45u/Jsk82mclh77NuvmAqNAi1QVcgF97hMdFScocys=";
27083     };
27084     # https://rt.cpan.org/Public/Bug/Display.html?id=124815
27085     env.NIX_CFLAGS_COMPILE = "-DHAS_VPRINTF";
27086     meta = {
27087       description = "Remove accents from a string";
27088       license = with lib.licenses; [ gpl2Only ];
27089       broken = stdenv.hostPlatform.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.TextUnaccent.x86_64-darwin
27090     };
27091   };
27093   TextUnidecode = buildPerlPackage {
27094     pname = "Text-Unidecode";
27095     version = "1.30";
27096     src = fetchurl {
27097       url = "mirror://cpan/authors/id/S/SB/SBURKE/Text-Unidecode-1.30.tar.gz";
27098       hash = "sha256-bCTxTdwdIOJhYcIHtzyhhO7S71fwi1+y7hlubi6IscY=";
27099     };
27100     meta = {
27101       description = "Plain ASCII transliterations of Unicode tex";
27102       license = with lib.licenses; [ artistic1 gpl1Plus ];
27103     };
27104   };
27106   Testutf8 = buildPerlPackage {
27107     pname = "Test-utf8";
27108     version = "1.02";
27109     src = fetchurl {
27110       url = "mirror://cpan/authors/id/M/MA/MARKF/Test-utf8-1.02.tar.gz";
27111       hash = "sha256-34LwnFlAgwslpJ8cgWL6JNNx5gKIDt742aTUv9Zri9c=";
27112     };
27113     meta = {
27114       description = "Handy utf8 tests";
27115       homepage = "https://github.com/2shortplanks/Test-utf8/tree";
27116       license = with lib.licenses; [ artistic1 gpl1Plus ];
27117     };
27118   };
27120   TextNSP = buildPerlPackage {
27121     pname = "Text-NSP";
27122     version = "1.31";
27123     src = fetchurl {
27124       url = "mirror://cpan/authors/id/T/TP/TPEDERSE/Text-NSP-1.31.tar.gz";
27125       hash = "sha256-oBIBvrKWNrPkHs2ips9lIv0mVBa9bZlPrQL1n7Sc9ZU=";
27126     };
27127     meta = {
27128       description = "Extract collocations and Ngrams from text";
27129       license = with lib.licenses; [ gpl2Plus ];
27130       maintainers = [ maintainers.bzizou ];
27131     };
27132   };
27134   TextvFileasData = buildPerlPackage {
27135     pname = "Text-vFile-asData";
27136     version = "0.08";
27137     src = fetchurl {
27138       url = "mirror://cpan/authors/id/R/RC/RCLAMP/Text-vFile-asData-0.08.tar.gz";
27139       hash = "sha256-spGrXg+YfFFyVgppIjRxGnXkWW2DR19y0BJ4NpUy+Co=";
27140     };
27141     propagatedBuildInputs = [ ClassAccessorChained ];
27142     meta = {
27143       description = "Parse vFile formatted files into data structures";
27144       license = with lib.licenses; [ artistic1 gpl1Plus ];
27145     };
27146   };
27148   TextWikiFormat = buildPerlModule {
27149     pname = "Text-WikiFormat";
27150     version = "0.81";
27151     src = fetchurl {
27152       url = "mirror://cpan/authors/id/C/CY/CYCLES/Text-WikiFormat-0.81.tar.gz";
27153       hash = "sha256-5DzZla2RV6foOdmT7ntsTRhUlH5VfQltnVqvdFB/qzM=";
27154     };
27155     propagatedBuildInputs = [ URI ];
27156     meta = {
27157       description = "Module for translating Wiki formatted text into other formats";
27158       license = with lib.licenses; [ artistic1 gpl1Plus ];
27159     };
27160   };
27162   TextWordDiff = buildPerlPackage {
27163     pname = "Text-WordDiff";
27164     version = "0.09";
27165     src = fetchurl {
27166       url = "mirror://cpan/authors/id/T/TI/TIMK/Text-WordDiff-0.09.tar.gz";
27167       hash = "sha256-/uaZynY63KL04Y9KioNv0hArwoIK9wj460M1bVrg1Q4=";
27168     };
27169     propagatedBuildInputs = [ AlgorithmDiff HTMLParser ];
27170     meta = {
27171       description = "Track changes between documents";
27172       homepage = "https://metacpan.org/release/Text-WordDiff";
27173       license = with lib.licenses; [ artistic1 gpl1Plus ];
27174     };
27175   };
27177   TextWrapI18N = buildPerlPackage {
27178     pname = "Text-WrapI18N";
27179     version = "0.06";
27180     src = fetchurl {
27181       url = "mirror://cpan/authors/id/K/KU/KUBOTA/Text-WrapI18N-0.06.tar.gz";
27182       hash = "sha256-S9KaF/DCx5LRLBAFs8J28qsPrjnACFmuF0HXlBhGpIg=";
27183     };
27184     buildInputs = lib.optionals (!stdenv.hostPlatform.isDarwin) [ pkgs.glibcLocales ];
27185     propagatedBuildInputs = [ TextCharWidth ];
27186     preConfigure = ''
27187       substituteInPlace WrapI18N.pm --replace '/usr/bin/locale' '${pkgs.unixtools.locale}/bin/locale'
27188     '';
27189     meta = {
27190       description = "Line wrapping module with support for multibyte, fullwidth, and combining characters and languages without whitespaces between words";
27191       license = with lib.licenses; [ artistic1 gpl1Plus ];
27192     };
27193   };
27195   TextWrapper = buildPerlPackage {
27196     pname = "Text-Wrapper";
27197     version = "1.05";
27198     src = fetchurl {
27199       url = "mirror://cpan/authors/id/C/CJ/CJM/Text-Wrapper-1.05.tar.gz";
27200       hash = "sha256-ZCaOFZg6nfR+HZGZpJHzlOifVC5Ur7M/S3jz8xjgmrk=";
27201     };
27202     buildInputs = [ TestDifferences ];
27203     meta = {
27204       description = "Word wrap text by breaking long lines";
27205       license = with lib.licenses; [ artistic1 gpl1Plus ];
27206     };
27207   };
27209   Throwable = buildPerlPackage {
27210     pname = "Throwable";
27211     version = "1.001";
27212     src = fetchurl {
27213       url = "mirror://cpan/authors/id/R/RJ/RJBS/Throwable-1.001.tar.gz";
27214       hash = "sha256-0MtenX0G1w8sxW7s+FeoOkXqykOFDc3akdP+tN3eTFE=";
27215     };
27216     propagatedBuildInputs = [ DevelStackTrace Moo ];
27217     meta = {
27218       description = "Role for classes that can be thrown";
27219       homepage = "https://github.com/rjbs/Throwable";
27220       license = with lib.licenses; [ artistic1 gpl1Plus ];
27221     };
27222   };
27224   TieCacheLRU = buildPerlPackage {
27225     pname = "Tie-Cache-LRU";
27226     version = "20150301";
27227     src = fetchurl {
27228       url = "mirror://cpan/authors/id/M/MS/MSCHWERN/Tie-Cache-LRU-20150301.tar.gz";
27229       hash = "sha256-G/dARQ06bXwStIwl99pZZOROfMOLKFcs+3b/IkZPRGk=";
27230     };
27231     propagatedBuildInputs = [ ClassVirtual enum ];
27232     meta = {
27233       description = "Least-Recently Used cache";
27234       license = with lib.licenses; [ artistic1 gpl1Plus ];
27235     };
27236   };
27238   TieCacheLRUExpires = buildPerlPackage {
27239     pname = "Tie-Cache-LRU-Expires";
27240     version = "0.55";
27241     src = fetchurl {
27242       url = "mirror://cpan/authors/id/O/OE/OESTERHOL/Tie-Cache-LRU-Expires-0.55.tar.gz";
27243       hash = "sha256-sxbYSazSXyQ0bVWplQ0oH+4HRjmHZ8YBI0EiFZVz65o=";
27244     };
27245     propagatedBuildInputs = [ TieCacheLRU ];
27246     meta = {
27247       description = "Extends Tie::Cache::LRU with expiring";
27248       license = with lib.licenses; [ artistic1 ];
27249     };
27250   };
27252   TieCycle = buildPerlPackage {
27253     pname = "Tie-Cycle";
27254     version = "1.227";
27255     src = fetchurl {
27256       url = "mirror://cpan/authors/id/B/BD/BDFOY/Tie-Cycle-1.227.tar.gz";
27257       hash = "sha256-eDgzV5HnGjszuKGd4wUpSeGJCkgj3vY5eCPJkiL6Hdg=";
27258     };
27259     meta = {
27260       description = "Cycle through a list of values via a scalar";
27261       homepage = "https://github.com/briandfoy/tie-cycle";
27262       license = with lib.licenses; [ artistic2 ];
27263     };
27264   };
27266   TieEncryptedHash = buildPerlPackage {
27267     pname = "Tie-EncryptedHash";
27268     version = "1.24";
27269     src = fetchurl {
27270       url = "mirror://cpan/authors/id/V/VI/VIPUL/Tie-EncryptedHash-1.24.tar.gz";
27271       hash = "sha256-qpoIOiMeQEYXCliUZE48WWecfb0KotEhfchRUN8sHiE=";
27272     };
27273     propagatedBuildInputs = [ CryptBlowfish CryptCBC CryptDES ];
27274     meta = {
27275       description = "Hashes (and objects based on hashes) with encrypting fields";
27276       license = with lib.licenses; [ artistic1 gpl1Plus ];
27277       maintainers = [ maintainers.sgo ];
27278     };
27279   };
27281   TieFile = buildPerlPackage {
27282     pname = "Tie-File";
27283     version = "1.07";
27284     src = fetchurl {
27285       url = "mirror://cpan/authors/id/T/TO/TODDR/Tie-File-1.07.tar.gz";
27286       hash = "sha256-S1NUpB/pVBvc6lK0/VMBRPMVME0D8F3Q/vwynYHCawg=";
27287     };
27288     meta = {
27289       description = "Access the lines of a disk file via a Perl array";
27290       license = with lib.licenses; [ artistic1 gpl1Plus ];
27291     };
27292   };
27294   TieIxHash = buildPerlModule {
27295     pname = "Tie-IxHash";
27296     version = "1.23";
27297     src = fetchurl {
27298       url = "mirror://cpan/authors/id/C/CH/CHORNY/Tie-IxHash-1.23.tar.gz";
27299       hash = "sha256-+rsLjJfmfJs0tswY7Wb2xeAcVbJX3PAHVV4LAn1Mr1Y=";
27300     };
27301     meta = {
27302       description = "Ordered associative arrays for Perl";
27303       license = with lib.licenses; [ artistic1 gpl1Plus ];
27304     };
27305   };
27307   TieHandleOffset = buildPerlPackage {
27308     pname = "Tie-Handle-Offset";
27309     version = "0.004";
27310     src = fetchurl {
27311       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Tie-Handle-Offset-0.004.tar.gz";
27312       hash = "sha256-7p85BV3GlaokSiUvVv/Tf4vgcgmzN604eCRyEgbSqJ4=";
27313     };
27314     meta = {
27315       description = "Tied handle that hides the beginning of a file";
27316       homepage = "https://github.com/dagolden/tie-handle-offset";
27317       license = with lib.licenses; [ asl20 ];
27318     };
27319   };
27321   TieHashIndexed = buildPerlPackage {
27322     pname = "Tie-Hash-Indexed";
27323     version = "0.08";
27324     src = fetchurl {
27325       url = "mirror://cpan/authors/id/M/MH/MHX/Tie-Hash-Indexed-0.08.tar.gz";
27326       hash = "sha256-N7xigV9ahIrHeRK5v0eIqfJyiE6DpS4gk9q0qDpKexA=";
27327     };
27328     doCheck = false; /* test fails on some machines */
27329     meta = {
27330       description = "Ordered hashes for Perl";
27331       license = with lib.licenses; [ artistic1 gpl1Plus ];
27332     };
27333   };
27335   TieHashMethod = buildPerlPackage {
27336     pname = "Tie-Hash-Method";
27337     version = "0.02";
27338     src = fetchurl {
27339       url = "mirror://cpan/authors/id/Y/YV/YVES/Tie-Hash-Method-0.02.tar.gz";
27340       hash = "sha256-1RP7tRQT98oeZKG9zmGU337GB23qVQZtZ7lQGR7sMqk=";
27341     };
27342     meta = {
27343       description = "Tied hash with specific methods overriden by callbacks";
27344       license = with lib.licenses; [ artistic1 ];
27345     };
27346   };
27348   TieRefHash = buildPerlPackage {
27349     pname = "Tie-RefHash";
27350     version = "1.40";
27351     src = fetchurl {
27352       url = "mirror://cpan/authors/id/E/ET/ETHER/Tie-RefHash-1.40.tar.gz";
27353       hash = "sha256-Ws8fUY0vtfYgyq16Gy/x9vdRb++PQLprdD7si5aSftc=";
27354     };
27355     meta = {
27356       description = "Use references as hash keys";
27357       license = with lib.licenses; [ artistic1 gpl1Plus ];
27358     };
27359   };
27361   TieRegexpHash = buildPerlPackage {
27362     pname = "Tie-RegexpHash";
27363     version = "0.17";
27364     src = fetchurl {
27365       url = "mirror://cpan/authors/id/A/AL/ALTREUS/Tie-RegexpHash-0.17.tar.gz";
27366       hash = "sha256-DCB4UOd++xZhjgqgFVB5JqNCWzSq1apuPkDYOYmghaM=";
27367     };
27368     meta = {
27369       description = "Use regular expressions as hash keys";
27370       license = with lib.licenses; [ artistic1 ];
27371     };
27372   };
27374   TieSimple = buildPerlPackage {
27375     pname = "Tie-Simple";
27376     version = "1.04";
27377     src = fetchurl {
27378       url = "mirror://cpan/authors/id/H/HA/HANENKAMP/Tie-Simple-1.04.tar.gz";
27379       hash = "sha256-KeniEzlRBGx48gXxs+jfYskOEU8OCPoGuBd2ag+AixI=";
27380     };
27381     meta = {
27382       description = "Variable ties made much easier: much, much, much easier.";
27383       license = with lib.licenses; [ artistic1 gpl1Plus ];
27384     };
27385   };
27387   TieSub = buildPerlPackage {
27388     pname = "Tie-Sub";
27389     version = "1.001";
27390     src = fetchurl {
27391       url = "mirror://cpan/authors/id/S/ST/STEFFENW/Tie-Sub-1.001.tar.gz";
27392       hash = "sha256-73GgSCbRNisrduyyHOFzw304pHqf7Cg6qYJDWJD08bE=";
27393     };
27394     propagatedBuildInputs = [ ParamsValidate ];
27395     buildInputs = [ ModuleBuild TestDifferences TestException TestNoWarnings ];
27396     meta = {
27397       description = "Tie::Sub - Tying a subroutine, function or method to a hash";
27398       license = with lib.licenses; [ artistic1 gpl1Plus ];
27399     };
27400   };
27402   TieToObject = buildPerlPackage {
27403     pname = "Tie-ToObject";
27404     version = "0.03";
27405     src = fetchurl {
27406       url = "mirror://cpan/authors/id/N/NU/NUFFIN/Tie-ToObject-0.03.tar.gz";
27407       hash = "sha256-oxoNRDD+FPWWIvMdt/JbInXa0uxS8QQL6wMNPoOtOvQ=";
27408     };
27409     meta = {
27410       description = "Tie to an existing object";
27411       license = with lib.licenses; [ artistic1 gpl1Plus ];
27412     };
27413   };
27415   TimeDate = buildPerlPackage {
27416     pname = "TimeDate";
27417     version = "2.33";
27418     src = fetchurl {
27419       url = "mirror://cpan/authors/id/A/AT/ATOOMIC/TimeDate-2.33.tar.gz";
27420       hash = "sha256-wLacSwOd5vUBsNnxPsWMhrBAwffpsn7ySWUcFD1gXrI=";
27421     };
27422     meta = {
27423       description = "Miscellaneous timezone manipulations routines";
27424       license = with lib.licenses; [ artistic1 gpl1Plus ];
27425     };
27426   };
27428   TimeDuration = buildPerlPackage {
27429     pname = "Time-Duration";
27430     version = "1.21";
27431     src = fetchurl {
27432       url = "mirror://cpan/authors/id/N/NE/NEILB/Time-Duration-1.21.tar.gz";
27433       hash = "sha256-/jQOuodl+SY2lGdOXf8UgzRD4Zhl5f9Ce715t7X4qbg=";
27434     };
27435     meta = {
27436       description = "Rounded or exact English expression of durations";
27437       homepage = "https://github.com/neilbowers/Time-Duration";
27438       license = with lib.licenses; [ artistic1 gpl1Plus ];
27439     };
27440   };
27442   TimeDurationParse = buildPerlPackage {
27443     pname = "Time-Duration-Parse";
27444     version = "0.16";
27445     src = fetchurl {
27446       url = "mirror://cpan/authors/id/N/NE/NEILB/Time-Duration-Parse-0.16.tar.gz";
27447       hash = "sha256-EISmRj7ieQ+ZIVvXaxNcpFr+K/ppmPpv1UcLaeG6vBI=";
27448     };
27449     buildInputs = [ TimeDuration ];
27450     propagatedBuildInputs = [ ExporterLite ];
27451     meta = {
27452       description = "Parse string that represents time duration";
27453       homepage = "https://github.com/neilb/Time-Duration-Parse";
27454       license = with lib.licenses; [ artistic1 gpl1Plus ];
27455     };
27456   };
27458   TimeLocal = buildPerlPackage {
27459     pname = "Time-Local";
27460     version = "1.35";
27461     src = fetchurl {
27462       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Time-Local-1.35.tar.gz";
27463       hash = "sha256-HRNrcb0EHL5vZsQxgO555nW3KtWjWWq9akTSEQcq2ik=";
27464     };
27465     meta = {
27466       description = "Efficiently compute time from local and GMT time";
27467       homepage = "https://metacpan.org/release/Time-Local";
27468       license = with lib.licenses; [ artistic1 gpl1Plus ];
27469     };
27470   };
27472   TimeMoment = buildPerlPackage {
27473     pname = "Time-Moment";
27474     version = "0.44";
27475     src = fetchurl {
27476       url = "mirror://cpan/authors/id/C/CH/CHANSEN/Time-Moment-0.44.tar.gz";
27477       hash = "sha256-ZKz6BC9jT8742t9V5/QrpOqriq631SEuuJgVox949v0=";
27478     };
27479     buildInputs = [ TestFatal TestNumberDelta TestRequires ];
27480     meta = {
27481       description = "Represents a date and time of day with an offset from UTC";
27482       license = with lib.licenses; [ artistic1 gpl1Plus ];
27483     };
27484   };
27486   TimeOut = buildPerlPackage {
27487     pname = "Time-Out";
27488     version = "0.11";
27489     src = fetchurl {
27490       url = "mirror://cpan/authors/id/P/PA/PATL/Time-Out-0.11.tar.gz";
27491       hash = "sha256-k5baaY/UUtnOYNZCzaIQjxHyDtdsiWF3muEbiXroFdI=";
27492     };
27493     meta = {
27494       description = "Easily timeout long running operations";
27495       license = with lib.licenses; [ artistic1 gpl1Plus ];
27496     };
27497   };
27499   TimeParseDate = buildPerlPackage {
27500     pname = "Time-ParseDate";
27501     version = "2015.103";
27502     src = fetchurl {
27503       url = "mirror://cpan/authors/id/M/MU/MUIR/modules/Time-ParseDate-2015.103.tar.gz";
27504       hash = "sha256-LBoGI1v4EYE8qsnqqdqnGvdYZnzfewgstZhjIg/K7tE=";
27505     };
27506     doCheck = false;
27507     meta = {
27508       description = "Parse and format time values";
27509       license = with lib.licenses; [ publicDomain ];
27510     };
27511   };
27513   TimePeriod = buildPerlPackage {
27514     pname = "Time-Period";
27515     version = "1.25";
27516     src = fetchurl {
27517       url = "mirror://cpan/authors/id/P/PB/PBOYD/Time-Period-1.25.tar.gz";
27518       hash = "sha256-0H+lgFKb6sapyCdMa/IgtMOq3mhd9lwWadUzOb9u8eg=";
27519     };
27520     meta = {
27521       description = "Perl module to deal with time periods";
27522       license = with lib.licenses; [ artistic1 gpl1Plus ];
27523       maintainers = [ maintainers.winpat ];
27524     };
27525   };
27527   TimePiece = buildPerlPackage {
27528     pname = "Time-Piece";
27529     version = "1.3401";
27530     src = fetchurl {
27531       url = "mirror://cpan/authors/id/E/ES/ESAYM/Time-Piece-1.3401.tar.gz";
27532       hash = "sha256-S1W3uw6rRc8jmlTf6tJ336BhIaQ+Y7P84IU67P2wTCc=";
27533     };
27534     meta = {
27535       description = "Object Oriented time objects";
27536       homepage = "https://metacpan.org/release/Time-Piece";
27537       license = with lib.licenses; [ artistic1 gpl1Plus ];
27538       maintainers = with maintainers; [ sgo ];
27539     };
27540   };
27542   Tirex = callPackage ../development/perl-modules/Tirex { };
27544   Tk = buildPerlPackage {
27545     pname = "Tk";
27546     version = "804.036";
27547     src = fetchurl {
27548       url = "mirror://cpan/authors/id/S/SR/SREZIC/Tk-804.036.tar.gz";
27549       hash = "sha256-Mqpycaa9/twzMBGbOCXa3dCqS1yTb4StdOq7kyogCl4=";
27550     };
27551     patches = [
27552       # Fix failing configure test due to implicit int return value of main, which results
27553       # in an error with clang 16.
27554       ../development/perl-modules/tk-configure-implicit-int-fix.patch
27555     ];
27556     makeMakerFlags = [ "X11INC=${pkgs.xorg.libX11.dev}/include" "X11LIB=${pkgs.xorg.libX11.out}/lib" ];
27557     buildInputs = [ pkgs.xorg.libX11 pkgs.libpng ];
27558     env = lib.optionalAttrs stdenv.cc.isGNU {
27559       NIX_CFLAGS_COMPILE = toString [
27560         "-Wno-error=implicit-int"
27561         "-Wno-error=incompatible-pointer-types"
27562       ];
27563     };
27564     doCheck = false;            # Expects working X11.
27565     meta = {
27566       description = "Tk - a Graphical User Interface Toolkit";
27567       license = with lib.licenses; [ tcltk ];
27568     };
27569   };
27571   TkToolBar = buildPerlPackage {
27572     pname = "Tk-ToolBar";
27573     version = "0.12";
27574     src = fetchurl {
27575       url = "mirror://cpan/authors/id/A/AS/ASB/Tk-ToolBar-0.12.tar.gz";
27576       hash = "sha256-Rj4oTsRxN+fEJclpGwKo3sXOJytY6h9jWa6AQaI53Q8=";
27577     };
27578     makeMakerFlags = [ "X11INC=${pkgs.xorg.libX11.dev}/include" "X11LIB=${pkgs.xorg.libX11.out}/lib" ];
27579     buildInputs = [ Tk ];
27580     doCheck = false;            # Expects working X11.
27581     meta = {
27582       description = "Toolbar widget for Perl/Tk";
27583       license = with lib.licenses; [ artistic1 gpl1Plus ];
27584     };
27585   };
27587   TreeDAGNode = buildPerlPackage {
27588     pname = "Tree-DAG_Node";
27589     version = "1.32";
27590     src = fetchurl {
27591       url = "mirror://cpan/authors/id/R/RS/RSAVAGE/Tree-DAG_Node-1.32.tgz";
27592       hash = "sha256-ItnePW5vSv2J5tglxmT5SCh4vUninLgTQqcHr0BULT0=";
27593     };
27594     propagatedBuildInputs = [ FileSlurpTiny ];
27595     meta = {
27596       description = "N-ary tree";
27597       license = with lib.licenses; [ artistic1 gpl1Plus ];
27598     };
27599   };
27601   TreeSimple = buildPerlPackage {
27602     pname = "Tree-Simple";
27603     version = "1.34";
27604     src = fetchurl {
27605       url = "mirror://cpan/authors/id/R/RS/RSAVAGE/Tree-Simple-1.34.tgz";
27606       hash = "sha256-t+l5m9Iiu5TP+ZP312WYDL6hts0qql7L6tY1q99H0pw=";
27607     };
27608     buildInputs = [ TestException ];
27609     meta = {
27610       description = "Simple tree object";
27611       license = with lib.licenses; [ artistic1 gpl1Plus ];
27612     };
27613   };
27615   TreeSimpleVisitorFactory = buildPerlPackage {
27616     pname = "Tree-Simple-VisitorFactory";
27617     version = "0.16";
27618     src = fetchurl {
27619       url = "mirror://cpan/authors/id/R/RS/RSAVAGE/Tree-Simple-VisitorFactory-0.16.tgz";
27620       hash = "sha256-nPU4+qEsVP+0qRQ5lF5IjxhW9iuJrFByqSIRngGIDaY=";
27621     };
27622     propagatedBuildInputs = [ TreeSimple ];
27623     buildInputs = [ TestException ];
27624     meta = {
27625       description = "Factory object for dispensing Visitor objects";
27626       license = with lib.licenses; [ artistic1 gpl1Plus ];
27627     };
27628   };
27630   TryTiny = buildPerlPackage {
27631     pname = "Try-Tiny";
27632     version = "0.31";
27633     src = fetchurl {
27634       url = "mirror://cpan/authors/id/E/ET/ETHER/Try-Tiny-0.31.tar.gz";
27635       hash = "sha256-MwDTHYpAdbJtj0bOhkodkT4OhGfO66ZlXV0rLiBsEb4=";
27636     };
27637     buildInputs = [ CPANMetaCheck CaptureTiny ];
27638     meta = {
27639       description = "Minimal try/catch with proper preservation of $@";
27640       homepage = "https://github.com/p5sagit/Try-Tiny";
27641       license = with lib.licenses; [ mit ];
27642     };
27643   };
27645   TryTinyByClass = buildPerlPackage {
27646     pname = "Try-Tiny-ByClass";
27647     version = "0.01";
27648     src = fetchurl {
27649       url = "mirror://cpan/authors/id/M/MA/MAUKE/Try-Tiny-ByClass-0.01.tar.gz";
27650       hash = "sha256-A45O9SkpXyacKA/vmZpeTbkVaULwkaw8rXabHkVw8UY=";
27651     };
27652     propagatedBuildInputs = [ DispatchClass TryTiny ];
27653     meta = {
27654       description = "Selectively catch exceptions by class name";
27655       license = with lib.licenses; [ artistic1 gpl1Plus ];
27656     };
27657   };
27659   Twiggy = buildPerlPackage {
27660     pname = "Twiggy";
27661     version = "0.1026";
27662     src = fetchurl {
27663       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Twiggy-0.1026.tar.gz";
27664       hash = "sha256-TZHqbtmumo70MU3Cp89S6wJrNlvmg4azXqaGTfrFf54=";
27665     };
27666     propagatedBuildInputs = [ AnyEvent Plack ];
27667     buildInputs = [ TestRequires TestSharedFork TestTCP ];
27668     meta = {
27669       description = "AnyEvent HTTP server for PSGI";
27670       homepage = "https://github.com/miyagawa/Twiggy";
27671       license = with lib.licenses; [ artistic1 gpl1Plus ];
27672       mainProgram = "twiggy";
27673     };
27674   };
27676   TypeTiny = buildPerlPackage {
27677     pname = "Type-Tiny";
27678     version = "2.004000";
27679     src = fetchurl {
27680       url = "mirror://cpan/authors/id/T/TO/TOBYINK/Type-Tiny-2.004000.tar.gz";
27681       hash = "sha256-aX5/d17fyF9M8HeS0E/RmwnCUoX5j1k46O/E90UHoSg=";
27682     };
27683     propagatedBuildInputs = [ ExporterTiny ];
27684     buildInputs = [ TestMemoryCycle ];
27685     meta = {
27686       description = "Tiny, yet Moo(se)-compatible type constraint";
27687       homepage = "https://typetiny.toby.ink";
27688       license = with lib.licenses; [ artistic1 gpl1Plus ];
27689     };
27690   };
27692   TypeTinyXS = buildPerlPackage {
27693     pname = "Type-Tiny-XS";
27694     version = "0.025";
27695     src = fetchurl {
27696       url = "mirror://cpan/authors/id/T/TO/TOBYINK/Type-Tiny-XS-0.025.tar.gz";
27697       hash = "sha256-mmFFDdqQKU9gbNej+kTzsaNmvNiKQZkXsFTuXiPRSL0=";
27698     };
27699     meta = {
27700       description = "Provides an XS boost for some of Type::Tiny's built-in type constraints";
27701       homepage = "https://metacpan.org/release/Type-Tiny-XS";
27702       license = with lib.licenses; [ artistic1 gpl1Plus ];
27703     };
27704   };
27706   TypesSerialiser = buildPerlPackage {
27707     pname = "Types-Serialiser";
27708     version = "1.01";
27709     src = fetchurl {
27710       url = "mirror://cpan/authors/id/M/ML/MLEHMANN/Types-Serialiser-1.01.tar.gz";
27711       hash = "sha256-+McXOwkU0OPZVyggd7Nm8MjHAlZxXq7zKY/zK5I4ioA=";
27712     };
27713     propagatedBuildInputs = [ commonsense ];
27714     meta = {
27715       description = "Simple data types for common serialisation formats";
27716       license = with lib.licenses; [ artistic1 gpl1Plus ];
27717     };
27718   };
27720   UNIVERSALcan = buildPerlPackage {
27721     pname = "UNIVERSAL-can";
27722     version = "1.20140328";
27723     src = fetchurl {
27724       url = "mirror://cpan/authors/id/C/CH/CHROMATIC/UNIVERSAL-can-1.20140328.tar.gz";
27725       hash = "sha256-Ui2p8nR4b+LLqZvHfMHIHSFhlHkD1/rRC9Yt+38RmQ8=";
27726     };
27727     meta = {
27728       description = "Work around buggy code calling UNIVERSAL::can() as a function";
27729       homepage = "https://github.com/chromatic/UNIVERSAL-can";
27730       license = with lib.licenses; [ artistic1 gpl1Plus ];
27731     };
27732   };
27734   UNIVERSALisa = buildPerlPackage {
27735     pname = "UNIVERSAL-isa";
27736     version = "1.20171012";
27737     src = fetchurl {
27738       url = "mirror://cpan/authors/id/E/ET/ETHER/UNIVERSAL-isa-1.20171012.tar.gz";
27739       hash = "sha256-0WlWA2ywHIGd7H0pT274kb4Ltkh2mJYBNUspMWTafys=";
27740     };
27741     meta = {
27742       description = "Attempt to recover from people calling UNIVERSAL::isa as a function";
27743       homepage = "https://github.com/karenetheridge/UNIVERSAL-isa";
27744       license = with lib.licenses; [ artistic1 gpl1Plus ];
27745     };
27746   };
27748   UNIVERSALrequire = buildPerlPackage {
27749     pname = "UNIVERSAL-require";
27750     version = "0.19";
27751     src = fetchurl {
27752       url = "mirror://cpan/authors/id/N/NE/NEILB/UNIVERSAL-require-0.19.tar.gz";
27753       hash = "sha256-1GfNJuBsjDsgP9O8B5aubIN6xeMQCTyCJn/134UPGgM=";
27754     };
27755     meta = {
27756       description = "Require() modules from a variable [deprecated]";
27757       license = with lib.licenses; [ artistic1 gpl1Plus ];
27758     };
27759   };
27761   UnicodeCaseFold = buildPerlModule {
27762     pname = "Unicode-CaseFold";
27763     version = "1.01";
27764     src = fetchurl {
27765       url = "mirror://cpan/authors/id/A/AR/ARODLAND/Unicode-CaseFold-1.01.tar.gz";
27766       hash = "sha256-QYohKAj50Li7MwrJBQltLdNkl2dT1McVNNq5g2pjGU0=";
27767     };
27768     perlPreHook = lib.optionalString stdenv.hostPlatform.isi686 "export LD=$CC"; # fix undefined reference to `__stack_chk_fail_local'
27769     meta = {
27770       description = "Unicode case-folding for case-insensitive lookups";
27771       homepage = "https://metacpan.org/release/Unicode-CaseFold";
27772       license = with lib.licenses; [ artistic1 gpl1Plus ];
27773     };
27774   };
27776   UnicodeCheckUTF8 = buildPerlPackage {
27777     pname = "Unicode-CheckUTF8";
27778     version = "1.03";
27779     src = fetchurl {
27780       url = "mirror://cpan/authors/id/B/BR/BRADFITZ/Unicode-CheckUTF8-1.03.tar.gz";
27781       hash = "sha256-l/hNrwM+ubSc2P4x2yIf7wNaXC7h11fzEiyIz5diQUw=";
27782     };
27783     meta = {
27784       description = "Checks if scalar is valid UTF-8";
27785       license = with lib.licenses; [ ucd /* and */ artistic1 gpl1Plus ];
27786     };
27787   };
27789   UnicodeLineBreak = buildPerlPackage {
27790     pname = "Unicode-LineBreak";
27791     version = "2019.001";
27792     src = fetchurl {
27793       url = "mirror://cpan/authors/id/N/NE/NEZUMI/Unicode-LineBreak-2019.001.tar.gz";
27794       hash = "sha256-SGdi5MrN3Md7E5ifl5oCn4RjC4F15/7xeYnhV9S2MYo=";
27795     };
27796     propagatedBuildInputs = [ MIMECharset ];
27797     meta = {
27798       description = "UAX #14 Unicode Line Breaking Algorithm";
27799       license = with lib.licenses; [ artistic1 gpl1Plus ];
27800     };
27801   };
27803   UnicodeString = buildPerlPackage {
27804     pname = "Unicode-String";
27805     version = "2.10";
27806     src = fetchurl {
27807       url = "mirror://cpan/authors/id/G/GA/GAAS/GAAS/Unicode-String-2.10.tar.gz";
27808       hash = "sha256-iUoRDs5HlUaviv7Aly7scyDIbE3qTms1Tf88dSa6m2g=";
27809     };
27810     meta = {
27811       description = "String of Unicode characters (UTF-16BE)";
27812       license = with lib.licenses; [ artistic1 gpl1Plus ];
27813     };
27814   };
27816   UnicodeStringprep = buildPerlModule {
27817     pname = "Unicode-Stringprep";
27818     version = "1.105";
27819     src = fetchurl {
27820       url = "mirror://cpan/authors/id/C/CF/CFAERBER/Unicode-Stringprep-1.105.tar.gz";
27821       hash = "sha256-5r67xYQIIx/RMX25ECRJs+faT6Q3559jc4LTYxPv0BE=";
27822     };
27823     buildInputs = [ TestNoWarnings ];
27824     meta = {
27825       description = "Preparation of Internationalized Strings (RFC 3454)";
27826       license = with lib.licenses; [ artistic1 gpl1Plus ];
27827       maintainers = [ maintainers.sgo ];
27828     };
27829   };
27831   UnicodeUTF8 = buildPerlPackage {
27832     pname = "Unicode-UTF8";
27833     version = "0.62";
27834     src = fetchurl {
27835       url = "mirror://cpan/authors/id/C/CH/CHANSEN/Unicode-UTF8-0.62.tar.gz";
27836       hash = "sha256-+oci0LdGluMy/d1EKZRDbqk9O/x5gtS6vc7f3dZX0PY=";
27837     };
27838     buildInputs = [ TestFatal ];
27839     meta = {
27840       description = "Encoding and decoding of UTF-8 encoding form";
27841       homepage = "https://github.com/chansen/p5-unicode-utf8";
27842       license = with lib.licenses; [ artistic1 gpl1Plus ];
27843       maintainers = with maintainers; [ sgo ];
27844     };
27845   };
27847   UnixGetrusage = buildPerlPackage {
27848     pname = "Unix-Getrusage";
27849     version = "0.03";
27850     src = fetchurl {
27851       url = "mirror://cpan/authors/id/T/TA/TAFFY/Unix-Getrusage-0.03.tar.gz";
27852       hash = "sha256-ds3hzuJFMmC4WrvdwnzcmHXwHSRX4XbgPcq/BftETRI=";
27853     };
27854     meta = {
27855       description = "Perl interface to the Unix getrusage system call";
27856       license = with lib.licenses; [ artistic1 gpl1Plus ];
27857     };
27858   };
27860   URI = buildPerlPackage {
27861     pname = "URI";
27862     version = "5.21";
27863     src = fetchurl {
27864       url = "mirror://cpan/authors/id/O/OA/OALDERS/URI-5.21.tar.gz";
27865       hash = "sha256-liZYYM1hveFuhBXc+/EIBW3hYsqgrDf4HraVydLgq3c=";
27866     };
27867     buildInputs = [ TestFatal TestNeeds TestWarnings ];
27868     meta = {
27869       description = "Uniform Resource Identifiers (absolute and relative)";
27870       homepage = "https://github.com/libwww-perl/URI";
27871       license = with lib.licenses; [ artistic1 gpl1Plus ];
27872     };
27873   };
27875   URIdb = buildPerlModule {
27876     pname = "URI-db";
27877     version = "0.21";
27878     src = fetchurl {
27879       url = "mirror://cpan/authors/id/D/DW/DWHEELER/URI-db-0.21.tar.gz";
27880       hash = "sha256-pkM9wVF6kH4YmRKkx2td/HYzLj/X/Is4oTfkAZx4CzQ=";
27881     };
27882     propagatedBuildInputs = [ URINested ];
27883     meta = {
27884       description = "Database URIs";
27885       homepage = "https://search.cpan.org/dist/URI-db";
27886       license = with lib.licenses; [ artistic1 gpl1Plus ];
27887     };
27888   };
27890   URIFind = buildPerlModule {
27891     pname = "URI-Find";
27892     version = "20160806";
27893     src = fetchurl {
27894       url = "mirror://cpan/authors/id/M/MS/MSCHWERN/URI-Find-20160806.tar.gz";
27895       hash = "sha256-4hOkJaUbX1UyQhHzeQnXh0nQus3qJZulGphV0NGWY9Y=";
27896     };
27897     propagatedBuildInputs = [ URI ];
27898     meta = {
27899       description = "Find URIs in arbitrary text";
27900       homepage = "https://metacpan.org/release/URI-Find";
27901       license = with lib.licenses; [ artistic1 gpl1Plus ];
27902       mainProgram = "urifind";
27903     };
27904   };
27906   URIFromHash = buildPerlPackage {
27907     pname = "URI-FromHash";
27908     version = "0.05";
27909     src = fetchurl {
27910       url = "mirror://cpan/authors/id/D/DR/DROLSKY/URI-FromHash-0.05.tar.gz";
27911       hash = "sha256-p8rFvM7p8uLYrQ9gVAAWNxLNCsZN8vuDT3YPtJ8vb9A=";
27912     };
27913     propagatedBuildInputs = [ ParamsValidate URI ];
27914     buildInputs = [ TestFatal ];
27915     meta = {
27916       description = "Build a URI from a set of named parameters";
27917       homepage = "https://metacpan.org/release/URI-FromHash";
27918       license = with lib.licenses; [ artistic2 ];
27919     };
27920   };
27922   UriGoogleChart = buildPerlPackage {
27923     pname = "URI-GoogleChart";
27924     version = "1.02";
27925     src = fetchurl {
27926       url = "mirror://cpan/authors/id/G/GA/GAAS/URI-GoogleChart-1.02.tar.gz";
27927       hash = "sha256-WoLCLsYBejXQ/IJv7xNBIiaHL8SiPA4sAUqfqS8rGAI=";
27928     };
27929     propagatedBuildInputs = [ URI ];
27930     meta = {
27931       description = "Generate Google Chart URIs";
27932       license = with lib.licenses; [ artistic1 gpl1Plus ];
27933     };
27934   };
27936   UserIdentity = buildPerlPackage {
27937     pname = "User-Identity";
27938     version = "1.02";
27939     src = fetchurl {
27940       url = "mirror://cpan/authors/id/M/MA/MARKOV/User-Identity-1.02.tar.gz";
27941       hash = "sha256-OySu5/UnjGXD8EEVsHyG5kaTTpnqQJJANj8wiZE+uJk=";
27942     };
27943     propagatedBuildInputs = [ HashOrdered ];
27944     meta = {
27945       description = "Collect information about a user";
27946       homepage = "http://perl.overmeer.net/CPAN";
27947       license = with lib.licenses; [ artistic1 gpl1Plus ];
27948     };
27949   };
27951   URIIMAP = buildPerlPackage {
27952     pname = "URI-imap";
27953     version = "1.01";
27954     src = fetchurl {
27955       url = "mirror://cpan/authors/id/C/CW/CWEST/URI-imap-1.01.tar.gz";
27956       hash = "sha256-uxSZiW7ONKe08JFinC5yw2imcwDoVzqyIZjJ2HI1uy0=";
27957     };
27958     propagatedBuildInputs = [ URI ];
27959     meta = {
27960       description = "Support IMAP URI";
27961       license = with lib.licenses; [ artistic1 gpl1Plus ];
27962     };
27963   };
27965   URINested = buildPerlModule {
27966     pname = "URI-Nested";
27967     version = "0.10";
27968     src = fetchurl {
27969       url = "mirror://cpan/authors/id/D/DW/DWHEELER/URI-Nested-0.10.tar.gz";
27970       hash = "sha256-4ZcTOaZfusY6uHFC1LWdPSWdUUF3U8d8tY6jGoIz768=";
27971     };
27972     propagatedBuildInputs = [ URI ];
27973     meta = {
27974       description = "Nested URIs";
27975       homepage = "https://metacpan.org/release/URI-Nested";
27976       license = with lib.licenses; [ artistic1 gpl1Plus ];
27977     };
27978   };
27980   URISmartURI = buildPerlPackage {
27981     pname = "URI-SmartURI";
27982     version = "0.032";
27983     src = fetchurl {
27984       url = "mirror://cpan/authors/id/R/RK/RKITOVER/URI-SmartURI-0.032.tar.gz";
27985       hash = "sha256-6xdLeUYi4UK30JT2p+Nqe6T8i7zySF4QPuPaNevMTyw=";
27986     };
27987     propagatedBuildInputs = [ ClassC3Componentised FileFindRule ListMoreUtils Moose URI namespaceclean ];
27988     buildInputs = [ TestFatal TestNoWarnings ];
27989     meta = {
27990       description = "Subclassable and hostless URIs";
27991       license = with lib.licenses; [ artistic1 gpl1Plus ];
27992     };
27993   };
27995   URITemplate = buildPerlPackage {
27996     pname = "URI-Template";
27997     version = "0.24";
27998     src = fetchurl {
27999       url = "mirror://cpan/authors/id/B/BR/BRICAS/URI-Template-0.24.tar.gz";
28000       hash = "sha256-aK4tYbV+FNytD4Kvr/3F7AW1B6HpyN9aphOKqipbEd4=";
28001     };
28002     propagatedBuildInputs = [ URI ];
28003     meta = {
28004       description = "Object for handling URI templates (RFC 6570)";
28005       license = with lib.licenses; [ artistic1 gpl1Plus ];
28006     };
28007   };
28009   URIcpan = buildPerlPackage {
28010     pname = "URI-cpan";
28011     version = "1.009";
28012     src = fetchurl {
28013       url = "mirror://cpan/authors/id/R/RJ/RJBS/URI-cpan-1.009.tar.gz";
28014       hash = "sha256-JFV5sCW2P1d8cndDARmEcjhxykDcNezsjq05riSkjhI=";
28015     };
28016     propagatedBuildInputs = [ CPANDistnameInfo URI ];
28017     meta = {
28018       description = "URLs that refer to things on the CPAN";
28019       homepage = "https://github.com/rjbs/URI-cpan";
28020       license = with lib.licenses; [ artistic1 gpl1Plus ];
28021     };
28022   };
28024   URIws = buildPerlPackage {
28025     pname = "URI-ws";
28026     version = "0.03";
28027     src = fetchurl {
28028       url = "mirror://cpan/authors/id/P/PL/PLICEASE/URI-ws-0.03.tar.gz";
28029       hash = "sha256-bmsOQXKstqU8IiY5wABgjC3WHVCEhkdIKshgDVDlQe8=";
28030     };
28031     propagatedBuildInputs = [ URI ];
28032     meta = {
28033       description = "WebSocket support for URI package";
28034       homepage = "http://perl.wdlabs.com/URI-ws";
28035       license = with lib.licenses; [ artistic1 gpl1Plus ];
28036     };
28037   };
28039   UUID4Tiny = buildPerlPackage {
28040     pname = "UUID4-Tiny";
28041     version = "0.003";
28042     src = fetchurl {
28043       url = "mirror://cpan/authors/id/C/CV/CVLIBRARY/UUID4-Tiny-0.003.tar.gz";
28044       hash = "sha256-4S9sgrg1dcORd3O0HA+1HPeDx8bPcuDJkWks4u8Hg2I=";
28045     };
28046     postPatch = lib.optionalString (stdenv.hostPlatform.isAarch64) ''
28047       # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/uapi/asm-generic/unistd.h
28048       # printf SYS_getrandom | gcc -include sys/syscall.h -E -
28049       substituteInPlace lib/UUID4/Tiny.pm \
28050         --replace "syscall( 318" "syscall( 278"
28051     '';
28052     meta = {
28053       description = "Cryptographically secure v4 UUIDs for Linux x64";
28054       license = with lib.licenses; [ artistic1 gpl1Plus ];
28055       platforms = lib.platforms.linux; # configure phase fails with "OS unsupported"
28056     };
28057   };
28059   UUIDTiny = buildPerlPackage {
28060     pname = "UUID-Tiny";
28061     version = "1.04";
28062     src = fetchurl {
28063       url = "mirror://cpan/authors/id/C/CA/CAUGUSTIN/UUID-Tiny-1.04.tar.gz";
28064       hash = "sha256-bc2SYE1k6WzGwYgZSuFqnTpGVWIk93tvPR0TEraPmj0=";
28065     };
28066     meta = {
28067       description = "Pure Perl UUID Support With Functional Interface";
28068       license = with lib.licenses; [ artistic1 gpl1Plus ];
28069     };
28070   };
28072   UUIDURandom = buildPerlPackage {
28073     pname = "UUID-URandom";
28074     version = "0.001";
28075     src = fetchurl {
28076       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/UUID-URandom-0.001.tar.gz";
28077       hash = "sha256-PxNjGxO5YE+0ieKYlJDJnxA3Q6g3I5va+unWuvVfj0Y=";
28078     };
28079     propagatedBuildInputs = [ CryptURandom ];
28080     meta = {
28081       description = "UUIDs based on /dev/urandom or the Windows Crypto API";
28082       homepage = "https://github.com/dagolden/UUID-URandom";
28083       license = with lib.licenses; [ asl20 ];
28084     };
28085   };
28087   VariableMagic = buildPerlPackage {
28088     pname = "Variable-Magic";
28089     version = "0.63";
28090     src = fetchurl {
28091       url = "mirror://cpan/authors/id/V/VP/VPIT/Variable-Magic-0.63.tar.gz";
28092       hash = "sha256-ukCDssMf8mlPI3EzPVVMgmqvJLTZjQPki1tKQ6Kg5nk=";
28093     };
28094     meta = {
28095       description = "Associate user-defined magic to variables from Perl";
28096       homepage = "https://search.cpan.org/dist/Variable-Magic";
28097       license = with lib.licenses; [ artistic1 gpl1Plus ];
28098     };
28099   };
28101   Version = buildPerlPackage {
28102     pname = "version";
28103     version = "0.9930";
28104     src = fetchurl {
28105       url = "mirror://cpan/authors/id/L/LE/LEONT/version-0.9930.tar.gz";
28106       hash = "sha256-YduVX7yzn1kC+myLlXrrJ0HiPUhA+Eq/hGrx9nCu7jA=";
28107     };
28108     meta = {
28109       description = "Structured version objects";
28110       license = with lib.licenses; [ artistic1 gpl1Plus ];
28111     };
28112   };
28114   vidir = buildPerlPackage {
28115     pname = "App-vidir";
28116     version = "0.052";
28117     src = fetchurl {
28118       url = "mirror://cpan/authors/id/W/WO/WOLDRICH/App-vidir-0.052.tar.gz";
28119       hash = "sha256-GSKQdqXxPvGe1sEbu5Bcrc4iYH+pDoXJrxqqKbWsFQo=";
28120     };
28121     outputs = [ "out" ];
28122     meta = {
28123       description = "File manager USING vim itself";
28124       license = with lib.licenses; [ artistic1 gpl1Plus ];
28125       maintainers = [ maintainers.chreekat ];
28126       mainProgram = "vidir";
28127     };
28128   };
28130   VMEC2 = buildPerlModule {
28131     pname = "VM-EC2";
28132     version = "1.28";
28133     src = fetchurl {
28134       url = "mirror://cpan/authors/id/L/LD/LDS/VM-EC2-1.28.tar.gz";
28135       hash = "sha256-srazF0XFdDH8oO+5udC48WjWCBdV4Ej9nWxEab0Qis0=";
28136     };
28137     propagatedBuildInputs = [ AnyEventCacheDNS AnyEventHTTP JSON StringApprox XMLSimple ];
28138     meta = {
28139       description = "Perl interface to Amazon EC2, Virtual Private Cloud, Elastic Load Balancing, Autoscaling, and Relational Database services";
28140       license = with lib.licenses; [ artistic1 gpl1Plus ];
28141     };
28142   };
28144   VMEC2SecurityCredentialCache = buildPerlPackage {
28145     pname = "VM-EC2-Security-CredentialCache";
28146     version = "0.25";
28147     src = fetchurl {
28148       url = "mirror://cpan/authors/id/R/RC/RCONOVER/VM-EC2-Security-CredentialCache-0.25.tar.gz";
28149       hash = "sha256-/H6cFS/ytyHMsiGsQAiZNHdc9YNmrttcwWk2CfhAk3s=";
28150     };
28151     propagatedBuildInputs = [ DateTimeFormatISO8601 VMEC2 ];
28152     meta = {
28153       description = "Cache credentials respecting expiration time for IAM roles";
28154       homepage = "https://search.cpan.org/dist/VM-EC2-Security-CredentialCache";
28155       license = with lib.licenses; [ artistic1 gpl1Plus ];
28156     };
28157   };
28159   W3CLinkChecker = buildPerlPackage {
28160     pname = "W3C-LinkChecker";
28161     version = "5.0.0";
28162     src = fetchurl {
28163       url = "mirror://cpan/authors/id/D/DH/DHM/W3C-LinkChecker-5.0.0.tar.gz";
28164       hash = "sha256-CvdY0ZUMswTdqvqnoDmHaHTYjC/teL2KYx6zkG5U+6Y=";
28165     };
28166     outputs = [ "out" ];
28167     propagatedBuildInputs = [ CGI CSSDOM ConfigGeneral LWP LocaleCodes NetIP TermReadKey ];
28168     meta = {
28169       description = "W3C Link Checker";
28170       homepage = "https://validator.w3.org/checklink";
28171       license = with lib.licenses; [ w3c ];
28172       mainProgram = "checklink";
28173     };
28174   };
28176   WWWCurl = buildPerlPackage {
28177     pname = "WWW-Curl";
28178     version = "4.17";
28179     src = fetchurl {
28180       url = "mirror://cpan/authors/id/S/SZ/SZBALINT/WWW-Curl-4.17.tar.gz";
28181       hash = "sha256-Uv+rEQ4yNI13XyQclz61b5awju28EQ130lfNsKJKt7o=";
28182     };
28183     patches = [
28184       (fetchpatch {
28185         url = "https://aur.archlinux.org/cgit/aur.git/plain/makefile.patch?h=perl-www-curl&id=7e004bb8c5dc49c903a5d5fa5ff28c30a58e2595";
28186         hash = "sha256-8JZbe4IMfRZyLa118AAH/wsXrazOFy79OoH3Nuy57A4=";
28187         name = "perl-www-curl-makefile.patch";
28188       })
28189     ];
28190     env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-return-type";
28191     buildInputs = [ pkgs.curl ];
28192     doCheck = false; # performs network access
28193     meta = {
28194       description = "Perl extension interface for libcurl";
28195       license = with lib.licenses; [ mit ];
28196     };
28197   };
28199   WWWFormUrlEncoded = buildPerlModule {
28200     pname = "WWW-Form-UrlEncoded";
28201     version = "0.26";
28202     src = fetchurl {
28203       url = "mirror://cpan/authors/id/K/KA/KAZEBURO/WWW-Form-UrlEncoded-0.26.tar.gz";
28204       hash = "sha256-wEgLXx8VtxFj7DJ7jnhCKY8Ms6zpfmPXA0rx6UotkPQ=";
28205     };
28206     meta = {
28207       description = "Parser and builder for application/x-www-form-urlencoded";
28208       homepage = "https://github.com/kazeburo/WWW-Form-UrlEncoded";
28209       license = with lib.licenses; [ artistic1 gpl1Plus ];
28210     };
28211   };
28213   WWWMechanize = buildPerlPackage {
28214     pname = "WWW-Mechanize";
28215     version = "2.17";
28216     src = fetchurl {
28217       url = "mirror://cpan/authors/id/S/SI/SIMBABQUE/WWW-Mechanize-2.17.tar.gz";
28218       hash = "sha256-nAIAPoRiHeoSyYDEEB555PjK5OOCzT2iOfqovRmPBjo=";
28219     };
28220     propagatedBuildInputs = [ HTMLForm HTMLTree LWP ];
28221     doCheck = false;
28222     buildInputs = [ CGI HTTPServerSimple PathTiny TestDeep TestFatal TestOutput TestWarnings ];
28223     meta = {
28224       description = "Handy web browsing in a Perl object";
28225       homepage = "https://github.com/libwww-perl/WWW-Mechanize";
28226       license = with lib.licenses; [ artistic1 gpl1Plus ];
28227       mainProgram = "mech-dump";
28228     };
28229   };
28231   WWWMechanizeCGI = buildPerlPackage {
28232     pname = "WWW-Mechanize-CGI";
28233     version = "0.3";
28234     src = fetchurl {
28235       url = "mirror://cpan/authors/id/M/MR/MRAMBERG/WWW-Mechanize-CGI-0.3.tar.gz";
28236       hash = "sha256-weBNi/Hh8NfP9Rl7I2Z2kyrLgCgJNq7a5PngSFGo0hA=";
28237     };
28238     propagatedBuildInputs = [ HTTPRequestAsCGI WWWMechanize ];
28239     preConfigure = ''
28240       substituteInPlace t/cgi-bin/script.cgi \
28241         --replace '#!/usr/bin/perl' '#!${perl}/bin/perl'
28242     '';
28243     meta = {
28244       description = "Use WWW::Mechanize with CGI applications";
28245       license = with lib.licenses; [ artistic1 gpl1Plus ];
28246       broken = stdenv.hostPlatform.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.WWWMechanizeCGI.x86_64-darwin
28247     };
28248   };
28250   WWWRobotRules = buildPerlPackage {
28251     pname = "WWW-RobotRules";
28252     version = "6.02";
28253     src = fetchurl {
28254       url = "mirror://cpan/authors/id/G/GA/GAAS/WWW-RobotRules-6.02.tar.gz";
28255       hash = "sha256-RrUC56KI1VlCmJHutdl5Rh3T7MalxJHq2F0WW24DpR4=";
28256     };
28257     propagatedBuildInputs = [ URI ];
28258     meta = {
28259       description = "Database of robots.txt-derived permissions";
28260       license = with lib.licenses; [ artistic1 gpl1Plus ];
28261     };
28262   };
28264   WWWTwilioAPI = buildPerlPackage {
28265     pname = "WWW-Twilio-API";
28266     version = "0.21";
28267     src = fetchurl {
28268       url = "mirror://cpan/authors/id/S/SC/SCOTTW/WWW-Twilio-API-0.21.tar.gz";
28269       hash = "sha256-WC21OgkfjaNnDAN3MzFPJRCvXo7gukKg45Hi8uPKdzQ=";
28270     };
28271     prePatch = "rm examples.pl";
28272     propagatedBuildInputs = [ LWPProtocolHttps ];
28273     meta = {
28274       description = "Accessing Twilio's REST API with Perl";
28275       license = with lib.licenses; [ artistic1 gpl1Plus ];
28276     };
28277   };
28279   WWWYoutubeViewer = callPackage ../development/perl-modules/WWW-YoutubeViewer { };
28281   Want = buildPerlPackage {
28282     pname = "Want";
28283     version = "0.29";
28284     src = fetchurl {
28285       url = "mirror://cpan/authors/id/R/RO/ROBIN/Want-0.29.tar.gz";
28286       hash = "sha256-tOR0C41Mt4NZEnPGNr1oMEiS4o2J6Iq/knOx3hf1Uvc=";
28287     };
28288     meta = {
28289       description = "Generalisation of wantarray";
28290       license = with lib.licenses; [ artistic1 gpl1Plus ];
28291     };
28292   };
28294   Win32ShellQuote = buildPerlPackage {
28295     pname = "Win32-ShellQuote";
28296     version = "0.003001";
28297     src = fetchurl {
28298       url = "mirror://cpan/authors/id/H/HA/HAARG/Win32-ShellQuote-0.003001.tar.gz";
28299       hash = "sha256-qnSw49wtQc1j9i+FPlIf/Xa42CNHmiYZ4i7bQEm0wNw=";
28300     };
28301     meta = {
28302       description = "Quote argument lists for Win32";
28303       license = with lib.licenses; [ artistic1 gpl1Plus ];
28304     };
28305   };
28307   Workflow = buildPerlPackage {
28308     pname = "Workflow";
28309     version = "1.62";
28310     src = fetchurl {
28311       url = "mirror://cpan/authors/id/J/JO/JONASBN/Workflow-1.62.tar.gz";
28312       hash = "sha256-WNNokAm4j+Gp2DcWfTKaoe4xTzFZeeVik2OGVFs80pU=";
28313     };
28314     buildInputs = [ DBDMock ListMoreUtils MockMonkeyPatch PodCoverageTrustPod TestException TestKwalitee TestPod TestPodCoverage ];
28315     propagatedBuildInputs = [ ClassAccessor ClassFactory DateTime DBI DataUUID DateTimeFormatStrptime ExceptionClass FileSlurp LogLog4perl Readonly XMLSimple ];
28316     meta = {
28317       description = "Simple, flexible system to implement workflows";
28318       homepage = "https://github.com/jonasbn/perl-workflow";
28319       license = with lib.licenses; [ artistic1 gpl1Plus ];
28320     };
28321   };
28323   Wx = buildPerlPackage {
28324     pname = "Wx";
28325     version = "0.9932";
28326     src = fetchurl {
28327       url = "mirror://cpan/authors/id/M/MD/MDOOTSON/Wx-0.9932.tar.gz";
28328       hash = "sha256-HP22U1oPRnbm8aqyydjhbVd74+s7fMBMgHTWheZlG3A=";
28329     };
28330     patches = [
28331       (fetchpatch {
28332         url = "https://sources.debian.org/data/main/libw/libwx-perl/1%3A0.9932-8/debian/patches/gtk3.patch";
28333         hash = "sha256-CokmRzDTFmEMN/jTKw9ECCPvi0mHt5+h8Ojg4Jgd7D4=";
28334       })
28335       (fetchpatch {
28336         url = "https://sources.debian.org/data/main/libw/libwx-perl/1%3A0.9932-8/debian/patches/wxWidgets_3.2_MakeMaker.patch";
28337         hash = "sha256-kTJiCGv8yxQbgMych9yT2cOt+2bL1G4oJ0gehNcu0Rc=";
28338       })
28339       (fetchpatch {
28340         url = "https://sources.debian.org/data/main/libw/libwx-perl/1%3A0.9932-8/debian/patches/wxWidgets_3.2_port.patch";
28341         hash = "sha256-y9LMpcbm7p8+LZ2Hw3PA2jc7bHAFEu0QRa170XuseKw=";
28342       })
28343     ];
28344     # DND.c:453:15: error: incompatible integer to pointer conversion assigning to 'NativeFormat' (aka 'const __CFString *') from 'wxDataFormatId'
28345     postPatch = ''
28346       substituteInPlace ext/dnd/XS/DataObject.xs \
28347         --replace "#ifdef __WXGTK20__" "#if wxUSE_GUI"
28348     '';
28349     propagatedBuildInputs = [ AlienWxWidgets ];
28350     # Testing requires an X server:
28351     #   Error: Unable to initialize GTK, is DISPLAY set properly?"
28352     doCheck = false;
28353     buildInputs = [ ExtUtilsXSpp ];
28354     meta = {
28355       description = "Interface to the wxWidgets cross-platform GUI toolkit";
28356       license = with lib.licenses; [ artistic1 gpl1Plus ];
28357     };
28358   };
28360   WxGLCanvas = buildPerlPackage {
28361     pname = "Wx-GLCanvas";
28362     version = "0.09";
28363     src = fetchurl {
28364       url = "mirror://cpan/authors/id/M/MB/MBARBON/Wx-GLCanvas-0.09.tar.gz";
28365       hash = "sha256-atLCn/Bv+Apci0udHWvwrtV0iegxvlnJRJT09ojcj+A=";
28366     };
28367     propagatedBuildInputs = [ pkgs.libGLU Wx ];
28368     doCheck = false;
28369     meta = {
28370       description = "wxPerl demo helper for Wx::GLCanvas";
28371       license = with lib.licenses; [ artistic1 gpl1Plus ];
28372     };
28373   };
28375   X11IdleTime = buildPerlPackage {
28376     pname = "X11-IdleTime";
28377     version = "0.09";
28378     src = fetchurl {
28379       url = "mirror://cpan/authors/id/A/AW/AWENDT/X11-IdleTime-0.09.tar.gz";
28380       hash = "sha256-2P3cB455ge4xt2CMZTZFyyDwFr3dx8VQtNUn79NiR0g=";
28381     };
28382     buildInputs = [ pkgs.xorg.libXext pkgs.xorg.libXScrnSaver pkgs.xorg.libX11 ];
28383     propagatedBuildInputs = [ InlineC ];
28384     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";
28385     meta = {
28386       description = "Get the idle time of X11";
28387       license = with lib.licenses; [ artistic1 gpl1Plus ];
28388     };
28389   };
28391   X11Protocol = buildPerlPackage {
28392     pname = "X11-Protocol";
28393     version = "0.56";
28394     src = fetchurl {
28395       url = "mirror://cpan/authors/id/S/SM/SMCCAM/X11-Protocol-0.56.tar.gz";
28396       hash = "sha256-3pbdbHwfJfMoeqevZJAr+ErKqo4MO7dqoWdjZ+BKCLc=";
28397     };
28398     doCheck = false; # requires an X server
28399     meta = {
28400       description = "Perl module for the X Window System Protocol, version 11";
28401       license = with lib.licenses; [ artistic1 gpl1Plus ];
28402     };
28403   };
28405   X11ProtocolOther = buildPerlPackage {
28406     pname = "X11-Protocol-Other";
28407     version = "31";
28408     src = fetchurl {
28409       url = "mirror://cpan/authors/id/K/KR/KRYDE/X11-Protocol-Other-31.tar.gz";
28410       hash = "sha256-PGJZk9x6jrHQLgcQimZjAkWcb8b589J2FfdJUVjcc/Q=";
28411     };
28412     propagatedBuildInputs = [ X11Protocol ];
28413     buildInputs = [ EncodeHanExtra ModuleUtil ];
28414     meta = {
28415       description = "Miscellaneous helpers for X11::Protocol connections";
28416       homepage = "https://user42.tuxfamily.org/x11-protocol-other/index.html";
28417       license = with lib.licenses; [ gpl1Plus gpl3Plus ];
28418     };
28419   };
28421   X11GUITest = buildPerlPackage {
28422     pname = "X11-GUITest";
28423     version = "0.28";
28424     src = fetchurl {
28425       url = "mirror://cpan/authors/id/C/CT/CTRONDLP/X11-GUITest-0.28.tar.gz";
28426       hash = "sha256-3O7eU3AGEP/xQtydXE5M0DcMiKTysTcfnL9NjYzm9ks=";
28427     };
28428     buildInputs = [ pkgs.xorg.libX11 pkgs.xorg.libXi pkgs.xorg.libXt pkgs.xorg.libXtst ];
28429     NIX_CFLAGS_LINK = "-lX11";
28430     doCheck = false; # requires an X server
28431     meta = {
28432       description = "Provides GUI testing/interaction routines";
28433       license = with lib.licenses; [ gpl2Only ];
28434     };
28435   };
28437   X11XCB = buildPerlPackage {
28438     pname = "X11-XCB";
28439     version = "0.20";
28440     src = fetchurl {
28441       url = "mirror://cpan/authors/id/Z/ZH/ZHMYLOVE/X11-XCB-0.20.tar.gz";
28442       hash = "sha256-rVY5Yd4gIlVOdZHvXLjZY0ngxzdxIYXkeFBViMZ6L9I=";
28443     };
28444     env.AUTOMATED_TESTING = false;
28445     nativeBuildInputs = [ pkgs.pkg-config ];
28446     buildInputs = [ pkgs.xorg.libxcb pkgs.xorg.xcbproto pkgs.xorg.xcbutil pkgs.xorg.xcbutilwm ExtUtilsDepends ExtUtilsPkgConfig TestDeep TestException ];
28447     propagatedBuildInputs = [ DataDump MouseXNativeTraits XMLDescent XMLSimple XSObjectMagic ];
28448     NIX_CFLAGS_LINK = "-lxcb -lxcb-util -lxcb-xinerama -lxcb-icccm -lxcb-randr -lxcb-xkb";
28449     doCheck = false; # requires an X server
28450     meta = {
28451       description = "Perl bindings for libxcb";
28452       license = with lib.licenses; [ artistic1 gpl1Plus ];
28453     };
28454   };
28456   XMLCanonicalizeXML = buildPerlPackage {
28457     pname = "XML-CanonicalizeXML";
28458     version = "0.10";
28459     src = fetchurl {
28460       url = "mirror://cpan/authors/id/S/SJ/SJZASADA/XML-CanonicalizeXML-0.10.tar.gz";
28461       hash = "sha256-5yhGSIDLtMHz/XceCQOoUmzWV7OUuzchYDUkXPHihu4=";
28462     };
28463     buildInputs = [ pkgs.libxml2 ];
28464     meta = {
28465       description = "Perl extension for inclusive (1.0 and 1.1) and exclusive canonicalization of XML using libxml2";
28466       license = with lib.licenses; [ artistic1 gpl1Plus ];
28467       maintainers = [ maintainers.sgo ];
28468     };
28469   };
28471   XMLDescent = buildPerlModule {
28472     pname = "XML-Descent";
28473     version = "1.04";
28474     src = fetchurl {
28475       url = "mirror://cpan/authors/id/A/AN/ANDYA/XML-Descent-1.04.tar.gz";
28476       hash = "sha256-pxG4VvjN9eZHpExx+WfUjAlgNbnb0/Hvvb6kBgWvvVA=";
28477     };
28478     buildInputs = [ TestDifferences ];
28479     propagatedBuildInputs = [ XMLTokeParser ];
28480     meta = {
28481       description = "Recursive descent XML parsing";
28482       license = with lib.licenses; [ artistic1 gpl1Plus ];
28483     };
28484   };
28486   XMLEncoding = buildPerlPackage {
28487     pname = "XML-Encoding";
28488     version = "2.11";
28489     src = fetchurl {
28490       url = "mirror://cpan/authors/id/S/SH/SHAY/XML-Encoding-2.11.tar.gz";
28491       hash = "sha256-pQ5Brwp5uILUiBa5VoHzilWvHmqIgo3NljdKi94jBaE=";
28492     };
28493     propagatedBuildInputs = [ XMLParser ];
28494     meta = {
28495       description = "Perl module for parsing XML encoding maps";
28496       license = with lib.licenses; [ artistic1 gpl1Plus ];
28497     };
28498   };
28500   XMLEntities = buildPerlPackage {
28501     pname = "XML-Entities";
28502     version = "1.0002";
28503     src = fetchurl {
28504       url = "mirror://cpan/authors/id/S/SI/SIXTEASE/XML-Entities-1.0002.tar.gz";
28505       hash = "sha256-wyqk8wlXPXZIqy5Bb2K2sgZS8q2c/T7sgv1REB/nMQ0=";
28506     };
28507     nativeBuildInputs = lib.optional stdenv.hostPlatform.isDarwin shortenPerlShebang;
28508     propagatedBuildInputs = [ LWP ];
28509     postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
28510       shortenPerlShebang $out/bin/download-entities.pl
28511     '';
28512     meta = {
28513       description = "Mapping of XML entities to Unicode";
28514       license = with lib.licenses; [ artistic1 gpl1Plus ];
28515     };
28516   };
28518   XMLDOM = buildPerlPackage {
28519     pname = "XML-DOM";
28520     version = "1.46";
28521     src = fetchurl {
28522       url = "mirror://cpan/authors/id/T/TJ/TJMATHER/XML-DOM-1.46.tar.gz";
28523       hash = "sha256-i6JLC0WbAdbF5bBAiCnH1d/kf/ebNUjIE3WQSAmbF14=";
28524     };
28525     propagatedBuildInputs = [ XMLRegExp libxml_perl ];
28526     meta = {
28527       description = "Interface to XML::DOM toolset";
28528       license = with lib.licenses; [ gpl2Only ];
28529     };
28530   };
28532   XMLFeedPP = buildPerlPackage {
28533     pname = "XML-FeedPP";
28534     version = "0.95";
28535     src = fetchurl {
28536       url = "mirror://cpan/authors/id/M/MA/MARKOV/XML-FeedPP-0.95.tar.gz";
28537       hash = "sha256-kMOVm/GmC3aimnSac5QfOgx7mllUwTZbyB2vyrsBqPQ=";
28538     };
28539     propagatedBuildInputs = [ XMLTreePP ];
28540     meta = {
28541       description = "Parse/write/merge/edit RSS/RDF/Atom syndication feeds";
28542       homepage = "http://perl.overmeer.net/CPAN";
28543       license = with lib.licenses; [ artistic1 gpl1Plus ];
28544     };
28545   };
28547   XMLFilterBufferText = buildPerlPackage {
28548     pname = "XML-Filter-BufferText";
28549     version = "1.01";
28550     src = fetchurl {
28551       url = "mirror://cpan/authors/id/R/RB/RBERJON/XML-Filter-BufferText-1.01.tar.gz";
28552       hash = "sha256-j9ISbTvuxVTfhSkZ9HOeaJICy7pqF1Bum2bqFlhBp1w=";
28553     };
28554     doCheck = false;
28555     meta = {
28556       description = "Filter to put all characters() in one event";
28557       license = with lib.licenses; [ artistic1 gpl1Plus ];
28558     };
28559   };
28561   XMLFilterXInclude = buildPerlPackage {
28562     pname = "XML-Filter-XInclude";
28563     version = "1.0";
28564     src = fetchurl {
28565       url = "mirror://cpan/authors/id/M/MS/MSERGEANT/XML-Filter-XInclude-1.0.tar.gz";
28566       hash = "sha256-mHRvPB9vBJSR/sID1FW7j4ycbiUPBBkE3aXXjiEYf5M=";
28567     };
28568     doCheck = false;
28569     meta = {
28570       description = "XInclude as a SAX Filter";
28571       license = with lib.licenses; [ artistic1 gpl1Plus ];
28572     };
28573   };
28575   XMLFilterSort = buildPerlPackage {
28576     pname = "XML-Filter-Sort";
28577     version = "1.01";
28578     src = fetchurl {
28579       url = "mirror://cpan/authors/id/G/GR/GRANTM/XML-Filter-Sort-1.01.tar.gz";
28580       hash = "sha256-UQWF85pJFszV+o1UXpYXnJHq9vx8l6QBp1aOhBFi+l8=";
28581     };
28582     nativeBuildInputs = lib.optional stdenv.hostPlatform.isDarwin shortenPerlShebang;
28583     propagatedBuildInputs = [
28584       XMLSAX
28585       XMLSAXWriter
28586     ];
28587     postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
28588       shortenPerlShebang $out/bin/xmlsort
28589     '';
28590     meta = {
28591       description = "SAX filter for sorting elements in XML";
28592       license = with lib.licenses; [ artistic1 gpl1Plus ];
28593       mainProgram = "xmlsort";
28594     };
28595   };
28597   XMLGrove = buildPerlPackage {
28598     pname = "XML-Grove";
28599     version = "0.46alpha";
28600     src = fetchurl {
28601       url = "mirror://cpan/authors/id/K/KM/KMACLEOD/XML-Grove-0.46alpha.tar.gz";
28602       hash = "sha256-/LZtffSsKcsO3B6mLBdQcCyqaob8lHkKlPyxo2vQ0Rc=";
28603     };
28604     buildInputs = [ pkgs.libxml2 ];
28605     propagatedBuildInputs = [ libxml_perl ];
28607     #patch from https://bugzilla.redhat.com/show_bug.cgi?id=226285
28608     patches = [ ../development/perl-modules/xml-grove-utf8.patch ];
28609     meta = {
28610       description = "Perl-style XML objects";
28611       license = with lib.licenses; [ artistic1 gpl1Plus ];
28612     };
28613   };
28615   XMLHandlerYAWriter = buildPerlPackage {
28616     pname = "XML-Handler-YAWriter";
28617     version = "0.23";
28618     src = fetchurl {
28619       url = "mirror://cpan/authors/id/K/KR/KRAEHE/XML-Handler-YAWriter-0.23.tar.gz";
28620       hash = "sha256-50y7vl41wapyYZC/re8cePN7ThV3+JyT2sKgr4MqpIU=";
28621     };
28622     propagatedBuildInputs = [ libxml_perl ];
28623     meta = {
28624       description = "Yet another Perl SAX XML Writer";
28625       license = with lib.licenses; [ gpl1Only ];
28626       mainProgram = "xmlpretty";
28627     };
28628   };
28630   XMLLibXML = buildPerlPackage {
28631     pname = "XML-LibXML";
28632     version = "2.0210";
28633     src = fetchurl {
28634       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/XML-LibXML-2.0210.tar.gz";
28635       hash = "sha256-opvz8Aq5ye4EIYFU4K/I95m/I2dOuZwantTeH0BZpI0=";
28636     };
28637     SKIP_SAX_INSTALL = 1;
28638     buildInputs = [ AlienBuild AlienLibxml2 ]
28639       ++ lib.optionals stdenv.hostPlatform.isDarwin (with pkgs; [ libiconv zlib ]);
28640     patches = [
28641       # https://github.com/shlomif/perl-XML-LibXML/pull/87
28642       ../development/perl-modules/XML-LibXML-fix-tests-libxml-2.13.0.patch
28643     ];
28644     propagatedBuildInputs = [ XMLSAX ];
28645     meta = {
28646       description = "Perl Binding for libxml2";
28647       license = with lib.licenses; [ artistic1 gpl1Plus ];
28648     };
28649   };
28651   XMLLibXMLSimple = buildPerlPackage {
28652     pname = "XML-LibXML-Simple";
28653     version = "1.01";
28654     src = fetchurl {
28655       url = "mirror://cpan/authors/id/M/MA/MARKOV/XML-LibXML-Simple-1.01.tar.gz";
28656       hash = "sha256-zZjIEEtw12cr+ia0UTt4rfK0uSIOWGqovrGlCFADZaY=";
28657     };
28658     propagatedBuildInputs = [ XMLLibXML ];
28659     meta = {
28660       description = "API for simple XML files";
28661       license = with lib.licenses; [ artistic1 gpl1Plus ];
28662     };
28663   };
28665   XMLLibXSLT = buildPerlPackage {
28666     pname = "XML-LibXSLT";
28667     version = "2.002001";
28668     src = fetchurl {
28669       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/XML-LibXSLT-2.002001.tar.gz";
28670       hash = "sha256-34knxP8ZSfYlgNHB5vAPDNVrU9OpV+5LFxtZv/pjssA=";
28671     };
28672     nativeBuildInputs = [ pkgs.pkg-config ];
28673     buildInputs = [ pkgs.zlib pkgs.libxml2 pkgs.libxslt ];
28674     propagatedBuildInputs = [ XMLLibXML ];
28675     meta = {
28676       description = "Interface to the GNOME libxslt library";
28677       license = with lib.licenses; [ artistic1 gpl1Plus ];
28678     };
28679   };
28681   XMLMini = buildPerlPackage {
28682     pname = "XML-Mini";
28683     version = "1.38";
28684     src = fetchurl {
28685       url = "mirror://cpan/authors/id/P/PD/PDEEGAN/XML-Mini-1.38.tar.gz";
28686       hash = "sha256-r4A9OANqMYThJKaC5UZvG8EH9IqJ7zWwx2R+EaBz/i0=";
28687     };
28688     meta = {
28689       description = "Perl implementation of the XML::Mini XML create/parse interface";
28690       license = with lib.licenses; [ gpl3Plus ];
28691     };
28692   };
28694   XMLNamespaceSupport = buildPerlPackage {
28695     pname = "XML-NamespaceSupport";
28696     version = "1.12";
28697     src = fetchurl {
28698       url = "mirror://cpan/authors/id/P/PE/PERIGRIN/XML-NamespaceSupport-1.12.tar.gz";
28699       hash = "sha256-R+mVhZ+N0EE6o/ItNQxKYtplLoVCZ6oFhq5USuK65e8=";
28700     };
28701     meta = {
28702       description = "Simple generic namespace processor";
28703       license = with lib.licenses; [ artistic1 gpl1Plus ];
28704     };
28705   };
28707   XMLParser = buildPerlPackage {
28708     pname = "XML-Parser";
28709     version = "2.46";
28710     src = fetchurl {
28711       url = "mirror://cpan/authors/id/T/TO/TODDR/XML-Parser-2.46.tar.gz";
28712       hash = "sha256-0zEzJJHFHMz7TLlP/ET5zXM3jmGEmNSjffngQ2YcUV0=";
28713     };
28714     patches = [ ../development/perl-modules/xml-parser-0001-HACK-Assumes-Expat-paths-are-good.patch ];
28715     postPatch = lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
28716       substituteInPlace Expat/Makefile.PL --replace 'use English;' '#'
28717     '' + lib.optionalString stdenv.hostPlatform.isCygwin ''
28718       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
28719     '';
28720     makeMakerFlags = [ "EXPATLIBPATH=${pkgs.expat.out}/lib" "EXPATINCPATH=${pkgs.expat.dev}/include" ];
28721     propagatedBuildInputs = [ LWP ];
28722     meta = {
28723       description = "Perl module for parsing XML documents";
28724       license = with lib.licenses; [ artistic1 gpl1Plus ];
28725     };
28726   };
28728   XMLParserLite = buildPerlPackage {
28729     pname = "XML-Parser-Lite";
28730     version = "0.722";
28731     src = fetchurl {
28732       url = "mirror://cpan/authors/id/P/PH/PHRED/XML-Parser-Lite-0.722.tar.gz";
28733       hash = "sha256-b5CgJ+FTGg5UBs8d4Txwm1IWlm349z0Lq5q5GSCXY+4=";
28734     };
28735     buildInputs = [ TestRequires ];
28736     meta = {
28737       description = "Lightweight pure-perl XML Parser (based on regexps)";
28738       license = with lib.licenses; [ artistic1 gpl1Plus ];
28739     };
28740   };
28742   XMLXPath = buildPerlPackage {
28743     pname = "XML-XPath";
28744     version = "1.48";
28745     src = fetchurl {
28746       url = "mirror://cpan/authors/id/M/MA/MANWAR/XML-XPath-1.48.tar.gz";
28747       hash = "sha256-e8db42sjnlsucAqVcNK1O0MJPUZ/Kr5qdD+f+Qk3kM0=";
28748     };
28749     buildInputs = [ PathTiny ];
28750     propagatedBuildInputs = [ XMLParser ];
28751     meta = {
28752       description = "Parse and evaluate XPath statements";
28753       license = with lib.licenses; [ artistic2 ];
28754       mainProgram = "xpath";
28755     };
28756   };
28758   XMLXPathEngine = buildPerlPackage {
28759     pname = "XML-XPathEngine";
28760     version = "0.14";
28761     src = fetchurl {
28762       url = "mirror://cpan/authors/id/M/MI/MIROD/XML-XPathEngine-0.14.tar.gz";
28763       hash = "sha256-0v57y70L66FET0pzNAHnuKpSgvrUJm1Cc13XRYKy4mQ=";
28764     };
28765     meta = {
28766       description = "Re-usable XPath engine for DOM-like trees";
28767       license = with lib.licenses; [ artistic1 gpl1Plus ];
28768     };
28769   };
28771   XMLRegExp = buildPerlPackage {
28772     pname = "XML-RegExp";
28773     version = "0.04";
28774     src = fetchurl {
28775       url = "mirror://cpan/authors/id/T/TJ/TJMATHER/XML-RegExp-0.04.tar.gz";
28776       hash = "sha256-3xmQCWA2CFyOLUWQT+GA+Cv+1A8afgUkPzNOoQCQ/FQ=";
28777     };
28778     meta = {
28779       description = "Regular expressions for XML tokens";
28780       license = with lib.licenses; [ gpl2Plus];
28781     };
28782   };
28784   XMLRPCLite = buildPerlPackage {
28785     pname = "XMLRPC-Lite";
28786     version = "0.717";
28787     src = fetchurl {
28788       url = "mirror://cpan/authors/id/P/PH/PHRED/XMLRPC-Lite-0.717.tar.gz";
28789       hash = "sha256-Op+l8ssfr4t8ZrTDhuqzXKxgiK/E28dX1Pd9KE2rRSQ=";
28790     };
28791     propagatedBuildInputs = [ SOAPLite ];
28792     # disable tests that require network
28793     preCheck = "rm t/{26-xmlrpc.t,37-mod_xmlrpc.t}";
28794     meta = {
28795       description = "Client and server implementation of XML-RPC protocol";
28796       license = with lib.licenses; [ artistic1 gpl1Plus ];
28797     };
28798   };
28800   XMLRSS = buildPerlModule {
28801     pname = "XML-RSS";
28802     version = "1.62";
28803     src = fetchurl {
28804       url = "mirror://cpan/authors/id/S/SH/SHLOMIF/XML-RSS-1.62.tar.gz";
28805       hash = "sha256-0ycGNELH/3FDmTqgwtFv3lEhSRyXFmHrbLcA0uBDi04=";
28806     };
28807     propagatedBuildInputs = [ DateTimeFormatMail DateTimeFormatW3CDTF XMLParser ];
28808     meta = {
28809       description = "Creates and updates RSS files";
28810       homepage = "https://metacpan.org/release/XML-RSS";
28811       license = with lib.licenses; [ artistic1 gpl1Plus ];
28812     };
28813   };
28815   XMLRules = buildPerlModule {
28816     pname = "XML-Rules";
28817     version = "1.16";
28818     src = fetchurl {
28819       url = "mirror://cpan/authors/id/J/JE/JENDA/XML-Rules-1.16.tar.gz";
28820       hash = "sha256-N4glXAev5BlaDecs4FBlIyDYF1KP8tEMYR9uOSBDhos=";
28821     };
28822     propagatedBuildInputs = [ XMLParser ];
28823     meta = {
28824       description = "Parse XML and specify what and how to keep/process for individual tags";
28825       license = with lib.licenses; [ artistic1 gpl1Plus ];
28826     };
28827   };
28829   XMLSAX = buildPerlPackage {
28830     pname = "XML-SAX";
28831     version = "1.02";
28832     src = fetchurl {
28833       url = "mirror://cpan/authors/id/G/GR/GRANTM/XML-SAX-1.02.tar.gz";
28834       hash = "sha256-RQbDhwQ6pqd7RV8A9XQJ83IKp+VTSVqyU1JjtO0eoSo=";
28835     };
28836     propagatedBuildInputs = [ XMLNamespaceSupport XMLSAXBase ];
28837     postInstall = ''
28838       perl -MXML::SAX -e "XML::SAX->add_parser(q(XML::SAX::PurePerl))->save_parsers()"
28839       '';
28840     meta = {
28841       description = "Simple API for XML";
28842       license = with lib.licenses; [ artistic1 gpl1Plus ];
28843     };
28844   };
28846   XMLSAXBase = buildPerlPackage {
28847     pname = "XML-SAX-Base";
28848     version = "1.09";
28849     src = fetchurl {
28850       url = "mirror://cpan/authors/id/G/GR/GRANTM/XML-SAX-Base-1.09.tar.gz";
28851       hash = "sha256-Zss1W6TvR8EMpzi9NZmXI2RDhqyFOrvrUTKEH16KKtA=";
28852     };
28853     meta = {
28854       description = "Base class for SAX Drivers and Filters";
28855       homepage = "https://github.com/grantm/XML-SAX-Base";
28856       license = with lib.licenses; [ artistic1 gpl1Plus ];
28857     };
28858   };
28860   XMLSAXExpat = buildPerlPackage {
28861     pname = "XML-SAX-Expat";
28862     version = "0.51";
28863     src = fetchurl {
28864       url = "mirror://cpan/authors/id/B/BJ/BJOERN/XML-SAX-Expat-0.51.tar.gz";
28865       hash = "sha256-TAFiE9DOfbLElOMAhrWZF7MC24wpLc0h853uvZeAyD8=";
28866     };
28867     propagatedBuildInputs = [ XMLParser XMLSAX ];
28868     # Avoid creating perllocal.pod, which contains a timestamp
28869     installTargets = [ "pure_install" ];
28870     meta = {
28871       description = "SAX Driver for Expat";
28872       license = with lib.licenses; [ artistic1 gpl1Plus ];
28873     };
28874   };
28876   XMLSAXWriter = buildPerlPackage {
28877     pname = "XML-SAX-Writer";
28878     version = "0.57";
28879     src = fetchurl {
28880       url = "mirror://cpan/authors/id/P/PE/PERIGRIN/XML-SAX-Writer-0.57.tar.gz";
28881       hash = "sha256-PWHQfvQ7ASb1tN5PQVolb6hZ+ojcT9q6rXC3vnxoLPA=";
28882     };
28883     propagatedBuildInputs = [ XMLFilterBufferText XMLNamespaceSupport XMLSAXBase ];
28884     meta = {
28885       description = "SAX2 XML Writer";
28886       homepage = "https://github.com/perigrin/xml-sax-writer";
28887       license = with lib.licenses; [ artistic1 gpl1Plus ];
28888     };
28889   };
28891   XMLSemanticDiff = buildPerlModule {
28892     pname = "XML-SemanticDiff";
28893     version = "1.0007";
28894     src = fetchurl {
28895       url = "mirror://cpan/authors/id/P/PE/PERIGRIN/XML-SemanticDiff-1.0007.tar.gz";
28896       hash = "sha256-Bf3v77vD9rYvx8m1+rr7a2le1o8KPZWFdyUdHwQCoPU=";
28897     };
28898     propagatedBuildInputs = [ XMLParser ];
28899     meta = {
28900       description = "Perl extension for comparing XML documents";
28901       license = with lib.licenses; [ artistic1 gpl1Plus ];
28902     };
28903   };
28905   XMLSimple = buildPerlPackage {
28906     pname = "XML-Simple";
28907     version = "2.25";
28908     src = fetchurl {
28909       url = "mirror://cpan/authors/id/G/GR/GRANTM/XML-Simple-2.25.tar.gz";
28910       hash = "sha256-Ux/drr6iQWdD61xP36sCj1AhI9miIEBaQQDmj8SA2/g=";
28911     };
28912     propagatedBuildInputs = [ XMLSAXExpat ];
28913     meta = {
28914       description = "API for simple XML files";
28915       license = with lib.licenses; [ artistic1 gpl1Plus ];
28916     };
28917   };
28919   XMLTokeParser = buildPerlPackage {
28920     pname = "XML-TokeParser";
28921     version = "0.05";
28922     src = fetchurl {
28923       url = "mirror://cpan/authors/id/P/PO/PODMASTER/XML-TokeParser-0.05.tar.gz";
28924       hash = "sha256-hTm0+YQ2sabQiDQai0Uwt5IqzWUfPyk3f4sZSMfi18I=";
28925     };
28926     propagatedBuildInputs = [ XMLParser ];
28927     meta = {
28928       description = "Simplified interface to XML::Parser";
28929       license = with lib.licenses; [ artistic1 gpl1Plus ];
28930     };
28931   };
28933   XMLTreePP = buildPerlPackage {
28934     pname = "XML-TreePP";
28935     version = "0.43";
28936     src = fetchurl {
28937       url = "mirror://cpan/authors/id/K/KA/KAWASAKI/XML-TreePP-0.43.tar.gz";
28938       hash = "sha256-f74tZDCGAFmJSu7r911MrPG/jXt1KU64fY4VAvgb12A=";
28939     };
28940     propagatedBuildInputs = [ LWP ];
28941     meta = {
28942       description = "Pure Perl implementation for parsing/writing XML documents";
28943       license = with lib.licenses; [ artistic1 gpl1Plus ];
28944     };
28945   };
28947   XMLTwig = buildPerlPackage {
28948     pname = "XML-Twig";
28949     version = "3.52";
28950     src = fetchurl {
28951       url = "mirror://cpan/authors/id/M/MI/MIROD/XML-Twig-3.52.tar.gz";
28952       hash = "sha256-/vdYJsJPK4d9Cg0mRSEvxPuXVu1NJxFhSsFcSX6GgK0=";
28953     };
28954     postInstall = ''
28955       mkdir -p $out/bin
28956       cp tools/xml_grep/xml_grep $out/bin
28957     '';
28958     propagatedBuildInputs = [ XMLParser ];
28959     doCheck = false;  # requires lots of extra packages
28960     meta = {
28961       description = "Perl module for processing huge XML documents in tree mode";
28962       license = with lib.licenses; [ artistic1 gpl1Plus ];
28963       mainProgram = "xml_grep";
28964     };
28965   };
28967   XMLValidatorSchema = buildPerlPackage {
28968     pname = "XML-Validator-Schema";
28969     version = "1.10";
28970     src = fetchurl {
28971       url = "mirror://cpan/authors/id/S/SA/SAMTREGAR/XML-Validator-Schema-1.10.tar.gz";
28972       hash = "sha256-YUJnlYAVCokffTIjK14x4rTl5T6Kb6nL7stcI4FPFCI=";
28973     };
28974     propagatedBuildInputs = [ TreeDAGNode XMLFilterBufferText XMLSAX ];
28975     meta = {
28976       description = "Validate XML against a subset of W3C XML Schema";
28977       license = with lib.licenses; [ artistic1 gpl1Plus ];
28978     };
28979   };
28981   XMLWriter = buildPerlPackage {
28982     pname = "XML-Writer";
28983     version = "0.900";
28984     src = fetchurl {
28985       url = "mirror://cpan/authors/id/J/JO/JOSEPHW/XML-Writer-0.900.tar.gz";
28986       hash = "sha256-c8j1vT7PKzUPStrm1mdtUuCOzC199KnwifpoNg1ADR8=";
28987     };
28988     meta = {
28989       description = "Module for creating a XML document object oriented with on the fly validating towards the given DTD";
28990       license = with lib.licenses; [ gpl1Only ];
28991     };
28992   };
28994   XSObjectMagic = buildPerlPackage {
28995     pname = "XS-Object-Magic";
28996     version = "0.05";
28997     src = fetchurl {
28998       url = "mirror://cpan/authors/id/E/ET/ETHER/XS-Object-Magic-0.05.tar.gz";
28999       hash = "sha256-PcnkYM7pLhF0QGJ1RkOjN3jKUqVNIF/K/6SrDzzxXlo=";
29000     };
29001     buildInputs = [ ExtUtilsDepends TestFatal TestSimple13 ];
29002     meta = {
29003       description = "Opaque, extensible XS pointer backed objects using sv_magic";
29004       homepage = "https://github.com/karenetheridge/XS-Object-Magic";
29005       license = with lib.licenses; [ artistic1 gpl1Plus ];
29006     };
29007   };
29009   XSParseKeyword = buildPerlModule {
29010     pname = "XS-Parse-Keyword";
29011     version = "0.44";
29012     src = fetchurl {
29013       url = "mirror://cpan/authors/id/P/PE/PEVANS/XS-Parse-Keyword-0.44.tar.gz";
29014       hash = "sha256-ohrnkiGSfvwR2J2MnbMt9swgsxacX2kuGSEUriNNdhI=";
29015     };
29016     buildInputs = [ ExtUtilsCChecker Test2Suite ];
29017     propagatedBuildInputs = [ FileShareDir ];
29018     perlPreHook = lib.optionalString (stdenv.hostPlatform.isi686 || stdenv.hostPlatform.isDarwin) "export LD=$CC";
29019     meta = {
29020       description = "XS functions to assist in parsing keyword syntax";
29021       license = with lib.licenses; [ artistic1 gpl1Plus ];
29022       maintainers = [ maintainers.zakame ];
29023     };
29024   };
29026   XSParseSublike = buildPerlModule {
29027     pname = "XS-Parse-Sublike";
29028     version = "0.29";
29029     src = fetchurl {
29030       url = "mirror://cpan/authors/id/P/PE/PEVANS/XS-Parse-Sublike-0.29.tar.gz";
29031       hash = "sha256-UnX1w457gFe6cuzRzAcpO26TOadzdA51pse+lSAfHjw=";
29032     };
29033     buildInputs = [ Test2Suite ];
29034     propagatedBuildInputs = [ FileShareDir ];
29035     perlPreHook = lib.optionalString stdenv.hostPlatform.isDarwin "export LD=$CC";
29036     meta = {
29037       description = "XS functions to assist in parsing sub-like syntax";
29038       license = with lib.licenses; [ artistic1 gpl1Plus ];
29039       maintainers = [ maintainers.zakame ];
29040     };
29041   };
29043   XXX = buildPerlPackage {
29044     pname = "XXX";
29045     version = "0.38";
29046     src = fetchurl {
29047       url = "mirror://cpan/authors/id/I/IN/INGY/XXX-0.38.tar.gz";
29048       hash = "sha256-0QUQ6gD2Gav0erKZ8Ui9WzYM+gfcDtUYE4t87HJpLSo=";
29049     };
29050     propagatedBuildInputs = [ YAMLPP ];
29051     meta = {
29052       description = "See Your Data in the Nude";
29053       homepage = "https://github.com/ingydotnet/xxx-pm";
29054       license = with lib.licenses; [ artistic1 gpl1Plus ];
29055     };
29056   };
29058   YAML = buildPerlPackage {
29059     pname = "YAML";
29060     version = "1.30";
29061     src = fetchurl {
29062       url = "mirror://cpan/authors/id/T/TI/TINITA/YAML-1.30.tar.gz";
29063       hash = "sha256-UDCm1sv/rxJYMFC/VSqoANRkbKlnjBh63WSSJ/V0ec0=";
29064     };
29066     buildInputs = [ TestBase TestDeep TestYAML ];
29068     meta = {
29069       description = "YAML Ain't Markup Language (tm)";
29070       homepage = "https://github.com/ingydotnet/yaml-pm";
29071       license = with lib.licenses; [ artistic1 gpl1Plus ];
29072     };
29073   };
29075   YAMLOld = buildPerlPackage {
29076     pname = "YAML-Old";
29077     version = "1.23";
29078     src = fetchurl {
29079       url = "mirror://cpan/authors/id/I/IN/INGY/YAML-Old-1.23.tar.gz";
29080       hash = "sha256-+lRvzZrMWjm8iHGQL3/B66UOfceBxc1cCr8a7ObRfs0=";
29081     };
29082     buildInputs = [ TestYAML TestBase ];
29083     meta = {
29084       description = "Old YAML.pm Legacy Code";
29085       homepage = "https://github.com/ingydotnet/yaml-old-pm";
29086       license = with lib.licenses; [ artistic1 gpl1Plus ];
29087     };
29088   };
29090   YAMLSyck = buildPerlPackage {
29091     pname = "YAML-Syck";
29092     version = "1.34";
29093     src = fetchurl {
29094       url = "mirror://cpan/authors/id/T/TO/TODDR/YAML-Syck-1.34.tar.gz";
29095       hash = "sha256-zJFWzK69p5jr/i8xthnoBld/hg7RcEJi8X/608bjQVk=";
29096     };
29097     perlPreHook = lib.optionalString stdenv.hostPlatform.isDarwin "export LD=$CC";
29098     meta = {
29099       description = "Fast, lightweight YAML loader and dumper";
29100       homepage = "https://github.com/toddr/YAML-Syck";
29101       license = with lib.licenses; [ mit ];
29102     };
29103   };
29105   YAMLTiny = buildPerlPackage {
29106     pname = "YAML-Tiny";
29107     version = "1.74";
29108     src = fetchurl {
29109       url = "mirror://cpan/authors/id/E/ET/ETHER/YAML-Tiny-1.74.tar.gz";
29110       hash = "sha256-ezjKn1084kIwpri9wfR/Wy2zSOf3+WZsJvWVVjbjPWw=";
29111     };
29112     meta = {
29113       description = "Read/Write YAML files with as little code as possible";
29114       license = with lib.licenses; [ artistic1 gpl1Plus ];
29115     };
29116   };
29118   YAMLLibYAML = buildPerlPackage {
29119     pname = "YAML-LibYAML";
29120     version = "0.89";
29121     src = fetchurl {
29122       url = "mirror://cpan/authors/id/T/TI/TINITA/YAML-LibYAML-0.89.tar.gz";
29123       hash = "sha256-FVq4NnU0XFCt0DMRrPndkVlVcH+Qmiq9ixfXeShZsuw=";
29124     };
29125     meta = {
29126       description = "Perl YAML Serialization using XS and libyaml";
29127       license = with lib.licenses; [ artistic1 gpl1Plus ];
29128     };
29129   };
29131   YAMLPP = buildPerlPackage {
29132     pname = "YAML-PP";
29133     version = "0.38.0";
29134     src = fetchurl {
29135       url = "mirror://cpan/authors/id/T/TI/TINITA/YAML-PP-v0.38.0.tar.gz";
29136       hash = "sha256-qBlGXFL2o0EEmjlCdCwI4E8olLKmZILkOn9AfOELTqA=";
29137     };
29138     buildInputs = [ TestDeep TestWarn ];
29139     meta = {
29140       description = "YAML 1.2 Processor";
29141       license = with lib.licenses; [ artistic1 gpl1Plus ];
29142     };
29143   };
29145   Yancy = buildPerlPackage {
29146     pname = "Yancy";
29147     version = "1.088";
29148     src = fetchurl {
29149       url = "mirror://cpan/authors/id/P/PR/PREACTION/Yancy-1.088.tar.gz";
29150       hash = "sha256-addqs5ilrGiQc0Paisybr9UZ+0x4WrAU7CagUhA2vSo=";
29151     };
29152     buildInputs = [ FileShareDirInstall ];
29153     propagatedBuildInputs = [ ClassMethodModifiers JSONValidator Mojolicious MojoliciousPluginI18N MojoliciousPluginOpenAPI RoleTiny ];
29154     meta = {
29155       homepage = "http://preaction.me/yancy/";
29156       description = "Best Web Framework Deserves the Best CMS";
29157       license = with lib.licenses; [ artistic1 gpl1Plus ];
29158     };
29159   };
29161   WebMachine = buildPerlPackage {
29162     pname = "Web-Machine";
29163     version = "0.17";
29164     src = fetchurl {
29165       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Web-Machine-0.17.tar.gz";
29166       hash = "sha256-8TnSsxFMVJ6RhH2qq4t1y2meV9r1u/Db0TKT8z/l4io=";
29167     };
29168     buildInputs = [ NetHTTP TestFailWarnings TestFatal ];
29169     propagatedBuildInputs = [ HTTPHeadersActionPack HTTPMessage HashMultiValue IOHandleUtil ModuleRuntime Plack SubExporter TryTiny ];
29170     meta = {
29171       description = "Perl port of Webmachine";
29172       homepage = "https://metacpan.org/release/Web-Machine";
29173       license = with lib.licenses; [ artistic1 gpl1Plus ];
29174     };
29175   };
29177   WebScraper = buildPerlModule {
29178     pname = "Web-Scraper";
29179     version = "0.38";
29180     src = fetchurl {
29181       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Web-Scraper-0.38.tar.gz";
29182       hash = "sha256-+VtuX41/7r4RbQW/WaK3zxpR7Z0wvKgBI0MOxFZ1Q78=";
29183     };
29184     buildInputs = [ ModuleBuildTiny TestBase TestRequires ];
29185     propagatedBuildInputs = [ HTMLParser HTMLSelectorXPath HTMLTagset HTMLTree HTMLTreeBuilderXPath UNIVERSALrequire URI XMLXPathEngine YAML libwwwperl ];
29186     meta = {
29187       homepage = "https://github.com/miyagawa/web-scraper";
29188       description = "Web Scraping Toolkit using HTML and CSS Selectors or XPath expressions";
29189       license = with lib.licenses; [ artistic1 gpl1Plus ];
29190     };
29191   };
29193   WebServiceLinode = buildPerlModule {
29194     pname = "WebService-Linode";
29195     version = "0.29";
29196     src = fetchurl {
29197       url = "mirror://cpan/authors/id/M/MI/MIKEGRB/WebService-Linode-0.29.tar.gz";
29198       hash = "sha256-EDqrJFME8I6eh6x7yITdtEpjDea6wHfckh9xbXEVSSI=";
29199     };
29200     buildInputs = [ ModuleBuildTiny ];
29201     propagatedBuildInputs = [ JSON LWPProtocolHttps ];
29202     meta = {
29203       description = "Perl Interface to the Linode.com API";
29204       homepage = "https://github.com/mikegrb/WebService-Linode";
29205       license = with lib.licenses; [ artistic1 gpl1Plus ];
29206     };
29207   };
29209   WebServiceValidatorHTMLW3C = buildPerlModule {
29210     pname = "WebService-Validator-HTML-W3C";
29211     version = "0.28";
29212     src = fetchurl {
29213       url = "mirror://cpan/authors/id/S/ST/STRUAN/WebService-Validator-HTML-W3C-0.28.tar.gz";
29214       hash = "sha256-zLB60zegOuyBob6gqJzSlUaR/1uzZ9+aMrnZEw8XURA=";
29215     };
29216     buildInputs = [ ClassAccessor LWP ];
29217     meta = {
29218       description = "Access the W3Cs online HTML validator";
29219       license = with lib.licenses; [ artistic1 gpl1Plus ];
29220     };
29221   };
29223   ZonemasterCLI = buildPerlPackage {
29224     pname = "Zonemaster-CLI";
29225     version = "6.000003";
29226     src = fetchurl {
29227       url = "mirror://cpan/authors/id/Z/ZN/ZNMSTR/Zonemaster-CLI-v6.0.3.tar.gz";
29228       hash = "sha256-oYDBYVygvPUZ9vrGX/y5A0MAQ6zgSsrf6AtUdFcZG4Q=";
29229     };
29230     propagatedBuildInputs = [
29231       JSONXS
29232       MooseXGetopt
29233       TextReflow
29234       ZonemasterEngine
29235       ZonemasterLDNS
29236       libintl-perl
29237     ];
29239     preConfigure = ''
29240       patchShebangs script/
29241     '';
29243     meta = {
29244       description = "Run Zonemaster tests from the command line";
29245       license = with lib.licenses; [ bsd3 ];
29246       maintainers = with lib.maintainers; [ qbit ];
29247     };
29248   };
29250   ZonemasterEngine = buildPerlPackage {
29251     pname = "Zonemaster-Engine";
29252     version = "4.6.1";
29253     src = fetchurl {
29254       url = "mirror://cpan/authors/id/Z/ZN/ZNMSTR/Zonemaster-Engine-v4.6.1.tar.gz";
29255       hash = "sha256-4AXo3bZTOLnnPjjX5KNb/2O7MRqcAtlqpz5sPwNN9b0=";
29256     };
29257     buildInputs = [ PodCoverage TestDifferences TestException TestFatal TestNoWarnings TestPod ];
29258     propagatedBuildInputs = [ ClassAccessor Clone EmailValid FileShareDir FileSlurp IOSocketINET6 ListMoreUtils ModuleFind Moose MooseXSingleton NetIP NetIPXS Readonly TextCSV ZonemasterLDNS libintl-perl ];
29260     meta = {
29261       description = "Tool to check the quality of a DNS zone";
29262       license = with lib.licenses; [ bsd3 ];
29263     };
29264   };
29266   ZonemasterLDNS = buildPerlPackage {
29267     pname = "Zonemaster-LDNS";
29268     version = "3.2.0";
29269     src = fetchurl {
29270       url = "mirror://cpan/authors/id/Z/ZN/ZNMSTR/Zonemaster-LDNS-3.2.0.tar.gz";
29271       hash = "sha256-BpsWQRcpX6gtJSlAocqLMIrYsfPocjvk6CaqqX9wbWw=";
29272     };
29273     env.NIX_CFLAGS_COMPILE = "-I${pkgs.openssl.dev}/include -I${pkgs.libidn2}.dev}/include";
29274     NIX_CFLAGS_LINK = "-L${lib.getLib pkgs.openssl}/lib -L${lib.getLib pkgs.libidn2}/lib -lcrypto -lidn2";
29276     makeMakerFlags = [ "--prefix-openssl=${pkgs.openssl.dev}" ];
29278     nativeBuildInputs = [ pkgs.pkg-config ];
29279     buildInputs = [ DevelChecklib ModuleInstall ModuleInstallXSUtil TestFatal TestDifferences pkgs.ldns pkgs.libidn2 pkgs.openssl ];
29280     meta = {
29281       description = "Perl wrapper for the ldns DNS library";
29282       license = with lib.licenses; [ bsd3 ];
29283     };
29284   };
29286 } // lib.optionalAttrs config.allowAliases {
29287   autodie = null; # part of Perl
29288   AutoLoader = null; # part of Perl 5.22
29289   constant = null; # part of Perl 5.22
29290   DevelSelfStubber = null; # part of Perl 5.22
29291   Digest = null; # part of Perl 5.22
29292   Exporter = null; # part of Perl 5.22
29293   I18NCollate = null; # part of Perl 5.22
29294   lib_ = null; # part of Perl 5.22
29295   LocaleMaketextSimple = null; # part of Perl 5.22
29296   MathComplex = null; # part of Perl 5.22
29297   MIMEBase64 = null; # part of Perl 5.22
29298   PerlIOviaQuotedPrint = null; # part of Perl 5.22
29299   PodEscapes = null; # part of Perl 5.22
29300   Safe = null; # part of Perl 5.22
29301   SearchDict = null; # part of Perl 5.22
29302   Test = null; # part of Perl 5.22
29303   TextAbbrev = null; # part of Perl 5.22
29304   TextTabsWrap = null; # part of Perl 5.22
29305   DigestSHA = null;
29306   "if" = null;
29307   TestSimple = null;
29308   AttributeHandlers = null; # part of Perl 5.26
29309   base = null; # part of Perl 5.26
29310   CPANMeta = null; # part of Perl 5.26
29311   CPANMetaRequirements = null; # part of Perl 5.26
29312   CPANMetaYAML = null; # part of Perl 5.26
29313   DigestMD5 = null; # part of Perl 5.26
29314   LocaleMaketext = null; # part of Perl 5.26
29315   ModuleLoadConditional = null; # part of Perl 5.26
29316   ModuleMetadata = null; # part of Perl 5.26
29317   PerlOSType = null; # part of Perl 5.26
29318   PodUsage = null; # part of Perl 5.26
29319   TermANSIColor = null; # part of Perl 5.26
29320   TermCap = null; # part of Perl 5.26
29321   ThreadSemaphore = null; # part of Perl 5.26
29322   UnicodeNormalize = null; # part of Perl 5.26
29323   XSLoader = null; # part of Perl 5.26
29325   Carp = null; # part of Perl 5.28
29326   ExtUtilsCBuilder = null; # part of Perl 5.28
29327   ExtUtilsParseXS = null; # part of Perl 5.28
29328   FilterSimple = null; # part of Perl 5.28
29329   IOSocketIP = null; # part of Perl 5.28
29330   SelfLoader = null; # part of Perl 5.28
29331   Socket = null; # part of Perl 5.28
29332   TestHarness = null; # part of Perl 5.28
29333   threads = null; # part of Perl 5.28
29334   TimeHiRes = null; # part of Perl 5.28
29335   UnicodeCollate = null; # part of Perl 5.28
29336   ModuleCoreList = null; # part of Perl 5.28.2
29338   bignum = null; # part of Perl 5.30.3
29339   DataDumper = null; # part of Perl 5.30.3
29340   ExtUtilsManifest = null; # part of Perl 5.30.3
29341   FileTemp = null; # part of Perl 5.30.3
29342   MathBigRat = null; # part of Perl 5.30.3
29343   Storable = null; # part of Perl 5.30.3
29344   threadsshared = null; # part of Perl 5.30.3
29345   ThreadQueue = null; # part of Perl 5.30.3
29347   ArchiveZip_1_53 = self.ArchiveZip;
29348   Autobox = self.autobox;
29349   CommonSense = self.commonsense; # For backwards compatibility.
29350   if_ = self."if"; # For backwards compatibility.
29351   Log4Perl = self.LogLog4perl; # For backwards compatibility.
29352   MouseXGetOpt = self.MouseXGetopt;
29353   NamespaceAutoclean = self.namespaceautoclean; # Deprecated.
29354   NamespaceClean = self.namespaceclean; # Deprecated.
29355   CatalystPluginUnicodeEncoding = self.CatalystRuntime;
29356   ClassAccessorFast = self.ClassAccessor;
29357   ClassMOP = self.Moose;
29358   CompressZlib = self.IOCompress;
29359   constantdefer = self.constant-defer;
29360   DigestHMAC_SHA1 = self.DigestHMAC;
29361   DistZillaPluginNoTabsTests = self.DistZillaPluginTestNoTabs;
29362   EmailMIMEModifier = self.EmailMIME;
29363   ExtUtilsCommand = self.ExtUtilsMakeMaker;
29364   IOSocketInet6 = self.IOSocketINET6;
29365   IOstringy = self.IOStringy;
29366   libintl_perl = self.libintl-perl;
29367   libintlperl = self.libintl-perl;
29368   LWPProtocolconnect = self.LWPProtocolConnect;
29369   LWPProtocolhttps = self.LWPProtocolHttps;
29370   LWPUserAgent = self.LWP;
29371   MIMEtools = self.MIMETools;
29372   NetLDAP = self.perlldap;
29373   NetSMTP = self.libnet;
29374   OLEStorageLight = self.OLEStorage_Lite; # For backwards compatibility. Please use OLEStorage_Lite instead.
29375   ParseCPANMeta = self.CPANMeta;
29376   TestMoose = self.Moose;
29377   TestMore = self.TestSimple;
29378   TestTester = self.TestSimple;
29379   Testuseok = self.TestSimple;
29380   SubExporterUtil = self.SubExporter;
29381   version = self.Version;
29383   Gtk2GladeXML = throw "Gtk2GladeXML has been removed"; # 2022-01-15
29384   pcscperl = throw "'pcscperl' has been renamed to 'ChipcardPCSC'"; # Added 2023-12-07