File Coverage

blib/lib/CPAN/Plugin/Sysdeps/Mapping.pm
Criterion Covered Total %
statement 49 49 100.0
branch 1 2 50.0
condition n/a
subroutine 17 17 100.0
pod 1 1 100.0
total 68 69 98.5


line stmt bran cond sub pod time code
1             package CPAN::Plugin::Sysdeps::Mapping;
2              
3 6     6   54 use strict;
  6         12  
  6         209  
4 6     6   35 use warnings;
  6         23  
  6         349  
5              
6             our $VERSION = '0.71';
7              
8             # shortcuts
9             # os and distros
10 6     6   74 use constant os_freebsd => (os => 'freebsd');
  6         14  
  6         598  
11 6     6   38 use constant os_dragonfly => (os => 'dragonfly');
  6         32  
  6         391  
12 6     6   38 use constant os_openbsd => (os => 'openbsd');
  6         10  
  6         332  
13 6     6   43 use constant os_windows => (os => 'MSWin32');
  6         32  
  6         368  
14 6     6   48 use constant os_darwin => (os => 'darwin'); # really means installer=homebrew
  6         10  
  6         303  
15 6     6   47 use constant like_debian => (linuxdistro => '~debian');
  6         11  
  6         435  
16 6     6   48 use constant before_ubuntu_trusty => (linuxdistrocodename => [qw(squeeze precise wheezy)]);
  6         13  
  6         474  
17 6     6   43 use constant before_ubuntu_xenial => (linuxdistrocodename => [qw(squeeze precise wheezy trusty jessie)]);
  6         10  
  6         503  
18 6     6   40 use constant before_debian_stretch => (linuxdistrocodename => [qw(squeeze precise wheezy trusty jessie xenial)]);
  6         38  
  6         471  
19 6     6   38 use constant before_ubuntu_bionic => (linuxdistrocodename => [qw(squeeze precise wheezy trusty jessie xenial stretch)]);
  6         14  
  6         413  
20 6     6   47 use constant before_debian_buster => (linuxdistrocodename => [qw(squeeze precise wheezy trusty jessie xenial stretch bionic)]);
  6         24  
  6         507  
21 6     6   40 use constant before_ubuntu_focal => (linuxdistrocodename => [qw(squeeze precise wheezy trusty jessie xenial stretch bionic buster)]);
  6         11  
  6         393  
22 6     6   36 use constant like_fedora => (linuxdistro => '~fedora');
  6         11  
  6         401  
23             # package shortcuts
24 6     6   42 use constant freebsd_jpeg => 'jpeg | jpeg-turbo';
  6         11  
  6         54648  
25              
26             sub mapping {
27             (
28             [cpanmod => 'AI::LibNeural',
29             [os_freebsd,
30             [package => 'libneural']], # but marked as broken (unfetchable)
31             # not available for debian or centos
32             ],
33              
34             [cpanmod => 'AI::PBDD',
35             [os_freebsd,
36             # but does not work, kernel.h is also required
37             [package => 'bddsolve']],
38             [like_debian,
39             # but does not work, kernel.h is also required
40             [package => 'libbdd-dev']]],
41              
42             [cpanmod => ['Algorithm::ConstructDFA::XS', 'Algorithm::LibLinear'],
43             # FreeBSD has c++ in the base system
44             [like_debian,
45             [package => 'g++']],
46             ],
47              
48             ## Does not help, tests still fail (Alien-Electron-0.102):
49             #[cpanmod => 'Alien::Electron',
50             # [like_debian,
51             # [package => 'libnotify4']]],
52              
53             [cpanmod => 'Alien::ffmpeg',
54             [os_freebsd,
55             [package => 'yasm']],
56             [like_debian,
57             [package => 'yasm']],
58             [like_fedora,
59             [package => 'yasm']],
60             [os_darwin,
61             [package => 'yasm']],
62             ],
63              
64             [cpanmod => 'Alien::FFTW3',
65             [os_freebsd,
66             [package => ['fftw3', 'pkgconf']]],
67             [like_debian,
68             [package => ['libfftw3-dev', 'pkg-config | pkgconf']]],
69             ],
70              
71             [cpanmod => 'Alien::HDF4',
72             [os_freebsd,
73             [package => 'hdf']],
74             [like_debian,
75             # "yasm/nasm not found or too old. Use --disable-yasm for a crippled build."
76             [package => ['libhdf4-dev', 'yasm']]],
77             [like_fedora,
78             [package => 'hdf-devel']],
79             [os_darwin,
80             [package => 'hdf4']], # but does not work, module expects static libdf.a which is not provided
81             ],
82              
83             [cpanmod => 'Alien::IUP',
84             [os_freebsd,
85             [package => [qw(gtk2 cairo freeglut)]]],
86             [like_debian,
87             [package => [qw(libgtk-3-dev libcairo2-dev libx11-dev libglu-dev freeglut3-dev)]]],
88             [like_fedora,
89             [package => [qw(gtk2-devel cairo-devel libX11-devel libGLU-devel freeglut-devel)]]],
90             ],
91              
92             [cpanmod => 'Alien::LibJIT',
93             [like_debian,
94             [package => [qw(autoconf libtool flex bison texinfo)]]], # but no success building it
95             ],
96              
97             [cpanmod => 'Alien::libtickit',
98             [like_debian,
99             [before_ubuntu_bionic,
100             [package => []]],
101             [package => 'libtickit-dev']],
102             ],
103              
104             [cpanmod => 'Alien::LibUSBx',
105             # XXX what about freebsd?
106             [like_debian,
107             [package => 'libudev-dev']]],
108              
109             [cpanmod => 'Alien::LibYAML',
110             [like_debian,
111             [package => 'autoconf']],
112             # XXX what about freebsd?
113             ],
114              
115             [cpanmod => 'Alien::libtermkey',
116             [os_freebsd,
117             [osvers => {'>=', 10}, # proxy check for clang system
118             [package => ['libtool', 'gmake', 'pkgconf', 'libtermkey']], # see also RT #91873
119             ],
120             [package => ['libtool', 'gmake', 'pkgconf']]],
121             [like_debian,
122             [linuxdistrocodename => ['squeeze','wheezy'],
123             [package => ['libtool', 'libncurses5-dev']]],
124             [package => ['libtool-bin', 'libncurses5-dev']]],
125             [like_fedora,
126             [package => ['libtool', 'ncurses-devel']]],
127             ],
128              
129             [cpanmod => 'Alien::NSS', # cannot install external package, see https://github.com/0xxon/alien-nss/issues/5#issuecomment-488220899
130             [os_freebsd,
131             [package => 'nss']],
132             [like_debian,
133             [before_ubuntu_trusty, # at least not available in debian/wheezy
134             [package => []]],
135             [package => 'libnss3-dev']],
136             [like_fedora,
137             [package => 'nss-devel']],
138             ],
139              
140             [cpanmod => 'Alien::ProtoBuf',
141             # but why? shouldn't an alien module care about its own external library?
142             [os_freebsd,
143             [package => 'protobuf']],
144             [like_debian,
145             [package => 'libprotobuf-dev']],
146             [like_fedora,
147             [package => 'protobuf-devel']],
148             ],
149              
150             [cpanmod => 'Alien::raylib',
151             [os_freebsd,
152             [package => [qw(alsa-lib)]]], # XXX maybe more?
153             [like_debian,
154             [package => [qw(libasound2-dev libxcursor-dev libxinerama-dev mesa-common-dev libx11-dev libxrandr-dev libxi-dev libgl1-mesa-dev libglu1-mesa-dev)]]],
155             [like_fedora,
156             [package => 'libXrandr-devel']], # XXX maybe more?
157             ],
158              
159             [cpanmod => 'Alien::RRDtool',
160             [os_freebsd,
161             [package => ['pkgconf', 'glib', 'cairo', 'pango', 'libxml2']]],
162             [like_debian,
163             [package => 'pkg-config | pkgconf']]], # XXX pkg-config probably needed by much more CPAN distributions...
164              
165             [cpanmod => 'Alien::sispmctl',
166             [like_debian,
167             [package => 'libusb-dev']]],
168              
169             [cpanmod => 'Alien::SVN',
170             [os_freebsd,
171             # does not work, configure does not recognize sqlite
172             [package => ['apr', 'sqlite3']]],
173             [like_debian,
174             [package => ['libapr1-dev', 'libaprutil1-dev', 'libsqlite3-dev', 'zlib1g-dev']]],
175             [like_fedora,
176             [package => [qw(apr-devel apr-util-devel sqlite-devel)]]],
177             ],
178              
179             [cpanmod => 'Alien::unibilium',
180             # XXX what about freebsd?
181             [os_freebsd,
182             [package => ['gmake', 'libtool', 'pkgconf']]],
183             [like_debian,
184             [linuxdistrocodename => ['squeeze','wheezy'],
185             [package => 'libtool']],
186             [package => 'libtool-bin']],
187             ],
188              
189             [cpanmod => 'Alien::Uninum', # probably!
190             [os_freebsd,
191             # XXX does not work, configure does not accept -lgmp
192             [package => 'gmp']],
193             # XXX what about debian?
194             ],
195              
196             [cpanmod => 'Alien::uPB',
197             # freebsd and darwin have /usr/bin/unzip in the base system
198             [os => 'linux',
199             [package => 'unzip']],
200             ],
201              
202             [cpanmod => 'Alien::wxWidgets',
203             [os_freebsd,
204             # XXX what about freebsd?
205             [package => ['gtk2', 'pkgconf']]],
206             [like_debian,
207             [package => 'libgtk2.0-dev']]],
208              
209             [cpanmod => 'App::Stacktrace',
210             # does not work with freebsd anyway
211             [like_debian,
212             [package => 'gdb']],
213             [like_fedora,
214             [package => 'gdb']],
215             ],
216              
217             [cpanmod => 'Archive::Peek::Libarchive',
218             [os_freebsd,
219             [package => 'libarchive']],
220             [like_debian,
221             [package => 'libarchive-dev']],
222             [like_fedora,
223             [package => 'libarchive-devel']],
224             ],
225              
226             [cpanmod => 'Archive::Rar',
227             [os_freebsd,
228             [package => 'rar'], # restricted, no binary package available, must build from ports
229             ],
230             [like_debian,
231             [package => 'rar'], # available in jessie/non-free
232             ]],
233              
234             [cpanmod => 'Archive::Raw',
235             [os_freebsd,
236             [package => []]], # FreeBSD has archive.h in the base system, and works for freebsd 11 .. 13
237             [like_debian,
238             [package => 'libarchive-dev']], # but seems to work only with bullseye, not with wheezy .. buster
239             [like_fedora,
240             [package => 'libarchive-devel']], # but seems to work only with fedora28, not with CentOS6+7+8
241             ],
242            
243             [cpanmod => 'Archive::SevenZip',
244             [os_freebsd,
245             [package => 'p7zip']],
246             [os_dragonfly,
247             [package => 'p7zip']],
248             [like_debian,
249             [package => 'p7zip-full']]],
250              
251             [cpanmod => 'Astro::FITS::CFITSIO',
252             [os_freebsd,
253             [package => 'cfitsio']],
254             [like_debian,
255             [linuxdistrocodename => [qw(squeeze wheezy jessie precise xenial)],
256             [package => 'libcfitsio3-dev']],
257             [package => 'libcfitsio-dev']],
258             [like_fedora,
259             [package => 'cfitsio-devel']], # but test fails on CentOS7 (undefined symbol: ffgsky)
260             [os_darwin,
261             [package => 'homebrew/science/cfitsio']],
262             ],
263              
264             [cpanmod => 'Astro::WCS::LibWCS',
265             ## not checked:
266             #[os_freebsd,
267             # [package => 'astrometry']],
268             [like_debian,
269             [package => 'libwcstools-dev']]],
270              
271             [cpanmod => 'Audio::Ao',
272             [os_freebsd,
273             [package => 'libao']],
274             [like_debian,
275             [package => 'libao-dev']],
276             [like_fedora,
277             [package => 'libao-devel']],
278             ],
279              
280             [cpanmod => 'Audio::Audiere',
281             [os_freebsd,
282             [package => 'audiere']], # but compilation failures
283             # no package for Debian & CentOS7
284             ],
285              
286             [cpanmod => 'Audio::CD',
287             [os_freebsd,
288             [package => 'libcdaudio']],
289             [os_dragonfly,
290             [package => 'libcdaudio']],
291             [like_debian,
292             [package => 'libcdaudio-dev']],
293             [like_fedora,
294             [package => 'libcdaudio-devel']],
295             ],
296              
297             [cpanmod => 'Audio::Extract::PCM',
298             # but does not work with freebsd, see https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=205732
299             [package => 'sox']],
300              
301             [cpanmod => 'Audio::FLAC::Decoder',
302             [os_freebsd,
303             [package => 'flac']],
304             [like_debian,
305             [package => 'libflac-dev']],
306             [like_fedora,
307             [package => 'flac-devel']],
308             ],
309              
310             [cpanmod => 'Audio::GSM',
311             [os_freebsd,
312             [package => 'gsm']],
313             [os_dragonfly,
314             [package => 'gsm']],
315             [like_debian,
316             [package => 'libgsm1-dev']],
317             [like_fedora,
318             [package => 'gsm-devel']],
319             ],
320              
321             [cpanmod => 'Audio::LibSampleRate',
322             [os_freebsd,
323             [package => 'libsamplerate']],
324             [like_debian,
325             [package => 'libsamplerate0-dev']]],
326              
327             [cpanmod => 'Audio::MPEG',
328             [os_freebsd,
329             [package => 'lame']], # restricted, no binary package available, must build from ports
330             [like_debian,
331             [package => 'libmp3lame-dev']], # but compilation fails
332             ],
333              
334             [cpanmod => 'Audio::Ofa',
335             ## from freebsd's MOVED: "2017-03-01|Has expired: MusicDNS service has been discontinued"
336             #[os_freebsd,
337             # [package => 'libofa']],
338             [like_debian,
339             [package => 'libofa0-dev']],
340             [like_fedora,
341             [linuxdistro => 'centos',
342             linuxdistroversion => qr{^[68]\.},
343             package => []], # N/A for centos6+8
344             [package => 'libofa-devel']],
345             ],
346              
347             [cpanmod => 'Audio::Opusfile',
348             [os_freebsd,
349             [package => 'opusfile']],
350             [like_debian,
351             [package => 'libopusfile-dev']]],
352              
353             [cpanmod => 'Audio::PortAudio',
354             [os_freebsd,
355             [package => ['portaudio', 'pkgconf']]],
356             [like_debian,
357             # conflicts with libjack0
358             [package => 'portaudio19-dev']],
359             [like_fedora,
360             [package => 'portaudio-devel']],
361             ],
362              
363             [cpanmod => 'Audio::SndFile',
364             [os_freebsd,
365             [package => ['libsndfile', 'pkgconf']]],
366             [like_debian,
367             [package => 'libsndfile1-dev']],
368             [like_fedora,
369             [package => 'libsndfile-devel']],
370             ],
371              
372             [cpanmod => 'Audio::TagLib',
373             [os_freebsd,
374             [package => 'taglib']],
375             [like_debian,
376             # but does only work with newer debians (like stretch), because the module wants taglib 1.9.1 (e.g. wheezy has 1.7.2-1)
377             [package => ['libtag1-dev', 'g++']]],
378             [like_fedora,
379             [package => 'taglib-devel']], # at least on centos6 does not work: provided taglib is 1.6.1, but module wants 1.11 or greater
380             [os_darwin, # ... but does not seem to build
381             [package => 'taglib']],
382             ],
383              
384             [cpanmod => ['Authen::Krb5Password', 'GSSAPI'],
385             [os_freebsd,
386             [package => 'krb5 | heimdal']], # heimdal shadows tools like "su", so put it behind krb5
387             [like_debian,
388             [linuxdistrocodename => [qw(squeeze wheezy jessie)],
389             [package => 'heimdal-dev | libkrb5-dev']],
390             [package => 'libkrb5-dev']],
391             [like_fedora,
392             [package => 'krb5-devel']],
393             [os_darwin,
394             [package => 'krb5']],
395             ],
396              
397             [cpanmod => ['Authen::SASL::Cyrus', 'Authen::SASL::XS'],
398             [os_freebsd,
399             [package => 'cyrus-sasl']],
400             [like_debian,
401             [package => 'libsasl2-dev']]],
402              
403             [cpanmod => 'Barcode::ZBar',
404             [os_freebsd,
405             [package => 'zbar']],
406             [like_debian,
407             [package => 'libzbar-dev']],
408             [like_fedora,
409             [package => 'zbar-devel']],
410             [os_darwin,
411             [package => 'zbar']], # but tests fails (Barcode-ZBar-0.04)
412             ],
413              
414             [cpanmod => ['BerkeleyDB', 'BDB'],
415             [os_freebsd,
416             # FreeBSD has libdb in the base system, but this version is too old.
417             # Make sure that a corresponding distroprefs file matches this library.
418             [package => 'db5']],
419             [like_debian,
420             [linuxdistrocodename => 'squeeze',
421             [package => 'libdb4.8-dev']],
422             [linuxdistrocodename => ['wheezy', 'precise'],
423             [package => 'libdb5.1-dev']],
424             [package => 'libdb5.3-dev']], # e.g. jessie, stretch, trusty, xenial, yakkety, zesty
425             [os_darwin,
426             # Make sure that a corresponding distroprefs file matches this library (see srezic-cpan-distroprefs).
427             [package => 'berkeley-db']],
428             ],
429              
430             [cpanmod => 'Bio::HTS',
431             [os_freebsd,
432             # htslib exists, but does not seem to be compatible with the perl module
433             [package => 'htslib']],
434             [like_debian,
435             # also does not work...
436             [package => 'libhts-dev']]],
437              
438             [cpanmod => 'Bio::Phylo::Beagle',
439             # XXX what about freebsd?
440             [like_debian,
441             [package => ['libhmsbeagle-dev', 'pkg-config | pkgconf']]]],
442              
443             [cpanmod => 'Bio::SCF',
444             [os_freebsd,
445             [package => 'io_lib']],
446             [like_debian,
447             [package => ['libstaden-read-dev', 'zlib1g-dev']]],
448             [like_fedora,
449             [linuxdistro => 'fedora', # not available for centos6+7, only for fedora28
450             [package => 'staden-io_lib-devel']]],
451             ],
452              
453             [cpanmod => 'Cache::Memcached::XS',
454             [os_freebsd,
455             [package => 'libmemcache']],
456             [like_debian,
457             [linuxdistrocodename => ['squeeze', 'wheezy', 'xenial'], # but tests fail on xenial
458             [package => 'libmemcache-dev']],
459             [package => []], # in jessie there's no package containing include/memcache.h
460             ]],
461              
462             [cpanmod => 'Cache::RedisDB',
463             # real testing with redis-server
464             [os_freebsd,
465             [package => 'redis']],
466             [os_openbsd,
467             [package => 'redis']],
468             [like_debian,
469             [package => 'redis-server']]],
470              
471             [cpanmod => ['Cairo', 'Prima::Cairo'],
472             [os_freebsd,
473             [package => 'cairo']],
474             [os_dragonfly,
475             [package => 'cairo']],
476             [os_openbsd,
477             [package => 'cairo']],
478             [like_debian,
479             [package => 'libcairo2-dev']],
480             [like_fedora,
481             [package => 'cairo-devel']],
482             [os_darwin,
483             [package => 'cairo']]],
484              
485             [cpanmod => 'Cairo::GObject',
486             [like_fedora,
487             [linuxdistro => 'centos', linuxdistroversion => {'<', 7},
488             [package => []]],
489             [package => 'cairo-gobject-devel']],
490             ],
491              
492             [cpanmod => 'Capstone',
493             [os_freebsd,
494             [package => 'capstone']],
495             [like_debian,
496             [package => 'libcapstone-dev']], # but test failures with Capstone 0.6 @ jessie
497             [like_fedora,
498             [linuxdistro => 'centos', linuxdistroversion => {'<', 7},
499             package => []], # N/A for centos6
500             [package => 'capstone-devel']],
501             ],
502              
503             [cpanmod => 'CDB::TinyCDB',
504             [os_freebsd,
505             [package => 'tinycdb']],
506             [like_debian,
507             [package => 'libcdb-dev']],
508             [like_fedora,
509             [package => 'tinycdb-devel']],
510             [os_darwin,
511             [package => 'tinycdb']], # but test failures
512             ],
513              
514             [cpanmod => 'CDB_File::Generator',
515             [os_freebsd,
516             [package => 'cdb']],
517             [like_debian,
518             [package => 'freecdb']]],
519              
520             [cpanmod => 'Ceph::Rados',
521             #[os_freebsd,
522             # [package => 'ceph']], # XXX installation takes ~375MB --- could it be made smaller?
523             [like_debian,
524             [package => 'librados-dev']],
525             [like_fedora,
526             [linuxdistro => 'centos',
527             linuxdistroversion => qr{^7\.},
528             package => 'librados2-devel'],
529             [linuxdistro => 'fedora',
530             linuxdistroversion => '28',
531             package => 'librados-devel'], # XXX but compilation errors
532             ],
533             ],
534              
535             [cpanmod => 'Ceph::Rados::Striper',
536             [like_debian,
537             [before_ubuntu_xenial,
538             [package => []]],
539             [package => 'libradosstriper-dev']],
540             ],
541              
542             [cpanmod => 'Chipcard::PCSC',
543             # XXX what about freebsd?
544             [os_freebsd,
545             [package => 'pcsc-lite']],
546             [like_debian,
547             [package => ['bzip2', 'libpcsclite-dev', 'pkg-config | pkgconf']]]], # bzip2 needed for extraction
548              
549             [cpanmod => ['ClamAV::Client', 'File::Scan::ClamAV'],
550             [os_freebsd,
551             [package => 'clamav']], # additionally freshclam has to be run at least once, and the clamav-clamd service has to be started
552             [like_debian,
553             [package => ['clamav-daemon', 'clamav-data']]]],
554              
555             [cpanmod => 'Comedi::Lib',
556             # Not available for FreeBSD or CentOS7
557             [like_debian,
558             [package => 'libcomedi-dev']],
559             [like_fedora,
560             [linuxdistro => 'fedora',
561             [package => 'comedilib-devel']]], # but still does not build
562             ],
563              
564             [cpanmod => 'CommonMark',
565             [os_freebsd,
566             [package => 'cmark']],
567             ],
568              
569             [cpanmod => 'Compress::LZMA::Simple',
570             [os_freebsd,
571             [package => 'lzmalib']], # warning: installing this package would cause subsequent failures in the Compress::Raw::Lzma test suite!
572             ],
573            
574             [cpanmod => 'Compress::Raw::Lzma',
575             [os_openbsd,
576             [package => 'xz']],
577             [like_debian,
578             [package => 'liblzma-dev']],
579             [os_darwin,
580             [package => 'xz']],
581             ],
582              
583             # Try also the patches listed in
584             # https://rt.cpan.org/Ticket/Display.html?id=86115
585             # (or the corresponding srezic-cpan-distroprefs file)
586             [cpanmod => 'Compress::LZO',
587             [os_freebsd,
588             [package => 'lzo2']],
589             [like_debian,
590             [package => 'liblzo2-dev']],
591             [like_fedora,
592             [package => 'lzo-devel']],
593             [os_darwin,
594             [package => 'lzo']],
595             ],
596              
597             [cpanmod => 'Compress::Zstd',
598             [os_freebsd,
599             [package => 'gmake']],
600             ],
601              
602             [cpanmod => 'Config::Augeas',
603             [os_freebsd,
604             [package => ['augeas', 'pkgconf']]],
605             [like_debian,
606             # but the wheezy version is too old, module wants 1.0.0, wheezy has 0.10.0
607             [package => ['libaugeas-dev', 'pkg-config | pkgconf']]],
608             [like_fedora,
609             [package => 'augeas-devel']],
610             [os_darwin,
611             [package => 'augeas']],
612             ],
613              
614             [cpanmod => 'Config::UCL',
615             [os_freebsd,
616             [package => 'libucl']],
617             ],
618              
619             [cpanmod => 'Convert::Recode',
620             [os_freebsd,
621             [package => 'recode']],
622             [os_openbsd,
623             [package => 'recode']],
624             [like_debian,
625             [package => 'recode']],
626             [like_fedora,
627             [package => 'recode']],
628             ],
629              
630             [cpanmod => 'CORBA::ORBit',
631             #[os_freebsd,
632             # [package => 'ORBit']], # does not exist anymore, just ORBit2
633             [like_fedora,
634             [package => [qw(ORBit-devel libIDL-devel)]]
635             # XXX still does not work, at least on CentOS6
636             # either -I/usr/include/libIDL-1.0 or libIDL-2.0 has
637             # to be specified, but not possible in the standard
638             # Makefile.PL
639             ],
640             ],
641              
642             [cpanmod => 'Couchbase',
643             [os_freebsd,
644             [package => 'libcouchbase']],
645             ## Requires also libcouchbase/api3.h which does not seem to exist for fedora
646             #[like_fedora,
647             # [linuxdistro => 'fedora', # not available for centos7, only for fedora36
648             # [package => 'libcouchbase-devel']]],
649             ],
650              
651             [cpanmod => 'Crypt::Cracklib',
652             [os_freebsd,
653             [package => 'cracklib']],
654             [like_debian,
655             [package => 'libcrack2-dev']],
656             [like_fedora,
657             [package => 'cracklib-devel']],
658             ],
659              
660             [cpanmod => [qw(Crypt::DH::GMP Math::GMPq Math::GMPz Math::BigInt::GMP)],
661             [os_freebsd,
662             [package => 'gmp']],
663             [os_openbsd,
664             [package => 'gmp']],
665             [like_debian,
666             [linuxdistrocodename => 'squeeze',
667             [package => 'libgmp3-dev']],
668             [package => 'libgmp-dev']],
669             [like_fedora,
670             [package => 'gmp-devel']],
671             [os_darwin,
672             [package => 'gmp']],
673             ],
674              
675             [cpanmod => 'Crypt::GCrypt',
676             [os_freebsd,
677             # Does not work, see the patches in the p5-Crypt-GCrypt port
678             [package => 'libgcrypt']],
679             [like_debian,
680             # Neither libgcrypt11 nor libgcrypt20 seem to work.
681             [package => 'libgcrypt11-dev']]],
682              
683             [cpanmod => 'Crypt::HC128',
684             [os_freebsd,
685             [package => 'wolfssl']],
686             [like_debian,
687             [linuxdistrocodename => 'xenial',
688             [package => 'libwolfssl-dev']]],
689             ],
690              
691             [cpanmod => ['Crypt::MCrypt', 'Mcrypt'],
692             [os_freebsd,
693             [package => 'libmcrypt']],
694             [like_debian,
695             [linuxdistrocodename => 'squeeze',
696             [package => []], # N/A in squeeze
697             ],
698             [package => 'libmcrypt-dev']],
699             [like_fedora,
700             [package => [qw(libmcrypt-devel libtool-ltdl-devel)]]],
701             ],
702              
703             [cpanmod => ['Crypt::OpenSSL::DSA', 'Crypt::OpenSSL::PKCS12', 'Crypt::OpenSSL::Random', 'Crypt::OpenSSL::RSA', 'Crypt::OpenSSL::X509', 'Net::SSLeay', 'IO::Socket::SSL'],
704             # freebsd has all libssl in the base system
705             [like_debian,
706             [package => ['libssl-dev', 'zlib1g-dev']]],
707             [like_fedora,
708             [package => 'openssl-devel']],
709             [os_windows,
710             [package => 'openssl.light']]], # XXX create openssl.dev
711              
712             [cpanmod => 'Crypt::OpenSSL::X509',
713             [os_darwin,
714             [package => 'openssl']]],
715              
716             [cpanmod => 'Crypt::OTR',
717             [os_freebsd,
718             [package => 'libotr']],
719             [like_debian,
720             [linuxdistrocodename => ['squeeze', 'wheezy'],
721             [package => 'libotr2-dev']],
722             [package => 'libotr5-dev']]],
723              
724             [cpanmod => 'Crypt::secp256k1',
725             [like_debian,
726             [linuxdistrocodename => [qw(squeeze wheezy jessie precise trusty xenial)],
727             [package => []], # not available before stretch
728             ],
729             [package => 'libsecp256k1-dev']],
730             ],
731              
732             # XXX may be removed if Crypt::secp256k1 got its first stable release
733             [cpandist => qr{^Crypt-secp256k1-\d},
734             [like_debian,
735             [linuxdistrocodename => [qw(squeeze wheezy jessie precise trusty xenial)],
736             [package => []], # not available before stretch
737             ],
738             [package => 'libsecp256k1-dev']],
739             ],
740              
741             [cpanmod => 'Crypt::LibSCEP',
742             [os_freebsd,
743             [osvers => {'>=', 11},
744             [package => 'libscep']],
745             [package => []]],
746             ],
747              
748             [cpanmod => 'Crypt::Sodium',
749             [os_freebsd,
750             [package => 'libsodium']],
751             [os_openbsd,
752             # does not work
753             [package => 'libsodium']],
754             [os_openbsd,
755             [package => 'libsodium']],
756             [like_debian,
757             [linuxdistrocodename => ['squeeze', 'wheezy'],
758             [package => []], # not available before jessie
759             ],
760             [package => 'libsodium-dev']],
761             [like_fedora,
762             [package => 'libsodium-devel']],
763             [os_darwin,
764             [package => 'libsodium']],
765             ],
766              
767             [cpanmod => 'Crypt::U2F::Server',
768             [like_debian,
769             [linuxdistrocodename => [qw(squeeze wheezy jessie)],
770             [package => []], # not available before xenial and stretch
771             ],
772             [package => 'libu2f-server-dev']],
773             [os_darwin,
774             [package => 'libu2f-server']],
775             [linuxdistro => 'fedora', # not available for CentOS6 or 7
776             [package => 'libu2f-server-devel']],
777             ],
778              
779             [cpanmod => 'CSS::Croco',
780             [os_freebsd,
781             [package => ['libcroco', 'pkgconf']]],
782             [like_debian,
783             [package => 'libcroco3-dev']],
784             [like_fedora,
785             [package => 'libcroco-devel']],
786             ],
787              
788             [cpanmod => 'Curses',
789             # ncurses.h is included in FreeBSD base install
790             [like_debian,
791             [package => 'libncurses5-dev']],
792             [like_fedora,
793             [package => 'ncurses-devel']],
794             ],
795              
796             [cpanmod => 'Curses::UI::Mousehandler::GPM',
797             [like_debian,
798             [package => ['libgpm-dev', 'libncurses5-dev']]],
799             [like_fedora,
800             [package => ['gpm-devel']]],
801             ],
802              
803             [cpanmod => 'Database::Cassandra::Client',
804             [os_freebsd,
805             # but does not work, and neither does cassandra2
806             [package => 'cassandra']],
807             # cassandra package not available on debian
808             ],
809              
810             [cpanmod => ['Data::UUID::LibUUID', 'UUID'],
811             [os_freebsd,
812             [package => 'e2fsprogs-libuuid']],
813             [os_openbsd,
814             [package => 'ossp-uuid']],
815             [like_debian,
816             [package => 'uuid-dev']],
817             [like_fedora,
818             [package => 'libuuid-devel']],
819             ],
820              
821             [cpanmod => 'Date::LibICal',
822             [os_freebsd,
823             [package => 'libical']],
824             [like_debian,
825             [package => 'libical-dev']],
826             [like_fedora,
827             [package => 'libical-devel']],
828             ],
829              
830             [cpanmod => 'DateLocale',
831             [os_freebsd,
832             [package => 'gettext-tools']],
833             # XXX what about debian?
834             ],
835              
836             [cpanmod => ['DateTime::Astro', 'Math::MPFR'],
837             [os_freebsd,
838             [package => 'mpfr']],
839             [like_debian,
840             [package => 'libmpfr-dev']],
841             [like_fedora,
842             [package => 'mpfr-devel']],
843             [os_darwin,
844             [package => 'mpfr']],
845             ],
846              
847             [cpanmod => 'DB_File',
848             [like_debian,
849             [linuxdistrocodename => 'squeeze',
850             [package => 'libdb4.8-dev']],
851             [linuxdistrocodename => ['wheezy', 'precise'],
852             [package => 'libdb5.1-dev']],
853             [package => 'libdb5.3-dev']], # e.g. jessie, stretch, trusty, xenial, yakkety, zesty
854             # FreeBSD and MacOSX have libdb in the base system
855             [like_fedora,
856             [linuxdistro => 'centos',
857             linuxdistroversion => qr{^6\.},
858             package => 'db4-devel'],
859             [linuxdistro => 'centos', # CentOS 7 and 8
860             package => 'libdb-devel'],
861             [linuxdistro => 'fedora',
862             linuxdistroversion => { '>=', '28' },
863             package => 'libdb-devel'],
864             ],
865             ],
866              
867             [cpanmod => 'DBD::Firebird',
868             [os_freebsd,
869             [package => 'firebird25-server']],
870             [os_dragonfly,
871             [package => 'firebird25-server']],
872             [like_debian,
873             [before_debian_stretch,
874             [package => 'firebird-dev']],
875             [package => [qw(firebird-dev firebird3.0-server-core)]] # for stretch (and newer?)
876             ],
877             [like_fedora,
878             [package => 'firebird-devel']],
879             ],
880              
881             [cpanmod => 'DBD::mysql',
882             [os_freebsd,
883             [package => 'mysql80-client | mysql57-client | mysql56-client | mysql55-client | mariadb103-client | mariadb102-client | mariadb101-client | mariadb100-client | mariadb55-client | percona56-client | percona55-client | mysql-connector-c']],
884             [os_dragonfly,
885             [package => 'mariadb101-client | mariadb100-client | mariadb55-client-5.5.58']],
886             [os_openbsd,
887             [package => 'mariadb-client']],
888             [like_debian,
889             [before_debian_stretch,
890             [package => 'libmysqlclient-dev']],
891             [package => 'default-libmysqlclient-dev']],
892             [like_fedora,
893             [linuxdistro => 'centos', linuxdistroversion => qr{^6\.},
894             [package => 'mysql-devel']],
895             [package => 'mariadb-devel']],
896             [os_darwin,
897             [package => 'mysql-connector-c | mysql']],
898             ],
899              
900             [cpanmod => 'DBD::ODBC',
901             [os_freebsd,
902             [package => 'unixODBC']],
903             [os_dragonfly,
904             [package => 'unixODBC']],
905             [like_debian,
906             [package => 'unixodbc-dev']],
907             [like_fedora,
908             [package => 'libiodbc-devel']], # but building does not work out of the box, Makefile.PL needs patching
909             [os_darwin,
910             [package => 'unixodbc']],
911             ],
912              
913             [cpanmod => 'DBD::Pg',
914             [os_freebsd,
915             [package => 'postgresql12-client | postgresql11-client | postgresql10-client | postgresql96-client | postgresql95-client | postgresql94-client | postgresql93-client']],
916             [os_dragonfly,
917             [package => 'postgresql10-server | postgresql96-server | postgresql94-server | postgresql93-server | postgresql92-server']],
918             [os_openbsd,
919             [package => 'postgresql-server']],
920             [like_debian,
921             [package => 'libpq-dev']],
922             [like_fedora,
923             [package => [qw(postgresql postgresql-devel)]]],
924             [os_darwin,
925             [package => 'postgresql']],
926             ],
927              
928             [cpanmod => 'Deliantra::Client',
929             [os_freebsd,
930             [package => ['sdl2', 'sdl2_image', 'sdl2_mixer']]],
931             [like_debian,
932             [package => ['libsdl1.2-dev', 'libsdl-image1.2-dev', 'libsdl-mixer1.2-dev', 'libglib2.0-dev']]]],
933              
934             [cpanmod => 'Devel::IPerl',
935             [like_debian,
936             [package => [qw(libzmq3-dev jupyter-console jupyter-notebook)]]], # as documented in https://metacpan.org/release/ZMUGHAL/Devel-IPerl-0.012/source/README.md
937             ],
938              
939             [cpanmod => 'Devel::Jemallctl',
940             [like_debian,
941             [package => 'libjemalloc-dev']],
942             [like_fedora,
943             [package => 'jemalloc-devel']],
944             [os_darwin,
945             [package => 'jemalloc']],
946             ],
947              
948             [cpanmod => 'Devel::Valgrind::Client',
949             [os_freebsd,
950             [package => 'valgrind']], # untested
951             [like_debian,
952             [package => 'valgrind']], # but compilation errors
953             ],
954              
955             [cpanmod => 'Device::Cdio',
956             [os_freebsd,
957             # but it's too old, even on freebsd11 (1.1 needed, 0.94 installed)
958             [package => 'libcdio']],
959             [like_debian,
960             # but still does not work
961             [package => ['libcdio-dev', 'libiso9660-dev']]],
962             [os_darwin,
963             [package => 'libcdio']],
964             ],
965              
966             [cpanmod => 'Device::Serdisp',
967             [os_freebsd,
968             [package => 'serdisplib']], # but segfault in tests
969             # no package for debian
970             ],
971              
972             [cpanmod => 'Device::USB',
973             [like_debian,
974             [package => 'libusb-dev']],
975             [like_fedora,
976             [package => 'libusb-devel']], # but testsuite segfaults
977             ],
978              
979             [cpanmod => 'Device::Velleman::K8055::libk8055',
980             [os_freebsd,
981             [package => 'libk8055']],
982             # not available on debian
983             ],
984              
985             [cpanmod => 'DLM::Client',
986             # libdlm does not seem to exist on FreeBSD
987             [like_debian,
988             [package => 'libdlm-dev']],
989             [like_fedora,
990             [package => 'dlm-devel']],
991             ],
992            
993             [cpanmod => 'DNS::LDNS',
994             [os_freebsd,
995             [package => 'ldns']],
996             [os_dragonfly,
997             [package => 'ldns']],
998             [like_debian,
999             [package => 'libldns-dev']],
1000             [like_fedora,
1001             [package => 'ldns-devel']],
1002             # additionally needs to be patched, see https://github.com/eserte/srezic-cpan-distroprefs/blob/master/DNS-LDNS.yml
1003             [os_darwin,
1004             [package => 'ldns']]],
1005              
1006             [cpanmod => 'DNS::Unbound',
1007             #[cpandist => qr{^DNS-Unbound-\d},
1008             [os_freebsd,
1009             [package => 'unbound']], # build problems: port's pkg-config file references ssl & crypto, but these are already in base system
1010             [like_debian,
1011             [package => 'libunbound-dev']],
1012             [like_fedora,
1013             [package => 'unbound-devel']],
1014             ],
1015              
1016             [cpanmod => 'DVD::Read',
1017             [os_freebsd,
1018             [package => 'libdvdread']],
1019             [like_debian,
1020             [package => 'libdvdread-dev']],
1021             [like_fedora,
1022             [package => 'libdvdread-devel']],
1023             ],
1024              
1025             [cpanmod => 'EFL',
1026             [os_freebsd,
1027             # build is not successful anyway (Evas.h cannot be found), additionally the prereqs install also gcc on a freebsd10 system
1028             [package => ['evas-core', 'elementary']]],
1029             [like_debian,
1030             # here too: build is not successful anyway (Evas.h cannot be found)
1031             [package => ['libevas-dev', 'libelementary-dev']]]],
1032              
1033             [cpanmod => 'Encode::TECkit',
1034             [os_freebsd,
1035             [package => 'teckit']],
1036             # no package for Debian (jessie, stretch) and CentOS7
1037             ],
1038              
1039             [cpanmod => 'Erlang::Interface',
1040             [like_debian,
1041             [package => 'erlang-dev']],
1042             ],
1043              
1044             [cpanmod => ['EV::ADNS', 'Net::ADNS'],
1045             [os_freebsd,
1046             [package => 'adns']],
1047             [like_debian,
1048             [package => 'libadns1-dev']],
1049             [os_darwin,
1050             [package => 'adns']],
1051             [like_fedora,
1052             [linuxdistro => 'fedora', # not available for CentOS6 or 7
1053             [package => 'adns-devel']]],
1054             ],
1055              
1056             [cpanmod => 'Event::Lib',
1057             [os_freebsd,
1058             [package => 'libevent2']],
1059             [like_debian,
1060             [package => 'libevent-dev']]],
1061              
1062             [cpanmod => 'ExtUtils::CppGuess',
1063             # FreeBSD has c++ in the base system
1064             [like_debian,
1065             [package => 'g++']]],
1066              
1067             [cpanmod => 'ExtUtils::F77',
1068             # XXX TBD FreeBSD: provided by gcc, which is in the base system for osvers < 10, and has to be installed separately for osvers >= 10
1069             [like_debian,
1070             [package => 'gfortran']],
1071             [like_fedora,
1072             [package => 'gcc-gfortran']],
1073             # XXX TBD MacOSX: "GNU Fortran is now provided as part of GCC, and can be installed with: brew install gcc"
1074             ],
1075              
1076             [cpanmod => 'ExtUtils::PkgConfig',
1077             [os_freebsd,
1078             [package => 'pkgconf']],
1079             [like_debian,
1080             [package => 'pkg-config | pkgconf']],
1081             [like_fedora,
1082             [linuxdistro => 'centos', linuxdistroversion => {'<', 8},
1083             [package => 'pkgconfig']],
1084             [linuxdistro => 'fedora', linuxdistroversion => {'<', 31},
1085             [package => 'pkgconfig']],
1086             [package => 'pkgconf-pkg-config']],
1087             [os_darwin,
1088             [package => 'pkg-config']],
1089             ],
1090              
1091             [cpanmod => 'FFI::Platypus::Lang::Pascal',
1092             [like_debian,
1093             [package => 'fp-compiler']],
1094             ],
1095              
1096             [cpanmod => 'File::ExtAttr',
1097             [like_debian,
1098             [package => 'libattr1-dev']],
1099             [like_fedora,
1100             [package => 'libattr-devel']],
1101             # no special packages needed on freebsd and macosx
1102             ],
1103              
1104             [cpanmod => 'File::LibMagic',
1105             # XXX what about freebsd?
1106             [like_debian,
1107             [package => 'libmagic-dev']],
1108             [like_fedora,
1109             [package => 'file-devel']],
1110             [os_darwin,
1111             [package => 'libmagic']]],
1112              
1113             [cpanmod => 'File::MimeInfo',
1114             [os_freebsd,
1115             [# actually, this module installs without the package, but
1116             # depending modules like IO-All which really use it may fail
1117             [package => 'shared-mime-info']]]],
1118              
1119             [cpanmod => 'File::Rdiff',
1120             [os_freebsd,
1121             [package => 'librsync2 | librsync']],
1122             [like_debian,
1123             [package => 'librsync-dev']],
1124             [like_fedora,
1125             [package => 'librsync-devel']], # but compilation failures on CentOS7
1126             ],
1127              
1128             [cpanmod => 'Filesys::SmbClient',
1129             ## XXX unclear which package is the correct one
1130             #[os_freebsd,
1131             # [package => 'samba-libsmbclient | samba41 | samba4']],
1132             [like_debian,
1133             [package => 'libsmbclient-dev']],
1134             ],
1135              
1136             [cpanmod => 'Finance::MICR::GOCR::Check',
1137             [package => 'gocr']],
1138              
1139             [cpanmod => 'Finance::TA',
1140             [os_freebsd,
1141             [package => 'ta-lib']]], # alternative would be Alien::TALib
1142              
1143             [cpanmod => 'Firefox::Marionette',
1144             [os_freebsd,
1145             [package => [ 'firefox', 'xorg-vfbserver', 'xauth' ]]],
1146             [os_openbsd,
1147             [package => [ 'firefox' ]]],
1148             [like_debian,
1149             [linuxdistrocodename => [qw(trusty xenial bionic eoan focal jammy)],
1150             [package => [qw(firefox xvfb xauth)]]], # there's no firefox-esr for Ubuntu
1151             [package => [ 'firefox-esr', 'xvfb', 'xauth' ]]],
1152             [like_fedora,
1153             [package => [ 'firefox', 'xorg-x11-server-Xvfb', 'xorg-x11-xauth' ]]],
1154             [os_windows,
1155             [package => [ 'firefox' ]]],
1156             ],
1157              
1158             [cpanmod => ['FTDI::D2XX', 'Device::FTDI'],
1159             # neither libftdi nor libftdi1 seem to work on FreeBSD
1160             [like_debian,
1161             [package => 'libftdi-dev']]],
1162              
1163             [cpanmod => 'Fuse',
1164             # Fuse.pm does not work on freebsd
1165             [like_debian,
1166             [package => 'libfuse-dev']],
1167             [like_fedora,
1168             [package => 'fuse-devel']],
1169             ],
1170              
1171             [cpanmod => 'Games::Chipmunk',
1172             [os_freebsd,
1173             [package => 'ChipmunkPhysics']],
1174             [like_debian,
1175             [package => 'chipmunk-dev']],
1176             ],
1177              
1178             [cpanmod => 'Games::Irrlicht',
1179             [os_freebsd,
1180             [package => 'irrlicht']], # but does not build
1181             [like_debian,
1182             [package => 'libirrlicht-dev']], # but does not build
1183             ],
1184              
1185             [cpanmod => 'Games::Poker::HandEvaluator',
1186             [os_freebsd,
1187             [package => 'poker-eval']], # but does not build out of the box
1188             [like_debian,
1189             [package => 'libpoker-eval-dev']], # but does not build out of the box
1190             ],
1191              
1192             [cpanmod => 'GCCJIT',
1193             [like_debian,
1194             [linuxdistrocodename => [qw(squeeze wheezy jessie precise)],
1195             [package => []]], # N/A in older Debian+Ubuntu versions
1196             [linuxdistrocodename => [qw(xenial)],
1197             [package => 'libgccjit-5-dev']],
1198             [linuxdistrocodename => [qw(stretch)],
1199             [package => 'libgccjit-6-dev']],
1200             [linuxdistrocodename => [qw(bionic)],
1201             [package => 'libgccjit-7-dev']], # use matching with current gcc, don't use libgccjit-8-dev | libgccjit-6-dev | libgccjit-5-dev
1202             [linuxdistrocodename => [qw(buster)],
1203             [package => 'libgccjit-8-dev']], # use matching with current gcc, don't use libgccjit-7-dev | libgccjit-6-dev
1204             ],
1205             [like_fedora,
1206             [linuxdistro => 'fedora', # not available for CentOS6 or 7
1207             [package => 'libgccjit-devel']]],
1208             ],
1209              
1210             [cpanmod => 'GD',
1211             [os_freebsd,
1212             [package => 'libgd']],
1213             [os_dragonfly,
1214             [package => 'libgd']],
1215             [os_openbsd,
1216             [package => 'gd']],
1217             [like_debian,
1218             [linuxdistrocodename => ['precise', 'wheezy'],
1219             [package => 'libgd2-noxpm-dev | libgd2-xpm-dev']],
1220             [package => 'libgd-dev']],
1221             [like_fedora,
1222             [package => 'gd-devel']],
1223             [os_darwin,
1224             [package => 'gd']]],
1225              
1226             [cpanmod => 'Gearman::XS',
1227             [os_freebsd,
1228             [package => 'gearmand-devel'], # untested; not for small disks, needs boost-libs
1229             ],
1230             [like_debian,
1231             [package => 'libgearman-dev']],
1232             [like_fedora,
1233             [package => 'libgearman-devel']],
1234             ],
1235              
1236             [cpanmod => 'Geo::Hex::V3::XS',
1237             [package => 'cmake']],
1238              
1239             [cpanmod => 'Geo::Proj4',
1240             [os_freebsd,
1241             [package => 'proj']],
1242             [like_debian,
1243             [package => ['libproj-dev', 'proj-bin']]],
1244             [like_fedora,
1245             [package => ['proj-devel', 'proj']]],
1246             [os_darwin,
1247             [package => 'proj']],
1248             ],
1249            
1250             [cpanmod => 'Geo::Shapelib',
1251             [os_freebsd,
1252             [package => 'shapelib']],
1253             [like_debian,
1254             [package => 'libshp-dev']],
1255             [like_fedora,
1256             [package => 'shapelib-devel']],
1257             ],
1258              
1259             [cpanmod => ['Gimp', 'Alien::Gimp'],
1260             [os_freebsd,
1261             [package => 'gimp-app']],
1262             [like_debian,
1263             [package => 'libgimp2.0-dev'], # 90 MB for package + deps
1264             ]],
1265              
1266             [cpanmod => 'GitDDL::Migrator',
1267             # XXX freebsd?
1268             [like_debian,
1269             [package => ['mysql-server-5.7 | mysql-server-5.5']], # possible alternative: mariadb-server-10.0; mysql-server-core-5.5 is not enough as resolveip is usually required
1270             ]],
1271              
1272             [cpanmod => 'Git::Raw',
1273             [os_freebsd,
1274             [package => 'libssh2']],
1275             [like_debian,
1276             [package => 'libssh2-1-dev']],
1277             # libgit2 is already bundled with Git::Raw
1278             ],
1279              
1280             [cpanmod => 'Git::XS',
1281             [os_freebsd,
1282             [package => 'libgit2']],
1283             [os_openbsd,
1284             [package => 'libgit2']],
1285             [like_debian,
1286             [linuxdistrocodename => ['squeeze', 'wheezy'],
1287             [package => []]], # N/A
1288             [package => 'libgit2-dev']],
1289             [like_fedora,
1290             [package => 'libgit2-devel']],
1291             ],
1292              
1293             [cpanmod => 'Glib',
1294             [like_debian,
1295             [package => 'libglib2.0-dev']],
1296             [like_fedora,
1297             [linuxdistro => 'centos', linuxdistroversion => {'<', 7},
1298             [package => []]],
1299             [package => 'gobject-introspection-devel']],
1300             [os_darwin,
1301             [package => 'glib']],
1302             ],
1303              
1304             [cpanmod => 'Glib::JSON',
1305             [os_freebsd,
1306             [package => 'json-glib']],
1307             [like_debian,
1308             [package => 'libjson-glib-dev']],
1309             [like_fedora,
1310             [package => 'json-glib-devel']],
1311             [os_darwin,
1312             [package => 'json-glib']],
1313             ],
1314              
1315             [cpanmod => 'Glib::Object::Introspection',
1316             [os_freebsd,
1317             [package => 'gobject-introspection']],
1318             [os_openbsd,
1319             [package => 'gobject-introspection']],
1320             [like_debian,
1321             [package => 'libgirepository1.0-dev']],
1322             [like_fedora,
1323             [linuxdistro => 'centos', linuxdistroversion => {'<', 7},
1324             [package => []]],
1325             [package => 'gobject-introspection-devel']],
1326             [os_darwin,
1327             [package => [qw(gobject-introspection libffi)]]],
1328             ],
1329              
1330             [cpanmod => 'Gnome2',
1331             [os_freebsd,
1332             [package => 'libgnomeui']],
1333             [like_debian,
1334             [package => 'libgnomeui-dev']]],
1335              
1336             [cpanmod => 'Gnome2::Canvas',
1337             [os_freebsd,
1338             [package => 'libgnomecanvas']],
1339             [like_debian,
1340             [package => 'libgnomecanvas2-dev']],
1341             [like_fedora,
1342             [package => 'libgnomecanvas-devel']],
1343             ],
1344              
1345             [cpanmod => 'Gnome2::GConf',
1346             [os_freebsd,
1347             [package => 'gconf2']],
1348             [like_debian,
1349             [package => 'libgconf2-dev']],
1350             [like_fedora,
1351             [package => 'GConf2-devel']],
1352             ],
1353              
1354             [cpanmod => 'Gnome2::Print',
1355             [os_freebsd,
1356             [package => 'libgnomeprintui']],
1357             [linuxdistro => 'centos', linuxdistroversion => {'<', 7},
1358             [package => 'libgnomeprintui22-devel']],
1359             ],
1360              
1361             [cpanmod => 'Gnome2::Wnck',
1362             [os_freebsd,
1363             [package => 'libwnck']],
1364             [like_debian,
1365             [package => 'libwnck-dev']],
1366             [like_fedora,
1367             [package => 'libwnck-devel']],
1368             ],
1369              
1370             [cpanmod => ['Gnome2::VFS', 'VFS::Gnome'],
1371             [os_freebsd,
1372             [package => 'gnome-vfs']],
1373             [like_debian,
1374             [package => 'libgnomevfs2-dev']]],
1375              
1376             [cpanmod => 'Gnome::Sound',
1377             [like_debian,
1378             [package => 'libgnome2-dev']], # does not work, module does not look into /usr/include/libgnome-2.0/
1379             ],
1380              
1381             [cpanmod => ['GnuPG', 'Module::Signature'],
1382             [os_freebsd,
1383             [package => 'gnupg1'] # XXX what about gnupg (version 2)?
1384             ],
1385             [os_dragonfly,
1386             [package => 'gnupg']],
1387             [os_openbsd,
1388             [package => 'gnupg']],
1389             [like_debian,
1390             [package => 'gnupg']],
1391             [like_fedora,
1392             [package => 'gnupg2']],
1393             ],
1394              
1395             [cpanmod => 'GnuPG::Interface',
1396             [os_freebsd,
1397             [package => 'gnupg1'] # XXX what about gnupg (version 2)?
1398             ],
1399             [os_dragonfly,
1400             [package => 'gnupg']],
1401             [os_openbsd,
1402             [package => 'gnupg']],
1403             [like_debian,
1404             [package => 'gnupg']],
1405             [like_fedora,
1406             [package => 'gnupg']], # does not work with gnupg2
1407             ],
1408              
1409             [cpanmod => 'Goo::Canvas',
1410             [os_freebsd,
1411             [package => 'goocanvas']],
1412             [like_debian,
1413             [package => 'libgoocanvas-dev']],
1414             [like_fedora,
1415             [package => 'goocanvas2']],
1416             ],
1417              
1418             [cpanmod => 'GooCanvas2',
1419             [os_freebsd,
1420             [package => 'goocanvas2']],
1421             [like_debian,
1422             [linuxdistrocodename => [qw(squeeze wheezy jessie)], # not available before xenial/stretch
1423             [package => []]],
1424             [package => 'gir1.2-goocanvas-2.0']],
1425             [like_fedora,
1426             [linuxdistro => 'centos', linuxdistroversion => qr{^6\.},
1427             [package => []]],
1428             [package => 'goocanvas2-devel']],
1429             [os_darwin,
1430             [package => 'goocanvas']], # untested
1431             ],
1432              
1433             [cpanmod => 'Google::ProtocolBuffers::Dynamic',
1434             [os_freebsd,
1435             [package => 'protobuf']],
1436             [like_debian,
1437             [package => 'libprotoc-dev']],
1438             [like_fedora,
1439             [package => 'protobuf-c-devel']],
1440             ],
1441              
1442             [cpanmod => ['Graphics::GnuplotIF', 'Gnuplot::Simple', 'Chart::Gnuplot'],
1443             [package => 'gnuplot']],
1444              
1445             [cpanmod => 'Graph::Nauty',
1446             [os_freebsd,
1447             [package => []]], # there is a nauty package, but this seems to be something different
1448             [like_debian,
1449             [before_ubuntu_trusty,
1450             [package => []]],
1451             [package => 'libnauty2-dev']],
1452             [like_fedora,
1453             [linuxdistro => 'centos',
1454             [package => []]],
1455             [package => 'libnauty-devel']],
1456             [os_darwin,
1457             [package => 'nauty']]
1458             ],
1459              
1460             [cpanmod => 'Graphics::Plotter',
1461             [os_freebsd,
1462             [package => 'plotutils']],
1463             [like_debian,
1464             [package => 'libplot-dev']],
1465             [like_fedora,
1466             [package => 'plotutils-devel']],
1467             ],
1468              
1469             [cpanmod => ['Graphics::PLplot', 'PDL::Graphics::PLplot'],
1470             [os_freebsd,
1471             [package => 'plplot']],
1472             [like_debian,
1473             [package => 'libplplot-dev']],
1474             [like_fedora,
1475             [package => 'plplot-devel']],
1476             ],
1477              
1478             [cpanmod => ['Graphics::SANE', 'Sane', 'Image::Sane'],
1479             [os_freebsd,
1480             [package => 'sane-backends']],
1481             [like_debian,
1482             [package => 'libsane-dev']],
1483             [like_fedora,
1484             [package => 'sane-backends-devel']],
1485             [os_darwin,
1486             [package => 'sane-backends']],
1487             ],
1488              
1489             [cpanmod => ['GraphViz', 'GraphViz2', 'GraphViz2::Marpa'],
1490             # package named the same in freebsd, debian and macosx/homebrew, maybe everywhere?
1491             [package => 'graphviz']],
1492              
1493             [cpanmod => 'GSM::Gnokii',
1494             # XXX what about freebsd?
1495             [like_debian,
1496             [package => 'libgnokii-dev']]],
1497              
1498             [cpanmod => 'Gtk2',
1499             # XXX freebsd?
1500             [like_debian,
1501             [package => 'libgtk2.0-dev']],
1502             [like_fedora,
1503             [package => 'gtk2-devel']],
1504             ],
1505              
1506             [cpanmod => 'Gtk2::AppIndicator',
1507             # no package for freebsd or centos7
1508             [like_debian,
1509             [package => 'libappindicator-dev']],
1510             ],
1511              
1512             [cpanmod=> 'Gtk2::CV',
1513             [linuxdistro => 'fedora',
1514             [package => 'perlmulticore-devel']],
1515             ],
1516              
1517             [cpanmod => 'Gtk2::GladeXML',
1518             [os_freebsd,
1519             [package => 'libglade2']],
1520             [like_debian,
1521             [package => 'libglade2-dev']],
1522             [like_fedora,
1523             [package => 'libglade2-devel']],
1524             ],
1525              
1526             [cpanmod => 'Gtk2::GLExt',
1527             # But does not build anywhere...
1528             [os_freebsd,
1529             [package => 'gtkglext']],
1530             [like_debian,
1531             [package => 'libgtkglext1-dev']],
1532             [like_fedora,
1533             [package => 'gtkglext-devel']],
1534             ],
1535              
1536             [cpanmod => 'Gtk2::ImageView',
1537             [os_freebsd,
1538             [package => 'gtkimageview']],
1539             [like_debian,
1540             [package => 'libgtkimageview-dev']]],
1541              
1542             [cpanmod => ['Gtk2::Notify', 'Gtk3::Notify'], # but compilation errors, see https://rt.cpan.org/Ticket/Display.html?id=67467
1543             [os_freebsd,
1544             [package => 'libnotify']],
1545             [like_debian,
1546             [package => 'libnotify-dev']],
1547             [like_fedora,
1548             [package => 'libnotify-devel']],
1549             ],
1550              
1551             [cpanmod => 'Gtk2::Spell',
1552             [os_freebsd,
1553             [package => 'gtkspell']],
1554             [like_debian,
1555             [package => 'libgtkspell-dev']],
1556             [like_fedora,
1557             [package => 'gtkspell-devel']],
1558             ],
1559              
1560             [cpanmod => 'Gtk2::Unique',
1561             [os_freebsd,
1562             [package => 'unique']],
1563             [like_debian,
1564             [package => 'libunique-dev']],
1565             [like_fedora,
1566             [package => 'unique-devel']],
1567             ],
1568              
1569             [cpanmod => 'Gtk3',
1570             [os_freebsd,
1571             # additionally dbus has to be enabled and started
1572             [package => ['gtk3', 'dbus']]],
1573             [like_debian,
1574             [package => 'libgtk-3-dev']],
1575             [like_fedora,
1576             [linuxdistro => 'centos', linuxdistroversion => {'<', 7},
1577             [package => []]],
1578             [package => 'gtk3-devel']],
1579             ],
1580              
1581             [cpanmod => 'Gtk3::SourceView',
1582             [os_freebsd,
1583             [package => 'gtksourceview3']],
1584             [like_debian,
1585             [package => 'libgtksourceview-3.0-dev']],
1586             [like_fedora,
1587             [package => 'gtksourceview3-devel']],
1588             ],
1589              
1590             [cpanmod => 'Gtk3::WebKit',
1591             [os_freebsd,
1592             [osvers => {'<', 11},
1593             [package => 'webkit-gtk3']],
1594             [package => []]], # does not exist in newer freebsd versions
1595             [like_debian,
1596             [before_debian_buster, # only available until ubuntu:bionic
1597             [package => 'libwebkitgtk-3.0-dev']],
1598             [package => []]],
1599             [like_fedora,
1600             [linuxdistro => 'centos',
1601             linuxdistroversion => qr{^[7]\.}, # exists for centos 7, does not exist for fedora 36
1602             package => 'webkitgtk3-devel'],
1603             [package => []]],
1604             ],
1605              
1606             [cpanmod => 'Gtk3::WebKit2',
1607             [like_debian,
1608             [before_ubuntu_trusty, # at least not available in debian/wheezy
1609             [package => []]],
1610             [package => 'libwebkit2gtk-4.0-dev']],
1611             [like_fedora,
1612             [linuxdistro => 'centos',
1613             linuxdistroversion => qr{^[67]\.},
1614             package => []], # N/A for centos6+7
1615             [package => 'webkit2gtk3-devel']],
1616             ],
1617              
1618             [cpanmod => 'GTop',
1619             [os_freebsd,
1620             [package => 'libgtop']],
1621             [like_debian,
1622             [package => 'libgtop2-dev']],
1623             [os_darwin,
1624             [package => 'libgtop']],
1625             ],
1626              
1627             [cpanmod => 'Heimdal::Kadm5',
1628             [os_freebsd,
1629             [package => 'heimdal']],
1630             [like_debian,
1631             # conflicts with libkrb5-dev
1632             [package => 'heimdal-dev']],
1633             [like_fedora,
1634             # but does not build
1635             [package => 'heimdal-devel']],
1636             ],
1637              
1638             [cpanmod => 'Hiredis::Raw',
1639             [os_freebsd,
1640             [package => 'hiredis']],
1641             [like_debian,
1642             [package => 'libhiredis-dev']]],
1643              
1644             [cpanmod => 'Hobocamp',
1645             # XXX what about freebsd
1646             [like_debian,
1647             [package => ['dialog', 'libncursesw5-dev']]]],
1648              
1649             [cpanmod => 'HTML::CTPP2',
1650             [os_freebsd,
1651             [package => 'ctpp2']],
1652             [like_debian,
1653             [linuxdistrocodename => ['squeeze', 'wheezy'],
1654             [package => []], # not available before jessie
1655             ],
1656             [package => 'libctpp2-dev']],
1657             # ctpp2 not available for homebrew
1658             ],
1659              
1660             [cpanmod => 'HTML::HTMLDoc',
1661             [os_freebsd,
1662             [package => 'htmldoc']],
1663             [like_debian,
1664             [before_ubuntu_trusty,
1665             [package => []]], # not available in wheezy
1666             [package => 'htmldoc']],
1667             [like_fedora,
1668             [linuxdistro => 'centos', linuxdistroversion => {'>=', 8, '<', 9}, # not available (maybe not yet?) for CentOS8
1669             [package => []]],
1670             [package => 'htmldoc']],
1671             ],
1672              
1673             [cpanmod => 'HTML::Parser',
1674             [os_freebsd,
1675             [package => []]],
1676             [like_debian,
1677             [package => 'libc6-dev']],
1678             [like_fedora,
1679             [package => 'glibc-headers']],
1680             [os_darwin,
1681             [package => []]],
1682             ],
1683              
1684             [cpanmod => 'HTTP::Webdav',
1685             [os_freebsd,
1686             [package => 'neon | neon29']], # untested
1687             [like_debian,
1688             [package => 'libneon27-dev | libneon27-gnutls-dev']], # compilation fails: ne_cookies.h: No such file or directory
1689             [like_fedora,
1690             [package => 'neon-devel']], # compilation fails: ne_cookies.h: No such file or directory
1691             ],
1692              
1693             [cpanmod => 'HTML::Tidy5',
1694             [os_freebsd,
1695             [package => 'tidy-html5']],
1696             [like_debian,
1697             [before_debian_stretch,
1698             [package => []]], # not available?
1699             [package => 'libtidy-dev']],
1700             [like_fedora,
1701             [package => 'libtidy-devel']], # but compilation fails on centos6, some test failures on centos7, fedora28 currently OK
1702             [os_darwin,
1703             [package => 'tidy-html5']], # but does not work (-L and -I needs to be adjusted, Symbol not found: _tidyBufFree)
1704             ],
1705              
1706             [cpanmod => 'HTML::Tidy',
1707             [os_freebsd,
1708             [package => 'tidyp']],
1709             [os_darwin,
1710             [package => 'tidyp']],
1711             # linux: Alien::Tidyp works fine, no external dependency required
1712             ],
1713              
1714             [cpanmod => 'HTTP::Soup::Gnome',
1715             [os_freebsd,
1716             [package => 'libsoup-gnome']],
1717             [like_debian,
1718             [package => 'libsoup-gnome2.4-dev']]],
1719              
1720             [cpanmod => 'Image::DecodeQR',
1721             #[os_freebsd,
1722             # [package => 'opencv']], # package for decodeqr missing
1723             [like_debian,
1724             [before_debian_stretch,
1725             [package => ['libopencv-dev', 'libdecodeqr-dev']]],
1726             [package => []], # not available anymore in stretch, bionic or buster, but currently available in sid for at least arm64
1727             ],
1728             #[like_fedora,
1729             # [package => 'opencv-devel']], # package for decodeqr missing
1730             ],
1731              
1732             [cpanmod => ['Image::ObjectDetect', 'Image::Resize::OpenCV'],
1733             [os_freebsd,
1734             [package => 'opencv']],
1735             [like_debian,
1736             [package => 'libopencv-dev']],
1737             [like_fedora,
1738             [package => 'opencv-devel']],
1739             ],
1740              
1741             [cpanmod => 'Image::GeoTIFF::Tiled',
1742             [os_freebsd,
1743             [package => ['libgeotiff', 'tiff']]],
1744             [like_debian,
1745             [package => ['libgeotiff-dev']]], # conflict between libtiff4 and libtiff5 possible
1746             ],
1747              
1748             [cpanmod => ['Image::Imlib2', 'Ithumb::XS'],
1749             [os_freebsd,
1750             [package => 'imlib2']],
1751             [like_debian,
1752             [package => 'libimlib2-dev']],
1753             [like_fedora,
1754             [package => 'imlib2-devel']],
1755             [os_darwin,
1756             [package => 'imlib2']],
1757             ],
1758              
1759             [cpanmod => 'Image::LibExif',
1760             [os_freebsd,
1761             [package => 'libexif']],
1762             [like_debian,
1763             [package => 'libexif-dev']],
1764             [os_darwin,
1765             [package => 'libexif']],
1766             [like_fedora,
1767             [package => 'libexif-devel']],
1768             ],
1769              
1770             [cpanmod => 'Image::Libpuzzle',
1771             [os_freebsd,
1772             [package => 'libpuzzle']],
1773             [like_debian,
1774             [package => 'libpuzzle-dev']],
1775             [like_fedora,
1776             [linuxdistro => 'centos',
1777             linuxdistroversion => {'>=', 7},
1778             package => []], # for some reason not available for centos7 (but it is for centos6)
1779             [package => 'libpuzzle-devel']],
1780             ],
1781              
1782             [cpanmod => 'Image::LibRaw',
1783             [os_freebsd,
1784             [package => 'libraw']],
1785             [like_debian,
1786             [before_ubuntu_trusty, # not available in debian/wheezy
1787             [package => []]],
1788             [package => 'libraw-dev']],
1789             [os_darwin,
1790             [package => 'libraw']],
1791             ],
1792              
1793             [cpanmod => ['Image::LibRSVG', 'Gnome2::Rsvg'],
1794             [os_freebsd,
1795             [package => 'librsvg2']],
1796             [like_debian,
1797             [package => 'librsvg2-dev']],
1798             [like_fedora,
1799             [package => 'librsvg2-devel']],
1800             [os_darwin,
1801             [package => 'librsvg']],
1802             ],
1803              
1804             [cpanmod => 'Image::Magick', # typically needs manual work
1805             [os_freebsd,
1806             [package => 'ImageMagick']],
1807             [like_debian,
1808             [package => 'libmagickcore-dev']]],
1809              
1810             [cpanmod => 'Image::PNGwriter',
1811             [os_freebsd,
1812             [package => 'pngwriter']],
1813             [like_debian,
1814             [linuxdistrocodename => 'squeeze',
1815             [package => 'libpngwriter0-dev']],
1816             # not available in wheezy and later
1817             ]],
1818              
1819             [cpanmod => 'Image::Ocrad',
1820             [package => 'ocrad']],
1821              
1822             [cpanmod => 'Image::Resize::OpenCV',
1823             [os_freebsd,
1824             [package => 'opencv']],
1825             [like_debian,
1826             [package => ['libcv-dev', 'libhighgui-dev']]],
1827             [like_fedora,
1828             [package => 'opencv-devel']],
1829             ],
1830              
1831             [cpanmod => 'Image::Scale',
1832             [os_freebsd,
1833             [package => ['png', freebsd_jpeg]]],
1834             [like_debian,
1835             [linuxdistrocodename => [qw(squeeze wheezy jessie precise xenial)],
1836             [package => [qw(libjpeg-dev libpng12-dev)]]],
1837             [package => [qw(libjpeg-dev libpng-dev)]],
1838             ],
1839             ],
1840              
1841             [cpanmod => 'Image::SubImageFind',
1842             # XXX what about freebsd?
1843             [like_debian,
1844             [package => ['libmagick++-dev | graphicsmagick-libmagick-dev-compat']]]],
1845              
1846             [cpanmod => 'Image::XFace', # compiles only for old perls
1847             [os_freebsd,
1848             [package => 'faces']],
1849             [like_debian,
1850             [package => 'libcompfaceg1-dev']],
1851             [like_fedora,
1852             [package => 'compface-devel']],
1853             ],
1854              
1855             [cpanmod => 'Imager',
1856             [os_freebsd,
1857             [package => [qw(freetype2 giflib png tiff), freebsd_jpeg]]], # in former days giflib-nox11 had to be specified
1858             [like_debian,
1859             [linuxdistrocodename => [qw(wheezy precise)],
1860             [package => [qw(libfreetype6-dev libgif-dev libpng12-dev libjpeg-dev), 'libtiff5-dev | libtiff4-dev']]],
1861             [linuxdistrocodename => [qw(jessie xenial)],
1862             [package => [qw(libfreetype6-dev libgif-dev libpng12-dev libjpeg-dev libtiff5-dev)]]],
1863             [package => [qw(libfreetype6-dev libgif-dev libpng-dev libjpeg-dev libtiff5-dev)]],
1864             ],
1865             [like_fedora,
1866             [package => [qw(freetype-devel giflib-devel libpng-devel libjpeg-turbo-devel libtiff-devel)]]],
1867             [os_darwin,
1868             [package => [qw(freetype giflib libpng jpeg libtiff)]]],
1869             ],
1870              
1871             [cpanmod => 'Imager::File::AVIF',
1872             [os_freebsd,
1873             [package => 'libavif']],
1874             [like_debian,
1875             [before_debian_buster,
1876             [package => []]],
1877             [linuxdistrocodename => ['focal'],
1878             [package => []]],
1879             [package => 'libavif-dev']],
1880             [like_fedora,
1881             [linuxdistro => 'centos', # not available for 7 and 8
1882             package => []],
1883             [package => 'libavif-devel']],
1884             ],
1885              
1886             [cpanmod => 'Imager::File::HEIF',
1887             [os_freebsd,
1888             [osvers => {'>=', 4, '<', 10},
1889             [package => []]],
1890             [package => 'libheif']], # but does not seem to work with freebsd 10, only with 11 and later
1891             [like_debian,
1892             [before_ubuntu_bionic,
1893             [package => []]],
1894             [package => 'libheif-dev']],
1895             ],
1896              
1897             [cpanmod => 'Imager::File::JPEG',
1898             [os_freebsd,
1899             [package => [freebsd_jpeg]]],
1900             [like_debian,
1901             [package => [qw(libjpeg-dev)]]],
1902             [like_fedora,
1903             [package => [qw(libjpeg-turbo-devel)]]],
1904             [os_darwin,
1905             [package => [qw(jpeg)]]],
1906             ],
1907              
1908             [cpanmod => 'Imager::File::WEBP',
1909             [os_freebsd,
1910             [package => 'webp']], # but tests fail with "undefined symbol: WebPFree" on older freebsd (9)
1911             [like_debian,
1912             [package => 'libwebp-dev']], # but tests fail with "undefined symbol: WebPFree" on jessie+xenial
1913             [like_fedora,
1914             [package => 'libwebp-devel']], # but test or compilation failures with centos6+7; fedora28 works
1915             [os_darwin,
1916             [package => 'webp']],
1917             ],
1918              
1919             [cpanmod => 'Imager::Font::T1',
1920             [os_freebsd,
1921             [package => 't1lib']],
1922             [linuxdistro => 'linuxmint',
1923             [package => 'libt1-dev']], # still available in Mint 17
1924             [like_debian,
1925             linuxdistrocodename => [qw(squeeze wheezy)],
1926             [package => 'libt1-dev']],
1927             # not available anymore since jessie, also not in xenial
1928             [like_fedora,
1929             [package => 't1lib-devel']],
1930             [os_darwin,
1931             #[package => 't1lib']], # but tests fail
1932             [package => []]], # ... and even worse: if t1lib is installed, then the Imager 1.008 test suite fails (https://rt.cpan.org/Ticket/Display.html?id=128145). So don't install it at all.
1933             ],
1934              
1935             # modules just needing java and nothing else:
1936             [cpanmod => ['Inline::Java', 'Bio::AssemblyImprovement', 'DBD::JDBC'],
1937             [os_freebsd,
1938             [package => 'openjdk8']],
1939             [like_debian,
1940             [linuxdistrocodename => 'squeeze',
1941             [package => 'openjdk-6-jdk']],
1942             [linuxdistrocodename => [qw(wheezy jessie precise)],
1943             [package => 'openjdk-7-jdk']],
1944             [linuxdistrocodename => [qw(stretch xenial)],
1945             [package => 'openjdk-8-jdk']],
1946             [linuxdistrocodename => [qw(buster bionic)],
1947             [package => 'openjdk-11-jdk']],
1948             ],
1949             [like_fedora,
1950             [linuxdistro => 'centos', linuxdistroversion => {'<', 7},
1951             [package => 'java-1.8.0-openjdk-devel | java-1.7.0-openjdk-devel | java-1.6.0-openjdk-devel']],
1952             [package => 'java-11-openjdk-devel | java-9-openjdk-devel | java-1.8.0-openjdk-devel | java-1.7.0-openjdk-devel | java-1.6.0-openjdk-devel']],
1953             ],
1954              
1955             [cpanmod => 'Inline::Lua',
1956             [os_freebsd,
1957             [package => 'lua53 | lua']],
1958             [like_debian,
1959             [package => 'liblua5.1-0-dev']],
1960             [like_fedora,
1961             [package => 'lua-devel']],
1962             [os_darwin,
1963             [package => 'lua']],
1964             ],
1965              
1966             [cpanmod => 'Inline::Perl6',
1967             [like_debian,
1968             # XXX tests fail on Ubuntu16.04; missing on stretch
1969             [linuxdistrocodename => [qw(stretch xenial)],
1970             [package => [qw(moarvm-dev libuv1-dev libatomic-ops-dev libtommath-dev rakudo)]]]],
1971             [like_fedora,
1972             # XXX Does not work, moar.h missing
1973             [linuxdistro => 'centos',
1974             linuxdistroversion => {'<', 7}, # not available
1975             package => []],
1976             [package => 'moarvm-devel']],
1977             ],
1978              
1979             [cpanmod => 'Inline::Python',
1980             [os_freebsd,
1981             [package => 'python']],
1982             [like_debian,
1983             [package => 'python2.7-dev']],
1984             [like_fedora,
1985             [package => 'python-devel']],
1986             # macosx already comes with python, it seems
1987             ],
1988              
1989             [cpanmod => 'Inline::Ruby',
1990             [os_freebsd,
1991             [package => 'ruby']],
1992             [like_debian,
1993             [linuxdistrocodename => ['squeeze', 'wheezy'],
1994             [package => 'ruby1.8-dev']],
1995             [linuxdistrocodename => 'jessie',
1996             [package => 'ruby2.1-dev']],
1997             [linuxdistrocodename => [qw(xenial stretch)],
1998             [package => 'ruby2.3-dev']],
1999             [linuxdistrocodename => [qw(bionic buster)],
2000             [package => 'ruby2.5-dev']],
2001             ],
2002             [like_fedora,
2003             [package => 'ruby-devel']],
2004             ],
2005              
2006             [cpanmod => 'Inline::SLang',
2007             [os_freebsd,
2008             [package => 'libslang2']], # build error
2009             [like_debian,
2010             [package => 'libslang2-dev']], # module cannot detect lib location
2011             [like_fedora,
2012             [package => 'slang-devel']], # module cannot detect lib location
2013             ],
2014              
2015             [cpanmod => 'IPC::MMA',
2016             [os_freebsd,
2017             [package => 'mm']],
2018             [like_debian,
2019             [package => 'libmm-dev']],
2020             [like_fedora,
2021             [linuxdistro => 'centos', # not available for 6 and 7
2022             package => []],
2023             [package => 'mm-devel']],
2024             ],
2025              
2026             [cpanmod => 'IPC::XPA',
2027             # no package for FreeBSD or CentOS7
2028             [like_debian,
2029             [package => 'libxpa-dev']],
2030             ],
2031              
2032             [cpanmod => 'IPTables::libiptc',
2033             # Does not work with modern Linux distributions:
2034             # https://rt.cpan.org/Ticket/Display.html?id=111267
2035             [like_debian,
2036             [package => 'iptables-dev']],
2037             [like_fedora,
2038             [package => 'iptables-devel']],
2039             ],
2040              
2041             [cpanmod => ['JavaScript::Lite', 'JavaScript::SpiderMonkey'],
2042             [os_freebsd,
2043             [package => 'spidermonkey24 | spidermonkey185 | spidermonkey170 | spidermonkey17',]], # needs something like INC=-I/usr/local/include/js-17.0, but does not work (tried 170 and 185); spidermonkey52 exists also, but does not work
2044             [like_debian,
2045             [before_ubuntu_bionic,
2046             [package => 'libmozjs185-dev']], # needs something like INC=-I/usr/include/js, but does not work
2047             [package => []]], # newer debians have libmozjs-52-dev, but neither ::Lite nor ::SpiderMonkey work with it
2048             [like_fedora,
2049             [package => 'js-devel']],
2050             ],
2051              
2052             [cpanmod => 'JavaScript::V8',
2053             [os_freebsd,
2054             [package => 'v8']],
2055             [like_debian,
2056             [before_debian_buster,
2057             [package => [qw(libv8-3.14.5 libv8-3.14-dev)]]], # but still does not work, libplatform/libplatform.h missing
2058             [package => 'libnode-dev']], # # libv8* not anymore in buster, see https://tracker.debian.org/news/876959/libv8-314-removed-from-testing/; https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=934734 (but perl module does not pick v8.h from the installed location)
2059             [like_fedora,
2060             [package => 'v8-devel']], # but problems with Devel-CheckLib (centos7) and compilation errors (fedora), both with JavaScript-V8-0.10
2061             [os_darwin,
2062             [package => 'v8']], # but compilation errors (v8-5.0.71.33 <-> JavaScript-V8-0.07)
2063             ],
2064              
2065             [cpanmod => 'Jq',
2066             [os_freebsd,
2067             [package => 'jq']],
2068             [like_debian,
2069             [package => 'jq']],
2070             [like_fedora,
2071             [package => 'jq']],
2072             [os_darwin,
2073             [package => 'jq']],
2074             ],
2075              
2076             # XXX check whether Kafka::Librd needs an external librdkafka
2077             # at all, or if works with just the Alien package
2078             [cpanmod => ['Kafka::Librd', 'Net::Kafka'],
2079             [os_freebsd,
2080             [package => 'librdkafka']],
2081             [like_debian,
2082             [package => 'librdkafka-dev']],
2083             [like_fedora,
2084             [linuxdistro => 'centos', linuxdistroversion => {'<', 7},
2085             package => []], # N/A for centos6
2086             [package => 'librdkafka-devel']],
2087             [os_darwin,
2088             [package => 'librdkafka']],
2089             ],
2090              
2091             [cpanmod => 'Kernel::Keyring',
2092             # linux-only
2093             [like_debian,
2094             [package => 'libkeyutils-dev']],
2095             [like_fedora,
2096             [package => 'keyutils-libs-devel']],
2097             ],
2098              
2099             [cpanmod => 'Lab::VISA',
2100             # no package for freebsd
2101             [like_debian,
2102             [linuxdistrocodename => [qw(jessie xenial bionic)],
2103             [package => 'libvisa-dev']],
2104             [package => []], # not available anymore in stretch
2105             ],
2106             ],
2107              
2108             [cpanmod => 'Language::MzScheme',
2109             [os_freebsd,
2110             [package => 'racket']], # would need something like -I/usr/local/include/racket, but compilation still fails
2111             [like_debian,
2112             [package => ['racket', 'racket-common']]], # would need something like -I/usr/include/racket, but compilation still fails
2113             ],
2114              
2115             # XXX needs verification; maybe more latex-related modules should be listed here?
2116             [cpanmod => ['LaTeX::Driver', 'Template::Plugin::Latex'],
2117             [os_freebsd,
2118             [package => ['texlive-base', 'tex-formats']]],
2119             [like_debian,
2120             [package => ['texlive-latex-base', 'texlive-latex-extra']]]],
2121              
2122             [cpanmod => 'Lib::IXP',
2123             [package => 'libixp']],
2124              
2125             [cpanmod => 'LibJIT',
2126             [os_freebsd,
2127             [osvers => {'<', 10},
2128             [package => 'libjit']],
2129             [package => []]], # does not exist in freebsd 10 and later
2130             # XXX what aout debian?
2131             ],
2132              
2133             [cpanmod => 'Libssh::Session',
2134             [os_freebsd,
2135             # compiles only with freebsd 10, but not with freebsd 9
2136             [package => 'libssh']],
2137             [like_debian,
2138             # but does not work
2139             [package => 'libssh-dev']]],
2140              
2141             [cpanmod => 'libsoldout',
2142             [os_freebsd,
2143             [package => 'libsoldout']],
2144             [like_debian,
2145             [linuxdistrocodename => [qw(squeeze wheezy jessie precise trusty)],
2146             [package => []], # not available before stretch/xenial
2147             ],
2148             [package => 'libsoldout1-dev']], # passes with jessie, fails with xenial
2149             ],
2150              
2151             [#cpanmod => 'Lingua::Identify::CLD2',
2152             cpandist => qr{^Lingua-Identify-CLD2-\d}, # XXX until first stable release happens
2153             [os_freebsd,
2154             [package => 'cld2']],
2155             [like_debian,
2156             [before_ubuntu_xenial,
2157             [package => []]],
2158             [package => 'libcld2-dev']],
2159             [like_fedora,
2160             [linuxdistro => 'centos',
2161             package => []],
2162             [package => 'cld2-devel']],
2163             ],
2164            
2165             [cpanmod => 'Lingua::NATools',
2166             # XXX what about freebsd?
2167             [like_debian,
2168             [package => 'sqlite3']]],
2169              
2170             [cpanmod => 'Linux::ACL',
2171             [like_debian,
2172             [package => 'libacl1-dev']],
2173             [like_fedora,
2174             [package => 'libacl-devel']],
2175             ],
2176              
2177             [cpanmod => 'Linux::Inotify2',
2178             ## This inotify package is not able to run
2179             ## Linux::Inotify2, and if installed it
2180             ## casues problems with Alien-wxWidgets
2181             #[os_freebsd,
2182             # [package => 'libinotify']],
2183             [like_debian,
2184             [package => 'libc6-dev']]],
2185              
2186             [cpanmod => 'Linux::Netfilter::Log',
2187             [like_debian,
2188             [package => 'libnetfilter-log-dev']],
2189             [like_fedora,
2190             [package => 'libnetfilter_log-devel']],
2191             ],
2192              
2193             [cpanmod => ['Linux::Prctl', 'Linux::Capabilities'],
2194             [like_debian,
2195             [package => 'libcap-dev']],
2196             [like_fedora,
2197             [package => 'libcap-devel']],
2198             ],
2199              
2200             [cpanmod => 'Linux::Sysfs',
2201             [like_debian,
2202             [package => 'libsysfs-dev']],
2203             [like_fedora,
2204             [package => 'libsysfs-devel']]
2205             ],
2206              
2207             [cpanmod => ['Linux::Systemd::Journal', 'Log::Journald'],
2208             [like_debian,
2209             [linuxdistrocodename => ['squeeze', 'wheezy', 'jessie'],
2210             [package => 'libsystemd-journal-dev']],
2211             # sid, stretch and xenial
2212             [package => 'libsystemd-dev']],
2213             [like_fedora,
2214             [linuxdistro => 'centos',
2215             linuxdistroversion => qr{^7\.},
2216             package => 'systemd-devel']],
2217             ],
2218              
2219             [cpanmod => 'LMDB_File',
2220             [os_freebsd,
2221             [package => 'lmdb']],
2222             [like_debian,
2223             [linuxdistrocodename => ['squeeze', 'wheezy'],
2224             [package => []], # not available before jessie
2225             ],
2226             [package => 'liblmdb-dev']],
2227             [like_fedora,
2228             [package => 'lmdb-devel']],
2229             [os_darwin,
2230             [package => 'lmdb']],
2231             ],
2232              
2233             [cpanmod => 'Locale::gettext', # gettext distribution
2234             [os_freebsd,
2235             [package => 'gettext']],
2236             # XXX what about debian?
2237             [os_darwin,
2238             [package => 'gettext']],
2239             ],
2240              
2241             [cpanmod => 'Lucene',
2242             [os_freebsd,
2243             [package => 'clucene']],
2244             [like_debian,
2245             [package => 'libclucene-dev']]],
2246              
2247             [cpanmod => 'Mail::DMARC::opendmarc',
2248             [os_freebsd,
2249             [package => 'opendmarc']],
2250             [like_debian,
2251             [linuxdistrocodename => ['squeeze', 'wheezy'],
2252             [package => []]],
2253             [package => 'libopendmarc-dev']],
2254             [like_fedora,
2255             [package => 'libopendmarc-devel']],
2256             ],
2257              
2258             [cpanmod => 'Mail::OpenDKIM',
2259             [os_freebsd,
2260             [package => 'opendkim']],
2261             [like_debian,
2262             [package => 'libopendkim-dev']],
2263             [like_fedora,
2264             [package => 'libopendkim-devel']],
2265             [os_darwin,
2266             [package => 'libopendkim']],
2267             ],
2268              
2269             [cpanmod => ['Math::FFTW', 'PDL::FFTW3'],
2270             [os_freebsd,
2271             [package => 'fftw3']],
2272             [like_debian,
2273             [package => 'libfftw3-dev']],
2274             [like_fedora,
2275             [package => 'fftw-devel']],
2276             ],
2277              
2278             [cpanmod => 'Math::GammaFunction',
2279             [os_freebsd,
2280             # NOTE there's an entry in .cpan/prefs/01.DISABLED.yml
2281             [package => 'libRmath']],
2282             [like_debian,
2283             # not for small disks, installs about ~85MB
2284             [package => 'r-mathlib']],
2285             [like_fedora,
2286             [package => 'libRmath-devel']],
2287             ],
2288              
2289             [cpanmod => 'Math::GAP',
2290             [package => 'gap'], # needs 1-1.2GB of disk space
2291             ],
2292              
2293             [cpanmod => ['Math::GSL', 'PerlGSL::DiffEq'],
2294             [os_freebsd,
2295             [package => 'gsl']],
2296             [like_debian,
2297             [package => 'libgsl0-dev']],
2298             [like_fedora,
2299             [package => 'gsl-devel']],
2300             [os_darwin,
2301             [package => 'gsl']],
2302             ],
2303              
2304             [cpanmod => 'Math::MPC',
2305             [os_freebsd,
2306             [package => 'mpc']],
2307             [like_debian,
2308             [package => 'libmpc-dev']],
2309             [like_fedora,
2310             [package => 'libmpc-devel']],
2311             [os_darwin,
2312             [package => 'libmpc']],
2313             ],
2314              
2315             [cpanmod => 'Math::MPFI',
2316             # XXX what about freebsd?
2317             [like_debian,
2318             [package => 'libmpfi-dev']],
2319             [like_fedora,
2320             [package => 'mpfi-devel']],
2321             ],
2322              
2323             [cpanmod => 'Math::RngStream',
2324             [os_freebsd,
2325             [package => 'rngstreams']],
2326             # XXX what about debian?
2327             ],
2328              
2329             [cpanmod => 'Math::ThinPlateSpline',
2330             [os_freebsd,
2331             [package => 'boost-libs']], # untested
2332             [like_debian,
2333             [linuxdistrocodename => 'jessie',
2334             [package => 'libboost1.55-dev']],
2335             [linuxdistrocodename => 'xenial',
2336             [package => 'libboost1.58-dev']],
2337             [linuxdistrocodename => 'stretch',
2338             [package => 'libboost1.62-dev']],
2339             ],
2340             ],
2341              
2342             [cpanmod => 'MaxMind::DB::Reader::XS',
2343             [os_freebsd,
2344             [package => 'libmaxminddb']],
2345             [like_debian,
2346             [linuxdistrocodename => [qw(squeeze wheezy jessie precise)],
2347             package => []], # N/A
2348             [package => 'libmaxminddb-dev']], # xenian (but too old), stretch (works)
2349             [like_fedora,
2350             [package => 'libmaxminddb-devel']], # works
2351             ],
2352              
2353             [cpanmod => 'Media::MediaInfoLib',
2354             [os_freebsd,
2355             [package => 'libmediainfo']],
2356             [like_debian,
2357             [before_ubuntu_trusty,
2358             [package => []]],
2359             [package => 'libmediainfo-dev']],
2360             [like_fedora,
2361             [package => 'libmediainfo-devel']],
2362             ],
2363              
2364             [cpanmod => 'Mhash',
2365             [os_freebsd,
2366             [package => 'mhash']],
2367             [like_debian,
2368             [package => 'libmhash-dev']],
2369             ],
2370              
2371             [cpanmod => 'MIDI::ALSA',
2372             [os_freebsd,
2373             [package => ['alsa-lib', 'alsa-utils']]],
2374             [like_debian,
2375             [package => ['libasound2-dev', 'alsa-utils']]],
2376             ],
2377              
2378             [cpanmod => 'MP3::ID3Lib',
2379             [os_freebsd,
2380             [package => 'id3lib']],
2381             [like_debian,
2382             [package => 'libid3-3.8.3-dev']],
2383             [like_fedora,
2384             [package => 'id3lib-devel']],
2385             ],
2386              
2387             [cpanmod => 'MP4::LibMP4v2',
2388             [os_freebsd,
2389             [package => 'mp4v2']],
2390             [like_debian,
2391             [before_debian_buster,
2392             [package => 'libmp4v2-dev']],
2393             [package => []]], # not available for buster
2394             [like_fedora,
2395             [package => 'libmp4v2-devel']],
2396             ],
2397              
2398             [cpanmod => 'modperl2',
2399             # XXX what about freebsd?
2400             [like_debian,
2401             [linuxdistrocodename => ['squeeze', 'wheezy'],
2402             [package => 'apache2-prefork-dev']],
2403             [package => 'apache2-dev']]],
2404              
2405             [cpanmod => 'MPV::Simple',
2406             [os_freebsd,
2407             [package => 'mpv']],
2408             [like_debian,
2409             [before_ubuntu_trusty,
2410             [package => []]],
2411             [package => 'libmpv-dev']],
2412             ],
2413              
2414             [cpanmod => 'MusicBrainz::DiscID',
2415             [os_freebsd,
2416             [package => 'libdiscid']],
2417             [like_debian,
2418             [package => 'libdiscid-dev']],
2419             [like_fedora,
2420             [package => 'libdiscid-devel']],
2421             ],
2422              
2423             [cpanmod => 'NanoMsg::Raw',
2424             [os_freebsd,
2425             [package => 'nanomsg']],
2426             [like_debian,
2427             [linuxdistrocodename => ['squeeze', 'wheezy'],
2428             [package => []], # not available before jessie
2429             ],
2430             [package => 'libnanomsg-dev']]],
2431              
2432             [cpanmod => 'Neo4j::Bolt',
2433             [like_debian,
2434             [before_debian_stretch,
2435             [package => []],
2436             ],
2437             [package => 'libneo4j-client-dev']],
2438             ],
2439              
2440             [cpanmod => 'Net::Bluetooth',
2441             [like_debian,
2442             [package => 'libbluetooth-dev']],
2443             [like_fedora,
2444             [package => 'bluez-libs-devel']],
2445             ],
2446              
2447             [cpanmod => 'Net::CDP',
2448             [os_freebsd,
2449             [package => 'libnet']], # but build failure with Net-CDP-0.09
2450             [like_debian,
2451             [package => 'libnet1-dev']],
2452             [os_darwin,
2453             [package => 'libnet']], # but build failure with Net-CDP-0.09
2454             ],
2455              
2456             [cpanmod => 'Net::CUPS',
2457             [os_freebsd,
2458             [package => 'cups-filters']],
2459             [like_debian,
2460             [package => ['libcups2-dev', 'libcupsfilters-dev', 'libcupsimage2-dev']]]
2461             ],
2462              
2463             [cpanmod => 'Net::DBus',
2464             [os_freebsd,
2465             [package => ['dbus', 'pkgconf']]],
2466             [like_debian,
2467             [package => ['libdbus-1-dev', 'pkg-config | pkgconf']]],
2468             [like_fedora,
2469             [package => ['dbus-devel', 'pkgconfig']]],
2470             [os_darwin,
2471             [package => 'dbus']],
2472             ],
2473              
2474             [cpanmod => 'Net::DBus::GLib',
2475             [os_freebsd,
2476             [package => 'dbus-glib']],
2477             [like_debian,
2478             [package => 'libdbus-glib-1-dev']],
2479             [like_fedora,
2480             [package => 'dbus-glib-devel']],
2481             ],
2482              
2483             [cpanmod => 'Net::ESMTP',
2484             [os_freebsd,
2485             [package => 'libesmtp']],
2486             [like_debian,
2487             [package => 'libesmtp-dev']],
2488             [like_fedora,
2489             [package => 'libesmtp-devel']],
2490             ],
2491              
2492             [cpanmod => 'Net::Gadu',
2493             [os_freebsd,
2494             [package => 'pl-libgadu']],
2495             [like_debian,
2496             [package => 'libgadu-dev']],
2497             [linuxdistro => 'fedora', # not available for centos6+7, only for fedora28
2498             [package => 'libgadu-devel']],
2499             [os_darwin,
2500             [package => 'libgadu']],
2501             ],
2502              
2503             [cpanmod => 'Net::Ifstat',
2504             [os_freebsd,
2505             [package => 'ifstat']],
2506             [like_debian,
2507             [package => 'ifstat']],
2508             [like_fedora,
2509             [package => 'iproute']],
2510             [os_darwin,
2511             [package => 'ifstat']],
2512             ],
2513              
2514             [cpanmod => 'Net::Jabber::Loudmouth',
2515             [os_freebsd,
2516             [package => 'loudmouth']],
2517             [like_debian,
2518             [package => 'libloudmouth1-dev']],
2519             [like_fedora,
2520             [package => 'loudmouth-devel']],
2521             ],
2522              
2523             [cpanmod => 'Net::LDAPxs',
2524             [os_freebsd,
2525             [package => 'ldapsdk']], # but package seems to be broken and unmaintained
2526             [like_debian,
2527             [package => 'libldap2-dev']],
2528             [like_fedora,
2529             [package => 'openldap-devel']],
2530             ],
2531            
2532             [cpanmod => 'Net::Libdnet',
2533             [os_freebsd,
2534             [package => 'libdnet']],
2535             [like_debian,
2536             # but does not work without applying the patch manually - see https://rt.cpan.org/Ticket/Display.html?id=106021
2537             [package => 'libdumbnet-dev']],
2538             [like_fedora,
2539             [package => 'libdnet-devel']],
2540             [os_darwin,
2541             [package => 'libdnet']],
2542             ],
2543              
2544             [cpanmod => 'Net::LibIDN',
2545             [os_freebsd,
2546             [package => 'libidn']],
2547             [like_debian,
2548             [package => 'libidn11-dev']],
2549             [like_fedora,
2550             [package => 'libidn-devel']],
2551             [os_darwin,
2552             [package => 'libidn']],
2553             ],
2554              
2555             [cpanmod => 'Net::LibIDN2',
2556             [os_freebsd,
2557             [package => 'libidn2']],
2558             [like_debian,
2559             [before_ubuntu_bionic,
2560             [package => []]], # libidn2-0-dev exists, but is too old
2561             [package => 'libidn2-dev']],
2562             [like_fedora,
2563             [package => 'libidn2-devel']],
2564             # currently no libidn2 in homebrew
2565             ],
2566              
2567             [cpanmod => 'Net::LibLO',
2568             [os_freebsd,
2569             [package => 'liblo']],
2570             [like_debian,
2571             [package => 'liblo-dev']],
2572             [like_fedora,
2573             [linuxdistro => 'centos', linuxdistroversion => qr{^7\.},
2574             [package => []]], # N/A for centos7
2575             [package => 'liblo-devel']],
2576             ],
2577              
2578             ## even libwebsockets-dev in Ubuntu 22.04 and debian 11 is too old for the module (4.0.20 < 4.3.0)
2579             #[cpanmod => 'Net::Libwebsockets',
2580             # [like_debian,
2581             # [package => 'libwebsockets-dev']],
2582             #],
2583              
2584             [cpanmod => 'Net::NATS::Streaming::PB',
2585             [os_freebsd,
2586             [package => 'protobuf']],
2587             [like_debian,
2588             [package => 'protobuf-compiler']],
2589             [like_fedora,
2590             [package => [qw(protobuf-compiler protobuf-devel)]]],
2591             ],
2592              
2593             [cpanmod => 'Net::NfDump',
2594             [like_debian,
2595             [package => ['flex', 'byacc']]],
2596             # XXX what about freebsd?
2597             ],
2598              
2599             [cpanmod => 'Net::LibAsyncNS',
2600             # it seems there's no libasyncns for freebsd
2601             [like_debian,
2602             [package => 'libasyncns-dev']],
2603             [like_fedora,
2604             [package => 'libasyncns-devel']],
2605             ],
2606              
2607             [cpanmod => 'Net::LibNFS',
2608             [os_freebsd,
2609             [package => 'libnfs']],
2610             [like_debian,
2611             [package => 'libnfs-dev']],
2612             [like_fedora,
2613             [package => 'libnfs-devel']],
2614             ],
2615              
2616             [cpanmod => 'Net::LibNIDS',
2617             [os_freebsd,
2618             # but does not work (no libnids.so in freebsd port, just .a)
2619             [package => ['libnids', 'libnet', 'libpcap']]],
2620             [like_debian,
2621             [package => ['libnids-dev', 'libnet1-dev', 'libpcap0.8-dev']]],
2622             [like_fedora,
2623             [package => ['libnids-devel', 'libnet-devel', 'libpcap-devel']]],
2624             ],
2625              
2626             [cpanmod => 'Net::Pcap',
2627             [like_debian,
2628             [package => 'libpcap0.8-dev']],
2629             [like_fedora,
2630             [package => 'libpcap-devel']],
2631             ],
2632              
2633             [cpanmod => 'Net::oRTP',
2634             [os_freebsd,
2635             [package => 'ortp']],
2636             [like_debian,
2637             [package => 'libortp-dev']]],
2638              
2639             [cpanmod => 'Net::RabbitMQ::Client',
2640             [os_freebsd,
2641             [package => 'rabbitmq-c-devel']],
2642             [like_debian,
2643             [package => 'librabbitmq-dev']], # amqp_tcp_socket.h is provided by this package, but compilation still fails
2644             [like_fedora,
2645             [package => 'librabbitmq-devel']],
2646             ],
2647              
2648             ## conflicts with avahi-app on FreeBSD
2649             ## With avahi-app installed, -I/usr/local/include/avahi-compat-howl needs to be specified
2650             ## but then the test suite fails
2651             #[cpanmod => "Net::Rendezvous::Publish::Backend::Howl",
2652             # [os_freebsd,
2653             # [package => 'howl']],
2654             #],
2655              
2656             [cpanmod => 'Net::SIGTRAN::SCTP',
2657             # no sctp on freebsd or centos
2658             [like_debian,
2659             [package => 'libsctp-dev']]],
2660              
2661             [cpanmod => 'Net::Silk',
2662             [os_freebsd,
2663             [package => 'silktools']],
2664             # does not seem to exist in debian wheezy..buster, Ubuntu 16.04 or 18.04, or CentOS6
2665             ],
2666              
2667             [cpanmod => 'Net::SSH2',
2668             [os_freebsd,
2669             [package => 'libssh2']],
2670             [like_debian,
2671             [linuxdistrocodename => [qw(precise)],
2672             [package => [qw(libssh2-1-dev libgcrypt-dev)]]],
2673             [package => 'libssh2-1-dev']],
2674             [like_fedora,
2675             [package => 'libssh2-devel']],
2676             # Net-SSH2-0.58 already installs the homebrew package for libssh2 itself
2677             ],
2678              
2679             [cpanmod => 'Net::WDNS',
2680             [os_freebsd,
2681             [package => 'wdns']],
2682             # not available for debian/wheezy and jessie
2683             ],
2684              
2685             [cpanmod => ['Net::Z3950::ZOOM', 'Net::Z3950::Simple2ZOOM', 'ZOOM::IRSpy'],
2686             [os_freebsd,
2687             [package => 'yaz']],
2688             [like_debian,
2689             [package => 'libyaz-dev']],
2690             [like_fedora,
2691             [linuxdistro => 'centos', linuxdistroversion => qr{^7\.}, # available only for CentOS6, not for 7
2692             [package => []]],
2693             [package => 'libyaz-devel']],
2694             [os_darwin,
2695             [package => 'yaz']],
2696             ],
2697              
2698             [cpanmod => ['Net::ZooKeeper', 'ZooKeeper'],
2699             [os_freebsd,
2700             [package => 'libzookeeper']],
2701             [like_debian,
2702             [linuxdistrocodename => 'squeeze',
2703             [package => []]], # not available
2704             [package => ['libzookeeper-mt-dev', 'zookeeperd']]],
2705             [os_darwin,
2706             [package => 'zookeeper']],
2707             ],
2708              
2709             [cpanmod => 'NewRelic::Agent',
2710             # freebsd does not work, bundled .so files are linux-only
2711             [like_debian,
2712             [before_debian_buster,
2713             [package => ['g++', 'libcurl3']]],
2714             [package => ['g++', 'libcurl4']]],
2715             ],
2716              
2717             [cpanmod => 'Ogg::LibOgg',
2718             [os_freebsd,
2719             [package => 'libogg']],
2720             [like_debian,
2721             [package => 'libogg-dev']],
2722             [like_fedora,
2723             [package => 'libogg-devel']],
2724             ],
2725              
2726             [cpanmod => ['Ogg::Vorbis', 'Ogg::Vorbis::Decoder'],
2727             [os_freebsd,
2728             [package => 'libvorbis']],
2729             [like_debian,
2730             [package => 'libvorbis-dev']],
2731             [like_fedora,
2732             [package => 'libvorbis-devel']],
2733             ],
2734              
2735             [cpanmod => 'Ogg::Vorbis::Header',
2736             [os_freebsd,
2737             [package => 'libogg']],
2738             [like_debian,
2739             [package => ['libogg-dev', 'libvorbis-dev']]],
2740             [like_fedora,
2741             [package => ['libogg-devel', 'libvorbis-devel']]],
2742             ],
2743              
2744             [cpanmod => 'Ogre',
2745             [os_freebsd,
2746             [package => 'ogre3d']], # untested
2747             [like_debian,
2748             [package => 'libogre-1.9-dev']], # compilation failures
2749             ],
2750              
2751             [cpanmod => 'OIS',
2752             ## ois in freebsd ports is 1.2.0, but 1.3.0 is required
2753             #[os_freebsd,
2754             # [package => 'ois']],
2755             [like_debian,
2756             [package => 'libois-dev']]],
2757              
2758             [cpanmod => 'OpenGL',
2759             [os_freebsd,
2760             [package => 'freeglut']],
2761             [os_dragonfly,
2762             [package => 'freeglut']],
2763             [like_debian,
2764             [package => ['freeglut3-dev', 'libxmu-dev', 'libxi-dev']]],
2765             [like_fedora,
2766             [package => ['freeglut-devel', 'libXmu-devel']]],
2767             ],
2768              
2769             [cpanmod => 'OpenGL::FTGL',
2770             [like_debian,
2771             # but does not work, lookup into wrong freetype directory
2772             [package => ['libftgl-dev', 'libfreetype6-dev']]]],
2773              
2774             [cpanmod => 'OpenGL::GLFW',
2775             [os_freebsd,
2776             [package => 'glfw']],
2777             [like_debian,
2778             [package => 'libglfw3-dev']],
2779             [like_fedora,
2780             [linuxdistro => 'centos',
2781             linuxdistroversion => qr{^7\.},
2782             package => 'glfw-devel']],
2783             [os_darwin,
2784             [package => 'glfw']],
2785             ],
2786              
2787             [cpanmod => 'OpenGL::Modern',
2788             [like_fedora,
2789             [package => 'mesa-libGLU-devel']],
2790             ],
2791              
2792             [cpanmod => 'PAM',
2793             [like_debian,
2794             [package => 'libpam0g-dev']],
2795             [like_fedora,
2796             [package => 'pam-devel']],
2797             ],
2798              
2799             [cpanmod => 'Pango',
2800             [os_freebsd,
2801             [package => 'pango']],
2802             [os_dragonfly,
2803             [package => 'pango']],
2804             [os_openbsd,
2805             [package => 'pango']],
2806             [like_debian,
2807             [package => 'libpango1.0-dev']],
2808             [like_fedora,
2809             [package => 'pango-devel']],
2810             [os_darwin,
2811             [package => 'pango']],
2812             ],
2813              
2814             [cpanmod => 'Parallel::Pvm',
2815             [os_freebsd,
2816             [package => 'pvm']],
2817             [like_debian,
2818             [package => 'pvm-dev']]],
2819              
2820             [cpanmod => 'Passwd::Keyring::Gnome',
2821             [os_freebsd,
2822             [package => ['libgnome-keyring', 'pkgconf']]],
2823             [like_debian,
2824             [before_debian_buster,
2825             [package => 'libgnome-keyring-dev']],
2826             [package => []]], # not available for buster and later
2827             [like_fedora,
2828             [linuxdistro => 'centos', linuxdistroversion => {'<', 7},
2829             [package => 'gnome-keyring-devel']],
2830             [package => 'libgnome-keyring-devel']],
2831             ],
2832              
2833             [cpanmod => 'PDL::IO::Matlab',
2834             [os_freebsd,
2835             [package => 'matio']],
2836             [like_debian,
2837             [before_ubuntu_trusty,
2838             [package => []]],
2839             [package => 'libmatio-dev']],
2840             [like_fedora,
2841             [linuxdistro => 'centos', linuxdistroversion => {'<', 7},
2842             [package => []]],
2843             [package => 'matio-devel']],
2844             ],
2845              
2846             [cpanmod => 'PDL::NetCDF',
2847             [os_freebsd,
2848             [package => 'netcdf']],
2849             [like_debian,
2850             [package => 'libnetcdf-dev']]],
2851              
2852             [cpanmod => 'PDL::Opt::QP',
2853             [os_freebsd,
2854             [package => 'blas']],
2855             [like_debian,
2856             [package => 'libblas-dev']],
2857             [like_fedora,
2858             [package => 'blas-static']],
2859             ],
2860              
2861             [cpanmod => 'pEFL',
2862             [like_debian,
2863             [linuxdistrocodename => [qw(jessie)],
2864             [package => 'libelementary-dev']],
2865             [before_debian_buster,
2866             [package => []]],
2867             [package => 'libefl-all-dev']],
2868             [like_fedora,
2869             [linuxdistro => 'fedora',
2870             [package => 'efl-devel']]]],
2871              
2872             [cpanmod => 'PerlQt',
2873             [like_debian,
2874             [linuxdistrocodename => 'squeeze',
2875             [package => 'libqt3-mt-dev']],
2876             [package => []] # no libqt3 anymore for wheezy
2877             ]],
2878              
2879             [cpanmod => 'PGPLOT',
2880             [os_freebsd,
2881             [package => 'pgplot']],
2882             [like_debian,
2883             [package => 'pgplot5']],
2884             # no pgplot package for CentOS7
2885             ],
2886              
2887             [cpanmod => 'Pod::Spelling',
2888             # XXX what about freebsd?
2889             [like_debian,
2890             [package => 'ispell']]],
2891              
2892             [cpanmod => 'Pod::Weaver::Plugin::Ditaa',
2893             [like_fedora,
2894             [linuxdistro => 'centos', # no ditaa for centos6 or 7
2895             [package => []]],
2896             # fallthrough for fedora
2897             ],
2898             [package => 'ditaa']],
2899              
2900             [cpanmod => 'POE::Component::NomadJukebox',
2901             # but compilation errors on FreeBSD, Debian and Ubuntu
2902             [os_freebsd,
2903             [package => 'libnjb']],
2904             [like_debian,
2905             [package => 'libnjb-dev']],
2906             ],
2907              
2908             [cpanmod => 'Poppler',
2909             [os_freebsd,
2910             [package => ['poppler', 'poppler-glib']]],
2911             [like_debian,
2912             [package => ['libpoppler-dev', 'libpoppler-glib-dev']]],
2913             [like_fedora,
2914             [package => 'poppler-glib-devel']], # but available version too low on CentOS6
2915             [os_darwin,
2916             [package => 'poppler']],
2917             ],
2918              
2919             [cpanmod => 'Prima',
2920             # XXX what about freebsd?
2921             [like_debian,
2922             [linuxdistrocodename => [qw(squeeze wheezy jessie precise xenial)],
2923             [package => [qw(libx11-dev libxcursor-dev libxpm-dev libgif-dev libpng12-dev libjpeg-dev), 'pkg-config | pkgconf']]], # XXX maybe also add libtiff...
2924             [package => [qw(libx11-dev libxcursor-dev libxpm-dev libgif-dev libpng-dev libjpeg-dev), 'pkg-config | pkgconf']], # XXX maybe also add libtiff...
2925             ],
2926             [like_fedora,
2927             [package => [qw(libXcursor-devel)]]], # XXX probably incomplete
2928             ],
2929              
2930             [cpanmod => 'Primesieve',
2931             [os_freebsd,
2932             [osvers => {'>=', 11},
2933             [package => 'primesieve']]],
2934             [like_debian,
2935             [before_ubuntu_xenial,
2936             [package => []]],
2937             [linuxdistrocodename => [qw(xenial)],
2938             [package => 'libprimesieve6-dev']],
2939             [linuxdistrocodename => [qw(stretch)],
2940             [package => 'libprimesieve7-dev']],
2941             [package => 'libprimesieve-dev']],
2942             [like_fedora,
2943             [linuxdistro => 'centos',
2944             package => []], # N/A for centos6,7,8
2945             [package => 'primesieve-devel']],
2946             [os_darwin,
2947             [package => 'primesieve']],
2948             ],
2949              
2950             [cpanmod => 'PulseAudio',
2951             [package => 'pulseaudio']],
2952              
2953             [cpanmod => 'QDBM_File',
2954             # XXX debian has libqdbm-dev, but CPAN mod needs patching for -I
2955             [os_freebsd,
2956             [package => 'qdbm']]],
2957              
2958             [cpanmod => 'Qstruct',
2959             # XXX what about freebsd?
2960             [like_debian,
2961             [package => 'ragel']]],
2962              
2963             [cpanmod => 're::engine::Hyperscan',
2964             # not available on CentOS7
2965             [os_freebsd,
2966             [package => 'hyperscan']],
2967             [like_debian,
2968             [linuxdistrocodename => [qw(squeeze wheezy jessie xenial)],
2969             [package => []]], # not available before stretch
2970             [package => 'libhyperscan-dev']],
2971             [like_fedora,
2972             [linuxdistro => 'centos', # not available for 6 and 7
2973             package => []],
2974             [package => 'hyperscan-devel']],
2975             ],
2976              
2977             [cpanmod => 're::engine::PCRE2',
2978             [os_freebsd,
2979             [package => 'pcre2']],
2980             [like_debian,
2981             [linuxdistrocodename => [qw(squeeze wheezy jessie)],
2982             [package => []]], # not available before stretch; available on Ubuntu/xenial
2983             [package => 'libpcre2-dev']],
2984             [like_fedora,
2985             [package => 'pcre2-devel']],
2986             [os_darwin,
2987             [package => 'pcre2']],
2988             ],
2989              
2990             [cpanmod => 'Remind::Client', # but does not work: "Remind output didn't look right; got: 2017/04/24 it works! today"
2991             [os_freebsd,
2992             [package => 'remind']],
2993             [like_debian,
2994             [package => 'remind']],
2995             ],
2996              
2997             [cpanmod => 'RPC::Xmlrpc_c::Client',
2998             [os_freebsd,
2999             [package => 'xmlrpc-c']],
3000             [like_debian,
3001             [linuxdistrocodename => ['squeeze', 'wheezy'],
3002             [package => 'libxmlrpc-c3-dev']],
3003             [package => 'libxmlrpc-core-c3-dev']],
3004             [like_fedora,
3005             [package => 'xmlrpc-c-devel']],
3006             ],
3007              
3008             # ## various rpm using tools --- XXX which one exactly?
3009             # ## XXX disabled because package was not yet built (last check 2014-08-10)
3010             # ## see http://portsmon.freebsd.org/portoverview.py?category=archivers&portname=rpm5
3011             # #package { "rpm5": ensure => installed }
3012             [cpanmod => 'RPM2',
3013             [like_debian,
3014             [package => 'librpm-dev']], # but tests fail
3015             [like_fedora,
3016             [package => 'rpm-devel']],
3017             ],
3018              
3019             [cpanmod => 'RPM4',
3020             [os_freebsd,
3021             [package => 'rpm4']],
3022             [like_debian,
3023             [package => 'rpm']],
3024             [like_fedora,
3025             [package => 'rpm']],
3026             [os_darwin,
3027             [package => 'rpm']],
3028             ],
3029              
3030             [cpanmod => 'RRD::Tweak',
3031             [os_freebsd,
3032             [package => 'rrdtool']],
3033             [like_debian,
3034             [package => 'librrd-dev']],
3035             [like_fedora,
3036             [package => 'rrdtool-devel']],
3037             ],
3038              
3039             [cpanmod => 'Search::Namazu',
3040             [os_freebsd,
3041             [package => 'namazu2']],
3042             [like_debian,
3043             [package => 'libnmz7-dev']],
3044             [os_darwin,
3045             [package => 'namazu']],
3046             ],
3047              
3048             [cpanmod => 'Search::Odeum',
3049             [os_freebsd,
3050             [package => 'qdbm']],
3051             [like_debian,
3052             [package => 'libqdbm-dev']]],
3053              
3054             [cpanmod => 'Search::Xapian',
3055             [os_freebsd,
3056             [package => 'xapian-core']],
3057             [like_debian,
3058             [package => 'libxapian-dev']],
3059             [like_fedora,
3060             [package => 'xapian-core-devel']],
3061             [os_darwin,
3062             [package => 'xapian']],
3063             ],
3064              
3065             [cpanmod => 'SGML::Parser::OpenSP',
3066             # XXX freebsd has textproc/opensp, but the module requires g++, so this will fail on clang++ systems
3067             [like_debian,
3068             [package => 'libosp-dev']],
3069             [like_fedora,
3070             [package => 'opensp-devel']],
3071             ],
3072              
3073             ## version mismatch
3074             #[cpanmod => 'SNMP',
3075             # [os_freebsd,
3076             # [package => 'net-snmp']],
3077             # [like_debian,
3078             # [package => 'libsnmp-dev']],
3079             # [like_fedora,
3080             # [package => 'net-snmp-devel']],
3081             #],
3082              
3083             [cpanmod => 'SNMP::OID::Translate',
3084             [os_freebsd,
3085             [package => 'net-snmp']],
3086             [like_debian,
3087             [package => ['libsnmp-dev', 'snmp-mibs-downloader']]]],
3088              
3089             [cpanmod => ['Sort::Naturally::ICU', 'Unicode::ICU::Collator'],
3090             [os_freebsd,
3091             [package => 'icu']], # but Sort::Naturally::ICU build fails
3092             [like_debian,
3093             [package => 'libicu-dev']],
3094             [like_fedora, # Sort::Naturally::ICU builds on centos7 and fedora28, missing further packages on centos6
3095             [package => 'libicu-devel']],
3096             ],
3097              
3098             [cpanmod => 'Speech::Recognizer::SPX',
3099             [os_freebsd,
3100             [package => 'pocketsphinx']],
3101             [like_debian,
3102             [package => ['libpocketsphinx-dev', 'libsphinxbase-dev']]],
3103             ],
3104              
3105             [cpanmod => ['Spread', 'Spread::Client::Constant'],
3106             [os_freebsd,
3107             # net/spread also exists, refering to version 3, but tests seem to pass with version 4
3108             [package => 'spread4']],
3109             [like_debian,
3110             [linuxdistrocodename => 'squeeze',
3111             [package => 'libspread1-dev']],
3112             # not available in wheezy and later
3113             ]],
3114              
3115             [cpanmod => 'Store::CouchDB',
3116             # tests pass also without, but most tests are skipped
3117             [os_freebsd,
3118             [package => 'couchdb']],
3119             [like_debian,
3120             [linuxdistrocodename => ['squeeze', 'jessie'],
3121             [package => []], # not available in jessie, just wheezy and sid
3122             ],
3123             [package => 'couchdb']]],
3124              
3125             [cpanmod => ['SVN::Hooks', 'SVN::Agent', 'SVN::S4'], # XXX maybe more SVN::* modules?
3126             [package => 'subversion']],
3127              
3128             [cpanmod => 'Sword',
3129             [os_freebsd,
3130             [package => 'sword']],
3131             [like_debian,
3132             [package => 'libsword-dev']]],
3133              
3134             [cpanmod => 'Sys::Gamin',
3135             [os_freebsd,
3136             [package => 'gamin'], # note: possible conflict with fam XXX maybe specify an alternative?
3137             ],
3138             [like_debian,
3139             [package => 'libfam-dev']]],
3140              
3141             [cpanmod => 'Sys::Hwloc',
3142             [os_freebsd,
3143             [package => 'hwloc']],
3144             [like_debian,
3145             [package => 'libhwloc-dev']],
3146             [like_fedora,
3147             [package => 'hwloc-devel']],
3148             ],
3149              
3150             [cpanmod => 'Sys::Virt', # but the latest Sys::Virt usually needs the latest libvirt
3151             [os_freebsd,
3152             [package => 'libvirt']],
3153             # XXX what about debian?
3154             ],
3155              
3156             [cpanmod => 'Systemd::Daemon',
3157             [like_debian,
3158             [package => 'libsystemd-dev']]],
3159              
3160             [cpanmod => 'Tcl',
3161             [os_freebsd,
3162             [package => 'tcl86 | tcl85 | tcl84']],
3163             [like_debian,
3164             [package => 'tcl8.6-dev | tcl8.5-dev']],
3165             [like_fedora,
3166             [package => 'tcl-devel']],
3167             ],
3168              
3169             [cpanmod => 'Tcl::pTk',
3170             [os_freebsd,
3171             [package => 'tk86 | tk85 | tk84']],
3172             [like_debian,
3173             [package => ['tk8.6-dev | tk8.5-dev', 'tcl']]],
3174             ],
3175              
3176             [cpanmod => 'Tcl::Tk', # XXX maybe also Tkx?
3177             [os_freebsd,
3178             [package => 'tk86 | tk85 | tk84']],
3179             [like_debian,
3180             # tcllib is needed for the snit package
3181             [package => ['tk8.6-dev | tk8.5-dev', 'tcllib']]],
3182             [like_fedora,
3183             [package => ['tk', 'tcllib']]],
3184             ],
3185              
3186             [cpanmod => 'TCOD', # currently (with 0.009) does not work
3187             [like_debian,
3188             [before_debian_stretch,
3189             [package => []]], # not available
3190             [package => 'libtcod-dev']],
3191             ],
3192              
3193             [cpanmod => 'Template::Plugin::React',
3194             [os_freebsd,
3195             [package => 'swig13']],
3196             # XXX what about debian?
3197             ],
3198              
3199             [cpanmod => 'Term::EditLine',
3200             [os_freebsd,
3201             [package => 'libedit']],
3202             [like_debian,
3203             [package => 'libedit-dev']]],
3204              
3205             [cpanmod => ['RL', 'Term::ReadLine::Gnu'],
3206             [like_debian,
3207             [before_debian_stretch,
3208             [package => 'libreadline6-dev']],
3209             [package => 'libreadline-dev']],
3210              
3211             [like_fedora,
3212             [package => 'readline-devel']],
3213             # XXX what about freebsd?
3214             # XXX no homebrew package for darwin (checked 2016-05-22)
3215             ],
3216              
3217             [cpanmod => 'Term::Terminfo',
3218             [like_debian,
3219             [package => 'libncurses5-dev']],
3220             [like_fedora,
3221             [package => 'ncurses-devel']],
3222             ],
3223              
3224             [cpanmod => 'Term::VTerm',
3225             [os_freebsd,
3226             [package => 'libvterm']],
3227             [like_debian,
3228             [before_debian_stretch,
3229             [package => []]],
3230             [package => 'libvterm-dev']],
3231             [like_fedora,
3232             [linuxdistro => 'centos', linuxdistroversion => {'<', 7},
3233             package => []], # N/A for centos6
3234             [package => 'libvterm-devel']],
3235             [os_darwin,
3236             [package => 'libvterm']],
3237             ],
3238              
3239             [cpanmod => 'Text::AI::CRM114',
3240             [os_freebsd,
3241             [package => 'libcrm114']],
3242             # No package available for Debian or CentOS7
3243             ],
3244              
3245             [cpanmod => 'Text::Aspell',
3246             [os_freebsd,
3247             [# "aspell" alone is not enough, test needs also English dictionary
3248             package => ['aspell', 'en-aspell']]],
3249             [like_debian,
3250             [package => 'libaspell-dev']],
3251             [like_fedora,
3252             [# test needs also English dictionary
3253             package => ['aspell-devel', 'aspell-en']]],
3254             [os_darwin,
3255             [package => 'aspell']],
3256             ],
3257              
3258             [cpanmod => 'Text::Bidi',
3259             # otherwise real tests are skipped
3260             [os_freebsd,
3261             # anyway, version of fribidi available in 2015-04 is too old, so tests are still skipped
3262             [package => 'fribidi']],
3263             [like_debian,
3264             # on wheezy the library is too old, so tests are anyway skipped
3265             [package => 'libfribidi-dev']],
3266             [like_fedora,
3267             [package => 'fribidi-devel']],
3268             [os_darwin,
3269             [package => 'fribidi']],
3270             ],
3271              
3272             [cpanmod => 'Text::CSV::LibCSV',
3273             [os_freebsd,
3274             [package => 'libcsv']],
3275             [like_debian,
3276             [package => 'libcsv-dev']],
3277             [like_fedora,
3278             [package => 'libcsv-devel']],
3279             ],
3280              
3281             [cpanmod => 'Text::Hspell',
3282             [os_freebsd,
3283             [osvers => {'>=', 10},
3284             [package => 'iw-hspell']],
3285             [package => []]], # not available for fbsd9
3286             [like_debian,
3287             [before_ubuntu_trusty, # not available for wheezy
3288             [package => []]],
3289             [package => 'hspell']],
3290             [like_fedora,
3291             [linuxdistro => 'centos', linuxdistroversion => {'==', 8}, # not available (maybe not yet?) for CentOS8
3292             [package => []]],
3293             [package => 'hspell-devel']],
3294             ],
3295              
3296             [cpanmod => 'Text::Hunspell',
3297             [os_freebsd,
3298             [package => 'hunspell']],
3299             [like_debian,
3300             [package => 'libhunspell-dev']]],
3301              
3302             [cpanmod => 'Text::Kakasi',
3303             [os_freebsd,
3304             [package => 'ja-kakasi']],
3305             [like_debian,
3306             # but there are linking errors on Debian
3307             [package => 'libkakasi2-dev']],
3308             [os_darwin,
3309             [package => 'kakasi']],
3310             [like_fedora,
3311             [linuxdistro => 'centos',
3312             package => []], # N/A for centos6+7
3313             [package => ['kakasi-devel', 'kakasi-dict']]],
3314             ],
3315              
3316             [cpanmod => 'Text::Migemo',
3317             [os_freebsd,
3318             [package => 'ja-migemo']],
3319             [like_debian,
3320             [package => 'libmigemo-dev']]],
3321              
3322             [cpanmod => 'Text::QRCode',
3323             [os_freebsd,
3324             [package => 'libqrencode']],
3325             [like_debian,
3326             [package => 'libqrencode-dev']],
3327             [like_fedora,
3328             [package => 'qrencode-devel']],
3329             ],
3330              
3331             [cpanmod => 'Text::VimColor',
3332             [package => 'vim']],
3333              
3334             [cpanmod => 'Tie::Cvs',
3335             [package => 'cvs']],
3336              
3337             [cpanmod => 'Tie::Judy', # but tests fail (hash randomization?)
3338             [os_freebsd,
3339             [package => 'judy']],
3340             [like_debian,
3341             [package => 'libjudy-dev']],
3342             [like_fedora,
3343             [package => 'Judy-devel']],
3344             ],
3345              
3346             [cpanmod => 'Tree::Suffix',
3347             [os_freebsd,
3348             [package => 'libstree']],
3349             # XXX what about debian?
3350             ],
3351              
3352             [cpanmod => 'Tk',
3353             # freetype2 and libXft are optional, but highly recommended as it provides nicer fonts
3354             # jpeg and png is bundled in Tk, but usually the Tk version is older
3355             [os_freebsd,
3356             [package => qw(freetype2 libXft libX11 png), freebsd_jpeg]],
3357             [like_debian,
3358             [package => [qw(libx11-dev libfreetype6-dev libxft-dev libpng-dev libz-dev libjpeg-dev)]]],
3359             [like_fedora,
3360             [package => [qw(libX11-devel libXft-devel libpng-devel zlib-devel libjpeg-devel)]]],
3361             ],
3362              
3363             [cpanmod => 'Tk::TIFF',
3364             [os_freebsd,
3365             [package => 'tiff']],
3366             [like_debian,
3367             [linuxdistrocodename => ['squeeze', 'wheezy', 'precise'],
3368             [package => 'libtiff4-dev']],
3369             [package => 'libtiff5-dev']]],
3370              
3371             [cpanmod => 'Tk::Zinc',
3372             # XXX freebsd?
3373             [like_debian,
3374             [package => ['mesa-common-dev', 'libglu1-mesa-dev']]]],
3375              
3376             [cpanmod => 'UAV::Pilot::SDL',
3377             [like_debian,
3378             [package => ['libavcodec-dev', 'libswscale-dev', 'libsdl1.2-dev']]],
3379             ],
3380              
3381             [cpanmod => 'UAV::Pilot::Video::Ffmpeg',
3382             [like_debian,
3383             [package => 'libavcodec-dev']],
3384             ],
3385              
3386             [cpanmod => 'UDT::Simple',
3387             [os_freebsd,
3388             [package => 'udt']],
3389             [like_debian,
3390             [package => 'libudt-dev']]],
3391              
3392             [cpanmod => 'Unix::Statgrab',
3393             [os_freebsd,
3394             [package => 'libstatgrab']],
3395             [os_dragonfly,
3396             [package => 'libstatgrab']],
3397             [os_openbsd,
3398             # doesn't work
3399             [package => 'libstatgrab']],
3400             [like_debian,
3401             # unfortunately does not work in wheezy, the library version is too old for the module
3402             # jessie and later is fine
3403             [package => 'libstatgrab-dev']],
3404             [like_fedora,
3405             # package found in CentOS7 is probably too old
3406             [package => 'libstatgrab-devel']],
3407             [os_darwin,
3408             [package => 'libstatgrab']]],
3409              
3410             [cpanmod => ['URPM', 'URPM::Resolve', 'urpmi'],
3411             [os_freebsd,
3412             [package => 'rpm4']],
3413             [like_debian,
3414             [package => ['rpm', 'librpm-dev']]], # but does not work anyway with the librpm version as found on squeeze
3415             [like_fedora,
3416             [package => ['rpm', 'rpm-build', 'rpm-devel']]],
3417             [os_darwin,
3418             [package => 'rpm']],
3419             ],
3420              
3421             [cpanmod => 'USB::LibUSB',
3422             [like_debian,
3423             [package => 'libusb-1.0-0-dev']], # exists on wheezy, but: Minimum required version of libusb-1.0 is 1.0.17. Installed: 1.0.11
3424             ],
3425              
3426             # Since UV::Util 0.03 Alien::libuv is used
3427             # But keep this mapping in case somebody wants to
3428             # force usage of the native system packages.
3429             ($ENV{PERL_CPAN_SYSDEPS_UV_UTIL_NATIVE}
3430 28 50   28 1 56549 ? [cpanmod => 'UV::Util',
3431             [os_freebsd,
3432             [package => 'libuv']], # does not work, -I/usr/local/include seems to be missing
3433             [like_debian,
3434             [linuxdistrocodename => ['squeeze', 'wheezy'],
3435             [package => []], # not available before jessie
3436             ],
3437             [linuxdistrocodename => ['jessie', 'xenial'],
3438             [package => 'libuv0.10-dev']], # does not work, probably too old
3439             [package => 'libuv1-dev']],
3440             [like_fedora,
3441             [package => 'libuv-devel']],
3442             ]
3443             : ()
3444             ),
3445              
3446             [cpanmod => 'Video::FFmpeg',
3447             [package => 'ffmpeg']], # on Debian only found in backports or www.deb-multimedia.org; still does not build because avformat.h is not available
3448              
3449             [cpanmod => 'Video::Xine',
3450             [os_freebsd,
3451             [package => 'libxine']],
3452             [like_debian,
3453             [package => 'libxine2-dev']]],
3454              
3455             [cpanmod => 'Video::ZVBI',
3456             [os_freebsd,
3457             [package => 'libzvbi']],
3458             [like_debian,
3459             [before_ubuntu_trusty,
3460             [package => []]],
3461             [package => 'libzvbi-dev']],
3462             ],
3463              
3464             [cpanmod => 'Vlc::Engine',
3465             [os_freebsd,
3466             [package => 'vlc']],
3467             [like_debian,
3468             [package => 'libvlc-dev']],
3469             ## Does not seem to contain include files
3470             #[os_darwin,
3471             # [package => 'caskroom/cask/vlc']],
3472             ],
3473              
3474             [cpanmod => 'WordNet::QueryData',
3475             [os_freebsd,
3476             [package => 'wordnet']],
3477             [like_debian,
3478             [package => 'wordnet-base']],
3479             [like_fedora,
3480             [package => 'wordnet']],
3481             ],
3482              
3483             [cpanmod => 'WordNet::SenseKey',
3484             [os_freebsd,
3485             [package => 'wordnet']],
3486             [like_debian,
3487             [package => 'wordnet-sense-index']],
3488             ],
3489              
3490             [cpanmod => 'WWW::Bootstrap',
3491             [os_freebsd,
3492             [package => 'npm']],
3493             [like_debian,
3494             [linuxdistrocodename => [qw(squeeze wheezy)],
3495             [package => []]],
3496             [package => 'npm']]],
3497              
3498             [cpanmod => ['WWW::Curl', 'Net::Curl'],
3499             [os_openbsd,
3500             # doesn't work
3501             [package => 'curl']],
3502             [os_freebsd,
3503             [package => 'curl']],
3504             [like_debian,
3505             [package => 'libcurl4-openssl-dev | libcurl4-gnutls-dev | libcurl4-nss-dev']],
3506             [like_fedora,
3507             [package => 'libcurl-devel']],
3508             [os_darwin,
3509             [package => []]], # libcurl is in the base system
3510             ],
3511              
3512             [cpanmod => 'WWW::Mechanize::Chrome',
3513             [os_freebsd,
3514             [package => 'chromium']],
3515             [os_openbsd,
3516             # doesn't work
3517             [package => 'chromium']],
3518             [like_debian,
3519             [linuxdistrocodename => [qw(squeeze wheezy jessie precise)],
3520             [package => []]], #
3521             [package => 'chromium']],
3522             [os_windows,
3523             [package => 'chromium']],
3524             [os_darwin,
3525             [package => 'chromium']],
3526             ],
3527              
3528             [cpanmod => 'WWW::Mechanize::PhantomJS',
3529             [os_freebsd,
3530             [package => 'phantomjs']],
3531             [os_openbsd,
3532             # doesn't work
3533             [package => 'phantomjs']],
3534             [like_debian,
3535             [linuxdistrocodename => [qw(squeeze wheezy jessie precise)],
3536             [package => []]], # see also https://gist.github.com/julionc/7476620
3537             [package => 'phantomjs']],
3538             [os_windows,
3539             [package => 'phantomjs']],
3540             [os_darwin,
3541             [package => 'phantomjs']],
3542             ],
3543              
3544             [cpanmod => 'Wx',
3545             [os_freebsd,
3546             [package => 'wx30-gtk3 | wx30-gtk2']],
3547             # XXX what about debian?
3548             # fedora: no package needed (e.g wxGTK-devel or wxGTK3-devel), works with Alien::wxWidgets
3549             ],
3550              
3551             [cpanmod => 'XML::LibXML',
3552             [os_freebsd,
3553             [package => 'libxml2']],
3554             [os_dragonfly,
3555             [package => 'libxml2']],
3556             [os_openbsd,
3557             # doesn't work at the moment
3558             [package => 'libxml2']],
3559             [like_debian,
3560             [package => 'libxml2-dev']],
3561             [like_fedora,
3562             [package => 'libxml2-devel']],
3563             [os_darwin,
3564             [package => []]], # libxml2.dylib is part of the base system
3565             ],
3566              
3567             [cpanmod => 'XML::LibXSLT',
3568             [os_freebsd,
3569             [package => 'libxslt']],
3570             [os_dragonfly,
3571             [package => 'libxslt']],
3572             [os_openbsd,
3573             [package => 'libxslt']],
3574             [like_debian,
3575             [package => ['libxslt1-dev', 'libgdbm-dev']]],
3576             [like_fedora,
3577             [package => 'libxslt-devel']],
3578             [os_darwin,
3579             [package => []]], # libxslt.dylib is part of the base system
3580             ],
3581              
3582             [cpanmod => 'XML::Parser',
3583             [os_freebsd,
3584             [package => 'expat']],
3585             [os_dragonfly,
3586             [package => 'expat']],
3587             [os_openbsd,
3588             [package => 'expat']],
3589             [like_debian,
3590             [package => 'libexpat1-dev']],
3591             [like_fedora,
3592             [package => 'expat-devel']],
3593             ],
3594              
3595             [cpanmod => 'XML::Sablotron',
3596             # compiles only with perl < 5.14, see https://rt.cpan.org/Ticket/Display.html?id=66849
3597             [os_freebsd,
3598             [package => 'Sablot']],
3599             # no sablot package on debian
3600             ],
3601              
3602             [cpanmod => 'XML::Saxon::XSLT2', # needs java
3603             [os_freebsd,
3604             [package => 'saxon-he']],
3605             # XXX what about debian?
3606             ],
3607              
3608             [cpanmod => 'XML::WBXML',
3609             [os_freebsd,
3610             [package => 'wbxml2']],
3611             [like_debian,
3612             [package => 'libwbxml2-dev']]],
3613              
3614             [cpanmod => 'XML::Xerces', # "You must use Xerces-C-2.7.0"
3615             [os_freebsd,
3616             [package => 'xerces-c2']],
3617             [like_debian,
3618             # probably needs setting of XERCES_* variables?
3619             [linuxdistrocodename => ['wheezy'],
3620             [package => 'libxerces-c2-dev']],
3621             [package => 'libxerces-c-dev'], # will not work, because jessie has Xerces-C-3.1.1
3622             ]],
3623              
3624             [cpanmod => 'X::Osd',
3625             [os_freebsd,
3626             [package => 'xosd']],
3627             [like_debian,
3628             [package => 'libxosd-dev']]],
3629              
3630             [cpanmod => 'X11::FullScreen',
3631             [os_freebsd,
3632             [package => 'imlib2']],
3633             [like_debian,
3634             [package => 'libimlib2-dev']]],
3635              
3636             [cpanmod => 'X11::GUITest',
3637             # XXX what about freebsd?
3638             [like_debian,
3639             [package => ['libxt-dev', 'libxtst-dev']]],
3640             [like_fedora,
3641             [package => 'libXtst-devel']],
3642             ],
3643              
3644             [cpanmod => 'X11::XCB',
3645             [os_freebsd,
3646             [package => 'xcb-util-wm']],
3647             [like_debian,
3648             [package => ['xsltproc', 'xcb-proto', 'libxcb-util0-dev', 'libxcb-xinerama0-dev', 'libxcb-icccm4-dev']]]],
3649              
3650             [cpanmod => 'X11::Xlib',
3651             [os_freebsd,
3652             [package => 'libXtst']],
3653             [os_dragonfly,
3654             [package => 'libXtst']],
3655             [like_debian,
3656             [package => 'libxtst-dev']],
3657             [like_fedora,
3658             [package => 'libXtst-devel']],
3659             ],
3660              
3661             [cpanmod => 'YAML::LibYAML::API',
3662             [os_freebsd,
3663             [package => 'libyaml']],
3664             [like_debian,
3665             [package => 'libyaml-dev']],
3666             [like_fedora,
3667             [package => 'libyaml-devel']],
3668             [os_darwin,
3669             [package => 'libyaml']],
3670             ],
3671              
3672             [cpanmod => 'ZMQ::FFI',
3673             [os_freebsd,
3674             [package => 'libzmq4']], # seems to hang with nonthreaded perls on freebsd, wait-and-kill rule exists
3675             [os_dragonfly,
3676             [package => 'libzmq4']],
3677             [like_debian,
3678             [linuxdistrocodename => [qw(squeeze wheezy jessie xenial)],
3679             [package => 'libzmq-dev']],
3680             [package => 'libzmq3-dev']], # e.g. stretch
3681             [os_darwin,
3682             [package => 'zmq']],
3683             ],
3684              
3685             [cpanmod => 'ZMQ::LibZMQ4',
3686             [os_freebsd,
3687             [package => 'libzmq4']], # seems to hang with nonthreaded perls on freebsd, wait-and-kill rule exists (?)
3688             [os_dragonfly,
3689             [package => 'libzmq4']],
3690             [like_debian,
3691             # [linuxdistrocodename => [qw(squeeze wheezy jessie)],
3692             # [package => []]], # libzmq5 is ZMQ4.1 (!); according to http://zeromq.org/distro:debian only available in experimental (and probably sid)
3693             [package => 'libzmq3-dev'], # note: libzmq3-dev is ZMQ4.0 (!)
3694             ]],
3695              
3696             [cpanmod => 'ZOOM::IRSpy',
3697             [os_freebsd,
3698             [package => 'yaz']],
3699             [like_debian,
3700             [package => 'libyaz4-dev']]],
3701              
3702             # XXX find out which modules:
3703             # # various wordnet-using modules
3704             # package { "wordnet-base": ensure => installed }
3705              
3706             );
3707             }
3708              
3709             1;
3710              
3711             __END__