File Coverage

blib/lib/CPAN/Plugin/Sysdeps/Mapping.pm
Criterion Covered Total %
statement 79 79 100.0
branch 1 2 50.0
condition n/a
subroutine 27 27 100.0
pod 1 1 100.0
total 108 109 99.0


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