Bug 14939: Modularize OAI Server existing classes
[koha.git] / C4 / Installer / PerlDependencies.pm
1 package C4::Installer::PerlDependencies;
2
3 use warnings;
4 use strict;
5
6 our $PERL_DEPS = {
7     'Plack::Middleware::ReverseProxy' => {
8         'usage'    => 'Plack',
9         'required' => '1',
10         'min_ver'  => '0.14'
11     },
12     'XML::LibXSLT' => {
13         'usage'    => 'Core',
14         'required' => '1',
15         'min_ver'  => '1.59'
16     },
17     'Text::CSV::Encoded' => {
18         'usage'    => 'Core',
19         'required' => '1',
20         'min_ver'  => '0.09'
21     },
22     'Storable' => {
23         'usage'    => 'Core',
24         'required' => '1',
25         'min_ver'  => '2.20'
26     },
27     'PDF::API2' => {
28         'usage'    => 'Core',
29         'required' => '1',
30         'min_ver'  => '2'
31     },
32     'Text::CSV_XS' => {
33         'usage'    => 'Core',
34         'required' => '1',
35         'min_ver'  => '0.32'
36     },
37     'Schedule::At' => {
38         'usage'    => 'Core',
39         'required' => '1',
40         'min_ver'  => '1.06'
41     },
42     'MIME::Lite' => {
43         'usage'    => 'Core',
44         'required' => '1',
45         'min_ver'  => '3'
46     },
47     'GD' => {
48         'usage'    => 'Patron Images Feature',
49         'required' => '0',
50         'min_ver'  => '2.39'
51     },
52     'List::MoreUtils' => {
53         'usage'    => 'Core',
54         'required' => '1',
55         'min_ver'  => '0.21'
56     },
57     'DBI' => {
58         'usage'    => 'Core',
59         'required' => '1',
60         'min_ver'  => '1.53'
61     },
62     'DBIx::Class::Schema::Loader' => {
63         'usage'    => 'Core',
64         'required' => '1',
65         'min_ver'  => '0.07039'
66     },
67     'Net::Z3950::ZOOM' => {
68         'usage'    => 'Core',
69         'required' => '1',
70         'min_ver'  => '1.16'
71     },
72     'Biblio::EndnoteStyle' => {
73         'usage'    => 'Core',
74         'required' => '1',
75         'min_ver'  => '0.05'
76     },
77     'Date::Calc' => {
78         'usage'    => 'Core',
79         'required' => '1',
80         'min_ver'  => '5.4'
81     },
82     'Mail::Sendmail' => {
83         'usage'    => 'Core',
84         'required' => '1',
85         'min_ver'  => '0.79'
86     },
87     'DBD::mysql' => {
88         'usage'    => 'Core',
89         'required' => '1',
90         'min_ver'  => '4.004'
91     },
92     'XML::LibXML' => {
93         'usage'    => 'Core',
94         'required' => '1',
95         'min_ver'  => '1.59'
96     },
97     'Email::Date' => {
98         'usage'    => 'Core',
99         'required' => '1',
100         'min_ver'  => '1.103'
101     },
102     'Exception::Class' => {
103         'usage'    => 'Core',
104         'required' => '1.39',
105         'min_ver'  => '1.39'
106     },
107     'HTML::Scrubber' => {
108         'usage'    => 'Core',
109         'required' => '1',
110         'min_ver'  => '0.08'
111     },
112     'XML::Dumper' => {
113         'usage'    => 'Core',
114         'required' => '1',
115         'min_ver'  => '0.81'
116     },
117     'URI::Escape' => {
118         'usage'    => 'Core',
119         'required' => '1',
120         'min_ver'  => '3.31'
121     },
122     'Unicode::Normalize' => {
123         'usage'    => 'Core',
124         'required' => '1',
125         'min_ver'  => '0.32'
126     },
127     'Text::Wrap' => {
128         'usage'    => 'Core',
129         'required' => '1',
130         'min_ver'  => '2005.082401'
131     },
132     'Test' => {
133         'usage'    => 'Core',
134         'required' => '1',
135         'min_ver'  => '1.25'
136     },
137     'Locale::PO' => {
138         'usage'    => 'Core',
139         'required' => '1',
140         'min_ver'  => '0.17'
141     },
142     'LWP::Simple' => {
143         'usage'    => 'Core',
144         'required' => '1',
145         'min_ver'  => '1.41'
146     },
147     'DBD::SQLite2' => {
148         'usage'    => 'Offline Circulation Feature',
149         'required' => '0',
150         'min_ver'  => '0.33'
151     },
152     'SMS::Send' => {
153         'usage'    => 'SMS Messaging Feature',
154         'required' => '0',
155         'min_ver'  => '0.05'
156     },
157     'XML::SAX::ParserFactory' => {
158         'usage'    => 'Core',
159         'required' => '1',
160         'min_ver'  => '1.01'
161     },
162     'Test::Harness' => {
163         'usage'    => 'Core',
164         'required' => '1',
165         'min_ver'  => '2.56'
166     },
167     'PDF::API2::Util' => {
168         'usage'    => 'Core',
169         'required' => '1',
170         'min_ver'  => '2'
171     },
172     'Class::Accessor' => {
173         'usage'    => 'Core',
174         'required' => '1',
175         'min_ver'  => '0.3'
176     },
177     'HTTP::OAI' => {
178         'usage'    => 'Core',
179         'required' => '1',
180         'min_ver'  => '3.2'
181     },
182     'LWP::UserAgent' => {
183         'usage'    => 'Core',
184         'required' => '1',
185         'min_ver'  => '2.033'
186     },
187     'MIME::Base64' => {
188         'usage'    => 'Core',
189         'required' => '1',
190         'min_ver'  => '3.07'
191     },
192     'Algorithm::CheckDigits' => {
193         'usage'    => 'Core',
194         'required' => '1',
195         'min_ver'  => '0.5'
196     },
197     'Net::LDAP' => {
198         'usage'    => 'LDAP Interface Feature',
199         'required' => '0',
200         'min_ver'  => '0.33'
201     },
202     'PDF::Reuse' => {
203         'usage'    => 'Core',
204         'required' => '1',
205         'min_ver'  => '0.36'
206     },
207     'Text::PDF' => {
208         'usage'    => 'Core',
209         'required' => '1',
210         'min_ver'  => '0.29',
211         # We don't use this directly, but it's not a required dependency for
212         # PDF::Reuse however we need it via that or tests fail.
213     },
214     'Font::TTF' => {
215         'usage'    => 'Core',
216         'required' => '1',
217         'min_ver'  => '0.45',
218         # Also needed for our use of PDF::Reuse
219     },
220     'DateTime' => {
221         'usage'    => 'Core',
222         'required' => '1',
223         'min_ver'  => '0.58'
224     },
225     'DateTime::TimeZone' => {
226         'usage'    => 'Core',
227         'required' => '1',
228         'min_ver'  => '1.20'
229     },
230     'DateTime::Format::MySQL' => {
231         'usage'    => 'Core',
232         'required' => '1',
233         'min_ver'  => '0.04'
234     },
235     'DateTime::Set' => {
236         'usage'    => 'Core',
237         'required' => '1',
238         'min_ver'  => '0.28'
239     },
240     'DateTime::Event::ICal' => {
241         'usage'    => 'Core',
242         'required' => '1',
243         'min_ver'  => '0.08'
244     },
245     'Graphics::Magick' => {
246         'usage'    => 'Patron Card Creator Feature',
247         'required' => '0',
248         'min_ver'  => '1.3.05'
249     },
250     'MARC::Charset' => {
251         'usage'    => 'Core',
252         'required' => '1',
253         'min_ver'  => '0.98'
254     },
255     'Memoize::Memcached' => {
256         'usage'    => 'Memcached Feature (Experimental)',
257         'required' => '0',
258         'min_ver'  => '0.03'
259     },
260     'Cache::Memcached::Fast' => {
261         'usage'    => 'Caching',
262         'required' => '0',
263         'min_ver'  => '0.17'
264     },
265     'Cache::FastMmap' => {
266         'usage'    => 'Caching',
267         'required' => '0',
268         'min_ver'  => '1.34'
269     },
270     'Cache::Memory' => {
271         'usage'    => 'Caching',
272         'required' => '0',
273         'min_ver'  => '2.04'
274     },
275     'Net::LDAP::Filter' => {
276         'usage'    => 'LDAP Interface Feature',
277         'required' => '0',
278         'min_ver'  => '0.14'
279     },
280     'Text::CSV' => {
281         'usage'    => 'Core',
282         'required' => '1',
283         'min_ver'  => '0.01'
284     },
285     'PDF::Table' => {
286         'usage'    => 'Core',
287         'required' => '1',
288         'min_ver'  => '0.9.3'
289     },
290     'CGI' => {
291         'usage'    => 'Core',
292         'required' => '1',
293         'min_ver'  => '3.15'
294     },
295     'Class::Factory::Util' => {
296         'usage'    => 'Core',
297         'required' => '1',
298         'min_ver'  => '1.6'
299     },
300     'List::Util' => {
301         'usage'    => 'Core',
302         'required' => '1',
303         'min_ver'  => '1.18'
304     },
305     'Lingua::Stem::Snowball' => {
306         'usage'    => 'Core',
307         'required' => '1',
308         'min_ver'  => '0.952'
309     },
310     'Time::localtime' => {
311         'usage'    => 'Core',
312         'required' => '1',
313         'min_ver'  => '1.02'
314     },
315     'Digest::SHA' => {
316         'usage'    => 'Core',
317         'required' => '1',
318         'min_ver'  => '5.43'
319     },
320     'MARC::Crosswalk::DublinCore' => {
321         'usage'    => 'Core',
322         'required' => '1',
323         'min_ver'  => '0.02'
324     },
325     'CGI::Session::Serialize::yaml' => {
326         'usage'    => 'Core',
327         'required' => '1',
328         'min_ver'  => '4.2'
329     },
330     'CGI::Carp' => {
331         'usage'    => 'Core',
332         'required' => '1',
333         'min_ver'  => '1.29'
334     },
335     'Getopt::Long' => {
336         'usage'    => 'Core',
337         'required' => '1',
338         'min_ver'  => '2.35'
339     },
340     'Term::ANSIColor' => {
341         'usage'    => 'Core',
342         'required' => '1',
343         'min_ver'  => '1.1'
344     },
345     'Getopt::Std' => {
346         'usage'    => 'Core',
347         'required' => '1',
348         'min_ver'  => '1.05'
349     },
350     'Data::Dumper' => {
351         'usage'    => 'Core',
352         'required' => '1',
353         'min_ver'  => '2.121'
354     },
355     'Lingua::Stem' => {
356         'usage'    => 'Core',
357         'required' => '1',
358         'min_ver'  => '0.82'
359     },
360     'MIME::QuotedPrint' => {
361         'usage'    => 'Core',
362         'required' => '1',
363         'min_ver'  => '3.07'
364     },
365     'IPC::Cmd' => {
366         'usage'    => 'Core',
367         'required' => '1',
368         'min_ver'  => '0.46'
369     },
370     'HTTP::Cookies' => {
371         'usage'    => 'Core',
372         'required' => '1',
373         'min_ver'  => '1.39'
374     },
375     'HTTP::Request::Common' => {
376         'usage'    => 'Core',
377         'required' => '1',
378         'min_ver'  => '1.26'
379     },
380     'PDF::Reuse::Barcode' => {
381         'usage'    => 'Core',
382         'required' => '1',
383         'min_ver'  => '0.05'
384     },
385     'Test::More' => {
386         'usage'    => 'Core',
387         'required' => '1',
388         'min_ver'  => '0.8'
389     },
390     'GD::Barcode::UPCE' => {
391         'usage'    => 'Core',
392         'required' => '1',
393         'min_ver'  => '1.1'
394     },
395     'Text::Iconv' => {
396         'usage'    => 'Core',
397         'required' => '1',
398         'min_ver'  => '1.7'
399     },
400     'File::Temp' => {
401         'usage'    => 'Core',
402         'required' => '1',
403         'min_ver'  => '0.16'
404     },
405     'Date::Manip' => {
406         'usage'    => 'Core',
407         'required' => '1',
408         'min_ver'  => '5.44'
409     },
410     'Locale::Language' => {
411         'usage'    => 'Core',
412         'required' => '1',
413         'min_ver'  => '2.07'
414     },
415     'PDF::API2::Simple' => {
416         'usage'    => 'Core',
417         'required' => '1',
418         'min_ver'  => '1'
419     },
420     'XML::RSS' => {
421         'usage'    => 'Core',
422         'required' => '1',
423         'min_ver'  => '1.31'
424     },
425     'XML::Simple' => {
426         'usage'    => 'Core',
427         'required' => '1',
428         'min_ver'  => '2.14'
429     },
430     'PDF::API2::Page' => {
431         'usage'    => 'Core',
432         'required' => '1',
433         'min_ver'  => '2'
434     },
435     'CGI::Session' => {
436         'usage'    => 'Core',
437         'required' => '1',
438         'min_ver'  => '4.2'
439     },
440     'CGI::Session::Driver::memcached' => {
441         'usage'    => 'Memcached Feature (Experimental)',
442         'required' => '0',
443         'min_ver'  => '0.04',
444     },
445     'POSIX' => {
446         'usage'    => 'Core',
447         'required' => '1',
448         'min_ver'  => '1.09'
449     },
450     'Digest::MD5' => {
451         'usage'    => 'Core',
452         'required' => '1',
453         'min_ver'  => '2.36'
454     },
455     'Authen::CAS::Client' => {
456         'usage'    => 'Core',
457         'required' => '1',
458         'min_ver'  => '0.05'
459     },
460     'Data::ICal' => {
461         'usage'    => 'Core',
462         'required' => '1',
463         'min_ver'  => '0.13'
464     },
465     'MARC::Record' => {
466         'usage'    => 'Core',
467         'required' => '1',
468         'min_ver'  => '2.0.6'
469     },
470     'Locale::Currency::Format' => {
471         'usage'    => 'Core',
472         'required' => '1',
473         'min_ver'  => '1.28'
474     },
475     'Number::Format' => {
476         'usage'    => 'Core',
477         'required' => '1',
478         'min_ver'  => '1.52'
479     },
480     'YAML::Syck' => {
481         'usage'    => 'Core',
482         'required' => '1',
483         'min_ver'  => '0.71'
484     },
485     'Time::HiRes' => {
486         'usage'    => 'Core',
487         'required' => '1',
488         'min_ver'  => '1.86'
489     },
490     'MARC::File::XML' => {
491         'usage'    => 'Core',
492         'required' => '1',
493         'min_ver'  => '1.0.1'
494     },
495     'XML::SAX::Writer' => {
496         'usage'    => 'Core',
497         'required' => '1',
498         'min_ver'  => '0.44'
499     },
500     'JSON' => {
501         'usage'    => 'Core',
502         'required' => '1',
503         'min_ver'  => '2.07'
504     },
505     'YAML' => {
506         'usage'    => 'Core',
507         'required' => '1',
508         'min_ver'  => '0.71'
509     },
510     'UNIVERSAL::require' => {
511         'usage'    => 'SipServer',
512         'required' => '0',
513         'min_ver'  => '0.13',
514     },
515     'Net::Server' => {
516         'usage'    => 'SipServer',
517         'required' => '0',
518         'min_ver'  => '0.97',
519     },
520     'Business::ISBN' => {
521         'usage'    => 'Core',
522         'required' => '1',
523         'min_ver'  => '2.05',
524     },
525     'Template' => {
526         'usage'    => 'Core',
527         'required' => '1',
528         'min_ver'  => '2.22',
529       },
530     'Template::Plugin::Stash' => {
531         'usage'    => 'Debugging',
532         'required' => '0',
533         'min_ver'  => '1.006',
534       },
535     'Gravatar::URL' => {
536         'usage'    => 'Photos in OPAC reviews',
537         'required' => '0',
538         'min_ver'  => '1.03',
539     },
540     'Modern::Perl' => {
541         'usage'    => 'Core',
542         'required' => '1',
543         'min_ver'  => '1.03',
544     },
545     'DateTime::Format::ICal' => {
546         'usage'    => 'Core',
547         'required' => '1',
548         'min_ver'  => '0.09',
549     },
550     'Template::Plugin::HtmlToText' => {
551         'usage'    => 'Core',
552         'required' => '1',
553         'min_ver'  => '0.03',
554     },
555     'Template::Plugin::JSON::Escape' => {
556         'usage'    => 'Core',
557         'required' => '1',
558         'min_ver'  => '0.02',
559     },
560     'DBD::Mock' => {
561         'usage'    => 'Core',
562         'required' => '1',
563         'min_ver'  => '1.39'
564     },
565     'Test::MockObject' => {
566         'usage'    => 'Core',
567         'required' => '0',
568         'min_ver'  => '1.09',
569     },
570     'Test::MockModule' => {
571         'usage'    => 'Core',
572         'required' => '1',
573         'min_ver'  => '0.05',
574     },
575     'Test::Warn' => {
576         'usage'    => 'Core',
577         'required' => '0',
578         'min_ver'  => '0.21',
579     },
580     'Test::Strict' => {
581         'usage'    => 'Core',
582         'required' => '0',
583         'min_ver'  => '0.14',
584     },
585     'Test::Deep' => {
586         'usage'    => 'Core',
587         'required' => '0',
588         'min_ver'  => '0.106',
589     },
590     'Test::YAML::Valid' => {
591         'usage'    => 'Core',
592         'required' => '0',
593         'min_ver'  => '0.04',
594     },
595     'Text::Unaccent' => {
596         'usage'    => 'Core',
597         'required' => '1',
598         'min_ver'  => '1.08',
599     },
600     'HTML::FormatText' => {
601         'usage'    => 'Core',
602         'required' => '1',
603         'min_ver'  => '1.23',
604     },
605     'AnyEvent' => {
606         'usage'    => 'Command line scripts',
607         'required' => '0',
608         'min_ver'  => '5.0',
609     },
610     'AnyEvent::HTTP' => {
611         'usage'    => 'Command line scripts',
612         'required' => '0',
613         'min_ver'  => '2.13',
614     },
615     'Moo' => {
616         'usage'    => 'Core',
617         'required' => '0',
618         'min_ver'  => '1',
619     },
620     'String::Random' => {
621         'usage'    => 'OpacSelfRegistration',
622         'required' => '1',
623         'min_ver'  => '0.22',
624     },
625     'File::Temp' => {
626         'usage'    => 'Plugins',
627         'required' => '0',
628         'min_ver'  => '0.22',
629     },
630     'File::Copy' => {
631         'usage'    => 'Plugins',
632         'required' => '0',
633         'min_ver'  => '2.08',
634     },
635     'File::Path' => {
636         'usage'    => 'Plugins',
637         'required' => '0',
638         'min_ver'  => '2.07',
639     },
640     'Archive::Extract' => {
641         'usage'    => 'Plugins',
642         'required' => '0',
643         'min_ver'  => '0.60',
644     },
645     'Archive::Zip' => {
646         'usage'    => 'Plugins',
647         'required' => '0',
648         'min_ver'  => '1.30',
649     },
650     'Module::Load::Conditional' => {
651         'usage'    => 'Plugins',
652         'required' => '0',
653         'min_ver'  => '0.38',
654     },
655     'Module::Bundled::Files' => {
656         'usage'    => 'Plugins',
657         'required' => '0',
658         'min_ver'  => '0.03',
659     },
660     'Module::Pluggable' => {
661         'usage'    => 'Plugins',
662         'required' => '0',
663         'min_ver'  => '3.9',
664     },
665     'File::Slurp' => {
666         'usage'    => 'Command line scripts',
667         'required' => '0',
668         'min_ver'  => '9999.13',
669     },
670     'Test::WWW::Mechanize' => {
671         'usage'    => 'Testing suite',
672         'required' => '0',
673         'min_ver'  => '1.44',
674     },
675     'Library::CallNumber::LC' => {
676         'usage'    => 'Core',
677         'required' => '1',
678         'min_ver'  => '0.22',
679     },
680     'Crypt::Eksblowfish::Bcrypt' => {
681         'usage'    => 'Password storage',
682         'required' => '1',
683         'min_ver'  => '0.008',
684     },
685     'HTTPD::Bench::ApacheBench' => {
686         'usage'    => 'Load testing',
687         'required' => '0',
688         'min_ver'  => '0.73',
689     },
690     'Email::Valid' => {
691         'usage'    => 'Core',
692         'required' => '1',
693         'min_ver'  => '0.190',
694     },
695     'OpenOffice::OODoc' => {
696         usage      => 'Export',
697         required   => 1,
698         min_ver    => '2.125',
699     },
700     'Locale::Maketext' => {
701         'usage'    => 'Core',
702         'required' => '1',
703         'min_ver'  => '1.19',
704     },
705     'Locale::Maketext::Lexicon' => {
706         'usage'    => 'Core',
707         'required' => '1',
708         'min_ver'  => '0.91',
709     },
710     'LWP::Protocol::https' => {
711         'usage'    => 'OverDrive integration',
712         'required' => '0',
713         'min_ver'  => '5.836',
714     },
715     'Test::DBIx::Class' => {
716         'usage'    => 'Testing modules utilising DBIx::Class',
717         'required' => '0',
718         'min_ver'  => '0.42',
719     },
720     'Text::Bidi'   => {
721         'usage'    => 'Label batch PDF',
722         'required' => '1',
723         'min_ver'  => '0.03',
724     },
725     'SOAP::Lite' => {
726         'usage'    => 'Norwegian national library card',
727         'required' => '0',
728         'min_ver'  => '0.712',
729     },
730     'Crypt::GCrypt' => {
731         'usage'    => 'Norwegian national library card',
732         'required' => '0',
733         'min_ver'  => '1.24',
734     },
735     'Convert::BaseN' => {
736         'usage'    => 'Norwegian national library card',
737         'required' => '0',
738         'min_ver'  => '0.01',
739     },
740     'Digest::SHA' => {
741         'usage'    => 'Norwegian national library card',
742         'required' => '0',
743         'min_ver'  => '5.61',
744     },
745     'PDF::FromHTML' => {
746         'usage'    => 'Discharge generation',
747         'required' => '0',
748         'min_ver'  => '0.31',
749     },
750     'Devel::Cover' => {
751         'usage'    => 'Test code coverage',
752         'required' => '0',
753         'min_ver'  => '0.89',
754     },
755     'Log::Log4perl' => {
756         'usage'    => 'Core',
757         'required' => '1',
758         'min_ver'  => '1.29',
759     },
760     'XML::Writer' => {
761         'usage'    => 'Command line scripts',
762         'required' => '0',
763         'min_ver'  => '0.614',
764     },
765     'UUID' => {
766         'usage'    => 'Professional cataloging interface',
767         'required' => '1',
768         'min_ver'  => '0.05',
769     },
770     'Mojolicious' => {
771         'usage'    => 'REST API',
772         'required' => '0',
773         'min_ver'  => '5.54',
774     },
775     'Swagger2' => {
776         'usage'    => 'REST API',
777         'required' => '0',
778         'min_ver'  => '0.28',
779     },
780     'UNIVERSAL::can' => {
781         'usage'    => 'SIP',
782         'required' => '1',
783         'min_ver'  => '1.10',
784     },
785     'URL::Encode' => {
786         'usage'    => 'PayPal',
787         'required' => '0',
788         'min_ver'  => '0.03',
789     },
790     'Capture::Tiny' => {
791         'usage'    => 'Core',
792         'required' => '0',
793         'min_ver'  => '0.18',
794     },
795 };
796
797 1;
798
799 __END__
800
801 =head1 NAME
802
803 C4::Installer::PerlDependencies
804
805 =head1 ABSTRACT
806
807 A module for cataloging Koha Perl dependencies.
808
809 =head1 SYNOPSIS
810
811 This module's sole purpose for existence is to provide a single location to catalog all Koha Perl dependencies. New dependencies should be added to the
812 end of the outer hash and follow the key/value pattern used in the other dependencies.
813
814 =head2 Debian
815
816 If you change the list of dependencies, and you use Debian, please also
817 run the debian/update-control script and commit the modified version of
818 debian/control into git as well. If you're not running Debian, don't
819 worry about it.
820
821 =head1 AUTHOR
822
823 Chris Nighswonger <cnighswonger AT foundations DOT edu>
824
825 =head1 COPYRIGHT
826
827 Copyright 2010 Foundations Bible College.
828
829 =head1 LICENSE
830
831 This file is part of Koha.
832
833 Koha is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software
834 Foundation; either version 2 of the License, or (at your option) any later version.
835
836 You should have received a copy of the GNU General Public License along with Koha; if not, write to the Free Software Foundation, Inc., 51 Franklin Street,
837 Fifth Floor, Boston, MA 02110-1301 USA.
838
839 =head1 DISCLAIMER OF WARRANTY
840
841 Koha is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
842 A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
843
844 =cut