File Coverage

blib/lib/CPAN/Plugin/Sysdeps/Mapping.pm
Criterion Covered Total %
statement 73 73 100.0
branch 1 2 50.0
condition n/a
subroutine 25 25 100.0
pod 1 1 100.0
total 100 101 99.0


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