about summary refs log tree commit diff
path: root/pkgs/top-level/perl-packages.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/top-level/perl-packages.nix')
-rw-r--r--pkgs/top-level/perl-packages.nix430
1 files changed, 224 insertions, 206 deletions
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index 4b23ca8e62452..5071fff62745d 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -110,7 +110,7 @@ with self; {
     doCheck = false;
 
     meta = {
-      description = "A grep-like tool tailored to working with large trees of source code";
+      description = "Grep-like tool tailored to working with large trees of source code";
       homepage = "https://beyondgrep.com";
       license = with lib.licenses; [ artistic2 ];
     };
@@ -183,7 +183,7 @@ with self; {
       hash = "sha256-qvSEZ3Zd7qbkgFS8fUPkbk1Ay82hZVLGKdN74Jgokwk=";
     };
     meta = {
-      description = "A module for merging hierarchies using the C3 algorithm";
+      description = "Module for merging hierarchies using the C3 algorithm";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -256,7 +256,7 @@ with self; {
     buildInputs = [ Test2Suite ];
     propagatedBuildInputs = [ AlienBuild ArchiveExtract CaptureTiny Filechdir PathTiny ShellConfigGenerate ShellGuess SortVersions URI ];
     meta = {
-      description = "A Module::Build subclass for building Alien:: modules and their libraries";
+      description = "Module::Build subclass for building Alien:: modules and their libraries";
       homepage = "https://metacpan.org/pod/Alien::Base::ModuleBuild";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -505,7 +505,7 @@ with self; {
     };
     buildInputs = [ CanaryStability ];
     meta = {
-      description = "The DBI of event loop programming";
+      description = "DBI of event loop programming";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -586,10 +586,10 @@ with self; {
 
   AnyEventI3 = buildPerlPackage {
     pname = "AnyEvent-I3";
-    version = "0.17";
+    version = "0.19";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/M/MS/MSTPLBG/AnyEvent-I3-0.17.tar.gz";
-      hash = "sha256-U4LJhMnxODlfKfDACvgaoMj0t2VYIFXHPt5LE/BKbWM=";
+      url = "mirror://cpan/authors/id/M/MS/MSTPLBG/AnyEvent-I3-0.19.tar.gz";
+      hash = "sha256-G807YNs9VWAUjeeRNT6K8RciZPWoXncZe5/8BB2sSDo=";
     };
     propagatedBuildInputs = [ AnyEvent JSONXS ];
     meta = {
@@ -607,7 +607,7 @@ with self; {
     };
     propagatedBuildInputs = [ AnyEvent ObjectEvent commonsense ];
     meta = {
-      description = "An event based IRC protocol client API";
+      description = "Event based IRC protocol client API";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -622,7 +622,7 @@ with self; {
     buildInputs = [ FileShareDirInstall TestException ];
     propagatedBuildInputs = [ AnyEvent DevelGlobalDestruction FileShareDir ListMoreUtils NetAMQP Readonly namespaceclean ];
     meta = {
-      description = "An asynchronous and multi channel Perl AMQP client";
+      description = "Asynchronous and multi channel Perl AMQP client";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -729,7 +729,7 @@ with self; {
     };
     buildInputs = [ TestDeep TestException ];
     meta = {
-      description = "A persistence framework for session data";
+      description = "Persistence framework for session data";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -815,7 +815,7 @@ with self; {
     };
     buildInputs = [ TestPod ];
     meta = {
-      description = "A bundle of Perl5 modules for reading configuration files and parsing command line arguments";
+      description = "Bundle of Perl5 modules for reading configuration files and parsing command line arguments";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -872,7 +872,7 @@ with self; {
       shortenPerlShebang $out/bin/cpm
     '';
     meta = {
-      description = "A fast CPAN module installer";
+      description = "Fast CPAN module installer";
       homepage = "https://github.com/skaji/cpm";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       maintainers = [ maintainers.zakame ];
@@ -918,7 +918,7 @@ with self; {
       rm $out/bin/wxchordpro # Wx not supported on darwin
     '';
     meta = {
-      description = "A lyrics and chords formatting program";
+      description = "Lyrics and chords formatting program";
       homepage = "https://www.chordpro.org";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       mainProgram = "chordpro";
@@ -938,6 +938,23 @@ with self; {
     };
   };
 
+  Apppapersway = buildPerlPackage rec {
+    pname = "App-papersway";
+    version = "1.001";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SP/SPWHITTON/App-papersway-${version}.tar.gz";
+      hash = "sha256-61OMfvEhgwFbNlOFjm9p3QxDOn31jQZdN8i1nIsWlns=";
+    };
+    buildInputs = [ AnyEvent AnyEventI3 GetoptLong JSON ];
+    meta = {
+      description = "PaperWM-like scrollable tiling window management for Sway/i3wm";
+      homepage = "https://spwhitton.name/tech/code/papersway/";
+      license = lib.licenses.gpl3Plus;
+      mainProgram = "papersway";
+      maintainers = with lib.maintainers; [ fgaz ];
+    };
+  };
+
   Appperlbrew = buildPerlModule {
     pname = "App-perlbrew";
     version = "0.98";
@@ -1059,7 +1076,7 @@ with self; {
     propagatedBuildInputs = [ ArchiveLibarchive Filechdir PathTiny RefUtil ];
     meta = {
       homepage = "https://metacpan.org/pod/Archive::Libarchive::Extract";
-      description = "An archive extracting mechanism (using libarchive)";
+      description = "Archive extracting mechanism (using libarchive)";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       maintainers = with maintainers; [ tomasajt ];
     };
@@ -1123,7 +1140,7 @@ with self; {
     buildInputs = [ TestDeep TestSpec TestTrap ];
     propagatedBuildInputs = [ Moose namespaceautoclean ];
     meta = {
-      description = "A Simple limitable FIFO array, with sum and average methods";
+      description = "Simple limitable FIFO array, with sum and average methods";
       homepage = "https://github.com/dwburke/perl-Array-FIFO";
       license = with lib.licenses; [ artistic2 ];
     };
@@ -1476,7 +1493,7 @@ with self; {
     buildInputs = [ TestNoWarnings ];
     propagatedBuildInputs = [ UnicodeStringprep ];
     meta = {
-      description = "A Stringprep Profile for User Names and Passwords (RFC 4013)";
+      description = "Stringprep Profile for User Names and Passwords (RFC 4013)";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       maintainers = [ maintainers.sgo ];
     };
@@ -2089,7 +2106,7 @@ with self; {
       hash = "sha256-A9lntfgoRpCRN9WrmYSsVwrBCkQB4MYC89IgjEZayYI=";
     };
     meta = {
-      description = "A tiny Perl extension to generate cryptographically-secure random bytes";
+      description = "Tiny Perl extension to generate cryptographically-secure random bytes";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       maintainers = [ maintainers.sgo ];
     };
@@ -2105,7 +2122,7 @@ with self; {
     propagatedBuildInputs = [ DigestSHA1 Error IPCShareLite ];
     doCheck = false; # randomly fails
     meta = {
-      description = "The Cache Interface";
+      description = "Cache Interface";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -2192,7 +2209,7 @@ with self; {
       hash = "sha256-Tni35N0jG1VxpIzQ7htjlT9eNHkMnQIOFZWnx9Crvkk=";
     };
     meta = {
-      description = "A lightweight cache with timed expiration";
+      description = "Lightweight cache with timed expiration";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -2293,7 +2310,7 @@ with self; {
     };
     propagatedBuildInputs = [ HTMLTiny LWP ];
     meta = {
-      description = "A Perl implementation of the reCAPTCHA API";
+      description = "Perl implementation of the reCAPTCHA API";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -2564,7 +2581,7 @@ with self; {
       hash = "sha256-s54zllkDwAWD4BgOPdUopUkg9SB83wUmBcoTgoz6wTw=";
     };
     meta = {
-      description = "The Catalyst developer's manual";
+      description = "Catalyst developer's manual";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -2594,7 +2611,7 @@ with self; {
     buildInputs = [ TestFatal TypeTiny ];
     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 ];
     meta = {
-      description = "The Catalyst Framework Runtime";
+      description = "Catalyst Framework Runtime";
       homepage = "http://dev.catalyst.perl.org";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       mainProgram = "catalyst.pl";
@@ -2771,7 +2788,7 @@ with self; {
     buildInputs = [ HTTPMessage Plack SubOverride TestDeep ];
     propagatedBuildInputs = [ CatalystRuntime Moose PrometheusTiny PrometheusTinyShared ];
     meta = {
-      description = "A tiny Prometheus client";
+      description = "Tiny Prometheus client";
       homepage = "https://github.com/robn/Prometheus-Tiny";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -2930,7 +2947,7 @@ with self; {
     };
     buildInputs = [ CatalystRuntime TestLongString TestSimple13 TestWWWMechanize TestWWWMechanizeCatalyst TextCSV XMLSimple ];
     meta = {
-      description = "A view module to help in the convenience of downloading data into many supportable formats";
+      description = "View module to help in the convenience of downloading data into many supportable formats";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -3051,7 +3068,7 @@ with self; {
     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 ];
     buildInputs = [ LogAnyAdapterLog4perl LogLog4perl TestDeep TestException TestLWPUserAgent TestPod ];
     meta = {
-      description = "A data toolkit";
+      description = "Data toolkit";
       homepage = "https://github.com/LibreCat/Catmandu";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       mainProgram = "catmandu";
@@ -3201,7 +3218,7 @@ with self; {
       hash = "sha256-uU1QghsCYR2m7lQjGTFFB4xNuygvKxYqSw1YCUmXvEc=";
     };
     meta = {
-      description = "A lightweight CGI form processing package";
+      description = "Lightweight CGI form processing package";
       homepage = "https://github.com/JerilynFranz/perl-CGI-Minimal";
       license = with lib.licenses; [ mit ];
     };
@@ -3244,7 +3261,7 @@ with self; {
     };
     buildInputs = [ TestException TestNoWarnings ];
     meta = {
-      description = "A Simple totally OO CGI interface that is CGI.pm compliant";
+      description = "Simple totally OO CGI interface that is CGI.pm compliant";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -3292,7 +3309,7 @@ with self; {
     buildInputs = [ TestWarn ];
     propagatedBuildInputs = [ GD GraphicsToolkitColor ];
     meta = {
-      description = "A series of charting modules";
+      description = "Series of charting modules";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -3405,7 +3422,7 @@ with self; {
       hash = "sha256-dbO47I7+aHZ3tj8KEO75ZuAfYHNcVmVs51y7RMq6M1o=";
     };
     meta = {
-      description = "A minimalistic variant of Class::Accessor";
+      description = "Minimalistic variant of Class::Accessor";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -3446,7 +3463,7 @@ with self; {
     };
     propagatedBuildInputs = [ AlgorithmC3 ];
     meta = {
-      description = "A pragma to use the C3 method resolution order algorithm";
+      description = "Pragma to use the C3 method resolution order algorithm";
       homepage = "https://metacpan.org/release/Class-C3";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -3491,7 +3508,7 @@ with self; {
       hash = "sha256-m2XUG5kVOJkugWsyzE+ptKSguz6cEOfuvv+CZY27yPY=";
     };
     meta = {
-      description = "Simplifies creation, manipulation and usage of complex objects.";
+      description = "Simplifies creation, manipulation and usage of complex objects";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       mainProgram = "classgen";
     };
@@ -3668,7 +3685,7 @@ with self; {
       hash = "sha256-p1KK8in6OhIF3NJakd59dKxvp9lSgbmTtV6Lb0+HuZE=";
     };
     meta = {
-      description = "A set of modules to make the module developement easier";
+      description = "Set of modules to make the module developement easier";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -3683,7 +3700,7 @@ with self; {
     # Remove unnecessary, non-autoconf, configure script.
     prePatch = "rm configure";
     meta = {
-      description = "A module for creating generic methods";
+      description = "Module for creating generic methods";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -3769,7 +3786,7 @@ with self; {
       hash = "sha256-3JoR4Nq1bcIg3qjJT+PEfbXn3Xwe0E3IF4qlu3v7vM4=";
     };
     meta = {
-      description = "A minimal lightweight exception class";
+      description = "Minimal lightweight exception class";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -3798,7 +3815,7 @@ with self; {
     buildInputs = [ TestFatal TestNeeds ];
     propagatedBuildInputs = [ DataOptList PackageStash ];
     meta = {
-      description = "A working (require \"Class::Name\") and more";
+      description = "Working (require \"Class::Name\") and more";
       homepage = "https://github.com/moose/Class-Load";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -4042,7 +4059,7 @@ with self; {
     buildInputs = [ TestMost TestWarn TestException TestDeep TestDifferences ModulePluggable ];
     propagatedBuildInputs = [ ClassAccessor ClassDataInheritable ];
     meta = {
-      description = "An easy-to-use and comprehensive named-color library";
+      description = "Easy-to-use and comprehensive named-color library";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -4224,7 +4241,7 @@ with self; {
     };
     propagatedBuildInputs = [ CaptureTiny ];
     meta = {
-      description = "A module to implement some of AutoConf macros in pure perl";
+      description = "Module to implement some of AutoConf macros in pure perl";
       homepage = "https://metacpan.org/release/Config-AutoConf";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -4266,7 +4283,7 @@ with self; {
       hash = "sha256-qLOjosnIxDuS3EAb8nCdZRTxW0Z/1PcsSNNWM1dx1uM=";
     };
     meta = {
-      description = "A grammar-based, user-friendly config parser";
+      description = "Grammar-based, user-friendly config parser";
       homepage = "https://github.com/schweikert/Config-Grammar";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -4312,7 +4329,7 @@ with self; {
     };
     propagatedBuildInputs = [ IOStringy ];
     meta = {
-      description = "A module for reading .ini-style configuration files";
+      description = "Module for reading .ini-style configuration files";
       homepage = "https://metacpan.org/release/Config-IniFiles";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       maintainers = teams.deshaw.members;
@@ -4374,7 +4391,7 @@ with self; {
     };
     propagatedBuildInputs = [ ConfigINI ConfigMVP ];
     meta = {
-      description = "An MVP config reader for .ini files";
+      description = "MVP config reader for .ini files";
       homepage = "https://github.com/rjbs/Config-MVP-Reader-INI";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -4469,7 +4486,7 @@ with self; {
       rm t/01-builtin-password-scheme.t
     '';
     meta = {
-      description = "A generic connection to a hierarchical-structured data set";
+      description = "Generic connection to a hierarchical-structured data set";
       homepage = "https://github.com/whiterabbitsecurity/connector";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -4667,7 +4684,7 @@ with self; {
     propagatedBuildInputs = [ AnyEvent Guard commonsense ];
     buildInputs = [ CanaryStability ];
     meta = {
-      description = "The only real threads in perl";
+      description = "Only real threads in perl";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -5084,7 +5101,7 @@ with self; {
     propagatedBuildInputs = [ ClassMix ];
     perlPreHook = lib.optionalString (stdenv.isi686 || stdenv.isDarwin) "export LD=$CC";
     meta = {
-      description = "The Eksblowfish block cipher";
+      description = "Eksblowfish block cipher";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -5118,7 +5135,7 @@ with self; {
     '';
 
     meta = {
-      description = "A secure memorable password generator";
+      description = "Secure memorable password generator";
       homepage = "http://www.bartb.ie/hsxkpasswd";
       license = with lib.licenses; [ bsd2 ];
       maintainers = [ maintainers.dannixon ];
@@ -5165,7 +5182,7 @@ with self; {
     };
     propagatedBuildInputs = [ CryptURandom ];
     meta = {
-      description = "A module for managing passwords in a cryptographically agile manner";
+      description = "Module for managing passwords in a cryptographically agile manner";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -5179,7 +5196,7 @@ with self; {
     };
     propagatedBuildInputs = with perlPackages; [ CryptArgon2 CryptPassphrase ];
     meta = {
-      description = "An Argon2 encoder for Crypt::Passphrase";
+      description = "Argon2 encoder for Crypt::Passphrase";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -5193,7 +5210,7 @@ with self; {
     };
     propagatedBuildInputs = [ CryptBcrypt CryptPassphrase ];
     meta = {
-      description = "A bcrypt encoder for Crypt::Passphrase";
+      description = "Bcrypt encoder for Crypt::Passphrase";
       homepage = "https://github.com/Leont/crypt-passphrase-bcrypt";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -5440,7 +5457,7 @@ with self; {
       hash = "sha256-WIFVXWGHlyojgqoNTbLXTJcLBndMYhtspSNzkjbS1QE=";
     };
     meta = {
-      description = "The Twofish Encryption Algorithm";
+      description = "Twofish Encryption Algorithm";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       maintainers = [ maintainers.sgo ];
     };
@@ -5585,7 +5602,7 @@ with self; {
     buildInputs = [ TestFatal ];
     propagatedBuildInputs = [ DigestHMAC DigestSHA3 Moo TypeTiny namespaceautoclean strictures ];
     meta = {
-      description = "The PBKDF2 password hash algorithm";
+      description = "PBKDF2 password hash algorithm";
       homepage = "https://metacpan.org/release/Crypt-PBKDF2";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       maintainers = [ maintainers.sgo ];
@@ -5737,7 +5754,7 @@ with self; {
     };
     propagatedBuildInputs = [ Curses TermReadKey ];
     meta = {
-      description = "A curses based OO user interface framework";
+      description = "Curses based OO user interface framework";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -5823,7 +5840,7 @@ with self; {
     };
     propagatedBuildInputs = [ DataIEEE754 DevelStackTrace ScalarType StringBinaryInterpolation TestDifferences TestException ];
     meta = {
-      description = "A Compact Read Only Database that consumes very little memory";
+      description = "Compact Read Only Database that consumes very little memory";
       license = with lib.licenses; [ artistic1 gpl2Only ];
     };
   };
@@ -6036,7 +6053,7 @@ with self; {
     };
     buildInputs = [ ModuleBuildXSUtil TestRequires ];
     meta = {
-      description = "A grep-like program for searching source code";
+      description = "Grep-like program for searching source code";
       homepage = "https://github.com/msgpack/msgpack-perl";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       maintainers = [ maintainers.sgo ];
@@ -6316,7 +6333,7 @@ with self; {
     buildInputs = [ HashUtilFieldHashCompat ModuleBuildXSUtil ScopeGuard TestException ];
     perlPreHook = lib.optionalString stdenv.isi686 "export LD=$CC"; # fix undefined reference to `__stack_chk_fail_local'
     meta = {
-      description = "A selection of utilities for data and data types";
+      description = "Selection of utilities for data and data types";
       homepage = "https://github.com/gfx/Perl-Data-Util";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.DataUtil.x86_64-darwin
@@ -6501,7 +6518,7 @@ with self; {
       hash = "sha256-KaGSYxTOFoGjEtYVXClZDHcd2s+Rt0hYc85EnvIJ3QQ=";
     };
     meta = {
-      description = "A simple date object";
+      description = "Simple date object";
       license = with lib.licenses; [ artistic1 gpl2Plus ];
     };
   };
@@ -6516,7 +6533,7 @@ with self; {
     buildInputs = [ CPANMetaCheck TestFatal TestWarnings TestWithoutModule ];
     propagatedBuildInputs = [ DateTimeLocale DateTimeTimeZone ];
     meta = {
-      description = "A date and time object for Perl";
+      description = "Date and time object for Perl";
       homepage = "https://metacpan.org/release/DateTime";
       license = with lib.licenses; [ artistic2 ];
     };
@@ -6858,7 +6875,7 @@ with self; {
     };
     propagatedBuildInputs = [ ClassISA DevelStackTrace StringUtil TermReadKey TextTabularDisplay TieIxHash ];
     meta = {
-      description = "A collection of handy debugging routines for displaying the values of variables with a minimum of coding";
+      description = "Collection of handy debugging routines for displaying the values of variables with a minimum of coding";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -6958,7 +6975,7 @@ with self; {
     };
     propagatedBuildInputs = [ DevelCheckOS DevelHide TestException TestTime ];
     meta = {
-      description = "A framework for managing deprecations";
+      description = "Framework for managing deprecations";
       homepage = "https://github.com/DrHyde/perl-modules-Devel-Deprecations-Environmental";
       license = with lib.licenses; [ gpl2Only artistic1 ];
     };
@@ -7546,7 +7563,7 @@ with self; {
     };
     buildInputs = [ TestDeep TestException TestPod TestPodCoverage TestWarn ];
     meta = {
-      description = "A pure perl multi-level hash/array DBM that supports transactions";
+      description = "Pure perl multi-level hash/array DBM that supports transactions";
       homepage = "https://github.com/robkinyon/dbm-deep";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -7764,7 +7781,7 @@ with self; {
       hash = "sha256-zTwD7VR9PULGH6WBTJgpYTk5LnlxwJLgmkMfLJ9daFU=";
     };
     meta = {
-      description = "An object representing a stack trace";
+      description = "Object representing a stack trace";
       homepage = "https://metacpan.org/release/Devel-StackTrace";
       license = with lib.licenses; [ artistic2 ];
     };
@@ -7971,7 +7988,7 @@ with self; {
       hash = "sha256-4lGlGrx9m6PnCPc8KqII4J1HoMUo1iVHEPp4zI1ohbU=";
     };
     meta = {
-      description = "A __DIR__ constant for the directory your source file is in";
+      description = "__DIR__ constant for the directory your source file is in";
       homepage = "https://github.com/mauke/Dir-Self";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -8547,7 +8564,7 @@ with self; {
     };
     buildInputs = [ CaptureTiny ];
     meta = {
-      description = "A unified interface to MIME encoding and decoding";
+      description = "Unified interface to MIME encoding and decoding";
       homepage = "https://github.com/rjbs/Email-MIME-Encodings";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -8580,7 +8597,7 @@ with self; {
     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)
     meta = {
       homepage = "https://www.matijs.net/software/msgconv/";
-      description = "A .MSG to mbox converter";
+      description = ".MSG to mbox converter";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       maintainers = with maintainers; [ peterhoeg ];
       mainProgram = "msgconvert";
@@ -8604,7 +8621,7 @@ with self; {
       shortenPerlShebang util/sendmail
     '';
     meta = {
-      description = "A library for sending email";
+      description = "Library for sending email";
       homepage = "https://github.com/rjbs/Email-Sender";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -8635,7 +8652,7 @@ with self; {
     buildInputs = [ Moo TestFatal ];
     propagatedBuildInputs = [ EmailMIME EmailSender ModuleRuntime ParamsUtil ];
     meta = {
-      description = "A more casual approach to creating and sending Email:: emails";
+      description = "More casual approach to creating and sending Email:: emails";
       homepage = "https://github.com/rjbs/Email-Stuffer";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       maintainers = with maintainers; [ sgo ];
@@ -8711,7 +8728,7 @@ with self; {
     };
     nativeBuildInputs = [ pkgs.ld-is-cc-hook ];
     meta = {
-      description = "An Encode::Encoding subclass that detects the encoding of data";
+      description = "Encode::Encoding subclass that detects the encoding of data";
       license = with lib.licenses; [ mpl11 gpl2Plus lgpl2Plus ]; # taken from fedora
     };
   };
@@ -8990,7 +9007,7 @@ with self; {
     };
     propagatedBuildInputs = [ ClassDataInheritable DevelStackTrace ];
     meta = {
-      description = "An Exception Object Class";
+      description = "Exception Object Class";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -9062,7 +9079,7 @@ with self; {
       hash = "sha256-byleLL/7HbwVvbna3DQWccHgzSvfLTErF1Jic8MiY40=";
     };
     meta = {
-      description = "An exporter with the features of Sub::Exporter but only core dependencies";
+      description = "Exporter with the features of Sub::Exporter but only core dependencies";
       homepage = "https://metacpan.org/release/Exporter-Tiny";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -9118,7 +9135,7 @@ with self; {
       hash = "sha256-rlEE9jRlDc6KebftE/tZ1no5whOmd2z9qj7nSeYvGow=";
     };
     meta = {
-      description = "A wrapper for perl's configuration";
+      description = "Wrapper for perl's configuration";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -9179,7 +9196,7 @@ with self; {
     buildInputs = [ pkgs.gfortran ];
     propagatedBuildInputs = [ FileWhich ];
     meta = {
-      description = "A simple interface to F77 libs";
+      description = "Simple interface to F77 libs";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -9234,7 +9251,7 @@ with self; {
     };
     perlPreHook = "export LD=$CC";
     meta = {
-      description = "A tool to build C libraries";
+      description = "Tool to build C libraries";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -9321,7 +9338,7 @@ with self; {
       hash = "sha256-Pfr1g36/3AB4lb/KhMPC521Ymn0zZADo37MkPYGCFd4=";
     };
     meta = {
-      description = "A set of useful typemaps";
+      description = "Set of useful typemaps";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -9411,7 +9428,7 @@ with self; {
       hash = "sha256-4clYwEJCehdeBR4ACPICXo7IBhPTx3UFl7+OUpsEQg4=";
     };
     meta = {
-      description = "A perl-based FastCGI process manager";
+      description = "Perl-based FastCGI process manager";
       license = with lib.licenses; [ gpl2Plus ];
     };
   };
@@ -9569,7 +9586,7 @@ with self; {
       hash = "sha256-Mev5Et9I1daB3vdLmIDXix86ykNRoO0f41cLjgOvbHk=";
     };
     meta = {
-      description = "A more sensible way to change directories";
+      description = "More sensible way to change directories";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -9743,7 +9760,7 @@ with self; {
     buildInputs = [ FileTreeCreate TestFile ];
     propagatedBuildInputs = [ ClassXSAccessor ];
     meta = {
-      description = "An object oriented File::Find replacement";
+      description = "Object oriented File::Find replacement";
       homepage = "https://metacpan.org/release/File-Find-Object";
       license = with lib.licenses; [ artistic2 ];
     };
@@ -10193,7 +10210,7 @@ with self; {
       hash = "sha256-/onLtCfg4F8c2Xwt1tOGasayG8eoVzTt4Vm9w1R5VSo=";
     };
     meta = {
-      description = "Perl extension for filesystem disk space information.";
+      description = "Perl extension for filesystem disk space information";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -10250,7 +10267,7 @@ with self; {
     };
     buildInputs = [ TestWarnings ];
     meta = {
-      description = "A simple, sane and efficient module to slurp a file";
+      description = "Simple, sane and efficient module to slurp a file";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -10263,7 +10280,7 @@ with self; {
       hash = "sha256-RSmVvuq/DpI+Zf3GJ6cl27EsnhDADYAYwW0QumJ1fx4=";
     };
     meta = {
-      description = "A simple, sane and efficient file slurper [DISCOURAGED]";
+      description = "Simple, sane and efficient file slurper [DISCOURAGED]";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -10397,10 +10414,10 @@ with self; {
 
   FinanceQuote = buildPerlPackage rec {
     pname = "Finance-Quote";
-    version = "1.60";
+    version = "1.62";
     src = fetchurl {
       url = "mirror://cpan/authors/id/B/BP/BPSCHUCK/Finance-Quote-${version}.tar.gz";
-      hash = "sha256-UXrYQNvOhzdVjnMxNJ/fa7J5u7sMobV+3SN7T5jVw34=";
+      hash = "sha256-DTEzsL89d5WCxWaFDVd/K76OGsvRFJeDHNQ9jzFgZII=";
     };
     buildInputs = [ DateManip DateRange DateSimple DateTime DateTimeFormatISO8601 StringUtil TestKwalitee TestPerlCritic TestPod TestPodCoverage ];
     propagatedBuildInputs = [ DateManip DateTimeFormatStrptime Encode HTMLTableExtract HTMLTokeParserSimple HTMLTree HTMLTreeBuilderXPath HTTPCookies HTTPCookieJar JSON IOCompress IOString LWPProtocolHttps Readonly StringUtil SpreadsheetXLSX TextTemplate TryTiny WebScraper XMLLibXML libwwwperl ];
@@ -10585,7 +10602,7 @@ with self; {
     buildInputs = [ Test2Suite ];
     propagatedBuildInputs = [ Future ];
     meta = {
-      description = "A FIFO queue of values that uses L<Future>s";
+      description = "FIFO queue of values that uses L<Future>s";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -10805,7 +10822,7 @@ with self; {
     propagatedBuildInputs = [ ArchiveExtract ConfigGitLike DataStreamBulk DateTime FileFindRule IODigest MooseXStrictConstructor MooseXTypesPathClass ];
     doCheck = false;
     meta = {
-      description = "A Pure Perl interface to Git repositories";
+      description = "Pure Perl interface to Git repositories";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -11357,7 +11374,7 @@ with self; {
     };
     propagatedBuildInputs = [ Gtk3 ];
     meta = {
-      description = "A simple interface to Gtk3's complex MVC list widget";
+      description = "Simple interface to Gtk3's complex MVC list widget";
       homepage = "https://github.com/soig/Gtk3-SimpleList";
       license = with lib.licenses; [ lgpl21Plus ];
     };
@@ -11411,7 +11428,7 @@ with self; {
       shortenPerlShebang $out/bin/hailo
     '';
     meta = {
-      description = "A pluggable Markov engine analogous to MegaHAL";
+      description = "Pluggable Markov engine analogous to MegaHAL";
       homepage = "https://hailo.org";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       mainProgram = "hailo";
@@ -11521,7 +11538,7 @@ with self; {
     buildInputs = [ TestDeep TestFailWarnings TestFatal ];
     meta = {
       homepage = "https://github.com/dagolden/Hash-Ordered";
-      description = "A fast, pure-Perl ordered hash class";
+      description = "Fast, pure-Perl ordered hash class";
       license = lib.licenses.asl20;
     };
   };
@@ -12134,7 +12151,7 @@ with self; {
     # Broken on Hydra since 2021-06-17: https://hydra.nixos.org/build/146507373
     doCheck = false;
     meta = {
-      description = "A minimalist HTTP user agent cookie jar";
+      description = "Minimalist HTTP user agent cookie jar";
       homepage = "https://github.com/dagolden/HTTP-CookieJar";
       license = with lib.licenses; [ asl20 ];
     };
@@ -12165,7 +12182,7 @@ with self; {
     buildInputs = [ ModuleBuildTiny TestNeeds ];
     propagatedBuildInputs = [ HTTPMessage ];
     meta = {
-      description = "A simple http server class";
+      description = "Simple http server class";
       homepage = "https://github.com/libwww-perl/HTTP-Daemon";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -12240,7 +12257,7 @@ with self; {
       hash = "sha256-qeAP/7PYmRoUqq/dxh1tFoxP8U4xSuPbstTaMAjXRu8=";
     };
     meta = {
-      description = "An XS extension for processing HTTP headers";
+      description = "XS extension for processing HTTP headers";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       broken =
         stdenv.isi686 # loadable library and perl binaries are mismatched (got handshake key 0x7d40080, needed 0x7dc0080)
@@ -12330,7 +12347,7 @@ with self; {
       hash = "sha256-eU5oM+MmsQ0kNp+c2/wWZxBe9lkej0HlYaPUGnAnqAk=";
     };
     meta = {
-      description = "A fast, primitive HTTP request parser";
+      description = "Fast, primitive HTTP request parser";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -12346,7 +12363,7 @@ with self; {
     # tests fail because they require network access
     doCheck = false;
     meta = {
-      description = "A pure Perl HTTP proxy";
+      description = "Pure Perl HTTP proxy";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -12418,7 +12435,7 @@ with self; {
     };
     propagatedBuildInputs = [ HTMLMason HTTPServerSimple HookLexWrap ];
     meta = {
-      description = "A simple mason server";
+      description = "Simple mason server";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -12584,7 +12601,7 @@ with self; {
     };
     buildInputs = [ ModuleBuild ];
     meta = {
-      description = "A library to extract height/width from images";
+      description = "Library to extract height/width from images";
       homepage = "https://search.cpan.org/dist/Image-Size";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       mainProgram = "imgsize";
@@ -12831,6 +12848,7 @@ with self; {
       url = "mirror://cpan/authors/id/L/LD/LDS/IO-Interface-1.09.tar.gz";
       hash = "sha256-5j6BxS6x4OYOwtmD9VUtJJPhFxeZJclnV/I8S9n6cTo=";
     };
+    nativeBuildInputs = lib.optionals stdenv.isDarwin [ pkgs.ld-is-cc-hook ];
     meta = {
       description = "Access and modify network interface card configuration";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
@@ -13724,7 +13742,7 @@ with self; {
     propagatedBuildInputs = [ EncodeLocale FileListing HTMLParser HTTPCookieJar HTTPCookies HTTPDate HTTPMessage HTTPNegotiate LWPMediaTypes NetHTTP TryTiny URI WWWRobotRules ];
     meta = {
       homepage = "https://github.com/libwww-perl/libwww-perl";
-      description = "The World-Wide Web library for Perl";
+      description = "World-Wide Web library for Perl";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -14166,7 +14184,7 @@ with self; {
     };
     buildInputs = [ TestInter ];
     meta = {
-      description = "A distribution of modules to handle locale codes";
+      description = "Distribution of modules to handle locale codes";
       homepage = "https://github.com/SBECK-github/Locale-Codes";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -14491,7 +14509,7 @@ with self; {
       hash = "sha256-6JEdM4ePoWmeQ+jQpU7V1WEEA4Z/9cM5+TQQPRfsZLA=";
     };
     meta = {
-      description = "A lightweight, flexible logging framework";
+      description = "Lightweight, flexible logging framework";
       homepage = "https://metacpan.org/release/Log-ger";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       maintainers = [ maintainers.sgo ];
@@ -14607,7 +14625,7 @@ with self; {
     buildInputs = [ TestDeep TestFatal ];
     propagatedBuildInputs = [ LogDispatchArray StringFlogger SubExporterGlobExporter ];
     meta = {
-      description = "A simple wrapper around Log::Dispatch";
+      description = "Simple wrapper around Log::Dispatch";
       homepage = "https://github.com/rjbs/Log-Dispatchouli";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -14678,7 +14696,7 @@ with self; {
     doCheck = !stdenv.isDarwin;
     nativeCheckInputs = [ HTTPDaemon TestFatal TestNeeds TestRequiresInternet ];
     meta = {
-      description = "The World-Wide Web library for Perl";
+      description = "World-Wide Web library for Perl";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -14800,7 +14818,7 @@ with self; {
     };
     propagatedBuildInputs = [ LWP ];
     meta = {
-      description = "A virtual browser that retries errors";
+      description = "Virtual browser that retries errors";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -14964,7 +14982,7 @@ with self; {
     buildInputs = [ FileSlurper TestCompile TestPod TestPodCoverage TextDiff UNIVERSALrequire URI ];
     propagatedBuildInputs = [ FileHandleUnget ];
     meta = {
-      description = "A fast and simple mbox folder reader";
+      description = "Fast and simple mbox folder reader";
       homepage = "https://github.com/coppit/mail-mbox-messageparser";
       license = with lib.licenses; [ gpl2Only ];
       maintainers = with maintainers; [ romildo ];
@@ -15011,7 +15029,7 @@ with self; {
     };
     propagatedBuildInputs = [ ParseRecDescent ];
     meta = {
-      description = "An IMAP Client API";
+      description = "IMAP Client API";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -15094,7 +15112,7 @@ with self; {
 
     doCheck = false; # The main test performs network access
     meta = {
-      description = "An object-oriented implementation of Sender Policy Framework";
+      description = "Object-oriented implementation of Sender Policy Framework";
       license = with lib.licenses; [ bsd3 ];
       mainProgram = "spfquery";
     };
@@ -15641,7 +15659,7 @@ with self; {
     };
     propagatedBuildInputs = [ CPANCommonIndex CPANMetaCheck CaptureTiny ExtUtilsHelpers ExtUtilsInstallPaths Filepushd HTTPTinyish ModuleCPANfile ParsePMFile StringShellQuote Win32ShellQuote locallib ];
     meta = {
-      description = "A CPAN client";
+      description = "CPAN client";
       homepage = "https://github.com/miyagawa/cpanminus";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -15694,7 +15712,7 @@ with self; {
     buildInputs = [ LWPProtocolHttps TestFatal TestNeeds ];
     propagatedBuildInputs = [ IOSocketSSL JSONMaybeXS Moo RefUtil SafeIsa TypeTiny URI ];
     meta = {
-      description = "A comprehensive, DWIM-featured client to the MetaCPAN API";
+      description = "Comprehensive, DWIM-featured client to the MetaCPAN API";
       homepage = "https://github.com/metacpan/metacpan-client";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       maintainers = with maintainers; [ sgo ];
@@ -15745,7 +15763,7 @@ with self; {
 
     meta = {
       homepage = "https://www.mhonarc.org/";
-      description = "A mail-to-HTML converter";
+      description = "Mail-to-HTML converter";
       mainProgram = "mhonarc";
       license = with lib.licenses; [ gpl2Only ];
     };
@@ -15862,7 +15880,7 @@ with self; {
     };
     propagatedBuildInputs = [ Mojolicious YAMLLibYAML ];
     meta = {
-      description = "A high performance job queue for Perl";
+      description = "High performance job queue for Perl";
       homepage = "https://github.com/mojolicious/minion";
       license = with lib.licenses; [ artistic2 ];
       maintainers = [ maintainers.sgo ];
@@ -16047,7 +16065,7 @@ with self; {
     };
     doCheck = false;
     meta = {
-      description = "A collection of modules removed from Module-Build";
+      description = "Collection of modules removed from Module-Build";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -16109,7 +16127,7 @@ with self; {
     buildInputs = [ FileShareDir ];
     propagatedBuildInputs = [ ExtUtilsHelpers ExtUtilsInstallPaths ];
     meta = {
-      description = "A tiny replacement for Module::Build";
+      description = "Tiny replacement for Module::Build";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -16139,7 +16157,7 @@ with self; {
     propagatedBuildInputs = [ DevelCheckCompiler ];
     perlPreHook = "export LD=$CC";
     meta = {
-      description = "A Module::Build class for building XS modules";
+      description = "Module::Build class for building XS modules";
       homepage = "https://github.com/hideo55/Module-Build-XSUtil";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -16317,7 +16335,7 @@ with self; {
     buildInputs = [ CaptureTiny ];
     propagatedBuildInputs = [ ModuleInstall ];
     meta = {
-      description = "A Module::Install extension to include GitHub meta information in META.yml";
+      description = "Module::Install extension to include GitHub meta information in META.yml";
       homepage = "https://github.com/bingos/module-install-githubmeta";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       maintainers = [ maintainers.sgo ];
@@ -16334,7 +16352,7 @@ with self; {
     buildInputs = [ TestInDistDir ];
     propagatedBuildInputs = [ CaptureTiny IOAll ModuleInstall PodMarkdown ];
     meta = {
-      description = "A Module::Install extension to automatically convert POD to a README";
+      description = "Module::Install extension to automatically convert POD to a README";
       homepage = "https://github.com/bingos/module-install-readmefrompod";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       maintainers = [ maintainers.sgo ];
@@ -16734,7 +16752,7 @@ with self; {
     };
     propagatedBuildInputs = [ Mojolicious ];
     meta = {
-      description = "A plugin for enabling a Mojolicious app to log to syslog";
+      description = "Plugin for enabling a Mojolicious app to log to syslog";
       homepage = "https://github.com/jhthorsen/mojolicious-plugin-syslog";
       license = with lib.licenses; [ artistic2 ];
       maintainers = [ maintainers.sgo ];
@@ -16816,7 +16834,7 @@ with self; {
     buildInputs = [ ModuleBuildTiny ];
     propagatedBuildInputs = [ CryptOpenSSLRSA CryptOpenSSLX509 DataGUID Mojolicious XMLCanonicalizeXML ];
     meta = {
-      description = "A SAML2 toolkit using the Mojo toolkit";
+      description = "SAML2 toolkit using the Mojo toolkit";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       maintainers = [ maintainers.sgo ];
     };
@@ -16832,7 +16850,7 @@ with self; {
     buildInputs = [ ModuleBuildTiny ];
     propagatedBuildInputs = [ DBDSQLite Mojolicious SQLAbstractPg URIdb URI ];
     meta = {
-      description = "A tiny Mojolicious wrapper for SQLite";
+      description = "Tiny Mojolicious wrapper for SQLite";
       homepage = "https://github.com/Grinnz/Mojo-SQLite";
       license = with lib.licenses; [ artistic2 ];
       maintainers = [ maintainers.sgo ];
@@ -17021,7 +17039,7 @@ with self; {
       export LD=$CC
     '';
     meta = {
-      description = "A postmodern object system for Perl 5";
+      description = "Postmodern object system for Perl 5";
       homepage = "http://moose.perl.org";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       maintainers = [ maintainers.eelco ];
@@ -17242,7 +17260,7 @@ with self; {
     buildInputs = [ Moose TestDeepJSON TestWithoutModule DigestHMAC MooseXTypes ];
     propagatedBuildInputs = [ JSON MooseXRoleParameterized MooseXStorage namespaceautoclean ];
     meta = {
-      description = "A format role for MooseX::Storage using JSON.pm";
+      description = "Format role for MooseX::Storage using JSON.pm";
       homepage = "https://github.com/rjbs/MooseX-Storage-Format-JSONpm";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -17319,7 +17337,7 @@ with self; {
     };
     propagatedBuildInputs = [ ConfigAny MouseXConfigFromFile ];
     meta = {
-      description = "A Mouse role for setting attributes from a simple configfile";
+      description = "Mouse role for setting attributes from a simple configfile";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -17427,7 +17445,7 @@ with self; {
     buildInputs = [ TestUseAllModules ];
     propagatedBuildInputs = [ MouseXTypesPathClass ];
     meta = {
-      description = "An abstract Mouse role for setting attributes from a configfile";
+      description = "Abstract Mouse role for setting attributes from a configfile";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -17445,7 +17463,7 @@ with self; {
     buildInputs = [ ModuleBuildTiny MouseXConfigFromFile MouseXSimpleConfig TestException TestWarn ];
     propagatedBuildInputs = [ GetoptLongDescriptive Mouse ];
     meta = {
-      description = "A Mouse role for processing command line options";
+      description = "Mouse role for processing command line options";
       homepage = "https://github.com/gfx/mousex-getopt";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -17506,7 +17524,7 @@ with self; {
     buildInputs = [ ModuleBuildTiny TestDeep TestFatal TestRequires TestWithoutModule ];
     propagatedBuildInputs = [ MooseXTypesPathTiny ];
     meta = {
-      description = "An abstract Moose role for setting attributes from a configfile";
+      description = "Abstract Moose role for setting attributes from a configfile";
       homepage = "https://github.com/moose/MooseX-ConfigFromFile";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -17553,7 +17571,7 @@ with self; {
     buildInputs = [ ModuleBuildTiny MooseXStrictConstructor PathTiny TestDeep TestFatal TestNeeds TestTrap TestWarnings ];
     propagatedBuildInputs = [ GetoptLongDescriptive MooseXRoleParameterized ];
     meta = {
-      description = "A Moose role for processing command line options";
+      description = "Moose role for processing command line options";
       homepage = "https://github.com/moose/MooseX-Getopt";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -17692,7 +17710,7 @@ with self; {
     buildInputs = [ TestFatal ];
     propagatedBuildInputs = [ DevelCaller Moose ParamsValidate ];
     meta = {
-      description = "An extension of Params::Validate using Moose's types";
+      description = "Extension of Params::Validate using Moose's types";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -17799,7 +17817,7 @@ with self; {
     buildInputs = [ TestDeep TestDeepType TestFatal TestNeeds TestDeepJSON TestWithoutModule DigestHMAC MooseXTypes ];
     propagatedBuildInputs = [ ModuleRuntime Moose MooseXRoleParameterized PodCoverage StringRewritePrefix namespaceautoclean IOStringy JSON JSONXS JSONMaybeXS CpanelJSONXS YAML YAMLOld YAMLTiny YAMLLibYAML YAMLSyck ];
     meta = {
-      description = "A serialization framework for Moose classes";
+      description = "Serialization framework for Moose classes";
       homepage = "https://github.com/moose/MooseX-Storage";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -17878,7 +17896,7 @@ with self; {
     buildInputs = [ ModuleBuildTiny TestDeep TestWarnings ];
     propagatedBuildInputs = [ MooseXTypes ];
     meta = {
-      description = "A library of commonly used type constraints";
+      description = "Library of commonly used type constraints";
       homepage = "https://github.com/moose/MooseX-Types-Common";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -17942,7 +17960,7 @@ with self; {
     propagatedBuildInputs = [ MooseXTypes PathClass ];
     buildInputs = [ ModuleBuildTiny TestNeeds ];
     meta = {
-      description = "A Path::Class type library for Moose";
+      description = "Path::Class type library for Moose";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -18216,7 +18234,7 @@ with self; {
     };
     propagatedBuildInputs = [ YAMLLibYAML ];
     meta = {
-      description = "A simple Mustache Renderer";
+      description = "Simple Mustache Renderer";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -18676,7 +18694,7 @@ with self; {
     propagatedBuildInputs = [ BitVector ClassGomor NetIPv6Addr ];
     preCheck = "rm t/13-gethostsubs.t"; # it performs DNS queries
     meta = {
-      description = "The base framework for frame crafting";
+      description = "Base framework for frame crafting";
       license = with lib.licenses; [ artistic1 ];
     };
   };
@@ -18970,7 +18988,7 @@ with self; {
     buildInputs = [ TestWarn ];
     propagatedBuildInputs = [ ClassAccessor ClassDataInheritable DigestHMAC DigestSHA1 LWP ];
     meta = {
-      description = "An implementation of the OAuth protocol";
+      description = "Implementation of the OAuth protocol";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -19091,7 +19109,7 @@ with self; {
     };
     propagatedBuildInputs = [ Coro NetServer ];
     meta = {
-      description = "A co-operative multithreaded server using Coro";
+      description = "Co-operative multithreaded server using Coro";
       license = with lib.licenses; [ mit ];
     };
   };
@@ -19109,7 +19127,7 @@ with self; {
     buildInputs = [ ModuleInstall ];
     propagatedBuildInputs = [ NetServer ServerStarter ];
     meta = {
-      description = "A hot-deployable variant of Net::Server::PreFork";
+      description = "Hot-deployable variant of Net::Server::PreFork";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -19137,7 +19155,7 @@ with self; {
     };
     propagatedBuildInputs = [ DigestHMAC IOSocketSSL ];
     meta = {
-      description = "An SMTP client supporting TLS and AUTH";
+      description = "SMTP client supporting TLS and AUTH";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -19151,7 +19169,7 @@ with self; {
     };
     propagatedBuildInputs = [ DigestHMAC IOSocketSSL ];
     meta = {
-      description = "An SMTP client supporting TLS and AUTH (DEPRECATED, use Net::SMTPS instead)";
+      description = "SMTP client supporting TLS and AUTH (DEPRECATED, use Net::SMTPS instead)";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -19279,7 +19297,7 @@ with self; {
     propagatedBuildInputs = [ JSON LWPProtocolHttps ];
     doCheck = false;
     meta = {
-      description = "A perl API library for the Twitter API";
+      description = "Perl API library for the Twitter API";
       homepage = "https://github.com/semifor/net-twitter-lite";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -19431,7 +19449,7 @@ with self; {
     };
     propagatedBuildInputs = [ DigestHMAC ];
     meta = {
-      description = "An NTLM authentication module";
+      description = "NTLM authentication module";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       maintainers = [ maintainers.pSub ];
     };
@@ -19459,7 +19477,7 @@ with self; {
     };
     propagatedBuildInputs = [ AnyEvent commonsense ];
     meta = {
-      description = "A class that provides an event callback interface";
+      description = "Class that provides an event callback interface";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -19489,7 +19507,7 @@ with self; {
     perlPreHook = lib.optionalString stdenv.isDarwin "export LD=$CC";
     propagatedBuildInputs = [ XSParseKeyword XSParseSublike ];
     meta = {
-      description = "A simple syntax for lexical field-based objects";
+      description = "Simple syntax for lexical field-based objects";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       maintainers = [ maintainers.zakame ];
     };
@@ -19560,7 +19578,7 @@ with self; {
     };
     propagatedBuildInputs = [ MojoliciousPluginOpenAPI ];
     meta = {
-      description = "A client for talking to an Open API powered server";
+      description = "Client for talking to an Open API powered server";
       homepage = "https://github.com/jhthorsen/openapi-client";
       license = with lib.licenses; [ artistic2 ];
       maintainers = [ maintainers.sgo ];
@@ -19605,7 +19623,7 @@ with self; {
     };
     propagatedBuildInputs = [ ArchiveZip XMLTwig ];
     meta = {
-      description = "The Perl Open OpenDocument Connector";
+      description = "Perl Open OpenDocument Connector";
       license = with lib.licenses; [ lgpl21Only ];
       maintainers = [ maintainers.wentasah ];
     };
@@ -19785,7 +19803,7 @@ with self; {
     buildInputs = [ TestWarn ];
     propagatedBuildInputs = [ Moo ];
     meta = {
-      description = "A simple parallel processing fork manager";
+      description = "Simple parallel processing fork manager";
       homepage = "https://github.com/dluxhu/perl-parallel-forkmanager";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -19833,7 +19851,7 @@ with self; {
     buildInputs = [ TestRequires TestSharedFork ];
     propagatedBuildInputs = [ ClassAccessorLite ListMoreUtils ProcWait3 ScopeGuard SignalMask ];
     meta = {
-      description = "A simple prefork server framework";
+      description = "Simple prefork server framework";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -20025,7 +20043,7 @@ with self; {
       hash = "sha256-RXsJiX8304pwVPlWMkc2VCf+JBAWIu1MfwVHI6RbWNU=";
     };
     meta = {
-      description = "A parser for the IRC protocol";
+      description = "Parser for the IRC protocol";
       homepage = "https://github.com/bingos/parse-irc";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       maintainers = with maintainers; [ sgo ];
@@ -20546,7 +20564,7 @@ with self; {
     };
     buildInputs = [ ModuleBuildTiny TestSharedFork TestTCP ];
     meta = {
-      description = "A PerlIO layer that adds read & write timeout to a handle";
+      description = "PerlIO layer that adds read & write timeout to a handle";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -21175,7 +21193,7 @@ with self; {
     };
     buildInputs = [ HTTPMessage Plack TestException TestWarn ];
     meta = {
-      description = "A tiny Prometheus client";
+      description = "Tiny Prometheus client";
       homepage = "https://github.com/robn/Prometheus-Tiny";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -21191,7 +21209,7 @@ with self; {
     buildInputs = [ DataRandom HTTPMessage Plack TestDifferences TestException TestWarn ];
     propagatedBuildInputs = [ HashSharedMem JSONXS PrometheusTiny ];
     meta = {
-      description = "A tiny Prometheus client with a shared database behind it";
+      description = "Tiny Prometheus client with a shared database behind it";
       homepage = "https://github.com/robn/Prometheus-Tiny-Shared";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -21323,7 +21341,7 @@ with self; {
     buildInputs = [ TryTiny ];
     propagatedBuildInputs = [ GetoptLongDescriptive ModulePath Moo ParamsUtil PPI StringRewritePrefix TypeTiny namespaceautoclean ];
     meta = {
-      description = "A tool to scan your Perl code for its prerequisites";
+      description = "Tool to scan your Perl code for its prerequisites";
       homepage = "https://github.com/rjbs/Perl-PrereqScanner";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       mainProgram = "scan-perl-prereqs";
@@ -21340,7 +21358,7 @@ with self; {
     propagatedBuildInputs = [ DataDump ModuleCPANfile ModuleFind RegexpTrie URIcpan ];
     buildInputs = [ ExtUtilsMakeMakerCPANfile ParseDistname TestFailWarnings TestUseAllModules ];
     meta = {
-      description = "A tool to scan your Perl code for its prerequisites";
+      description = "Tool to scan your Perl code for its prerequisites";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       mainProgram = "scan-perl-prereqs-nqlite";
     };
@@ -21370,7 +21388,7 @@ with self; {
     };
     propagatedBuildInputs = [ IOString TaskWeaken PodParser ];
     meta = {
-      description = "An abstract, tree-based interface to perl POD documents";
+      description = "Abstract, tree-based interface to perl POD documents";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       mainProgram = "paf";
     };
@@ -21446,7 +21464,7 @@ with self; {
     buildInputs = [ TestDifferences ];
     propagatedBuildInputs = [ PPI PodElemental ];
     meta = {
-      description = "A thing that takes a string of Perl and rewrites its documentation";
+      description = "Thing that takes a string of Perl and rewrites its documentation";
       homepage = "https://github.com/rjbs/Pod-Elemental-PerlMunger";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -21675,7 +21693,7 @@ with self; {
     propagatedBuildInputs = [ ClassTiny FileShareDir LinguaENInflect PathTiny PodParser ];
     buildInputs = [ FileShareDirInstall TestDeep ];
     meta = {
-      description = "A formatter for spellchecking Pod";
+      description = "Formatter for spellchecking Pod";
       homepage = "https://github.com/perl-pod/Pod-Spell";
       license = with lib.licenses; [ artistic2 ];
       mainProgram = "podspell";
@@ -21706,7 +21724,7 @@ with self; {
     propagatedBuildInputs = [ EncodeNewlines IOString PodWrap TextGlob ];
     buildInputs = [ TestCmd ];
     meta = {
-      description = "A reformatting Pod Processor";
+      description = "Reformatting Pod Processor";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       mainProgram = "podtidy";
     };
@@ -22016,7 +22034,7 @@ with self; {
     };
     propagatedBuildInputs = [ LWPProtocolHttps ];
     meta = {
-      description = "A simple client for interacting with RESTful http/https resources";
+      description = "Simple client for interacting with RESTful http/https resources";
       homepage = "https://github.com/milescrawford/cpan-rest-client";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -22089,7 +22107,7 @@ with self; {
     };
     propagatedBuildInputs = [ MooseXRoleParameterized StringErrf ];
     meta = {
-      description = "A thing with a message method";
+      description = "Thing with a message method";
       homepage = "https://github.com/rjbs/Role-HasMessage";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -22120,7 +22138,7 @@ with self; {
     };
     propagatedBuildInputs = [ Moose ];
     meta = {
-      description = "A thing you can identify somehow";
+      description = "Thing you can identify somehow";
       homepage = "https://github.com/rjbs/Role-Identifiable";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -22148,7 +22166,7 @@ with self; {
     };
     propagatedBuildInputs = [ AnyEvent DataSExpression ];
     meta = {
-      description = "An Asynchronous Remote Procedure Stack";
+      description = "Asynchronous Remote Procedure Stack";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -22180,7 +22198,7 @@ with self; {
     propagatedBuildInputs = [ locallib ];
     doCheck = false; /* creates files in HOME */
     meta = {
-      description = "A simple pure perl RSS parser";
+      description = "Simple pure perl RSS parser";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -22388,7 +22406,7 @@ with self; {
       hash = "sha256-05JWfLObTqYGwOCsr9jtcjIDEbmVM27OX878+bFQ6dc=";
     };
     meta = {
-      description = "Linux/POSIX emulation of Win32::SerialPort functions.";
+      description = "Linux/POSIX emulation of Win32::SerialPort functions";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       mainProgram = "modemtest";
     };
@@ -22404,7 +22422,7 @@ with self; {
     buildInputs = [ TestRequires TestSharedFork TestTCP ];
     doCheck = false; # Tests are slow and unstable
     meta = {
-      description = "A superdaemon for hot-deploying server programs";
+      description = "Superdaemon for hot-deploying server programs";
       homepage = "https://github.com/kazuho/p5-Server-Starter";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       mainProgram = "start_server";
@@ -22629,7 +22647,7 @@ with self; {
       hash = "sha256-7WpMz6sJTJzRZPVkAk6YvSHZT0MSzKxNYkbSKzQIGs8=";
     };
     meta = {
-      description = "The fastest way to sort anything in Perl";
+      description = "Fastest way to sort anything in Perl";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -22642,7 +22660,7 @@ with self; {
       hash = "sha256-v18zB0BuviWBI38CWYLoyE9vZiXdd05FfAP4mU79Lqo=";
     };
     meta = {
-      description = "A perl 5 module for sorting of revision-like numbers";
+      description = "Perl 5 module for sorting of revision-like numbers";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -22853,7 +22871,7 @@ with self; {
       hash = "sha256-+qhpvEJlc2QVNqCfU1AuVA1ePjrWp6oaxiXT9pdrQuE=";
     };
     meta = {
-      description = "A simple SQL tokenizer";
+      description = "Simple SQL tokenizer";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -22925,7 +22943,7 @@ with self; {
     propagatedBuildInputs = [ ParallelPrefork Plack ServerStarter ];
     doCheck = !stdenv.isDarwin;
     meta = {
-      description = "A simple, high-performance PSGI/Plack HTTP server";
+      description = "Simple, high-performance PSGI/Plack HTTP server";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -22962,7 +22980,7 @@ with self; {
     };
     propagatedBuildInputs = [ NumberFormat ];
     meta = {
-      description = "A collection of very basic statistics modules";
+      description = "Collection of very basic statistics modules";
       license = with lib.licenses; [ lgpl2Only ];
     };
   };
@@ -23161,7 +23179,7 @@ with self; {
     buildInputs = [ JSONMaybeXS TimeDate ];
     propagatedBuildInputs = [ StringFormatter ];
     meta = {
-      description = "A simple sprintf-like dialect";
+      description = "Simple sprintf-like dialect";
       homepage = "https://github.com/rjbs/String-Errf";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -23231,7 +23249,7 @@ with self; {
     };
     meta = {
       # https://metacpan.org/pod/String::Interpolate
-      description = "String::Interpolate - Wrapper for builtin the Perl interpolation engine.";
+      description = "String::Interpolate - Wrapper for builtin the Perl interpolation engine";
       license = with lib.licenses; [ gpl1Plus ];
     };
     propagatedBuildInputs = [ PadWalker SafeHole ];
@@ -23388,7 +23406,7 @@ with self; {
     };
     propagatedBuildInputs = [ SubExporter ];
     meta = {
-      description = "A module for when strings are too long to be displayed in...";
+      description = "Module for when strings are too long to be displayed in...";
       homepage = "https://github.com/rjbs/String-Truncate";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -23449,7 +23467,7 @@ with self; {
     };
     propagatedBuildInputs = [ DataOptList ];
     meta = {
-      description = "A sophisticated exporter for custom-built routines";
+      description = "Sophisticated exporter for custom-built routines";
       homepage = "https://github.com/rjbs/Sub-Exporter";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -23638,7 +23656,7 @@ with self; {
     };
     propagatedBuildInputs = [ (pkgs.subversionClient.override { inherit perl; }) ];
     meta = {
-      description = "A simple interface to subversion's editor interface";
+      description = "Simple interface to subversion's editor interface";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -23683,7 +23701,7 @@ with self; {
     };
     doCheck = false;                             # FIXME: 2/293 test failures
     meta = {
-      description = "A switch statement for Perl, do not use if you can use given/when";
+      description = "Switch statement for Perl, do not use if you can use given/when";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -23770,9 +23788,9 @@ with self; {
     };
     buildInputs = [ Test2Suite ];
     propagatedBuildInputs = [ XSParseKeyword ];
-    perlPreHook = lib.optionalString stdenv.isDarwin "export LD=$CC";
+    perlPreHook = lib.optionalString (stdenv.isi686 || stdenv.isDarwin) "export LD=$CC";
     meta = {
-      description = "A try/catch/finally syntax for perl";
+      description = "Try/catch/finally syntax for perl";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       maintainers = [ maintainers.zakame ];
     };
@@ -23828,7 +23846,7 @@ with self; {
     buildInputs = lib.optional stdenv.isDarwin pkgs.darwin.apple_sdk.frameworks.Carbon;
     doCheck = !stdenv.isAarch64;
     meta = {
-      description = "Perl extension for getting CPU information. Currently only number of CPU's supported.";
+      description = "Perl extension for getting CPU information. Currently only number of CPU's supported";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -24280,7 +24298,7 @@ with self; {
       perl.perlOnBuild.pkgs.TermReadKey
     ];
     meta = {
-      description = "A perl module for simple terminal control";
+      description = "Perl module for simple terminal control";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -24328,7 +24346,7 @@ with self; {
     outputs = [ "out" ];
 
     meta = {
-      description = "A Term::ReadLine driver based on Term::ReadLine::Perl, with special features for microblogging and the TTYtter client (q.v)";
+      description = "Term::ReadLine driver based on Term::ReadLine::Perl, with special features for microblogging and the TTYtter client (q.v)";
       homepage = "https://www.floodgap.com/software/ttytter";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -24360,7 +24378,7 @@ with self; {
     propagatedBuildInputs = [ TermReadKey TextAutoformat ];
     meta = {
       homepage = "https://metacpan.org/release/Term-Shell";
-      description = "A simple command-line shell framework";
+      description = "Simple command-line shell framework";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -24373,7 +24391,7 @@ with self; {
       hash = "sha256-MnnAHHYiczXu/wkDKkD0sCsoUVGzV2wEys0VvgWUK9s=";
     };
     meta = {
-      description = "A fully-featured shell-like command line environment";
+      description = "Fully-featured shell-like command line environment";
       license = with lib.licenses; [ mit ];
     };
   };
@@ -24454,7 +24472,7 @@ with self; {
       hash = "sha256-+VTgMQlB1FwPw+tKQPXToA1oEZ4nfTA6HmrxHe1vvZQ=";
     };
     meta = {
-      description = "A class to emulate a DEC VT102 terminal";
+      description = "Class to emulate a DEC VT102 terminal";
       license = with lib.licenses; [ artistic2 ];
     };
   };
@@ -24468,7 +24486,7 @@ with self; {
     };
     propagatedBuildInputs = [ TermVT102 ];
     meta = {
-      description = "A Term::VT102 that grows automatically to accommodate whatever you print to it";
+      description = "Term::VT102 that grows automatically to accommodate whatever you print to it";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -24503,7 +24521,7 @@ with self; {
 
     propagatedBuildInputs = [ DataUUID Importer LongJump ScopeGuard TermTable Test2PluginMemUsage Test2PluginUUID Test2Suite YAMLTiny gotofile ];
     meta = {
-      description = "A new and improved test harness with better Test2 integration";
+      description = "New and improved test harness with better Test2 integration";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       mainProgram = "yath";
       broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.Test2Harness.x86_64-darwin
@@ -24643,7 +24661,7 @@ with self; {
     };
     propagatedBuildInputs = [ LogTrace ];
     meta = {
-      description = "A simple set of building blocks for both unit and runtime testing";
+      description = "Simple set of building blocks for both unit and runtime testing";
       license = with lib.licenses; [ gpl2Only ];
     };
   };
@@ -24674,7 +24692,7 @@ with self; {
     propagatedBuildInputs = [ Spiffy ];
     buildInputs = [ AlgorithmDiff TextDiff ];
     meta = {
-      description = "A Data Driven Testing Framework";
+      description = "Data Driven Testing Framework";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -24880,7 +24898,7 @@ with self; {
     buildInputs = [ TestFatal TestNeeds ];
     propagatedBuildInputs = [ TestDeep TryTiny ];
     meta = {
-      description = "A Test::Deep plugin for validating type constraints";
+      description = "Test::Deep plugin for validating type constraints";
       homepage = "https://github.com/karenetheridge/Test-Deep-Type";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -25011,7 +25029,7 @@ with self; {
     propagatedBuildInputs = [ HTTPDaemon Plack ];
     buildInputs = [ LWP ModuleBuildTiny TestException TestSharedFork TestTCP TestUseAllModules ];
     meta = {
-      description = "A fake HTTP server";
+      description = "Fake HTTP server";
       homepage = "https://github.com/masaki/Test-Fake-HTTPD";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -25228,7 +25246,7 @@ with self; {
     propagatedBuildInputs = [ LWP SafeIsa namespaceclean ];
     buildInputs = [ PathTiny Plack TestDeep TestFatal TestNeeds TestRequiresInternet TestWarnings ];
     meta = {
-      description = "A LWP::UserAgent suitable for simulating and testing network calls";
+      description = "LWP::UserAgent suitable for simulating and testing network calls";
       homepage = "https://github.com/karenetheridge/Test-LWP-UserAgent";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -25876,7 +25894,7 @@ with self; {
     moreInputs = [ TestTrap ]; # Added because tests were failing without it
     doCheck=true;
     meta = {
-      description = "A Test::Run plugin that";
+      description = "Test::Run plugin that";
       homepage = "https://web-cpan.shlomifish.org/modules/Test-Run";
       license = with lib.licenses; [ mit ];
     };
@@ -26387,7 +26405,7 @@ with self; {
       hash = "sha256-qhuFhBz5/G/jODZrvIcKTpMEonZB5j+Sof2Wvujr9kw=";
     };
     meta = {
-      description = "An implementation of the Brew edit distance";
+      description = "Implementation of the Brew edit distance";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -27148,7 +27166,7 @@ with self; {
     };
     propagatedBuildInputs = [ DevelStackTrace Moo ];
     meta = {
-      description = "A role for classes that can be thrown";
+      description = "Role for classes that can be thrown";
       homepage = "https://github.com/rjbs/Throwable";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -27163,7 +27181,7 @@ with self; {
     };
     propagatedBuildInputs = [ ClassVirtual enum ];
     meta = {
-      description = "A Least-Recently Used cache";
+      description = "Least-Recently Used cache";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -27312,7 +27330,7 @@ with self; {
       hash = "sha256-KeniEzlRBGx48gXxs+jfYskOEU8OCPoGuBd2ag+AixI=";
     };
     meta = {
-      description = "Variable ties made much easier: much, much, much easier..";
+      description = "Variable ties made much easier: much, much, much easier.";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -27451,7 +27469,7 @@ with self; {
       hash = "sha256-0H+lgFKb6sapyCdMa/IgtMOq3mhd9lwWadUzOb9u8eg=";
     };
     meta = {
-      description = "A Perl module to deal with time periods";
+      description = "Perl module to deal with time periods";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       maintainers = [ maintainers.winpat ];
     };
@@ -27506,7 +27524,7 @@ with self; {
     buildInputs = [ Tk ];
     doCheck = false;            # Expects working X11.
     meta = {
-      description = "A toolbar widget for Perl/Tk";
+      description = "Toolbar widget for Perl/Tk";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -27520,7 +27538,7 @@ with self; {
     };
     propagatedBuildInputs = [ FileSlurpTiny ];
     meta = {
-      description = "An N-ary tree";
+      description = "N-ary tree";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -27534,7 +27552,7 @@ with self; {
     };
     buildInputs = [ TestException ];
     meta = {
-      description = "A simple tree object";
+      description = "Simple tree object";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -27549,7 +27567,7 @@ with self; {
     propagatedBuildInputs = [ TreeSimple ];
     buildInputs = [ TestException ];
     meta = {
-      description = "A factory object for dispensing Visitor objects";
+      description = "Factory object for dispensing Visitor objects";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -28213,7 +28231,7 @@ with self; {
       hash = "sha256-tOR0C41Mt4NZEnPGNr1oMEiS4o2J6Iq/knOx3hf1Uvc=";
     };
     meta = {
-      description = "A generalisation of wantarray";
+      description = "Generalisation of wantarray";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -28419,7 +28437,7 @@ with self; {
     };
     propagatedBuildInputs = [ XMLParser ];
     meta = {
-      description = "A perl module for parsing XML encoding maps";
+      description = "Perl module for parsing XML encoding maps";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -28587,7 +28605,7 @@ with self; {
     };
     propagatedBuildInputs = [ XMLLibXML ];
     meta = {
-      description = "An API for simple XML files";
+      description = "API for simple XML files";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -28629,7 +28647,7 @@ with self; {
       hash = "sha256-R+mVhZ+N0EE6o/ItNQxKYtplLoVCZ6oFhq5USuK65e8=";
     };
     meta = {
-      description = "A simple generic namespace processor";
+      description = "Simple generic namespace processor";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -28650,7 +28668,7 @@ with self; {
     makeMakerFlags = [ "EXPATLIBPATH=${pkgs.expat.out}/lib" "EXPATINCPATH=${pkgs.expat.dev}/include" ];
     propagatedBuildInputs = [ LWP ];
     meta = {
-      description = "A perl module for parsing XML documents";
+      description = "Perl module for parsing XML documents";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -28693,7 +28711,7 @@ with self; {
       hash = "sha256-0v57y70L66FET0pzNAHnuKpSgvrUJm1Cc13XRYKy4mQ=";
     };
     meta = {
-      description = "A re-usable XPath engine for DOM-like trees";
+      description = "Re-usable XPath engine for DOM-like trees";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -28841,7 +28859,7 @@ with self; {
     };
     propagatedBuildInputs = [ XMLSAXExpat ];
     meta = {
-      description = "An API for simple XML files";
+      description = "API for simple XML files";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -28888,7 +28906,7 @@ with self; {
     propagatedBuildInputs = [ XMLParser ];
     doCheck = false;  # requires lots of extra packages
     meta = {
-      description = "A Perl module for processing huge XML documents in tree mode";
+      description = "Perl module for processing huge XML documents in tree mode";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       mainProgram = "xml_grep";
     };
@@ -28944,7 +28962,7 @@ with self; {
       hash = "sha256-JQDEeGnPXKjGHdI8Z7rav2a48e+14nkgdlfBzmk+IR4=";
     };
     buildInputs = [ ExtUtilsCChecker Test2Suite ];
-    perlPreHook = lib.optionalString stdenv.isDarwin "export LD=$CC";
+    perlPreHook = lib.optionalString (stdenv.isi686 || stdenv.isDarwin) "export LD=$CC";
     meta = {
       description = "XS functions to assist in parsing keyword syntax";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
@@ -29045,10 +29063,10 @@ with self; {
 
   YAMLLibYAML = buildPerlPackage {
     pname = "YAML-LibYAML";
-    version = "0.88";
+    version = "0.89";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/I/IN/INGY/YAML-LibYAML-0.88.tar.gz";
-      hash = "sha256-qKJzjMzDMqj3VJxMJ/PgCQyasR7vD2yFZEUXc5gTVng=";
+      url = "mirror://cpan/authors/id/T/TI/TINITA/YAML-LibYAML-0.89.tar.gz";
+      hash = "sha256-FVq4NnU0XFCt0DMRrPndkVlVcH+Qmiq9ixfXeShZsuw=";
     };
     meta = {
       description = "Perl YAML Serialization using XS and libyaml";
@@ -29081,7 +29099,7 @@ with self; {
     propagatedBuildInputs = [ ClassMethodModifiers JSONValidator Mojolicious MojoliciousPluginI18N MojoliciousPluginOpenAPI RoleTiny ];
     meta = {
       homepage = "http://preaction.me/yancy/";
-      description = "The Best Web Framework Deserves the Best CMS";
+      description = "Best Web Framework Deserves the Best CMS";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
   };
@@ -29096,7 +29114,7 @@ with self; {
     buildInputs = [ NetHTTP TestFailWarnings TestFatal ];
     propagatedBuildInputs = [ HTTPHeadersActionPack HTTPMessage HashMultiValue IOHandleUtil ModuleRuntime Plack SubExporter TryTiny ];
     meta = {
-      description = "A Perl port of Webmachine";
+      description = "Perl port of Webmachine";
       homepage = "https://metacpan.org/release/Web-Machine";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
     };
@@ -29186,7 +29204,7 @@ with self; {
     propagatedBuildInputs = [ ClassAccessor Clone EmailValid FileShareDir FileSlurp IOSocketINET6 ListMoreUtils ModuleFind Moose MooseXSingleton NetIP NetIPXS Readonly TextCSV ZonemasterLDNS libintl-perl ];
 
     meta = {
-      description = "A tool to check the quality of a DNS zone";
+      description = "Tool to check the quality of a DNS zone";
       license = with lib.licenses; [ bsd3 ];
     };
   };