File Coverage

blib/lib/CPAN/Plugin/Sysdeps/Mapping.pm
Criterion Covered Total %
statement 70 70 100.0
branch 1 2 50.0
condition n/a
subroutine 24 24 100.0
pod 1 1 100.0
total 96 97 98.9


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